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

news/2025/3/12 19:57:02/文章来源:https://www.cnblogs.com/serene99/p/18508324

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小时

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/822779.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第四次高级程序语言设计

2024高级语言程序设计:https://edu.cnblogs.com/campus/fzu/2024C 高级语言程序设计课程第四次个人作业:https://edu.cnblogs.com/campus/fzu/2024C/homework/13293 学号:102400115 姓名:洪育豪 6.16.1问题:无6.16.5问题:忘记将字符转成对应的ASCII值 导致不能输出 解决:检查…

抖音发送私信接口响应的二进制数据解析

请求发送评论接口得到: data=bap`\x00 \x97\xce\xaa(\xef\xaa\xcd\x98[\xe1\x07\xcex\xd3%\xa4\x06z\x07$N\x12c\xde\x9b\xf0\xb2\xff \xb6&\xcb\xce\xfc\xd5~\xbf\xd0=\x94 \x1e\xda\x9e|\xc7\xfcED\xf4\xeePI.\xc94\x99G\xb1D\xc8d\xf1f\x9e %\x12D\x9dN\x88\x84\xd2x,\…

fbprophet时序模型和LSTM有什么优劣么

fbprophet时序模型优点:1、易用性;2、灵活性;3、内置节假日效应等。fbProphet缺点:1、简单性;2、依赖性。LSTM的优势:1、学习复杂模式;2、适用于各自数据;3、模型调整。LSTM的劣势:1、计算复杂;2、难以理解;3、过拟合风险。LSTM模型通常需要更多的计算资源和时间来训…

如何在Linux上优化系统性能

​优化Linux系统性能需要遵循以下关键步骤:1. 识别和监控系统瓶颈;2. 最大化硬件资源使用;3. 优化内核参数和服务设置;4. 调整文件系统和存储性能;5. 选择合适的软件和工具。优化的第一步是通过监控工具了解系统的当前状态。1.识别和监控系统瓶颈 优化Linux系统性能的开始…

Java中ThreadLocal的实际用途是啥_1

### 开篇回答 Java中的ThreadLocal主要用于提供线程局部变量,这些局部变量不同于普通的变量,它们只在各自线程中可见、共享。ThreadLocal 的实际用途主要包括:保持数据库连接、保障 SimpleDateFormat 的线程安全、进行性能监控、传递上下文信息等。尤其是在多线程环境下,确…

球坐标下的 Laplace 算子推导

本文从球坐标、拉梅系数、正交曲线坐标系、梯度和 Nabla 算子、散度和 Laplace 算子,一步一步进行介绍和推导,最终得到在球坐标系下的 Laplace 算子的表达式。球坐标下的 Laplace 算子推导Ciallo~(∠・ω< )⌒★ 我是赤川鹤鸣!在学习球谐函数的时候,第一次听说球坐标下…

对通用骨架提取方法的改进

01 骨架提取的任务引入 骨架(或中轴线)具有在二进制形状和自然图像中提供紧凑而有意义的对象表示的潜力(以下简称为“形状”和“图像”),适用于图像表示和各种多媒体应用。在实践中,对象骨架通常以图形格式编码,即“骨架图”,以便于骨架修剪、匹配、分类和分析任务。为…

为什么要用云服务器

使用云服务器的原因有:一、灵活性和可扩展性;二、降低成本;三、高可用性和容错性;四、快速部署和弹性资源;五、备份和恢复;六、全球范围的访问等。灵活性和可扩展性是指,云服务器允许用户根据实际需求灵活地调整计算、存储和网络资源,从而满足不同业务场景的需求。一、…

如何在Linux上配置高可用的本地代码仓库(如GitLab)

​在Linux系统上部署和维护本地代码仓库,如GitLab,确保高可用性对于企业是至关重要的。本文将指导你完成以下步骤:1. 选择合适的硬件和操作系统;2. 安装和配置GitLab;3. 配置负载均衡;4. 数据备份与恢复;5. 监控与报警。通过本文,你将获得在Linux上部署高可用GitLab仓库…

js逆向实战之某网游登录参数password加密

声明:本篇文章仅用于知识分享,不得用于其他用途 网址:https://www.37.com/ 加密逻辑访问网址,输入用户名和密码,看触发哪些数据包。注意:这里的流量包要选择all,如果选择fetch/XHR则看不到任何数据包。明显看到password被加密了,先去搜索url中的关键字api/login.php。可…

什么是循环神经网络(RNN)

循环神经网络(Recurrent Neural Network,RNN)是一种深度学习模型,专门设计用于处理序列数据和时间序列问题。它具有一种独特的结构,允许信息在网络内部进行循环传递,以处理前后相关性和时序性。RNN的关键特性是它具有内部循环结构,可以接受来自上一个时间步的输出作为当…

只需初中数学知识就能理解人工智能大语言模型51

全面解释人工智能LLM模型的真实工作原理(一) 人工智能 #大语言模型LLM #机器学习ML #深度学习 #数据挖掘序言:为了帮助更多人理解,我们将分成若干小节来讲解大型语言模型(LLM)的真实工作原理,从零开始,不需额外知识储备,只需初中数学基础(懂加法和乘法就行)。本文包…