Примери приоритета у Ц++-у

Primeri Prioriteta U C U



У Ц++, када радимо са операторима, постоји низ у коме се све операције изводе. Приоритет оператора се користи када се ради са више оператора у изразу нашег кода. На пример, док радите са операторима сабирања, одузимања, множења и дељења, операције множења и дељења се изводе прво с лева на десно јер имају велики приоритет, а операције сабирања и одузимања се изводе следеће с лева на десно како и имају мали приоритет од множења и дељења. Али ако израз садржи само операторе сабирања и одузимања, операција се једноставно изводи с лева на десно. Овде ћемо приказати табелу приоритета оператора и примере приоритета оператора.

Предност оператора аритметичких операција







Операција Оператери Предност
заграде () Овим заградама се управља.
множење, дељење, модул *, /, % Ове операције се изводе и њихов редослед је с лева на десно.
сабирање, одузимање +, – Ове операције се изводе на крају и њихов редослед је с лева на десно.

Пример 1:

Започнимо наш код укључивањем датотеке заглавља под називом „иострем“. Многе функције су декларисане у овој датотеци заглавља „иостреам“ коју ћемо користити у нашем коду. Испод њега укуцавамо „намеспаце стд“ и позивамо „маин()“ напред. Овде у „маин()“ декларишемо променљиве под називом „и“, „ј“ и „к“ са „инт“ и вредности које овде прослеђујемо су „10“, „37“ и „29“, редом. Такође декларишемо променљиву „р“ где се резултат чува.



Након тога, укуцамо израз користећи операторе „+, „/“ и „-“. Као што смо раније објаснили, ове операције се изводе у низу. Израз који смо овде поставили је „и + ј / к – ј” у коме се прво врши дељење, а затим операције сабирања и одузимања. Приказује резултат у целобројним вредностима док променљиву „р“ декларишемо као цео број. У наставку приказујемо израчунати резултат користећи „цоут“.



Код 1:

#инцлуде <иостреам>

Користећи именског простора стд ;

инт главни ( )

{

инт и = 10 , ј = 37 , к = 29 , р ;

р = и + ј / к - ј ;

цоут << 'Резултат датог израза је = ' << р ;

повратак 0 ;

}

Излаз:

Излаз је '-26' након извођења свих операција. Овај резултат се израчунава према приоритету оператора који обезбеђује језик Ц++.





Пример 2:

У овом коду, након укључивања датотеке заглавља и позивања „маин()“, иницијализујемо променљиву „инт“ са именом „вал1“ и постављамо израз у који уписујемо „9 + 18 * 7“. Овде прво обавља множење, а затим додаје „9“ умноженој вредности. У наставку иницијализујемо „инт вал2“ са „9 + (18 * 7)“.



Овде се прво решавају заграде. Затим се врши додавање. Након овога, такође иницијализујемо „инт вал3“ изразом „(9 + 18) * 7“. У овом изразу, поново се прво оперише заградама, а затим се врши множење. Вредности израза су исте, али дају јединствене резултате због приоритета оператора. Сада идемо даље и штампамо све резултате који су ускладиштени у променљивим „вал1”, „вал2” и „вал3” уз помоћ „цоут”.

Код 2:

#инцлуде <иостреам>

Користећи именског простора стд ;

инт главни ( ) {

инт избор1 = 9 + 18 * 7 ;
инт вал2 = 9 + ( 18 * 7 ) ;
инт вал3 = ( 9 + 18 ) * 7 ;


цоут << 'Први резултат показује = ' << избор1 << ендл ;

цоут << 'Други резултат показује = ' << вал2 << ендл ;

цоут << 'Трећи резултат показује = ' << вал3 << ендл ;

повратак 0 ;

}

Излаз:

Резултат који добијамо након израчунавања датог израза је следећи. Видимо да трећи резултат није исти као друга два, иако су вредности исте. Ово је због приоритета оператора који се примењује на оператор израза.

Пример 3:

Овде иницијализујемо различите варијабле са различитим вредностима, а тип података свих ових променљивих је „инт“. Имамо целобројне променљиве „а”, „б”, „ц” и „д” са вредностима „14”, „9”, „15” и „29”, респективно. Након тога, иницијализујемо „инт Р1“ и израз који постављамо овде је „а + б) * ц / д“. Прво се решавају заграде. Затим се изводе операције множења и дељења. Испод овога такође приказујемо резултат. Затим имамо „инт Р2“ са изразом „а – б * (д + а) + ц“. Овде се такође решавају заграде и онда се одузимање и сабирање обављају према приоритету оператора. Такође штампамо његов резултат и иницијализујемо „инт Р3“ где се уписује израз „б – д + ц * а“. У овом изразу прво се врши множење, затим одузимање и сабирање. Резултат овог израза је такође приказан у наставку. Сада имамо последњи израз, „д + (а * б) / а“, чији се резултат чува у променљивој „Р4“. У овом изразу прво се решавају заграде, а затим деле. На крају се врши сабирање. Исход овог израза је приказан на следећи начин:

Код 3:

#инцлуде <иостреам>

Користећи именског простора стд ;

инт главни ( ) {

инт а = 14 ;
инт б = 9 ;
инт ц = петнаест ;
инт д = 29 ;
инт Р1 = ( а + б ) * ц / д ;


цоут << '(а + б) * ц / д ' << 'даје = ' << Р1 << ендл ;

инт Р2 = а - б * ( д + а ) + ц ;

цоут << 'а - б (д + а) + ц' << 'даје = ' << Р2 << ендл ;

инт Р3 = б - д + ц * а ;

цоут << 'б - д + ц * а ' << 'даје = ' << Р3 << ендл ;

инт Р4 = д + ( а * б ) / а ;

цоут << 'д + (а * б) / а ' << 'даје = ' << Р4 << ендл ;

повратак 0 ;

}

Излаз:

Следи исход израчунавања претходно наведених израза. Добијамо овај исход јер оператори у изразу имају приоритет оператора примењен на њих:

Пример 4:

Овде иницијализујемо променљиве „а1”, „б1”, „ц1”, „д1”, „е1” и „ф1” са целобројним вредностима „64”, „90”, „11”, „27”, „34“ и „98“, респективно. Овде иницијализујемо „инт ресулт1“ изразом „а1 + б1 – ц1) * д1 / ф1“, а резултат се чува у променљивој „ресулт1“. Овде се прво решавају заграде. Затим се преостале операције израчунавају секвенцијално. Затим штампамо „резултат1“. На исти начин израчунавамо изразе и чувамо их у различитим променљивим. Затим штампамо све резултате одвојено, показујући како функционише приоритет оператора.

Код 4:

#инцлуде <иостреам>

Користећи именског простора стд ;

инт главни ( ) {

инт а1 = 64 ;
инт б1 = 90 ;
инт ц1 = Једанаест ;
инт д1 = 27 ;
инт е1 = 3. 4 ;
инт ф1 = 98 ;
инт резултат1 = ( а1 + б1 - ц1 ) * д1 / ф1 ;


цоут << 'Резултат 1 је' << резултат1 << ендл ;

инт резултат2 = а1 + ( ф1 * б1 ) / е1 ;

цоут << 'Резултат 2 је' << резултат2 << ендл ;

инт резултат3 = е1 + д1 + а1 - ц1 * б1 / а1 ;

цоут << 'Резултат 3 је' << резултат3 << ендл ;

инт резултат4 = а1 - ф1 + ( б1 - д1 ) * ц1 ;

цоут << 'Резултат 4 је' << резултат4 << ендл ;

инт резултат5 = ( ф1 + ( а1 * ( б1 + а1 ) - ф1 ) * а1 + е1 ) ;

цоут << 'Резултат 5 је' << резултат5 << ендл ;

повратак 0 ;

}

Излаз:

Овде се приказује излаз датог кода који показује резултат свих израза које смо претходно унели. Сви изрази се израчунавају пратећи правило приоритета редоследа.

Закључак

Овде смо погледали „предност у Ц++-у“ у којој смо дубоко проучавали редослед оператора у којем су они израчунати у Ц++ програмирању. Такође смо приказали редослед оператора у облику табеле, а затим извели бројне примере у којима смо сазнали како су изрази решавани према приоритету редоследа у Ц++ програмирању.