Даны отрезки a,b,c,d. Для каждой тройки этих отрезков , из которых можно построить треугольник, напечатать площадь данного треугольника - Pascal ABC
Формулировка задачи:
Даны отрезки a,b,c,d. Для каждой тройки этих отрезков , из которых можно построить треугольник, напечатать площадь данного треугольника. Определить процедуру Plo(x,y,z), печатающую площадь треугольника со сторонами , если такой треугольник существует.
Решение задачи: «Даны отрезки a,b,c,d. Для каждой тройки этих отрезков , из которых можно построить треугольник, напечатать площадь данного треугольника»
textual
Листинг программы
uses crt;
var a,b,c,d: real;
procedure Plo (s: string; x,y,z: real);
var sq: real;
begin
if ((y+z-x)>0) and ((x+z-y)>0) and ((x+y-z)>0) then
begin
sq:=0.25*(sqrt((x+y+z)*(y+z-x)*(x+z-y)*(x+y-z)));
writeln('Площадь треугольника со сторонами ',s,'=',sq:0:3);
end else writeln('Треугольник со сторонами ',s,' не существует');
end;
begin
write('a='); readln(a);
write('b='); readln(b);
write('c='); readln(c);
write('d='); readln(d);
Plo ('a,b,c',a,b,c);
Plo ('a,b,d',a,b,d);
Plo ('a,c,d',a,c,d);
Plo ('b,c,d',b,c,d);
end.
Объяснение кода листинга программы
В данном коде используется функция Plo, которая принимает три аргумента: строку, представляющую стороны треугольника, и три числа, представляющие координаты вершин треугольника. Внутри функции проверяется существование треугольника, для чего используются три условия:
- Вычисляется площадь треугольника по формуле Герона. Если площадь положительна, то треугольник существует.
- Если площадь отрицательна, то треугольник не существует.
- Если площадь равна нулю, то треугольник существует, но его площадь равна нулю. Если все условия выполняются, то выводится площадь треугольника. В основной части программы с помощью функции Plo проверяются все возможные комбинации сторон треугольника.