
- •Павлыш в.Н., Ефименко к.Н., Добровольский ю.Н.
- •1. Алгоритмы и способы их описания
- •2. Алгоритмы линейной структуры
- •3. Алгоритмы разветвляющейся структуры
- •4. Алгоритмы циклической структуры
- •4.1. Структура и основные типы циклов
- •4.2. Алгоритмы нахождения суммы, произведения и количества вычисленных значений
- •4.3. Циклы с неизвестным числом повторений
- •4.4. Вложенные циклы
- •5. Алгоритмы обработки одномерных массивов
- •5.1. Ввод и вывод элементов одномерного массива
- •5.2. Нахождение максимального и минимального элементов массива
- •5.3. Сортировка элементов массива
- •5.4. Циклический сдвиг элементов массива
- •5.5. Добавление и удаление элементов массива
- •6. Алгоритмы обработки двумерных массивов
- •7. Алгоритмы, содержащие вспомогательные подзадачи
- •Задания к контрольной работе Задание №1.Организация линейного и разветвляющегося
- •Варианты заданий.
- •Задание №2. Организация циклов с известным числом повторений
- •Варианты заданий.
- •Задание № 3. Организация циклов с неизвестным числом повторений
- •Варианты заданий.
- •Задание № 4. Организация вложенных циклов
- •Варианты заданий.
- •Задание № 5. Обработка одномерных массивов
- •Задание № 6. Обработка двумерных массивов
- •Варианты заданий.
- •Задание № 7. Использование процедур и функций
- •Варианты заданий.
- •Рекомендации к выполнению контрольной работы
- •Методическое пособие «основы алгоритмизации»
- •Составители: Павлыш Владимир Николаевич, д.Т.Н., проф. Ефименко Константин Николаевич, к.Т.Н., доц.
4.3. Циклы с неизвестным числом повторений
При решении некоторых задач может возникнуть ситуация, когда невозможно заранее определить количество повторений вычислений. В таких случаях речь идет о циклах с неизвестным числом повторений.
В циклах с неизвестным числом повторений вычислительный процесс завершается при выполнении некоторого дополнительного условия. Значения параметра цикла уже не задаётся в виде диапазона, а только указывается его начальное значение и шаг изменения. Тем не менее, организация цикла выполняется по стандартной методике, указанной в п. 4.1. Отличие заключается в том, что не любой тип циклического вычислительного процесса можно использовать. Тип цикла определяется в соответствии с заданным дополнительным условием завершения вычислений. Это однозначно исключает возможность использование цикла «Для» на основе блока модификации. Для определения количества шагов повторения цикла необходимо организовать счетчик.
Пример 4.3.Составить блок-схему алгоритма, вычисляющего значения функцииу = ln(1 + 0.2∙x), при различных значениях параметрах, изменяющегося отxn ≤ 3 с шагомhx = -2.При этом вычислятьудо тех пор, пока выражение под знаком логарифма остается больше 0. Определить количество (k) вычисленных значенийy.
Перед решением задачи необходимо определить тип цикла, который будет использоваться. Вычисляемое выражение содержит «аномалию» (значение под знаком логарифма должно быть больше 0), которая в тоже время является условием завершения вычислений. Другими словами, необходимо вначале проверить возможность вычисления значения у, а только затем вычислять его. Поэтому в данном случае для организации вычислительного процесса можно использовать только цикл с предусловием (рис. 4.3).
В качестве исходных данных вводятся значения переменных хn, hx(блок 2). В блоке 3 задаются начальные значения для параметра циклаxи счетчика количества повторений циклаk. После этого, в блоке 4 одновременно проверяются условие продолжения цикла и возможная «аномалия» (выражение под знаком логарифма должно быть больше 0). В теле цикла для текущего значенияхвычисляется и выводится соответствующее значениеу(блоки 5-6), а также увеличивается значение счетчика вычисленныху(блок 7). В конце тела цикла выполняется переход к следующему значению параметра циклах(блок 8). Цикл работает до тех пор, пока под знаком логарифма не появится выражение ≤ 0. После выхода из цикла в блоке 9 выводится переменнаяk– количество вычисленных значенийу.
Результаты пошагового выполнения цикла в алгоритме, приведенном на рис. 4.3, представлены в таблице 4.3.
Таблица 4.3. Пошаговое выполнение цикла
№ шага |
Текущее значение х (в начале цикла) |
Результат проверки условия продолжения цикла (1+0.2∙x>0) |
Вычисл. значение у |
Текущие значения k |
Новое значение х (в конце цикла) |
1 |
3(xn) |
Истина (1+0.2∙3=1.6 >0) |
0.47 |
k=1 |
1 |
2 |
1 |
Истина (1+0.2∙1=1.2 >0) |
0.18 |
k=2 |
-1 |
3 |
-1 |
Истина (1+0.2∙-1=0.8 >0) |
-0.22 |
k=3 |
-3 |
4 |
-3 |
Истина (1+0.2∙-3=0.4 >0) |
-0.92 |
k=4 |
-5 |
5 |
-5 |
Ложь (1+0.2∙-5=0 >0) |
|
|
|