实验4 程序设计详细解析例题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验4 程序设计参考答案

二、顺序结构程序设计

(1)物体长度可以用公制或者英制单位表示,已知公制长度单位为毫米(mm),

英制单位长度为英寸(inch),其转换公式为1 inch = 25.4 mm,编写程序将输入的英制长度转换为公制后输出。

CLEAR

SET TALK OFF

INPUT "请输入英寸:" TO inch

mm = 25.4 * inch

? "长度是(mm)", mm

SET TALK ON

RETURN

说明:

1.用“?”将计算结果输出时,各项之间用逗号分隔,字符型数据与数值型数据输出间隔较大,如果需要将各种数据连续显示,则需要将其转换

为字符型数据输出。

2.注意INPUT 和ACCEPT 输入时的区别。

? "长度是(mm)" + ALLTRIM( STR( mm, 15, 3 ) )

(2)从键盘输入圆锥体的半径(r)和高度(h),计算其体积并输出,体积计算公式

为v = π * r * r * h / 3。

CLEAR

SET TALK OFF

INPUT "请输入圆锥体的半径:" TO r

INPUT "请输入圆锥体的高度:" TO h

v = PI( ) * r * r * h / 3

? "圆锥体的体积是:", v

SET TALK ON

RETURN

(3)求方程ax2 + bx + c = 0的根,a, b, c的值从键盘输入(假设输入的a, b, c值

满足b2– 4ac ≥ 0,不考虑虚根的情况)。

CLEAR

SET TALK OFF

INPUT "a=" TO a

INPUT "b=" TO b

INPUT "c=" TO c

r1 = ( -b + SQRT( b * b - 4 * a * c ) ) / ( 2 * a )

r2 = ( -b - SQRT( b * b - 4 * a * c ) ) / ( 2 * a )

? "该方程的第一个根是:", r1

?? "该方程的第二个根是:", r2

?

SET TALK ON

RETURN

(4)由键盘输入学生名,将“student表”中该学生的奖学金增加100元,并显

示该学生修改后的奖学金。

CLEAR

SET TALK OFF

CLOSE ALL

USE student

ACCEPT "请输入学生名:" TO stuname

LOCATE FOR 姓名= stuname

REPLACE 奖学金WITH 奖学金+ 100 && 假设查找成功

DISPLAY

SET TALK ON

RETURN

(5)分析下面程序的输出结果。

USE student

INDEX ON 姓名TAG nameidx

ACCEPT "请输入要查找的学生姓名" TO 姓名

SEEK M -> 姓名

DISPLAY

解答:

因为内存变量与字段变量同名时,单独出现这个重名时字段变量级别高于内存变量,因此需要用“M ->”限定所使用的内存变量。

三、选择结构程序设计

(1)输入3个不同的数,将它们按照数值降序从大到小输出。

方法一:区分3个不同数的各种情况,用嵌套的IF语句实现

CLEAR

SET TALK OFF

INPUT "a=" TO a

INPUT "b=" TO b

INPUT "c=" TO c

IF a > b

IF b > c

? "数据从大到小依次是:", a, b, c

ELSE

IF a > c

? "数据从大到小依次是:", a, c, b

ELSE

? "数据从大到小依次是:", c, a, b

ENDIF

ENDIF

ELSE

IF b < c

? "数据从大到小依次是:", c, b, a

ELSE

IF a > c

? "数据从大到小依次是:", b, a, c

ELSE

? "数据从大到小依次是:", b, c, a

ENDIF

ENDIF

ENDIF

SET TALK ON

RETURN

方法二:用数据交换方式实现

CLEAR

SET TALK OFF

INPUT "a=" TO a

INPUT "b=" TO b

INPUT "c=" TO c

IF a < b && 如果a < b,则交换两者存储的数据

temp = a

a = b

b = temp

ENDIF

IF b < c

temp = b

b = c

c = temp

ENDIF

IF a < b && 必须要再比较一次a和b的大小

temp = a

a = b

b = temp

ENDIF

? "数据从大到小依次是:", a, b, c

SET TALK ON

RETURN

总结:

方法一比较单调,容易出错,扩充性能也比较差;

方法二用的技巧多一些。

(2)从键盘输入数字月份,然后输出该月份的英文名称的缩写,如1月输出

“Jan”、10月输出“Oct”等等。

方法一:用多路分支语句实现

CLEAR

SET TALK OFF

INPUT "请输入月份数:" TO m

DO CASE

CASE m == 1

相关文档
最新文档