Как называется цикл с заданным числом повторений
Перейти к содержимому

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

  • автор:

printЗанятие № 2

Если какой-либо фрагмент алгоритма должен быть выполнен многократно, то это циклический алгоритм (цикл).
Циклические алгоритмы можно условно разделить на две группы.
1. Арифметический цикл, у которого заранее известно число повторений.
2. Итерационный цикл, у которого заранее неизвестно число повторений.

Управление циклом выполняет некоторая переменная величина, которая называется «параметр цикла» или «управляющая переменная».
Это переменная программы, которая, как правило, изменяется в теле цикла, определяет число повторений цикла и позволяет вовремя завершить его работу.

Можно выделить четыре составные части цикла.
1. Подготовка цикла: присваивание начальных значений переменным, в том числе параметру цикла.
2. Тело цикла: фрагмент, который должен быть повторен многократно.
3. Изменение параметра цикла: как правило, выполняется в теле цикла.
4. Проверка условия завершения цикла: в проверке условия, явно или нет,присутствует параметр цикла.
Не всегда эти составляющие присутствуют явным образом.

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

while (Условие) < //Количество повторений любое. Тело цикла > do < //Количество повторений любое. Тело цикла > while (Условие) for (объявление параметра цикла) < //Количество повторений фиксировано. Тело цикла >

Пример 1:
Алгоритм построения таблиц значений различных функций. Это,
чаще всего, арифметический цикл. Обычно параметром цикла является аргумент функции. Для функции задана формула вычисления значения `y(x)\ =\ F(x)` .
Известны диапазон изменения аргумента `x_0\ ≤\ x\ ≤\ x_n` , и шаг изменения dx.
Общая схема этого алгоритма на основе цикла while (Pascal) выглядит так:

x = x0; // Подготовка цикла. while x do // Проверка условия завершения. begin y = F(x); // Сколь угодно сложный алгоритм вычисления значения. // Вывод значения таблицы. x += dx; // Приращение управляющей переменной. end; // Выход из цикла. 

Общая схема этого алгоритма на основе цикла do … while на языке Pascal выглядит так:

x = x0; // Подготовка цикла. repeat y = F(x); //Сколь угодно сложный алгоритм вычисления значения. // Вывод значения таблицы. x += sx; // Приращение управляющей переменной. until (x > xn); // Проверка условия завершения. 

Общая схема этого алгоритма на основе цикла for языка Си выглядит так:

