This shows you the differences between two versions of the page.
courses:object_oriented_programming:practice [2017/04/27 17:23] korolev |
courses:object_oriented_programming:practice [2022/12/10 09:08] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Практика ====== | ||
- | Перед очной защитой, все задания выкладываются на Stepik и, где это возможно, организуются автоматические проверки. До защиты работы, все проверки должны быть пройдены | ||
- | |||
- | ===== Создание и разрушение объектов ===== | ||
- | - Stepik | ||
- | |||
- | ===== Наследование ===== | ||
- | Индивидуальные задания, проверяемые на Stepik c помощью peer-review. Варианты заданий: | ||
- | - Окружность, пятиугольник, правильный пятиугольник | ||
- | - Прямоугольник, квадрат, эллипс | ||
- | - Равнобедренный треугольник, квадрат, прямоугольный треугольник | ||
- | - Трапеция, эллипс, равнобедренная трапеция | ||
- | - Эллипс, сектор эллипса, параллелограмм | ||
- | - Треугольник, ромб, параллелограмм | ||
- | - Дуга, окружность, эллипс | ||
- | - Квадрат, ромб, трапеция | ||
- | - Пятиугольник, пентаграмма, прямоугольник | ||
- | - Пятиугольник, эллипс, отрезок | ||
- | - Прямоугольник, окружность, трапеция | ||
- | |||
- | ===== Контейнер ===== | ||
- | Разработать шаблонный контейнер с заданным интерфейсом | ||
- | |||
- | ===== Умный указатель ===== | ||
- | Разработать умный указатель с заданным интерфейсом | ||
- | |||
- | ===== Полиморфная логика ===== | ||
- | Объединить предыдущие работы в приложении, использующем логику полиморфного хранения объектов. Необходимо сгененрировать контейнер из 1000 фигур, которые хранятся как shared_ptr<Shape>, и применить к ним 2 стандартных алгоритма по вариантам. В качестве предиката использовать предикат из дополнительного задания 2-й лабораторной. | ||
- | |||
- | Варианты индивидуальных заданий: | ||
- | |||
- | ==== Немодифициующие алгоритмы ==== | ||
- | |||
- | - Поиск первого элемента удовлетворяющего определенному критерию. | ||
- | - Поиск первых n последовательных элементов с определенными свойствами. | ||
- | - Поиск первого из нескольких возможных элементов по заданному критерию. | ||
- | - Поиск двух смежных элементов, равных между собой по определенному критерию. | ||
- | - Проверка двух неупорядоченных диапазонов на равенство по определенному критерию. | ||
- | - Поиск первых отличающихся друг от друга элементов двух последовательностей по определенному критерию. | ||
- | - Проверка разделен ли диапазон на две группы по заданному критерию. | ||
- | - Проверка что все элементы диапазона удовлетворяют определенному критерию. | ||
- | - Проверка что хотя бы один элемент диапазона соответствует заданному критерию. | ||
- | - Проверка что ни один элемент диапазона не соответствует заданному критерию. | ||
- | - Проверка двух упорядоченных диапазонов на равенство по определенному критерию. | ||
- | |||
- | ==== Mодифициующие алгоритмы ==== | ||
- | - Заменить элементы, соответствующие критерию другим значением. | ||
- | - Скопировать элементы, удовлетворяющие критерию. | ||
- | - Разделить диапазон на 2 части в соответствии с критерием. | ||
- | - Создать упорядоченное объединение двух диапазонов. | ||
- | - Удалить элементы, удовлетворяющие заданному критерию. | ||
- | - Создать упорядоченное пересечение двух диапазонов. | ||
- | - Создать упорядоченную разность двух диапазонов. | ||
- | - Заменить элементы, соответствующие критерию, копируя весь диапазон. | ||
- | - Скопировать элементы удалив дубликаты в соответствии с критерием. | ||
- | - Скопировать элементы, за исключением тех, кто удовлетворяет критериюю | ||
- | - Упорядочить элементы, пока первые n элементов не будут следовать в требуемом порядке. | ||
- | - Отсортировать элементы диапазона так, чтобы правильный элемент находился на n-й позиции (все стоящие перед ним элементы не превосходят его, а все стоящие после - превосходят либо равны). | ||