Класс: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.