资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2020/11/5,*,#,第三章 程序的建立和执行方法,书本:第31页,知识目标:,1、创建、修改和执行程序文件,2、程序流程语句,1、创建、修改和执行程序文件,1、建立程序方法,2、修改程序文件,3、运行程序文件,例 3.1,新建一个程序文件:p1.prg,实现从键盘上任意输入3个数,求它们的和以及平均值并且显示结果。,程序代码:,input请输入第一个数:to A,input请输入第二个数:to B,input请输入第三个数:to C,?A+B+C=,A+B+C,?(A+B+C)/3=,(A+B+C)/3,2、程序流程语句,程序的结构分为3种:顺序、分支、循环,1、顺序结构:是指程序的执行顺序是按照语句的排列顺序,由上到下,一次执行。,(如下图),输出语句1,输出语句2,输出语句3,2、程序流程语句,2、分支结构:是指按照某种条件的判断结果来决定程序的执行走向,当条件成立时执行某个程序段,当条件不成立时执行另一程序段或者什么也不执行。,(如下图),输出语句1,判断语句,输出语句2,输出语句3,yes,no,2、程序流程语句,3、循环结构:是指根据条件的结果重复执行若干次某个程序段。,(如下图),输出语句1,判断语句,输出结果,结束,条件分支控制语句-if语句,(1)if语句,格式:,if,逻辑表达式,then,语句组 1,else,语句组 2,endif,备注:执行过程,当逻辑表达式的值为真时,执行语句组1;否则,执行语句组2。其中else部分可以省略的,如果省略else部分,当逻辑表达式为真时,将会执行语句组1,否则不执行任何操作。,例3.3 if 语句,键盘输入任意一个分数,如果60分以上,则显示成绩是合格的,否则显示成绩是不合格的,请继续努力。,程序如下:,input,请输入成绩:,to,A,if,A=60,then,?成绩是合格的,请继续加油!,else,?成绩不合格,请继续努力吧!,endif,输出结果:见vf,例3.4 if 语句,题目:判断输入的数是正数、负数还是零。,程序如下:,input,请输入任意的数:,to,A,if,A=0,then,?你输入的数字是0,else,if,A0,then,?你输入的数字大于0,else,?你输入的数字小于0,endif,endif,输出结果:见vf,例3.5 if语句,题目:读取学生基本信息表中的数据,判断当前记录中的性别字段,输出相应的提示信息。,程序:,SET default to,J:VFP教学用课件Visual FoxPro 7.0教学课件金山信息技术学校学生信息表,&设置默认值 或用set path to(设置默认路径),use,学生基本情况.dbf,IF,性别=男,?姓名+是男同学,ELSE,?姓名+是女同学,ENDIF,use,程序运行结果:,郭小名 是男同学,例 3.6 if语句实例,题目:,使用if语句对输入的成绩进行“优秀”,“良好”,“中等”,“及格”,“不及格”的评定。,程序如下:,input请输入成绩:to A,if A=90,?你的成绩优秀,else,if A=80,?你的成绩良好,else,if A=70,?你的成绩中等,else,if A=60,?你的成绩及格,else,?你的成绩不及格,endif,endif,endif,endif,程序运行结果:,见vfp7.0,if语句在flash动画制作中的运用,1、简单 loading,(进度加载),代码:,方法 1、使用载入字节数判断,b=getBytesTotal();/获取总的字节数,a=getBytesLoaded();/已经下载的字节数,onEnterFrame=function()/进入帧时,进行判断,if(a=b),/如果载入的字节数等于总的字节数,delete this.onEnterFrame/删除进入帧,gotoAndPlay(frame);/转入到你要播放的帧,else,/否则,a=getBytesLoaded();/已经下载的字节数,percent=int(a/b*100)+%;/计算已经下载的百分比,if 语句总结,用法:程序中的判断运算。,用途:,广且多,例如:1、通关游戏中的通关设置,(游戏类),2、学校学生成绩达不达标判断,(教育类),3、通信系统中打电话收取电话费,(商业类),缺点:一般只用于2-4种结果的判断,语句重复较多,input请输入成绩:to A,if A=90,?你的成绩优秀,else,if A=80,?你的成绩良好,else,if A=70,?你的成绩中等,else,if A=60,?你的成绩及格,else,?你的成绩不及格,endif,endif,endif,endif,5,种结果需要重复写,4,次if else语句,愤怒的小鸟游戏分析,分数达到20000分过第一关,if score=20000,进入第二个,else,重新开始,if.else.endif语句一般适用于有两三种可能的情况需要判断,若要判断多种可能的情况,do case.endcase结构将比使用多个if语句方便。,do case语句格式:,do case,case,逻辑表达式1,语句组1,case,逻辑表达式2,语句组2,.,case,逻辑表达式n,语句组n,otherwise,语句组n+1,endcase,条件分支控制语句-do case语句,备注:当case后面的逻辑表达式的值为“值”时,执行该case后面的语句组;如果所有case后面的逻辑表达式的值为“假”时,则执行otherwise后面的语句组。,例3.7 do case语句,题目:,使用do case语句对输入的成绩进行“优秀”,“良好”,“中等”,“及格”,“不及格”的评定。比较一下if语句和do case语句的各自的优点。,程序代码:,input 请输入分数:to A,do case,case A=90,?成绩优秀,case A=80,?成绩优良,case A=70,?成绩中等,case A=60,?成绩及格,otherwise,?成绩不及格,endcase,程序运行结果:,见vfp7.0,上机练习题:,1、使用,if 语句,对“学生基本情况表”中的专业(计算机/会计)进行判断。(表如下图),2、使用,if 语句,对输入学生成绩进行A/B/C/D/E,(A:90分以上,B:80分以上,C:70分一上,D:60分以上,E:60分以下),五个级别的判断。,3、使用,do case 语句,对输入的岁数进行出生年份的计算(只需计算出1420岁之间的年份,20岁是1993年出生,14岁是1999年,以此类推)。,学生基本情况表(1),循环结构控制语句,scan,(1)scan语句,scan语句格式:,scanscopefor 逻辑表达式1where(while)逻辑表达式2,语句组,loop,exit,endscan,备注:scan语句是一个循环次数由数据表中记录条数决定的特殊的循环,每次执行完循环体内的语句组后,表中的记录指针自动移向下一条记录,重复执行循环体内的语句,直到表文件尾。,例子3.10:scan语句,题目:输出D学生的总分,程序:,input 请输入语文分数:to A,input 请输入数学分数:to B,input 请输入英语分数:to C,D=0,scan,D=A+B+C,endscan,?该学生的总分为:,D,程序运行结果:,见vfp7.0,例3.8 scan语句,题目:在屏幕上输出学生的基本信息,程序代码:,use J:VFP教学用课件Visual FoxPro 7.0教学课件金山信息技术学校学生信息表学生基本情况.dbf,scan,?姓名,性别,专业,ENDSCAN,use,运行结果:,见vfp7.0,例3.9 scan语句,题目:在屏幕上输出学生性别信息,程序代码:,SET default to J:VFP教学用课件Visual FoxPro 7.0教学课件金山信息技术学校学生信息表,use 学生基本情况.dbf,scan,IF 性别=男,?姓名+是男同学,ELSE,?姓名+是女同学,ENDIF,endscan,use,程序运行结果:,见vfp7.0,循环结构控制语句,for,(2)for语句,如果事先知道循环次数,则可以使用for循环。,语句格式:,for,循环变量=初值,to,终值 step 步长,语句组,exit,loop,endfor,说明:循环变量被赋初值后,如果循环变量没有超过终值,则执行语句组;循环变量递增(减),如果没有超过终值,继续执行循环;否则,结束循环。,例子3.11:for语句,题目:阅读以下程序,分析运行的结果,程序:,for j=1 to 10,?j,endfor,程序运行结果:,1,2,3,4,5,6,7,8,9,10,分析:变量j由1变到10,当j=1时显示1,当j=2时显示2.当j=10时显示10.,例3.12 for语句,题目:使用for语句显示学生基本情况表中的所有学生姓名。,程序代码:,SET default to J:VFP教学用课件Visual FoxPro 7.0教学课件金山信息技术学校学生信息表,use 学生基本情况.dbf,FOR i=1 to,6,?姓名,skip,ENDFOR,use,程序运行结果:,见vfp7.0,例3.13 for语句,题目:使用for语句求出学生成绩的总分和平均分。,程序代码:,use J:VFP教学用课件Visual FoxPro 7.0教学课件金山信息技术学校学生信息表学生基本情况.dbf,for i=1 to reccount(),sum=语文+数学+计算机,replace 总分 with sum,replace 平均分 with sum/3,skip,endfor,use,程序运行结果:,见vfp7.0,比较scan和for两个循环语句,scan与for语句的相同于区别:,相同点:,两者都是循环执行,循环次数都是可以判断的。,不同点:,(1)scan语句是对表进行操作、而for语句不是。,(2)scan语句不需要另外移动记录指针,每次执行完循环体内的语句组后,表中的记录指针自动移向下一条记录。而for语句需要增加控制记录指针移动的语句。,上机练习题:,1、使用,scan 语句,对“学生基本情况表”中的专业(建筑/设计)进行判断。(表如下图),2、使用,for语句,显示学生基本情况表中的所有学生姓名。,学生基本情况表(2),循环结构控制语句,do while,(3)do while语句,如果想要在某一条件满足时结束循环,可以使用do while语句。使用do while语句事先可以不清楚循环的次数,但是需要知道结束循环的条件。,语句格式:,do while,逻辑表达式,语句组,loop,exit,enddo,备注:如果逻辑表达式的值为真(.t.),则执行循环体,如此反复判断执行循环体,直到逻辑表达式的值为假(.f.)。,例3.14 do while语句,题目:使用do while语句找出学生成绩表中的语文课程的最高分。,程序代码:,use ,maxy=0.0,do while.not.eof(),if maxy语文,maxy=语文,end if,skip,enddo,?语文成绩的最高分是:,maxy,use,上机练习题:,上机1:使用do while语句找出学生成绩表中的语文课程的最低分。,上机2:使用do while语句找出学生成绩表中的语文课程的成绩为60分的学生。,加强做责任心,责任到人,责任到位才是长久的发展。,11月-24,11月-24,Sunday,November 17,2024,弄虚作假要不得,踏实肯干第一名。,21:39:11,21:39:11,21:39,11/17/2024 9:39:11 PM,安全象只弓,不拉它就松,要想保安全,常把弓弦绷。,11月-24,21:39:11,21:39,Nov-
展开阅读全文