Сертификат "Объектно-ориентированное программирование и программная инженерия"
  • Сертификат "Объектно-ориентированное программирование и программная инженерия"
  • Сертификат "Объектно-ориентированное программирование и программная инженерия"
Сертификат "Объектно-ориентированное программирование и программная инженерия"
  • Сертификат "Объектно-ориентированное программирование и программная инженерия"
  • Сертификат "Объектно-ориентированное программирование и программная инженерия"

Объектно-ориентированное программирование и программная инженерия

700,00 руб.
В течение часа!
Экзамен "Объектно-ориентированное программирование и программная инженерия" для пользователей и системных администраторов.
Количество
Есть в наличии!

Форма сдачи теста: Экстерн
Количество вопросов: 30
Проходной балл: 90% и выше
Срок действия сертификата: неограничен

Сертификат появляется в профиле ресурса INTUIT, и Вы можете заказать его бумажную версию на сайте INTUIT.
12454 шт.
Внимание !
Вопросы к тесту выложены исключительно в ознакомительных целях: количество вопросов может не совпадать с действительным, актуальность не поддерживается,- за решением теста Welcome to the cashier!


При моделировании 7-и уровневой классификации Линнея создан объект prima класса "Примат". (В классификации Линнея это уровень – отряд. Согласно Линнею, к приматам относятся люди, обезьяны, летучие мыши, ленивцы). Какие утверждения справедливы по отношению к этому объекту?

он описывает некоторые свойства прикладных математиков
если создан объект homo класса "Человек Разумный", то возможно присваивание: homo := prima
если создан объект homo класса "Человек Разумный", то возможно присваивание: prima := homo
он полностью описывает все свойства приматов - прикладных математиков


При моделировании транспортной системы Traffic созданы объекты yellow_taxi класса TAXI и объект transport класса VEHICLE. Какие утверждения справедливы по отношению к этим объектам:

эти объекты принадлежат разным классам и не имеют ничего общего
объект transport обладает всеми свойствами объекта yellow_taxi
возможно присваивание yellow_taxi := transport
возможно присваивание transport := yellow_ taxi
объект yellow_taxi обладает всеми свойствами объекта transport


При описании математических структур – моноида, группы и кольца - Вы создали три класса, связав их отношением наследования. Укажите правильный порядок наследования, начиная с родительского класса?

группа, кольцо, моноид
кольцо, группа, моноид
моноид, кольцо, группа
группа, моноид, кольцо
кольцо, моноид, группа
моноид, группа, кольцо


При рассмотрении наследования используются такие термины как: потомок, наследник, правильный потомок, родитель, предок, правильный предок. Какие утверждения справедливы относительно этих терминов?

родительский класс можно называть предком
класс А является своим правильным предком
класс А является своим правильным потомком
если класс А является правильным потомком класса В, а класс В является правильным потомком класса С, то класс А является правильным потомком класса С


При рассмотрении наследования используются такие термины как: потомок, наследник, правильный потомок, родитель, предок, правильный предок. Какие утверждения справедливы относительно этих терминов?

класс А является своим предком
класс А является своим потомком
если класс А является потомком класса В, а класс В является потомком класса С, то класс А является потомком класса С
если класс А является наследником класса В, а класс В является наследником класса С, то класс А является наследником класса С


При рассмотрении наследования используются такие термины как: потомок, наследник, правильный потомок, родитель, предок, правильный предок. Какие утверждения справедливы относительно этих терминов?

если класс В является потомком А, то В является наследником А
если класс В наследует от А, то А родитель В
если класс А родитель В, то В наследник А
если класс В является наследником А, то В является потомком А
наследник и потомок эквивалентные понятия


Eiffel Studio позволяет отображать различные облики класса. Плоский облик класса отображает:

только компоненты, введенные в классе
все компоненты, введенные как самим классом, так и его предками
только компоненты, введенные во всех классах, являющихся правильными предками
только компоненты, введенные в родительском классе


Для отображения отношений между классами Eiffel Studio позволяет построить диаграмму классов. Какие утверждения справедливы для этой диаграммы?

одинарная линия связывает родителя и его наследника
одинарная линия связывает клиента и его поставщика
двойная линия связывает клиента и его поставщика
двойная линия связывает родителя и его наследника


Для отображения отношений между классами Eiffel Studio позволяет построить диаграмму классов. Какие утверждения справедливы для этой диаграммы?

одинарная линия, связывающая родителя и его наследника, не имеет стрелок, указывающих на родителя или на наследника
одинарная линия, связывающая родителя и его наследника, имеет стрелку, указывающую на родителя
одинарная линия, связывающая родителя и его наследника, имеет стрелку, указывающую на наследника
одинарная линия, связывающая родителя и его наследника, имеет стрелки, указывающие как на родителя, так и на наследника


Полиморфизм - одно из важнейших понятий, связанных с наследованием. Какие высказывания справедливы для присваивания?

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


Полиморфизм - одно из важнейших понятий, связанных с наследованием. Полиморфными могут быть:

Сущность
контейнерная структура данных
присваивание
оператор выбора
замена аргумента при вызове метода
класс
выражение


Полиморфизм - одно из важнейших понятий, связанных с наследованием. Какое высказывания справедливы для присваивания?

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


Только одно из утверждений относительно полиморфизма и динамического связывания является справедливым. Какое?

метод, описываемый в некотором классе А, может вызывать только методы этого класса
метод, описываемый в некотором классе, может вызывать только методы этого класса и методы, описанные в классах, являющихся предками класса А
если x – объект класса А и М – метод этого класса, то вызов x.M(…) всегда будет вызывать метод М класса А
метод, описываемый в некотором классе, может вызывать методы этого класса, методы, описанные в классах, являющихся предками класса А, и методы потомков класса А, несмотря на то, что эти потомки еще не созданы в момент создания класса А


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

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


Какие утверждения справедливы для полиморфного контейнера:

может хранить объекты разных типов
контейнер является полиморфным, если таковыми являются сущности, задающие элементы контейнера
структура типа ARRAY[REAL] является полиморфной
может хранить ссылки на объекты разных типов
любая контейнерная структура данных является полиморфной


Какая комбинация стратегий применяется в Eiffel?

динамический анализ типов и динамическое связывание
статический анализ типов и динамическое связывание
статический анализ типов и статическое связывание
динамический анализ типов и статическое связывание


Динамическое связывание и полиморфное присоединение – два механизма, поддерживающие семантику присваивания и аналогичную семантику замены формальных аргументов при вызове метода. Какие утверждения справедливы для этих механизмов?

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


Какие утверждения справедливы?

в Eiffel по умолчанию применяется динамическое связывание
при вызове x.M(…), где x – полиморфная сущность, будет вызываться метод М из класса, заданного статическим типом x (типом, заданным при объявлении x)
в C++, C#, Java по умолчанию применяется динамическое связывание
при вызове x.M(…), где x – полиморфная сущность, будет вызываться метод М из класса, заданного динамическим типом x (типом объекта, присоединенного к x в момент вызова)


Пусть заданы классы P, F, M, S, D, где P – родитель классов F и M, класс F – родитель S, а M – родитель D. Пусть созданы объекты этих классов – op, of, om, os, od. Какие утверждения являются несправедливыми?

присваивание of := od недопустимо
присваивание of := od допустимо. В результате присваивания статический тип of задан классом F, а динамический тип – классом D
допустимы лишь те присваивания, в которых тип объекта источника является потомком статического типа цели
присваивание of := od допустимо. В результате присваивания статический и динамический тип op задан классом D


Пусть заданы классы P, F, M, S, D, где P – родитель классов F и M, класс F – родитель S, а M – родитель D. Пусть созданы объекты этих классов – op, of, om, os, od. Какие утверждения являются несправедливыми?

допустимы взаимные присваивания всех заданных объектов
присваивание op := os недопустимо
присваивание op := os допустимо. В результате присваивания статический и динамический тип op задан классом S
присваивание op := os допустимо. В результате присваивания статический тип op задан классом P, а динамический тип – классом S


Какие утверждения относительно статического и динамического типа полиморфной сущности являются справедливыми?

в момент присваивания динамический тип сущности задается типом объекта, присоединяемого к сущности
динамический тип сущности может изменяться в течение выполнения программы
статический тип сущности может изменяться в течение выполнения программы
статический тип сущности это тип, используемый при ее объявлении
динамический тип сущности это тип, используемый при ее объявлении


Какие утверждения справедливы?

универсальный класс задает универсальный тип данных – общий предок всех типов
универсальный класс с родовыми параметрами задает множество типов
если класс не является универсальным, то он однозначно определяет тип
если во время выполнения сущность x присоединяется к объекту, то тип этого объекта будет динамическим типом сущности x


Какие утверждения является корректными?

если ссылочный класс А является потомком класса В и оба класса являются универсальными, то тип, определяемый родовым порождением А [T, U, …] согласован с типом, определяемым родовым порождением В [T, U, …] с теми же самыми родовыми параметрами
если ссылочный класс А является потомком класса В и оба класса не являются универсальными, то тип, определяемый классом А, согласован с типом, определяемым классом В
развернутый тип согласован со всеми типами
развернутый тип согласован только с самим собой


Какие утверждения являются корректными?

любой динамический тип сущности должен быть согласован с ее статическим типом
наследование означает, что наследник получает компоненты родителя. Экземпляры наследника (объекты) могут быть обработаны таким же способом, что и экземпляры родителя
полиморфизм и динамическое связывание – это эквивалентные понятия
полиморфизм может применяться как к ссылочным сущностям, так и к развернутым


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

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


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

метод, для которого задана сигнатура и спецификация, но не задана реализация
метод, для которого задана сигнатура и реализация, но не задана спецификация
метод, для которого задана реализация, но не задана сигнатура и спецификация
метод, для которого задана сигнатура, но не задана реализация и спецификация


Проектирование семейства классов начинается с создания класса – прародителя семейства. Как правило, такой класс является отложенным классом, называемым также абстрактным классом. Какой же класс называется отложенным?

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


Какие утверждения справедливы для отложенного класса и его объектов?

невозможно создать объект отложенного класса, используя конструктор класса
у отложенного класса нет конструкторов (операторов создания) объектов класса
объекты отложенного класса можно объявлять и присоединять к ним потомков отложенного класса
для отложенного класса обязательно задание конструктора без аргументов


Какие утверждения справедливы относительно отложенных классов, их методов и объектов?

создание объектов отложенного типа невозможно, поскольку у класса нет конструкторов
метод класса является эффективным, если задана его реализация
тип или класс является эффективным, если все его компоненты эффективны
можно объявлять сущности отложенного типа и благодаря полиморфизму и динамическому связыванию присоединять к ним согласованные по типу объекты
метод класса является эффективным, если эффективен размер его кода и время выполнения


Если в родительском классе есть отложенный метод, то наследник класса обязан?

в случае задания реализации создать новый отложенный метод
задать реализацию либо оставить метод отложенным
оставить этот метод отложенным
задать реализацию отложенного метода


Отложенные классы характерны для верхних уровней проектирования программных систем. Некоторые методы отложенного класса носят название "программы с дырами". Какие это методы?

метод, в котором отсутствует реализация
метод, в коде которого мыши прогрызли дыры
эффективный метод с заданной реализацией, но код которого вызывает отложенные методы, не имеющие реализации
метод, в котором часть исполняемого кода отсутствует и заменена псевдокодом


Какие утверждения справедливы для понятий экземпляр типа и прямой экземпляр типа?

экземпляр типа и прямой экземпляр типа – это эквивалентные понятия
экземпляром типа является прямой экземпляр этого типа или прямой экземпляр согласованного типа (потомка класса)
экземпляр типа является объектом, а прямой экземпляр таковым не является
прямой экземпляр типа создается конструктором (оператором создания) этого типа
экземпляр типа создается конструктором (оператором создания) этого типа


Какие утверждения о проектировании системы классов, связанных отношением наследования, следует считать корректными:

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


Какие высказывания справедливы для таких понятий как переопределение и переобъявление методов?

если выполняется переопределение метода, то переобъявление не происходит
переобъявление означает изменение чего-либо – контракта, сигнатуры, реализации
переобъявление более широкое понятие и включает переопределение
переопределение метода должно быть явным и сопровождаться ключевым словом redefine
эти понятия эквивалентны
переопределение более широкое понятие и включает переобъявление


Говорят, что наследник переопределяет родительский метод, если

у родителя метод отложенный, а наследник изменяет сигнатуру или контракт, оставляя метод отложенным
у родителя метод отложенный, а наследник задает его реализацию
у родителя метод имеет реализацию (эффективен), а наследник ее изменяет
У родителя метод имеет реализацию (эффективен), а наследник объявляет метод отложенным


Если родитель задал реализацию метода, то наследник:

может переопределить эту реализацию
может сохранить и использовать реализацию родителя
может отменить реализацию и объявить метод отложенным
обязан сохранить эту реализацию в неприкосновенности


В некоторых языках программирования используется перегрузка методов, когда несколько методов имеют одно и то же имя, но разную сигнатуру. Какие из утверждений являются справедливыми?

в языках C++, C#, Java перегрузка методов широко используется
в языке Eiffel перегрузка методов широко используется
в языках C++, C#, Java перегрузка методов не допускается
в языке Eiffel перегрузка методов не допускается


Переопределение наследником метода, заданного родителем, должно делаться явно с использованием специального ключевого слова: redefine. Какие утверждения справедливы по отношению к этому термину?

включение имени метода в предложение redefine означает существование двух экземпляров метода с одним и тем же именем, но с разными реализациями (задание перегрузки метода)
включение имени метода в предложение redefine означает отсутствие перегрузки метода, поскольку после переопределения метод с таким именем существует в единственном экземпляре
ключевое слов redefine должно сопровождать объявление каждого метода
имена всех переопределяемых методов должны быть заданы в предложении redefine в inherit части класса, задающей наследование


С присваиванием связаны два механизма – трансформация и полиморфное присоединение. Какие утверждения справедливы для этих механизмов?

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


Контракты играют важную роль при проектировании. Какие утверждения справедливы для контрактов в процессе наследования?

при переопределении реализации метода наследником контракт метода также переопределяется
при переопределении реализации метода наследником контракт метода сохраняется
контракты нельзя задать на верхнем уровне абстракции. Они тесно связаны с реализацией
контракты следует задавать на как можно высоком уровне абстракции


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

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


При проектировании важное значение играет скрытие информации. В чем ценность этого приема?

разработчик класса сохраняет свое "know how", не раскрывая деталей реализации
благодаря полиморфизму и динамическому связыванию клиенту класса не требуется знать, какой именно поставщик создал вызванный им метод
клиентам класса вполне достаточно знать интерфейс класса поставщика, включающий контракты
клиенты класса могут работать с классом без необходимости рассмотрения деталей реализации


Какие утверждения относительно возможности эффективной реализации динамического связывания являются справедливыми?

динамическое связывание, основанное на использовании таблицы методов, позволяет найти нужный метод за константное время O(1)
компилятор Eiffel выполняет статическое связывание в тех ситуациях, когда оно задает корректную семантику вызова
компилятор Eiffel всегда выполняет динамическое связывание, поскольку оно задает корректную семантику вызова
динамическое связывание, основанное на использовании таблицы методов, позволяет найти нужный метод за время O(n), где n – число методов у объекта, осуществляющего вызов


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

4
1
8
2


Каждый создаваемый объект содержит поля, в которых хранятся значения атрибутов класса, задающие свойства объекта. В реализации языка Eiffel при создании объекта добавляются поля, содержащие дополнительную информацию. Эти поля содержат информацию, задающую:

число классов - предков
данные для сборщика мусора
число классов - потомков
значение объекта
тип объекта


Какие утверждения является корректными?

переобъявление метода у потомка всегда связано с изменением реализации метода
реализация компонента является частью его спецификации
метод класса является эффективным, если задана его реализация
прямым экземпляром типа является объект, создаваемый конструктором типа (оператором создания)


Какие утверждения являются корректными?

полиморфизм предполагает, что потомки класса могут изменять реализацию метода, заданную в классе
динамическое связывание необходимо для реализации полиморфизма
потомок не может объявить метод отложенным, если задана реализация метода одним из предков
спецификацию компонента составляет его контракт и его сигнатура


Какие утверждения справедливы?

отложенным методом называется метод, содержащий реализацию, но спецификация которого не задана
метод класса является эффективным, если задана его спецификация и реализация
достаточно задать контракт метода, чтобы сделать его эффективным
эффективный метод может быть "программой с дырами", содержащей вызовы отложенных методов


Что происходит с инвариантами класса при наследовании. Укажите корректные утверждения?

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


Что происходит с контрактами при наследовании. Укажите корректные утверждения?

контракты родительского класса наследуются, но часть контракта может быть отменена
контракты родительского класса наследуются и не могут быть изменены
в отличие от компонент класса контракты родительского класса не наследуются
контракты родительского класса наследуются, должны выполняться потомком, но потомок может включить в контракт дополнительные обязательства


Если у родительского класса есть инвариант, то наследник класса:

обязан не изменять этот инвариант
должен удалить этот инвариант
может дополнить инвариант
может заменить инвариант собственным инвариантом


Пусть наследник класса переопределил метод М родителя, задав например реализацию отложенного метода М. В контракте метода М у родителя задано постусловие Р, которое должно выполняться при вызове М. Какие утверждения справедливы относительно постусловия РР метода М в классе наследника?

наследник может ослабить постусловие метода (Р => PР and not(PP = P))
наследник обязан сохранить постусловие метода (РР = Р)
наследник может сохранить постусловие метода (РР = Р)
наследник может усилить постусловие метода (РР => Р and not(PP = P))


Пусть наследник класса переопределил метод М родителя, задав например реализацию отложенного метода М. В контракте метода М у родителя задано предусловие Р, которое должно выполняться при вызове М. Какие утверждения справедливы относительно предусловия РР метода М в классе наследника?

наследник может сохранить предусловие метода (РР = Р)
наследник обязан сохранить предусловие метода (РР = Р)
наследник может усилить предусловие метода (РР => Р and not(PP = P))
наследник может ослабить предусловие метода (Р => PР and not(PP = P))



Какой связкой объединятся наследуемый инвариант и инвариант, заданный в классе наследника?

and then
and
or
implies
or else


При переопределении метода возможно и переопределение контракта. Какие утверждения справедливы при переопределении контракта:

изменяется базисная форма записи предложений require и ensure
предусловие и постусловие записываются в базисной форме – в предложениях require и ensure
если не задавать предусловие и постусловие, то сохраняются условия, заданные родителем
если не задавать предусловие и постусловие, то отменяются условия, заданные родителем


При переопределении метода возможно и переопределение контракта. Как при переопределении контракта записывается новое постусловие, и каков его эффект?

постусловие можно задать в форме ensure else new_post, где new_post – дополнительное условие, заданное потомком, расширяющее область возможных значений для результатов метода
постусловие можно не задавать. В этом случае сохранится постусловие родителя
постусловие можно задать в форме ensure then new_post, где new_post – дополнительное условие, заданное потомком, сужающее область возможных значений для результатов метода
постусловие можно не задавать. В этом случае отменяется постусловие родителя


При переопределении метода возможно и переопределение контракта. Как при переопределении контракта записывается новое предусловие, и каков его эффект?

предусловие можно не задавать. В этом случае отменяется предусловие родителя
предусловие можно задать в форме require else new_pred, где new_pred – дополнительное условие, заданное потомком, расширяющее область возможных значений для входных данных метода
предусловие можно задать в форме require then new_pred, где new_pred – дополнительное условие, заданное потомком, сужающее область возможных значений для входных данных метода
предусловие можно не задавать. В этом случае сохранится предусловие родителя


В родительском классе Р задан эффективный метод М с предусловием "Быть пушистым" and "Быть белым". Наследник этого класса Р1 переопределил этот метод, задав соответственно предусловие: require else "Быть белым". Наследник этого класса Р2 переопределил этот метод, задав соответственно предусловие: require else "Быть пушистым".Наследник этого класса Р3 переопределил этот метод, задав соответственно предусловие: require else "Быть натуральным". Объект, передаваемый на вход методу М, обладает свойствами "Быть белым" and "Быть натуральным". Методы какого класса могут применяться для обработки этого объекта?

Р3
Р
Р1
Р2


В родительском классе Р задан эффективный метод М с предусловием "Быть пушистым" and "Быть белым". Наследник этого класса Р1 переопределил этот метод, задав соответственно предусловие: require else "Быть белым". Наследник этого класса Р2 переопределил этот метод, задав соответственно предусловие: require else "Быть пушистым". Наследник этого класса Р3 переопределил этот метод, задав соответственно предусловие: require else "Быть натуральным". Объект, передаваемый на вход методу М, обладает свойствами "Быть пушистым" and "Быть натуральным" and "Быть белым". Каково число реализаций метода М, которые могут применяться для обработки этого объекта?

1
0
4
2
3


В родительском классе Р задан эффективный метод М с предусловием "Быть пушистым" and "Быть белым". Наследник этого класса Р1 переопределил этот метод, задав соответственно предусловие: require else "Быть белым". Наследник этого класса Р2 переопределил этот метод, задав соответственно предусловие: require else "Быть пушистым". Наследник этого класса Р3 переопределил этот метод, задав соответственно предусловие: require else "Быть натуральным". Объект, передаваемый на вход методу М, обладает свойствами "Быть пушистым" and "Быть натуральным". Методы какого класса могут применяться для обработки этого объекта?

Р
Р2
Р3
Р1


В классе Р задан эффективный метод М с постусловием "Т > 10". Наследник этого класса Р1 переопределил этот метод, задав соответственно постусловие: ensure then "Т > 20". Класс Р2 - наследник Р1 в свою очередь переопределил этот метод, задав соответственно постусловие: ensure then "Т > 50". Класс Р3 - наследник Р2 в свою очередь переопределил этот метод, задав соответственно постусловие: ensure then "Т > 100". Клиенту требуется вызвать метод, обеспечивающий на выходе истинность условия: "T > 70". Методы каких классов могут гарантировать истинность выполнения этого условия?

Р2
Р
Р1
Р3


В классе Р задан эффективный метод М с постусловием "Т > 10". Наследник этого класса Р1 переопределил этот метод, задав соответственно постусловие: ensure then "Т > 20". Класс Р2 - наследник Р1 в свою очередь переопределил этот метод, задав соответственно постусловие: ensure then "Т > 50". Класс Р3 - наследник Р2 в свою очередь переопределил этот метод, задав соответственно постусловие: ensure then "Т > 100". Клиенту требуется вызвать метод, обеспечивающий на выходе истинность условия: "T > 15". Методы каких классов могут гарантировать истинность выполнения этого условия?

Р1
Р2
Р
Р3


В классе Р задан эффективный метод М с постусловием "Т > 10". Наследник этого класса Р1 переопределил этот метод, задав соответственно постусловие: ensure then "Т > 20". Класс Р2 - наследник Р1 в свою очередь переопределил этот метод, задав соответственно постусловие: ensure then "Т > 50". Класс Р3 - наследник Р2 в свою очередь переопределил этот метод, задав соответственно постусловие: ensure then "Т > 100". Клиенту требуется вызвать метод, обеспечивающий на выходе истинность условия: "T > 40". Каково число реализаций метода М, которые могут гарантировать истинность выполнения этого условия?

0
4
2
3
1



Какие утверждения относительно экспорта компонентов класса справедливы в Eiffel?

по умолчанию клиентам класса доступны для чтения все компоненты, но атрибуты класса закрыты для записи
в Eiffel нет возможности запретить клиентам класса доступ к компонентам на чтение атрибутов или вызов метода
Eiffel позволяет клиентам избранных классов – VIP клиентам - разрешить доступ к некоторым компонентам на чтение атрибутов или вызов метода, задав предложение выборочного экспорта в форме feature { F, …G}
Eiffel позволяет полностью запретить доступ к некоторым компонентам, задав предложение выборочного экспорта в форме feature { NONE}


При проектировании программной системы многие классы связываются отношением наследования. Какие утверждения справедливы для наследования?

для класса, создаваемого программистом, в предложении наследования inherit необходимо явно указать класс ANY, играющего роль общего предка
для класса, создаваемого программистом, предложение наследования inherit может быть опущено, в этом случае у класса будет единственный предок – класс ANY
для класса, создаваемого программистом, предложение наследования inherit может быть опущено, в этом случае у класса не будет предков
для каждого класса – библиотечного, предопределенного, создаваемого программистом – существует предопределенный класс, являющийся общим предком


