www.wikidata.uk-ua.nina.az
Umovnij perehid konstrukciya movi programuvannya yaka dozvolyaye vikonuvati rizni diyi zalezhno vid bulevogo znachennya umovi vkazanoyi programistom Blok shema Yaksho To Inakshe Vkladena blok shema Yaksho To Inakshe Najbilsh chasto umovnij perehid maye dvi stadiyi na pershij vidbuvayetsya porivnyannya mizh soboyu deyakih velichin sho viznachayut umovu perehodu a na drugij vikonuyetsya sam perehid Neobhidnist korektnoyi obrobki umovnih perehodiv nakladaye serjoznij vidbitok na logiku roboti suchasnih konveyernih procesoriv 1 Umovni perehodi mozhut vikonuvatisya dvoma sposobami Vikonuvani perehodi chasto zminyuyut znachennya lichilnika komand procesora na obchislene znachennya adresi perehodu Nevikonuvani dodayut do znachennya lichilnika komand chislo rivne dovzhini potochnoyi komandi v bajtah dlya perehodu do vikonannya nastupnoyi komandi Nepravilne viznachennya tipu umovnogo perehodu mozhe prizvoditi do viniknennya suttyevih zatrimok v roboti konveyera i vidpovidno do velikoyi vtrati produktivnosti komp yutera Zmist 1 Konstrukciya if then else 1 1 S podibni movi 1 2 Pascal 1 3 Else if 1 4 Virazi if then else 1 4 1 Algolopodibni movi 1 4 2 Lisp i dialekti 1 4 3 Haskell 1 4 4 C podibni movi 1 5 Arifmetichnij operator if 2 Div takozh 3 PrimitkiKonstrukciya if then else RedaguvatiS podibni movi Redaguvati V movah z C podibnim sintaksisom C C JavaScript umovnij perehid viglyadaye tak if umova Diyi vikonuyutsya yaksho umova vikonana else Diyi vikonuyutsya yaksho umova ne vikonana Pascal Redaguvati V movi programuvannya Pascal operator umovnogo perehodu viglyadaye tak 2 if umova then operator 1 else operator 2 Cej rozdil potrebuye dopovnennya sichen 2018 Else if Redaguvati Cej rozdil potrebuye dopovnennya sichen 2018 Virazi if then else Redaguvati U bagatoh movah programuvannya pidtrimuyutsya tak zvani if virazi sho podibni do operatoriv umovnogo perehodu ale povertayut deyake znachennya Algolopodibni movi Redaguvati ALGOL 60 en i deyaki inshi movi simejstva ALGOL dozvolyayut traktuvati konstrukciyu if then else yak viraz myvariable if x gt 10 then 1 else 2 U navedenomu prikladi zminnij myvariable bude nadano znachennya v zalezhnosti vid potochnogo znachennya zminnoyi x Lisp i dialekti Redaguvati U dialektah movi Lisp Scheme Racket i Common Lisp umovni virazi takozh prisutni Scheme define myvariable if gt x 12 1 2 Nadaye zminnij myvariable znachennya 1 chi 2 zalezhno vid znachennya x Common Lisp let x 10 setq myvariable if gt x 12 2 4 Nadaye myvariable znachennya 2 Haskell Redaguvati U movi Haskell Haskell 98 i piznishi standarti isnuyut lishe if virazi umovnih operatoriv nemaye i chastina else ye obov yazkovoyu cherez te sho kozhen viraz povinen mati znachennya 3 Logika programi yaka u inshih movah zazvichaj virazhayetsya umovnimi operatorami u Haskell yak pravilo realizuyetsya za dopomogoyu spivstavlennya zi shablonom u rekursivnih funkciyah Mova Haskell realizuye linivi obchislennya cherez ce ye mozhlivim formulyuvati keruyuchi strukturi taki yak if u viglyadi zvichajnih viraziv Linivi obchislennya u comu vipadku oznachayut sho if funkciya obchislyuye lishe viraz umovi i vidpovidnu gilku if chi else v toj chas yak u movah z obov yazkovim obchislennyam ne linivih obchislyuyutsya vsi tri virazi Priklad programi 4 if Bool gt a gt a gt a if True x x if False y y C podibni movi Redaguvati Mova C i podibni yij mayut specialnu ternarnu umovnu operaciyu dlya umovnih viraziv Yiyi sutnist mozhna opisati takim chinom umova obchislyuyetsya koli umova dijsna obchislyuyetsya koli umova nedijsna Takim chinom ternarna operaciya mozhe buti vbudovana u bud yakij viraz na vidminu vid umovnogo operatora U C podibnih movah viraz my variable x gt 10 foo bar In C like languages mozhe buti porivnyanij z algolopodibnimi movami a takozh z ternarnimi operaciyami u movah Ruby Scala i podibnih Umovnij viraz navedenij vishe mozhna opisati i za dopomogoyu umovnogo operatora if x gt 10 my variable foo else my variable bar Dumki programistiv riznyatsya shodo togo yaka forma umovnoyi operaciyi viraz chi operator ye prostishoyu dlya chitannya i sprijmannya lyudinoyu i chi generuye operator bilsh efektivnij kod 5 Arifmetichnij operator if Redaguvati U rannih versiyah movi programuvannya Fortran do standartu Fortran 77 buv prisutnij tak zvanij arifmetichnij umovnij operator Jogo mozhna rozglyadati yak promizhnu konstrukciyu mizh vlasne umovnim operatorom i operatorom viboru Ideya bazuyetsya na matematichnij trihotomiyi x lt 0 x 0 x gt 0 Cej operator buv najpershim umovnim operatorom u Fortrani 6 IF e label1 label2 label3 de e bud yakij chislovij viraz ne obov yazkovo cilij Danij operator ekvivalentnij nastupnomu IF e LT 0 GOTO label1 IF e EQ 0 GOTO label2 GOTO label3 Cherez te sho arifmetichnij IF ekvivalentnij trom operatoram GOTO yaki mozhut perehoditi bud kudi u programi vin vvazhayetsya shkidlivim u strukturnomu programuvanni i ne povinen vikoristovuvatisya u novih programah Div takozh RedaguvatiKomandi umovnogo perehoduPrimitki Redaguvati The Inhibition of Potential Parallelism by Conditional Jumps doi 10 1109 T C 1972 223514 Rozgaluzhennya operatori umovnogo ta bezumovnogo perehodiv operator viboru v Turbo Pascal Arhiv originalu za 19 sichnya 2018 Procitovano 19 sichnya 2018 Haskell 98 Language and Libraries The Revised Report If then else Proposal on HaskellWiki Efficient C Tips 6 Don t use the ternary operator Stack Overflow Embeddedgurus com 18 lyutogo 2009 Procitovano 7 veresnya 2012 American National Standard Programming Language FORTRAN 3 kvitnya 1978 Arhiv originalu za 11 zhovtnya 2007 Procitovano 9 veresnya 2007 nbsp Ce nezavershena stattya pro programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Otrimano z https uk wikipedia org w index php title Umovnij perehid amp oldid 36479315