игра брюс 2048
Главная / Программирование / Основы программирования на языке Visual Prolog / Тест 13

Основы программирования на языке Visual Prolog - тест 13

Упражнение 1:
Номер 1
Пусть грамматика имеет вид: d ::= dd | [(]d[)] | empty, где empty – пустое слово, в квадратных скобках написаны терминальные символы. Укажите те из перечисленных ниже слов, которые из нее выводятся:

Ответ:

 (1) () 

 (2) (())()() 

 (3) )()() 

 (4) )))((( 


Номер 2
Пусть грамматика имеет вид: d ::= dd | d[a] | [b], где в квадратных скобках написаны терминальные символы. Укажите те из перечисленных ниже слов, которые из нее выводятся:

Ответ:

 (1) a 

 (2) ab 

 (3) baa 

 (4) bbb 


Номер 3
Пусть грамматика имеет вид: d ::= dd | [a]d[a] | [b], где в квадратных скобках написаны терминальные символы. Укажите те из перечисленных ниже слов, которые из нее выводятся:

Ответ:

 (1) aabaa 

 (2) aa 

 (3) baa 

 (4) abba 


Упражнение 2:
Номер 1
В результате вызова string::frontToken("  Karl  meets Carla.", X, Y)переменные X и Y примут значения:

Ответ:

 (1) X = "Karl", Y = " meets Carla." 

 (2) X = " Karl", Y = " meets Carla." 

 (3) X = "Karl", Y = "meets Carla." 

 (4) X = "Karl", Y = "meets" 


Номер 2
В результате вызова string::frontToken("  23  +  5", X, Y) переменные X и Y примут значения:

Ответ:

 (1) X = " 2", Y = "3 + 5" 

 (2) X = " 23", Y = " + 5" 

 (3) X = "23", Y = " + 5" 

 (4) X = "23", Y = "+ 5" 


Номер 3
В результате вызова string::frontToken("  f(g(  a  ))", X, Y) переменные X и Y примут значения:

Ответ:

 (1) X = "f(g(", Y = "a ))" 

 (2) X = " f", Y = "(g( a ))" 

 (3) X = "f(g(", Y = " a ))" 

 (4) X = "f", Y = "(g( a ))" 


Упражнение 3:
Номер 1
Определение предиката scan имеет вид:scan(S) = [Tok | scan(Rest)]:- string::frontToken(S, Tok, Rest), !.
		scan(_) = [].
 Какое значение примет переменная S в результате вызова S = scan("f(g(1)).")?

Ответ:

 (1) S = ["f(g(1))", "."] 

 (2) S = ["f(g(1))."] 

 (3) S = ["f", "(", "g", "(", "1", ")", ")"] 

 (4) S = ["f", "(", "g", "(", "1", ")", ")", "."] 


Номер 2
Определение предиката scan имеет вид:scan(S) = [Tok | scan(Rest)]:- string::frontToken(S, Tok, Rest), !.
		scan(_) = [].
 Какое значение примет переменная S в результате вызова S = scan(" 20 + 2! ")?

Ответ:

 (1) S = ["20 + 2!"] 

 (2) S = ["20", "+", "2!"] 

 (3) S = ["20", "+", "2", "!"] 

 (4) S = ["2", "0", "+", "2", "!"] 


Номер 3
Определение предиката scan имеет вид:scan(S) = [Tok | scan(Rest)]:- string::frontToken(S, Tok, Rest), !.
		scan(_) = [].
 Какое значение примет переменная S в результате вызова S = scan(" The cat likes it. ")?

Ответ:

 (1) S = ["The cat", "likes", "it", "."] 

 (2) S = ["The", "cat", "likes", "it", "."] 

 (3) S = ["The", "cat", "likes", "it"] 

 (4) S = ["The", "cat", "likes", "it."] 


Упражнение 4:
Номер 1
Вне имплементации класса b могут вызываться предикаты, объявленные:

Ответ:

 (1) в имплементации класса b 

 (2) в имплементации класса b 

 (3) в декларации класса b и в имплементации класса b 

 (4) в имплементации класса-наследника 


Номер 2
Определение предиката пишется:

Ответ:

 (1) в имплементации класса 

 (2) в декларации класса 

 (3) в декларации класса и в имплементации класса 

 (4) в декларации класса-наследника 


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

Ответ:

 (1) в имплементации класса 

 (2) только в декларации класса 

 (3) в интерфейсе или в декларации класса  

 (4) только в интерфейсе 


Упражнение 5:
Номер 1
В языке Visual Prolog классы могут порождать объекты

Ответ:

 (1) тогда и только тогда, когда они имеют интерфейс 

 (2) когда они не имеют интерфейса 

 (3) независимо от того, имеют они интерфейс или нет 

 (4) классы не могут порождать объекты в Visual Prolog 


Номер 2
В языке Visual Prolog предикаты, объявленные в декларации класса

Ответ:

 (1) не должны иметь определения 

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

 (3) должны быть определены в той же декларации класса 

 (4) определяются в имплементации этого же класса 


Номер 3
Отметьте все верные утверждения. В языке Visual Prolog

Ответ:

 (1) имеются средства для отладки 

 (2) нет средств для отладки 

 (3) можно создавать модули 

 (4) новые пакеты можно создавать только в GUI-приложениях 


Упражнение 6:
Номер 1
Определение класса b с интерфейсом b имеет вид:	interface b
			properties  a : integer.
		end interface b
		class b : b
			predicates  counter : () -> integer.
		end class b
		implement b
			facts  a : integer := 0.
			class facts  n : integer := 0.
			clauses  new():- n := n + 1.
				counter() = n.
end implement b
 Какое число будет напечатано в результате вызова цели X = b::new(), X:a := 2, Y = b::new(), Y:a := X:a + 1, stdio::write(X:a+Y:a+b::counter())?

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 2
Определение класса b с интерфейсом b имеет вид:interface b
			properties  a : integer.
		end interface b
		class b : b
		end class b
		implement b
			facts a : integer := 0.
		end implement b
 Какое число будет напечатано в результате вызова цели X = b::new(), X:a := 2, Y = b::new(), Y:a := X:a + 1, stdio::write(X:a+Y:a+5) ?

Ответ:

 (1)

 (2)

 (3) 10 

 (4)


Номер 3
Определение класса b с интерфейсом b имеет вид:interface b
			properties  a : integer.
		end interface b
		class b : b
			predicates  counter : () -> integer.
		end class b
		implement b
			facts  a : integer := 0.
			class facts  n : integer := 0.
			clauses  new():- n := n + 1, a := 1 - a.
				counter() = n.
end implement b
 Какое число будет напечатано в результате вызова цели X = b::new(),Y = b::new(), stdio::write(X:a + Y:a + b::counter())?

Ответ:

 (1)

 (2)

 (3)

 (4)


Упражнение 7:
Номер 1
Если пространство состояний моделируется в виде графа, то обычно:

Ответ:

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

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

 (3) состояниям и переходам между ними соответствуют ребра 

 (4) состояниям и переходам между ними соответствуют вершины 


Номер 2
Состояниям на графе пространства состояний обычно соответствуют:

Ответ:

 (1) ребра 

 (2) вершины 

 (3) концевые вершины 

 (4) пути 


Номер 3
Если для решения задачи используется граф пространства состояний, то решение является 

Ответ:

 (1) его вершиной 

 (2) его ребром 

 (3) его подграфом 

 (4) путем, соединяющим начальное состояние с конечным 


Упражнение 8:
Номер 1
Отметьте верное утверждение. Поиск в глубину на графе пространства состояний обычно используется: 

Ответ:

 (1) если пространство состояний очень велико 

 (2) для поиска кратчайших путей 

 (3) если пространство состояний не слишком велико 

 (4) если другими способами найти решение не удается 


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

Ответ:

 (1) для поиска всех решений, даже если пространство велико 

 (2) для поиска одного из оптимальных решений 

 (3) если пространство состояний очень мало 

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


Номер 3
Отметьте верное утверждение. Состояние в задаче о перевозке через реку полностью описывается парой, содержащей

Ответ:

 (1) множества существ на одном берегу и на другом 

 (2) множества существ на одном из берегов и в лодке 

 (3) множество существ в лодке и местоположение лодки 

 (4) множество существ на левом берегу и местоположение лодки  




Главная / Программирование / Основы программирования на языке Visual Prolog / Тест 13