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

Не могу унаследовать класс от родительского используя super. Задача вычисления площади и периметра Круга, Треугольника и

17.10.2022, 13:54. Показов 747. Ответов 5

Студворк — интернет-сервис помощи студентам
ПОМОГИТЕ ПОЖАЛУЙСТА! Здесь ошибка в конструкторе
1) Как мне правильно унаследавать класс Треугольник от класса Круг, что бы добавить точку "с" и получить длинны
3 сторон (ab, bc, ac). У меня Пайчарм не видит метод "side_long" в классе Треугольник. Что я делаю не так?

2) Затем я собираюсь унаследовать класс Прямоугольник от класса Круг, добавив при этом точки "с", "d" и вычислив
длинны сторон (ab, bc, cd, ad). Это вообще правильный подход? Или нужно было создать некий абстрактный класс Shape,
а от него наследовать 3 класса - Круг, Треугольник, Прямоугольник?

Это ссылка на гитхаб (только знакомлюсь с гитхабом, не знаю правильно ли я делаю) https://github.com/Alex17966/lessons_repo.git

А это сам код

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
import math
 
class Circle:
    """
    Приходят координаты(2 точки):
    а - центр, b - точка на окружности
    метод side_long вычисляет расстояние между точками(радиус)
    """
 
    def __init__(self, a, b):
        def side_long(dot1, dot2):
            return math.sqrt((dot1[0] - dot2[0]) ** 2
                             + (dot1[1] - dot2[1]) ** 2)
 
        self.a = a
        self.b = b
        self.ab = side_long(a, b)
 
    def perimeter(self):
        return round(2 * 3.14 * self.ab, 2)
 
    def area(self):
        return round(3.14 * self.ab ** 2, 2)
 
 
class Triangle(Circle):
    
    def __init__(self, a, b, c):
        super().__init__(self, c)
        self.ac = side_long(a, c)
 
    def perimeter(self):
        return round(self.ab + self.bc + self.ac, 2)
 
    def area(self):
        semi_perimeter = (self.ab + self.bc + self.ac) / 2
        return round(math.sqrt(semi_perimeter *
                         (semi_perimeter - self.ab) *
                         (semi_perimeter - self.bc) *
                         (semi_perimeter - self.ac)), 2)
 
 
circle = Circle((1, 1), (1, 2))
print(circle.perimeter())
print(circle.area())
# triangle1 = Triangle((0, 0), (1, 0), (0, 1))
# print(triangle1.perimeter())
# print(triangle1.area())
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.10.2022, 13:54
Ответы с готовыми решениями:

Создать класс, содержащий методы вычисления площади и периметра треугольника
Создать класс,содержащий методы вычисления площади и периметра треугольника. Протестировать созданный класс: определить площадь и...

Написать программу вычисления периметра и площади треугольника, используя процедуру и функцию
Здравствуйте! Обращаюсь за помощью. Никак не получается написать следующую программу: Я пробовала написать, но тщетно. В общем,...

Создать абстрактный базовый класс Triangle для представления треугольника с абстрактными методы вычисления площади и периметра
Помогите разобраться с программой. Очень нужно!!! Создать абстрактный базовый класс Triangle для представления треугольника с...

5
290 / 170 / 92
Регистрация: 21.03.2016
Сообщений: 400
17.10.2022, 14:33
У вас side_long( ) внутри __init__() ? Зачем?
И мне кажется странно треугольник наследовать от круга, или нет?
0
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
17.10.2022, 14:50
Более чем странное наследование, но если так надо...
В __init__ треугольника не определяется bc.

Добавлено через 7 минут
И да, Berbentsev, прав, зачем функция side_long внутри конструктора? Из наследника она не вызовется
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38178 / 21113 / 4307
Регистрация: 12.02.2012
Сообщений: 34,716
Записей в блоге: 14
17.10.2022, 14:56
Цитата Сообщение от Alex2022Alex Посмотреть сообщение
Как мне правильно унаследавать класс Треугольник от класса Круг, что бы добавить точку "с" и получить длинны
- НИКАК! Это идиотское бессмысленное наследование! Не нужно насиловать здравый смысл! А слово "длина" пишется с одним "н".

Добавлено через 31 секунду
Цитата Сообщение от Parramon Посмотреть сообщение
но если так надо...
- так не может быть "надо" !!!
1
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
17.10.2022, 15:32
Лучший ответ Сообщение было отмечено Alex2022Alex как решение

Решение

Alex2022Alex, посмотри вот тут: https://www.cyberforum.ru/post16497169.html
1
0 / 0 / 0
Регистрация: 17.10.2022
Сообщений: 2
17.10.2022, 16:26  [ТС]
Спасибо всем за ответы, и за ссылку на аналогичную задачу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.10.2022, 16:26
Помогаю со студенческими работами здесь

Калькулятор площади и периметра квадрата, треугольника и круга.
Создать программу калькулятор площади и периметра встроенных геометрических фигур. Должны поддерживаться круг, прямоугольник и треугольник...

Написать программу вычисления периметра и площади треугольника
1.20. Написать программу вычисления периметра и площади треугольника, заданного координатами вершин. Пример: x1 = 0, y1 = 0, x2 = 0, y2...

Функции для вычисления периметра и площади треугольника
Пожалуйста, помогите оптимизировать условие. Треугольник в треугольнике.Два треугольника заданы своими координатами. Нужно создать...

Написать программу вычисления периметра и площади прямоугольного треугольника
Написать программу вычисления периметра и площади прямоугольного треугольника по длинам двух катетов. python

Определение типа треугольника и вычисления его периметра и площади
определение типа треугольника и вычисления его периметра и площади(Turbo pascal)


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru