1.本章学习总结
1.1 思维导图
1.2 本章学习体会及代码量学习体会
1.2.1 学习体会
函数这章的学习,主要是学习函数声明-调用-定义。在主函数之外再定义函数来实现主函数内想要实现的功能,我认为函数的使用最主要的就是在编写程序时,将程序模板分块,分出各个部门各司其职,在主函数中再将其统一合并,不仅编写程序更加方便清晰,而且增加了程序的扩展性,在想要加入新功能的时候,再写个函数,就能快速的实现与主函数的相结合。
1.2.2 代码累计
2.PTA总分
2.1截图PTA中函数题目集的排名得分
2.2 我的总分:
函数题:130
编程题:15
总分: 145
3.PTA实验作业
3.1 PTA题目1
本题要求实现一个判断素数的简单函数,并利用该函数验证哥德巴赫猜想:任何一个不小于6的偶数均可表示为两个奇素数之和。素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。其中函数prime当用户传入参数p为素数时返回1,否则返回0;函数Goldbach按照格式“n=p+q”输出n的素数分解,其中p≤q均为素数。又因为这样的分解不唯一(例如24可以分解为5+19,还可以分解为7+17),要求必须输出所有解中p最小的解。
3.1.1 算法分析
1.第一个函数:只用来判断素数。2到n的范围内判断,如果能被整出,则计数加1,如果计数为0,且被除数不为1,则返回
2.第二个函数:分解输入数的素数解析式。从2开始到输入的数循环,循环再嵌套循环,先判断第一个数是否为素数,如果是,则计算算除另一个数再判断是否是素数,都满足后就输出
好吧!这么说大家应该也看不懂,直接看图吧!
3.1.2 代码截图
3.1.3 测试数据
3.1.4 PTA提交列表及说明
- Q1: 在调试第二个函数时,一直无法输出
- A1:定义的计数变量在循环结束时没有清0,结构倒置循环崩溃,在大循环内添加清0语句
4.大作业
4.1.函数关系图
4.2.函数功能介绍
1.函数1
- 函数功能:用于产生随机0~3的随机数,随机数在运算函数内通过switch case语句产生不同的符号运算,以此达到产生随机运算符的目的。
- 代码截图:
2.函数2
- 函数功能:将算对的题目计算,除去所算过的题目,再返回正确率。
- 代码截图:
3.函数3
- 函数功能:主要用于程序的界面,优化程序提示
- 代码截图:
4.函数4
- 函数功能:用于一级难度的运算,并在函数内产生随机数,再对用户输入的结果进行判断、输出相应得语句。
- 代码截图:
5、6.函数5、6
- 函数功能:用于二级、三级得运算,两个函数相似,所以结合在一起说明。都是通过产生随机运算符的函数决定输出算式,对用户的输入和答案判断,输出相应提示,再通过循环结构再输出,最后输出题目
正确率。 - 代码截图:
4.3 运行结果截图
-
一级难度:
-
二级难度:
-
三级难度:
4.4 调试碰到问题及解决办法
- Q1:不知该如何产生随机运算符
- A1:定义一个产生随机数的函数,通过产生随机数来对应所要的运算符,在三个难度级内皆可使用
- Q2:定义了计算正确率的函数,但发现,如果用户中途退出,所计算的正确率将是不正确的
- A2:定义了一个count变量来计数,用户做几题就算几题,比较科学
- Q3:在写中途退出的代码时,运行发现最后一题结束后,也会输出中途退出的提示
- A3:增加一个判断结构以及flag,使结束时不会再跳出
4.5 大作业总结
编写过程
- 1:定义出大框架:分别是一、二、三级难度计算的函数以及“界面提示”输出的函数
- 2:编写主函数:用户的输入从主函数开始,通过switch case语句来决定用户的输入将会导向哪个函数
- 3:编写一级难度的题目:
(1)通过循环结构来解决用户想要的题量;
(2) 用户的输入和答案比较
(3)对结果判断,输出不同的提示
(4)结束输出正确率 - 4:在编写一级函数时,对于三个难度级的函数都需要的功能,就独立编写一个函数来实现,如:产生随机运算符、输出正确率
- 5:接着对一级函数复制,黏贴到二、三级难度的函数,再修改变量,二、三级难度的函数便编写完成
- 6:函数合并调试,确认无误完成。
总结:
编写大作业定出大结构,再将其细化,大化小,小化无。其编写过程不断调试,一步一步把整个程序写完。
{\rtf1\ansi\ansicpg1252
{\fonttbl\f0\fnil\fcharset0 .SFUIText-Regular;}
{\colortbl;\red255\green255\blue255;\red45\green45\blue45;}
\deftab720
\pard\pardeftab720\qc\partightenfactor0
\f0\fs32 \cf2 \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 }