0


spark实训题 -- Scala基础编程【1】

实训目的

( 1)掌握Scala的REPL使用。

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

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

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


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

1. 训练要点

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

2.需求说明

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

3.思路及步骤

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

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

( 3 )测试函数。

实现源代码:

  1. scala> def isPalindrom(word:String):Unit={
  2. val word2=word.reverse
  3. if(word==word2){
  4. println(word+" is palindrom!")
  5. }
  6. }
  7. scala> isPalindrom("aba")

运行结果截图:


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

1. 训练要点

(1) Scala函数的运用。

(2) Scala 循环的使用。

2.需求说明

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

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

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

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

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

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

3.思路及步骤

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

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

源代码:

  1. [root@node1 scala]# vi test1.scala
  2. object test {
  3. def main(args: Array[String]) {
  4. val a =Array.ofDim[Int](10,10)
  5. for(i<- 0 until a.length){
  6. a(i)(0)=1
  7. a(i)(i)=1
  8. }
  9. for(i <-2 until a.length ){
  10. for(j <-1 until a(i).length){
  11. a(i)(j)=a(i-1)(j-1)+a(i-1)(j)
  12. }
  13. }
  14. for(i <-0 until a.length){
  15. for(j <- 0 until a(i).length if j<=i){
  16. print(a(i)(j)+"\t")
  17. }
  18. println()
  19. }
  20. }
  21. }
  22. [root@node1 scala]# scala test1.scala

运行结果截图:


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

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

(1)、源代码

  1. scala>def narcissus():Unit={
  2. for(number<-100 to 999){
  3. val a=number/100
  4. val b=number%100/10
  5. val c=number%100%10
  6. if(a*a*a+b*b*b+c*c*c==number){
  7. print(number+" ")
  8. }
  9. }
  10. }
  11. scala>narcissus()

(2)、运行结果截图:

标签: spark scala

本文转载自: https://blog.csdn.net/weixin_58330979/article/details/123660213
版权归原作者 ⚆Pearl 所有, 如有侵权,请联系我们删除。

“spark实训题 -- Scala基础编程【1】”的评论:

还没有评论