fccjxxw.com
非常超级学习网 学习超级帮手
当前位置:首页 >> 其它课程 >>

VisualBasic程序设计基础-4


程序设计基础 4

提 纲

一、输入语句

二、选择结构
三、if语句嵌套

输入语句
VB中使用inputbox进行输入

弱点:每次只能输入一个
例: x = inputBox("请输入第一个数字")

y = inputBox("请输入第二个数字")
Print x + y

Print x * y
注:inputbox双引号的提示内容可以随便写

我们会发现,进行加法运算时,x和y都是 字符串(string类型),而不是数值。这时, 需要加上val函数进行强制转换。
x = val(inputBox("请输入第一个数字")) y = val(inputBox("请输入第二个数字")) Print x + y Print x * y
注:输入双引号时一定要把中文输入法关掉!!

选 择 结 构
许多问题在付诸行动前,需要先根 据条件做出选择。 这里的条件通常是关系运算或逻辑 运算,结果为True或False。

选择结构分为双分支(例1)和单分支(例2)

?例1:双分支结构:上完 体育课,如果是上午最后 一节,下课后去食堂吃饭 ;否则,进教室上课。

特点:执行的动作(矩形框)不相同 注:一般用菱形框表示判断,矩形框 表示具体运算。

?单分支结构:早上出门, 如果下雨,带伞后出门, 否则直接出门。 (是双分支的特例)

特点:不管带不带伞,都要出门。

用单分支还是双分支,要根据实际问题决定。

双分支的语句格式: IF <条件> THEN <条件成立执行的语句块> ELSE <条件不成立时执行的语句块> END IF
双分支结构

单分支的语句格式: IF <条件> THEN <条件成立执行的语句块> END IF
注:if和endif 一一对应 else后面不要重复写条件

单分支结构

例题

求解一元二次方程的解

a =val(inputBox("请输入第一个数字")) b =val(inputBox("请输入第二个数字")) c =val(inputBox("请输入第三个数字")) if b*b-4*a*c>=0 then print "X1=",(-b+sqr(b*b-4*a*c))/(2*a) print "X2=",(-b-sqr(b*b-4*a*c))/(2*a) else print "No answer!" endif 注:分母的小括号容易漏写

例题

找两数中的较大者

双分支的写法
a=val(inputBox("请输入第一个数字")) b=val(inputBox("请输入第二个数字")) if a>=b then Print a else Print b Endif 或者加一个变量 max 输入a和b if a>=b then max=a else max=b endif Print max

例题

找两数中的较大者

错误的写法
输入a和b if a>=b then Print a else a<b Print b Endif 注:else的含义就是 NOT(a>=b), 不需要再写出来。

输入a和b if a>=b then Print a else if a<b then Print b endif endif 注:这个写法没有错误, 但多此一举。

选 择 结 构 的 嵌 套
当一次判断不能解决问 题,又不能打擂台时,往往 需要对if语句嵌套。

求三个数字的最大值
输入a, b, c IF a>=b THEN IF a>=c THEN max=a ELSE max=c END IF ELSE IF b>=c THEN max=b ELSE max=c END IF END IF Print Max

注意:虽然有三个菱形框,但只比较两次。

练习
? 模仿上一页,写程序。
? 输入三个整数,输出其中的最小值。 ? 输入部分 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("请输入第三个数字")) if a>=b then if b>=c then ans=b else if a>=c then ans=c else ans=a endif endif else ?另一半请补充完整? endif print "ANS=", ans

不要使用mid作为变量名,mid是 Basic语言里的一个固定函数。

练习2:求解方程ax2+bx+c=0 (允许a=0,b=0,c=0)

提示:分成a=0和a<>0两种情况 a<>0的情况直接复制前面第10页

练习3:最小乘车费用
上海市的出租车计价规则是这样的:不考虑延时等待的问题,起 步费为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元。

算 法 分 析
第一步:显然首先要计算总路程中有多少个10公里; 这里用整除,\表示整除求商,/表示一般除法, 如5\3=1,5/3=1.6666667。
第二步:将这些10公里减去,看剩下多少,如果在5公里 内,则不要换车,否则要换车。(因为按照平均 来说,10+5公里内的平均车费相对便宜) 第三步:如果减掉所有的10公里后,如果不变,则说明 不足10公里,不用换车,正常计费。

dist = Val(InputBox("请输入总里程"))

cycle=dist\10 rest=dist-10*cycle
if cycle>0 then ????... Else ????... endif Print money

'先求有多少个10公里 '减掉这些10公里
'如果cycle>0,说明总里程大于10公里 '如果cycle=0,说明总里程小于10公里

“打擂台”
单分支的写法

找两数中的较大者
“打擂台”
因为事先不知道输入时的 大小顺序,所以可以任意先假 设其中一个为最大值,然后拿 剩下的依次上去比较,max这 个变量类似于“擂台”,始终 保存每次比较后的最大值。 注意红色的这句话,写成 b>=a对不对?

a = Val(InputBox("请输入第一个数字")) b = Val(InputBox("请输入第二个数字")) max=a if b>=max then max=b endif print "Max=", max

“打擂台”推广

找三数中的最大值

a = Val(InputBox("请输入第一个数字")) b = Val(InputBox("请输入第二个数字")) c = Val(InputBox("请输入第三个数字")) max=a if b>max then max=b endif if c>max then max=c endif print "Max=", max

单分支的写法 打两次擂台,比较两次。


更多相关文章:

非常超级学习网 fccjxxw.com

copyright ©right 2010-2021。
非常超级学习网内容来自网络,如有侵犯请联系客服。zhit325@126.com|网站地图