Урок 17 (Решенная задача номер 8)
Primary tabs
Урок 17 (Решенная задача номер 8)
На вход вашей программы подается строка вида:
5 + 6 -34 + 56 - 7 + 2("сколько угодно" чисел с операциями суммы и разности в любом порядке). Вычислите результат (пробелов между символом операции и числом может и не быть)
var s : string; function ru36(h : string): integer; var g, znak : string; i, c, cisl1, cisl2 : integer; d : boolean; begin for i := 1 to length(s) do begin if (s[i] >= '0') and (s[i] <= '9') and (d = false) then begin g := g + s[i]; if (s[i+1] = ' ') or (s[i + 1] = '+') or (s[i+1] = '-') then begin d := true; val(g, cisl1, c); g := ''; end; end; if (s[i] = '-') or (s[i] = '+') then znak := s[i]; if (znak <> '') and (s[i] >= '0') and (s[i] <= '9') then begin g := g + s[i]; if (s[i+1] = ' ') or (s[i + 1] = '+') or (s[i+1] = '-') or (i = length(s)) then begin val(g, cisl2, c); g := ''; end; end; if (cisl2 <> 0) then if (znak = '+') then begin result := (cisl1 + cisl2); cisl1 := result; cisl2 := 0; znak := ''; end else begin result := (cisl1 - cisl2); cisl1 := result; cisl2 := 0; znak := ''; end; end; writeln(result); end; begin writeln('vvedite viragenie'); readln(s); ru36(s); end.
- Log in to post comments
- 962 reads