Есть ли в строке символы, отличающиеся от букв и цифр

Задача

Дан текст. Определить, содержит ли он символы, отличающиеся от английских букв, цифр и пробела.

Решение

  1. Создадим множество из допустимых символов. 
  2. Запросим у пользователя строку.
  3. Перебирая символы строки в цикле, будем проверять каждый на вхождение во множество.
    • Если символа нет во множестве, то присвоим флаговой переменной значение "истина". Кроме того, прервем цикл, так как дальнейшая проверка не имеет смысла. 
  4. Если флаг содержит "истину" выведем сообщение о том, что в строке есть посторонние символы. Иначе - что их нет.
var
    s: string;
    chars: set of char = ['a'..'z', '0'..'9', ' '];
    flag: boolean;
    i: byte;
 
begin
    readln(s);
    flag := false;
 
    for i:=1 to length(s) do
        if not (s[i] in chars) then begin
            flag := true;
            break;
        end;
 
    if flag then 
        writeln('Есть посторонние символы') 
    else 
        writeln('Все нормально');
end.

Пример выполнения 1:

one, two!
Есть посторонние символы

Пример выполнения 2:

one two three
Все нормально