Вычисление значения алгебраической суммы, заданной строкой - 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).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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