Напиши легкую задачу на питоне: Даныстороны двух треугольников. Найти сумму их периметров исумму их площадей. (Определить процедуру для расчета периметра и площади треугольника по его сторонам.)
Ответ нейросети
11 сентября 2025 12:55
Задача для Python (легкого уровня)
Задано по сторонам двух треугольников: a1, b1, c1 и a2, b2, c2. Найти:
- сумму их периметров P1 + P2;
- сумму их площадей S1 + S2.
Также определить простую процедуру (функции) для расчета периметра и площади треугольника по его сторонам.
Указания к решению (пошагово):
- Проверка существования треугольника: для треугольника с сторонами a, b, c верно a + b > c, a + c > b, b + c > a.
- Периметр треугольника: P = a + b + c.
- Площадь по Герону:
- полупериметр s = P/2
- площадь = sqrt( s * (s - a) * (s - b) * (s - c) )
- Для двух треугольников посчитать P1, S1 и P2, S2, затем вывести суммы P1+P2 и S1+S2.
- В коде сделайте функции:
- is_triangle(a, b, c) → bool
- perimeter(a, b, c) → float
- area(a, b, c) → float (возвращает 0 или вызывает исключение для неверных треугольников; лучше возвращать None или выбрасывать ValueError)
- Ввод данных можно считать как две строки: первая -> a1 b1 c1, вторая -> a2 b2 c2.
Пример кода на Python (очевидный и понятный):
import math
def is_triangle(a, b, c): return (a + b > c) and (a + c > b) and (b + c > a)
def perimeter(a, b, c): return a + b + c
def area(a, b, c): # Предполагаем, что треугольник существует s = (a + b + c) / 2.0 val = s * (s - a) * (s - b) * (s - c) if val <= 0: return None # или можно вернуть 0, но лучше сигнализировать об ошибке return math.sqrt(val)
def read_triangle_sites(line): parts = line.strip().split() if len(parts) != 3: raise ValueError("Ожидались три стороны треугольника.") a, b, c = map(float, parts) return a, b, c
Ввод двух треугольников
Пример: две строки из консоли
line1 = input()
line2 = input()
Для демонстрации используем заранее заданные значения
line1 = "3 4 5" line2 = "5 5 6"
a1, b1, c1 = read_triangle_sites(line1) a2, b2, c2 = read_triangle_sites(line2)
if not is_triangle(a1, b1, c1): print("Первый треугольник не существует.") else: P1 = perimeter(a1, b1, c1) S1 = area(a1, b1, c1)
if not is_triangle(a2, b2, c2): print("Второй треугольник не существует.") else: P2 = perimeter(a2, b2, c2) S2 = area(a2, b2, c2)
Вывод сумм
if is_triangle(a1, b1, c1) and is_triangle(a2, b2, c2): total_perimeter = P1 + P2 total_area = S1 + S2 print("Сумма периметров:", total_perimeter) print("Сумма площадей:", total_area)
Пример входа/вывода (для двух тестовых треугольников 3,4,5 и 5,5,6): Ввод: 3 4 5 5 5 6 Вывод: Сумма периметров: 28.0 Сумма площадей: 18.0
Пояснения к примеру:
- Треугольник 1: стороны 3, 4, 5
- Периметр P1 = 3 + 4 + 5 = 12
- Полупериметр s = 12/2 = 6
- Площадь S1 = sqrt(6*(6-3)(6-4)(6-5)) = sqrt(632*1) = sqrt(36) = 6
- Треугольник 2: стороны 5, 5, 6
- Периметр P2 = 5 + 5 + 6 = 16
- s = 16/2 = 8
- S2 = sqrt(8*(8-5)(8-5)(8-6)) = sqrt(833*2) = sqrt(144) = 12
- Суммы: P1+P2 = 12+16 = 28, S1+S2 = 6+12 = 18
Если нужно, можно адаптировать ввод под одну строку или другой формат, но структура решения останется той же: отдельные функции для проверки треугольника, вычисления периметра и вычисления площади по Герону, затем суммирование результатов двух треугольников.
Понравился ответ?
Задай свой вопрос
Напиши любую задачу или вопрос, а нейросеть её решит



