Чтобы создать программу для вычисления площади треугольника тремя различными способами (разветвляющийся, линейный и цикличный), давайте рассмотрим каждый из этих методов.
1. Разветвляющаяся программа
В этом варианте мы будем использовать условия для определения способа вычисления площади треугольника. Например, можно использовать формулу Герона или формулу через основание и высоту.
import math
def area_triangle_branching():
method = input("Выберите метод (1 - основание и высота, 2 - стороны (формула Герона)): ")
if method == '1':
base = float(input("Введите основание треугольника: "))
height = float(input("Введите высоту треугольника: "))
area = 0.5 * base * height
print(f"Площадь треугольника: {area}")
elif method == '2':
a = float(input("Введите длину стороны a: "))
b = float(input("Введите длину стороны b: "))
c = float(input("Введите длину стороны c: "))
s = (a + b + c) / 2
area = math.sqrt(s * (s - a) * (s - b) * (s - c))
print(f"Площадь треугольника: {area}")
else:
print("Неверный выбор.")
area_triangle_branching()
2. Линейный способ
Линейный подход подразумевает пошаговые инструкции без разветвлений (ряд последовательных вычислений).
def area_triangle_linear():
method = input("Выберите метод (1 - основание и высота, 2 - стороны (формула Герона)): ")
if method == '1':
base = float(input("Введите основание треугольника: "))
height = float(input("Введите высоту треугольника: "))
area = 0.5 * base * height
elif method == '2':
a = float(input("Введите длину стороны a: "))
b = float(input("Введите длину стороны b: "))
c = float(input("Введите длину стороны c: "))
s = (a + b + c) / 2
area = math.sqrt(s * (s - a) * (s - b) * (s - c))
else:
raise ValueError("Неверный метод.")
print(f"Площадь треугольника: {area}")
area_triangle_linear()
3. Цикличный способ
Циклический подход можно использовать, чтобы запрашивать данные от пользователя в цикле до тех пор, пока он не решит завершить программу.
def area_triangle_cyclic():
while True:
method = input("Выберите метод (1 - основание и высота, 2 - стороны (формула Герона), q - выход): ")
if method == '1':
base = float(input("Введите основание треугольника: "))
height = float(input("Введите высоту треугольника: "))
area = 0.5 * base * height
print(f"Площадь треугольника: {area}")
elif method == '2':
a = float(input("Введите длину стороны a: "))
b = float(input("Введите длину стороны b: "))
c = float(input("Введите длину стороны c: "))
s = (a + b + c) / 2
area = math.sqrt(s * (s - a) * (s - b) * (s - c))
print(f"Площадь треугольника: {area}")
elif method == 'q':
break
else:
print("Неверный выбор, попробуйте снова.")
area_triangle_cyclic()
В каждом из примеров реализованы различные подходы к вычислению площади треугольника в зависимости от выбора пользователя.