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

Сумматоры-2

14.04.2019, 14:06. Показов 36512. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Реализуйте класс PowerSummator, вычисляющий сумму последовательности натуральных чисел от 1 до N

Как и в классной задаче «Сумматоры», класс PowerSummator должен наследоваться от класса Summator.

Напомним, что класс Summator должен иметь методы transform(n) и sum(N).

Метод transform(n) выполняет преобразование элемента последовательности. Для класса Summator это будет тождественное преобразование, т.е. transform(n) == n. Метод transform(n) должен быть переопределен в классе PowerSummator.
Метод sum(N) должен вычислять сумму значений transform(n) для всех значений n от 1 до N.

Помимо метода transform, для класса PowerSummator также нужно переопределить конструктор. Конструктор класса PowerSummator должен принимать один параметр – степень b, в которую нужно возводить элементы последовательности.

Также отнаследуйте от класса PowerSummator классы SquareSummator и CubeSummator, которые (как и в классной задаче «Сумматоры») должны вычислять суммы квадратов и кубов соответственно. Конструкторы классов SquareSummator и CubeSummator не должны принимать аргументов. В классах SquareSummator и CubeSummator должен быть переопределён только конструктор; переопределять другие методы нельзя.

Прошу помочь с заданием. Мои наработки:

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
class Summator:
    def transform(self, n):
        return n
 
    def sum(self, N):
        x = 0
        for i in range(1, N + 1):
            x += self.transform(i)
        return x
 
 
class PowerSummator(Summator):
    def __init__(self, b):
        pass
 
    def transform(self, b):
        pass
 
 
class SquareSummator(PowerSummator):
    pass
 
 
class CubeSummator(PowerSummator):
    pass
Там, где у меня стоит pass - должны быть определённые строки кода.
Так же есть ещё одна наработка, но она неправильна:
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
class Summator:
    def transform(self, n):
        return n
 
    def sum(self, N):
        x = 0
        for i in range(1, N + 1):
            x += self.transform(i)
        return x
 
 
class PowerSummator(Summator):
    def __init__(self, b):
        pass
 
    def transform(self, n, b):
        super().transform(n, b)
        return n ** b
 
 
class SquareSummator(PowerSummator):
    def transform(self, n):
        return n ** 2
 
 
class CubeSummator(PowerSummator):
    def transform(self, n):
        return n ** 3
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.04.2019, 14:06
Ответы с готовыми решениями:

Сумматоры
Реализуйте несколько классов, вычисляющих суммы следующих последовательностей натуральных чисел от 1 до N: Сделайте это с помощью...

Сумматоры
На каких логических элементах можно построить сумматор? Схема, принцип действия.

помогите. сумматоры
Задачи Нарисовать схему одноразрядного сумматора Z=X+Y с учетом переноса Р. Указание: изобразить все четыре возможных варианта...

6
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
14.04.2019, 22:48
Цитата Сообщение от Bigfartyk Посмотреть сообщение
Как и в классной задаче «Сумматоры», класс PowerSummator должен наследоваться от класса Summator
Так как в условии идет ссылка на классную задачу «Сумматоры», про которую ничего не известно, то сделать полноценный анализ нет возможности. Можно только сделать некоторые замечания исходя из имеющегося материала.
Цитата Сообщение от Bigfartyk Посмотреть сообщение
Конструкторы классов SquareSummator и CubeSummator не должны принимать аргументов.
и
Цитата Сообщение от Bigfartyk Посмотреть сообщение
В классах SquareSummator и CubeSummator должен быть переопределён только конструктор
Это значит, что экземпляры классов SquareSummator и CubeSummator не имеют атрибутов, так как они не инициируются этими классами в конструкторах и, так как все таки имеют свои конструкторы, то не могут наследовать атрибуты из суперклассов.
Цитата Сообщение от Bigfartyk Посмотреть сообщение
В классах SquareSummator и CubeSummator должен быть переопределён только конструктор; переопределять другие методы нельзя.
У Вас же во втором коде в классах SquareSummator и CubeSummator отсуствуют конструкторы и наоборот присутствует переопределение метода transform , что противоречит заданию. Видимо для вычисления суммы квадратов и суммы кубов нужно определить методы с другими именами.
В общем Вам в классах SquareSummator и CubeSummator нужно добавить конструкторы только с одним аргументом self
Python
1
def __init__(self)
(как совсем без аргументов не представляю, можно ли так, это нужно разбираться).
И изменить имена у методов вычисляющих сумму квадратов и сумму кубов.
Больше ничего посоветовать не могу, так как не знаю, что в классной задаче «Сумматоры».
1
4 / 3 / 1
Регистрация: 23.03.2019
Сообщений: 6
19.04.2019, 20:39
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
class Summator:
    def transform(self, n):
        return n
 
    def sum(self, N):
        count = 0
        for i in range(N + 1):
            count += self.transform(int(i))
        return count
 
 
