Глава 1. Понятие алгоритма, базовые алгоритмические констркуции - 1.4.3. Циклические алгоритмы

E-mail Печать PDF
Рейтинг пользователей: / 17
ХудшийЛучший 
Индекс материала
Глава 1. Понятие алгоритма, базовые алгоритмические констркуции
1.2. Свойства алгоритма
1.3. Способы записи алгоритмов
1.4. Базовые алгоритмические конструкции
1.4.1. Линейные алгоритмы
1.4.2. Разветвляющиеся алгоритмы
1.4.3. Циклические алгоритмы
1.4.4. Итерационные циклы
1.4.5. Вложенные циклы
1.4.6. Использование рекуррентной формулы
1.5. Тестирование алгоритма
Все страницы

1.4.3. Циклические алгоритмы

При составлении алгоритмов решения большого круга задач нередко возникает необходимость в неоднократном повторении одних и тех же команд. Алгоритм, составленный с использованием многократных повторений одних и тех же действий (циклов) называется циклическим. Однако слово «неоднократно» не означает «до бесконечности». Организация циклов, никогда не приводящая к остановке в выполнении алгоритма («зацикливание» алгоритма), нарушает требование его результативности - получения результата за конечное число шагов.

Рассмотрим графическое представление циклического алгоритма. В него входят в качестве базовых следующие структуры: логический элемент с проверкой условия Р и блок S, называемый телом цикла. Возможен случай, когда тело цикла S расположено после проверки условия Р (цикл с предусловием), поэтому может случиться, что при определенных условиях блок S не выполнится ни разу. Вариант организации цикла, управляемый предусловием, называется циклом «пока».

 

 

нц

Пока Р повторять

          S

кц

Если условие Р не выполняется, то происходит выход из цикла на команду, записанную после строки «конец цикла». Здесь условие Р - это условие на продолжение цикла.

Возможен другой случай, когда тело цикла S выполняется по крайней мере один раз и будет повторяться до тех пор, пока не станет истинным условие Р. Такая организация цикла, когда его тело расположено перед проверкой условия Р, называется циклом с постусловием или циклом «до».

 

нц

До S

Пока не Р

кц

Третий вид циклов - цикл с параметром. Тело цикла S выполняется, пока целочисленный параметр цикла i пробегает множество значений от начального (In) до конечного (Ik).

Переменная i определяет количество повторений тела цикла S. Если шаг изменения значения параметра цикла обозначить через Di, то количество повторений тела цикла n можно вычислить по формуле:

Очень часто в задачах с использованием такого цикла шаг изменения параметра цикла равен 1. Переменные i, In, Ik и Di обычно имеют целый тип.

 

нц

Для i от In до Ik повторять

      S

кц

Цикл выполняется так: начальное значение параметра цикла i равно In. Если i < Ik, выполняется тело цикла S, после чего параметр цикла увеличивается на 1 с помощью оператора присваивания i = i + 1 и снова проверяется условие i < Ik. Тело цикла выполняется до тех пор, пока значение i не превысит Ik.

Пример 1.6. Дано целое положительное число n. Вычислить факториал этого числа. Факториал любого целого положительного числа n определяется как произведение чисел от 1 до заданного числа n: n! = 1 2 3 ... n. По определению 0! = 1 и 1! = 1.

Решение. Задача решается с помощью циклического алгоритма. Введем следующие обозначения: N - заданное число, F - факториал числа, R - параметр цикла. Составим два варианта алгоритма: с применением цикла с предусловием и цикла с параметром.

Цикл с предусловием

Цикл с параметром

алг
нач

 

 

 

 

 

 

 

 

кон

Факториал 1 (арг N; рез F)
цел R

ввод N

F = 1

R = 1

нц

пока R < N повторять
        F = F * R
         R = R + 1
кц
вывод «Факториал =», F

алг

нач

 

 

 

 

 

 

 

кон

Факториал 2 (арг N; рез F)
цел R

ввод N

F = 1

нц

для от до повторять
        F = F * R

кц
вывод «Факториал =», F

       

 

Выполним алгоритм при n = 4.

Цикл с предусловием

 

Цикл  с параметром

R

R < N

F

 

R

R < N

F

1

Да

1?1 = 1

 

1

Да

1?1 = 1

2

Да

1?2 = 2

 

2

Да

1?2 = 2

3

Да

2?3 = 6

 

3

Да

2?3 = 6

4

Да

6?4=24

 

4

Да

6?4=24

5

Нет

-

 

5

Нет

-

Итак, при решении данной задачи выполнение цикла с предусловием ничем не отличается от выполнения цикла с параметром. При R = 5 произойдет выход из цикла и окончательное значение 4! = 24.

В чем же отличие? Посмотрим на структуру этих циклов. В цикле пока начальное значение параметра цикла R задается перед входом в цикл, в теле цикла организовано изменение параметра цикла командой R = R + 1, условие R < N определяет условие продолжение цикла. В цикле с заданным числом повторений эти же команды неявно заданы в операторе заголовка цикла.

Пример 1.7. Вычислить и вывести на печать положительные значения функции  при n = 1, 2, ..., 50.

В этой задаче количество повторений цикла заранее известно. Оно равно 50 и определяется значением переменной n. Следовательно, n является параметром цикла. Для каждого значения n следует вычислить значение y. Так как на печать требуется вывести только положительные значения переменной y, то внутри цикла будет проверка заданного условия.

 

Ввести значение х.

 

Заголовок цикла. Параметру цикла n присвоить начальное значение. Указать условие продолжения цикла.

 

В теле цикла вычислить значение функции y для каждого значения n от 1 до 50.

Если y имеет положительное значение, то напечатать.

 

 

Пример 1.8. Вычислить значение функции  при значениях аргумента x, которое изменяется в диапазоне от 0 до 3 с шагом 0,1.

В примере параметром цикла является аргумент x. Количество повторений тела цикла k = (3 - 0)/0,1 + 1 = 31.

В качестве параметра цикла с заданным числом повторений нельзя взять аргумент функции x, так как аргумент является вещественным числом. Обозначим параметр цикла буквой i, количество повторений параметра равно 31. Начальное значение переменной х задается только один раз, поэтому этот блок должен стоять вне тела цикла. В теле цикла вычислим значение функции y, полученное значение напечатаем. Для получения нового значения y нам необходимо изменять значение переменной x на величину шага.

 

Ввести значение коэффициента a.

 

Задать начальное значение аргумента х.

Параметр цикла i изменяется от начального значения, равного 1, до конечного значения, равного 31 с шагом 1. Он  определяет, сколько раз вычислялось значение y.

 

Напечатать полученное значение y и величину х, при котором оно было получено.

 

 

Обратите внимание, что в этом алгоритме мы не анализируем максимальное значение переменной х, так как оно будет достигнуто, как только значение параметра цикла i станет равным 31.



 

Добавьтe Ваш комментарий

Ваше имя (псевдоним):
Ваш адрес почты:
Заголовок:
Комментарий:

Комментарии

Интересное




Похожие материалы

Партнёры