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

2023-2024-1 20231419 《计算机基础与程序设计》第八周学习总结

时间:2023-11-19 12:45:11浏览次数:41  
标签:封装 变量 作用域 程序 20231419 2024 2023 程序设计 函数

2023-2024-1 20231419 《计算机基础与程序设计》第八周学习总结

作业信息

这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP
这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK08
这个作业的目标 自学《计算机科学概论》第九章,《C语言程序设计》第七章并完成云班课测试
作业正文 https://www.cnblogs.com/linziwen/p/17841852.html

教材学习内容总结

《计算机科学概论》第九章:面向对象设计与高级程序设计语言

  1. 面向对象

对象:在问题背景中有意义的事物或实体。

对象类:一组类似的对象。

类中包含字段,表示类的属性;方法是处理对象中数据值的特定算法。

设计方法:头脑风暴:集体行为,生成候选类的列表->过滤->场景:给每个类分配责任,把数据和动作封装在一起->责任算法:为责任编写算法。

  1. 翻译过程

编译器与解释器;

字节码(Java)实现可移植性,任何具有JVM的计算机都可以运行编译过后的程序。

编译与解释的区别:编译是一次性的,直接生成可执行文件,在不同的计算机上执行;而解释是逐行地将源代码转换为目标代码并立即执行,在每次执行时都需要重新解释源代码,因此解释执行通常比编译执行慢一些。

  1. 范型

命令式:面向过程与对象;

声明式:函数式模型(将计算机程序看作是数学上的函数计算。函数式编程强调函数的纯粹性和不可变性,通过函数的组合和高阶函数等方式来实现程序的逻辑)与逻辑编程(基于逻辑推理的原理,程序员描述问题的逻辑关系,然后由编程语言的执行引擎自行推导出解决方案)。

  1. 高级程序设计语言的功能性:
  • 布尔表达式:值为true或false;

  • 数据类型:整数、实数、浮点数、字符、字符串、数组、布尔型;

  • 输入、输出结构;

  • 控制结构:条件语句、循环语句、跳转语句;嵌套、异步处理;

  1. 面向对象语言的功能性

封装、类(实例化:创建类的对象);

继承:类获取其他类的属性的机制;

多态:同一个方法调用在不同的对象上可以有不同的行为。

  1. 补充

面向过程与面向对象的区别:

面向对象的设计中,类对象的实现通过封装实现对用户的隐藏。

另:(From GPT)
数据和方法的关系:面向过程编程中,数据和方法是分离的,方法对数据进行操作;而面向对象编程中,数据和方法是紧密相关的,数据和方法封装在对象中。

设计思想:面向过程编程更偏向于以算法和数据结构为主要设计元素,程序的执行流程由程序员手动控制;而面向对象编程更注重于对象的抽象、封装、继承和多态等概念,程序的执行流程由对象之间的交互来控制。

可维护性和扩展性:面向对象编程更有利于代码的重用、可维护性和扩展性,因为对象的封装和多态性使得代码更加灵活和可扩展。

《C语言程序设计》第七章:函数与模块化程序设计

  1. 模块化程序设计

分而治之的思想:功能分解->自顶向下、逐步求精;

信息隐藏;

C结构:文件->函数->变量、操作;

  1. 函数(程序的基本模块)
  • 标准库函数与自定义函数:

返回值类型 函数名(形参类型及名称) <- 函数头部

花括号为定界符,中间是函数体。

  • 调用:

主调函数和被调函数;

调用方法:将实参的值复制给形参(参数传递);

函数原型声明;

  • 函数封装与健壮性:

设计原则:规模小、功能单一、一个入口一个出口;不轻易改变接口。

尽量不用全局变量。

  • 递归函数:

一般情况->递归持续进行;基线情况->结束递归;

  1. 变量的作用域与生存期:
  • 变量的作用域:

语句块的概念;

全局变量:作用域为整个程序;

局部变量:作用域为该语句块;

  • 变量的生存期:

自动变量(与语句块共存亡);静态变量(与程序共存亡,相当于保留记忆);外部变量;寄存器变量;

  1. 补充

模块化程序:

分解模块的原则:高聚合、低耦合。“逐步求精”

多文件编程:头文件->系统自带、自定义;

遇到的问题及解决措施

  1. 分不清迭代和递归的区别

通过询问GPT和自己查,知道了迭代和递归都是循环的一种,但它们的程序结构不同:

迭代是函数内某段代码循环,并保存变量作为下一次循环的初始值;

递归是指函数调用自己,但要进行现场保护、参数传递,所以时空效率低;

二者关系及选择:

能够迭代的一般都能递归实现,但反之不成立。能用迭代就尽量用迭代。

  1. 不知道全局变量和静态变量的区别:

GPT回答:在于作用域和生存周期。全局变量的作用域是整个程序,静态变量的作用域是定义它的函数或文件。全局变量在程序开始时创建,在程序结束时销毁,而静态变量在程序运行时创建,在程序结束时销毁。此外,静态变量只能在定义它的函数或文件中访问,而全局变量可以在整个程序中访问。

  1. 使用scanf的返回值时出现一些问题:

