循环

Posted on 2017-12-30 20:39  海团  阅读(196)  评论(0编辑  收藏  举报

一、PTA实验作业(5分)
题目1:7-1 求交错序列前N项和

(计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和)

1. 本题PTA提交列表


2. 设计思路

题目算法:定义flag=1,用于变符号,sum1代表每一项分母的值,sum2代表前n项和;共有num项,利用for让i由1增到num,

如果i<num则执行语句:每次循环先求出分母的值,然后分子由flag*i组成,求出sum2,再后flag=flag*-1变下一项的符号,

最后i++。共进行num次循环,当i>num时输出sum2.

流程图

 

3.本题调试过程碰到问题


调试过程:第9行出错(此行语句多余,应删去,因为flag的初始值已经为1);

第11行出错(flag初始值为1,不变,应写成sum2=sum2+flag*i/sum1才符合题意

二、同学代码结对互评
1.同学互评照片(左;我的代码 右:英红的代码)



两人不同点:我的代码将运算式子分开计算,英红的代码则用一个十字完成运算,我认为我的代码比较简洁易懂,

英红的代码则水平比较高,但我不建议用一个式子完成多步骤的运算,容易出错。

我更喜欢我的代码,因为比较不容易出错和容易看懂。

题目2:7-3 统计字符

(输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数)

1. 本题PTA提交列表


2. 设计思路

题目算法:利用for循环嵌套多个if的判断语句,if语句逐个判断输入的字符是否符合题目中的条件,

如果符合,则统计相应的字符个数。让i从1增加到10,进行10次循环,最后分别输出各个字符的统计数。

流程图

 

二、同学代码结对互评
1.同学互评照片(左;我的代码 右:英红的代码)

 

两人不同点:a.我在定义变量时直接给letter,blank,digit,other单独赋初值,而英红则是先定义再赋值,比较严谨,

但我认为我的方式比较好,因为能节省编程时间;b.我的用ch-getchar()输入字符,直接放在循环中的第一个语句,

而英红在定义字符变量后,在循环前输入一次,后又输入一次作为循环里的最后一个语句,

我认为我的代码比较简洁易懂,映红的代码可以再简化些。

3.本题调试过程碰到问题

 (本题提交一次通过)

题目3:7-29 打印九九口诀表

(本题要求对任意给定的一位正整数N,输出从1*1N*N的部分口诀表)

1. 本题PTA提交列表


2. 设计思路

题目算法:先判断输入的数是否大于等于1,小于等于9,符合条件则进行循环,因为乘法表的形式是梯形,

要分行列,所以要用两个for循完成,外循环表示行,所以判断条件是i<=9,内循环表示列,行数增加列数也增加,

所以判断条件是j<=i;每执行完一个内循环输出一个“\n”换行。

流程图

 

 

 二、同学代码结对互评
1.同学互评照片(左;我的代码 右:英红的代码)

两人不同点:我对输入值的范围进行了判断,而英红没有,但我认为我的代码比较好,英红的代码不够严谨。

3.本题调试过程碰到问题

(本题提交一次通过)

 

三、截图本周题目集的PTA最后排名。(2分)
PTA排名


四、本周学习总结
1.我学会了for循环语句(注意for后的括号里一定不能少了(;;)),循环嵌套,学会使用临时变量来处理符号改变问题,

会应用ch-getchar()来输入字符。
2.本周的内容,我因为许多算法思维都没整理好,应用不熟练,许多题都没做出来。
3.循环结构考试总结
1.循环结构的测试题我还有很多些不出来,原因是有些没有解题思路,有些是思路不够清晰;

解决方法:多做题,做题时要注意将一个类型的题目总结起来,每次写程序要养成写备注的习惯,看书时要适当记忆基础知识。
2.对考试结果不满意,发现了自己有很多知识漏洞,编程能力差。

Copyright © 2024 海团
Powered by .NET 8.0 on Kubernetes