第6章程序设计基

上传人:工**** 文档编号:585976888 上传时间:2024-09-03 格式:PPT 页数:56 大小:536.02KB
返回 下载 相关 举报
第6章程序设计基_第1页
第1页 / 共56页
第6章程序设计基_第2页
第2页 / 共56页
第6章程序设计基_第3页
第3页 / 共56页
第6章程序设计基_第4页
第4页 / 共56页
第6章程序设计基_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《第6章程序设计基》由会员分享,可在线阅读,更多相关《第6章程序设计基(56页珍藏版)》请在金锄头文库上搜索。

1、第第6章章 程序设计基础程序设计基础 6.1 程序与程序文件程序与程序文件交互工作方式,要求用户必须比较熟悉数据库知识,了解交互工作方式,要求用户必须比较熟悉数据库知识,了解数据组织结构,如果要同时对数据表格多次进行某些操作,数据组织结构,如果要同时对数据表格多次进行某些操作,就必须反复拟行相关命令,这些命令不被保存,当退出就必须反复拟行相关命令,这些命令不被保存,当退出Visual FoxProVisual FoxPro系统环镜或计算机断电后,就荡然无存了,系统环镜或计算机断电后,就荡然无存了,对于使用大量数据的最终用户来说,直接使用交互方式管对于使用大量数据的最终用户来说,直接使用交互方式

2、管理数据是不现实的。因此,要建立真正的管理信息系统必理数据是不现实的。因此,要建立真正的管理信息系统必须编制程序。须编制程序。6.1.1 程序的建立与编辑程序的建立与编辑创建程序创建程序: :(1)(1)在在“ “文件文件” ”菜单中选择菜单中选择“ “新建新建” ”命令(或工具栏中命令(或工具栏中“ “新建新建” ”按钮),然后在按钮),然后在“ “新建新建” ”对话框中选择对话框中选择“ “程序程序” ”单选按钮,单选按钮,再单击再单击“ “新建文件新建文件” ”按钮。按钮。(2)(2)命令窗口中命令窗口中, ,键入命令:键入命令:MODIFY COMMAND MODIFY COMMAND

3、 文件名文件名 扩扩展名展名 保存程序保存程序(1)(1)从从“ “文件文件” ”菜单中选取菜单中选取“ “保存保存” ”命令命令 (2)(2)按按“ “CTRL+W”CTRL+W”组合键组合键 。编辑程序编辑程序(1 1)在)在“ “文件文件” ”菜单中选择菜单中选择“ “打开打开” ”命令命令(2 2)命令窗口中:)命令窗口中:MODIFY COMMANDMODIFY COMMAND 程序的书写规则程序的书写规则 注释语句注释语句格式:格式:NOTE NOTE * & & 对话开关语句对话开关语句格式:格式:SET TALK OFF|ONSET TALK OFF|ON输出语句输出语句格式:

4、?格式:? 格式:?格式:?命令的分行命令的分行每个命令都以回车键结束,一行只能写一条命令;若一条命令太长,并在分行处每个命令都以回车键结束,一行只能写一条命令;若一条命令太长,并在分行处加上续行符加上续行符“ “;” ” 。6.1.2 程序文件的运行程序文件的运行单击单击“ “程序程序” ”菜单中的菜单中的“ “运行运行” ”命令,在打开的运行对话框命令,在打开的运行对话框中找到要执行的程序文件,单击中找到要执行的程序文件,单击“ “运行运行” ”按钮。按钮。单击常用工具栏上的单击常用工具栏上的“ “运行运行” ”按钮。按钮。在命令窗口中键入命令:在命令窗口中键入命令:DODO 程序文件名前

5、可以使用路径,否则指系统默认目录。若运行程序文件名前可以使用路径,否则指系统默认目录。若运行的是的是.PRG.PRG程序则扩展名可以省略。若运行其他的程序则扩展程序则扩展名可以省略。若运行其他的程序则扩展名不能省;名不能省; 6.1.2 程序文件的运行程序文件的运行 执行程序文件时,将依次执行文件中的命令,直到所有执行程序文件时,将依次执行文件中的命令,直到所有执行程序文件时,将依次执行文件中的命令,直到所有执行程序文件时,将依次执行文件中的命令,直到所有命令执行完毕,或者执行到以下命令:命令执行完毕,或者执行到以下命令:命令执行完毕,或者执行到以下命令:命令执行完毕,或者执行到以下命令: C

