Начало » Конспекты школьника » kumir » Цикл «для»
Цикл «для»
Вспомним задание из предыдущей темы — алгоритм
рисование спирали:
использовать Чертежник
алг спираль
нач
. сместиться в точку(3,3)
. опустить перо
. виток(1); виток(3); виток(5); виток(7); виток (9)
. поднять перо
кон
алг виток(арг
вещ а)
нач
. сместиться на вектор(а, 0)
. сместиться на вектор(0, -а)
. сместиться на вектор(-а-1,0)
. сместиться на вектор(0, а+1)
кон
Обратите внимание на блок команд:
. виток(1); виток(3); виток(5); виток(7); виток (9)
Вспомогательный алгоритм «виток(арг вещ
а)» вызывается 5 раз, но вызывать его в цикле «N раз» нельзя,
т. к. каждый раз он вызывается с разными значениями аргумента.
Но можно заметить, что значения аргумента изменяются от 1 до 9, каждый
раз увеличиваясь на 2. Значит, нам может помочь цикл
со счётчиком. Так же такой цикл называется цикл
«для».
Цикл
со счётчиком — цикл, в котором некоторая переменная изменяет
своё значение от заданного начального значения до конечного значения с
некоторым шагом, и для каждого значения этой переменной тело цикла
выполняется один раз.
Обычно этот цикл применяется в том случае, если нужно перебрать какие-то
значения и для каждого из них выполнить какие-то действия.
Общий вид цикла со счётчиком:
нц для <счетчик> от <нач. знач.> до
<кон. знач.> [шаг <знач.>]
<тело цикла (последовательность команд)>
кц
Указывать шаг необязательно, если он не указан, то считается равным
единице.
Теперь алгоритм «спираль» можем переписать таким образом:
использовать Чертежник
алг спираль
нач
. сместиться в точку(3,3)
. опустить перо
. цел размер
. нц для размер от
1 до 9 шаг
2
. . виток(размер)
. кц
. поднять перо
кон
алг виток(арг
вещ а)
нач
. сместиться на вектор(а, 0)
. сместиться на вектор(0, -а)
. сместиться на вектор(-а-1,0)
. сместиться на вектор(0, а+1)
кон
В этом примере переменная-счетчик «размер» будет получать значения: 1, 3,
5, 7, 9. Т.е. цикл выполниться 5 раз. Для каждого значения переменой
«размер» будет один раз выполнено тело цикла, в нашем примере это вызов
вспомогательного алгоритма «виток(арг вещ
а)».
До первого использования переменной ее нужно описать, т. е. указать
какого она типа. Это делается в нашей программе в строчке «цел размер»,
т. е. мы указываем что будем использовать переменную «размер» для хранения
целых чисел, и следовательно для нее нужно выделить память. Подробнее о
переменных мы будет говорить немного позднее.
Блок-схема такого алгоритма выглядит так:
Рассмотрим еще один пример:
Давайте для начала вспомним предыдущую тему и
напишем вспомогательный алгоритм, который будет рисовать квадрат в точке
(x, y). Для разнообразия для рисования будем использовать команду сместиться
на вектор (в предыдущих примерах смещались в точку).
Алгоритм может быть таким:
алг квадрат(арг
вещ x, y, сторона)
нач
. сместиться в точку(x, y )
. сместиться на вектор(-сторона/2,
сторона/2)
. опустить перо
. сместиться на вектор(сторона,
0)
. сместиться на вектор(0,
-сторона)
. сместиться на вектор(-сторона,
0)
. сместиться на вектор(0,
сторона)
. поднять перо
кон
Используя такой вспомогательный алгоритм, нарисуем такой рисунок:
Для этого воспользуемся циклом «для». Изучите пример программы:
использовать Чертежник
алг рисунок1
нач
. цел z
. нц для z от
2 до 10 шаг
2
. . квадрат(0, 0, z)
. кц
кон
алг квадрат(арг
вещ x, y, сторона)
нач
. сместиться в точку(x, y)
. сместиться на вектор(-сторона/2,
сторона/2)
. опустить перо
. сместиться на вектор(сторона,
0)
. сместиться на вектор(0,
-сторона)
. сместиться на вектор(-сторона,
0)
. сместиться на вектор(0,
сторона)
. поднять перо
кон
В этом примере переменная «z» будет получать значения: 2, 4, 6, 8, 10.
Т.е. цикл выполниться 5 раз. Для каждого значения «z» будет один раз
выполнено тело цикла, в нашем примере это вызов вспомогательного алгоритма
квадрат.
До первого использования переменной ее нужно описать, т. е. указать
какого она типа. Это делается в нашей программе в строчке «цел z», т. е.
мы указываем что будем использовать переменную «z» для хранения целых
чисел, и следовательно для нее нужно выделить память. Подробнее о
переменных мы будет говорить немного позднее.
Как вы обратили внимание в алгоритме использовались не только числа, но и
алгебраические выражения,
формулы, например «-сторона/2». В информатике эти выражения называются арифметическими. Правила языка
позволяют при записи алгоритмов всюду, где можно написать число, написать
и произвольное арифметическое выражение.
Оглавление
|