Методические указания по выполнению лабораторных работ
Дисциплина С3.Б.14«Технологии и методы программирования»
Направление подготовки 090900.62 «Информационная безопасность АС»
Профиль «Информационная безопасность автоматизированных систем на транспорте»
Уровень ООП бакалавр
Вводная часть
Лабораторные работы, выполняемые студентами, служат двум основным целям:
-
закрепление, пояснение и детализация лекционного материала на примерах программной реализации;
-
развитие навыков использования изучаемого языка программирования для решения прикладных задач.
Достижению первой из указанных целей служит выполнение лабораторных работ в форме аудиторных занятий, посвященных ранее изученному лекционному материалу. Выполнение данного вида лабораторных работ должно занимать время соответствующее академической паре и завершаться демонстрацией работающей программы преподавателю.
Рекомендуемые темы аудиторных лабораторных работ:
-
Знакомство с используемой средой программирования. Простейшее консольное приложение. Консольный ввод-вывод.
-
Объявление и инициализация переменных стандартных типов. Запись констант. Внутреннее представление и доменные области. Операции с битами. Преобразования типов/
-
Статические массивы, структуры, объединения, перечисления. Определение длины данных. Преобразования типов и арифметика указателей.
-
Вычисление арифметических и логических выражений. Циклы. Условные операторы.
-
Функции. Определение и описание. Рекурсивный вызов функций. Указатели на функции.
-
Псевдослучайные числа. Функции моделирующие законы распределения
-
Обработка файловых структур данных. Форматированный текстовый ввод/вывод. Ввод/вывод для двоичных файлов и использование стандартных функций времени на примере реализации регистрации событий.
-
Проектирование иерархий классов. Создание объектов с использованием конструкторов разных семантических типов. Конструкторы при наследовании.
-
Реализация методов классов с использованием механизма перегрузки операций.
-
Массив указателей типа абстрактного класса и полиморфное поведение объектов классов потомков
-
Определение, генерация и обработка исключений.
-
Реализация шаблонного контейнерного класса
-
Реализация алгоритма сортировки на примере массивов
-
Реализация алгоритма сортировки на примере списков и ассоциативных массивов.
-
Поиск в файле, отсортированном по ключу поиска и с использованием таблицы индексов.
-
Балансировка двоичного дерева
-
Реализация алгоритма Крускала для поиска минимального остовного дерева неориентированного графа.
-
Моделирование равномерного и нормального распределения псевдослучайной величины
Лабораторные работы второго вида выполняются студентами в форме домашних заданий на домашних персональных компьютерах или в компьютерных аудиториях во время отведенное для СРС и завершаются защитой с предоставлением отчета по лабораторной работе преподавателю.
Рекомендуемые варианта тем лабораторных работ выполняемых в форме СРС:
-
Вариант:
-
Класс - динамический массив (с размещением в дисковой памяти)
-
Реализация алгоритма Крускала
Вариант:
-
Класс - список двунаправленный (с размещением в дисковой памяти)
-
Определение факта пересечения двух полигональных областей
-
Вариант:
-
Класс - список однонаправленный (с размещением в дисковой памяти)
-
Формирование списка вершин полигонов принадлежащих пересечению двух полигональных областей
-
Вариант:
-
Класс - список циклический (с размещением в дисковой памяти)
-
Генерации псевдослучайных чисел равномерно распределенных на отрезке [0,1] линейным конгруэнтным методом
-
Вариант:
-
Класс – очередь (с размещением в дисковой памяти)
-
Реализация алгоритма сортировки Шелла для массивов с пользовательской функцией сравнения
-
Вариант:
-
Класс - очередь c выбыванием (с размещением в дисковой памяти)
-
Реализация алгоритма сортировки слиянием для двунаправленных списков с пользовательской функцией сравнения
-
Вариант:
-
Класс - очередь c приоритетами (с размещением в дисковой памяти)
-
Реализация алгоритма сортировки вставками однонаправленных списков с пользовательской функцией сравнения
-
Вариант:
-
Класс – стек (с размещением в дисковой памяти)
-
Реализация алгоритма быстрой сортировки для двунаправленных списков с пользовательской функцией сравнения
-
Вариант:
-
Класс - двусторонний стек (с размещением в дисковой памяти)
-
Реализация алгоритма сортировки кучей для двусторонних стеков с пользовательской функцией сравнения
-
Вариант:
-
Класс - матрица (шаблонный двумерный массив чисел).
-
Реализация алгоритма сортировки слиянием для бинарного файла с фиксированной длиной записей с пользовательской функцией сравнения
-
Вариант:
-
Класс - сетка (двумерный массив ячеек произвольного содержания с размещением в дисковой памяти).
-
Балансировка бинарного дерева
-
Вариант:
-
Класс – граф (с поиском путей)
-
Генерация псевдослучайной вещественной величины распределенной по закону Пуассона с выводом в поток назначенный пользователем
-
Вариант:
-
Класс – дерево (с размещением в дисковой памяти)
-
Реализация алгоритма построения индексного файла для текстового файла с переменной длиной записей с пользовательской функцией хеширования
-
Вариант:
-
Класс – полином (с алгеброй над полем вещественных чисел)
-
Реализация алгоритма построения индексного файла для бинарного файла с переменной длиной записей с пользовательской функцией хеширования
-
Вариант:
-
Класс – множество полигонов (с графическим выводом)
-
Реализация алгоритма построения индексного файла для бинарного файла с фиксированной длиной записей с пользовательской функцией хеширования
-
Вариант:
-
Класс – массива с ключами (с размещением в дисковой памяти)
-
Генерация псевдослучайной вещественной величины распределенной по нормальному закону с выводом в поток назначенный пользователем