2022-2023-1 20221322《计算机基础与程序设计》第六周学习总结
作业信息
这个作业属于哪个课程 | <班级的链接>(2022-2023-1-计算机基础与程序设计) |
---|---|
这个作业要求在哪里 | <作业要求的链接>(2022-2023-1计算机基础与程序设计第六周作业) |
这个作业的目标 | 自学《计算机科学概论》第7章;自学《C语言程序设计》第5章 |
作业正文 | https://www.cnblogs.com/yang-ziran/p/16754110.html |
教材学习内容总结
《计算机科学概论》第七章主要介绍了Polya提出的如何解决问题的列表,计算机求解过程(分析问题,列出主要任务,编写其余模块,根据需要进行重组和改写),有简单变量的算法(选择、循环),复杂变量,搜索算法(顺序搜索、二分检索),排序(选择排序、冒泡排序、插入排序),递归算法,信息隐蔽、抽象等几个重要思想等内容。
《C语言程序设计》第五章主要介绍了算法的概念和描述,关系运算符和关系表达式(一个“=”表示赋值,两个等号“==”表示等于,“!=”表示不等于),单分支和多分支条件语句,条件运算符和条件表达式,switch语句,逻辑运算符和逻辑表达式,程序测试等内容。
教材学习中的问题和解决过程
-
问题1:书中先是介绍了polya提出的问题求解模型,然后引入计算机问题求解过程,那么二者有什么区别吗?
-
问题1解决方案:在阅读书的时候并没有特地将二者进行比较,然后再回到那两个图表中进行了比较。后者还多了算法测试一步,测试这个算法是否真的能解决问题,然后再进行编码,再测试。同时,后者还有维护这个步骤,包括改进程序以满足更多需求和纠正之前未发现的错误。
-
问题2:书中介绍了三种排序方法,即选择排序、冒泡排序、插入排序,在应用过程中,我们应该如何进行选择呢?
-
问题2解决方案:结合教材,并在网上搜了一些资料。排序要考虑时间复杂度和空间复杂度这两个因素,可以在System.currentTimeMillis()(用于获取当前系统时间,以毫秒为单位)(参考https://blog.csdn.net/qq_40878980/article/details/83658727)里面查看。(参考https://blog.csdn.net/xiaobaisimple/article/details/125962683?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166505985316800180694086%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166505985316800180694086&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduenddefault-2-125962683-null-null.142^v51^control,201^v3^control_2&utm_term=%E9%80%89%E6%8B%A9%E6%8E%92%E5%BA%8F%E3%80%81%E5%86%92%E6%B3%A1%E6%8E%92%E5%BA%8F%E3%80%81%E6%8F%92%E5%85%A5%E6%8E%92%E5%BA%8F&spm=1018.2226.3001.4187和https://blog.csdn.net/qq_56501283/article/details/126201182?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166505985316800180694086%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166505985316800180694086&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduenddefault-1-126201182-null-null.142v51control,201v3control_2&utm_term=%E9%80%89%E6%8B%A9%E6%8E%92%E5%BA%8F%E3%80%81%E5%86%92%E6%B3%A1%E6%8E%92%E5%BA%8F%E3%80%81%E6%8F%92%E5%85%A5%E6%8E%92%E5%BA%8F&spm=1018.2226.3001.4187)
-
问题3:阅读了教材后,对递归算法还不太了解,同时我还看到了另一个算法————迭代算法,二者有什么区别呢?
-
问题3解决方案:我上网查找了资料,递归算法是把问题转化为规模缩小了的同类问题的子问题,然后递归调用函数(或过程)来表示问题的解。迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法(或者称为一次解法),即一次性解决问题。(参考https://blog.csdn.net/qq_40817827/article/details/89950325)
其他
这周继续C语言的学习,在课上进行了两个练习,将文字描述转化成C语言程序,大致能把框架写出来,但是中间存在一些细节问题,比如前面没有定义字符后面就使用、空格问题、一些算法上的问题,同时,对于一些字符、格式转换说明符等的使用比较生疏,对于将题目转化成框图的能力有待提高,要增强分析问题的能力,同时,提升自学能力。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 3/3 | 20/20 | |
第二周 | 90/90 | 2 / 5 | 7/27 | |
第三周 | 125/215 | 2 / 7 | 9 / 36 | |
第四周 | 270/ 485 | 2/9 | 9/45 | |
第五周 | 205/690 | 2/11 | 10/55 | |
第六周 | 225/915 | 4/15 | 10/65 |
-
计划学习时间:10小时
-
实际学习时间:10小时
参考资料
- 《计算机科学概论》
- 《C语言程序设计》