Читайте также:
|
|
На языке QBasic они записываются следующим образом:
FOR Счетчик=НачЗнач TO КонЗнач [STEP шаг]
тело цикла
NEXT [Счетчик]
Параметры указанные в квадратных скобках являются не обязательными (их можно не записывать). По умолчанию шаг цикла равен одному, т.е. каждый раз после прохождения тела цикла счетчик увеличивается на единицу.
ПРИМЕР: Вывести на экран все числа от 1 до 100. Для этого можно было бы написать следующую программу:
REM Вывод чисел от 1 до 100
PRINT 1
PRINT 2
PRINT 3
PRINT 4
PRINT 5
PRINT 6
PRINT 7
...
PRINT 98
PRINT 99
PRINT 100
END
Всего каких-то 102 строчки;-). Хотя эту же программу можно написать намного короче:
REM Вывод чисел от 1 до 100
FOR I=1 TO 100
PRINT I
NEXT
END
Немного исправив программу можно сделать, чтобы она выводила все числа от a до b.
REM Вывод чисел от a до b
a=55
b=107
FOR I=a TO b
PRINT I
NEXT
END
Легко сделать, чтобы программа выводила числа в обратном порядке. Для этого шаг цикла должен быть равен -1 (минус один). В этом случае значение счетчика каждый раз после прохождения цикла будет уменьшено на единицу.
REM Вывод чисел от b до a
a=55
b=107
FOR I=b TO a STEP -1
PRINT I
NEXT
END
S=0
S=S+a - приемы в программировании
N=1
N=N*a
ПРИМЕР: Вычислить сумму двухзначных натуральных чисел.
REM Вычислить сумму двухзначных натуральных чисел
s=0
FOR I=10 TO 99
s=s+I
NEXT
PRINT "Результат = ",s
END
Программа перебирает числа от 10 до 99, каждый раз выполняя действия s=s+I. С точки зрения математики это совершенно бессмысленная запись, но рассмотрим её внимательней.
ПРИМЕР: вычислить факториал числа а (записывается так: а!). Факториал - это произведение чисел от 1 до а. Например, 5! (факториал пяти) - это 5!=1*2*3*4*5
REM Вычислить факториал числа
a=5
f=1
FOR I=1 TO a
f=f*I
NEXT
PRINT f
END
Вы, конечно, заметили, что до начала цикла мы присвоили переменной f значение равное единице. Иначе бы мы получили в результате ноль.
В субботу вечером вы смотрите телевизор. Время от времени поглядываете на часы и если время меньше полуночи, то продолжаете смотреть телевизор, если это не так, то вы прекращаете просмотр телепередач. Это тоже циклический процесс.
Циклы такого вида называют - циклы с предусловием.
На языке QBasic они записываются следующим образом:
DO WHILE условие
Тело цикла
LOOP
В этом цикле проверяется условие и если оно выполняется (ИСТИНА), то выполняется тело цикла до ключевого слова LOOP, затем условие проверяется снова... и так до тех пор, пока условие истинно.
DO UNTIL условие
Тело цикла
LOOP
Этот цикл отличается от предыдущего только тем, что он выполняется до тех пор, пока условие не истинно (т.е. совсем наоборот).
ПРИМЕР: Вывести все натуральные числа меньше данного.
REM Вывод всех чисел меньше данного
a=0
chislo=10
DO WHILE a<chislo
PRINT a
a=a+1
LOOP
END
Стоит обратить внимание на то, что цикл может быть не выполнен ни разу (если условие первоначально не истинно, например, a =5, а chislo =4). И наоборот, если условие будет истинно при любых значениях переменный, то цикл будет выполняться бесконечное число раз (произойдет зацикливание).
Пример цикла, который будет выполняться бесконечное число раз:
REM зацикливание
DO WHILE a=a
PRINT "Это сообщение будет выводиться на экран постоянно"
LOOP
PRINT "А это сообщение вы не увидите никогда"
END
Вам надо поточить все карандаши в коробке. Вы точите один карандаш и откладываете его в сторону. Затем проверяете, остались ли карандаши в коробке. Если условие ложно, то снова выполняется действие 'заточить карандаш'. Как только условие становится истинным, то цикл прекращается.
Циклы такого вида называют - циклы с постусловием.
На языке Basic они записываются следующим образом:
DO
Тело цикла
LOOP WHILE условие
DO
Тело цикла
LOOP UNTIL условие
Циклы такого рода отличаются тем, что хоть один раз, но тело цикла будет выполнено вне зависимости от условия. Условие проверяется после первого выполнения тела цикла.
Пример: Вычислите сумму цифр в числе.
REM Сумма цифр числа
s=0
INPUT "Введите число: ", chislo
a=chislo
DO
s=s+a MOD 10
a=a/10
a=INT(a)
LOOP UNTIL a=0
PRINT "Сумма цифр числа ",chislo," равна: ", s
END
Переменную s используем для хранения суммы цифр, предварительно обнулив. До начала цикла в переменную a заносим значение переменной chislo, чтобы сохранить значение chislo для ответа. Все дальнейшие преобразования осуществляем с переменной а. В цикле берем остаток от деления на 10 (последняя цифра числа) и прибавляем к тому, что уже есть в переменной s; делим значение переменной а на 10, берем целую часть (т.е. отбрасываем последнюю цифру числа) и заносим в а. Цикл продолжается до тех пор пока значение переменной а не окажется равным нулю (перебрали все цифры числа). Результат выводим на экран.
Дата добавления: 2015-02-16; просмотров: 25 | Поможем написать вашу работу | Нарушение авторских прав |