Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лек.№4 информ

.pdf
Скачиваний:
8
Добавлен:
18.03.2015
Размер:
155.22 Кб
Скачать

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

4.5.1.С параметром

For i:= N1

To N2 Do "оператор";

For i:= N1

DownTo N2 Do "оператор";

Пример расчета конечной суммы последовательности:

12 + 32 + 52 +. . . + (2*N-1)2;

SN = N*(4*N2-1)/3;

PROGRAM SUM_K;

{ расчет конечной суммы }

var a, S, Sn, i, N: word;

 

Begin

 

 

write('Введите число членов суммы N='); readln(N);

S:= 0;

 

For i:= 1 to N do begin

{ цикл суммирования }

a:= Sqr(2*i-1); S:= S+a

end;

Sn:= N*(4*N*N-1) div 3;

 

Writeln('Конечная сумма S=', S:-10:2);

Writeln('Расчет конечной суммы по формуле Sn=', Sn:-10:2); Writeln('Нажми Enter'); readln

End.

4.5.2. С условием

While "условие" DO "оператор"; Repeat "операторы" Until "условие";

"условие" - выражение логического типа (Boolean).

Расчет суммы членов бесконечного ряда с заданной погрешностью.

N:= 0;

a:= 1;

SN:= 1;

e:= 2. 7182828; S:= (e2 + 1)/e;

repeat

N:= N+1;

k:= 1/((2*N-1)*2*N);

a:= a*k;

SN:= SN+a;

 

 

 

Writeln('Частичная сумма Sn=',

Sn:-11:6, '_ _ n=', n:2);

until abs(S-Sn) < eps;

{ eps - допустимая погрешность расчетов}

Writeln('_ _ _ Сумма ряда S =', S :-11:6);

Операторы цикла с условием могут применяться для анализа правильности вводимых данных, например, необходимо ввести |X|<1 ("защита от дурака"):

Repeat Write('введите значение |х|<1;_ _x='); readln(x) until abs(x)<1;

4.5.3. Операторы ограничения и прерывания цикла

Continue;

-

ограничение цикла,

Break;

-

прерывание цикла.

Пример использования операторов для блокировки несанкционированного доступа в программу.

For i:= 1 to 3 do begin

Write( 'Введите ПАРОЛЬ:' ); Readln(S); {S и Parol - переменные одного типа}

If S = Parol Then Break

{ прерывание цикла }

else If i <> 3 Then Continue;

 

{ ограничение цикла }

Writeln( 'Доступ к программе ЗАПРЕЩЕН' );

Writeln( 'Нажмите Enter' ); Readln; Halt

{ прерывание программы }

end;

{продолжение программы}

4.6. Оператор перехода к метке

Goto "метка";

M1: Write('Введите x>=0'); Readln(x); If x<0 Then Goto M1;

Метки описываются в разделе описания, например: Label M1;

Пример операторов для расчета конечной суммы вклада через 10 месяцев (pr - процентная ставка), при условии досрочного снятия вклада, если начальная сумма "S1" возросла более чем в два раза:

S:= S1; For i:= 1 to 10 do begin

S:= S*(1 + pr/100); If S > 2*S1 Then Goto M1 end;

M1: Writeln(S);

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