Задать вопрос

Как устранить ошибку в получении числа дней?

Суть программы - посчитать количество дней в летних месяцах.
Имеется следующий код:
% Copyright

implement main
    open core, console, math, string

class facts
    месяц : (string Имя_Месяца, unsigned Номер_по_порядку, unsigned Количество_дней).

class predicates
   sumli : (unsigned C,unsigned Sum [out]) .

clauses
    месяц("Январь", 1, 31).

    месяц("Февраль", 2, 28).

    месяц("Март", 3, 31).

    месяц("Апрель", 4, 30).

    месяц("Май", 5, 31).

    месяц("Июнь", 6, 30).

    месяц("Июль", 7, 31).

    месяц("Август", 8, 31).

    месяц("Сентябрь", 9, 30).

    месяц("Октябрь", 10, 31).

    месяц("Ноябрь", 11, 30).

    месяц("Декабрь", 12, 31).

    sumli(N,0):- N>8,!.
    sumli(N,C):- месяц(_, N, Count),sumli(N+1,Count1),C=Count1+Count.

    run() :-
        setConsoleTitle("задача 8"),

        sumli(6,Sum),
       /* Sum = 0,
        месяц(_, N, Count),
        N >= 6,
        N <= 8,

        fail()
        or
        write("ответ: ", Sum),*/
        write(Sum),
        nl,
        write("для закрытия нажмите любую клавишу"),
        clearInput(),
        _ = readChar().
        % place your own code here

end implement main

goal
    console::run(main::run).


Но, выдает ошибку

e631 The predicate 'main::sumli/2 (i,o)', which is declared as 'procedure', is actually 'nondeterm' main.pro
  • Вопрос задан
  • 207 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Data Scientist с нуля
    10 месяцев
    Далее
  • Академия Эдюсон
    Machine Learning: тариф Базовый
    7 месяцев
    Далее
  • ProductStar × РБК
    Математика и статистика для аналитика на Python
    1 месяц
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы