首页 > 编程语言 >20221403 《计算机基础与程序设计》第八周学习总结

20221403 《计算机基础与程序设计》第八周学习总结

时间:2022-10-22 20:36:47浏览次数:74  
标签:NI 20221403 level int 第八 面向对象 printf 程序设计 10

学期(2022-2023) 学号(20221403) 《计算机基础与程序设计》第八周学习总结

作业信息

这个作业属于哪个课程 <班级的链接>(如2022-2023-1-计算机基础与程序设计
这个作业要求在哪里 <作业要求的链接>(如2022-2023-1计算机基础与程序设计第八周作业
这个作业的目标 功能设计与面向对象设计,面向对象设计过程,面向对象语言三要素,汇编、编译、解释、执行
作业正文 ... 本博客链接

教材学习内容总结

  1. 功能设计与面向对象设计的区别
  • 功能设计是按照产品定位的初步要求,在对用户需求及现有产品进行功能调查分析的基础上,对所定位产品应具备的目标功能系统进行概念性构建的创造活动。
  • 面向对象设计采用与结构化设计不一样的视角,他是将世界抽象成一系列具有一定职责的自由数据个体,个体之间相互协作,共同完成高级的行为.
  1. 面向对象设计过程
  • 先根据需求找出对象
  • 抽象每一个对象为类
  • 找出各对象之间的关系,使用组合、继承、分类、扩展等描述这些关系
  • 找出每个对象实体要做的事,写对象方法
  • 找出每个类在不需要有对象实体的情况下要做的事,写类方法
  1. 面向对象语言三要素
  • 封装、继承、多态
  • 封装把数据和动作集中在一起,使数据和动作的逻辑属性与他们的实现细节分离。(实现信息隐蔽的语言特性)
  • 继承是指类获取其他类的属性(数据字段和方法)的机制。被继承类叫超类,继承后的类叫派生类子类
  • 多态是语言在运行时确定给定调用将执行哪些可能的方法的能力。
  1. 汇编与编译
  • 汇编语言是一种低级编程语言算法简单,通常用汇编器将汇编语言指令翻译成机器码,最终执行的是汇编器输出的机器码。
  • 编译程序把高级编程语言(如Java、C#)编写的程序转换为可执行的机器语言。其具体过程是先把高级语言编写的程序转换为汇编指令(assembly instruction),然后再转换为可执行的机器语言。
  1. 解释
  • 解释与编译类似,书上提到第二代高级语言分为两种,一种是要编译的,一种是要解释的。
  • 解释语言时要用到解释器,解释器是一种程序,用于翻译和执行语句序列。(可看作模拟器或虚拟机)(而汇编器或编译器叫翻译器
  • 翻译器只用适合的机器语言生成等价的程序,这个程序再单独运行,但速度要快。
    模拟器直接执行输入的程序,但速度要慢。
  1. 执行
  • 执行是机器理解并运行其所得的机器代码

上周考试错题总结

Which level provides a view that deals with the underlying data structure used to manage the data?
A. Implementation level
B. Logical level
C. Array level
D. Linked level
E. Application level
正确答案: A ; 我的作答: B

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

在做输入一个正整数,要求以相反的顺序输出该数。用递归方法实现。这道题时出现了问题。

  1. 在刚开始看这道题时没有思路,如何用递归法将一个数进行逆序并输出。
  • 经过在CSDN网站上借鉴学习,了解到可以通过将该数进行对10求余得到最后一个数并输出,并将该数更替为原来的数除10并再次对新数进行递归。依次重复就能得到从最后一个数逐个向前输出到第一个数,得到该数的逆序。
  • 参考文章(递归版)输入一个正整数n,输出其反序数
  1. 问题:
  • 我在第一次写好代码并运行时出现下述情况:
  • 在函数中加上了if(n>0)语句后再次运行才能成功:
  • 问题是我两次输入的n都是大于零的,为什么会出现两种不一样的运行结果?
  • 以下分别是两次运行的代码:

1.

点击查看代码
#include<stdio.h>
void NI(int n)
{
    printf("%d",n%10);
    NI(n/10);

}
int main(void)
{
    int n;
    printf("Enter number:");
    scanf("%d",&n);
    NI(n);
    printf("\n");
}
2.
点击查看代码
#include<stdio.h>
void NI(int n);
int main()
{
    int n;
    printf("Enter number:");
    scanf("%d",&n);
    NI(n);
    printf("\n");
}
void NI(int n)
{
    if(n>0)
    {
        printf("%d",n%10);
        NI(n/10);
    }

}
  • 解决过程:通过询问同学,老师,了解了递归函数需要有结束条件,在该函数中若不加(n>0)则在输出最后一个数后将一直输出0成为死循环导致运行失败。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第八周 300/1800 1/15 30/90

标签:NI,20221403,level,int,第八,面向对象,printf,程序设计,10
From: https://www.cnblogs.com/zxh0826/p/16817214.html

相关文章