Задачи 7 и 8 Урок 17

Урок 17. Явное приведение типа в Паскаль -- преобразование строки в число

{17 - 7
На вход вашей программы подается строка вида:

например:

1 +  3

или

2 - 12

Напишите программу, которая разбирает вычисляет результат этого приложения
(сделайте поддержку операций сложения и вычитания).

17 - 8
На вход вашей программы подается строка вида:

5 + 6 -34 + 56  - 7 + 2

("сколько угодно" чисел с операциями суммы и разности в любом порядке).
Вычислите результат (пробелов между символом операции и числом может и не быть)
}

const z = 5;
var s: string;
    i, n, result: integer;
    intNums: array [1..z] of integer;
    strNums: array [1..z] of string;
    strOperators: array [1..z] of char;
begin
  writeln('input data for arithmetic operations');
  readln(s);
  n:= 1;
  for i:=1 to length(s) do
    begin
      if (s[i] <> ' ') then
       begin
         if ((s[i]>='0') and (s[i]<='9')) then
           strNums[n] := strNums[n] + s[i] // числа отдельно
         else
           begin
             strOperators[n] := s[i];   // операторы отдельно
             n:= n+1;
           end
        end
    end;

  for i:=1 to n do
    val(strNums[i], intNums[i]);  // преобразование типа массива в числовой

  result:= intNums[1];
  for i:=2 to n do    // в цикле обойти два массива
    begin
      if strOperators[i-1] = '+' then
        result:= result + intNums[i];
      if strOperators[i-1] = '-' then
        result:= result - intNums[i];
    end;

  writeln('result: ', result);
  readln();
end.
//input data for arithmetic operations
//24    + 17
//result: 41

//input data for arithmetic operations
//4 -  14 + 108 -7      +10
//result: 101
vedro-compota's picture

решение зачисчитано

_____________
матфак вгу и остальная классика =)