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

Суть программы - посчитать количество дней в летних месяцах.
Имеется следующий код:
% 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
  • Вопрос задан
  • 199 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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