Компьютерный форум

Компьютерный форум (http://pchelpforum.ru/index.php)
-   Программирование (http://pchelpforum.ru/forumdisplay.php?f=17)
-   -   Люди, в чем ошибка? просит поставить ";" перед вторым else. Но оно там не нужно (http://pchelpforum.ru/showthread.php?t=8327)

Eshk1n 30.04.2009 21:20

Люди, в чем ошибка? просит поставить ";" перед вторым else. Но оно там не нужно
 
Program formula;
var
a, b, c, d, e, g, k, l, m, n, p, t, v: real;
begin
writeln('введите коэффициенты уравнения '); readln(a, b, c);
d:= (b * b) - (4 * a * c);
if d < 0 then writeln('уравнение не имеет решений ')
else
begin
if d = 0 then e:= (-b)/ (2 * a);
g:= sqrt(e);
k:= g * (-1);
writeln('уравнение имеет два корня ', g:6:3, ' è ', k:6:3)
else
begin
if d > 0 then l:= ((-b) + sqrt(d))/(2 * a);
m:= ((-b) - sqrt(d))/(2 * a);
n:= sqrt(l);
p:= n * (-1);
t:= sqrt(m);
v:= t * (-1);
writeln('уравнение имеет четыре корня: ', n:6:3, ' ; ', p:6:3, ' и ', t:6:3, ' ; ', v:6:3);
end
end
end.

KuznecOFF 12.05.2009 22:33

Друг мой, всё очень просто))
Дело в том, что первый твой ELSE привязан к первому IFу (и это правильно)
Далее следует второй ELSE, а второго IFа ПЕРЕЛ ним нету.
ELSE идёт исключительно в связки с IF ( а точнее после него)
Пример:
Если а=б то с=а+б
ИНАЧЕ с=2*а

А ты написал примерно следующее:
Если <условие> то сделай действие один
ИНАЧЕ1 действие 2
ИНАЧЕ2 действие 3

ИНАЧЕ2 (он же второй ELSE) не привязан к условию (IF)

P,S,
Наверное тебе уже не нужен ответ, т.к. ты писал пост аж 29 марта, но тем не менее))


Текущее время: 16:11. Часовой пояс GMT +4.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Copyright ©2007-2016, PCHelpForum.ru.