ГЛАВА 2
ОСНОВЫ ПРОГРАММИРОВАНИЯ
НА ЯЗЫКЕ «BASIC»
Краткое содержания программы; номера строк; редактирование
программ с использованием клавиш: вверх,
вниз, EDIT;
команды RUN, LIST, GO ТО, CONTINUE,
INPUT, NEW, REM, PRINT, STOP в INPUT -
данных; BREAK.
Наберите эти две строки программы вычисления суммы двух чисел
20 PRINT А
10 LET А-10
так. чтоб на экоане появилось:
10 [>] LET А-10
20 PRINT А
Строка программы должна начинаться с номера, который не записыва-
ется в память, а служит лишь для указания порядка следования строк в прог-
рамме, что важно при её выполнении.
Теперь наберите:
15 LET В-15
и введите.
Подобного невозможно было бы сделать, если бы нумерация начина-
лась с 1 и 2, а не с 10 и 20, как в нашем случае. (Номер может быть в интер-
вале от 1 до 9999).
Допустим, теперь Вам понадобилось изменить строку 20 на следую-
щую:
20 PRINT А+В
это можно сделать, используя команду EDIT.
Символ [>] в строке 15 называется программным курсором, а строка, на
которую он указывает, называется текущей. Это обычно последняя введен-
ная строка, но Вы имеете возможность переместить программный курсор
выше или ниже, используя соответствующие клавиши управления курсором.
Установите его в строку 20. Когда Вы нажмёте клавишу EDIT, то в нижней
части экрана появится копия текущей строки, в Нашем случае копия строки
20. Нажмите и удерживайте клавишу перемещения курсора вправо до тех
пор, пока курсор [Ц не переместится на конец оператора, и затем введите
"+В* (без нажатия ENTER). Строка в нижней Масти экрана примет вид:
20 PRINT А+В
Теперь нажмите ENTER и это вызовет замену старой строки 20 на но-
вую, записанную в нижней части экрана. На экране это будет выглядеть так:
10 LET А-10
15 LET В - 15
20 [>] PRINT А+В
Запустите программу, нажав RUN и ENTER и получите на экране сум-
му.
Выполните теперь команду PRINT А, В. Переменные сохраняются даже
после завершения программы.
Есть ещё одно применение команды EDIT. Допустим, Вам надо
удалить всю строку, набранную в нижней части экрана. Для этого Вы можете
нажать и удерживать до конца строки клавишу DELETE. Но можно сделать
быстрее: нажать EDIT, что вызовет копирование текущей строки в нижнюю
часть экрана, затем нажать ENTER, строка заменит такую же в программе. А
нижняя часть экрана очистится.
Введите строку:
12 LET В«8
Теперь для удаления этой строки наберите:
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 15 указывает, что надо отобразить листинг со строки с
номером 15 и устанавливает в эту строку программный курсор. Это бывает
удобно при просмотре очень больших программ. Другое назначение номе-
ров строк, это служить именем оператора при ссылке к нему из другого мес-
та программы, (в GO ТО п). Команда LIST без операндов выдает листинг с
первой строки. Команда NEW очищает память компьютера от старых прог-
рамм и переменных.
Теперь выполним программу, переводящую значения температуры в
градусах по Фаренгейту в температуру по Цельсию:
10 REM Temperature conversion
20 PRINT "deg FVdeg 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 This polite program remembers 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
ТО", но имеются и различия. RUN 100 очищает все переменные и экран, и
после этого выполняет GO ТО 100. Другое отличие в том, что Вы можете ука-
зать RUN без номера строки, и тогда выполнение начнётся с первой строки,
а оператор GO ТО всегда должен содержать номер строки.
Обе приведенные программы останавливались нами вводом команды
STOP, но могут быть программы, которые невозможно остановить подоб-
ным образом, например:
200 GO ТО 200
RUN 200
Остановить эту программу можно, если нажать клавиши CAPS SHIFT и
SPACE. Это вызовет ввод команды BREAK, которая остановит вычисления с
выдачей сообщения "L BREAK into program". Команда BREAK может быть
использована и во время выполнения операции на магнитофоне или принте-
ре. В этом случае выдается сообщение D BREAK - CONt repeats ...и. Ко-
манда CONTINUE.в этом случае ( как и в большинстве других ), вызовет
повторение оператора, в котором произошел останов. Ввод команды
CONTINUE после сообщения "L BREAK into program..." продолжит выпол-
нение со следующего оператора. Запустите вторую программу снова и ког-
да она запросит ввод, введите:
N$ (удалив кавычки)
поскольку значение " N$ " не определено, то будет выдано сообщение:
"2 Variable not found ...". Если теперь Вы выполните:
LET N$ - "Something definite"
на что компьютер ответит "О ОК, 0:1", а затем введете CONTINUE, то
увидите, что программа завершится нормально.
Как уже отмечалось, сообщение "L BREAK into program..." особое, так
как выдача после него CONTINUE не вызывает повторение команды, вы-
звавшей останов.
Все приведенные в этой главе утверждения PRINT, LET, INPUT, RUN,
LIST, GO TO, CONTINUE, NEW и REM могут быть использованы либо как
операторы в программе, либо как команды. Хотя RUN, LIST, CONTINUE и
NEW чаще используются как команды, но могут быть использованы и в прог-
рамме.