Математический форум Math Help Planet
http://mathhelpplanet.com/

Не могу найти ошибку в программе
http://mathhelpplanet.com/viewtopic.php?f=44&t=52957
Страница 1 из 1

Автор:  Turgenev1337 [ 10 фев 2017, 10:43 ]
Заголовок сообщения:  Не могу найти ошибку в программе

var a,b,c,d,f:integer;
begin
Writeln('Введите натуральное число:');
readln(a);
b:=10;
while b<=a do begin
b:=b*10;
while (c<=10) and (d<=10) do
c:=a div 10;
d:=a div b;
f:=a mod 10;
if c-d=0 then
writeln('Да');
if f-d=0 then
writeln('Да'); end;
else
begin
Writeln('Нет');
end.


Пишет: Встречено 'else', а ожидался оператор

Автор:  michel [ 10 фев 2017, 13:19 ]
Заголовок сообщения:  Re: Не могу найти ошибку в программе

Во-первых, перед [math]else[/math] не должно стоять точки с запятой (даже если она стоит в предшествующей строке).
Во-вторых, Вы закрыли раньше времени блок [math]while[/math] оператором [math]end[/math] сразу после конструкции [math]if[/math], не успев описать альтернативу [math]else \; writeln("HET");[/math]. Стоящий в конце [math]begin[/math] вообще не нужен.
В итоге должно быть:
................
if f-d=0 then
Writeln('Да')
else
Writeln('Нет');
end;
end.
Возможно, Вы хотели альтернативу условию цикла [math]while[/math], когда он не может выполняться в самый начальный момент. Тогда надо оформить печать "Нет" через соответствующий условный оператор [math]if[/math] сразу после [math]end[/math] блока [math]while[/math]. В этом случае конструкция [math]else[/math] не применяется.

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/