2024-2025-1 20241401 《计算机基础与程序设计》 第六周学习总结
班级链接 | 2024计算机基础与程序设计 |
---|---|
作业要求 | 第六周作业 |
作业目标 | ①Polya如何解决问题 ②简单类型与组合类型 ③复合数据结构 ④查找与排序算法 ⑤算法复杂度 ⑥递归 ⑦代码安全 |
教材学习内容总结
《计算机科学概论》第七章
- 如何解决问题,包括提出问题、寻找熟悉的情况、分治法、算法、计算机问题求解过程、方法总结以及测试算法。
- 有简单变量的算法,如带有选择的算法和带有循环的算法。
- 复杂变量,例如数组和记录。
- 搜索算法,包括顺序搜索、有序数组中的顺序搜索和二分检索。
- 排序算法,如选择排序、冒泡排序和插入排序。
- 递归算法,涉及子程序语句、递归阶乘、递归二分检索和快速排序。
- 几个重要思想,包括信息隐蔽、抽象、事物命名和测试。
《C语言程序设计》第五章
- 选择结构的基本概念:
选择结构的用途,即根据不同的条件选择不同的执行路径。 - if语句:
if语句的使用方法,包括基本的if语句、if-else语句以及if-else if-else结构。这部分还讨论了if语句的嵌套使用,即在一个if语句内部包含另一个if语句。 - 关系运算符和关系表达式:
使用关系运算符(如>、<、==等)来构造关系表达式,并用这些表达式作为条件判断。 - 逻辑运算符和逻辑表达式:
逻辑运算符(如&&、||、!等)的用法,以及使用这些运算符来组合多个条件判断。 - 条件运算符和条件表达式:
条件运算符(也称为三元运算符)的用法,是一种简洁的方式来进行条件选择。 - switch语句:
switch语句的用法,这种语句可以用于实现多分支的选择结构,特别适合于有多个互斥选择的情况。
教材学习中的问题与解决过程
问题1:如何区分if-else语句和switch语句的使用情况?
AI:
使用if-else语句的情况:
- 当你需要根据一个范围或连续的值来做决策时。
- 当条件涉及复杂的表达式或多个条件需要组合时(使用逻辑运算符)。
- 当你需要根据一个条件的不同结果执行不同的代码块,并且这些结果不是离散的固定值。
使用switch语句的情况:
- 当你需要根据离散的固定值来做决策时。
- 当变量或表达式的值是有限且已知的,比如某个枚举类型或固定选项集。
- 当你想要避免多个if-else语句的嵌套,使代码更加清晰和简洁。
问题2:当代码逻辑不按预期工作,特别是当涉及多个嵌套条件时,如何调试选择结构?
AI:
- 理解预期行为:
在调试之前,确保你完全理解代码应该做什么。这包括了解每个条件语句的预期逻辑和结果。 - 添加打印语句:
在关键的决策点添加打印语句(例如printf或cout),以显示变量的值和程序的执行路径。
打印出条件表达式的值,看看它们是否如预期那样被评估为真或假。 - 使用调试器:
使用集成开发环境(IDE)中的调试工具,如GDB、Visual Studio Debugger、Eclipse Debugger等。
设置断点在条件语句之前,逐步执行代码,观察变量的值和程序的流程。 - 检查条件表达式:
确保条件表达式正确无误。有时候,一个小小的错误,比如错误的比较运算符或括号使用不当,都可能导致逻辑错误。 - 简化条件:
临时简化复杂的条件表达式,以测试基本的逻辑是否按预期工作。例如,你可以将一个复杂的if语句替换为一个简单的true或false,看看程序的反应。 - 逻辑分支测试:
确保每个逻辑分支都被测试到。这可能意味着为每个if、else if和else块提供测试用例。 - 重构条件逻辑:
如果条件逻辑过于复杂,考虑重构。可能通过提取函数、使用多态、策略模式或其他设计模式来简化。
基于AI的学习
学习进度条
计划学习时间:25h
实际学习时间:25h