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

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

  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
Похожие ответы