IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> решение методом Крамера
FantomasiK
сообщение 18.12.2005 20:28
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 10
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


помогите исправить

x1+2x2+3x3-2x4=6
x1-x2-2x3-3x4=8
3x1+2x2-x3+2x4=4
2x1-3x2+2x3+x4=-8
вот, что у меня получилось, только оно выдает ошидку 116...Первый раз с этой ошибкой встречаюсь...116 Must be in 8087 mode to compile this (Для компиляции необходим режим 8087). Что за режим незнаю...исправьте прогу плиз...
Const n = 4;

Type
Equation = Array[1 .. n, 1 .. Succ(n)] Of Double;
matrix =
Array[1 .. n, 1 .. n] Of Double;
Const
a: Equation =
((1,2,3,-2,6),
(1,-1,-2,-3,8),
(3,2,-1,2,4),
(2,-3,2,1,-8));
Procedure GetMatrix(wout: Integer; Var m: matrix);
Var i, j: Integer;
Begin
For i:= 1 To n Do
For j:= 1 To n Do
If j <> wout Then m[i,j]:=a[i,j] { "в этом месте ошибка" }
Else m[i,j]:=a[i,Succ(n)]
End;
Function Det(a: matrix; n: integer): Double;
Var i, j, k: Integer; d: Double;
Const
Eps = 10E-6;
Begin
For i := 1 To Pred(n) Do
Begin
If Abs(a[i, i]) < Eps Then
Begin
Det := 0.0; Exit
End;
For j := Succ(i) To n Do
Begin
d := a[j, i] / a[i, i];
For k := i To n Do
a[j, k] := a[j, k] - d * a[i, k];
End;
End;
d := 1.0;
For i := 1 To n Do
d := d * a[i, i];
Det := d
End;
Var
i: Integer;
mx: matrix;
Determ: Double;
begin
GetMatrix(Succ(n), mx);
Determ := Det(mx, n);
If Abs(Determ) < 1E-6 Then
Writeln( 'Opredelitel ishodnoi matrici = 0' )
Else
For i := 1 To n Do
Begin
GetMatrix(i, mx);
WriteLn( 'x(', i, ') = ', (Det(mx, n) / Determ):7:4 )
End
end.


Сообщение отредактировано: volvo - 6.11.2006 16:29
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 7:13
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"