// Даны отрезки a, b, c, d. Для каждой тройки этих отрезков,
// из которых можно построить треугольник, найдите площадь данного треугольника.
// Определите процедуру Plo (x,y,z) , определяющую площадь треугольника со
// сторонами x, y, и z, если такой треугольник существует.
procedure Plo(x,y,z: real; var s: real);
var
p: real;
begin
p:= (x+y+z)/2;
s:= sqrt(p*(p-x)*(p-y)*(p-z));
end; { plo }
function Exists(a,b,c: real): boolean;
// Проверяет, возможно ли построить треугольник по трем указанным сторонам
begin
Exists := (a>0) and (b>0) and (c>0) and (a+b>c) and (a+c>b) and (b+c>a);
end; { exists }
var
a,b,c,d,s: real;
begin
readln(a,b,c,d);
if exists(a,b,c) then begin
plo(a,b,c,s);
writeln(a,b,c,s);
end;
if exists(a,b,d) then begin
plo(a,b,d,s);
writeln(a,b,d,s);
end;
if exists(a,c,d) then begin
plo(a,c,d,s);
writeln(a,c,d,s);
end;
if exists(b,c,d) then begin
plo(b,c,d,s);
writeln(b,c,d,s);
end;
end.
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.