Recur14. Вывести значение целочисленного выражения, заданного в виде строки $$S$$. Выражение определяется следующим образом:
<выражение>::= <цифра>| <выражение>+<цифра>|<выражение>- <цифра>
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
program Recur15; var S:String; Function Calculation(S:String):integer; var Stemp:string; begin Stemp:=S; delete(Stemp,1,2); if length(S)<=0 then Result:=0 else if s[2]='-' then Result:=(ord(s[1])-48)-Calculation(STemp) else Result:=(ord(s[1])-48)+Calculation(STemp); end; begin Write('S: '); Readln(S); Writeln(Calculation(S)); end. |
Другие задачи из раздела Recur можно посмотреть здесь.
Починил вашу функцию:
И еще такой вариант решения: