当前位置: 首页 > news >正文

分布式计算框架

进入Scala模式

终端里输入Scala

创建一个新的Scala文件

vim 文件名.scala

复制粘贴代码

ctrl+shift c/v

使用vim

先进入插入模式,可以通过按i键来实现,然后粘贴代码,完成后按Esc键退出插入模式,保存并退出可以通过输入:wq然后按Enter键。

编译运行程序

scalac 文件名.scala
scala 文件名

终端退出scala模式

:quit  /  :exit

删除在vim里写好的代码

  1. 删除字符或单词

    • 在普通模式(Normal mode)下,你可以使用 x 命令来删除光标所在位置的单个字符。
    • 要删除一个单词,首先使用 w 命令将光标移动到单词的末尾,然后使用 x 来删除整个单词。
  2. 删除一行

    • 在普通模式下,使用 dd 命令删除光标所在的整行。
  3. 删除多行

    • 在普通模式下,使用数字加 dd 来删除光标所在位置向下的多行。例如,5dd 会删除光标所在行和接下来的四行。
  4. 删除到行尾

    • 在普通模式下,使用 D 命令删除从光标位置到行尾的所有内容。
  5. 删除到文件末尾

    • 在普通模式下,使用 :%d 命令删除整个文件的内容。
  6. 撤销删除

    • 如果你不小心删除了内容,可以使用 u 命令来撤销删除操作。
  7. 退出 Vim

    • 如果你想要退出 Vim 而不保存任何更改,可以在普通模式下使用 :q! 命令。

请注意,Vim 的模式非常重要。确保你在执行删除操作之前处于普通模式。如果你不确定自己处于哪个模式,可以按下 Esc 键返回普通模式。

如果你刚刚在 Vim 中写好了代码并想要全部删除,可以使用以下命令:

 

:%d

这将在普通模式下删除整个文件的内容。如果你只想删除文件的一部分,确保使用正确的命令和范围。如果你只是想退出而不保存更改,可以使用:

 

:q!

这将放弃所有更改并退出 Vim。

创建.txt文件并在里面写入内容

import java.io.FileWriter// 指定文件名
val filename = "filename.txt"// 使用try-with-resources语句确保文件最终被关闭
val file = new FileWriter(filename)
try {// 写入内容到文件file.write("学号 性别 数学 英语 物理\n")file.write("301610 男 80 64 78\n")file.write("301611 女 65 87 58\n")
} catch {case e: Exception => e.printStackTrace() // 处理可能的异常
} finally {// 关闭文件file.close()
}

实验成功代码

计算级数

object Exercise2_1 {def main(args: Array[String]): Unit = {// 读取用户输入的q值val q = scala.io.StdIn.readDouble() // 读取输入的q值// 初始化级数和nvar Sn = 0.0var n = 1.0// 循环计算级数的和,直到Sn大于或等于qwhile (Sn < q) {Sn += 1.0 / nn += 1.0}// 输出Sn的值println(s"Sn=${Sn}")}
}

分别取出下面三个班级Top3的分数  ruc01

object ClassScores {def main(args: Array[String]): Unit = {// 初始化Map来存储每个班级的分数列表,明确指定列表类型为Intvar scores = Map("class1" -> List[Int](),"class2" -> List[Int](),"class3" -> List[Int]())// 读取数据并填充分数列表val data = List(("class1", 90), ("class2", 91), ("class1", 88),("class2", 99), ("class1", 100), ("class2", 77),("class1", 77), ("class2", 57), ("class3", 77),("class3", 88), ("class3", 99), ("class3", 100),("class3", 22), ("class3", 77))// 将分数添加到对应的班级列表中data.foreach {case (className, score) =>scores = scores.updated(className, scores(className) :+ score)}// 导入隐式转换,以便能够对Int进行排序import scala.math.Ordered// 打印每个班级的Top 3分数scores.foreach { case (className, scoreList) =>// 显式指定排序顺序val topScores = scoreList.sorted(Ordering[Int].reverse).take(3)println(s"Top 3 scores for $className: ${topScores.mkString(", ")}")}}
}

统计学生成绩一     ruc02   仅成功编译,无法运行

import scala.io.Source
import scala.collection.mutable.ListBufferobject ruc02 {def main(args: Array[String]): Unit = {// 读取文件内容val lines = Source.fromFile("filename.txt").getLines().toList// 跳过表头val headers = lines.head.split("\\s+").tailval students = lines.tail.map(_.split("\\s+").map(_.toInt))// 定义统计函数def statistics(scores: List[Int]): (Double, Int, Int) = {val total = scores.sumval average = total.toDouble / scores.lengthval min = scores.minval max = scores.max(average, min, max)}// 计算总体统计数据val overallStats = headers.zipWithIndex.map { case (header, index) =>val scores = students.map(_(index))val (average, min, max) = statistics(scores)(header, (average, min, max))}.toMap// 计算男女分别的统计数据val genderStats = Map("male" -> headers.tail.map(_ => ListBuffer[Int]()),"female" -> headers.tail.map(_ => ListBuffer[Int]()))students.foreach { student =>val gender = student(1) // 性别字段的索引是1headers.tail.indices.foreach { index =>val headerIndex = index + 1 // 跳过性别字段val score = student(headerIndex)genderStats(gender.toString)(headerIndex - 1) += score}}val statsForGender = (gender: String) => {headers.tail.map { header =>val scores = genderStats(gender)(headers.indexOf(header) - 1).toListval (average, min, max) = statistics(scores)((gender, header), (average, min, max))}.toMap}val maleStats = statsForGender("male")val femaleStats = statsForGender("female")// 打印统计结果println("Overall statistics:")overallStats.foreach { case (course, stats) =>println(s"$course: avg=${stats._1}, min=${stats._2}, max=${stats._3}")}println("\nMale statistics:")maleStats.foreach { case ((gender, course), stats) =>println(s"$course: avg=${stats._1}, min=${stats._2}, max=${stats._3}")}println("\nFemale statistics:")femaleStats.foreach { case ((gender, course), stats) =>println(s"$course: avg=${stats._1}, min=${stats._2}, max=${stats._3}")}}
}

统计学生成绩二   仅成功编译,无法运行

import scala.collection.mutable.ArrayBuffer
import scala.io.Sourceobject ruc02 {def get_alldata(allStudents: List[Array[String]], courseNames: Array[String], array1: ArrayBuffer[Int], array2: ArrayBuffer[Int], array3: ArrayBuffer[Int]): Unit = {for (i <- 2 until courseNames.length + 2) {for (j <- allStudents.indices) {val score = allStudents(j)(i).toIntarray1.append(score)if (allStudents(j)(1) == "male") {array2.append(score)} else if (allStudents(j)(1) == "female") {array3.append(score)}}}}def get_data(array: ArrayBuffer[Int], data2: ArrayBuffer[Double], Nn: Int): Unit = {var index = 0while (index < array.length) {val scores = array.slice(index, index + Nn)val average = scores.sum.toDouble / scores.lengthval min = scores.minval max = scores.maxdata2.append(average)data2.append(min)data2.append(max)index += Nn}}def print_data(data2: ArrayBuffer[Double], courseNames: Array[String]): Unit = {for (i <- courseNames.indices) {println(s"${courseNames(i)}:  average=${data2(i * 3).formatted("%.2f")},  min=${data2(i * 3 + 1)},  max=${data2(i * 3 + 2)}")}}def main(args: Array[String]): Unit = {val File = Source.fromFile("d:/2.txt")val all_Data = File.getLines().map {_.split(" ")}.toListval courseNames = all_Data.head.drop(1).toArray  // Convert to Array for mutabilityval allStudents = all_Data.tail.map(_.map(_.trim)) // Remove leading and trailing spacesval array1 = ArrayBuffer[Int]()val array2 = ArrayBuffer[Int]()val array3 = ArrayBuffer[Int]()get_alldata(allStudents, courseNames, array1, array2, array3)val data2 = ArrayBuffer[Double]()val Nn = courseNames.lengthget_data(array1, data2, Nn)get_data(array2, data2, Nn)get_data(array3, data2, Nn)println("course  average  min  max")print_data(data2.take(Nn * 3), courseNames)println("course  average  min  max(male)")print_data(data2.slice(Nn * 3, Nn * 6), courseNames)println("course  average  min  max(female)")print_data(data2.slice(Nn * 6, Nn * 9), courseNames)}
}

实验截图

http://www.lryc.cn/news/445621.html

相关文章:

  • YOLO交通目标识别数据集(红绿灯-汽车-自行车-卡车等)
  • Vue学习记录之六(组件实战及BEM框架了解)
  • 为什么会出现电话机器人?语音电话机器人的出现起到了什么作用?
  • 【CSS Tricks】深入聊聊前端编写css的方法论
  • 多维时序 | GWO-VMD-SSA-LSTM灰狼优化变分模态分解联合麻雀优化长短期记忆网络多变量时间序列光伏功率预测(Matlab)
  • 5.使用 VSCode 过程中的英语积累 - Go 菜单(每一次重点积累 5 个单词)
  • Java高级Day50-连接池
  • 软件设计-开闭原则
  • Angular面试题八
  • 【Kubernetes】常见面试题汇总(三十六)
  • 深入解析SGD、Momentum与Nesterov:优化算法的对比与应用
  • Vue2实现主内容滚动到指定位置时,侧边导航栏也跟随选中变化
  • dev containers plugins for vscode构建虚拟开发环境
  • C++ | Leetcode C++题解之第433题最小基因变化
  • Qt窗口——QMenuBar
  • python网站创建001:内容概览
  • 代码随想录第22天|
  • WPF-基础-02 DispatcherObject类
  • STM32与51单片机的区别:是否应该直接学习STM32?
  • 【网络底层原理】I/O多路复用技术select、poll和epoll详解与比较
  • 【JavaScript】LeetCode:51-55
  • Spring MVC 拦截器总结
  • Linux——创建编写并编译一个C程序
  • window下idea中scala的配置
  • Qt C++设计模式->享元模式
  • 前端实用技能
  • Android LiveData 数据倒灌
  • umi项目中使用mockj生成数据模拟请求调用
  • 事件【JavaScript】
  • 【Linux】Linux基本命令