Организация циклических процессов
По способу проверки условия выхода из цикла их делят на следующие циклы: 1. циклы с предусловием (рис.1); 2. циклы с постусловием (рис.2). Итерационные циклы характеризуются последовательным приближением к искомому значению с заданной точностью. В языке Паскаль имеются три вида операторов цикла: 1. Оператор цикла с предусловием; 2. Оператор цикла с постусловием; 3. Оператор цикла с заданным числом повторений. Все данные операторы являются сложными. Вход в цикл возможен через его начало. Цикл с предусловием используют, если число повторений в цикле заранее неизвестно. Форма данного циклического оператора имеет вид: WHILE <лог_выражение> DO {начало цикла} BEGIN Операторы циклической части программы {тело цикла} END; {конец цикла} Где while (пока), do (делать) – служебные слова. Предварительно проверяется значение логического выражения. Пока оно истинно, выполняются операторы циклической части программы, как только выражение становится ложным, происходит выход из цикла. Операторы циклической части заключаются в операторные скобки BEGIN END и представляют составной оператор. Если в циклической части всего один оператор, то оператор цикла принимает следующий вид: WHILE <лог_выраж> DO оператор1; Пример 4.1. A:= 1; N:= 1; WHILE 2*A<=3*N+1 DO BEGIN A:= A+2; N:= N+1; END; Оператор цикла с последующим условием используется, когда заранее неизвестно число повторений в цикле.
REPEAT {начало цикла} Операторы циклической части программы {тело цикла} UNTIL <лог_выражение>; {конец цикла} где REPEAT (повторять), UNTIL (до тех пор) – служебные слова. Выделяется сначала циклическая часть, а затем проверяется условие. Операторы циклической части можно заключать в операторные скобки (ошибки не будет). Например, y=x2, при x=8, 6, 4, 2. X:=8; REPEAT Y:=SQR(X); WRITE(X:3, Y:5); X:=X-2; UNTIL X=0; Оператор цикла с параметром используется, когда известно число повторений. FOR I:=M1 TO M2 DO {ЗАГОЛОВОК ЦИКЛА} BEGIN операторы циклической части {ТЕЛО ЦИКЛА} END; Например, FOR I:= 1 TO 5 DO BEGIN A:=2*I+1; B:=2*I; END; FOR I:= 5 DOWNTO 1 DO BEGIN A:=2*I+1; B:=2*I; END; Если в цикле один оператор, то можно использовать следующие формы записи: FOR I:= M1 TO M2 DO ОПЕРАТОР1; FOR I:= M2 DOWNTO M1 DO ОПЕРАТОР1;
Например. Дано N действительных чисел. Вычислить их среднее арифметическое. PROGRAM PRIM; VAR I, N: INTEGER; X,S:REAL; BEGIN READ(N); S:=0; FOR I:=1 TO N DO BEGIN READ(X); S:= S+X; END; S:=S/N; WRITELN(S:8:3); END. Задача 4.1. Построить таблицу функции на отрезке от 0 до 1, количество точек на этом отрезке - М = 10, с шагом H=(B-A)/M.
Вариант №1. Цикл While …do Вариант №2. Цикл Repeat…until
Вариант №3. Цикл с параметром For…
Программа для блок-схемы №1. PROGRAM Fun1; VAR M: integer; A, B, H, X, Y: real; BEGIN READ(A,B,M); WRITELN (‘Таблица значений функции’); {***} H:= (B-A)/M; X:=A; WHILE X<=B DO BEGIN Y:= ESP(X)+SQRT(1-X); WRITELN(X,’’:2, Y); X:=X+H; END; {***} END. Программа для блок-схемы №2. … {***} REPEAT Y:= ESP(X)+SQRT(1-X); WRITELN(X,’’:2, Y); X:=X+H; UNTIL X>B; {***} … Программа для блок-схемы №3. … {***} FOR i:= 1 TO N DO BEGIN Y:= ESP(X)+SQRT(1-X); WRITELN(X,’’:2, Y); X:=X+H; END; {***} … Задача 4.2. Определить сумму и произведение числового ряда: 1+2+3+4+…+n; Блок-схема алгоритма Листинг программы PROGRAM TASK2; USES CRT; VAR I, N, S, P: INTEGER; BEGIN CLRSCR; WRITELN (‘Введите n’); READLN(N); S:=0; P:=1; FOR I:=1 TO N DO BEGIN S:= S+I; P:=P*I; END; WRITELN (‘Сумма числового ряда равна - ’, S); WRITELN (‘произведение ряда равно - ’, P);
READLN; END. Лабораторная работа №4
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|