Получить все числа, которые входят в массив по одному разу - Free Pascal
Формулировка задачи:
Дан целочисленный массив X, содержащий n элементов (n ≤ 20). Получить все числа, которые входят в массив по одному разу.
Решение задачи: «Получить все числа, которые входят в массив по одному разу»
textual
Листинг программы
type
TArray = Array Of ShortInt;
var
ar, uniq: TArray;
i, j, n: Byte;
check: Boolean;
begin
repeat
Write('Input array length: ');
ReadLn(n);
until (n in [1..20]);
SetLength(ar, n); SetLength(uniq, 0);
Write('Original array:'); Randomize();
for i := 0 to n - 1 do
begin
ar[i] := Random(11) - 5;
Write(ar[i]:4);
check := (i <> 0);
if (check)
then
begin
j := i;
repeat
Dec(j);
check := (ar[i] = ar[j]);
until ((j = 0) Or (check));
end;
if (Not check)
then
begin
SetLength(uniq, Length(uniq) + 1);
uniq[Length(uniq) - 1] := ar[i];
end;
end;
WriteLn; Write('Uniq elements:');
for i := 0 to Length(uniq) - 1 do
Write(uniq[i]:4);
end.
Объяснение кода листинга программы
В этом коде:
- Объявляются две массива ar и uniq типа TArray, где TArray это массив значений типа ShortInt.
- Затем объявляются три переменные i, j и n типа Byte.
- Переменная n используется для контроля цикла, который будет выполняться до тех пор, пока пользователь не введет корректное значение длины массива от 1 до 20.
- После этого происходит инициализация массива ar и uniq. Длина массива ar устанавливается равной значению n, а длина массива uniq равна 0.
- Выводится сообщение
Original array:и заполняется массив ar случайными числами от -5 до 5 с шагом 1. - Для каждого элемента массива ar проверяется его уникальность. Если элемент повторяется, то он заменяется на следующее уникальное число. Если элемент уникален, то он добавляется в массив uniq.
- После того как все элементы массива ar были проверены, выводится сообщение
Uniq elements:и выводятся все уникальные элементы массива uniq.