第六章程序设计基础.ppt_第1页
第六章程序设计基础.ppt_第2页
第六章程序设计基础.ppt_第3页
第六章程序设计基础.ppt_第4页
第六章程序设计基础.ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、6.2 程序,6.2.1 程序的概念 6.2.2 程序文件的建立 6.2.3 程序中的输入、输出命令,6.2 .1 程序的概念,定义:完成一定任务的命令的有序集合 例:通过编程查看student表的信息 一、在数据库中运行 open database stsc use student brows use close database,二、在程序文件 1、建立程序文件 2、在文件中输入所有 命令。 3、运行程序,三、程序和命令窗口的区别 1、在程序窗口中,输入完命令,按回车键该条命令就会被执行。 2、在程序中,所以的命令输入完形成程序文件,通过运行程序才能按照程序文件中命令的顺序依次执行。 四、

2、vfp中程序命令的说明 1、程序命令的注释 格式一:note 格式二:* 格式三:”换行。,6.2.1 程序文件的建立与执行,一、程序文件的建立 1、菜单方式 2、命令方式 :modify command (1)若文件名存在,该命令表示修改 (2)若文件名不存在,该命令表示新建 二、程序文件的保存 1、菜单/工具栏 2、快捷键:ctrl+w,三、程序的运行 1、菜单方式 2、工具栏运行按钮 3、命令:do 四、程序执行常用的命令 1、cancel 终止程序运行,返回命令窗口 2、do 转向执行另外一个程序 3、return 结束程序执行,返回调用它的上级程序,若无上级程序则返回命令窗口 4、q

3、uit 退出vf 返回操作系统,6.2.3 简单的输入、输出命令,输入命令:input、 accept、wait 输出命令:?和? 一、input命令 格式:input to 例:input “请输入一个数” to aa 例:编程完成,从键盘输入两个数,求他们的和并输出 clear input 请输入一个数 to a ?a= ?a input 请输入一个数 to b ?b= ?b ?a+b= ?a+b,说明: 1、可以输入字符型、数值型、逻辑型、日期型、日期时间型等类型常量、变量、表达式。 2、输入完成后按回车键结束输入,系统自动将输入的内容赋给 3、输入字符型要使用定界符”,逻辑性使用圆点定

4、界,日期型使用大括号定界,二、accept命令 格式: accept to 例:accept “请输入一串字符串” to c 说明: 1、只接受字符型数据,输入的字符串不需要加定界符 2、如果不输人任何字符直接按回车,则将空串赋给变量,三、wait命令 格式: wait to 例: wait “请输入一串字符串” to c 说明: 1、以窗口的形式显示提示信息,并暂停程序的执行,直到按任意键或单击鼠标后继续执行程序。 2、wait用于接收单个字符且不用按回车键,6.3 程序的结构,6.3.1 顺序结构 6.3.2 选择结构 6.3.3 循环结构,6.3.1 顺序结构,程序结构:程序中命令或语句

5、执行的顺序。 顺序结构:(最基本的) 按照程序命令、语句的书写顺序依次执行的结构 语句1 语句2 语句n 总结:在顺序结构中,程序执行按照语句顺序进行,无任何的分支或重复,例:从键盘输入两个数,交换它们的值,6.3.2 选择结构,当程序执行到某一步时,有多条道路可以选择,但是只能选择期中一条道路,该道路只能执行一次。 选择结构语句:条件语句+分支语句 一、简单的选择结构条件 语句: If 语句序列 Endif 二、一般的选择结构条件 语句:If 语句序列1 Else 语句序列2 endif,例:从键盘输入一个数给a,判断若该数大于0,则显示“a是正数”,否则显示“a是非正数” 1、clear

6、input 请输入一个数: to a if a0 ?a是正数 endif if a0 ?a是负数 Endif,2、clear input 请输入一个数: to a if a0 ?a是正数 else ?a是负数 endif return,三、分支语句 语句格式: Do case Case Case Case otherwise Endcase 后继语句,例:根据学生的成绩显示相应的等级,等级划分如下: 优秀:90100(大于等于90小于100);良好:8090;中等:7080;及格:6070;不及格:60分以下 clear input 请输入成绩: to cj do case case cj=9

7、0 ?优秀 case cj=80 ?良好 case cj=70 ?中等 case cj=60 ?及格 otherwise ?不及格 endcase,例:计算分段函数,F(x)=,2x-1 x=10,clear Input “输入x值: to x Do case Case x0 f=2*x-1 case x3 f=3*x+5 case x5 f=x+1 case x10 f=5*x-3 otherwise f=7*x+2 Endcase ? f(,x,)=,f,9/9,6.2.3 循环结构,也称重复结构,是指程序在执行过程中,某段代码被重复执行若干次。被重复的代码段称之为循环体。 语句结构形式:

