
ДАЮ 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.

Ответы на вопрос

Так,сначала теория.
В формуле Герона (коя используется в этой программе) используется полупериметр!
Это означает, что надо ввести переменную полупериметра ( 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.
Также замечу, что полупериметр и площадь относятся не к целочисленному типу данных.
И да, обращайте внимание на оформление.
Табуляции в программе, "сторона" вместо "координата", пробелы до и после равно, чтобы всё не выглядело слипшимся.



Ваша программа содержит некоторые ошибки. Вот исправленный вариант:
pascalProgram P1; uses crt; // Добавляем модуль для использования функции Sqrt var a, b, c: integer; s, p: real; // Заменяем integer на real для возможности работы с дробными числами Begin clrscr; // Очищаем экран writeln('Введите координату a = '); readln(a); writeln('Введите координату b = '); readln(b); writeln('Введите координату c = '); readln(c); p := (a + b + c) / 2; writeln('Полупериметр треугольника = ', p:0:2); // Выводим значение с двумя знаками после запятой s := sqrt(p * (p - a) * (p - b) * (p - c)); writeln('Площадь треугольника = ', s:0:2); // Выводим значение с двумя знаками после запятой end.
Примечания:
- Добавлен импорт модуля
crt
для использованияclrscr
, чтобы очистить экран перед вводом данных. - Изменен тип переменных
p
иs
наreal
, так как результат площади может быть дробным числом. - Добавлено форматирование вывода значений
p
иs
с двумя знаками после запятой. - В строке вычисления площади (
s
) использована функцияsqrt
для вычисления квадратного корня.
Обратите внимание, что ваша исходная программа не включала необходимый модуль crt
, который используется для очистки экрана с помощью clrscr
.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili