- •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.2 Класс «Массив»
8.2.1. Объявить класс «Матрица» и определить его методы.
Обеспечить представление матрицы произвольного размера с возможностью изменения числа строк и столбцов.
Обеспечить в конструкторе автоматическое генерирование имени матрицы («матрица 1», «матрица 2» и т.д.), используя для этого статическое поле – счетчик объектов класса.
Реализовать в классе метод вывода матрицы на экран с одновременным выводом ее имени. Алгоритм обработки, реализующий условие задачи, определить как функцию-член класса или как дружественную функцию класса.
Класс может реализовывать следующие операции над матрицами (в зависимости от условия задания):
-
сложение, вычитание, умножение, деление ) на число
-
сложение, вычитание, умножение на другую матрицу
-
комбинированные операции присваивания (+=, -=, *=, /=);
-
операции сравнения на равенство/неравенство;
-
операции вычисления транспонированной матрицы;
-
операцию возведения в степень;
-
методы, реализующие проверку типа матрицы (квадратная, диагональная, нулевая, единичная, симметричная, верхняя треугольная, нижняя треугольная);
-
методы доступа к элементам матрицы с контролем выхода за пределы размерностей;
-
методы, обеспечивающие: замену значений элементов i-й строки матрицы значениями элементов вектора;
-
операции ввода/вывода в стандартные потоки подматрицы любого размера и всей матрицы.
Алгоритм обработки, реализующий условие задачи, определить как функцию-член класса или как дружественную функцию класса.
В основной программе определить массив указателей (проинициализировав его адресами объявленных матриц-объектов, требуемых по условию задания) и функцию, которой передаются данный массив и количество матриц (для вывода на экран перечня всех матриц с их значениями).
Используя объекты описанного класса «Матрица», реализовать алгоритм своего варианта задания 7.1.2.
8.2.2. Реализовать варианты заданий 7.1.2, используя объявление и методы соответствующего параметризированного класса из стандартной библиотеки шаблонов STL.
8.3 Класс «Линейный список»
8.3.1. Объявить шаблон класса «Линейный список». Определить структуру класса и его методы. В классе должен быть конструктор по умолчанию, конструктор с формальными параметрами, конструктор копирования и деструктор.
Определить методы:
-
инициализация первого элемента структуры;
-
добавления в структуру нового элемента;
-
удаление элемента;
-
поиск элемента по заданному ключу поиска (значению информационного поля);
-
вывод элементов списка на экран;
-
удаления списка.
Используя объекты класса «Линейный список», реализовать алгоритмы своих вариантов заданий 7.2-7.3.
8.3.2. Реализовать варианты заданий 7.3-7.3, используя объявление и методы соответствующего параметризированного класса из стандартной библиотеки шаблонов STL.
8.4. *** Класс «Двусвязный список»
8.4.1. Объявить шаблон класса «Двусвязный линейный список». Определить структуру класса и его методы. В классе должен быть конструктор по умолчанию, конструктор с формальными параметрами, конструктор копирования и деструктор.
Определить методы:
-
инициализация первого элемента структуры;
-
запись в структуру нового элемента;
-
удаление элемента;
-
поиск элемента по заданному ключу поиска (значению информационного поля);
-
вывод структуры на экран;
-
удаления структуры..
Используя объекты класса «Двусвязный линейный список», реализовать алгоритм своего варианта задания 7.4.
8.4.2. Реализовать вариант заданий 7.4, используя объявление и методы соответствующего параметризированного класса из стандартной библиотеки шаблонов STL.
.