Операторы цикла

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

Поэтому изучая данный параграф мы переходим к построению циклических алгоритмов.

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

Один из самых распространенных и более используемых имеет вид:

начало цикла FOR 1=1 ТО 10 STEP 1 тело PRINT I

конец цикла NEXT I

Этот оператор состоит из двух частей:

  • 1) заголовка или начала оператора цикла (FOR 1=НЗП ТО КЗП STEP N), где указываются основные параметры: НЗП — начальное значение переменной I, КЗП — конечное значение переменной I, N — шаг изменения переменной I,
  • 2) конца цикла (NEXT I), где проверяются значения переменной цикла и принимается решение, если переменная цикла имеет значение больше чем КЗП, то управление передается оператору следующему за NEXT, иначе повторяется работа операторов, находящихся в теле цикла.

Начальное и конечное значение переменной являются обязательными параметрами, а, если значение шага не указывается, то он по умолчанию принимает значение равное 1. Переменная цикла — это параметр цикла (поэтому такой цикл иногда называют параметрическим циклом). Параметр цикла последовательно принимает значения от начального значения до конечного с указанным интервалом шага.

Что будет, если начальное и конечное значение переменной совпадает? Цикл будет работать только один раз.

Шаг может иметь отрицательное значение. Но тогда начальное значение переменной должно быть больше конечного.

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

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

Общий вид блок — схемы для цикла будет выглядеть следующим образом:

Разберем пример:

Составьте программу, которая напишет на экране Вашу фамилию 10 раз.

В данном случае достаточно один раз написать оператор вывода фамилии на экран и заключить его внутри цикла. Переменная цикла I будет меняться в диапазоне от НЗП=1 до КЗП=10, шаг в данном случае равен единицы, поэтому его можно не указывать.

FOR 1=1 ТО 10

PRINT "Фамилия

NEXT I

Блок-схема такой программы будет следующая:

Часто программисты используют такую интересную функцию, как датчик случайных чисел.

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

Запись А= RND(l) * 100), задает двузначное число, которое получается умножением полученного случайного положительного числа на промежутке от 0 до 1 на 100. Если требуется однозначное число, то надо умножать на десятки. Для получения трехзначного на сотни и т. д.

Разберем примеры

1. Заполните экран случайными точками.

CLS: SCREEN 9

FOR 1=1 ТО 1000

Y=INT(RND(1) * 500)

X=INT(RND(1) * 300) PSET (X,Y)

NEXT I

цикл повторяется 1000 раз

получили случайную координату для X получили случайную координату для Y выводим точку с координатами X, Y

2. Составьте программу, которая построит на экране 20 столбиков случайной высоты.

CLS : X=10:SCREEN 9

FOR 1=1 TO 10

Y=INT(RND(1) * 100) координата Yзадается случайным числом LINE(X, 190)-(X+5,Y) координата Xпостоянная

X=x+10:

NEXT I

Второй тип оператора цикла имеет вид:

DO WHILE условие

Операторы

LOOP

Этот оператор повторяет блок команд, пока условие верно. Как правило, переменная, на которую идет ссылка в условии, должна изменяться в теле цикла.

Необходимо создать программу рисования концентрических окружностей.

CLS

SCREEN 9

R=100

DO WHILE R>10

CIRCLE (100,100),R:R=R-10

LOOP

Условие выполнение цикла проверяется перед выполнением блока операторов

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >