Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ООП / ООП / вопросы

.pdf
Скачиваний:
23
Добавлен:
18.02.2017
Размер:
243.08 Кб
Скачать

Вопросы по курсу «Объектно-ориентированное программирование» 2009/2010 уч.гг. Лектор: к.т.н. Тельминов О.А.

01. Этапы развития С++. Перечислите языки-предшественники С++: год, название, место разработки, разработчик, основные особенности. Перечислите основные этапы развития С в 1978-1999 гг. Перечислите версии С++ в период с 1979 по 1997. Укажите автора STL, название и суть его способа программирования. Каково назначение объекта при решении задач? Укажите составляющие объекта и связь между ними. В чем состоит и как применяется идея разграничения доступа? Дайте определения инкапсуляции и объекта. Проиллюстрируйте взаимодействие объекта, друга, наследника и другого объекта с точки зрения обеспечения доступа. Дайте определение полиморфизма. Какие два способа определения принадлежности метода к классу используются в С++ и от чего они зависят? Дайте определение наследования. Какие свойства и методы необходимо вынести в базовый класс? Как запрограммировать метод в иерархии классов с общим интерфейсом, но различной реализацией? Проиллюстрируйте на примере с графическими примитивами: точкой, линией и полилинией.

02. Организация вычислительного процесса: архитектура, состав и назначение МП, ОЗУ, ВЗУ. Перечислите операторы С++ для изменения линейного хода выполнения программы и правила их использования. Приведите программный пример цикла в вариантах с goto и while, укажите изменения программного счетчика МП. Проиллюстрируйте процессы при подготовке, выполнении и завершении вызова функции с указанием стека и программного счетчика МП. Отобразите, как на карте памяти располагаются переменные, отвечающие за количество и содержание переданных аргументов командной строки в main/WinMain.

03. Перечислите простые и составные типы C++. Укажите их размер в байтах, для целых чисел также и диапазон представления. Дайте определения Прямого, Обратного и Дополнительного кодов числа. Проиллюстрируйте работу с union для знакового и беззнакового целого. Проиллюстрируйте в двоичном виде и запишите выражения на C++ для следующих действий с регистром: сброс состояния и установка флагов; установка заданных флагов с сохранением предыдущего состояния; сброс только заданных флагов; опрос заданных флагов.

04. Дайте определения указателя, операций взятия адреса и разыменования указателя. Проиллюстрируйте их работу на примере с записью значения по указателю, инкрементом значения по указателю и инкрементом указателя. Укажите все изменения ячеек памяти на карте. Перечислите 7 операций, применимых к указателю. Перечислите также по 3 операции для сложения и вычитания. В чем особенность их работы? Как работает указатель на функцию? Проиллюстрируйте на примере. Какие ограничения существуют для указателя на void*? Приведите программный пример с преобразованием типа такого указателя внутри функции. Приведите два программных примера вычисления суммы вектора, заданного константами. Укажите способ автоматического определения его размерности. В первом случае используйте доступ к элементу по индексу, во втором - с помощью перемещения указателя по вектору. Отобразите состояние ячеек вектора и указателей в процессе работы на карте памяти. Дан трехмерный массив. Какой тип данных получится, если определить 3 индекса, 2 индекса, 1 индекс? Проиллюстрируйте пример. Поясните назначение и способы обращения с аргументами main (int argc, char **argv), main (int argc, char *argv[]), укажите разницу.

05. Приведите особенности хранения данных в переменных и в динамической памяти. Изобразите на карте памяти стек, кучу, области глобальных данных и кода программы. Опишите основные принципы их использования. Дайте определение и назначение указателя на константу, приведите программный пример и иллюстрацию. Аналогично для константного указателя. Какой метод класса не может изменить значение объекта? Приведите название, синтаксис и программный пример.

