Найти периметр многоугольника

Программа должна рассчитывать периметр прямоугольника, который указывается при помощи координат. В качестве признака окончания ввода – пустая строка.

После ввода очередной пары должна вычисляться соответствующая сторона, ответ суммируется с предыдущими. При завершении ввода необходимо инициировать расчет расстояния от последней точки до первой, чтобы фигура замкнулась, далее вывести результат.

from math import sqrt
# Переменная для накопления длин сторон
perimeter = 0
# Запрашиваем координаты первой точки
first_x = float(input("Введите первую координату X: "))
first_y = float(input("Введите первую координату Y: "))
# Инициализируем координаты предыдущей точки начальными значениями
prev_x = first_x
prev_y = first_y
# Запрашиваем остальные координаты
line = input("Введите следующую координату X (Enter для окончания ввода): ")
while line != "":
    # Преобразуем координату X в число и запрашиваем координату Y
    x = float(line)
    y = float(input("Введите следующую координату Y: "))
    # Рассчитываем расстояние до предыдущей точки и добавляем к периметру
    dist = sqrt((prev_x – x) ** 2 + (prev_y – y) ** 2)
    perimeter = perimeter + dist
    # Устанавливаем значения предыдущих координат
    # для следующей итерации
    prev_x = x
    prev_y = y
    # Запрашиваем следующую координату X
    line = input("Введите следующую координату X (Enter для окончания ввода): ")
# Рассчитываем расстояние от последней точки до первой и добавляем к периметру
dist = sqrt((first_x – x) ** 2 + (first_y – y) ** 2)
perimeter = perimeter + dist
# Вывод результата
print("Периметр многоугольника - ", perimeter)




Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: