这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/9772 |
我在这个课程的目标是 | 掌握并能灵活运用C语言 |
这个作业在那个具体方面帮助我实现目标 | 学习for循环结构语法 |
参考文献 | 《C语言程序设计》 |
一.PTA实验作业
1.1 求奇数分之一序列前N项和
本题要求编写程序,计算序列 1 + 1/3 + 1/5 + ... 的前N项之和。
1.1.1数据处理
数据表达:运用了n,i,s三个变量,其中n,i为整型变量,s为双精度浮点型变量,n表示输入正整数的值,i表示第一个数值,s表示前n项和。
数据处理:运用了for循环语句,循环语句的内容为(i=1;i<=2*n;i+=2),计算表达式为s=s+1.0/i。
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
23 | sum = 2.549541 | 题目样例 |
50 | sum = 2.937775 | 自测数据 |
100 | sum = 3.284342 | 自测数据 |
9 | sum = 2.080624 | 自测数据 |
1.1.4 PTA提交列表及说明
1.编辑错误:循环句内没有注意用”;“隔开,而是用的”,“。翻阅书籍得知,循环语句中的三个表达式没有连系,应用两个分号隔开。
2.部分错误:部分测试点出现答案错误,细看许久没有发现问题所在。通过寻求同学帮助后恍然发现了问题,循环语句中没有注意到n需乘2,此是因自己粗心所犯错误。
1.2 求平方与倒数序列的部分和
本题要求对两个正整数m和n(m≤n)编写程序,计算序列和m2+1/m+(m+1)2+1/(m+1)+⋯+n2+1/n。
1.2.1 数据处理
数据表达:运用了m,n,两个整型变量以及双精度浮点型变量sum;m,n分别表示输入的两个正整数(m<=n),sum表示序列和。
数据处理:运用了for循环语句,循环语句内容为(i = m; i <= n; i++),计算表达式为sum = sum + (i*i + 1.0 / i)
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
5 10 | sum = 355.845635 | 题目样例 |
10 20 | sum = 2585.768771 | 自测数据 |
4 5 | sum = 41.450000 | 自测数据 |
12 12 | sum = 144.083333 | 特殊数据,m=n情况 |
20 10 | sum = 0.000000 | 特殊数据,m大于n情况 |
1.2.4 PTA提交列表及说明
编辑错误:其中有一个逗号使用的是中文符号,粗心所致,多次仔细检查后发现问题并使用英文符号改正。
答案错误:计算表达式错误,刚开始使用了pow函数,由于对该函数不够熟悉使用不当,导致错误,多加思索后,发现可以不用pow函数,反倒是多次一举自找麻烦了。改正后的计算式为sum = sum + (i*i + 1.0 / i)。
二.代码互评
同学1代码:
同学2代码:
我的代码:
代码分析:
- 首先是变量的定义上与我有所差异,我所用的变量是用简便的字母,可在写代码的过程中节约时间,不过缺点就是容易混淆导致后面不知道哪个是哪个。
- 其次是循环体略有不同,但两种皆可行。对面题目的理解略有不同。
- 我与同学2代码不同之处在于计算式的不同,他使用了pow函数而我没有,应是我对其掌握不够之前使用pow函数一直出现错误,通过帮助才使用了不带pow函数的简洁计算式。
三.学习总结
3.1 学习进度条
日期 | 这周所花时间 | 代码行 | 学到的知识简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
10/15-10/18 | 5.5小时 | 92行 | 循环语句的使用方法及其作用 | 循环语句的表达式不能很好的理解,换了不同的题,就有些理解不了了。 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
for循环语句:
-
语句中有三个表达式分别为初值表达式,条件表达式和步长表达式。用于实现C语言的重复执行。
-
三个表达式没有联系所以使用分号隔开。
-
for语句中的三个表达式以及循环体语句的执行顺序和书写顺序有所不同,计算表达式3在执行循环体语句之后。
-
如果循环体语句有多条语句组成,必须用大括号把他们括起来,变成一条符合语句。
3.3.2 学习体会
- 学习感受:从开始现在可以发现我们的作业不再往上增加,作业量不再增加但是也可以发现我们作业的质量也在不断地提升,刚开始地pta作业的完成我们可能只是一味的模仿,不了解其中的技巧和意思,而现在我们可以看得懂别人的代码,并且可以分析代码,我认为这就是我们这段时间以来有效的进步,不过同时也让我感觉到的是,我们离真正掌握这门语言还有很长的一条路要走,我们目前所学习的语法多少及其对其的熟练度都是远远不够的,我们仍需努力。
- 建议:从对C语言的学习来说,最让我头痛的就是不能很好的理解语句的用法,这也就导致了完成pta作业时遇到很多的问题,包括我在内的许多同学往往在做作业之前,往往都是先直接看pta题目,不会然后再去书中找类似的例题去模仿。真正忽视的是对书中精华部分的理解,所以不能做到融会贯通。所以我希望老师能强调先看书理解书中内容再去做pta题目,可以是在讲课前给些时间给我们看书或者是在课后布置预习书中的内容给我们。