Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+1

Паскаль, помогите найти ошибку

как исправить ошибку?

По дате
По рейтингу
Аватар пользователя
Высший разум
4мес

На строке ниже убрать ;

Аватар пользователя
Высший разум
4мес

Ошибка - точка с запятой перед else.

В Pascal точка с запятой - НЕ признак окончания оператора (как в C-style языках), а РАЗДЕЛИТЕЛЬ операторов. И написав:

12
 write(...);
else 

ты добавил между write и else пустой оператор. Но между then и else может находиться только ОДИН оператор и появление в этом месте второго оператора вызывает ошибку.

По этой же причине не надо ставить точки с запятой перед end или until: там они ошибки не вызывают, но создают никому не нужные пустые операторы.

Аватар пользователя
Мастер
4мес

у write нужно убрать точки с запятыми в конце

Аватар пользователя
Знаток
4мес

Ошибка «Встречено „else“, а ожидался оператор» в коде на языке Паскаль может возникать, если между then и else поставить несколько операторов. По правилам языка, там может быть только один оператор. Например, если поставить точку с запятой, которая в Pascal является разделителем операторов и создаёт дополнительный пустой оператор при использовании перед else и end. 1

Чтобы исправить ошибку, нужно оформить операторы между then и else в виде единственного составного оператора. Для этого после then поставить begin и end перед else. 1

Также, если нужно выполнить несколько операторов в условиях (циклах и т. д.), их следует сгруппировать с помощью begin и end. 2

Ещё одна возможная причина ошибки — отсутствие оператора if.

Источник - нейро

Аватар пользователя
Мыслитель
4мес

Я не Паскаль!!! 😡😠😡