1 / 77

第八章 VF程序设计基础

第八章 VF程序设计基础. 点击播放. 上一页. 下一页. 要点. 教学目标、 重点 、 难点. 教学目标. 理解程序设计相关的基本概念; 掌握面向过程结构化程序设计基本方法; 学会应用编程处理实际问题的方法、步骤。. 难点. 重点. 运用所学程序设计知识,编写程序处理实际问题. 程序的基本结构(尤其是循环结构). 上一页. 下一页. 要 点. 1. 基础知识回顾. 1. 运算符与表达式.

mendel
Download Presentation

第八章 VF程序设计基础

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第八章VF程序设计基础 点击播放

  2. 上一页 下一页 要点

  3. 教学目标、重点、难点 教学目标 • 理解程序设计相关的基本概念; • 掌握面向过程结构化程序设计基本方法; • 学会应用编程处理实际问题的方法、步骤。 难点 重点 运用所学程序设计知识,编写程序处理实际问题 程序的基本结构(尤其是循环结构) 上一页 下一页 要 点

  4. 1. 基础知识回顾 1. 运算符与表达式 算术运算:+、-、*、/、% 、**(或^)连接运算:直接连接+、移尾空连接-日期、日期时间运算关系运算:$ 字符串间包含关系逻辑运算:非NOT(或!)、与AND、或OR 上一页 下一页 要 点

  5. 1. 基础知识回顾 2、运算符的优先级 3、表达式的分类 ①数值型表达式②字符型表达式③日期型表达式④关系表达式⑤逻辑表达式 上一页 下一页 要 点

  6. 2. 程序与文件 VFP提供了三种工作方式 • 命令方式 • 菜单方式 • 程序文件方式 程序设计方法 • 面向过程的程序设计 • 面向对象的程序设计 上一页 下一页 要 点

  7. 2.程序与文件 VFP程序是一系列指令集合, 文件扩展名为.prg。   1. 程序文件的建立与修改: 格式:MODIFY COMMAND <文件名> 2. 程序文件的执行: 格式:DO <文件名> 注意:DO命令默认运行 .PRG程序,如果要运行其它程序,文件名中需包括扩展名。 上一页 下一页 要 点

  8. 2.程序与文件 程序书写基本规则 上一页 下一页 要 点

  9. 2.程序与文件 输入输出命令 上一页 下一页 要 点

  10. 2.程序与文件 非格式化输出语句 ?、?? 可以通过SET CONS OFF/ON 来关闭/打开屏幕回显或输出。 格式化输出语句 格式:@ <行,列> SAY <表达式> [FUNCTION<功能符>][PICTURE<格式符>] 上一页 下一页 要 点

  11. 2.程序与文件 文本输出语句 格式:TEXT<输出显示内容>ENDTEXT功能:在屏幕上原样显示TEXT和ENDTEXT之间的内容。说明: TEXT与ENDTEXT是一条语句,不能省略其中任一子句。 上一页 下一页 要 点

  12. 2.程序与文件 清屏语句 语句格式: CLEAR功能:清除屏幕上的所有显示内容,光标回到屏幕坐上角。 上一页 下一页 要 点

  13. 2.程序与文件 注释语句 语句格式1 : NOTE <注释内容)语句格式2:*(注释内容)语句格式3:&&(注释内容)功能:在程序中加入说明性的语句。说明:这三条语句加在程序中,系统并不执行。在程序中加入注释语句可提高程序的易读性。语句1一般放在程序之首,语句2和语句3则放在语句之后。 上一页 下一页 要 点

  14. 2.程序与文件 • RETURN:使程序执行结束并返回到调用它的上级程序继续执行,若无上级程序则返回到命令窗口。RETURN命令允许缺省。 • CANCEL:能使程序运行终止,清除程序的私有变量并返回到命令窗口。 • QUIT:终止程序运行返回到WINDOWS(不会出现数据丢失或打开的文件被破坏等情况,还会自动删去磁盘中的临时文件)。 结束语句 上一页 下一页 要 点

  15. 例1:鸡兔共笼,已知鸡兔的总头数为H,总脚数为F,求鸡兔各多少只?(算法:X=(4H-F)/2,Y=(F-2H)/2)例1:鸡兔共笼,已知鸡兔的总头数为H,总脚数为F,求鸡兔各多少只?(算法:X=(4H-F)/2,Y=(F-2H)/2) • INPUT [鸡兔总头数] TO hINPUT [鸡兔总脚数] TO f x=(4*h-f)/2y=(f-2*h)/2?'鸡:',x?'兔:',yreturn 3. 程序的基本结构-顺序结构 系统按自上而下的顺序执行程序中的语句。 上一页 下一页 要 点

  16. 分支程序(选择结构)在程序执行过程中,根据一定的条件判断来确定程序走向的一种程序结构。分支程序(选择结构)在程序执行过程中,根据一定的条件判断来确定程序走向的一种程序结构。 分支程序结构一般分为单向选择、双向选择和多向选择三种格式。 3. 程序的基本结构-选择结构 上一页 下一页 要 点

  17. 1、单向选择 语句格式:IF<条件> <语句序列>ENDIF 3. 程序的基本结构-选择结构 上一页 下一页 要 点

  18. note计算圆的面积INPUT “输入圆的半径:” TO RIFR>0 S=PI( )*r^2 ?“圆的面积是:”,sENDIF 3. 程序的基本结构-选择结构 思考:下面程序有问题吗? 上一页 下一页 要 点

  19. 2、双向选择语句格式: IF <条件><语句序列1>ELSE<语句序列2>ENDIF 3. 程序的基本结构-选择结构 上一页 下一页 要 点

  20. 例:计算圆的面积。ClearINPUT “输入圆的半径:” TO RIFR>0S=PI( )*R*R ? "圆的面积是:",SELSE? “圆的半径必须大于0"ENDIFRETURN 3. 程序的基本结构-选择结构 上一页 下一页 要 点

  21. 3、多向选择DO CASECASE<条件表达式1><语句序列1>CASE<条件表达式2><语句序列2>CASE<条件表达式n><语句序列n>OTHERWISE<语句序列n+1>ENDCASE 上一页 下一页 要 点

  22. 3. 程序的基本结构-选择结构 例: 编制显示当前季节程序 • *获取当前月份 • YUE=MONTH(DATE()) • DO CASE • CASEINLIST(YUE,3,4,5) • JJ="春" • CASE INLIST(YUE,6,7,8) • JJ="夏" • CASEINLIST(YUE,9,10,11) • JJ="秋" • CASEINLIST(YUE,12,1,2) • JJ="冬" • ENDCASE • WAIT JJ WINDOW • RETURN 上一页 下一页 要 点

  23. (1) If…EndIf和Do Case…EndCase必须配对使用,Do Case与第一个Case <条件表达式>之间不应有任何命令。 (2) <条件表达式>可以是各种表达式或函数的组合,其值必须是逻辑值。 (3) <命令行序列>可以由一个或多个命令组成,可以是条件控制语句组成的嵌套结构。 (4) Do Case…EndCase命令,每次最多只能执行一个<命令行序列>。在多个Case的<条件表达式>值为真时,只执行首个<条件表达式>值为真的<命令行序列>,然后执行EndCase的后面的第一条命令。 3. 程序的基本结构-选择结构小结 上一页 下一页 要 点

  24. 3. 程序的基本结构-循环结构 在顺序结构和选择结构的程序中,每条语句最多只执行一次,如果要反复执行一段程序,则要使用循环结构程序设计。 上一页 下一页 要 点

  25. 3. 程序的基本结构-循环结构 1. 条件循环 语句格式1:DO WHILE <条件表达式> <语句序列1> ENDDO 上一页 下一页 要 点

  26. 3. 程序的基本结构-循环结构 n=0 s=.F. Do while s=.F. n=n+1 ?"现在圈数是:",n IF n=3 S=.T. &&累了 ENDIF Enddo ?”你可以休息了!” 加油!加油!加油! 1 2 0 3 你可以休息了 开始跑步 上一页 下一页 要 点

  27. 思考:循环体内若没有n=n+1 ,会怎样? 3. 程序的基本结构-循环结构 注意:对跑步者来说,就是要跑无数圈,累死也要跑下去。对于程序而言,若循环条件一直成立,则循环体部分执行无数次,即“死循环”。 什么时候结束呀? 累死我了! 0 开始跑步 上一页 下一页 要 点

  28. 3. 程序的基本结构-循环结构 语句格式2:DO WHILE <条件表达式> <语句序列1> [LOOP] <语句序列2> [EXIT] <语句序列3>ENDDO 上一页 下一页 要 点

  29. 3. 程序的基本结构-循环结构 2. 计数循环 语句格式: FOR <变量>=<初值> TO <终值>[STEP<步长>] <语句序列1>[LOOP] <语句序列2>[EXIT] <语句序列3>ENDFOR 以初值小于终值 步长正值为例 上一页 下一页 要 点

  30. 3. 程序的基本结构-循环结构 • 说明: • 当省略步长值时,系统默认步长为1。当初值小于终值时,步长值为正值;当初值大于终值时,步长值为负值。步长值不能为0,否则造成死循环。 • 在循环体内不要随便改变循环变量的值,否则会引起循环次数发生改变。 • [LOOP]和[EXIT]语句的功能和用法与条件循环中该语句的功能和用法相同。 上一页 下一页 要 点

  31. n=10 for i=1 to n ?”现在的圈数是:”,i Endfor 两种循环对比:换俩人来跑几圈转盘吧! n=0 Do while n<10 n=n+1 ?“现在的圈数是:",n enddo 等效 上一页 下一页 要 点

  32. 3. 程序的基本结构-循环结构实例 思考:编程求下面表达式的值S=1+x-x3/3!+x5/5! ...+(-1)n x2n+1/(2n+1)!(n为无穷大) 注意: 问题求解的过程和步骤叫算法,程序设计的目的是用程序语言来表达算法。 上一页 下一页 要 点

  33. 3. 程序的基本结构-循环结构实例 例:编写计算S=1+2+3+……+100的程序 • S=0 • FOR I=1 TO 100 • S=S+I • NEXT • ?”S=“,S • RETURN 思考: 计算S=100! 计算S=1!+2!+3!+……+100! 上一页 下一页 要 点

  34. 3. 程序的基本结构-循环结构实例 计算S=1+2+…+100,并求其中奇数之和T。 • STORE 0 TO I,S,T • DO WHILE I<100 • I=I+1 • S=S+I • IF INT(I/2)=I/2 • LOOP • ENDIF • T=T+I • ENDDO • ? S,T • IF INT(I/2)<>I/2 • T=T+I • ENDIF 上一页 下一页 要 点

  35. 3. 程序的基本结构-循环结构实例 编程计算S=1+1/2+……+1/100。 • F=1 • STORE 0 TO I,S • DO WHILE I<100 • I=I+1 • S=S+1/I • ENDDO • ? "1+1/2+…+1/100=",S • I=I+2 • S=S+1/I • I=I+2 • F=-F • S=S+(1/I)*F 思考:计算1+1/3+1/5……+1/99? 计算S=1-1/3+1/5-……-1/99呢? 上一页 下一页 要 点

  36. 3、库文件扫描循环 语句格式:SCAN [<范围>][FOR<条件>][WHILE<条件>]<语句序列1>[LOOP] <语句序列2>[EXIT] <语句序列3>ENDSCAN 3. 程序的基本结构-循环结构 上一页 下一页 要 点

  37. 查询GZ表中工资大于350元的女职工的姓名。 USE GZ SCAN ALL FOR 基本工资>350 IF 性别="男" LOOP ENDIF DISP FIEL 姓名,基本工资 ENDSCAN USE 3. 程序的基本结构-循环结构实例 上一页 下一页 要 点

  38. 3. 程序的基本结构-循环结构小结 (1)三种循环:DO WHILE、FOR、SCAN (2)Do While和EndDo、For和EndFor、Scan和EndScan必须配对使用。 (3)循环变量应是数值型的内存变量或数组元素。 (4)注意Loop和Exit的区别,前者是结束本次循环,使执行转向循环语句头部继续循环;后者是结束本层循环,即退出循环,转去执行ENDDO、ENDFOR或ENDSCAN后面的语句。 上一页 下一页 要 点

  39. 3. 程序的基本结构-循环结构 多重循环也称为循环嵌套,是指在一个循环语句内又包含另一个(或多个)循环语句。如: • DO WHILE<条件表达式1> • <命令行序列11> • DO WHILE <条件表达式2> • <命令行序列21> • …… • ENDDO • <命令行序列12> • ENDDO 上一页 下一页 要 点

  40. 【功能】 在多重循环中,首先从外循环进入内循环,执行内循环的语句。当内循环的条件为假时,返回到外循环;当外循环的条件为真时,又进入内循环;否则,退出循环。 【说明】 对循环语句进行以下说明: ①循环嵌套层次不限,但内循环的所有语句必须完全嵌套在外层循环之中。否则,就会出现循环的交叉,造成逻辑上的混乱。 ②循环结构和分支结构允许混合嵌套使用,但不允许交叉。其入口语句和相应的出口语句必须成对出现。 上一页 下一页 要 点

  41. 在审问一起盗窃案的四名疑犯过程中,警察问道:“谁偷的东西?”在审问一起盗窃案的四名疑犯过程中,警察问道:“谁偷的东西?” A说:不是我。 B说:是C。 C说:是D。 D说:他胡说。 已知其中有三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出真正的小偷。 3. 程序的基本结构-实例 问题:谁是小偷? A B C D 上一页 下一页 要 点 41

  42. 思路: 先假设该人是小偷,然后到每句话中去测试看有几句是真话。有三句是真话就确定是该人,否则换下一人再试。如:先假定是A(第一人),让thief=1,代入到四句话中 3. 程序的基本结构-实例 A说:thief!=[A] 1!=1 假 B说:thief==[C] 1=3 假 C说:thief==[D] 1=4 假 D说:thief!=[D] 1!=4 真 显然,不是A 上一页 下一页 要 点 42

  43. 3. 程序的基本结构-实例 再试B,让thief=2,代入到四句话中 A说:thief!=[A] 2!=1 真 B说:thief==[C] 2=3 假 C说:thief==[D] 2=4 假 D说:thief!=[D] 2!=4 真 显然,不是B 再试C,让thief=3 A说:thief!=[A] 3!=1 真 B说:thief==[C] 3=3 真 C说:thief==[D] 3=4 假 D说:thief!=[D] 3!=4 真 因此,答案是C。 上一页 下一页 要 点 43

  44. 3. 程序的基本结构-实例 可以推出,用枚举法去试每个人,若四句话中有三句为真,该人即所求。从编写程序角度看,实现枚举最好用循环结构。 谁是小偷? A B C D 上一页 下一页 要 点 44

  45. 五位校园歌手比赛,赛前让他们预测比赛结果。五位校园歌手比赛,赛前让他们预测比赛结果。 A说:B第二,我第三;B说:我第二,E第四;C说:我第一,D第二;D说:C最后,我第三;E说:我第四,A第一; 成绩公布之后,每位选手的预测都只说对了一半,即一对一错,请问比赛的实际名次。 3. 程序的基本结构-实例 问题:比赛的实际名次? A B C D E 45 上一页 下一页 要 点

  46. 4 过程及过程调用 1.过程概念 在程序设计中,为了有效地解决有些运算或程序段落重复调用的情况,可设计相对独立并能完成特定功能的程序段,这种程序段称为过程或子程序,用于调用程序段的程序称为主程序。 在应用系统的开发中,一般会根据实际的需要将整个系统划分成若干个模块,通常将这些可调用的功能模块也设计成过程或子程序。 上一页 下一页 要 点

  47. 2.过程的建立与调用 建立过程的方法与建立一般程序的方法相同,所不同的是在每个过程中至少要有一个返回语句。 【返回语句】 RETURN [<表达式> | TO <程序名> | TO MASTER] 【功能】返回到调用该子程序的主程序,并执行调用命令下的第一条可执行命令。

  48. 【说明】 在返回语句中: • 选择可选项<表达式>:将表达式的值返回给调用程序。 • 选择可选项[TO<程序名>]:可直接返回指定的程序文件。 • 选择可选项[TO MASTER]:则不论前面有多少级调用而直接返回到第一级主程序。 【调用命令】 DO <过程名> 【功能】执行DO调用命令时,将指定的过程调入内存并执行。 上一页 下一页 要 点

  49. 3.过程文件 过程是作为一个文件独立地存储在磁盘上,为减少磁盘文件的打开次数,可以把多个过程写入到一个过程文件中。过程文件的扩展名仍然是.PRG。 (1)建立过程文件 MODIFY COMMAND <过程文件名> 上一页 下一页 要 点

  50. 过程文件的基本书写格式: PROCEDURE <过程名1> <命令序列1> RETURN PROCEDURE <过程名2> <命令序列2> RETURN …… PROCEDURE <过程名N> <命令序列N> RETURN 上一页 下一页 要 点

More Related