资源预览内容
第1页 / 共108页
第2页 / 共108页
第3页 / 共108页
第4页 / 共108页
第5页 / 共108页
第6页 / 共108页
第7页 / 共108页
第8页 / 共108页
第9页 / 共108页
第10页 / 共108页
亲,该文档总共108页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第六章第六章程序设计初步程序设计初步 本章教学方案n n 教教学学目目的的:了了解解程程序序设设计计的的概概念念和和程程序序设设计计的的方方法法,掌掌握握程程序序文文件件的的创创建建与与运运转转方方法法和和与与程程序序设设计计相相关关的的辅辅助助命命令令,掌掌握握三三大大构构造造的的程程序序设设计计方方法法,掌掌握握过过程程与与自自定定义义函函数数的的定定义义和和调调用方法。用方法。 n n 重点:输入输出命令、三种根本构造程序设计重点:输入输出命令、三种根本构造程序设计 n n 难点:双层循环程序设计、程序的模块化难点:双层循环程序设计、程序的模块化 n n 课时:课堂讲授课时:课堂讲授8 8课时、上机实验课时、上机实验8 8 课时课时n n 方式:课堂讲授、上机实验方式:课堂讲授、上机实验本章纲要 顺序构造设计顺序构造设计 分支构造设计分支构造设计 循环构造设计循环构造设计 程序设计根底程序设计根底 模块化设计模块化设计程序设计根底2. 2. 程序程序设计设计的控制构造的控制构造 3 3种构造种构造 3. 3. 构造化程序构造化程序设计设计 4 4个步个步骤骤 4. 4. 程序文件中的公用命令程序文件中的公用命令 5 5类类 5. 5. 程序文件的建立与运程序文件的建立与运转转1. 1. 程序程序设计设计及算法的概念及算法的概念 (2 (2个概念个概念) )1.程序设计及算法的概念n n 程序程序程序程序 n n 算法:处理问题的方法和步骤算法:处理问题的方法和步骤程序设计根底程序设计根底数据构造数据构造算法算法对数据的描画:在程序中指定对数据的描画:在程序中指定数据的类型和数据的组织方式数据的类型和数据的组织方式对操作的描画对操作的描画类比了解:菜谱原料操作步骤一系列计算机指一系列计算机指令的集合令的集合 算法的概念算法的概念算法的概念算法的概念n n在在员员工表中,按工表中,按员员工工编编号号查询员查询员工的姓名和工的姓名和职职称称 。n n算法算法n n1. 1.翻开翻开员员工表。工表。n n2. 2.输输入待入待查员查员工的工的员员工工号号n n3. 3.查查找找员员工在表中工在表中对应对应的位置。的位置。n n4. 4.显显示示该记录该记录的的员员工号、工号、姓名和姓名和职职称。称。n n5. 5.封封锁锁表。表。 n n将酒瓶和油瓶中的液将酒瓶和油瓶中的液体互体互换换。n n处处理方法理方法n n 1. 1.拿来一个空瓶拿来一个空瓶n n 2. 2.酒瓶的酒倒入空瓶酒瓶的酒倒入空瓶n n 3. 3.油瓶的油倒入酒瓶油瓶的油倒入酒瓶n n 4. 4.空瓶的酒倒入油瓶空瓶的酒倒入油瓶n n思索思索n n 如何将如何将变变量量A A、B B中存中存放的放的值值互互换换?写出算?写出算法法程序设计根底程序设计根底2.程序设计的控制构造n n 三种根本的控制构造n n 顺顺序构造序构造n n 分支构造分支构造n n 循循环环构造构造n n 流程图的根本知识流程图的根本知识流程图的根本知识流程图的根本知识流程图的根本知识名称名称起止框起止框 输输入入输输出框出框 判断框判断框处处理框理框 流程流程线线图形图形功能功能表示算法表示算法的开始和的开始和结结束束 表示数据表示数据的的输输入和入和输输出出 表示表示进进行条件行条件的判断的判断 表示数据表示数据加工的加工的过过程程 连连接各接各个步个步骤骤 顺序构造顺序构造特点:按照程序书写顺序执行程序特点:按照程序书写顺序执行程序 use sb &翻开表翻开表 list fields 称号,价钱称号,价钱 for 主要设备主要设备 &显示相关记录显示相关记录 replace all 价钱价钱 with 价钱价钱*0.9 for 主要设主要设备备 &数据交换数据交换 例:翻开设备表,显示一切主要设备的称号及价钱,并将主要设备的价钱降低10%。分支构造选择构造分支构造选择构造特点:根据条件特点:根据条件的的 满足与满足与否而否而 分别执分别执行与行与 其相对其相对应的应的 操作操作开场翻开表输入员工号找 到吗封锁表终了YN输出查无此人输出姓名等思索:分支构造与思索:分支构造与顺序构造的不同之顺序构造的不同之处处 循环构造反复构造循环构造反复构造特点:反复执行某些操作,反复执行的部分称为特点:反复执行某些操作,反复执行的部分称为循环体。循环体。 条件循环体YNa当型循环Y循环体条件Nb)直到型循环思索:思索: 两种循环构造的区别在于?提示:循环两种循环构造的区别在于?提示:循环条件条件答答案案: 1. 当当型型是是当当循循环环条条件件成成立立时时执执行行循循环环体体,条条件件不不成成立立时时退退出出循循环环 ;直直到到型型是是执执行行循循环环体体,直直到到条条件件成成立立才才退退出出循循环环。 2. 当当型型是是先先判判别别后后执执行行,能能够够一一次都不能执行;直到型是先执行后判别,至少执行一次。次都不能执行;直到型是先执行后判别,至少执行一次。 小结小结n n一切程序从整体上看其执行流程一定是从上而下顺序执行的,是一种顺序构造。而在其内部的构造中,三种构造是相互嵌套存在。n n例如,对于循环构造,其内部一定包含有判别条件成立与否的构造,单独来看是一种选择构造,但从整体上是属于循环构造的一部分,而循环体内部的语句自然是一种依次执行的顺序构造。 n n如何设计构造化程序? 3.构造化程序设计程序设计根底程序设计根底自顶向下逐渐细化构造化编码模块化设计n n什么是构造化程序? n n答1:用高级言语如vfp表示的构造化算法。n n答2:用三种根本控制构造组成的程序。算法设计4.程序文件中的公用命令程序设计根底程序设计根底2、置会话形状命令 3、交互式命令 4、等待命令 5、程序终了公用命令 1、程序注释命令 1、程序注释命令、程序注释命令格格 式式 :NOTE* NOTE* 或或 & & 功功 能能 : NOTE* NOTE*多用于多用于对对一个程序模一个程序模块块的的 功功能能进进展展阐阐明明。&是是用用于在命令于在命令语语 句句末末尾尾加加上上注注释释信信息息。都不被都不被执执行行. .例例 子子 :a=mod(sqrt a=mod(sqrt (9) (9) , , 3) 3) & & 对对9 9求求平平方方根根, ,然然后后对对3 3求模。求模。 格 式 :SET TALK ONOFF 功 能 :控制Visual FoxPro编辑环境中会话形状的 翻开与封锁。 说 明 :在会话形状开通 on 时 ,VFP在执行命令的时候会向用户提供大量的中间结果及反响信息 ,普通用于程序调试时。开通不仅会减慢程序的运转速度,而且还会与程序本身的输出相互夹杂,引起混淆。所以在执行程序时,那么通常置“会话于封锁形状off 2、置会话形状命令、置会话形状命令 3、交互式命令、交互式命令 1 字符串接字符串接纳纳命令命令 2 恣意数据恣意数据输输入命令入命令 3 定位定位输输入入输输出命令出命令 1字符串接纳命令字符串接纳命令格格 式:式:ACCEPT ACCEPT TO TO 功功 能:此命令是能:此命令是专门专门用于字符串的用于字符串的输输入。入。说说 明:明: 1 1 提示信息是用来在提示信息是用来在输输入入时时,显显示提示性文字。示提示性文字。 2 2 输输入的字符串保管在入的字符串保管在TOTO所指向的内存所指向的内存变变量中。量中。 3 3 在在运运用用此此命命令令来来输输入入字字符符串串时时,不不需需求求加加上上定定界界符符, ,否否那那么么,定定界界符符会会被被当当做做字字符符串串本本身身被被存存入入内内存存变变量中。量中。例例 子:子: ACCEPT “ ACCEPT “请输请输入一个数字入一个数字 TO a TO a 输输入:入:21 21 那么那么a a2121 2恣意数据输入命令恣意数据输入命令格格 式式 :INPUT INPUT TO TO 功功 能能 :从:从键盘输键盘输入数据保管在指定的内存入数据保管在指定的内存变变量中。量中。说说 明明 : 1 1 此命令可以接此命令可以接纳纳各种各种类类型数据的型数据的输输入。入。 2 2 在在输输入入数数据据时时对对于于有有定定界界符符的的数数据据类类型型一一定定要要带带上定界符上定界符输输入。入。 例例 如如 :INPUT “INPUT “请输请输入出生日期入出生日期 TO d TO d 输输入:入:1985-09-011985-09-01 INPUT INPUT “请请输输入入入入学学成成果果 TO dTO d 输输入:入:560.5 560.5 数数值值型数据没有定界符型数据没有定界符 3定位输入输出命令定位输入输出命令屏幕格式屏幕格式 系系统统将整个屏幕划分将整个屏幕划分为为: 25行行 80列列 XY平面坐平面坐标标系。系。命令格式命令格式 SAY GET DEFAULT READ 阐明:阐明:1 1 子子句句用用来来表表示示数数据据在在窗窗口口中中显显示示的位置的位置 ,行与列都是数值表达式或是数值型常量。,行与列都是数值表达式或是数值型常量。2 2SAYSAY子子句句用用来来输输出出提提示示信信息息,GET,GET子子句句用用来来输输入入及及编编辑辑数数据据。假假设设缺缺省省SAYSAY子子句句,GET,GET变变量量值值从从指指定定位位置置开场显示。开场显示。3 3GETGET子子句句中中的的变变量量必必需需具具有有初初值值,可可用用DEFAULTDEFAULT子句的子句的 指定初值。指定初值。 4 4经经过过GETGET子子句句从从外外界界输输入入的的变变量量的的值值,必必需需经经过过READREAD命命令令来来激激活活。在在一一个个程程序序中中假假设设有有多多个个GETGET子子句句,只只需需在在最最后后GETGET子子句句后后面面加加上上一一个个READREAD子子句句。一一个个READREAD子子句句可可以以激激活活它它前前面面一一切切的的未未被被激激活活的的GETGET子子句句中的变量。中的变量。 根据员工的编号来修正员工的根本工资和水电费。 CLEAR USE 工资表 yg=0001 2,10 SAY 请输入员工的编号 GET yg READ LOCATE FOR 员工编号 = yg 4,10 SAY “请修正根本工资 GET 根本工资 6,10 SAY “请修正水电费 GET 水电费 READ USE 【例【例6.16.1】 格格 式:式: WAIT WAIT TO TO WINDOW WINDOW AT AT , NOWAIT NOWAIT CLEAR CLEAR | | NOCLEAR NOCLEAR TIMEOUTTIMEOUT功功 能能:暂暂停停程程序序运运转转,直直到到用用户户输输入入恣恣意意的的一一个个字字符符才才重重新新开开场场执执行行程程序序,也也可可以以用用于于输输出出一一条条提提示示信信息。息。 说说 明:明: 1)to 1)to :将将用用户户键键入入的的字字符符保保管管到到内内存存变变量。量。 2)Window 2)Window atat,:在在VFPVFP主主屏屏幕幕 的指定位置出现一个的指定位置出现一个WaitWait提示窗口。提示窗口。 3)Timeout 3)Timeout:用来设定等待时间。:用来设定等待时间。4、等待命令、等待命令 例 子: WAIT 请检查输入内容 WINDOW AT 9,9 RETURN RETURN & & 终终终终止止止止程程程程序序序序执执执执行行行行,并并并并前前前前往往往往到到到到调调调调用用用用它它它它 的的的的上上上上级级级级程程程程序序序序继继继继续续续续执执执执行行行行,如如如如无无无无上上上上级级级级 程序那么前往命令窗口。程序那么前往命令窗口。程序那么前往命令窗口。程序那么前往命令窗口。 CANCEL CANCEL & & 终终终终止止止止程程程程序序序序执执执执行行行行,去去去去除除除除程程程程序序序序的的的的私私私私有有有有 变变变变量,并前往命令窗口。量,并前往命令窗口。量,并前往命令窗口。量,并前往命令窗口。 QUIT QUIT & & 退退退退出出出出VFPVFP系系系系统统统统,前前前前往往往往WINDOWSWINDOWS, 与文件菜与文件菜与文件菜与文件菜单单单单的退出功能一的退出功能一的退出功能一的退出功能一样样样样。 5、程序终了公用命令、程序终了公用命令5.程序文件的建立与运转 程序文件又称为命令文件 ,其扩展名为.PRG。 1.建立或修正程序文件 2. (1) 命令方式3. 格 式:MODIFY COMMAND ?4. 功 能:建立或修正一个程序文件。 5. 说 明:命令中的文件名是指定要生成的程序文件的称号,缺省的扩展名为.PRG;文件名前也可以指明途径。 (2) 菜一方式(2个步骤) 选择文件菜单中的新建命令,并在弹出的新建对话框中,选择程序按钮,再单击新建文件命令按钮,弹出文本编辑窗口。 在文本编辑窗口中,输入程序内容即可。 2. 2. 程序的运转程序的运转 (1) (1) 命令方式命令方式 格格 式:式:DO DO 功功 能:依次执行程序中的各条命令。能:依次执行程序中的各条命令。 说说 明:明:DODO命令默许运转命令默许运转.PRG.PRG程序,程序, 只需取文件主名。当需求运用只需取文件主名。当需求运用DODO命令执行其他文命令执行其他文件时,那么必需包括扩展名。例如,经过件时,那么必需包括扩展名。例如,经过DODO命令命令来执行某个查询文件,文件名为来执行某个查询文件,文件名为ele.qprele.qpr,那么命,那么命令必需写为:令必需写为:DO ele.qprDO ele.qpr。 (2) 菜一方式2种方式 选择程序菜单中运转命令,在弹出的运转对话框中,输入文件名即可。 当程序处在编辑形状下时,右击文本编辑区,在其弹出快捷菜单中选择“执行程序菜单项即可。 顺序构造设计 顺序构造程序设计是三种根本构造中最简单也是最常用的一种构造。顺序构造的程序在运转时按照语句陈列的先后顺序,自顶向下依次执行。 【例【例6.26.2】 从键盘输入一个小写字母,要求改用大写字母输出。从键盘输入一个小写字母,要求改用大写字母输出。 SET TALK OFF CLEARACCEPT 请输入一个小写字母 TO aa= UPPER(a)? “转换结果为: , aSET TALK ONRETURN 开 始输入字母大小写转换输出结果结 束例6.2流程图 假设输入的字母为非小写字母,例如,误操作输入了大写字母或是数字字符,那么在此程序运转中依然将继续执行并显示结果,这显然与题意不符,要处理这个问题,需求用到选择构造程序。 顺序构造程序特点:顺序构造程序特点: 按照程序书写顺序执行程序按照程序书写顺序执行程序例例例例2 2 2 2:求:求:求:求长长长长方形的面方形的面方形的面方形的面积积积积。 clear clear clear clear set talk off set talk off set talk off set talk off input “ input “ input “ input “请输请输请输请输入入入入长长长长方形的方形的方形的方形的长长长长: to L to L to L to L input “ input “ input “ input “请输请输请输请输入入入入长长长长方形的方形的方形的方形的宽宽宽宽: to W to W to W to W s=L*W s=L*W s=L*W s=L*W ? “ ? “ ? “ ? “长长长长方形的面方形的面方形的面方形的面积为积为积为积为:, s, s, s, s set talk on set talk on set talk on set talk on return return return return分支构造分支构造 程序应具有判别功能,而判别是经过程序中的分支构造选择构造来实现的。 分支构造是程序中一种常用构造,按照分支构造是程序中一种常用构造,按照分支构造执行途径的多少,可分为单分支、分支构造执行途径的多少,可分为单分支、双分支和多分支构造。实现分支构造的语句双分支和多分支构造。实现分支构造的语句有有 IF语句和语句和DO CASE语句。语句。 无论哪种类型的分支构造,都是根据无论哪种类型的分支构造,都是根据所给条件为真或为假,来选择执行某一分所给条件为真或为假,来选择执行某一分支的相应操作。支的相应操作。n n 1 1、单单单单分支构造分支构造分支构造分支构造n n 格式:格式:格式:格式: IF IF n n n n ENDIF ENDIF执行流程:执行流程: 首先计算条件表达式的值,首先计算条件表达式的值, 假设其值为真,那么执行假设其值为真,那么执行IFIF与与ENDIFENDIF之间的之间的命令命令 序列序列, ,然后执行然后执行ENDIFENDIF后面的命令;后面的命令; 假设其值为假,那么直接执行假设其值为假,那么直接执行ENDIFENDIF后面的后面的命令。命令。分支构造特点:分支构造特点:分支构造特点:分支构造特点:根据条件成立与否,分别执行与其相对应的操作。根据条件成立与否,分别执行与其相对应的操作。根据条件成立与否,分别执行与其相对应的操作。根据条件成立与否,分别执行与其相对应的操作。条件ENDIF后语句后语句N命令序列Y单单分支构造流程分支构造流程图图:思索:分支构造与顺序构造的不同之处思索:分支构造与顺序构造的不同之处 例例1 1:求长方形面积。判别:当输入的边长值为正:求长方形面积。判别:当输入的边长值为正数时,求面积。数时,求面积。clearset talk offinput “请输请输入入长长方形的方形的长长: to linput “请输请输入入长长方形的方形的宽宽: to wif l0 and w0 s = l * w ? 长长方形的面方形的面积为积为: , sendifreturn在在设设计计程程序序时时,对对于于有有数数据据输输入入的的程程序序,一一定定要要对对输输入入数数据据的的有有效效性性做做相相应应的的检检查查,防防止止由由于于数数据据的的错错误误输输入入而而导导致致程程序序的的出出错错。这这是是一一个个程序员必需养成的良好习惯。程序员必需养成的良好习惯。输入长宽:输入长宽:L和和W开场开场L,W “zIF (a “z) OR (a “a) OR (a “a) ) ? “ ? “输输入字母入字母错误错误! ! SET TALK ON SET TALK ON RETURN RETURNENDIFENDIFa= UPPER(a)a= UPPER(a)? ? 转换结转换结果果为为: , a: , aSET TALK ONSET TALK ONRETURN RETURN 2 2、双分支构造、双分支构造 格式:格式:IF IF 1 ELSE ELSE 2 ENDIF ENDIF执行流程:执行流程: 首先计算条件表达式的值,首先计算条件表达式的值, 假设其值为真,那么执行命令序列假设其值为真,那么执行命令序列1 1,然后然后 再执行再执行ENDIFENDIF后面的命令;后面的命令; 假设其为假,执行命令序列假设其为假,执行命令序列2 2,然后再,然后再执执 行行ENDIFENDIF后面的命令。后面的命令。条件条件语句序列语句序列1 1语句序列语句序列2 2YN双分支构造流程图双分支构造流程图例例例例3 3 3 3: 从键盘输入一个数,判别其为奇数还是偶数。从键盘输入一个数,判别其为奇数还是偶数。 分析:分析: 1 1 首先是首先是输输入一个入一个数,然后判数,然后判别输别输入的数奇偶入的数奇偶性。性。 2 2 应输应输入数入数值值型数据,可型数据,可以用以用INPUTINPUT或是或是GETGET语语句来句来输输入。入。 3 3 如何判如何判别别奇偶性呢?可奇偶性呢?可运用运用MODMOD函数或求余运算符函数或求余运算符“%“%。对对于一个偶数于一个偶数x x,MODMOD x x,2 2 应该为应该为0 0,否那么,否那么为为1 1。 输出偶数开场开场输入数输入数余余数数为为0?0?输出奇数输出奇数终了终了YNSET TALK OFFSET TALK OFFINPUT “INPUT “请输请输入一个数字入一个数字 TO a TO aIF MOD (a,2)=0 & a%2=0IF MOD (a,2)=0 & a%2=0 ? a, “ ? a, “是一个偶数是一个偶数ELSEELSE ? a, “ ? a, “是一个奇数是一个奇数ENDIFENDIFSET TALK ONSET TALK ONRETURN RETURN 例例例例4 4 4 4:在工:在工:在工:在工资资资资表中,需求按照表中,需求按照表中,需求按照表中,需求按照员员员员工工工工编编编编号号号号查询员查询员查询员查询员工工工工的根本信息。的根本信息。的根本信息。的根本信息。 分析分析: :1.1.翻开工翻开工资资表表; ;2.2.输输入入员员工号工号; ;3.3.用用LOCATELOCATE命令命令查查找找该该员员工;工;4.4.用用FOUND()FOUND()函数来判函数来判别别能否存在能否存在该记录该记录。5.5.假假设设FOUND()FOUND()函数函数为为真,真,表示存在此表示存在此员员工工记录记录,否那么,不存在此否那么,不存在此员员工工记录记录,给给出出“查查无此人无此人的提示信息。的提示信息。5.5.封封锁锁表。表。开场开场翻开表翻开表输入员工号输入员工号找找 到到吗吗封锁表封锁表终了终了YN输出查无此人输出查无此人输出员工信息输出员工信息查找该员工查找该员工SET TALK OFFSET TALK OFFUSE USE 工工资资表表ACCEPT “ACCEPT “请输请输入入员员工工编编号号 TO a TO aLOCATE FOR LOCATE FOR 员员工工编编号号=a=aIF FOUNDIF FOUND & & 条件条件FOUNDFOUND 为为真表示存在此真表示存在此员员工工 DISP DISP 员员工号工号, ,根本工根本工资资, ,水水电费电费ELSE & ELSE & 条件条件FOUNDFOUND 为为假表示不存在此假表示不存在此员员工工 ?“查查无此人!无此人!ENDIFENDIFUSE USE SET TALK ONSET TALK ONRETURNRETURN程序采用程序采用“缩进制格式书写,缩进制格式书写,最外层顶格写,属于其内层语最外层顶格写,属于其内层语句那么往后退一定间隔,这样句那么往后退一定间隔,这样便于阅读和调试。便于阅读和调试。留意:留意:1 1、IFIF与与ENDIFENDIF必需成对出现,且各占一行。必需成对出现,且各占一行。2 2、 可以为关系表达式、逻辑表达可以为关系表达式、逻辑表达式或其他逻辑量。式或其他逻辑量。课课堂堂练习练习: 1、在、在员员工表中,按姓名工表中,按姓名查询员查询员工信息。工信息。 2、从、从键盘输键盘输入一个数,入一个数,输输出其出其绝对值绝对值。 3、输输入入a、b两个数,按由小到大的两个数,按由小到大的顺顺序序输输出。出。思索思索题题: 输输入入a a、b b、c c三个数,按由小到大的三个数,按由小到大的顺顺序序输输出。出。clearclearset talk offset talk offinput “input “请输请输入入a a的的值值: to a to a input “input “请输请输入入b b的的值值: to b to b input “input “请输请输入入c c的的值值: to c to c if ab &aif ab &a和和b b比比较较大小,假大小,假设设a a大,那么大,那么a a、b b 交交换换 s=a s=a a=b a=b b=s b=sendifendifif ac &aif ac &a和和c c比比较较大小,假大小,假设设a a大,那么大,那么a a、c c 交交换换 s=a s=a a=c a=c c=s c=sendifendifIf bc &bIf bc &b和和c c比比较较大小,假大小,假设设b b大,那么大,那么b b、c c 交交换换 s=b s=b b=c b=c c=s c=sendifendif? a ,b , c? a ,b , creturnreturn思索思索思索思索题题题题答案答案答案答案3.IF3.IF语句的嵌套语句的嵌套 实实践践生生活活中中,很很多多问问题题不不仅仅仅仅只只需需两两种种能能够够,而而是是要要求对多种情况进展不同的处置,那么需求用到求对多种情况进展不同的处置,那么需求用到IFIF语句嵌套。语句嵌套。 嵌套是指在某种构造中含有其它构造。嵌套是指在某种构造中含有其它构造。普通格式:普通格式: IF IF 1 IF IF 2 ENDIF ENDIF ELSE ELSE IF IF 3 ENDIF ENDIF ENDIF ENDIF 留意:留意:1 1、IFIF一定要与一定要与ENDIFENDIF配对。配对。2 2、在、在IFIF构造之间可以嵌套,构造之间可以嵌套,但不能交叉。但不能交叉。INPUT “INPUT “请输请输入学生成果入学生成果 TO p TO pIF p60 IF p60 ? “ ? “不及格不及格 ELSEELSE IF p70 IF p70 ? “ ? “及格及格 ELSE ELSE IF p80 IF p80 ? “ ? “良良 ELSE ELSE IF p90 IF p90 ? “ ? “好好 ELSE ELSE ?“优优 ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIFENDIF例例例例5 5 5 5: 输输输输入入入入一一一一个个个个学学学学生生生生成成成成果果果果, , , ,判判判判别别别别学学学学生生生生成成成成果果果果的的的的等等等等级级级级。假假假假设设设设成成成成果果果果等等等等级级级级划划划划分分分分为为为为5 5 5 5等:等:等:等:0000,60 60 60 60 为为为为不不不不及及及及格格格格,60606060,70707070为为为为及格,及格,及格,及格,70707070,80808080为为为为良良良良, , , , 80808080,90909090为为为为好,好,好,好,90909090,100100100100为优为优为优为优。 4、多分支、多分支DO CASE语句语句 格式:格式:DO CASE DO CASE CASE CASE 1 1 CASE CASE 2 2 CASE CASE n n OTHERWISE OTHERWISE n+1ENDCASE ENDCASE 条件条件1 1条件条件2 2条件条件n n语句组语句组1 1语句组语句组2 2语句组语句组3 3ENDCASEENDCASE的下一条命令的下一条命令语句组语句组n n YYYNNN DO CASE语句流程图例例例例6:6:6:6: 运用运用DO CASEDO CASE语句转换例语句转换例5 5。 SET TALK OFFINPUT “请输请输入成果入成果 TO pIF ( P100) OR ( P0) ? 输输入的成果有入的成果有误误,请请重新重新输输入入ELSE DO CASE CASE P60 ? 不及格不及格 CASE P70 ? 及格及格 CASE P80 ? 良良 CASE P90 ? 好好 OTHERWISE ? 优优 ENDCASEENDIFRETURN课堂练习:课堂练习: 编一缴税程序,以编一缴税程序,以800800元为基数,超出部分元为基数,超出部分的缴税比例如下:的缴税比例如下: 800-1500 800-1500含含800800 5%5% 1500-2500 1500-2500含含15001500 10% 10% 2500-5000 2500-5000含含25002500 20% 20% 5000 5000以上以上 含含50005000 25% 25% 本卷须知:本卷须知:1 1 1 1、在在在在DO DO DO DO CASECASECASECASE语语语语句句句句中中中中,当当当当有有有有几几几几个个个个CASECASECASECASE的的的的条条条条件件件件同同同同时时时时成成成成立立立立时时时时,自自自自上上上上而而而而下下下下只只只只执执执执行行行行最最最最先先先先满满满满足足足足条条条条件件件件的的的的CASECASECASECASE后面的语句组,然后退出后面的语句组,然后退出后面的语句组,然后退出后面的语句组,然后退出DO CASEDO CASEDO CASEDO CASE语句。语句。语句。语句。 2 2 2 2、DO CASEDO CASEDO CASEDO CASE和和和和ENDCASEENDCASEENDCASEENDCASE必需配对出现。必需配对出现。必需配对出现。必需配对出现。3 3 3 3、IFIFIFIF语语语语句句句句和和和和DO DO DO DO CASECASECASECASE语语语语句句句句都都都都可可可可用用用用于于于于多多多多分分分分支支支支构构构构造造造造,但但但但当当当当分分分分支支支支较较较较多多多多,IFIFIFIF嵌嵌嵌嵌套套套套的的的的层层层层次次次次就就就就越越越越多多多多,程程程程序序序序构构构构造造造造也也也也会会会会变变变变得得得得复复复复杂杂杂杂,不不不不利利利利于于于于程程程程序序序序的的的的调调调调试试试试和和和和修修修修正正正正,所所所所以以以以,当当当当嵌嵌嵌嵌套套套套层层层层次次次次超超超超越越越越3 3 3 34 4 4 4层层层层时时时时,普普普普通通通通不不不不运运运运用用用用IFIFIFIF构造,而运用构造,而运用构造,而运用构造,而运用DO CASEDO CASEDO CASEDO CASE语句。语句。语句。语句。小结小结 分支构造使得程序功能得到完善,分支构造使得程序功能得到完善,分支构造的目的在于对不同情况做出分支构造的目的在于对不同情况做出不同处置,这种构造的出现使得计算不同处置,这种构造的出现使得计算机在一定程度上具有了判别的功能,机在一定程度上具有了判别的功能,是计算机走向智能化的重要构造。是计算机走向智能化的重要构造。循环构造设计1.1.条条 件件 循循 环环 2.2.步步 长长 循循 环环 3.3.扫扫 描描 循循 环环 1、条件循环、条件循环 格式:格式:DO WHILE DO WHILE 1 LOOP LOOP 2 EXIT EXIT 3 ENDDO ENDDO 命令序列命令序列EXITLOOPEnddo后面语句后面语句条件条件FTEnddo本卷须知:本卷须知:(1)此循环为当型循环。对于当型循环,假设条件第一次就不成立,那么循环一次也不做。(2)循环体内应有修正循环条件的语句或EXIT。(3)LOOP,EXIT可在适当时候控制循环,普通用在IF或DO CASE语句中。 求1+2+3+100之和。分析: 0 + 1 = 1 1 + 2 = 3 3 + 3 = 6 6 + 4 = 10 4950+100=5050S I S S=0I =1S=S+II =I+1【例【例【例【例6.126.126.126.12】S=S+II =I+1S=S+II =I+1结 束输出s开 始i=100?s,i赋初值0s=s+ii=i+1YN例6.12流程图SET TALK OFFCLEARI=1S=0I=100I5为止,求此时n的值。 分分分分析析析析:1 1 1 1此此此此题题题题为为为为一一一一个个个个多多多多项项项项式式式式累累累累加加加加求求求求结结结结果果果果。但但但但是是是是显显显显然详细多项式有多少项并不清楚所以不知循环次数。然详细多项式有多少项并不清楚所以不知循环次数。然详细多项式有多少项并不清楚所以不知循环次数。然详细多项式有多少项并不清楚所以不知循环次数。 2 2 2 2采采采采用用用用循循循循环环环环构构构构造造造造,循循循循环环环环体体体体中中中中每每每每次次次次是是是是对对对对s s s s累累累累加加加加前前前前一一一一项项项项式式式式的的的的值值值值,而而而而且且且且多多多多项项项项式式式式之之之之间间间间存存存存在在在在着着着着每每每每次次次次分分分分母母母母都都都都比比比比上上上上一次添加一次添加一次添加一次添加1 1 1 1规律。规律。规律。规律。 3 3 3 3由由由由标标标标题题题题给给给给出出出出条条条条件件件件得得得得知知知知,只只只只需需需需当当当当s s s s小小小小于于于于5 5 5 5时时时时循循循循环环环环才才才才干继续。因此得出循环的条件应该为干继续。因此得出循环的条件应该为干继续。因此得出循环的条件应该为干继续。因此得出循环的条件应该为s=5s=5s=5s=5。 CLEARSET TALK OFFs=0n=1DO WHILE s=5DO WHILE s5 IF S5 EXIT EXIT ENDIF ENDIFENDDOENDDO? “n的值应该为,nSET TALK ONRETURN分分分分析析析析:1 1此此此此题题题题要要要要求求求求判判判判别别别别100100到到到到200200之之之之间间间间的的的的一一一一切切切切数数数数,那么是一个循环判别的过程。那么是一个循环判别的过程。那么是一个循环判别的过程。那么是一个循环判别的过程。 2 2设一个变量设一个变量设一个变量设一个变量i i初值为初值为初值为初值为100100,循环条件为,循环条件为,循环条件为,循环条件为i=200i=200。 3 3循循循循环环环环体体体体中中中中,对对对对每每每每次次次次的的的的i i先先先先利利利利用用用用MODMOD函函函函数数数数判判判判别别别别奇奇奇奇偶偶偶偶性性性性。假假假假设设设设i i为为为为奇奇奇奇数数数数那那那那么么么么累累累累加加加加到到到到变变变变量量量量s s中中中中,否否否否那那那那么么么么,经经经经过过过过LOOPLOOP语语语语句句句句退退退退出出出出本本本本次次次次循循循循环环环环,进进进进入入入入下下下下一一一一次次次次循循循循环环环环判别。判别。判别。判别。 【例【例【例【例6.156.156.156.15】求100到200之间一切奇数之和。 SET TALK OFFSET TALK OFFCLEARCLEARs=0s=0i=100i=100DO WHILE i=200 DO WHILE i=200 i=i+1 & i=i+1 &必需放在必需放在IFIF语句前语句前 IF MOD(i,2)=0 IF MOD(i,2)=0 LOOP & LOOP & 假设假设i i被被2 2除后余数为除后余数为0 0,那么,那么i i为偶数,为偶数,否那么退出本次循环。否那么退出本次循环。 ELSE ELSE s=s+i s=s+i ENDIF ENDIFENDDOENDDO?100100到到200200之间奇数累加之和为:之间奇数累加之和为:+s+sSET TALK ON SET TALK ON RETURN RETURN 2、步长循环、步长循环 条件循环可以实现知和未知循环次数的循环。对于循环次数知的循环还可采用步长循环。 格式:格式: FOR FOR = TO TO STEP STEP ENDFORNEXT ENDFORNEXT 数值表达式,默许值为1。阐明:阐明: 1 1循环变量按步长值添加或减小。循环变量按步长值添加或减小。 2 2当循环变量的值不在初值与终值范围内时,终当循环变量的值不在初值与终值范围内时,终了循环。了循环。 几种步长循环方式:几种步长循环方式: 1.1.1.1.省略步长省略步长省略步长省略步长 FOR i=1 TO 100 FOR i=1 TO 100 FOR i=1 TO 100 FOR i=1 TO 100 n=n+1 n=n+1 n=n+1 n=n+1 ENDFOR ENDFOR ENDFOR ENDFOR 没有给出步长,默以为没有给出步长,默以为没有给出步长,默以为没有给出步长,默以为1 1 1 1,退出循环后退出循环后退出循环后退出循环后n n n n的值为的值为的值为的值为100100100100。假设n的初值为02.2.2.2.步步步步长为长为长为长为正数正数正数正数 FOR i=-5 TO 10 STEP 3 FOR i=-5 TO 10 STEP 3 FOR i=-5 TO 10 STEP 3 FOR i=-5 TO 10 STEP 3 n=n+1 n=n+1 n=n+1 n=n+1 ENDFOR ENDFOR ENDFOR ENDFOR 退出循退出循退出循退出循环环环环后后后后n n n n的的的的值为值为值为值为5 5 5 5。 3. 3. 3. 3.步步步步长为负长为负长为负长为负数数数数 FOR i=15 TO 2 STEP -5 FOR i=15 TO 2 STEP -5 FOR i=15 TO 2 STEP -5 FOR i=15 TO 2 STEP -5 n=n+1 n=n+1 n=n+1 n=n+1 ENDFOR ENDFOR ENDFOR ENDFOR 循循循循环变环变环变环变量量量量递递递递减减减减, , , ,退出循退出循退出循退出循环环环环后后后后n n n n的的的的值值值值为为为为3 3 3 34.4.4.4.初值与终值相等初值与终值相等初值与终值相等初值与终值相等 FOR i=1 TO 1 STEP 10 FOR i=1 TO 1 STEP 10 FOR i=1 TO 1 STEP 10 FOR i=1 TO 1 STEP 10 n=n+1 n=n+1 n=n+1 n=n+1 ENDFOR ENDFOR ENDFOR ENDFOR 循环只做一次循环只做一次循环只做一次循环只做一次 , 退出循环后退出循环后退出循环后退出循环后n n n n的值为的值为的值为的值为1 1 1 1。5.5.5.5.出出出出现现现现死循死循死循死循环环环环 FOR i=1 TO 9 STEP -2 FOR i=1 TO 9 STEP -2 FOR i=1 TO 9 STEP -2 FOR i=1 TO 9 STEP -2 n=n+1 n=n+1 n=n+1 n=n+1 ENDFOR ENDFOR ENDFOR ENDFOR 步步步步长为负长为负长为负长为负,初,初,初,初值值值值小于小于小于小于终终终终值值值值,循循循循环环环环一直一直一直一直进进进进展,成展,成展,成展,成为为为为了一了一了一了一个个个个死循死循死循死循环环环环。6.6.6.6.循循循循环环环环体内部出体内部出体内部出体内部出现现现现改改改改动动动动循循循循环变环变环变环变量的量的量的量的语语语语句句句句 FOR i=1 TO 100 STEP 2 FOR i=1 TO 100 STEP 2 FOR i=1 TO 100 STEP 2 FOR i=1 TO 100 STEP 2 i=i i=i i=i i=i3 3 3 3 n=n+1 n=n+1 n=n+1 n=n+1 ENDFOR ENDFOR ENDFOR ENDFOR 实实实实践每次循践每次循践每次循践每次循环变环变环变环变量的步量的步量的步量的步长为长为长为长为5,5,5,5,退出循退出循退出循退出循环环环环后后后后n n n n的的的的值为值为值为值为20202020。 求1+2+3+100之和。【例【例【例【例6.126.126.126.12】 SET TALK OFF CLEAR S=0 FOR i=1 TO 100 STEP 1 S=S+i ENDFOR ? 1-100之和为,S SET TALK ON RETURN 举举举举一反三:求一反三:求一反三:求一反三:求123100123100123100123100之之之之积积积积。S1S=S*i积 求一切的3位数中能同时被5和12整除的数有多少个?其和是多少?并按照每行输出5个,输出这些数。 分析:分析:分析:分析: 1. 1.一一一一切切切切的的的的三三三三位位位位数数数数,也也也也就就就就确确确确定定定定了了了了范范范范围围围围是是是是从从从从100100999999,运用步运用步运用步运用步长长长长循循循循环环环环,初,初,初,初值为值为值为值为100100,终值为终值为终值为终值为999999,步,步,步,步长为长为长为长为1 1。 2. 2.用用用用循循循循环环环环到到到到的的的的数数数数对对对对5 5和和和和1212求求求求余余余余,假假假假设设设设其其其其他他他他数数数数为为为为0 0,那那那那么么么么是是是是一一一一个个个个需需需需求求求求的的的的数数数数,那那那那么么么么存存存存放放放放统统统统计计计计个个个个数数数数的的的的变变变变量量量量加加加加1 1,用于求和的,用于求和的,用于求和的,用于求和的变变变变量累加上量累加上量累加上量累加上该该该该数数数数值值值值。 3. 3.对对对对于于于于每每每每个个个个满满满满足足足足条条条条件件件件的的的的数数数数都都都都运运运运用用用用“?“?来来来来保保保保证证证证同同同同行行行行输输输输出出出出,一一一一旦旦旦旦输输输输出出出出了了了了5 5个个个个,那那那那么么么么运运运运用用用用“?“?换换换换行行行行。即即即即,假假假假设设设设统统统统计计计计的的的的个个个个数数数数能能能能被被被被5 5整整整整除除除除,就就就就输输输输出出出出一一一一个个个个“?“?,用用用用来来来来换换换换行。行。行。行。 【例【例【例【例6.136.136.136.13】STORE 0 TO s,t &sSTORE 0 TO s,t &s保管累加和,保管累加和,t t保管满足条件的数的个保管满足条件的数的个数数FOR i=100 TO 999FOR i=100 TO 999 IF (i%5=0) AND (i%12=0) IF (i%5=0) AND (i%12=0) s=s+i s=s+i t=t+1 t=t+1 ? i, ? i, IF t%5=0 IF t%5=0 ? & ? &曾经输出曾经输出5 5个数,那么换行输出。个数,那么换行输出。 ENDIF ENDIF ENDIF ENDIF ENDFORENDFOR? 满足条件的数的个数为:满足条件的数的个数为:, t, t? 满足条件的数之和为:满足条件的数之和为:, s , s 思思思思索索索索:输输输输出出出出一一一一切切切切的的的的四四四四位位位位数数数数中中中中能能能能同同同同时时时时被被被被9 9 9 9和和和和11111111整整整整除除除除的的的的数数数数,每每每每行行行行输输输输出出出出6 6 6 6个。个。个。个。分析:分析:分析:分析: 1. 1.在表中添加新的空记录可以运用在表中添加新的空记录可以运用在表中添加新的空记录可以运用在表中添加新的空记录可以运用APPEND BLANKAPPEND BLANK命令。命令。命令。命令。 2. 2.用步长循环来控制添加记录的数量。用步长循环来控制添加记录的数量。用步长循环来控制添加记录的数量。用步长循环来控制添加记录的数量。 3. 3.内部数据的输入可以用定位输入命令来完成。内部数据的输入可以用定位输入命令来完成。内部数据的输入可以用定位输入命令来完成。内部数据的输入可以用定位输入命令来完成。代码:代码:代码:代码: SET TALK OFF SET TALK OFF CLEAR CLEAR USE USE 员工表员工表员工表员工表 FOR i=1 TO 10 FOR i=1 TO 10 APPEND BLANK APPEND BLANK ? ? 请输入添加的第请输入添加的第请输入添加的第请输入添加的第, i, , i, 个员工的资料个员工的资料个员工的资料个员工的资料 【例【例【例【例6.146.146.146.14】在员工表中添加10条新记录。 2,5 SAY “ 2,5 SAY “请输请输入入员员工工编编号号 GET GET 员员工工编编号号 4,5 SAY “ 4,5 SAY “请输请输入入员员工姓名工姓名 GET GET 姓名姓名 6,5 SAY “ 6,5 SAY “请输请输入入员员工性工性别别 GET GET 性性别别 8,5 SAY “ 8,5 SAY “请输请输入入员员工婚否工婚否 GET GET 婚否婚否 10,5 SAY “ 10,5 SAY “请输请输入入员员工工职职称称 GET GET 职职称称 12,5 SAY “ 12,5 SAY “请输请输入入员员工任工任务务日期日期 GET GET 任任务务日日期期 14,5 SAY “ 14,5 SAY “请输请输入入员员工部工部门编门编号号 GET GET 部部门编门编号号 16,5 SAY “ 16,5 SAY “请输请输入入员员工工工工资级别资级别 GET GET 工工资级资级别别 18,5 SAY “ 18,5 SAY “请输请输入入员员工工联络联络 GET GET 联络联络 READ READ CLEAR CLEAR ENDFOR ENDFOR USEUSESET TALK ON SET TALK ON RETURN RETURN 小小 结结a) 循环变量、和或积或个数变量要赋初值。b) DO WHILE循环体内要有修正循环变量的语句即为了防止程序成为死循环。c尽能够不要在FOR循环内部运用改动循环变量的语句。3、扫描循环、扫描循环 格格 式:式: SCAN SCAN FORFORWHILEWHILE2 ENDSCAN ENDSCAN 说说 明:明: 1 1针对当前任务区中被翻开的表的记录进展扫描。针对当前任务区中被翻开的表的记录进展扫描。 2 2 子句确定扫描记录的范围,缺省那么为子句确定扫描记录的范围,缺省那么为ALLALL。 3 3对对 子句内满足子句内满足FORFOR 或或WHILEWHILE 的记录执行循环体中的规定操作。的记录执行循环体中的规定操作。 4 4记录指针可自动往下移。记录指针可自动往下移。 USE USE 员员工表工表STORE 0 TO n1STORE 0 TO n1,n2n2,j1j1,j2j2SCANSCAN IF IF 性性别别=“=“男男 n1=n1+1 n1=n1+1 ELSE ELSE n2=n2+1 n2=n2+1 ENDIF ENDIF DO CASE DO CASE CASE CASE 职职称称=“=“教授教授 j1=j1+1 j1=j1+1 CASE CASE 职职称称=“=“副教授副教授 j2=j2+1 j2=j2+1 ENDDO ENDDOENDSCANENDSCAN【例【例【例【例6.156.156.156.15】统计员工表中男女人数,以及教授和副教授的人数。 ?“总共有,n1,“个男员工?“总共有,n2,“个女员工?“总共有,j1,“个教授 ?“总共有,j2,“个副教授 USE 总结总结 a) a) 条件循条件循环环命令适用于各种命令适用于各种类类型的循型的循环环程序。程序。 b) b) 计计数循数循环环适用于知循适用于知循环环次数的循次数的循环环程序。程序。 c) c) 扫扫描循描循环环命令适用于命令适用于对对数据数据库库操作的循操作的循环环程序。程序。 d) d) 现实现实上,上,ForEndforForEndfor和和ScanEndscanScanEndscan是是 Do WhileEnddo Do WhileEnddo的特殊方式。的特殊方式。作作 业业1.1.用用扫扫描循描循环环依次修正学生表中第依次修正学生表中第10-4010-40条条记录记录中女生的中女生的总总分。分。2.2.编编写写一一个个密密码码输输入入程程序序,密密码码为为“ABC“ABC,假假设设用用户户输输入入正正确确,显显示示“欢欢迎迎运运用用,假假设设不不正正确确,允允许许输输入入三三次次,三三次次输输入不正确,入不正确,显显示示“无无权权运用本系运用本系统统,并退出程序,并退出程序执执行。行。3.3.在屏幕上打印如以下在屏幕上打印如以下图图形:形: * * * * * * 4.4.实现输实现输入恣意一个入恣意一个1515以内的数求其以内的数求其阶阶乘。乘。5、设S=1+1/2+1/3+1/N,求使S不超越10的最大的N值。6、求1-1000之间能被3整除的偶数的个数及其和。7、打印如以下图形: * * * *附加题: 1、恣意输入10个数,能求出它们中的最大值和最小值。 2、打印九九乘法表。 模块化设计1.1.子子 程程 序序 2.2.过程与过程文件过程与过程文件 3.3.自定义函数自定义函数 4.4.内存变量的作用域内存变量的作用域 5.5.数据传送数据传送 1、子程序、子程序一、定一、定一、定一、定义义义义: 子子子子程程程程序序序序实实实实践践践践上上上上是是是是一一一一个个个个程程程程序序序序,其其其其是是是是一一一一个个个个相相相相对对对对的的的的概概概概念念念念,通常称通常称通常称通常称调调调调用的程序用的程序用的程序用的程序为为为为主程序,被主程序,被主程序,被主程序,被调调调调用的程序用的程序用的程序用的程序为为为为子程序。子程序。子程序。子程序。 二、二、二、二、调调调调用与前往用与前往用与前往用与前往 DO DO DO DO WITH WITH WITH WITH 1 1 1 1、主主主主程程程程序序序序执执执执行行行行时时时时遇遇遇遇到到到到DODODODO命命命命令令令令,执执执执行行行行就就就就转转转转向向向向子子子子程程程程序序序序。子程序子程序子程序子程序执执执执行完后就会前往到主程序。行完后就会前往到主程序。行完后就会前往到主程序。行完后就会前往到主程序。 2 2 2 2、参参参参数数数数表表表表可可可可以以以以是是是是表表表表达达达达式式式式,假假假假设设设设为为为为内内内内存存存存变变变变量量量量,必必必必需需需需具具具具有初有初有初有初值值值值。 3 3 3 3、调调调调用子程序用子程序用子程序用子程序时时时时,参数表中的参数要,参数表中的参数要,参数表中的参数要,参数表中的参数要传传传传送送送送给给给给子程序。子程序。子程序。子程序。三、子程序参数的定义:三、子程序参数的定义:三、子程序参数的定义:三、子程序参数的定义: PARAMETERS PARAMETERS PARAMETERS PARAMETERS 功功功功能能能能:接接接接受受受受主主主主程程程程序序序序发发发发送送送送的的的的参参参参数数数数值值值值,调调调调用用用用前前前前往往往往主主主主程程程程序序序序时时时时把把把把变变变变 量量量量的的的的值值值值回回回回送送送送给给给给主主主主程程程程序序序序相相相相应应应应的变量。的变量。的变量。的变量。 阐明:阐明:阐明:阐明: a) PARAMETERS a) PARAMETERS a) PARAMETERS a) PARAMETERS必需是被调用程序的第一个语句。必需是被调用程序的第一个语句。必需是被调用程序的第一个语句。必需是被调用程序的第一个语句。 b) b) b) b) 程程程程序序序序前前前前往往往往主主主主程程程程序序序序后后后后,该该该该命命命命令令令令定定定定义义义义的的的的参参参参数数数数即即即即被被被被去除。去除。去除。去除。 c) c) c) c) DO DO DO DO 命命命命 令令令令 传传传传 送送送送 参参参参 数数数数 的的的的 个个个个 数数数数 不不不不 能能能能 多多多多 于于于于PARAMETERSPARAMETERSPARAMETERSPARAMETERS参数参数参数参数 表中所列参数的个数。表中所列参数的个数。表中所列参数的个数。表中所列参数的个数。 d) d) d) d) DODODODO命命命命令令令令所所所所带带带带的的的的参参参参数数数数叫叫叫叫实实实实践践践践参参参参数数数数,PARAMETERSPARAMETERSPARAMETERSPARAMETERS所对所对所对所对 应的叫方式参数。应的叫方式参数。应的叫方式参数。应的叫方式参数。求一个半径等于边长的圆与正方形面积之差。主程序:主程序:STORE 0 TO S1,S2STORE 0 TO S1,S2INPUT “INPUT “输输入半径或入半径或边长边长的的值值: TO A TO ADO YUAN.PRG WITH A,S1DO YUAN.PRG WITH A,S1DO ZHEN.PRG WITH A,S2DO ZHEN.PRG WITH A,S2?S1-S2?S1-S2YUAN.PRGYUAN.PRGPARAMETERS R,SPARAMETERS R,SS=3.14*R2S=3.14*R2RETURNRETURNZHEN.PRGZHEN.PRGPARAMETERS L,SPARAMETERS L,SS=L2S=L2RETURNRETURN【例【例【例【例6.156.156.156.15】STORE 0 TO S1,S2INPUT “输入半径或边长的;值: TO ADO YUAN.PRG WITH A,S1DO ZHEN.PRG WITH A,S2?S1-S2YUAN.PRGYUAN.PRGPARAMETERS R, PARAMETERS R, S SS=3.14*R2S=3.14*R2RETURNRETURNZHEN.PRGZHEN.PRGPARAMETERS L, SPARAMETERS L, SS=L2S=L2RETURNRETURNA ,S2A ,S1主程序:主程序: 注注 意意 1、只只需需当当DO命命令令中中参参数数为为内内存存变变量量时时,子子程程序序的的参参数数才才干干前前往往给给主主程程序序,假假设设参参数数为为常常量量或或表表达达式式时时,子子程程序序的的参参数数值值不不可以前往给主程序。可以前往给主程序。 2、假假设设子子程程序序不不需需求求参参数数时时,DO命命令令也也可以不带参数。可以不带参数。四、子程序的前往四、子程序的前往四、子程序的前往四、子程序的前往 RETURN TO MASTER|TO RETURN TO MASTER|TO RETURN TO MASTER|TO RETURN TO MASTER|TO 阐阐阐阐明:明:明:明: TO MASTER TO MASTER TO MASTER TO MASTER 直接前往到最外直接前往到最外直接前往到最外直接前往到最外层层层层主程序;主程序;主程序;主程序;TO TO TO TO 强强强强迫前往到指定的程序文件。迫前往到指定的程序文件。迫前往到指定的程序文件。迫前往到指定的程序文件。主程序 DO A A.PRG DO B RETUTNB.PRG DO C RETURNTO MASTERC.PRG RETURNTO A主程序主程序CLEARDO A ?“一切程序一切程序执执行行终终了了A.PRG?开场执行开场执行ADO B ?A执行终了执行终了RETURNB.PRG ?开场执行开场执行B DO C?B执行终了执行终了RETURN TO MASTERC.PRG ?开场执行开场执行CRETURN TO A2、过程与过程文件、过程与过程文件 假设将多模块程序中的每个模块主程序,子程序或自定义函数分别保管为一个独立的.PRG文件,那么每执行一个模块就要翻开一个文件,势必会添加运转时间。为此VFP允许在一个.PRG文件中设置多个程序模块,并将主程序以外的每个模块定义为一个过程,即“过程文件,仍以.PRG为扩展名。一、一、一、一、过过过过程的定程的定程的定程的定义义义义 PROCEDURE PROCEDURE PROCEDURE PROCEDURE PARAMETERS PARAMETERS PARAMETERS PARAMETERS RETURN RETURN RETURN RETURN说说 明:明: a) a) 每每个个过过程程均均以以PROCEDUREPROCEDURE开开场场,以以RETURNRETURN终终了了。每每个个过过程程实实践践上上是是一一个个独独立立的的子子程程序序或或一一个个用户定义函数。用户定义函数。 b) b) PROCEDURE PROCEDURE 用用于于过过程程的的第第一一条条语语句句,它标识了每个过程的开场,同时定义了过程名。它标识了每个过程的开场,同时定义了过程名。 c) c) 过过程程假假设设以以RETURN RETURN 作作为为终终了了语语句句,那那么么该该过过程程既既可可用用DO DO 的的方方式式执执行行,又又可可当当做做一一个个合合法法的的自自定定义义函函数数,可可供供随时调用。随时调用。将子程序中的例题改为过程。STORE 0 TO S1 ,S2INPUT “输入半径或边长的值: TO ADO YUAN WITH A , S1DO ZHEN WITH A , S2?S1-S2PROCEDURE YUANPARAMETERS R , S S=3.14*R2RETURNPROCEDURE ZHENPARAMETERS L , S S=L2RETURN12【例【例【例【例6.166.166.166.16】【例【例【例【例6.176.176.176.17】写出以下程序的运转结果。SET TALK OFFA=10B=8DO SUBB WITH A , BSET TALK ON RETURNPROCEDURE SUBB PARAMETERS X , Y ?X,Y STORE 25 TO X X=302*SQRT(X) Y=Y+X ?X,YRETURN结果为: 820 28二、过程文件二、过程文件二、过程文件二、过程文件 一个过程可以以文件方式单独存在,也可以一个过程可以以文件方式单独存在,也可以一个过程可以以文件方式单独存在,也可以一个过程可以以文件方式单独存在,也可以将多个过程合并到一个过程文件。将多个过程合并到一个过程文件。将多个过程合并到一个过程文件。将多个过程合并到一个过程文件。 过程文件是把多个过程集中起来用一个文件过程文件是把多个过程集中起来用一个文件过程文件是把多个过程集中起来用一个文件过程文件是把多个过程集中起来用一个文件的方式存储在磁盘上,要调用其中的过程,必需的方式存储在磁盘上,要调用其中的过程,必需的方式存储在磁盘上,要调用其中的过程,必需的方式存储在磁盘上,要调用其中的过程,必需先翻开该过程文件。先翻开该过程文件。先翻开该过程文件。先翻开该过程文件。 格格 式:式:SET PROCEDURE TO SET PROCEDURE TO 功功 能:翻开过程文件。能:翻开过程文件。 【例【例【例【例6.186.186.186.18】用过程文件实现求一个半径等于边长的圆与正方形面积之差的问题。 *Main.prg *Main.prgCLEARCLEARSET TALK OFFSET TALK OFFSET PROCEDURE TO sub &SET PROCEDURE TO sub &翻开翻开过过程文件程文件sub.prgsub.prgSTORE 0 TO s1,s2STORE 0 TO s1,s2INPUT “INPUT “输输入半径或入半径或边长边长的的值值: TO a: TO aDO yuan WITH a,s1 &DO yuan WITH a,s1 &调调用用过过程文件中的程文件中的过过程程yuanyuanDO zhen WITH a,s2 &DO zhen WITH a,s2 &调调用用过过程文件中的程文件中的过过程程zhenzhen?s1-s2?s1-s2SET TALK ONSET TALK ONRETURN RETURN * *过程文件过程文件sub.prgsub.prgPROCEDURE yuan &PROCEDURE yuan &过程过程yuanyuan PARAMETERS r,s PARAMETERS r,s s=3.14*r2 s=3.14*r2RETURNRETURNPROCEDURE zhen &PROCEDURE zhen &过程过程zhenzhen PARAMETERS i,s PARAMETERS i,s s=i2 s=i2RETURN RETURN 3、自定义函数、自定义函数 一、自定一、自定一、自定一、自定义义义义函数的定函数的定函数的定函数的定义义义义 FUNCTION FUNCTION FUNCTION FUNCTION PARAMETERS PARAMETERS PARAMETERS PARAMETERS RETURN RETURN RETURN RETURN 假设运用FUNCTION语句来指出函数名,表示该函数包含在调用程序中;假设缺省,那么表示此函数是一个独立文件,函数名在定义文件名时确定。RETURN用于前往函数值,只能前往一个值。假设缺省该语句那么前往值为.T.。 自定义函数与系统函数调用方法一样: 函数名() 【例【例【例【例6.196.196.196.19】将子程序中的例题改为自定义函数。CLEARS=0INPUT “输入半径或边长的值: TO A?YUAN(A)-ZHEN(A)FUNCTION YUAN PARAMETERS R S=3.14*R2RETURN SFUNCTION ZHEN PARAMETERS L S=L2RETURN S【例【例【例【例6.206.206.206.20】 定义一个判别n能否是素数的函数,然后调用该函数求21000内的全部素数。分析:分析: a) a) 素素数数也也叫叫质质数数,它它是是大大于于1 1且且除除了了1 1和和它它本本身之外,不能被其他任何整数所整除的整数。身之外,不能被其他任何整数所整除的整数。 b) b) 为为了了判判别别某某数数n n能能否否是是素素数数,一一个个最最简简单单的的方方法法是是用用2345n-12345n-1这这些些数数逐逐个个去去除除n n,看看能能否否除除尽尽,假假设设全全都都除除不不尽尽,那那么么n n是是素素数数,否否那那么么,只只需需其其中中一一个个数数除除尽尽了了,那那么么n n不不是是素素数数。为为了了减少除的次数,提高运减少除的次数,提高运转转效率,除到效率,除到n n开方即可。开方即可。程序:程序: *此子程序判别n能否是素数FUNCTION PRIMEPARAMETERS NFLAG=.T.K=INT(SQRT(N)J=2DO WHILE J=K AND FLAG IF MOD(N,J)=0 FLAG=.F. ENIF J=J+1ENDDORETURN FLAG*main.prg调用该函数求21000内的全部素数。CLEARFOR M=2 TO 1000 IF PRIME(M) ?M ENDIFENDFOR4、内存变量的作用域、内存变量的作用域一、全局变量一、全局变量 PUBLIC PUBLIC 功能:声明并建立全局变量。功能:声明并建立全局变量。阐明:阐明: a) a) 一旦定义可供一切的程序,模块运用。一旦定义可供一切的程序,模块运用。 b) b) 在命令窗口定义的变量是全局变量。在命令窗口定义的变量是全局变量。 c) c) 程序执行完后不会自动去除。程序执行完后不会自动去除。假设以内存变量的作用域分类,可分为以下三种: 全局变量、部分变量、隐藏部分变量 *TEMP.PRG PUBLIC I I=2 ?执行TEMP1前的I:,I DO TEMP1 ?执行TEMP1后的I:,I*TEMP1.PRG*TEMP1.PRG I=I+4 I=I+4 ?TEMP1 ?TEMP1中的中的I:,II:,I 结结果:果: 执执行行TEMP1TEMP1前的前的I I:2 2 TEMP1 TEMP1中的中的I I:6 6 执执行行TEMP1TEMP1后的后的I I:6 6【例【例【例【例6.216.216.216.21】二、部分变量二、部分变量 在在程程序序中中定定义义的的变变量量,假假设设没没带带PUBLICPUBLIC声声明明, ,它它只只能能在在定定义义它它的的程程序序及及其其下下级级程程序序中中运运用用,一一旦旦定义它的程序运转终了,它便自动被去除。定义它的程序运转终了,它便自动被去除。例:*MAIN.PRG R=100 DO SUB ?P RETURN*SUB.PRG *SUB.PRG P=2*3.14*R P=2*3.14*R RETURN RETURN结结果果:由由于于P P是是在在子子程程序序中中的的部部分分变变量量,退退出出子子程程序序后后自自动动被被去去除除,那那么么在在主主程程序序中中输输出出P P的的值值时时出出现现变变量量P P未定未定义义的的错误错误。 三、隐藏内存变量三、隐藏内存变量 PRIVATE PRIVATE 功能:声明并隐藏上级模块中的同名变量。功能:声明并隐藏上级模块中的同名变量。阐阐明明:a) a) 对对PRIVATEPRIVATE中中内内存存变变量量的的修修正正并并不不影影响响上上级级程程序序中中与与之之同同名名的的内内存存变变量量的的值值。此此命命令令只只对对本本级级程程序序及及以以下下各各级级子子程程序序有有效效,当当前前往往到到上上级级程程序序时时,被被PRIVETEPRIVETE隐藏的当前程序中的内存变量自动删除。隐藏的当前程序中的内存变量自动删除。 b) b) 在在它它们们被被隐隐藏藏期期间间,程程序序就就不不能能再再调调用用这这些些被被隐隐藏藏的的上上级级内内存存变变量量,但但实实践践上上它它们们依依然然存存在在,一一旦旦含含有有PRIVATEPRIVATE内内存存变变量量的的程程序序终终了了后后,被被PRIVATEPRIVATE隐隐藏藏起起来来的的那那些些以以前前建建立立的的同同名名的的上上级级内内存存变变量量自自动动恢恢复复以以前前的的内内容和形状。容和形状。 R=100 P=10 DO SUB ?P RETURN PROCEDURE SUB PRIVATE P P=2*3.14*R RETUEN结结果果:在在过过程程SUBSUB中中用用PRIVATEPRIVATE命命令令隐隐藏藏了了主主程程序序中中定定义义的的全全局局变变量量P P,并并重重新新对对P P赋赋值值,前前往往主主程程序序时时,P P恢恢复复以前的值,即输出以前的值,即输出1010。优优点点:使使得得在在开开发发大大型型运运用用程程序序时时,在在不不同同层层次次的的程程序序中中可可以以运运用用同同名名内内存存变变量量而而不致发生混乱。不致发生混乱。【例【例【例【例6.226.226.226.22】5、数据传送、数据传送 调用子程序时,调用程序要把数据传送给子程序,子程序也能够把数据传回到调用程序,因此在调用子程序过程中,必然要思索调用程序和被调用程序之间的数据是如何传送的。 调用子程序时的数据传送可以经过两种方式处理:a)a)利用变量的作用域实现数据传送利用变量的作用域实现数据传送例:*MAIN.PRG gao=8 kuan=6 c=0 DO SUB ?c return*SUB.PRG*SUB.PRG c=gao*kuan c=gao*kuan RETURN RETURN结果为:48b)b)利用参数实现数据传送利用参数实现数据传送 利用这种方式传送数据,子程序具有更大的独立性。编写子程序时,用PARAMETERS命令来阐明将要输入、输出的变量;用DO命令来提供输入值和接受输出结果。 参数传送有两种方式:值传送和地址传送。值值传传送送:子子程程序序中中参参数数变变化化后后的的值值不不回回传传各各上上级级调调用用程程序序。常常量量和和表表达达式式只只能能运运用用值值传传送送方方式式。运运用用值值传传送方式的变量要用括号括起来。送方式的变量要用括号括起来。地地址址传传送送:子子程程序序中中参参数数变变化化后后的的值值要要回回传传各各上上级级调调用用程程序序。内内存存变变量量既既可可运运用用值值传传送送方方式式,又又可可用用地地址址传送。运用地址传送方式的变量不加括号。传送。运用地址传送方式的变量不加括号。写出以下程序的输出。SET TALK OFFX=1Y=3DO SUB WITH X , (Y) , 5?X , YRERURNPROCEDURE SUBPARAMETERS A , B , C A=ABC B=ABCRERURN分分析析:程程序序将将3 3个个参参数数传传送送给给过过程程SUBSUB,第第一一个个参参数数X X采采用用地地址址传传送送方方式式,变变量量A A的的变变化化将将引引起起X X的的变变化化;第第二二个个参参数数Y Y采采用用值值传传送送方方式式,B B的的变变化化不不引引起起Y Y的的变化;第三个参数是常数,最后输出为变化;第三个参数是常数,最后输出为9 39 3。【例【例【例【例6.236.236.236.23】【例【例【例【例6.246.246.246.24】写出以下程序的输出。CLEARA=3B=5?A,BDO PP WITH 3*A , 1*B?A,BRETURNPROCEDURE PPPARAMETERS X , YX=X2Y=Y+1?X , YRETURN 分析:程序将两个表达式传送给过程分析:程序将两个表达式传送给过程PPPP,它们都采,它们都采用值传送方式,用值传送方式,X,YX,Y的变化不引起的变化不引起A,BA,B的变化,那么的变化,那么输出结果为输出结果为 3 5 6 3 5思索:将其改为思索:将其改为B B,结果能否一样?,结果能否一样?A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(x+B2E6H9KcOfRfRjUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#rTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t&w*w-z1D4G7JbMeQhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcB2E5H9KcNfRiUmXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmXp!s&w)z0C4F7IaM7JaMdPhSkVnZq$u*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*w-A1D5G8JbNeQhTlWbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdOdPgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号