fork(1) download
  1. LABEL prev,next;
  2. var
  3. data_arr:array[1..10] of integer; // массив данных
  4. str_arr: string; // команды
  5. i,j,k: integer; // индексы строки и массива
  6. i_stor: integer;
  7. begin
  8. j:=1; // нумерация элементов массива (внезапно) начинается с единицы
  9. i:=1;
  10. readln(str_arr); //считываем строку
  11. prev:
  12. if i>length(str_arr) then goto next;
  13. if (str_arr[i]='+') then data_arr[j]:= data_arr[j]+1;
  14. if (str_arr[i]='-') then data_arr[j]:= data_arr[j]-1;
  15. if (str_arr[i]='>') then j:=j+1;
  16. if (str_arr[i]='<') then j:=j-1;
  17. if (str_arr[i]='.') then write(chr(data_arr[j]));
  18. if (str_arr[i]='[') then
  19. begin
  20. if data_arr[j]>0 then i_stor:=i;
  21. end;
  22. if (str_arr[i]=']') then
  23. begin
  24. if data_arr[j]>0 then
  25. begin
  26. i:=i_stor;
  27. end;
  28. end;
  29.  
  30. i:=i+1;
  31. goto prev;
  32. next:
  33. for k:=1 to 10 do begin
  34. write(data_arr[k]);
  35. write(' ');
  36. end;
  37. end.
Success #stdin #stdout 0s 9128KB
stdin
+++++[>+<-]
stdout
0 5 0 0 0 0 0 0 0 0