Глава 2
О С Н О В Ы П Р О Г Р А М М И Р О В А Н И Я
Краткое содержание: программы, номера строк, редактирование
программ с использованием клавиш:
< вверх>, < вниз>, EDIT,
команды RUN, LIST, GO TO , CONTINUE,INPUT,
NEW, REM, PRINT, STOP в INPUT данных, BREAK
Наберите эти две строки программы вычисления суммы двух чисел
10 LET A=10
20 PRINT A
так, чтобы на экране появилось:
10 (>) LET а=10
20 PRINT A
(K)
Строка программы должна начинаться с номера, который не запи-
сывается в память, а служит лишь для указания порядка следования
строк в программе, что важно при ее выполнении.
Теперь наберите:
15 LET в=15
и введите. Подобного невозможно было бы сделать, если бы нумерация
начиналась с 1 и 2, а не с 10 и 20, как в нашем случае, (номер
может быть в интервале от 1 до 9999).
Допустим, теперь вам понадобилось изменить строку 20 на сле-
дующую:
20 PRINT а+в
Это можно сделать используя команду EDIT.
Символ (>) в строке 15 называется программным курсором, а
строка на которую он указывает, называется текущей, это обычно
последняя введенная строка, но вы имеете возможность переместить
программный курсор выше или ниже использыя соответствующие кла-
виши управления курсором, установите его в строку 20, когда вы
нажмете клавишу EDIT, то в нижней части экрана появится копия
текущей строки, в нашем случае копия строки 20, нажмите и удержи-
вайте клавишу перемещения курсора вправо до тех пор, пока курсор
(L) не переместится на конец оператора и затем введите 'В' без
нажатия ENTER, строка в нижней части экрана примет вид:
20 PRINT A+B
Теперь нажмите ENTER и это вызовет замену старой строки 20 на
новую записанную в нижней части экрана, на экране это будет
выглядеть так:
10 LET A=10
15 LET B=15
20(>) PRINT A+B
(K)
Запустите программу нажав RUN и ENTER и получите на экране
сумму.
Выполните программу PRINT а,в, переменные сохраняются даже
после завершения программы.
Есть еще одно применение команды EDIT, допустим вам надо
удалить всю строку набранную в нижней части экрана, для этого вы
можете нажать и удерживать до конца строки клавишу DELETE, но
можно сделать быстрее: нажать EDIT, что вызовет копирование те-
кущей строки в нижнюю часть экрана, затем нажать ENTER, строка
заменит такую же в программе, а нижняя часть экрана очистится.
Введите строку:
12 LET B=B
Теперь для удаления этой строки наберите:
12 (и затем ENTER)
программный курсор станет между строками 10 и 15, но клавишами
управления курсором вы можете установить его в любую строку.
Еще раз выполните 12 и ENTER, курсор снова установится между
строками 10 и 15, теперь нажмите EDIT и строка 15 будет скопиро-
вана в нижнюю часть экрана. Оператор EDIT копирует вниз строку
следующую за строкой с новым номером, нажмите ENTER для очистки
нижней части экрана.
Теперь введите:
30 ( и затем ENTER)
программный курсор установится после конца программы, если вы
теперь нажмете EDIT вниз будет перенесена строка 20
и, наконец, выполните команду:
LIST 15
Теперь вы увидите на экране:
15 LET B=15
20 PRINT A+B
Строка 10 не отображается на экране, но она сохраняется в вашей
программе, вы можете убедиться в этом нажав ENTER.
Команда LIST 15 указывает что надо отобразить листинг со
строки с номером 15 и устанавливает в эту строку программный
курсор, это бывает удобно при просмотре очень больших программ.
Другое назначение номеров строк это, служить именем оператора
при ссылке к нему из другого места программы, ( GO TO N).
Команда LIST без операндов выдает листинг с первой строки.
Команда NEW очищает память компьютера от старых программ и
переменных.
Теперь выполним программу переводящую значение температуры в
градусах по Фаренгейту в температуру по Цельсию
10 REM TEMPERATURE CONVERSION
20 PRINT "DEG F", "DEG C"
30 PRINT
40 INPUT "ENTER DEG F ", F
50 PRINTF;( F-32)=5/9
60 GO TO 40
Вы увидите что заголовок выводится в строке 20, и у вас
возникнет вопрос, что же делает строка 10? компьютер игнорирует
эту строку. Это коментарии (REMARK или RENAMBER) все что следует
после REMARK компьютером игнорируется до конца строки.
Вычисления доходят до строки 40 и компьютер переходит в
режим ожидания значения переменной F, вы можете ввести это
значение в режиме (L), наберите число и нажмите ENTER, компьютер
выведет результат и снова перейдет в ожидание следующего числа,
этот переход обеспечивается в строке 60 в операторе GO TO 40.
Если на запрос очередного числа ответить STOP, то компьютер
остановится с выдачей сообщения: 'H STOP IN INPUT IN LINE 40'
которое поясняет причину останова и место останова (первый опера-
тор в строке 40).
Если теперь вы желаете вновь продолжить выполнение программы
то введите CONTINUE и компьютер запросит очередное число.
При использовании CONTINUE компьютер запоминает (до выдачи
'0 ок') номер последней выполняемой строки и продолжает выполне-
ние именно с этой строки.
Просмотрите внимательно оператор PRINT в строке 50, запятая в
нем очень важна, запятые в операторе PRINT используются для
указания того, что вывод следующий после запятой должен продолжа-
ться либо с левого края экрана либо с его середины, в зависимости
от того какая это по порядку запятая в данном операторе, так в
строке 50 запятая предписывает выводить значение температуры в
градусах цельсия с середины эрана.
Если использовать в операторе PRINT вместо запятой точку с
запятой ';', то очередные данные будут выводится непосредственно
после предыдущих.
Оператор в строке 30 выводит чистую строку.
Оператор PRINT всегда начинает вывод с начала следующей
строки, но это можно изменить, поставив в конце предыдущего
оператора PRINT запятую или точку с запятой :
50 PRINT F ,
60 PRINT F;
Не путайте эти знаки с двоеточием ':', которое используется
только для разделения разных операторов в одной строке.
Теперь наберем еще несколько программных строк:
100 REM THIS POLITE PROGRAM REMEMBER YOUR NAME
110 INPUT N$
120 PRINT"HELLO";N$;"!"
130 GO TO 110
Эта программа никак не связана с набранной нами ранее
программой, но их обе можно держать в памяти компьютера одновре-
менно.
Для того чтобы выполнить последнюю программу, надо ввести
команду:
RUN 100
Эта программа вводит строку символов, что должно указывать
строковыми ковычками, если их опустить, то компьютер попытается
найти переменную с таким именем и использовать ее значение в
качестве INPUT-данных, например ответьте программе
N$ (удалив кавычки)
это сделает оператор INPUT в строке 110 подобным оператору
LET N$=N$
Если вы решили ввести STOP под строковый ввод, то должны
установить курсор в начало строки, используя клавишу управления
курсором <влево>.
Действие команды 'RUN 100' подобно действию оператора GO TO,
но имеются и отличия, RUN 100 очищает все переменные и экран и
после этого выполняет GO TO 100, другое отличие в том, что вы
можете указать RUN без номера строки, и тогда выполнение начнется
с первой строки, а оператор GO TO всегда должен содержать номер
строки.
Обе приведенные программы останавливались нами вводом команды
STOP, но могут быть программы, которые невозможно остановить
подобным образом, например:
200 GO TO 200
RUN 200
Остановить эту программу можно, если нажать клавиши CAPS SHIFT и
SPACE, это вызовет ввод программы BREAK, которая остановит вычи-
сления с выдачей сообщения 'L BREAK INTO PROGRAM'. Команда BREAK
может быть использована и во время выполнения операции на магни-
тофоне или принтере, в этом случае выдается сообщение 'D BREAK
CONT REPEATS', команда CONTINUE в этом случае (как и в большин-
стве других), вызовет повторение оператора, в котором произошел
останов. Ввод команды CONTINUE после сообщения 'L BREAK INTO
PROGRAM' прдолжит выполнение со следующего оператор.
Запустите вторую программу снова и когда она запросит ввод,
введите:
N$ (удалив перемычки)
Поскольку значение N$' не определено, то будет выдано сообщение:
'Z VARIABLE NOT FOUND', если теперь вы выполните:
LET N$="SONETING DEFINITE"
на что компьютер ответит '0 ок,0:1',
а затем введете CONTINUE, то увидите что программа завершится
нормально. Как уже отмечалось сообщение 'L BREAK INTO PROGRAM'
особое, так как выдача после него CONTINUE не вызывает повторение
команды, вызвавшей останов.
Все приведенные в этой главе утверждения PRINT, LET, INPUT,
RUN, LIST, GO TO, CONTINUE,NEW и REM могут быть использованы либо
как операторы в программе, либо как команды, хотя RUN, LIST,
CONTINUE и REM чаще используются как команды, но могут быть
использованы и в программе.