SELECT CASE арифм. _ выражение или симв. _ выражение
CASE условие1
<блок команд1>
CASE условие2
<блок команд2>
…
[CASE ELSE
<блок командN>]
END SELECT
В поле операндов SELECT CASE записывается произвольное арифметическое выражение или символьное выражение, которое в процессе выполнение программы принимает то или иное символьное значение.
В поле операндов каждое CASE надо указать условие в одном из форматов:
1) CASE константа 1, константа_2,
2) CASE IS знак _ отношения константа
3) CASE константа 1, TO константа_2
Константы в условии должны быть того же типа, что и выражение в LECT CASE.
Алгоритм множественного выбора заключается в следующем. Сначала вычисляем значение выражения, записанного в SELECT CASE. Далее проверяется, удовлетворяет ли это значение одному из указанных в CASE условий. Если значение удовлетворяет какому-то условию, выполняется ряд команд, следующий за данным CASE.
ПРИМЕР:
INPUT A
SELECT CASE
CASE 1,5
PRINT “A равно 1 или 5”
CASE IS>5
PRINT “A больше5”
CASE –8 TO 2.5
PRINT “a не меньше –8, но больше 2.5”
CASE ELSE
PRINT “ Ни одно условие не выполняется”
END SELECT
Если ни одно условие не удовлетворяется, выполняется блок следующий за CASE ELSE.
Операторы цикла
При решении многих задач возникает необходимость многократного повторения одних и тех же действий, но над различными значениями переменных, определяющих эти действия. Такие вычислительные процессы называются циклическими, а многократно повторяемые участки –циклами. В BASIC существуют специальные операторы цикла, синтаксическая структура которых имеет вид
FOR V=A1 TO A2 STEP A3
Операторы
Области (тела)
Цикла
NEXT V
где V- параметр или счетчик цикла; A1,A2,A3-выражения определяющие соответственно начальное А1, конечное А2 значения счетчика и шаг изменения параметра цикла А3.
Такая структура предписывает выполнить все операторы, расположенные между FOR и NEXT, для всех значений параметра цикла V, удовлетворяющих условию (A2-V)*A3>=0.
Количество повторений цикла определяется по формуле
K=[(A2-A1)/A3]+1
где []-целая часть частного.
Конструкция STEP A3 может быть опущена, если А3=1. Например, при выполнении программы
For x%=1 to 8 step 2
Print 2^x%;
Next x%
End
на печать будет выведена последовательность 2, 8, 32, 128.
В качестве шага цикла разрешается использовать любые значения, в том числе отрицательные и дробные. Например,
For l=3.5 to 1 step -.5
Print l;
Next l
На экран будет выведена строка 3.5 3 2.5 2 1.5 1.
Переменная являющаяся счетчиком цикла, может использоваться внутри цикла как любая другая переменная, в частности, можно менятьее значение,что, однако, делать не рекомендуется, так как это может повлиять на число повторений оператора цикла. Например, программа
For x=1 to 99 step 2
Print x
X=2*x
Next x
End
Выдает на печать только шесть значений x:1, 4, 10, 22, 46, 94.
При выходе из цикла, по какому –либо оператору условного или безусловного перехода значение счетчика цикла равно последнему значению внутри цикла. Например, рассмотрим программу, реализующую вывод на печать первого положительного значения функции y=x^2-5*X+6 при изменении аргумента от 2,5 до 4 с шагом 0,2.
For x=2.5 to 4 step 0.2
Y=x^2-5*x+6
If y>0 then H1
Next x
H1:
Print “x=”; x, “y=”;y
End
В отличие от счетчика цикла начальное (А1) и конечное (А2) значения параметра цикла и шаг его изменения (А3) являются неизменными в течение выполнения цикла.
Разрешается использование цикла в цикле (вложенных циклов).
В этом случае внутренний цикл должен полностью находиться в теле внешнего цикла. Например,
For A=……
For B=…..
|
|
next B
for c=…….
|
next c
next A
Рассмотрим пример. Пусть необходимо составить программу вычисления значений функции двух переменных z=(x^2+y^2)*(sinx+ cosy) при изменении x от 1 до 3 с шагом 0,5 и y от 0 до 4 с шагом 0,5.
INPUT x0,xk,hx,y0,yk,hy
For y=y0 to yk step hy
For x=x0 to xk step hx
Z=(x^2+y^2)*(sinx+cosy)
Print “x=”;x,”y=”;y,”z=”;z
Next x
Next y
End