C语言I博客作业07

1.作业头

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/SE2020-2
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11585
这个作业的目标 <熟练while和do-while语句,学会打伪代码>
学号 <20209130>

一、本周教学内容&目标

第4章 循环结构 4.1-4.2 熟悉使用while和do-while结构解决问题。

二、本周作业

1.PTA实验作业
2.代码互评
3.学习总结

三、作业格式

1.PTA实验作业(20分/题)

1.1 7-3 循环-古角猜想 (20分)

日本数学家古角静夫研究自然数时,发现一个有趣现象:“如果是个偶数就除2,如果是奇数就乘以3加1”,经过有限个这样的处理步骤,最后一定能得到1. 任意输入一个自然数,给出得到结果1的运算过程。

1.1.1数据处理

数据表达:只用了n这一个变量,它是整型变量,它的值由自然输入得来。
数据处理:表达式:n=n/2; n=n*3+1;
         流程结构:while循环结构,if-else分支结构。
Begin
input 正整数n
while n不为1  then
if n可以整除2 then
output n和n/2
n←n/2
else then
output n和n*3+1
n←n*3+1

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
2 2/2=1 2为偶数
4 4/2=2,2/2=1 4为偶数
7 73+1=22,22/2=11,113+1=34,34/2=17,173+1=52,52/2=26,26/2=13,133+1=40,40/2=20,20/2=10,10/2=5,5*3+1=16,16/2=8,8/2=4,4/2=2,2/2=1 7为奇数

1.1.4 PTA提交列表及说明

提交列表说明:

1.部分正确:未考虑变量为奇数的情况,发现后在if语句之后加上else否则的情况。
2.运行超时:循环的判断条件搞错,原本是n!=0打成了n==0了,之后改正。
3.运行超时:重新定义了一个sum变量,把输出的n/2代替,导致输出答案不同,之后只用了n来输入输出。
4.编译错误:上个错误改正时太急,忘记改语句中的其中一个sum了,导致出现错误,之后换成n。

1.2 7-5 找出一批学生的最高分 (15分)

本题要求编写程序,找出最高分。

1.2.1 数据处理

数据表达:用了x和y两个变量,都是整型变量,y由自然输入得来,x则随y的输入变化而变化。
数据处理:表达式:x=y;
         流程结构:用了while循环结构和if分支结构。
Begin
x←0
input 正整数y
while y大于等于0 then
if x小于y then
x←y/
input 正整数y
/
output 正整数x

1.2.2 实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
50 60 95 66 -2 95 95为最高分
85 67 33 89 -1 89 89为最高分
99 58 67 24 -1 99 99为最高分

1.2.4 PTA提交列表及说明

提交列表说明:

1.运行超时:用x把y代替后没有再次输入y,之后在if语句之后加上输入语句输入y的值。
2.答案正确:答案虽然正确了,但我发现了一个不对的地方,一开始没有赋值给x,无从判断x与y的大小,而答案正确是因为系统把x默认为1了,之后我赋值给x为0。

2.代码互评(5分)

同学代码截图:

自己代码截图:

1.条件语句的设置习惯不同,同学追求一个结构直接把所有运算搞定,而我习惯算一步看一步,同学这样更加快速,代码更加简洁。
2.打代码习惯不同,我习惯在运算符之类的前后用空格分开,同学则习惯按顺序打,我的看起来更加清晰一些。

同学代码截图:

自己代码截图:

1.对变量的赋值习惯不同,同学习惯定义时直接把变量赋值,而我习惯重起一行来赋值,同学这样更加简洁,没有重复啰嗦。
2.对{}的使用习惯不同,我习惯在使用if语句时不论怎样都打上{},而同学习惯省略{},我的代码这样更清晰明了,不会混乱。

3.学习总结(15分)

3.1 学习进度条(5分)

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第八周 20h 400 什么是主函数;代码的储存单元;会打“hello world”
第九周 24h 450 三个程序结构;各种数据类型;if-else语句的使用
第十周 28h 500 三个运算的优先级;for循环语句的使用;会输出转换表 for循环的嵌套有些不会
第十一周 30h 600 进一步熟悉for循环语句;调用数学函数;自己定义函数 自己定义函数不太熟练
第十二周 28h 580 更进一步学习了多种分支结构的使用;学会了逻辑控制符;学会了else-if语句; 对多种分支结构的使用不太熟练,无法灵活使用
第十三周 34h 650 明白了逻辑控制符和其他运算符之间的优先级的区别;学会了switch语句;预习了多分支结构的另一种用法; 对多分支结构运用太过死板,想到一种就只会使用一种
第十四周 36h 680 学习了while和do-while循环语句 while和do-while循环不能灵活运用

3.2 累积代码行和博客字数(5分)

3.3 学习内容总结和感悟(5分)

3.3.1 学习内容总结

3.3.2 学习体会

1.这周不像前几周还好了,感觉这周不怎么好,有被搞废了的感觉,特别是pta的第二题,打游戏还没什么感觉,但扯到关于游戏的题目就真的整个人飞起。
2.这周打代码的量还是有的,但质量感觉不咋地,感觉打了这么多,却没有得到应该有的效果,打了这么多却昏头昏脑,看样子这一部分没有学习好,还得多自己去学学。
3.对代码的思考,这一周是真的几乎没有什么训练,因为脑袋里一直盘旋着作业该怎么写,这不知是训练了还是没训练,下周不能再这么昏头昏脑了。
4.这周不足非常多,需要多去改正,虽然不足多,但也让我看到了往哪个方向前进,下周要多去改善自己的薄弱点,继续冲!!!

posted @ 2020-12-05 18:01  呵丶你不懂  阅读(97)  评论(8编辑  收藏  举报