Вишеструко гранање

Као наредбе у гранама „да“ и „не“ код разгранате структуре могу се наћи линијске структуре (које се обавезно уоквирују заградама {} ), али се могу наћи и друге наредбе гранања: и проста селекција и условни прескок. Тако добијена структура назива се вишеструко гранање. У случају да се као „унутрашња“ разграната структура користи условни прескок потребно је пажљиво обележити делове структуре које припадају једном услову. То се постиже тако да се унутрашња разграната структура стави у заграде {} како би се раздвојили делови наредбе који припадају различитим if деловима.

Пример:

 visestrukiIf1

овом дијаграму тока одговара следећа if наредба:

if (uslov1)
     if (uslov2)
          naredba1
     else
          naredba2

Пример: Нацртати дијаграм тока и написати програм који ако је x<5 за y>=0 израчунава вредност израза: formula1а за y<0 израчунава вредност израза:formula2

Запази да увлачење појединих делова наредбе if има чисто естетску сврху, помаже лакшем читању програма. Преводилац целу if наредбу посматра као један ред!

Пример2:

visestrukiIf2

Овом дијаграму тока одговара следећа if наредба:

if (uslov1)
     {
          if (uslov2)
               naredba2
     }
else
     naredba2

пример2: нацртати дијаграм тока и написати програм који ако је x>3 и y=5 израчунава вредност израза: formula3, а ако је x<=3 израчунава вредност изразаformula4

Заграде око унутрашње наредбе if (условни прескок) служе да одвоје ову наредбу од делова спољашње наредбе if, односно да else део придруже спољашњој if наредби!

Вишеструко гранање

Бира се и извршава једна од већег броја наредби:

visestrukiIf3

програм:

if (uslov1) P1
     else if (uslov2) P2
          …
               else if (uslovN) PN
                    else Q

Провери се први услов. Ако је он испуњен изврши се P1, прескоче се сви остали Pi, прескочи се Q и настави са првом следећом наредбом иза наредбе if. Ако први услов није испуњен, проверава се други услов. Ако је он испуњен изврши се P2, прескоче остали Pi, прескочи Q и настави са првом следећом наредбом иза наредбе if. И тако даље. Ако ниједан услов није испуњен изврши се Q.

Верзија без последњег else:

дијаграм тока

visestrukiIf4

програм:

if (uslov1) P1
     else if (uslov2) P2
          …
               else if (uslovN) PN

У односу на прву варијанту овде се, ако није испуњен ниједан услов не извршава ништа, већ се наставља са првом следећом наредбом иза наредбе if.

Нацртати дијаграм тока и написати програм који израчунава вредност следеће функције:
 zadatakA  zadatakB  zadatakC

Сложени услови (примена логичких оператора)

Често је потребно испитати да ли важе два услова истовремено пре него што се пређе на рачунање вредности неког израза. Да би се избегла употреба угњеждених if наредби користе се сложени услови, односно услови добивени применом логичких оператора.

Примери:

израз програмски језик C
 izraz1 (x<5)&&(y>=0)
 izraz2 (x<5)||(x>9)
 izraz3 !(x>3)&&(y=5)
 izraz4 ((x<2)&&(y=4))||((x>3)&&(y>3))

Нацртати дијаграм тока и написати програм који израчунава вредност израза:

a)zadatak2a
b)zadatak2b
c)zadatak2c
d)zadatak2d
e)zadatak2e
f)zadatak2f

ЗАДАЦИ:
1. Нацртати дијаграм тока и написати програм који израчунава вредност израза:

a)zadatak1a
b)zadatak1b
c)zadatak1c
d)zadatak1d
e)zadatak1e
f)zadatak1f

2. Нацртати дијаграм тока и написати програм у који уносимо три реална броја a,b,c, он утврђује да ли је могуће направити троугао са тим дужинама страница и уколико јесте израчунава његову површину користећи Херонов образац:povrsinaTrougla , где је s полуобим троугла. (услов да би три броја биле странице троугла је да је збир свака два броја већи од трећег)

Advertisements

Оставите одговор

Попуните детаље испод или притисните на иконицу да бисте се пријавили:

WordPress.com лого

Коментаришет користећи свој WordPress.com налог. Одјавите се / Промени )

Слика на Твитеру

Коментаришет користећи свој Twitter налог. Одјавите се / Промени )

Фејсбукова фотографија

Коментаришет користећи свој Facebook налог. Одјавите се / Промени )

Google+ photo

Коментаришет користећи свој Google+ налог. Одјавите се / Промени )

Повезивање са %s