ДАЮ 30 БАЛЛОВ Выдает ошибки не понимаю что неправильно в программе Program P1; var...

+199 голосов
1.9m просмотров

ДАЮ 30 БАЛЛОВ Выдает ошибки не понимаю что неправильно в программе 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.


Информатика (138 баллов) | 1.9m просмотров
Дан 1 ответ
+92 голосов

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

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

Это означает, что надо ввести переменную полупериметра ( 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.

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

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

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

(1.1k баллов)