В сформированной случайным образом строке заменить повторяющиеся символы нулями - Pascal ABC
Формулировка задачи:
1. Сформируйте случайным образом строку из 30 больших букв латинского алфавита и удалите повторяютщиеся символы, заменив их нулями. Выведите на экран сформированный массив и массив после обработки.
Решение задачи: «В сформированной случайным образом строке заменить повторяющиеся символы нулями»
textual
Листинг программы
const
N = 30;
ALPHABET: Set Of Char = ['A'..'Z'];
var
ar: Array[1..N] Of Char;
i: Byte;
repeates: Set Of 'A'..'Z';
begin
repeates := [];
Randomize;
Write(' Оригинальный массив:');
for i := 1 to N do
begin
ar[i] := Chr(Random(26) + 65);
Write(ar[i]:2);
if (ar[i] in repeates)
then
ar[i] := '0'
else
Include(repeates, ar[i]);
end;
WriteLn; Write('Модифицированный массив:');
for i := 1 to N do
Write(ar[i]:2);
WriteLn;
end.
Объяснение кода листинга программы
- В начале кода объявляются необходимые переменные: N, ALPHABET и ar.
- Переменная ar представляет собой массив из N элементов типа Char.
- Переменная i представляет собой байт (8 бит) и используется для итерации по элементам массива ar.
- Переменная repeates представляет собой множество (Set), которое используется для отслеживания повторяющихся символов в массиве ar.
- Строка
Модифицированный массив:выводится перед циклом, который заменяет повторяющиеся символы в массиве ar нулями. - В цикле, который идет от 1 до N, происходит следующее:
- ar[i] присваивается случайное число от 65 до 90 (так как в ASCII таблице от 65 до 90 есть только одна буква),
- символ ar[i] добавляется в множество repeates, если он еще не там,
- если символ ar[i] уже есть в repeates, то ему присваивается значение '0',
- если символа нет в repeates, то он добавляется в множество.
- После цикла выводится модифицированный массив ar.