INTRODUCCIÓN A LA ALGORITMIA. CAPITULO 3 . SENTENCIAS DE SELECCIÓN. Án gel Fid a lgo Bla n co Un ivers id a d Politécn ica d e Ma d rid Licen cia Crea tive Com m on s Algu n os d erech os res erva d os UNIDAD DIDÁCTICA Nº 3 . FUNCIONES DE SELECCIÓN. OBJ ETIVOS: * Sa b er el con cepto d e la s s en ten cia s d e s elección . * Con ocer la s d is tin ta s s en ten cia s d e s elección con s u s va ried a d es . * Sa b er rep res en ta r m ed ia n te u n orga n igra m a la s s en ten cia s d e s elección . * Con ocer la form a d e crea r y eva lu a r con d icion es lógica s . 1 CONTENIDOS: 1 . In trod u cción . 2 . Rep res en ta ción a lgorítm ica d e la s s en ten cia s d e s elección . 2 .1 . Con cep to y rep res en ta ción a lgorítm ica d e la s en ten cia de s elección if. 2 .1 .1 . Sen ten cia if con form a to gen era l (if-th en -els e). 2 .1 .2 . Sen ten cia if con u n a s ola a ltern a tiva (if-th en ). 2 .1 .3 . Sen ten cia if en es ca lera (if-els e-if). 2 .1 .4 . Sen ten cia s if a n id a d a s . 2 .1 .5 . Con d icion es con va ria s exp res ion es lógica s . CONOCIMIENTOS PREVIOS. - Tip os d e va ria b les . - Sen ten cia s d e en tra d a . - Sen ten cia s d e s a lid a . 2 INTRODUCCIÓN. E n los ca p ítu los a n teriores h em os rea liza d o a lgu n os a lgoritm o; la ca ra cterís tica com ú n a tod os ellos es qu e la s in s tru c cion es o s en ten cia s s e ejecu ta b a n u n a tra s otra ; es d ecir, p rim ero s e ejecu ta la p rim era in s tru cción , p os teriorm en te la s egu n da ; s egu id a m en te la tercera y a s í s u ces iva m en te h a s ta llega r a la ú ltim a in s tru cción d el p rogra m a .Ta m b ién en los p rogra m a s s ecu en cia les , a n tes d e ejecu ta rs e u n a in s tru cción d eterm in a d a s e ejecu ta rá la p reced en te; es d ecir, a n tes de ejecu ta rs e la in s tru cción n º 5 , s e d eb e ejecu ta r la n º 4 . Es to h a ce qu e s iem p re qu e s e ejecu te u n p rogra m a d e es ta s ca ra cterís tica s el ord en d e ejecu ción d e la s s en ten cia s es : 1 ª , 2 ª , 3 ª , 4 ª ,....n ª . Ad em á s es ta s ecu en cia d e ejecu ción s e m a n tien e s iem p re qu e s e ejecu te el p rogra m a . Cu a n d o u n p rogra m a es tá es crito d e es ta form a s e d ice qu e es u n pro gram a c o n flujo s e c ue n c ial, ya qu e el flu jo d e ejecu ción es s ecu en cia l (s e ejecu ta u n a s en ten cia tra s otra en ord en d e es critu ra ). La figura n º 1 m u es tra u n es qu em a d e u n p rogra m a con flu jo s ecu en cia l. E xis ten u n a s erie d e s en ten cia s qu e p erm iten a ltera r el ord en s ecu en cia l d e 3 ejecu ción ; es d ecir, n o es n eces a rio qu e p a ra ejecu ta rs e la in s tru cción n º 5 a n tes s e h a ya ejecu ta d o la n º 4 , o qu e la s igu ien te in s tru cción a ejecu ta r n o s ea la qu e es tá es crita a con tin u a ción . Es ta s s en ten cia s q u e p erm iten ca m b ia r el flu jo s ecu en cia l s e d en om in a n es tru ctu ra s o s e n t e n c ias de c o n t ro l. La s s en ten cia s d e con trol pu ed en s er d e d ivers os tip os : d e s elección , d e rep etición (o itera ción ) y d e s a lto. En es te ca p ítu lo es tu d ia rem os la s s e n t e n c ias de s e le c c ió n . La s s e n t e n c ias de s e le c c ió n s on a qu ella s qu e n os p erm iten a ltera r el flu jo d e ejecu ción d e la s in s tru ccion es d e u n p rogra m a en fu n ción d e qu e s e cu m p la u n a con d ición d eterm in a d a . Un a s e n t e n c ia de s e le c c ió n pe rm it e e je c ut ar un as u o t ras in s t ruc c io n e s , e n fun c ió n de que o c urra un a c o n dic ió n de t e rm in ada. Un ejem p lo d e cóm o s e a ltera el flu jo s ecu en cia l p od ría s er u n p rogra m a , en el cu a l s i s e cu m p le la con d ición d e qu e (a > 4 ) en ton ces ejecu ta la s in s tru ccion es 1 ª ,2 ª ,3 ª ,4 ª ,5 ª y 6 ª y s i cu m p le la con d ición d e qu e (a < 4 ) en ton ces s e ejecu ta n la s in s tru ccion es 1 ª ,2 ª ,3 ª ,7 ª ,8 ª y 9 ª . Pa ra com p ren d er la s s en ten cia s d e s elección , a n tes h a y qu e com p ren der p erfecta m en te qué e s un a c o n dic ió n . Un a con d ición la p od em os d es crib ir com o un a o varias e xpre s io n e s c uy o re s u lt ado pue de s e r ve rdade ro o fals o , a la s exp res ion es qu e es tá n d en tro d e la con d ición s e la s s u ele d en om in a r e xpre s io n e s ló gic as (p a ra fa cilita r la com p ren s ión d e la s s en ten cia s d e s elección , d e m om en to, s u p on d rem os qu e u n a con d ición s ola m en te tien e u n a exp res ión lógica ). E n a lgu n os ca s os la s exp res ion es lógica s s e es crib en d e la m is m a m a n era qu e exp res ion es n u m érica s o exp res ion es d e ca ra cte res ; p a ra d is tin gu irla s , la s exp res ion es lógica s la s exp res a rem os en tre d os p a rén tes is (d e h ech o, h a y u n a s en ten cia d e s elección qu e u tiliza la s exp res ion es lógica s en tre p a rén tes is ). Por ejem p lo, la exp res ión : a=5 Si fue s e un a e xpre s ió n n um é ric a en la va ria b le a s é a lm a cen a ría el va lor 5 . Si fue s e un a e xpre s ió n ló gic a n o s e a s ign a ría el va lor 5 a la va ria b le a, s i n o qu e s e c o m pararía e l c o n t e n ido de la variable a c o n e l valo r 5 y el res u lta d o p od ría s er: Ve rdade ro s i el va lor d e la va ria b le a es 5 . 4 Fals o s i el va lor d e la va ria b le a es d is tin to d e 5 . Pa ra evita r es te tip o d e in terp reta cion es a m b igu a s cu a n d o n os refira m os a u n a exp res ión lógica la en cerra rem os en tre p a rén tes is , a s í: a =5 s ería u n a exp res ión n u m érica . (a =5 ) s ería u n a exp res ión lógica . n om ="Hea vy" s ería u n a exp res ión d e ca ra cteres . (n om ="Hea vy") s ería u n a exp res ión lógica . Se d ecía qu e la s exp res ion es lógica s s ola m en te p od ía n ten er d os va lores : verd a d ero y fa ls o; a s í p u es , s e recom ien d a a l lector qu e cu a n d o d es ee eva lu a r u n a exp res ión lógica s e la p la n tee com o u n a in terroga ción ; p or ejem p lo: e xpre s ió n ló gic aPlan t e am ie n t o para e valuarla (a =5 )¿es a =5 ? (n om ="Hea vy")¿es n om = "Hea vy"? E vid en tem en te la res p u es ta a es tos p la n tea m ien tos p u ed e s er: s í o n o (ó a =5 ó a es d is tin to d e 5 ). Si la res p u es ta a la in terroga ción es "s í" es to qu iere d ecir qu e la con d ición s e cu m p le, p or ta n to el res u lta d o d e la m is m a es verd a d ero. Si la res p u es ta es "n o", qu iere d ecir qu e la con d ición n o s e cu m p le y p or ta n to el res u lta d o d e es a exp res ión es fa ls o. La figura n º 2 res u m e el p roces o d e eva lu a ción d e la s exp res ion es lógica s . 5 E n es te ca p ítu lo s e es tu d ia rá n d os s en ten cia s d e s elección , la s d en om in a d a s s en ten cia s if y la s s en ten cia s s wit c h ó c as e . In icia rem os s u es tu d io en el p u n to s igu ien te. Re c ue rda que : u n a con d ición es tá form a d a p or exp res ion es lógica s y s ola m en te p u ed en ten er d os va lores : "verd a d ero" y "fa ls o". 6 2 . REPRESENTACIÓN SELECCIÓN. ALGORÍTMICA DE LAS SENTENCIAS DE Prá ctica m en te la tota lid a d d e los len gu a jes d e progra m a ción qu e s e d en om in a n es tru ctu ra d os tien en la s d os s en ten cia s d e s elección qu e s e es tu d ia rá n en es te ca p ítu lo; la rep res en ta ción a lgorítm ica d e la s m is m a s es com ú n en tod os los len gu a jes d e p rogra m a ción , n o ob s ta n te la form a d e es crib irla s va ría u n p oco d e u n len gu a je a otro; p ero u n a vez qu e s e s a b en m a n eja r s e p u ed en a p lica r con s u m a fa cilid a d en u n len gu a je u otro. 2 .1 . Co n c e pt o y re pre s e n t ac ió n s e le c c ió n if. algo rít m ic a de la s e n t e n c ia de La s en ten cia d e s elección if (if en in glés qu iere d ecir s i...) es u n a s en ten cia qu e s e b a s a en la eva lu a ción d e u n a exp res ión lógica . Si el res u lta d o d e la exp res ión es verd a d ero la s en ten cia if ced e el con trol a u n a s en ten cia o s en ten cia s d eterm in a d a s y s i es fa ls o ced e el con trol a otra s s en ten cia s . Se p od ría d ecir qu e la s en ten cia if d eterm in a cu a l s erá la p róxim a in s tru cción a ejecu ta r en fu n ción d e u n a d eterm in a d a con d ición . Por ejem p lo, s u p on ga m os qu e s e a ca b a d e ejecu ta r u n a s en ten cia d e lectu ra d on d e s e p id e el n ú m ero d e d ía s qu e tien e el m es d e Feb rero p a ra el a ñ o a ctu a l; a con tin u a ción s e p id e qu e s e es crib a "a ñ o b is ies to" s i en la va ria b le Fe bre ro h a n in trod u cid o el va lor 2 9 y qu e es crib a "a ñ o n o b is ies to" s i el va lor n o es 2 9 . E s to s e p od ría h a cer d e la s igu ien te form a : s i (Feb rero = 2 9 ) e n t o n c e s es crib e "a ñ o b is ies to" de lo c o n t rario es crib e "a ñ o n o b is ies to" fin s i. Tra d u cien d o los térm in os d e la s en ten cia if m a rca d os en n egrita , és ta qu ed a ría : if (Feb rero = 2 9 ) t h e n es crib e "a ñ o b is ies to" e ls e es crib e "a ñ o n o b is ies to" e n dif Rea lm en te es to es la es tru ctu ra d e la s en ten cia if y s u rep res en ta ción 7 m ed ia n te u n orga n igra m a s e m u es tra en la figura n º 3 Si en la figu ra n º 3 s u p on em os qu e ca da s ím b olo d el orga n igra m a es u n a es ta ción d e ferroca rril y la s lín ea s qu e los u n e n s on vía s ferrovia ria s el con trol d el flu jo s e p od ría d efin ir com o la s es ta cion es p or la s cu a les p a s a ría u n h ip otético tren qu e via ja ra a tra vés del orga n igra m a . Com o s e p u ed e ob s erva r en la figu ra el ord en d e ejecu ción d e s en ten cia s s ería : o 1 ª , 2 ª, 3 ª y 5 ª en el ca s o d e qu e Feb rero s ea igu a l a 2 9 y.. o 1 ª , 2 ª, 4 ª y 5 ª en el ca s o d e qu e Feb rero n o s ea igu a l a 2 9 . Record em os qu e d ecía m os qu e la s s en ten cia s d e s elección p erm itía n a ltera r el flu jo d e ejecu ción d e in s tru ccion es y efectiva m en te a s í lo h a cen , la s en ten cia 2ª (s en ten cia if) a ltera el flu jo d e ejecu ción (d efin e cu a l es la p róxim a in s tru cción a ejecu ta rs e) en fu n ción d e la eva lu a ción d e u n a exp res ión lógica . 8 Ha y u n d eta lle m u y im p orta n te p a ra com p ren d er con exa ctitu d el fu n cion a m ien to d e la s s en ten cia s if, es te d eta lle s on los de lim it ado re s . Los d elim ita d ores s on la s referen cia s qu e u tiliza n la s s en ten cia s if p a ra qu e el ord en a d or s ep a : a ) el com ien zo y fin a l d el con ju n to d e in s tru ccion es qu e s e d eb en ejecu ta r s i la con d ición es verd a d era ; b ) el com ien zo y el fin a l d el con ju n to d e in s tru ccion es qu e s e d eb en ejecu ta r s i la con d ición es fa ls a y el p rin cip io y c) lo qu e s e d en om in a blo que if (ver figu ra 5 .3 .). El b loqu e if es el com p u es to p or la s en ten cia if y el con ju n to d e in s tru ccion es qu e s e ejecu ta ría n ta n to s i la con d ición es verda d era com o fa ls a . La figura n º 4 ilu s tra y m a rca los d elim ita d ores qu e s e em p lea n ta n to en el orga n igra m a com o en la es critu ra d e la s en ten cia d e s elección . La s en ten cia if p u ed e ten er va ria s m od a lid a d es , es ta s m od a lid a d es s e es ta b lecen en fu n ción d e la s a lter n a tiva s d e con trol d e flu jo (o vía s p a ra p od er con tin u a r con la ejecu ción d e la s in s tru ccion es ). 9 2 .1 .1 . Se n t e n c ia if c o n fo rm at o ge n e ral (s e n t e n c ia if-t h e n -e ls e ). E s ta s en ten cia tien e s u equ iva len te en tod os los len gu a jes d e p rogra m a ción . La s en ten cia if-t h e n -e ls e p erm ite ejecu ta r u n a in s tru cción o con ju n to d e in s tru ccion es s i la con d ición qu e eva lú a es verd a d era (a ltern a tiva th en ) y otra in s tru cción o con ju n to d e ella s s i el res u lta d o es fa ls o (a ltern a tiva els e). La m a yoría d e los len gu a jes p erm iten es crib ir es ta s en ten cia d e d os form a s d ep en d ien d o d el n ú m ero d e in s tru ccion es qu e es tén en ca d a a ltern a tiva , con creta m en te s e d is tin gu en d os : u n a cu a n d o ta n to en la a ltern a tiva th en (verd a d ero) com o en la a ltern a tiva els e (fa ls o) h a y u n a s ola in s tru cción y otra form a cu a n d o h a y va ria s in s tru ccion es en ca d a a ltern a tiva . La figura n º 5 m u es tra la s d os p os ib ilid a d es d e es ta s en ten cia d e s elección y s u rep res en ta ción m ed ia n te u n orga n igra m a . Com o ejem p lo d e u tiliza ción d e la s en ten cia if-t h e n -e ls e en s u s d os m od a lid a d es rea liza rem os d os ejem p los : 10 Eje m plo 1 . if-t h e n -e ls e c o n un a s o la in s t ruc c ió n po r alt e rn at iva. Se p id e qu e s e rea lice u n a lgoritm o con s u orga n igra m a corres p on d ien te p a ra qu e el ord en a d or p id a el n om b re y el s exo d e u n a p ers on a y en fu n ción d e es te ú ltim o d a to es crib a : "Hola Señ or xxxxx" s i la va ria b le s exo="Va rón " y qu e es crib a "Hola Señ orita xxx x" s i la va ria b le s exo es d is tin to d e “Va rón ” So luc ió n : Eje m plo 2 . if-t h e n -e ls e c o n varias in s t ruc c io n e s e n c ada alt e rn at iva. Su p on ga m os qu e n os en ca rga n qu e rea licem os u n orga n igra m a p a ra el m a n ejo d e u n ca jero a u tom á tico. Es te ca jero m os tra rá d os op cion es a l u s u a rio. La op ción 1 p a ra in gres a r d in ero y la op ción 2 p a r a retira r d in ero. 11 Si la op ción es 1 , en ton ces el orga n igra m a im p rim irá u n m en s a je p a ra p regu n ta r a l u s u a rio la ca n tid a d qu e d es ea in trod u cir. Pos teriorm en te es a ca n tid a d s e a lm a cen a rá en u n a va ria b le (ca n tm et) y es a ca n tid a d s e le s u m a rá a l s a ld o qu e ten ía a n teriorm en te. Si la op ción es d is tin to d e 1 , en ton ces el orga n igra m a im p rim irá u n m en s a je p a ra pregu n ta r a l u s u a rio qu é ca n tid a d d es ea retira r. Pos teriorm en te es a ca n tid a d s e leerá en u n a va ria b le (ca n tret) y es a ca n tid a d s e le res ta rá a l s a ld o qu e te n ía a n teriorm en te. Fin a lm en te s e le m os tra rá a l u s u a rio el s a ld o qu e le qu ed a res u lta n te tra s rea liza r la op era ción s eleccion a d a . So luc ió n : Re c ue rda que : la s en ten cia if-th en -els e p erm ite la ejecu ción d e u n con ju n to d e in s tru ccion es s i la con d ición es verd a d era y d e otro con ju n to s i es fa ls a . 12 2 .1 .2 . Se n t e n c ia if c o n un a s o la alt e rn at iva (s e n t e n c ia if -t h e n ). E s ta s en ten cia s e u tiliza cu a n d o s e d es ea ejecu ta r u n a o va ria s in s tru ccion es ú n ica m en te cu a n d o la con d ición s ea verd a d e ra . Si la eva lu a ción d e la con d ición es fa ls a en ton ces s e ejecu ta ría la in s tru cción s igu ien te a la if-t h e n . Al igu a l qu e la s en ten cia a n terior la m a yoría d e los len gu a jes d e p rogra m a ción la u tiliza n en d os m od a lid a d es . Un a m od a lid a d es cu a n d o en la a ltern a tiva t h e n s ólo h a y u n a s en ten cia y la otra m od a lid a d es cu a n d o h a y va ria s s en ten cia s . La figura n º 8 m u es tra los orga n igra m a s p a ra ca d a va ried a d d e s en ten cia if-t h e n . Re c ue rda que : la s en ten cia if-th en p erm ite la ejecu ción d e u n con ju n to d e in s tru ccion es ú n ica m en te en el ca s o d e qu e la con d ición s ea verd a d era . 13 2 .1 .3 . Se n t e n c ia if e n e s c ale ra (s e n t e n c ia if-e ls e -if). Ob s erva d e n u evo el orga n igra m a d el ca jero, d on d e s i op ción = 1 s ign ifica b a qu e el u s u a rio d es ea b a in trod u cir d in ero y cu a n d o el u s u a rio teclea b a el va lor 2 (op ción =2 ) qu ería d ecir qu e d es ea b a retira r d in ero. ¿Qu é p a s a ría s i en op ción a lm a cen o el va lor 5 ? ó d ich o d e ot ra form a ¿Qu é p a s a ría s i la va ria b le op ción = 5 ?. E l lector p od rá com p rob a r a terra d o qu e el orga n igra m a fu n cion a d e la m is m a form a qu e s i h u b iera teclea d o el va lor 2 ; es d ecir, qu e s i op ción = 2 y lo m is m o ocu rriría s i tecleo el va lor 1 2 3 4 5 o -3 4 5 6 7 8 . Es to s e d eb e a qu e la s en ten cia if rea lm en te com p ru eb a s i s e cu m p le o n o u n a con d ición ; en es te ca s o com p ru eb a s i s e cu m p le qu e (op ción =1 ), s i s e cu m p le qu iere d ecir qu e op ción = 1 , p ero s i n o s e cu m p le qu iere d ecir qu e op ción p u ed e con ten er cu a lqu ier va lor d is tin to d e 1 . E s ta form a d e a ctu a r d e la s en ten cia d e s elección if n os p u ed e llega r a p la n tea r ciertos p rob lem a s . Por ejem p lo en la s en ten cia : leer la va ria b le s exo. if (s exo="Va rón ") t h e n es crib e "eres u n ch ico" e ls e es crib e "eres u n a ch ica " e n dif Si el u s u a rio teclea "h om b re"; es d ecir s exo="h om b re" el p rogra m a le con tes ta ría : "eres u n a ch ica " y s u p on em os qu e n o h a rá m u ch a gra cia a l u s u a rio d el ord en a d or. En lu ga r d e es to, ¿n o s ería m ejor h a cer u n p rogra m a qu e rea liza ra lo s igu ien te?: o Si el u s u a rio teclea "Va rón " es crib iría "eres u n ch ico" o Si el u s u a rio teclea "Hem b ra " es crib iría "eres u n a ch ica " o Si el u s u a rio teclea cu a lqu ier otro va lor es crib iría "el con ten id o d e la va ria b le s exo s ólo p u ed e s er: Hem b ra o Va rón . Por fa vor teclee d e n u evo la res p u es ta ". Otra s itu a ción , ¿cóm o h a ría m os s i en el orga n igra m a d el ca jero ten em os la s op cion es : 1 -Meter d in ero, 2 -Retira r d in ero, 3 - Con s u lta r s a ld o?. Tod os es tos p rob lem a s n os los res u elve con gra n efica cia la s en ten cia ife ls e -if o s en ten cia if en es ca lera . La s en ten cia if-e ls e -if s e d is tin gu e d e la s otra s s en ten cia s if p orqu e és ta 14 p u ed e eva lu a r m á s d e u n a con d ición . Un ejem p lo p u ed e s er: s i (op ción =1 ) e n t o n c e s es crib e "in trod u ce la ca n tid a d d e d in ero a m eter" leer ca n tm et s a ld o=s a ld o+ca n tm et de lo c o n t rario s i (op ción = 2 ) e n t o n c e s es crib e "in trod u ce la ca n tid a d d e d in ero a retira r" leer ca n tret s a ld o =s a ld o-ca n tret de lo c o n t rario s i (op ción = 3 ) e n t o n c e s es crib e "s u s a ld o es ",s a ld o de lo c o n t rario es crib e "d eb e elegir u n a op ción n u m era d a d el 1 a l 3 ". fin if. d e form a gen érica : s i c o n dic ió n 1 en ton ces s en ten cia s 1 . d e lo con tra rio s i c on dic ió n 2 en ton ces s en ten cia s 2 . d e lo con tra rio s i c on dic ió n 3 en ton ces s en ten cia s 3 . d e lo con tra rio s en ten cia s 4 . fin if. La s en ten cia if-e ls e -if fu n cion a d e la s igu ien te m a n era . 1 .- eva lú a c o n dic ió n 1 , s i es verd a d era en ton ces ejecu ta "s en ten cia s 1 " y s e a ca b a la s en ten cia if-els e-if. Si la con d ición 1 es fa ls a en ton ces va a eva lu a r la s igu ien te con d ición (p a s o 2 ). 2 .- eva lú a c o n dic ió n 2 , s i es verd a d era en ton ces ejecu ta "s en ten cia s 2 " y s e a ca b a la s en ten cia if-els e-if. Si la con d ición 2 es fa ls a en ton ces s e va a eva lu a r la s igu ien te con d ición (p a s o 3 ). 3 .- eva lú a c o n dic ió n 3 , s i es verd a d era en ton ces s e ejecu ta "s en ten cia s 3" y s e a ca b a la s en ten cia if-els e-if. Si la con d ición 3 es fa ls a en ton ces com o ya n o h a y m á s con d icion es qu iere d ecir qu e n o s e h a cu m p lid o 15 n i la con d ición 1 , n i la 2 n i la 3 ; p or ta n to s e ejecu ta el p a s o 4 (d e lo con tra rio). 4 .- com o n o s e h a cu m p lid o n in gu n a con d ición s e ejecu ta "s en ten cia s 4 ". E l orga n igra m a d e es ta s en ten cia s e p u ed e ver en la figura n º 9 . Ha y len gu a jes qu e n o a d m iten la s en ten cia if-els e-if, en es te ca s o s e em p lea ría n la s “IF ANIDADAS ” (ver el a p a rta d o s igu ien te) E n u n a s en ten cia if-e ls e -if s e p u ed en eva lu a r ta n ta s con d icion es com o s e d es een ; es d ecir p od em os p on er ta n ta s lín ea s de lo c o n t rario s i c o n dic ió n x com o qu era m os . Al igu a l qu e el res to de la s s en ten cia s if los len gu a jes d e p rogra m a ción s u elen es crib ir d e form a d is tin ta es ta s en ten c ia en fu n ción d el n ú m ero d e s en ten cia s qu e s e ejecu ten en ca d a a ltern a tiva . Si en ca d a a ltern a tiva h a y u n a s ola s en ten cia s e es crib e d e u n a form a m ien tra s qu e s i h a y va ria s s e es cribe d e otra . Re c ue rda que : Un a s en ten cia if-els e-if eva lú a s u ces iva m en te u n con ju n to d e con d icion es y cu a n d o en cu en tra u n a qu e s ea verd a d era , en ton ces ejecu ta u n con ju n to d e in s tru ccion es y a ca b a la s en ten cia if. En ca s o d e qu e n o en cu en tre n in gu n a con d ición verda d era , en ton ces s e ejecu ta n la s in s tru ccion es qu e es tá n en la op ción "d e lo con tra rio". 16 2 .1 .4 . Se n t e n c ias if an idadas . La s s en ten cia s d e s elección if s e b a s a n en la eva lu a ción d e u n a con d ición (com p u es ta p or u n a o va ria s exp res ion es lógica s ) y en fu n ción d e és ta el ord en a d or ejecu ta u n a s u otra s in s tru ccion es . Es ta s in s tru ccion es qu e s e ejecu ta n en fu n ción d e la eva lu a ción d e la con d ición p u ed en s er cu a lqu ier fu n ción o s en ten cia , in clu id a s la s s en ten cia s if. Un a s en ten cia if an idada es u n a s en ten cia if qu e con tien e otra s s en ten cia s if es s u s in s tru ccion es a ltern a tiva s . Pa ra com p ren d er con m a yor p recis ión la s s en ten cia s if rea liza rem os u n a lgoritm o p a ra d etecta r s i u n a p ers on a d eb e h a cer el s ervicio m ilita r. Pa ra ello s u p on em os qu e u n a p ers on a rea liza el s ervicio m ilita r s i es m a yor d e ed a d , s i es va rón y s i n o p a d ece n in gu n a en ferm ed a d crón ica . leer sexo. ┌─ Si (sexo= varón) entonces │ leer mayor_edad │ │ ┌─ Si mayor_edad='sí' entonces │ │ leer enfermedad │ │ │ │ ┌─ Si enfermedad='sí' entonces │ │ │ escribe "Lo siento, no vas a la mili" │ │ │ de lo contrario │ │ │ escribe "Usted va a la mili" │ │ └─ fin if │ │ │ │ de lo contrario │ │ escribe "Usted es menor de edad, no va a la mili" │ └─ fin if │ │ de lo contrario │ escribe "Las mujeres, de momento, no van a la mili" └─ fin if 17 E n el ejem p lo s e p u ed e ob s er va r u n a s en ten cia con tres if a n id a d os . Cu a n d o s e p on en if a n id a d os s e d eb e ten er m u y en cu en ta el lu ga r d on d e com ien za y fin a liza la s en ten cia if. La figura n º 1 0 a cla ra el con cep to d e s en ten cia s if a n id a d a s . Re c ue rda que : u n a s en ten cia if p u ed e con ten er otra s s en ten cia s if. Si es to ocu rre d ecim os qu e ten em os s en ten cia s if a n id a d a s . 2 .1 .5 . Co n dic io n e s c o n varias e xpre s io n e s ló gic as . Decía m os qu e u n a con d ición es ta b a com p u es ta p or u n a o va ria s exp res ion es lógica s , p ero qu e p or s im p lifica r la es tru ctu ra s u p on ía m os qu e u n a con d ición es ta b a com p u es ta p or u n a s ola exp res ión lógica . Rea lm en te la s con d icion es p u ed en ten er cu a lqu ier n ú m ero d e exp res ion es lógica s cu yo va lor s egu irá s ien d o verd a dero o fa ls o. A con tin u a ción cita m os a lgu n a s con d icion es con va ria s exp res ion es lógica s . (s e xo ="h o m bre " o s e xo ="varó n ")Es ta es u n a con d ición com p u es ta 18 p or d os exp res ion es lógica s . Es tá n u n id a s p or el op era d or lógico o . E s ta exp res ión s erá verd a d era s i en la va ria b le s exo es tá a lm a cen a d o el va lor "h om b re" o el va lor "va rón ". (e dad=1 8 y e s t at ura=1 .6 0 )Es ta con d ición es tá com p u es ta p or d os exp res ion es lógica s ; p ero a d iferen cia d e la a n terior p a ra qu e és ta s ea verd a d era s e d eb e cu m p lir qu e el con ten id o d e la va ria b le ed a d s ea igu a l a 1 8 y a d em á s qu e el con ten ido d e la va ria b le es ta tu ra s ea 1 .6 0 , s i a lgu n a d e es ta s va ria b les n o tien e es tos va lores , en ton ces la con d ición s erá fa ls a . Pa ra u n ir exp res ion es lógica s s e u tiliza n los op era d ores lógicos "an d", "o r", "n o t ", "xo r",.... No ob s ta n te en es te ca p ítu lo s ola m en te es tu d ia rem os los op era d ores lógicos "an d", "o r" y "n o t " (en ca s tella n o ta m b ién s e d en om in a n "y", "o" y "n o". E l op era d or lógico an d u n e d os exp res ion es form a n d o u n a n u eva con d ición (o s i s e p refiere u n a n u eva exp res ión ). La con d ición res u lta n te es "verd a d era " s i la s exp res ion es qu e la com p on en (en es te ca s o d os ) tien en el va lor "verd a d ero". A con tin u a ción s e exp res a u n a ta b la d on d e s e p u ed e ver el res u lta d o d e la con d ición en fu n ción d e la eva lu a ción d e la s exp res ion es qu e la com p on en . o pe rado r an d c o n dic ió n . valo r de e xpr1 valo r de e xpr2 valo r de la c o n dic ió n exp r1 an d exp r2 Fa ls o Fa ls o Fa ls o exp r1 an d exp r2 Fa ls o Verd a d ero Fa ls o exp r1 an d exp r2 Verd a d ero Fa ls o Fa ls o exp r1 an d exp r2 Verd a d ero Verd a d ero Verd a d ero In t e rpre t ac ió n de la t abla: s i en la con d ición (exp r1 an d exp r2 ) (1ª colu m n a ) ten em os qu e exp r1 ="verd a d ero" (2 ª colu m n a ) y qu e exp r2 ="fa ls o" (3 ª colu m n a ) en ton ces el va lor d e la con d ición (exp r1 a n d exp r2 ) s erá "fa ls o" (4 ª colu m n a ). Lo m is m o s e a p lica p a ra con d icion es com p u es ta s p or m á s d e d os exp res ion es u n id a s p or el op era d or an d; p or ejem p lo, p a ra qu e la con d ición : (e xpr1 an d e xpr2 an d e xpr3 an d e xpr4 ) s ea verd a d era tod a s la s exp res ion es qu e la com p on en d eb en s er verd a d era s . 19 E l op era d or lógico "o r" exp res a qu e p a ra qu e la con d ición s ea verd a d era a l m en os d eb e s er verd a d era a lgu n a d e la s exp res ion es qu e com p on en la con d ición . La s igu ien te ta b la exp res a es ta s itu a ción . o pe rado r o r c o n dic ió n . valo r de e xpr1 valo r de e xpr2 valo r de la c o n dic ió n exp r1 o r exp r2 Fa ls o Fa ls o Fa ls o exp r1 o r exp r2 Fa ls o Verd a d ero Verd a d ero exp r1 o r exp r2 Verd a d ero Fa ls o Verd a d ero exp r1 o r exp r2 Verd a d ero Verd a d ero Verd a d ero Com o s e p u ed e ob s erva r en la ta b la , pa ra qu e la con d ición s ea verd a d era s e d eb e cu m p lir qu e a l m en os u n a d e la s exp res ion es s ea verd a d era . Es to s e a p lica a cu a lqu ier con d ición con m á s d e d os exp res ion es , p or ejem p lo la con d ición : (e xpr1 or e xpr2 o r e xpr3 o r e xpr4 ) es verd a d era s i a l m en os u n a d e la s exp res ion es es verd a d era . E l op era d or lógico n o t es el m á s s en cillo; lo ú n ico qu e h a ce es p on er el va lor con tra rio a l qu e tu vies e la exp res ión . La s igu ien te ta b la m u es tra cóm o a ctú a es te op era d or. o pe rado r n o t . Co n dic ió n valo r de e xpr1 valo r de la c o n dic ió n n o t exp r1 Fa ls o Verd a d ero n o t exp r1 Verd a d ero Fa ls o La s con d icion es ta m b ién p u ed en ten er exp res ion es con com b in a cion es d e los op era d ores exp res a d os a n teriorm en te, en es e ca s o s e recom ien d a el u s o d e p a rén tes is p a ra exp res a r qu é con ju n to d e exp res ion es s e eva lú a p rim ero. Por ejem p lo, en la con d ición : ((e xpr1 an d e xpr2 ) o r e xpr3 ) Prim era m en te s e eva lú a (exp r1 a n d exp r2 ) y el res u lta d o d e és ta s e eva lú a con exp r3 . Si en la con d ición n o exis t en p a rén tes is , en ton ces a p lica m os u n ord en d e p riorid a d a op era d ores lógicos , el ord en es el s igu ien te: 20 - Prim ero, s e eva lú a n la s exp res ion es con el op era d or n ot. - Segu n d o, s e eva lú a n la s exp res ion es con el op era d or a n d . - Tercero, s e eva lú a n la s exp res ion es con el op era d or or. A con tin u a ción s e exp res a n va ria s con d icion es con el ca m in o a s egu ir p a ra s u eva lu a ción : Co n dic ió n :(e xpr1 o r e xpr2 an d e xpr3 ) Evaluac ió n : Su p on ga m os qu e: exp r1 = "verd a d ero", exp r2 = "fa ls o" y exp r3 = "verd a d ero", en ton ces la eva lu a ción es la s igu ien te: 1 .- s e rea liza (e xpr2 an d e xpr3 ) cu yo res u lta d o es fals o 2 .- s e rea liza la op era ción lógica : exp r1 con el res u lta d o d e la eva lu a ción a n terior, s i s u s titu im os , ten em os la con d ición (e xpr1 o r fals o ). Com o exp r1 ="verd a d ero", en ton ces el va lor d e la con d ición (exp r1 or fa ls o) es verd a d ero. Co n dic ió n :(e xpr1 an d n o t e xpr2 o r e xpr3 an d e xpr4 ) Evaluac ió n : Su p on ga m os qu e exp r1 = "fa ls o", exp r2 = "verd a d ero", exp r3 = "verd a d ero" y exp r4 = "verd a d ero", en ton ces la eva lu a ción es la s igu ien te: 1 .- s e h a lla el va lor d e n o t e xpr2 . Com o exp r2 = "verd a d ero" el res u lta d o d e (n ot exp r2 ) es fals o . 2 .- a h ora s e d eb e h a lla r la exp res ión cu yo op era d or lógico es an d. En es ta exp res ión h a y d os op era d or es lógicos a n d ; a s í p u es s e d eb e com en za r p or el a n d qu e es te m á s a la izqu ierd a . As í p u es eva lu a m os e xpr1 an d (n o t e xpr2 ) com o el va lor d e (n o t e xpr2 ) es fa ls o en ton ces ten drem os qu e eva lu a r la exp res ión (e xpr1 an d fals o ) cu yo res u lta d o es fals o . 21 3 .- eva lu a m os la exp res ión (e xpr3 an d e xpr4 ) cu yo res u lta d o es ve rdade ro . 4 .- Fin a lm en te eva lu a m os ((e xpr1 an d n o t e xpr2 ) o r (e xpr3 an d e xpr4 )). La exp res ión qu e es tá a la izqu ierd a d el op era d or o r es el p a s o 2 cu yo res u lta d o es fa ls o; la con d ición d e la d erech a d el op era d or o r es el p a s o 3 cu yo res u lta d o es verd a d ero. As í s u s titu yen d o la s exp res ion es p or s u s va lores ten em os qu e (fals o o r ve rdade ro ) cu yo res u lta d o es ve rdade ro . Por ta n to la c o n dic ió n e s ve rdade ra. Re c ue rda que : Exis ten u n a s erie d e op era d ores lógicos qu e n os p erm iten rea liza r op era cion es con expres ion es lógica s . El va lor d e es ta s op era cion es s igu e s ien d o verd a d ero o fa ls o. 22