Другие языки программирования и технологии

Помогите сделать задачу по информатике (Pascal)

Условия задачи: Дана последовательность символов, имеющая следующий вид: p1q1p2q2p3...q(n-1)pn, где p(i)-цифра, а q(i)-знак арифмитического действия из набора (+,-,*). Вычислите значение выражения, предпологая, что действия выполняются согласно правилам арифметики. На вход программе подается строка указанного вида, состоящая не более чем из 9 цифр, разделенных символами арифметических операций. Выведите значение арифметического выражения. Пример входных данных: 5-2*3 Пример выходных данных: -1 P.S. Программа должна работать с файлами input и output.
итак, сделаю доброе дело, но может быть будут ошибки, если таковые будут, то пиши на мейл, исправим вместе

program imya(input, ounput);
uses crt;
var s,str:string;
i,n,m,znach,code:integer;
a:array [1..9] of integer;
b:array [1..8] of byte;
begin
asign(input,'input.txt');
reset(input);
read(s);
close(input);
n:=1;
m:=1;
str:=s[1];
for i:=2 to length(s) do
begin
if (s [ i ] <> '+') and (s [ i ] <> '-') and (s [ i ] <> '*') then str:=str+s [ i ];

if s [ i ] = '+') then
begin b [ m ]:=1;
val(str, a [ n ], code); {in a[ n ] hranitsya + chislo }
inc(n);
inc(m);
str:=s [ i ];
end;

if s [ i ] = '-') then
begin b [ m ]:=2;
val(str, a [ n ], code); {in a[ n ] hranitsya - chislo }
inc(n);
inc(m);
str:=s [ i ];
end;

if s [ i ] = '*') then
begin b [ i ]:=3;
val(str, a [ n ], code);
inc(n);
inc(m);
str:='';
end;

for i:=1 to 8 do
if b[ i ]=3 then begin a[ i ]:=a [ i ]*a[ i+1 ]; a[ i+1 ]:=0;

znach:=0;
for i:=1 to 9 do znach:=znach+ a[ i ];

assign (output,'output.txt');
rewrite(output);
write(znach);
close(output);
end.

ps fallout forever!!!
Павел Деревянных
Павел Деревянных
3 774
Лучший ответ