Страница: 1 |
|
Вопрос: Подскажите
|
Добавлено: 11.02.04 12:41
|
|
Автор вопроса: ttt | ICQ: 336265667
|
Подскажите пожалуйста как вывести результат вычислений (на экран, либо в файл). И как вызвать эту функцию с клика. Вот код, который считает:
Public Function LESGaussSolve(ByRef A_() As Double, _ ByVal N As Long, _ ByRef X() As Double, _ ByVal Epsilon As Double) As Boolean Dim Result As Boolean Dim A() As Double Dim k As Long Dim u As Long Dim m As Long Dim j As Long Dim i As Long Dim t As Double A = A_
ReDim x(1 To n) u = 0 Result = True Do u = u+1 k = u Do While Abs(a(k,u))<=Epsilon And k<n k = k+1 Loop If k<>n Or Abs(a(n,u))>Epsilon then If k<>u then m = u Do t = a(u,m) a(u,m) = a(k,m) a(k,m) = t m = m+1 Loop Until Not m<=n+1 End If j = n+1 Do a(u,j) = a(u,j)/a(u,u) j = j-1 Loop Until Not j>=u m = n+1 If k+1<=n then i = k+1 Do j = u+1 Do a(i,j) = a(i,j)-a(i,u)*a(u,j) j = j+1 Loop Until Not j<=m i = i+1 Loop Until Not i<=n End If Else Result = False End If Loop Until Not (u<>n And Result) If Result then i = n Do x(i) = a(i,m) If i<>1 then k = i-1 Do a(k,m) = a(k,m)-a(k,i)*x(i) k = k-1 Loop Until Not k>=1 End If i = i-1 Loop Until Not i>=1 End If
LESGaussSolve = Result End Function
Ответить
|
Номер ответа: 1 Автор ответа: Mikhael
ICQ: 138809268
Вопросов: 15 Ответов: 14
|
Профиль | | #1
|
Добавлено: 11.02.04 14:44
|
Ставишь на форму кнопку. 2 раза кликаешь на ней. В теле процедуры пишешь...... 1) если нужно просто вывести на экран, то ставишь на форму метку Label. Затем пишешь Label.Caption = Str (LESGaussSolve) На самом деле функция Str (переводит число в строку) и не совсем нужна, но так будет правильнее. 2) для вывода в файл: open имя файла for output as #1 print #1 , LESGaussSolve close #1
Ответить
|
Номер ответа: 3 Автор ответа: ttt
ICQ: 336265667
Вопросов: 1 Ответов: 1
|
Профиль | | #3
|
Добавлено: 11.02.04 17:32
|
Да все так и есть. Входная информация - это матрица. Вычисляется оптимальное решение. Выходная информация - тоже матрица.
Ответить
|
Страница: 1 |
Поиск по форуму