Напечатать элементы второй строки матрицы в порядке убывания - 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.
Объяснение кода листинга программы
- Объявление типов переменных:
- 'int' как псевдоним для 'integer'
- 'uint' как псевдоним для 'byte'
- 'list' как массив целых чисел
- 'matrix' как массив массивов целых чисел (матрица)
- Процедура quicksort:
- Процедура быстрой сортировки, использующая рекурсию
- Принимает в качестве параметров массив 'mas', начальный индекс 'first' и конечный индекс 'last'
- Объявление переменных:
- 'arr' как матрица
- 'i' и 'j' как целые числа без знака
- Основная часть программы:
- Запрашивается у пользователя размер матрицы 'n'
- Пользователь вводит элементы матрицы 'arr'
- Применяется быстрая сортировка к массиву, соответствующему второй строке матрицы, в порядке убывания
- Выводится отсортированная вторая строка матрицы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д