|
|
>>> Перейти на мобильный размер сайта >>> Учебник для 10 класса ИНФОРМАТИКА§ 21. Программирование цикловРассмотрим приемы программирования циклов на Паскале. В § 13 рассказывалось о том, что существуют две циклические алгоритмические структуры: цикл с предусловием (цикл-пока) и цикл с постусловием (цикл-до). Были показаны способы описания циклических структур в блок-схемах и на Алгоритмическом языке. Форматы соответствующих операторов цикла в Паскале следующие.
Цикл с предусловием (цикл-пока):
Цикл с постусловием (цикл-до):
Различают циклы с заданным числом повторений и итерационные циклы. На примерах конкретных задач рассмотрим приемы программирования циклов. В математике известно, что сумма следующего бесконечного числового ряда:
в пределе стремится к значению константы е = 2,71828182... Функция ех называется экспонентой, а логарифм по основанию е называется натуральным логарифмом: In x. Требуется составить программу, вычисляющую эту константу по сумме числового ряда. Напомним, что символ «!» читается как «факториал» — функция, определенная следующим образом:
Если слагаемые в вычисляемом выражении обозначить так:
то обобщенная формула для i-гo элемента будет следующей:
Нетрудно увидеть, что между элементами данной последовательности имеется зависимость:
Такая зависимость называется рекуррентной зависимостью, а соответствующая числовая последовательность — рекуррентной последовательностью. Данная рекуррентная последовательность может быть описана следующей ветвящейся формулой, которая называется рекуррентной формулой:
Циклы с заданным числом повторенийПример 1. Дано целое положительное значение N. Требуется вычислить сумму:
Ниже приводятся два варианта программы решения этой задачи. В первом варианте используется цикл с предусловием, во втором — цикл с постусловием.
Обратите внимание на то, как цикл с предусловием преобразуется в цикл с постусловием — условие цикла помещается после тела цикла и заменяется на противоположное: Not(i ≤ N) = i > N. И тот, и другой цикл повторят свое выполнение (N + 1) раз. Переменная i выполняет роль не только знаменателя в дроби 1/i!, но и является счетчиком числа повторений цикла. Такие переменные называются параметрами цикла. И еще: в цикле с постусловием служебные слова Repeat и Until сами выполняют роль операторных скобок. Поэтому писать Begin и End здесь не требуется. Выполнение этих программ на компьютере для значения N = 7 приводит к следующему результату: Е=2, 7182539. Для программирования циклов с заданным числом повторений при постоянном шаге изменения параметра цикла в Паскале существует цикл с параметром. Вот как выглядит программа решения той же задачи с использованием цикла с параметром:
В программе используется оператор цикла For, для которого существуют два варианта: Здесь <параметр цикла> — имя простой переменной порядкового типа. Выполнение оператора For в первом варианте (То) происходит по следующей схеме.
Оператор цикла For объединяет в себе действия, которые при использовании цикла While выполняют различные операторы: присваивание параметру начального значения, сравнение его с конечным значением, изменение значения параметра на следующее. Во втором варианте оператора For слово Downto буквально можно перевести как «вниз до». В таком случае параметр цикла изменяется по убыванию, т. е. при каждом повторении цикла параметр изменяет свое значение на предыдущее (равносильно i :=pred (i) ). Работая с оператором For, учитывайте следующие правила:
Рассмотрим пример программы, в которой в теле цикла будет присутствовать ветвление. Пример 2. Составим программу проверки знаний учеником таблицы умножения. Компьютер задает ученику 10 вопросов на умножение чисел от 2 до 9. На каждое задание ученик вводит свой ответ, компьютер сообщает, верный ответ или нет.
Рис. 3.16. Блок-схема алгоритма из примера 2 На рисунке 3.16 приведена блок-схема такого алгоритма. Обратите внимание на то, как отображается на блок-схеме цикл с параметром. В этом алгоритме использована функция random (х), результатом выполнения которой является случайное целое число из диапазона от 0 до х - 1. Следовательно, выражение random (8)+2 принимает случайные значения от 2 до 9. Функция random называется датчиком случайных чисел. На Паскале этот алгоритм программируется так:
А вот фрагмент интерфейса исполнения этой программы:
В программе используется стандартная процедура randomize. Ее исполнение производит установку случайного начального состояния датчика случайных чисел. Благодаря этому при повторном выполнении программы будут получаться разные последовательности случайных чисел. Система основных понятий
Вопросы и задания
|
|
Узнать стоимость написания
|