06. Дайте определение ссылки и 3 правила работы с ней. Проиллюстрируйте на программном примере. Сравните на примере использование ссылки и указателя в качестве формальных и фактических параметров функции: передача фактических и обработка формальных параметров. Приведите синтаксис объявления ссылки на функцию, синтаксис определения и ее использования. Проиллюстрируйте на примере. Приведите и поясните программный пример использования функции для нахождения элемента с максимальным значением в векторе с возможностью присваивать этому элементу новое значение. Укажите роль ссылки.

07. Дайте определение класса и объекта. Как реализовано управление доступом? Приведите программный пример, в котором доступ по чтению и записи к защищенным данным осуществляется отдельными функциями. Какие отличия и сходства между классом, структурой и объединением? Приведите программный пример для них, покажите особенности хранения данных на карте памяти. Приведите свойства и ограничения элементов-данных, проиллюстрируйте на программном примере. Для чего и как используются extern, auto, register, enum, битовые поля? Поясните на программных примерах. В каких двух случаях функция является встроенной? Когда невстроенной? Укажите достоинства и недостатки обоих вариантов. Их работу проиллюстрируйте на примере методов SetXY, GetXY класса CPoint.

08. Даны два объекта. Создайте и используйте ссылку и указатель на них. Какие способы доступа к полям объекта существуют при обращении через имя объекта, указатель и ссылку на объект? Ответ также проиллюстрируйте на карте памяти. Запишите синтаксис указателя на функцию и его использования. Какие параметры необходимы и достаточны для указателя на функцию? Приведите программный пример с вызовом функции f класса A через аргумент-указатель с помощью другой функции класса и отдельной функции, объяснив применение .* и ->*. В какие функции передается указатель this? На какой тип он указывает? Как получить указатель и ссылку на объект при возвращении результата функции? Как передаются данные в функцию установки значения двух координат данной точки? Приведите программный пример.

09.Запишите программный пример на применение конструктора, конструктора копии, операции присваивания, деструктора, операций new и delete, а также двух вариантов функций преобразования. Проиллюстрируйте их работу, включая передачу параметров, на карте памяти. В чем отличительные особенности этих операций?

10.Конструктор: определение, возвращаемый тип, наследование, возможность применения различных модификаторов, реакция компилятора на отсутствие конструктора, особенности вызова. Приведите вариант конструктора со значениями по умолчанию. Какие ограничения действуют на аргументы по умолчанию в любой функции? Какой способ используется для инициализации элементов-констант и

элементов-ссылок? Приведите программный пример. Конструктор копии: определение, возвращаемый тип, список аргументов, наследование, возможность применения различных модификаторов, реакция компилятора на отсутствие конструктора копии, особенности вызова. На что влияет модификатор перед аргументом конструктора копии? Как защитить объект от копирования? Приведите программный пример по рассмотренным вопросам.

11. Операция присваивания: определение, возвращаемый тип, список аргументов, наследование, возможность применения различных модификаторов, реакция компилятора на отсутствие операции присваивания, особенности вызова. Приведите программный пример защиты от копирования и поясните его. Деструктор: определение, возвращаемый тип, список аргументов, наследование, возможность применения различных модификаторов, реакция компилятора на отсутствие деструктора, особенности

2

вызова. Операции new и delete. В чем различие двух вариантов для этой пары операций? Дайте определение преобразования конструктором. Опишите конструктор: определение, возвращаемый тип, наследование, возможность применения различных модификаторов, реакция компилятора на отсутствие конструктора, особенности вызова. Опишите функцию-элемент для преобразования типа: определение, возвращаемый тип, список аргументов, наследование, возможность применения различных модификаторов, реакция компилятора на отсутствие такой функции, особенности вызова. Приведите программный пример для функций преобразования.

