Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 31.03.2023
Сообщений: 2

Сравнение треугольников

05.04.2023, 22:45. Показов 618. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть программа:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
class Triangle:
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def sides(self):
return (
((self.b[0] - self.a[0])**2 + (self.b[1] - self.a[1])**2)**0.5,
((self.c[0] - self.b[0])**2 + (self.c[1] - self.b[1])**2)**0.5,
((self.c[0] - self.a[0])**2 + (self.c[1] - self.a[1])**2)**0.5,
)
 
def medians(self):
s = self.sides()
return (
((2*self.a[0] + self.b[0] + self.c[0])/4, (2*self.a[1] + self.b[1] + self.c[1])/4, ((2*s[2]**2 + 2*s[1]**2 - s[0]**2)/4)**0.5),
((self.a[0] + 2*self.b[0] + self.c[0])/4, (self.a[1] + 2*self.b[1] + self.c[1])/4, ((2*s[2]**2 + 2*s[0]**2 - s[1]**2)/4)**0.5),
((self.a[0] + self.b[0] + 2*self.c[0])/4, (self.a[1] + self.b[1] + 2*self.c[1])/4, ((2*s[0]**2 + 2*s[1]**2 - s[2]**2)/4)**0.5),
)
 
def heights(self):
s = self.sides()
p = sum(s)/2
return tuple(2*(s[i]*s[(i+1)%3]*s[(i+2)%3]/(4*(p-s[i]))**2)**0.5 for i in range(3))
 
def isosceles(self):
s = self.sides()
return len(set(s)) <= 2
 
def equilateral(self):
s = self.sides()
return len(set(s)) == 1
 
def perimetr(self):
return sum(self.sides())
 
def area(self):
s = self.sides()
p = sum(s)/2
return (p*(p-s[0])*(p-s[1])*(p-s[2]))**0.5
 
def __eq__(self, other): #сравнение
if self.a==other.a and self.b==other.b and self.c==other.c :
return True
else:
return False
 
def __repr__(self):
return f"Треугольник {self.a}, {self.b}, {self.c}"
1. Надо изменить класс таким образом, чтобы треугольник можно было изменить после создания (заменить точки), но при этом вводимые данные проверялись и при неправильном вводе выводилась ошибка.
Код создания ошибки:
raise ValueError('Текст ошибки') # Ошибка значения
raise TypeError('Текст ошибки') # Ошибка типа данных
2. Добавить функции сравнения треугольников (по площади)
3. Создать класс: неизменяемый треугольник на основе треугольника (наследие) так, чтобы нельзя было менять координаты вершин
4. Создать класс: прямоугольный треугольник на основе треугольника (наследие) с дополнительной проверкой, что один из углов прямой (проверку можно осуществить с помощью теоремы Пифагора).
Пример программы, использующей данные классы:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
t = Triangle((1., 0.), (2., 4.), (0., 1.))
print(t.isosceles()) # False
print(t.A) # (1., 0.)
t.B = (0., 0.)
# t.B = [] # Эта строка выводит TypeError
print(t) # Треугольник (1.0, 0.0), (0.0, 0.0), (0.0, 1.0)
print(t.isosceles()) # True
t2= Triangle((2., 0.), (0., 0.), (0., 1.))
if t > t2:
print('Первый треугольник больше')
else:
print('Второй треугольник больше или равен') #Выполняется это условие
t2 = ImmutableTriangle((1., 0.), (2., 0.), (0., 1.))
# t2.A = (2., 0.) # Эта строка выводит AttributeError
t3 = RightTriangle((1., 0.), (0., 0.), (0., 1.))
# t4 = RightTriangle((1., 0.), (0.25, 0.25), (0., 1.)) # ValueError
t3.A = (2.,0.)
# t3.A = (2.,0.5) # Эта строка выводит ValueError (не прямоугольный)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.04.2023, 22:45
Ответы с готовыми решениями:

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

Сравнение треугольников
import math def formula(n, k, f): p = float((n + k + f)/2) Sq = math.sqrt(p*(p-n)*(p-k)*(p-f)) return Sq ...

Сравнение треугольников
Всем привет. Перешёл на яву недавно. Первым заданием стало задать три стороны треугольника и найти всё возможное (углы, периметр,...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.04.2023, 22:45
Помогаю со студенческими работами здесь

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

ООП: сравнение двух треугольников по трем сторонам
«Треугольник» Необходимо следить за непротиворечивостью состояния объекта (Проверять треугольник на существование). Данные класса:...

Известны стороны 5 треугольников. Найти сколько равнобедренных и равно сторонних треугольников.
Известны стороны 5 треугольников. Найти сколько равнобедренных и равно сторонних треугольников.

Даны действительные числа a, b, c, d, e, f – стороны 2-х треугольников. Найти разность площадей треугольников
Даны действительные числа a, b, c, d, e, f – стороны 2-х треугольников. Найти разность площадей треугольников. Проверка на существование...

Имеется 5 равнобедренных треугольников.Найти суммарную площадь все треугольников
Имеется 5 равнобедренных треугольников. Длины сторон нижнего треугольника а, а, b, длины сторон каждого последующего треугольника в 1,2...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru