目录

实训目的

实训1:编写函数过滤文本中的回文单词

1. 训练要点

2.需求说明

3.思路及步骤

 实训2:使用Scala编程输出杨辉三角

1. 训练要点

2.需求说明

3.思路及步骤

 实训3:用Scala编程求出100~999之间的所有水仙花数。


实训目的

( 1)掌握Scala的REPL使用。

(2)掌握Scala的Array、List、Map等创建与使用。

(3)掌握Scala循环与判断的使用。

( 4)掌握Scala函数式编程。


实训1:编写函数过滤文本中的回文单词

1. 训练要点

  1. 函数的定义。
  2. 方法的调用。

2.需求说明

    回文是指正向和逆向读起来相同的词。例如“mom”和“dad”。编写一个函数用来测试单词是否是回文,若是则打印出该单词。提示: String的revere方法在此处会很有用。

3.思路及步骤

( 1 )定义函数isPalindrom(word:String)。

(2)在丽数中判断单词正向与逆向是否样,若是则打印。

( 3 )测试函数。

实现源代码:

scala> def isPalindrom(word:String):Unit={

      val word2=word.reverse

        if(word==word2){

          println(word+"  is palindrom!")

        }

      }



scala> isPalindrom("aba")

运行结果截图:


 实训2:使用Scala编程输出杨辉三角

1. 训练要点

(1) Scala函数的运用。

(2) Scala 循环的使用。

2.需求说明

     杨辉三角(帕斯卡三角形)是二项式系数在三角形中的一种集合排列, 在我国南宋数学家杨辉于1261年所著的(详解九章算法》一书里就已经记载了。

一些基本的关系,如下所示:

(1)每个数字都是它上方两数之和。

(2)两侧最外围是由数字1组成。

(3)其余数则是其肩上两个数的和。

结合实际,运用Scala编程实现指定层杨辉三角的输出。

3.思路及步骤

    (1)定义一一个取值函数pascal, 得到指定行列的值。杨辉三角的性质决定了除左右两边等于1外,元素的值等于其肩上两数的和,即Value(row,column) = Value(rows,column-1)+Value(rows-1,column-1)。当行和列的值越来越小时达到终止条件。

(2)以行为分界,打印每个元素的值。

源代码:

[root@node1 scala]# vi test1.scala



object test {

  def main(args: Array[String]) {

    val a =Array.ofDim[Int](10,10)

    for(i<- 0 until a.length){

          a(i)(0)=1

          a(i)(i)=1

    }

    for(i <-2 until a.length ){

      for(j <-1 until a(i).length){

        a(i)(j)=a(i-1)(j-1)+a(i-1)(j)

      }

    }

    for(i <-0 until a.length){

      for(j <- 0 until a(i).length  if j<=i){

         print(a(i)(j)+"\t")

      }

      println()

    }

  }

}


[root@node1 scala]# scala test1.scala


运行结果截图:


 实训3:用Scala编程求出100~999之间的所有水仙花数。

    题目:水仙花数是指其个位、十位、百位3个数的立方和等于这个数本身,请用Scala编程求出100~999之间的所有水仙花数。

(1)、源代码

scala>def narcissus():Unit={

        for(number<-100 to 999){

        val a=number/100

        val b=number%100/10

        val c=number%100%10

        if(a*a*a+b*b*b+c*c*c==number){

          print(number+" ")

        }

      }

      }



scala>narcissus()

(2)、运行结果截图:

Logo

科技之力与好奇之心,共建有温度的智能世界

更多推荐