12. Приведите таблицу, отображающую основные свойства элементов-функций и функций-друзей класса (9 типов функций): наследуется ли от базового класса, может ли быть виртуальной, может ли возвращать значение, является функцией-членом или статической функцией-членом или функциейдругом, генерируется ли автоматически компилятором. Проиллюстрируйте и приведите программный пример, поясняющий работу конструктора, конструктора копии, операции присваивания, функций преобразования (экспорт и импорт), деструктора для объектов Flower, Branch, Bush.

13.С какой целью применяются друзья класса? Приведите программный пример и иллюстрацию для доступа дружественного класса, дружественной функции класса и дружественной функции к объекту. Запишите правила работы с друзьями: this для унарной и бинарной операций, operator =, private, protected, public, взаимность, наследование, переходное свойство. Проиллюстрируйте дружественность на диаграммах.

14.В каком случае функции-элементы и функции-операции являются перегруженными? Перечислите все запрещенные и основные разрешенные к перегрузке операции. Что есть приоритеты и правила ассоциаций, как они действуют на перегруженные функции и операции? Приведите несколько примеров. Какие требования предъявляются к функции, чтобы она стала функцией-операцией? Как реализовать перегрузку функции-операции для встроенного типа данных? Правила наследования для

функций-операций. Аргументы по умолчанию для функции-операции. Перегрузка бинарных операций. Как передаются операнды в такую операцию? Приведите программный пример и прокомментируйте временную переменную, используемую для возврата результата, преимущества применения ссылки как возвращаемого значения и аргумента. Обоснуйте применение модификаторов const. Реализуйте операцию присваивания. Перегрузка бинарных операций. Как передаются операнды в такую операцию? Обеспечьте выполнение "Object ОПЕРАЦИЯ A" и "A ОПЕРАЦИЯ Object", где Object - объект класса, A - объект другого типа, ОПЕРАЦИЯ - бинарная операция. Обоснуйте свое решение. Особенности перегрузки операций присваивания и сложения.

15. Приведите и прокомментируйте программные примеры с реализацией перегруженных операций отношения, логических и унарных. Укажите особенности перегрузки префиксной и постфиксной форм.Объект класса CPointMsg хранит сообщение типа char* в заданной точке экрана. Напишите его программную реализацию. Присвойте один объект другому и отобразите на карте памяти, какие действия произойдут с объектами, ответ обоснуйте. Перегрузите операцию присваивания так, чтобы у каждого объекта были персональные данные. Обоснуйте применение ссылки как типа возвращаемого значения и аргумента. Обеспечьте посимвольный доступ к сообщению по чтению и записи, с контролем допустимых значений индекса с помощью исключений. Предоставьте доступ только по чтению ко всему сообщению.

16. Какие элементы класса могут быть статическими? Укажите два правила для данных и пять для функций. Приведите программный пример учета количества созданных объектов. Перечислите четыре правила для константных элементов-функций класса и приведите программный пример для иллюстрации работы с константными объектами.

3

17.Обеспечьте работу класса mystr для строк по следующим правилам. Конструктор запрашивает размер буфера для хранения текста (по умолчанию нулевой). Предоставьте возможность преобразования конструктором строки, завершающейся нулем. При копировании новый объект использует память хранения строки от уже существующего объекта. Деструктор высвобождает динамическую память, если на объект более нет ссылок. Объекту можно присвоить строку, завершающуюся нулем, или другой объект mystr. Символы строки доступны по чтению/записи с проверкой диапазона индекса. Объекты можно записывать/считывать в/из поток(а) и сравнивать с Си-строкой. Ваш ответ должен содержать: полное содержание h-файла; краткое содержание cpp-файла класса mystr, файла с функцией main и файла проекта; иллюстрацию операций с объектами на карте памяти, связанных с реализацией перечисленных выше требований к классу.