8、条件循环、步长型循环和扫描型循环,一、条件循环 语句格式: Do while enddo,例:逐条显示student表中性别为男的所有记录 方法一 clear set talk off set safety off open database stsc use student go top do while not eof()&循环条件 if 性别=男 display endif skip Enddo set talk on set safety on 该方法不仅要判断性别为男的记录,也要判断性别为女的记录,算法不好,程序执行效率慢,方法二:依次访问性别为男的记录,并显示出来,直到访问完(遇到

9、eof()处)为止 clear set talk off set safety off open database stsc use student go top locat for 性别=男 do while not eof()&循环条件 display continue enddo set talk on set safety on,二、步长型循环 根据给定的次数重复执行循环体 语句: For = to step Endfor |next 用于循环次数已知的情况 省略step默认步长为1 若初值终值,步长为正数否则为负数,例:显示1100 之间的整数 clear for i=1 to 10

10、0 step 1 ?i Endfor 例:逆序显示501之间的偶数 clear for i=50 to 2 step -2 ?i endfor,思考题: 1、找出100999间的“水仙花数” “水仙花数”即各位数字的立方和等于本身的三位数。 2、某竞赛有10个评委打分,去掉一个最高分,去掉一个最低分,平均后得出最后得分。编一个求最后得分的程序。,三、扫描型循环 语句格式: scan for while Endscan 注: 1.该命令是将locate和continue结合一起来,执行该语句时,记录指针依次在当前指定范围内满足条件的记录上移动,并对每一条记录执行循环体内的命令,范围默认值是all

11、 2.Scan循环是为操作数据库中表的的记录设计的循环 3.记录指针自动依次按条件移动,例:逐条显示student表中性别为男的所有记录 方法三 clear open database stsc use student scan for 性别=男 display endscan,6.4多模块化程序,把一个大而复杂的程序划分成若干个模块来完成,每个模块完成一个特定的功能,这种方式称为模块化结构。 模块是一个相对独立的程序段,它可以被其他模块所调用,也可去调用其他模块。通常,把被其他模块调用的模块称为子模块,把调用其他模块而没有被其他模块调用的模块称为主程序。应用程序一般包含多个程序模块,所以一般

12、都是多模块程序。 将一个应用程序分解成多个功能相对简单、单一的程序模块,不仅便于程序开发,而且利于程序的阅读和维护。 6.4.1 模块的定义和调用 6.4.2参数传递 6.4.3变量的作用域,6.4.1 模块的定义和调用,1、过程的定义 2、返回语句 3、模块的调用格式,1、模块的定义 命令格式: Proceture|function | 命令序列 return Endproc|endfunc 注: Proceture是过程的入口语句,标识了过程段的开始 Endproc是过程的出口语句,标识了本过程段的结束,2、返回语句 格式:return return后没有表达式,则返回.t.,否则返回表达

13、式的值 3、模块的调用 格式1:do 过程名 格式2:过程名() 注:调用模块文件中的模块时,需要它所在的文件必须处于打开状态。 例: clear ?调用过程 do p1 ?调用完毕 proc p1 ?这是第一个过程 endproc,6.4.2参数的传递,1、参数的定义 2、调用有参数的模块 3、参数的传递规则,1、参数的定义: 格式一:parameters 格式二:lparameters 注:该语句必须是过程的第一条语句,定义多个参数时,用逗号隔开 例:在过程s1定义参数 procedure s1 parameters x,y return x+y endproc,2、调用有参数的模块 格式

14、一:模块名(实参1,实参2,.) 格式二:do 模块名 with 实参1,实参2,. 例: clear input 输入一个数: to a input 输入另一个数: to b c=s1(a,b) ?c 说明:1、形参的数目不能少于实参的数目,否则系统会产生运行时的错误。 2、如果形参的数码多于实参的数目,则多余的形参取初值逻辑假.F.,参数的传递规则: 两种规则:值传递和地址传递 格式一: do with 说明: 若实参为常量或者表达式,则为值传递。 若实参为变量,则为地址传递。若给实参变量加上()则强制转化为值传递 值传递:形参、实参相互独立,形参值的改变不会影响实参的值。 地址传递:形参

15、、实参相互统一,形参变量值的改变会影响原来实参的值。,例: procedure s1 parameters x,y x=x+1 y=y+1 Endproc clear a=2 b=3 do s1 with 2,3 ?a ?b,格式二:模块名(参数列表) 总结:不论实参是值、变量、表达式,均是按值传递,6.4.3变量的作用域,1、全局变量 2、局部变量 3、私有变量,1、全局变量(公共变量):是在任何模块中都可使用的变量,要先建立后使用。 建立命令: Public 注: (1)其初值为.f.,赋值后改变。一旦建立就一直有效,即使程序运行结束返回到命令窗口也不会消失。只有执行clear memory、release、quit 等命令后,才被释放。 (2)在命令窗口中直接使用而由系统自动隐含建立的变量也是公共变量,例: procedure s1 a=a+1 b=b+1 Endproc clear public a,b a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论