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

Создать класс CMatrix (матрица), описывающий объект – действительные матрицы заданного размера

12.05.2015, 19:01. Показов 1295. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание № 3

Общее для всех

1. Создать класс CMatrix (матрица), описывающий объект – действительные матрицы заданного размера NR (число строк)NC (число столбцов), состоящие из NR вектор-строк, описываемых классом CVect, длины NC.
Поля класса:
Защищённые члены:
число строк матрицы NR,
число столбцов матрицы NC,
массив из NR вектор-строк, принадлежащих классу CVect длины NC.
Методы класса:
Конструктор по умолчанию – создает матрицу нулевого размера, не выделяя память.
Конструктор первый – создаёт матрицу заданного размера и заполняет её нулями.
Конструктор второй – создаёт матрицу заданного размера и заполняет его числами типа double путём копирования их из двумерного массива.
Конструктор копирования первый– копирует одну матрицу в другую.
Конструктор копирования второй – создание матрицы, состоящей из одной строки или одного столбца, путём копирования элементов вектора. Ориентация вектора учитывается.
Конструктор третий – создание матрицы заданного размера NRNC со случайными действительными компонентами, заключёнными в пределах [–R, R], R – действительное число.
Конструктор четвёртый – создание диагональной матрицы, заполненной действительным числом fill_number.
Встроенная функция определения числа строк матрицы.
Встроенная функция определения числа столбцов матрицы.
Функция транспонирования матрицы.
Функция вычисления суммы элементов матрицы.
Функция вычисления следа матрицы (сумма элементов главной диагонали).
Функция произведения двух матриц.
Функция умножения матрицы на скаляр.
Функция сложения двух матриц.
Функция присвоения одной матрицы другой.
Функция печати матрицы в поток вывода.
Функция сравнения двух матриц.
Функция перестановки местами строк матрицы с номерами first_row и second_row.
Функция перестановки местами столбцов матрицы с номерами first_col и second_col.
Функция сложения строк матрицы: к элементам строки с номером first_row прибавить элементы строки second_row, умноженные на скаляр fact в соответствии с выражением
[r1] = [r1] + fact*[r2].
Функция создания новой матрицы из фрагмента уже имеющейся: образование новой матрицы путём копирования в неё прямоугольного фрагмента с координатами (индексами) верхнего левого углового элемента и размерами nrows ncols из уже имеющейся матрицы.
Функция, размещающая в имеющейся матрице блок Block (из двумерного массива или матрицы) в позицию, определяемую верхним левым элементом [top][left].
Деструктор.
Кроме того, методы должны содержать перегруженные операторы:
Оператор индексации – возвращает номер вектор-строки в матрице, когда выражение mat[i] относится ко всем элементам строки с номером i, чтобы с матрицей можно было работать, как с обычным массивом, обращаясь к её элементам в виде: mat[i][j].
Оператор транспонирования – транспонирует матрицу.
Бинарные операторы сложения и вычитания, чтобы матрицы одинаковых размеров можно было складывать и вычитать, как обычные переменные вида c = a + b.
Оператор произведения двух матриц (проверяющий, можно ли умножать данные матрицы).
Оператор умножения матрицы на число.
Оператор умножения вектора на матрицу (проверяющий, можно ли умножать данные вектор и матрицу).
Оператор умножения матрицы на вектор (проверяющий, можно ли умножать данные матрицу и вектор).
Инкрементный оператор сложения матриц аналог инкрементного оператора в C: a+=b.
Декрементный оператор вычитания векторов аналог декрементного оператора в C: a-=b..
Инкрементный оператор умножения матрицы на скаляр аналог инкрементного оператора в C: a*=b..
Оператор печати матрицы в поток вывода.
Оператор присваивания одной матрицы другой.
Оператор сравнения матриц.

Вторая часть
Дана матрица M(nxn), экземпляр класса CMatrix, и число k (0kn–1). Столбец с минимальным по модулю элементом в k-ой строке переставить с k-м столбцом
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.05.2015, 19:01
Ответы с готовыми решениями:

Создать класс CMatrix, описывающий объект – действительные матрицы заданного размера
Создать класс CMatrix (матрица), описывающий объект – действительные матрицы задан-ного размера NR (число строк)NC (число...

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

Создать классы, описывающий прямоугольники и класс-наследник, описывающий прямоугольные параллепипеды
Создать классы, описывающий прямоугольники. Найти площадь прямоугольника. Создать класс-наследник, описывающий прямоугольные параллепипеды....

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.05.2015, 19:01
Помогаю со студенческими работами здесь

Класс матрица, описывающий двумерный массив
Здравствуйте. Хочу разобраться и создать класс. Имеется код, но мне он кажется слишком сложным, как можно упростить его для лучшего...

Разработать класс, описывающий объект «книжный шкаф»
Разработать класс, описывающий объект «книжный шкаф». Объект «книжный шкаф» описывает шкаф с несколькими одинаковыми полками. Каждая...

Класс: Разработать класс, описывающий объект "Телефонный звонок"
Всем добрый вечер))) Пожалуйста помогите, очень прошу Разработать класс, описывающий объект "Телефонный звонок" Класс...

Класс: Создать класс, описывающий цех завода...
Создать класс, описывающий цех завода (количество единиц заготовок, поступающих на производство, количество единиц готовой продукции,...

Реализовать класс, описывающий целочисленное число произвольного размера (размер в байтах задается при инициализации)
Всем привет, помогите написать программу на C++. Реализовать класс, описывающий целочисленное число произвольного размера (размер в...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
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 и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru