Технически университет – София
Катедра ПКТ,ФКСУ
Протокол № 4
дата: *.**.2009
Управляваща структура цикъл. Цикли с неизвестен брой повторения - итерационни цикли.
Същност - итерационните цикли са с неопределен брой изпълнения. Чрез операторите за итерационни цикли се организира многократно изпълнение на блок от оператори, представляващ работно тяло на цикъла.
Видове:
- цикли с предусловие - организират се с оператор while-do.
- цикли с постусловие - организират се с оператор repeat-until.

Действие:
- Стъпка 1: инициализация на променливите (преди началото на цикъла);
- Стъпка 2: избор на алтеранативен процес(изпълнение на тялото или изход от цикъла) в зависимост от стойността на <УК> - изчисление и проверка на стойността на булевия израз(преди всяко изпълнение на тялото).При стойност:
- FALSE - премонава към изход от цикъла - Стъпка 4;
- TRUE - преминава към изпълнение на тялото - Стъпка 3;
- Стъпка 3: Изпълнява се тялото на цикъла - обработка на данните и актуализация на управляващите променливи, след което управлението се предава в началото на цикъла - Стъпка 2;
- Стъпка 4: изход от цикъла.
Блок схема на цикъл с постусловие

Действие:
- Стъпка 1: инициализация на променливите (преди началото на цикъла);
- Стъпка 2: Изпълнява се тялото на цикъла - възможна инициализация, обработка на данните и актуализация на управляващите променливи;
- Стъпка 3: избор на алтеранативен процес(изпълнение на тялото или изход от цикъла) в зависимост от стойността на <УК> - изчисление и проверка на стойността на булевия израз. При стойност:
FALSE - премонава към изпълнение от цикъла - Стъпка 4;
TRUE - преминава към изход на тялото - Стъпка 3;
- Стъпка 4: изход от цикъла.
Синтаксис на while-do
а) с единичен оператор
while < УК > do
Oператор_C;
б) със съставен оператор

където;
- while и do - служебни думи(запазени думи);
- <УК> - булев израз(булева променлива или булева функция), наречен условие за край на цикъла;
- Оператор_C - тяло на цикъла. Може да бъде единичен прост или структуриран оператор или съставен оператор;
Синтаксис на repeat-until
а) с единичен оператор
repeat
Oператор_C;
until <УК>;
б) със съставен оператор
където;
- repeate и until - служебни думи(запазени думи);
- <УК> - булев израз(булева променлива или булева функция), наречен условие за край на цикъла;
- Оператор_C - тяло на цикъла. Може да бъде единичен прост или структуриран оператор или структуриран съставен оператор;
- когато тялото е съставен оператор, не е задължително поставянето на операторните скоби begin и end. Тяхната функция се изпълнява съответно от repeat и until.
Задача 1
Да се състави програма, която сумира всички четни числа в затворения интервал от 0 до N,където N е положително число и се задава от клавиатурата. Резултатът от изчисленията да се изведе в подходящ вид на екрана.
program zadacha1;
vara,n,sum : integer;
begin
write('Vavedete kraq na intervala N = ');
readln(N);
sum := 0;
a := 2;
while a <= N do
begin
sum := sum + a;
a := a +2;
end;
write('sumata ot chetnite chisla');
writeln(' v intervala ot 0 do ',N,' e ',sum);
readln;
end.

Задача 2
Да се състави програма, която сумира въведени от клавиатурата числа докато сумата им надхвърли 100. В края програмата да извежда на екрана сумата и поредния номер на числото, с което сумата надхвърля 100.
program zadacha2;
vara,sum,br : integer;
begin
writeln('Въведете число за сумиране ');
br := 0;
sum := 0;
while sum <= 100 do
begin
br := br + 1;
write('Въведете ',br,'-то число: ');
readln(a);
sum := sum + a;
end;
writeln('След обявяване на ',br,'-то число ');
writeln('Сумата надхвърли 100 и е равна на ',sum);
readln;
end.

Задача 3
Да се състави програма, която сумира само четните от 10 въведени от клавиатурата числа.
program zadacha3;
var
a,sum,br,I : integer;
begin
writeln('Vavedete 10 chisla za sumirane: ');
br := 0;
I := 1;
sum := 0;
while I <= 10 do
begin
write('vavedete ',I:2,'-to chislo: ');
readln(a);
I := I + 1;
if Odd(a) then
continue;
br := br + 1;
sum := sum + a;
end;
write('vavedohte ',br,' chetni chisla, ');
writeln(' sumata im e = ',sum);
readln;
end.
0 коментара:
Публикуване на коментар