Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Алгоритмы и программы циклической структуры

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

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

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

Арифметическим циклом называется такой, число повторений которого известно или его можно определить.

Арифметические циклы, различают на циклы «До» и «Пока».

Цикл «До» применяется в том случае, если надо выполнить какие-либо вычисления несколько раз до тех пор, пока выполнится некоторое условие. Особенность этого цикла заключается в том, что он всегда выполняется хотя бы один раз, так как первая проверка выхода из цикла происходит после того, как тело цикла выполнено.

Тело цикла - та последовательность операторов, которые выполняются многократно (в цикле).

Начальное присвоение - задание начальных значений тем переменным, которые используются в теле цикла.

Цикл «Пока» используется в том случае, когда проверка условия производится до выполнения тела цикла. Если при первой проверке условия выхода из цикла выполняется, то тело цикла не выполняется ни разу.

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

 

 

| Начальное | | Начальное |

| присвоение | | присвоение |

-------------- --------------

----------->-- ------->--

| --------- | |

| | Тело | | / \

| | цикла | | < Условие > да

| --------- | \ /

| / \ | |

-да-<---< Условие > | нет--------

\ / | | Тело |

| | | цикла|

нет | | --------

 

 

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

Общий вид оператора цикла

FOR I=A TO B STEP H

< ОПЕРАТОРЫ ТЕЛА ЦИКЛА>

NEXT I

I—имя управляющей переменной;

A— выражение, определяющее начальное значение;

B— выражение, определяющее конечное значение;

H—выражение, определяющее величину приращения.

Если шаг изменения управляющей переменной равен 1, то оператор заголовка цикла может быть записан так

FOR I=A TO B

В операторе FOR управляющей переменной I присваивается начальное значение A и производится анализ на конец цикла. Если начальное значение переменной A меньше конечного значения B, то выполняются операторы тела цикла. Тело цикла начинается за оператором FOR и завершается оператором NEXT(от слова NEXT – следующий.

При выполнении оператора NEXT изменяется значение управляющей переменной (A=A+H) и производится анализ на конец цикла. Цикл повторяется до тех пор, пока значение управляющей переменной не станет строго больше (при положительном приращении) или строго меньше (при отрицательном приращении) конечного значения B.

Цикл FOR…NEXT — это цикл с заданным заранее количеством повторений.

Если A>=B,то число k повторений цикла определяется выражением:

 

, где квадратные скобки означают выделение целой части.

Пример 1.

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

на отрезке [0,1],

если X на этом отрезке изменяется с шагом 0.1.

Найти сумму, произведение значений функции.

Блок-схема алгоритма

 

 

Программа

REM Циклический вычислительный процесс

S=0 ‘Начальное значение суммы

P=1 ‘Начальное значение произведения

FOR X=0 TO 1 STEP 0.1

Y= EXP(X)+SIN(3*X)^2 ‘ Вычисление значений функции

S=S+Y ‘Накопление суммы

P=P*Y ‘Накопление произведения

PRINT “X=”;X;”Y=”;Y‘ Вывод таблицы значений функции

NEXT X

PRINT “Сумма=”;S; “Произведение=”;P;

END

Операторы WHILE…WEND

 

WHILE <УСЛОВИЕ>

<ОПЕРАТОРЫ>

WEND

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

Пример 2.

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

на отрезке [0,1],

если X на этом отрезке изменяется с шагом 0.1.

Найти сумму, произведение значений функции.

Программа

REM Циклический вычислительный процесс

S=0 ‘Начальное значение суммы

P=1 ‘Начальное значение произведения

X=0

WHILE X<=1

Y= EXP(X)+SIN(3*X)^2 ‘ Вычисление значений функции

S=S+Y ‘Накопление суммы

P=P*Y ‘Накопление произведения

PRINT “X=”;X;”Y=”;Y‘ Вывод таблицы значений функции

X=X+0.1

WEND

PRINT “Сумма=”;S; “Произведение=”;P

END

 

Если необходимо вычислить сумму значений некоторой фунции y = f(x) при различных значениях аргумента, целесообразно организовать цикл, в котором надо предусмотреть не только вычисление значений функции, но и накопление суммы путем прибавления полученных слагаемых к сумме всех предыдущих слагаемых. Формула, используемая для накопления суммы, имеет вид S(n)=S(n-1)+Y(n).Поскольку надобности в запоминании значений всех слагаемых и промежуточных сумм нет, в качестве S и Y нужно использовать простые переменные и накопление суммы вести в цикле по формуле S=S+Y, где знак "=" означает присваивание значения. Если начальное значение S предварительно приравнять нулю, то после первого выполнения цикла значение S будет равно первому значению функции Y.

Аналогично накапливается и произведение с той лишь разницей, что для его накопления используется формула P=P*y, а начальное значение произведения должно быть равно единице.

Оператор DO… LOOP с предусловием

DO (WHILE|UNTIL) <УСЛОВИЕ>

<ОПЕРАТОРЫ>

LOOP

Оператор DO… LOOP с послеусловием

DO

<ОПЕРАТОРЫ>

LOOP (WHILE|UNTIL) <УСЛОВИЕ>

Начальное значение параметра цикла задаeтся до цикла. Внутри цикла текущее значение параметра цикла увеличивается на величину шага. Операторы тела цикла выполняются до тех пор, пока значение логического выражения «истинно» или «ложно».

 

Пример 3.

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

на отрезке [0,1],

если X на этом отрезке изменяется с шагом 0.1.

Найти сумму, произведение значений функции.

Программа

REM Циклический вычислительный процесс

S=0 ‘Начальное значение суммы

P=1 ‘Начальное значение произведения

X=0

DO

Y= EXP(X)+SIN(3*X)^2 ‘ Вычисление значений функции

S=S+Y ‘Накопление суммы

P=P*Y ‘Накопление произведения

PRINT “X=”;X;”Y=”;Y‘ Вывод таблицы значений функции

X=X+0.1

LOOP UNTIL X>1

PRINT “Сумма=”;S; “Произведение=”;P

END

 




Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 630; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.