顺序结构程序设计与分支结构程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验九顺序结构程序设计与分支结构程序设计
实验目的:
1.熟悉程序的编辑环境以及程序文件的建立、运行与调试方法。
2.掌握VFP程序设计语言的特点和基本输入输出命令的使用。
3.掌握顺序结构程序的设计方法,解决简单的数值计算问题。
4.掌握分支程序的特点,学会正确使用逻辑运算符、逻辑表达式、比较表达式。
5.掌握单分支、双分支、多分支程序设计方法。
实验准备:
1.算法的概念、结构化程序设计的基本步骤。
2.建立、修改、删除、执行程序文件的命令。
3.交互式输入命令INPUT、ACCEPT、WAIT和输出语句?、??的使用。
4.选择结构的概念与类型,实现多重选择的方法。
5.选择结构语句IF-ELSE-ENDIF与DO CASE-ENDCASE的使用方法。
6.程序算法以及对应的程序结构化流程图。
实验内容
1.输入语句、输出语句的使用,其他辅助语句的使用。
(1) 使用?和??命令输出变量、常量、表达式的值,观察结果。
(2) 使用@ … SAY命令输出变量、常量、表达式的值,观察结果。
(3) 使用ACCEPT、INPUT、WAIT等命令输入变量的值。
2. 创建程序文件prog1.prg。在编辑窗口输入如下程序,保存并运行该程序,分析程序的输入、输出。
USE xsda
INDEX ON 姓名TAG sxm
ACCEPT '请输入学生姓名:' TO 姓名
SEEK M->姓名
DISP
? SQRT(入学成绩)
RETURN
3.输入圆的半径,计算面积、计算周长等。面向对象设计利用选项按钮选择运算实现该功能。
4.求一元二次方程ax2+bx+c=0的根。(对任意系数a,b,c)
5.编制程序。根据用户输入的考试成绩(百分制,若有小数则四舍五入),输出相应的等级。等级划分标准为:90-100分优秀;80-89分良好;70-79 分中等;60-69分及格;<60分不及格。
实验步骤:
1. 在VFP命令窗口中输入如下命令,按回车后,屏幕窗口出现命令执行结果。
? ″6+3=″,6+3&& 屏幕上显示6+3=9
?? ″4+5=″,4+5&& 紧接上个命令执行结果的后面显示4+5=9
@ 8,8 SAY ′7+2=′&& 在第8行8列的位置显示字符串7+2=
@ 8,12 SAY 7+2 && 在第8行12列的位置显示表达式结果9 ACCEPT′请输入学生姓名:′TO xm && 在屏幕上出现的提示后面输入不加定界符的学生
姓名
? xm && 显示所输入的学生姓名
USE student && 打开student.dbf表
INPUT '请输入学生姓名:' TO 姓名&& 输入带定界符的学生姓名,这里姓名为表的字段变量
? M->姓名&& 作为内存变量显示所输入的学生姓名
? 姓名&& 显示student.dbf表中当前记录姓名字段的值WAIT '请输入学生姓名:' TO 姓名&& 只能输入单字符,不能输入完整的学生姓名? M->姓名
2. 进入程序编辑窗口的两种方式:
(1) 命令方式。在命令窗口输入:MODIFY COMMAND prog1
(2) 菜单方式。在菜单栏中选择“文件”菜单中的“新建”选项,选定文件类型为“程序”,单击“新建文件”按钮,进入文件编辑窗口,如图9-1所示。
在程序编辑窗口输入如图9-1所示的程序,点击工具栏中“运行”按钮,显示如图9-2的执行结果。
图9-1 程序编辑窗口
图9-2 程序执行结果
3.分析:圆周长=2πR 圆面积=πR2。
(1) 面向过程程序设计。
INPUT "请输入圆半径:" TO R
L=2*PI()*R
S=PI()*R*R
? "圆周长=", L
? "圆面积=",S
4.分析:
(1) 根据一元二次方程的系数a、b、c的取值,有以下几种情况:
①当a≠0时,有两个根。设delta=b2-4ac:
当判别式delta>0时,有两个不同的实根。
当判别式delta=0时,有两个相同的实根。
当判别式delta<0时,有两个不同的虚根。
②当a=0,b≠0时,有一个根。
③当a=0,b=0时,方程无意义。
(2) 根据分析画出N-S流程图,如图9-3所示:
图9-3 N-S流程图(3) 面向过程程序设计。根据流程图,编写如下程序代码:
&& 求ax^2+bx+c=0的根
INPUT "请输入二次项系数a:" TO a
INPUT "请输入一次项系数b:" TO b
INPUT "请输入常数项c:" TO c
IF a<>0
delta=b^2-4*a*c
re=-b/2*a
IF delta>0
sb=SQRT(delta)/(2*a)
x1=re+sb
x2=re-sb
? "x1=",x1, " x2=",x2
ELSE
IF delta=0
? "x1=x2=",re
ELSE
xb=SQRT(-delta)/(2*a)
? "x1=", re, "+", xb,+"i"
? "x1=", re, "-", xb,+"i"
ENDIF
ENDIF
ELSE
IF b<>0
ygz= -c/b
? "x=", ygz
ELSE
? "方程无意义"
ENDIF
ENDIF
5. 利用多条件多分支结构来实现。