课程名称 | Spark大数据分析 | 实验室名称 | |
---|---|---|---|
实验名称 | 实验一 初步掌握Scala程序设计 | ||
指导老师 | 成绩 |
一、实验任务及结果
1.可否定义一个sum函数呢?返回指定区间的值的和?例如,区间[1,4]的和为1+2+3+4=10返回指定区间值的平方的和呢?立方呢?
object Sum {
def sum(x: Int, y: Int): Int = {
var sum: Int = 0
var i = 0
for(i <- x to y ){
sum = sum + i
}
return sum
}
def squareSum(x: Int, y: Int): Int = {
var sum: Int = 0
var i = 0
for(i <- x to y ){
sum = sum + i*i
}
return sum
}
def cubeSum(x:Int, y:Int ): Int = {
var sum: Int = 0
var i = 0
for(i <- x to y ){
sum = sum + i*i*i
}
return sum
}
def main(args: Array[String]): Unit = {
println(sum(1,4),cubeSum(1,4), squareSum(1,4))
}
}
2、定义一个gcd函数,计算两个数的最大公因数。
import scala.io.StdIn
object Gcd {
def gcd(x:Int, y:Int): Int ={
var a: Int = x
var b: Int = y
if(a % b == 0)
return b
else
return gcd(b, a % b)
}
def main(args: Array[String]): Unit = {
println("输入x:")
val x:Int = StdIn.readInt()
println("输入y:")
val y:Int = StdIn.readInt()
println("x,y的最大公因数是",gcd(x,y))
}
}
3、scala实现杨辉三角。
object YH_triangle {
def triangle(line:Int) = {
var Arr = Array(1,0,0)
var blank = line-1
for (i <- 1 to line){
for (k <- 0 to blank)
printf(" ")
blank -= 1
if (blank<0) blank = 0
val array = new Array[Int](i)
array(0) = 1; array(i-1) = 1;
if (i>2){
for (j<- 1 to i-2){
array(j) = Arr(j-1) + Arr(j)
}
}
for (k <- 0 until i){
printf("%d ",array(k))
}
printf("\n")
Arr = array
}
}
def main(args: Array[String]): Unit = {
triangle(5)
}
}
二、实验总结及问题
1、学会使用什么做什么事情;
学会使用scala基本语法
2、在实验过程中遇到了什么问题?是如何解决的?
无
3、还有什么问题尚未解决?可能是什么原因导致的。
无