Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Инкапсуляция объектов линейной алгебры в классе, и перегрузка стандартных операций для них на языке C++

Автор:   •  Сентябрь 27, 2021  •  Лабораторная работа  •  610 Слов (3 Страниц)  •  347 Просмотры

Страница 1 из 3

[pic 1]

  1. ЛАБОРАТОРНАЯ РАБОТА №2
  1. ЦЕЛЬ РАБОТЫ

Целью лабораторной работы №2 «Инкапсуляция объ- ектов линейной алгебры в классе, и перегрузка стандарт- ных операций для них на языке C++» является освоение методов использования динамической памяти, изучение свойства полиморфизма, реализуемого перегрузкой функ- ций и операций в классах C++.

  1. ЗАДАНИЕ К ЛАБОРАТОРНОЙ РАБОТЕ

Составить описание класса для объектов прямоуголь- ных матриц, задаваемых массивом вещественных чисел типа double, располагающегося в памяти по строкам. Ком- поненты матрицы должны быть скрыты (инкапсулирова- ны) в объекте.

Предусмотреть применение конструкторов: а) по умолчанию;

б) для инициализации квадратной матрицы заданного размера с заданными компонентами;

в) для инициализации прямоугольной матрицы за- данных размеров с заданными компонентами;

г) копирования.

Можно использовать параметры по умолчанию для сокращения количества конструкторов.

Конструкторы должны создавать объекты в динами- ческой памяти (оператор new), а деструктор – освобождать память (оператор delete).

Способ размещения объекта в динамической памяти (в виде одномерного или двумерного динамического мас- сива, либо комбинированный вариант – одномерный мас- сив с массивом указателей на начало каждой строки мат- рицы) выбрать самостоятельно. Все эти способы имеют как достоинства, так и недостатки.

Организовать в конструкторах и деструкторе вывод на экран информационных сообщений, например, «Кон- структор 1», «Деструктор» и т.д.

  1. С помощью функций-элементов класса обеспе- чить:
  1. проверку возможности умножения двух матриц;
  2. проверку возможности сложения двух матриц;
  3. максимального элемента матрицы;
  4. минимального элемента матрицы.
  1. С помощью операторов-элементов класса обеспе- чить:
  1. доступ к элементам матрицы по индексу строки и столбца (чтение/запись), т.е. переопределить оператор [];
  2. вывод на экран матрицы в построчной форме, т.е. переопределить оператор вывода на поток <<;

  1. математические действия над матрицами A и B без получения новых матриц, т.е. переопределить операторы

а) A = B; б) A += B; в) A –= B; г) A *= B;

д) а также A *= k – умножение матрицы на ска- ляр.

  1. C помощью внешних операторов обеспечить дву- местные операции над матрицами A и B с получе- нием новой матрицы C:
  1. сложение (C = A + B);
  2. вычитание (C = A B);
  3. произведение (С = A * B);
  4. умножение матрицы на скаляр (С = A * k).

Выполнению операций сложения, вычитания и умножения матриц должна предшествовать проверка воз- можности их выполнения над данными объектами.

УКАЗАНИЕ: Для выравнивания позиций при выводе матрицы на экран можно использовать функции- манипуляторы потока (библиотека iomanip.h) либо функ- ции-элементы (методы) класса ostream (библиотека iostream.h) (табл. 2.1).

...

Скачать:   txt (6.4 Kb)   pdf (102.8 Kb)   docx (16.3 Kb)  
Продолжить читать еще 2 страниц(ы) »
Доступно только на Essays.club