Составьте новый массив из чисел, взятых по одному из каждой группы равных членов последовательности - Pascal ABC

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

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

Пусть даны целые числа a1, a2, …, an, среди которых могут быть повторяющиеся. Составьте новый массив из чисел, взятых по одному из каждой группы равных членов данной последовательности. Вот мое решение, однако это кастыль

Решение задачи: «Составьте новый массив из чисел, взятых по одному из каждой группы равных членов последовательности»

textual
Листинг программы
const n=10;
type mas=array[1..n]of integer;
var a:mas;
    aa,n1,i,j:integer;
    f:boolean;
begin
 read(aa); a[1]:=aa; n1:=1;
 for i:=2 to n do
  begin
   j:=1; f:=false;
   read(aa);
   while (j<=n1)and(not f) do
    begin
     if aa=a[j] then f:=true;
     inc(j)
    end;
   if not f then begin n1:=j; a[n1]:=aa end
  end;
 for i:=1 to n1 do write(a[i],' ');
 writeln
end.

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

В данном коде происходит чтение последовательности чисел из ввода пользователя и создание нового массива, состоящего из чисел, взятых по одному из каждой группы равных членов последовательности. Переменные и их значения:

  • n - количество чисел в исходной последовательности (10);
  • mas - тип данных для массива чисел;
  • a - имя переменной, которая представляет собой массив чисел;
  • aa, n1, i, j - переменные для работы с чтением и обработкой чисел;
  • f - логическая переменная, которая указывает на то, что текущее число равно текущему элементу массива;
  • read - функция для чтения числа из ввода пользователя;
  • while - цикл, который выполняется до тех пор, пока условие истинно;
  • inc - функция для увеличения значения переменной на единицу;
  • n1 - переменная для хранения индекса последнего найденного равного числа;
  • a[n1] - элемент массива, равный последнему найденному числу;
  • write - функция для записи числа в вывод пользователя;
  • writeln - функция для записи строки в вывод пользователя. Код начинается с объявления переменной n, которая определяет количество чисел в исходной последовательности. Затем определяется тип данных для массива чисел и объявляются переменные для работы с чтением и обработкой чисел. Далее идет цикл, который выполняется до тех пор, пока не будет найдено первое равное число. Внутри цикла происходит чтение числа из ввода пользователя и проверка, является ли это число равным текущему элементу массива. Если да, то переменная f устанавливается в значение true, чтобы указать на то, что текущее число равно текущему элементу массива. Затем происходит увеличение значения переменной j на единицу. Если после выполнения цикла не было найдено ни одного равного числа, то переменная n1 устанавливается в значение j. Затем, если не выполнено условие not f, то элемент массива с индексом n1 записывается в вывод пользователя. В конце кода происходит запись чисел из массива в вывод пользователя.

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

7   голосов , оценка 3.857 из 5
Похожие ответы