Массив: Выведите на экран таблицу, в которой перечислены элементы массива (без повторений, в порядке убывания) - Free Pascal
Формулировка задачи:
Дан одномерный массив натуральных чисел. Выведите на экран таблицу, в которой перечислены элементы массива (без повторений, в порядке убывания) и сколько раз они повторяются в массиве.
Здесь нужно исправить повторение и сделать по убыванию
var buf, k, i, j: integer; a: array[1..100] of integer; begin writeln('Введите количество элементов в массиве'); readln(k); for i := k to 1 do begin writeln('Введите ', i, '-ый элемент массива:'); readln(a[i]); end; for i := k to 1 do for j := k to 1 do if a[i] < a[j] then begin buf := a[i]; a[i] := a[j]; a[j] := buf; end; writeln('Полученный массив'); for i := k to 1 do writeln(a[i], ' '); readln; end.
Желательно с комментариями, что делает строка та или иная
Решение задачи: «Массив: Выведите на экран таблицу, в которой перечислены элементы массива (без повторений, в порядке убывания)»
textual
Листинг программы
const mn=100; var a: array [1..mn+1] of Integer; i, j, n, t: Integer; begin repeat Write('Количество элементов [1..',mn,']: '); ReadLn(n); until (n>=1) and (n<=mn); Write('Элементы: '); for i:=1 to n do Read(a[i]); ReadLn; for i:=n downto 2 do for j:=2 to i do if a[j-1]<a[j] then begin t:=a[j-1]; a[j-1]:=a[j]; a[j]:=t; end; a[n+1]:=a[n]+1; j:=1; for i:=1 to n do if a[i]=a[i+1] then Inc(j) else begin WriteLn(a[i]:8,': ',j); j:=1; end; end.
Объяснение кода листинга программы
- В начале программы объявляются следующие переменные: — mn — количество элементов в массиве (100 по умолчанию); — a — массив, содержащий элементы типа Integer; — i, j, n, t — вспомогательные переменные типа Integer.
- В цикле repeat запрашивается количество элементов массива от 1 до mn.
- После выхода из цикла repeat, выводится сообщение
Элементы:
и запрашивается ввод элементов массива. - В цикле for i:=n downto 2 выполняется сортировка массива по убыванию.
- После сортировки, к последнему элементу массива добавляется 1, инициализируется переменная j=1.
- В цикле for i:=1 to n выполняется проверка на повторяющиеся элементы.
- Если элементы повторяются, то выводится сообщение вида
a[i]:8,: j
, где a[i] — элемент массива, j — номер первого вхождения элемента в массиве. - После вывода всех повторяющихся элементов, переменная j сбрасывается в 1.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д