
Задания 2014 ООП / Домашние задания / ООП_DZ22
.docДомашние задания. Вариант 22
Задание 1. Turbo Delphi
Часть 1.1 Разработать иерархию классов Delphi. Разместить определение классов в отдельном модуле. Класс, позволяющий рисовать линию некоторого размера и заданного направления из точки, определенной нажатием левой клавиши мыши. Класс, позволяющий рисовать такую же линию, но со стрелкой.
Вид линии определяется по положению радиокнопки, а все параметры задаются с использованием интерфейсных элементов.
В отчете показать иерархии используемых классов Delphi и разработанных классов, граф состояния пользовательского интерфейса и объектную декомпозицию.
Часть 1.2. Разработать программу, содержащую описание трех графических объектов:
правильные треугольник, квадрат, пятиугольник.
Реализуя механизм полиморфизма, привести объекты в одновременное синхронное колебательное движение вдоль осей, проходящих через их геометрические центры и параллельных главной диагонали экрана. Колебания должны затухать к центрам осей и затем возобновляться с возрастанием амплитуд вплоть до достижения объектами границ экрана.
Задание 2. С++.
Часть 2.1. Функции.
Дано натуральное число n. Написать программу, определяющую, есть ли среди чисел n,n+1,n+2,…2n близнецы, то есть простые числа, разность между которыми равна 2. Например, 11 и 13, 17 и 19. Вывести на печать все обнаруженные пары, а если таких пар нет, то соответствующее сообщение. Для определения близнецов и их наличия использовать функции.
Часть 2.2 Текстовая обработка.
Дана последовательность строк. Каждая строка состоит из слов, разделенных пробелами. Написать программу, обеспечивающую ввод строк и их корректировку. Корректировка заключается в следующем. Если слово содержит символы, отличные от букв латинского алфавита и цифр, то удалить его. Если слово состоит из букв латинского алфавита и цифр и начинается с цифры, заменить эту цифру символом «_» подчеркивание. Вести подсчет количества корректировок. Вывести на печать исходные и скорректированные последовательности строк.
Часть 2.3. Файлы.
Организовать программным способом символьные файлы F и G. Определить совпадают ли компоненты этих файлов. Если нет, то получить номер первой компоненты, с которой начинаются различия. В случае, когда один из файлов имеет N компонент (N>=0) и повторяет начало другого (более длинного) файла, ответом должно быть число N+1.
Задание 3. Программирование с использованием классов в С++.
Часть 3.1. Композиция.
Разработать и реализовать диаграмму классов для описанных объектов предметной области, используя механизм композиции. Проверить ее на тестовом примере, с демонстрацией всех возможностей разработанных классов на конкретных данных.
Даны:
объект символ, умеющий печатать свое значение и отвечать на запрос о значении своего символьного поля.
Объект «строка» переменной длины, умеющий выводить на печать значение своих элементов, возвращать максимальную и текущую длины строки, а также номер элемента, с которого некоторая подстрока или символ входят в строку или 0, если такого вхождения нет.
Часть 3.2. Qt. Полиморфное наследование.
Разработать программу, содержащую описание трех графических объектов:
правильные треугольник, квадрат, пятиугольник.
Реализуя механизм полиморфизма, привести объекты в одновременное синхронное колебательное движение вдоль осей, проходящих через их геометрические центры и параллельных главной диагонали экрана. Колебания должны затухать к центрам осей и затем возобновляться с возрастанием амплитуд вплоть до достижения объектами границ экрана.