Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Ошибка в программе


Автор: SIMarOK 22.12.2004, 20:55
Код

Public TOC
Public Kolvo
Private Sub Command1_Click()
TOC = 0.01
z = Val(InputBox("Ââåäèòå z", "Ââîä"))
If z < -1.5 Or z > 0.5 Then
 Call MsgBox("Îøèáêà! ×èñëî äîëæíî áûòü áîëüøå -1.5 è ìåíüøå 0.5!", vbOKOnly, "Îøèáêà")
 List2.Clear
 Exit Sub
End If
TOC = Val(InputBox("Ââåäèòå òî÷íîñòü (ïî óìîë÷àíèþ 0.01)", "Ââîä", "0.01"))
List1.Clear
k = Exp(0) ^ (z + 2)
r = y(z)
List1.AddItem ("Ïîëó÷åíî çíà÷åíèå: " & r)
List1.AddItem ("Äëÿ ýòîãî ïîòðåáîâàëîñü ñëîæèòü " & Kolvo & " ÷ëåíà(îâ)")
List1.AddItem ("Òî÷íîå çíà÷åíèå: " & (k))
List1.AddItem ("Àáñîëþòíàÿ ïîãðåøíîñòü: " & (Abs((r - k) / k) * 100) & "%")
Quest = MsgBox("Õîòèòå òàêæå ïðîèçâåñòè òàáóëèðîâàíèå ô-èè?", vbYesNo, "Âîïðîñ")
If Quest = vbYes Then
 Call tabul
   Else
     List2.Clear
End If
End Sub
Function y(z)
Kolvo = 1
n = 1
Sum = 0
yn = z
Do While Abs(yn) >= TOC
   Sum = Sum + yn
   n = n + 1
   Kolvo = n - 1
   yn = (2 + z) ^ n / n
Loop
y = Sum + 3 + z
End Function
Private Sub tabul()
Min = 1E+30
Max = -Min
List2.Clear
For z = -1.5 To 0.5 Step 0.01
   f = ytab(z)
   yt = Exp(0) ^ (z + 2)
   Pogr = Abs((f - yt) / yt) * 100
   If f < Min Then Min = f
   If f > Max Then Max = f
   List2.AddItem (Format(z, "0.00") & "  " & Format(f, "00.0000000") & "  " & Format(yt, "00.0000000") & "  " & Format(Pogr, "000.0000000") & "%")
Next z
List2.AddItem ("Max=" & Format(Max, "00.0000000") & "   Min=" & Format(Min, "00.0000000"))
End Sub
Function ytab(z)
n = 1
Sum = 0
Do While n <= Kolvo
   yn = (2 + z) ^ n / n
   Sum = Sum + yn
   n = n + 1
Loop
ytab = Sum + 3 + z
End Function

Private Sub Command2_Click()
Unload Me
End Sub




при вводе не целого числа он почемуто отказывается считать и выводит ошибку, указывая на строку yn = (2 + z) ^ n / n
помогите плиз...не вижу ошибки smile

Автор: Akina 22.12.2004, 21:13
Глюка Барсика. Преобразуй к виду:

Код

yn = (2 + z) ^ n
yn = yn / n


Автор: SIMarOK 22.12.2004, 22:25
так всеровно ошибка возникаетsmile
Пробывал 2ку убрать и все пашет, он почемуто числа с запятой с целыми прибавить не может, допустим 0.1...

Автор: SIMarOK 22.12.2004, 22:59
Вот я не сооброзил то smile
smile
надо было то всеглишь не точку а запятую ставить. басик не различает по всей видимости smile

Автор: Naghual 22.12.2004, 23:59
Это не барсик не различает!
Это ты не отличаеш делитель дробной части (в настройках выни) от иных символов.

Как разделитель целой и дробной части числа, VB может использовать любой иной символ, определенный в настройках ОС. (если он не является предустановленным, математическим, либо несет специальную нагрузку)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)