Перевод из 10 системы счисления в 8 - Free variables are not allowed here - Prolog

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

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

Здравсвтуйте! Программа должна переводить из 10 системы счисления в 8:
Листинг программы
  1. convert(D, [H|T]):-
  2. Div = D div 8, Div > 8, H = D mod 8, convert(Div, T).
  3. convert(D, [H|T]):-
  4. Div = D div 8, Div < 8, H = Div, printList([H|T]).
  5. printList([]).
  6. printList([H|T]):- write(H), printList(T).
При попытке запуска выдает ошибку "Free variables are not allowed here" здесь: printList([]). printList([H|T]):- write(

H

), printList(T). В чем может быть дело? Заранее спасибо

Решение задачи: «Перевод из 10 системы счисления в 8 - Free variables are not allowed here»

textual
Листинг программы
  1. predicates
  2. conv(integer,integer)
  3.  
  4. clauses
  5. conv(N,R) :- N<R, write(N), !.  %% N - число; R-основание
  6. conv(N,R) :- NN=N div R, conv(NN,R), RR=N mod R, write(RR).
  7.  
  8. goal
  9. conv(25,8),nl.

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

Код выполняет перевод числа из одной системы счисления в другую.

  1. predicates - определениеpredicateдля функцииconv(integer,integer)`, которая принимает два целых числа в качестве аргументов.
  2. clauses - определение правил (условий) для функции conv(N,R), которые говорят, что если первое число N меньше второго числа R, то выводим N и прекращаем выполнение. В противном случае выполняем следующие действия.
  3. conv(N,R) - рекурсивный вызов функции conv(NN,R), где NN - результат целочисленного деления N на R. Также выполняется вычисление RR=N mod R, где RR - остаток от деления N на R. Затем вызывается функция write(RR), чтобы вывести остаток.
  4. goal - цель, которую нужно достичь. В данном случае выполняется перевод числа 25 из 10 системы счисления в 8 и выводится результат. Также добавляется nl для перехода на новую строку после вывода.

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


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

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

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

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

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

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