Создание предиката, который находит сумму всех целых чисел из диапазона - Prolog
Формулировка задачи:
помогите, в чем может быть ошибка? ругается почему то на прибавление к S1
Листинг программы
- s(A,B,S):-A==B,!.
- s(A,B,_):-B=<0,!,fail.
- s(A,B,S):-B@>A,B1 is B-1,s(A,B1,S1),S is S1+B.
- goal:-writeln('B-?'),read(B),writeln('A-?'),read(A),s(A,B,S),writeln(S).
Решение задачи: «Создание предиката, который находит сумму всех целых чисел из диапазона»
textual
Листинг программы
- ?- goal.
- B-?
- |: 100.
- A-?
- |: 1.
- 5050
- true.
Объяснение кода листинга программы
- Задана цель: найти сумму всех целых чисел из диапазона.
- Переменная
sum
инициализируется значением 0. - Переменная
i
инициализируется значением 1. - Установлено условие:
i <= 100
. - Переменная
goal
инициализируется значением true. - Выполняется цикл, пока значение переменной
i
меньше или равно 100. - Внутри цикла происходит следующее:
- Вычисляется выражение
100 - i
. - Значение выражения присваивается переменной
sum
. - Значение переменной
sum
увеличивается на значение переменнойi
. - Значение переменной
i
увеличивается на единицу.
- Вычисляется выражение
- После выполнения цикла выводится значение переменной
sum
, равное 5050. - Вывод завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д