Главная / Программирование /
Основы программирования на языке Visual Prolog / Тест 5
Основы программирования на языке Visual Prolog - тест 5
Упражнение 1:
Номер 1
Определение предиката go
имеет вид:
go(2):- !.
go(N):- write('a'), N1 = N - 1, go(N1).
Сколько раз будет напечатан символ 'a' в результате вызова цели go(5)
?
Ответ:
 (1) 0 
 (2) 1 
 (3) 2 
 (4) 3 
Номер 2
Определение предиката go
имеет вид:
go(N):- N > 1, !, write('a'), N1 = N - 1, go(N1).
go(_).
Сколько раз будет напечатан символ 'a' в результате вызова цели go(5)
?
Ответ:
 (1) 2 
 (2) 3 
 (3) 4 
 (4) 5 
Номер 3
Определение предиката go
имеет вид:
go(N):- write('a'), N > 3, !, N1 = N - 1, go(N1).
go(_).
Сколько раз будет напечатан символ 'a' в результате вызова цели go(5)
?
Ответ:
 (1) 2 
 (2) 3 
 (3) 4 
 (4) 5 
Упражнение 2:
Номер 1
Определение предиката go
имеет вид:
go(2):- write('a'), fail.
go(N):- N > 1, write('a'), N1 = N - 1, go(N1).
go(_).
Сколько раз будет напечатан символ 'a' в результате вызова цели go(4)
?
Ответ:
 (1) 3 
 (2) 4 
 (3) 5 
 (4) 6 
Номер 2
Определение предиката go
имеет вид:
go(2):- fail.
go(N):- N > 1, write('a'), N1 = N - 1, go(N1).
go(_).
Сколько раз будет напечатан символ 'a' в результате вызова цели go(4)
?
Ответ:
 (1) 3 
 (2) 2 
 (3) 0 
 (4) 4 
Номер 3
Определение предиката go
имеет вид:
go(0).
go(N):- N > 0, N1 = N - 1, go(N1), write('a').
Сколько раз будет напечатан символ 'a' в результате вызова цели go(2)
?
Ответ:
 (1) 0 
 (2) 1 
 (3) 2 
 (4) 3 
Упражнение 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) 1 
 (2) 2 
 (3) 3 
 (4) 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) 1 
 (2) 2 
 (3) 3 
 (4) 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) 1 
 (2) 2 
 (3) 3 
 (4) 4 
Упражнение 4:
Номер 1
Определение предиката f
имеет вид:
f(0, 3):- !.
f(X, R):- X1 = X - 1, f(X1, R1), R = R1 + 2.
Какое значение примет переменная Y в результате вызова цели f(2, Y)
?
Ответ:
 (1) 3 
 (2) 5 
 (3) 7 
 (4) 8 
Номер 2
Определение предиката f имеет вид:
f(0, 2):- !.
f(X, R):- X1 = X - 1, f(X1, R1), R = R1 * 3.
Какое значение примет переменная Y
в результате вызова цели f(2, Y)
?
Ответ:
 (1) 18 
 (2) 9 
 (3) 12 
 (4) 6 
Номер 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) 7 
 (3) 5 
 (4) 3 
Упражнение 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) 5 
 (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) 5 
 (2) 9 
 (3) 6 
 (4) 10 
Упражнение 6:
Номер 1
Определение функции f имеет вид:
f(0, R) = R:- !.
f(X, C) = f(X - 2, C * C).
Какое значение примет переменная Y
в результате вызова цели Y = f(4, 2)
?
Ответ:
 (1) 0 
 (2) 4 
 (3) 8 
 (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) 8 
 (3) 9 
 (4) 3 
Номер 3
Определение функции f имеет вид:
f(0, R) = R:- !.
f(X, C) = f(X - 1, C * C - 2).
Какое значение примет переменная Y
в результате вызова цели Y = f(2, 2)
?
Ответ:
 (1) 4 
 (2) 14 
 (3) 2 
 (4) 0 
Упражнение 7:
Номер 1
Определение предиката num
имеет вид:
num(X, X).
num(X, Y) :- X < 2, X1 = X + 1, num(X1, Y).
Сколько решений имеет цель num(-1, X)
?
Ответ:
 (1) 2 
 (2) 3 
 (3) 4 
 (4) 5 
Номер 2
Определение предиката num
имеет вид:
num(X, X).
num(X, Y) :- X > 0, X1 = X - 1, num(X1, Y).
Сколько решений имеет цель num(4, X)
?
Ответ:
 (1) 2 
 (2) 3 
 (3) 4 
 (4) 5 
Номер 3
Определение предиката num
имеет вид:
num(X, X).
num(X, Y) :- X > 0, X1 = X - 2, num(X1, Y).
Сколько решений имеет цель num(5, X)
?
Ответ:
 (1) 5 
 (2) 4 
 (3) 3 
 (4) 2 
Упражнение 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 
 (2) 3 
 (3) 4 
 (4) 5 
Номер 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 
 (2) 3 
 (3) 1 
 (4) 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) 1 
 (2) 2 
 (3) 3 
 (4) 4