|
4.4 – Условен оператор
Условен оператор – това е оператор, който дава възможност да се изпълни или да не се изпълни друг оператор в зависимост то някакво уславие. В езика Паскал условните оператори са в две форми – кратка и пълна. Кратка форма на условния оператор: синтаксисът на тази форма е if B then S, където - if и then са запазени думи - В – булев израз - S – оператор Условният оператор се изпълнява по следния начин – пресмята се стойността на булевия израз В. В резултат се получава булева константа True или False. Ако стойността е True се изпълнява оператора S. Ако обаче тази стойност е False – S не се изпълнява. След запазената дума then трябва да стои точно един оператор. Ако логиката на задачата налага използването на два или повече оператора, необходимо е те да се обединят в един съставен оператор. Пример за програма, използваща оператора if - then. Зад 2. Да се напише програма, която намира лицето на кръг и дължината на окръжност с радиус r. Пресмятането да се осъществи в случай, че r > 0. CODE
Изпълнение на оператора: Пресмята се булевият израз R > 0. Щом стойността му е равна на true, т.е. въведеният радиус е по-голям от 0 се изпълнява съставният оператор след then. Ако въведената стойност за R е по-малка или равна на 0, то операторът then не се изпълнява. Пълна форма на условния оператор. Синтаксисът на тазе форма е if B then S1 else S2, където - if (ако), then (тогава), else(иначе) са запазени думи. - B e булев израз. - S1 и S2 са оператори. Операторът се изпълнява по следния начин: Пресмята се стойността на булевия израз B. В резултат на това се получава true или false. Ако стойността на В е true се изпълнява S1 (S2 не се изпълнява). Ако стойността на на В е false S1 се прескача и се изпълнява S2. Във всички случаи след изпълнението на S1 или S2 се преминава към следващите оператори. Забележка: след then и след else трябва да стои точно един оператор. Пример за програма, използваща оператора if-then-else. За пример ще преустроим малко горната програма. Отново по даден радиус програмата ще трябва да изчисли S и Р на окръжност, но ако радиусът R е по.малък от 0 ще се извежда "error !" CODE
Вложени условни оператори. В условният оператор if B then S1 else S2 S1 и S2 са произволни оператори. В този случай говорим за вложени условни оператори. При влагането на един условен оператор в друг е възможно да възникнат логически проблеми. Затова в езика Паскал има правило, което определя начина, по който се изпълняват вложените оператори: Всяко else се съчетава в един условен оператор с най-близкото, несъчетано преди него then. Така текста се преглежда от ляво надясно. Препоръчително е условен оператор да се влага в друг условен оператор само след else, а не след then. Ако след then трябва да се вложи оператор, условният оператор да се направи съставен. 4.5 – Оператори за цикъл Операторите за цикъл се използват за реализиране на циклични изчислителни процеси. Това са процеси, при които оператор или група от оператори се изпълнява многократно за различни стойности на техни параметри. Цикличните процеси биват два вида – индуктивни или интеративни. Индуктивен цикличен процес е такъв, при който броят на повторенията е предварително известен. Например: да се намери стойността на израза S = x + 2x + 3x + nx. За да се намери сумата на израза е необходимо да се повтори действието n*x n пъти (n=1,2,3....), като всеки път стойността му се прибавя към текущата стойност на S (S:= S + n*x). Цикличен процес, при който броят на повторенията не е известен, се нарича интеративен цикличен процес. При тези процеси някакво условие определя броя на повторенията. В езика Паскал има три оператора за цикъл – оператор for (реализира индуктивни циклични процеси), оператор while и оператор repeat (реализират всякакви процеси). 4.5.1 – Оператор for Този оператор се нарича оператор за цикъл с параметър. Предназначението му е да реализира индуктивни циклични процеси. В езика Паскал съществуват две форми – for-to-do и for-downto-do. Пример за програма, използваща оператора for-to-do: Да се напише програма, която пресмята n! (това е функцията фактуриел. 5!=1*2*3*4*5). N е естествено число, по-голямо от 0. CODE
Оператора for i:=1 to n do fac:=fac*I e оператор за цикъл. Той се изпълнява по следния начин: запазените думи в състава му означават следното: за (for) i:=1 ot n повтаряй (do) fac:=fac*i. Ако стойността на n по време на изпълненине на оператора for i:=1 to n do... е 4 променливата първо присвоява стойност 2. Тогава изразът fac:=fac*i приема стойност 2 (на fac първоначално е дадена стойност 1). След това на i се дава стойност 3. Изразът fac също присвоява новата стойност fac*3. След това i присвоява 4 и т.н., в зависимост каква е стойността на n, която сме въвели. Променливата i може да бъде от различни типове. Следните оператори за правилно заисани For-to-do: CODE
При случай, че стойността на i е различна от тази, зададена в оператора (например в горния оператор – тя е по-малка или по-голяма от N) оператора не се изпълнява.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||









