Проблемы с функцией BASIC MID$

Я пытаюсь распечатать каждую букву данной строки в новой строке.

1 INPUT ""; A$
2 E%=0
3 IF E% < LEN(A$) GOTO 5
4 END
5 PRINT MID$(A$,E%,E%+1)
6 E% = E% + 1
7 GOTO 3

Я продолжаю получать ILLEGAL QUANTITY ERROR IN 5 и понятия не имею, почему.


person thomas99    schedule 08.11.2019    source источник
comment
Какой это БЕЙСИК? Есть 100 штук. Где ваши номера строк? Они должны быть включены при размещении кода.   -  person underscore_d    schedule 08.11.2019
comment
Я использую БЕЙСИК V2   -  person thomas99    schedule 08.11.2019
comment
На каком типе и версии компьютерной системы? В какой программе писать код?   -  person underscore_d    schedule 08.11.2019
comment
Я использую эмулятор VIC-20, пишу в ядре   -  person thomas99    schedule 08.11.2019


Ответы (1)


У вас три проблемы с кодом, две из них связаны.

Во-первых, E% должен начинаться с 1, а не с 0. Во-вторых, поскольку E% начинается с 1, вы должны проверять ‹= вместо ‹. Наконец, параметры вашей функции MID$() должны быть следующими:

1 INPUT ""; A$
2 E%=1
3 IF E% <= LEN(A$) GOTO 5
4 END
5 PRINT MID$(A$,E%,1)
6 E% = E% + 1
7 GOTO 3

Далее вы должны изучить циклы FOR/NEXT.

person Bill Hileman    schedule 08.11.2019