Главная » Файлы » 8 класс

Цикл N раз
28.10.2013, 09:49

Цикл N раз

Лучшее качества компьютеров проявляются не тогда, когда они рассчитывают значения сложных выражений, а когда многократно, с незначительными изменениями, повторяют сравнительно простые операции. Даже очень простые расчеты могут поставить человека в тупик, если их надо повторить тысячи раз, а повторять операции миллионы раз человек совершенно не способен.

С необходимостью повторяющихся вычислений программисты сталкиваются постоянно. Например, если надо подсчитать, сколько раз буква "о" встречается в тексте необходимо перебрать все буквы. При всей простоте этой программы исполнить ее человеку очень трудно, а для компьютера это задача на несколько секунд.

Вспомним, что описание действий, которые могут повторятся указанное число раз или пока не выполнено заданное условие, называется циклом.

При составлении алгоритмов довольно часто встречаются случаи, когда некоторую последовательность команд нужно выполнить несколько раз подряд. Для упрощения записи алгоритма в таких случаях можно использовать специальную конструкцию повторения N раз.

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

нц <количество раз> раз
  <тело цикла (последовательность команд)>
кц


Например, нужно нарисовать десять одинаковых вертикальных палочек.

Чертежник - палочки

Это алгоритм может быть записан так:

использовать Чертежник
алг черточки1
нач
. сместиться в точку(-4,3)
. нц 10 раз
. . опустить перо
. . сместиться на вектор(0,-2)
. . поднять перо
. . сместиться на вектор(1,2)
. кц
. поднять перо
. сместиться в точку(0,0)
кон

Этот цикл выполнится 10 раз, т. е. команды между «нц» и «кц» повторятся 10 раз. Перечень повторяющихся действий называют телом цикла. Однократное выполнение тела цикла называется итерацией.

Без использования цикла программа выглядела бы так:

использовать Чертежник
алг черточки2
нач
. сместиться в точку(-4,3)
. опустить перо
. сместиться на вектор(0,-2)
. поднять перо
. сместиться на вектор(1,2)
. опустить перо
. сместиться на вектор(0,-2)
. поднять перо
. сместиться на вектор(1,2)
. опустить перо
. сместиться на вектор(0,-2)
. поднять перо
. сместиться на вектор(1,2)
. опустить перо
. сместиться на вектор(0,-2)
. поднять перо
. сместиться на вектор(1,2)
. опустить перо
. сместиться на вектор(0,-2)
. поднять перо
. сместиться на вектор(1,2)
. опустить перо
. сместиться на вектор(0,-2)
. поднять перо
. сместиться на вектор(1,2)
. опустить перо
. сместиться на вектор(0,-2)
. поднять перо
. сместиться на вектор(1,2)
. опустить перо
. сместиться на вектор(0,-2)
. поднять перо
. сместиться на вектор(1,2)
. опустить перо
. сместиться на вектор(0,-2)
. поднять перо
. сместиться на вектор(1,2)
. опустить перо
. сместиться на вектор(0,-2)
. поднять перо
. сместиться на вектор(1,2)
. поднять перо
. сместиться в точку(0,0)
кон


Разница заметна на глаз. Вместо того чтобы 10 раз подряд писать
. опустить перо
. сместиться на вектор(0,-2)
. поднять перо
. сместиться на вектор(1,2)

можно записать, что этот блок команд надо повторить 10 раз. Это не только короче, но еще и понятнее.

Блок-схема такого алгоритма выглядит так:

блок-схема цикл N раз

Рассмотрим еще один пример. Вспомним рисование квадратов. Рисование квадрата можно написать как тело цикла, а можно вынести в отдельный алгоритм и в цикле его вызывать. После рисования каждого квадрата, в этом примере, нужно сместиться на вектор(3,0), чтобы следующий квадрат был правее этого. Объясните почему команда сместится в точку в этом цикле не даст нужного результата.

Квадрат

Таким образом программу можно записать так:

использовать Чертежник
алг квадраты
нач
. сместиться в точку(-7,1)
. нц 5 раз
. . квадрат
. . сместиться на вектор(3,0)
. кц

. сместиться в точку(0,0)
кон
алг квадрат
нач
. опустить перо
. сместиться на вектор(0,2)
. сместиться на вектор(2,0)
. сместиться на вектор(0,-2)
. сместиться на вектор(-2,0)
. поднять перо
кон

Задание 1. Измените предыдущий алгоритм, чтобы рисовалось не 5, а 8 квадратов.

Задание 2. Используя цикл нарисуйте рисунок:

Задание

Задание 3. Используя вспомогательный алгоритм рисования дощечки нарисуйте забор. Используйте цикл N раз.

Задание - забор


Категория: 8 класс | Добавил: matematika
Просмотров: 2809 | Загрузок: 0 | Комментарии: 1 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: