Напечатать элементы второй строки матрицы в порядке убывания - Pascal

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

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

Дано квадратную матрицу размерности n x n.Напечатать элементы второй строки в порядке убывания.

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

textual
Листинг программы
{uses SysUtils} //Раскоментируй это, если у тебя не PascalABC.NET
 
type 
  int = integer;
  uint = byte;
  list = array of int;
  matrix = array of list;
  
procedure quicksort(var mas:list; first, last:int); //Быстрая сортировка
var i, l, x, buf:int;
begin
  if not(first < last) then
    exit;
  x:= mas[(first + last) div 2];
  i:= first;
  l:= last;
  while (i <= l) do
  begin
    while (mas[i] > x) do //Для возрастания поставь < 
      inc(i);
    while (mas[l] < x) do //Для возрастания поставь > 
      dec(l);
    if (i <= l) then
    begin
      buf:= mas[i];
      mas[i]:= mas[l];
      mas[l]:= buf;
      inc(i);
      dec(l);
    end;
  end;
  quicksort(mas, first, l);  
  quicksort(mas, i, last);
end; 
 
var 
  arr:matrix;
  i, j:uint;
  
begin
  writeln('Введите n - линейный размер матрицы');
  read(i);
  SetLength(arr, i);
  writeln('Введите матрицу размером n x n:');
  for i:= low(arr) to high(arr) do //Здесь вместо low и high можно поставить 0 и n - 1
  begin
    SetLength(arr[i], Length(arr));
    for j:= low(arr[i]) to high(arr[i]) do
      read(arr[i, j]);
  end;
  quicksort(arr[low(arr) + 1], low(arr), high(arr)); //В дальнейшем low(arr) + 1 эквивалентно 1
  writeln('Вторая строка по убыванию:');
  for j:= low(arr[low(arr) + 1]) to high(arr[low(arr) + 1]) do
    write(arr[low(arr) + 1, j], ' ');
end.

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

  1. Объявление типов переменных:
    • 'int' как псевдоним для 'integer'
    • 'uint' как псевдоним для 'byte'
    • 'list' как массив целых чисел
    • 'matrix' как массив массивов целых чисел (матрица)
  2. Процедура quicksort:
    • Процедура быстрой сортировки, использующая рекурсию
    • Принимает в качестве параметров массив 'mas', начальный индекс 'first' и конечный индекс 'last'
  3. Объявление переменных:
    • 'arr' как матрица
    • 'i' и 'j' как целые числа без знака
  4. Основная часть программы:
    • Запрашивается у пользователя размер матрицы 'n'
    • Пользователь вводит элементы матрицы 'arr'
    • Применяется быстрая сортировка к массиву, соответствующему второй строке матрицы, в порядке убывания
    • Выводится отсортированная вторая строка матрицы.

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


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

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

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