Фрагмент для ознакомления
1
Введение………………………………………………………………………….3
1 Описание……………………………………………………………………….4
1.1 Формулирование требований к программе………………………………..4
1.2 Выбор среды программирования и компилятора…………………………5
1.3 Окончательная подготовка к написанию кода………………………….6
2. Проектирование………………………………………………………………7
2.1 Исходные данные……………………………………………………………7
2.2 Реализация кода программы………………………………………………..8
2.3 Действия после написания кода…………………………………………...11
Заключение……………………………………………………………………...14
Список использованной литературы…………………………………………..15
Фрагмент для ознакомления
2
Матрица — математический объект, записываемый в виде прямоугольной таблицы элементов кольца или поля (например, целых, действительных или комплексных чисел), который представляет собой совокупность строк и столбцов, на пересечении которых находятся его элементы. Количество строк и столбцов задает размер матрицы.
Матрицы позволяют оперировать с массивами чисел, функций или математических символов и имеют широкое приложение в различных отраслях знания – таких, например, как математика, физика, информатика, экономика и так далее. Матрицы позволяют решать системы физических и дифференциальных уравнений, предсказать значение физической величины в квантовой теории, шифровать сообщение в интернете, и многое другое.
Для матрицы определены следующие алгебраические операции:
• сложение матриц, имеющих один и тот же размер;
• умножение матриц подходящего размера (матрицу, имеющую n столбцов, можно умножить справа на матрицу, имеющую n строк);
• умножение матрицы на вектор-столбец и умножение вектор-строки на матрицу (по обычному правилу матричного умножения; вектор является в этом смысле частным случаем матрицы);
• умножение матрицы на элемент основного кольца или поля (то есть скаляр)
В данной работе реализован алгоритм умножения произвольных матриц. Эта одна из фундаментальных операций над матрицами используемая повсеместно. Реализация алгоритма выполнена на языке С++ 14. В среде разработки Visual Studio.
1 Описание
1.1 Формулирование требований к программе
В ходе работы необходимо разработать и реализовать программу способную умножать матрицы произвольного размера. Для достижения результата сформулируем ключевые требования к программе:
1. Программа должна выполнять операцию умножения двух матриц произвольных размеров и выводить корректный результат.
2. Если операция умножения не возможна, программа должна сообщить об этом пользователю.
3. При вводе данных должен осуществляется контроль вводимых данных.
4. Программа должна иметь возможность ввода матрицы с клавиатуры и генерации матрицы заданного размера с случайными значениями.
5. Код программы должен строится на парадигме функционального программирования.
Рассмотри алгоритм умножения матриц. Пусть даны две прямоугольные матрицы A и B размерности l x m и m x n соответственно. Матрицы представлены на рисунке 1.
Рисунок 1 – пример матрицы
Тогда результатом умножения будет матрица С, рисунок 2, размерности l x n. Каждый элемент новой матрицы будет сформирован по формуле 1.
Рисунок 2 – Результирующая матрица
(1)
Операция умножения двух матриц выполнима только в том случае, если число столбцов в первом сомножителе равно числу строк во втором. в этом случае говорят, что матрицы согласованы. В частности, умножение всегда выполнимо, если оба сомножителя — квадратные матрицы одного и того же порядка. На рисунке 3 представлена графическая иллюстрация операции умножения.
Рисунок 3 – Визуализация процедуры умножения
1.2 Выбор среды программирования и компилятора
Реализация алгоритма должна быть выполнена на языке С++. Существует огромное число инструментов, предназначенных для разработки на данном языке. Далее будут рассмотрены ключевые из них.
Фрагмент для ознакомления
3
1. Мейерс, Скотт. Эффективный и современный С++: 42 рекомендации по использованию С++ 11 и С++14.: Пер. с англ. - М.: ООО "ИЛ. Вильяме", 2016. - 304 с
2. Довбуш, Г. Ф. Visual C++ на примерах / Г. Ф. Довбуш, А. Д. Хомоненко / Под ред. проф. А. Д. Хомоненко. — СПб.: БХВ-Петербург, 2007. — 528 с
3. Динамический массив в С++: CppStudio электронный ресурс. Режим доступа свободный – URL: http://cppstudio.com/post/432/ (дата обращения 7.11.2021)
4. Умножение матриц: Википедия. Электронный ресурс. Режим доступа свободный – URL: https://ru.wikipedia.org/wiki/Умножение_матриц (дата обращения 7.11.2021)