班级链接 | 2024计算机基础与程序设计 |
---|---|
作业要求 | 第五周作业 |
作业目标 | ①Pep/9虚拟机 ②机器语言与汇编语言 ③算法与伪代码 ④测试:黑盒,白盒 |
教材学习内容总结
《计算机科学概论》第六章
- 计算机操作:
- 介绍了计算机的基本操作,包括机器语言的基本概念。
- 机器语言是由一系列二进制代码组成,计算机可以直接理解和执行的语言,但它难以编写和理解。
- Pep/9虚拟机:
- 作为一台虚拟机,Pep/9用来说明机器语言的输入/输出操作。
- 汇编语言:
- 汇编语言是一种低级语言,使用助记符代替机器语言的二进制代码,使得程序更易于编写和理解。
- 汇编语言需要通过汇编器转换成机器语言才能被计算机执行。
- 表达算法:
- 介绍了伪代码的功能,包括变量、赋值、输入/输出、重复和选择等。
- 伪代码是一种表达算法的语言,它使得算法的描述更加接近自然语言,易于理解。
- 测试:
- 讨论了所有程序都必须经过测试以确定其正确性。
- 测试计划是一个文档,说明了要全面测试程序需要运行的次数以及运行程序使用的数据。
- 每套输入的数据称为测试用例。
《C语言程序设计》第四章
- 单个字符的输入/输出:
- 介绍字符常量的概念。
- 讲解如何进行字符的输入和输出操作。
- 数据的格式化屏幕输出:
- 讨论如何使用不同的格式符(如%d、%f、%s等)来格式化输出数据。
- 介绍printf函数的使用,包括字符串、数值、字符等不同类型数据的输出。
- 数据的格式化键盘输入:
- 讨论如何使用scanf函数进行格式化输入,包括如何处理输入的数值、字符和字符串。
- 介绍输入时的格式控制和输入验证。
- 扩充内容:
- 讨论使用%c格式符输入字符时可能遇到的问题,例如缓冲区读取换行符的问题。
- 提供解决%c格式符存在问题的解决方法,比如如何正确读取单个字符。
教材学习中的问题与解决过程
问题1:如何将算法转换为伪代码?
AI:
- 理解算法:
在开始之前,确保你完全理解算法的逻辑流程和目标。 - 确定输入和输出:
确定算法的输入(即算法开始时需要的数据)和预期的输出(即算法完成后应产生或返回的数据)。 - 分解算法:
将算法分解为更小的步骤或逻辑块,例如初始化、迭代、条件判断、计算等。 - 使用控制结构:
使用顺序结构(步骤按顺序执行)、选择结构(如if-else语句)和迭代结构(如for或while循环)来控制算法的流程。 - 描述操作:
用简单的英语描述每个步骤的操作。例如,“计算总和”,“检查是否满足条件”等。 - 使用伪代码关键字:
引入伪代码关键字,如 if, else, while, for, function, return 等,来表示不同的控制结构。 - 定义变量和数据结构:
为算法中使用的数据定义变量和数据结构,并在算法中适当位置进行初始化。 - 注释和清晰性:
在需要的地方添加注释,以提高伪代码的可读性。 - 检查逻辑:
检查伪代码的逻辑是否与原始算法一致,确保没有遗漏任何步骤。 - 迭代和优化:
根据需要对伪代码进行迭代和优化,以提高清晰度和效率。
问题2:为什么使用两次scanf时第二次会出现故障?
AI:
存在输入缓冲区问题:在使用scanf函数时,可能会遇到输入缓冲区中残留的换行符或其他字符,导致程序行为异常。
可以在scanf之后使用getchar()函数循环读取并丢弃缓冲区中的字符,直到遇到换行符或文件结束符(EOF)。另一种方法是使用scanf的格式字符串来忽略缓冲区中的特定字符。
基于AI的学习
学习进度条
计划学习时间:20h
实际学习时间:20h