игра брюс 2048
Главная / Программирование / Объектно-ориентированное программирование и программная инженерия / Тест 5

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

Упражнение 1:
Номер 1
Основная операция в ООП – это операция вызова x.M(…). Здесь x – это объект – цель вызова. Метод М задает операцию, применяемую к объекту x. Какие утверждения о методах и объектах являются справедливыми?

Ответ:

 (1) метод описывает операцию, применимую к объекту 

 (2) объект вызывает метод 

 (3) метод не может быть объектом 

 (4) объект может быть методом 


Номер 2
Какие выражения синтаксически корректны в Eiffel?

Ответ:

 (1) agent James_Bond 

 (2) agent 007 

 (3) agent x 

 (4) agent Iren & agent John 


Номер 3
Какие утверждения справедливы по отношению к записи agent N?

Ответ:

 (1) представляет выражение 

 (2) представляет оператор 

 (3) в этой записи N – это объект класса N 

 (4) в этой записи N – это некоторый метод 


Упражнение 2:
Номер 1
Какие утверждения справедливы относительно метода call в языке Eiffel?

Ответ:

 (1) применим ко всем агентам 

 (2) имеет один аргумент, представляющий кортеж 

 (3) позволяет вызывать метод, связанный с агентом, только в том случае, если вызываемый метод имеет ровно один аргумент 

 (4) позволяет вызывать связанный с агентом метод, число аргументов у которого произвольно 


Номер 2
Пусть присваивание x := agent N корректно выполняется в программе на Eiffel . Какие утверждения корректны относительно вызова x.call([y,z])?

Ответ:

 (1) этот вызов заведомо не корректен 

 (2) означает вызов метода N, которому передаются два аргумента – y и z 

 (3) означает вызов метода call, которому передаются два аргумента – y и z 

 (4) эквивалентен вызову N(x,y) 


Номер 3
Пусть присваивание x := agent N корректно выполняется в программе на Eiffel . Какие операторы вызова заведомо не корректны?

Ответ:

 (1) x.call([y,z]) 

 (2) N.call([y,z]) 

 (3) x(y,z) 

 (4) N(x,y) 


Упражнение 3:
Номер 1
Механизм агентов находит широкое применение в различных приложениях. Укажите приложения, для которых показано, как применять агентов:

Ответ:

 (1) итерирование – применение операции, заданной агентом, к данным контейнера 

 (2) численное интегрирование – вычисление интеграла, где агент задает подынтегральную функцию 

 (3) механизм отката redo – undo, где агенты задают действия, выполняемые при повторах и откатах 

 (4) механизм наследования, где агент задает потомка класса 

 (5) механизм событий, где агент задает действие, выполняемое при обработке возникающего события 


Номер 2
Что можно делать с агентами?

Ответ:

 (1) задать определение агента, связав агент с методом 

 (2) задать реализацию метода call 

 (3) вызвать метод call, который в свою очередь вызовет метод агента 

 (4) создать агента, используя конструктор класса агента 


Номер 3
Пусть z переменная и выполнено присваивание z := r. Что справедливо при вызове z.call([x, y])?

Ответ:

 (1) в точке вызова всегда известно, какой метод будет вызван 

 (2) в точке вызова никогда неизвестно, какой метод будет вызван 

 (3) в точке вызова может быть вызван любой метод 

 (4) вызываемый метод, связанный с агентом, должен иметь определенную сигнатуру 


Упражнение 4:
Номер 1
Когда механизм агентов применяется для обработки событий, то:

Ответ:

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

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

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

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


Номер 2
При численном вычислении интегралов механизм агентов:

Ответ:

 (1) не применим 

 (2) применим при вычислении определенных однократных интегралов 

 (3) применим при вычислении определенных двойных интегралов 

 (4) применим при вычислении определенных интегралов любой кратности 

 (5) применим при вычислении неопределенных интегралов 


Номер 3
В каких ситуациях при итерировании контейнерной структуры применим механизм агентов?

Ответ:

 (1) нужно обойти структуру и для каждого элемента выполнить определенную операцию 

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

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

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


