Привет! Помогите пожалуйто! Я написал программу для решения ур-ений методом Гаусса, но мне надо, чтоб размер задовался пользователем( любой велечины), короче говоря с использованием динамических массивов.
Program gaus; uses crt; const n=3; n2=n+1; var a,b,p:array[1..n,1..n2] of real; x:array[1..n] of real; i,j,k:integer; q,c:real;
begin randomize; textbackground(0); clrscr; textcolor(3); write('ICXODHAYA MATRIX'); for i:=1 to n do begin writeln; for j:=1 to n2 do begin a[i,j]:=random(50); if j=n2 then textcolor(3) else textcolor(15); write(a[i,j]:9:2); end; end; for i:=1 to n do begin k:=0; if a[1,1]=0 then while k<n2 do begin k:=k+1; c:=a[i,k]; a[i,k]:=a[i+1,k]; a[i+1,k]:=c; end; end;
for i:=1 to n do for j:=1 to n2 do b[i,j]:=a[i,j];
for k:=1 to n do for i:=k+1 to n do if a[i,k]<>0 then begin q:=a[i,k]/a[k,k]*(-1); for j:=1 to n2 do a[i,j]:=a[i,j]+q*a[k,j]; end;
for i:=1 to n do begin c:=a[i,i]; for j:=1 to n2 do a[i,j]:=a[i,j]/c; end;
for k:=n downto 1 do for i:=k-1 downto 1 do if a[i,k]<>0 then begin q:=a[i,k]/a[k,k]*(-1); for j:=n2 downto 1 do a[i,j]:=a[i,j]+q*a[k,j]; end;
writeln; writeln; write('NEW MATRIX'); for i:=1 to n do begin writeln; for j:=1 to n2 do begin if j=n2 then textcolor(3) else textcolor(15); write(a[i,j]:9:2); end; end; writeln; writeln; textcolor(10); for i:=1 to n do writeln('x',i,'=',a[i,n2]:9:2); textcolor(3);
for i:=1 to n do x[i]:=a[i,n2];
for i:=1 to n do for j:=1 to n do for k:=1 to n do p[i,j]:=p[i,j]+b[i,k]*x[k];
writeln; writeln('IIPOBEPKA'); textcolor(10); for i:=1 to n do writeln(p[i,j]:9:2); readln; end.