class PowerSummator(Summator):
    def __init__(self, b):
        self.b = b
 
    def transform(self, n):
        return n ** self.b
 
 
class SquareSummator(PowerSummator):
    def __init__(self):
        pass
 
    def transform(self, n):
        return n ** 2
 
 
class CubeSummator(PowerSummator):
    def __init__(self):
        pass
 
    def transform(self, n):
        return n ** 3
Добавлено через 14 секунд
как то так
0
7 / 7 / 0
Регистрация: 22.04.2019
Сообщений: 1
22.04.2019, 22:22
Вот 100% правильный вариант(у меня сработал):
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
class Summator:
    def transform(self, n):
        return n
 
    def sum(self, N):
        s = 0
        for i in range(1, N + 1):
            s += self.transform(i)
        return s
 
 
class PowerSummator(Summator):
    def __init__(self, b):
        self.b = b
 
    def transform(self, n):
        return n ** self.b
 
 
class SquareSummator(PowerSummator):
    def __init__(self):
        super().__init__(2)
 
 
class CubeSummator(PowerSummator):
    def __init__(self):
        super().__init__(3)
7
1 / 1 / 0
Регистрация: 03.11.2022
Сообщений: 41
28.04.2023, 19:26
у тебя код правильный, но с ошибками pep8, вот исправленный если кому-то еще нужен

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
class Summator:
    def transform(self, n):
        return n
 
    def sum(self, N):
        count = 0
        for i in range(N + 1):
            count += self.transform(int(i))
        return count
 
 
class SquareSummator(Summator):
    def __init__(self):
        pass
 
    def transform(self, n):
        return n ** 2
 
 
class CubeSummator(Summator):
    def __init__(self):
        pass
 
    def transform(self, n):
        return n ** 3
0
2 / 2 / 0
Регистрация: 31.03.2024
Сообщений: 32
11.04.2024, 20:43
Не сомневайся Я.лицей еще идет...)
0
2 / 2 / 0
Регистрация: 31.03.2024
Сообщений: 32
15.04.2024, 21:22
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
class Summator:
    def transform(self, n):
        return n
 
    def sum(self, N):
        return sum(self.transform(n) for n in range(1, N + 1))
 
 
class PowerSummator(Summator):
    def __init__(self, b):
        self.b = b
 
    def transform(self, n):
        return n ** self.b
 
 
class SquareSummator(PowerSummator):
    def __init__(self):
        super().__init__(2)
 
 
class CubeSummator(PowerSummator):
    def __init__(self):
        super().__init__(3)
Перепробовал все варианты, перечисленные выше выше, и все неправильно(

Но мой вариант сработал и прошел проверку)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.04.2024, 21:22
Помогаю со студенческими работами здесь

Сумматоры ТТЛ- и ТТЛШ-серий
Добрый день может кто нибудь подсказать серии ИМС одноразрядного полусумматора и неполного двухразрядного сумматора если не составит...

Многоразрядные сумматоры с ускоренным переносом
Немного почитал теорию про данный метод Самый простой пример сложение: переменная = десятичная система = двоичная система А...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru