2022-2023-1 20211319《信息安全专业导论》第八周学习总结
2021-2022-1 20211326《信息安全专业导论》第八周学习总结
作业信息
加入云班课,参考本周学习资源
自学教材
计算机科学概论第9章 并完成云班课测试
《C语言程序设计》第7章并完成云班课测试
教材教学内容总结
一、面向对象设计方法
面向对象设计的重点是确定问题中的对象,并根据对象的属和行为把它们抽象(分组)成类。下面是面向对象分解的四个阶段。
1、头脑风暴:在这个阶段中,为确定问题中的类进行第一轮讨论。
2、过滤:在这个阶段中,将检查提出的类。
3、场景:在这个阶段中,将确定每个类的责任。
4、责任算法:在这个阶段中,将为每个责任编写算法。
二、翻译过程
1、编译器
编译器(compiler):把用高级语言编写的程序翻译成机器码的程序。
输入 输出
用高级程序设计语言编写的程序--------→编译器--------→用机器码编写的程序
注意:编译器是一种程序,因此,要编译一个程序,就必须具有这个编译器在特定机器上的机器码版本。想要在多种类型的机器上使用一种高级语言,就要具备这种语言的多个编译器。
2、解释器
解释器(interpreter):输入用高级语言编写的程序,指导计算机执行每个语句指定的动作的程序。
三、程序设计语言范型
存在多种高级程序设计语言的模型,被分类为命令式(面向过程和面向对象)或者声明式(功能或逻辑)。
命令式模型描述了被执行的处理过程。声明式模型描述了被执行的是什么,而不是怎样被完成。面向过程模型基于要完成的任务体系结构的概念;面向对象的模型基于交互对象的概念。函数式模型基于函数的数学概念;而逻辑模型则是基于数学逻辑。
布尔表达式是关于程序状态的断言。程序用布尔表达式来判断执行哪部分代码(条件语句)或是否重复执行某段代码(循环语句)。
程序中的每个变量都有自己的数据类型。所谓强类型化,指的是变量是给定类型且只有类型相符的值才能被存入变量。把一个值存入变量叫作给这个变量赋值(赋值语句)。
面向对象的程序用以下结构刻画:
封装:实施信息隐蔽的语言特性,用类结构实现
继承:允许一个类继承另一个类的属性和行为的语言特性。
多态:语言具备的消除同名操作的歧义的能力。
教材学习中的问题和解决过程
问题1:如图,代码报错
问题1解决方案:通过请教汪永好老师得知,C语言不能给函数赋值,因此代码else下的return应该直接改为return n * fact(n - 1);
问题2:编译型语言和解释型语言有什么优缺点
问题2解决方案:查阅资料,总结出了如下表格
资料来源:编译型语言和解释型语言的区别
问题3:对多文件编程依旧十分迷糊
问题3解决方案:暂无,打算先继续研读课本
代码调试中的问题和解决过程
问题:题目要求计算四分之pi,但是结果错误
问题解决方案:经过调试发现,while后续条件少了绝对值,正确的条件应该是fabs(temp) >= 1e-4;
上周考试错题总结
无错题
其他
有一说一,利用泰勒公式算函数近似值时,经常要用到阶乘。在主函数里计算需要的阶乘相当不便,但自定义函数之后,一切困难迎刃而解,从中体会到了模块化程序设计的魅力
学习进度条
代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第5周 170/705 2/11 15/67
第6周 300/1005 6/17 20/87
第7周 350/1355 1/18 30/117
第8周 500/1855 3/21 27/144
计划学习时间:30小时
实际学习时间:27小时
改进情况:
参考资料
《计算机科学概论》
《C语言程序设计》