ПОМОГИТЕ ХОТЬ С ОДНИМ ЗАДАНИЕ ДАЮ 69 БАЛЛОВ
1)Даны координаты вершин двух треугольников. Используя подпрограммы определить, какой из них имеет большую площадь.(Подпрограмма, считающая площадь по координатам, и подпрограмма, считающая какое число больше)
2)Используя функцию max2(a,b), которая определяет максимальное из двух данных чисел, записать функцию max3(a,b,c), определяющую максимальное из трех чисел, и организовать вызов этой функции для вычисления суммы наибольших значений из трех троек произвольных действительных чисел.
ВСЕ ЗАДАНИЕ ВиПОЛНЯЮТЬСЯ В PYTHON!!!!!!!!!!!!!!!!!
Answers & Comments
Verified answer
Ответ:
Python 3.7
Не указано, что понимать под подпрограммами, по этому первая задача реализована с использованием классов и ООП
#1
import math
class Vector(object):
def __init__(self, starts:dict, ends:dict):
self.startpoint = starts
self.endpoint = ends
def length(self):
coords = self.coords
return math.sqrt(sum([coord**2 for coord in coords.values()]))
@property
def coords(self):
xcoord = self.endpoint['x'] - self.startpoint['x']
ycoord = self.endpoint['y'] - self.startpoint['y']
try:
zcoord = self.endpoint['z']- self.startpoint['z']
except:
return {'x': xcoord, 'y' : ycoord}
else:
return {'x' : xcoord, 'y' : ycoord, 'z' : zcoord}
def GeronTriangleArea(lena, lenb, lenc):
halfperimeter = (lena + lenb + lenc)/2
return math.sqrt((halfperimeter * (halfperimeter - lena) * (halfperimeter - lenb) *(halfperimeter-lenc)))
def main():
print('Введите данные для первого треугольника')
firstpoint = (float(input('Первая точка. Х - координата: ')), float(input('First point: Y - coordinates: ')))
secondpoint = (float(input('Second point. X - coordinates: ')), float(input('Second point. Y - coordinates: ')))
thirdpoint = (float(input('Third point: X - coordinates: ')), float(input('Third point. Y - coordinates: ')))
AB = Vector({'x' : firstpoint[0], 'y': firstpoint[1]}, {'x': secondpoint[0], 'y': secondpoint[1]})
BC = Vector({'x' : secondpoint[0], 'y': secondpoint[1]}, {'x' : thirdpoint[0], 'y': thirdpoint[1]})
AC = Vector({'x' : thirdpoint[0], 'y': thirdpoint[1]}, {'x' : firstpoint[0], 'y': firstpoint[1]})
first_area = GeronTriangleArea(AB.length(), BC.length(), AC.length())
print('Введите данные для второго треугольника')
firstpoint = (float(input('Первая точка. Х - координата: ')), float(input('First point: Y - coordinates: ')))
secondpoint = (float(input('Second point. X - coordinates: ')), float(input('Second point. Y - coordinates: ')))
thirdpoint = (float(input('Third point: X - coordinates: ')), float(input('Third point. Y - coordinates: ')))
AB = Vector({'x' : firstpoint[0], 'y': firstpoint[1]}, {'x': secondpoint[0], 'y': secondpoint[1]})
BC = Vector({'x' : secondpoint[0], 'y': secondpoint[1]}, {'x' : thirdpoint[0], 'y': thirdpoint[1]})
AC = Vector({'x' : thirdpoint[0], 'y': thirdpoint[1]}, {'x' : firstpoint[0], 'y': firstpoint[1]})
second_area = GeronTriangleArea(AB.length(), BC.length(), AC.length())
print('Площадь первого треугольника больше' if (first_area > second_area) else 'Площадь второго треугольника больше')
if __name__ == '__main__':
main()
#3 //Бесполезнее и глупее задания я не встречал.
def max2(a,b):
return max(a,b)
def max3(a, b, c):
return max(max2(a, b), c)
nums = [int(input()) for i in range(3)]
print(max3(*nums))
Объяснение:
первую задачу оно не запускает. пишет ошибка, а вторая ничего не выводит,что делать подскажи пожалуйста