学期(如2024-2025-1) 学号(如:20241403) 《计算机基础与程序设计》第5周学习总结
作业信息
这个作业属于哪个课程 | <班级的链接>(如2024-2025-1-计算机基础与程序设计) |
---|---|
这个作业要求在哪里 | <作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业) |
这个作业的目标 | Pep/9虚拟机 机器语言与汇编语言 算法与伪代码 测试:黑盒,白盒 |
作业正文 | https://www.cnblogs.com/chenqiqi/p/18505334 |
教材学习内容总结
《计算机科学概论》
- 计算机操作与机器语言:
• 计算机的定义:计算机是能够存储、检索和处理数据的可编程电子设备。
• 机器语言的定义:由计算机直接使用的二进制编码指令构成的语言。每条机器语言指令只能执行一个非常低级的任务,大多数程序使用高级语言编写,然后翻译成机器语言。
• 虚拟机示例(Pep/9):为了模拟真实机器的重要特征而设计的假想机器。Pep/9 一共有 40 条机器语言指令,其指令格式由 8 位数的指令说明符和(可选的)16 位的操作数说明符构成,这决定了 Pep/9 的指令在长度上是 1 字节或 3 字节。指令中的寻址位置说明符表示了怎样解析指令中的操作数部分。 - 汇编语言:
• 定义:一种低级语言,用助记码表示特定计算机的机器语言指令。
• 汇编器:把汇编语言程序翻译成机器代码的程序。
• Pep/9 汇编语言的特点:操作数用 0x 和十六进制表示,后面跟逗号,最后是寻址模式(由字母 i(立即寻址)或 d(直接寻址)说明)。并且程序中存在注释,注释是为程序读者提供的解释性文字。此外,还介绍了数字数据、标签、分支等概念,其中分支指出执行下一条指令的指令,标签是对内存位置起的名字,可以将这个名字当作操作数。 - 表达方法:
• 算法:是解决方案的计划或纲要,是解决问题的逻辑步骤顺序。
• 伪代码:是一种表达算法的语言,其功能包括对变量的处理、赋值、输入/输出、选择、重复等操作。伪代码中有一些特定的语句,如 write(用于输出)、read(用于输入)、if...else(用于选择)、while(用于重复)等。
《C语言程序设计》
1.循环结构与循环语句
•循坏分为技术控制的循环,条件控制的循环,标记控制的循环
•循环语句有 for while do...while
2.嵌套循环
3.递推法编程
4.穷举法编程
教材学习中的问题和解决过程(先问 AI)
- 问题1:while与do while 的区别与联系
- 问题1解决方案:
一、区别:
- 执行顺序不同
• while:先判断条件,若条件为真则执行循环体中的语句;如果条件一开始就为假,那么循环体一次都不会执行。
• do...while:先执行一次循环体中的语句,然后再判断条件;即使条件一开始为假,循环体也至少会被执行一次。 - 语法结构不同
• while:while(条件表达式) {循环体语句}。
• do...while:do {循环体语句} while(条件表达式);。
二、联系: - 目的相同
• 两者都是为了实现重复执行一段代码的目的,根据特定的条件来控制循环的执行次数。 - 条件判断方式相似
• 都使用一个条件表达式来决定是否继续执行循环。当条件表达式的值为真时,继续循环;当条件表达式的值为假时,结束循环。
基于AI的学习
代码调试中的问题和解决过程
- 问题1:如何每次生成不同的随机数
- 问题1解决方案:
使用时间作为随机数种子。
• 在程序开始处调用srand(time(NULL)),其中time(NULL)返回当前时间的秒数,这个值作为随机数生成器的种子。因为每次程序运行的时间不同,所以种子不同,这样就能保证每次生成的随机数序列不同。
• 之后再使用rand()函数来生成随机数。
例如:
include <stdio.h>
include <stdlib.h>
include <time.h>
int main() {
srand(time(NULL));
int randomNumber = rand();
printf("%d\n", randomNumber);
return 0;
}
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 2/4 | 18/38 | |
第三周 | 500/1000 | 3/7 | 22/60 | |
第四周 | 300/1300 | 2/9 | 30/90 |