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




Класс:10

11 февраля.

Классная работа

Тема: «Циклы с заданным числом повторений. Итерационный цикл»

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

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

Обратите внимание на то, как цикл с предусловием преобразуется в цикл с постусловием — условие цикла помещается после тела цикла и заменяется на противоположное: Not(i ≤ N) = i > N.

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

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

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

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

1) For <параметр цикла>:=<выражение 1> То <выражение 2>

Do <оператор>

2) For <параметр цикла>:=<выражение 1> Downto <выражение 2>

Do <оператор>

Здесь <параметр цикла> — имя простой переменной порядкового типа.

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

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

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

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

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

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

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

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


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

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

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

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

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

Сколько будет 4*8?

21

Неправильно! 4*8=32

Сколько будет 6*9?

54

Правильно!

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

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

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

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

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

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

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

Домашнее задание: Изучить параграф 21 стр. 144-148 и параграф 22. Разберите программу TablMul на стр. 147 и программу MatrPif на стр. 151 и протестируйте в Pascal ABC. Посмотрите видеоурок по теме.

Домашняя работа: Ответьте на вопросы №4, 5 на стр. 155. Выполнить в Pascal ABC задание №1 на стр. 155.

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-10-12 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: