ВОЗВРАЩАЯСЬ К НАПЕЧАТАННОМУ
(С) Ефремов Александр Александрович, г. Челябинск, 1993г.
Опыт работы с BETA-BASIC 1.8
Предлагаю вниманию читателей небольшие выводы из своего опыта работы на BETA BASIC 1.8 и более ранних версиях. Полагаю, что публикация этого материала может значительно облегчить программирование на BETA BASIC как начинающим, так и уже имеющим опыт работы с ним.
Известные трудности при программировании на BETA BASIC 1.0 и 1.8 вызывает процесс передачи параметров при обращении к процедурам. В отличие от BETA BASIC 3.0, где применяется формат обращения к процедуре типа:
PROC Name(a1,a2,...,aN),
где a1,a2,...,aN - параметры,
более ранние версии этого языка принуждают использовать громоздкие конструкции с большим количеством операторов LET, что ухудшает читаемость программы и требует значительных затрат оперативной памяти.
Предлагаемый мной метод заключается в использовании для передачи фактических значении формальных параметров процедуры пары операторов READ и DATA. В программе это выглядит таким образом:
10 DEF PROC Name
20 READ a1,a2,...,aN
50 END PROC
100 DATA x1, x2..... xN: RESTORE 100: PROC Name
где x1, x2,...,xN - значения переменных a1,a2,...,aN.
Кроме экономии памяти и наглядности, метод позволяет использовать одну строку DATA для нескольких вызовов процедуры с одинаковыми параметрами, переводя перед каждым таким обращением указатель оператора READ на строку с необходимыми значениями. Одновременно с этим появляется возможность гибко задавать число параметров:
10 DEF PROC Table
20 READ N
30 DIM A (N)
40 FOR I=1 TO N: READ A(I): PRINT A(I) : NEXT I
50 END PROC
100 DATA 4, 1.1, 2.67, 3.15, 4.16
| элементы передаваемого | массива
- количество элементов массива, передаваемого в процедуру.
110 RESTORE 100: PROC Table
Применение такого подхода в моих программах позволило сократить использованные под текст программы ресурсы памяти на 15-20% и значительно повысить наглядность и читаемость. Надеюсь, и другие пользователи BETA BASIC найдут применение методу, описанному выше и по достоинству оценят его преимущества.