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

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

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

> методом Гаусса
FantomasiK
сообщение 18.12.2005 20:54
Сообщение #1


Новичок
*

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

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


как сделать в этой задаче формат вывода нормальный, а то оно выводит всякие Е
x1+2x2+3x3-2x4=6
x1-x2-2x3-3x4=8
3x1+2x2-x3+2x4=4
2x1-3x2+2x3+x4=-8

uses crt;
const
nn = 4;
type
Matrix = array[1..NN,1..NN+1] of real;
{postro4nii vvod matrici}
Procedure ReadMatr(var A:Matrix; var n:word );
var
i,j,m:word;
begin
repeat
write('Vvedite koli4estvo lineinih yravnenii v sisteme: '); readln(N)
until (N>0) and (N<=NN);
m:=n+1;
For i:=1 to n do
begin
For j:=1 to m do
begin
write('A[',i,j,']= ');
readln(A[i,j])
end
end
end;
{Postro4nii vivod matrici}
Procedure PrintMatr(A:Matrix; n:word);
Var
i,j,m:word;
begin
m:=n+1;
For i:=1 to n do
begin
For j:=1 to m do write(A[i,j],' ');
writeln
end
end;

procedure GaussM(a:matrix;n:word; var s:byte; var x:array of real);
var
i,k,j:byte;
m,t:real;
begin
i:=1;
s:=1;
repeat
j:=i+1;
k:=i;
m:=abs(a[i,i]);
repeat
if m<abs(a[j,i])
then
begin
m:=abs(a[j,i]);
k:=j;
end;
j:=j+1
until not(j<=n);
if m<>0
then
begin
j:=i;
repeat
t:=a[i,j];
a[i,j]:=a[k,j];
a[k,j]:=t;
j:=j+1
until not(j<=n+1);
k:=i+1;
repeat
t:=a[k,i]/a[i,i];
a[k,i]:=0;
j:=i+1;
repeat
a[k,j]:=a[k,j]-t*a[i,j];
j:=j+1
until not(j<=n+1);
k:=k+1
until not(k<=n);
end
else
begin
s:=0;
end;
i:=i+1
until not((i<=n)and(s=1));
if s=1
then
begin
i:=n;
repeat
x[i]:=a[i,n+1];
j:=i+1;
while j<=n do
begin
x[i]:=x[i]-a[i,j]*x[j];
j:=j+1;
end;
x[i]:=x[i]/a[i,i];
i:=i-1
until not(i>=1);
end;
end;
var
b:array[0..nn] of real;
a:Matrix;
n,j:word;
s:byte;
Begin
readmatr(a,n);
printmatr(a,n);
writeln('press any key'); readkey;
GaussM(a,n,s,b);
for j:=1 to n do write (b[j],' ');
writeln('press any key for exit ...'); readkey
end.

Не забываем про тэги!

Сообщение отредактировано: volvo - 6.11.2006 21:46
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 2)
klem4
сообщение 18.12.2005 21:14
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Ты бы себе книгу хоть по паскалю купил ...

a : extended;
writeln(a:6:3);


6 - кол-во знаков под все число
3 - кол-во знаком, отображаемых после запятой

Сообщение отредактировано: volvo - 6.11.2006 21:47


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
FantomasiK
сообщение 18.12.2005 21:24
Сообщение #3


Новичок
*

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

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


Да про мантиссу я все это знаю...просто я незнал, что именно описать...но тем не менее СПАСИБО
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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