| 这个作业属于哪个课程 | C语言程序设计II |
| ---- | ---- | ---- |
| 这个作业要求在哪里 | 作业要求 |
| 我在这个课程的目标是 | 对函数的定义和调用有初步的认识,能模仿编程 |
| 这个作业在那个具体方面帮助我实现目标 | PTA练习,有同学作业之间的比较, 自我总结 |
| 参考文献 | 《C语言程序设计》《C语言实验与设计》 |
| 学号 | 20209035 |
1.PTA实验作业
1.1 使用函数求圆台体积
这是一道看起来很吓人的题,乍一看没看明白,可事实就是一个用电脑写的数学题,要求实现函数求圆台体积,定义并调用函数volume_tc(r_lower, r_upper, h)计算下底半径为r_lower、上底半径为r_upper、高度为h的圆台的体积,函数类型是double。
1.1.1 数据处理
数据表达:变量有r_lower,r_upper,h;通过scanf语句赋值得到;类型(double)。
数据处理:用到的表达式(v = PI * (r_upper * r_upper + r_lower * r_lower+ r_lower * r_upper) * h / 3),流程结构(先指定主函数再自己定义一个函数来计算最终结果)
函数参数:主函数为自定义函数,调用了自己定义的求体积的函数,为浮点型,无形参实参有r_lower,r_upper,h。
1.1.2 实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
30 10 5 | v=6806.78 | r_lower>r_upper>h |
25 10 20 | v= 20420.34 | r_lower>h>r_upper |
15 8 20 | v= 8566.07 | h > r_lower>r_upper |
6 12 18 | v= 4750.08 | h>r_upper> r_lower |
1.2.4 PTA提交列表及说明 | ||
提交列表说明 | ||
1、编译错误:定义函数时第一行多了个分号,去掉就好 | ||
2、编译错误:PI打成3.1415,原认为π打不出就用数字代替,后发现前面给出了PI | ||
3、编译错误:一个简单的题目却让我犯了好多细节的错误,这次是将return后习惯打出0,实际返回值为v还有一次编译错误纯属手贱多点了一下提交 | ||
1.2 求组合数 | ||
这题题要求编写程序,根据公式算出从n个不同元素中取出m个元素(m≤n)的组合数,上课讲过一样的练习。 | ||
1.2.1 数据处理 | ||
数据表达:用到了m,n两个通过scanf语法赋值得到的变量都为int型,另外的sum变量由m,n计算得来为double型 | ||
数据处理:用到的表达式(i=1; i<=n; i++,result = fact(n)/(fact(m)*fact(n-m))流程结构利用循环结构 | ||
函数参数:主调函数为main型,被调函数为fact(double n),双精度浮点型,实参为m,n,sum,形参为i。 | ||
1.2.2 实验代码截图 | ||
1.2.3 造测试数据 | ||
输入数据 | 输出数据 | 说明 |
---- | ---- | ---- |
11 13 | result = 78 | m,n>10 |
52 60 | result = 2558620845 | m,n>50 |
-1 -5 | result = 1 | m,n<0 |
1.2.4 PTA提交列表及说明 | ||
提交列表说明 | ||
1、编译错误:多定义了一次result导致重复,删除result,用sum取代 | ||
2、编译错误:printf输出时,未将取代的result改为sum,找不到变量 |
2. 代码互评(求幂之和 )
2.1 同学代码
我的代码
差异:
1.同学的代码将n定义为整型,我将n统一用double定义,他的更细节、
2.我的代码少定义了一个reslut,直接在printf输出时用sum取代,简化了步骤
3.总体排版来看,我的代码更简洁,但是麻雀虽小,五脏俱全,我个人认为这一局我稍强一点的
2.2 代码互评(求简单交错序列前N项和)
同学代码
我的代码
差异:
1.同学代码用x代表了分母,而我用了denominator,他的更简单,可我的更加明显易懂
2.我的代码在这一题计算的时候用到的是题目提到的规律,而这个同学是自己找到的规律,较之我的更加复杂
3.这位同学的代码中使用到了<math.h>数学函数和pow函数看起来函数的难度更高级
3. 学习总结
3.1 学习进度条
周 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第一周 | 10小时 | 79行 | Helle World!代码,基本printf()语法的使用 | 无 |
第二周 | 20~30小时 | 400多行 | 常量 变量 以及数据类型以及不同情况下的使用 | 大部分时间都在完成PTA上的测试,对PTA的使用上还存在缺陷 |
第三周 | 30~40小时(多用于完成博客园作业) | 600行左右 | if-else语法的使用,数学函数的表达 | 对于概念性回答有不足,代码可能会敲但是可能不能清晰描述每一行的含义 |
第四周 | 35小时以上 | 800行左右 | 循环语句,调用定义函数 | 对于调用函数不是很熟练 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
(1)这一周学习了很多东西,相对于之前几周来说让人觉得更有感觉,学的都是能够动手操作的东西,有了更多实践的体会,让人感受到了这门课程散发出来的魅力,就是那种你觉得很难可是愿意迎难而上的感觉,你可能会因为失败而感觉心烦,可能会因为花费的时间长而想放弃,但是当你真正认真开始做的时候你会忘掉时间,到最后只是觉得那种胜利的充实感,这或许就是这门课的奥义。
(2)这一周随学到的东西增多,代码也敲的多很多,在实践中细节上的错误在减少,速度也在变快,上周总结了自己不足的地方,也在这周的学习中得到了巩固。
(3)对于课堂和老师我一直都觉得很满足,老师上课也能把每个细节都讲到,也会为我们留时间来练习,对此深表感谢。