Оператор цикла с известным числом повторений
FOR …TO … NEXT Этот оператор позволяет организовать выполнение блока операторов определенное число раз (организуют цикл по счетчику). Поэтому он может заменить операторы GOTO и IF. Общий вид оператора: FOR U = A1 TO A2 [STEP A3] тело цикла NEXT U где: U – управляющая переменная цикла; A1, A2 – начальное и конечное значение управляющей переменной; A3- шаг изменения управляющей переменной; тело цикла – набор операторов повторяющегося вычислительного процесса. Если А3=1, то конструкцию STEP A3 можно опустить. Программа в предыдущем примере эквивалентна следующей: Пример 1. Найти сумму и произведение 5 чисел. REM Объявление начальных значений переменных SUM=0: P=1 REM Начало цикла FOR U=1 TO 5 PRINT “Введите “; U; “ число” INPUT NUM REM Вычисление суммы SUM=SUM+NUM REM Вычисление произведения P=P*NUM NEXT U PRINT “Сумма этих чисел = “;SUM; “Произведение = “;P END
Пример 2. FOR X=1 to 10 STEP 1 Y=X^2+ B*X- C PRINT “ X=“; X, “ Y=“; Y NEXT X Пример 3. Ввод массива REM ВВОД МАССИВА INPUT “ВВЕСТИ L”; L DIM P(L) PRINT “ВВЕСТИ МАССИВ P” FOR I= 1 to L INPUT P(I) NEXT I END Условные циклы Для организации циклов с неизвестным числом повторений (итерационных) используются операторы условных циклов. Оператор цикла с предусловием WHILE … WEND Общий вид этого оператора: WHILE условие тело цикла WEND где: условие – логическое выражение; тело цикла – последовательность операторов. Пока условие истинно, выполняются все операции тела цикла. Еcли условие - “ложь” - то управление передается на оператор, следующий за WEND. Особенности работы оператора: - можно использовать при неизвестном заранее количестве повторений; - можно использовать, если закон изменения параметров выражается формулой; - в теле цикла должен быть оператор, изменяющий условие. Пример 1. Найти количество первых n натуральных чисел, сумма которых не больше 20. SUM=0: N=0 WHILE SUM<=20 N=N+1 SUM=SUM+N WEND PRINT N; SUM END Пример 2. Условный цикл X= 4 WHILE X<= 12 Y=X^2 + B*X - C PRINT “X=“; X, “Y=“; Y X=X+2 WEND Оператор условного цикла DO... LOOP Данный оператор аналогичен оператору WHILE... WEND, однако отличается от него большей гибкостью. Управляющее условие может быть размещено как в начале цикла, так и в конце. Проверка вверху: DO WHILE условие DOUNTIL условие тело цикла тело цикла LOOPLOOP Проверка внизу: DODO тело цикла тело цикла LOOP WHILE условие LOOP UNTIL условие где: условие – логическое выражение; тело цикла – последовательность операторов. Использование слова WHILE означает, что цикл будет выполняться до тех пор, пока условие будет иметь значение “истина“. При использовании слова UNTIL цикл выполняется только тогда, когда условие имеет значение “ложь”. При проверке вверху цикл может не выполниться ни разу. При проверке снизу цикл выполнится хотя бы один раз. Пример 1. Найти сумму и произведение 5 чисел. REM Использование формы «проверка-вверху» с условием WHILE REM Объявление начальных значений переменных SUM=0: P=1:N=1 DO WHILE N<=5 PRINT “Введите “; N; “ число” INPUT NUM REM Вычисление суммы SUM=SUM+NUM REM Вычисление произведения P=P*NUM N=N+1 LOOP PRINT “Сумма этих чисел = “;SUM; “Произведение = “;P END Пример 2. Найти сумму и произведение 5 чисел. REM Использование формы «проверка-внизу» с условием UNTIL REM Объявление начальных значений переменных SUM=0: P=1:N=1 DO PRINT “Введите “; N; “ число” INPUT NUM REM Вычисление суммы SUM=SUM+NUM REM Вычисление произведения P=P*NUM N=N+1 LOOP UNTIL N>5 PRINT “Сумма этих чисел = “;SUM; “Произведение = “;P END Вложенные циклы Циклы могут быть вложенными друг в друга. Внутренние циклы должны целиком помещаться во внешних. Если вложены друг в друга два цикла FOR … NEXT, то они должны иметь различные управляющие переменные. Пример. Рассчитать и вывести на экран таблицу Пифагора. PRINT “Таблица Пифагора” FOR x=1 TO 10 FOR y=1 TO 10 A=x*y PRINT USING “###”; A NEXT y NEXT x Результат выполнения программы: Таблица Пифагора 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 20 25 30 35 40 45 50 6 12 18 24 30 36 42 48 54 60 7 14 21 28 35 42 49 56 63 70 8 16 24 32 40 48 56 64 72 80 9 18 27 36 45 54 63 72 81 90 10 20 30 40 50 60 70 80 90 100
|