6、ANCALCANCAL:终终终终止止止止程程程程序序序序运运运运行行行行,清清清清除除除除所所所所有有有有的的的的私私私私有有有有变变变变量量量量,返返返返回回回回命令窗口;命令窗口;命令窗口;命令窗口; retryretry:返回到调用行本身,可以实现程序的重复调用。:返回到调用行本身,可以实现程序的重复调用。:返回到调用行本身,可以实现程序的重复调用。:返回到调用行本身,可以实现程序的重复调用。 RETURNRETURN:结结结结束束束束程程程程序序序序执执执执行行行行,返返返返回回回回调调调调用用用用它它它它的的的的上上上上级级级级程程程程序序序序,若若若若无上级程序则返回命令窗口;无上

7、级程序则返回命令窗口;无上级程序则返回命令窗口;无上级程序则返回命令窗口; QUITQUIT:结束程序执行并退出:结束程序执行并退出:结束程序执行并退出:结束程序执行并退出Visual FoxProVisual FoxPro系统,返系统,返系统,返系统,返回操作系统回操作系统回操作系统回操作系统 6.1.3 简单的输入输出命令简单的输入输出命令6.1.3 6.1.3 简单的输入输出命令简单的输入输出命令简单的输入输出命令简单的输入输出命令1 1ACCEPTACCEPT命令命令命令命令【格格格格式式式式】ACCEPT ACCEPT TO TO 【功能功能功能功能】在程序执行过程中,将用户交互式在

8、程序执行过程中,将用户交互式在程序执行过程中,将用户交互式在程序执行过程中,将用户交互式输入的内容作为字符串赋值给指定内存变量。输入的内容作为字符串赋值给指定内存变量。输入的内容作为字符串赋值给指定内存变量。输入的内容作为字符串赋值给指定内存变量。 该命令只接受字符型数据,输入的字符串该命令只接受字符型数据,输入的字符串该命令只接受字符型数据,输入的字符串该命令只接受字符型数据,输入的字符串不需要加定界符不需要加定界符不需要加定界符不需要加定界符 【例例例例6-26-2】编编编编程程程程从从从从键键键键盘盘盘盘输输输输入入入入某某某某数数数数据据据据库库库库的的的的文文文文件件件件名名名名,要

9、要要要求求求求打打打打开开开开该该该该数数数数据据据据库库库库并并并并显显显显示示示示其其其其内内内内容。程序文件名为容。程序文件名为容。程序文件名为容。程序文件名为PROG2.PRGPROG2.PRG。MODI COMMAND PROG2MODI COMMAND PROG2SET TALK OFFSET TALK OFFCLEARCLEARACCEPT “ACCEPT “请输入数据库名:请输入数据库名:请输入数据库名:请输入数据库名:” ” TO AAATO AAAOPEN DATABASE &AAAOPEN DATABASE &AAAACCEPT ACCEPT 请输入表名请输入表名请输入表

10、名请输入表名 TO BBB TO BBBUSE &BBBUSE &BBBLISTLISTUSEUSESET TALK ONSET TALK ONRETURNRETURN2 2INPUTINPUT命令命令命令命令 【格格格格式式式式】INPUT INPUT TO TO 【功能功能功能功能】在程序执行过程中,将用户交互式在程序执行过程中,将用户交互式在程序执行过程中,将用户交互式在程序执行过程中,将用户交互式输入的内容赋值给指定内存变量输入的内容赋值给指定内存变量输入的内容赋值给指定内存变量输入的内容赋值给指定内存变量 可以输入字符型、数值型、逻辑型、日可以输入字符型、数值型、逻辑型、日可以输入字

11、符型、数值型、逻辑型、日可以输入字符型、数值型、逻辑型、日期型和日期时间型等类型数据,而且可以是期型和日期时间型等类型数据,而且可以是期型和日期时间型等类型数据,而且可以是期型和日期时间型等类型数据,而且可以是常量、变量、函数或表达式等形式,按回车常量、变量、函数或表达式等形式,按回车常量、变量、函数或表达式等形式,按回车常量、变量、函数或表达式等形式,按回车键结束输入,系统将输入的数据赋值给键结束输入,系统将输入的数据赋值给键结束输入,系统将输入的数据赋值给键结束输入,系统将输入的数据赋值给 。【例例例例6-46-4】从从从从键键键键盘盘盘盘输输输输入入入入两两两两个个个个任任任任意意意意正

12、正正正数数数数,编编编编程程程程求求求求以以以以两两两两数数数数为为为为边边边边长长长长的的的的长长长长方方方方形形形形面面面面积积积积。程程程程序文件名为序文件名为序文件名为序文件名为PROG4.PRGPROG4.PRGSET TALK OFFSET TALK OFFCLEARCLEARINPUT “INPUT “长方形一边的长为:长方形一边的长为:长方形一边的长为:长方形一边的长为:” ” TO ATO AINPUT “INPUT “长方形另一边的长为:长方形另一边的长为:长方形另一边的长为:长方形另一边的长为:” ” TO BTO BS=A*BS=A*B? “? “长方形的面积为:长方形

