Задание.

Арифметические операции над матрицами (4 часа)

 

Цель работы. Освоение алгоритмов работы с двумерными массивами.

 

Задание.

1. Разработать программу, которая должна выполнять следующие операции над матрицами (двухмерными массивами):

- сложение матриц;

- транспонирование 1-й матрицы, которая может быть квадратной или прямоугольной;

- умножение матриц.

Число строк и столбцов 1-й и 2-й матриц, которое может быть разным, запрашивать у пользователя, а значения элементов матриц генерировать с помощью датчика псевдослучайных чисел.

2. Программа должна иметь интерфейс в форме меню, реализованного любым способом, со следующими темами:

- ввод размеров матриц и генерация значений их элементов;

- сложение матриц;

- умножение матриц;

- транспонирование 1-й матрицы;

- выход.

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

4. Система оценивания:

оценка требования
Вовремя сданная Л/р со всеми операциями над матрицами, пониманием кода, без использования глобальных переменных (массивы передаются как параметры) и комментариями
Вовремя сданная Л/р со всеми операциями над матрицами и пониманием кода
Вовремя сданная Л/р без сложения матриц и транспонирования, но с пониманием кода
Сдача с опозданием со всеми операциями над матрицами и пониманием кода
Сдача с опозданием без сложения матриц и транспонирования

Шаг 1. Создание меню

Напишем метод для реализации простейшего меню, перед написанием подключим conio.h и iostream:

В бесконечном цикле вызовем введенный выше метод

Данный метод использует функцию русификации:

Для того, чтобы проверить функциональность метода menu() нужно до него описать «заглушки», т.е. пустые (пока!) методы:

Теперь запустите программу, убедитесь, что она работоспособна, разберите возможные ошибки и (в крайнем случае) спросите у преподавателя о своих проблемах в коде.

Шаг2. Ввод массивов.

Объявите глобальные переменные для массивов А, В, С.

До реализации метода inputMas() реализуем метод вывода двумерного массива. Для этого объявим процедуру outputMas(double M[100][100], int m1, int m2). Входными параметрами у нее будут следующие формальные переменные: массив М, количество строк и столбцов передаваемого массива m1 и m2:

Если не работает, возможно, нужно подключить iomanip

Теперь воспользовавшись методом генерации случайных чисел, методом outputMas и другими известными командами выполним реализацию метода ввода массива. Например, так:

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