Упражнение 5:
Номер 1
Механизм агентов с успехом применяется в ряде ситуаций. Какие утверждения справедливы? Можно ли при итерировании заменить этот механизм?

Ответ:

 (1) нельзя и приходится отказываться от итерирования 

 (2) можно, - встраивая каждую операцию в схему итерирования и дублируя, тем самым, код итерирования 

 (3) можно, используя механизм наследования и образец "много маленьких оберток", когда класс представляет обертку одного метода – операции, выполняемой над элементами контейнера 

 (4) механизм наследования в этой ситуации не применим 


Номер 2
Механизм агентов с успехом применяется в ряде ситуаций. Какие утверждения справедливы? Можно ли при численном интегрировании заменить этот механизм?

Ответ:

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

 (2) нельзя, иначе придется отказаться от интегрирования 

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

 (4) механизм наследования в этой ситуации не применим 


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

Ответ:

 (1) нельзя, иначе придется отказаться от возможности отката 

 (2) можно, если полностью сохранять состояние, предшествующее каждой выполняемой команде и при откатах восстанавливать это состояние 

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

 (4) механизм наследования в этой ситуации не применим 


Упражнение 6:
Номер 1
Когда выполняется присваивание x := agent r, то переменная x должна принадлежать специальному типу, часто называемому функциональным, поскольку объектами этого типа являются функции и процедуры. В Eiffel этот тип задается классом ROUTINE и тремя его потомками – классами PROCEDURE, FUNCTION, PREDICATE. Какой из этих классов обозначает запросы, за исключением запросов, возвращающих тип BOOLEAN?

Ответ:

 (1) ROUTINE 

 (2) PROCEDURE 

 (3) FUNCTION 

 (4) PREDICATE 


Номер 2
Когда выполняется присваивание x := agent r, то переменная x должна принадлежать специальному типу, часто называемому функциональным, поскольку объектами этого типа являются функции и процедуры. В Eiffel этот тип задается классом ROUTINE и тремя его потомками – классами PROCEDURE, FUNCTION, PREDICATE. Какой из этих классов обозначает запросы, возвращающие тип BOOLEAN?

Ответ:

 (1) ROUTINE 

 (2) PROCEDURE 

 (3) FUNCTION 

 (4) PREDICATE 


Номер 3
Когда выполняется присваивание x := agent r, то переменная x должна принадлежать специальному типу, часто называемому функциональным, поскольку объектами этого типа являются функции и процедуры. В Eiffel этот тип задается классом ROUTINE и тремя его потомками – классами PROCEDURE, FUNCTION, PREDICATE. Какой из этих классов задает агентов, связанных с командами?

Ответ:

 (1) ROUTINE 

 (2) PROCEDURE 

 (3) FUNCTION 

 (4) PREDICATE 


Упражнение 7:
Номер 1
Какой метод наследуют классы PROCEDURE, FUNCTION, PREDICATE от родительского класса ROUTINE?

Ответ:

 (1) call 

 (2) last_result 

 (3) item 

 (4) entry 


Номер 2
Какие методы определены в классе FUNCTION?

Ответ:

 (1) call 

 (2) last_result 

 (3) item 

 (4) entry 


Номер 3
У какого из трех классов PROCEDURE, FUNCTION, PREDICATE три родовых параметра?

Ответ:

 (1) ROUTINE 

 (2) PROCEDURE 

 (3) FUNCTION 

 (4) PREDICATE 


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

Ответ:

 (1) все операнды могут быть открытыми 

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

 (3) все операнды могут быть закрытыми 

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


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

Ответ:

 (1) операнд агента открыт, если при его определении он задается знаком вопроса 

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

 (3) если операнд агента открыт, то его значения задаются в методе, связанном с агентом 

 (4) операнд агента закрыт, если при определении агента значение операнда не задано 

 (5) операнд агента закрыт, если при определении агента задано значение операнда 


Номер 3
Что обозначает агентное выражение agent g(a, ?, b)?

Ответ:

 (1) выражение, в записи которого допущена синтаксическая ошибка 

 (2) Функцию с тремя аргументами, реализация которой отложена и требует дальнейшего уточнения 

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

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




Главная / Программирование / Объектно-ориентированное программирование и программная инженерия / Тест 5