函数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
    • end for
  • 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.函数可以灵活运用,同一个函数每个人有不同的使用方法,同一个问题,解决方法千变万化,所以不要被前人思想禁锢思维,打代码也要打出自己的个性。
posted @ 2018-11-12 18:10  codedawn  阅读(387)  评论(3编辑  收藏  举报