При проектировании программной системы многие классы связываются отношением наследования. Какие утверждения справедливы для наследования?

класс, создаваемый программистом, может не иметь потомков
класс, создаваемый программистом, имеет в качестве потомка класс NONE
единственным экземпляром класса NONE является значение VOID, указывающее на отсутствие объекта
для каждого класса – библиотечного, предопределенного, создаваемого программистом – существует предопределенный класс NONE, являющийся общим потомком


Какие утверждения относительно переименования и переобъявления являются справедливыми?

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


Пусть заданы классы P и F – родители класса S, а M – метод с одним и тем же именем в классах P и F. Какие утверждения в этой ситуации являются справедливыми?

множественное наследование в этом случае возможно и конфликт имен разрешается автоматически, не требуя каких-либо описаний в классе S
если метод M наследован классами P и F от общего родителя и оба класса сохранили реализацию родителя, то конфликт имен разрешается, класс S наследует общий метод М
если метод M наследован классами P и F от общего родителя и оба класса изменили реализацию родителя, то для разрешения конфликта в классе S можно переименовать либо метод М из класса Р, либо метод М из класса F, либо оба метода, создав методы с новыми именами в классе S
множественное наследование в этом случае невозможно из-за конфликта имен


Какие утверждения относительно множественного наследования в Eiffel являются справедливыми?

