Поменять элементы матрицы, лежащие выше и ниже главной диагонали - Turbo Pascal

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

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

Дана матрица чисел mxm. Составить программу меняющая местами элементы лежащие выше главной диагонали с элементами лежащие ниже главной диагонали.

Решение задачи: «Поменять элементы матрицы, лежащие выше и ниже главной диагонали»

textual
Листинг программы
uses crt;
const nmax=10;
var a:array[1..nmax,1..nmax] of integer;
    n,i,j,x:integer;
begin
clrscr;
randomize;
repeat
write('Размер матрицы от 2 до ',nmax,' n=');
readln(n);
until n in [2..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=random(50);
    write(a[i,j]:3);
   end;
  writeln;
 end;
for i:=2 to n do
for j:=1 to i-1 do
 begin
  x:=a[i,j];
  a[i,j]:=a[j,i];
  a[j,i]:=x;
 end;
writeln('Обмен элементов выше главной диагонали и ниже главной диагонали');
for i:=1 to n do
 begin
  for j:=1 to n do
  write(a[i,j]:3);
  writeln;
 end;
readln
end.

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

  1. Создаётся переменная nmax со значением 10.
  2. Создаётся переменная a типа array[1..nmax,1..nmax] of integer;.
  3. Создаются переменные n, i, j, x типа integer;.
  4. Выполняется цикл repeat, который запрашивает у пользователя размер матрицы от 2 до 10.
  5. В цикле repeat выводится сообщение Размер матрицы от 2 до 10 n=.
  6. Пользователю предлагается ввести размер матрицы от 2 до 10.
  7. Полученный размер сохраняется в переменной n.
  8. Выводится сообщение Исходная матрица: для каждого размера матрицы от 2 до 10.
  9. Для каждого размера матрицы от 2 до 10 выполняется цикл for i:=1 to n do, внутри которого:
    1. Выполняется цикл for j:=1 to n do, внутри которого:
      1. Генерируется случайное число от 0 до 50 и присваивается переменной x.
      2. Присваивается переменной a[i,j] значение x.
      3. Выводится значение x (случайное число от 0 до 50).
      4. Выводится символ новой строки (\n).
      5. Выполняется операция обмена элементов a[i,j] и a[j,i] (присваивается значение a[j,i] значение a[i,j] и наоборот).
      6. Выводится значение a[i,j] (значение элемента, который был обменен).
      7. Выводится символ новой строки (\n).
      8. Выполняется операция обмена элементов a[i,j] и a[j,i] (присваивается значение a[j,i] значение a[i,j] и наоборот).
      9. Выводится значение a[i,j] (значение элемента, который был обменен).
      10. Выводится символ новой строки (\n).
  10. Выводится сообщение Обмен элементов выше главной диагонали и ниже главной диагонали.
  11. Для каждого размера матрицы от 2 до 10 выполняется цикл for i:=1 to n do, внутри которого:
    1. Выполняется цикл for j:=1 to n do, внутри которого:
      1. Выводится значение a[i,j] (значение элемента, который был обменен).
      2. Выводится символ новой строки (\n).
  12. Выводится сообщение Readln.

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


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

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

5   голосов , оценка 3.8 из 5
Похожие ответы