В каждой из матриц поменять местами две строки - Pascal

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

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

В каждой из матриц: А(3 строки, 4 столбца) и В(5 строк, 5 столбцов) поменять местами две строки: в матрице А - строки 2 и 3, в матрице В - строки 2 и 4. Для обмена в матрице строк с произвольными номерами использовать процедуру.

Решение задачи: «В каждой из матриц поменять местами две строки»

textual
Листинг программы
  1. type
  2.     TLine = Array[Byte] Of ShortInt;
  3.     TArray = Array[Byte] Of TLine;
  4.     TMatrix = record
  5.         arr: TArray;
  6.         n, m: Byte;
  7.     end;
  8. procedure PrintMatrix(const matr: TMatrix);
  9. var
  10.     i, j: Byte;
  11. begin
  12.     with matr do
  13.         for i := 0 to n - 1 do
  14.         begin
  15.             for j := 0 to m - 1 do
  16.                 Write(arr[i, j]:4);
  17.             WriteLn;
  18.         end;
  19. end;
  20. procedure GenerateMatrix(var matr: TMatrix);
  21. var
  22.     i, j: Byte;
  23. begin
  24.     with matr do
  25.     begin
  26.         repeat
  27.             Write('Input n=');
  28.             ReadLn(n);
  29.         until (n > 0);
  30.         repeat
  31.             Write('Input m=');
  32.             ReadLn(m);
  33.         until (m > 0);
  34.         for i := 0 to n - 1 do
  35.             for j := 0 to m - 1 do
  36.                 arr[i, j] := Random(199) - 99;
  37.     end;
  38.     PrintMatrix(matr);
  39. end;
  40. procedure SwapLines(var x, y: TLine);
  41. var
  42.     z: TLine;
  43. begin
  44.     z := x;
  45.     x := y;
  46.     y := z;
  47. end;
  48. var
  49.     a, b: TMatrix;
  50. begin
  51.     Randomize();
  52.     WriteLn('Matrix A:'); GenerateMatrix(a);
  53.     WriteLn('Matrix B:'); GenerateMatrix(b);
  54.     with a do
  55.         if (n > 2)
  56.         then
  57.             SwapLines(arr[1], arr[2])
  58.         else
  59.             WriteLn('Not enough lines to swap!');
  60.     WriteLn('New matrix A:'); PrintMatrix(a);
  61.     with b do
  62.         if (n > 3)
  63.         then
  64.             SwapLines(arr[1], arr[3])
  65.         else
  66.             WriteLn('Not enough lines to swap!');
  67.     WriteLn('New matrix B:'); PrintMatrix(b);
  68. end.

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

  1. Объявление типов данных:
    • TLine - массив байтовых чисел
    • TArray - массив из TLine
    • TMatrix - запись, содержащая массив (arr), количество строк (n) и столбцов (m)
  2. Процедура PrintMatrix:
    • Принимает на вход матрицу matr.
    • Использует вложенные циклы для перебора элементов матрицы и выводит их на экран.
  3. Процедура GenerateMatrix:
    • Принимает на вход матрицу matr.
    • Запрашивает у пользователя количество строк (n) и столбцов (m).
    • Заполняет матрицу случайными числами от -99 до 99.
    • Выводит на экран полученную матрицу.
  4. Процедура SwapLines:
    • Принимает на вход две строки типа TLine - x и y.
    • Переменная z временно хранит значение x.
    • Присваивает x значение y и y значение z (получаем обмен значений между x и y).
  5. Основная программа:
    • Объявляется две матрицы a и b типа TMatrix.
    • Генерируются случайные матрицы a и b с помощью процедуры GenerateMatrix.
    • Если количество строк в матрице a больше 2, заменяются местами строки с индексами 1 и 2 с помощью процедуры SwapLines.
    • Выводится новая матрица a с измененными строками.
    • Аналогично, если количество строк в матрице b больше 3, заменяются местами строки с индексами 1 и 3.
    • Выводится новая матрица b с измененными строками.

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


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

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

15   голосов , оценка 4.067 из 5

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

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

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