13、的面积为:长方形的面积为:长方形的面积为:” ” , S, SSET TALK ONSET TALK ON RETURN RETURN3 3WAITWAIT命令命令命令命令【格格格格式式式式】WAIT WAIT TOTO WINDOW WINDOW ATAT, NOWAIT NOWAIT CLEAR|NOCLEAR TIMEOUTCLEAR|NOCLEAR TIMEOUT【功功功功能能能能】显显显显示示示示提提提提示示示示信信信信息息息息,暂暂暂暂停停停停程程程程序序序序执执执执行行行行,直直直直到到到到用用用用户按任意键或单击鼠标时继续执行程序。户按任意键或单击鼠标时继续执行程序。户按任意键

14、或单击鼠标时继续执行程序。户按任意键或单击鼠标时继续执行程序。 若若若若选选选选择择择择可可可可选选选选项项项项TO TO ,将将将将输输输输入入入入的的的的单单单单个个个个字字字字符符符符作作作作为为为为字字字字符符符符型型型型数数数数据据据据赋赋赋赋给给给给指指指指定定定定的的的的 ;若若若若用用用用户户户户是是是是按按按按EnterEnter键键键键或或或或单单单单击击击击鼠鼠鼠鼠标标标标, 的值为空串。的值为空串。的值为空串。的值为空串。 若若若若省省省省略略略略所所所所有有有有可可可可选选选选项项项项,屏屏屏屏幕幕幕幕显显显显示示示示“ “键键键键入入入入任任任任意意意意键键键键继续

15、继续继续继续”默认提示信息默认提示信息默认提示信息默认提示信息 【例例例例6-66-6】在在在在STUDENTSTUDENT数数数数据据据据库库库库的的的的STUDSTUD表表表表中中中中显显显显示示示示任任任任意意意意一一一一个个个个系系系系学学学学生生生生的的的的情情情情况况况况。程程程程序序序序文文文文件名为件名为件名为件名为PROG6.PRGPROG6.PRGSET TALK OFFSET TALK OFFCLEARCLEAROPEN DATABASE STUDENTOPEN DATABASE STUDENTUSE STUDUSE STUDWAIT “WAIT “请输入待查学生的系号(

16、请输入待查学生的系号(请输入待查学生的系号(请输入待查学生的系号(1313):):):):” ” TO NTO NIF VAL(N)3IF VAL(N)3WAIT “WAIT “输入无效,结束程序运行!输入无效,结束程序运行!输入无效,结束程序运行!输入无效,结束程序运行!” ” WINDOW TIMEOUT 5WINDOW TIMEOUT 5RETURNRETURNELSEELSESTORE “0”+N TO AAASTORE “0”+N TO AAALIST FOR LIST FOR 系别号系别号系别号系别号=AAA=AAAENDIFENDIFCLOSE DATABASECLOSE DAT

17、ABASESET TALK ONSET TALK ONRETURN RETURN 4 4三条输入命令的异同三条输入命令的异同三条输入命令的异同三条输入命令的异同ACCEPTACCEPT命命命命令令令令只只只只能能能能接接接接受受受受字字字字符符符符型型型型数数数数据据据据,不不不不需需需需定定定定界界界界符,输入完毕按回车键结束;符,输入完毕按回车键结束;符,输入完毕按回车键结束;符,输入完毕按回车键结束; WAITWAIT命命命命令令令令只只只只能能能能输输输输入入入入单单单单个个个个字字字字符符符符,且且且且不不不不需需需需定定定定界界界界符符符符,输入完毕不需按回车键;输入完毕不需按回车

18、键;输入完毕不需按回车键;输入完毕不需按回车键; INPUTINPUT命命命命令令令令可可可可接接接接受受受受数数数数值值值值型型型型、字字字字符符符符型型型型、逻逻逻逻辑辑辑辑型型型型、日日日日期期期期型型型型和和和和日日日日期期期期时时时时间间间间型型型型数数数数据据据据,数数数数据据据据形形形形式式式式可可可可以以以以是是是是常常常常量量量量、变变变变量量量量、函函函函数数数数和和和和表表表表达达达达式式式式,如如如如果果果果是是是是字字字字符符符符串串串串,需需需需用用用用定定定定界界界界符,输入完毕按回车键结束。符,输入完毕按回车键结束。符,输入完毕按回车键结束。符,输入完毕按回车键

19、结束。 程序的基本结构程序的基本结构 Visual FoxProVisual FoxProVisual FoxProVisual FoxPro系统提供的命令丰富,且功能强大,把系统提供的命令丰富,且功能强大,把系统提供的命令丰富,且功能强大,把系统提供的命令丰富,且功能强大,把这些命令和程序设计语句有效地组织在一起,就形成了实现这些命令和程序设计语句有效地组织在一起,就形成了实现这些命令和程序设计语句有效地组织在一起,就形成了实现这些命令和程序设计语句有效地组织在一起,就形成了实现某一特定功能的程序。某一特定功能的程序。某一特定功能的程序。某一特定功能的程序。 Visual FoxProVis

20、ual FoxProVisual FoxProVisual FoxPro系统的程序有两个特点:一是程序控制系统的程序有两个特点:一是程序控制系统的程序有两个特点:一是程序控制系统的程序有两个特点:一是程序控制流模式,由顺序、分支、循环三种基本结构构成。二是面向流模式,由顺序、分支、循环三种基本结构构成。二是面向流模式,由顺序、分支、循环三种基本结构构成。二是面向流模式,由顺序、分支、循环三种基本结构构成。二是面向对象可视化的结构程序模块,在每个模块的内部也是由程序对象可视化的结构程序模块,在每个模块的内部也是由程序对象可视化的结构程序模块,在每个模块的内部也是由程序对象可视化的结构程序模块,在

21、每个模块的内部也是由程序控制流组成。常见的控制结构如下:控制流组成。常见的控制结构如下:控制流组成。常见的控制结构如下:控制流组成。常见的控制结构如下: 1 1 1 1顺序结构顺序结构顺序结构顺序结构 顺序结构是在程序执行时,根据程序中语句的书写顺序顺序结构是在程序执行时,根据程序中语句的书写顺序顺序结构是在程序执行时,根据程序中语句的书写顺序顺序结构是在程序执行时,根据程序中语句的书写顺序依次执行的命令序列依次执行的命令序列依次执行的命令序列依次执行的命令序列。Visual FoxProVisual FoxProVisual FoxProVisual FoxPro系统中的大多数命令系统中的大

22、多数命令系统中的大多数命令系统中的大多数命令都可以作为顺序结构中的语句。都可以作为顺序结构中的语句。都可以作为顺序结构中的语句。都可以作为顺序结构中的语句。 2 2 2 2分支结构分支结构分支结构分支结构 分支结构是在程序执行时,根据不同的条件,选择执行分支结构是在程序执行时,根据不同的条件,选择执行分支结构是在程序执行时,根据不同的条件,选择执行分支结构是在程序执行时,根据不同的条件,选择执行不同的程序语句,用来解决有选择、有转移的诸多问题。不同的程序语句,用来解决有选择、有转移的诸多问题。不同的程序语句,用来解决有选择、有转移的诸多问题。不同的程序语句,用来解决有选择、有转移的诸多问题。

23、3 3循环结构循环结构 循循环环结结构构则则能能够够使使某某些些语语句句或或程程序序段段重重复复执执行行若若干干次次。如如果果某某些些语语句句或或程程序序段段需需要要在在一一个个固固定定的的位位置置上重复操作,使用循环是最好的选择。上重复操作,使用循环是最好的选择。 4 4过程结构过程结构 在在许许多多应应用用程程序序中中,有有一一些些程程序序段段需需要要反反复复执执行行多多次次,这这些些程程序序段段不不在在一一个个固固定定的的位位置置上上,而而是是分分散散在在程程序序的的许许多多位位置置上上重重复复执执行行,可可将将其其与与嵌嵌入入它它的的程程序序分分开开,形形成成独独立立的的程程序序序序列

24、列,待待使使用用时时再再调调入入程程序序中中,以以实实现现不不同同位位置置上上的的重重复复操操作作。这这样样做做增增强强了了程程序序的的可可读读性性和和模模块块化化。我我们们称称这这种种具具有有独独立立功功能能而而且且可以被其它程序调用的程序序列为过程。可以被其它程序调用的程序序列为过程。6.2 程序的基本结构程序的基本结构求解的基本逻辑:求解的基本逻辑:VFPVFP程序多数用于数据处理,解决问题的基本逻辑是:输入程序多数用于数据处理,解决问题的基本逻辑是:输入数据数据处理数据处理数据输出数据。输出数据。 程序的通用性:程序的通用性:程序的通用性指程序对多种场合的适应性,通用性好的程序程序的通

25、用性指程序对多种场合的适应性,通用性好的程序的应用范围较广。的应用范围较广。 6.2.1 顺序结构顺序结构顺序结构是在程序执行时,根据程序中语句的书写顺序依次执行的命令序列。顺序结构是在程序执行时,根据程序中语句的书写顺序依次执行的命令序列。 例题:将学生表中学号为例题:将学生表中学号为2005000820050008,其姓名一栏由万华改为万强。,其姓名一栏由万华改为万强。CLEARCLEARSET TALK OFFSET TALK OFFOPEN DATABASE OPEN DATABASE 学生学生USE USE 学生学生ACCEPT “ACCEPT “请输入要修改记录的学号:请输入要修改

26、记录的学号:” ” to to xhxh LOCATE FOR LOCATE FOR 学号学号= =xhxhREPLACE REPLACE 姓名姓名 WITH “WITH “万强万强” ”USEUSECLOSE DATABASECLOSE DATABASESET TALK ONSET TALK ONRETURNRETURN6.2.2 选择结构选择结构 单分支选择单分支选择单向选择语句,即根据用户设置的条件表达式的值,决定某一操作是单向选择语句,即根据用户设置的条件表达式的值,决定某一操作是否执行。否执行。(1 1)语句格式:)语句格式:IFIF条件表达式条件表达式语句序列语句序列ENDIFEN

27、DIF(2 2)单向条件转向语句的流程图)单向条件转向语句的流程图 双分支选择双分支选择双向选择语句,即根据用户设置的条件表达式的值,选择两个操作中的一个双向选择语句,即根据用户设置的条件表达式的值,选择两个操作中的一个来执行。来执行。(1 1)语句格式:)语句格式:IFIF条件表达式条件表达式语句序列语句序列1 1ELSEELSE语句序列语句序列2 2ENDIFENDIF(2 2)双分支条件转向语句的流程图如下图所示)双分支条件转向语句的流程图如下图所示 例:输入两个实数,求它们的最大值。set talk offclearinput “实数a=” to ainput “实数b=” to bi

28、f a=b max=aelse max=bendif? a,”与”,b,”中的最大值为:”,maxreturn也可以用单分支的选择语句来实现set talk offclearinput “实数a=” to ainput “实数b=” to bmax=aif ba max=bendif? a,”与”,b,”中的最大值为:”,maxreturn例:输入一个大于例:输入一个大于0的年份值,判断该一年份是否的年份值,判断该一年份是否是闰年,如果是闰年,就输出是闰年,如果是闰年,就输出“xxxx年是闰年年是闰年”,否则输出否则输出“xxxx年不是闰年年不是闰年”。.闰年的条件是:能被闰年的条件是:能被4

29、整除但不能被整除但不能被100整除,或整除,或能被能被100整除且能被整除且能被400整除。整除。 多向选择语句,即根据多个条件表达式的值,选择执行多个操作中多向选择语句,即根据多个条件表达式的值,选择执行多个操作中的一个对应执行。的一个对应执行。(1 1)语句格式:)语句格式:DO CASEDO CASECASECASE条件表达式条件表达式1 1 1CASECASE条件表达式条件表达式22 2 CASECASE条件表达式条件表达式NN NOTHERWISEOTHERWISE N+1ENDCASEENDCASE 多分支选择多分支选择多分支选择多分支选择【例】假设收入(P)与税率(R)的关系如下

30、表,编程求税金。程序文件名为TAX.PRG。 0 , P800R= 0.05 , 800 P2000 0.08 , 2000P5000 0.1 , P5000SET TALK OFFCLEARINPUT “请输入收入:” TO PDO CASE CASE P800 R=0 CASE P2000 R=0.05 CASE P=b,a,b)? a,”与”,b,”中的最大值为:”,maxreturn例:用IIF( )来实现P.163 例6-7。文件名exam_if_1.prgset talk offclearinput “实数x=” to xy=iif(x0,iif(x10,x*x+1,3*x*x-2

31、*x+1),x*x+4*x-1)? “分段函数值为:”+str(y,10,2)set talk onreturn使用分支语句应注意的几点使用分支语句应注意的几点使用分支语句应注意的几点使用分支语句应注意的几点IF ENDIFIF ENDIF和和和和DO CASE ENDCASEDO CASE ENDCASE必必必必须配对使用,须配对使用,须配对使用,须配对使用,DO CASEDO CASE与第一个与第一个与第一个与第一个CASECASE条件表条件表条件表条件表达式达式达式达式之间不应有任何命令。之间不应有任何命令。之间不应有任何命令。之间不应有任何命令。 可以是各种表达式或函数的组合,可以是各

32、种表达式或函数的组合,可以是各种表达式或函数的组合,可以是各种表达式或函数的组合,其值必须是逻辑值。其值必须是逻辑值。其值必须是逻辑值。其值必须是逻辑值。 可以由一个或多个命令组成,可可以由一个或多个命令组成,可可以由一个或多个命令组成,可可以由一个或多个命令组成,可以是条件控制语句组成的嵌套结构。以是条件控制语句组成的嵌套结构。以是条件控制语句组成的嵌套结构。以是条件控制语句组成的嵌套结构。 6.2.3 循环结构循环结构1. DO WHILE1. DO WHILE循环语句循环语句格式:格式:DO WHILE DO WHILE ENDDO ENDDO 【例例6-96-9】编程求编程求2 24

33、46 6100100之和。之和。SET TALK OFFSET TALK OFFCLEARCLEARS=0S=0I=2I=2DO WHILE I=100DO WHILE I=CTOD=CTOD(“ “1985-01-01”1985-01-01”)DISPLAYDISPLAYENDIFENDIFSKIPSKIPENDDOENDDOUSEUSECLOSE DATABASECLOSE DATABASERETURNRETURN【例例例例6-126-12】 将自然数中的前将自然数中的前将自然数中的前将自然数中的前N N个完全平方数进行累加,个完全平方数进行累加,个完全平方数进行累加,个完全平方数进行累加

34、,当累加之和超过当累加之和超过当累加之和超过当累加之和超过100100时停止累加,即求时停止累加,即求时停止累加,即求时停止累加,即求M=0M=02 2+1+12 2+2+22 2+(N-1)+(N-1)2 2。要求程序显示每次的累加和。要求程序显示每次的累加和。要求程序显示每次的累加和。要求程序显示每次的累加和。说明:说明:1. 什么是完全平方数?什么是完全平方数? 一个数如果是另一个整数的完全平方,那么我们一个数如果是另一个整数的完全平方,那么我们就称这个数为完全平方数,也叫做平方数。例如:就称这个数为完全平方数,也叫做平方数。例如:0,1,4,9,16,25,36,49,64,81,10

35、0,121,144,169,196,225,256,289,324,361,4002. 什么是完全立方数?什么是完全立方数?一个数如果是另一个整数的完全立方,那么我们就称一个数如果是另一个整数的完全立方,那么我们就称这个数为完全立方数,也叫做立方数。例如:这个数为完全立方数,也叫做立方数。例如:1,8等等SET TALK OFFSET TALK OFFCLEARCLEARSTORE 0 TO ISTORE 0 TO I,MMDO WHILE .T.DO WHILE .T. IF M100 IF M100 EXIT EXIT ELSE ELSE M=M+I2 M=M+I2 ENDIF ENDIF

36、 ?” ”完全平方数累加和:完全平方数累加和:” ”+STR+STR(MM,6 6) I=I+1I=I+1ENDDOENDDOSET TALK ONSET TALK ONreturnreturn语句格式:语句格式:FOR FOR = TO TO STEPSTEP ENDFOR|NEXTENDFOR|NEXT 2. FOR2. FOR循环语句循环语句 使用使用使用使用FORFOR循环语句的有关说明:循环语句的有关说明:循环语句的有关说明:循环语句的有关说明:(1 1)省略)省略)省略)省略STEP STEP ,则,则,则,则步长步长步长步长为默认值为默认值为默认值为默认值1 1;(2 2)初值初

37、值初值初值、终值终值终值终值和和和和步长步长步长步长都可以是数都可以是数都可以是数都可以是数值表达式,但这些表达式仅在循环语句开始执行时值表达式,但这些表达式仅在循环语句开始执行时值表达式,但这些表达式仅在循环语句开始执行时值表达式,但这些表达式仅在循环语句开始执行时计算一次。循环语句执行过程中,初值、终值和步计算一次。循环语句执行过程中,初值、终值和步计算一次。循环语句执行过程中,初值、终值和步计算一次。循环语句执行过程中,初值、终值和步长是不会改变的,并由此确定循环的次数;长是不会改变的,并由此确定循环的次数;长是不会改变的,并由此确定循环的次数;长是不会改变的,并由此确定循环的次数;(3

38、 3)可以在循环体内改变循环变量的值,但会改)可以在循环体内改变循环变量的值,但会改)可以在循环体内改变循环变量的值,但会改)可以在循环体内改变循环变量的值,但会改变循环执行次数;变循环执行次数;变循环执行次数;变循环执行次数;(4 4)EXITEXIT和和和和LOOPLOOP命令可以出现在循环体内命令可以出现在循环体内命令可以出现在循环体内命令可以出现在循环体内【例例6-136-13】求求10001000之内所有偶数之和。之内所有偶数之和。 SET TALK OFFSET TALK OFFCLEARCLEARS=0S=0FOR I=0 TO 1000 STEP 2FOR I=0 TO 100

39、0 STEP 2S=S+IS=S+INEXTNEXT?“ “10001000之内所有偶数之和为之内所有偶数之和为” ”,S SSET TALK ONSET TALK ONRETURNRETURN【例例6-146-14】从键盘输入从键盘输入1010个数,编程找出其中的个数,编程找出其中的最大值和最小值。最大值和最小值。最大值和最小值。最大值和最小值。SET TALK OFFSET TALK OFFCLEARCLEARINPUT “INPUT “请从键盘输入一个数:请从键盘输入一个数:请从键盘输入一个数:请从键盘输入一个数:” ” TO ATO ASTORE A TO MAX_VAL,MIN_VA

40、LSTORE A TO MAX_VAL,MIN_VALFOR I=2 TO 10FOR I=2 TO 10 INPUT “ INPUT “请从键盘输入一个数:请从键盘输入一个数:请从键盘输入一个数:请从键盘输入一个数:” ” TO ATO A IF MAX_VALA IF MAX_VALA IF MIN_VALA MIN_VAL=A MIN_VAL=A ENDIF ENDIFENDFORENDFOR?“ “最大值为:最大值为:最大值为:最大值为:” ” , MAX_VAL, MAX_VAL?“ “最小值为:最小值为:最小值为:最小值为:” ” , MIN_VAL, MIN_VALSET TAL

41、K ONSET TALK ONRETURNRETURN3. “指针指针”型循环控制语句型循环控制语句 (1 1)语句格式:)语句格式:SCANSCAN FORFOR1 WHILE WHILE 2 ENDSCANENDSCAN(2 2)语句功能:)语句功能: 该语句在指定的范围内,用数据记录指针来控制循环次数。执行该语句在指定的范围内,用数据记录指针来控制循环次数。执行语句时,首先判断函数语句时,首先判断函数EOF( )EOF( )的值,若其值为的值,若其值为“ “真真” ”,则结束循环,则结束循环,否则,结合否则,结合条件表达式条件表达式1 1或或条件表达式条件表达式2 2,执行,执行命令行序

42、列命令行序列,记录指针移到指定的范围和条件内的下一条记录,重新判断函数,记录指针移到指定的范围和条件内的下一条记录,重新判断函数EOFEOF( )( )的值,直到函数的值,直到函数EOF( )EOF( )的值为真时结束循环。的值为真时结束循环。【例例例例6-166-16】分别统计分别统计分别统计分别统计“ “学生学生学生学生” ”表中男生和女生的人数。表中男生和女生的人数。表中男生和女生的人数。表中男生和女生的人数。SET TALK OFFSET TALK OFFCLEARCLEAROPEN DATABASE OPEN DATABASE 学生学生USE USE 学生学生sotresotre 0

43、 to 0 to x,yx,ySCANSCANIF IF 性别性别=“=“男男” ” x=x+1x=x+1ELSEELSE y=y+1 y=y+1ENDIFENDIFENDSCANENDSCAN? “? “男生人数:男生人数:” ”,x,”,x,”女女生人数:生人数:” ”,y,yUSEUSECLOSE DATABASECLOSE DATABASESET TALK ONSET TALK ONRETURNRETURN【例例6-176-17】显示显示“ “学生学生” ”表中入学成绩在表中入学成绩在600600分以上的学分以上的学生名单。生名单。SET TALK OFFSET TALK OFFCLE

44、ARCLEAROPEN DATABASE OPEN DATABASE 学生学生USE USE 学生学生SCAN FOR SCAN FOR 入学成绩入学成绩600600DISPLAY DISPLAY 学号,姓名,入学成绩学号,姓名,入学成绩ENDSCANENDSCANUSEUSECLOSE DATABASECLOSE DATABASESET TALK ONSET TALK ONRETURNRETURN4. 多重循环多重循环 多重循环即循环的嵌套多重循环即循环的嵌套,是指在一个循环结构的,是指在一个循环结构的循环体中又包含另一个循环。循环体中又包含另一个循环。 外循环外循环我们称外层循环为我们称外

45、层循环为外循环外循环 内循环内循环被包含的循环为被包含的循环为内循环内循环。 嵌套层数一般没有限制,但内循环的循环体必须嵌套层数一般没有限制,但内循环的循环体必须完全包含在外循环的循环体中,不能相互交叉。完全包含在外循环的循环体中,不能相互交叉。下面是一个DO WHILEENDDO循环嵌套的一般形式:DO WHILE DO WHILE ENDDO ENDDO 下面是一个DO WHILEENDDO循环嵌套一个FOR 循环的一般形式:DO WHILE FOR = TO STEP ENDFOR|NEXT ENDDO 下面是一个FOR循环嵌套另一个FOR循环的一般形式:FOR = TO STEP FO

46、R = TO STEP ENDFOR|NEXT ENDFOR|NEXT下面是一个FOR循环嵌套一个DO WHILEENDDO循环的一般形式:FOR = TO STEP DO WHILE ENDDO ENDFOR|NEXT【例例】从键盘输入从键盘输入从键盘输入从键盘输入n n n n个实数,对它们按从小到大的顺个实数,对它们按从小到大的顺个实数,对它们按从小到大的顺个实数,对它们按从小到大的顺序排序,并将排序后的这序排序,并将排序后的这序排序,并将排序后的这序排序,并将排序后的这n n n n个数依次输出。个数依次输出。个数依次输出。个数依次输出。【例例】从键盘输入从键盘输入从键盘输入从键盘输入

