第2章-程序设计基础课件

上传人:痛*** 文档编号:241641596 上传时间:2024-07-12 格式:PPT 页数:39 大小:648KB
返回 下载 相关 举报
第2章-程序设计基础课件_第1页
第1页 / 共39页
第2章-程序设计基础课件_第2页
第2页 / 共39页
第2章-程序设计基础课件_第3页
第3页 / 共39页
点击查看更多>>
资源描述
第2章 程序设计基础 引引 言言 VFP的中除了可以对大量数据进行管理之外,还可以处理数据,即借用已有的数据库来创建功能强大的应用程序。而VFP中应用程序的使用方式有三种:菜单方式、命令方式和程序方式。其中菜单方式和命令方式可以处理一些简单的问题,程序方式可以处理更复杂的问题。重要考点提示重要考点提示:n本章考核内容约为6%,主要考核以下几个方面:公共变量、私有变量和局部变量的定义过程调用中参数的传递,主要是形参和实参的传递循环语句的结构及运行结果2.1 2.1 程序与程序文件程序与程序文件n2.1.1 程序的概念n所谓程序,就是能够完成一定任务的命令的有序集合,这组命令被存放在称为程序文件或命令文件的文本文件中。程序方式:先编写程序,后在磁盘建立包含程序代码的程序文件,后运行程序,让系统自动执行程序代码交互式方式:包括立即命令和菜单命令两种,即在命令窗口中逐条输入命令或通过选择菜单调用功能。2.1.2 2.1.2 程序文件的创建与运行程序文件的创建与运行1.程序文件的建立与修改(通过调用系统内置文本编辑器进行)打开文本编辑窗口输入程序内容(在这里输入的内容不会马上执行,只有在程序运行时执行)保存程序文件CTRL+W(程序文件扩展名:.prg)修改/创建程序文件(modify command)2.执行程序文件n菜单方式 程序运行n命令方式:DO 3.程序书写规则n程序中每条命令以回车结尾n一行只能写一条命令,若命令分行写,应在一行结束时输入“;”,然后回车n程序中可插入注释,以“*”开头表示其后的命令仅在程序中显示;命令后也可添加注释,这种注释以符号“&”开头n例1:计算长方形的周长和面积例1:modify command example.prg*设置长方形的长和宽a=5&长方形的宽为5b=10&长方形的长为10s=a*b&长方形的面积p=2*(a+b)&长方形的周长*输出计算结果?周长:“,p?面积:“,s运行程序:do example周长:30面积:502.1.3 2.1.3 常用基本操作常用基本操作n清屏命令清屏命令:CLEAR(清除工作区显示的内容)nINPUTINPUT命令命令(等待用户从键盘输入数据,可输入任意类型数据)n格式:INPUTTOnACCEPTACCEPT命令命令(等待用户从键盘输入字符串,该命令只能接收字符串)n格式:ACCEPTTOnWAITWAIT命令命令(从键盘接收一个字符,然后执行下一句)n格式:WAITTOn WINDOWAT,n TIMEOUT等待秒后,无输入则执行下一条语句n注意:注意:用于显示提示信息,暂停程序的执行,直到用户按任意键或单击鼠标时继续执行。练习n1.在vf中,用来建立程序文件的命令是()A)CREATE COMMAND B)CREATE FILE C)MODIFY FILE D)MODIFY COMMAND 2.在VF中,程序文件的扩展名为()A)PRG B)QPR C)APP D)SCX3.在INPUT、ACCEPT和WAIT三个命令中,必须要以回车键表示输入结束的命令是()A)INPUT、ACCEPT B)INPUT、WAITC)ACCEPT、WAIT D)INPUT、ACCEPT和WAIT2.2 2.2 结构化程序设计结构化程序设计n程序结构是指程序中命令或语句执行的流程结构。n主要有三种结构:顺序结构、选择结构和循环结构。2.2.1 顺序结构(最基本、简单、常用的结构)始终按照语句排列的先后顺序,一条接一条地依次执行。2.2.2 选择结构 支持选择结构的语句包括条件语句(IF-ENDIF)和(DO CASE-ENDCASE)例5:求半径为5的圆面积1.1.简单形式的条件语句简单形式的条件语句n格式:n IF ENDIF语句功能:当条件成立时,执行IF和ENDIF 之间的;反之,执行ENDIF后 面的语句。语句行条件为真?语句序列1ENDIF后面的语句YN简单条件语句流程图例6:2.2.一般形式的条件语句一般形式的条件语句n格式:nIF ELSE ENDIF语句功能:当条件成立时,先执行,然后再去执行ENDIF后面的语句;反之,先执行,然后再转去执行ENDIF后面的语句。语句行条件为真?语句序列1ENDIF后面的语句Y语句序列2N一般条件语句流程图使用时注意:IF和ENDIF必须成对出现;条件语句可以嵌套,但不能交叉例2:例8:方法一:ninput 输入成绩:to anif a60n?不及格nelsen if a90n?通过n elsen?优秀n endif nendif例8:根据输入的成绩,显示相应的成绩等级方法二:input input 输入成绩输入成绩:to a:to ado casedo case case a60 case a60?不及格不及格 case a90 case a90?通过通过 otherwise otherwise?优秀优秀 endcaseendcase例2:从键盘输入一整数,判断从键盘输入一整数,判断X X是否是偶数,若是则输出是否是偶数,若是则输出X X是偶数;否是偶数;否则输出则输出X X是奇数是奇数input x=to xif mod(x,2)=0?x是偶数else?x是奇数endif3.3.多分支语句多分支语句n格式:DO CASE CASE CASE CASE OTHERWISE ENDCASE 用于多个判断条件,可根据条件从多组代码中选择一组执行注意:nDO CASE和ENDCASE必须成对出现;n若所有CASE条件不成立,且没有OTHERWISE子句,则直接跳出本结构n不管有几个条件成立,只有最先成立的那个CASE条件的对应命令序列被执行。例8:2.2.3 2.2.3 循环结构循环结构1.DO WHILE-ENDDO语句(先判断后执行)格式:DO WHILE LOOP&跳转语句,该语句中断本次循环体的执行,跳回到 DO WHILE的开始处,重复对条件的判断。EXIT&出口语句,该语句功能为立即跳出循环体,执行循环 体后面的代码。ENDDO语句功能:当条件成立时,始终执行命令序列;否则执行ENDDO后面的语句。即重复结构,是指程序在执行过程中,其中的的某段代码被重复执行若干次。被重复执行的代码段,称为循环体。例9:例10:例9:计算S=1+2+3+100ns=0ninput n1=to aninput n2=to bndo while a=bns=s+ana=a+1nenddon?s=,ss=0n=1do while n=100s=s+nn=n+1enddo?s=,s2.FOR-ENDFOR语句(用于实现循环次数已知情况下的循环结构)先判断后执行格式:FOR TO STEP LOOP&用于转到FOR语句继续执行循环 EXIT&用于跳出循环,转到ENDFOR后面命令执行 ENDFOR语句功能:循环过程是首先将初值赋予循环变量,每当执行一次循环,循环变量增加一个步长,直到循环变量大于终值时结束循环。例11例11.计算S=2+4+6+100ns=0nfor n=2 to 100 step 2ns=s+nnendforn?s=,s3.SCAN-ENDSCAN语句(也称为扫描循环语句,用于处理表中记录)格式:SCANFORWHILE LOOP EXIT ENDSCAN语句功能:执行该语句时,记录指针自动、依次地在当前表地指定范围内满足条件地记录上移动,对每一条记录执行循环体内的命令。例12use 学生信息scan for 性别=男?学号,姓名 replace 年龄 with 年龄+5endscan例12.在学生信息表中,对男生显示其学号、姓名,并将年龄加5岁例10:对成绩管理表,统计其中成绩及格的学生人数nuse 成绩管理ns=0ndo while.t.n if eof()n exitn endifn if 成绩60n skipn loopn endifn s=s+1n skipnenddon?sDo while.not.Eof()练习n1.结构化程序设计的3种基本结构是()A)顺序结构、选择结构和模块结构 B)选择结构、循环结构和模块结构C)顺序结构、循环结构和模块结构D)顺序结构、选择结构和循环结构2.在vf种,条件语句属于()A)顺序结构 B)选择结构 C)循环结构 D)模块结构3.下列关于DO CASE-ENDCASE语句说法不正确的是()A)DO CASE和ENDCASE必须成对出现 B)只要CASE条件成立,就执行这个CASE条件对应的命令序列C)所有的CASE条件都不成立且没有OTHERWISE语句,则直接跳出本结构,执行ENDCASE后面的语句D)在DO CASE和第一个CASE之间的任何语句都不被执行4.在DO WHILE循环语句中,如果条件永远为真,则利用下列()语句可以退出此循环体。A)LOOP B)EXIT C)CLOSE D)QUIT练习5.在循环结构程序设计中,在指定范围内扫描数据表文件,查找符合条件的记录并执行循环体中的命令,应使用的循环结构为()A)SCAN-ENDSCAN B)FOR-ENDFORC)DO WHILE-ENDO D)DO CASE-ENDCASE2.3 多模块模块程序概念模块是相对独立的程序段,它可以被其他模块调用,也可以调用其他模块。子程序:子程序:被被其他模块调用调用的模块。主程序:主程序:调用其他调用其他模块而没有被其他模块调用的模块。1.1.模块的定义模块的定义n格式:nPROCEDURE|FUNCTION&(过程开始)n nRETURN&(过程返回)nENDPROC|ENDFUNC&(过程结束)注意:注意:过程名必须必须以字母或下划线开头,可以包含数字、字母和下划线 若若RETURN不带不带,则返回逻辑真,则返回逻辑真.T.2.模块的调用n格式(两种):n 1)使用DODO命令n DO DO|n 2)在名字后加一对小括号n|()()3.打开过程文件SET PROCEDURE TO,。ADDITIVE4.关闭过程文件SET PROCEDURE TORELEASE PROCEDURE,。5.5.参数传递参数传递模块程序可以接收调用程序传递过来的参数。模块程序可以接收调用程序传递过来的参数。PARAMETERSPARAMETERS,2,LPARAMETERSLPARAMETERS,2,说明:说明:PARAMETERSPARAMETERS声明的形参被看作是模块程序中建立的声明的形参被看作是模块程序中建立的私有变量私有变量LPARAMETERSLPARAMETERS声明的形参被看作是模块程序中建立的声明的形参被看作是模块程序中建立的局部变量局部变量。6.6.调用参数调用参数n格式格式:ndodo|with with,n|(,)n注意注意:n 1)1)实参可以是变量、常量或一般表达式实参可以是变量、常量或一般表达式n 2)这里的实参应与被调过程的形参在数目、次序和类型上n 一一对应n 3)形参数目不能少于不能少于实参数目,当形参数目多于多于实参数目n 时,多余的形参取初值逻辑假.F.F.2.2.参数传递方式参数传递方式(值传递和引用传递方式两种值传递和引用传递方式两种)值传递方式值传递方式:传递值传递值,被调被调程序修改改,主调主调程序不变不变 (实参一般为常量和表达式)(实参一般为常量和表达式)引用传递方式引用传递方式:传递地址传递地址,被调被调程序改变变变量,主调主调程序也变变 (实参一般为变量)(实参一般为变量)格式:格式:SET UDFPARMS TO VALUE|REFERENCESET UDFPARMS TO VALUE|REFERENCEnSet talk off&Set talk off&命令的操作结果不显示命令的操作结果不显示nClearClearnSet Set udfparmsudfparms to value&to value&设置为值传递方式设置为值传递方式ni=10i=10n?”函数返回值函数返回值=“,test(itest(i)15 10)15 10n?”变量值变量值=”,i,inSet Set udfparmsudfparms to reference&to reference&设置为引用传递方式设置为引用传递方式ni=10i=10n?”函数返回值函数返回值=”,test(itest(i)n?”变量值变量值=”,i,inFunction test&Function test&函数定义函数定义nParameters xParameters xnx=x+5 15 x=x+5 15 1515nReturn x Return x 8.8.变量的作用域变量的作用域n根据内存变量的作用域根据内存变量的作用域,可分为可分为全局变量全局变量和和局部变量局部变量.n1)1)全局变量全局变量:在程序运行期间在程序运行期间,在在任何任何程序和过程中都可以程序和过程中都可以n 使用的内存变量使用的内存变量.n 格式格式:PUBLIC PUBLIC n 功能:功能:n 建立公共的内存变量,并赋以初值建立公共的内存变量,并赋以初值.f.f.,建立好后一直有效,即使程序建立好后一直有效,即使程序结束返回命令窗口也不会消失。结束返回命令窗口也不会消失。n2)2)局部变量局部变量:只能在只能在建立它的模块中使用建立它的模块中使用,不能在上层或下层模块中使,不能在上层或下层模块中使用用.程序结束时,自动释放局部变量。程序结束时,自动释放局部变量。n格式:格式:LOCALLOCAL n3)3)私有变量:私有变量:在程序中直接使用而由系统自动隐含建立的变量在程序中直接使用而由系统自动隐含建立的变量。n 作用域作用域是建立它的模块及其下属的各层模块是建立它的模块及其下属的各层模块n4)PRIVATE4)PRIVATE语句语句:可使子程序的变量与主调程序中的变量同名可使子程序的变量与主调程序中的变量同名.n格式格式1 1:PRIVATE:PRIVATE n格式格式2 2:PRIVATE ALL LIKE:PRIVATE ALL LIKE|EXCEPT|EXCEPT n说明:说明:该命令并不建立内存变量,它只是该命令并不建立内存变量,它只是隐藏隐藏指定的在指定的在上层模块中上层模块中可能可能已经存在的内存变量已经存在的内存变量,但是当模块程序返回上层模块时,被隐藏的变量,但是当模块程序返回上层模块时,被隐藏的变量就自动恢复有效性,保持原值。就自动恢复有效性,保持原值。示例:nSet talk off procedure proc1 na=1 public cnb=2 private a,b,xnSet procedure to pm a=10nDo proc1 b=20nx=a+b+c c=30n x=a+b+cn?”p1程序中的a=”,a n?”p1程序中的b=”,b?”proc1程序中的a=”,a n?”p1程序中的c=”,c?”proc1程序中的b=”,bn?”p1程序中的x=”,x?”proc1程序中的c=”,cnSet procedure to?”proc1程序中的x=”,xnSet talk on returnnReturn例例1 1:有如下程序:有如下程序:local x1local x1?x1?x1do p1do p1procedure p1procedure p1x1=1x1=1?x1?x1returnreturnendprocendproc执行程序的结果为(执行程序的结果为(.f.1.f.1)例例2 2:有如下程序:有如下程序:*main.prgmain.prg*set talk off set talk off clear clear a=5 a=5 b=10 b=10 do sub do sub?a,ba,b 15 10 15 10 return return*sub.prgsub.prg*private b private b a=15 a=15 b=20 b=20?a,ba,b 15 20 15 20 return return 练习n1.在vf中,根据变量的作用域来分,内存变量可分为()A)字段变量和内存变量 B)公共变量和私有变量C)公共变量和局部变量D)公共变量、私有变量和局部变量2.在某个程序模块中用private语句定义的内存变量()A)可以在该程序的所有模块中使用B)只能在定义该变量的模块中使用C)只能在定义该变量的的模块及其上层模块中使用D)只能在定义该变量的的模块及其下属模块中使用3.只能被本层模块调用,而不能被上层模块获下层模块调用的变量类型是()A)公共变量 B)私有变量 C)局部变量 D)局部变量和私有变量4.通过public命令建立内存变量,系统默认的内存变量初值为()A).t.B).f.C)0 D)1
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!