- •3. Ұсынылатын әдебиеттер тізімі / список рекомендуемой литературы
- •1.Обзор стилей программирования
- •1.1. Процедурное программирование
- •1.2. Структурное программирование
- •1.3. Функциональное программирование
- •1.4. Логическое программирование
- •1.5. Объектно-ориентированное программирование
- •2. Основные принципы объектно-ориентированного программирования
- •3.1. Объявление классов и объектов
- •3.2. Конструкторы и деструкторы
- •3.3. Область видимости компонент класса
- •3.4. Определение компонентных функций класса
- •3.5. Статические компоненты классов
- •3.6. Дружественные функции
- •3.7. Перегрузка операций
- •4. Наследование классов
- •4.1. Повторное использование классов: наследование и агрегирование
- •4.3. Множественное наследование
- •4.4. Виртуальные классы
- •4.5. Виртуальные функции. Полиморфизм
- •4.6. Абстрактные классы
- •Методические указания по выполнению лабораторных работ
- •1. Краткие теоретические сведения
- •1.1. Структура программы
- •1.2. Константы и переменные
- •1.3. Операции
- •1.4. Выражения
- •1.5. Ввод и вывод
- •1.5.1. Ввод и вывод в стандартном Си
- •2. Постановка задачи
- •3. Варианты
- •4. Методические указания
- •5. Содержание отчета
- •Краткие теоретические сведения
- •Составные операторы
- •Операторы выбора
- •Операторы циклов
- •Операторы перехода
- •2. Постановка задачи
- •3. Варианты
- •3. Содержание отчета
- •4. Методические указания
- •1. Краткие теоретические сведения
- •2. Постановка задачи
- •3. Варианты
- •4. Методические указания
- •5. Содержание отчета
- •Краткие теоретические сведения
- •1.1. Определение массива
- •1.2. Инициализация массива
- •1.3. Указатели
- •1.4. Указатели и массивы
- •2. Варианты заданий
- •3. Методические указания
- •4. Содержание отчета
- •Краткие теоретические сведения
- •1.1. Функции
- •1.2. Массивы и строки как параметры функций
- •2. Постановка задачи
- •3. Варианты
- •4. Содержание отчета
- •Задания на лабораторные работы Классы. Протокол класса. Конструкторы и деструкторы
- •Краткие теоретические сведения Виртуальные функции и полиморфизм План
- •Задания для самостоятельной работы
- •Лабораторная работа №8 "Производные классы: множественное наследование"
- •Задания на лабораторные работы по Объектно-ориентированному программированию, множественное наследование
- •Экзаменационные вопросы
Задания для самостоятельной работы
Вариант 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 .
Создать базовый класс список. Реализовать на базе списка стек и очередь с виртуальными функциями вставки и вытаскивания.
Задание 2.
Создать класс - данные - абстрактный базовый класс. Создать производные классы - данные типа сигнал, данные типа результат обработки и вспомогательные данные. Все данные имеют функции отображения, сохранения и обработки.
Вариант 6. Задание 1 .
Создать базовый класс - фигура, и производные класс - круг, прямоугольник, трапеция. Определить виртуальные функции площадь, периметр и вывод на печать.
Задание 2.
Создать класс - данные - абстрактный базовый класс. Создать производные классы - данные типа сигнал, данные типа результат обработки и вспомогательные данные. Все данные имеют функции отображения, сохранения и обработки.
Вариант 7. Задание 1 .
Создать базовый класс - работник и производные классы - служащий с почасовой оплатой, служащий в штате и служащий с процентной ставкой. Определить функцию начисления зарплаты.
Задание 2.
Создать класс - данные - абстрактный базовый класс. Создать производные классы - данные типа сигнал, данные типа результат обработки и вспомогательные данные. Все данные имеют функции отображения, сохранения и обработки.
Вариант 8. Задание 1 .
Создать абстрактный базовый класс с виртуальной функцией - площадь поверхности. Создать производные классы: параллелепипед, тетраэдр, шар со своими функциями площади поверхности. Для проверки определить массив ссылок на абстрактный класс, которым присваиваются адреса различных объектов.
Площадь поверхности параллелепипеда: S=6xy. Площадь поверхности шара: S=4 r2. Площадь поверхности тетраэдра: S=a2 3
Задание 2.
Создать класс - данные - абстрактный базовый класс. Создать производные классы - данные типа сигнал, данные типа результат обработки и вспомогательные данные. Все данные имеют функции отображения, сохранения и обработки.
Вариант 9. Задание 1 .
Создать класс человек, производные от которого девушки и молодые люди. Определить виртуальную функцию реакции человека на вновь увиденного другого человека.
Задание 2.
Создать класс - данные - абстрактный базовый класс. Создать производные классы - данные типа сигнал, данные типа результат обработки и вспомогательные данные. Все данные имеют функции отображения, сохранения и обработки.
Вариант 10. Задание 1 .
Создать абстрактный базовый класс с виртуальной функцией - объем. Создать производные классы: параллелепипед, пирамида, тетраэдр, шар со своими функциями объема. Для проверки определить массив ссылок на абстрактный класс, которым присваиваются адреса различных объектов.
Объем параллелепипеда - V=xyz (x,y,z - стороны , пирамиды: V=xyh (x,y, - стороны, h - высота), тетраэдра: V= a3 2/12, шара: V=4 r3/3.
Задание 2.
Создать класс - данные - абстрактный базовый класс. Создать производные классы - данные типа сигнал, данные типа результат обработки и вспомогательные данные. Все данные имеют функции отображения, сохранения и обработки.
Вариант 11. Задание 1
Создать абстрактный класс - млекопитающие. Определить производные классы - животные и люди. У животных определить производные классы собак и коров. Определить виртуальные функции описания человека, собаки и коровы.
Задание 2.
Создать класс - данные - абстрактный базовый класс. Создать производные классы - данные типа сигнал, данные типа результат обработки и вспомогательные данные. Все данные имеют функции отображения, сохранения и обработки.
Вариант 12. Задание 1 .
Создать базовый класс - Предок, у которого есть имя. определить виртуальную функцию печати. Создать производный класс Ребенок, у которого функция печати дополнительно выводит имя. Создать производный класс от последнего класса - Внук, у которого есть отчество. Написать свою функцию печати.
Задание 2.
Создать класс - данные - абстрактный базовый класс. Создать производные классы - данные типа сигнал, данные типа результат обработки и вспомогательные данные. Все данные имеют функции отображения, сохранения и обработки.
Вариант 13. Задание 1 .
Создать класс живущих с местоположением. Определить наследуемые классы - лиса, кролик и трава. Лиса ест кролика. Кролик ест траву. Лиса может умереть - определен возраст. Кролик тоже может умереть. Кроме этого определен класс - отсутствие жизни. Если в окрестности имеется больше травы, чем кроликов, то трава остается, иначе трава съедена. Если лис слишком старый он может умереть. Если лис слишком много (больше 5 в окрестности), лисы больше не появляются. Если кроликов меньше лис, то лис ест кролика.
Задание 2.
Создать класс - данные - абстрактный базовый класс. Создать производные классы - данные типа сигнал, данные типа результат обработки и вспомогательные данные. Все данные имеют функции отображения, сохранения и обработки.
Вариант 14. Задание 1 .
Создать абстрактный базовый класс с виртуальной функцией - корни уравнения. Создать производные классы: класс линейных уравнений и класс квадратных уравнений. Определить функцию вычисления корней уравнений.
Задание 2.
Создать класс - данные - абстрактный базовый класс. Создать производные классы - данные типа сигнал, данные типа результат обработки и вспомогательные данные. Все данные имеют функции отображения, сохранения и обработки.
