函数3
1.本章学习总结
1.1 思维导图
1.2 本章学习体会及代码量学习体会
1.2.1 学习体会
1.这周学会了定义函数,对函数进行集成和封装,以实现相应的程序功能,它可以把复杂的问题变简单,增强了程序的可读性。
2.区分了局部变量和全局变量,了解了变量的在程序中的一些作用原理,如:变量的作用域、存储方式、静态变量只赋初值一次,并且会保持上一次调用的值。
3.测试成绩不理想,题量不够,解题思路不清晰,在接下来的学习中多做题,多阅读代码,学会将别人的思路转化为自己的。
1.2.2 代码累计
2.PTA总分
2.1截图 PTA中的排名得分
2.2 我的总分:
pta总分:145
3.PTA实验作业
3.1 PTA题目1
本题要求实现一个判断素数的简单函数,并利用该函数验证哥德巴赫猜想:任何一个不小于6的偶数均可表示为两个奇素数之和。素数就是只能被1和自身整除的正整数。
其中函数prime当用户传入参数p为素数时返回1,否则返回0;函数Goldbach按照格式“n=p+q”输出n的素数分解
3.1.1 算法分析
- //定义判断素数的函数
- 定义循环参数i
- 传值给P
- if(p==1) return 0 //1不是素数
- end if
- for 2 to P/2
- if p%i==0 then
- 返回值 0
- end if
- end for
- return 1//素数返回1
- //定义void Goldbach函数
- 传值给n
- 定义循环参数i,j
- int prime( int p )//声明素数函数
- for 1 to n-1 do
- for 3 to n-1 do
- if prime(i)+prime(j)==2 then//调用素数函数
- if i+j==n do
- printf("%d=%d+%d",n,i,j)
- end if
- end if
- if prime(i)+prime(j)==2 then//调用素数函数
- end for
- for 3 to n-1 do
- end for
3.1.2 代码截图
3.1.3 测试数据
3.1.4 PTA提交列表及说明
Q1:判断素数忽略了1不是素数,没有全部正确,加上了一个if判断1
A1: 调用素数函数减少了代码量
4.大作业
4.1.函数关系图
4.2.函数功能介绍
main函数
1.题库使用说明和难度选择提示 (1)
提供良好的界面,增强用户体验。
2.主干和多个函数调用 (2)
联系多个函数的纽带,同时还有计时和选题数、步数功能(其中调用(3)、(4)、(5)函数不在此累赘)
1.do-while函数实现用户选择功能
2.while函数实现输出题目
3.生成随机式子 (3)
随机生成用户选择类型题目(本程序扩展为三个等级都为加减乘除)
1.if判断是一步还是两步
2.当第一步是加减第二步的乘除要先算,即优先级问题
4.对错提示 (4)
判断用户计算对错,并给出相应提示
5.限时函数 (5)
把用户计算时间限定在一定时长
4.3 运行结果截图
4.4 调试碰到问题及解决办法
Q1:当小淞很皮,按错输入一串字母,然后程序崩了
A1:通过以下框架实现稳定输入(就算小淞睡键盘也不会崩了)
Q2:用随机函数取余得到多位数时,会出现缺位如:
A2:用while语句限定一个范围即可
Q3:怎么计算出两步的正确答案
A3:用switch对第二个运算符判断然后计算,(在上方生成随机式子 (3) 中有代码)
Q4:除法怎么判断用户是否正确(因为计算机的结果小数非常多)
A2:保留两位小数(第三位四舍五入),用户输入到两位小数即可
4.5 大作业总结
1.百度是我们的好朋友,不懂就百度。
2.多测试可以发现更多bug,多调试可以很好找出问题所在。
3.函数可以灵活运用,同一个函数每个人有不同的使用方法,同一个问题,解决方法千变万化,所以不要被前人思想禁锢思维,打代码也要打出自己的个性。