- •Задание 1. Циклические и вычислительные процессы
- •Задание 2. Массивы.
- •Задание 3. Форматированный ввод/вывод в текстовые файлы. Динамические массивы.
- •Задание 4. Работа с файлами (бесформатный ввод/вывод; бинарные файлы).
- •Задание 5. Классы
- •1. Реализуйте класс «Односвязный список целых чисел» с методами:
- •2. Реализуйте класс «Двусвязный список целых чисел» с методами:
- •3. Реализуйте класс «Бинарное дерево символов» с методами:
- •4. Описать абстрактный класс «Функция на отрезке [a,b]»
- •7. Описать класс «множество целых чисел» на основе одномерного
- •13. Реализуйте класс «Бинарное дерево структур» с методами:
13. Реализуйте класс «Бинарное дерево структур» с методами:
-
Конструктор по умолчанию
-
Включить элемент в дерево
-
Поиск элемент в дереве
-
Вывести элементы дерева на печать
-
Деструктор
Структура «Телефонный справочник» с полями:
-
Фамилия
-
Адрес
-
Номер телефона
Написать демонстрационную программу. Меню программы должно обеспечить проверку всех методов и перегруженных операций.
14. Создать класс «Геометрическая фигура» с полями X, Y (координаты точки привязки).
Методы:
-
Конструктор по умолчанию
-
Конструктор с параметрами X, Y
-
Метод What - Вывод на экран Наименования класса и всех его полей
Реализовать производные классы:
-
Прямоугольник
-
Квадрат
-
Окружность
В производных классах реализовать методы:
-
Конструктор по умолчанию
-
Конструктор - инициализатор
-
Метод What
-
Вычисление периметра и площади.
Написать демонстрационную программу. Меню программы должно обеспечить проверку всех методов и перегруженных операций.
15. Создать класс «Геометрическая линия» с полями X, Y (координаты точки привязки).
Методы:
-
Конструктор по умолчанию
-
Конструктор с параметрами X, Y
-
Метод What - Вывод на экран Наименования класса и всех его полей
Реализовать производные классы:
-
Отрезок
-
Дуга окружности
В производных классах реализовать методы:
-
Конструктор по умолчанию
-
Конструктор - инициализатор
-
Получить структуру – «Точка привязки»
-
Вычисление длины.
Написать демонстрационную программу, в которой будет использоваться массив объектов этих классов. Вывести на экран этот массив.
16. Создать класс «СТРОКА».
Обязательные поля класса:
-
Указатель на char - хранит адрес динамически выделенной памяти для размещения символов строки;
-
Значение int – хранит длину строки в байтах.
Обязательные методы:
-
Конструктор без параметров
-
Конструктор с параметром С-строка (char *)
-
Конструктор копирования
-
Получение длины строки
-
Очистка строки (сделать строку пустой)
-
Деструктор
Реализовать производный класс «Десятичная строка».
Строки данного класса могут содержать только символы `0`, `1`, …, `9`. Если в инициализирующей строке встретятся другие символы, десятичная строка заполняется нулями. Содержимое данных строк рассматривается как десятичное число.
В производном классе реализовать:
Обязательные методы:
-
Конструктор без параметров
-
Конструктор с параметром С-строка (char *)
-
Конструктор копирования
-
Деструктор
Перегрузить следующие операции:
-
Присваивания (=)
-
Сложения (+)
-
Проверка на больше (>)
-
Проверка на меньше (<)
Примечание: Длина строки результата равна длине большей строки, более короткая строка расширяется влево нулями..
Написать демонстрационную программу, в которой будут использоваться базовый и производный классы.
17. Описать класс «Вещественная матрица» на основе одномерного динамического массива.
Обязательные поля класса:
-
Размеры матрицы M, N
-
Адрес динамически выделенной памяти для размещения матрицы;
Обязательные методы:
-
Конструктор без параметров
-
Конструктор с параметрами M,N;
-
Конструктор копирования
-
Вывести матрицу на печать
-
Деструктор
Перегрузить следующие операции:
-
Операция + – сложение матриц
-
Операция * – умножение матриц
-
Операция [] – доступ по индексу
Написать демонстрационную программу. Меню программы должно обеспечить проверку всех методов и перегруженных операций.
18. Реализовать класс "Защищенный массив символов". Массив должен быть одномерным и индексироваться целыми числами.
Границы изменения индекса задаются при инициализации и в дальнейшем не изменяются.
Методы:
-
Получить границы массива;
-
прочитать / изменить значение компоненты;
-
вывести массив на экран.
Перегрузить операции:
-
Операция [] – доступ по индексу
При этом должна производиться проверка на нарушение границ, в случае
нарушения выводиться на экран сообщение об ошибке. Обращение к элементам массива должно быть таким же, как и для обычных массивов.
Написать демонстрационную программу. Меню программы должно обеспечить проверку всех методов и перегруженных операций.
19. Реализовать класс "Двусвязный список символов". Класс должен
включать в себя методы:
-
стандартные методы списка
-
получение длины списка
-
вставить символ после i-го
-
удалить i-й символ
-
удалить первое вхождение заданного символа
Перегрузить операции:
-
Операция ++ – переход на следующий элемент списка;
-
Операция -- – переход на предыдущий элемент списка;
Написать демонстрационную программу. Меню программы должно обеспечить проверку всех методов и перегруженных операций.
20. Создать класс «СТРОКА».
Обязательные поля класса:
-
Указатель на char - хранит адрес динамически выделенной памяти для размещения символов строки;
-
Значение int – хранит длину строки в байтах.
Обязательные методы:
-
Конструктор без параметров
-
Конструктор с параметром С-строка (char *)
-
Конструктор копирования
-
Получение длины строки
-
Очистка строки (сделать строку пустой)
-
Деструктор
Перегрузить операции:
-
Операции сравнения <, >, = =;
-
Операция = присваивания;
-
Операция [] – доступ к символу строки по индексу.
Написать демонстрационную программу. Меню программы должно обеспечить проверку всех методов и перегруженных операций.
21. Реализуйте класс «Циклическая очередь на основе одномерного динамического массива» с методами:
-
Конструктор по умолчанию
-
Конструктор с параметром – максимальный размер очереди
-
Стандартные методы очереди (добавить в конец, извлечь с «головы»)
-
Вывести очередь на печать
-
Очистить очередь
-
Деструктор
Примечание: Программа должна демонстрировать работу с классом «Циклическая очередь целых чисел».
22. Реализуйте класс «Стек целых чисел на основе одномерного динамического массива» с методами:
-
Конструктор по умолчанию
-
Конструктор с параметром – максимальный размер стека
-
Стандартные методы стека (PUSH, POP)
-
Вывести стек на печать
-
Очистить стек
-
Деструктор
Примечание: Программа должна демонстрировать работу с классом «Стек целых чисел».
23. Реализуйте класс «Стек строк на основе одномерного динамического массива» с методами:
-
Конструктор по умолчанию
-
Конструктор с параметром – максимальный размер стека
-
Стандартные методы стека (PUSH, POP)
-
Вывести стек на печать
-
Очистить стек
-
Деструктор
Примечание:
Под строкой имеется в виду типы char *str, char str[];
В стек должна «заталкиваться» вся строка, а не ее указатель.
Программа должна демонстрировать работу с классом «Стек строк».
24. Создать класс «КОМПЛЕКСНОЕ ЧИСЛО».
Обязательные поля класса:
-
Действительная часть числа;
-
Мнимая часть числа.
Обязательные методы:
-
Конструктор без параметров
-
Конструктор с параметрами – re, im
Перегрузить операции:
-
Арифметические +, -, *, /
-
Операции сравнения <, >, = =;
Примечание: Программа должна демонстрировать работу с классом «Комплексное число».
25. Реализуйте класс «Односвязный список целых чисел» с методами:
-
Конструктор по умолчанию
-
Добавление элемента в конец списка
-
Реверс списка
-
Сортировка списка
-
Вывести список на печать
-
Деструктор
Примечание: Программа должна демонстрировать работу с классом «Односвязный список целых чисел».