|
0 / 0 / 0
Регистрация: 01.03.2021
Сообщений: 13
|
||||||
Создание класса Point в Python01.03.2021, 00:32. Показов 17008. Ответов 22
Здравствуйте, только начал изучать Python. Задача на ООП. У меня есть класс Point. С координатами x и y. Затем идёт класс Figure с дочерним классом Triangle. Мне нужно чтобы там было 3 точки и соответственно затем вычислить расстояние между ними, которые будут катетами треугольника. Как в классе Triangle их описать ? И затем использовать для вычисления периметра и площади?
Я тут просто использовал a, b, c как расстояние, а они должны быть точками. Которым я дам координатами. Помогите.
0
|
||||||
| 01.03.2021, 00:32 | |
|
Ответы с готовыми решениями:
22
Создание класса в Python Определить класс Rectangle и класс Point. Объявить массив из n объектов класса Point. Написать функцию, определяющ |
|
0 / 0 / 0
Регистрация: 01.03.2021
Сообщений: 13
|
||||||
| 02.03.2021, 12:53 [ТС] | ||||||
|
Если я правильно всё учёл, то код будет выглядеть так?
0
|
||||||
| 02.03.2021, 16:21 | |||||||||||||||||||||
Сообщение было отмечено Candykiller16 как решение
Решение
Candykiller16, Кстати, я до сих пор не вникал, как Вы вычисляете длины сторон треугольника. У питона нет функции sqrt(). Это функция из модуля math . Тогда нужно импортировать этот модуль. Если не импортировать модуль, то извлечение корня можно реализовать возведением в степень 0.5
Добавлено через 3 минуты Candykiller16, Если подытожить все то, что я написал выше, то можно написать такой код Кликните здесь для просмотра всего текста
Выводит:
Candykiller16, Использование избыточных (с точки зрения математики) атрибутов, улучшает читабельность кода и на самом деле соответствует реальному мышлению человека, в котором присутствуют такие дополнительные свойства при определении треугольника, что облегчает процесс мышления. Формально атрибуты экземпляра при создании класса можно сравнить с глобальными переменными модуля. Глобальные переменные модуля, при правильном их использовании делают код более читабельным и повышают его производительность, так как при каждом обращении к переменной не нужно по новой вызывать функцию, которая забирает время на свою работу. При наличие глобальной переменной, функция отрабатывает и заносит результат в глобальную переменную только в том случае, когда изменяются ее аргументы, а не каждый раз, когда в каком то месте нужно получить ее значение. Хотя я понимаю, в каких случаях с глобальными переменными могут возникнуть проблемы. Когда для разных мест нужна одна и та же функция, но с разными аргументами при вызове. В таких случаях нельзя результат работы функции помещать в одну и ту же глобальную переменную. В этом случае нужно осуществлять привязку к функции аргументов, которые используются при вызове функции. Проще всего это делать используя класс глобальных переменных. Где глобальная переменная будет экземпляром класса, у которого в качестве атрибутов будет сама функция и конкретные аргументы для ее вызова. Таким образом глобальные переменные для хранения результата вычисления функции будут разными, с учетом используемых атрибутов. Но такое усложнение имеет смысл только в крупных проектах, где зрительно тяжело отслеживать логику работы глобальных переменных и требуется формализовать защиту от возможных ошибок. Но такое усложнение, в свою очередь облегчит понимание логики работы кода и как я говорил, повысит производительность программы, где результаты работы функции используются многократно, вместо того, что бы многократно вызывать эту функцию, тратя на ее работу время. Добавлено через 59 минут Candykiller16, Вообще то имеет смысл делать проверку, является ли треугольник образуемый заданными точками, прямоугольным. Тогда код будет выглядеть так: Кликните здесь для просмотра всего текста
Выводит:
Я проверку сделал не совсем правильную. Нужно искать наибольшую сторону и проверять, является ли ее квадрат равен сумме квадратов двух других сторон. То есть нужно сначала определить, какая сторона гипотенуза, а какие катеты. и только тогда вычислять площадь по предложенной формуле. Если хотите доработайте код, что бы была правильная проверка и правильно вычислялась площадь. Я на сегодня все. Добавлено через 14 минут Так как код по умолчанию предполагает, что точки ac принадлежат гипотенузе, то нужно или жестко задавать в синтаксисе создания экземпляра класса, что точки a и c задают гипотенузу, или в методе __init__ в классе искать какая из сторон является гипотенузой.
1
|
|||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 01.03.2021
Сообщений: 13
|
|
| 02.03.2021, 18:15 [ТС] | |
|
Спасибо вам большое)
0
|
|
| 02.03.2021, 18:15 | |
|
Описать в программе три объекта класса point и два объекта класса cpoint
Написать класс POINT 3D на Python Шаблон класса Point
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Сукцессия 20. Война автоботов. Делаем ставки. Лёд против "пш-пш!".
anaschu 11.07.2026
Битва ИИ в ризосфере: Как мы скрестили жесткие ОДУ, закон Фика и «подземный шантаж»
Уважаемые коллеги!
Хочу поделиться уникальным опытом ведения междисциплинарной компьютерной разработки. Прямо. . .
|
Сукцессия 19. Какие выводы я сделал из модели? Часть 2.Внутримикоризный стехиометрический буфер и хроно-дискретные зоны экспансии
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы
Математический аппарат моделирования
|
Сукцессия 18. Какие выводы я сделал из войны грибов с деревьями? Часть 1- рассказ и немного про термины
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы
Математический аппарат моделирования
Система ОДУ описывает динамику изменения массы различных компонентов системы во времени. Ключевой. . .
|
Просветление в 5 секунд
kumehtar 10.07.2026
Андрей Веретенников выдал фразу недавно: "Вам не обязательно кем-то себя считать"
|
|
Эксперимент с картинкой-обложкой на CodinGame
Adler 10.07.2026
Решил на днях провести эксперимент. У меня есть аккаунт на CodinGame, ТОП-3 по РФ среди 2200 участников (в разделе соревнования по программированию ИИ-ботов). Там есть обложка, куда можно влепить. . .
|
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
|
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|