1.作业头
一、本周教学内容&目标
第2章 用C语言编写程序-函数 2.5 生成乘方表与阶乘表。使学生对函数的定义和调用有初步的认识,能模仿编程。
#二、本周作业头
#三、本周作业
1.PTA实验作业**
2.代码互评
3.学习总结
四、作业格式
1.PTA实验作业(20分/题)
从PTA题目集中选出2个你最满意的题目完成以下内容,选择题目难度越大,分值越高,每题20分(每项5分),内容要求如下:
1.1 题目名1
本题要求实现函数求圆台体积,定义并调用函数volume_tc(r_lower, r_upper, h)计算下底半径为r_lower、上底半径为r_upper、高度为h的圆台的体积,函数类型是double。
1.1.1数据处理
介绍实现本题过程中,你的数据表达、数据处理是怎么做的。注意:请务必按照以下方式书写。
数据表达:定义4个双精度型变量,圆台的下底半径r_lower,圆台的上底半径r_upper,圆台的高度h和圆台的体积v。然后前3个变量的值是由运行时给的数值,v则由这3个变量定义的函数计算得到。
数据处理:数据用到的表达式由调用函数语句,并给这个函数相关的定义,求所需的数据;还有使用了输入输出语句来除去不需要的数据,只显示所需的数据。其流程结构是先定义一个函数,再调用这个函数给定义的变量赋值,最后由定义函数计算出数据并输出显示。
函数参数:请明确说明主调函数与被调函数的名称,被调函数的类型,实参与形参的名称、类型。
1.1.2实验代码截图
![](https://img2020.cnblogs.com/blog/2180786/202011/2180786-20201112201307483-1574887422.png)
1.1.3 造测试数据
输入数据 |
输出数据 |
说明 |
10 20 3 |
2199.11 |
远大于1000 |
5 5 5 |
392.70 |
小于1000 |
10 5 5 |
916.30 |
接近1000 |
1.1.4 PTA提交列表及说明
![](https://img2020.cnblogs.com/blog/2180786/202011/2180786-20201112193749750-1529775527.png)
说明:
1.编译错误:第一次直接复制粘贴函数接口定义,然后增加定义PI=3.14159,但编译错误。
2.编译错误:将 v = volume_tc(r_lower, r_upper, h);改为了 v=PIh(r_lowerr_lower+r_upperr_upper+r_lower*r_upper)/3;犯了逻辑上的错误,编码完全错误。
3.编译错误:在c++程序中打完了整段代码,直接将能够正确编译运行的程序粘贴到pta上,忽略了pta题目已经定义了函数,导致编译错误。
1.2 题目名2
本题要求编写程序,根据公式C=n!/(n!*(n!-m!))算出从n个不同元素中取出m个元素(m≤n)的组合数。建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。
1.2.1数据处理
数据表达:本题运用了一个整型变量i,n,m和双精度浮点型变量porduct,result其中n,m由运行时输入的数值,product仅为定义函数,result则由定义函数中公式计算出来,而公式的结果则由n,m决定。
数据处理:运用了输入输出语句,显示所需答案,其次使用了for循环语句,以及一些赋值语句。流程结构则先定义函数,在输入数值,进行for语句循环计算,最后输出语句输出我们所需的答案。
函数参数:请明确说明主调函数与被调函数的名称,被调函数的类型,实参与形参的名称、类型。
1.2.2实验代码截图
![](https://img2020.cnblogs.com/blog/2180786/202011/2180786-20201112201322123-1680985317.png)
1.2.3 造测试数据
输入数据 |
输出数据 |
说明 |
2 8 |
28 |
小于50 |
2 10 |
45 |
接近50 |
2 13 |
78 |
大于50 |
1.2.4 PTA提交列表及说明
![](https://img2020.cnblogs.com/blog/2180786/202011/2180786-20201112201026535-1790353332.png)
说明
1.编译错误:在定义函数之后的调用函数时使用了for循环语句,导致代码编译一直错误。
2.多种错误:在改正for语句后,但是在赋值语句n和m搞反了,导致一直出不了正确答案。
2.代码互评
互评代码1
同学代码截图
![](https://img2020.cnblogs.com/blog/2180786/202011/2180786-20201113113847017-1527996345.png)
自己代码截图
![](https://img2020.cnblogs.com/blog/2180786/202011/2180786-20201112235112834-754974994.png)
不同点
不同点一:他在循环语句中表达每一项的数值计算的函数更加的简洁,节省空间,而我的则更加偏重于详细表达,更加容易理解也更加明了,但是这样占用的空间缺更加的多。相比而言,如果在打更多的代码时,他的写法更加的合适。这一点是我应该学习的。
不同点二:他在循环语句中的循环体所表达的函数与我不同,他选择的是先定义一个大致的函数模型,再给这个函数模型中的变量一个新的表达,而我是直接将整个函数表达出来。很明显,他的写法更加的有格局,更加的聪明,这一种思维是我应该学习的。
互评代码2
同学代码截图
![](https://img2020.cnblogs.com/blog/2180786/202011/2180786-20201113114000282-100069039.png)
自己代码截图
![](https://img2020.cnblogs.com/blog/2180786/202011/2180786-20201113114024853-944788799.png)
不同点一:他在给予一开始的变量时数值稍微复杂一些,可能会增加写代码的精力,也可能会导致容易写错。我选择的是尽量用更小的数值来表达计算,这样可以减少写作的压力,但是这位同学对题目的思考是更加的深入和认真的,这是我们应该学习的。
不同点二:但是他思考的过于复杂,对于函数表达如 “x=b * 1.0/d” 这个函数语句,其实他已经将d和b都定义为双精度浮点型的变量,我们是可以忽略掉*1.0这一步的,所以我们在打代码的时候应该多回头看看,就可以避免做无用功,这样既能减少错误的几率,还能培养我们良好的写作习惯。
3.学习总结
3.1 学习进度条
周/日期 |
这周所花的时间 |
代码行 |
学到的知识点简介 |
目前比较迷惑的问题 |
第八周(10.19~10.25) |
20> |
120 |
第一周我学习了制作简单的文字编程,以及c语言的基本字符和命令。如printf,return 0 等基本字符 |
该周问题已解决 |
第九周(10.26~11.1) |
24 |
180 |
第二周我学会了如何编程制作能够进行加减乘除的小程序,并且学习了使用比单精度更高级的双精度符号,同时也学会了定义一个函数来求所需的数据 |
该周问题已解决 |
第十周(11.2~11.8) |
26 |
260 |
这一周我学会了使用循环语句“for( )”来进行更加复杂的程序,从而解决分段的函数问题,以及多个数据的求和. |
该周问题已解决 |
第十一周(11.2~11.8) |
29 |
280 |
这一周我学会了调用数学函数如pow幂函数来解决乘方表和阶乘表生成的问题,以及学会了自己调用定义一个新函数来解决一些较复杂的数学问题。 |
对于一些几何体计算的函数表达难以理解 |
3.2 累积代码行和博客字数
周/日期 |
博客字数 |
代码行数 |
第八周(10.19~10.25) |
840 |
120 |
第九周(10.26~11.1) |
980 |
180 |
第十周(11.2~11.8) |
1500 |
260 |
第十一周(11.2~11.8) |
1650 |
280 |
![](https://img2020.cnblogs.com/blog/2180786/202011/2180786-20201113122549159-1894480352.png) |
|
|
3.3 学习内容总结和感悟
3.3.1 学习内容总结
![](https://img2020.cnblogs.com/blog/2180786/202011/2180786-20201113125720910-779292226.png)
3.3.2 学习体会
在这一周的学习过程中,我的写作能力也有了一定的进步,比起以前应该强了一点点,同时对于难度更高的题目也更能够轻松的解决,而不像之前一样无从下手。同时也更加适应了这种大量的作业,也希望以后自己也能够更加的强大,最后我希望老师在课堂能够更加多的给我们讲解解题的思维,培养好良好的写作思维能力。最后逑逑辽,给孩子多点分叭=v=。