Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методы программирования / БИ / Специалист / Методические указания по лабораторным работам.doc
Скачиваний:
11
Добавлен:
26.04.2015
Размер:
109.06 Кб
Скачать

Методические указания по выполнению лабораторных работ

Дисциплина С3.Б.14«Технологии и методы программирования»

Направление подготовки 090303.65 «Информационная безопасность АС»

Профиль «Информационная безопасность автоматизированных систем на транспорте»

Уровень ООП специалист

Вводная часть

Лабораторные работы, выполняемые студентами, служат двум основным целям:

  • закрепление, пояснение и детализация лекционного материала на примерах программной реализации;

  • развитие навыков использования изучаемого языка программирования для решения прикладных задач.

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

Рекомендуемые темы аудиторных лабораторных работ:

  1. Знакомство с используемой средой программирования. Простейшее консольное приложение. Консольный ввод-вывод.

  2. Объявление и инициализация переменных стандартных типов. Запись констант. Внутреннее представление и доменные области. Операции с битами. Преобразования типов/

  3. Статические массивы, структуры, объединения, перечисления. Определение длины данных. Преобразования типов и арифметика указателей.

  4. Вычисление арифметических и логических выражений. Циклы. Условные операторы.

  5. Функции. Определение и описание. Рекурсивный вызов функций. Указатели на функции.

  6. Псевдослучайные числа. Функции моделирующие законы распределения

  7. Обработка файловых структур данных. Форматированный текстовый ввод/вывод. Ввод/вывод для двоичных файлов и использование стандартных функций времени на примере реализации регистрации событий.

  8. Проектирование иерархий классов. Создание объектов с использованием конструкторов разных семантических типов. Конструкторы при наследовании.

  9. Реализация методов классов с использованием механизма перегрузки операций.

  10. Массив указателей типа абстрактного класса и полиморфное поведение объектов классов потомков

  11. Определение, генерация и обработка исключений.

  12. Реализация шаблонного контейнерного класса

  13. Реализация алгоритма сортировки на примере массивов

  14. Реализация алгоритма сортировки на примере списков и ассоциативных массивов.

  15. Поиск в файле, отсортированном по ключу поиска и с использованием таблицы индексов.

  16. Балансировка двоичного дерева

  17. Реализация алгоритма Крускала для поиска минимального остовного дерева неориентированного графа.

  18. Моделирование равномерного и нормального распределения псевдослучайной величины

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

Рекомендуемые варианта тем лабораторных работ выполняемых в форме СРС:

  1. Вариант:

  • Класс - динамический массив (с размещением в дисковой памяти)

  • Реализация алгоритма Крускала

  • Вариант:

    • Класс - список двунаправленный (с размещением в дисковой памяти)

    • Определение факта пересечения двух полигональных областей

    1. Вариант:

    • Класс - список однонаправленный (с размещением в дисковой памяти)

    • Формирование списка вершин полигонов принадлежащих пересечению двух полигональных областей

    1. Вариант:

    • Класс - список циклический (с размещением в дисковой памяти)

    • Генерации псевдослучайных чисел равномерно распределенных на отрезке [0,1] линейным конгруэнтным методом

    1. Вариант:

    • Класс – очередь (с размещением в дисковой памяти)

    • Реализация алгоритма сортировки Шелла для массивов с пользовательской функцией сравнения

    1. Вариант:

    • Класс - очередь c выбыванием (с размещением в дисковой памяти)

    • Реализация алгоритма сортировки слиянием для двунаправленных списков с пользовательской функцией сравнения

    1. Вариант:

    • Класс - очередь c приоритетами (с размещением в дисковой памяти)

    • Реализация алгоритма сортировки вставками однонаправленных списков с пользовательской функцией сравнения

    1. Вариант:

    • Класс – стек (с размещением в дисковой памяти)

    • Реализация алгоритма быстрой сортировки для двунаправленных списков с пользовательской функцией сравнения

    1. Вариант:

    • Класс - двусторонний стек (с размещением в дисковой памяти)

    • Реализация алгоритма сортировки кучей для двусторонних стеков с пользовательской функцией сравнения

    1. Вариант:

    • Класс - матрица (шаблонный двумерный массив чисел).

    • Реализация алгоритма сортировки слиянием для бинарного файла с фиксированной длиной записей с пользовательской функцией сравнения

    1. Вариант:

    • Класс - сетка (двумерный массив ячеек произвольного содержания с размещением в дисковой памяти).

    • Балансировка бинарного дерева

    1. Вариант:

    • Класс – граф (с поиском путей)

    • Генерация псевдослучайной вещественной величины распределенной по закону Пуассона с выводом в поток назначенный пользователем

    1. Вариант:

    • Класс – дерево (с размещением в дисковой памяти)

    • Реализация алгоритма построения индексного файла для текстового файла с переменной длиной записей с пользовательской функцией хеширования

    1. Вариант:

    • Класс – полином (с алгеброй над полем вещественных чисел)

    • Реализация алгоритма построения индексного файла для бинарного файла с переменной длиной записей с пользовательской функцией хеширования

    1. Вариант:

    • Класс – множество полигонов (с графическим выводом)

    • Реализация алгоритма построения индексного файла для бинарного файла с фиксированной длиной записей с пользовательской функцией хеширования

    1. Вариант:

    • Класс – массива с ключами (с размещением в дисковой памяти)

    • Генерация псевдослучайной вещественной величины распределенной по нормальному закону с выводом в поток назначенный пользователем