很菜的问题!!!quick basic 转换为VB???

qingniao8 2004-04-19 09:33:03
N=5 : CN=0
DIM H(N) ,U(N)
FOR I =0 TO N-1
READ H(I), U(I)
NEXT I
DATA 0,0,0.5 ,1,1,2,1.5,3,2,4
10 INPUT"U=";U
IF U<U(0) OR U>U(N-1) THEN 10
FOR K= 1 TO N-1
IF U<U(K) THEN
I=K-1
GOTO 15
ENDIF
NEXT K
IF U=U(4) THEN
H=H(4)
GOTO 20
ELSE END
ENDIF
15 H=H(I)+(H(I+1)-H(I))*(U-U(I))/(U(I+1)-U(I))
20 PRINT"H="; H
CN = CN+1
IF CN<N THEN 10
END
...全文
66 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
qingniao8 2004-04-20
  • 打赏
  • 举报
回复
谢谢大家了!
supergreenbean 2004-04-20
  • 打赏
  • 举报
回复
//豆豆你學了多少語言-_-汗
偶学了中文,英文,偶家本地方言,还有一个计算机语~~呵呵
KiteGirl 2004-04-20
  • 打赏
  • 举报
回复
大概根据源程序是这么改的,结果是不是一样就不知道了。

Private N As Long
Private U() As Single
Private H() As Single
Private CN As Long

Private Sub Command1_Click()
Dim tU As Single
Dim K As Single
Dim H_Out_1 As Boolean
Dim H_Out_2 As Boolean
Dim tH As Single

If IsNumeric(Text1.Text) Then tU = CSng(Text1.Text)

If tU >= U(0) And tU <= U(N - 1) Then

For K = 1 To N - 1
H_Out_1 = tU < U(K)
I = H_Out_1 And (K - 1)
tH = H_Out_1 And (H(I) + (H(I + 1) - H(I)) * (tU - U(I)) / (U(I + 1) - U(I)))
CN = CN + (H_Out_1 And 1)
If H_Out_1 Then tH_Out_String = tH_Out_String & "H=" & tH & Chr(13) & Chr(10)
Next K
H_Out_2 = (tU = U(4))
tH = (H_Out_2 And H(4)) + ((Not H_Out_2) And tH)
H_Out = H_Out_1 Or H_Out_2
CN = CN + (H_Out_2 And 1)
If H_Out_2 Then tH_Out_String = tH_Out_String & "H=" & tH & Chr(13) & Chr(10)
Text2.Text = tH_Out_String
Command1.Enabled = CN < N
Text1.Enabled = CN < N
End If
End Sub

Private Sub Form_Load()
N = 5: CN = 0
ReDim U(N), H(N)
For I = 0 To N - 1
U(I) = I * 0.5
H(I) = I
Next
End Sub
射天狼 2004-04-19
  • 打赏
  • 举报
回复
还有这耐心!!!!
qiqunet 2004-04-19
  • 打赏
  • 举报
回复
Private Sub Form_Click()
Const N = 5
Dim H(N) As Single, U(N) As Single, aU As Single, aH As Single, CN As Integer
CN = 0
datastr = Split("0, 0, 0.5, 1, 1, 2, 1.5, 3, 2, 4", ",")
For I = 0 To N - 1
H(I) = datastr(I * 2)
U(I) = datastr(I * 2 + 1)
Next I

10: aU = InputBox("U=")
If aU < U(0) Or aU > U(N - 1) Then GoTo 10
For K = 1 To N - 1
If aU < U(K) Then
I = K - 1
GoTo 15
End If
Next K
If aU = U(4) Then
aH = H(4)
GoTo 20
Else: Exit Sub
End If
15: aH = H(I) + (H(I + 1) - H(I)) * (aU - U(I)) / (U(I + 1) - U(I))
20: Print "H=" & aH
CN = CN + 1
If CN < N Then GoTo 10
End Sub
supergreenbean 2004-04-19
  • 打赏
  • 举报
回复
Private Sub Form_Load()
On Error Resume Next
Dim sngValU As Single, sngValH As Single, avData As Variant
Dim N As Long, CN As Long, I As Long, K As Long
' N = 5: CN = 0
N = 5: CN = 0
' Dim H(N), U(N)
Dim H() As Single, U() As Single
ReDim H(N - 1), U(N - 1)
' For I = 0 To N - 1

avData = Split("0, 0, 0.5, 1, 1, 2, 1.5, 3, 2, 4", ",")
For I = 0 To N - 1
' READ H(I), U(I)
H(I) = avData(I * 2)
U(I) = avData(I * 2 + 1)
Debug.Print H(I), U(I)
' Next I
Next I
' Data 0, 0, 0.5, 1, 1, 2, 1.5, 3, 2, 4
'10 INPUT"U=";U
10 sngValU = CSng(InputBox("U="))
' If U < U(0) Or U > U(N - 1) Then GoTo 10
If sngValU < U(0) Or sngValU > U(N - 1) Then GoTo 10
' For K = 1 To N - 1
For K = 1 To N - 1
' If U < U(K) Then
If sngValU < U(K) Then
' I = K - 1
I = K - 1
' GoTo 15
GoTo 15
' End If
End If
' Next K
Next K
' If U = U(4) Then
If sngValU = U(4) Then
' H = H(4)
sngValH = H(4)
' GoTo 20
GoTo 20
' Else: End
Else
End
' End If
End If
'15 H = H(I) + (H(I + 1) - H(I)) * (U - U(I)) / (U(I + 1) - U(I))
15 sngValH = H(I) + (H(I + 1) - H(I)) * (sngValU - U(I)) / (U(I + 1) - U(I))
'20 Print "H="; H
20 Debug.Print "H="; sngValH
' CN = CN + 1
CN = CN + 1
' If CN < N Then GoTo 10
If CN < N Then GoTo 10
' End
End
End Sub
daisy8675 2004-04-19
  • 打赏
  • 举报
回复
豆豆你學了多少語言-_-汗
flyingscv 2004-04-19
  • 打赏
  • 举报
回复
mark
KiteGirl 2004-04-19
  • 打赏
  • 举报
回复
上面的虽然依照原程序,但并不是典型VB程序。少等!我给你一个VB的程序。
liyan010 2004-04-19
  • 打赏
  • 举报
回复
佩服楼上兄弟们的耐心

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