кодесурса
«Python

Python: вычислить площадь многоугольника

script1adsense2code
script1adsense3code

Python Basic - 1: Упражнение 59 с решением

Выпуклый многоугольник - это простой многоугольник, в котором ни один отрезок прямой между двумя точками на границе никогда не выходит за пределы многоугольника. Эквивалентно, это простой многоугольник, внутренняя часть которого является выпуклым множеством. В выпуклом многоугольнике все внутренние углы меньше или равны 180 градусам, в то время как в строго выпуклом многоугольнике все внутренние углы строго меньше 180 градусов.

Напишите программу на Python, которая вычисляет площадь многоугольника. Вершины имеют имена вершина 1, вершина 2, вершина 3, ... вершина n в соответствии с порядком соединения ребер.

Однако n равно 3 или более и 20 или менее. Вы также можете использовать следующую формулу для вычисления площади S по длинам a, b и c трех сторон треугольника.

«Python:

Иллюстрированная презентация:

«Python:

Входные данные :
Ввод дается в следующем формате.
х1, у1
х2, у2
:
xn, yn
xi, yi - действительные числа, представляющие координаты x и y вершины i соответственно.
Выход:
Область вывода S (действительное число) в одной строке. Вывод может содержать ошибку 0,000001 или менее.

Пример решения :

Код Python:

import sys
from math import sqrt, hypot 
def _hypot(x1, x2):
    return hypot(x2[0]-x1[0], x2[1]-x1[1]) 
def parea(x1, x2, x3):
    y1, y2, y3 = _hypot(x1, x2), _hypot(x2, x3), _hypot(x1, x3)
    z = (y1+y2+y3)/2
    return sqrt(z*(z-y1)*(z-y2)*(z-y3))
 
print("Input the coordinates (ctrl+d to exit):")
a = [tuple(map(float, l.split(","))) for l in sys.stdin]
result = 0
for x1, x2 in zip(a[1:], a[2:]):
    result += parea(a[0], x1, x2)
print("Area of the polygon;")
print('{:.8f}'.format(result))

Пример вывода:

 Введите координаты (Ctrl + D для выхода):
1,0, 0,0
0,0, 0,0
1,0, 1,0
2.0, 0.0
-1,0, 1,0
Площадь многоугольника;
1.50000000

Блок - схема:

«Блок-схема:

Редактор кода Python:

Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.

Предыдущий: Напишите программу на Python для восстановления исходной строки, введя сжатую строку с этим правилом. Однако символ # не отображается в восстановленной строке символов.
Далее: Напишите программу на Python, чтобы вырезать слова длиной от 3 до 6 символов из данного предложения не более 1024 символов.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code