Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ метод Гаусса

Автор: NEXT 21.12.2007 23:57

Всем привет!!!Вот нашел Решение систем линейных уравнений методом Гаусса

uses crt;

const
nn = 10;
type
Matrix = array[1..NN,1..NN+1] of real;

(* построчный ввод матрицы *)
Procedure ReadMatr(var A:Matrix; var n:word );
var
i, j, m: word;
begin
repeat
write('Введите количество линейных уравн. в системе: '); 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;

(* построчный вывод матрицы *)
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.


Помогите пожалуйста расставить комментарии, а то у меня не получается



Автор: Ozzя 22.12.2007 15:06

Цитата
Помогите пожалуйста расставить комментарии, а то у меня не получается

Как не получается?
Ставишь фигурную скобку левую, потом текст, потом правую. И всё. Комментарии введены.

Автор: NEXT 22.12.2007 17:14

Цитата(Ozzя @ 22.12.2007 11:06) *

Как не получается?
Ставишь фигурную скобку левую, потом текст, потом правую. И всё. Комментарии введены.



Ну это то ясно, а что писать в комментариях!!

Автор: andriano 22.12.2007 19:29

В комментариях обычно пишется ЦЕЛЬ производимого действия.
Например, такой коментарий не несет смысла:
Counter := 0; {обнуляем Counter}
а вот такой - вполне осмыслен:
Counter := 0; {начинаем подсчет строк с начала}

Автор: NEXT 22.12.2007 23:49

Цитата(andriano @ 22.12.2007 15:29) *

В комментариях обычно пишется ЦЕЛЬ производимого действия.
Например, такой коментарий не несет смысла:
Counter := 0; {обнуляем Counter}
а вот такой - вполне осмыслен:
Counter := 0; {начинаем подсчет строк с начала}



Вот я не могу написать ЦЕЛЬ производимого действия, не понимаю,
помогите пожалуйста написать!!!!!

Автор: andriano 23.12.2007 0:46

А что ты сам сделал?