算法和程序设计
【练习4】输入 两个不相等的数 a,b,比较大小, 将大数放在a中, 小数放在b中, 然后输出a,b。 (单分支结构)
【练习5】某超 市促销苹果,购 买一斤苹果,为 每斤3元,购买5 斤以下每斤原价; 超过5斤部分每 斤打8折,输入 购买的斤数,输 出应付款额。 (双分支结构)
【练习6】求分段函数值
Y=
1
x>0
0
-1
输入 x
x=0
x<0
用伪代码描述:
if(x<0) then y=-1 else if(x=0) then y=0
else
y=1 end if
End if
输出 y
多选择(分支)结构(一)
If<条件1>Then <语句组1> Elseif<条件2>Then <语句组2> Elseif<条件3>Then <语句组3> ………… Elseif<条件n>Then <语句组n> Else <语句组n+1> End If
开始
输入 a,b,c
用流程
图来描述
db2-4ac
d<0
If (d = 0) Then
输出 "x1=x2="; -b / 2 / a Else d = Sqr(d) 输出 "x1="; (-b + d) / 2 / a 输出 "x2="; (-b - d) / 2 / a End If End If
y
maxa
a>b
n
maxb
C> max y maxc 输出max 结束
n
2、判断一元二次方程ax2 +bx+c=0(其中a≠0)是否有实数解的算 法框图。(有,则输出“有实解”;无,则输出“无实解”) root.exe 开始
输入一元二次方程 的系数 a,b,c d=b*b-4*a*c
d>=0
y max a
a>b
输出max
【练习2】求分段函数值
Y= x2 2x+1 x>3 x<=3
输入 x IF x>3 THEN y=x*x ELSE y=2*x+1 END IF 输出 y
【练习3】输入一个数到变量a,输 出它的绝对值(不用绝对值函数, 要求用单分支和双分支结构分别设 计算法,并画出流程图)
的数中较大的数。(双分支结构)
算法一
输入 a, b IF a>b THEN 输出a ELSE 输出b END IF
算法二: 输入二个不相等的数a, b,将最大数赋 值给变量max并输出。
输入a、b
输入 a,b n max b If a>b then max a else max b End if 输出 max
如:输入一个 数,输出这个 数的平方
输入 n
输出 n2
输入 n
a n2
输出 a
例 求两不等数中大者的算法
1、用自然语言描述算法: 算法开始 1、输入两个不同的数a, b 2、若a>b条件成立 3、输出a的值,跳到5 4、否则(a<b) 输出b的值 5、退出 结束 输出a 2、用流程图来描述算法 开始 输入两个不同 的数a, b
N
Y 输出“有实数解” 输出“无实数解”
结束
VB常用函数
系统内部标准函数
取整:Int(x) 求余数:a Mod b 求平方根:Sqr(x) 绝对值:Abs(x) 四舍五入:Round(x,n) 其它...
3、设计一个一元二次方程求解的通用算法
用伪代码表示 输入 a,b,c d=b*b-4*a*c If (d < 0) Then 输出 "无实根“" Else n
输出 (-b+d)/2/a, (-b-d)/2/a
yn d=0ຫໍສະໝຸດ y dsqr (d) 输出 –b/2/a 输出 “无实根 ”
结束
4、某手机话费套餐 规定:每月60元,可 通话300分钟,超过 300分钟的部分,另 按每分钟0.4元计算。 键盘输入当月通话时 间(分钟),计算当 月实际需付的手机费。 如果输入的通话时间 小于0,则应输出“输 入数据有误”的提示 信息。
Y
a>b
N
输出b
选择模式:(分为单分支与双分支两种)
双分支:
用伪代码表示 if(条件) then A框 else B框 End if
单分支:
用伪代码表示
if(条件) then A框 End if
出门带伞问题:如 果下雨,带伞后出 门,否则直接出门。
相对于单分支结构,在VB6.0中有2种相应的语句 格式: 格式1:If 条件 Then 语句 格式2:If
算法和程序设计
第4课 分支结构的算法设计
•
用流程图和伪代码描述输入两个数输出 它们的和的算法
用流程图表示
开始
输入 a 输入 b suma+b 输出 sum
结束
用伪代码表示
输入 a
输入 b Sum a+b 输出 sum
算法的执行流程
顺序模式:
Step1
Step2 输入n 或: 输出 n2 用伪代码表示
细心的同学可能已经发现,这2种单分支语句 格式不仅从占用的行数上看是不一样的,另外还 有一个重要的区别在于,格式1的关键字Then后面 只能写一条操作语句,格式2的关键字Then下面能 够写多条操作语句(即语句组)。但是,格式1中 可以省略“End If”行,而格式2中却必须写上该行, 否则VB6.0系统会提示用户语法出错。
1、编一程序,从输入的三个数中找出并显示其中最大者。 开始 算法一 输入a,b,c
y
y 输出a a>c 输出c n
a>b
n
b>c y 输出b n 输出c
结束
拓展练习题:
输入三个不相等的数a,b,c ,将最大数赋值给变量max并输 出。 算法二
编一程序,从输入的三个数中找出并显示其中最大者。 开始 算法三 输入a,b,c
条件 Then 语句组 EndIf
选择模式:
双分支选择:
y step1 条件 n step2
单分支选择:
y step1 n
条件
step3
step2
If (条件) then step1 else step2
If (条件) then
step1 End if
End if
【练习1】打印出从键盘输入的两个不相等
多选择(分支)结构(二)
2、选择语句 Select Case<表达式> Case<值1> <语句组1> Case<值2> <语句组2> Case<值3> <语句组3> ………… Case<值n> <语句组n> Case Else <语句组n+1> End Select
【练习7】购买地 铁车票:乘1-4 站 3元/位;5-9站 4元 /位;9站以上5元/ 位;输入人数 person、站数n, 输出应付款pay