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

作业信息

这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计
这个作业要求在哪里 (2024-2025-1计算机基础与程序设计第六周作业)
这个作业的目标
作业正文 2024-2025-1 学号20241307《计算机基础与程序设计》第六周学习总结

教材学习内容总结

《计算机科学概论》第七版第七章主要介绍了计算机问题求解的方法、算法以及相关的程序设计概念,以下是详细总结:

  1. 计算机问题求解过程:

• 分析和说明阶段:理解问题的需求和目标,明确已知条件和要达到的结果。这是解决问题的基础,需要对问题进行深入的分析和理解,将其转化为计算机可以处理的形式。

• 算法开发阶段:根据问题的分析结果,设计解决问题的算法。算法是解决问题的具体步骤和方法,它应该是正确、高效且易于实现的。在这个阶段,需要考虑算法的逻辑结构、控制流程和数据处理等方面。

• 实现阶段:将设计好的算法转化为计算机程序代码。这需要选择合适的编程语言和开发工具,按照算法的步骤编写程序,并进行调试和测试,确保程序的正确性和可靠性。

• 维护阶段:在程序运行过程中,可能会出现各种问题或需要进行功能扩展和优化。因此,需要对程序进行维护,包括修复错误、改进性能和添加新功能等。

  1. 算法的基本概念:

• 算法的定义:算法是一组明确的、可执行的步骤,用于解决特定的问题或完成特定的任务。它是计算机程序的核心,决定了程序的效率和正确性。

• 算法的特性:包括确定性(每个步骤都有明确的定义和结果)、有穷性(算法在有限的时间内能够结束)、可行性(算法的每个步骤都可以通过计算机实现)、输入和输出(算法需要接收输入数据,并产生输出结果)。

  1. 算法的分类:

• 计数控制循环:这类算法通过设定一个计数器,在计数器满足一定条件时重复执行某些操作。例如,for 循环就是一种计数控制循环,它可以根据设定的循环次数来执行循环体中的代码。

• 事件控制循环:当某个事件发生时,循环才会继续执行。这种算法通常用于处理实时性要求较高的问题,例如监听网络端口的程序,当有数据到达端口时,程序会进行相应的处理。

• 搜索算法:

• 顺序搜索:按照数据的存储顺序依次查找目标元素,适用于数据量较小或未排序的数据。

• 二分搜索:对于已排序的数据,通过不断将数据区间一分为二,逐步缩小搜索范围,提高搜索效率。

  1. 排序算法:排序是将一组数据按照特定的顺序进行排列的操作。常见的排序算法有:

• 选择排序:每次从待排序的数据中选择最小(或最大)的元素,将其与当前位置的元素交换,直到所有元素都排序完毕。

• 冒泡排序:通过不断比较相邻的两个元素,将较大(或较小)的元素交换到后面,经过多次循环,最终实现数据的排序。

• 插入排序:将待排序的数据依次插入到已排序的序列中,保持序列的有序性。

• 快速排序:选择一个基准元素,将数据分为两部分,一部分小于基准元素,另一部分大于基准元素,然后对这两部分分别进行排序,最后将它们合并起来。

  1. 计算机问题求解的重要思想:

• 信息隐蔽:将程序的实现细节隐藏起来,只对外提供必要的接口和功能。这样可以提高程序的可维护性和可扩展性,降低程序之间的耦合度。

• 抽象:将复杂的问题抽象为简单的模型或概念,以便更好地理解和解决问题。抽象可以帮助程序员忽略不必要的细节,专注于问题的本质。

• 事物命名:为程序中的变量、函数、对象等命名,以便更好地理解和管理程序。良好的命名可以提高程序的可读性和可维护性。

• 测试:在程序开发过程中,对程序进行测试是非常重要的。测试可以帮助发现程序中的错误和缺陷,确保程序的正确性和可靠性。测试包括单元测试、集成测试、系统测试等不同的阶段。

以下是 C 语言程序设计第五章相关内容总结:

一、if 语句

• 基本形式:if (表达式) 语句;。如果表达式的值为真(在 C 语言中,非零值表示真,零值表示假),则执行后面的语句。例如:if (x > 5) printf("x大于5\n");。

• if - else 形式:if (表达式) 语句1; else 语句2;。当表达式为真时执行语句 1,为假时执行语句 2。如if (score >= 60) printf("及格\n"); else printf("不及格\n");。

• 嵌套 if 语句:在 if 语句或 else 语句中可以再包含 if 语句。例如,if (a > 10) {if (a > 20) printf("a大于20\n"); else printf("a大于10小于等于20\n");}。需要注意 if 和 else 的匹配规则,else 总是与它上面最近的未配对的 if 相匹配,可以使用大括号来明确匹配关系。

二、switch 语句

• 基本结构:switch (表达式) { case 常量表达式1: 语句序列1; break; case 常量表达式2: 语句序列2; break; …… default: 语句序列n; }。表达式的值必须是整型或字符型等离散类型。

• 执行过程:首先计算表达式的值,然后与各个 case 后的常量表达式的值进行比较。若与某个 case 值相等,则执行该 case 后面的语句序列,直到遇到break语句或switch语句结束。如果没有匹配的 case,则执行default部分(如果有)的语句。例如:
switch (num) {
case 1:
printf("值为1\n");
break;
case 2:
printf("值为2\n");
break;
default:
printf("其他值\n");
}
• 注意事项:break语句在 switch 语句中非常关键,若没有break,程序会顺序执行下一个 case 的语句,可能导致不符合预期的结果。default子句是可选的,但合理使用可以处理一些意外情况。

条件语句在 C 语言程序设计中用于根据不同的条件执行不同的代码片段,实现程序的逻辑控制,使程序能够根据运行时的情况做出正确的反应,是构建复杂逻辑程序的重要基础。

教材学习中的问题和解决过程(先问 AI)

  • 问题1:对网络协议理解困难
  • 问题1解决方案:网络协议内容复杂,概念抽象。解决方案是结合实际案例学习,比如分析网页浏览时的 HTTP 协议流程,也可以制作图表,梳理不同协议层的关系。
  • 问题2:数据传输原理混淆
  • 问题2解决方案:数据在网络中的传输涉及很多知识点,易混淆。可通过搭建简单的局域网,观察数据传输情况来加深理解,还可以观看动画演示,更直观地掌握数据打包、路由选择等原理。

基于AI的学习



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

  • 问题1:scanf两个值读取错误
  • 问题1解决方案:可以在&数值间插入符号,更加清晰明了
  • 问题2:switch结构中case后方的无法被读取
  • 问题2解决方案:case后接数字如果是字符需要用单引号转化为常量

其他(感悟、思考等,可选)

学习 C 语言程序设计第五章,深刻体会到函数的魅力。它就像一个个小巧的积木,组合起来构建强大的程序。通过函数的调用和参数传递,代码变得更有条理、可复用。而计算机科学概论第七版第七章,则让我对网络世界有了新认知。从网络协议到数据传输,复杂却有序。这两部分内容让我明白,编程和网络是紧密交织的。程序依靠网络拓展能力,网络需要程序来实现功能。知识相互关联,共同推动技术的发展,激发我进一步探索的欲望。

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 4/4 18/38
第三周 500/1000 5/7 22/60
第四周 500/1300 6/9 30/90
第五周 1000/1400 7/9 60/90
第六周 1200/1500 8/9 70/90
posted @ 2024-11-03 19:54  20241307张岳峰  阅读(4)  评论(0编辑  收藏  举报