for (x = x0; x Все составляющие цикла в заголовке. < y = F(x); //Сколь угодно сложный алгоритм вычисления значения. // Вывод значения таблицы. >;

В алгоритмах вычисления сумм, произведений, количеств, пределов, последовательностей особенностью является содержание тела цикла.
При вычислении суммы к значению суммы многократно прибавляются новые значения слагаемых.
При вычислении произведения значение многократно умножается на очередной сомножитель.
При вычислении количеств значение счётчика увеличивается на 1.
При вычислении предела или последовательности значение многократно вычисляется на базе предыдущего значения.
Итоговое значение, кроме вычисления последовательностей, чаще единственное, так как все остальные вычисленные значения являются промежуточными.
Управление циклами этого вида выполняется также с использованием
управляющих переменных, которыми фактически служит номер вычисляемого значения (слагаемого, множителя, элемента последовательности).
Если число повторений известно, цикл должен быть арифметическим. В задачах вычисления с указанной точностью цикл должен быть итерационным, так как заранее не
может быть известно число повторений, которое понадобится, чтобы достичь заданной точности.

Пример 2. Вычисление суммы известного числа слагаемых. Пусть
требуется вычислить сумму `N` чисел натурального ряда
`S\ =\ 1\ +\ 2\ +\ 3\ +\ 4\ +\ …\ +\ N` , где `N` – любое наперед заданное число.
Это арифметический цикл, у которого параметром является номер слагаемого,который также определяет и значение очередного слагаемого, включаемого в сумму. Обозначим его буквой n, тогда общая формула тела цикла запишется так:
`S=S+n`
Смысл цикличности в том, что к значению суммы многократно прибавляются новые значения слагаемых, обновляя ее. Число повторений цикла равно числу действий сложения, которое нужно выполнить, чтобы достичь результата.
Номер слагаемого (и его значение) `n` меняется в диапазоне от 1 до `N` с шагом, равным 1.

// Код программы на С. int main (void) < int n; // Управляющая переменная. int S; // Сумма ряда. int N; // Число слагаемых, включённое в сумму. scanf ("%d", &N); S = 0; // Инициализация переменной S нулем обязательна. n = 1; // К нулю готовимся прибавить первое слагаемое. do < S += n; //Тело цикла. n ++; // Приращение параметра цикла. > while (n Печать результата вне цикла. printf ("%d", S); return 0; > // End of main 

Поскольку данный цикл арифметический, использование оператора цикла do … while не необходимо, но подчёркивает, что любой тип цикла в С++ можно реализовать с помощью любого оператора цикла.

Пример 3.Организация итерационного цикла на примере алгоритма суммирования. Пусть требуется найти сумму прогрессии
`S=1+1/2+1/3+…+1/n+…` c точностью `»eps»` (например, `»eps»` = 0.001).
Количество слагаемых, которое нужно включить в сумму для достижения заданной точности, неизвестно, но известно условие, определяющее точность вычислений.
Предел значения очередного слагаемого стремится к нулю при `n` , стремящемся к бесконечности.
поэтому можно считать, что именно это значение определяет требуемую точность вычислений, и можно закончить вычисления, когда очередное слагаемое настолько мало, что им можно пренебречь. Все переменные должны иметь вещественный тип, так как участвуют в вычислении вещественного значения.

// Код программы на C. int main (viod) < double S; double eps; // Значение точности вычислений. double n; // Номер слагаемого, определяет также его значение, // изменяется от 1 с шагом 1 scanf ("%lf", &eps); n = 1; S = 0; // Входит в подготовку цикла. do < S += 1. / n; n += 1; >while ( 1. / n >eps); // еps достаточно мало. printf("%8.5lf", S); return 0; > // End of main 

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

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

Урок 42. Цикл с заданным числом повторений. Итерационный цикл

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

image

Пример 1. Дано целое положительное значение N. Требуется вычислить сумму:

image

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

image

Обратите внимание на то, как цикл с предусловием преобразуется в цикл с постусловием — условие цикла помещается после тела цикла и заменяется на противоположное:

И тот, и другой цикл повторят свое выполнение (N + 1) раз. Переменная i выполняет роль не только знаменателя в дроби 1/i!, но и является счетчиком числа повторений цикла. Такие переменные называются параметрами цикла. И еще: в цикле с постусловием служебные слова Repeat и Until сами выполняют роль операторных скобок. Поэтому писать Begin и End здесь не требуется.

Выполнение этих программ на компьютере для значения N = 7 приводит к следующему результату: Е=2,7182539.

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

image

В программе используется оператор цикла For, для которого существуют два варианта:

1) For := То

Do

2) For := Downto

Do

Здесь — имя простой переменной порядкового типа. Выполнение оператора For в первом варианте (То) происходит по следующей схеме.

1. Вычисляются значения и . Это делается только один раз при входе в цикл.

2. Параметру цикла присваивается значение .

3. Значение параметра цикла сравнивается со значением . Если параметр цикла меньше или равен этому значению, то выполняется тело цикла (), в противном случае выполнение цикла заканчивается.

4. Значение параметра цикла изменяется на следующее значение в его типе (для целых чисел — увеличивается на единицу); происходит возврат к пункту 3.

Оператор цикла For объединяет в себе действия, которые при использовании цикла While выполняют различные операторы: присваивание параметру начального значения, сравнение его с конечным значением, изменение значения параметра на следующее.

Во втором варианте оператора For слово Downto буквально можно перевести как «вниз до». В таком случае параметр цикла изменяется по убыванию, т. е. при каждом повторении цикла параметр изменяет свое значение на предыдущее (равносильно i : =pred (i)).

Работая с оператором For, учитывайте следующие правила:

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

Рассмотрим пример программы, в которой в теле цикла будет присутствовать ветвление.

image

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

На рисунке 3.16 приведена блок-схема такого алгоритма.

image

Обратите внимание на то, как отображается на блок-схеме цикл с параметром.

В этом алгоритме использована функция random (х), результатом выполнения которой является случайное целое число из диапазона от 0 до х — 1. Следовательно, выражение random (8)+2 принимает случайные значения от 2 до 9. Функция random называется датчиком случайных чисел.

На Паскале этот алгоритм программируется так:

image

А вот фрагмент интерфейса исполнения этой программы:

Сколько будет 4*8? 21 Неправильно! 4*8=32 Сколько будет 6*9? 54 Правильно! 

В программе используется стандартная процедура randomize. Ее исполнение производит установку случайного начального состояния датчика случайных чисел. Благодаря этому при повторном выполнении программы будут получаться разные последовательности случайных чисел.

image

Вопросы и задания

1. Постройте трассировочную таблицу выполнения программы Summa_1 для значения n = 3.

2. Составьте программу, по которой компьютер десять раз запросит ввод любых чисел и в результате выведет среднее арифметическое значение введенных чисел (массив не использовать). Сделайте три варианта программы, используя операторы цикла While, Repeat и For.

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

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

5. Усовершенствуйте программу TablMul (пример 2 данного параграфа) таким образом, чтобы в результате выводилось сообщение о количестве правильных и неправильных ответов.

6. Усовершенствуйте программу TablMul таким образом, чтобы в результате выводилась оценка, поставленная ученику. Критерии для выставления оценок придумайте сами.

7. Получите таблицу значений функции sin x и cos x на отрезке [0, 1] с шагом 0,1 в следующем виде:

image

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

9. Значение функции е х (экспонента от х) равно сходящейся сумме бесконечного ряда:

image

Получите рекуррентную формулу для слагаемых. Используя операторы цикла While, Repeat и For, составьте три варианта программы вычисления суммы с заданным числом слагаемых.

Итерационные циклы

image

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

image

Пример 1. Снова рассмотрим задачу вычисления суммы числового ряда:

image

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

Поскольку с увеличением значения i величина 1/i! уменьшается, в сумму надо включать все слагаемые, предшествующие первому значению, меньшему ε. Вот две программы решения этой задачи, использующие циклы с предусловием и постусловием:

image

Решить эту задачу, используя цикл с параметром, нельзя. Итерационные циклы программируются путем использования либо цикла-пока, либо цикла-до.

В качестве результата выводится значение суммы и число вошедших в нее слагаемых. Выполнение этих программ для значения ε=10 -8 дает в результате:Е=2,71828182, Слагаемых: 12. Таким образом, за 12 повторений цикла значение константы е получено с точностью до 8 знаков после запятой. Слово «итерации» означает «приближения». С каждым повторением цикла вычисляемая величина приближалась к предельному значению константы.

image

Пример 2. На уроках 33 — 35 «Программирование линейных алгоритмов» была рассмотрена задача вычисления суммы цифр трехзначного натурального числа. Программа имела линейную структуру. Поставим задачу в более общем виде: для любого многозначного натурального числа вычислить сумму всех его цифр.

Выделение цифр происходит с помощью однотипных действий: использования операций mod и div. Очевидно, что их можно «зациклить». Однако число повторений цикла будет разным для чисел разной длины. Поэтому эта задача не решается с помощью цикла с заданным числом повторений. В таком случае в программе можно использовать либо оператор цикла While, либо Repeat и нельзя — цикл с параметром For.

Программа с использованием цикла с предусловием:

image

Поскольку при каждом повторении цикла от числа X отбрасывается одна младшая цифра, закончить цикл нужно тогда, когда X станет равным нулю. Обратите внимание на типы переменных. Надо помнить о разнообразии групп типов в Паскале. Назначение переменной X типа Longint дает возможность вводить в нее значения, включающие до десяти знаков. Для переменной Sum, назначен тип Word, поскольку сумма цифр может быть только положительным числом.

image

Вопросы и задания

1. Найдите все значения натуральных чисел X, Y, Z из интервала от 1 до 10, удовлетворяющих равенству: X 2 + Y 2 = Z 2 .

2. Вычислите количество точек с целочисленными координатами, попадающих в круг радиуса R (R > 0) с центром в начале координат.

3. Старинная задача. Сколько можно купить быков, коров и телят на 100 руб., если в сумме должно быть куплено 100 голов скота, а цена быка — 10 руб., цена коровы — 5 руб., цена теленка — 0,5 руб.?

4. Чем отличается итерационный цикл от цикла с заданным числом повторений?

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

6. Запрограммируйте итерационный цикл вычисления функции е х (см. задание 9 из «Программирование циклов» *1* ) с точностью ε. Сделайте два варианта программы: с циклами While и Repeat. Выполните вычисления для ε = 10 -6 , х = 2 и сопоставьте полученный результат со значением стандартной функции ехр (х).

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

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

*1* Задание 9 из «Программирование циклов»

Значение функции е х (экспонента от х) равно сходящейся сумме бесконечного ряда:

image

Получите рекуррентную формулу для слагаемых. Используя операторы цикла While, Repeat и For, составьте три варианта программы вычисления суммы с заданным числом слагаемых.

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

Рассмотренные типы циклических структур имеют один недостаток: при ошибочном задании исходных данных может произойти зацикливание, т.е. возникает неприятная ситуация, когда происходит бесконечное повторение операторов, входящих в тело цикла. В этом случае приходится принудительно завершать работу программы, иногда это связано с потерей несохраненных данных и самой программы. В практических инженерных задачах обычно известны начальные значения изменяемых величин, закон изменения и конечное число повторений. Переменная, изменение которой организуется в ходе реализации цикла, называется параметром цикла или управляющей переменной. Алгоритм работы цикла с заданным числом повторений (иногда его называют циклом с параметром) приведен на рис. 16. Предварительные вычисления, присваивание параметру начального значения Проверка условия окончания цикла Расчеты при текущем значении параметра цикла Изменение параметра цикла по заданному закону и переход к блоку 2 Рис. 16. Развернутая схема цикла с заданным числом повторений Следует подчеркнуть, что цикл с заданным числом повторений представляет собой соединение линейной структуры (начало цикла), структуры цикл-ПОКА (условие в нем заменено на противоположное) и снова линейной (последовательной) структуры в теле цикла. Прочитать этот алгоритм можно следующим образом: «Меняя параметр от начального значения до конечного значения, повторять тело цикла». Алгоритм, приведенный на рис. 16, принято называть развернутой схемой цикла с заданным числом повторений. Такая схема удобна для анализа алгоритма и поиска ошибок. Однако при написании алгоритма можно использовать и компактную запись. В псевдокодах она выглядит так: Цикл по параметр от начальное значение до конечное значение шаг приращение; операторы тела цикла; Конец-цикла. Необходимо подчеркнуть, что развернутая и компактная записи после реализации в машине дают один и тот же результат. Компактная запись менее громоздка за счет того, что в ней не задаются в явном виде связи между отдельными элементами структуры. Рассмотрим использование циклической структуры этого типа на примере: составить алгоритм печати таблицы значений х, х 2 , sin(х) и 1/х при изменениях х от 1 с шагом 0.1 , пока выполняется условие х ≤ 10. Составим алгоритм в виде псевдокодов: 1. Начало; 2. Список данных: x, fl, f2, f3 — вещественный; 3. Цикл по х от 1 до 10 шаг 0.1; 4. fl:=x 2 ; f2:=sin(x); f3:=l/x; 5. Вывод(х, fl, f2, f3); 6. Конец-цикла 3; 7. Конец. Отметим, что алгоритм состоит из 7 пунктов. Та же самая задача была решена в подразд. 2.3.1, но там в качестве циклической структуры для построения алгоритма использовался цикл-ПОКА, алгоритм состоял из 9 пунктов. Сокращение алгоритма оказалось возможным за счет использования в нашем случае цикла с заданным числом повторений, в структуре которого уже предусмотрены присваивание начального значения параметру и приращение параметра. Для изображения компактной графической схемы цикла с параметром могут быть использованы символы «Подготовка» или «Граница цикла» (см. табл. 1), как показано на рис. 17. Рис. 17. Компактная запись цикла с параметром: а — с использованием символа «Подготовка»; б — с использованием символа «Граница цикла»; i — параметр цикла; iн— начальное значение параметра; iк — конечное значение параметра; Δi — приращение (шаг) Если величина шага в цикле с параметром равна единице, то в заголовке цикла шаг можно не указывать. Приведем для сравнения развернутые графические схемы циклов с заданным числом повторений с возрастающим и убывающим параметрами (рис. 18). Рис. 18. Развернутая схема цикла с заданным числом повторений: а — с возрастающим параметром; б — с убывающим параметром Схемы отличаются знаками в блоке проверяемого логического условия и в блоке изменения параметра цикла.

