顺序结构程序设计与分支结构程序设计

更新时间:2023-11-13 18:09:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验九 顺序结构程序设计与分支结构程序设计

实验目的:

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 ? \圆周长=\? \圆面积=\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所示:

输入a, b, c a=0 ? no yes b^2-4ac?delta delta>0 ? Yes No 方程有二个实根 方程有二个虚根 yes b<>0 ? no 方程有一个根 方程无意义 输出方程的根 图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

? \ \ x2=\ ELSE

IF delta=0

? \ ELSE

xb=SQRT(-delta)/(2*a) ? \ ? \ ENDIF ENDIF ELSE

IF b<>0

ygz= -c/b ? \ ELSE

? \方程无意义\ ENDIF ENDIF

5. 利用多条件多分支结构来实现。

(1) 画出结构化流程图,如图9-4所示。 输入n (给出考试成绩) 情形 90 -100 输出:″成绩″+STR(n)+″等级优秀″

80-89 输出:″成绩″+STR(n)+″等级良好″ 70-79 输出:″成绩″+STR(n)+″等级中等″ 60-69 输出:″成绩″+STR(n)+″等级及格″

<60 输出:″成绩″+STR(n)+″等级不及格″ 图9-4 结构化流程图

(2) 面向过程程序设计。根据流程图,在程序编辑窗口中编写程序代码,如图9-5所示。

图9-5 面向过程程序代码

实验练习

1.对已经建立的xsda.dbf表,请编写按成绩查询学生情况的程序。 2.选择结构分哪几种? 有哪几种方法可以实现多重选择?

3.在多重选择结构中,OTHERWISE子句的意义是什么? 如果不要该子句,如何修改程序? 4.从长沙到岳阳铁路托运行李的运费标准为:40千克以下,每千克0.3元,超过40千克,超出部分每千克0.45元。设计程序,输入行李重量,输出运费。

5.设计一个程序,从键盘输入三个数a、b、c,按从大到小的顺序重排a、b、c,使a最大,c最小。

6.从键盘输入a、b、c的值,判断它们能否构成三角形的三条边。如果能构成一个三角形,则计算三角形的面积,否则给出出错信息。

本文来源:https://www.bwwdw.com/article/x7ev.html

Top