PDA

View Full Version : over flow



near_86
دوشنبه 20 اسفند 1386, 10:38 صبح
در ی برنامه از کد زیر استفاده می کنم
اما هر بار که اجرا میکنم از دستور زیر خطا میگیره :عصبانی++:




Dim x1 AsDecimal = 0
Dim f1(x1) AsDecimal
Dim x2 AsDecimal = 7
Dim f2(x2) AsDecimal
Dim x3 AsDecimal
Dim f3(x3) AsULong
Dim epsilon AsDecimal = 0.000001
Dim logic AsBoolean
logic = False
x3 = (x1 + x2) / 2
f1(x1) = (x1 ^ (2.1) + (7 * x1) - 8)
f2(x2) = (x2 ^ (2.1) + (7 * x2) - 8)
f3(x3) = (x3 ^ (2.1) + (7 * x3) - 8)
While logic = False
x3 = (x1 + x2) / 2
f3(x3) = (x3 ^ (2.1) + (7 * x3) - 8)
If Math.Abs(f3(x3)) < epsilon Then
TextBox1.Text = x3
logic = True
ExitSub'پایان
ElseIf (f1(x1) * f3(x3)) < 0 Then
x2 = x3
Else
x1 = x3
EndIf
EndWhile

near_86
دوشنبه 20 اسفند 1386, 13:32 عصر
از دوستان کسی نیست کمک کنه !!!

amirsajjadi
دوشنبه 20 اسفند 1386, 13:54 عصر
Dim x1 AsDecimal = 0
Dim f1(x1) AsDecimal
Dim x2 AsDecimal = 7
Dim f2(x2) AsDecimal
Dim x3 AsDecimal
Dim f3(x3) AsULong
Dim epsilon AsDecimal = 0.000001
Dim logic AsBoolean
logic = False
x3 = (x1 + x2) / 2
f1(x1) = (x1 ^ (2.1) + (7 * x1) - 8)
f2(x2) = (x2 ^ (2.1) + (7 * x2) - 8)
f3(x3) = (x3 ^ (2.1) + (7 * x3) - 8)
While logic = False
x3 = (x1 + x2) / 2
f3(x3) = (x3 ^ (2.1) + (7 * x3) - 8)
If Math.Abs(f3(x3)) < epsilon Then
TextBox1.Text = x3
logic = True
ExitSub'پایان
ElseIf (f1(x1) * f3(x3)) < 0 Then
x2 = x3
Else
x1 = x3
EndIf
EndWhile
دوست عزیز x3 مقدارش اعشاریه و شما نمیتونید شماره اندیس رو اعشاری بدید !

near_86
دوشنبه 20 اسفند 1386, 15:12 عصر
ممنون از راهنماییتون
اینکارو هم انجام دادم این برنامه از روش نصف کردن استفاده می کنه
بعد از چند بار نصف کردن باز هم همون error ایجاد میشه؟؟؟