3000门徒第一天作业

本文通过具体示例介绍Scala语言的基础知识,包括数组操作、函数定义、文本输入输出、文件读取等核心内容,并深入探讨了filter、map等集合操作的应用。

数组作业:

val a = Array(-2,-1,0,2,1,-1)
var bool :Boolean =true
for (elem <- a)
{
if (bool)
{
if(elem<0)
{
println (elem)
bool=false}
}
if (elem>=0)
println(elem)
}




上课笔记:

今日学习内容:
代码相关:
函数结构例子
{
val n=10
def f1:Any=
{for (i <- 1 to 10 )
{if (i==n) return i
println(i)}}
}
文字输出输入例子
{
readLine
readLine("password:")
println("Spark")
printf(带参数)]
}
文件读取例子
{
try
{lazy val content =fromFile("/usr/local/spark/spark-1.5.0-bin-hadoop1/README.md").mkString}
catch 
{case _:FileNotFoundException =>println("Oops!!!File not found")}
finally
{println("Byebye world!!!")}
}
数组相关:
{
val arr=new Array[Int](5)  #(0,0,0,0,0) 非可变数组

ArrayBuffer [can add element] 
#import scala.collection.mutable._可变数组类库
构造可变数组:
ArrayBuffer val arrBuffer = ArrayBuffer[Int]()
Insert:
arrBuffer +=10  #加一个元素
arrBuffer +=(1,55,233,514,1,56) #增加多个元素
arrBuffer ++=Array(1,2,3,4)    #增加一个数组
Delete:
arrBuffer.trimEnd(3)#delete 最后3个元素
remove
arrBuffer.remove(10)
mkString:
arr2.mkString
res5: String = 231541215242154454
arr2.mkString(",")
res6: String = 231,54,121,5,2,4,2,154,454
}
filter相关:
{
arr2.filter(_%3==0).map(i=>i*i)   (53361, 2916)
}
Map相关:
{
val person = Map("Spark" -> 6,"Hadoop"-> 11)(不可增加)

val person =scala.collection.mutable.Map("Spark" -> 6,"Hadoop"-> 11)(可增加)
Insert:
person+=("Flink"->5)
Delete:
person-=("Flink")

操作实例:
val sparkValue = if(person.contains("Spark"))person("Spark") else 1000
val sparkValue=person.getOrElse("Spark",1000)
for((key,value)<- person) println(key+":"+value)
for(key<- person.keySet) println(key+":")
}


内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
### 配置 MSPM0G3507 最小系统板在 Keil 开发环境下的设置 为了在 Keil 开发环境中正确配置 MSPM0G3507 最小系统板,需要完成一系列关键步骤,包括安装必要的软件包、创建工程、配置目标设置以及编写和调试代码。以下是一个详细的配置指南: #### 创建 Keil 工程 1. **安装 Keil MDK-ARM** 确保已安装最新版本的 Keil MDK-ARM 软件开发工具包。如果尚未安装,请从 Keil 官方网站下载并安装。 2. **安装 TI 的设备支持包** TI 提供了针对其微控制器的设备支持包,通常包含必要的启动文件、驱动程序和示例代码。可以从 TI 官方网站下载适用于 MSPM0G3507 的软件开发套件 (SDK) [^1]。 3. **创建新工程** 打开 Keil uVision,选择 `Project > New µVision Project`,输入工程名称并选择保存路径。接下来,选择目标设备为 `MSPM0G3507`,确保选择了正确的设备型号。 4. **添加启动文件和库** 在工程创建过程中,Keil 会提示是否添加启动文件(Startup File)。选择 `Yes`,并将 TI 提供的 CMSIS(Cortex Microcontroller Software Interface Standard)库和 MSPM0G3507 的外设驱动库添加到工程中 [^1]。 #### 配置目标设置 1. **设置目标选项** 在 `Project` 菜单中选择 `Options for Target 'Target 1'`,进入 `Target` 选项卡,确保 `Xtal (MHz)` 设置为 MSPM0G3507 的主频(例如 80 MHz)[^1]。 2. **选择调试接口** 在 `Debug` 选项卡中,选择适当的调试器类型(如 J-Link、ST-Link 或 TI 的 XDS 调试器)。确保连接线缆正确连接到 MSPM0G3507 最小系统板的调试接口。 3. **配置 Flash 下载设置** 在 `Utilities` 选项卡中,选择正确的 Flash 编程算法,确保能够正确地将代码烧录到 MSPM0G3507 的 Flash 存储器中。 #### 编写和调试代码 1. **编写主程序** 在 `main.c` 文件中编写主程序代码。以下是一个简单的 LED 点亮示例,使用了 TI 提供的 GPIO 控制函数 [^2]: ```c #include "ti_msp_dl_config.h" int main(void) { /* 初始化系统时钟 */ DL_SYSCTL_setSYSOSCClksel(DL_SYSCTL_SYSOSC_CLKSEL_RC); DL_SYSCTL_setSYSClock(SYSCLK_FREQ_80MHz); /* 初始化 GPIO */ DL_GPIO_init(); DL_GPIO_setPins(PORTB_PORT, PORTB_LED_RED_PIN); // 设置红色 LED 为高电平(熄灭) DL_GPIO_setDirection(PORTB_PORT, PORTB_LED_RED_PIN, DL_GPIO_DIRECTION_OUTPUT); // 设置为输出模式 while (1) { DL_GPIO_togglePins(PORTB_PORT, PORTB_LED_RED_PIN); // 翻转 LED 状态 for (volatile int i = 0; i < 1000000; i++); // 延时 } } ``` 2. **编译工程** 点击 `Project > Rebuild all target files` 编译工程。确保没有编译错误或警告。 3. **下载并调试代码** 点击 `Download` 按钮将代码下载到 MSPM0G3507 的 Flash 中。然后点击 `Debug > Start/Stop Debug Session` 进入调试模式,使用单步执行、断点等功能调试代码。 #### 其他注意事项 - **电源管理**:MSPM0G3507 支持多种低功耗模式,可以在代码中使用 TI 提供的电源管理 API 来优化功耗 [^1]。 - **外设配置**:根据项目需求,可以使用 TI 提供的 SysConfig 工具来配置外设(如 UART、SPI、ADC 等),并生成相应的初始化代码 [^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值