Написать процедуру транспонирования матрицы - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Описать процедуру Transp(A, M), выполняющую транспонирование (то есть зеркальное отражение относительно главной диагонали) квадратной вещественной матрицы A порядка M. Матрица A является входным и выходным параметром. Используя эту процедуру, транспонировать данную матрицу A порядка M.

Решение задачи: «Написать процедуру транспонирования матрицы»

textual
Листинг программы
  1. uses crt;
  2. const nmax=10;
  3. type mtr=array[1..nmax,1..nmax] of integer;
  4. procedure trans(var a:mtr;m:integer);
  5. var i,j,x:integer;
  6. begin
  7. for i:=2 to m do
  8. for j:=1 to i-1 do
  9.  begin
  10.   x:=a[i,j];
  11.   a[i,j]:=a[j,i];
  12.   a[j,i]:=x;
  13.  end;
  14. end;
  15. var a:mtr;
  16.     n,i,j:integer;
  17. begin
  18. clrscr;
  19. randomize;
  20. repeat
  21. write('Размер матрицы от 2 до ',nmax,' n=');
  22. readln(n);
  23. until n in [2..nmax];
  24. writeln('Исходная матрица:');
  25. for i:=1 to n do
  26.  begin
  27.   for j:=1 to n do
  28.    begin
  29.     a[i,j]:=random(50);
  30.     write(a[i,j]:3);
  31.    end;
  32.   writeln;
  33.  end;
  34. trans(a,n);
  35. writeln('Транспонированная матрица:');
  36. for i:=1 to n do
  37.  begin
  38.   for j:=1 to n do
  39.   write(a[i,j]:3);
  40.   writeln;
  41.  end;
  42. readln
  43. end.

Объяснение кода листинга программы

  1. В начале кода подключается библиотека crt, которая обеспечивает работу с консолью.
  2. Затем определяется константа nmax, которая ограничивает размер матрицы до 10 строк и 10 столбцов.
  3. Определяется тип данных mtr, который представляет собой массив целых чисел размером nmax x nmax.
  4. Создается процедура trans, которая принимает матрицу a и ее размер m в качестве параметров.
  5. Внутри процедуры trans используется два вложенных цикла for для транспонирования матрицы. Первый цикл идет от 2 до m, второй - от 1 до i-1.
  6. Внутри циклов переменная x инициализируется значением a[i,j], а значения a[i,j] и a[j,i] меняются местами.
  7. Затем определяется переменная a, которая представляет собой матрицу размером n x n.
  8. В цикле чтения размеров матрицы с клавиатуры проверяется, что введенный размер находится в диапазоне от 2 до nmax.
  9. После того, как размер матрицы определен, выводится исходная матрица с помощью цикла for, аналогичного тому, который использовался внутри процедуры trans.
  10. Затем вызывается процедура trans, передавая ей матрицу a и ее размер m.
  11. После того, как транспонированная матрица выведена на экран, читается введенное с клавиатуры значение.
  12. Цикл чтения размеров матрицы повторяется до тех пор, пока введенный размер не будет находиться в диапазоне от 2 до nmax.
  13. В конце программы выводится сообщение о том, что транспонированная матрица была успешно получена.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы