Примеры задач, при решении которых необходим цикл.



Программирование алгоритмов циклической структуры

Алгоритмическая структура "цикл".

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

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

• перед началом цикла задать начальное значение па­раметров (переменных, используемых в логическом выражений, отвечающем за продолжение или за­вершение цикла);

• внутри цикла изменять переменную (или перемен­ные), которая сменит значение логического выра­жения, за счет которого продолжается цикл, на про­тивоположное (для того чтобы цикл в определен­ный момент завершился);

• вычислять логическое выражение — проверять ус­ловие продолжения или окончаний цикла;

• выполнять операторы внутри цикла;

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

Различают циклы с известным числом повторений (цикл с параметром) и итерационные (с пред- и постусловием),

Приведем обозначение каждого из видов циклов на блок-схемах алгоритмов.

 

На схемах "Серия" обозначает один или несколько любых операторов (команд); ЛВ есть логическое вы­ражение (если его значение истина, переход проис­ходит по ветви, обозначенной да, иначе — по нет).

На схеме цикла с параметром использованы обозна­чения:

· ПЦ — параметр цикла,

· НЗ — начальное зна­чение параметра цикла,

· КЗ — конечное значение па­раметра цикла,

· Ш — шаг изменения параметра цик­ла.

Серию команд, которые выполняются в цикле, называют телом цикла.

Опишем схематично, как выполняется каждый из циклов.

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

а) вычисляется значение логического выражения;

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

в) выполняется тело цикла;

г) переход к п. а);

д) конец цикла.

Цикл с постусловием:

а) выполняется тело цикла;

б) вычисляется значение логического выражения;

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

г) конец цикла.

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

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

а) вычисляются значения выражений, определяющие начальное и конечное значения параметра цикла;

б) параметру цикла присваивается начальное значение;

в) параметр цикла сравнивается с конечным значением;

г) если параметр цикла превосходит (при положи­тельном шаге) конечное значение параметра цикла (или, наоборот, меньше конечного значения параметра цикла при отрицательном шаге), переход к п. з), иначе к сле­дующему пункту;

д) выполняется тело цикла;

е) параметр цикла автоматически изменяется на зна­чение шага;

ж) переход к п. в);

з) конец цикла.

Циклы с предусловием и постусловием в большин­стве случаев (за исключением отдельных реализаций алгоритмических языков) являются более универсаль­ными по сравнению с циклом с параметром, посколь­ку в последнем требуется заранее указать число повто­рений, в то время как в первых двух это не требуется. Цикл с параметром в любом случае может быть преоб­разован к циклу с пред- или постусловием. Обратное верно не всегда.

примеры задач, при решении которых необходим цикл.

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

Идея решения. Из заданного числа необходимо выби­рать из младшего разряда цифру за цифрой (отбрасывая просмотренную) до тех пор,

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

1. Ввести число п.

2. К:= 0 (подготавливаем счетчик)

3. Если n = 0, переход к п. 7.

4. Если n mod 10 Mod 2=1, тоК:=К+1.

5. n:= n div 10.

6. Переход к п. 3.

7. Вывод К.

8. Конец.

 

Задача решена двумя способами.

Первое решение оформлено с использованием цикла

 с предусловием, второе — с постусловием

 (div и mod обозначают опе­рации вычисления

частного и остатка при делении на­цело).

Пример 2. Дана последовательность, общий член

 которой определяется формулой:

        

 

 

Вычислить при n > 2 сумму тех ее членов,

которые больше за­данного числа ε.

При решении задачи находится очередной член

последовательности и, если он больше ε, добавляется

 к сумме.

1. Ввести ε.

2. S: = 0.

3. А: = 1/4.

4. n: = 3.

5. Сравнить A с ε. Если А <=ε, переход к п. 10.

6. S := S+ А.

7. A:=(n-1)/(n*n)

8. n:=n+1

9. Переход к п. 5.

10. Вывод S.

11. Конец.

В рассмотренных выше примерах количество повто­рений, заранее неизвестно. В первом оно зависит от количества цифр в записи натурального числа, во вто­ром — от числа ε.

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

Пример 3. Найти произведение первых k натураль­ных чисел, кратных трем.

При составлении алгоритма учтем, что первое, нату­ральное число, кратное 3, есть тройка, а все последующие больше предыдущего на 3.

1. Ввод k.

2. Р := 1 (здесь накапливаем произведение).

3. Т := 0 (здесь будут числа, кратные 3).

4. I := 1.

5. Если I > k, переход к п. 10.

6. Т := Т + 3.

7. Р  := Р * Т.

8. I := I + 1.

9. Перейти к п. 5.

10. Вывод Р.  

11. Конец.


Дата добавления: 2020-12-12; просмотров: 944; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!