18.Обеспечьте работу класса mystr для строк по следующим правилам. Конструктор запрашивает размер буфера для хранения текста (по умолчанию нулевой). Предоставьте возможность преобразования конструктором строки, завершающейся нулем. При копировании новый объект использует память хранения строки от уже существующего объекта. Деструктор высвобождает динамическую память, если на объект более нет ссылок. Объекту можно присвоить строку, завершающуюся нулем, или другой объект mystr. Символы строки доступны по чтению/записи с проверкой диапазона индекса. Объекты можно записывать/считывать в/из поток(а) и сравнивать с Си-строкой. Ваш ответ должен содержать: полное содержание h-файла; полное содержание cpp-файла класса mystr, полное содержание файла с функцией main и краткое содержание файла проекта. Для каждой операции в main укажите вызываемую функцию класса и проиллюстрируйте ее работу.

19.Дайте определение наследования и классов, в нем участвующих. Приведите синтаксис наследования от нескольких классов и отметьте места, в которых регулируется уровень доступа к элементам классов. Приведите таблицу зависимости уровней доступа от влияющих параметров (девять

строк). Приведите программный пример, демонстрирующий все варианты доступа из этой таблицы. Как получить доступ к public-функции класса, унаследованного как private? Дайте определение и приведите программный пример простого наследования с классом "точка" и "сообщение в заданной точке". Изложите правила относительно последовательности вызова конструкторов и деструкторов при наследовании, списка инициализации. Изобразите и опишите схему обработки сообщений в иерархии классов. Как она действует для рассмотренного примера?

20. Приведите графический интерфейс для задачи: пользователь выбирает одну из трех фигур для изображения на графическом поле ввода. Нарисуйте и обоснуйте схему иерархии классов для представления трех фигур. Изложите соображения по интерфейсу и реализации функции отображения фигур, по способу хранения объектов-фигур в памяти и по способу поиска соответствующей реализации функции отображения фигур. Кратко опишите суть механизма С++, используемого для этой функции. Запишите обработчик события нажатия на клавишу мыши при создании новой фигуры, функцию перерисовки фигур на изображении. Дайте определение виртуальной функции и ее синтаксис. Укажите отличие от перегруженной функции. Когда проявляется виртуальность? На какие классы иерархии может указывать указатель или ссылка? В каких классах иерархии требуется указывать свойство виртуальности? Изложите программную реализацию классов иерархии и соображения относительно класса, наследуемого всеми классами фигур.

21. Какой класс называется виртуальным? Какие требования предъявляются к телу виртуальной функции, включая =0? Дайте определение классу с такой функцией, опишите его характерные особенности. Когда проявляется динамический полиморфизм? Приведите также программный пример, иллюстрирующий вышеизложенное. Опишите назначение и правила для vtable, vptr. Укажите способ

4

инициализации vptr, правило смещений в vtable, пошаговый процесс вызова виртуальной функции. Проиллюстрируйте на примере трех классов фигур, унаследовавших один общий класс и имеющих каждый по три виртуальных функции. Дайте определение полиморфизма и позднего связывания. Приведите программный пример виртуального деструктора для высвобождения динамической памяти, корректно вызываемого при использовании классов иерархии. Как принудительно отключить действующий виртуальный механизм?

22.Дайте определение и синтаксис множественного наследования. Приведите два основных способа такого наследования, диаграммы иерархии, последовательность вызова конструкторов и деструкторов. Какое правило существует и как оно реализуется для конструкторов в иерархии наследования? Приведите программную реализацию для двух рассмотренных выше способов наследования.

23.Изложите суть проблемы, когда один класс наследует другой через две параллельные ветви, в каждой из которых по одному классу. Изобразите диаграмму наследования. Какой модификатор необходимо применить к базовому классу для устранения неоднозначности? Приведите программный

пример, когда три класса хранят числа, а последний класс в иерархии вычисляет их произведение. Дайте определение абстрактному классу, перечислите его свойства и ограничения. Проиллюстрируйте на программном примере и диаграмме наследования.

