Дописать вычисление НОД-а двух целых чисел - Prolog

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

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

Добрый день, только на этой неделе начали изучать пролог, а препод уже дал задание написать программу, вычисляющую НОД двух целых чисел. Синтаксиса пролога вобще не знаю, ибо препод даже не показал как создавать проект. Тут на форуме нашел предикат (не знаком с этим понятием), решающий мою задачу. Помогите пожалуйста дописать программу, вставить необходимые инклуды, написать main (привожу аналогию с Си), или как там это называется. Буду очень признателен.
Листинг программы
  1. predicates
  2. gcd : (integer, integer, integer) procedure (i,i,o).
  3. clauses
  4. gcd(A, 0, A) :- !.
  5. gcd(A, B, C) :- gcd(B, A mod B, C).

Решение задачи: «Дописать вычисление НОД-а двух целых чисел»

textual
Листинг программы
  1. implement main
  2.     open core, console
  3.  
  4. class predicates
  5.     gcd : (integer, integer, integer) procedure (i,i,o).
  6.  
  7. clauses
  8.     gcd(A, 0, A) :- !.
  9.     gcd(A, B, C) :- gcd(B, A mod B, C).
  10.  
  11. clauses
  12.     run():-
  13.         init(),
  14.         write("A: "), A = read(),
  15.         write("B: "), B = read(),
  16.         gcd(A, B, C),
  17.         write("НОД: ", C), nl,
  18.         write("Press Enter.."),
  19.         _ = readLine(),
  20.         _ = readLine().
  21.  
  22. end implement main
  23.  
  24. goal
  25.     mainExe::run(main::run).

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

  1. Объявление процедуры gcd для вычисления НОД-а двух целых чисел.
  2. Первая рекурсивная процедура gcd(A, 0, A) для базового случая, когда одно из чисел равно нулю.
  3. Вторая рекурсивная процедура gcd(A, B, C) для общего случая, когда оба числа ненулевые.
  4. Ввод данных: первое целое число A, второе целое число B.
  5. Вызов процедуры gcd(A, B, C) для вычисления НОД-а чисел A и B и сохранения результата в переменной C.
  6. Вывод результата: сообщение НОД: и значение переменной C.
  7. Запрос на ввод строки для продолжения работы программы.

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы