Статья: Множества
Здесь выражение - любое выражение базового для данного множества типа, результат операции - TRUE, если такой элемент есть в множестве, и FALSE - в противном случае.
Для множеств определены две стандартные процедуры:
Include ( множество , выражение )
Exclude ( множество , выражение )
Процедура Include добавляет элемент, равный значению выражения в множество, а процедура Exclude удаляет такой элемент из множества.
Теперь, когда мы знаем все возможности множеств, запишем программу, находящую все простые числа на отрезке [1,255] :
{программа использует алгоритм "решето Эратосфена"}
TYPE NumSet = SET OF 1..255;
CONST N : NumSet=[2..255]; { исключили 1 как не являющуюся простым числом }
VAR MaxDivider,d : Byte; k : Word;
BEGIN MaxDivider:=Round(SQRT(255));
d:=2;
WHILE d<=MaxDivider DO BEGIN
k:=2*d;
WHILE k<=255 DO BEGIN Exclude(N,k); INC(k,d); END;
INC(d);
END;
WRITELN('Простые числа :');
FOR k:=1 TO 255 DO IF k IN N THEN WRITE(k:4);
END.
Решим еще одну задачу : ввести массив символов и подсчитать, сколько в нем русских и латинских букв.
TYPE Letters = SET OF Char;
CONST Lat = ['a'..'z','A'..'Z']; Rus = ['а'..'п','р'..'я','А'..'Я'];
VAR c : Char;
CONST RSum : Word=0; LSum : Word=0;
BEGIN WRITE('Введите массив символов, затем нажмите Enter ');
REPEAT READ(c);
IF c IN Lat THEN INC(LSum) ELSE IF c IN Rus THEN INC(RSum);
UNTIL c=#10;