Predicates for recursive functions Prolog

Узнай цену своей работы

Формулировка задачи:

Доброе время суток! Я новичок в Prolog. Нам задали написать предикаты к рекурсивным функциям
Помогите пожалуйста, хотя бы с чего начать. Заранее спасибо!

Решение задачи: «Predicates for recursive functions Prolog»

textual
Листинг программы
predicates
func(integer,integer,integer)
 
clauses
func(0,_,0). %% f(x,y)= 0 if x=0
func(1,_,1). %% f(x,y)= 1 if x=1
func(X,Y,F) :- X>1, XX=X-2, func(XX,Y,FF), F=Y*Y+FF.
 
goal
write("x="),readint(X),write("y="),readint(Y),func(X,Y,F), write("f="),write(F),nl.

Объяснение кода листинга программы

  1. predicates - объявление функций в виде предикатов в Prolog
  2. func(integer,integer,integer) - определение функции с тремя аргументами типа integer
  3. clauses - определение правил (условий) для функции func
  4. func(0,_,0). - базовое правило для функции func когда аргумент X равен 0
  5. func(1,_,1). - базовое правило для функции func когда аргумент X равен 1
  6. func(X,Y,F) :- X>1, XX=X-2, func(XX,Y,FF), F=Y*Y+FF. - рекурсивное правило для функции func когда аргумент X больше 1
  7. goal - определение цели (задачи) для программы
  8. write(x=),readint(X),write(y=),readint(Y),func(X,Y,F), write(f=),write(F),nl. - основной код программы, вывод значений переменных X, Y, F и вычисление функции func
  9. readint(X) - функция для чтения целого числа с клавиатуры и присвоения его переменной X
  10. write(F) - функция для вывода значения переменной F на экран
  11. nl - функция для вывода символа новой строки
  12. XX - временная переменная для хранения значения аргумента X в рекурсивной функции func
  13. FF - временная переменная для хранения результата вызова функции func в рекурсивной функции func

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5