学期:2024-2025-1 学号:20241303 《 计算机基础与程序设计》第八周学习总结

作业信息

这个作业属于哪个课程 <班级的链接>(如2024-2025-1-计算机基础与程序设计
这个作业要求在哪里 <作业要求的链接>(如2024-2025-1计算机基础与程序设计第八周作业)
这个作业的目标 <写上具体方面> 计算机科学概论(第七版)第9章 并完成云班课测试,《C语言程序设计》第7章并完成云班课测试
作业正文 ... 本博客链接

教材学习内容总结

《计算机科学概论(第七版)》第9章主要内容如下:

  1. 程序设计语言范型

    • 命令式范型
      • 面向过程:以过程为中心,将程序看作一系列按顺序执行的步骤,注重解决问题的具体流程。
      • 面向对象:以对象为基础,把现实世界中的事物抽象成对象,通过对象之间的交互来解决问题。对象包含数据(属性)和操作数据的方法(行为),具有封装、继承、多态等特性。
    • 声明式范型
      • 函数式模型:强调使用函数来进行计算和编程,函数被视为一等公民,可以作为参数传递、返回值或存储在数据结构中。函数式编程避免了可变状态和副作用,注重函数的组合和变换。
      • 逻辑编程:基于逻辑推理的编程范式,程序由一系列逻辑规则和事实组成,通过逻辑推理引擎来求解问题。
  2. 高级程序设计语言的功能性

    • 布尔表达式:用于表示逻辑条件,是程序中进行条件判断和控制流程的基础。
    • 数据归类:涉及到数据的类型和分类,不同的数据类型有不同的操作和存储方式,程序设计语言需要提供相应的数据类型来支持对各种数据的处理。
    • 输入/输出结构:程序与外部世界进行交互的方式,包括从用户获取输入和向用户输出结果,以及与文件、网络等外部设备进行数据交换。
    • 控制结构:用于控制程序的执行流程,如顺序结构、选择结构(如 if 语句)、循环结构(如 for 循环、while 循环)等。
  3. 面向对象语言的功能性

    • 封装:将数据和操作数据的方法封装在一个类中,对外隐藏内部的实现细节,只提供公共的接口供外部访问,提高了代码的安全性和可维护性。
    • :是对象的模板或蓝图,定义了对象的属性和方法,通过类可以创建多个具有相同属性和行为的对象。
    • 继承:子类可以继承父类的属性和方法,并可以在此基础上进行扩展和修改,实现了代码的复用和扩展。
    • 多态:不同类的对象可以对同一消息做出不同的响应,增加了程序的灵活性和可扩展性。
  4. 过程设计与面向对象设计的区别

    • 过程设计:侧重于解决问题的具体步骤和过程,将问题分解为一系列的函数或过程,通过函数的调用来实现程序的功能。
    • 面向对象设计:更关注问题中的对象及其相互关系,将问题域中的实体抽象成对象,通过对象之间的消息传递和协作来解决问题。

    在《C语言程序设计》教材中,第7章内容总结

    • 数组的定义和声明
      • 一维数组:介绍一维数组的基本语法。例如,int arr[5]; 定义了一个名为 arr 的整型数组,它可以存储5个整数。数组的下标从0开始,所以可以通过 arr[0]arr[1]等访问数组中的元素。
      • 二维数组:int matrix[3][4]; 定义了一个3行4列的二维整型数组。它在内存中是按行存储的,访问元素时使用双下标形式,如 matrix[1][2] 表示访问第2行(下标从0开始)第3列的元素。
    • 数组的初始化
      • 一维数组初始化:可以在定义数组时进行初始化,如 int arr[3] = {1, 2, 3};,也可以部分初始化,如 int arr[5]= {1, 2};,此时未初始化的元素会被自动初始化为0(对于全局数组和静态数组)或不确定的值(对于局部数组)。
      • 二维数组初始化:例如,int matrix[2][3]={{1,2,3},{4,5,6}};
    • 数组在内存中的存储方式
      • 一维数组:在内存中是连续存储的,元素之间的地址是连续的。例如,对于 int arr[5];,如果 arr 的首地址是 0x1000,那么 arr[1] 的地址可能是 0x1004(假设 int 类型占4个字节)。
      • 二维数组:对于二维数组,它的行与行之间也是连续的。比如对于 int matrix[3][4];,可以把它看作是一个包含3个元素的一维数组,每个元素又是一个包含4个整数的一维数组(注意:二维数组的列不可以省略)。
    • 数组作为函数参数
      • 当数组作为函数参数时,实际上传递的是数组的首地址。
        例如
        int Readscore(int score[],int n);
        其中,n代表了score数组的下标

基于AI的学习



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

问题:在输入每个学生的成绩时,输出记录输入学生的人数时,与实际不相符
解决过程:要将i进行初始化为-1。

int Readscore(int score[],long num[])
{
    int i=-1;
    do
    {
        i++;
        printf("\nInput score and num:");
        scanf("%d%ld",&score[i],&num[i]);
    }while(score[i]>=0);
    return i;
}

上周考试错题总结

上周进行了一次小测验,一共五道题,但结果不尽人意,出现了很多错误。
错误1:如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则A和B称为亲密数。求10000以内的亲密数。
在运行时无法输出结果
原因:无法正确求出某一个整数的全部因子。同时,在最后比计算全部因子的和并做出比较时,存在许多语法问题。

#include <stdio.h>
int main()
{
    int a, b, i, n;
    for (a = 1; a < 10000; a++)
    {
        b = 0;
        for (i = 1; i <= a / 2; i++)
        {
            if (a % i == 0)
                b += i;
        }
 
        n = 0;
        for (i = 1; i <= b / 2; i++)
        {
            if (b % i == 0)
                n += i;
        }
        if (n == a && a < b)
            printf("(%4d,%4d)\n", a, b);
    }
 
    return 0;
}

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第五周 900/1500 1/2 20/20
第六周 1100/1600 1/4 18/38
第七周 1300/1800 1/7 22/60
第八周 1400/2000 1/9 30/90
posted @ 2024-11-16 19:04  段蕾  阅读(12)  评论(0编辑  收藏  举报