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

作业信息

这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计
这个作业要求在哪里 (2024-2025-1计算机基础与程序设计第四周作业)
这个作业的目标
作业正文 2024-2025-1 学号20241307《计算机基础与程序设计》第四周学习总结

教材学习内容总结

第四章:门与电路
基本逻辑门:
非门(Not Gate):对输入信号求反,只有一个输入和一个输出。输入为 1 时,输出为 0;输入为 0 时,输出为 1。
与门(And Gate):执行 “与” 操作,当且仅当所有输入都为 1 时,输出才为 1,否则输出为 0。
或门(Or Gate):执行 “或” 操作,只要有一个或多个输入为 1,输出就为 1,只有所有输入都为 0 时,输出才为 0。
异或门(Xor Gate):如果两个输入不同(一个为 1,另一个为 0),则输出为 1;如果两个输入相同(都为 0 或都为 1),则输出为 0。
与非门(Nand Gate):是与门的反操作,即先进行与运算,然后对结果取反。
或非门(Nor Gate):是或门的反操作,先进行或运算,再对结果取反。
电路表示法:
布尔代数:是表示二值逻辑函数的数学表示法,可用于对逻辑电路进行数学分析和设计,具有交换律、结合律、分配律和德摩根定律等性质,能帮助简化电路设计。
逻辑框图:是电路的图形化表示,每种类型的门都有专用的符号,通过将逻辑门的符号按照电路的连接方式组合起来,可以直观地表示电路的结构和逻辑功能。
真值表:列出了所有可能的输入值及其对应的输出值,是一种简单明了地展示逻辑门或电路功能的方式,对于分析和设计复杂的逻辑电路非常有用。
电路的应用与组成:
半加器和全加器:半加器是一种基本的加法电路,能对两个二进制位进行加法运算,产生本位和以及向高位的进位;全加器则考虑了低位的进位,可对三个二进制位进行加法运算,在数字电路的加法运算中起着重要作用。
多路复用器:根据选择信号,从多个输入信号中选择一个输出的电路,常用于数据选择和传输。
存储器电路:包括寄存器和锁存器等,寄存器是 CPU 内部的高速存储单元,用于暂存指令和数据;锁存器可以保持数据的状态,直到被新的数据覆盖。
集成电路:是在一块硅片上嵌入了多个门的电路,它的出现使得电子设备的体积大大减小,性能和可靠性得到提高,是现代电子技术的基础。
第五章:计算部件
冯诺依曼体系结构:
基本组成部分:计算机基本上都遵循冯诺依曼体系结构,该结构包括内存单元、算术逻辑单元、输入单元、输出单元和控制单元。
内存单元:用于存储程序和数据,是计算机中数据的临时和永久存储场所。
算术逻辑单元(ALU):执行算术运算(如加、减、乘、除)和逻辑运算(如与、或、非、异或)的计算机部件,是计算机进行数据处理的核心。
输入单元:接收要存储在内存中的数据,例如键盘、鼠标、扫描仪等输入设备。
输出单元:把存储在内存中的数据打印或显示出来,或者把存储在内存或其他设备中的信息制成一个永久副本,如显示器、打印机等输出设备。
控制单元:控制其他部件的动作,从而执行指令序列,确保计算机的各个部件能够协同工作。
信息处理方式:处理信息的部件独立于储存信息的部件,程序和数据以二进制形式存储在内存中,在执行时由控制单元读取指令并指挥其他部件进行操作。
计算机的运行过程:
读取 - 执行周期:计算机执行指令的基本过程是读取 - 执行周期。首先,从内存中读取指令到指令寄存器,然后由控制单元对指令进行译码,确定要执行的操作和操作数的地址。接着,根据指令的要求从内存中读取操作数到相应的寄存器,在算术逻辑单元中进行运算或在其他部件中进行操作,最后将结果写回内存或输出到外部设备。
寄存器与存储设备:
寄存器:是 CPU 中的一小块存储区域,用于存储中间值或特殊值,速度非常快,但容量较小。常见的寄存器有通用寄存器、程序计数器、状态寄存器等。通用寄存器用于暂存操作数和运算结果;程序计数器存放下一条要执行的指令的地址;状态寄存器用于保存 CPU 的状态信息,如进位标志、零标志等。
存储设备:计算机中有多种存储设备,包括随机存取存储器(RAM)和只读存储器(ROM)。RAM 具有易失性,在关闭电源后,其存储的内容会丢失,用于临时存储程序和数据;ROM 在断电后仍然保持位配置,其内容是永久性的、稳定的、不可更改的,通常用于存储计算机的基本输入输出系统(BIOS)等重要信息。主存通常包括一些 ROM 和通用的 RAM。
并行体系结构:
并行计算:是一种能够同时处理多个任务或数据的计算方式,可以大大提高计算机的处理速度和效率。并行计算可以在多个处理器或计算核心上同时进行,也可以在单个处理器上通过并发执行多个线程或进程来实现。
并行硬件:为了支持并行计算,需要相应的并行硬件结构,如多核处理器、并行处理机、分布式系统等。这些硬件结构可以同时处理多个任务,提高计算机的性能和处理能力。
数据类型:
基本数据类型分类:
整型:包括基本整型int、短整型short int、长整型long int以及双长整型long long int。不同的整型类型在内存中占用的字节数不同,所能表示的数据范围也有差异,例如int类型通常在不同系统中占用 4 个字节,能表示的整数范围大致是 -2147483648 到 2147483647。
浮点型:分为单精度浮点型float和双精度浮点型double。float类型一般占用 4 个字节,提供大约 6 到 7 位有效数字的精度;double类型通常占用 8 个字节,精度更高,能提供大约 15 到 16 位有效数字的精度。
字符型:用char类型表示,占用 1 个字节的内存空间,用于存储字符的 ASCII 码值。例如,字符'A'的 ASCII 码值是 65,在程序中可以用char类型的变量来存储这个字符。
数据类型的作用与意义:不同的数据类型适用于不同的场景,合理选择数据类型可以有效地利用内存空间,提高程序的运行效率和准确性。比如,如果只需要存储整数且数值范围不大,使用int类型即可;如果需要存储小数且对精度要求不高,可以选择float类型;如果对精度要求很高,则应使用double类型。
标识符:
定义与组成规则:标识符是用于标识变量、符号常量、函数、数组、类型等的名称。它只能由字母、数字和下划线这 3 种字符组成,且第 1 个字符必须为字母或下划线。例如,myVariable、_count都是合法的标识符,而3num(以数字开头)、my-variable(包含减号)等则是不合法的标识符。
命名规范与注意事项:变量名应该尽量反映变量在程序中的作用与含义,以便提高程序的可读性。同时,C 语言是区分大小写的,例如myVariable和MyVariable是两个不同的标识符。另外,不能使用关键字作为变量名,关键字是 C 语言中具有特定含义的保留字,如if、while、for等。
运算符与表达式:
算术运算符:包括+(加)、-(减)、(乘)、/(除)、%(取余)。例如,5 + 3的结果是 8,7 - 2的结果是 5,3 * 4的结果是 12,10 / 3的结果是 3(因为两个整数相除结果为整数),10 % 3的结果是 1(求余数)。需要注意的是,如果除数为 0,除法运算会导致程序出错。
关系运算符:有>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)、!=(不等于)。关系运算符的结果是一个布尔值,即true或false,在 C 语言中分别用整数 1 和 0 表示。例如,5 > 3的结果为 1,3 < 5的结果为 1,5 == 5的结果为 1,5!= 3的结果为 1,而3 >= 5的结果为 0,3 <= 5的结果为 1。
逻辑运算符:包括!(非)、&&(与)、||(或)。!运算符是对一个布尔值取反,&&运算符要求两个操作数都为真时结果才为真,||运算符只要有一个操作数为真结果就为真。例如,!true的结果为false,true && true的结果为true,true || false的结果为true。
赋值运算符:=是基本的赋值运算符,用于将一个值赋给一个变量。例如,int a = 10;表示将整数 10 赋给变量a。还有扩展赋值运算符,如+=、-=、
=、/=、%=等,它们将运算和赋值操作结合在一起,例如a += 5相当于a = a + 5。
其他运算符:还有位运算符(如<<、>>、~、|、^、&)、条件运算符?:、逗号运算符,、指针运算符*和&、求字节数运算符sizeof、强制类型转换运算符(类型)等。
不同类型数据间的混合运算:
自动类型转换规则:如果一个运算符两侧的数据类型不同,则先自动进行类型转换,使二者成为同一种类型,然后进行运算。例如,整型和实型数据进行运算时,系统会将整型数据自动转换为实型数据再进行运算。具体规则为,如果运算的两个数中有一个数为float或double型,结果是double型;如果int型与float或double型数据进行运算,先把int型和float型数据转换为double型,然后进行运算,结果是double型;字符型数据与整型或实型数据进行运算时,会把字符的 ASCII 码与整型或实型数据进行运算。
强制类型转换:当自动类型转换不能实现目的时,可以使用强制类型转换。强制类型转换运算符的格式为(类型名)(表达式),例如(double)a将变量a转换成double型,(int)(x + y)将x + y的值转换成int型。
程序的基本结构与语句类型:
控制语句:
条件语句:if语句用于根据条件执行不同的代码块。例如if (condition) { // 条件为真时执行的代码 } else { // 条件为假时执行的代码 }。if语句可以嵌套使用,以实现更复杂的条件判断。
循环语句:包括for循环、while循环和do-while循环。for循环适用于已知循环次数的情况,例如for (int i = 0; i < 10; i++) { // 循环体代码 };while循环适用于在循环开始前不确定循环次数,只知道循环结束条件的情况,例如while (condition) { // 循环体代码 };do-while循环则至少会执行一次循环体,然后再根据条件判断是否继续循环,例如do { // 循环体代码 } while (condition);。
break和continue语句:break语句用于跳出离它最近的循环或switch语句,结束循环;continue语句用于结束本次循环,进入下一次循环。
switch语句:用于根据一个表达式的值选择执行不同的代码块,例如switch (expression) { case value1: // 当表达式的值为 value1 时执行的代码; break; case value2: // 当表达式的值为 value2 时执行的代码; break; default: // 当表达式的值与所有 case 中的值都不匹配时执行的代码; }。
函数调用语句:用于调用已定义的函数,执行函数中的代码。例如function_name(arguments);,其中function_name是函数名,arguments是传递给函数的参数(如果函数不需要参数,则括号内为空)。
表达式语句:由一个表达式加一个分号构成,最典型的是由赋值表达式构成的赋值语句。例如a = 3;就是一个赋值语句,它将 3 赋给变量a。
空语句:只有一个分号的语句即为空语句,它可以用来作为流程的转向点,也可用来作为循环语句中的循环体(表示循环体什么也不做)。
复合语句:可以用{}把一些语句和声明括起来成为复合语句,也称为语句块。复合语句在逻辑上是一个整体,可以在程序中作为一个单独的单元来使用。
数据的输入输出:
输入函数:scanf函数用于从标准输入(通常是键盘)读取用户输入的数据,并将其存储到指定的变量中。例如scanf("%d", &a);用于读取一个整数并存储到变量a中,&符号是取地址符,用于获取变量的内存地址,以便scanf函数能够正确地将数据存储到变量中。
输出函数:printf函数用于将数据输出到标准输出(通常是屏幕)。例如printf("%d", a);用于输出变量a的值,其中%d是格式控制符,表示输出一个整数。除了%d,还有%f(输出浮点数)、%c(输出字符)、%s(输出字符串)等格式控制符。
字符输入输出函数:getchar函数用于从标准输入读取一个字符,putchar函数用于向标准输出输出一个字符。例如char ch = getchar();用于读取一个字符并存储到变量ch中,putchar(ch);用于输出变量ch中的字符。

基于AI的学习



其他(感悟、思考等,可选)

学习 C 语言程序设计第三章,你或许对程序的控制结构有了更深刻的理解。在这一章节中,你探索了条件判断和循环语句的魅力,它们就像是程序的指挥棒,引导着程序的流向。你开始体会到如何通过巧妙地运用这些结构,让程序更加智能和高效。这不仅是知识的积累,更是思维的拓展。你学会了用代码去解决实际问题,感受着编程带来的成就感。每一行代码都是你的创造,每一个程序都是你的智慧结晶。继续前行,你将在 C 语言的世界中创造更多精彩。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 4/4 18/38
第三周 500/1000 5/7 22/60
第四周 500/1300 6/9 30/90
posted @ 2024-10-20 19:13  20241307张岳峰  阅读(19)  评论(0编辑  收藏  举报