Дописать вычисление НОД-а двух целых чисел - Prolog
Формулировка задачи:
Добрый день, только на этой неделе начали изучать пролог, а препод уже дал задание написать программу, вычисляющую НОД двух целых чисел. Синтаксиса пролога вобще не знаю, ибо препод даже не показал как создавать проект.
Тут на форуме нашел предикат (не знаком с этим понятием), решающий мою задачу.
Помогите пожалуйста дописать программу, вставить необходимые инклуды, написать main (привожу аналогию с Си), или как там это называется.
Буду очень признателен.
Решение задачи: «Дописать вычисление НОД-а двух целых чисел»
textual
Листинг программы
implement main open core, console class predicates gcd : (integer, integer, integer) procedure (i,i,o). clauses gcd(A, 0, A) :- !. gcd(A, B, C) :- gcd(B, A mod B, C). clauses run():- init(), write("A: "), A = read(), write("B: "), B = read(), gcd(A, B, C), write("НОД: ", C), nl, write("Press Enter.."), _ = readLine(), _ = readLine(). end implement main goal mainExe::run(main::run).
Объяснение кода листинга программы
- Объявление процедуры
gcd
для вычисления НОД-а двух целых чисел. - Первая рекурсивная процедура
gcd(A, 0, A)
для базового случая, когда одно из чисел равно нулю. - Вторая рекурсивная процедура
gcd(A, B, C)
для общего случая, когда оба числа ненулевые. - Ввод данных: первое целое число
A
, второе целое числоB
. - Вызов процедуры
gcd(A, B, C)
для вычисления НОД-а чиселA
иB
и сохранения результата в переменнойC
. - Вывод результата: сообщение
НОД:
и значение переменнойC
. - Запрос на ввод строки для продолжения работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д