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

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

时间:2023-11-19 11:56:13浏览次数:521  
标签:问题 makeSound 20231414 定义 编程语言 2024 2023 程序设计 保留字

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

作业信息

这个作业属于哪个课程 <班级的链接>(2023-2024-1-计算机基础与程序设计
这个作业要求在哪里 <作业要求的链接>(2023-2024-1计算机基础与程序设计第八周作业)
这个作业的目标 <写上具体方面>功能设计与面向对象设计,面向对象设计过程,面向对象语言三要素,汇编、编译、解释、执行
作业正文 ... 本博客链接https://i.cnblogs.com/posts/edit

教材学习内容总结

《计算机科学概论》
1,面向对象对象和对象类,域(field)
2、设计方法:集体讨论、过滤、场景、责任算法
3、翻译过程:

编译器

  • 解释器
  • 字节码
    4、程序设计语言范例:
    命令式范例
  • 声明式范例
    5、高级程序设计语言功能性:
    布尔表达式
  • 数据归类
  • 输入\输出结构
  • 控制结构
    6、面向对象语言的功能性:
    封装

  • 《C语言程序设计》
    函数,变量的作用域和生存期以及模板化程序设计

教材学习中的问题和解决过程

《计算机科学概论》

  • 问题1:Lisp语言是什么
  • 问题1解决方案:Lisp(List Processing)是一种编程语言,最初由约翰·麦卡锡(John McCarthy)在1958年设计。它是第一个以表达式为基础的编程语言,也是第一个具有垃圾回收机制的编程语言之一。Lisp语言具有强大的元编程能力,允许程序在运行时操作和改变程序的结构。Lisp语言的语法简单,基本单位是S表达式(S-expression),由括号包围的列表和原子构成。Lisp语言在人工智能、自然语言处理、机器学习等领域得到了广泛应用,它的方言和变种也包括了Common Lisp、Scheme、Clojure等。
  • 问题2:逻辑编程语言的语法
  • 问题2解决方案:逻辑编程语言是一种基于逻辑推理的编程范式,最著名的逻辑编程语言是Prolog。逻辑编程语言的语法和传统的命令式编程语言有很大的不同,它使用逻辑规则和事实来描述问题领域,并通过逻辑推理来求解问题。

逻辑编程语言的语法包括以下几个重要的部分:

  1. 事实(Facts):事实是逻辑编程语言中的基本单位,它描述了问题领域中的已知信息。事实通常使用特定的语法表示,例如在Prolog中,一个事实可以是像这样的:likes(john, mary)。这表示了"约翰喜欢玛丽"这个事实。

  2. 规则(Rules):规则描述了问题领域中的逻辑关系和推理规则。规则通常由一个头部和一个体部组成,头部表示结论,体部表示前提。例如在Prolog中,一个规则可以是像这样的:happy(X) :- likes(X, ice_cream)。这表示了"如果某人喜欢冰淇淋,那么他就会感到快乐"这个规则。

  3. 查询(Queries):在逻辑编程语言中,可以提出查询来求解问题。查询通常使用特定的语法表示,例如在Prolog中,一个查询可以是像这样的:?- likes(john, mary)。这表示了"约翰是否喜欢玛丽"这个查询。

逻辑编程语言的语法通过这些基本元素来描述问题领域中的信息和逻辑关系,通过逻辑推理来求解问题。逻辑编程语言的语法和传统的命令式编程语言有很大的不同,它更加接近自然语言的表达方式,更加注重描述问题的逻辑关系和推理过程。

  • 问题3:保留字的例子有哪些
  • 问题3解决方案:不同的编程语言有不同的保留字,这些保留字在编程语言中有特殊的含义,不能被用作标识符或变量名。

以下是几种编程语言中的一些常见的保留字的例子:

  1. Python中的保留字:

    • if
    • else
    • while
    • for
    • def
    • class
    • True
    • False
    • None
  2. C语言中的保留字:

    • if
    • else
    • while
    • for
    • int
    • char
    • float
    • double
    • return
  3. Java中的保留字:

    • if
    • else
    • while
    • for
    • class
    • interface
    • extends
    • implements
    • return

这些保留字在相应的编程语言中有特殊的含义,不能被用作变量名或标识符。在编写程序时,需要避免使用这些保留字作为变量名或标识符,以免引起语法错误。

  • 问题3:多态的例子
  • 问题3解决方案:
    一个经典的多态的例子是动物的继承体系,比如定义一个抽象的Animal类,然后派生出Dog类和Cat类。这些类都有一个makeSound方法,但是每个类的makeSound方法的实现是不同的,这就展现了多态的特性。

下面是一个简单的Python示例:

class Animal:
    def makeSound(self):
        pass

class Dog(Animal):
    def makeSound(self):
        print("汪汪汪")

class Cat(Animal):
    def makeSound(self):
        print("喵喵喵")

def animal_sound(animal):
    animal.makeSound()

dog = Dog()
cat = Cat()

animal_sound(dog)  # 输出:汪汪汪
animal_sound(cat)  # 输出:喵喵喵

在这个例子中,Animal是一个抽象类,它定义了makeSound方法,但没有具体的实现。然后,Dog和Cat类分别继承自Animal类,并且分别实现了makeSound方法。当调用animal_sound函数时,传入不同的Animal对象,会根据对象的实际类型来调用相应的makeSound方法,这就展现了多态的特性。
《C语言程序设计》

  • 问题1:条件编译中#igdef和#if的区别
  • 问题1解决方案:条件编译中,#ifdef 和 #if 都是用来判断一个宏是否被定义的指令,但是它们有一些区别。
  1. ifdef 指令用于判断一个宏是否被定义,如果该宏已经被定义,则编译下面的代码块,否则忽略该代码块。

    例如:

    #ifdef DEBUG
        // debug code
    #endif
    
  2. if 指令用于判断一个表达式的值是否为真,如果表达式为真,则编译下面的代码块,否则忽略该代码块。

    例如:

    #if DEBUG == 1
        // debug code
    #endif
    

总的来说,#ifdef 用于检查宏是否被定义,而 #if 用于检查表达式的值。

  • 问题2:#ifdef和#if define区别
  • 问题2解决方案:#ifdef 是一个预处理指令,用于检查一个宏是否已经被定义。如果该宏已经被定义,则编译下面的代码块,否则忽略该代码块。

示例:

#ifdef DEBUG
    // debug code
#endif

上面的代码会检查宏 DEBUG 是否已经被定义,如果已经定义,则编译 debug code,否则忽略。

而 #if defined 是用来检查一个宏是否已经被定义,其用法为:

#if defined(DEBUG)
    // debug code
#endif

这两种方式的效果是一样的,都是用来检查宏是否被定义,只是语法上稍有不同。通常情况下,两者可以互换使用。

基于AI的学习


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

  • 问题1:梯形法则是什么
  • 问题1解决方案:梯形法则(Trapezoidal Rule)是数值积分中的一种方法,用于计算函数在给定区间上的定积分。其基本思想是将积分区间分成若干个小区间,然后在每个小区间上用梯形面积来近似代替曲线下的面积,最终将这些梯形面积加起来即可得到近似的积分值。

具体来说,梯形法则将积分区间 $[a,b]$ 分成 $n$ 个小区间,每个小区间的长度为 $h=(b-a)/n$,则积分近似值为:

$$
\int_a^b f(x)dx \approx \frac{h}{2} \left[f(a) + 2f(a+h) + 2f(a+2h) + \cdots + 2f(a+(n-1)h) + f(b)\right]
$$

其中,$f(x)$ 是需要积分的函数。可以看到,梯形法则的本质就是将积分区间分成若干个小区间,然后在每个小区间上用梯形面积来近似代替曲线下的面积,最终将这些梯形面积加起来即可得到近似的积分值。

上周考试错题总结

  • 错题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,实现层是用来提供处理用于管理数据的底层数据结构的视图

  • 错题2及原因,理解情况
    Which of the following is made up of a set of nodes called vertices and a set of lines called edges (or arcs)?
    A.
    List
    B.
    Stack
    C.
    Graph
    D.
    Binary search tree
    E.
    Linked structure
    正确答案是C,图是由一组称为顶点的节点和一组称为边的直线组成的
  • 错题3及原因,理解情况

判断题
1 分
简单
Parameters are the identifiers listed in parentheses beside a subprogram name.
正确答案: 正确,参数是子程序名称旁边的括号中列出的标识符

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60
第四周 300/1300 2/9 30/90
  • 计划学习时间:7小时

  • 实际学习时间:10小时

(有空多看看现代软件工程 课件
软件工程师能力自我评价表
)

参考资料

标签:问题,makeSound,20231414,定义,编程语言,2024,2023,程序设计,保留字
From: https://www.cnblogs.com/20231414shiqi/p/17841789.html

相关文章

  • 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......
  • NOIP2023 游记
    我没有写游记的习惯,但是这可能是我最后的OI比赛了,所以就写一下吧。其实考试前两天很不幸我得了甲流,发烧了两天,为此去打了两天的针,暂时把病压了下来,只求考试的时候不要发作就可以,不过到了济南之后感觉还不错。晚上到了去吃的麦当劳,巨无霸,中薯条,麦乐鸡,味蕾似乎并没有因为疾病而......
  • 2023NOIP T2
    考场上乱打的40并查集可做。点的修改其实就是新建一个点,最后点的编号要和最初的点在一个组。有个坑,自己可以和自己取反。也不算坑吧,写代码的时候没注意到。还是有很多技巧,只能说经验不足。#include<bits/stdc++.h>usingnamespacestd;constintN=500005;intn,m,......
  • NOIP2023游记
    考前:准备准备了rp套餐:汤达人豚骨面、农夫山泉NFC芒果汁、西柚味水溶C100、德福白巧克力,希望能给我带来好运(rp++)进考场,得试题,先通读一遍,发现T1纯纯煞笔题,T2似乎是一个2-SAT之类的图论问题,T3没思路,T4显然的dp。写完T1及对拍用时40min+,然乎T2仔细想了一下,发现先后顺序的影响,马上就......