считает правильно, но препод сказал, чтобы каждый раз после перестановки строк на экран выводилась обработанная матрица. Этим вопросом загнал меня в ступор. Кто знает? =(
uses crt; const n=3; var a:array[1..n,1..n] of real; b,x:array[1..n] of real; i,j,k:integer; z,r,g:real; begin clrscr; a[1,1]:=2.0;a[1,2]:=-1.0;a[1,3]:=1.0; a[2,1]:=4.0;a[2,2]:=3.0;a[2,3]:=1.0; a[3,1]:=6.0;a[3,2]:=-13.0;a[3,3]:=6.0; b[1]:=0;b[2]:=1;b[3]:=0; writeln('Матрица коэффициентов и свободных членов:'); for i:=1 to n do begin for j:=1 to n do write(a[i,j]:8:2); writeln(b[i]:8:2); end; for k:=1 to n do begin for j:=k+1 to n do begin r:=a[j,k]/a[k,k]; for i:=k to n do begin a[j,i]:=a[j,i]-r*a[k,i]; end; b[j]:=b[j]-r*b[k]; end; end; for k:=n downto 1 do begin r:=0; for j:=k+1 to n do begin g:=a[k,j]*x[j]; r:=r+g; end; x[k]:=(b[k]-r)/a[k,k]; end; writeln('Корни системы:'); for i:=1 to n do write('x[',i,']=',x[i]:0:2,' '); readln; end.
Федосеев Павел
21.02.2012 23:40
Выдели вывод матрицы в отдельную процедуру
for i:=1 to n do begin for j:=1 to n do write(a[i,j]:8:2); writeln(b[i]:8:2); end;
И вызывай её после перестановки строк.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.