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

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

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

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

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

textual
Листинг программы
  1. {uses SysUtils} //Раскоментируй это, если у тебя не PascalABC.NET
  2.  
  3. type
  4.   int = integer;
  5.   uint = byte;
  6.   list = array of int;
  7.   matrix = array of list;
  8.  
  9. procedure quicksort(var mas:list; first, last:int); //Быстрая сортировка
  10. var i, l, x, buf:int;
  11. begin
  12.   if not(first < last) then
  13.     exit;
  14.   x:= mas[(first + last) div 2];
  15.   i:= first;
  16.   l:= last;
  17.   while (i <= l) do
  18.   begin
  19.     while (mas[i] > x) do //Для возрастания поставь <
  20.       inc(i);
  21.     while (mas[l] < x) do //Для возрастания поставь >
  22.       dec(l);
  23.     if (i <= l) then
  24.     begin
  25.       buf:= mas[i];
  26.       mas[i]:= mas[l];
  27.       mas[l]:= buf;
  28.       inc(i);
  29.       dec(l);
  30.     end;
  31.   end;
  32.   quicksort(mas, first, l);  
  33.   quicksort(mas, i, last);
  34. end;
  35.  
  36. var
  37.   arr:matrix;
  38.   i, j:uint;
  39.  
  40. begin
  41.   writeln('Введите n - линейный размер матрицы');
  42.   read(i);
  43.   SetLength(arr, i);
  44.   writeln('Введите матрицу размером n x n:');
  45.   for i:= low(arr) to high(arr) do //Здесь вместо low и high можно поставить 0 и n - 1
  46.   begin
  47.     SetLength(arr[i], Length(arr));
  48.     for j:= low(arr[i]) to high(arr[i]) do
  49.       read(arr[i, j]);
  50.   end;
  51.   quicksort(arr[low(arr) + 1], low(arr), high(arr)); //В дальнейшем low(arr) + 1 эквивалентно 1
  52.   writeln('Вторая строка по убыванию:');
  53.   for j:= low(arr[low(arr) + 1]) to high(arr[low(arr) + 1]) do
  54.     write(arr[low(arr) + 1, j], ' ');
  55. end.

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

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

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


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

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

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

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

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

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