- •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. *** Полиморфизм. Виртуальные методы
-
Создание собственных процедур для обработки строк
4.5.1. Выполнить задание двумя способами: с использованием стандартных процедур для C-строк; без использования стандартных процедур для строк. Сравнить результаты.
-
Написать программу, реализующую процедуру удаления k символов с позиции номер n из строки S.
-
Написать программу, реализующую процедуру вставки подстроки SS в строку S с позиции номер n.
-
Написать программу, реализующую процедуру замены подстроки S1 на подстроку S2 в строке S.
-
Написать программу, которая преобразует строку символов в число (целое) или сообщает об ошибке (atoi, strtol).
-
Написать программу, которая преобразует строку символов в число (вещественное) или сообщает об ошибке (atof, strtod ).
-
Написать программу, которая преобразует целое число в строку символов в заданной системе счисления (itoa).
-
Написать программу, реализующую процедуру разбора строки на лексемы (strtok).
-
Написать программу, реализующую процедуры поиска символов в строке (strchr, strrchr, strspn, strpbrk).
-
Написать программу, реализующую процедуру определения номера позиции, с которой подстрока SS входит в строку S (strstr).
-
Написать программу, реализующую процедуру конкатенации k строк (strcat, strncat).
-
Написать программу, которая осуществляет сравнение двух строк (strcmp, strncpy).
-
Написать программу, которая осуществляет копирование двух строк (strcpy, strncpy).
-
Функции
-
5.1. Передача параметров по значению и по ссылке
-
5.1.1. Выполнить задания 2.1, 2.3, оформив его через функции. Передачу параметров организовать тремя способами: по значению, через указатель, через ссылочный параметр.
5.1.2. Написать функции для заполнения матрицы случайными числами, ввода с клавиатуры, вывода на экран. Выполнить задания 3.1, 3.2, оформив задания через функции. Передачу массива в функцию организовать несколькими способами.
5.1.3. Выполнить задания 4.2, 4.3, 4.5, оформив задания через функции. Все необходимые данные для функций должны передаваться в качестве параметров.
-
5.2. Перегрузка и шаблон функций
Выполнить задание 3.1, обеспечив перегрузку функций для типов int, float, double. Выполнить задание 3.1, создав шаблон функции. Шаблон должен работать с массивом любого числового типа.
-
5.3. Возврат ссылок
-
5.3.1. Напишите функцию, возвращающую ссылку.
-
-
Напишите функцию, возвращающую ссылку на минимальное число, встречающееся в заданном массиве произвольного размера (аргумент функции) ровно один раз. Если такого числа нет, то возвратить ссылку на любое из минимальных чисел массива. Замените этот элемент нулевым значением.
-
Напишите функцию, возвращающую ссылку на минимальное число, встречающееся в заданном массиве произвольного размера (аргумент функции) больше одного раза. Если такого числа нет, то возвратить ссылку на минимальное число в массиве. Замените этот элемент значением k.
-
Напишите функцию, возвращающую ссылку на максимальное число, встречающееся в заданном массиве произвольного размера (аргумент функции) ровно 2 раза. Если такого числа нет, то возвратить ссылку на любое из максимальных чисел массива. Замените этот элемент значением k.
-
Напишите функцию, возвращающую ссылку на число, встречающееся в заданном массиве произвольного размера (аргумент функции) максимальное количество раз. Если таких чисел несколько, то выбрать минимальное из них. Замените этот элемент значением k.
-
Напишите функцию, возвращающую ссылку на максимальное число, встречающееся в заданном массиве произвольного размера (аргумент функции) более двух раз. Если такого числа нет, то возвратить ссылку на любое из максимальных чисел массива. Замените этот элемент значением k.
-
Напишите функцию, возвращающую ссылку на максимальное число, встречающееся в заданном массиве произвольного размера (аргумент функции), являющееся числом Фиббоначчи. Если такого числа нет, то возвратить ссылку на любое из максимальных чисел массива. Замените значение этого элемента нулевым значением.
-
Напишите функцию, возвращающую ссылку на максимальное число, встречающееся в заданном массиве произвольного размера (аргумент функции), являющееся степенью числа n. Если такого числа нет, то возвратить ссылку на любое из максимальных чисел массива. Замените значение этого элемента нулевым значением.
-
Напишите функцию, возвращающую ссылку на максимальное число, встречающееся в заданном массиве произвольного размера (аргумент функции) ровно 1 раз. Если такого числа нет, то возвратить ссылку на любое из максимальных чисел массива. Замените значение этого элемента нулевым значением.
-
Напишите функцию, возвращающую ссылку на максимальное число, встречающееся в заданном массиве произвольного размера (аргумент функции) больше одного раза. Если такого числа нет, то возвратить ссылку на максимальное число массива. Замените значение этого элемента нулевым значением.
-
Напишите функцию, возвращающую ссылку на число, встречающееся в заданном массиве произвольного размера (аргумент функции) минимальное количество раз. Если таких чисел несколько, то выбрать максимальное из них. Замените этот элемент значением k.
-
Напишите функцию, возвращающую ссылку на минимальное число, встречающееся в заданном массиве произвольного размера (аргумент функции), являющееся полным квадратом. Если такого числа нет, то возвратить ссылку на любое из максимальных чисел массива. Замените этот элемент значением k.
-
Напишите функцию, возвращающую ссылку на число, встречающееся в заданном массиве произвольного размера (аргумент функции) чаще остальных. Если таких чисел несколько, то выбрать минимальное из них. Замените этот элемент значением k.
5.3.2. Создайте шаблон функции для задания 5.3.1. Шаблон должен работать с массивом любого числового типа.