24.Как называется подсистема распознавания типа объекта во время выполнения программы? Какие ключевые слова и встроенный класс она использует? Укажите назначение системы. Пусть на вход функции передается указатель на объект базового типа B или одного из его двух прямых наследников D1, D2. Как определить тип аргумента для корректной обработки объекта, если у D2 такие свойства, которых нет ни у B, ни у D1? Приведите программную реализацию этой задачи, когда один объект хранит координаты со знаком, другой - абсолютные координаты, третий - относительные координаты, а отдельная функция определяет принадлежность к квадранту координатной плоскости. Для решения используйте typeid.

25.Как называется подсистема распознавания типа объекта во время выполнения программы? Какие ключевые слова и встроенный класс она использует? Укажите назначение системы. Опишите синтаксис и назначение двух операций сравнения и одной функции определения названия для этой системы. Приведите программный пример их использования. Перечислите и опишите назначение пяти Casting-

операций этой системы. Приведите программный пример сравнения двух функционально сходных

Casting-операций.

26.Как называются библиотеки ANSI C и C++ для ввода-вывода? Дайте определение потока, приведите их классификацию по направлению (3 типа) и по типам устройств (4 типа). Дайте определение буфера и его основное назначение. Приведите пример работы кольцевого буфера.

27.Приведите диаграмму буферизированного ввода-вывода с указанием управляющих команд для буфера. Проиллюстрируйте работу двухстраничного буфера. Приведите название класса, абстрагирующего работу с потоками от физических устройств. Приведите название и назначение одного-двух производных от него класса. Приведите названия классов форматированного ввода, вывода и ввода-вывода. Наследниками какого класса они являются? Изобразите все эти классы на диаграмме иерархии. Что есть флаги и статус потока? В каком классе они хранятся?

28.Приведите названия стандартных потоков, их принадлежность к классам, назначение. Как ведут себя операции <<, >> для встроенных типов и как их перегрузить для пользовательских типов?

Приведите программный пример и объясните применение всех ссылок в прототипе этих операций.

5

Приведите названия всех функций, флагов и манипуляторов для форматирования потоков. Изложите оба варианта форматирующей функции ширины поля, их применение для потоков ввода/вывода, обнулением, связь с символом-заполнителем и функционально схожим манипулятором. Укажите синтаксис и значение по умолчанию для функции-заполнителя.

29.Форматирование потоков: изложите оба варианта функции точности вещественных чисел, значение по умолчанию, интерпретацию значения в зависимости от флагов и функционально схожий манипулятор. Приведите программные примеры для иллюстрации рассмотренных функций.

30.Приведите названия всех функций, флагов и манипуляторов для форматирования потоков. Приведите программные примеры на использование группы флагов выравнивания; основания системы счисления и его отображения; пробельных символов; отображения десятичной точки; вида

вещественного числа; буферизации. Перечислимый тип fmt_flags содержит описание следующих констант (в порядке перечисления): boolalpha, dec, fixed, hex, internal, left, oct, right, scientific, showbase, showpoint, showpos, skipws, unitbuf, uppercase. Следом определены еще три константы, означающие группы: adjustfield = left | right | internal, basefield = dec | oct | hex, floatfield = scientific | fixed. Чему равна каждая из этих констант? Какое правило действует для их значений?

31. Какая функция возвращает текущую комбинацию флагов? Какая функция помимо этого еще и устанавливает новую комбинацию флагов? Приведите прототипы двух функций, одна из которых устанавливает, другая - сбрасывает заданный флаг в комбинации флагов. Приведите прототип функции, которая устанавливает флаг в одной из трех рассмотренных выше групп. Пусть исходное состояние флагов потока равно 1002 (hex). Напишите программный пример, выводящий это значение в виде 0X1002 и восстановите исходное состояние флагов. Дайте определение манипуляторов. Какие из них хранят значение до следующей установки? Перечислите названия и назначение всех простых манипуляторов. Укажите названия, параметры и значения по умолчанию для манипуляторов: установки основания системы счисления, установки флагов, сброса флагов, установки заполнителя, точности и ширины поля ввода-вывода. Приведите программные примеры на простые и параметризированные манипуляторы. Перечислите назначение флагов goodbit, eofbit, failbit, badbit, hardfail. Какому классу они принадлежат? Какое правило использовано при присвоении им числовых значений и чему они равны?

