- •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. *** Полиморфизм. Виртуальные методы
7.4. Двухсвязные списки
Выполнить задания с использованием двухсвязных списков.
-
Даны натуральное число n, действительные числа x1, x2, ... xn. Разработать программу вычисления значения выражения следующего вида: .
-
Даны натуральное число n, действительные числа x1, x2, ... xn. Разработать программу вычисления значения выражения следующего вида: .
-
Даны натуральное число n, действительные числа x1, x2, ... xn. Разработать программу вычисления значения выражения следующего вида: .
-
Даны натуральное число n, действительные числа x1, x2, ... xn. Разработать программу вычисления значения выражения следующего вида: .
-
Даны натуральное число n, действительные числа a1, a2, ... a2n. Получить .
-
Даны натуральное число n, действительные числа a1, a2, ... a2n. Получить .
-
Даны натуральное число n, действительные числа a1, a2, ..., a2n. Получить .
-
Даны натуральное число n, действительные числа a1, a2, ..., a2n. Получить .
-
Даны натуральное число n, действительные числа a1, a2, ..., a2n. Получить .
-
Даны натуральное число n, действительные числа a1, a2, ..., a2n. Получить .
-
Даны натуральное число n, действительные числа a1, a2, ..., a2n. Получить .
-
Даны натуральное число n, действительные числа a1, a2, ..., a2n. Получить .
7.5. Деревья
По заданной последовательности различных целых чисел построить соответствующее бинарное дерево поиска T. Выполнить следующие задания и вывести элементы дерева на экран.
-
Определяет значение самого левого листа дерева.
-
Определить число листьев дерева.
-
Удалить вершину с минимальным значением элементов.
-
Удалить вершину с максимальным значением элементов.
-
Определить число элементов k-ого уровня.
-
Вывести на экран все листья дерева.
-
Определить номер уровня, в котором содержится максимальное количество вершин.
-
Определить максимальную глубину дерева.
-
Удалить все листья дерева.
-
Определить число ветвей от корня до вершины с заданным элементом. Вывести часть дерева от вершины до данного элемента на экран.
-
Определить число ветвей n-го уровня этого дерева.
-
Дополнить полученное дерево новыми вершинами так, чтобы каждая вершина, которая не является листом, имела ровно двух преемников, значения элементов в дополнительных вершинах задавать равными значениям их предшественников.
7.6. *** Более сложные связанные динамические структуры данных
Выполнить задания с использованием подходящих связанных динамических структур данных.
-
Написать программу, которая по заданному алгебраическому выражению (операнды – целые и вещественные числа; операции – + - * / % ++ --) вычисляет результат. Воспользоваться логикой построения обратной польской записи.
-
Написать программу, которая по заданному логическому выражению (операнды – булевские константы; логические операции – && || !) вычисляет результат. Воспользоваться логикой построения обратной польской записи.
-
Написать программу, которая по заданному выражению : (операнды – целые числа; поразрядные операции – & | ^ ~ >> <<) вычисляет результат. Воспользоваться логикой построения обратной польской записи.
Дана программа на С++.
-
Записать в выходной файл построчно все ключевые слова, встречающиеся в этой программе, указав количество появлений для каждого ключевого слова и номера строк программы, в которых они встречаются.
-
Записать в выходной файл в алфавитном порядке построчно все идентификаторы, встречающиеся в этой программе, указав количество появлений для каждого идентификатора и номера строк программы, в которых они встречаются.
-
Записать в выходной файл построчно все числовые константы, встречающиеся в этой программе, указав количество появлений для каждой константы и номера строк программы, в которых они встречаются.
-
Записать в выходной файл в алфавитном порядке построчно все переменные, встречающиеся в этой программе, указав количество появлений для каждой переменной и номера строк программы, в которых они встречаются.
-
Записать в выходной файл все комментарии, встречающиеся в этой программе, указав номера строк программы, в которых они встречаются.
-
Записать в выходной файл построчно все выражения, изменяющие объявленные в программе переменные и номера строк программы, в которых это происходит.
-
Записать в выходной файл построчно все операции, частоту их использования в программе и номера строк программы, в которых они встречаются.
-
Записать в выходной файл построчно все вызовы функций и номера строк программы, в которых они встречаются.
-
Записать в выходной файл построчно все циклические конструкции, встречающиеся в этой программе с указанием номеров строк начала и конца каждого цикла и его типа.