Циклические алгоритмы (№9)

ОГЭ по информатике

Цикл - алгоритмическая структура, в которой многократно выполняются одни и те же действия (эти действия называют телом цикла).

Цикл с условием

Цикл с условием используется тогда, действия повторяются, пока верно условие.

Общий вид цикла "пока":

нц пока условие
  тело_цикла
кц

При выполнении цикла пока Кумир циклически повторяет следующие действия: 

  1. Проверяет записанное после служебного слова пока условие.
  2. Если условие не соблюдается, то выполнение цикла завершается и Кумир начинает выполнять команды, записанные после кц.
  3. Если же условие соблюдается, то Кумир выполняет тело цикла, снова проверяет условие и т. д.

 

Пример алгоритма, который содержит цикл с условием:

цел s, x  |объявляются две целые переменные
s := 0    |присваиваются начальные значения
x := 2
нц пока s<20  |когда сумма s станет больше или равно 20, цикл остановится и дальше выполнение программы идет после строчки кц
   s := s + x
   x := x + 1
кц
вывод s

Разберем, как работает цикл в этом примере. Составим таблицу, которая отображает значения переменных:

s<20?         да да да да да нет
s 0 0+2=2 2+3=5 5+4=9 9+5=14 14+6=20  
x 2 2+1=3 3+1=4 4+1=5 5+1=6 6+1=7  

Итак, после выполнения этого цикла конечные значения переменных равны s=20, x=7

Цикл с переменной (цикл "для")

В данном типе цикла можно с точностью определить количество повторений.

Общий вид цикла "для":

нц для i от i1 до i2
    тело_цикла
кц

Здесь i – величина типа цел (она называется параметром цикла), а i1 и i2 – целые выражения, т. е. выражения типа цел. При выполнении цикла для тело цикла выполняется последовательно для i = i1, i = i1 + 1, ..., i = i2. Если i1 = i2, то тело цикла выполнится один раз для i = i1. Если же i1 > i2, то тело цикла не выполнится ни разу.

Пример:

s:= 0
нц для x от 2 до 5
    s:= s + x
кц
  2 3 4 5
0+2=2 2+3=5 5+4=9 9+5=14

После выполнения цикла переменная s будет хранить значение 14.

Общий вид цикла для с шагом:

нц для i от i1 до i2 шаг d
    тело_цикла
кц

Если шаг i3 (который также должен быть целым выражением) является положительным значением, то тело цикла будет выполняться последовательно для i = i1, i = i1 + d, i = i1 + 2d, ... до тех пор, пока значение i удовлетворяет условию i ≤ i2.

Пример:

s:= 0
нц для x от 1 до 18 шаг 3
    s:= s + x
кц
 x            1 4 7 10 13 16 цикл остановлен, 19 выходит за границы диапазона
 s  0 0+1=1 1+4=5 5+7=12 12+10=22 22+13=35 35+16=51  

После выполнения цикла переменная s будет хранить значение 51.

Примеры решения задач

Пример 1.

Запишите значение переменной s, полученное в результате работы следующей программы:

алг
нач
  цел s, k
  s := 0
  нц для k от 6 до 12
         s := s + 10
  кц
  вывод s
кон

Это цикл с переменной (цикл для). В этом цикле переменная k последовательно принимает значения 6,7,8,9,10,11,12 (всего 7 раз). При этом каждый раз переменная s  увеличивает свое значение на 10. Можно сказать, что раз цикл выполняется 7 раз, то переменная s увеличится на 7*10=70. 

Можно построить таблицу:

k       6 7 8 9 10 11 12
s 0     0+10=10 10+10=20 20+10=30 30+10=40 40+10=50 50+10=60 60+10=70

В качестве ответа берем последнее значение переменной s.

Ответ: 70

 

Пример 2. 
Запишите значение переменной s, полученное в результате работы следующей программы:

алг
нач
   цел  s, k
   s := 0
   нц для k от 4 до 10 шаг 2
          s := s + 11
   кц
   вывод s
кон

Переменная k меняется так: 4,6,8,10 (всего 4 раза).
Тело цикла содержит одну команду, увеличивающую значение переменной s на 11. 
Следовательно, в целом за цикл переменная s увеличит свое значение на 4*11=44. Так как начальное значение этой переменной было 0, то 0+44=44.

Решим табличным способом, показав детально как меняются переменные:

k     4 6 8 10
s 0   0+11=11 11+11=22 22+11=33 33+11=44

Ответ: 44

 

Пример 3. 

Запишите переменной b, полученное в результате работы следующей программы.

алг
нач
   цел  b, n
   b := 1
   нц для n от 8 до 10
          b := b*n
   кц
   вывод b
кон

Переменная n меняется так: 8, 9, 10 (всего 3 раза). 
Тело цикла содержит одну команду, увеличивающую значение переменной b в n раз. 
Решим табличным способом, показав детально как меняются переменные:

n      8 9 10
b 1    1*8=8 8*9=72 72*10=720

Ответ: 720

Пройти тест по этой теме

 

ОГЭ по информатике

blog comments powered by Disqus

Яндекс.Метрика Мой канал на youtube Усть-Куломская школа Усть-Куломский район Коноплев О.О.

© 2016 Рассыхаев А.А.