оператор GOTO (GO ТО)
При помощи этого оператора можно нарушить порядок
выполнения строк, при которомони выполняются одна за другой в
порядке возрастания номеров. Номера являются не более чем
метками для перехода. Указав в операторе номер строки, которую
надо выполнять следующей, вы можете изменить ход программы!
10 INPUT "А=";А
20 INPUT "В=";В
30 LET С=А+В
40 PRINT С
50 GO ТО 10
После выполнения строк 10...40 В строке 50 программа
сообщит интерпретатору, что следующей надо выполнять строку с
номером 10, после чего произойдет так называемое зацикливание,
и программа будет работать бесконечно. Таким образом, вы
получили бесконечный цикл. Гораздо чаще применяются циклы,
число повторений которых известно или вычисляется в программе.
Для их организации служит
оператор цикла
Формат которого!
FOR <параметр цикла> ТО <конечное значение параметра>
STEP (шаг параметра); NEXT (параметр цикла) - конец цикла.
В качестве параметра цикла используется любая переменная.
Например, напишите программу, которая лесенкой будет выводить
на экран любое слово, например "SIRIUS".
10 FOR 1=0 то 19
20 PRINT AT 1,1;"SIRIUS"
30 NEXT I
В этой программе параметром цикла является переменная
"I". Сначала ей задается значение 1=0 и оговаривается, что оно
может меняться до 19. Строго говоря, эта строка должна бы
иметь вид!
10 FOR 1=0 то 19 STEP 1
( .для до шаг ),
но для величины шага +1 подоператор STEP допустимо не
Указывать, интерпретатор примет его значение, равное единице,
так, последовательность выполнения программы.
Для первого прохода значение I принимается равным 0.
Далее проверяется, не больше ли значение I величины конца
цикла, в нашем случае 19. Если 1<=19 (меньше или равно), то к
величине I прибавляется шаг (здесь - 1) и происходит переход к
следующему оператору, находящемуся в строке 20. Там по
правилам работы оператора PRINT печатается слово "SIRIUS",
после чего в стороке 30 встречается слово NEXT, которое
ограничивает содержимое цикла. Это слово является как бы
скобкой, все, что стоит перед ним, относится к циклу, что за
ним - нет. Программа возвращается к началу цикла.
Если величина параметра цикла (I ) станет больше
допустимой величины (19 в нашем случае), то цикл не
выполняется и программа идет дальше, за слово NEXT.
А что если необходим досрочный выход из цикла? Напишем
программу, выводящую на экран любую из 100 введенных букв при
условии, что она не " " (пробел). Для этого вам понадобится
условный оператор IF
10 FOR 1=0 то 100
20 INPUT "LETTER";L&
30 IF L&=" " THEN GOTO 50
40 PRINT L&: NEXT I
50 PRINT "END"
В этой программе вы встречаетесь еще с одним дополнением
- операторы в строке могут быть не в единственном количестве.
В этом случае они, как в строке 40, разделяются ":".
Обратите внимание на строку 30. Здесь введенное в строке
20 значение переменной L& сравнивается со знаком " " и, если
(IF англ.) Значение L& равно " ", то (THEN англ.) Производится
переход к выполнению строки 50, то есть выход из цикла, хотя
параметр цикла I еще не равен 101.
Условный оператор можно использовать при задании условий
50 IF А>В THEN LET А=В
Он может быть сложным
70 IF А>В THEN IF C<D THEN LET U=0
(Если а>в, то если c<D то U=0, в любом другом случае U
равно ранее присвоенному значению).
70 IF А>В AND C<D THEN LET U-0
(Если A>B и C<D то U=0). На месте AND (и англ.) Может
быть OR (или англ.), NOT (не англ.), XOR (исключающее или), а
вместо знаков знаков ">" и "<" использоваться "<=" (меньше или
равно), "=>" (больше или равно), '"О" (не равно), "=" (равно).
Часто при написании программ приходится писать части их,
которые неотличимы друг от друга. Например, в программе,
расчетная часть разделов разная, а выход на экран одинаков. В
этом случае удобно оформлять часто повторяющиеся элементы
программ в виде подпрограмм, а для их выполнения использовать
оператор, который выполняет
переход к подпрограммам
Оператор имеет формат GO SUB N (GOSUB N), где N - номер
строки, с которой начинается подпрограмма. Текст самой
подпрограммы обязательно должен заканчиваться оператором
RETURN (возврат англ.).
70 INPUT А&;А
80 GOSUB 300
90 LET B=A*SIN(X)
300 FOR N=0 ТО 10
310 PRINT AT N,N;N,A
320 NEXT N
В этой программе в строке 80 происходит переход к
подпрограмме, начинающейся со строки 300. После выполнения
подпрограммы по команде RETURN интерпретатор вернет обычный
ход течения программы и следующей будет выполнена команда,
записанная в строке 90. Такая запись позволяет резко сократить
текст программы.
До сих пор вы пользовались такими данными, которые были
записаны в программе с помощью оператора LET или вводились с
клавиатуры оператором INPUT. Есть еще несколько возможностей
описания данных.
Одна из них -