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

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

Упражнение 1:
Номер 1
Определение предиката go имеет вид:
		go(2):- !.
go(N):- write('a'), N1 = N - 1, go(N1). 
	Сколько раз будет напечатан символ 'a' в результате вызова цели go(5)?

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 2
Определение предиката go имеет вид:
		go(N):- N > 1, !, write('a'), N1 = N - 1, go(N1).
go(_).
	Сколько раз будет напечатан символ 'a' в результате вызова цели go(5)?

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 3
Определение предиката go имеет вид:
		go(N):- write('a'), N > 3, !, N1 = N - 1, go(N1).
go(_).
	Сколько раз будет напечатан символ 'a' в результате вызова цели go(5)?

Ответ:

 (1)

 (2)

 (3)

 (4)


Упражнение 2:
Номер 1
Определение предиката go имеет вид:
		go(2):- write('a'), fail.
go(N):- N > 1, write('a'), N1 = N - 1, go(N1).
go(_).
	Сколько раз будет напечатан символ 'a' в результате вызова цели go(4)?

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 2
Определение предиката go имеет вид:
go(2):- fail.
go(N):- N > 1, write('a'), N1 = N - 1, go(N1).
go(_).
	Сколько раз будет напечатан символ 'a' в результате вызова цели go(4)?

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 3
Определение предиката go имеет вид:
go(0).
go(N):- N > 0, N1 = N - 1, go(N1), write('a'). 
	Сколько раз будет напечатан символ 'a' в результате вызова цели go(2)?

Ответ:

 (1)

 (2)

 (3)

 (4)


Упражнение 3:
Номер 1
Определение предикатов parent и anc имеет вид:
		parent(tom, ann).
parent(ann, bob).

anc(X, Y):- parent(X, Y).
anc(X, Z):- parent(X, Z), anc(Z, Y). 
	Сколько решений имеет цель anc(X, Y)?

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 2
Определение предикатов parent и anc имеет вид:
		parent(tom, ann).
parent(ann, bob).

anc(X, Y):- parent(X, Y).
anc(X, Z):- parent(X, Z), anc(Z, Y). 
	Сколько решений имеет цель anc(tom, X)?

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 3
Определение предикатов parent и anc имеет вид:
		parent(tom, ann).
parent(ann, bob).

anc(X, Y):- parent(X, Y).
anc(X, Z):- parent(X, Z), anc(Z, Y). 
	Сколько решений имеет цель anc(X, ann)?

Ответ:

 (1)

 (2)

 (3)

 (4)


Упражнение 4:
Номер 1
Определение предиката f имеет вид:
		f(0, 3):- !.
f(X, R):- X1 = X - 1, f(X1, R1), R = R1 + 2. 
	Какое значение примет переменная Y в результате вызова цели f(2, Y)?

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 2
Определение предиката f имеет вид:
		f(0, 2):- !.
f(X, R):- X1 = X - 1, f(X1, R1), R = R1 * 3. 
	Какое значение примет переменная Y в результате вызова цели f(2, Y)?

Ответ:

 (1) 18 

 (2)

 (3) 12 

 (4)


Номер 3
Определение предиката f имеет вид:
		f(0, 1):- !.
f(X, R):- X1 = X - 1, f(X1, R1), R = 2 * R1 + 1. 
	Какое значение примет переменная Y  в результате вызова цели f(2, Y)?

Ответ:

 (1) 10 

 (2)

 (3)

 (4)


Упражнение 5:
Номер 1
Определение предиката g имеет вид:
		g(0, R, R):- !.
g(X, C, R):- X1 = X - 1, C1 = C * 2, g(X1, C1, R). 
	Какое значение примет переменная Y в результате вызова цели g(2, 3, Y)?

Ответ:

 (1) 12 

 (2) 24 

 (3) 18 

 (4) 10 


Номер 2
Определение предиката g имеет вид:
		g(0, R, R):- !.
g(X, C, R):- X1 = X - 1, C1 = 2 * C + 1, g(X1, C1, R). 
	Какое значение примет переменная Y в результате вызова цели g(2, 2, Y)?

Ответ:

 (1)

 (2) 10 

 (3) 11 

 (4) 12 


Номер 3
Определение предиката g имеет вид:
		g(0, R, R):- !.
g(X, C, R):- X1 = X - 1, C1 = 3 * C, g(X1, C1, R). 
	Какое значение примет переменная Y в результате вызова цели g(2, 1, Y)?

Ответ:

 (1)

 (2)

 (3)

 (4) 10 


Упражнение 6:
Номер 1
Определение функции f имеет вид:
		f(0, R) = R:- !.
f(X, C) = f(X - 2, C * C). 
	Какое значение примет переменная Y в результате вызова цели Y = f(4, 2)?

Ответ:

 (1)

 (2)

 (3)

 (4) 16 


Номер 2
Определение функции f имеет вид:
		f(1, R) = R:- !.
f(X, C) = f(X - 3, C * C - 1). 
	Какое значение примет переменная Y в результате вызова цели Y = f(7, 2)?

Ответ:

 (1) 13 

 (2)

 (3)

 (4)


Номер 3
Определение функции f имеет вид:
		f(0, R) = R:- !.
f(X, C) = f(X - 1, C * C - 2). 
	Какое значение примет переменная Y в результате вызова цели Y = f(2, 2)?

Ответ:

 (1)

 (2) 14 

 (3)

 (4)


Упражнение 7:
Номер 1
Определение предиката num имеет вид:
		num(X, X).
num(X, Y) :- X < 2, X1 = X + 1, num(X1, Y). 
	Сколько решений имеет цель num(-1, X)?

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 2
Определение предиката num имеет вид:
		num(X, X).
num(X, Y) :- X > 0, X1 = X - 1, num(X1, Y). 
	Сколько решений имеет цель num(4, X)?

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 3
Определение предиката num имеет вид:
		num(X, X).
num(X, Y) :- X > 0, X1 = X - 2, num(X1, Y). 
	Сколько решений имеет цель num(5, X)?

Ответ:

 (1)

 (2)

 (3)

 (4)


Упражнение 8:
Номер 1
Определение предиката num имеет вид:
		num(X, _, X).
num(X, C, Y) :- X > 0, X1 = X - C, num(X1, C, Y). 
	Сколько решений имеет цель num(3, 2, X)? 

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 2
Определение предиката num имеет вид:
		num(X, _, _, X).
num(X, Z, S, Y) :- X < Z, X1 = X + S, num(X1, Z, S, Y). 
	Сколько решений имеет цель num(2, 3, 2, X)?

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 3
Определение предиката num имеет вид:
		num(X, _, _, X).
num(X, Z, S, Y) :- X > Z, X1 = X - S, num(X1, Z, S, Y).
	Сколько решений имеет цель num(5, 3, 1, X)?

Ответ:

 (1)

 (2)

 (3)

 (4)




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