大瓶向小瓶充气,求小瓶数量,循环走不通请大神赐教
问题描述:
大容器A1,A2 ,A3内初始压力的初始压力储存在数组Pd(n)中,其中Pd(n)的取值均为25。小容器B的初始压力储存在数组Px(j)中,Px(j)的取值均为4.3。
现在需要将大容器内的压力转存到小容器中,求出需要多少个小容器?
条件判断:
将大容器转存到小容器中的过程中的条件:
(1)开始充气的的判断条件
当第一只大容器A1的压力Pd(n) >小容器B 的压力Px(j)+1.25,同时满足小容器B 的压力Px(j) < 20时,大容器开始向小容器充气
即:Pd(n) > Px(j)+ 1.25 And Px(j) < 20
(2)充气过程中的判断条件
第一只大容器A1向小容器B充气过程中大容器、小容器内的压力变化:
Pd(n)= Pd(n)-0.325
Px(j)= Px(j)+1.28754
当小容器B 的压力Px(j)>=20时,小容器数量j=j+1
开始对下一只小容器B充气,重复上述过程,
(3)
当不满足条件Pd(n) > Px(j)+ 1.25时,关闭这只大容器A1,开启下一只大容器A2,继续为小容器B中充气,重复过程(2),直至当小容器B 的压力Px(j)>=20时小容器数量j=j+1,
(4)再次给小容器B充气
重复上述过程,从过程(1)开始循环,直至所有的大容器A1,A2,A3不满条件时,完成充气,
(5)
1.停止充气后,将大容器A1,A2,A3的最终压力值分别返回到Text1.Text 、Text2.Text、Text3.Text中
2.统计小容器的数量j,返回到文本框Text4.Text中
3.停止充气,将最后一只没有冲满的小容器的压力值Px(j),返回到文本框Text5.Text中
自己的编码程序:(有问题不通需要大神指点)
Private Sub Command1_Click()
Dim m As Integer, n As Integer
Dim j As Integer, k As Integer
Dim i As Integer
Dim pxx As Double
j = 0
n = 1
aa: j = j + 1
If n <= 3 Then
pxx = Px(j)
For n = 1 To 3 Step 1
If Pd(n) - pxx > 1.25 And pxx < 20 Then '退出循环两种工况1没充满,2充满了 Pd(n, m) - Px(j, k) < 1.25 Or Px(j, k) >= 20
Pd(n) = Pd(n) -0.325
pxx = pxx + 1.28754
Print Pd(n)
Print pxx
ElseIf pxx >= 20 Then '小气瓶充满换下一只小气瓶
GoTo aa
Else
i = 3 * (n - 1) + 1
Controls("Text" & i).Text = Pd(n) '大瓶压力返回初始值
End If
Next n
Else
Text35.Text = j
End If
End Sub