Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
27
Добавлен:
30.04.2013
Размер:
1.94 Кб
Скачать
Program metodGauss;{Џа®Ја ¬¬  ­ ЇЁб ­  ”Ё«ЁЇЇ®ўл¬ Ђ­¤аҐҐ¬ ЈагЇ  ђќ0301
—Ёб«Ґ­­лҐ ¬Ґв®¤л « Ў  1 ¬Ґв®¤ ѓ гбб  }
Uses crt;
Const n1 = 3;
n2 = 4;
{
n1 - chislo strok
n2 - chislo stolbcov
}
Type Imas = array[1..n1+1] Of Real;
Tmas = array[1..n2] Of Imas;

Procedure masIn (Var a:Tmas; const n1,n2:integer);
Var i,j:Integer;
Begin
For i:=1 To n1 Do
For j:=1 To n2 Do
Begin
Write('a(',i,',',j,')=');
Readln(a[i,j]);
End;
For i:=1 To n1 Do
If a[i,i]=0 Then
Begin
Writeln('ЌҐ ўлЇ®«­Ґ­л гб«®ўЁп ЇаЁўЁ¤Ґ­Ёп ¬ ваЁжл');
Readln;
Break;
End;
writeln('Џ®§¤а ў«пҐ¬ ¬ ббЁў ўўҐ¤с­. Џа®¤®«¦Ёвм?');
readln;
clrscr;

end;


procedure masout(Var a:tmas; const n1, n2:integer);
var i,j:integer;
Begin
for i:=1 to n1 do begin writeln;
for j:=1 to n2 do begin
write (a[i,j]:0:3,' ');
end;
end;
end;


Procedure Gauss (Var a:Tmas; Const n1,n2:Integer);
Var i,j,k,n:Integer;
t:Real;
Begin
For i:=1 To n1-1 Do
Begin
t:=a[i,i];
For k:=1 To n2 Do
a[i,k]:=a[i,k]/t;
For n:=i+1 To n1 Do
Begin
t:=a[n,i];
For j:=1 To n2 Do
a[n,j]:=a[n,j]-t*a[i,j];
writeln('Џа®¬Ґ¦гв®з­ п ¬ ваЁж ');
masout(a,n1,n2);
readln;
End;
End;
End;



Procedure Res(Const a:Tmas; Const n1:Integer; Var x:Imas);
Var i,k:Integer;
s:Real;
Begin
x[n1]:=a[n1,n1+1]/a[n1,n1];
For i:=n1-1 DownTo 1 Do
Begin
s:=0;
For k:=i+1 To n1 Do
s:=s+a[i,k]*x[k];
x[i]:=a[i,n1+1]-s;
End;
End;


Var j:integer;
a:Tmas;
x:Imas;

Begin {Main}
clrscr;
masIn(a,n1,n2);
writeln('€б室­ п ¬ ваЁж :');
masOut(a,n1,n2);
readln;
Gauss(a,n1,n2);
Res(a,n1,x);
writeln;
write('ЋвўҐв: ');
For j:=1 To n1 Do
Write('x',j,'=',x[j]:0:3,' ');
Readln;
End.
Соседние файлы в папке laba 1 Реш Лин Ур