Лабораторная работа №4 Вариант 8
.doc
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
ЛИПЕЦКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
КАФЕДРА АВТОМАТИЗИРОВАННЫХ СИСТЕМ УПРАВЛЕНИЯ
Лабораторная работа №4
по дисциплине
«Рекурсивно-логическое программирование»
|
Студент |
|
|
|
Ельшаева Н.А. |
|
||||||||
|
|
|
подпись, дата |
|
фамилия, инициалы |
|
||||||||
|
Группа |
|
АС-09 |
|
|
|
|
|||||||
|
|
|
|
|
|
|
||||||||
|
Принял |
|
|
|
|
|
||||||||
|
|
|
|
|
Гаев Л.В. |
|
||||||||
|
ученая степень, звание |
|
подпись, дата |
|
фамилия, инициалы |
|
Липецк 2010
Вариант 8:
положительные A0, B0, d, натуральное p. Элементы последовательностей {AN}, {BN} определяются следующим образом:
1 ------------
AN = - (AN-1 + BN-1), BN = \/ AN-1 * BN-1 (n = 1, 2, 3, ...).
2
f(A0,B0,d,p) - значение и номер k первого элемента AK, для которого
|AK – BK+P| < d.
Текст программы
f(A0, B0, D, P) :- A0 >= 0, B0 >= 0, D > 0, P > 0, P // 1 =:= P, poisk(A0, B0, Ak_dlya_b, Bk_dlya_b, P),
modul(A0, B0, Ak_dlya_b, Bk_dlya_b, D, 0).
poisk(A0, B0, A0, B0, 0).
poisk(A0, B0, Ak_dlya_b, Bk_dlya_b, P) :- P1 is P - 1, poisk(A0, B0, Ak_minus1_dlya_b, Bk_minus1_dlya_b, P1),
Ak_dlya_b is (Ak_minus1_dlya_b + Bk_minus1_dlya_b) / 2,
Bk_dlya_b is sqrt(Ak_minus1_dlya_b * Bk_minus1_dlya_b).
modul(Ak_minus1_dlya_a, Bk_minus1_dlya_a, Ak_minus1_dlya_b, Bk_minus1_dlya_b, D, K) :-
((abs(Ak_minus1_dlya_a - Bk_minus1_dlya_b) < D, write('Ak = '), write(Ak_minus1_dlya_a), write(' k = '), write(K));
(Ak_dlya_a is (Ak_minus1_dlya_a + Bk_minus1_dlya_a) / 2,
Bk_dlya_a is sqrt(Ak_minus1_dlya_a * Bk_minus1_dlya_a),
Ak_dlya_b is (Ak_minus1_dlya_b + Bk_minus1_dlya_b) / 2,
Bk_dlya_b is sqrt(Ak_minus1_dlya_b * Bk_minus1_dlya_b),
K1 is K + 1, modul(Ak_dlya_a, Bk_dlya_a, Ak_dlya_b, Bk_dlya_b, D, K1))).
Контрольный пример:
Выводы
В ходе проделанной лабораторной работы я получила базовые навыки работы с отношениями