Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
аттестация.doc
Скачиваний:
31
Добавлен:
13.09.2019
Размер:
958.46 Кб
Скачать

4.2. Задачи на циклы с параметром.

Операторы цикла с пред- и постусловием, несмотря на то что обладают значи­тельной гибкостью, не слишком удобны для организации «строгих» циклов, которые должны быть выполнены заданное число раз. Оператор цикла с пара­метром используется именно в таких случаях.

for <параметр_цикла>:=<начальное_знач.> to <конечное_знач.> do

<оператор>;

for <параметр_цикла>:=<конечное_знач.> downto <начальное_знач.> do

<оператор>;

Оператор, представляющий собой тело цикла, может быть простым или составным. Параметр цикла, а также диапазон его изменения могут быть толь­ко целочисленного или перечислимого типа. Параметр описывается совмест­но с другими переменными. Шаг цикла for всегда постоянный и равен интер­валу между двумя ближайшими значениями типа параметра цикла. Например:

var { Описание параметров цикла. }

i: integer; c:char; b: boolean; begin {Вывод на печать целых чисел от 1 до 10.}

for i:=l to 10 do writeln(i);{ Шаг цикла равен 1. }

{ Вывод на печать чисел от 10 до -10, }

for i:=10 downto -10 do { Шаг цикла равен -1. }

writeln(i);

{ Вывод на печать латинских символов от а до r. }

{ Параметр цикла изменяется от а до г в алфавитном порядке. }

for c:='a' to 'r' do writeln(c); end.

Выполнение цикла начинается с присвоения параметру стартового значе­ния. Затем следует проверка, не превосходит ли параметр конечное значение. Если результат проверки утвердительный, то цикл считается завершенным, и управление передается следующему за телом цикла оператору. В противном случае выполняется тело цикла, и параметр меня­ет свое значение на следующее согласно заголов­ку цикла. Далее снова производится проверка значения параметра цикла, и алгоритм повторяется. В блок-схемах такие циклы изображаются так, как показано на рис. 3.2.

Здесь i- переменная цикла, in- начальное зна­чение переменной цикла, ik- конечное значение переменной цикла. Блок, в котором указаны все эти значения, называется блоком модификации. Шаг изменения переменной цикла равен единице. Алго­ритм, изображенный на

рис. работает следующим образом: переменной цикла присваивается начальное значение, затем значение переменной в цикле с параметром цикла увеличивается на единицу, и цикл повторяется. Так продолжается до тех пор, пока переменная цикла не превысит свое конечное значение, после чего цикл заканчивается. Если шаг изменения равен-1, то в блоке модификации мы напишем: i:=in,ik,-1.

ПРИМЕР 3.10. Вычислить факториал числа N (N!=l*2*3* ...*N). Блок-схема приведена на рис. 3.3.

Входные данные: N - целое число, факториал которого необходимо вычис­лить.

Выходные данные: factorial - значение факториала числа N. Промежуточные данные: i - параметр цикла.

Вводится число N. Переменной factorial присваивается начальное значение. Затем организуется цикл, причем в блок-схеме для этого используется блок модификации. Здесь параметру цикла i присваивается начальное значение 1, и цикл повторяется до N с шагом 1. Когда параметр r становится больше N, цикл заканчивается, и на печать выводится значение переменой factorial, которая была вычислена в теле цикла.

Рис. 3.3 т Алгоритм вычисления факториала

Теперь рассмотрим текст программы вычисления факториала на языке Тур­бо Паскаль.

var

factorial, n, i: integer;

begin

write('n=');

readln(n);

factorial:=1,- { Стартовое значение. }

for i:=2 to n do

factorial:=factorial*i;

writeln(factorial);

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]