Организация на програми с циклична структура

Slides:



Advertisements
Сходни презентации
ОПЕРАТОР ЗА ВХОД И ИЗХОД,ПРИСВОЯВАНЕ
Advertisements

Магдалена Плачкова; 10”б” клас; №19
Оператор за цикъл do-while
Алгоритми.
Оператор за избор на вариант
Използване на условни оператори
Задачи.
Алгоритми УРОК ПО ИНФОРМАТИКА ЗА 9 КЛАС изготвил: инж. В. Митева.
Условен оператор.
Теа Игнатова и Патриша Петрова, Х а клас
Алгоритми и блок схеми. Същност на програмирането
Препис на презентация:

Организация на програми с циклична структура Оператори за цикъл While, Repeat, For Програмиране - Паскал

1. Основни понятия a) Цикъл - алгоритмична структура, при която поредица от елементарни действия се изпълнява многократно; б) Тяло на цикъл - група от повтарящи се действия в цикличен алгоритъм; в) Итерация - всяко изпълнение тялото на цикъла (краен брой); г) Условие за край - определя кога да завърши цикъла; д) Управление на повторенията (актуализация) - действие в тялото на цикъла, което предизвиква удовлетворяване на условието за край; е) Инициализация - действия, които се извършват преди началото на цикъла, подготовка за правилното му изпълнение. Задават се начални стойности на някои от величините, участващи в цикъла;

2. Оператор за повторение с предусловие а) Синтаксис While <израз> do <оператор>; - <израз> е от логически тип и определя условието за край на цикъла; - <оператор> е тяло на цикъла (кой да е оператор от езика Паскал); б) Семантика: Докато <израз> е истина изпълнявай <оператор>; Преди всяка итерация се проверява стойността на израза - ако тя е Тrue се изпълнява оператора след do, aко е false цикъла се прекратява, т.е. изпълнява се следващия оператор след while.

в) Особености на оператора: - Тялото на цикъл с предусловие се състои от един оператор. За описание на по-сложни действия се използва съставен оператор; - Тялото на цикъла while може да не се изпълни нито веднъж; - Важно е да се актуализира стойността на поне една от променливите, участващи в логическия израз, за да може в даден момент да се удовлетвори условието за край. В противен случай ще се получи зацикляне. Например: While True do write(‘Зацикляне’);

Пример Програма за намиране на НОД по алгоритъма на Евклид. Program Evklid; Var a,b: integer; Begin Readln(a,b); while a<>b do if a>b then a:=a-b else b:=b-a; Writeln(‘НОД на a и b е ‘,a); end.

3.Оператор за цикъл със следусловие а) Синтаксис Repeat <oператор1>; <oператор 2>; .................. <oператор N> Until <израз>; -<израз> е от логически тип и определя условието за край на цикъла; - операторите между repeat и until са тяло на цикъла;

б) Семантика: Повтаряй <операторите> докато стойността на <израз> стане истина. Изпълняват се последователно операторите между repeat и until; Определя се стойността на логическия израз: при стойност false цикъла се повтаря; при стойност true - излизане от цикъла.

Задача №2: необходими променливи: N – числото, до което ще сумираме (включително); S – променлива, в която ще сумираме; i – брояч – ще приема последователно стойностите на числата от 1 до N. VAR N, S, i : integer; BEGIN repeat write(‘Въведете цяло положително число: ‘); readln(N); until N > 0; Задача №2: Съставете програма на език Паскал, която въвежда цяло число N, след което намира и извежда сумата на числата от 1 до N включително – използвайте оператор за цикъл с предусловие. S := 0; i := 1; repeat S := S + i; i := i + 1; until i > N; writeln(‘сумата на числата е: ’, S); readln; END.

4.Оператор за цикъл с параметър а) Синтаксис For <име>:=<израз1> to <израз2> do <оператор> For <име>:=<израз1> downto <израз2> do <оператор> -<име> - името на предварително декларирана променлива от дискретен тип. Нарича се управляваща променлива или параметър на цикъла ; -<израз1> и <израз2> са начална и крайна стойност на параметъра и са от същия дискретен тип като управляващата променлива. -Операторът след do представлява тяло на цикъла.

б) Семантика: Оператор for има два варианта. Разликата между тях се състои в това, че редицата от последователни стойности на параметъра, започващи със <израз1> и завършващи с <израз2> е подредена в нарастващ (to) или намаляващ (downto) ред. За всяка последователна стойност на параметъра се изпълнява операторът след do. в) Особености: -Проверката за край на цикъла се извършва преди тялото, т.е. възможно е цикълът да не се изпълни нито веднъж. -Началната и крайната стойност на параметъра се изчисляват веднъж в началото на цикъла. -Не се препоръчва промяна стойността на параметъра в тялото на цикъла.

*Сравнение на операторите за повторение Тялото на цикъл от тип while и for съдържа само един оператор. За описване на по-сложни действия се използва съставен оператор. Това не е необходимо при repeat. Тялото на цикъл от тип while и for може изобщо да не се изпълни, докато при repeat се изпълнява поне веднъж. Условието за край при while е true, при repeat e false като управлението на повторенията се организира от програмиста; При for броят на итерациите е предварително известен. При while условието за край трябва да се инициализира преди влизане в цикъла.