Глава 2
Основы программирования н ?
Ц з ы к с б р й с и к
Краткое содержание: программы, помера строк, редактирование прог-
рамм с использованием клавиш: <вверх>,
<вппз>, EDIT, Команды RUN, LIST, GO ТО,
CONTINUE, INPUT, NEW, REM, PRINT, STOP в
INPUT-данных, BREAK*
Наберите эти две строки программы вычисления суммы двух чисел .
20 PRINT А
10 LET А*10
так, чтобы на экране появилось:
*<* ОЗЬВТ А* 1С
ZV PffXtfT А
йсз
строка программы должна начинаться с номера, который не записыва-
ется в память, а служит лишь для указания порядка следования
строк в программе, что важно при ее выполнении.
Теперь наберите:
15 LET В*15
И введите, подобного невозможно было бы сделать, если бы нуме-
рация начиналась с 1 н 2, а не с 10 н 20, как в нашем случае.
(номер может быть в интервале от 1 до 9999).
Допустим, теперь вам понадобилось изменить строку 20 иа следу-
ющую: 20 PRINT А+В
Это можно сделать, используя команду EDIT. Символ [>] в строке
15 называется программным курсором, а строка, на которую он ука-
зывает, называется текущей, это обычно последняя введенная стро-
ка, но вы имеете возможность переместить программный курсор выше
или ниже, используя соответствующие клавиши управления курсором,
установите его в строку 20, когда вы нажмете клавишу EDIT, то в
нижней части экрана появится копия текущей строки, в нашем случае
копия строки 20, нажмите и удержите клавишу перемещения курсора
вправо до тех пор., пока курсор (L) не переместится на конец опе-
ратора и затем введите "+В" (без нажатия ENTER), строка в нижней
части экрана примет вид:
20 PRINT А+В
теперь нажмите ENTER, и это вызовет замену старой строки 20 на
новую, записанную в нижней части экрана:
10 LET А*10
15 LET ЗВ* i 5
20 [>]PRINT А+В
М ________
Запустив программу, нажав RUN и ENTER, получите на экране сум-
му, выполните теперь команду PRINT а, в; переменные сохраняются
даже после завершения программы, есть еще одно применение команды
EDIT, допустим вам надо удалить всю строку, набранную в нижней
части экрана, для этого вы можете нажать и удерживать до конца
строки клавишу DELETE, но можно сделать быстрее: нажать EDIT, что
вызовет копирование текущей строки в нижнюю часть экрана, затем
нажать ENTER, строка заменит такую же в программе, а нижняя часть
экрана очистится.
Введите строку:
12 LET В»В
теперь для удаления этой строки наберите
12 (и затем ENTER)
Программный курсор станет между строками 10 и 15, но клавишами
управления курсором вы можете установить его в любую строку. Еще
раз выполните 12 и ENTER, курсор снова установится между строками
10 и 15. Теперь нажмите EDIT и строка 15 будет скопирована в ниж-
нюю часть экрана. Оператор EDIT копирует вниз строку, следующую
за строкой с новым номером, нажмите ENTER для очистки нижней
части экрана,
теперь введите:
30 (и затем ENTER)
программный курсор установится после конца программы, если вы те-
перь нажмете EDIT вниз будет переслана строка 20, и наконец, вы-
полните команду:
LIST 15
теперь вы увидите на экране:
15 LET В«15
20 PRINT А+В
Строка 10 не отображается на экране, но она сохраняется в ва-
шей программе. Вы можете убедиться в этом нажав ENTER.
Команда LIST IS указывает, что надо отобразить листинг со
строки с номером IS и устанавливает в эту строку программный
курсор. Это бывает удобно при просмотре очень больших программ.
Другое назначение номеров строк -это служить именем оператора
при ссылке к нему другого места программы, (в GO ТО N).
Команда LIST без операндов выдает листинг с первой строки, ко-
манда NEW очищает память компьютера от старых программ и перемен-
ных .
Терерь выполним программу переводящую значения температуры в
градусах по Фаренгейту в температуру по иельсию:
10 REM TEMPERATURE CONVERSION
20 PRINT "DEG F" , " DEG C"
30 PRINT
40 INPUT "ENTER DEG F" , F
50 PRINT F, (F-32) *5/9
60 GO TO 40
Вы увидите, что заголовок выводится в строке 20, и у вас воз-
никает вопрос, что же деЛает строка 10? Компьютер игнорирует эту
строку, это коментарий (REMARK или REMINDER). Все, что следует
после REM компьютером игнорируется до конца строки.
Вычисления доходят до строки 40 н компьютер переходит в ожида-
ние ввода вами значения переменной F, вы можете ввести это значе-
ние в режиме (L). Наберите число и нажмите ENTER, компьютер выве-
дет результат и снова перейдет в ожидание следующего числа. Этот
переход обеспечивается в строке 60 оператором GO ТО 40. Если на
запрос очередного числа ответить STOP, то компьютер остановится с
выдачей сообщения: 'и STOP IN INPUT IN LINE 40: 1', которое по-
ясняет причину останова и место останова (первый оператор в стро-
ке 40). Если теперь вы желаете вновь продолжить выполнение прог-
раммы, то введите CONTINUE и компьютер запросит очередное число.
При использовании CONTINUE компьютер запоминает (до выдачи им '0
ок') номер последней выполнявшейся строки и продолжает выполнение
именно с этой строки. Посмотрите внимательно оператор PRINT в
строке 50, запятая в нем очень важна, запятые в операторе PRINT
используются для указания того, что вывод, следующий после запя-
той, должен продолжаться либо с левого края экрана, либо с его
середины, в зависимости от того какая это по порядку запятая в
данном операторе, так в строке 50 запятая предписывает выводить
значения температуры в градусах цельсия с середины экрана. Если
использовать в операторе PRINT вместо занятой точку с запятой (';
'), то очередные данные будут выводиться непосредственно после
предыдущих. Оператор в строке 30 выводит чистую строку. Оператор
PRINT всегда начинает вывод с начала следующей строки, но это
можно изменить, поставив в в конце предыдущего оператора PRINT
запятую или точку с запятой:
50 PRINT F,
60 PRINT F;
Не путайте эти знаки с двоеточием (': *), которое используется
только для разделения разных операторов в одной строке.
Теперь наберем несколько программных строк:
100 REM TNIS POLITE PROGRAM REMEMBER YOUR NAME
1 10 INPUT NS
120 PRINT "N'ELLO"; N*; "I"
130 GO TO 110
Эта программа никак не связана с набранной нами ранее програм-
мой, но их обе можно держать в памяти компьютера одновременно.
Для того, чтобы выполнить отдельно только последнюю программу,
надо ввести команду:
RUN 100
Эта программа вводит строку символов, что должно указываться
строковыми кавычками, если их опустить, то компьютер попытается
найти переменную с таким же именем и использовать ее значение в
качестве INPUT-данных, например, ответьте программе
N* (удалив кавычки)
это сделает оператор INPUT в строке 110 подобным оператору
LET NS=NS
Если вы решили ввести STOP под строковый ввод, то должны уста-
новить курсор в начало строки, используя клавишу управления
курсором <влево>.
Действие команды 'RUN 100' подобно дейспвию оператора 'GO ТО',
но имеются и различия, RUN 100 очищает все переменные и экран и
после этого выполняет GO ТО 100, другое отличие в том, что вы мо-
жете указать RUN без номера строки, и тогда выполнение начнется с
первой строки, а оператор GO ТО всегда должен содержать номер
строки.
Обе приведенные программы останавливались нами вводом команды
STOP, но могут быть программы, которые невозможно остановить по-
добным образом, например:
200 GO ТО 200
RUN 200
Остановить эту программу можно, если нажать клавиши CAPS SHIFT
и SPASE, это вызовет ввод команды BREAK, которая остановит работу
с выдачей сообщения 'L BREAK INTO PROGRAM'. Команда BREAK может
быть использована и во время выполнения операции на магнитофоне
или принтере, в этом случае выдается сообщение "D BREAK-CONt
REPEATS", команда CONTINUE в этом случае (как и в большинстве
других), вызовет повторение оператора, в котором произошла оста-
новка. Ввод команды CONTINUE после сообщения "L BREAK INTO
PROGRAM" продолжит выполнение со следующего оператора.
Запустите вторую программу снова и когда она запросит ввод,
введите: NS (удалив кавычки)
Поскольку значение "NB" не определено, то будет выдано сообще-
ние "2 VARIABLE NOT FOUND", если теперь вы выполните:
LET NB ="SOMETHING DEFINITE"
На что компьютер ответит "0 ок,0. Iм, а затем введите
CONTINUE, то увидите, что программа завершится нормально.
Как уже отмечалось, сообщение "L BREAK INTO PROGRAMM" особое,
так как выдача после него CONTINUE не вызывает повторение коман-
ды, вызывающей останов.
Все приведенные в этой главе утверждения: PRINT, LET, INPUT,
RUN, LIST, GO, CONTINUE, NEW, REM могут быть использованы либо
как операторы в программе, либо как команды, хотя RUN, LIST,
CONTINUE и NEW чаще используются как команды, но могут быть
использованы и в программе.