игра брюс 2048
Главная / Искусственный интеллект и робототехника / Введение в генерацию программного кода / Тест 4

Введение в генерацию программного кода - тест 4

Упражнение 1:
Номер 1
Технология T4 это

Ответ:

 (1) объектная модель документа 

 (2) язык преобразований XSL 

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

 (4) приложение, выполняющее генерацию кода 


Номер 2
Какие виды блоков применяются в шаблонах T4?

Ответ:

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

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

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

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


Номер 3
Какие виды директив применяются в шаблонах T4?

Ответ:

 (1) template, parameter, output, assembly, import, include, пользовательские директивы 

 (2) template, parameter, output, assembly, import, print, include, пользовательские директивы 

 (3) template, parameter, language, output, assembly, import, include, пользовательские директивы 

 (4) template, parameter, output, assembly, import, include, extension, пользовательские директивы 


Упражнение 2:
Номер 1
Блок кода это:

Ответ:

 (1) часть шаблона, содержащая выражение и заключенная между знаками <#= и #> 

 (2) часть шаблона, содержащая метод и заключенная между знаками <#+ и #> 

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

 (4) часть шаблона, содержащая код на языке C# или Visual Basic и заключенная между знаками <#% и #> 


Номер 2
Блок выражений это:

Ответ:

 (1) часть шаблона, содержащая программный код и заключенная между знаками <# и #> 

 (2) часть шаблона, содержащая выражение и заключенная между знаками <#= и #> 

 (3) часть шаблона, содержащая метод и заключенная между знаками <#+ и #> 

 (4) часть шаблона, содержащая код на языке C# или Visual Basic и заключенная между знаками <#% и #> 


Номер 3
Блок вспомогательных методов это:

Ответ:

 (1) часть шаблона, содержащая программный код и заключенная между знаками <# и #> 

 (2) часть шаблона, содержащая выражение и заключенная между знаками <#= и #> 

 (3) часть шаблона, содержащая код на языке C# или Visual Basic и заключенная между знаками <#% и #> 

 (4) часть шаблона, содержащая метод и заключенная между знаками <#+ и #> 


Упражнение 3:
Номер 1
Блок директив это:

Ответ:

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

 (2) это блок кода, вспомогательных методов и выражений 

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

 (4) часть шаблона, содержащая вспомогательный метод и заключенная между знаками <#& и #> 


Номер 2
Текстовый блок это:

Ответ:

 (1) часть шаблона, содержащая правила его обработки и заключенная между знаками <#@ и #> 

 (2) это блок кода, вспомогательных методов и выражений 

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

 (4) часть шаблона, содержащая вспомогательный метод и заключенная между знаками <#& и #> 


Номер 3
Управляющие блоки это:

Ответ:

 (1) часть шаблона, содержащая правила его обработки и заключенная между знаками <#@ и #> 

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

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

 (4) это блоки кода, вспомогательных методов и выражений 


Упражнение 4:
Номер 1
Какое назначение у директивы template:

Ответ:

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

 (2) указывает правила обработки файла шаблона 

 (3) указывает расширение и кодировку выходного файла 

 (4) указывает, является ли файл шаблоном 


Номер 2
Какое назначение у директивы parameter в технологии T4:

Ответ:

 (1) указывает правила обработки файла шаблона 

 (2) указывает расширение и кодировку выходного файла 

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

 (4) указывает, имеет ли файл параметры 


Номер 3
Какое назначение у директивы output:

Ответ:

 (1) указывает правила обработки файла шаблона 

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

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

 (4) указывает расширение и кодировку выходного файла 


Упражнение 5:
Номер 1
Какое назначение у директивы assembly:

Ответ:

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

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

 (3) включает в шаблон содержимое другого файла 

 (4) заключает содержимое данного шаблона внутрь содержимого другого шаблона 


Номер 2
Какое назначение у директивы import:

Ответ:

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

 (2) включает в шаблон содержимое другого файла 

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

 (4) импортирует в шаблон пространства имен и позволяет использовать простые имена классов вместо полных имен 


Номер 3
Какое назначение у директивы include:

Ответ:

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

 (2) импортирует в шаблон пространства имен и позволяет использовать простые имена классов вместо полных имен 

 (3) включает в шаблон содержимое другого файла 

 (4) заключает содержимое данного шаблона внутрь содержимого другого шаблона 


Упражнение 6:
Номер 1
Укажите назначение данной директивы
  
<#@ template debug="false" hostspecific="true" language="C#" #>
  
  

Ответ:

 (1) требуется отладка шаблона, нужен доступ к службам Visual Studio, в коде шаблона используется язык C# 

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

 (3) отладка шаблона не требуется, нужен доступ к службам Visual Studio, в коде шаблона используется язык C# 

 (4) отладка шаблона не требуется, доступ к службам Visual Studio не нужен, в коде шаблона используется язык C# 


Номер 2
В состав шаблона включены следующие директивы. Укажите их назначение
  
<#@ output extension=".cs" #>
<#@ assembly name="System.Xml"#>
<#@ import namespace="System.Xml" #>
  
  

Ответ:

 (1) код внутри шаблона написан на языке C#, включена сборка System.Xml, к ее классам можно обращаться по короткому имени 

 (2) выходной файл имеет расширение ".cs", включена сборка System.Xml, импортировано пространство имен System.Xml 

 (3) выходной файл имеет расширение ".cs", включена сборка System.Xml, в шаблон включен файл "System.Xml" 

 (4) генерируется код на языке C#, включена сборка System.Xml, к ее классам можно обращаться по короткому имени 


Номер 3
В состав шаблона включены следующие директивы. Укажите их назначение
  
<#@ template hostspecific="true" language="C#" #>
<#@ output extension=".txt" #>
  
  

Ответ:

 (1) требуется доступ к API Visual Studio, выходной файл имеет расширение ".txt" и является кодом на языке C#, 

 (2) код внутри шаблона написан на языке C#, результат является текстовым файлом 

 (3) генерируется код на языке C#, доступ к API Visual Studio не требуется, выходной файл имеет расширение ".txt" 

 (4) код внутри шаблона написан на языке C#, требуется доступ к API Visual Studio, выходной файл имеет расширение ".txt" 


Упражнение 7:
Номер 1
Как работают шаблоны T4?

Ответ:

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

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

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

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


Номер 2
Какие методы позволяют установить отступы в результирующем тексте?

Ответ:

 (1) PushIndent, PopIndent, ResetIndent 

 (2) PushIndent, PopIndent, ClearIndent 

 (3) AddIndent, RemoveIndent, RemoveAllIndent 

 (4) AddIndent, RemoveIndent, ClearIndent 


Номер 3
Выберите верное утверждение:

Ответ:

 (1) PushIndent и PopIndent служат для добавления и удаления одного отступа в/из стека отступов 

 (2) AddIndent и RemoveIndent служат для добавления и удаления одного отступа в/из стека отступов 

 (3) ClearIndent служит для очистки стека отступов 

 (4) ResetIndent служит для очистки стека отступов 

 (5) RemoveAllIndent служит для очистки стека отступов 


Упражнение 8:
Номер 1
Какие есть возможности расширения функциональности T4?

Ответ:

 (1) создание собственного хоста 

 (2) включение в шаблон других шаблонов 

 (3) предоставление нового базового класса. 

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


Номер 2
Что относится к плюсам применения технологии T4?

Ответ:

 (1) возможность расширения функциональности T4 

 (2) шаблон предназначен для создания одного файла 

 (3) возможность генерации любой текстовой информации 

 (4) наглядность и простота шаблонов 


Номер 3
Что относится к минусам применения технологии T4?

Ответ:

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

 (2) шаблон T4 изначально предназначен для создания только одного файла 

 (3) шаблоны T4 поддерживают два языка - C# и Visual Basic 

 (4) в некоторых случаях шаблоны будут очень сложными 

 (5) зависимость от дальнейшей поддержки технологии T4 


Упражнение 9:
Номер 1
Что будет результатом выполнения следующего шаблона?
  
<#GetMonthName(2);
GetMonthName(-1);
GetMonthName(7);
GetMonthName(13);
#>
<#+ public void GetMonthName(int a)
{
  if(a>2&&a<6) WriteLine("\t\tВесенний месяц");
  if(a>5&&a<9) WriteLine("\t\t\tЛетний месяц");
  if(a>8&&a<12) WriteLine("\t\t\t\tОсенний месяц");
  if(a>0&&a<3||a>11) WriteLine("\tЗимний месяц");
}#>
  
  

Ответ:

 (1) Зимний месяц Зимний месяц Летний месяц Зимний месяц  

 (2) Зимний месяц Летний месяц Зимний месяц  

 (3) Зимний месяц Летний месяц  

 (4) Зимний месяц Зимний месяц Летний месяц  


Номер 2
Что будет результатом выполнения следующего шаблона?
  
<#GetMonthName(3);
GetMonthName(15);
GetMonthName(9);
GetMonthName(0);
#>
<#+ public void GetMonthName(int a)
{
  if(a>2&&a<6) PutMonth(2,"Весенний месяц");
  if(a>5&&a<9) PutMonth(3,"Летний месяц");
  if(a>8&&a<12) PutMonth(4,"Осенний месяц");
  if(a>0&&a<3||a==12) PutMonth(1,"Зимний месяц");
  if(a<1||a>12) PutMonth(0,"Нет такого месяца");
}#>
<#+ public void PutMonth(int n, string s)
{
  for(int i=0;i<n;i++) Write("\t");
  WriteLine(s);
}#>
  
  

Ответ:

 (1) Весенний месяц Нет такого месяца Осенний месяц Нет такого месяца  

 (2) Весенний месяц Нет такого месяца Осенний месяц  

 (3) Весенний месяц Осенний месяц  

 (4) Весенний месяц Осенний месяц Нет такого месяца  


Номер 3
Что будет результатом выполнения следующего шаблона?
  
<#GetMonthName(1);
GetMonthName(3);
GetMonthName(7);
GetMonthName(11);
GetMonthName(13);
GetMonthName(12);
#>
<#+ public void GetMonthName(int a)
{
  if(a>2&&a<6) {PushIndent("\t\t"); WriteLine("Весна");}
  if(a>5&&a<9) {PopIndent(); WriteLine("Лето");}
  if(a>8&&a<12) {PopIndent(); WriteLine("Осень");PushIndent("\t");}
  if(a>0&&a<3||a==12) {PushIndent("\t"); WriteLine("Зима");}
  if(a<1||a>12) {ClearIndent(); WriteLine("Ошибка");}
}#>
  
  

Ответ:

 (1) Зима Весна Лето Осень Ошибка Зима  

 (2) Зима Весна Лето Осень Ошибка Зима  

 (3) Зима Весна Лето Осень Ошибка Зима  

 (4) Зима Весна Лето Осень Ошибка Зима  




Главная / Искусственный интеллект и робототехника / Введение в генерацию программного кода / Тест 4