Выдает ошибки не понимаю что неправильно в программе Program P1;
var a,b,c,s,p:integer;
Begin
write('введите координату a=');
readln(a);
write('введите координату b=');
readln(b);
write('введите координату c=');
readln(c); p:=(a+b+c)/2;
writeln('периметр треугольника =',p);
s:=sqrt(p*(p-a)*(p-b)*(p-c));
writeln('площадь треугольника =',s);
end.

KriStiNaTim03 KriStiNaTim03    1   13.09.2020 08:33    1

Ответы
veragusak1994 veragusak1994  15.10.2020 20:40

Так,сначала теория.

В формуле Герона (коя используется в этой программе) используется полупериметр!

Это означает, что надо ввести переменную полупериметра ( pp, к примеру). Тогда программа примет вид:

program P1;

var

a, b, c, p: integer;

pp, s: real;

begin

write('Введите сторону a = ');

readln(a);

write('Введите сторону b = ');

readln(b);

write('Введите сторону c = ');

readln(c);

p := a + b + c;

writeln('Периметр треугольника P = ', p);

pp := p / 2;

s := sqrt(pp * (pp - a) * (pp - b) * (pp - c));

writeln('Площадь треугольника S = ', s);

end.

Также замечу, что полупериметр и площадь относятся не к целочисленному типу данных.

И да, обращайте внимание на оформление.

Табуляции в программе, "сторона" вместо "координата", пробелы до и после равно, чтобы всё не выглядело слипшимся.

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика