结构化程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验5结构化程序设计
【实验目的】
1.掌握建立、修改、运行和调试程序文件的方法。
2.掌握顺序结构的程序设计方法。
3.掌握分支结构的程序设计方法。
4.掌握循环结构的程序设计方法。
5.掌握子程序调用的程序设计方法。
【实验内容】
1.练习建立、修改、运行和调试程序文件。
2.练习顺序结构的程序设计。
3.练习分支结构的程序设计。
4.练习循环结构的程序设计。
5.练习子程序的程序设计。
【实验要求与步骤】
【实验5.1】练习建立、修改、运行和调试程序文件。
实验分析
建立、修改和执行程序可以使用主菜单、工具栏和命令3种方法来实现;其中命令:MODIFY COMMAND <程序文件名>用来建立和修改程序;命令:DO <程序文件名>用来执行程序。
(1)建立程序文件。
操作步骤
①启动Visual FoxPro。
②在系统菜单中,选择【文件】|【新建】命令,在弹出的对话框中选择“程序”单选按钮,然后单击“新建文件”按钮,打开程序文件编辑窗口,如图1-5-1所示。
③输入程序,如图1-5-2所示。
④选择系统【文件】|【保存】命令,或单击工具栏中的“保存”按钮,弹出“另存为”对话框。
⑤选择保存路径,输入新建的程序文件名。
⑥关闭程序文件编辑窗口。
Visual FoxPro 程序设计上机指导
·59·
(2)修改程序文件。 操作步骤
① 在系统菜单中,选择【文件】|【打开】命令,在弹出的“打开”对话框中选定文件类型为程序,然后选择程序文件所在文件夹,鼠标选中要打开的程序文件,单击“确定”按钮,如图1-5-3所示。
图1-5-3 选择要打开的程序文件
② 进入程序文件编辑窗口后,修改程序。 ③ 存盘退出程序文件编辑窗口。 (3)运行和调试程序。 操作步骤
① 在系统菜单中,选择【程序】|【运行】命令,在弹出的“运行”对话框中选择程序文件所在文件夹,鼠标选中要运行的程序文件,单击“运行”按钮,如图1-5-4所示。
② 如果程序没有语法错误,则系统运行所指定的程序文件。
③ 如果程序中,存在语法错误,则系统显示“程序错误”对话框,在对话框中提示用户并给出错误信息,将程序编辑窗口中的错误语句高亮显示,如图1-5-5所示。
④ 根据需要,在“取消”、“挂起”、“忽略”、和“帮助”4个按钮中进行选择,每个按钮中的英文字母表示各个按钮所对应的按键。选择后回到程序编辑窗口。 ⑤ 修改程序。
⑥ 存盘后重复上述程序调试操作,直到程序正确。
技巧解析
程序中的错误可以分为语法错误和逻辑错误,通常在Visual FoxPro 中,只能找到语法错误,在程序调试过程中,还要注意消除逻辑错误。
图1-5-4 选择要运行的程序 图1-5-5 “程序错误”对话框
【实验5.2】数值计算类程序设计。
(1)计算100以内的所有奇数和并显示,程序运行结果如图1-5-6所示。
实验分析
首先设定变量S用来存放奇数的和,把变量S初始值清0。其次要实现题中要求,必须使用循环结构来对100以内的数据逐一进行判断,如果满足奇数条件则将其累加到变量S上,否则继续对下一个数据进行判断,直到100为止。
图1-5-6 “奇数和”程序运行结果
在程序编辑器窗口输入如下代码。
SET TALK OFF
CLEAR
?SPACE(10)+"计算100以内的所有奇数和"
S=0
FOR I=1 TO 100
IF INT(I/2)<>I/2
S=S+I
ENDIF
NEXT
@5,10 SAY "100以内的所有奇数和为:"+STR(S,6)
技巧解析
其中循环语句可以使用DO WHILE…ENDDO,也可以使用FOR…ENDFOR循环,FOR 语句通常用来控制有固定循环次数的程序设计。
(2)求自然数1~N中能同时被5和3整除的数之和,运行结果如图1-5-7所示。
图1-5-7 “整除数求和”程序运行结果
实验分析
本程序完成将N个自然数中所有能被3和5整除的数求和,并输出计算结果的功能。首先用INPUT语句从键盘接收自然数N,然后在循环体中使循环变量I从1增加到N,每次增加一个循环变量值,随着I的增加,将能被3和5整除的数筛选出来并求和。当I>N时,循环结束,将总和S输出。在循环体内的分支结构条件表达式中,欲判断I能否同时被3和5整除,条件表达式应为MOD(I,3)=0 .AND. MOD(I,5)=0。
·60·
Visual FoxPro程序设计上机指导
在程序编辑器窗口输入如下代码。
CLEAR
SET TALK OFF
?"求自然数1~N中能同时被5和3整除的数之和"
INPUT "请输入N的值:" TO N
S=0
FOR I=1 TO N
IF MOD(I,3)=0 AND MOD(I,5)=0
S=S+I
ENDIF
ENDFOR
?"能同时被5和3整除的数之和",S
RETURN
技巧解析
当使用.AND.操作符的时候,两个条件同时为真时,逻辑表达式结果为真;当使用.OR.操作符的时候,任意一个条件为真时,逻辑表达式结果为真。
(3)用户由键盘输入整数K(1 图1-5-8 “阶乘和”程序运行结果 实验分析 本程序首先分别判断输入的整数K与M是否满足条件。如果不满足条件,则由循环程序控制要求重新输入;如果输入数据满足条件,利用FOR循环,首先计算K的阶乘值,将求和变量S赋初始值为K!,设置(K+1)~M的循环,每次循环都计算一次新的阶乘,并加到变量S上,最终求得总和。 在程序编辑器窗口输入如下代码。 SET TALK OFF CLEAR ?SPACE(30)+"本程序名是:求阶乘和.PRG" DO WHILE .T. DO WHILE .T. INPUT '请输入数值K(1 IF 1 EXIT ELSE WAIT '输入错误!请输入1到5之间的整数' LOOP ENDIF ENDDO ·61·