Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Программирование циклических алгоритмов. Операторы цикла





План лекции:

1 Программирование циклических алгоритмов. Операторы цикла.

2. Оператор цикла FOR.

3. Оператор цикла WHILE.

4. Оператор цикла REPEAT.

 

В алгоритмическом языке Turbo-Pascal имеются три вида операторов цикла, которые используются для реализации алгоритмов циклической структуры:

1) оператор FOR –оператор цикла с параметром;

2) оператор WHILE – оператор цикла с предварительным условием;

3) оператор REPEAT –оператор цикла с последующим условием.

Оператор цикла FOR

Оператор цикла FOR используют для программирования детерминированных циклов, т. е. в том случае, когда заранее известно число повторений цикла, а параметр цикла либо возрастает с шагом 1, либо убывает с шагом –1.

Общий вид оператора FOR:

FOR I:=N1 TO N2 DO <оператор цикла>;

или

FOR I:=N1 TO N2 DO BEGIN

<блок операторов цикла>;

END;,

где I – параметр цикла;

N1 – начальное значение параметра цикла;

N2 – конечное значение параметра цикла.

Параметры I, N1, N2 должны быть одного и того же скалярного типа, но не REAL. Параметр цикла Iпринимает последовательные значения от N1 до N2, увеличиваясь на 1. Схема, реализующая действие оператора FOR имеет вид, представленный на рисунке 1.

Например, при реализации следующего оператора:

FOR K: =1 TO 50 DO WRITELN (K:3);

на печать будут выданы натуральные числа от 1 до 50.

 

 

Рисунок 1 – Схема оператора цикла FOR

 

Если параметр цикла изменяется от большей величины к меньшей, уменьшаясь на 1 (т. е. шаг изменения параметра –1), то оператор цикла FOR будет иметь вид:

FOR I:=N1 DOWNTO N2 DO <оператор цикла>;.

Например, при выполнении оператора:

FOR K:=100 DOWNTO 50 DO WRITELN (K:3);

на печать будут выданы натуральные числа от 100 до 50.

 

Пример 1 Вычислить значение факториала P=n! при заданном n. Факториал n – это произведение первых n натуральных чисел, т. е. P=1*2*3*...*n.



Рисунок 2 – Схема алгоритма решения примера 1 PROGRAM PRIMER1; VAR X,N,P: INTEGER; BEGIN WRITELN (‘ВВЕДИТЕ ЧИСЛО N’); READLN (N); P:=1; FOR X:=1 TO N DO P:=P*X; WRITELN (‘ФАКТОРИАЛ=’,P); END.

Оператор цикла WHILE

Операторы WHILEи REPEAT используются для программирования итерационных циклов, т. е. если необходимо произвести некоторые повторяющиеся вычисления, но число повторов заранее неизвестно, а также для программирования детерминированных циклов, если шаг изменения параметра цикла отличен от 1 и –1.

 

Общий вид оператора WHILE:

WHILE <логическое выражение> DO <оператор цикла>;

или

WHILE <логическое выражение> DO BEGIN

<блок операторов цикла>;

END;.

Схема, реализующая оператор WHILE , является схемой итерационного цикла с предусловием и имеет следующий вид (рисунок 3):

 

 

Рисунок 3 – Схема оператора цикла WHILE

 

 

Оператор цикла WHILE действует следующим образом: проверяется логическое выражение, и пока оно истинно (ветвь “Да”), выполняются все операторы цикла, записанные после слова DO. Как только логическое выражение становится ложным (ветвь “Нет”) происходит выход из цикла. Если с самого начала логическое условие ложно, то цикл не выполняется.

 

Пример 2 Вычислить и вывести на печать все значения аргумента xи функции y = x2+ 1/x, при изменении x от 5 до 20 с шагом 0,25. Найти количество полученных значений y.

Рисунок 4 – Схема алгоритма решения примера 2 PROGRAM PRIMER2; VAR K: INTEGER; X,Y: REAL; BEGIN K:=0; X:=5; WHILE X<=20 DO BEGIN Y:=X*X+1/X; WRITELN (X:6:2,Y:12:6); K:=K+1; X:=X+0.25; END; WRITELN (‘КОЛИЧЕСТВО=’, K:3); END.

Оператор цикла REPEAT

Общий вид оператора REPEAT:

REPEAT

<блок операторов цикла>;

UNTIL <логическое выражение>;.

 

Рисунок 5 – Схема оператора REPEAT

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

Оператор REPEAT действует следующим образом: выполняются все операторы циклической части, записанные между операторами REPEAT и UNTIL. Затем проверяется логическое выражение и если оно ложно (ветвь “Нет”), то вновь выполняются все операторы цикла до тех пор, когда логическое выражение станет истинным (ветвь “Да”). Если логическое выражение истинно с самого начала, то операторы циклической части выполняются один раз.

Используем оператор цикла REPEAT для решения примера 2. Тогда схема алгоритма и программа будут иметь следующий вид:

 

 

Рисунок 6 – Схема алгоритма решения примера 2 PROGRAM PRIMER2; VAR K: INTEGER; X,Y: REAL; BEGIN K:=0; X:=5.; REPEAT Y:=X*X+1/X; WRITELN (X:6:2, Y:12:6); K:=K+1; X:=X+0.25; UNTIL X>20 WRITELN(‘КОЛИЧЕСТВО=’,K:3); END.

Лекция 2









Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2018 zdamsam.ru Размещенные материалы защищены законодательством РФ.