Определить, сколько отрицательных из трех заданных чисел - Prolog

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

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

Даны три числа a,b,c. Определить сколько из них отрицательных.

Решение задачи: «Определить, сколько отрицательных из трех заданных чисел»

textual
Листинг программы
domains
i=integer
 
predicates
neg3(i, i, i, i)
add_neg(i, i)
 
clauses
neg3(A, B, C, Res) :-
    add_neg(A, AN),
    add_neg(B, BN),
    add_neg(C, CN),
    Res = AN + BN + CN.
 
add_neg(N, 1) :-
    N < 0,
    !.
add_neg(_, 0).
 
goal
    neg3(1, -2, -3, Res),
    write(Res), nl.

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

  1. Задана программа на языке Prolog с тремя заданными числами: 1, -2, -3.
  2. Определены два предиката: neg3 и add_neg.
  3. Предикат neg3 принимает четыре аргумента типа integer (целое число) и определяет количество отрицательных чисел из заданных четырех.
  4. Предикат add_neg принимает два аргумента типа integer и определяет, является ли первое число отрицательным, и если да, то увеличивает счетчик на единицу.
  5. В основной части программы вызывается предикат neg3 с аргументами 1, -2, -3, и результат выводится на экран.
  6. Значение переменной Res будет равно 3, так как все три числа отрицательные.

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

11   голосов , оценка 4.091 из 5
Похожие ответы