Массив: Выведите на экран таблицу, в которой перечислены элементы массива (без повторений, в порядке убывания) - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д