Задать вопрос
Fox7777
@Fox7777
Люблю python

Почему выводит не совсем правильно?

Напишите программу для расчета периметра заданного многоугольника.
Начните с запроса у пользователя координат x и y первой точки многоугольника. Продолжайте запрашивать координаты следующих точек фигуры, пока пользователь не оставит строку ввода координаты по оси x
пустой. После ввода каждой пары значений вы должны вычислить длину
очередной стороны многоугольника и прибавить полученное значение
к будущему ответу. По окончании ввода необходимо вычислить расстояние от последней введенной точки до первой, чтобы замкнуть фигуру,
и вывести итоговый результат.
Введите первую координату X: 0
Введите первую координату Y: 062
Введите следующую координату X (Enter для окончания ввода): 1
Введите следующую координату Y: 0
Введите следующую координату X (Enter для окончания ввода): 0
Введите следующую координату Y: 1
Введите следующую координату X (Enter для окончания ввода):
Периметр многоугольника равен: 3.414213562373095
def len_seg(x1,y1,x2,y2):
    return ((x2-x1)**2+(y2-y1)**2)**0.5

x = []
y = []
x.append(int(input("Введите первую координату X: ")))
y.append(int(input("Введите первую координату Y: ")))
while True:
    try:
        x.append(int(input("Введите следующую координату X (Enter для окончания ввода): ")))
        y.append(int(input("Введите следующую координату Y: ")))
    except:
        break

p = 0
for i in range(0, len(x)-1):
    p += len_seg(x[i],y[i],x[i+1],y[i+1])
print(p)

Мой вывод:
Введите первую координату X: 0
Введите первую координату Y: 062
Введите следующую координату X (Enter для окончания ввода): 1
Введите следующую координату Y: 0
Введите следующую координату X (Enter для окончания ввода): 0
Введите следующую координату Y: 1
Введите следующую координату X (Enter для окончания ввода): 
63.422277554083074
  • Вопрос задан
  • 1361 просмотр
Подписаться 1 Простой 4 комментария
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Ты забыл последнюю сторону многоугольника.
p += len_seg(x[-1],y[-1],x[0],y[0])
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Dantarian
Можно опубликовать исправленный код?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы