主题:能否将这个QB程序转为VB呢
请教以下代QB码如何转成VB
READ ep,n,m,t
m=m-1:n=n-1
DIM L(m),d(m),q(m),io(m),jo(m),s(m),h(m)
DIM f(n),r(n),dq(n)
FOR k=0 TO m
READ L(k),d(k),q(k),io(k),jo(k)
q(k)=q(k)/1000
NEXT k
FOR k=0 TO m
s(k)=10.293*t*t*L(k)/d(k)^5.33
q(k)=q(k)*sgn(io(k))
next k
ko=0
s0 : FOR k=0 TO m
h(k)=s(k)*q(k)*q(k)
NEXT k
s6: u=0
FOR i=0 TO n
f(i)=0
r(i)=0
FOR k=0 TO m
IF (ABS(io(k))-1)=i then
f(i)=f(i)+h(k)*SGN(q(k)) 'io(k)
r(i)=r(i)+s(k)*ABS(q(k))
ELSEIF (ABS(jo(k))-1)=i then
f(i)=f(i)+h(k)*(-SGN(q(k))) 'io(k)
r(i)=r(i)+s(k)*ABS(q(k))
END IF
NEXT k
dq(i)= (-1)* f(i)/r(i)/2
NEXT i
FOR k= 0 TO m
IF jo(k)= 0 THEN
q(k)=q(k)+dq(ABS(io(k)) - 1)
ELSE
q(k)=q(k)+dq(ABS(io(k)) - 1) + dq(ABS(jo(k)) - 1)
END IF
NEXT k
FOR i=0 TO n
IF ABS(F(i))<=ep THEN GOTO s5
ko=ko+1
GOTO s0
s5: NEXT i
PRINT TAB(10);"闭合差允许值ep=";ep;"(m)";TAB(40);"循环次数ko=";ko
PRINT TAB(10);"环数n=";n+1;TAB(40);"管段数m=";m+1
PRINT "编号k 管长L(m) 管径d(m) 管道摩阻系数s 水头损失h(m) 流量q(m3/s) 流速v(m/s)"
PRINT
FOR i= 0 TO m
IF d(i)=.1 THEN q1=0:q2=9
IF d(i)=.15 THEN q1=9:q2=15
IF d(i)=.2 THEN q1=15:q2=28.5
IF d(i)=.25 THEN q1=28.5:q2=45
IF d(i)=.3 THEN q1=45:q2=68
IF d(i)=.35 THEN q1=68:q2=96
IF d(i)=.4 THEN q1=96:q2=130
IF d(i)=.45 THEN q1=130:q2=168
IF d(i)=.5 THEN q1=168:q2=238
IF d(i)=.6 THEN q1=237:q2=355
IF d(i)=.7 THEN q1=355:q2=490
IF d(i)=.8 THEN q1=490:q2=685
IF d(i)=.9 THEN q1=685:q2=822
IF d(i)=1 THEN q1=822:q2=1120
IF ABS(q(i))>=q1/1000 and ABS(q(i))<=q2/1000 THEN
COLOR 15
ELSE
COLOR 4
END IF
PRINT TAB(0);i+1;TAB(8);L(i);TAB(17);
PRINT USING"##.##";d(i);
PRINT TAB(26);USING"#####.##";s(i);TAB(41);
PRINT USING"##.##";SGN(q(i))*H(i);TAB(53);
PRINT USING"##.####";q(i);TAB(67);
PRINT USING"#.###";4*q(i)/3.1415926#/(d(i)^2)
IF ABS(q(i))<q1/1000 OR ABS(q(i))>q2/1000 THEN
u=u+1
COLOR 15
IF ABS(q(i))<q1/1000 THEN PRINT "管径偏大,请重新输入管径值(米)"
IF ABS(q(i))>q1/1000 THEN PRINT "管径偏大,请重新输入管径值(米)"
PRINT "d("+STR$(i)+")";
INPUT d(i)
s(i)=10.293*t*t*L(i)/(d(i)^5.33):h(i)=s(i)*q(i)*q(i)
END IF
IF u>0 THEN GOTO s6
END
Data 0.01, 6, 17, 0.014
Data 800, 0.4, 95, 1, 0
Data 900, 0.3, 47, 2, 0
Data 1000, 0.2, 20, 3, 0
Data 600, 0.4, 100.6, -1, 0
Data 600, 0.3, 28.8, 1, -2
Data 600, 0.2, 12, 2, -3
Data 600, 0.2, 12.2, -3, 0
Data 800, 0.4, 60, -1, -4
Data 900, 0.3, 40, -2, -5
Data 1000, 0.15, 3, 3, -6
Data 700, 0.3, 30.6, -4, 0
Data 700, 0.25, 25, 4, -5
Data 500, 0.2, 17.7, 5, -6
Data 600, 0.25, 26.3, -6, 0
Data 800, 0.25, 28.84, -5, 0
Data 1100, 0.2, 32.84, -5, 0
Data 600, 0.3, 8.26, 6, 0
READ ep,n,m,t
m=m-1:n=n-1
DIM L(m),d(m),q(m),io(m),jo(m),s(m),h(m)
DIM f(n),r(n),dq(n)
FOR k=0 TO m
READ L(k),d(k),q(k),io(k),jo(k)
q(k)=q(k)/1000
NEXT k
FOR k=0 TO m
s(k)=10.293*t*t*L(k)/d(k)^5.33
q(k)=q(k)*sgn(io(k))
next k
ko=0
s0 : FOR k=0 TO m
h(k)=s(k)*q(k)*q(k)
NEXT k
s6: u=0
FOR i=0 TO n
f(i)=0
r(i)=0
FOR k=0 TO m
IF (ABS(io(k))-1)=i then
f(i)=f(i)+h(k)*SGN(q(k)) 'io(k)
r(i)=r(i)+s(k)*ABS(q(k))
ELSEIF (ABS(jo(k))-1)=i then
f(i)=f(i)+h(k)*(-SGN(q(k))) 'io(k)
r(i)=r(i)+s(k)*ABS(q(k))
END IF
NEXT k
dq(i)= (-1)* f(i)/r(i)/2
NEXT i
FOR k= 0 TO m
IF jo(k)= 0 THEN
q(k)=q(k)+dq(ABS(io(k)) - 1)
ELSE
q(k)=q(k)+dq(ABS(io(k)) - 1) + dq(ABS(jo(k)) - 1)
END IF
NEXT k
FOR i=0 TO n
IF ABS(F(i))<=ep THEN GOTO s5
ko=ko+1
GOTO s0
s5: NEXT i
PRINT TAB(10);"闭合差允许值ep=";ep;"(m)";TAB(40);"循环次数ko=";ko
PRINT TAB(10);"环数n=";n+1;TAB(40);"管段数m=";m+1
PRINT "编号k 管长L(m) 管径d(m) 管道摩阻系数s 水头损失h(m) 流量q(m3/s) 流速v(m/s)"
FOR i= 0 TO m
IF d(i)=.1 THEN q1=0:q2=9
IF d(i)=.15 THEN q1=9:q2=15
IF d(i)=.2 THEN q1=15:q2=28.5
IF d(i)=.25 THEN q1=28.5:q2=45
IF d(i)=.3 THEN q1=45:q2=68
IF d(i)=.35 THEN q1=68:q2=96
IF d(i)=.4 THEN q1=96:q2=130
IF d(i)=.45 THEN q1=130:q2=168
IF d(i)=.5 THEN q1=168:q2=238
IF d(i)=.6 THEN q1=237:q2=355
IF d(i)=.7 THEN q1=355:q2=490
IF d(i)=.8 THEN q1=490:q2=685
IF d(i)=.9 THEN q1=685:q2=822
IF d(i)=1 THEN q1=822:q2=1120
IF ABS(q(i))>=q1/1000 and ABS(q(i))<=q2/1000 THEN
COLOR 15
ELSE
COLOR 4
END IF
PRINT TAB(0);i+1;TAB(8);L(i);TAB(17);
PRINT USING"##.##";d(i);
PRINT TAB(26);USING"#####.##";s(i);TAB(41);
PRINT USING"##.##";SGN(q(i))*H(i);TAB(53);
PRINT USING"##.####";q(i);TAB(67);
PRINT USING"#.###";4*q(i)/3.1415926#/(d(i)^2)
IF ABS(q(i))<q1/1000 OR ABS(q(i))>q2/1000 THEN
u=u+1
COLOR 15
IF ABS(q(i))<q1/1000 THEN PRINT "管径偏大,请重新输入管径值(米)"
IF ABS(q(i))>q1/1000 THEN PRINT "管径偏大,请重新输入管径值(米)"
PRINT "d("+STR$(i)+")";
INPUT d(i)
s(i)=10.293*t*t*L(i)/(d(i)^5.33):h(i)=s(i)*q(i)*q(i)
END IF
IF u>0 THEN GOTO s6
END
Data 0.01, 6, 17, 0.014
Data 800, 0.4, 95, 1, 0
Data 900, 0.3, 47, 2, 0
Data 1000, 0.2, 20, 3, 0
Data 600, 0.4, 100.6, -1, 0
Data 600, 0.3, 28.8, 1, -2
Data 600, 0.2, 12, 2, -3
Data 600, 0.2, 12.2, -3, 0
Data 800, 0.4, 60, -1, -4
Data 900, 0.3, 40, -2, -5
Data 1000, 0.15, 3, 3, -6
Data 700, 0.3, 30.6, -4, 0
Data 700, 0.25, 25, 4, -5
Data 500, 0.2, 17.7, 5, -6
Data 600, 0.25, 26.3, -6, 0
Data 800, 0.25, 28.84, -5, 0
Data 1100, 0.2, 32.84, -5, 0
Data 600, 0.3, 8.26, 6, 0