您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 36程序的建立和执行方法
第三章程序的建立和执行方法书本:第31页知识目标:•1、创建、修改和执行程序文件•2、程序流程语句1、创建、修改和执行程序文件•1、建立程序方法•2、修改程序文件•3、运行程序文件•例3.1•新建一个程序文件:p1.prg,实现从键盘上任意输入3个数,求它们的和以及平均值并且显示结果。•程序代码:•input请输入第一个数:toA•input请输入第二个数:toB•input请输入第三个数:toC•?A+B+C=,A+B+C•?(A+B+C)/3=,(A+B+C)/32、程序流程语句•程序的结构分为3种:顺序、分支、循环•1、顺序结构:是指程序的执行顺序是按照语句的排列顺序由上到下一次执行。(如下图)输出语句1输出语句2输出语句32、程序流程语句•2、分支结构:是指按照某种条件的判断结果来决定程序的执行走向,当条件成立时执行某个程序段,当条件不成立时执行另一程序段或者什么也不执行。(如下图)输出语句1判断语句输出语句2输出语句3yesno2、程序流程语句•3、循环结构:是指根据条件的结果重复执行若干次某个程序段。(如下图)输出语句1判断语句输出结果结束条件分支控制语句-if语句•(1)if语句,格式:•if逻辑表达式[then]•语句组1•[else•语句组2]•endif•备注:执行过程,当逻辑表达式的值为真时,执行语句组1;否则,执行语句组2。其中else部分可以省略的,如果省略else部分,当逻辑表达式为真时,将会执行语句组1,否则不执行任何操作。例3.3if语句•键盘输入任意一个分数,如果60分以上,则显示成绩是合格的,否则显示成绩是不合格的,请继续努力。•程序如下:•input请输入成绩:toA•ifA=60then•?成绩是合格的,请继续加油!•else•?成绩不合格,请继续努力吧!•endif•输出结果:见vf例3.4if语句•题目:判断输入的数是正数、负数还是零。•程序如下:•input请输入任意的数:toA•ifA==0then•?你输入的数字是0•else•ifA0then•?你输入的数字大于0•else•?你输入的数字小于0•endif•endif•输出结果:见vf例3.5if语句•题目:读取学生基本信息表中的数据,判断当前记录中的性别字段,输出相应的提示信息。•程序:•SETdefaultto[J:\VFP教学用课件\《VisualFoxPro7.0》教学课件\金山信息技术学校学生信息表]&&设置默认值或用setpathto(设置默认路径)•use学生基本情况.dbf•IF性别=男•?姓名+是男同学•ELSE•?姓名+是女同学•ENDIF•use•程序运行结果:•郭小名是男同学例3.6if语句实例•题目:使用if语句对输入的成绩进行“优秀”,“良好”,“中等”,“及格”,“不及格”的评定。•程序如下:•input请输入成绩:toA•ifA=90•?你的成绩优秀•else•ifA=80•?你的成绩良好•else•ifA=70•?你的成绩中等•else•ifA=60•?你的成绩及格•else•?你的成绩不及格•endif•endif•endif•endif•程序运行结果:见vfp7.0if语句在flash动画制作中的运用•1、简单loading(进度加载)代码:•方法1、使用载入字节数判断•b=getBytesTotal();//获取总的字节数•a=getBytesLoaded();//已经下载的字节数•onEnterFrame=function(){//进入帧时,进行判断•if(a==b){//如果载入的字节数等于总的字节数•deletethis.onEnterFrame//删除进入帧•gotoAndPlay(frame);//转入到你要播放的帧•]else{//否则•a=getBytesLoaded();//已经下载的字节数•percent=int(a/b*100)+%;//计算已经下载的百分比•]•}if语句总结•用法:程序中的判断运算。•用途:广且多例如:1、通关游戏中的通关设置(游戏类)•2、学校学生成绩达不达标判断(教育类)•3、通信系统中打电话收取电话费(商业类)•缺点:一般只用于2-4种结果的判断,语句重复较多input请输入成绩:toAifA=90?你的成绩优秀elseifA=80?你的成绩良好elseifA=70?你的成绩中等elseifA=60?你的成绩及格else?你的成绩不及格endifendifendifendif5种结果需要重复写4次ifelse语句愤怒的小鸟游戏分析分数达到20000分过第一关ifscore=20000进入第二个else重新开始•if...else...endif语句一般适用于有两三种可能的情况需要判断,若要判断多种可能的情况,docase...endcase结构将比使用多个if语句方便。•docase语句格式:•docase•case逻辑表达式1•语句组1•[case逻辑表达式2•语句组2•...•case逻辑表达式n•语句组n]•[otherwise•语句组n+1]•endcase条件分支控制语句-docase语句备注:当case后面的逻辑表达式的值为“值”时,执行该case后面的语句组;如果所有case后面的逻辑表达式的值为“假”时,则执行otherwise后面的语句组。例3.7docase语句•题目:使用docase语句对输入的成绩进行“优秀”,“良好”,“中等”,“及格”,“不及格”的评定。比较一下if语句和docase语句的各自的优点。•程序代码:•input请输入分数:toA•docase•caseA=90•?成绩优秀•caseA=80•?成绩优良•caseA=70•?成绩中等•caseA=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、使用docase语句对输入的岁数进行出生年份的计算(只需计算出14——20岁之间的年份,20岁是1993年出生,14岁是1999年,以此类推)。•学生基本情况表(1)专业代码学号姓名性别专业1201201001张小雅女计算机2201202001周晓丽女会计1201201002夏军男计算机2201202002郭丽丽女会计1201201003杨阳男计算机2201202003夏小华男会计2201202004周静女会计2201202005胡东男会计1201201004王华女计算机循环结构控制语句—scan•(1)scan语句•scan语句格式:•scan[scope][for逻辑表达式1][where(while)逻辑表达式2]•语句组•[loop]•[exit]•endscan•备注:scan语句是一个循环次数由数据表中记录条数决定的特殊的循环,每次执行完循环体内的语句组后,表中的记录指针自动移向下一条记录,重复执行循环体内的语句,直到表文件尾。例子3.10:scan语句•题目:输出D学生的总分•程序:•input请输入语文分数:toA•input请输入数学分数:toB•input请输入英语分数:toC•D=0•scan•D=A+B+C•endscan•?该学生的总分为:,D•程序运行结果:见vfp7.0例3.8scan语句•题目:在屏幕上输出学生的基本信息•程序代码:•useJ:\VFP教学用课件\《VisualFoxPro7.0》教学课件\金山信息技术学校学生信息表\学生基本情况.dbf•scan•?姓名,性别,专业•ENDSCAN•use•运行结果:•见vfp7.0例3.9scan语句•题目:在屏幕上输出学生性别信息•程序代码:•SETdefaultto[J:\VFP教学用课件\《VisualFoxPro7.0》教学课件\金山信息技术学校学生信息表]•use学生基本情况.dbf•scan•IF性别=男•?姓名+是男同学•ELSE•?姓名+是女同学•ENDIF•endscan•use•程序运行结果:见vfp7.0循环结构控制语句—for•(2)for语句•如果事先知道循环次数,则可以使用for循环。•语句格式:•for循环变量=初值to终值[step步长]•语句组•[exit]•[loop]•endfor•说明:循环变量被赋初值后,如果循环变量没有超过终值,则执行语句组;循环变量递增(减),如果没有超过终值,继续执行循环;否则,结束循环。例子3.11:for语句•题目:阅读以下程序,分析运行的结果•程序:•forj=1to10•?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.12for语句•题目:使用for语句显示学生基本情况表中的所有学生姓名。•程序代码:•SETdefaultto[J:\VFP教学用课件\《VisualFoxPro7.0》教学课件\金山信息技术学校学生信息表]•use学生基本情况.dbf•FORi=1to6•?姓名•skip•ENDFOR•use•程序运行结果:见vfp7.0例3.13for语句•题目:使用for语句求出学生成绩的总分和平均分。•程序代码:•useJ:\VFP教学用课件\《VisualFoxPro7.0》教学课件\金山信息技术学校学生信息表\学生基本情况.dbf•fori=1toreccount()•sum=语文+数学+计算机•replace总分withsum•replace平均分withsum/3•skip•endfor•use•程序运行结果:见vfp7.0比较scan和for两个循环语句•scan与for语句的相同于区别:•相同点:两者都是循环执行,循环次数都是可以判断的。•不同点:(1)scan语句是对表进行操作、而for语句不是。•(2)scan语句不需要另外移动记录指针,每次执行完循环体内的语句组后,表中的记录指针自动移向下一条记录。而for语句需要增加控制记录指针移动的语句。上机练习题:•1、使用scan语句对“学生基本情况表”中的专业(建筑/设计)进行判断。(表如下图)•2、使用for语句显示学生基本情况表中的所有学生姓名。•学生基本情况表(2)专业代码学号姓名性别专业1201201001张小雅女建筑2201202001周晓丽女设计1201201002夏军男建筑2201202002郭丽丽女设计1201201003杨阳男建筑2201202003夏小华男设计2201202004周静女设计2201202005胡东男设计1201201004王华女建筑循环结构控制语句—dowhile•(3)dowhile语句•如果想要在某一条件满足时结束循环,可以使用dowhile语句。使用dowhile语句事先可以不清楚循环的次数,但是需要知道结束循环的条件。•语句格式:•dowhile逻辑表达式•语句组•[loop]•[exit]•enddo•备注:如果逻辑表达式的值为真(.t.),则执行循环体,如此反复判断执行循环体,直到逻辑表达式的值为假(.f.)。例3.14dowhile语句•题目:使用dowhile语句找出学生成绩表中的语文课程的最高分。•程序代码:•use•maxy=0.0•dowhile.not.eof()•ifmaxy语文•maxy=语文•endif•skip•enddo•?语文成绩的最高分是:,maxy•use上机练习题:•上机1:使用dowhile语句找出学生成绩表中的语文课程的最低分。•上机2:使用dowhile语句找出学生成绩表中的语文课程的成绩为60分的学生。学号姓名语文201201001张小雅60201202001周晓丽98201201002夏军70201202002郭丽丽5620120100
本文标题:36程序的建立和执行方法
链接地址:https://www.777doc.com/doc-838861 .html