Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2012, 15:29   #1
Оля_029
Новичок
Джуниор
 
Регистрация: 20.12.2012
Сообщений: 3
По умолчанию Программа в бейсике!

Помогите пожалуйста найти ошибку...
DIM Eps AS SINGLE
CONST n = 2
DIM i AS INTEGER, j AS INTEGER
DIM k AS INTEGER, d AS DOUBLE
Private Sub Command1_Click()
DIM A(1 TO n, 1 TO n) AS DOUBLE
DIM b(1 TO n) AS DOUBLE
DIM dx(1 TO n) AS DOUBLE
DIM it AS INTEGER
DIM x0 AS DOUBLE
DIM y0 AS DOUBLE
x0 = VAL(InputBox("Vvedite x0", x0))
y0 = VAL(InputBox("Vvedite y0", y0))
Eps = VAL(InputBox("Vvedite eps", Eps))
PRINT "Vxodnye dannye"
PRINT "x0="; x0
PRINT "y0="; y0
PRINT "eps="; Eps
'-F1(x0,y0)=dF1dX(x0,y0)*dx(1)+dF1dY( x0,y0)*dx(2)
'-F2(x0,y0)=dF2dX(x0,y0)*dx(1)+dF2dY( x0,y0)*dx(2)
it = 0
DO
it = it + 1
b(1) = -F1(x0, y0)
b(2) = -F2(x0, y0)
FOR i = 1 TO n
FOR k = 1 TO n
A(i, k) = fxy(x0, y0, i, k)
NEXT k
NEXT i
CALL Gauss(A(), b(), dx())
x0 = x0 + dx(1)
y0 = y0 + dx(2)
LOOP UNTIL Normal(dx()) < Eps
PRINT "Resultat"
PRINT "x="; x0
PRINT "y="; y0
PRINT "F1(x,y)="; F1(x0, y0)
PRINT "F2(x,y)="; F2(x0, y0)
PRINT "kol-vo iteraziy N ="; Str(it)
End Sub
Private Function F1(x As Double, y As Double) As Double
F1 = 2 * x * x - y
End Function
Private Function F2(x As Double, y As Double) As Double
F2 = 5 * x - y * y - 1
End Function
Public Function fxy(x As Double, y As Double, i As Integer) As Double
IF i = 1 THEN
IF k = 1 THEN
fxy = 4 * x
ELSE
fxy = -1
END IF
ELSE
IF k = 1 THEN
fxy = 5
ELSE
fxy = -2 * y
END IF
END IF
End Function
Private Function Normal(x() As Double) As Double
d = 0
FOR i = 1 TO n
d = d + x(i) ^ 2
NEXT i
Norma = SQR(d)
End Function
Private Sub Gauss(Al() As Double, b() As Double, x() As Double)
FOR i = 1 TO n - 1
FOR k = i + 1 TO n
d = A(k, i) / A(i, i)
FOR j = i TO n
A(k, j) = A(k, j) - A(i, j) * d
NEXT j
b(k) = b(k) - b(i) * d
NEXT k
NEXT i
d = 1
FOR i = 1 TO n
d = d * A(i, i)
NEXT i
IF d = 0 THEN
MsgBox "Yabian raven nuly", vbOKOnly
EXIT DEF
END IF
x(n) = b(n) / A(n, n)
FOR i = n - 1 TO 1 STEP -1
FOR j = i + 1 TO n
b(i) = b(i) - A(i, j) * x(j)
NEXT j
x(i) = b(i) / A(i, i)
NEXT i
End Sub
Оля_029 вне форума Ответить с цитированием
Старый 20.12.2012, 16:06   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Оля_0290, это что? Тест такой, на тему, "найдите семь отличий в рисунке"?
Какая ошибка? Каие данные? что должно вводиться? Что должно получиться?
И код нужно соответствующим образом оформлять.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 20.12.2012, 19:18   #3
Оля_029
Новичок
Джуниор
 
Регистрация: 20.12.2012
Сообщений: 3
По умолчанию

Задание: решение системы нелинейных уравнений методом ньютона.
2*x^2-y=0
5*x-y^2=1
там много ошибок. но в начале где-то где написано prrivate sub пишет ошибку expected: end-of-statement
Оля_029 вне форума Ответить с цитированием
Старый 20.12.2012, 19:21   #4
Оля_029
Новичок
Джуниор
 
Регистрация: 20.12.2012
Сообщений: 3
По умолчанию

Если не сможете ошибки найти, помогите пожалуйста другую программу написать можно в паскале можно в бейсике же.
Оля_029 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа на бейсике marisha12345 Помощь студентам 2 15.04.2011 21:34
Программа на Бейсике marisha12345 Помощь студентам 2 09.04.2011 08:36
Задание на бейсике Duran Помощь студентам 3 08.03.2011 14:19
программа на бейсике Дарьюша Помощь студентам 2 17.02.2011 14:02