Никлаус Вирт удавился бы!!! Это в программе на языке Паскаль Вы решили употребить метку и безусловный переход?!? Простой совет:• Всё, что находится между меткой m и словом end, исключая метку и само слово end, поместите в операторные скобки begin end . Будьте внимательны: теперь у Вас будет два слова end в программе.• Возьмите внутренний блок begin end вместе с содержимым и переместите на место, где у Вас написано goto m . Разумеется, goto m придётся удалить (да и метка уже не понадобится). Внимание! Точка с запятой окажется после end — это правильно!• И обязательно исправьте тип переменной s : у Вас она объявляется с типом char, а принимает строковое значение! Char это один символ! Если программа не останавливается по ошибке, это значит, что readln(s) считывает в переменную только первый символ введённой строки! А как же происходит сравнение символа со строкой??? Пожалуйста, исправьте char на string .