Нахождение повторяющихся элементов в массиве - Pascal
Формулировка задачи:
Программа несколько раз выводит повторяющийся элемент, как сделать так, чтобы программа выводила только один раз и все?
Решение задачи: «Нахождение повторяющихся элементов в массиве»
textual
Листинг программы
const N=10; var a,b:array [1..N] of integer; i, j, k,l:integer; z:boolean; begin randomize; for i:=1 to N do begin a[i]:= random(1,N); write(a[i]:3); end; writeln; l:=0; write('Эти числа повторяются: '); for i:= 1 to N do for j:= i+1 to N do if a[i]=a[j] then begin z:=true; for k:=1 to l do if a[i]=b[k] then begin z:=false; break; end; if z then begin l:=l+1; b[l]:=a[i]; end; end; if l=0 then writeln('отсутствуют повторяющиеся элементы') else for i:=1 to l do write(b[i],' '); end.
Объяснение кода листинга программы
- Объявляются константа N=10 и переменные a, b, i, j, k, l, z типа integer.
- В цикле for i:=1 to N выполняется заполнение массива a случайными числами от 1 до N.
- Выводится на экран содержимое массива a.
- Устанавливается счётчик повторяющихся чисел l=0.
- Выводится сообщение
Эти числа повторяются:
и в цикле for i:= 1 to N выполняется поиск повторяющихся чисел в массиве a. - Если число a[i] повторяется, то устанавливается флаг z=true и выполняется поиск таких же чисел в массиве b.
- Если число a[i] не повторяется в массиве b, то оно добавляется в массив b с индексом l и увеличивается счётчик l.
- Если в массиве b нет повторяющихся чисел, то выводится сообщение
отсутствуют повторяющиеся элементы
. - В противном случае выводится на экран содержимое массива b.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д