Цикл с заданным числом повторений




Лабораторная работа №7

Линейные алгоритмы

Теоретические основы

Циклические структуры

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

Считается, что если бы в программах не было возможности организовать циклы, то применять ЭВМ для решения многих задач не имело бы смысла.

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

Циклические алгоритмы находят самое широкое применение в программировании, так как при этом человек составляет программу один раз, а ЭВМ выполняет ее многократно. Циклические алгоритмы часто называют циклами.

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

Цикл с заданным условием продолжения работы

(цикл-ПОКА)

Логика работы такой структуры описывается схемой, показанной на рис. 1, а.

Рис. 1. Структура цикл-ПОКА: а – развернутая схема цикла;

б – запись в псевдокодах; в – компактная схема цикла

 

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

 

Цикл с заданным условием окончания работы

(цикл-ДО)

Структура цикл-ПОКА предусматривает вариант, когда тело цикла не выполняется ни разу. Такое возможно, если условие, стоящее в начале цикла, сразу же не выполняется. Когда на практике возникает необходимость использовать структуру, у которой тело цикла выполняется хотя бы один раз, то в этом случае применяется структура цикла, приведенная на рис. 2.

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

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

 

Рис. 2. Структура цикл-ДО: а – развернутая схема цикла;

б – запись в псевдокодах; в – компактная схема цикла

Цикл с заданным числом повторений

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

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

 
 

 


Рис. 3. Развернутая схема цикла с заданным числом повторений

 

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

Прочитать этот алгоритм можно следующим образом: «Меняя параметр от начального значения до конечного значения, повторять тело цикла».

Алгоритм, приведенный на рис. 9, принято называть развернутой схемой цикла с заданным числом повторений. Такая схема является удобной для анализа алгоритма и поиска ошибок. Однако при написании алгоритма можно использовать и компактную запись. В псевдокодах она выглядит так:

 


 

Цикл по параметр от начальное значение

до конечное значение шаг приращение;

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

Конец-цикла.

 

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

 

Для изображения компактной графической схемы цикла с параметром могут быть использованы символы “Подготовка” или “Граница цикла” (см. табл. 1), как показано на рис. 4.

 
 

 

 


Рис. 4. Компактная запись цикла с параметром: а – с использованием символа “Подготовка”; б – с использованием символа “Граница цикла”

 

 

На рисунке обозначено: i – параметр цикла; iн – начальное значение параметра; iк – конечное значение параметра; Di – приращение (шаг). Если величина шага в цикле с параметром равна единице, то в заголовке цикла шаг можно не указывать.

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

 

 
 

 


 

Рис. 5. Развернутая схема цикла с заданным числом повторений:

а – с возрастающим параметром; б – с убывающим параметром

 

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


Пример 1. Определить значение переменной M, которое будет получено в результате выполнения фрагмента алгоритма:

........

M:=A;

Цикл по Т от А до В шаг С;

М:=М+1;

Конец-Цикла;

М:=М+В;

........

при условии, что переменные имеют следующие значения: А=1; В=5; С=1.

Данный фрагмент алгоритма содержит цикл с заданным числом повторений. Параметр Т изменяется от 1 до 5 с шагом 1. Сначала в таблицу состояния записывается содержимое ячеек памяти перед выполнением цикла: А=1; В=5; С=1; М=1 (табл. 1).

Таблица 1

Таблица значений

 
 

 

 


 

 

В соответствии с развернутой схемой цикла с заданным числом повторений, параметру цикла присваивается начальное значение: Т=1. Затем проверяется условие: «Значение параметра больше конечного значения?»; в нашем случае: 1>5? Данное условие не выполняется, поэтому далее следуют операторы тела цикла. В рассматриваемом примере в теле цикла стоит один оператор присваивания: М:=М+1. В ячейку М записывается число 2. Затем к параметру добавляется шаг, и Т принимает значение, равное 2. После проверки условия 2 > 5 снова выполняется оператор, стоящий в теле цикла, происходит увеличение параметра на величину шага и, цикл повторяется в очередной раз. Последний раз тело цикла будет выполняться, когда параметр равен конечному значению, т.е. Т=5.

По окончании цикла: М=6, Т=6. Следующим за циклом стоит оператор присваивания М:=М+В, поэтому после выполнения всего фрагмента алгоритма М=11 (табл. 1).

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

Данная задача может быть решена с помощью ЭВМ следующим образом. В памяти машины выделяется ячейка С, в которую первоначально записывается 0. Затем, используя цикл с заданным числом повторений, к содержимому ячейки С прибавляют значение очередного элемента ХI. Математическая модель решаемой задачи имеет вид:

 

Ввод: N – число элементов;

Х(I:N) – значения элементов.

 

Расчет:

 

Вывод: Х, С.

 


 

Схема алгоритма решения задачи приведена на рисунке.

 

       
 
 
   

 


Решение задач

ЗАДАЧА 1. Определить, что выводится на печать при выполнении фрагмента алгоритма:

г) Y:=0;

Цикл-ДО Y ³ 5;

Вывод(Y);

Y:=Y+1;

Конец-Цикла;

 

РЕШЕНИЕ

Составим таблицу значений:

Память Условие Вывод
     

ЗАДАЧА 2. Разработать алгоритм, обеспечивающий вычисление и печать значений функции Y=f(X) в точках X1, X2,…,XN:

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-12-29 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: