Задание 2.

Лабораторная работа № 18. Виртуальные функции

Вариант 1.
Задание 1 .

Создать абстрактный базовый класс с виртуальной функцией - площадь. Создать производные классы: прямоугольник, круг, прямоугольный треугольник, трапеция со своими функциями площади. Для проверки определить массив ссылок на абстрактный класс, которым присваиваются адреса различных объектов. Площадь трапеции:S=(a+b)h/2

Задание 2.

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

Вариант 2.
Задание 1 .

Создать абстрактный класс с виртуальной функцией: норма. Создать производные классы: комплексные числа, вектор из 10 элементов, матрица (2х2). Определить функцию нормы - для комплексных чисел - модуль в квадрате, для вектора - корень квадратный из суммы элементов по модулю, для матрицы - максимальное значение по модулю.

Задание 2

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

Вариант 3.
Задание 1 .

Создать абстрактный класс (кривые) вычисления координаты y для некоторой x. Создать производные классы: прямая, эллипс, гипербола со своими функциями вычисления y в зависимости от входного параметра x.

Уравнение прямой: y=ax+b , эллипса: x2/a2+y2/b2=1, гиперболы: x2/a2-y2/b2=1

Задание 2.

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

Вариант 4.
Задание 1 .

Создать абстрактный базовый класс с виртуальной функцией - сумма прогрессии. Создать производные классы: арифметическая прогрессия и геометрическая прогрессия. Каждый класс имеет два поля типа double. Первое - первый член прогрессии, второе (double) - постоянная разность (для арифметической) и постоянное отношение (для геометрической). Определить функцию вычисления суммы, где параметром является количество элементов прогрессии.

Арифметическая прогрессия aj=a0+jd, j=0,1,2,…

Сумма арифметической прогрессии: sn=(n+1)(a0+an)/2

Геометрическая прогрессия: aj=a0rj, j=0,1,2,…

Сумма геометрической прогрессии: sn=(a0-anr)/(1-r)

Задание 2.

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

Вариант 5.
Задание 1 .

Создать базовый класс список. Реализовать на базе списка стек и очередь с виртуальными функциями вставки и вытаскивания.