Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Оператори повтору



Oператори повторення використовуються для організації циклів. Цикл - це послідовність операторів, яка може виконуватися більше одного разу. Якщо кількість повторів відома зарані - використовується оператор FOR, якщо ні - оператори WHILE та REPEAT.

Оператор FOR складається з заголовка і тіла циклу. Він може використовуватися в двох формах:

1. FOR <параметр циклу>:= S1 TO S2 DO <оператор>;

2. FOR <параметр циклу>:= S1 DOWNTO S2 DO <оператор>;

Тут S1 та S2 - вирази, що визначають початкове та кінцеве значення параметра циклу, <оператор> - тіло циклу, що може бути простим, або складеним оператором, <параметр циклу> - ідентифікатор.

Оператор FOR ще називають оператором циклу з параметром. Він по структурі відповідає циклу ПОКИ і забезпечує виконання тіла циклу до тих пір, поки не будуть перебрані всі значення параметра циклу від початкового до кінцевого. Параметр циклу, його початкове та кінцеве значення повинні належати до одного і того ж типу даних. При цьому допустимий довільний скалярний тип, окрім дійсного. Значення величини параметра циклу послідовно збільшується (при FOR..TO), або зменшується (при FOR..DOWNTO).

Приклади:

For i:=1 to 20 do write('*');

Результат - 20 знаків '*' видрукуються на дисплеї підряд.

For ch:='а' to 'e' do write(ch); Результат: abcde.

For ch:='e' downto 'а'do write (ch); Результат: edcba.

Таким чином, параметр циклу в операторі FOR може змінюватися лише на один дискретний елемент (cаме тому використання дійсного типу недопустимо).

Для дострокового виходу з циклу за певною ознакою, можна використовувати оператор GOTO.

Якщо тiло оператора FOR є складений оператор, в ньому може мicтитися iнший оператор FOR. Такi цикли називаються вкладеними.

В тiло циклу заборонено вмiщувати оператори, що змiнюють значення параметра цикла.

Приклад:

For i:=1 to 10 do

begin

Rez:=1/Pi

i:=i+1 {Помилка!}

end;

Приклад:

Обчислити використовуючиоператор повтору FOR

Текст програми

Program sum;

Var s:real; n,i:integer;

Begin

Write(‘n=’);

Readln(n);

S:=0;

For i:=1 to n do

S:=s+((1+sin(i))/cos(i));

Writeln('Suma=',s:8:3);

End.

Результат виконання програми

n=10

s=-15.37722

Оператор повтору REPEAT реалiзує структуру цикл-ДО

Формат оператора:

REPEAT

<оператор 1;>

<оператор 2;>

.......

<оператор N>

UNTIL <умова>;

Tут <умова> - це вираз булiвського типу. При написаннi умови допустимi логiчнi вирази. Оператори, розмiщенi мiж ключовими словами REPEAT та UNTIL є тiлом циклу. Спочатку виконується тiло циклу, а потiм перевiряється <умова>. Якщо результат булiвського виразу дорівнює FALSE, тiло циклу активiзується повторно, якщо TRUE - цикл закiнчується i виконується оператор, що слiдуе за UNTIL <умова>.

Приклад:

Var i,sum: integer;

Begin

i:=0; sum:=0;

Repeat

sum:=sum+i;

i:=i+2

Until i>10;

Writeln ('cума кратних чисел рiвна ',sum)

End.

Оператор повторення WHILE реалiзує структуру цикл-ПОКИ.

Формат оператора - WHILE <умова> DO <тiло циклу>;

Тут <умова> - логiчний вираз, а <тiло циклу> - простий або cкладений оператор. Перед кожним виконанням тіла циклу обчислюється значення логічного виразу. Якщо результат рівний True, тіло циклу виконується і вираз <умовa> обчислюється знову. Якщо результат рівний False - здійснюється вихід з циклу та перехід до наступного після WHILE оператора.

Бувають випадки, коли необхідно побудувати бесконечний цикл. Для цього в виді умови використовується константа True:

While True do

begin

....

end;

Приклад:

Обчислити використовуючиоператор повторення WHILE

Текст програми

Program sum;

Var s:real; n,i:integer;

Begin

Write(‘n=’);

Readln(n);

S:=0; i:=1;

WHILE i<=n do

Begin

S:=s+((1+sin(i))/cos(i));

i:=i+1;

end;

Writeln('Suma=',s:8:3);

End.

Результат виконання програми

n=10

s=-15.37722

4.1.4. Використання стандартний процедур Break і Continue в операторах циклів REPEAT, WHILE та FOR

В версії TurboPascal 7.0 в циклах REPEAT, WHILE та FOR можна використовувати дві нові стандартні процедури - Break і Continue. Процедура Break дозволяє достроково вийти з циклу, не чекаючи виконання умов виходу. Процедура Continue дозволяє починати нову ітерацію циклу, навіть коли попередню не завершено.

Приклад:

В масиві цілих чисел знайти перше від’ємне число та вивести його на екран дисплея.

Const N=10

Var Mas: array[1..N] of Integer; i: Byte; Yes: Boolean;

BEGIN

Writeln(‘Введіть елементи масиву’);

For i:=1 to N do

begin

Write(‘Mas[‘,i,’]=’);

Readln(Mas[i]);

end;

Yes:=False;

For i:=1 to N do

begin

if Mas[i] >= 0 then Continue;

Writeln(‘Перше відємне число = ’, Mas[i],’ Номер = ‘,i);

Yes:=True;

Break;

end;

if not Yes then Writeln(‘Відємних чисел намає’);

Readln

END.

Приклад:

Спираючись на ітераційні процеси знайти суму ряду - допустима похибка обчислень.

Текст програми

Program iter;

Var x,y,yn,s,f:real; n:integer;

Begin

Write ('x=');

Readln(x);

s:=0;

n:=1;

y:=1;

f:=1;

yn:=cos(x)/f;

while abs(yn-у)>0.0001 do

begin

s:=s+y;

y:=yn;

n:=n+1;

f:=f*n;

yn:=cos(x)/f;

end;

writeln('s=',s:8:3,'abs=',abs(yn))

writeln(‘k=’,n-1);

readln;

End.

Результат виконання програми

X=2

S= 0.285 abs=1.0321102097E-05

K=7





Дата публикования: 2014-11-04; Прочитано: 588 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.01 с)...