Заполнение массива A$(X,X) в Commodore BASIC?

Я пытаюсь заполнить A$(X,X) "." В Commodore BASIC.

Это то, что я имею до сих пор.... но я не совсем уверен, что делать со значениями ASCII и тому подобным. Любой комментарий?

INPUT A$
FOR I = 0 TO X = DIM A$(X,X)
A$(".",x)

Я до сих пор крайне запутался в API PET BASIC... Любые предложения будут с благодарностью приняты.

1 ответ

Решение

Мои ответы основаны на молодости перед Commodore 64 и, возможно, не совсем верны для серии PET. Но, учитывая, что у вас еще не было других ответов, я сделаю это.

В первой строке вашего кода вы запрашиваете строку у пользователя и сохраняете ее в A$, Знак доллара обозначает, что переменная является строкой. Во второй строке вы переопределяете A$ как двумерный массив. Размеры оба X который не был определен. Я не помню DIM возвращаемое значение, но я могу ошибаться.

Функция для получения значения ASCII из символа ASC() и конвертировать обратно вы используете CHR$() например:

10 NUMA = ASC("A"): REM NUMA now contains 65
20 CHARA$ = CHR$(NUMA): REM CHARA$ now contains "A"

Вам следует знать, что эти функции используют "PET ASCII", который немного отличается от ASCII. Это никогда не вызывало у меня никаких проблем, но это то, что нужно запомнить.

FOR петли всегда имеют NEXT завершить блок таким:

10 FOR A = 1 TO 10
20 PRINT A: REM Displays series of numbers.
30 NEXT

Я не совсем понимаю, чего вы пытаетесь достичь, но, надеюсь, я, по крайней мере, дал вам достаточно частей, чтобы решить это. Из того, что я понимаю, вам нужно что-то вроде:

10 INPUT "Please enter a number:", X
20 DIM A$(X, X)
30 FOR I = 0 TO X
40 FOR J = 0 TO X
50 A$(I, J) = "."
60 NEXT
70 NEXT
Другие вопросы по тегам