![](/user_photo/2706_HbeT2.jpg)
- •Задание 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 *)
Конструктор копирования
Деструктор
Изменение знака на противоположный (перевод в дополнительный код).
Перегрузить следующие операции:
Присваивания (=)
Сложения (+)
Проверка на равенство (= =)
Примечание: Длина строки результата равна длине большей строки, более короткая строка расширяется влево знаковым разрядом.
Написать демонстрационную программу, в которой будут использоваться базовый и производный классы.