这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/9768 |
我在这个课程的目标是 | 熟练地使用for循环语句实现指定次数的循环程序设计 |
这个作业在那个具体方面帮助我实现目标 | 学习sum累加和,product累加积以及定义赋值 |
参考文献 | 《C Primer Plus》,百度百科, Markdown基本语法 |
1.PTA实验作业
1.1求平方与倒数序列的部分和
本题要求对两个正整数m和n(m≤n)编写程序,计算序列和m2+1/m+(m+1)2+1/(m+1)+⋯+n2+1/n。
输入格式:输入在一行中给出两个正整数m和n(m≤n),其间以空格分开。
输出格式:在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位。题目保证计算结果不超过双精度范围。
1.1.1数据处理
数据表达:用了m,n,sum,item四个变量。其中m,n是整形变量,是通过直接输入得来的。sum,item是双精度浮点型变量,通过赋值得来的。
数据处理:for语句中有三个表达式——1.m,2.m<=n,3.m++.流程结构是输入m,n,将m的值赋给i,定义sum的初始值为0,建立for循环,规定i的上限为n,设定循环体让结果累加,并且每次i都加一,最后输出sum。
1.1.2实验代码截图
1.1.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
5 5 | 25.200000 | m=n |
10 20 | 2585.768771 | m<=n |
-5 | 0.000000 | m>n |
1.1.4PTA提交列表及说明
1.编译错误:for语句三个表达式用逗号隔开的,没有用分号。
2.答案错误:在我写的程序里,当n<m时,输出 Invalid Value!。
3.答案错误:精确到小数点后的位置不对,我精确的是三位,而题目要求6位数。
1.2求交错序列前N项和
本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和。
输入格式:输入在一行中给出一个正整数N。
输出格式:在一行中输出部分和的值,结果保留三位小数。
1.2.1数据处理
数据表达:定义了四个整形变量,N,i,flag,denominator,定义了两个双精度浮点型sum与item.通过直接输入与赋值得来。
数据处理:输入N来确定上限,定义sum的初始值是0,设定for循环初始值i=1,上限为N,设定循环体累加,flag=-flag,分母每次加+2,在到达上限时求sum的值,并且精确到3位小数.
1.2.2实验代码截图
1.2.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
5 | 0.917 | 验证是否正确 |
10 | 0.380 | 输入一个正整数 |
-5 | 0.000 | 输入一个负整数 |
1.2.4PTA提交列表及说明
1.答案错误:输出格式不正确。
2.答案错误:我的sum定义为double,而句中用的%.3d。
3.部分正确:item=flagi/denominator;
4.编译错误:我的item=flagi.0/denominator;正确的是item=flagi1.0/denominator;
2.代码互评
同学代码截图(1)
同学代码截图(2)
自己代码截图
与同学(1)的差异:
1.定义常量不同.我额外运用了flag与denominator。
2.循环结构不同.我运用的sum=sum+item,flag去改变符号,分母每项递增2求和。同学(1)调用数学函数sum=sum+pow(-1,i+1)i/(2i-1)。
3.我的排版通俗易懂,常规做法,同学(1)的设置更加巧妙,节省时间.
与同学(2)的差异:
1.同学(2)的变量命名更加简便.
2.同学(2)比我少定义一个item.
3.学习总结
3.1 学习进度条
周/日期 | 这周所花时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第四周(10.14--10.18) | 15个小时 | 250行左右 | for循环语句,基础的循环程序设计,数据的输出宽度 | 数据的输出宽度概念不太清晰,表达式的定义,空语句的定义 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1学习内容总结
本章通过输出华氏-摄氏温度转换表,学习for循环语句,以及了解了数据的输出宽度.for语句有三个表达式,表达式1为初始状态,表达式2为循环执行条件,表达式3为循环控制变量的变化,其中,表达式1只执行一次,for语句后面没有分号.for语句中的表达式用分号隔开.循环体语句只能是一条语句,如果循环多条语句要用大括号包括起来,组成复合语句,复合语句在语法上是一条语句.举例for(fahr=lower;fahr<=upper;fahr++)1.三个表达式分别为fahr=lower,fahr<=upper,fahr++.表达式要用分号隔开,否则编译错误,for语句后面不用打分号,for语句之后打了分号就为空语句,不参与程序运行
3.3.2学习体会
通过本周的学习,学习了for循环,也学习了指定次数的循环程序设计.一开始看到的时候也觉得挺复杂的,但是认真地学习之后不仅不复杂,还可以在学习中体会编程的乐趣,那种答案正确的喜悦感也是求学路上的一道风景线,对于计算机科学与技术学习,我认为应该提前自学,上课时负责解决疑难问题的,要多运用课余时间去自学,不仅仅是C语言这一门课程,大学学习中的任意一门学科都应该如此,坚定信念,怀揣梦想,努力就一定有收获.