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 函数的定义,不同范型的编程语言
posted @ 2022-10-23 19:56  20221320冯泰瑞  阅读(19)  评论(0编辑  收藏  举报