![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
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; Прочитано: 606 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!