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