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

2024-2025-1 20241305 《计算机基础与程序设计》第七周学习总结

时间:2024-11-08 20:41:28浏览次数:3  
标签:语句 循环体 2024 2025 while 循环 操作 20241305 节点

作业信息

这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计(https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP)
这个作业要求在哪里 2024-2025-1计算机基础与程序设计第七周作业
这个作业的目标 1、数组与链表2、基于数组和基于链表实现数据结构3、无序表与有序表4、树5、图6、子程序与参数
作业正文 本博客链接

教材学习内容总结

《计算机科学概论》第八章内容总结
1.抽象数据类型(ADT)
• 定义:抽象数据类型是属性(数据和操作)明确地与特定实现分离的容器。
• 层次:数据可以从应用层、逻辑层和实现层三个层次观察,分别对应特定问题的数据视图、数据值和操作的抽象视图、存放数据项的结构和数据操作的具体编码。
• 目的:通过抽象减少复杂性,便于管理和使用数据。
2.子程序
• 定义:子程序是可重复调用的代码块,用于执行特定任务。
• 参数:子程序可以通过参数接收输入,并可通过返回值输出结果。
• 值参和引用参:子程序可以通过值传递或引用传递接收参数,影响子程序能否修改原始数据。
3.栈(Stack)
• 行为:后进先出(LIFO),只能在一端进行插入和删除操作。
• 操作:主要操作包括Push(插入)和Pop(删除)。
4.队列(Queue)
• 行为:先进先出(FIFO),插入操作在一端进行,删除操作在另一端进行。
• 操作:主要操作包括Enqueue(插入)和Dequeue(删除)。
5.列表(List)
• 属性:项目同构、线性、可变长。
• 操作:插入、删除、检索元素、获取长度等。
6.树(Tree)
• 结构:分层结构,用于表示层次关系。
• 二叉树:每个节点最多有两个子节点。
• 二叉检索树:一种特殊的二叉树,其中每个节点的左子节点值小于节点本身,右子节点值大于节点本身。
7.图(Graph)
• 结构:由顶点和边组成,用于表示复杂的关系。
• 类型:无向图、有向图和加权图。
• 操作:图搜索算法,如深度优先搜索(DFS)和广度优先搜索(BFS)。
8.算法
• 递归与迭代:介绍了递归算法的简洁性和实用性。
• 图算法:讨论了图搜索算法,如DFS和BFS,以及单源最短路径问题。
《C语言程序设计》第六章内容总结
一、循环控制结构与循环语句
1、循环结构的两种类型
1)当型循环结构
2)直到型循环结构
2、三种循环语句
1)while语句
while(循环控制表达式)
{
语句序列
}
在执行循环体之前测试
2)do-while语句
do
{
语句序列
}(循环控制表达式);
在执行循环体之后测试
3)for语句
for(初始化表达式;循环控制表达式;增值表达式)
{
语句序列
}
注:for语句三个表达式之间的分隔符是分号,有且仅有两个分号。
注:例如for(i=1;i<=n;i++)最后退出for循环后,i的值实际为n+1。
逗号运算符:把多个表达式连接在一起,构成逗号表达式,也称顺序求值运算符。
空语句:仅由一个分号构成的语句。
除非特殊需要,一般不用在for语句后加分号。
二、技术控制的循环
定义:循环次数事先已知的循环。
计算n!的流程图如下:

三、嵌套循环
定义:将一个循环语句放在另一个循环语句的循环体中构成的循环。
例如:计算1!到n!之和。

四、条件控制的循环
定义:循环次数事先未知的循环通常是由一个条件控制的。
如:猜数游戏
五、流程的转移控制
1、goto语句:无条件转向语句。
2、break语句:循环立即终止。
3、continue语句:只结束本次循环的执行,不终止整个循环的执行。
注:在嵌套循环的情况下,break语句和continue语句只对它们的最内层的循环语句起作用,不能用break语句跳出多重循环。
4、穷举法编程实例:韩信点兵问题

教材学习中的问题及解决方案

问题一:三种循环各自优势?
解决:AI:for循环、while循环和do-while循环是编程中常用的三种循环结构,它们各自有不同的优势和适用场景:
• for循环:
• 优势:
• 结构清晰,适用于已知循环次数的情况。
• 可以在一行内初始化、条件判断和更新循环变量,代码简洁。
• 易于阅读和维护,尤其是当循环次数固定时。
• 适用场景:
• 需要迭代固定次数的循环,例如遍历数组或集合。
• 当循环变量的初始值、结束条件和步长都明确时。
• while循环:
• 优势:
• 适用于循环次数不确定,需要在每次迭代后检查条件的情况。
• 代码结构简单,只有单一的条件判断。
• 可以很容易地在循环体内部修改循环条件,增加循环的灵活性。
• 适用场景:
• 当循环应该继续执行直到某个条件不再满足时。
• 在处理输入或等待某个事件时,直到满足特定条件才退出循环。
• do-while循环:
• 优势:
• 至少执行一次循环体,即使条件在第一次检查时就为假。
• 适用于需要至少执行一次操作,然后根据条件决定是否继续循环的场景。
• 适用场景:
• 当需要确保循环体至少执行一次,然后再检查循环条件时。
• 常用于用户输入验证,至少让用户输入一次,然后根据输入的有效性决定是否继续循环。每种循环结构都有其特定的用途,选择哪一种取决于具体的编程需求和上下文。在实际编程中,开发者会根据实际情况选择最合适的循环结构。
问题二:抽象数据类型都有哪些?它们之间有怎样的联系?
解决:AI:抽象数据类型(Abstract Data Type,ADT)是计算机科学中的一个概念,它定义了数据的逻辑结构和操作,但不涉及数据在内存中的具体表示。以下是一些常见的抽象数据类型及其联系:
• 数组(Array):
• 一个线性的数据结构,可以存储相同类型的元素。
• 元素通过索引访问,支持快速随机访问。
• 链表(Linked List):
• 由一系列节点组成,每个节点包含数据部分和指向下一个节点的指针。
• 支持高效的插入和删除操作,但访问速度不如数组。
• 栈(Stack):
• 遵循后进先出(LIFO)原则的线性数据结构。
• 只能在一端(栈顶)进行数据的添加和删除操作。
• 队列(Queue):
• 遵循先进先出(FIFO)原则的线性数据结构。
• 数据从一端添加(队尾),从另一端删除(队首)。
• 集合(Set):
• 一个无序的、不重复的元素集合。
• 提供快速的插入、删除和查找操作。
• 字典(Dictionary)/哈希表(Hash Table):
• 通过键值对存储数据,提供快速的查找、插入和删除操作。
• 依赖于哈希函数将键映射到存储位置。
• 树(Tree):
• 由节点组成的层次结构,每个节点有零个或多个子节点。
• 常见的树结构包括二叉树、平衡树、B树、B+树等。
• 图(Graph):
• 由顶点(节点)和边组成,可以表示复杂的关系。
• 可以是无向图或有向图,支持路径搜索、最短路径等操作。
• 堆(Heap):
• 一种特殊的树形数据结构,满足堆性质(父节点的键值总是大于或小于子节点的键值)。
• 常用于实现优先队列。这些抽象数据类型之间的联系主要体现在它们可以相互转换或组合使用,以解决不同的问题:
• 组合使用:例如,可以使用数组来实现栈和队列,或者使用链表来实现哈希表的桶。
• 转换:例如,二叉搜索树可以转换为有序数组,图可以转换为邻接矩阵或邻接表。
• 特化:某些ADT是其他ADT的特化形式,例如,栈和队列是线性数据结构的特化,而堆是树的特化。在实际应用中,根据问题的具体需求选择合适的ADT是非常重要的,因为不同的ADT在时间复杂度和空间复杂度上有不同的优势和劣势。

基于AI的学习

代码调试中的问题

问题一:青蛙蹦极里的CP1305就计算立方根的题,提交总显示错误,但不知道为什么。
解决:pow函数在使用时,括号里的值应输入1.0/3.0,不是1/3,原因在于定义的a变量为浮点数,精准度应改与a保持一致。

计划学习时间:20h
实际学习时间:15h

标签:语句,循环体,2024,2025,while,循环,操作,20241305,节点
From: https://www.cnblogs.com/yaohang/p/18535907

相关文章

  • 2024.11.8随笔
    做题今天主要是上午在做题,写了李超线段树优化dp以及斜率优化的题,顺手交了一发经验题。我感觉现在斜率优化的题目对我来说很板,就是直接上暴力的dp然后发现转移式子里面有二次项所以需要把一坨东西抽象成一次函数,然后去寻找一次函数的特性。如果k值具有单调性我就直接单调队......
  • 2024-2025-1 20241407《计算机基础与程序设计》第七周学习总结
    这个作业属于哪个课程[2024-2025-1计算机基础与程序设计](https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP)这个作业要求在哪里2024-2025-1计算机基础与程序设计第七周作业这个作业的目标学习数组与链表,基于数组和基于链表实现数据结构,无序表与有序表,树,图,子......
  • [20241107]nocache的编译.txt
    [20241107]nocache的编译.txt--//原来的测试环境不存在,需要建立nocache工具了解文件缓存情况,学习OS相关知识。--//实际上linux对这些工具从应用角度讲不重要,如果有用,linux实用程序里面应该包含类似工具。可惜一直不提供。--//一般这类安装,我都会写安装笔记,我看了以前的安装笔记,重......
  • 【题解】「NOIP2024模拟赛24 T2」子序列们
    【题解】「NOIP2024模拟赛24T2」子序列们https://www.becoder.com.cn/contest/5715/problem/2\(\mathcal{Description}\)给定一个0/1串\(a\),你需要生成一个长度为\(n\)的序列\(b\),其中\(b_i\)为\(a\)的一个子序列,且满足:\(|b_i|=n-i+1\);\(\foralli\in(1,n]\),\(b......
  • NOIP2024模拟赛 #17 总结
    省流:T1对\(998244353\)取模,T2对\(mod\)取模,T3求排名,T4对\(10^9+7\)取模。比赛出锅不少。开T1,发现并没有前几天那么简单,对着题目盯了\(1\)h毫无思路,发现没看见所有高塔的高度两两不同这个条件,看到后略有思路,但是还不太行。后来说大样例出锅了,幸好没写。T2很......
  • 启明云端&触觉智能与您相约2024年慕尼黑国际电子元器件博览会,不见不散!
    2024德国慕尼黑国际电子元器件博览会(Electronica2024)是全球规模最大、最具影响力的电子元器件展会之一。此次展会将于2024年11月12-15日在德国·慕尼黑展览中心隆重举行,汇聚来自全球电子行业领军企业和创新者,展示最前沿的技术成果与设计产品,为全球电子行业的发展提供一个交流和合......
  • 2024.0902模拟赛反思总结
    09:00~09:20终于想出来了之前没考虑到的特殊情况,把困扰多时的\(R\)题做出来了,美滋滋。09:20~10:35突然的一场考试,看到\(A\)题先写了一份暴力,测了一下\(10^{12}\)和\(10^{12}-1\),成功炸掉。思考了很久优化,把特殊情况判了一下,没头绪就去做\(B\)题了。10:35~10:50\(B\)......
  • 2024.0906模拟赛反思总结
    08:56~09:10先总体看了一遍题目,\(A\)题没思路,\(B\)题模拟,\(C\)题似乎是个\(dp\),\(D\)题一眼原题,果断选择倒开。\(D\)题因为原题的缘故过于自信,导致没有对拍测大样例,没看数据范围以为是跟以前的题一模一样,导致RE\(30\)分。09:10~09:25接着去写模拟,一开始在想链表模拟......
  • 2024.0905模拟赛反思总结
    08:59~09:50老师今天怎么提前一分钟发题。先总体看了一遍题目。\(A\)题原题分讨,\(B\),\(C\),\(D\)题赛时觉得都是搜索(其实\(C\)题递推,\(D\)题\(dp\))。\(A\)题跟之前做的换了一种写法,开始看错题了,调了很久,后面细节没处理好,挂了\(26\)分。09:50~11:00\(B\)题我写的......
  • 2024.0904模拟赛反思总结
    9:00~9:25老师不发卷是在考验我们的心态吗。9:25~10:00总体看了一眼题目,\(A\)题貌似做过,\(B\)题推公式,\(C\)题简单最短路,\(D\)题构造。\(A\)题一开始我想的全部设为\(0\),算汉明距离从后往前调整\(1\),赛时写挂了,赛后发现两个字符串的汉明距离实时调整的时候写错了。10:......