这个作业属于哪个课程 |
这个作业要求在哪里 |
我在这个课程的目标是 |
这个作业在哪个具体方面帮助我实现目标 |
参考文献 |
C语言程序设计II |
C语言I—2019秋作业09,C语言作业评价标准 |
熟悉并掌握基本的程序语言知识,并拥有独立完成程序编辑的能力 |
进一步强化C语言的基础学习,学习掌握break、continue和循环的嵌套,同时通过PTA作业了解其在实际编程语言中的应用 |
|
C语言程序设计(第三版),伪代码的写法,百度百科 |
1.PTA实验作业
1.1 找完数
1.1.1 数据处理
①数据表达:使用了整形变量m,n,i,j,he,count和yishu,其中,m和n作为输入的数据,i和j作为循环变量,he作为各个因数相加之和,count作为计数器,yinshu作为因数;
②数据处理:(伪代码)
1.输入数据m和n
2.使i从m到n开始逐加循环
3.使j在该数字中逐加循环
4.利用整除为0判断j是否为因数,并累加到he上
5.利用累加的he是否等于原数来判断是否为完数
6.判断为完数的输出结果的开头
7.并再次利用循环依次输出因数
8.换行后继续,若没有计数则输出None
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 |
输出数据 |
说明 |
2 30 |
6 = 1 + 2 + 3、8 = 1 + 2 + 4 + 7 + 14 |
使用题试数据测试 |
400 1000 |
496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248 |
使用较大数据测试 |
2 1000 |
6 = 1 + 2 + 3、28 = 1 + 2 + 4 + 7 + 14、496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248 |
使用全部数据测试 |
900 1000 |
None |
使用其它数据测试 |
1.1.4 PTA提交列表及说明
提交列表说明:
1.编译错误:for语句中使用了逗号而不是分号;(逗号改成分号解决)
2.编译错误:变量he没有初始定义;(将he赋值为0解决)
3.编译错误:完数的判断符号使用的是等号;(使用“==”来判断后解决)
4.编译错误:for语句中使用了两个m;(更换后面一个为n后解决)
5.编译错误:换行符没有加入引号;(加入引号解决)
6.答案正确:在VS中反复验证测试然后更正,粘贴到PTA中成功提交。
1.2 换硬币
1.2.1 数据处理
①数据表达:使用了整形变量x,a,fen5,fen2,fen1和count;其中,x作为输入的数据;a作为中间变量,fen5,fen2,fen1分别作为各种硬币的数量,count作为计数器;
②数据处理:(伪代码)
1.获取输入的数据x
2.使x减去8,在后面的硬币数再补上
3.从五分硬币的数量开始循环,每次减1,这样可以保证总数量的顺序排列
4.利用中间变量a来计算两分硬币的数量并开始循环
5.利用总数减去五分和两分的得到一分的
6.计数器依次累加
7.换行依次输出结果并输出计数器
1.2.2实验代码截图
1.2.3 造测试数据
输入数据 |
输出数据 |
说明 |
13 |
fen5:2, fen2:1, fen1:1, total:4、fen5:1, fen2:3, fen1:2, total:6、fen5:1, fen2:2, fen1:4, total:7、fen5:1, fen2:1, fen1:6, total:8、count = 4 |
使用题试数据测试 |
9 |
fen5:1, fen2:1, fen1:2, total:4、count = 1 |
使用较小数据测试 |
12 |
fen5:1, fen2:3, fen1:1, total:5、fen5:1, fen2:2, fen1:3, total:6、fen5:1, fen2:1, fen1:5, total:7、count = 3 |
使用随机数据测试 |
999 |
结果过于庞大,结尾为count = 49501,经查询为正确答案 |
使用较大数据测试 |
1.2.4 PTA提交列表及说明
提交列表说明:
1.编译错误:for语句中没有用分号;(加入分号解决)
2.编译错误:赋值运算多加了括号;(去除括号解决)
3.运行超时:使用了错误的方法,是递增的累加,导致无法得出结果;(改正方法,使用递减解决)
4.段错误:这个新的错误完全不是很能理解,多次改正无果,于是整个重新打了一遍,才得以解决,不知道是什么意思;(重新输入解决)
5.答案正确:在VS中反复验证测试然后更正,粘贴到PTA中成功提交。这里的后面的一堆正确,是在不断精简数据,将变量数一个一个减少试试能不能运行,成功的让程序精简了不少。
2.代码互评
2.1同学代码截图①(来自李泽基)
2.1同学代码截图②(来自无名氏)
2.2自己代码截图(使用习题7-3)
2.3比较结果
②使用的计算步骤的不同,有先后区别;
③使用的变量数目的不同,有一部分变量确实可以减少;
③使用的计算方法的不同,对于各个硬币数量的计算不同。
3.学习总结
3.1 学习进度条
周数/日期 |
这周所花的时间 |
代码行 |
学到的知识点简介 |
目前比较迷惑的问题 |
第三周/10-11 |
约6-7h |
约200-240 |
“if”和“else”选择结构语句的基本使用 |
对于更多的选择情况产生的时候,无法判断语句执行的先后顺序 |
|
第四周/10-16 |
约6-7h |
约320-360 |
“for”循环结构语句的基本使用 |
对于多个循环结构的使用不熟悉,以及循环计算中的语句计算先后顺序 |
|
第五周/10-24 |
约6-7h |
约320-360 |
自定义函数的格式以及应用 |
|
第六周/10-31 |
约6-7h |
约320-361 |
多分支结构、字符型数据类型和逻辑运算符 |
|
第七周/11-06 |
约7-8h |
约340-399 |
多分支结构中的Swtich结构的运用以及是否使用break的区别 |
|
第八周/11-15 |
约6-7h |
约340-399 |
循环结构以及while和do-while结构 |
对于同一个题目do-while和while的转换还有所不熟练 |
|
第九周/11-22 |
约6-7h |
约340-399 |
break、continue语句以及循环的嵌套 |
|
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
光阴似箭,日月如梭,这时间过得有点快。不知不觉的,竟然这学期就快要结课了。先说说这周的学习,依旧是基础的延伸。在基础的循环语句上学习更多的循环中可以使用的语句比如break和continue,以及更深层次的循环的嵌套。依旧是寻寻渐进的过程,能够接受,也能够学习到,更多的问题往往都是在应用上的。
接近考试了,感觉完全没有那种信心十足以及胸有成竹的感觉是怎么回事,多少有些心虚。也不知道自己有没有学习到课程要求中所应该要求掌握的知识,也不知道自己能不能够顺利的完成本次的学习任务。还是投入的时间不够多,没有将全部的心思都放这上面,所以这些也都是意料之中的。按照行业里的十万定律,别说十万个小时了,我这十万行代码估计都够呛。所以下一步或者说,下一阶段的学习的话,需要加大对于这个作为专业课程的投入。权当是为了,让自己,不那么心虚吧。
————杜甫《奉赠韦左丞丈二十二韵》