Массив: Выведите на экран таблицу, в которой перечислены элементы массива (без повторений, в порядке убывания) - Free Pascal

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

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

Дан одномерный массив натуральных чисел. Выведите на экран таблицу, в которой перечислены элементы массива (без повторений, в порядке убывания) и сколько раз они повторяются в массиве.
Листинг программы
  1. var
  2. buf, k, i, j: integer;
  3. a: array[1..100] of integer;
  4. begin
  5. writeln('Введите количество элементов в массиве');
  6. readln(k);
  7. for i := k to 1 do
  8. begin
  9. writeln('Введите ', i, '-ый элемент массива:');
  10. readln(a[i]);
  11. end;
  12. for i := k to 1 do
  13. for j := k to 1 do
  14. if a[i] < a[j] then
  15. begin
  16. buf := a[i];
  17. a[i] := a[j];
  18. a[j] := buf;
  19. end;
  20. writeln('Полученный массив');
  21. for i := k to 1 do
  22. writeln(a[i], ' ');
  23. readln;
  24. end.
Здесь нужно исправить повторение и сделать по убыванию
Желательно с комментариями, что делает строка та или иная

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

textual
Листинг программы
  1. const mn=100;
  2. var
  3.   a: array [1..mn+1] of Integer;
  4.   i, j, n, t: Integer;
  5. begin
  6.   repeat
  7.     Write('Количество элементов [1..',mn,']: '); ReadLn(n);
  8.   until (n>=1) and (n<=mn);
  9.   Write('Элементы: ');
  10.   for i:=1 to n do Read(a[i]); ReadLn;
  11.   for i:=n downto 2 do
  12.     for j:=2 to i do
  13.       if a[j-1]<a[j] then begin
  14.         t:=a[j-1]; a[j-1]:=a[j]; a[j]:=t;
  15.       end;
  16.   a[n+1]:=a[n]+1; j:=1;
  17.   for i:=1 to n do
  18.     if a[i]=a[i+1] then Inc(j)
  19.     else begin
  20.       WriteLn(a[i]:8,': ',j); j:=1;
  21.     end;
  22. end.

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

  1. В начале программы объявляются следующие переменные: — mn — количество элементов в массиве (100 по умолчанию); — a — массив, содержащий элементы типа Integer; — i, j, n, t — вспомогательные переменные типа Integer.
  2. В цикле repeat запрашивается количество элементов массива от 1 до mn.
  3. После выхода из цикла repeat, выводится сообщение Элементы: и запрашивается ввод элементов массива.
  4. В цикле for i:=n downto 2 выполняется сортировка массива по убыванию.
  5. После сортировки, к последнему элементу массива добавляется 1, инициализируется переменная j=1.
  6. В цикле for i:=1 to n выполняется проверка на повторяющиеся элементы.
  7. Если элементы повторяются, то выводится сообщение вида a[i]:8,: j, где a[i] — элемент массива, j — номер первого вхождения элемента в массиве.
  8. После вывода всех повторяющихся элементов, переменная j сбрасывается в 1.

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


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

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

7   голосов , оценка 3.571 из 5

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

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

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