|
Глава 3,4,5 - условия, циклы, подпрограммы.
|
Глава 3
У С Л О В И Я
Краткое содержание: IF, STOP,=,>,<,<=,>=,<>
Последовательность выполнения операторов программы не всегда
предсказуема. В определенных местах программы компьютер может
принимать решение о дальнейшем ходе вычисления, оператор, реали-
зующий это имеет форму:
IF- некоторое истинное или ложное выражение,
THEN- некоторое действие.
например выполните команду NEW, а затем наберите и выполните
программу (это игра для двух человек):
10 REM CUESS THE NUMBER ( угадывание числа)
20 INPUT A:CLS
30 INPUT"GUESS THE NUMBER",B (угадайте число)
40 IF A=B THEN PRINT "THIS IS CORREKT": STOP
50 IF BA THEN PRINT"THIS IS TOO BIG, TRY AGAIN"
70 GOTO 30
здесь IF оператор имеет форму: IF условие THEN....
где'...' - последовательность операторов, разделенных двоеточием
обычным образом. Если 'условие' истинно, то выполняются операто-
ры следующие после THEN в противном случае они пропускаются и
выполнение программы продолжается со следующего оператора. Прос
тейшим условием может быть сравнение двух чисел или двух строк.
Числа могут быть либо равны, либо одно больше другого, а строки
либо равны, либо одна следует после другой в алфавитном порядке,
для задания условия используются отношения:
=, <, >, <=, >=, <>
Например, выражения 1<2, -2<1, -3<1 истинны, а выражения 1<0,
0<2 ложны. Строка программы 40 сравнивает числа 'A' и 'B', и,
если они равны, завершает работу, выполняя команду STOP. При этом
будет выдано сообщение '9 STOP, STATEMENT, 30:3',показывающее,что
команда STOP была выдана в 3-ем операторе в 30-й строке.
Знаки условия набирают на клавиатуре следующим образом:
> - SIMBOL SHIFT вместе с T - больше
< - SIMBOL SHIFT вместе с R - меньше
<= - SIMBOL SHIFT вместе с G - меньше или равно
(нельзя набирать < и =>)
>= - SIMBOL SHIFT вместе с E - больше или равно
<> - SIMBOL SHIFT вместе с W - не равно
Глава 4
Ц И К Л Ы
Краткое содержание: FOR, NEXT, TO, STEP
Допустим нам необходимо составить программу, подсчитывающую
сумму вводимых пяти чисел, это можно было бы сделать так:
10 LET TOTAL=0
20 INPUT A
30 LET TOTAL=TOTAL+A
40 INPUT A
50 LET TOTAL=TOTAL+A
60 INPUT A
70 LET TOTAL=TOTAL+A
80 INPUT A
90 LET TOTAL=TOTAL+A
100 INPUT A
110 LET TOTAL=TOTAL+A
120 PRINT TOTAL
Получилась большая и не очень оптимальная программа, можно
решить эту задачу более рационально, если ввести счетчик и опера-
тор GO TO
10 LET TOTAL=0
20 LET COUNT=1
30 INPUT A
40 REM COUNT= NUMBER OF TIME THAT A HAS
BEEN INPUT SO FAR
50 LET TOTAL=TOTAL+A
60 LET COUNT=COUNT+!
70 IF COUNT<=5 THEN GO TO 30
80 PRINT TOTAL
Теперь, изменив условие в строке 70, можно ввести не только
5, но и любое количество чисел, для организации в программе таких
счетчиков существуют специальные операторы FOR и NEXT которые
всегда используются вместе.
Наша программа при исползовании этих операторов будет выгля-
деть так.
10 LET TOTAL=0
20 FOR C=1 TO 5
30 INPUT A
40 REM C= NUMBER OF TIMES THAT A HAS
BEEN INPUT SO FAR льших программ.
50 LET TOTAL=TOTAL+A
60 NEXT C
70 PRINT TOTAL
Здесь 'C' управляющая переменная цикла должна иметь имя в
одну букву, 'C' последовательно принимает значения 1, 2, 3, 4, 5
(предел - конечное значение переменной цикла) и при каждом
проходе выполняются строки 30, 40, 50, затем после того как 'C'
примет пятое значение, выполнится 70-я строка.
Приращение значения управляющей переменной составляет 1, но это
значение можно изменить, используя указание STEP как часть опера-
тора FOR, таким образом общая форма оператора FOR выглядит сле-
дующим образом:
FOR'упр. перем.'='нач.знач.' TO 'предел' STEP' шаг прирощ.'
здесь ' начальное значение', ' предел', 'шаг приращения' -
есть выражения, принимающие числовое значение, и так, если вы
замените строку 20 программы на
20 FOR C=10 TO 5 STEP 3/2
то 'C' последовательно примет значения, 5 и 4
Выполните программу, выводящую числа от 1 до 10 в убывающей
последовательности: 10 FOR N=10 TO 1 STEP -1
20 PRINT N
30 NEXT N
Следующая программа выводит числа домино:
10 FOR M=0 TO 6
20 FOR N=0 TO M
30 PRINT M;":";N;" ";
40 NEXT N
50 PRINT
60 NEXT M
Значение STEP, равное 0, вызовет бесконечное повторение
цикла, этого не рекомендуется делать.
Глава 5
П О Д П Р О Г Р А М М Ы
Краткое содержание GO SUB, RETURN
Иногда бывает удобно некоторые фрагменты программы предста-
вить в виде отдельных частей, по нескольку раз используемых в
различных местах программы. Такие части оформляются как подпрог-
раммы, которые могут вызываться в любом месте программы.
Для этого используются операторы GO SUB (GO TO SUBROUTINE) и
RETURN в форме: GO SUB N
где 'N' номер первой строки в подпрограмме.
Этот оператор подобен GO TO с той разницей, что при использова-
нии GO SUB компьютер запоминает следующий после GO SUB оператор,
котороMу и передается управление после выполнения программы.
Делается это посредством помещения номера оператора (адреса
возврата) в специальную область памяти, называемую GO SUB стек.
RETURN выбирает верхний адрес возврата из GO SUB стека и продол-
жает выполнение программы с оператора следующего после оператора
с этим номером. Приведем пример :
100 LET X=10
110 GO SUB 500
120 PRINT S
130 LET X=X+S
140 GO SUB 500
150 PRINT S
160 LET X=X+2
170 GO SUB 500
180 PRINT S
190 STOP
500 LET S=0
510 FOR U=1 TO X
520 LET S=S+U
530 NEXT U
540 RETURN
В общем случае подпрограмма может вызывать другие подпрограм-
мы и даже саму себя (такая подрограмма называется рекурсивной).
|
|