User Tools

Site Tools


Sidebar






Old

courses:object_oriented_programming:practice

This is an old revision of the document!


Практика

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

Создание и разрушение объектов

  1. Stepik

Наследование

Индивидуальные задания, проверяемые на Stepik c помощью peer-review. Варианты заданий:

  1. Окружность, пятиугольник, правильный пятиугольник
  2. Прямоугольник, квадрат, эллипс
  3. Равнобедренный треугольник, квадрат, прямоугольный треугольник
  4. Трапеция, эллипс, равнобедренная трапеция
  5. Эллипс, сектор эллипса, параллелограмм
  6. Треугольник, ромб, параллелограмм
  7. Дуга, окружность, эллипс
  8. Квадрат, ромб, трапеция
  9. Пятиугольник, пентаграмма, прямоугольник
  10. Пятиугольник, эллипс, отрезок
  11. Прямоугольник, окружность, трапеция

Контейнер

Разработать шаблонный контейнер с заданным интерфейсом

Умный указатель

Разработать умный указатель с заданным интерфейсом

Полиморфная логика

Объединить предыдущие работы в приложении, использующем логику полиморфного хранения объектов. Необходимо сгененрировать контейнер из 1000 фигур, которые хранятся как shared_ptr<Shape>, и применить к ним 2 стандартных алгоритма по вариантам. В качестве предиката использовать предикат из дополнительного задания 2-й лабораторной.

Варианты индивидуальных заданий:

Немодифициующие алгоритмы

  1. Поиск первого элемента удовлетворяющего определенному критерию.
  2. Поиск первых n последовательных элементов с определенными свойствами.
  3. Поиск первого из нескольких возможных элементов по заданному критерию.
  4. Поиск двух смежных элементов, равных между собой по определенному критерию.
  5. Проверка двух неупорядоченных диапазонов на равенство по определенному критерию.
  6. Поиск первых отличающихся друг от друга элементов двух последовательностей по определенному критерию.
  7. Проверка разделен ли диапазон на две группы по заданному критерию.
  8. Проверка что все элементы диапазона удовлетворяют определенному критерию.
  9. Проверка что хотя бы один элемент диапазона соответствует заданному критерию.
  10. Проверка что ни один элемент диапазона не соответствует заданному критерию.
  11. Проверка двух упорядоченных диапазонов на равенство по определенному критерию.

Mодифициующие алгоритмы

  1. Заменить элементы, соответствующие критерию другим значением.
  2. Скопировать элементы, удовлетворяющие критерию.
  3. Разделить диапазон на 2 части в соответствии с критерием.
  4. Создать упорядоченное объединение двух диапазонов.
  5. Удалить элементы, удовлетворяющие заданному критерию.
  6. Создать упорядоченное пересечение двух диапазонов.
  7. Создать упорядоченную разность двух диапазонов.
  8. Заменить элементы, соответствующие критерию, копируя весь диапазон.
  9. Скопировать элементы удалив дубликаты в соответствии с критерием.
  10. Скопировать элементы, за исключением тех, кто удовлетворяет критериюю
  11. Упорядочить элементы, пока первые n элементов не будут следовать в требуемом порядке.
  12. Отсортировать элементы диапазона так, чтобы правильный элемент находился на n-й позиции (все стоящие перед ним элементы не превосходят его, а все стоящие после - превосходят либо равны).
courses/object_oriented_programming/practice.1493313839.txt.gz · Last modified: 2022/12/10 09:08 (external edit)