Напишите функции для расчёта площади составных фигур, используя (вызывая) функции из задания 1.1.
1. trapezoid_area(a, b, h) — площадь трапеции. (a и b — основания, h — высота). Формула: ((a + b) / 2) * h.
2. right_triangle_area(leg1, leg2) — площадь прямоугольного треугольника. Можно вычислить через катеты ((leg1 * leg2) / 2).
3. annulus_area(radius_outer, radius_inner) — площадь кольца. Это разность площадей двух кругов. Добавьте проверку, что внешний радиус больше внутреннего.
Ниже приведены функции для расчета площадей составных фигур, которые используют (вызывают) готовые функции из задания 1.1:
- trapezoid_area(a, b, h) — площадь трапеции
- right_triangle_area(leg1, leg2) — площадь прямоугольного треугольника
- annulus_area(radius_outer, radius_inner) — площадь кольца (с проверкой, что внешний радиус больше внутреннего)
Обратите внимание: annulus_area включает проверку, что внешний радиус больше внутреннего и вызывает исключение при нарушении условия.
Код (Python):
def composite_area_trap_and_triangle(a, b, h, leg1, leg2):
"""
Площадь составной фигуры: трапеция ( bases a, b, высота h) плюс прямоугольный треугольник
с катетами leg1 и leg2. Фигуры предполагаются нес перекрывающимися и соприкасающимися по стороне.
Используются функции из задания 1.1: trapezoid_area и right_triangle_area.
"""
return trapezoid_area(a, b, h) + right_triangle_area(leg1, leg2)
def composite_area_trap_and_annulus(a, b, h, outer_r, inner_r):
"""
Площадь составной фигуры: трапеция (bases a, b, высота h) плюс кольцо (annulus) с внешним радиусом outer_r
и внутренним radiусом inner_r.
Используются функции из задания 1.1: trapezoid_area и annulus_area.
"""
return trapezoid_area(a, b, h) + annulus_area(outer_r, inner_r)
def composite_area_triangle_and_annulus(leg1, leg2, outer_r, inner_r):
"""
Площадь составной фигуры: прямоугольный треугольник с катетами leg1 и leg2 плюс кольцо (annulus)
с внешним радиусом outer_r и внутренним радиусом inner_r.
Используются функции из задания 1.1: right_triangle_area и annulus_area.
"""
return right_triangle_area(leg1, leg2) + annulus_area(outer_r, inner_r)
Примеры использования (для наглядности):
# Пример 1: трапеция со сторонами a=4, b=6, высота h=5 и прямоугольный треугольник с катетами 3 и 4
# общая площадь = площадь трапеции + площадь треугольника
# result1 = composite_area_trap_and_triangle(4, 6, 5, 3, 4)
# Пример 2: трапеция + кольцо, трапеция (4,6,5), кольцо внешний радиус 7, внутренний радиус 3
# result2 = composite_area_trap_and_annulus(4, 6, 5, 7, 3)
# Пример 3: треугольник (катеты 3 и 4) + кольцо (R=7, r=3)
# result3 = composite_area_triangle_and_annulus(3, 4, 7, 3)
Обратите внимание на проверку в annulus_area:
- Если внешний радиус меньше или равен внутреннему, будет выброшено исключение ValueError с сообщением об ошибке.
Если хотите, могу привести конкретные числовые значения и вывести результаты вычислений.