Математический форум 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/ |