
Задания 2014 ООП / Домашние задания / ООП_DZ11
.docДомашние задания. Вариант 11
Задание 1. Turbo Delphi
Часть 1.1 Разработать иерархию классов Delphi. Использовать виртуальный метод, наследование конструкторов, свойства. Разместить определение классов в отдельном модуле. Класс, позволяющий рисовать окружность некоторого размера с центром в точке, определенной нажатием левой клавиши мыши. Класс, позволяющий рисовать квадрат того же размера с центром в точке, определенной нажатием правой клавиши мыши.
Параметры задаются с использованием интерфейсных элементов.
В отчете показать иерархии используемых классов Delphi и разработанных классов, граф состояния пользовательского интерфейса и объектную декомпозицию.
Часть 1.2. Разработать программу, содержащую описание трех графических объектов:
правильный треугольник, ромб, астроида.
Реализуя механизм полиморфизма, привести объекты в одновременное движение по экрану с отражением от его границ (угол падения равен углу отражения).
Задание 2. С++.
Часть 2.1. Функции.
Дан упорядоченный по неубыванию значений элементов массив целых чисел и некоторое целое число b. Написать программу, определяющую место вставки числа b в упорядоченный массив такое, чтобы упорядоченность не нарушилась. Если таких мест несколько – определить ближайшее к началу массива место. Для поиска места воспользоваться алгоритмом дихотомического поиска. Осуществить вставку числа b на его место. При программировании использовать функцию. Вывести на печать исходный и сформированный массив.
Часть 2.2 Текстовая обработка.
Дана последовательность строк. Каждая строка состоит из групп букв, цифр и знаков +,-,*. Группой букв называется группа, которой не предшествует и за которой не следует буква. Группой цифр называется группа, которой не предшествует и за которой не следует цифра. Группой знаков называется группа, которой не предшествует и за которой не следует знак. Написать программу, определяющую в каждой строке количество таких групп букв, которые начинаются и кончаются одной и той же буквой. Вывести на печать исходную последовательность строк и строки, содержащие искомые группы букв.
Часть 2.3. Файлы.
Дан текстовый файл F. Записать в перевернутом виде строки файла F в файл G. Порядок строк в файле G должен совпадать с порядком исходных строк в файле F.
Задание 3. Программирование с использованием классов в С++.
Часть 3.1. Композиция.
Разработать и реализовать диаграмму классов для описанных объектов предметной области, используя механизмы наследования и композиции. Проверить ее на тестовом примере, с демонстрацией всех возможностей разработанных классов на конкретных данных.
Даны:
Объект вещественное число, умеющий печатать свое значение и отвечать на запрос о значении своего числового поля, значении целой и вещественной частях числового поля.
Объект массив вещественных чисел переменной длины, которая определяется в процессе инициализации и для хранения длины используется специальное поле. Объект умеет выводить на печать значение своих элементов, возвращать размер массива, значение любого элемента по его индексу, среднее арифметическое целых и дробных частей своих элементов
Часть 3.2. Qt. Полиморфное наследование.
Разработать программу, содержащую описание трех графических объектов:
правильный треугольник, ромб, астроида.
Реализуя механизм полиморфизма, привести объекты в одновременное движение по экрану с отражением от его границ (угол падения равен углу отражения).