Московский государственный индустриальный университет
Опубликован: 27.09.2006 | Доступ: свободный | Студентов: 3333 / 380 | Оценка: 4.17 / 3.79 | Длительность: 24:17:00
Специальности: Программист
Лекция 10:

Основы объектно-ориентированного программирования

Задачи для самостоятельного решения

Задача 10.5. Реализуйте класс Complex, позволяющий выполнять над комплексными числами четыре основных арифметических действия, а также вычислять модуль и аргумент данного числа.

Задача 10.6. Реализуйте класс R3Vector, позволяющий выполнять над векторами в пространстве следующие операции: сложение, вычитание, умножение на число, вычисление скалярного, векторного и смешанного произведений.

Задача 10.7. Реализуйте класс Matrix2, позволяющий выполнять над квадратными матрицами порядка два следующие операции: сложение, вычитание, умножение на число, перемножение, вычисление определителя и обратной матрицы.

Задача 10.8. Создайте непрерывную реализацию ограниченного дека целых чисел на базе вектора и оцените эффективность полученной программы.

Задача 10.9. Создайте непрерывную реализацию ограниченного множества целых чисел на базе вектора, называемую "последовательный поиск", и оцените эффективность построенной программы.

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

Задача 10.10. Создайте непрерывную реализацию ограниченного множества целых чисел на базе вектора, называемую "двоичный поиск", и оцените эффективность построенной программы.

Указание В этой реализации элементы хранятся в отсортированном виде, что позволяет осуществлять поиск быстрее. При добавлении или удалении элемента, однако, приходится перемещать целый ряд чисел.

Задача 10.11. Создайте непрерывную реализацию двух стеков целых чисел, ограниченных в совокупности, на базе вектора и оцените эффективность полученной программы.

Указание Интерфейс этого контейнера предполагает наличие дополнительного аргумента (по сравнению с классом Stack ), указывающего номер стека, у методов empty, push, pop и top. Ограниченность в совокупности означает, что добавление в любой из стеков не должно приводить к возникновению исключительной ситуации, если только суммарное количество элементов в стеках меньше, чем длина вектора.

Задача 10.12. Создайте непрерывную реализацию трех стеков целых чисел, ограниченных в совокупности, на базе вектора и оцените эффективность полученной программы.

Указание См. указание к предыдущей задаче.

Задача 10.13. Постройте ссылочную реализацию ограниченного двусвязного списка целых чисел на базе вектора с применением двух векторов ссылок и оцените эффективность полученной программы.

Задача 10.14. Создайте битовую реализацию множества целых чисел, которое может содержать элементы от 0 до n-1 включительно ( n < 2^{31} ), и оцените эффективность полученной программы.

Задача 10.15. Создайте реализацию ограниченного множества целых чисел с помощью хеширования, взяв в качестве хеш-функции остаток от деления числа на 10.

Анастасия Халудорова
Анастасия Халудорова
екатерина яковлева
екатерина яковлева