"Практикум на ЭВМ" для студентов, обучающихся специальности
"Прикладная математика и информатика".
Осенний семестр 2008/09 уч. г.
Некоторые материалы к занятиям и все обязательные домашние задания
Элементы объектно-ориентированного программирования на Паскале
Элементы программирования на C++
- Рекомендуется книга автора языка C++ Б. Страуструпа
Язык программирования C++, 3-е изд.
- Можно пользоваться одной из систем разработки на C++:
- Дистрибутив системы Microsoft Visual Studio 2005.NET, установленной в
компьютерных классах факультета,
можно получить там же.
Из папки \\ilab\MSDNAA\pub\Devel\Visual Studio\2005.NET нужны файлы
cd1.iso, cd2.iso, msdn1.iso, msdn2.iso, msdn3.iso (эти файлы - образы
компакт-дисков, CD images). Для установки Visual Studio следует подключить
(mount) первый их этих файлов (а затем, в ответ на предложения программы
установки, и последующие файлы) с помощью программы-эмулятора CD дисковода,
например,
Daemon Tools.
- Вместо вышеуказанной системы можно установить очень похожую бесплатную
систему Microsoft Visual C++ 2005 Express Edition
с сайта производителя.
- Если требуется менее объёмная система, то можно воспользоваться тоже
бесплатной системой, например,
Borland C++ Compiler
version 5.5 (загружать всего 8.5M) или
DJGPP.
- Как создать и запустить простую программу
на C++ в Visual Studio 2005.
- Задание 3. Реализовать абстрактный тип данных "список из целых
чисел", основанный на указателях.
- Простой пример наследования и полиморфизма
(рекомендуется модифицировать программу, например, убрав слова
virtual, убрав вызов delete или изменив область видимости объекта,
и посмотреть на результаты).
- Полиморфная функция линейного поиска
(полиморфизм времени выполнения) - аналог
реализации на Паскале.
- Задание 4. Реализовать полиморфную функцию бинарного поиска,
полиморфизм которой основан на наследовании, и привести пример её
использования для поиска в массиве экземпляра класса "студент",
инкапсулирующего номер группы и фамилию.
- Неполиморфная функция линейного поиска.
-
Шаблон функция линейного поиска (полиморфизм времени компиляции).
-
Шаблон функции линейного поиска, перегрузка оператора.
- Задание 5. Реализовать шаблон функции бинарного поиска и привести
пример её использования для поиска в массивах как целого числа, так и
экземпляра класса "студент", инкапсулирующего номер группы и фамилию.
- Класс, представляющий стек.
-
Шаблон класса, представляющего стек.
-
Шаблон класса, представляющего стек, использование исключений.
- Бинарное дерево поиска.
По деревьям рекомендуется книга Н. Вирта Алгоритмы и структуры данных.
- Задание 6. Реализовать нерекурсивный метод удаления элемента из
бинарного дерева поиска и внешний итератор снизу вверх.