Как передать список подпрограмме в BASIC-256 - PullRequest
0 голосов
/ 10 января 2019

Мне трудно передать список в подпрограмму (смущение); Я получаю ошибку компилятора. Я следовал документации BASIC-256 по массивам (http://doc.basic256.org/doku.php?id=en:arrays)) и включил скобки [] в аргумент подпрограммы, как требуется:

subroutine print_list(list) # or subroutine print_list(list[]) <----- **compiler** error occurs here
   for element=0 to list[?]-1
      print list[element]
   next element
end subroutine

subroutine main()
   list = {5.9, 6.0, 5.9, 5.7, 5.6, 5.7}
   call print_list(list[]) #  <----- **compiler** error occurs here
end subroutine

call main()

Компилятор жалуется, что у меня есть ошибка в части аргумента вызова подпрограммы.

Я попытался исправить это; (i) проверка моей инициализации списка; (ii) проверка определения подпрограммы и параметров (компилятору тоже не нравятся квадратные скобки); (iii) исключение скобок [] из аргумента и (iv) попытка связаться с BASIC-256 на странице Facebook.

Спасибо, что уделили время ...

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Исходя из информации на сайте, вы не можете передавать массивы в свои собственные подпрограммы, только внутренние (встроенные).

Если переменные имеют глобальный характер, у вас все в порядке, просто выполняйте любые действия с массивом, которые вы хотите, но если они должны быть локальными, это невозможно сделать с этим конкретным вариантом BASIC.

0 голосов
/ 10 января 2019

При передаче массива данных вы должны включать пустой набор скобок [] после имени переменной. Это было добавлено, чтобы уменьшить путаницу между обычной переменной и переменной, содержащей массив значений.

Итак, в вашем случае измените сигнатуру вашего метода с subroutine print_list(list) на subroutine print_list(list[]).

Ссылаясь на эту ссылку , если у вас есть какие-либо вопросы.

...