欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    VFP第3、4、5部分(程序算法及顺序分支循环).ppt

    • 资源ID:6524413       资源大小:369KB        全文页数:77页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    VFP第3、4、5部分(程序算法及顺序分支循环).ppt

    Visual Foxpro 6.0,程序设计基础,重庆工商大学计算机学院计算机基础教研室,要点:1.算法的概念及特点 2.掌握程序3种基本结构的表示 3.掌握利用分支结构编程 4.掌握利用循环结构编程,第三、四、五讲 程序设计(1),算法及算法的表示,一、算法的概念及特点 所谓算法就是对解决问题所采用的方法和步骤的描述。,二、算法的描述 算法的描述方法有很多,为直观、准确地表示一个问题的处理方法和步骤,通常采用流程图的方法。流程图是用一些几何图形符号、线条及文字说明来表征一个问题的处理过程。一般采用传统流程图和N-S图来描述算法。,(教材P51)【例3-1】设计如图所示表单,在文本框text1中输入华氏温度,单击“计算”按钮可以求出对应的摄氏温度,并在文本框text2中显示。,“计算”按钮的“Click”事件代码如下:fascels=5*(fas-32)/9thisform.text2.value=round(cels,1)&结果保留1位小数,描述方法1用自然语言表示步骤1:输入华氏温度fas。步骤2:按照公式,计算摄氏温度cels。,步骤3:输出摄氏温度。,描述方法2 用流程图表示如图所示。,描述方法3用N-S流程图如图所示。,一个算法应该具有以下特点:教材P52 确定性。有穷性。有效性。输入。输出。,任何一个问题能否让计算机处理,关键在于能否设计出合理的算法,有了合适的算法,再使用合适的计算机语言来编写程序。VFP就是一种语言工具。要用VFP编写出高质量的程序,一方面要构建合理的算法,另一方面要掌握VFP的语法规则,它是实现算法的基础。,命令有一定的书写规则:1、命令分行。程序中每条命令都以回车键结尾,一行只能写一条命令。若命令需分行书写,应在一行终了时键入续行符“;”,然后按回车键。,2、命令注释。程序中可以插入注释,以提高程序的可读性。注释语句,NOTE|*注释部分&注释部分,格式:,行首注释,单命令的行尾注释,三、3种基本结构的表示 程序的3种基本结构:顺序结构、选择(或分支)结构、循环结构,它们构成了实现一个算法的基本单元。,顺序结构:是一种最基本、最简单的程序结构。如下图所示,先执行A,再执行B,A与B按照顺序执行。,选择(或分支)结构:根据条件是否成立而执行不同的程序模块。,循环结构:是指重复执行某些操作,重复执行的部分称为循环体。,1、基本的输入/输出命令,常用命令(用于结构化程序),1)INPUT命令,INPUT TO,格式:,例如:s=100 input 请输入:to a?a=,a 执行上述命令,若输入的内容为s+20,则 输出结果,2)ACCEPT命令,ACCEPT TO,格式:,例如,把上例中的input改成accept:s=100accept 请输入:to b?b=,b执行上述命令,若输入的内容为s+20,则 输出结果,3)基本输出命令,?|?,,格式:,常用输入输出控件(用于可视化程序),1)输入控件,2)输出控件,文本框,标签、文本框,fas,thisform.text2.value=round(cels,1),程序设计实例,顺序结构程序实例分支(选择)结构程序实例循环结构程序实例,1顺序结构 顺序结构是在程序执行时,根据程序中语句的书写顺序依次执行的命令序列。Visual FoxPro系统中的大多数命令都可以作为顺序结构中的语句。,教材P53,(教材P52)【例3-2】设计如图3-5所示表单,在文本框text1、text2、text3中输入三角形的三边,单击“计算”按钮可以在文本框text4中显示三角形的面积。其计算公式为,(其中a,b,c为三角形的三边,area为三角形的面积),“计算”按钮的“Click”事件代码如下:=(a+b+c)/2area=sqrt(*(-a)*(-b)*(-c)thisform.text4.value=round(area,1),2分支(选择)结构 分支结构是在程序执行时,根据不同的条件,选择执行不同的程序语句,用来解决有选择、有转移的诸多问题。,多路分支语句,常见的分支结构有:,IF语句,流程图,1)IF语句 格式:,见教材P57,条件?,语句序列1,语句序列2,Y,N,ENDIF之后的命令,(教材P53)【例3-3】修改【例3-2】,在文本框text1、text2、text3中输入三角形的三边,单击“计算”按钮,如果输入的三边能构成三角形,则在文本框text4中显示三角形的面积;否则用提示框给出提示信息:不能构成三角形,重新输入!。如图所示。,“计算”按钮的“Click”事件代码如下:if a+bc and a+cb and b+ca=(a+b+c)/2 area=sqrt(*(-a)*(-b)*(-c)thisform.text4.value=round(area,1)elsemessagebox(不能构成三角形,重新输入!)thisform.text1.value=0thisform.text2.value=0thisform.text3.value=0thisform.text4.value=0thisform.text1.setfocus endif,EXM1:判断某一年是否是闰年。,假如年份用y表示,判断y是否是闰年的方法是:若y能够被400整除或y能够被4整除并且不能够被100整除,y/4=int(y/4)and y/100int(y/100)or y/400=int(y/400),提示:判断一个整数M能否被另一个整数N整除,一般采用三种方法,判断:MOD(M,N)是否等于0INT(M/N)是否等于M/NM%N=0若等于,则表明M能被N整除。,CLEARINPUT 请输入年份:to yIF y/4=int(y/4)and y/100int(y/100)or y/400=int(y/400)?str(y,4)+年是闰年ELSE?str(y,4)+年不是闰年ENDIFRETURN,结构化方法,程序设计及运行,表单设计(参考教材p54例3-4),设计界面,(教材P53)【例3-5】已知一元二次方程的3个系数,求一元二次方程的根。求根公式:,“求解”命令按钮的“Click”事件代码如下:a=thisform.text1.value b=thisform.text2.value c=thisform.text3.value if a=0messagebox(二次项系数为0,这不是一个一元二次方程)else d=b2-4*a*cif d=0 x1=round(-b+sqrt(d)/(2*a),2)x2=round(-b-sqrt(d)/(2*a),2)thisform.text4.value=x1 thisform.text5.value=x2elsemessagebox(该方程没有实数根!)endifendif,EXM2:输入两个数,比较大小,并输出较大数。,表单设计界面,表单运行结果,方法一:双分支,方法二:单分支,表单设计界面,EXM3:输入两个数,比较大小,并按从大到小的顺序输出。,使用单分支结构:,容器A,容器B,容器C,1,3,交换,1、C=A2、A=B3、B=C,表单设计界面,表单运行结果,分支的嵌套EXM 4:比较任意三个数的大小,并输出较大数。,输入三个数a,b,c,ab?,ca?,cb?,输出c,输出a,输出c,输出b,结束,N,Y,Y,N,N,Y,表单设计界面,表单运行结果,4)多分支语句 格式:(见教材58页)流程图:,ENDCASE后面的语句,EXM 5:输入月份值,显示对应季节的中文名字(3,4,5月为春季,6,7,8月为夏季,9,10,11月为秋季;12,1,2月为冬季)。(参考教材P56例3-6),“输出”命令按钮的click事件代码:yf=val(thisform.text1.value)do casecase yf=3 or yf=4 or yf=5jj=春季case yf=6 or yf=7 or yf=8jj=夏季case yf=9 or yf=10 or yf=11jj=秋季case yf=12 or yf=1 or yf=2jj=冬季endcasethisform.label3.caption=jj,注意:ifendif,do caseendcase必须配对出现,表示分支的开始和结束。为使程序清晰易读,对分支、循环等结构应使用缩格书写方式。,表达分支、循环的每种语句都不允许在一个命令行中输完,必须按格式一行一行地键入,因此,不能出现在命令窗口中。三种选择结构之间可以相互嵌套,但不能交叉。,循环结构能够使某些语句或程序段重复执行若干次。如果某些语句或程序段需要在一个固定的位置上重复操作,使用循环是最好的选择。,3循环结构,常见的循环结构有:,条件循环,步长循环,扫描循环,涉及数据表的循环,第6章介绍,1)条件循环(do while循环)格式:流程图:,条件,语句序列,Enddo之后的语句,N,Y,循环体,教材P62,第 1 步,计算 0+1;第 2 步,计算(0+1)+2;第 3 步,计算(0+1+2)+3;第 i 步,计算(0+1+i-1)+i;.第 100 步,计算(0+1+99)+100;,递归算法,EXM6:计算s=1+2+3+100,前i-1次累加和,第i次累加项,基本方法:,属于“累加器”类型问题,(1)在进入累加前先给累加器赋初值(求和一般为0)(2)用循环语句实现累加 循环变量赋初值;循环条件;循环变量的改变规律(3)循环体语句的设计 累加器当前值=累加器原值+循环变量当前值,三个“确定”循环三要素,算法:确定循环变量i并赋初值为1 定义s存放累加和,初值为0 确定循环条件 i=100s=s+i 确定循环变量的变化趋势i=i+1 输出结果s,递推公式,在条件循环中如何体现的?,s=1+2+3+100,cleas=0i=1do while i=100s=s+ii=i+1enddo?1+2+3+.+100=,sreturn,循环体,程序及运行结果,EXM7:计算s=1+2+3+n。(参看教材P59例3-8),“计算”命令按钮的“click”事件代码:n=thisform.text1.value s=0 x=1do while x=ns=s+xenddothisform.text2.value=s,说明:循环结构从do while开始,到enddo结束,两者必须成对出现;在enddo后面可以书写注释。循环是否继续取决于条件的当前取值,一般情况下循环体中应含有改变条件取值的命令或语句,否则将造成死循环。循环结构能自身嵌套(多重循环),还能与选择结构的各种形式嵌套。,2)步长循环(forendfor计数循环)格式:,教材P62,计算s=1+2+3+100,cleas=0for i=1 to 100 s=s+iendfor?1+2+3+.+100=,sreturn,step 1,(教材P60)【例3-9】设计如图所示表单,在文本框text1中输入N的值,求N!。,(1)给累乘器赋初值(一般为1)(2)用循环语句实现累乘 循环变量赋初值;循环条件;循环变量改变规律(3)循环体设计 累乘器当前值=累乘器原值*循环变量当前值,如:123.100,基本方法:,属于“累乘器”类型问题,“计算”命令按钮的“Click”事件代码:p=1p=p*iendforthisform.text2.value=p,说明:步长可正可负,缺省为1。循环体中不应包含改变循环变量值的命令,否则循环次数将随之改变。如果循环可以通过计数来控制,则本循环比条件循环更为方便。,当循环 步长循环 input“请输入终值:”to n input“请输入步长:”to k i=1 for i=1 to n step k do while i endfor|next i=i+k endddo,EXM8:求100以内的奇数和。,A=1+3+5+99,循环变量初值n=1,循环条件n100,循环变量的变化趋势n=n+2,请同学们自己写出程序,循环体累加语句:A=A+n,EXM9:求,循环变量初值x=1,循环条件xn,循环变量的变化趋势x=x+1,请同学们自己写出程序,循环体累加语句:K=K+x2,EXM10:求所有的水仙花数。(所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身。,编程方法:“枚举法”按问题本身的性质,一一列举出该问题所有可能的解,并在逐一列举的过程中,检验每个可能解是否是问题的真正解,若是,我们采纳这个解,否则抛弃它。对于所列举的值,既不能遗漏也不能重复。,查找范围:,三位数100999,任意一个三位数,判断这个三位数x是水仙花数的条件:X=x13+x23+x33,表单设计界面,表单运行结果,例:1+2+n 1到n的奇数和、偶数和 100以内能够被X整除的数之和。,请同学们自己写出程序,(教材P60-61)【例3-10】设计如图1所示表单。运行该表单,在文本框Text1中输入一串字符,单击“逆序显示”命令按钮后,逆序显示该字符串,如图2所示。,图1,图2,x=“Av56:YijB8,A,v,5,6,:,Y,i,j,B,8,c=c+substr(x,i,1),确定变量:x:存任意字符串x=Av56:YijB8 i:存截取次数(1len(x)c:存逆序字符串 c=c+substr(x,i,1),确定算法:用循环在原字符串中从右到左逐个截取字符,重新组装成逆序字符串,确定循环三要素:循环变量:i(i初值为len(x),终值为1)循环条件:i=1循环条件改变:i=i-1(从右到左截取),EXM12:输入一串ASCII字符,显示数字字符串。假设输入:Av56:YijB8 显示:568。,请同学们自己写出程序,从左到右逐个取出字符x,判断x是数字的条件:,Asc(x)asc(0)and Asc(x)asc(9),例:输入一串ASCII字符,显示大写字母串。假设输入:Av56:YijB8 显示:AYB。输入一串ASCII字符,显示小写字母串。假设输入:Av56:YijB8 显示:vij。,请同学们自己写出程序,例:如图所示一程序界面。文本框TEXT1已经输入一串文字,单击“转换”命令按钮后,文本框的值将变为什么?,“转换”命令按钮的CLICK 事件代码:N=LEN(THISFORM.TEXT1.VALUE)Y=DO WHILE N0 X=SUBSTR(THISFORM.TEXT1.VALUE,N,1)IF ASC(X)=ASC(a)X=UPPER(X)ELSE X=LOWER(X)ENDIF Y=X+YN=N-1ENDDOTHISFORM.TEXT1.VALUE=Y,tHIS IS A cpu.,

    注意事项

    本文(VFP第3、4、5部分(程序算法及顺序分支循环).ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开