Главная » Basic » СТРОКИ С ПРОДОЛЖЕНИЯМИ ОПЕРАТОРОВ

0

В немногих системах, например в  Бейсике Microsoft, предоставляется средство записи логической строки в  виде   нескольких физических  строк. Для этого  в  Бейсике Microsoft  вместо завершения набора  строки  нажатием на  клавишу возврата каретки надо  набрать  символ прогона  строки (CONTROL J) и продолжить набор оператора на следующей строке:

10 А=10*В+                                  <CONTROL J> Z*(С+2*В)                          <ВОЗВРАТ КАРЕТКИ>

20  PRINT А                                       <ВОЗВРАТ КАРЕТКИ>

Таким образом, одна логическая строка может занимать несколько физических  строк, если  при ее наборе  пользоваться специальными   управляющими  символами.  Обычно  существует предел  для общего числа символов  в  логической строке; типичное значение такого предела 255 символов.  В Бейсике ВВС набор строки можно продолжить, даже если достигнут ее конец: курсор автоматически переместится на начало следующей строки. Нажимать на клавишу возврата каретки надо только в конце логической строки.

Подобная возможность выгодна при  написании  длинных операторов типа PRINT USING или  IF. Кроме того, ее можно сочетать с написанием нескольких операторов в одной строке для образования блоков операторов с большим размером (см. подразд. 6.4.1).

6.4.2.     ОПЕРАТОРЫ IF-THEN-ELSE

Оператор    IF-THEN-ELSE    соответствует  одной    из     основных   конструкций   структурного программирования. Оператор

IF A>2 AND B<0 THEN Z = 1 ELSE Z=2

присвоит Z значение 1, если условное  выражение  истинно, и  2, если это выражение ложно. Он в точности соответствует структограмме

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

IF A>0 THEN T=S+1: I=I+1 ELSE S=0:I=J

соответствует структограмма

Однако  при этом  весь оператор  должен  уместиться на  одной  строке,  что  представляет собой довольно серьезное ограничение. Но если текст оператора можно переносить на другие строки, то можно включать в каждый блок больше действий и добиваться удобочитаемого размещения текста. Например, в Бейсике Microsoft допустима следующая форма записи:

210  IF А>0 THEN REM ДОБАВИТЬ К СУММЕ      <CONTROL J> S=S+A: I=1+1                                      <CONTROL J>

ELSE REM ВЫЙТИ С НУЖНЫМ ЗНАЧЕНИЕМ <CONTROL J> T=S*S                                                      <BO3BPAT КАРЕТКИ>

В   принципе операторы  IF-THEN-ELSE  могут   быть   и    вложенными, но   при  их   написании упоминавшиеся выше ограничения на длину строки оказываются еще более стеснительными. Понять серию вложенных операторов IF при записи   в  одну строку почти  невозможно. Кроме того, такая запись требует особой аккуратности, так как, например, действие оператора

IF A>B THEN IF B>0 THEN Z = l ELSE Z=2 в Бейсике Microsoft представляется структограммой

поскольку ELSE связывается с ближайшим к нему THEN.

В Бейсике ВВС служебное слово ELSE рассматривается как разделитель, расщепляющий строку на две части, отвечающие возможным результатам  (ИСТИНА  или   ЛОЖЬ)  вычисления  условного выражения оператора IF. Тем самым в одной логической строке разрешается наличие только одного ELSE,  хотя  при этом  текст  оператора  можно  размещать  на  нескольких (физических)  строках, например:

100   IF A>B THEN PRINT A,B

ELSE PRINT В,А                                 <ВОЗВРАТ КАРЕТКИ>

Кроме  того,  ELSE  можно  добавлять к  операторам  ON-GOTO  и   ON-GOSUB  для  того,  чтобы выполнять определенные действия по умолчанию, например:

ON I+J GOTO 100, 200, 300, 400: ELSE GO TO 1000 194

ON I+J GOSUB 100, 900, 200: ELSE PRINT "ОШИБКА": STOP

Источник: Уолш Б.    Программирование на Бейсике: Пер. с англ. М.: Радио и связь, 1988. 336 с: ил.

По теме:

  • Комментарии