Найти площадь прямоугольника, треугольника или круга
В зависимости от того, что выберет пользователь, вычислить площадь либо прямоугольника, либо треугольника, либо круга. Если выбраны прямоугольник или треугольник, то надо запросить длины сторон, если круг, то его радиус.
Решение задачи на языке программирования Python
Площадь треугольника вычисляется по формуле Герона:
, где p - это полупериметр, a, b, c - длины сторон. Полупериметр равен половине периметра, то есть половине суммы сторон.
Площадь прямоугольника равна произведению его двух сторон (длины и ширины). Площадь круга вычисляется по формуле S = πr2.
from math import sqrt, pi print("1-прямоугольник, 2-треугольник, 3-круг") figure = input("Выберите фигуру: ") if figure == '1': print("Длины сторон прямоугольника:") a = float(input("a = ")) b = float(input("b = ")) print("Площадь: %.2f" % (a * b)) elif figure == '2': print("Длины сторон треугольника:") a = float(input("a = ")) b = float(input("b = ")) c = float(input("c = ")) p = (a + b + c) / 2 s = sqrt(p * (p - a) * (p - b) * (p - c)) print("Площадь: %.2f" % s) elif figure == '3': r = float(input("Радиус круга R = ")) print("Площадь: %.2f" % (pi * r ** 2)) else: print("Ошибка ввода")
Начиная с версии 3.10, в Python имеется оператор match
. Вариант решения задачи с его помощью будет выглядеть так:
from math import sqrt, pi print("1-прямоугольник, 2-треугольник, 3-круг") figure = input("Выберите фигуру: ") match figure: case '1': print("Длины сторон прямоугольника:") a = float(input("a = ")) b = float(input("b = ")) print("Площадь: %.2f" % (a * b)) case '2': print("Длины сторон треугольника:") a = float(input("a = ")) b = float(input("b = ")) c = float(input("c = ")) p = (a + b + c) / 2 s = sqrt(p * (p - a) * (p - b) * (p - c)) print("Площадь: %.2f" % s) case '3': r = float(input("Радиус круга R = ")) print("Площадь: %.2f" % (pi * r ** 2)) case _: print("Ошибка ввода")
Пример выполнение программы:
1-прямоугольник, 2-треугольник, 3-круг Выберите фигуру: 2 Длины сторон треугольника: a = 4 b = 5 c = 6 Площадь: 9.92