Задача Задача №1391129
А
А
Конечно! Ниже представлена программа на Pascal, которая позволяет находить площадь треугольника с использованием трёх видов алгоритмов: разветвляющегося, линейного и цикличного.
- Разветвляющийся алгоритм - будет вычислять площадь треугольника с использованием разных методов в зависимости от входных данных.
- Линейный алгоритм - будет использовать одну формулу для вычисления площади (например, по основанию и высоте).
- Цикличный алгоритм - будет вычислять площади нескольких треугольников, используя циклы.
Вот пример программы:
program TriangleArea;
uses crt;
var
a, b, c: real;
area: real;
choice: integer;
i, n: integer;
function AreaByBaseAndHeight(base, height: real): real;
begin
AreaByBaseAndHeight := 0.5 * base * height;
end;
function AreaBySides(s1, s2, s3: real): real;
var
s: real;
begin
s := (s1 + s2 + s3) / 2; // Полупериметр
AreaBySides := sqrt(s * (s - s1) * (s - s2) * (s - s3)); // Формула Герона
end;
begin
clrscr;
writeln('Выберите метод для расчета площади треугольника:');
writeln('1. Разветвляющийся (по двум сторонах и углу между ними)');
writeln('2. Линейный (по основанию и высоте)');
writeln('3. Цикличный (расчет для нескольких треугольников)');
readln(choice);
case choice of
1: begin
// Разветвляющийся - площадь по двум сторонам и углу
writeln('Введите длины двух сторон и угол между ними (в градусах):');
readln(a, b);
writeln('Введите угол между ними:');
readln(c);
area := 0.5 * a * b * sin(c * pi / 180); // угол конвертировать в радианы
writeln('Площадь треугольника: ', area:0:2);
end;
2: begin
// Линейный - площадь по основанию и высоте
writeln('Введите основание и высоту треугольника:');
readln(a, b);
area := AreaByBaseAndHeight(a, b);
writeln('Площадь треугольника: ', area:0:2);
end;
3: begin
// Цикличный - расчет площади для нескольких треугольников
writeln('Введите количество треугольников для расчета площади:');
readln(n);
for i := 1 to n do
begin
writeln('Ввод для треугольника ', i, ':');
writeln('Введите основание и высоту треугольника:');
readln(a, b);
area := AreaByBaseAndHeight(a, b);
writeln('Площадь треугольника ', i, ': ', area:0:2);
end;
end;
else
writeln('Неверный выбор.');
end;
readln;
end.
Объяснение программы:
- Функция AreaByBaseAndHeight: вычисляет площадь треугольника по основанию и высоте.
- Функция AreaBySides: вычисляет площадь треугольника по трем сторонам с использованием формулы Герона.
- Разветвляющийся алгоритм: в зависимости от выбора пользователя вызывает различные расчеты площади.
- Линейный алгоритм: вычисление по основанию и высоте.
- Цикличный алгоритм: позволяет вычислить площади нескольких треугольников, запрашивая данные в цикле.
Не забудьте проверить правильность ввода данных перед вычислением.
