资源描述
程序设计基础(Visual FoxPro),第四讲 程序设计基础(2),杨劲 副教授,电话:,1,2分支(选择)结构实例,分支结构是在程序执行时,,根据不同的条件,选择执行不同的程序语句,,用来解决有选择、有转移的诸多问题。,多路分支语句,常见的分支结构有:,IF语句,流程图,1)IF语句,格式,:,见教材P57,条件?,语句序列1,语句序列,2,Y,N,ENDIF之后的命令,(教材P53),【例3-3】修改【例3-2】,在文本框text1、text2、text3中输入三角形的三边,单击“计算”按钮,如果输入的三边能构成三角形,则在文本框text4中显示三角形的面积;,否则用提示框给出提示信息:不能构成三角形,重新输入!,。如图所示。,“计算”按钮的“Click”事件代码如下:,a=thisform.text1.value,b=thisform.text2.value,c=thisform.text3.value,if a+bc and a+cb and b+ca,=(a+b+c)/2,area=sqrt( *( -a)*( -b)*( -c),thisform.text4.value=round(area,1),else,messagebox(不能构成三角形,重新输入!),thisform.text1.value=0,thisform.text2.value=0,thisform.text3.value=0,thisform.text4.value=0,thisform.text1.setfocus,endif,清空文本框,光标定位在text1中,EXM1:判断某一年是否是闰年。,提示1:,假如年份用y表示,判断y是否是闰年的方法是:若y能够被400整除或y能够被4整除并且不能够被100整除,。,y/4=int(y/4) and y/100int(y/100) or y/400=int(y/400),提示2:,判断一个整数M能否被另一个整数N整除,常用的三种方法,:, MOD(M,N)=0, M%N=0, INT(M/N)=M/N,结构化方法,表单设计(,教材p54例3-4,),EXM2:输入两个数,比较大小,并输出较大数。,输入两个数a,b,ab?,?a,Y,N,结束,?b,方法一:双分支,输入两个数a,b,ab?,?a,Y,N,结束,?b,输入两个数a,b,ab?,把b的值赋给a,Y,N,?a,EXM3:输入两个数,比较大小,并按从大到小的顺序输出。,输入两个数,a,b,ab?,交换a,b的,值,Y,N,?,a,b,容器A,容器B,容器C,1,2,3,交换,1、C = A,2、A = B,3、B = C,赋值,赋值,赋值,输入两个数,a,b,ab?,ca?,cb?,输出c,输出a,输出c,输出b,结束,N,Y,Y,N,N,Y,输入三个数a,b,c,ab?,ca?,cb?,输出c,输出a,输出c,输出b,结束,N,Y,Y,N,N,Y,(教材P53),【例3-5】已知一元二次方程的3个系数,求一元二次方程的根。求根公式 :,提示:,需要判断输入的参数能否组成有实根的一元二次方程,。,分支的嵌套,“求解”命令按钮的“Click”事件代码如下:,a=thisform.text1.value,b=thisform.text2.value,c=thisform.text3.value,if a=0,messagebox(二次项系数为0,这不是一个一元二次方程),thisform.text1.setfocus,else,d=b2-4*a*c,if 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=x2,else,messagebox(该方程没有实数根!),endif,endif,4)多分支语句,(教材58页),条件1,ENDCASE后面的语,句,条件2,otherwise,命令序列1,命令序列2,命令序列N,命令序列Q,条件N,DOCASE,EXM,5:输入月份值,显示对应季节的中文名字(3,4,5月为春季,6,7,8月为夏季,9,10,11月为秋季;12,1,2月为冬季)。,(P56例3-6),“输出”命令按钮的click事件代码:,yf=,val(thisform.text1.value),do case,case yf=3 or yf=4 or yf=5,jj=春季,case yf=6 or yf=7 or yf=8,jj=夏季,case yf=9 or yf=10 or yf=11,jj=秋季,case yf=12 or yf=1 or yf=2,jj=冬季,endcase,thisform.label3.caption=jj,提示:,ifendif,do caseendcase必须,配对出现,,表示分支的开始和结束。, 分支为多语句组合,因此不能在命令窗口中使用。,三种选择结构之间可以相互,嵌套,,但不能,交叉,。,为使程序清晰易读,对分支体内部的语句建议使用,缩格书写方式,。,
展开阅读全文