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 }