2022-2023-1 20221304 《计算机基础与程序设计》第五周学习总结

2022-2023-1 20221304 《计算机基础与程序设计》第五周学习总结

作业信息

这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP
这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK05
这个作业的目标 自学教材《计算机科学概论》第6章并完成云班课测试,自学《C语言程序设计》第4章并完成云班课测试
作业正文 https://www.cnblogs.com/liu-221304-yi-tong/p/16727382.html

教材学习内容总结

在《C语言程序设计》第4章中,我学到了数据的格式化屏幕输出、数据的格式化键盘输入、单个字符的输入输出、用getchar()输入数据存在的问题、用%c输入字符时存在的问题。学完《计算机科学概论》第6章,我能够区分机器语言和汇编语言,描述虚拟机Pep/9的重要特性,区分立即寻址模式和直接寻址模式,编写一个简单的机器语言程序,描述创建和运行汇编语言程序的步骤,编写一个简单的汇编语言程序,区分给汇编器的指令和要翻译的指令,区分执行一个算法和开发一个算法,描述表达算法时使用的伪代码结构,使用伪代码来描述算法,描述两种测试方式,为简单的汇编语言程序设计和实现测试方案。

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

  • 问题1:什么是伪代码?
  • 问题1解决方案:我查了资料,有这些说法“伪代码是一种算法描述语言。伪代码的目的是使被描述的算法可以容易地以任何一种编程语言实现。所以伪代码应该结构清晰、代码简单、可读性好,并且类似自然语言。 以编程语言的书写形式指明算法职能。伪代码相比程序语言它更类似自然语言。它是半角式化、不标准的语言。可以将整个算法运行过程的结构用接近自然语言的形式描述出来。人们在用不同的编程语言实现同一个算法时意识到,功能时可能很难,因为程序语言的形式限制了程序员对程序关键部分的理解。而伪代码提供了更多的设计信息,每一个模块的描述都必须与设计结构图一起出现。伪代码是一种非正式的,类似于英语结构的,用于描述模块结构图的语言。”
  • 问题2:什么是白盒测试?什么是黑盒测试?
  • 问题2解决方案:我查了资料,有这些说法“白盒测试(white-box Testing,又称逻辑驱动测试,结构测试),它是知道产品内部过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动,基路测试等,主要用于软件验证。白盒测试工具是对源代码进行的测试,测试的主要内容包括词法分析与语法分析,静态错误分析,动态检测等。目前测试工具主要支持的开发语言包括:标准C、C++、VisualC++、Java、Visual J++等。黑盒测试是一种重要的测试策略,又称为数据驱动的测试或输入/输出驱动的测试。使用这种测试方法时,将程序视为一个黑盒子。测试目标与程序的内部机制和结构完全无关,而是将重点集中放在发现程序不按其规范正确运行的条件。”
  • 问题3:哈希加密是什么?
  • 问题3解决方案:查阅资料得知,加密哈希函数是一个哈希函数,它接受输入或消息并转换为固定大小的字节串。该字节串被称为哈希值或消息。加密哈希函数的主要功能是在由逻辑和数学支配的无需信任的网络中确保信息的完整性。它旨在确保拥有区块数据副本的所有网络用户间的通信是可信的。我们可将其与人类指纹相比较。每个人都有独特的指纹,难以预测和伪造。它可用作唯一标识符。指纹就像标准的随机数一样,难以猜测和实现。如果有人改变指纹,他或她将改变身份。同样地,网络中的用户也无法猜出产生数字签名或指纹的数据,否则会滋生区块链系统中的不信任和不一致。因此,加密哈希函数就像单向函数,它接受一个输入并产生伪随机输出。此函数总是产生给定文件大小的输出消息。产生的结果t有时被称为输出,而输入被称为原像。加密哈希函数与常规哈希函数的不同在于它们为安全性而创建,但为方便起见,我们现将加密哈希函数称为哈希函数。正是这种所产生的唯一标识符的独特性阻止了某些人修改或替换区块交易。这种防篡改系统已在许多加密货币用户间增加了许多信任与信心。

代码调试中的问题和解决过程

  • 问题1:C语言里“头文件”和“源文件”作用分别是什么?
  • 问题1解决方案:查阅资料得知,一般而言,每个C++/C程序通常由头文件(header files)和定义文件(definition files)组成。头文件作为一种包含功能函数、数据接口声明的载体文件,用于保存程序的声明(declaration),而定义文件用于保存程序的实现 (implementation)。一般在一个应用开发体系中,功能的真正逻辑实现是以硬件层为基础,在驱动程序、功能层程序以及用户的应用程序中完成的。 头文件的主要作用在于调用库功能,对各个被调用函数给出一个描述,其本身不包含程序的逻辑实现代码,它只起描述性作用,告诉应用程序通过相应途径寻找相应功能函数的真正逻辑实现代码 。用户程序只需要按照头文件中的接口声明来调用库功能,编译器会从库中提取相应的代码。从以上结构图来看,头文件是用户应用程序和函数库之间的桥梁和纽带。在整个软件中,头文件不是最重要的部分,但它是C语言家族中不可缺少的组成部分。做一个不算很恰当的比喻,头文件就像是一本书中的目录,读者(用户程序)通过目录,可以很方便就查阅其需要的内容(函数库)。在一本书中,目录固然重要,但绝对不是一本书的核心的、最重要的部分。源文件是相对目标文件和可执行文件而言的。源文件就是用汇编语言或高级语言写出来的代码保存为文件后的结果。目标文件是指源文件经过编译程序产生的能被cpu直接识别二进制文件。可执行文件就是将目标文件连接后形成的可执行文件,当然也是二进制的。
  • 问题2:代码中的%f和%7.2f的区别是什么啊?
  • 问题2解决方案:查阅课本后,了解了.2说明显示精度即保留两位小数,7说明输出数据的域宽是7(>7则以实际为准)。
  • 问题3:用%c输入字符时存在问题。
  • 问题3解决方案:通过看书得知,在用%c读入字符时,空格字符和转义字符都会被当作有效字符读入,这是使用%c格式时尤其要注意的一点。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 3000行 30篇 200小时
第一周 50/50 2/2 15/15
第二周 100/150 2/4 15/30
第三周 150/350 3/7 20/50
第四周 150/500 3/10 20/70
第五周 150/650 2/12 20/90
  • 计划学习时间:20小时

  • 实际学习时间:20小时

posted @ 2022-10-02 10:15  20221304刘奕彤  阅读(72)  评论(0编辑  收藏  举报