如果scanf里只有字符型或者只有整型都是正确的,但一旦同时有了字符型和整型(形如%d%c%d或者%c%d),程序就反应不出来返回值是多少了。(但赋值仍然是正确的)

我理解为同时加这两种就是不行的,以后编程序应该避免这种情况出现。

错题收集

解析:参数是子程序名称旁边括号中列出的标识符。这句话是对的。

解析:在引号内的字母被称为字符串。在计算机编程中,字符串是由一串字符组成的数据类型,通常用来表示文本。在C语言中,字符串通常用双引号括起来。因此,这句话是对的。

学习进度条

重要成长 代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积)
目标 5000行 30篇 400小时
第一周 0 1/2 12/12
第二周 20 1/3 12/24
第三周 30 1/4 12/36
第四周 80 1/5 24/60
第五周 120 1/6 30/90
第六周 200 1/7 30/120
第七周 280 1/8 20/140
第八周 600 1/9 30/170

标签:封装,变量,作用域,程序,20231419,2024,2023,程序设计,函数
From: https://www.cnblogs.com/linziwen/p/17841852.html

相关文章

  • NOIP2023游记
    省流:寄!Day-?开始全天停课,一天一场模拟赛。还是改不了死磕的毛病,经常纠结于一道题而舍弃了更好写的暴力。很好奇某位佬是怎么做到模拟赛划水还能天天rk1的。寄!Day-7全真模拟了luogu的模拟赛,然后成了rk1?要是noip也出构造就好了(虽然这不可能。拜谢rk2的coffee。......
  • NOIP 2023 输麻记
    Day-2NOIP之前最后一场胡策,当然要认真打啊!最后喜提70+20+50=140。一题不会。赛后看题解发现T1就差一点了。希望NOIP不要被奇奇怪怪的位置卡题(flag)。Day-1打板子,复习了一下之前做的题,并奶了一口复习的这些都不会考(这个倒是奶对了)。Day1感觉晚上睡得不是很好,并没有......
  • 2023-2024-1 20231414 《计算机基础与程序设计》第八周学习总结
    学期(2023-2024-1)学号(20231414)《计算机基础与程序设计》第八周学习总结作业信息这个作业属于哪个课程<班级的链接>(2023-2024-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(2023-2024-1计算机基础与程序设计第八周作业)这个作业的目标<写上具体方面......
  • noip2023游寄
    周五出发去广州,从周三晚上就回家了,然后一直写不进去题。好,周五了。好,坐动车去广州了。车上睡了很久,一会就到了。好,到广州了。坐了很久地铁,真的很累。找了好久旅馆,终于到了。好累,睡了好久。打了缩点的板子,睡了好久。18号了。好,打车去考场了。好,8:27了。好,开考了。t1会......
  • 洛谷 P9869 [NOIP 2023] 三值逻辑 题解
    https://www.luogu.com.cn/problem/P9869?contestId=145259看到要给变量赋初始值,还是T,F,U之类的,容易想到2-SAT。设\(1\simn+m\)的点表示\(x_1,x_2,\dots,x_{n+m}\)为T的点,其中\(x_{k+n}(1\leqk\leqm)\)表示在第\(k\)次操作被操作的变量的值(操作......
  • 2023-2024-1 20232311 《网络空间安全导论》第二周学习
    教材学习内容总结思维导图教材学习中的问题和解决过程问题1:单钥密码体制加密的应用有哪些问题1解决方案:先看了看上届学长的笔记,接着去询问chatai问题2:学习抗量子密码是不了解其中提到的Hash函数问题2解决方案:在B站上看了看介绍它的视频基于AI的学习思考这一章有很......
  • 【pwn】[FSCTF 2023]What am I thinking? --pwntools工具的利用
    这道题没给附件,直接就是nc这个题目的意思是,我们随机输入一个数,然后发给我们一段base64加密后的密文,真正num就在里面,我们现在写个pwntools脚本提取一下这段base64密文,解密一下,看看是什么东西exp:io=remote("node4.anna.nssctf.cn",28045)io.sendline(str(2))io.recvuntil(b"......
  • 2023最新!docker于centos7下的安装配置
    2023最新!docker于centos7下的安装配置导航目录2023最新!docker于centos7下的安装配置导航一、安装前的环境配置检查自己版本,必须是centos7以及以上版本cat/etc/redhat-release卸载旧版本(如果之前没有安装过,这步可以忽略)yum安装gcc相关安装需要的软件包设置镜像源更新yum软件包......
  • ZJ NOIP 2023 迷惑行为大赏(持续更新)
    ZJNOIP2023迷惑行为大赏(持续更新)fuck无。f**k94次出现的准考证号orz16次出现的准考证号求大佬ZJ-04965.?《13个文件》......
  • 游记 NOIP2023(public version)
    游记NOIP2023(publicversion)11.1720:30提前一天到达考点:中山市中山纪念中学。没有看鸭子。11.188:30正式开考。然后打开了一下虚拟机,有了上一次的经验,这次直接挂好了虚拟机的共享文件夹,题目也找到在哪里了,比较顺利。T1感觉比较简单,先做;T2......