资源预览内容
第1页 / 共97页
第2页 / 共97页
第3页 / 共97页
第4页 / 共97页
第5页 / 共97页
第6页 / 共97页
第7页 / 共97页
第8页 / 共97页
第9页 / 共97页
第10页 / 共97页
亲,该文档总共97页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计1第八讲 (六)程序调试(七)结构化程序设计综合实例第3章 结构化程序设计湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计2VFP程序的构成VFP程序设计语言的特点VFP程序设计的概念递推法 选择排序法 冒泡排序法算法 程序的建立与运行穷举法基本 概念 与操 作方 法典型算法迭加(累加)法湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计3 Visual FoxPo程序设计的概念一、什么是程序Visual FoxPro提供了一种程序执行方式,这种方式就是预选把需要执行的多条命令按一定的结构组成一个有机序列以文件的形式存储在磁盘上,这个文件就称为程序文件或命令文件。湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计4其中,把Visual FoxPro提供的命令、函数和控 制语句有机的组成一个计算机可执行的序列,这个 序列的设计、编码和调试的过程编写调试程序 。使用计算机解决实际问题,通常是先要对问题进行分析并建立数学模型,然后考虑数据的组织方式和算法,并 用某一种程序设计语言编写程序,最后调试程序,使之运 行后能产生预期的结果。这个过程称为程序设计。湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计5二、 Visual FoxPro程序设计语言的特点 1、语言丰富、自成体系2、人机对话功能3、高效的结构化程序设计功能Visual FoxPro程序具有顺序、分支、循环三种 基本结构。 Visual FoxPro的语句没有标号,程 序的走向完全靠控制块控制。一般来讲, Visual FoxPro程序由一主控程序和若干子控程序组成。 任何一个程序的逻辑结构均可由顺序结构、分支 结构、循环结构组合而成。湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计6 顺序结构 分支选择结构(选择结构)循环结构1.当型循环结构:当条件成立时反复执行,直到条件 不成立;2.直到型循环结构:先执行,再判断条件是否成立, 若为假(不成立),继续执行,直到条件为真(成立 ) 用循环结构编程时,要注意出现死循环。死循环:一种永远也跳不出循环体的循环。湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计7!注意:程序的每一行只能书写一条语句,并且一行最多只能有255个字符(包括空格)。如果一条语 句一行写不完,可以用“;”续行,每一个语句用回车键结束。湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计8三、 Visual FoxPro程序的构成* 程序名: AREA.PRG * 功能: 求圆的面积 * 设计人 张大民 *设计日期 1998年3月 SET TALK OFF SET COLOR TO GR+/B+ CLEAR INPUT“圆半径R=”TO R S=3.1415926*R*R ?“圆面积S=”,S CLEAR ALL SET TALK ON RETURN程序的前 文程序的设 置部份程序的主体部份程序的关闭部份程序的退出部份湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计9程序的前 文程序的设 置部份程序的主体部份程序的关闭部份程序的退出部份提供数据运算处理输出结果INPUT“圆半径R=”TO RS=3.1415926*R*R?“圆面积S=”,S湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计10算法如果需要解决一个实际问题,从拿到任务到得到 结果,要经过以下几个阶段: 1、分析问题; 2、确定处理方案; 3、确定操作步骤; 4、根据操作步骤编写源程序; 5、将程序输入计算机并使之运行; 6、整理输出结果,写出有关文档资料。一、利用计算机处理问题的过程湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计11计算机处理一个实际问题的主要过程分析问题确定处理方案 (算法设计)确定操作 步骤编写程序上机运行 程序整理结果湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计12二、算法的概念在上述六个步骤中,第1、2步一般与实际问题的 专业有关,第36步则是程序人员的职责。其中 最关键的是第3步,即“算法设计”,只要算法是正确 的,写程序就不会有太多困难。所谓“算法”,粗略 地说,是为解决一个特定问题而采取的确定的、有 限的步骤。三、算法的表示流程图例2 求一个班学生的平均成绩。设A等(85)12人,B等 (70分)16人,C等(60分)6人,D等(50分)5人。例3 输入一个数x ,如果它的值为正,则打印x的值。例4 输入10个数,把其中的正数打印出来。湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计13开始A=85B=70C=60D=50PJF=(A*12+B*16+C*6+D*5)/(12+16+6+5)结束输出平均成绩PJF开始输入A、B、C、D的值结束输出平均成绩计算平均成绩湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计14NY开始输入X的值结束输出XX0输入一个数给XX0是否输出X湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计15开始输入X的值结束输出XX0输入一个数给XX0是否输出XN=1N菜单窗口方式:文件的保存:2、用WPS建立和编辑VFP程序文件3、用DOS的EDIT编辑器来建立和编辑VFP程序文件湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计17二、 Visual FoxPro程序文件的执行1、命令窗口方式: DO 2、菜单窗口方式3 、直接单击工具栏中的红色惊叹号。4、右击程序编辑窗口标题栏,弹出快捷菜单,选择执行命令。湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计18一、迭加(累加)法 典型算法 P=0P=P+1累加统计S=0S=S+X湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计19和积综合计算1、有限个符合条件的整数的和积计算;2、有特殊规律的分数的和的计算;3、逆积式的计算。这类计算要注意两个要点:一是用来表 示计算结果的初始化值。二是计算的过程是 否正确。这类问题出现在填空题和改错题中 的可能性非常大。主要考核程序设计的基本 功。湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计20举例: 例1 利用循环结构求1100之和。MODI COMM EX121.PRGSET TALK OFFCLEARS=0I=1方法一湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计21DO WHILE I720 EXITENDIF ENDDO I=I-1 FONT 魏碑体,28 STYLE B;GET S FONT 魏碑体,28;STYLE B FUNCTION B 14,10 SAY “最后一个乘数是”;FONT 魏碑体,28 STYLE B;GET I FONT 魏碑体,28;STYLE B FUNCTION B SET TALK ON RETURN湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计27SET TALK OFF CLEAR S=1 FOR I= 1 TO 800S=S*I IF S720 EXITENDIF ENDFOR ?”最后一个乘数是” FONT 魏碑体,28 STYLE B,I FONT “”,28 ? “连乘数的积S=“FONT “”,28,S FONT “”,28 SET TALK ON RETURN方法二湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计28例3已知 S1=1,S2=1+2,S3=1+2+3, Sn= 1+2+3,+n,编写一程序求S1+ S2+ +S100的和。MODI COMM EX738PRG湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计29SET TALK OFF CLEAR N=1 S=0 DO WHILE N6000的S的最小值 CLEAR DIME SUM2(10000) S=0 SUM1=0 FOR N=1 TO 10000 SUM1=SUM1+2NS=S+SUM1SUM2(N)=S?SUM2(N)IF S6000EXITENDIF ENDFOR ?“S=“,SUM2(N-1) RETURN湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计71*2求S=1+1/1!+1/2!+1/3!+1/n! SET TALK OFF CLEAR S=1 T=1 FOR N=1 TO 25T=T*NS=S+1/T ENDFOR ?“S=“,ROUND(S,4) SET TALK ON RETURN湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计72*3求100,900之间相差为12 的素数对的个数 SET TALK OFFCLEARdime a(400)k=0 p=0 FOR M=100 TO 900IF PRI(M)k=k+1a(k)=m* ?“A(“+allt(str(K)+“)=“,A(K)ENDIF ENDFOR *?K湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计73for i=2 to Kif a(i)-a(i-1)=12* ?a(i),a(i-1)p=p+1endif endfor ?“p=“,p SET TALK ON RETURN湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计74FUNC PRI PARA N J=2 FL=.T. X=INT(SQRT(N) DO WHILE J0 &判断N不是素数且不为偶数?Ns=s+nX=X+1endif endfor ?X=,X ?“s=“,s SET TALK ON RETURN*4-求9-499之间非偶非素数的数之和及个数湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计76*5 输出字母金字塔 SET TALK OFF CLEAR FOR X=1 TO 5?SPACE(40-X)FOR Y=65 TO 64+X*2-1?CHR(Y+X-1)ENDFORENDFOR SET TALK ON RETURN湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计77set talk off clear k=0 for m=700 to 899for i=2 to m-1if mod(m,i)=0exitendif endforif i=m and “1“$str(m)=.T. k=k+1b=m endif endfor ? k,b set talk on return 求(-)素数且至少有一位 为1的素数*改错湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计781*主程序:T1.PRGSET TALK OFFCLEARSTORE AB TO K1,K2DO T2?K1+K2SET TALK ONRETURN*写出程序运行结果湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计79*子程序:T2.PRGPRIVATE K1K1=K2+“250“?K1RETURN湖南师范大学计算机教学部数据库技术及应用课程VFP程序设计80*2SET TALK OFFCLEARSTORE 1 TO XSTORE 2 TO YDO WHILE XX/2X=1+X2Y=Y
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号