1.本章学习总结(2分)
1.1 思维导图
1.2 本章学习体会及代码量学习体会
1.2.1 学习体会
本周主要学习了函数的应用,在程序中使用函数,能让主程序更简洁,解决代码重复问题,适合代码量大的程序。这周的学习感受主要是函数内容和前面的学习内容联系的十分紧密,只要前面的知识都掌握的熟练,那么函数学习起来也比较快。另外还学习了全局变量和静态局部变量,全局变量的使用要慎重,静态局部变量在处理累成和累加问题时很方便。
1.2.2 代码累计
2.PTA总分(2分)
2.1截图PTA中函数题目集的排名得分
2.2 我的总分:
145
3.PTA实验作业(1分)
3.1 PTA题目1
本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有Fibonacci数。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列。
3.1.1 算法分析
定义函数fib( int n )
定义整型变量i,num1=1,num2=1,num3
if n==1 then num3=1
end if
if n==2 then num3=1
end if //当输入n=1或n=2时,Fibonacci数为1
for i=3 to i<=n do
num3=num1+num2;
num1=num2;
num2=num3;
end for
返回 num3
定义函数void PrintFN( int m, int n )
定义整型变量 i=1,j,count=0,num=0
while fib(i)<=10000 do
count++
i++ //计算出10000以内Fibonacci数的个数
end while
for j=1 to j<=count do
if fib(j)>=m&&fib(j)<=n
num++; //统计范围内Fibonacci数的个数
if num==1
输出 fib(j) //第一个数前面没有空格
else
输出 空格+fib(j)
end if
end for
if num==0
输出 No Fibonacci number
end if
代码截图
3.1.3 测试数据
3.1.4 PTA提交列表及说明
- 没有考虑第一项与第二项Fibonacci数都为1,直接从第三项开始考虑了
- 将第一项与第二项作为特殊情况单独考虑
4.大作业(5分)
题目:实现小学四则运算。
4.1.函数关系图
4.2.函数功能介绍
2.主函数main
包括了一级难度二级难度和三级难度
2.函数1,2,3,4
定义了加减乘除四个函数,对产生的随机数进行运算,在一级的时候直接使用,在二级和三级的使用两次即可
4.3 运行结果截图
输入非法数据
中途退出时计算正确率
4.4 调试碰到问题及解决办法
- Q1 输入非法数据时程序陷入崩溃
- A1 使用了fflush(stdin)清除函数,在输入非法数据时清除缓冲区内的数据,并读入新的数据
- Q2 二级和三级进行两部运算时出现错误
- A2 两部运算可出现四种运算符号的排列,随机数取余4分别对应一种情况。并且定义一个中间值两步分别运用两个函数。
- Q3 计算正确率时出现错误
- A3 没有考虑到中途退出的情况,导致题量一直使用输入时的题量,使得答案错误
4.5 大作业总结
本次大作业遇到的问题比较多,自己认识到确实还有很多没有掌握好,然后在写程序的时候遇到了一些还没有学到的问题,比如对于非法数据的处理,这时候多多百度自己不会的内容,多充实自己就显得尤为重要了。这次的作业中运用到了清除函数,然后,在搜索时我发现处理这类问题还有很多其他的方法时这次作业中没有用到的更好的方法,我在空余时间会多看多学。还有就是看了博客园中其他同学的作业,程序写的比较有趣,比较适合本个程序的对象小学生,考虑问题也比较全面,这也是我有待改进的,下次会更注意。