您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > VisualBasic程序设计基础-4
程序设计基础4二、选择结构三、if语句嵌套提纲一、输入语句输入语句VB中使用inputbox进行输入弱点:每次只能输入一个例:x=inputBox(请输入第一个数字)y=inputBox(请输入第二个数字)Printx+yPrintx*y注:inputbox双引号的提示内容可以随便写我们会发现,进行加法运算时,x和y都是字符串(string类型),而不是数值。这时,需要加上val函数进行强制转换。x=val(inputBox(请输入第一个数字))y=val(inputBox(请输入第二个数字))Printx+yPrintx*y注:输入双引号时一定要把中文输入法关掉!!选择结构许多问题在付诸行动前,需要先根据条件做出选择。这里的条件通常是关系运算或逻辑运算,结果为True或False。选择结构分为双分支(例1)和单分支(例2)例1:双分支结构:上完体育课,如果是上午最后一节,下课后去食堂吃饭;否则,进教室上课。特点:执行的动作(矩形框)不相同注:一般用菱形框表示判断,矩形框表示具体运算。单分支结构:早上出门,如果下雨,带伞后出门,否则直接出门。(是双分支的特例)特点:不管带不带伞,都要出门。用单分支还是双分支,要根据实际问题决定。双分支的语句格式:IF条件THEN条件成立执行的语句块ELSE条件不成立时执行的语句块ENDIF单分支的语句格式:IF条件THEN条件成立执行的语句块ENDIF双分支结构单分支结构注:if和endif一一对应else后面不要重复写条件例题求解一元二次方程的解a=val(inputBox(请输入第一个数字))b=val(inputBox(请输入第二个数字))c=val(inputBox(请输入第三个数字))ifb*b-4*a*c=0thenprintX1=,(-b+sqr(b*b-4*a*c))/(2*a)printX2=,(-b-sqr(b*b-4*a*c))/(2*a)elseprintNoanswer!endif注:分母的小括号容易漏写例题找两数中的较大者a=val(inputBox(请输入第一个数字))b=val(inputBox(请输入第二个数字))ifa=bthenPrintaelsePrintbEndif双分支的写法或者加一个变量max输入a和bifa=bthenmax=aelsemax=bendifPrintmax例题找两数中的较大者输入a和bifa=bthenPrintaelseabPrintbEndif注:else的含义就是NOT(a=b),不需要再写出来。错误的写法输入a和bifa=bthenPrintaelseifabthenPrintbendifendif注:这个写法没有错误,但多此一举。选择结构的嵌套当一次判断不能解决问题,又不能打擂台时,往往需要对if语句嵌套。输入a,b,cIFa=bTHENIFa=cTHENmax=aELSEmax=cENDIFELSEIFb=cTHENmax=bELSEmax=cENDIFENDIFPrintMax求三个数字的最大值注意:虽然有三个菱形框,但只比较两次。练习模仿上一页,写程序。输入三个整数,输出其中的最小值。输入部分a=Val(InputBox(请输入第一个数字))b=Val(InputBox(请输入第二个数字))c=Val(InputBox(请输入第三个数字))例:购买地铁车票:乘1-4站3元/位;5-9站4元/位;9站以上5元/位;输入人数person、站数n,输出应付款pay(分支嵌套)。不用上机编程,理解即可。要特别当心边界值练习1:输入三个数,输出其中的中间大小的数。a=Val(InputBox(请输入第一个数字))b=Val(InputBox(请输入第二个数字))c=Val(InputBox(请输入第三个数字))ifa=bthenifb=cthenans=belseifa=cthenans=celseans=aendifendifelse…另一半请补充完整…endifprintANS=,ans不要使用mid作为变量名,mid是Basic语言里的一个固定函数。练习2:求解方程ax2+bx+c=0(允许a=0,b=0,c=0)提示:分成a=0和a0两种情况a0的情况直接复制前面第10页上海市的出租车计价规则是这样的:不考虑延时等待的问题,起步费为11元,可以行驶3公里;接下来的7公里,每公里为2元;如果路途总距离超过10公里,则剩余的路程为每公里3元。不到1公里时,按照1公里计算(本题全部为整数,不存在小数)。有一些精明的乘客发现,可以采用适当的中途换车策略来节省费用。比如路程一共有26公里,则可以分为三段,乘完10公里花费25元;然后下车换一辆再乘10公里,又花费25元;再次下车换一辆乘最后6公里花费17元,则总共花费67元;而如果一直不换车,直接按照计费规则,则需要73元。现在给你一个路程的长度(总是大于0),请计算最少的车费是多少。样例1:总路程为2公里时,最小乘车费用为11元;样例2:总路程为12公里时,最小乘车费用为31元;(不能换车)样例3:总路程为14公里时,最小乘车费用为37元;(不能换车)样例4:总路程为27公里时,最小乘车费用为69元。练习3:最小乘车费用算法分析第一步:显然首先要计算总路程中有多少个10公里;这里用整除,\表示整除求商,/表示一般除法,如5\3=1,5/3=1.6666667。第二步:将这些10公里减去,看剩下多少,如果在5公里内,则不要换车,否则要换车。(因为按照平均来说,10+5公里内的平均车费相对便宜)第三步:如果减掉所有的10公里后,如果不变,则说明不足10公里,不用换车,正常计费。dist=Val(InputBox(请输入总里程))cycle=dist\10'先求有多少个10公里rest=dist-10*cycle'减掉这些10公里ifcycle0then'如果cycle0,说明总里程大于10公里…???...Else'如果cycle=0,说明总里程小于10公里…???...endifPrintmoney“打擂台”找两数中的较大者a=Val(InputBox(请输入第一个数字))b=Val(InputBox(请输入第二个数字))max=aifb=maxthenmax=bendifprintMax=,max单分支的写法“打擂台”因为事先不知道输入时的大小顺序,所以可以任意先假设其中一个为最大值,然后拿剩下的依次上去比较,max这个变量类似于“擂台”,始终保存每次比较后的最大值。注意红色的这句话,写成b=a对不对?“打擂台”推广找三数中的最大值a=Val(InputBox(请输入第一个数字))b=Val(InputBox(请输入第二个数字))c=Val(InputBox(请输入第三个数字))max=aifbmaxthenmax=bendififcmaxthenmax=cendifprintMax=,max单分支的写法打两次擂台,比较两次。
本文标题:VisualBasic程序设计基础-4
链接地址:https://www.777doc.com/doc-5596187 .html