Встречено 'else', а ожидался оператор. program qq; var x,y:integer; begin...

0 голосов
142 просмотров

Встречено 'else', а ожидался оператор. program qq; var x,y:integer; begin writeln('Введите число x'); readln(x); writeln('Введите число y'); readln(y); if (x>=0) and (x<=2) and (y>=0) and (y<=1) then writeln ('Входит'); else (x<0) and (x>2) and (y<0) and (y>1) then writeln ('Не входит'); end.


Информатика (654k баллов) | 142 просмотров
0

Перед else убери ; это один оператор

0

Я убрал, теперь пишется: Встречено 'and', а ожидалось ';'

0

Покажи текст целиком снова... Что-то не то... И условие второе взаимоисключающее х не может быть одновременно больше 2 и меньше 0...

0

Даны числа х и у. Определить, принадлежит ли точка с координатами (х, у) заштрихованной части плоскости

0

Сейчас пересоздам задачу

Дан 1 ответ
0 голосов

По синтаксису Паскаля, между блоками if и else не должна стоять точка с запятой. Иначе компилятор сочтёт это за два раздельных блока и выдаст ошибку компиляции.
if (x >= 0) and (...) then writeln('Входит')
else writeln('Не входит');
То есть, после writeln('Входит') не должно быть точки с запятой.
Только тогда в блоке "else" не нужны условия ("else (...) and (...) ..." выдаст ошибку компиляции).

Ещё можно "else" заменить на "if", и получится два раздельных if-блока. Скорее всего, это и имел в виду компилятор.

(3.7k баллов)