内容正文:
解析算法的程序实现
笑一笑
在某一集中,猫发现了老鼠,准备实施抓捕,老鼠也发现了猫,准备逃跑,已知二者相距20m,猫速度为V1,老鼠速度为V2,求猫需要多久(t)可追到老鼠?
解析算法基本思想
找出表示问题的前提条件与结果之间关系的数学表达式,并通过表达式的计算来实现问题求解。
用VB编写解析算法程序时需注意两点:
1、建立正确的数学表达式;
2、将数学表达式转换成正确的VB表达式。
追一追
Dim v1, v2, t As Double
v1=val(text1.text)
v2=val(text2.text)
text3.text = Str(t)
v1*t=v2*t+20 => t=20/(v1-v2)
t=20/(v1-v2)
在某一集中,猫发现了老鼠,准备实施抓捕,老鼠也发现了猫,准备逃跑,已知二者相距20m,猫速度为V1,老鼠速度为V2,求猫需要多久(t)可追到老鼠?
例题1.某地打的车费问题
收费标准:起步价按1.5公里内6元;超过1.5公里部分每公里运价为2元;超过10公里部分每公里运价为2.5元,用VB编制程序来表示每次打车相应的车费情况。(X表示路程,Y表示车费)
Y=6 X≤1.5
Y=6+2(X-1.5) 1.5<X≤10
Y=6+17+2.5(X-10)X>10
数学表达式:
程序流程图
开始
结束
输入公里数X
X≤1.5
Y=6
Y=23+2.5*(X-10)
输出价格Y
N
Y
Y=6+2*(X-1.5)
X≤10
Y
N
Private Sub Command1_Click()
Dim x As double
Dim y As integer
x = Val(Text1.Text)
?
Text2.Text = Str(y)
End Sub
做一做
例题2.折纸问题
已知一张足够大的纸的厚度s,折叠多少次(i)后超过世界屋脊珠穆朗玛峰的高度8844米?根据问题设计一个能够给出正确答案的算法,并编写程序。
……
S=S*21
S=S*22
S=S*2i
S>8844?
程序流程图
开始
结束
输入纸厚度s
S<=8844
S=S*2
i