实验一 初步掌握Scala程序设计

课程名称 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))
  }
}

实验一 初步掌握Scala程序设计
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))
  }
}

实验一 初步掌握Scala程序设计

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)
  }
}

实验一 初步掌握Scala程序设计

二、实验总结及问题

1、学会使用什么做什么事情;
学会使用scala基本语法
2、在实验过程中遇到了什么问题?是如何解决的?

3、还有什么问题尚未解决?可能是什么原因导致的。

上一篇:LiveGBS国标GB28181视频流媒体平台可查看国标设备上线离线状态记录


下一篇:android 无线模式下使用ADB调试