В строке заданы через двоеточие 2 оператора присваивания общего вида: "первый:=число1+число2:второй:=число3-число4" (например:"A:=3+4:B:=7-2"). Вычислить значения переменых и распечатать их.

Вот решение:
program lab6zad3;
uses crt;
var s,s1:string;
i,k,rez:integer;
procedure rezult(a:string;var rz:integer);
var ss:string[2];
si:char;
is,a1,a2,p1,p2,res:integer;
begin
ss:='+-';
for i:=1 to 2 do
if pos(ss[i],a)>0 then
begin
is:=pos(ss[i],a);
si:=ss[i];
end;
if si='' then writeln('error') else
begin
val(copy(a,4,is-4),a1,p1);
val(copy(a,is+1,length(s)-is),a2,p2);
if (p1<>0) or (p2<>0) then
writeln('error')
else
begin
case si of
'+':rz:=a1+a2;
'-':rz:=a1-a2;
end;
end;
end;
end;
begin
clrscr;
writeln('vvedite viragenie'); {a:=12+32:b:=43-12}
readln(s);
for i:=1 to length(s)do
if (s[i]=':')and(s[i+1]<>'=')then
begin
s1:=copy(s,1,i-1);
delete(s,1,i);
end;
writeln('rezultat:');
rezult(s1,rez);
writeln(s1[1]+'=',rez);
rezult(s,rez);
writeln;
writeln(s[1]+'=',rez);
readln;
end.


Решение верное, но необходимо записать его без процедур и функций. Помогите плиз.