- •1 Семестр
- •14 Занятий
- •1. Линейные и разветвляющиеся алгоритмы
- •Вычисления по формулам. Стандартные математические функции
- •Область на плоскости
- •Условный оператор
- •1.4. Логическое выражение в условном операторе
- •Ветвления
- •1.6. Побитовые операции
- •2. Циклы
- •Целочисленная арифметика. Приведение типов
- •2.2. Итерационные циклы
- •2.3. Нахождение простых чисел
- •2.4. Вычисления с точностью
- •2.5. Последовательности значений
- •2.6. Вычисления без хранения последовательности значений
- •2.7. Схема Горнера
- •Массивы. Указатели
- •Обработка одномерных массивов
- •Построение новой матрицы по части заданной матрицы
- •Обход матрицы
- •Алгоритм Эратосфена для нахождения простых чисел
- •Упорядоченность значений в матрицах
- •3.6. Преобразование матриц
- •Использование массивов для представления «длинных» чисел
- •Экономичное хранение матриц. Матричная алгебра
- •Строки.
- •Использование строкового типа
- •Перевод из одной cистемы счисления в другую
- •Выделение слов в строке
- •Массив слов
- •2 Семестр
- •29 Занятий
- •Функции
- •5.1. Передача массивов в функцию
- •Создание собственных процедур для обработки с-строк
- •5.3. Возврат ссылок
- •5.4. Рекурсия
- •5.5. Вычисление корня уравнения. Передача имени функции в качестве параметра. Аргументы по умолчанию
- •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. Класс «Бинарное дерево»
- •8.7. Класс «Граф»
- •9.2. Полиморфизм. Виртуальные методы
- •9.3. Полиморфизм. Виртуальные методы
Функции
5.1. Передача массивов в функцию
Выполнить задания 3.2, оформив задания через функции. Написать функции для заполнения матрицы случайными числами, вывода на экран. Обеспечить перегрузку и шаблоны необходимых функций для выполнения задания с типами элементов массивов char, int, float, double. Передачу массивов в функцию организовать несколькими способами.
.
Создание собственных процедур для обработки с-строк
Выполнить задание двумя способами: с использованием стандартных процедур для C-строк; без использования стандартных процедур для строк. Сравнить результаты.
Написать программу, реализующую процедуру удаления подстроки SS из строки 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.3. Возврат ссылок
Напишите функцию, возвращающую ссылку.
Напишите функцию, возвращающую ссылку на минимальное число, встречающееся в заданном массиве произвольного размера (аргумент функции) ровно один раз. Если такого числа нет, то возвратить ссылку на любое из минимальных чисел массива. Замените этот элемент нулевым значением.
Напишите функцию, возвращающую ссылку на минимальное число, встречающееся в заданном массиве произвольного размера (аргумент функции) больше одного раза. Если такого числа нет, то возвратить ссылку на минимальное число в массиве. Замените этот элемент значением k.
Напишите функцию, возвращающую ссылку на максимальное число, встречающееся в заданном массиве произвольного размера (аргумент функции) ровно 2 раза. Если такого числа нет, то возвратить ссылку на любое из максимальных чисел массива. Замените этот элемент значением k.
Напишите функцию, возвращающую ссылку на число, встречающееся в заданном массиве произвольного размера (аргумент функции) максимальное количество раз. Если таких чисел несколько, то выбрать минимальное из них. Замените этот элемент значением k.
Напишите функцию, возвращающую ссылку на максимальное число, встречающееся в заданном массиве произвольного размера (аргумент функции) более двух раз. Если такого числа нет, то возвратить ссылку на любое из максимальных чисел массива. Замените этот элемент значением k.
Напишите функцию, возвращающую ссылку на максимальное число, встречающееся в заданном массиве произвольного размера (аргумент функции), являющееся числом Фиббоначчи. Если такого числа нет, то возвратить ссылку на любое из максимальных чисел массива. Замените значение этого элемента нулевым значением.
Напишите функцию, возвращающую ссылку на максимальное число, встречающееся в заданном массиве произвольного размера (аргумент функции), являющееся степенью числа n. Если такого числа нет, то возвратить ссылку на любое из максимальных чисел массива. Замените значение этого элемента нулевым значением.
Напишите функцию, возвращающую ссылку на максимальное число, встречающееся в заданном массиве произвольного размера (аргумент функции) ровно 1 раз. Если такого числа нет, то возвратить ссылку на любое из максимальных чисел массива. Замените значение этого элемента нулевым значением.
Напишите функцию, возвращающую ссылку на максимальное число, встречающееся в заданном массиве произвольного размера (аргумент функции) больше одного раза. Если такого числа нет, то возвратить ссылку на максимальное число массива. Замените значение этого элемента нулевым значением.
Напишите функцию, возвращающую ссылку на число, встречающееся в заданном массиве произвольного размера (аргумент функции) минимальное количество раз. Если таких чисел несколько, то выбрать максимальное из них. Замените этот элемент значением k.
Напишите функцию, возвращающую ссылку на минимальное число, встречающееся в заданном массиве произвольного размера (аргумент функции), являющееся полным квадратом. Если такого числа нет, то возвратить ссылку на любое из максимальных чисел массива. Замените этот элемент значением k.
Напишите функцию, возвращающую ссылку на число, встречающееся в заданном массиве произвольного размера (аргумент функции) чаще остальных. Если таких чисел несколько, то выбрать минимальное из них. Замените этот элемент значением k.
