0 / 0 / 0
Регистрация: 01.03.2021
Сообщений: 13
|
||||||
1 | ||||||
Создание класса Point в Python01.03.2021, 00:32. Показов 14665. Ответов 22
Здравствуйте, только начал изучать Python. Задача на ООП. У меня есть класс Point. С координатами x и y. Затем идёт класс Figure с дочерним классом Triangle. Мне нужно чтобы там было 3 точки и соответственно затем вычислить расстояние между ними, которые будут катетами треугольника. Как в классе Triangle их описать ? И затем использовать для вычисления периметра и площади?
Я тут просто использовал a, b, c как расстояние, а они должны быть точками. Которым я дам координатами. Помогите.
0
|
01.03.2021, 00:32 | |
Ответы с готовыми решениями:
22
Создание класса в python Создание класса в Python Определить класс Rectangle и класс Point. Объявить массив из n объектов класса Point. Написать функцию, определяющ Описать в программе три объекта класса point и два объекта класса cpoint |
0 / 0 / 0
Регистрация: 01.03.2021
Сообщений: 13
|
||||||
02.03.2021, 12:53 [ТС] | 21 | |||||
Если я правильно всё учёл, то код будет выглядеть так?
0
|
02.03.2021, 16:21 | 22 | ||||||||||||||||||||
Сообщение было отмечено 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 [ТС] | 23 |
Спасибо вам большое)
0
|
02.03.2021, 18:15 | |
02.03.2021, 18:15 | |
Помогаю со студенческими работами здесь
23
Описать базовый класс Point. Описать класс Прямоугольник от класса Point Написать класс POINT 3D на Python Шаблон класса Point Объявление класса Point Создать шаблон класса Point Два класса Point и Vector Разработка абстрактного класса Point<T> Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |