一、本周教学内容&目标
- 第4章 循环结构 4.5 综合介绍循环结构的程序设计,涉及到多个典型算法。要求学生能够根据实际情况,选择合适的算法、合理的循环结构,熟练的编写程序。
二、本周作业头
问题 | 答案 |
---|---|
这个作业属于那个课程 | C语言程序设计II |
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/10097 |
我在这个课程的目标是 | 熟练地运用C语言进行编程 |
这个作业在那个具体方面帮助我实现目标 | 多写代码 |
参考文献 | 《PTA常见问题解答》伪代码的写法:https://www.cnblogs.com/huipengkankan/archive/2011/07/28/2120416.html,《c语言程序设计》 |
三、本周作业
1.PTA实验作业
1.1输出三角形字符阵列
本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。
输入格式:
输入在一行中给出一个正整数n(1≤n<7)。
输出格式:
输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。
输入样例:
4
输出样例:
A B C D
E F G
H I
J
1.1.1数据处理
数据表达:定义了整型变量n,i,并给i赋值为0,还定义了一个字符型变量cha,将其赋值为'A';
数据表达:
伪代码:
int n; //输入的行数和每行的字符数
输入n
char c←'A'; //定义一个字符型变量,使其从A开始。
int n←0;
if (n < 7){
while(n≠0)
{
for(i←0 to n)
{
printf("%c",ch);
ch←ch+1
}
printf("
");
n←n-1;
}
else{
printf("error!");
}
end
1.1.2实验代码截图
1.1.3造测试数据
输入 | 输出 | 说明 |
---|---|---|
4 | 检验题目要求输出样例 | |
2 | 在符合定义范围内输入 |
1.1.4PTA提交列表说明
编译错误:先在Devc++上运行过了,后面不小心把else前面的花括号删了导致编译错误,我后来根据PTA的错误提示信息改正过来了。
1.2梅森数
形如2的n次方−1的素数称为梅森数(Mersenne Number)。例如2的2次方−1=3、2的3次方−1=7都是梅森数。1722年,双目失明的瑞士数学大师欧拉证明了2的31次方−1=2147483647是一个素数,堪称当时世界上“已知最大素数”的一个记录。
本题要求编写程序,对任一正整数n(n<20),输出所有不超过2的n次方−1的梅森数。
输入格式:
输入在一行中给出正整数n(n<20)。
输出格式:
按从小到大的顺序输出所有不超过2的n次方−1的梅森数,每行一个。如果完全没有,则输出“None”。
输入样例:
6
输出样例:
3
7
31
1.2.1数据处理
数据表达:定义了整型变量m,n,i,j,k,并给k赋值为0;
数据处理:
伪代码:
int m,n,i,j,k←0;
输入n;
for (i←2 to n ){
m←pow(2,i)-1;
for(j←2 to sqrt(m))
if(m%j==0) break;
if(j > sqrt(m)){
printf("%d
",m);
k←k+1;
}
}
if(k==0)
printf("None!")
end
1.2.2实验代码截图
1.2.3造测试数据
输入 | 输出 | 说明 |
---|---|---|
5 | 2的5次方-1以内有三个梅森数 | |
6 | 2的6次方-1以内有三个梅森数 |
1.2.4PTA提交列表及说明
答案错误:开始在devc++上运行的时候少了个判断素数的条件,导致后面运行出来的答案不正确,后面反复检查更改才将答案改正确。
四.代码互评
同学代码
我的代码
我和同学的代码所用的算法不一样,同学第二个for循环中是输出的ch+x,而我是直接输出的ch,并且在后面用了一个n=n-1的式子
同学代码
我的代码
我和同学代码的主要区别在于我们两个算素数的方法不一样,我是利用平方根的方法来计算素数,而同学是利用平方求余来计算素数的。
五.学习总结
|周/日期|这周所花时间|博客字数|代码行|学到的知识点|此前比较迷茫的问题|
|---|---|---|---|---|
|第一周|两天|619|32|学会简单地编写代码|什么时候该空格或者打分号|
|第二周|三天|828|18|学会计算摄氏温度与华氏温度的转化|不太会转化的表达式|
|第三周|三天|1128|90|学习scanf语句,if-else语句|不是很清楚输入符号标点所表示的意思|
|第四周|四天|1425|75|初步了解for循环语句|对其运用的条件还不是很清楚|
|第五周|三天|1408|83|对自定义函数的定义和调用有初步的认识和了解|不是很明白如何调用以及形参和实参的定义|
|第六周|四天|1523|144|对分支结构有进一步的了解,学习了运算符号的输入输出|字符型的输入输出|
|第七周|两天|1688|133|对switch语句有了一定的了解|switch语句使用的具体条件还不是很清楚|
|第八周|一天半|1438|84|do while循环结构和while循环结构|对循环结构的使用还不是很熟练|
|第九周|一天半|1729|82|break和continue语句的使用方法|对continue的使用条件和作用还不是很清楚|
|第十周|一天|1588|79|对for循环嵌套语句有了更进一步的了解|对嵌套的关系还不是很理解|
3.2累积代码行和博客字数
3.3学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
- 我感觉这周的作业难度大一些,虽然没有很多没学过的内容,但是在对学习内容的应用方面要求的更高了,我觉得这是对我们能力的一种挑战,虽然难做,并且我没有都写完,但是对能力的提升确实有很大帮助,希望我下次能更好的完成作业。