第八章 结构化程序设计(1)

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

使用注意点:
(1) DO CASE、CASE、OTHERWISE、ENDCASE必须各占一行。 每一个DO CASE都必须有一个ENDCASE与其对应。 (2) <条件>可以为关系表达式、逻辑表达式或其他逻辑量。
思考: 思考:试着用多分支选择结构完成刚才的例题
Set talk off clear Input ′工时:′ to gs DO CASE CASE gs>120 gz=GS*84+(gs-120)*84*0.15 CASE gs>60 gz=gs*84 otherwise gz=gs*84-700 ENDCASE ? ′职工应发工资:′+STR(gz,8,2)
多分支选择结构: 多分支选择结构:
DO CASE CASE 〈条件1〉 〈命令组1〉 CASE 〈条件2〉 〈命令组2〉 … CASE 〈条件n〉 〈命令组n〉 [OTHERWISE 〈命令组n+1〉] ENDCASE
多分支选择结构: 多分支选择结构:
执行过程:
执行DO CASE语句时,依次判断各〈条件〉是否满足, 若〈条件〉满足,就执行该条件后的命令组,直到遇到 下一个CASE、OTHERWISE或ENDCASE。命令组执行 后不再判断其他条件,而转向执行ENDCASE后面的第一 条命令。
IF语句嵌套示例: IF语句嵌套示例: 语句嵌套示例
超过120小时者 输入员工 工作时间 低于60小时者 60与120之间者 超过部分加发15% 扣除700元 每小时84元计发 显 示 工 资
超过120小时者 超过部分加发15% 输入员工 工作时间 60与120之间者 每小时84元计发 没超过120小时 低于60小时者 扣除700元 显 示 工 资
CLEAR 工号: ACCEPT ′工号:′ TO gh 工时: INPUT ′工时:′ TO gs gs>120 IF gs>120 gz=GS*84+(gs-120)*84* 84+(gs )*84 gz=GS*84+(gs-120)*84*0.15 ELSE gs>60 IF gs>60 gz=gs*84 gz=gs*84 ELSE gz=gs*84 84gz=gs*84-700 ENDIF ENDIF gh+′号职工应发工资: STR(gz,8 ? gh+′号职工应发工资:′+STR(gz,8,2)
顺序结构示例: 顺序结构示例:
在学生表中,按学号查询学生的姓名和入 学成绩。 CLEAR USE 学生 ACCEPT ″请输入待查学生的编号:″ TO bh1 LOCATE FOR 学号=bh1 DISP 学号,姓名,入学成绩 RETURN
选择结构程序设计
在Visual FoxPro中,提供两种实现选择结构的语句: IF语句和DO CASE语句,分别用于实现双分支选择结构 和多分支选择结构。
(4) Input "数量:" to SL Input "单价:" to DJ JE=SL*DJ IF SL>=100 JE=JE*0.92 Endif ?"应付金额:"+STR(JE,6,2)
(1) Input "输入一个数" to X if INT(x/3)=x/3 .or.INT(x/7)=x/7 ?x*x else ?"此数不能被3或7整除!" endif
(2) Input "x=" to x if x<5 y=x*x+7 else y=10*x-2 endif ? "y=",y
某公司员工的工资计算方法如下。 (1) 工作时数超过 120小时者,超过部分加发15%。 (2) 工作时数低于60小时者,扣除700元。 (3) 其余按每小时84元计发。 试编程按输入的工号和该号员工的工时数,计算 该员工的应发工资。 分析: 这个题目中实际上员工的工资是分三种情况 发放,但是我们暂时没有学到多分支结构,所以我 们利用现在所学的双分支结构将其分为两种情况, 然后再继续划分。
程序文件中的辅助命令: 程序文件中的辅助命令:
输入输出命令 :
字符串接收命令 : ACCEPT [〈提示信息〉] TO 〈内存变量〉 任意数据输入命令: INPUT [〈提示信息〉] TO 〈内存变量〉 单个字符接收命令 : WAIT [〈提示信息〉] [TO 〈内存变量〉]
以上三条命令都是显示提示信息,等待用户从键 盘输入数据后按回车将数据赋给指定内存变量.不同 在于接受的数据类型不一样.
第八章
结构化程序设计基础
引言: 引言:
前面各章都是以交互方式,即在命令窗 口中逐条输入命令或通过使用菜单来进行操 作的。 这种方式虽然很方便,但是也有一些弊端, 因此我们还可以把有关的操作命令组织在一 起,存放到一个文件中,当发出调用该文件 的命令后,Visual FoxPro就会自动地依次执 行该文件中的命令,直至全部命令执行完毕, 这就是Visual FoxPro的程序工作方式,它是 实际应用中主要的工作方式。
(4)输出计算结果。
ຫໍສະໝຸດ Baidu
程序文件的建立与执行
建立或修改程序文件: (1) 命令方式 : MODIFY COMMAND [〈文件名〉|?] 菜单方式 :
文件 创建 程序
编写与执行程序 :
程序的编写: 打开文本编辑窗口后,就可以一条一条地输 入命令。当程序建立或修改完毕后,可用Ctrl+W 键存盘,退出编辑窗口。要修改程序文件,选择 “文件”菜单中的“打开”命令打开文件即可。 程序的执行: 命令方式 : DO 〈文件名〉 菜单方式:打开“程序”菜单,选择“运行”,然 后在“运行”对话框中输入被执行的程序文件名 即可
思考: 这段程序中两 个case条件能不 能换位置?
练习: 练习: (1)从键盘输入一个数,若该数能被3或7 整除,则输出该数的平方,否则输出提示 信息”此数不能被3或7整除!” (2)计算下列分段函数
X2+7 Y= 10X-2 X>=5 X<5
(3)判断某一年是否为闰年,如是闰年, 则能被4整除但不能被100整除,或能够被 400整除 y/4=int(y/4).and. y/100<>int(y/100) .or. y/400=int(y/400) (4)某商品一次购买100件以上时,可以享 受8%的优惠,试编程根据输入的单价和数 量计算应付金额
程序的控制结构: 程序的控制结构:
顺序结构
选择结构
循环结构
顺序结构 :
什么是顺序结构? 顺序结构程序按照语句排列的先后顺序, 一条接一条地依次执行,它是程序中最基 本的结构。 顺序结构是最简单的一种结构,关键是要 掌握程序文件的建立、执行、修改的方法。
顺序结构示例: 顺序结构示例:
据输入的人口基数与年平均增长率,计算20年后 的人口总数。 INPUT ′人口基数:′ TO a INPUT ′年平均增长率:′ TO b p=a*(1+b)**20 ? ′20年后人口数:′+STR(p,10)
Accept "请输入姓名:" to XM ?XM Input "请输入姓名:" to FN ?FN Input "团员否:" to X ?X var=2 input "请输入数值表达式" to Inexp ?Inexp
程序文件中的辅助命令 : 1. 程序注释命令 :
NOTE|* [注释] && [注释]
7.1程序设计概述 7.1程序设计概述
什么叫程序设计? 使用计算机解决实际问题,通常是先要对问题 进行分析并建立数学模型,然后考虑数据的组织方 式和算法,并用某一种程序设计语言编写程序,最 后调试程序,使之运行后能产生预期的结果。这个 过程称为程序设计。
例:从键盘输入圆的半径,求其圆面积 从键盘输入圆的半径, 分析: 要完成这个任务需要分为几个步骤: (1)从键盘输入一个半径R。 (2)将圆周率赋给变量PI。 (3)利用公式计算圆面积,S=PI*R*R。
简单IF语句示例: 简单IF语句示例: IF语句示例
编写一个程序,实现下面功能:任意输入一个 整数,判断它是奇数还是偶数. Input ‘请输入一个整数:’ to x If mod(x,2)=0 ? 这个数是一个偶数。 Else 分支结构主体 ? 这个数是一个奇数。 Endif return
IF语句嵌套示例: IF语句嵌套示例: 语句嵌套示例
放假回家吗?
怎么回家吗?

不回
火车
汽车
飞机
双分支选择结构
语句格式: IF 〈条件〉 〈命令组1〉 [ELSE 〈命令组2〉] ENDIF
IF之前 条件 命令组1 ENDIF后 命令组2
IF语句执行时,如果〈条件〉成立,就执行命令组1,命令组1执 行完成后就转到ENDIF之后的命令。如果〈条件〉不成立,当有 ELSE子句时,执行命令组2,命令组2执行完成后转去执行ENDIF 之后的命令;当没有ELSE子句时,则直接转到ENDIF之后的命令。
使用IF语句需要注意的: 使用IF语句需要注意的: IF语句需要注意的
(1) 选择语句只能在程序中使用,正因为只能在 程序中使用,一般称之为语句,而不叫做命令。 以后其他语句也是这样。 (2) IF,ELSE,ENDIF必须各占一行。每一个IF 都必须有一个ENDIF与其对应,即IF和ENDIF必须 成对出现。 (3)〈条件〉可以为关系表达式、逻辑表达式或 其他逻辑量。 (4)〈命令组1〉或〈命令组2〉中可以包含IF语 句,即IF语句可以嵌套。
相关文档
最新文档