




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章结构化程序设计,3.4模块化设计结构化程序设计原则:自顶向下、逐步细化/求精1、子程序基本概念:主程序:主控模块,调用子程序。子程序:功能模块,被调用。子程序的使用:主程序:do子程序名子程序:通过return返回,第3章结构化程序设计,3.4模块化设计1、子程序主程序与子程序调用关系图:,Settalkoff.DOSUB1.Settalkon,主程序MAIN.PRG,.DOSUB2.RETURN,子程序SUB1.PRG,子程序SUB2.PRG,.Return,注意:Retruntomaster情况,第3章结构化程序设计,3.4模块化设计1、子程序应用举例:例1:分别计算100以内,200以内,300以内的奇数之和。主程序:main.prg&控制模块子程序:sub.prg&功能模块,settalkoffclearx=100dosubx=200dosubx=300dosubsettalkon,s=0forj=1toxstep2s=s+jnext?x,”以内的奇数和为:”,sreturn,主程序,子程序,第3章结构化程序设计,3.4模块化设计2、过程(1)过程文件概念:子程序的独立存在。将多个子程序合并起来存放在一个公用的程序文件中,该文件为过程文件。(2)过程文件构成:procedure子程序1文件名程序returnprocedure子程序2文件名程序return,第3章结构化程序设计,3.4模块化设计2、过程(3)过程的调用和关闭:调用:setprocedureto过程文件名关闭:setprocedureto或closeprocedure(4)过程的应用方式:方式一:主程序+过程文件为两个独立的程序文件方式二:主程序+过程文件在同一程序文件中应用举例:1、采用过程方式,编程实现用“*”绘制平行四边形、梯形、直角三角形和等腰三角形。,第3章结构化程序设计,3.4模块化设计2、过程(3)过程的调用和关闭:调用:setprocedureto过程文件名关闭:setprocedureto或closeprocedure(4)过程的应用方式:方式一:主程序+过程文件为两个独立的程序文件方式二:主程序+过程文件在同一程序文件中应用举例:1、采用过程方式,编程实现用“*”绘制平行四边形、梯形、直角三角形和等腰三角形。,第3章结构化程序设计,3.4模块化设计3、自定义函数函数的分类系统函数自定义函数自定义函数的概念:是指在程序设计中需要某项功能,而系统函数又无法满足需要,则用户可以自己创建函数,这些函数,称为用户自定义函数。自定义函数的分类:内部自定义函数独立自定义函数,第3章结构化程序设计,3.4模块化设计3、自定义函数应用举例:1、自定义一个摄氏温度转换为华氏温度的函数:ctf()。方式一:内部自定义函数:ctf()程序如下:test1.prgclearInput“请输入一个摄氏温度的值:”toc?”华氏温度为:”,ctf(c)functionctfparax¶metersy=x*(9/5)+32returny,提问:该函数可以如系统函数一样使用吗?,第3章结构化程序设计,3.4模块化设计3、自定义函数应用举例:1、自定义一个摄氏温度转换为华氏温度的函数:ctf()。方式二:独立自定义函数:ctf()程序如下:ctf.prgparax¶metersy=x*(9/5)+32returny在命令窗口测试:ctf()在程序中测试:ctf(),提问:如何使用该函数?,第3章结构化程序设计,3.5内存变量的作用域内存变量的分类:全局变量、局部变量、私有变量、隐藏变量全局变量:概念:指在整个系统各级程序中都有效的内存变量。定义:public,先定义后使用。局部变量概念:指在本级程序中有效的内存变量。定义:local,先定义后使用。私有变量概念:指在本级及下级子程序中都有效的内存变量。定义:默认方式,直接赋值使用。隐藏变量概念:将高层程序中创建的、与隐藏变量同名的全局变量和私有变量隐藏起来。是私有变量的一种特例。定义:private,不创建,只是隐藏指定变量。,第3章结构化程序设计,3.5内存变量的作用域四种变量的关系:应用举例:例1:分别计算100以内,200以内,300以内的奇数之和。验证一:主程序与子程序的正常应用,系统默认变量x的作用域是什么?(私有变量,具有继承性)验证二:在主程序中声明:localx,观察会发生什么错误,为什么?(局部变量,不能在非本级程序中使用)验证三:在子程序中声明:privatex,观察会发生什么错误,为什么?(隐藏了上级变量,本级程序中无法使用),第3章结构化程序设计,课堂练习1、利用过程文件完成多图形绘制。2、定义一个测试是否为素数的函数:prime()FunctionprimeInput“请输入一个自然数:”tonFlag=.t.fori=2tosqrt(n)Ifmod(n,i)=0Flag=.f.exitEndifNextIfflag?n,”是素数”Else?n,”不是素数”Endif,第3章结构化程序设计,3.5数组的应用1数组与数组元素(1)概念:数组是用一个统一的名称表示的、顺序排列的一组变量。类似于数学中的下标变量。(2)数组元素:数组中的每一个变量称为一个数组元素。2数组的维数:(1)一维数组与二维数组:A(10),B(5,2)(2)数组的顺序:一维数组:A(1)A(2)A(10)二维数组:B(1,1)B(1,2)B(2,1)B(2,2)B(5,2),第3章结构化程序设计,3.5数组的应用3数组的使用(1)数组的定义(声明):Dimension数组名declare数组名(2)数组的作用域:local、private、public同变量的作用域(3)数组的赋值:=、store给某一元素赋值:A(1)=1给某一数组赋值:A=1,第3章结构化程序设计,3.5数组的应用3数组编程例1随机产生100个10,99之间的随机整数。settalkoffcleardimea(100)fori=1to100a(i)=int(rand()*90+10)?a(i)nextsettalkon,第3章结构化程序设计,3.5数组的应用3数组编程例1进一步随机产生100个10,99之间的随机整数,并求和。settalkoffcleardimea(100)s=0fori=1to100a(i)=int(rand()*90+10)s=s+a(i)Next?ssettalkon,第3章结构化程序设计,数组的应用例题2.已知一个数列的前3项分别为0,0,1,以后各项都是前3项之和,求该数列的前30项之和。settalkoffcleardimea(30)a(1)=0a(2)=0a(3)=1fori=4to30a(i)=a(i-1)+a(i-2)+a(i-3)s=s+a(i)endfor?ssettalkon,第3章结构化程序设计,程序设计综合练习典型习题1-递推算法已知一个数列如下:1、1、2、3、5、8、13、21求该数列的第60项为多少?settalkoffcleardimef(60)f(1)=1f(2)=1fori=3to60f(i)=f(i-1)+f(i-2)f(i-2)=f(i-1)&新的第一项f(i-1)=f(i)&新的第二项endfor?f(i-1)settalkon,为什么?验证!,第3章结构化程序设计,程序设计综合练习典型习题2-求素数例题1:判断一个数是否为素数?settalkoffclearInput“请输入一个自然数:”tonflag=.t.fori=2tosqrt(n)|n/2|n-1Ifmod(n,i)=0flag=.f.exitendifnextIfflag?n,”是素数”else?n,”不是素数”endifsettalkon,可以删除该语句吗?为什么?,第3章结构化程序设计,程序设计综合练习典型习题2-求素数例题2:求100到1000之间素数的个数。s=0forn=100to1000flag=.t.fori=2tosqrt(n)Ifmod(n,i)=0flag=.f.exitendifnextendforIfflags=s+1endif?s,Flag=.t.?为什么?,第3章结构化程序设计,程序设计综合练习典型习题3-求完备数例题1:一个整数所有因子之和等于该数本身,如6=1+2+3。求10000以内完备数。fori=1to10000s=1forj=2tosqrt(i)ifmod(i,j)=0s=s+j+i/jendifnextifs=i?iendifnext,i/j是什么?,第3章结构化程序设计,程序设计综合练习基本编程练习题1.用一元纸币兑换一分、两分和五分的硬币,要求兑换硬币的总数为60枚,问共有多少种换法?(注:在兑换中一分、两分或五分的硬币数可以为0枚)112.已知一个数列的前3个数为3,4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机械理论知识
- 现浇混凝土挡板施工方案
- 塑钢门窗套施工方案
- 煤矿络竞赛方案范本
- 江苏航运职业技术学院《合唱与指挥法》2023-2024学年第二学期期末试卷
- 云南文化艺术职业学院《体育市场营销》2023-2024学年第二学期期末试卷
- 山东财经大学燕山学院《韩国语》2023-2024学年第二学期期末试卷
- 菲林丝印培训
- 湖南铁路科技职业技术学院《嵌入式系统开发及应用》2023-2024学年第二学期期末试卷
- 湖北公路顶管施工方案
- GB/T 45242-2025保健食品中肌醇的测定
- 股东查账申请书
- PEP人教版小学英语三年级下册单词表
- 极端天气安全教育主题班会
- 教师团队建设与质量提升的策略与路径
- 公交车预防春困
- 口腔咨询师接诊技巧培训
- 贵州省三级医院评审标准实施细则(2023版)
- 涂层与基材结合强度-洞察分析
- 2024年考研英语(二)真题及参考答案
- 江苏省安全员C证考试(专职安全员)题库附答案
评论
0/150
提交评论