32. Для следующих функций отметьте в разрядах регистра анализируемые флаги. Каков прототип функции, возвращающей текущую комбинацию флагов? Записывающей новое состояние? В чем отличие методов void* и operator! для потока? Что возвращает и какие флаги анализируют функции fail и bad? Какие прототипы и назначение функций eof и good? Запишите выражение на C++ выражение для некоторого потока strm, используя методы rdstate и clear, названия реальных флагов. Ситуации: [1] В регистре необходимо установить только три указанных флага, остальные сбросить. [2] Аналогично, но остальные не изменять. [3] Сбросить только два заданных флага. [4] Узнать, установлен ли один из двух заданных флагов. [5] Сбросить все флаги.

33.Какие классы файловых потоков существуют в С++? Какие классы являются их предками? Что они наследуют? Дайте определения файлу, буферу и дескриптору. Перечислите по 4 варианта конструкторов для файловых потоков ввода, вывода, ввода-вывода и укажите их особенности: отношение к файлу, буферу, дескриптору, прототипы со значениями по умолчанию. Приведите программные примеры для них.

34.Классы файловых потоков: какое назначение и значения у следующих констант, к какому перечислимому типу они принадлежат: app, binary, in, out, trunc, ate, nocreate, noreplace? Как открыть

6

файловый поток на дозапись? Приведите программный пример замены буфера потока: емкость буфера 5 символов, используются только 4 с учетом '\0', сначала запись в поток производится до заполнения буфера, затем с принудительным опорожнением буфера. Проиллюстрируйте пошагово работу программы. Какие особенности функции close?

35. В чем отличие бинарного от текстового режима при чтении/записи? Приведите программный пример с комментариями. Приведите две пары функций для работы с raw data. В чем отличие использования знакового/беззнакового типа и длины буфера? Приведите программный пример записи и чтения double-числа в поток. Сколько байт информации будет передано? В чем особенность типа данных буфера? Приведите по три функции установки и выяснения положения указателя для потоков ввода и вывода. Как называются константы для относительной адресации? Каков диапазон изменения указателя? Что является минимально адресуемым участком потока?

36.Укажите 3 варианта функции get с одним и менее параметров, назначение и программный пример. Для чего используются get с тремя параметрами и getline, в чем их различие? Приведите программный пример с get-ignore и getline. Каково назначение и какие прототипы у функций gcount, peek и putback?

37.Шаблоны функций: определение, назначение, синтаксис. Приведите шаблон для поиска минимального значения из двух заданных. Снабдите необходимой операцией класс, хранящий сумму в виде руб.-коп., для работы шаблона. Перегрузите шаблон для поиска минимума в векторе. Выполните специализацию для строковых констант. Какие три правила действуют при разрешении ссылок?

38.Шаблоны классов: определение, назначение, синтаксис. Создайте шаблон стека, хранящий данные в динамической памяти, с конструктором и деструктором, функциями push и pop. Как реализована специализация и перегрузка для шаблонов класса? Приведите выводы по работе с шаблонами.

39.Управление исключениями: определение, достоинства, два вида, смысл работы. Ключевые слова. Программный пример: одна функция выбрасывает строку, другая - целое. Последовательность обработки исключений - целое, строка и все остальные. Рассмотрите по шагам отдельно выброс строки и отдельно выброс целого. Где должны располагаться секции-ловушки исключений? Какой аргумент у универсальной ловушки и где она размещается? Где разрешен выброс исключений и почему?

