2024-2025-1 20241314 《计算机基础与程序设计》第五周学习总结

2024-2025-1 20241314 《计算机基础与程序设计》第五周学习总结

作业信息

这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计
这个作业要求在哪里 2024-2025-1计算机基础与程序设计第五周作业
这个作业的目标 Pep/9 虚拟机 机器语言与汇编语言 算法与伪代码 测试:黑盒,白盒
作业正文 正文

教材学习内容总结

Pep/9虚拟机

Pep/9是一个用于教育目的的虚拟机,旨在帮助学生理解计算机体系结构和低级编程。它提供了一种简单的机器语言,可以通过汇编语言(Pep/9汇编)进行编程。Pep/9虚拟机模拟了一种经典的计算机模型,包括寄存器、内存和输入/输出设备,允许用户编写和运行程序,同时观察程序的执行过程以加深对计算机工作原理的理解。

机器语言与汇编语言-

机器语言:最底层的编程语言,由二进制编码指令组成,直接被计算机硬件理解和执行。机器语言指令通常与特定计算机体系结构密切相关,不同的计算机有不同的机器语言。

汇编语言:一种较机器语言更易于人类理解的低级语言,使用助记符表示指令,而非二进制代码。汇编语言通常需要通过汇编程序转换为机器语言。汇编语言的优点在于它允许程序员操作硬件资源,并实现高效的程序控制。

算法与伪代码-

算法:一组明确的步骤,用于解决特定问题或执行特定任务。算法具有输入、输出和有限的执行步骤,通常需要在设计时考虑效率和正确性。
伪代码:一种用于设计算法的表达方式,使用类似于编程语言的语法,但不遵循特定语言的语法规则。伪代码的目的是以可读的形式描述算法的步骤,使其易于人类理解,同时便于转换为实际的编程代码。

测试:黑盒与白盒

  • 黑盒测试:一种软件测试方法,测试者只关注输入与输出,对软件内部的实现细节不做任何了解。黑盒测试的目标是验证软件的功能是否符合需求,并确保其在各种情况下都能正常运行。
  • 白盒测试:与黑盒测试相对,白盒测试要求测试者了解软件的内部结构和实现细节。测试者可以检查代码的逻辑、数据流和控制流,以确保程序的每个部分都被适当地测试,能够处理不同的输入和边界条件。

《C语言程序设计》第4章通常会涉及控制结构,主要介绍程序流程控制的基本概念和语法。这一章的主要内容一般包括以下几个方面:

  1. 顺序结构- 概念:程序中的语句按顺序执行,逐行处理。

示例:基本的输入输出操作,如 scanf 和 printf 等。
2.选择结构- if语句:用于根据条件执行不同的代码块。

单个 if语句:执行特定操作。
if...else语句:提供两条可能的执行路径。
嵌套 if语句:在一个 if 或 else 中再嵌套其他 if语句。
switch语句:基于变量的值执行多个可能的代码块,具有更清晰和简洁的代码结构,适用于多重选择场景。
3. 循环结构- for 循环:用于已知循环次数的情况,包含初始化、条件判断和增量部分。

while 循环:用于条件控制,先判断条件再执行循环体,适用于循环次数不确定的情形。
do...while 循环:至少执行一次循环体,之后再判断条件,相比 while 循环,它在条件判断前会先执行一次循环。
4. break 和 continue语句

break语句:用于提前终止循环或 switch语句。

continue语句:用于跳过当前循环的剩余部分,进入下一个迭代。
5. 嵌套控制结构- 可以在控制结构内部嵌套其他控制结构,以实现复杂的逻辑。

  1. 程序示例-该章节通常会提供具体的例子,以演示如何使用这些控制结构解决实际问题,加深学生对流程控制的理解。

  2. 注意事项- 比较条件时的注意事项(如使用 == 判断等)。
    在使用 for 和 while 循环时,注意初始化、条件和增量的设置,以防出现无限循环的情况。
    理解各种控制结构的作用,对于编写高效和可读性高的代码是至关重要的。

教材学习中的问题和解决过程

无限循环的成因

  1. 条件永远为真:
    循环条件没有正确更新,导致条件始终为真。
    示例:
    while (i <10) { // 条件永远为真 printf("%d\n", i); // i 没有变化,导致无限循环 }

2.增量/减量语句缺失:
在循环中,更新循环变量的语句缺失,导致条件无法变化。
示例:
while (i <10) { printf("%d\n", i); // i++ 没有包含在循环中 }
3.条件逻辑错误:
条件逻辑书写错误,使得循环无法退出。
while (i !=10) { // 如果逻辑错误,i 不会达到10 printf("%d\n", i); i--; // 本应增加 i,但实际上在减少 }
4.用户输入条件未适当检验:
当循环依赖用户输入时,若输入未进行验证,可能导致条件无法更改。
示例:
while (a <10) { printf("Enter a number: "); scanf("%d", &a); // 用户总是输入小于10 的数,导致循环继续 }

如何避免无限循环

  1. 仔细检查循环条件:
    确保循环的条件在预期的情况下能够变为假,检查条件表达式中的逻辑是否正确。
    2.确保增量/减量语句存在:
    在循环体内添加适当的变化语句,确保循环变量的值会变化,使得条件最终会不成立。
    3.使用调试工具:
    在程序中加入日志信息,打印循环变量的状态,帮助调试和理解循环的执行过程。
    4.给循环添加最大执行次数:
    为循环设定一个限制,以避免意外的无限循环。例如,使用一个计数器变量。
    示例:
    int max_attempts =1000; // 最大尝试次数 while (i <10 && max_attempts >0) { printf("%d\n", i); i++; max_attempts--; }
    5.使用条件语句校验用户输入:
    对用户输入进行验证,确保循环有可能退出。可以在循环内加入必要的输入判断。
    示例:
    do { printf("Enter a number (>=10 to exit): "); scanf("%d", &a); } while (a <10);
    通过采取上述措施,可以有效避免程序中出现无限循环的问题,确保程序在逻辑上可以正常退出。

基于AI的学习





  • 计划学习时间:20小时

  • 实际学习时间:20小时

posted @ 2024-10-27 15:05  欧阳嘉盛  阅读(2)  评论(0编辑  收藏  举报