Циклические алгоритмы.
Операторы цикла являются наиболее значимыми конструкциями в языках программирования. Именно они делают языки программирования высокого уровня более привлекательными по сравнению, например, с электронными таблицами. От линейных и ветвящихся алгоритмов циклические алгоритмы отличаются наличием в структуре алгоритма обратной связи, которая позволяет некоторые действия повторять многократно, циклически. Эти действия составляют тело цикла.
Существует два принципиально различных типа операторов цикла: оператор цикла с параметром и операторы цикла с условиями. Их условно называют соответственно алгоритмы с циклом типа «для» и алгоритмы с циклом типа «пока». В обоих случаях окончание циклического процесса определяется поставленным заранее условием.
Просмотр содержимого документа
«Циклические алгоритмы»
МКОУ СОШ № 1 Курского муниципального района Ставропольского края
Учитель информатики : Перверзева Елена Геннадьевна
Циклические алгоритмы.
Операторы цикла являются наиболее значимыми конструкциями в языках программирования. Именно они делают языки программирования высокого уровня более привлекательными по сравнению, например, с электронными таблицами. От линейных и ветвящихся алгоритмов циклические алгоритмы отличаются наличием в структуре алгоритма обратной связи, которая позволяет некоторые действия повторять многократно, циклически. Эти действия составляют тело цикла.
Существует два принципиально различных типа операторов цикла: оператор цикла с параметром и операторы цикла с условиями. Их условно называют соответственно алгоритмы с циклом типа «для» и алгоритмы с циклом типа «пока». В обоих случаях окончание циклического процесса определяется поставленным заранее условием.
Циклы типа «пока»
Заранее неизвестно число повторений
«Делай» (DO) «петлю» (LOOP) до тех пор, «пока» (WHILE) условие выполняется, или «пока» (UNTIL) условие не будет выполнено.
Цикл с предусловием Выполняется: пока истинно условие цикла, повторяется выполнение тела цикла.
DO [{WHILE | UNTIL } выражение ]
[ операторы ]
LOOP
Цикл с постусловием
DO
[ операторы ]
LOOP [{WHILE | UNTIL } выражение ]
Цикл без счетчика
WHILE условие
[ операторы ]
WEND
Цикл типа «для»
Заранее известно число повторений
Цикл с параметром
FOR счетчик = начало TO конец [STEP шаг]
[ операторы ]
NEXT [счетчик] [,счетчик]
Задача 1.
Эту задачу можно решать любым способом.
Найти факториал числа N.
Цикл с предусловием |
INPUT N F = 1 R = 1 DO WHILE R F = F * R R = R + 1 LOOP PRINT F | INPUT N F = 1 R = 1 DO UNTIL R N F = F * R R = R + 1 LOOP PRINT F |
Цикл с постусловием |
CLS INPUT N F = 1 R = 1 DO F = F * R R = R + 1 LOOP WHILE R PRINT F | CLS INPUT N F = 1 R = 1 DO F = F * R R = R + 1 LOOP UNTIL R N PRINT F |
Цикл с параметром | Цикл без счетчика |
CLS INPUT N F = 1 FOR i = 1 TO N F = F * i NEXT i PRINT F | INPUT N F = 1 R = 1 WHILE R F = F * R R = R + 1 WEND PRINT F |
Задача 2.
Такого типа задачи удобно решать, используя Цикл с параметром.
1. Старинная задача. Сколько можно купить быков, коров и телят, если плата за быка 10 рублей, за корову – 5 рублей, за телёнка – полтинник (0,5 рубля), если на 100 рублей надо купить 100 голов скота.
b+k+t = 100
10b+5k+0.5t=100
t=100-(b+k)
FOR b=0 TO 10
FOR k=0 TO 20
IF 20*b+10*k+t=200 THEN PRINT “быков “; b; “ коров “; k “ телят “ ; t
NEXT k
NEXT b
2. Сколько всего кур и сколько кроликов, если у них на всех 20 голов и 52 ноги.
х+у=20
2х+4у=52
FOR x = 0 TO 20
y = 20 - x
IF 2 * x + 4 * y = 52 THEN PRINT "кур "; x, "кроликов"; y
NEXT x