- •Задание 1. Циклические и вычислительные процессы
- •Задание 2. Массивы.
- •Задание 3. Форматированный ввод/вывод в текстовые файлы. Динамические массивы.
- •Задание 4. Работа с файлами (бесформатный ввод/вывод; бинарные файлы).
- •Задание 5. Классы
- •1. Реализуйте класс «Односвязный список целых чисел» с методами:
- •2. Реализуйте класс «Двусвязный список целых чисел» с методами:
- •3. Реализуйте класс «Бинарное дерево символов» с методами:
- •4. Описать абстрактный класс «Функция на отрезке [a,b]»
- •7. Описать класс «множество целых чисел» на основе одномерного
- •13. Реализуйте класс «Бинарное дерево структур» с методами:
Задание 5. Классы
Требования к программам:
-
Необходимо точно выполнять условия задач, при сомнениях консультироваться с преподавателем.
-
Текст программы должен быть откомментирован.
В заголовке указать:
-
имя автора, группу,
-
формулировку задания.
Имена переменных, функций и проч. должны иметь осмысленные имена. Желательно объявление переменной снабжать комментарием о ее назначении.
-
Интерфейс программы должен быть достаточно удобен для пользователя.
Программа должна быть снабжена удобным интерфейсом на базе меню.
-
Программа должна компилироваться без ошибок и предупреждений при всех включенных сообщениях компилятора.
-
Программы должны быть хорошо протестированы перед сдачей.
-
Классы, использующие динамическую память, должны содержать как минимум следующие методы:
-
конструктор по умолчанию;
-
конструктор копии;
-
перегруженный оператор присваивания;
-
деструктор;
Варианты:
1. Реализуйте класс «Односвязный список целых чисел» с методами:
-
Конструктор по умолчанию
-
Стандартные методы списка
-
Вывести список на печать
-
Деструктор
На базе этого класса реализовать производный класс «Стек целых чисел» с методами:
-
Поместить (PUSH) элемент в вершину стека
-
Извлечь (POP) элемент из вершины стека
Примечание: Программа должна демонстрировать работу с классом «Односвязный список целых чисел» и с классом «Стек целых чисел».
2. Реализуйте класс «Двусвязный список целых чисел» с методами:
-
Конструктор по умолчанию
-
Стандартные методы списка
-
Вывести список на печать
-
Деструктор
На базе этого класса реализовать производный класс «Очередь» с методами:
-
Добавить элемент в конец очереди
-
Извлечь элемент из начала очереди
Примечание: Программа должна демонстрировать работу с классом «Двусвязный список целых чисел» и с классом «Очередь».
3. Реализуйте класс «Бинарное дерево символов» с методами:
-
Конструктор по умолчанию
-
Включить элемент в дерево
-
Поиск элемент в дереве
-
Вывести элементы дерева на печать
-
Деструктор
Написать демонстрационную программу. Меню программы должно обеспечить проверку всех методов и перегруженных операций.
4. Описать абстрактный класс «Функция на отрезке [a,b]»
единственным метод которого - метод с непустым телом, выдающий значение функции в заданной точке. Само вычисления значения поручить виртуальному методу.
Реализовать производные классы:
1. полиномы 2-й степени одной переменной
2. линейная комбинация тригонометрических функций sin и cos
3. экспонента
4. константную функцию
В производных классах реализовать виртуальный метод – вычисление функции в заданной точке.
Написать демонстрационную программу. Меню программы должно обеспечить проверку всех методов и перегруженных операций.
5. Создать класс «Геометрическая фигура» с полями X, Y (координаты точки привязки).
Методы:
-
Конструктор по умолчанию
-
Конструктор с параметрами X, Y
-
Метод What - Вывод на экран Наименования класса и всех его полей
Реализовать производные классы:
-
Прямоугольник
-
Квадрат
-
Окружность
В производных классах реализовать методы:
-
Конструктор по умолчанию
-
Конструктор - инициализатор
-
Получить структуру – «Точка привязки»
Написать демонстрационную программу, в которой будет использоваться массив объектов этих классов. Вывести на экран этот массив.
6. Создать класс «СТРОКА».
Обязательные поля класса:
-
Указатель на char - хранит адрес динамически выделенной памяти для размещения символов строки;
-
Значение int – хранит длину строки в байтах.
Обязательные методы:
-
Конструктор без параметров
-
Конструктор с параметром С-строка (char *)
-
Конструктор копирования
-
Получение длины строки
-
Очистка строки (сделать строку пустой)
-
Деструктор
Реализовать производный класс «Битовая строка».
Строки данного класса могут содержать только символы `0` или `1`. Если в инициализирующей строке встретятся другие символы, битовая строка заполняется нулями. Содержимое данных строк рассматривается как двоичное число. Отрицательные числа хранятся в дополнительном коде.
В производном классе реализовать:
Обязательные методы:
-
Конструктор без параметров
-
Конструктор с параметром С-строка (char *)
-
Конструктор копирования
-
Деструктор
-
Изменение знака на противоположный (перевод в дополнительный код).
Перегрузить следующие операции:
-
Присваивания (=)
-
Сложения (+)
-
Проверка на равенство (= =)
Примечание: Длина строки результата равна длине большей строки, более короткая строка расширяется влево знаковым разрядом.
Написать демонстрационную программу, в которой будут использоваться базовый и производный классы.