- •Задание 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. Реализуйте класс «Односвязный список целых чисел» с методами:
Конструктор по умолчанию
Добавление элемента в конец списка
Реверс списка
Сортировка списка
Вывести список на печать
Деструктор
Примечание: Программа должна демонстрировать работу с классом «Односвязный список целых чисел».