40.Библиотека STL: дайте определение списка. Что такое контейнер и итератор? Приведите программный пример и пошаговую иллюстрацию добавления трех элементов и вывода значения второго. Приведите спецификацию списка, четыре вида конструктора. Поясните термины explicit, Allocator, InIter. Приведите шесть операций, определенных для списка.

41.Библиотека STL: работа со списком. Какой файл нужно подключить через #include? Приведите названия и назначение элементов-функций класса: [1] для доступа к элементу списка (две ссылки, два итератора, два реверсивных итератора), [2] для текущих параметров списка (три для оценки количества элементов и распределитель памяти), [3] для упорядочивания списка (три функции), [4] для добавления элементов в список (для добавления набора одинаковых значений, три варианта вставки, еще два варианта вставки и переопределения размера), [5] удаления элементов из списка (всех, по итератору, в заданном диапазоне элементов, крайних, с заданным значением, два вида с true-предикатами, дубликатов). Приведите программные примеры с использованием: push_back, empty, pop_front, begin, end, iterator, sort. Приведите программный пример с сортировкой списка координат класса CCoord.

42.Библиотека STL - дайте определение и назначение. Приведите определения контейнера, алгоритма, итератора. Перечислите пять видов итераторов и их назначение. Дайте определение распределителя

памяти, предиката и функции сравнения (приведите название и назначение любых трех). Дайте

7

определение контейнерным классам и приведите названия и назначения для битового множества, очередей (двух видов), дека, списка, отображений (двух видов), множеств (двух видов), стека и динамического массива. Что означают sizetype, const_reference, const_reverse_iterator, key_compare?

43.Библиотека STL, map: определение, шаблонная спецификация с классами Key, T, Comp и Allocator. Три формы конструктора: новое пустое, новое на основе существующего, новое на основе существующего в заданном диапазоне. Пары "ключ-значение": шаблонная спецификация, три типа конструкторов, спецификация функции make_pair.

44.Библиотека STL, map: определение, шаблонная спецификация с классами Key, T, Comp и Allocator.

Что означают: rbegin/rend, operaror[], find, equal_range, key_comp, count, swap? Приведите программные примеры map для ASCII-таблицы (int-char) и текста в заданной точке (char[]-CCoord).

45.Библиотека STL: спецификации и назначение count и count_if. Программный пример определения гласного звука в строке. Спецификация и назначение remove_copy; программный пример использования. Спецификация и назначение replace_copy; программный пример использования. Спецификация и назначение двух вариантов transform; программный пример использования.

46.UML: определение, применение, создатели (фамилии, место работы), конкурс OMG в 1996, дата и победитель конкурса. Обоснуйте название UML: унификация - 6 областей; модель - цель, семантика, нотация, основные черты.

47.UML: сформулируйте техническое задание на климат-систему: цель, входные данные, процесс работы, выходные данные. Разработайте диаграммы: Use Case, Deployment, State Chart и Activity.

48.UML: сформулируйте техническое задание на климат-систему: цель, входные данные, процесс работы, выходные данные. Разработайте диаграммы: Sequence, Collaboration, Class и Component.

49.UML. Программная реализация климат-системы. Класс CController, свойства: заданный график температуры, окружающая среда, нагреватель, охладитель, лог, датчик. Класс CController, методы: конструктор, деструктор, обработка состояния (до конца графика). Работа с объектом CController в main. Класс CPlan, методы с реализацией STL-списка: конструктор, добавление точки, определение температуры, получение времени отключения системы.

50.Класс CDevice, свойства: статус (вкл./выкл.), предыдущий отсчет времени, коэффициент изменения температуры. Класс CDevice, методы: конструктор, статус, включить, выключить, настроить коэффициент изменения температуры, вычислить изменение температуры за последний промежуток

времени. Приведите график изменения температуры (заданную и достигнутую), укажите на нем работу нагревателя и охладителя.

8

Соседние файлы в папке ООП