10.11.2019 3.81 Mб 1 1 Лаб укр 1-4 МПС В САУ.doc

10.02.2016 53.71 Кб 48 1 экология.docx

10.02.2016 985.09 Кб 5 1,2,3.doc

10.02.2016 51.31 Кб 35 1-10.docx

16.04.2019 250.84 Кб 1 1-25.docx

25.12.2018 1.46 Mб 6 1.Введение.doc

10.02.2016 496.66 Кб 78 10.Оксикарб.кисл.pdf

10.02.2016 2 Mб 8 1035533.rtf

10.02.2016 45.78 Кб 42 11-20.docx

10.02.2016 316.84 Кб 83 111111111111111111111111.docx

10.02.2016 446.43 Кб 29 12.Аминокарб.кисл.pdf

Ограничение

Для продолжения скачивания необходимо пройти капчу:

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

6. Циклы с заданным числом повторений. Организация вложенных циклов. Организация циклов с несколькими одновременно изменяющимися параметрами. Пример.

Счетный цикл (цикл с заданным числом повторений). Цикл выполняется, пока переменная (параметр) цикла принимает значения в заданном диапазоне с определенным шагом. Синтаксическая диаграмма оператора приведена на рисунке ниже. Переменная цикла должна иметь порядковый тип. Выражение 1 определяет начальное значение параметра цикла, выражение 2 — конечное значение параметра цикла. Соответственно начальное и конечное значения должны принадлежать к тому же типу, что и параметр цикла. Если используется служебное слово to, то при каждом выполнении цикла переменной цикла присваивается следующее значение порядкового типа переменной. Если используется служебное слово downto, то при каждом выполнении цикла переменной цикла присваивается предыдущее значение порядкового типа переменной. Если диапазон значений переменной цикла пуст, то цикл не выполняется.

счетный_цикл

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

Допустимыми являются следующие варианты организации вложенных циклов. Первый вариант вложенного цикла – внутри внешнего цикла последовательно расположено несколько внутренних циклов:

for I:=1 to N do //внешний цикл
begin
. . . . . .
for J:=1 to M do //первый внутренний цикл
begin
. . . . . .
end; // конец первого внутреннего цикла
. . . . . .
for K:=1 to L do //второй внутренний цикл
begin
. . . . . .
end; // конец второго внутреннего цикла
. . . . . .
end; // конец внешнего цикла

Второй вариант организации вложенного цикла – иерархическое расположение циклов (каждый внутренний цикл расположен внутри предыдущего).

for I:=1 to N do //внешний цикл
begin
. . . . . .
for J:=1 to M do // первый внутренний цикл
begin

for K:=1 to L do //второй внутренний цикл
begin
. . . . . .
end; // конец второго внутреннего цикла
. . . . . .
end; // конец первого внутреннего цикла
. . . . . .
end; // конец внешнего цикла

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *