Бие даалтын бодлогууд

Классы. Протоколы классов.

Для студентов, готовых ограничиться оценкой “удовлетворительно” за экзамен и курсовую работу, в данном пункте выполнять только 1-2 задание.

Задание 1.

Цифровой счетчик – это переменная с ограниченным диапазоном, которая сбрасывается, когда ее целочисленное значение достигает определенного максимума. Примеры: цифровые часы, счетчик километража. Опишите класс такого счетчика. Обеспечьте возможность установления максимального и минимального значений, увеличения значений счетчика на 1, возвращения текущего значения. Класс реализован на языке C++ и Java

Задание 2.

Определите класс для комплексных чисел. Напишите методы для сложения, вычитания и умножения комплексных чисел. Класс реализован на языке C++ и Java

Задание 3.

Определите класс дробей – рациональных чисел, являющихся отношением двух целых чисел. Напишите методы для сложения, вычитания, умножения и деления дробей. Как вы приводите дробь к наименьшему знаменателю. Класс реализован на языке C++ и Java

Задание 4.

Определить класс карты, с мастью, рангом, определение цвета, в зависимости от масти, проверкой как лежит карта, перевернуть карту, нарисовать карту, т.е. вывести ее левые верхние координаты (передаются через параметры). Класс реализован на языке C++ и Java.

Задания на практическую работу работы по
Объектно-ориентированному программированию
Перегрузка операторов

Для студентов, готовых ограничиться оценкой “удовлетворительно” за экзамен и курсовую работу, в данном пункте сделать 1 задание.

Задание 1.

Создать полноценный класс “Строка”, с конструкторами, деструктором, преобразованием типов (из char * в String и наоборот, перегрузкой операторов суммирования, присвоения, +=, сравнения ==, !=, отрицания !, <, >, >=, <=, индексирования [], () – возвращения подстроки.

Задание 2.

Создать класс Дата, с конструкторами, деструктором, установить дату, увеличить на 1 день (++), уменьшить на один день, добавить дни +=. Перегрузить инкремент и декремент как постфиксный и префиксный, перегрузить ввод и вывод в поток.

Задания на практическую работу работы по
Объектно-ориентированному программированию
Одиночное наследование

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

Задание 1.

Разработать программу, решающую задачу о 8 ферзях. На шахматной доске расставить 8 ферзей таким образом, чтобы ни один не бил другого. Программу написать на Java и С++.

Задание 2.

Изменить программу так, чтобы она выдавала все возможные решения. Сколько существует различных решений. Сколько из них являются поворотами других. Как избежать поворотов.

Задание 3.

Создать базовый класс – очередь с двумя концами. Элементы могут удаляться и добавляться с любой стороны. Создать производный класс – стек и очередь (обычная).

Задание 4.

Есть три абстракции, линия (бесконечная), луч (бесконечен в одну сторону) и отрезок (ограничен). Разработать иерархию классов.

Задание 5.

Есть два класс – список List и массив Arrary. Построить класс стек и очередь на базе этих классов и на базе композиции.

Задания на практическую работу работы по
Объектно-ориентированному программированию
Виртуальные функции

Для студентов, готовых ограничиться оценкой “удовлетворительно” за экзамен и курсовую работу, в данном задании можно выполнить только 1 задание. Все задания должны быть выполнены на C++ и Java.

Задание 1.

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

Задание 2.

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

Задание 3.

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

Задания на практическую работу №5 по
Объектно-ориентированному программированию
Шаблоны

 

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

Задание 1.

Написать функцию-шаблон сортировки массива по возрастанию. Метод сортировки – пузырьковая сортировка. Пузырьковая сортировка основана на методу перестановок. Ее смысл заключается в постоянном сравнении смежных элементов и при необходимости их перестановки.

Задание 2.

Создать параметризованный тип данных – множество. Этот тип предназначен для хранения множества элементов и выполнения операций над ними. Реализовать классические операции над множествами – объединение, пересечение и симметричная разность. Для создания данного типа необходимо иметь простые представления о теории множеств.

Теория множеств

Будем считать множеством набор уникальных элементов. Таким образом, никакие два элемента в составе множества не могут иметь одинаковое значение. Например, в соответствии с принятым определением, нижеприведенные данные будут представлять собой допустимое множество:

{А, В, С}

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

{А, В, С, А}

Примечание: Традиционным методом обозначения множеств является заключение их элементов в фигурные скобки. Эти фигурные скобки, разумеется, не имеют ничего общего с фигурными скобками, которые используются в программах на C++.

Порядок следования элементов множества значения не имеет. К примеру, следующие два множества являются эквивалентными:

{А, В, С} {С, В, А}

К множествам применим стандартный принцип исключения. Это означает, что конкретный элемент или является членом множества, или нет. Одновременное выполнение обоих этих условий невозможно.

Множество может быть пустым. Пустое множество также называется нулевым (null set).

Множество является подмножеством другого множества, если в этом другом множестве можно найти все элементы, имеющиеся в первом множестве. Например, множество

{А, В}

является подмножеством множества {А, В, С}

Соответственно, множество считается надмножеством другого множества, если оно содержит все элементы этого второго множества.

Каждый отдельный элемент является членом множества, если он содержится в числе элементов множества. Например, А является членом множества:

{А, В, С}

Операции над множествами

Ко множествам применим ряд операций. Тип множества, определенный в данной главе, реализует следующие операции:

  • Объединение
  • Пересечение
  • Разность
  • Симметричную разность

Ниже приведены объяснения каждой из этих операций. Будем предполагать, что существуют следующие множества:

Множество S1: {А, В, С}
Множество S2: {С, D, Е}

Результатом объединения двух множеств будет третье множество, в котором содержатся элементы обоих множеств-операндов S1 и S2:

{А, В, С, D, Е}

Обратите внимание на то, что элемент С входит в состав нового множества только один раз, так как множество не допускает дублирования элементов.

Пересечением двух множеств является третье, в состав которого войдут только те элементы, которые входят как в состав первого множества, так и в состав второго. Например, результатом пересечения множеств S1 и S2 будет множество, состоящее только из одного элемента:

{С}

Так как С является единственным элементом, входящим в состав как S 1, так и в состав S2, он и будет единственным членом множества, являющегося пересечением S1 и S2.

Разницей (иногда называемой разностью) двух множеств будет новое множество, содержащее элементы первого множества, не входящие в состав второго. Например, в результате выполнения операции S1—S2 будет получено следующее множество:

{А, В}

Поскольку С входит также в состав S2, этот элемент вычитается из состава S 1 и не входит в состав результирующего множества.

Симметричной разностью между двумя множествами будет новое множество, состоящее из элементов, которые входят в состав одного или другого множества (но не обоих). Например, симметричная разность множеств S1 и S2 представляет собой следующее множество:

{A,B,D,E}

Как вы можете видеть, С не входит в состав результирующего множества, так как является членом как S1, так и S2.

http://athena.vvsu.ru/carina/oop/task_pract_oop_5.htm

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>