Язык программирования Pascal. Множества. Типизированные константы. Васильев В.В - 4 стр.

UptoLike

4
па, которое может содержать операции объединения, разности и пересечения
множеств. Конструктор множеств может стоять в правой части оператора при-
сваивания.
Для того , чтобы добавить или удалить элемент, его представляют как
множество мощности 1. Для этого элемент берут в квадратные скобки !
Для добавления нового элемента во множество имеется специальная про-
цедура INCLUDE (Множество, Элемент);
Для исключения элемента из множества служит специальная процедура
EXCLUDE (Множество, Элемент);
Используя множества, можно упростить решение задач обработки тексто-
вой информации.
Задача 1. Напишите программу, которая проверяет, имеются ли в слове
повторяющиеся буквы .
Словом будем считать последовательность символов, оканчивающуюся
точкой . Буквы слова будем записывать в массив из символов. Параллельно с
вводом букв будем формировать множество букв слова. Если очередная вве-
денная буква не входит в сформированное на текущий момент множество
букв, то буква включается во множество букв слова. В противном случае ло-
гической переменной flag (хранящей ответ на вопрос задачи ) присваивается
значение true.
Program Repeat_Letters;
Uses crt;
Const Max_Len = 100; {максимальная длина слова}
eot = '.'; {признак конца ввода}
Type Word = array [1..Max_Len] of char; {тип слова}
Var Sl: Word; {слово}
Letters: set of char; {множество букв слова}
i: 0..Max_Len; {счетчик букв в слове}
flag: Boolean; {признак наличия повторяющихся букв}
Begin
Textbackground(7); Textcolor(blue); Clrscr;
writeln('Введите слово (в конце поставьте точку): ');
i:=0; Letters:=[]; flag:=false;
repeat
inc(i); read(Sl[i]);
if not (Sl[i] in Letters)
then Letters:=Letters + [Sl[i]]
else if not flag
then flag:=true;
until (i=Max_Len) or (Sl[i]=eot);
if flag
then writeln('В слове есть повторяющиеся буквы! ')
else writeln('В слове нет повторяющихся букв! ');
readkey
End.{Repeat_Letters}