47、n n n n个实数,对它们按从小到大的顺个实数,对它们按从小到大的顺个实数,对它们按从小到大的顺个实数,对它们按从小到大的顺序排序,并将排序后的这序排序,并将排序后的这序排序,并将排序后的这序排序,并将排序后的这n n n n个数依次输出。个数依次输出。个数依次输出。个数依次输出。* * 本程序使用本程序使用本程序使用本程序使用冒泡排序法冒泡排序法冒泡排序法冒泡排序法对给定的对给定的对给定的对给定的n n个实数进行排序个实数进行排序个实数进行排序个实数进行排序 * *SET TALK OFFSET TALK OFFCLEARCLEARdimension a(100)dimension a(1

48、00)input “input “自然数自然数自然数自然数 n=” to nn=” to nfor i=1 to nfor i=1 to n ? “ ? “实数实数实数实数 a(“+str(i,3)+”)=“a(“+str(i,3)+”)=“ input “” to input “” to a(ia(i) )endforendforfor i=1to n-1 & for i=1to n-1 & 对对n n个数进行个数进行 n-1 n-1 趟排序趟排序 for j=1 to for j=1 to n-in-i & & 处理第处理第i i趟排序趟排序 if if a(ja(j)a(j+1) )a(

49、j+1) & & 需要交换相邻的两个数需要交换相邻的两个数 tmptmp= =a(ja(j) ) & & 交换相邻的两个数交换相邻的两个数 a(ja(j)=a(j+1)=a(j+1) a(j+1)= a(j+1)=tmptmp endifendif endforendforendforendfor* * 下面按从小到大的顺序依次输出各个数下面按从小到大的顺序依次输出各个数for i=1 to nfor i=1 to n ? ? a(ia(i),”,” & ),”,” & 相邻的两个数之间用逗号分隔相邻的两个数之间用逗号分隔endforendforSET TALK ONSET TALK ONRE

50、TURNRETURN* * 本程序使用本程序使用do whiledo whileenddoenddo循环实现循环实现冒泡排序法,冒泡排序法, * * * 对对n n个实数进行排序个实数进行排序 * *SET TALK OFFSET TALK OFFCLEARCLEARdimension a(100)dimension a(100)input “input “自然数自然数 n=” to nn=” to nfor i=1 to nfor i=1 to n ? “ ? “实数实数 a(“+str(i,3)+”)=“a(“+str(i,3)+”)=“ input “” to input “” to a

51、(ia(i) )endforendfori=1i=1do while i=n-1 & do while i=n-1 & 对对n n个数进行个数进行 n-1 n-1 趟排序趟排序 j=1j=1 do while j= do while ja(j+1) )a(j+1) & & 需要交换相邻的两个数需要交换相邻的两个数 tmptmp= =a(ja(j) ) & & 交换相邻的两个数交换相邻的两个数 a(ja(j)=a(j+1)=a(j+1) a(j+1)= a(j+1)=tmptmp endifendif j=j+1 j=j+1 enddoenddo i=i+1 i=i+1enddoenddo* *

52、 下面按从小到大的顺序依次输出各个数下面按从小到大的顺序依次输出各个数for i=1 to nfor i=1 to n ? ? a(ia(i),”,” & ),”,” & 相邻的两个数之间用逗号分隔相邻的两个数之间用逗号分隔endforendforSET TALK ONSET TALK ONRETURNRETURN用多重循环编程输出下三角形乘法口诀表用多重循环编程输出下三角形乘法口诀表SET TALK OFFSET TALK OFFSET TALK OFFSET TALK OFFCLEARCLEARCLEARCLEARX=1X=1X=1X=1DO WHILE X=9DO WHILE X=9DO

53、 WHILE X=9DO WHILE X=9 Y=1 Y=1 Y=1 Y=1 DO WHILE Y=X DO WHILE Y=X DO WHILE Y=X DO WHILE Y=X S=X*Y S=X*Y S=X*Y S=X*Y ? STR(Y,1)+ ? STR(Y,1)+ ? STR(Y,1)+ ? STR(Y,1)+”* * * *”+STR(X,1)+STR(X,1)+STR(X,1)+STR(X,1)+”= = = =”+STR(S,2)+STR(S,2)+STR(S,2)+STR(S,2)+” “Y=Y+1Y=Y+1Y=Y+1Y=Y+1ENDDOENDDOENDDOENDDO? ? ? ?X=X+1X=X+1X=X+1X=X+1ENDDOENDDOENDDOENDDOSET TALK ONSET TALK ONSET TALK ONSET TALK ONRETURNRETURNRETURNRETURN

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号