首页 > 其他 > 详细

spark实验(二)--scala实验(3)

时间:2020-02-03 16:42:03      阅读:76      评论:0      收藏:0      [点我收藏+]

实验1,计算级数:

技术分享图片

 

 

 

首先打开安装完scala ide的eclipse,在eclipse 中新建一个scala project。

技术分享图片

 

 

然后新建一个scala的object对象

技术分享图片

 

导入scala.io.StdIn包,用以实现接受键盘输入

 

 在新建的object对象中,新建main函数,并添加以下代码实现:

package sn
import scala.io.StdIn

object test {
  def main(args: Array[String]): Unit = {
      println("请输入Sn的n值用以计算Sn=2/1+3/2+4/3+...+(n+1)/n来计算Sn的值");
      var q:Int=StdIn.readInt();
      var i:Int=0;
      var sum:Float=0.0f;
      for(i <- 1 to q)
      {
        var id:Float =i;
        sum+=(id+1)/id;
      }
      println("当n="+q+"时,Sn的值为"+sum);
  }
}

运行结果:

技术分享图片

 

 

 

实验2,模拟图形绘制 

技术分享图片

 

 

 

 

case class Point(var x:Double,var y:Double) extends Drawable{    
    def shift(deltaX:Double,deltaY:Double){
        x+=deltaX;
        y+=deltaY
    } 
} 
trait Drawable{   
    def draw()
    {
        println(this.toString)
    } 
} 

// 请完成 Shape 类、Line 类和 Circle 类的定义。 

object MyDraw{   
    def main(args: Array[String]) {     
        val p=new Point(10,30)    
                p.draw;   
        val line1 = new Line(Point(0,0),Point(20,20))   
                line1.draw   
                line1.moveTo(Point(5,5)) 
                //移动到一个新的点   
                line1.draw   
                line1.zoom(2) 
                //放大两倍   
                line1.draw   
                val cir= new Circle(Point(10,10),5)   
                cir.draw   
                cir.moveTo(Point(30,20))   
                cir.draw   
                cir.zoom(0.5)   
                cir.draw     
    } 
} 

其Shape,Line和Circle的定义如下:

abstract class Shape(var startPoint:Point) extends Drawable
{
  def moveTo(newPoint:Point)
  {
    startPoint =newPoint;
  }
  def zoom(num:Double);
}
class Line(x1:Point,var x2:Point) extends Shape(x1) 
{
  override def zoom(num:Double)
  {
    val midPoint=Point((x2.x+startPoint.x)/2,(x2.y+startPoint.y)/2)
    startPoint.x=midPoint.x+num*(startPoint.x-midPoint.x)
    startPoint.y=midPoint.y+num*(startPoint.y-midPoint.y)
    x2.x=midPoint.x+num*(x2.x-midPoint.x)
    x2.y=midPoint.y+num*(x2.y-midPoint.y)
  }
  override def moveTo(newPoint:Point)
  {
    var x=(newPoint.x-startPoint.x);
    var y=(newPoint.y-startPoint.y);
    startPoint=newPoint;
    x2.shift(x, y)
  }
  override def draw()
  {
    println(s"Line:(${startPoint.x},${startPoint.y})--(${x2.x},${x2.y})") 
  }
    
}

class Circle(center:Point,var radius:Double) extends Shape(center)
{
  override def draw()
  {
    println(s"Circle center:(${startPoint.x},${startPoint.y}),R=$radius") 
  }
  override def zoom(num:Double)
  {
    radius*=num;
  }
}

运行截图:

技术分享图片

 

 实验3, 统计学生成绩 

技术分享图片

 

 

未完待续

spark实验(二)--scala实验(3)

原文:https://www.cnblogs.com/halone/p/12256164.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!