问一个vb计数循环的问题:一球从100米高度*落下,每次落地后又反跳回原高度的一半,再落下.
问一个vb计数循环的问题:一球从100米高度*落下,每次落地后又反跳回原高度的一半,再落下.
自行设计界面,计算它在第10次落地时共经过多少米、第十次反弹有多高.
这道题如果只用For Next计数循环的话怎么设计怎么做啊?
a = 100
For i = 1 To 9
a = a / 2
s = s + 2 * a
Next i
s = s + 100
t = a / 2
s为第10次落地经过的米数,结果趋于200,次数越多越接近200
再加上第一次的100米,即趋于300
分析
先把第一次落地另看,因为只有下降100米,作为a
然后是循环的关键,要上升50米,再下降50米,这是一次循环,100/2*2即a/2再*2
再上升25米,再下降25米,这是第二次循环,50/2*2即a/2再*2
如此9次循环,就是小球第10次落地
则计算出s总路程
计算完毕后 这时a为第10次落地,即用最后一次a的值再/2就是第10次弹起的高度.
也可以简化为
a = 100
For i = 1 To 9
s = s + a
a = a / 2
Next i
s = s + 100Private Sub Command1_Click()a = 100For i = 1 To 9a = a / 2Next iPrint ab = a * 2Print bEnd Sub这样做是不是也正确啊,这是一个连续做除法的计数循环。一共做了10-1次除法,我说的对吗?这么算,最后a得的是第9次落地与第10次落地之间的,小球所经过的路程的一半也就是说这是小球第9次落地然后的弹起的高度,也等于第10次落地前的下落高度。题目要求的是第10次弹起的高度,因此应该再/2b好像没什么意义,仅仅是一个数字,如果要计算全路程,需要在循环里做一个累加的过程嗯我放上了图,你可以看一下要求的是 黑色实线部分(总路程)和蓝线部分(第10次弹起高度)只能画示意图,无法画图示,因为如果精确了,第10次弹起将很短很短这个题目仅仅是个数学题目,在实际物理中是不会出现这样的*落体情况的1,重力9.8N无参与运算2,物体能弹起多少次,要看物体材质、空气阻力和物体与地球的引力,吸附力最终是否大于重力,如果抛开这些要素,那么理想状态是,物体趋于无限的弹起次数,只是弹起高度越来越小,趋于0