Транспонирование матрицы относительно главной и побочной диагоналей
Категория: Delphi/Pascal
2012-02-09 22:01:56
Заполнение матрицы осуществляется посредством генератора случайных чисел.
а) главная диагональ:
code: #pascal
{транспонирование матрицы относительно главной диагонали} uses crt; const n=100; var mas: array[1..n,1..n] of integer; i,j,l: byte; prom: integer; begin randomize; {процедура инициализации генератора случайных чисел} clrscr; write('введите размер матрицы: '); {ввод размеров матрицы} readln(l); writeln; writeln('исходная матрица: ',^j); {вывод исходной матрицы на экран} for i:=1 to l do begin for j:=1 to l do begin mas[i,j]:=random(19); mas[i,j]:=mas[i,j]-9; write(mas[i,j]:3); end; writeln; end; writeln; for i:=2 to l do {сам процесс транспонирования} for j:=1 to i-1 do begin prom:=mas[i,j]; mas[i,j]:=mas[j,i]; mas[j,i]:=prom; end; writeln('результат транспонирования: ',^j); {вывод матрицы после преобразований} for i:=1 to l do begin for j:=1 to l do write(mas[i,j]:3); writeln; end; end.
б) побочная диагональ:
code: #pascal
{транспонирование матрицы относительно побочной диагонали} uses crt; const n=100; var mas: array[1..n,1..n] of integer; i,j,l: byte; prom: integer; begin randomize; {процедура инициализации генератора случайных чисел} clrscr; write('введите размер матрицы: '); {ввод размеров матрицы} readln(l); writeln; writeln('исходная матрица: ',^j); {вывод исходной матрицы на экран} for i:=1 to l do begin for j:=1 to l do begin mas[i,j]:=random(19); mas[i,j]:=mas[i,j]-9; write(mas[i,j]:3); end; writeln; end; writeln; for i:=1 to l-1 do {сам процесс транспонирования} for j:=l-i downto 1 do begin prom:=mas[i,j]; mas[i,j]:=mas[l-j+1,l-i+1]; mas[l-j+1,l-i+1]:=prom; end; writeln('результат транспонирования: ',^j); {вывод матрицы после преобразований} for i:=1 to l do begin for j:=1 to l do write(mas[i,j]:3); writeln; end; end.
автор: yanyk1n
Поделиться: