2023-2024-1 20231301 《计算机基础与程序设计》第六周学习总结

发布时间 2023-11-05 21:30:39作者: 20231301周子昂

2023-2024-1 20231301 《计算机基础与程序设计》第六周学习总结

作业信息

作业 链接
作业课程 <班级>(2023-2024-1-计算机基础与程序设计
作业要求 <作业>(2023-2024-1计算机基础与程序设计第六周学习总结)
作业目标 <《计算机基础与程序设计》预习第七章>《计算机基础与程序设计》英 《计算机基础与程序设计》中 <《C语言程序设计》预习第五章> 《C语言程序设计》
作业正文 <博客>(第六周学习总结

学习内容总结

《计算机科学概论》第七章

算法:指令是明确的
选择:IF—ELSE IF—IF:到达第二个if语句的唯一方式是第一个if表达式是不真实的。

循环:计数控制、事件控制

  1. 计数控制:简单记录过程重复的次数并且在重复再次开始前检测循环是否已经结束(可以指定过程重复的次数)
    1. 初始化 2. 测试 3. 增量
    while循环:前测试循环(循环不会一直进行下去)
  2. 事件控制:由循环体自身内发生的事件控制的循环决定重复次数

数组:通过表达式numbers[position]来访问数组中的每个值。其中position就是索引,是一个从0到9之间的数。

布尔操作符:
AND:真真- TRUE 否则均为FALSE
OR:假假=FALSE 否则均为TRUE
NOT:改变表达式的值

有序数组:使用变量length来知道数组中元素的值

选择排序、冒泡排序、插入排序
冒泡排序慢,但是能快速确定数组是否有序
选择排序的每次迭代后,一个元素被放置到它的永久位置,而插入排序的每次迭代后,一个元素将被放在相对于其他元素来说适当的位置上。

递归算法:一个算法中使用它自己

《C语言程序设计》第五章

数据结构+算法=程序
选择结构(分支控制结构)
关系运算符:==(等于) !=(不等于)
==是相等关系运算符,=是赋值运算符

关系表达式通常用于表达一个判断条件。
用非0值表示“真”,用0值表示“假”。

if语句:要么执行一条语句,要么跳过它。
if- else语句: 在两条语句中选择其中一条来执行。

条件运算符:C语言中唯一一个三元运算符
表达式1?表达式2:表达式3
若表达式1的值非0,则该条件表达式的值是表达式2的值,否则是表达式3的值。

else- if语句:只有表达式1假,才会执行表达式2...

exit(code):终止整个程序的执行,强制返回操作系统。

不能直接将实数与0比较是因为浮点数并非真正意义上的实数。

多路选择的switch语句 P72(四则运算)

逻辑运算:
!:非 &&:与 ||:或

学习中的问题

  1. 为什么计数控制循环不会一直进行下去?

实际上,大多数计算系统都有一个计时器,所以程序不会真的一直运行下去。相反,程序将停止于一条错误消息。

书上给的解释如上,但我还是不太理解。于是我问了chatGPT

计数控制循环不会一直进行下去的原因是循环的终止条件。在编写程序时,我们通常会为循环结构设定一个终止条件,当满足该条件时,循环就会停止执行。
循环结构中的计数控制变量会不断更新,当达到或超过了设定的终止条件时,循环就会停止。这个终止条件可以是一个特定的计数值、一个表达式的结果,或者是一个逻辑条件的判断。
例如,在C语言中使用的for循环,可以通过设置一个计数器变量、设定循环次数和更新计数器的方式来控制循环的执行。当计数器达到指定次数时,循环就会停止。
而在Python语言中,可以使用while循环来实现计数控制。通过设置一个初始值,并在每次循环迭代后更新计数器,使用条件判断来确定是否继续执行循环。
总之,计数控制循环之所以会停止,是因为在循环的设计中明确设置了终止条件,当达到或超过该条件时,循环就会终止。这样可以避免无限循环,使程序能够正常结束执行。

  1. 以下两个代码的区别是什么?
点击查看代码
if(a>b) max=a;
if(a<=b) max=b;
点击查看代码
if(a>b) max=a;
else max=b;

看书+询问chatGPT

这两个代码的作用是找出a和b之间的最大值,并将结果存储在变量max中。
第一个代码块使用了两个if语句来实现这一目标。第一个if语句检查a是否大于b,如果是,则将a赋值给max。第二个if语句检查a是否小于或等于b,如果是,则将b赋值给max。注意,这两个if语句是互不相关的,也就是说,无论第一个if语句是否执行,第二个if语句都会被执行,因此这段代码可能会出现重复执行的问题。
第二个代码块使用了if-else语句来实现相同的目标。第一个if语句检查a是否大于b,如果是,则将a赋值给max;否则,将b赋值给max。使用if-else语句可以避免第一个代码块中可能出现的重复执行问题,因为只有一个分支会被执行。
因此,两个代码块的区别在于它们使用的控制结构不同。第一个代码块使用两个独立的if语句,而第二个代码块使用一个if-else语句。

  1. 如何上传源码至ECS主机?
    实验一时就出现过这个问题。当时娄老师建议我用ssh函数。我上次实验在查询过相关资料后顺利的完成了源码上传。但是不知为何,这次使用该函数时,虽然task.c文件就在桌面上,但是终端始终显示没有该文件。ssh函数使用时要考虑端口问题。或许是我的命令有问题,电脑无法找到我想上传的文件。于是,我只好再次上网查询将源码上传到ECS主机的相关方法。其中,sftp函数是王荣盛同学帮忙推荐的。于是,我便采用该函数。其中,put /users/...是将源码上传的命令。(快速写出后半截文件位置的好方法是直接将文件拖到终端,位置会自动填补)使用该命令,我成功完成了源码上传。
    参考:sftp函数