Вычисление значения алгебраической суммы, заданной строкой - Prolog
Формулировка задачи:
Пусть дана последовательность литер, имеющая вид d1+-d2+-d3+-… +-dn (di – цифры, n>1). Напишите программу вычисления значения этой алгебраической суммы. Например,вводим: 2+3–2+1, получаем: 2+3–2+1=4. Помогите, пожалуйста решить задачу, у меня не получается провести операции (удалось только проверить символ по поду), вот что у меня получилось:
Решение задачи: «Вычисление значения алгебраической суммы, заданной строкой»
textual
Листинг программы
predicates calc_s(string,integer,integer,integer) calc(string,integer) clauses calc_s("",Z,A,R):- R=A*Z. calc_s(S,Z,A,R) :- frontchar(S,C,SS), C='+', calc_s(SS,1,0,R1), R=R1+A*Z, !. calc_s(S,Z,A,R) :- frontchar(S,C,SS), C='-', calc_s(SS,-1,0,R1), R=R1+A*Z, !. calc_s(S,Z,A,R) :- frontchar(S,C,SS), char_int(C,U),B=A*10+(U-48), calc_s(SS,Z,B,R), !. calc(S,R) :- calc_s(S,1,0,R).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д