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

Доработать класс Vector, который хранит в себе вектор целых чисел. У класса Vector есть: Конструктор

29.10.2022, 11:38. Показов 2556. Ответов 1

Студворк — интернет-сервис помощи студентам
Доработать класс Vector, который хранит в себе вектор целых чисел. У класса Vector есть:
Конструктор __init__, принимающий произвольное количество аргументов. Среди всех переданных аргументов необходимо оставить только целые числа и сохранить их в атрибут values в виде списка. Причем значения должны хранится в порядке неубывания.
Переопределить метод __str__ так, чтобы экземпляр класса Vector выводился следующим образом:
"Вектор(<value1>, <value2>, <value3>, ...)", если вектор не пустой. При этом значения должны быть упорядочены по возрастанию;
"Пустой вектор", если наш вектор не хранит в себе значения.
Переопределить метод __add__ так, чтобы экземпляр класса Vector мог складываться:
с целым числом, в результате должен получиться новый Vector, у которого каждый элемент атрибута values увеличен на число;
с другим вектором такой же длины. В результате должен получиться новый Vector, состоящий из суммы элементов, расположенных на одинаковых местах. Если длины векторов различаются, выведите сообщение "Сложение векторов разной длины недопустимо";
в случае, если вектор складывается с другим типом (не числом и не вектором), нужны вывести сообщение "Вектор нельзя сложить с <значением>".
Переопределить метод __mul__ так, чтобы экземпляр класса Vector мог умножаться:
на целое число. В результате должен получиться новый Vector, у которого каждый элемент атрибута values умножен на переданное число;
на другой вектор такой же длины. В результате должен получиться новый Vector, состоящий из произведения элементов, расположенных на одинаковых местах. Если длины векторов различаются, выведите сообщение "Умножение векторов разной длины недопустимо";
в случае, если вектор умножается с другим типом(не числом и не вектором), нужны вывести сообщение "Вектор нельзя умножать с <значением>".
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.10.2022, 11:38
Ответы с готовыми решениями:

Перегрузка операций (создать класс Matrix (матрица целых чисел),используя класс Vector(вектор целых чисел) с переопределенными для него операциями)
создать класс Matrix (матрица целых чисел),используя класс Vector(вектор целых чисел) с переопределенными для него операциями.Определить...

Создать класс Vector (вектор целых чисел)
Создать класс Vector (вектор целых чисел), переопределить для него операции: а) &quot;+=&quot; - сложение векторов с сохранением значения...

Описать класс Vector как вектор из пяти пар двузначных целых чисел
Описать класс Vector как вектор из 5 пар двузначных целых чисел. Определить оператор &gt; и оператор += для комбинаций векторов(где...

1
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
29.10.2022, 16:49
Лучший ответ Сообщение было отмечено ridddel как решение

Решение

ridddel,
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 Vector:
    def __init__(self, *args):
        self.values = sorted(i for i in args if isinstance(i, int))
    
    def __str__(self):
        return f"Вектор({str(self.values)[1:-1]})" if self.values else "Пустой вектор"
        
    def __add__(self, other):
        if isinstance(other, int):
            return [i + other for i in self.values]
        if isinstance(other, Vector):
            if len(self.values) == len(other.values):
                return [sum(i) for i in zip(self.values, other.values)]
            raise ValueError("Сложение векторов разной длины недопустимо")
        raise ValueError(f"Вектор нельзя сложить с {other}")
        
    def __mul__(self, other):
        if isinstance(other, int):
            return [i * other for i in self.values]
        if isinstance(other, Vector):
            if len(self.values) == len(other.values):
                return [i[0] * i[1] for i in zip(self.values, other.values)]
            raise ValueError("Умножение векторов разной длины недопустимо")
        raise ValueError(f"Вектор нельзя умножать с {other}")
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.10.2022, 16:49
Помогаю со студенческими работами здесь

Реализовать класс «Вектор целых чисел» – Vector размерности n (без использования библиотеки STL)
Пожалуйста, помогите решить задачу: Реализовать класс «Вектор целых чисел» – Vector размерности n (без использования библиотеки STL)....

Создать клас ВЕКТОР целых чисел. Разработать класс СТЕК, который вмещает объект класса ВЕКТОР
Создать клас ВЕКТОР целых чисел. Разработать класс СТЕК, который вмещает объект класса ВЕКТОР. Определить необходимые конструкторы, методы...

Как создать динамический массив vector с объектами класса, который использует конструктор с параметром?
Нужно создать программу с 2-мя типами конструкторов (с параметром и без). Без параметра все работает хорошо, а вот с параметром массив...

Создать производный класс ТРОИЧНЫЙ ВЕКТОР от класса Vector
Народ!!! Please help me! Задолбался уже!:wall: Вобщем такое задание: Создать производный класс ТРОИЧНЫЙ ВЕКТОР от класса Vector....

Как можно увеличить размер вектора, который является элементом вектора vector<vector<int>>arr(n, vector <int>)
Написал программу, которая создает вектор 'а' векторов 'b', вектора 'b' содержат 2 числа. Стало интересно, как нужно изменить программу...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Переходник 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
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru