Задача 9 Урок 18

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

var s, n : string;
  arifm : string;
  one,two : integer;
  x,y:integer;


procedure writearray(s : string; var n : string; var x1 : integer; var y1 : integer);
var    intChislo, Code : Integer;
       i:integer;
       flag:boolean;
       x1s,y1s:string;
begin
  for i:=1 to length(s) do
    if (s[i]='+') or (s[i]='-') then
      n:=s[i];
    flag:=false;
  for i:=1 to length(s) do
    begin
      val(s[i], intChislo, Code);
      if (s[i]='+') or (s[i]='-') then
        flag:= true;
      if (code=0) and (flag=false) then
        x1s:=x1s+s[i];
      if (code=0) and (flag=true) then
        y1s:=y1s+s[i];
    end;
    val (x1s, intChislo, Code);
    x1:=intChislo;
    val (y1s, intChislo, Code);
    y1:=intChislo;
end;

begin
    n:='';
    writeln('enter the line');
    readln(s);
    writearray(s, n,x,y);
    arifm:=n;
    one:=x;
    two:=y;
    if arifm='+' then
      writeln('summa',' ',one+two);
    if arifm='-' then
      writeln('raznost',' ',one-two);
    readln();
end.       

Вывод консоли:

enter the line
5+5
summa 10