- •1 Семестр
- •18 Занятий
- •1. Линейные и разветвляющиеся алгоритмы
- •Вычисления по формулам. Стандартные математические функции
- •Побитовые операции
- •Область на плоскости
- •Условный оператор
- •Логическое выражение в условном операторе
- •Ветвления
- •2. Циклы
- •Целочисленная арифметика. Приведение типов
- •Вложенные циклы. Схема Горнера
- •2.3. Перебор значений
- •2.4. Итерационные циклы. Вычисления с точностью
- •2.5. Нахождение простых чисел
- •2.6. Вычисления без хранения последовательности значений
- •Массивы. Указатели
- •Обработка одномерных массивов
- •Построение новой матрицы по части заданной матрицы
- •Обход матрицы
- •Упорядоченность значений в матрицах
- •Алгоритм Эратосфена для нахождения простых чисел
- •Преобразование матриц
- •*** Использование массивов для представления «длинных» чисел
- •*** Экономичное хранение матриц. Матричная алгебра
- •Строки. Структуры
- •Использование строкового типа
- •Перевод из одной cистемы счисления в другую
- •Выделение слов в строке
- •Массив слов
- •Создание собственных процедур для обработки строк
- •Функции
- •5.1. Передача параметров по значению и по ссылке
- •5.2. Перегрузка и шаблон функций
- •5.3. Возврат ссылок
- •5.4. Рекурсия
- •5.5. *** Перебор с возвратом
- •2 Семестр (15 занятий)
- •5.6. Вычисление корня уравнения. Передача имени функции в качестве параметра. Аргументы по умолчанию
- •5.7. Вычисление интеграла. Передача имени функции в качестве параметра
- •5.8. Сортировка массивов
- •5.9. *** Сортировка массивов
- •6. Файлы
- •6.1. Использование структур для битового представления чисел
- •6.2. Файлы чисел
- •6.3. Файлы записей
- •7. Динамические структуры данных
- •7.1. Динамическое выделение памяти для массивов
- •7.2. Линейный список
- •7.3. Линейные списки
- •7.4. Двухсвязные списки
- •7.5. Деревья
- •7.6. *** Более сложные связанные динамические структуры данных
- •7.7. *** Графы
- •8.1. Класс «Многоразрядное число»
- •8.2 Класс «Массив»
- •8.3 Класс «Линейный список»
- •8.4. *** Класс «Двусвязный список»
- •8.5 *** Класс «Бинарное дерево»
- •8.6 *** Класс «Граф»
- •Наследование. Полиморфизм
- •9.1. Наследование
- •9.2. Полиморфизм. Виртуальные методы
- •9.3. *** Полиморфизм. Виртуальные методы
8.5 *** Класс «Бинарное дерево»
Объявить шаблон класса «Бинарное дерево». Определить структуру класса и его методы. В классе должен быть конструктор по умолчанию, конструктор с формальными параметрами, конструктор копирования и деструктор.
Определить методы:
-
инициализация первого элемента структуры;
-
запись в структуру нового элемента;
-
удаление элемента (листа);
-
поиск элемента по заданному ключу поиска (значению информационного поля);
-
вывод структуры на экран;
-
удаления структуры.
Используя объекты класса «Бинарное дерево», реализовать алгоритм своего варианта задания 7.5.
8.6 *** Класс «Граф»
Объявить шаблон класса «Граф». Определить структуру класса и его методы. В классе должен быть конструктор по умолчанию, конструктор с формальными параметрами, конструктор копирования и деструктор.
Определить методы:
-
инициализация первого элемента структуры;
-
запись в структуру нового элемента;
-
удаление элемента;
-
вывод структуры на экран;
-
удаления структуры.
.
Используя объекты класса «Граф», реализовать алгоритм своего варианта задания 7.7.
-
Наследование. Полиморфизм
9.1. Наследование
Для каждого класса описать поля, характеризующие объект, и методы, позволяющие заполнять и получать значения каждого из полей. выводить значения полей на экран, а также необходимые конструкторы. Конструкторы и методы должны проверять параметры на допустимость.
Определить и описать иерархию классов в следующих заданиях.
Реализовать функцию, получающую и возвращающую объекты базового типа.
-
студент, преподаватель, персона, зав. кафедрой, лаборант;
-
журнал, газета, книга, печатное издание, учебник;
-
государственный экзамен, зачет, экзамен, форма отчетности, дифференцированный зачет;
-
тест, экзамен, экзамен устный, экзамен письменный, испытание;
-
точка, линия, окружность, прямоугольник, геометрическая фигура;
-
компьютер, персональный компьютер, сеть компьютеров, мэйнфрейм (большой универсальный компьютер), сервер;
-
университет, лицей, школа, колледж, учебное заведение, институт, академия;
-
математика, физика, программирование, линейная алгебра, математический анализ, теоретическая механика, предмет;
-
Pascal, С, ассемблер, язык программирования, язык программирования высокого уровня;
-
подразделение университета, факультет, кафедра, библиотека, учебная лаборатория, аудитория;
-
Pascal, С, С++, Delphi, язык программирования.
-
список, односвязный список, многосвязный список, стек, очередь, бинарное дерево, граф.
9.2. Полиморфизм. Виртуальные методы
Cоздать класс «одномерный динамический массив из потомков-объектов, описанных в 9.1». Реализовать следующие методы:
-
создание массива;
-
занесение элемента в массив;
-
удаление элемента из массива;
-
вывод на экран элементов массива с соответствующими полями для каждого объекта;
-
удаление массива.
Определить: конструктор, деструктор, виртуальные методы. Выполнить тестирование написанных методов.
9.3. *** Полиморфизм. Виртуальные методы
Воспользоваться шаблоном задания 8.3, создать класс «односвязный список из потомков-объектов, описанных в 9.1». Для данного списка реализовать следующие методы:
-
инициализация списка;
-
добавление объекта в список;
-
удаление объекта из списка;
-
просмотр элементов списка и вывод на экран элементов списка с соответствующими полями для каждого объекта;
-
удаление списка.
Определить: конструктор, деструктор, виртуальные методы. Выполнить тестирование написанных методов.