Пример 4.1 UNTIL

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.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: