Примеры задач, при решении которых необходим цикл.
Программирование алгоритмов циклической структуры
Алгоритмическая структура "цикл".
Достаточно часто при организации алгоритма решения задачи необходимо одну и ту же определенную последовательность команд выполнить несколько раз подряд. Командой повторения, -или циклом, называется такая форма организации действий в алгоритме, при которой выполнение одной и той же последовательности команд повторяется до тех пор, пока истинно некоторое логическое выражение.
Для организации цикла необходимо выполнять следующие действия:
• перед началом цикла задать начальное значение параметров (переменных, используемых в логическом выражений, отвечающем за продолжение или завершение цикла);
• внутри цикла изменять переменную (или переменные), которая сменит значение логического выражения, за счет которого продолжается цикл, на противоположное (для того чтобы цикл в определенный момент завершился);
• вычислять логическое выражение — проверять условие продолжения или окончаний цикла;
• выполнять операторы внутри цикла;
• управлять циклом, т.е. переходить к его началу, если он не закончен, или выходить из цикла в противном случае.
Различают циклы с известным числом повторений (цикл с параметром) и итерационные (с пред- и постусловием),
Приведем обозначение каждого из видов циклов на блок-схемах алгоритмов.
На схемах "Серия" обозначает один или несколько любых операторов (команд); ЛВ есть логическое выражение (если его значение истина, переход происходит по ветви, обозначенной да, иначе — по нет).
|
|
На схеме цикла с параметром использованы обозначения:
· ПЦ — параметр цикла,
· НЗ — начальное значение параметра цикла,
· КЗ — конечное значение параметра цикла,
· Ш — шаг изменения параметра цикла.
Серию команд, которые выполняются в цикле, называют телом цикла.
Опишем схематично, как выполняется каждый из циклов.
Цикл с предусловием:
а) вычисляется значение логического выражения;
б) если значение логического выражения истина, переход к следующему пункту, иначе к п. д);
в) выполняется тело цикла;
г) переход к п. а);
д) конец цикла.
Цикл с постусловием:
а) выполняется тело цикла;
б) вычисляется значение логического выражения;
в) если значение логического выражения ложь, переход к п. а), иначе к следующему пункту;
г) конец цикла.
Замечание. Таким образом, цикл с постусловием организован, в частности, в алгоритмических языках Паскаль и 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!