Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






DOMAINS. genl(integer, integer, list)






list=integer*

PREDICATES

genl(integer, integer, list)

CLAUSES

genl(N2, N2, []): -!.

genl(N1, N2, [N1|L]): - N1< N2, N=N1+4, genl(N, N2, L).

GOAL

write(“N=”), readint(N), K=4*(N+1)-2, genl(2, K, L), write(L), nl.

 

Результат выполнения программы:

N=5

[2, 6, 10, 14, 18]

Список представляет собой последовательность, состоящую из любого количества элементов, таких как 2, 6, 10, 14, 18. Список можно рассматривать как состоящий из таких компонентов, как голова списка и хвостовая часть списка. Головой списка является - 2, а хвостовой частью - следующий список [6, 10, 14, 18] (рис. 2).

 

Рис. 2. Древовидное представление списка [2, 6, 10, 14, 18]

 

4. Затем сформируем список последовательных натуральных чисел от 4 до 20 и найдём количество его элементов.

DOMAINS

list=integer*

PREDICATES

genl1(integer, integer, list)

len(integer, list)

CLAUSES

genl1(N2, N2, []): -!.

genl1(N1, N2, [N1|L]): - N1< N2, N=N1+1, genl1(N, N2, L).

len(0, []).

len(X, [_|L]): - len(X1, L), X=X1+1.

GOAL

genl1(4, 21, L), write(L), nl, len(X, L), write(“Количество элементов =”, X), nl.

 

Результат выполнения программы:

[4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

Количество элементов=17

5. Теперь определим, содержится ли введенное число Х в заданном списке L.

Напишите следующий программный код:

DOMAINS

list=integer*

PREDICATES

member(integer, list)

CLAUSES

member(X, [X|_]): - write(“yes”),!.

member(X, []): - write(“no”),!.

member(X, [_|L]): - member(X, L).

GOAL

L=[1, 2, 3, 4], write(L), nl, write(“X=”, X), readint(X), member(X, L), nl.

Результат выполнения программы:

1-й случай:

[1, 2, 3, 4]

X=3

yes

2-й случай:

[1, 2, 3, 4]

X=5

no

6. Сформируйте списки L1=[1, 2, 3], L2=[10, 11, 12, 13, 14, 15] и объединить их в список L3.

DOMAINS

list=integer*

PREDICATES

genl1(integer, integer, list)

append(list, list, list)

CLAUSES

genl1(N2, N2, []): -!.

genl1(N1, N2, [N1|L]): - N1< N2, N=N1+1, genl1(N, N2, L).

append([], L, L).

append([X|L1], L2, [X|L3]): - append(L1, L2, L3).

GOAL

genl1(1, 4, L1), write(“L1=”, L1), nl,

genl1(10, 16, L2), write(“L2=”, L2), nl,

append(L1, L2, L3), write(“L3=”, L3), nl.

Результат выполнения программы:

L1=[1, 2, 3]

L2=[10, 11, 12, 13, 14, 15]

L3=[1, 2, 3, 10, 11, 12, 13, 14, 15]

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.008 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал