2022-2023-1 20221320 《计算机基础与程序设计》第八周学习总结
学期(2022-2023-1) 学号(20221320) 《计算机基础与程序设计》第八周学习总结
作业信息
各项要求 | 具体内容 |
---|---|
<班级的链接> | 2022-2023-1-计算机基础与程序设计 |
<作业要求的链接> | 2022-2023-1计算机基础与程序设计第八周作业 |
作业的目标 | 1.学习目标: 功能设计与面向对象设计、面向对象设计过程、面向对象语言三要素、汇编、编译、解释、执行。 |
作业的目标 | 2.学习任务:加入云班课,参考本周学习资源、自学教材:计算机科学概论第9章 并完成云班课测试《C语言程序设计》第7章并完成云班课测试。 |
作业的目标 | 3.参考上面的学习总结模板,把学习过程通过博客(随笔)发表,博客标题“学年 学号 《计算机基础与程序设计》第八周学习总结”,博客(随笔)要通过作业提交,截至时间本周日 23:59。 |
作业正文 |
教材学习内容总结
《计算机科学概论》第九章:讲述了什么是面向对象方法,具体解释了对象,对象类,方法的定义,及设计方法的四步:头脑风暴,过滤,场景,责任算法,总结,之后讲了两种翻译工具即编译器和解释器,然后讲了程序设计的范型:命令示范型(面向对象的范型和面向过程的范型)声明式范型(函数式范型和逻辑式范型)然后讲了高级语言的功能性:布尔表达式,数据归类,输入输出结构,控制结构等等,最后讲了面向对象语言的功能性:封装,继承和多态,章末小结了过程设计和面向对象设计的区别。
《C语言程序设计》第七章:10.17的课上汪老师讲解了编写程序的两个重要思想:分而治之和信息隐藏。讲解了函数的三种分类:标准库函数、自定义函数、第三方函数。讲解了函数的命名方式其中几个重要的组成部分:返回值,函数名,形式参数,函数体。10.19的课上汪老师讲述了如何进行函数调用、函数的参数传递、函数执行、函数返回、函数定义、函数声明,函数封装的原理,如何增加函数的健壮性,函数的嵌套使用,函数的复用,函数嵌套使用中的递归调用。容易混淆函数的定义和函数的声明,这里特别写出,帮助记忆。
教材学习中的问题和解决过程
- 问题1:为什么c语言规定函数不能嵌套定义,但是可以嵌套调用?
- 问题1解决方案:通过百度百科搜索,我得到了如下的优良解答:函数可以嵌套调用 但是不能嵌套定义 :就是不能在一个函数里面再写一个函数。不能够在函数中定义函数,就是不能够“嵌套定义函数”。例如,我们不可以把func函数的定义放在main函数的定义中。例如:
int main(int argc, char* argv[])
{
//定义func函数
void func(int a)
{
printf("in func, a = %dn", a);
}
func(6);
return 0;
}
这样的代码,在VC编译器,或者Visual Studio编译器中,是非法定义的代码。这样的代码是错误的,虽然在func函数的调用之前,定义了func函数。但是,不能够在main函数中定义func函数,就是不能够嵌套定义函数。但是,在Ubuntu系统的GCC编译器中,支持嵌套定义函数的语法。虽然GCC支持这样的语法,但是,我们不建议嵌套定义函数。这样的语法,是不提倡的写法。不便于代码的移植。
代码调试中的问题和解决过程
- 问题1:
#include <stdio.h>
int main()
{
int a,n;
float sum;
printf("input sells:");
scanf("%d",&a);
n=a/1000;
switch(n)
{
case 0:
case 1:
sum=500;
break;
case 2:
case 3:
case 4:
sum=(float)(a-2000)*0.08+500;
break;
case 5:
case 6:
case 7:
case 8:
case 9:
sum=(float)(a-5000)*0.10+500+3000*0.08;
break;
default:
sum=(float)(a-10000)*0.12+5000*0.10+3000*0.08+500;
}
printf("salary is %f",sum);
return 0;
}
为什么在输入2001时答案不是500.080000而是500.079987?
- 问题1解决方案:这个是程序在使用浮点数计算时本来存在的问题,浮点数计算出的结果不可能是一个精确值,因为浮点数的表数方式就是不精确的,其计算结果肯定是不精确的。如果非要解决可以使用精度显示功能控制精度,就可以得到理想值。
上周考试错题总结
- 错题1:判断题
1 分
简单
The properties of an abstract data type are tightly related to the implementation of that data type.
正确答案: 错误
你的作答: 正确
原因:题目中所述的“be tightedly related to”与书上类容不符。
理解情况:书上的原句是“抽象数据类型是属性(数据和操作)明确的与特定实现分离的容器”。
其他(感悟、思考等)
在写教材内容总结的时候,可以学习倪怡丹同学的写法,用一些思维导图的方式加深自己对相关知识的认知,看了武久淳学长的第五周学习总结,知道了自己使用markdown编译器的水平有待提高,自己将学习武久淳学长给的链接提高自己博客的规范程度。最近计算机科学概论自学的内容和C语言的教学内容有部分重合,这样在通过两个不同的视角看待同一个问题的同时,又可以复习之前学习的内容。
补充
做作业时发现对二叉检索树的三种遍历不熟悉,也没有完全理解,在这里附图一张,帮助记忆。
学习进度条
博客量(新增/累计) | 代码行数(新增/累计) | 学习时间(新增/累计) | 重要成长 | |
---|---|---|---|---|
目标 | 70 | 3000 | 300 | |
第一周 | 2/2 | 0 | 10/10 | 开始学习写博客 |
第二周 | 1/3 | 300/300 | 20/30 | 学习如何自主预习,初识信息安全专业 |
第三周 | 6/9 | 250/550 | 20/50 | 各种进制表数方法 |
第四周 | 1/10 | 50/600 | 15/65 | 逻辑电路 |
第五周 | 3/13 | 100/700 | 10/75 | 博客排版和编辑走上正轨 |
第六周 | 1/14 | 100/800 | 10/85 | 解决问题的Polya新思想 ,选择结构 |
第七周 | 1/15 | 300/1100 | 20/105 | 抽象数据类型,循环结构 |
第八周 | 2/17 | 150/1250 | 20/125 | 函数的定义,不同范型的编程语言 |