프로그램 코드 좀 고쳐 주세요~(비주얼 베이직)
제가 좌표를 넣을때 각 꼭지점까지의 거리가 최소가 되는 점을 찾는 프로그램을 만들고 있는데요.
Function F(x As Double, y As Double)
Dim result As Double
result = Sqr(CDbl(x) * CDbl(x) + CDbl(y) * CDbl(y)) + Sqr((CDbl(p) - CDbl(x)) * (CDbl(p) - CDbl(x)) + (CDbl(q) - CDbl(y)) * (CDbl(q) - CDbl(y))) + Sqr((CDbl(x) - CDbl(r)) * (CDbl(x) - CDbl(r)) + CDbl(y) * CDbl(y))
F(x, y) = result
End Function
Private Sub Command1_Click()
Dim p, q, r, gg, Start, Distan, t, g As Double
p = CDbl(Text2.Text)
q = CDbl(Text3.Text)
r = CDbl(Text4.Text)
Start = 0
gg = 0
Distan = F(0, 0)
t = 0
g = 0
If Start <= q Then
For Start = 0 To Count Step 0.0001
g = Start * (CDbl(q) / CDbl(p))
t = CDbl(r) - Start * (CDbl(q) / (CDbl(r) - CDbl(p)))
If gg <= t Then
For gg = g To Count Step 0.0001
If Distan > F(CDbl(gg), CDbl(Start)) Then
Distan = F(CDbl(gg), CDbl(Start))
End If
Next gg
End If
Next Start
End If
Label8.Caption = gg
Label9.Caption = Start
End Sub
이렇게 코드를 만들었더니, "스택공간이 부족합니다."
라고 뜨네요 어떻게 고쳐야 되나요??
함수 리턴시에...
가 아니라
로 해줘야 하지 않을까요?
F(x, y)하면 재귀 함수처럼 되버려서 스택 오버플로우가 발생할 것 같은데요.
그렇군요
제가 정식으로 배운게 아니라 자꾸 프로그램 짤때마다 실수를 하네요
감사합니다.
댓글 달기