множественное наследование относится к базисным механизмам языка Eiffel
множественное наследование не допустимо
замена множественного наследования классов множественным наследованием интерфейсов, как это делается в ряде языков программирования (C#, Java), является непрактичным
множественное наследование интерфейсов эквивалентно множественному наследованию классов


Какие утверждения о наследовании являются корректными?

наследование называется п
Внимание !
Вопросы к тесту выложены исключительно в ознакомительных целях: количество вопросов может не совпадать с действительным, актуальность не поддерживается,- за решением теста Welcome to the cashier!

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

только аргументы могут быть открытыми операндами, а цель всегда должна быть закрыта
только цель может быть открытым операндом, а аргументы всегда должны быть закрыты
все операнды могут быть открытыми
все операнды могут быть закрытыми


Что такое лямбда исчисление? Укажите корректные высказывания

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


Композиция функций и – это специальная операция над функциями, которая обозначается как или . Какие утверждения справедливы по отношению к этой операции?

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


Какие утверждения справедливы по отношению к понятию функция?

описывает операцию, выполняемую над объектами, но сама объектом не является
операции над функциями как объектами не применяются
функция может выступать в роли объекта
над функциями, как и над другими объектами, определены операции


Композиция функций и – это специальная операция над функциями, которая обозначается как или ; . Результатом операции является функция , такая что = для любого применимого аргумента x. Какие утверждения справедливы по отношению к функции ?

область определения функции , совпадает с областью определения функции
область определения функции , совпадает с областью определения функции
область значений функции совпадает с областью значений функции
область значений функции совпадает с областью значений функции
область значений функции представляет композицию областей значений функций и


Функции, аргументы которых функциями не являются, назовем функциями первого порядка. Функции, аргументы которых являются функциями, назовем функциями высшего порядка. Функциями порядка k назовем функции, у которых хотя бы один аргумент является функцией порядка k – 1, и у которых нет аргументов более высокого порядка. Какие утверждения справедливы?

в практике программирования используются только функции первого порядка
в лямбда исчислении изучаются только функции первого и второго порядка
в практике программирования широко используются функции любого порядка
в практике программирования широко используются функции первого и второго порядка
в лямбда исчислении изучаются функции любого порядка
в лямбда исчислении изучаются только функции первого порядка


Определим сигнатуру композиции двух функций    следующим  образом:    Какие утверждения справедливы?

множество    задает область определения функции, представляющей результат композиции
множество    задает область определения функции, представляющей результат композиции
множество    задает область значений функции
множество    задает область определения функции
множество    задает область определения функции, представляющей результат композиции
множество    задает область значений функции


Связанные переменные лямбда-выражения это:

аргументы функции
переменные, связанные друг с другом
переменные, на которые наложены дополнительные ограничения
переменные, заданные при описании сигнатуры функции


Какие утверждения справедливы относительно лямбда определения функции:

лямбда определение синтаксически подобно присваиванию. В левой части определения указывается имя переменной функционального типа, в правой – лямбда-выражение. Левую и правую части разделяет знак присваивания
в левой части определения указывается имя переменной функционального типа, в правой – арифметическое выражение
лямбда определение синтаксически подобно присваиванию. В левой части определения указывается имя переменной функционального типа, в правой – лямбда-выражение. Левую и правую части разделяет знак равенства
лямбда определение синтаксически подобно присваиванию. В левой части определения указывается имя переменной любого типа, в правой – лямбда-выражение. Левую и правую части разделяет знак равенства


Какие утверждения справедливы для лямбда-выражения?

частью лямбда-выражения является выражение, задающее определяемую функцию
с помощью лямбда-выражения можно определить только функции одного аргумента
начинается греческой буквой    (лямбда)
задает описание сигнатуры функции - имена аргументов и их типы


Что позволяет карринг при его применении к функции    аргументов?

всегда преобразует исходную функцию в функцию от одного аргумента
преобразовать исходную функцию в функцию от    аргументов
выполнить частичные вычисления, задав значения ряда исходных аргументов, получив в результате функцию от оставшихся аргументов
понизить только на одну единицу число аргументов, превратив исходную функцию в функцию от    аргумента


Примером карринга на практике может служить отношение между компилятором и интерпретатором. Какие высказывания справедливы относительно компилятора и интерпретатора?

компилятор можно рассматривать как функцию двух аргументов, - один из которых задает программу, другой входные данные
интерпретатор можно рассматривать как применение карринга к компилятору
интепретатор можно рассматривать как функцию двух аргументов, - один из которых задает программу, другой входные данные
компилятор можно рассматривать как применение карринга к интерпретатору


Какие утверждения справедливы относительно карринга двухаргументной функции?

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


Какие утверждения справедливы для связанных и свободных переменных выражения:

переменная является связанной в выражении, если существует хотя бы одно ее связанное вхождение в выражение
одна и та же переменная выражения не может быть одновременно как связанной, так и свободной
одна и та же переменная выражения может быть как связанной, так и свободной
переменная является свободной в выражении, если существует хотя бы одно ее свободное вхождение в выражение


Какие утверждения являются справедливыми относительно связанных и свободных вхождений в выражения?

переменная, перечисленная в сигнатуре лямбда-выражения, является связанной в этом выражении
вхождение переменной   в выражение   является связанным, если оно является связанным вхождением в одном из лямбда подвыражений, являющихся частью выражения
любое вхождение связанной переменной в лямбда-выражение является связанным вхождением
вхождение переменной   в выражение   может быть как связанным, так и свободным
вхождение переменной   в выражение   является свободным, если оно не является связанным


Рассмотрим выражение:    Какие утверждения справедливы?

существует связанное вхождение переменной x в выражение
в этом выражении переменная x является связанной
в этом выражении переменная y является связанной
в этом выражении переменная x является свободной
существует свободное вхождение переменной x в выражение
в этом выражении переменная y является свободной


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

если бета-редукция не применима, то устранить причину некорректности невозможно
неприменимость бета-редукции имеет аналогию в программировании – это конфликт имен формальных аргументов метода и полей класса
конфликты имен легко устраняются и в программировании и в лямбда исчислении
если бета-редукция не применима, то возможно устранить причину некорректности путем переименования связанных переменных


Выражение   может быть получено из выражения   путем подстановки – заменой вхождений переменной   подвыражением  . Какие утверждения справедливы относительно подстановки?

при подстановке заменяется одно выбранное вхождение переменой в выражение
при подстановке заменяются только все связанные вхождения переменой в выражение
при подстановке заменяются все вхождения переменой в выражение
при подстановке заменяются только все свободные вхождения переменой в выражение


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

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


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

cуществует трансформация, которая приводит выражение    к 
не существует двух других трансформаций, которые приводили бы выражения  и  к единому выражению 
cуществуют две другие трансформации, которые приводят выражения    и  к единому выражению 
cуществует трансформация, которая приводит выражение  к 


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

новое имя, например  , при условии, что новая переменная   не является зависимой переменной лямбда-выражения
любое другое имя без всяких ограничений на выбор нового имени
новое имя, например  , при условии, что новая переменная   не является свободной переменной лямбда-выражения
новое имя, например  , при условии, что новая переменная   не является свободной и не является зависимой переменной лямбда-выражения. Выполнение этого условия необходимо и достаточно для выполнения альфа преобразования


Пусть дано лямбда-выражение:    При выполнении альфа преобразования можно:

переменной   дать новое имя 
переменной   дать новое имя 
переменной   дать новое имя 
переменной   дать новое имя 
переменной дать новое имя 
переменной дать новое имя


Анонимный метод – это метод?

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


Какие утверждения являются корректными?

каррингом функции из   аргументов называется специализация (задание значений)   аргументов  . В результате карринга функция из   аргументов трансформируется в функцию из  аргументов
процесс переименования связанных переменных лямбда-выражения называется бета-редукцией
связанные переменные лямбда-выражения не являются произвольными именами
теория лямбда исчисления представляет основу понимания агентов
процесс переименования связанных переменных лямбда-выражения называется альфа-преобразованием


Манифестный агент – это агент:

выходящий на манифестации
связанный с методом класса
связанный с анонимным методом, который задается непосредственно в точке определения агента
связанный с методом, для которого задан манифест


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

события могут возникать только во внешнем мире
события внешнего мира не влияют на процесс работы программы
программа находится в режиме ожидания, пока не возникнет очередное событие
события могут возникать как во внешнем мире, так и в процессе работы программы


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

программные события могут быть инициированы в процессе работы программы, как реакция на обработку других событий
только внешний мир может инициировать появление события
всякое событие, инициированное внешним миром, отображается в программное событие
программные сервисы могут вызываться только в ответ на появление программных событий


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

события могут возникать в строго фиксированном модуле программы
порядок возникновения событий строго фиксирован
при проектировании программы создаются сервисы или службы – программные методы, обеспечивающие нужную реакцию на возникающие события
определяющим является понятие "событие", при возникновении которого программа должна реагировать должным образом


Управление событиями, можно рассматривать как некоторую структуру управления, получившую название "издатели – подписчики". Какие утверждения справедливы относительно этой структуры?

подписчики включают события
подписчики получают сообщение о возникшем событии
для получения сообщения о событии необходимо подписаться на событие
издатели получают сообщение о возникшем событии
издатели включают события


Управление событиями, можно рассматривать как некоторую структуру управления, получившую название "издатели – подписчики". Какие утверждения справедливы относительно этой структуры?

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


Управление событиями, можно рассматривать как некоторую структуру управления, получившую название "издатели – подписчики". Какие утверждения справедливы относительно этой структуры?

каждый издатель обязан знать своих подписчиков
подписчики – другие элементы ПО – могут получать сообщения о событиях и обрабатывать события
издатели – элементы ПО – могут включать события
эту структуру можно рассматривать как еще одну управляющую структуру наравне с циклическими структурами и структурами выбора


Какие утверждения справедливы для понятия "сигнатура события"?

сигнатура есть только у некоторых событий
сигнатура события принципиально отличается от сигнатуры методов ПО
каждое событие имеет сигнатуру
сигнатура события эквивалентна сигнатуре методов и состоит из указания имен аргументов события и связанных с ними типов


Как подписчики получают сообщение о событии?

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


Какое утверждение несправедливо относительно понятия "событие"?

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


Какие высказывания справедливы относительно регистрации подписки?

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


Какие высказывания справедливы для процесса регистрации подписки?

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


Что происходит, когда подписчик получает уведомление о событии

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


Какие утверждения справедливы для понятия "контекст события"?

если в ПО есть несколько объектов, которые могут включать события одного типа, то контекст задает тот объект, на события которого производится подписка
контекст можно рассматривать как булевское выражение, задаваемое в момент регистрации подписки на событие
контекст задает текст, окружающий точку включения события
в событиях, связанных с GUI – графическим интерфейсом пользователя, контекст обычно определяет некоторый элемент управления


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

всегда будет вызываться метод, указанный в момент регистрации, обрабатывающий возникшее событие
для командных кнопок можно задать контекст в виде булевского выражения, такого как "курсор установлен на кнопке М"
для командных кнопок невозможно задать контекст в виде булевского выражения
метод, указанный в момент регистрации, будет вызываться только в том случае, если будет истинным условие контекста, заданное в момент регистрации и вычисляемое в момент включения события


Какие утверждения справедливы для понятия "контекст события"?

контекст события – это булевское выражение, задаваемое в момент включения события
контекст события – это булевское выражение, вычисляемое в момент включения события
контекст события – это булевское выражение, задаваемое в момент регистрации подписки
контекст события – это булевское выражение, вычисляемое в момент регистрации подписки


При проектировании ПО следует выделять как отдельные элементы "модель" ПО и "облик" ПО. Какие утверждения справедливы?

облик ПО проектируется в одном экземпляре
модель ПО проектируется в одном экземпляре
модель ПО проектируется, как правило, в нескольких экземплярах
облик ПО проектируется, как правило, в нескольких экземплярах


При проектировании ПО следует выделять как отдельные элементы "модель" ПО и "облик" ПО. Какие утверждения справедливы относительно понятия "модель"? Модель ПО – это:

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


При проектировании ПО следует выделять как отдельные элементы "модель" ПО и "облик" ПО. Какие утверждения справедливы относительно понятия "модель"? Облик ПО – это:

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


При проектировании ПО приходится учитывать два разных аспекта проектирования, - разделяя "модель" и "облик", "издателей" и "подписчиков". Какие утверждения справедливы относительно взаимодействия этих аспектов?

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


При проектировании ПО приходится учитывать два разных аспекта проектирования, - разделяя "модель" и "облик", "издателей" и "подписчиков". Какие утверждения справедливы относительно взаимодействия этих аспектов?

издатели могут включать события, как из-за изменений модели, так и из-за изменений облика
обработка события может быть причиной изменения, как модели, так и облика ПО
взаимодействие элементов модели и элементов облика следует сводить к минимуму
взаимодействие элементов модели и элементов облика следует делать как можно максимальным
издатели могут включать события только в результате изменений модели


При проектировании ПО приходится учитывать два разных аспекта проектирования, - разделять "модель" и "облик", "издателей" и "подписчиков". Какие утверждения справедливы относительно взаимодействия этих аспектов?

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


Одним из известных образцов проектирования является образец (pattern), называемый МОК (Модель – Облик – Контроллер) или MVC (Model – View – Controller). Согласно этому образцу:

модель однозначно определяет свой облик
пользователь обновляет облик
одна и та же модель может быть представлена разными обликами
облик задает представление модели
пользователь может видеть разные облики модели


Одним из известных образцов проектирования является образец (pattern), называемый МОК (Модель – Облик – Контроллер) или MVC (Model – View – Controller). Согласно этому образцу:

пользователь думает в терминах модели
пользователь обновляет облик
пользователь думает в терминах облика
контроллер обновляет облик
модель обновляет облик


Одним из известных образцов проектирования является образец (pattern), называемый МОК (Модель – Облик – Контроллер) или MVC (Model – View – Controller). Согласно этому образцу:

контроллер обновляет модель
пользователь взаимодействует с моделью
пользователь взаимодействует с контроллером
пользователь обновляет модель


Какие утверждения справедливы для образца проектирования "Наблюдатель" (паттерн Observer)?

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


Какие свойства справедливы для образца проектирования?

требует предварительной настройки при решении конкретной задачи
предназначен для решения определенного круга задач
задает архитектуру набора классов, составляющих образец проектирования
каждый класс, входящий в образец проектирования, должен быть полностью определен


Что понимается под образцом проектирования?

класс, допускающий повторное использование
библиотека классов (DLL), допускающая повторное использование
образцово выполненный проект
семейство классов, как правило отложенных, с заданной архитектурой, предназначенных для решения определенного круга задач


Архитектура образца "Наблюдатель" предполагает проектирование двух классов Publisher (Издатель) и Subscriber (Подпичик), которые являются родителями соответствующих семейств классов. Какие утверждения справедливы относительно этих классов?

оба класса проектируются как отложенные классы
класс Subscriber проектируется как эффективный – полностью реализованный класс, а класс Publisher проектируется как отложенный класс
класс Publisher проектируется как эффективный – полностью реализованный класс, а класс Subscriber проектируется как отложенный класс
оба класса проектируются как эффективные – полностью реализованные классы


Архитектура образца "Наблюдатель" включает проектирование класса Publisher (Издатель), который является родителем соответствующего семейства классов. Какие утверждения справедливы относительно этого класса?

класс задает свойства и поведение конкретного издателя
класс является эффективным с полностью заданной реализацией
класс является отложенным
класс задает общие свойства и поведение издателей без учета какой-либо специфики конкретного издателя


Архитектура образца "Наблюдатель" предполагает проектирование:

двух семейств классов
трех семейства классов
четырех семейств классов
одного семейства классов


Какие поля и методы имеет класс Subscriber?

поле subscribers, задающее список подписчиков
метод Unsubscribe, позволяющий отменить подписку у издателя, заданного аргументом метода
метод Subscribe, позволяющий подписаться у издателя, заданного аргументом метода
поле publishers, задающее список издателей


Архитектура образца "Наблюдатель" предполагает проектирование класса Subscriber (Подписчик), который является родителем соответствующего семейства классов. Какие утверждения справедливы относительно этого класса?

класс задает свойства и поведение конкретного подписчика
класс является отложенным
класс задает общие свойства и поведение подписчиков без учета какой-либо специфики конкретного подписчика
класс является эффективным с полностью заданной реализацией


Каким отношением связаны классы Subscriber и Publisher?

класс Publisher является наследником класса Subscriber
класс Publisher является клиентом класса Subscriber
класс Subscriber является клиентом класса Publisher
класс Subscriber является наследником класса Publisher


При описании образца "Наблюдатель" могут применяться две схемы задания аргументов события. Первая предполагает, что аргументы задаются списком, содержащим элементы произвольного типа, заданного параметром ANY. Во второй схеме аргументы задаются в ориентации на конкретный вид сообщения. Какие утверждения справедливы относительно этих двух схем

первая схема носит универсальный характер и может применяться для сообщений с произвольным числом аргументов и произвольными типами, но требует внесения изменений в класс Publisher
первая схема носит универсальный характер и может применяться для сообщений с произвольным числом аргументов и произвольными типами, не требуя внесения изменений ни в класс Publisher, ни в класс Subscriber
первая схема носит универсальный характер и может применяться для сообщений с произвольным числом аргументов и произвольными типами, но требует внесения изменений в классы, являющиеся потомками класса Subscriber, для приведения аргумента, заданного типом ANY к конкретному типу аргумента
вторая схема носит универсальный характер и может применяться для сообщений с произвольным числом аргументов и произвольными типами, не требуя внесения изменений ни в класс Publisher, ни в класс Subscriber
вторая схема требует настройки и внесения изменений в класс Publisher


Какие поля и методы имеет класс Publisher?

метод Unsubscribe, позволяющий отменить подписку подписчика, заданного аргументом метода
поле subscribers, задающее список подписчиков
метод Subscribe, позволяющий подписать подписчика, заданного аргументом метода
поле publishers, задающее список издателей


Какой из методов класса Publisher существует в нескольких вариантах?

Unsubscribe
Subscribe
Publish
Subscribed


При описании образца "Наблюдатель" могут применяться две схемы задания аргументов события. Первая предполагает, что аргументы задаются списком, содержащим элементы произвольного типа, заданного параметром ANY. Во второй схеме аргументы задаются в ориентации на конкретный вид сообщения. Какие утверждения справедливы относительно этих двух схем

первая схема носит универсальный характер и может применяться для сообщений с произвольным числом аргументов и произвольными типами, не требуя внесения изменений ни в класс Publisher, ни в класс Subscriber
первая схема носит универсальный характер и может применяться для сообщений с произвольным числом аргументов и произвольными типами, но требует внесения изменений в класс Publisher
вторая схема требует настройки и внесения изменений в класс Publisher
первая схема носит универсальный характер и может применяться для сообщений с произвольным числом аргументов и произвольными типами, но требует внесения изменений в классы, являющиеся потомками класса Subscriber, для приведения аргумента, заданного типом ANY к конкретному типу аргумента
вторая схема носит универсальный характер и может применяться для сообщений с произвольным числом аргументов и произвольными типами, не требуя внесения изменений ни в класс Publisher, ни в класс Subscriber


Какой из методов не входит в интерфейс класса EVENT_TYPE?

Unsubscribe
Subscribe
Handle
Publish


Образец "Наблюдатель" имеет серьезные недостатки. Поэтому в таких языках, как Eiffel, где есть такие средства как агенты и кортежи, можно использовать при работе с событиями другой образец, основанный на классе EVENT_TYPE. Какие утверждения справедливы для этого класса?

класс играет роль класса Publisher, но для подписки необходим еще один класс – аналог класса Subscriber
это единственный класс, лежащий в основе нового образца
методы класса позволяют осуществлять как публикацию сообщения, так и подписку на событие, а также отмену подписки
класс играет роль класса Subscriber, но для публикации необходим еще один класс – аналог класса Publisher


Какие утверждения о недостатках, характерных для образца "Наблюдатель", являются справедливыми?

связи между классами Subscriber и Publisher жесткие, - издатели знают своих подписчиков, подписчики знают издателей
обе схемы задания аргументов события, применяемые в образце "Наблюдатель", имеют серьезные недостатки
возможность применения двух схем аргументов обеспечивает гибкость и свободу выбора, облегчая разработку конкретного проекта
связи между классами Subscriber и Publisher слабые, - издатели не знают своих подписчиков, подписчики не знают издателей, что мешает их взаимодействию


Какие утверждения справедливы относительно класса EVENT_TYPE, задающего описание типа события?

класс не является универсальным и имеет один аргумент типа ANY
класс является универсальным и имеет один аргумент типа ARGUMENTS
класс является универсальным и имеет один аргумент типа ANY
класс является универсальным и имеет один аргумент типа ARGUMENTS->TUPLE с ограничением наследования, требующим, чтобы аргументы представляли кортеж


Где следует объявлять событие?

событие всегда следует объявлять в классе, задающем издателя
если событие зависит от контекста, то его следует объявлять в каждом классе, задающем контекст
событие всегда следует объявлять в классе, задающем подписчика
если событие не зависит от контекста, то его следует объявлять в классе, доступном как издателю, публикующего событие, так и подписчикам события


Пусть в интерфейсе пользователя заданы 5 командных кнопок класса Button и три пункта меню класса Menu. Для всех этих элементов возможно событие Click. Сколько объектов, задающих событие Click, следует создать?

3
1
2
8
5


В образце МОК (MVC) класс EVENT_TYPE:

является частью контроллера
является частью модели
является частью облика
не используется


Какие утверждения являются справедливыми относительно контроллера в модели МОК (MVC)?

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


Какие утверждения являются справедливыми относительно списка подписчиков для образца, связанного с классом EVENT_TYPE?

список subscribers теперь не нужен
список subscribers по-прежнему существует и содержит, как и ранее, объекты, задающие подписчиков
список subscribers по-прежнему существует, но теперь он включает агентов, задающих процедуры обработки события
список subscribers объявляется в каждом классе, задающем издателя
список subscribers является компонентом класса EVENT_TYPE


При подписке на событие выполнялся следующий оператор:

my_button.my_click.subscribe(agent my_method) Какие утверждения является корректными?
объект my_ method задает обработчик события
объект my_ method задает контекст события
объект my_button задает событие
объект my_ click задает событие
объект my_button задает контекст события
объект my_ click задает контекст события


При подписке на событие выполнялся следующий оператор: left_click.subscribe(agent my_method) Какие утверждения является корректными?

объект my_ method задает событие
объект left_click задает событие
объект left_click задает контекст события
объ
Вы можете обратится к нам напрямую, через:

skype По Skype: molodoyberkut
telegram По Telegram: @MolodoyBerkut
icq По ICQ: 657089516

Или через форму обратной связи на нашем сайте
Пока сочиняется...
4.png