Добрый день! К сожалению я не работаю с C++, но если это то вот эта задача в Pascal VAR a,b,c,d:REAL; PROCEDURE Print_S(x,y,z:REAL); VAR p,S:REAL; begin If ((x+y)>z) and ((x+z)>y) and ((y+z)>x) then begin p:=x+y+z; S:=SQRT(p*(p-x)*(p-y)*(p-z)); WriteLn('S= ',S); end else Writeln('Треугольник не существует!'); end; BEGIN Write('a= '); ReadLn(a); Write('b= '); ReadLn(b); Write('c= '); ReadLn(c); Write('d= '); ReadLn(d); WriteLn; WriteLn('Стороны ',a,'; ',b,'; ',c); Print_S(a,b,c); WriteLn; WriteLn('Стороны ',a,'; ',b,'; ',d); Print_S(a,b,d); WriteLn; WriteLn('Стороны ',a,'; ',c,'; ',d); Print_S(a,c,d); WriteLn; WriteLn('Стороны ',b,'; ',c,'; ',d); Print_S(b,c,d); END.
В таком виде программа, хотя бы запустится: program i_2; const c=2; f=4; g=6; var r,p: real; begin writeln('определение площади треугольника по теореми Герона'); write('нахождение площади'); readln(r); p:=(c+f+g)/2; r:=sqrt(p*(p-c)*(p-f)*(p-g)) end.
Но есть куча вопросов: 1) Если c, f, g - стороны треугольника, то что такое - r ? 2) Если r - это площадь, то как мы можем её ввести, если мы хотим её сосчитать? 3) Где вывод полученной информации (writeln(r))? 4) Треугольника со сторонами c=2, f=4 и g=6 существовать не может
Предлагаю отказаться от экзотических обозначений и сделать проверку на существование треугольника, а также добавить получение данных по сторонам от пользователя: program i_2; var a,b,c,p,s: real; begin writeln('Определение площади треугольника по теореме Герона'); write('Введите стороны треугольника: '); readln(a,b,c); if (a + b <= c) or (b + c <= a) or (a + c <= b) then writeln ('Треугольника с такими сторонами не существует') else begin p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); writeln('Площадь треугольника равна ',s:0:3) end end.
VAR a,b,c,d:REAL;
PROCEDURE Print_S(x,y,z:REAL);
VAR p,S:REAL;
begin If ((x+y)>z) and ((x+z)>y) and ((y+z)>x) then
begin
p:=x+y+z;
S:=SQRT(p*(p-x)*(p-y)*(p-z));
WriteLn('S= ',S);
end
else
Writeln('Треугольник не существует!');
end;
BEGIN Write('a= ');
ReadLn(a);
Write('b= ');
ReadLn(b);
Write('c= ');
ReadLn(c);
Write('d= ');
ReadLn(d);
WriteLn;
WriteLn('Стороны ',a,'; ',b,'; ',c);
Print_S(a,b,c);
WriteLn;
WriteLn('Стороны ',a,'; ',b,'; ',d);
Print_S(a,b,d);
WriteLn;
WriteLn('Стороны ',a,'; ',c,'; ',d);
Print_S(a,c,d);
WriteLn;
WriteLn('Стороны ',b,'; ',c,'; ',d);
Print_S(b,c,d);
END.
program i_2;
const c=2; f=4; g=6;
var r,p: real;
begin
writeln('определение площади треугольника по теореми Герона');
write('нахождение площади');
readln(r);
p:=(c+f+g)/2;
r:=sqrt(p*(p-c)*(p-f)*(p-g))
end.
Но есть куча вопросов:
1) Если c, f, g - стороны треугольника, то что такое - r ?
2) Если r - это площадь, то как мы можем её ввести, если мы хотим её сосчитать?
3) Где вывод полученной информации (writeln(r))?
4) Треугольника со сторонами c=2, f=4 и g=6 существовать не может
Предлагаю отказаться от экзотических обозначений и сделать проверку на существование треугольника, а также добавить получение данных по сторонам от пользователя:
program i_2;
var a,b,c,p,s: real;
begin
writeln('Определение площади треугольника по теореме Герона');
write('Введите стороны треугольника: ');
readln(a,b,c);
if (a + b <= c) or (b + c <= a) or (a + c <= b) then writeln ('Треугольника с
такими сторонами не существует')
else
begin
p:=(a+b+c)/2;
s:=sqrt(p*(p-a)*(p-b)*(p-c));
writeln('Площадь треугольника равна ',s:0:3)
end
end.