Алгоритмы циклической структуры и их реализация на языке Pascal



Основные понятия

Новое понятие Определение
Цикл Участок алгоритма, многократно повторяющийся для различных значений входящих в него величин
Параметр цикла Величины, которые используются для подготовки очередного повторения цикла
Рабочая часть цикла (тело цикла) Группа предписанных условий и действий, которая,повторяясь, дает искомый результат
Массив данных Совокупность однотипных данных, имеющих общее имя и разные порядковые номера
Индекс (порядковый номер) Указывает место (положение) элемента в массиве
Простые циклы Циклы, в теле которых нет разветвлений и других встроенных в них циклов
Сложные циклы Циклы, в теле которых имеются разветвления и другие встроенные в них циклы
Детерминированные Циклы, в которых число повторений заранее известно из исходных данных или определено в ходе решения задачи
Итерационные Циклы, в которых число повторений заранее не известно из исходных данных

В 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 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. Тогда схема алгоритма и программа будут иметь следующий вид:

 


Дата добавления: 2018-05-31; просмотров: 1940; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!