Показать сообщение отдельно
Старый 17.04.2009, 21:27   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от ummasha Посмотреть сообщение
Насчет второй задачи: туда ведь можно добавить проверку положительности сторон треугольника:
VAR
a,b,c,p,S:REAL;
BEGIN
Write('a = '); Readln(a);
Write('b = '); Readln(b);
Write('c = '); Readln(c);
If (a>0)and(b>0)and(c>0) then
begin
p:=(a+b+c)/2;
S:=p*(p-a)*(p-b)*(p-c);
IF S<0 THEN WriteLn('Initial values are incorrect!')
ELSE Writeln('S = ', S:10:5);
READLN;
end
else WriteLn('Initial values are incorrect!')
END.
Да... и впрямь - проверку положительности я как-то пропустил... видимо интуитивно полагая, что ввести отрицательное значение стороны треугольника можно только с очень тяжелого бодуна. Но раз требуют... Спасибо, Маша, что поправили.

P.S. Ой, сейчас заметил. Маша, Вы неверно набили строку
ELSE Writeln('S = ', S:10:5);
Надо как у меня:
ELSE Writeln('S = ', SQRT(S):10:5);
В формуле Герона произведение четырех биномов сидит под корнем.

Последний раз редактировалось Vladimir_S; 17.04.2009 в 21:31
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070