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

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

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

Ответ:

 (1) наука, изучающая специальный вид червей 

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

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

 (4) наука, изучающая специальный вид функций 


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

Ответ:

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

 (2) функция может выступать в роли объекта 

 (3) операции над функциями как объектами не применяются 

 (4) над функциями, как и над другими объектами, определены операции 


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

Ответ:

 (1) операция применяется художниками при построении композиции изображаемой картины 

 (2) это некоторая функция от двух аргументов. Аргументы и результат этой функции являются функциями 

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

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


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

Ответ:

 (1) область значений функции math совпадает с областью значений функции math 

 (2) область значений функции math совпадает с областью значений функции math 

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

 (4) область определения функции math, совпадает с областью определения функции math 

 (5) область определения функции math, совпадает с областью определения функции math 


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

Ответ:

 (1) множество math задает область определения функции math 

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

 (3) множество math задает область значений функции math 

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

 (5) множество math задает область значений функции math 

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


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

Ответ:

 (1) в практике программирования используются только функции первого порядка 

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

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

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

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

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


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

Ответ:

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

 (2) переменные, связанные друг с другом 

 (3) аргументы функции 

 (4) переменные, заданные при описании сигнатуры функции 


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

Ответ:

 (1) начинается греческой буквой math (лямбда) 

 (2) задает описание сигнатуры функции - имена аргументов и их типы 

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

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


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

Ответ:

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

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

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

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


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

Ответ:

 (1) область определения функции расширяется 

 (2) область определения функции сужается 

 (3) функция становится одноаргументной 

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

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


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

Ответ:

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

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

 (3) компилятор можно рассматривать как применение карринга к интерпретатору 

 (4) интерпретатор можно рассматривать как применение карринга к компилятору 


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

Ответ:

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

 (2) всегда преобразует исходную функцию в функцию от одного аргумента 

 (3) преобразовать исходную функцию в функцию от math аргументов 

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


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

Ответ:

 (1) в этом выражении переменная y является свободной 

 (2) в этом выражении переменная y является связанной 

 (3) в этом выражении переменная x является свободной 

 (4) в этом выражении переменная x является связанной 

 (5) существует свободное вхождение переменной x в выражение 

 (6) существует связанное вхождение переменной x в выражение 


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

Ответ:

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

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

 (3) одна и та же переменная выражения может быть как связанной, так и свободной 

 (4) одна и та же переменная выражения не может быть одновременно как связанной, так и свободной 


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

Ответ:

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

 (2) любое вхождение связанной переменной в лямбда-выражение является связанным вхождением 

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

 (4) вхождение переменной math в выражение math является свободным, если оно не является связанным 

 (5) вхождение переменной math в выражение math может быть как связанным, так и свободным 


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

Ответ:

 (1) при подстановке заменяются все вхождения переменой в выражение 

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

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

 (4) при подстановке заменяется одно выбранное вхождение переменой в выражение 


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

Ответ:

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

 (2) бета-редукция всегда применима 

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

 (4) в этом примере math бета-редукция не применима 


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

Ответ:

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

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

 (3) неприменимость бета-редукции имеет аналогию в программировании – это конфликт имен формальных аргументов метода и полей класса 

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


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

Ответ:

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

 (2) cуществуют две другие трансформации, которые приводят выражения math и math к единому выражению math 

 (3) cуществует трансформация, которая приводит выражение math к math 

 (4) cуществует трансформация, которая приводит выражение math к math 


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

Ответ:

 (1) переменной math дать новое имя math 

 (2) переменной math дать новое имя math 

 (3) переменной math дать новое имя math 

 (4) переменной math дать новое имя math 

 (5) переменной math дать новое имя math 

 (6) переменной math дать новое имя math 


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

Ответ:

 (1) любое другое имя без всяких ограничений на выбор нового имени 

 (2) новое имя, например math, при условии, что новая переменная math не является свободной переменной лямбда-выражения 

 (3) новое имя, например math, при условии, что новая переменная math не является зависимой переменной лямбда-выражения 

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


Упражнение 8:
Номер 1
Манифестный агент – это агент:

Ответ:

 (1) выходящий на манифестации 

 (2) связанный с методом класса 

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

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


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

Ответ:

 (1) никому не известный 

 (2) определенный в анонимном классе 

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

 (4) который может не быть частью класса, но определен при задании контракта класса 


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

Ответ:

 (1) теория лямбда исчисления представляет основу понимания агентов 

 (2) связанные переменные лямбда-выражения не являются произвольными именами 

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

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

 (5) процесс переименования связанных переменных лямбда-выражения называется альфа-преобразованием 




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