CAPITULO 4 . BUCLES Á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 DIDACTICA Nº 4 . BUCLES. OBJ ETIVOS: * Con ocer el con cep to d e b u cles . * Id en tifica r la s d is tin ta s p a rtes d e u n bu cle. * Con ocer los d is tin tos tip os d e b u cles . * Rep res en ta r m ed ia n te a lgoritm os los d is tin tos tip os d e b u cles . 1 CONTENIDOS: 4 .1 . In trod u cción . 4 .2 . Tip os d e b u cles . 4 .2 .1 . Bu cles For. 4 .2 .1 .1 . Con cep to d el b u cle For. 4 .2 .1 .2 . Rep res en ta ción a lgorítm ica d el b u cle For. 4 .2 .2 . Bu cles Wh ile. 4 .2 .2 .1 . Con cep to d el b u cle Wh ile. 4 .2 .2 .2 . Rep res en ta ción a lgorítm ica d el b u cle Wh ile. 4 .2 .3 . Bu cles Do-Wh ile. 4 .2 .3 .1 . Con cep to d el b u cle Do-Wh ile. 4 .2 .3 .2 . Rep res en ta ción a lgorítm ica d el b u cle Do-Wh ile. CONOCIMIENTOS PREVIOS: * As ign a cion es d e va ria b les . * E xp res ion es . * Sen ten cia s d e en tra d a y s a lid a . * Sen ten cia if-els e. 2 4 .1 . INTRODUCCIÓN. E n p rogra m a ción s e d en om in a b u cle a la ejecu ción rep etid a s veces d e u n m is m o con ju n to d e s en ten cia s . Norm a lm en te en ca d a n u eva ejecu ción va ría a lgú n elem en to. Pa ra com p ren d er m ejor el con cep to d e b u cle im a gin em os u n a m á qu in a d e tren qu e p a rte d e la es ta ció n "in icio" y via ja h a s ta la es ta ción "fin a l"; cu a n d o el m a qu in is ta llega a la es ta ción "fin a l" vu elve a la es ta ción "in icio" y a s í s u ces iva m en te. Ca d a vu elta qu e d a el m a qu in is ta es u n a ejecu ción o u n a itera ción , en la cu a l s e ejecu ta n tod a s la s in s tru ccion es qu e h a y en el tra yecto com p ren d id o en tre la es ta ción "in icio" y la es ta ción "fin a l". La figura n º 1 m u es tra es te con cep to. Pa ra rea liza r u n b u cle correcta m en te, el m a qu in is ta tien e qu e con ocer tres cos a s : el com ien zo, el fin a l d el b u cle y el n ú m ero d e itera cion es qu e tien e qu e rea liza r. Pa ra n u es tro m a qu in is ta es fá cil recon ocer el in icio y el fin a l d el b u cle; p ero a d em á s a lgu ien tien e qu e d ecirle el n ú m ero d e vu elta s qu e tien e 3 qu e rea liza r, d e otra form a es ta ría d a n d o vu elta s in d efin id a m en te. La fo rm a de in dic ar al "m aquin is t a" e l n úm e ro de vue lt as de fin e e l t ipo de buc le . As í p u es , cu a n d o u tilicem os la s in s tru ccion es d e b u cle s d eb em os in d ica r a l p rogra m a d on d e em p ieza el b u cle, d on d e term in a y cu a n ta s itera cion es tien e qu e rea liza r. Tod a s la s s en ten cia s com p ren d id a s en tre el com ien zo y el fin a l d el b u cle s e ejecu ta rá n en ca d a itera ción . In d ep en d ien tem en te d e qu é tip o d e b u cle es tem os u tiliza n d o s e d eb e in d ica r el in icio, el fin a l y el n ú m ero d e itera cion es ; a u n qu e p a ra ca d a tip o d e b u cle s e es p ecifica d e u n a form a d is tin ta . Es to ta m b ién es a p lica b le p a ra los d is tin tos len gu a jes de p rogra m a ción , ca d a len gu a je d efin e u n b u cle d e form a d is tin ta ; p ero la u tiliza ción y los com p on en tes s on los m is m os p a ra tod os los len gu a jes . A con tin u a ción s e a n a liza rá n los d is tin tos tip os de b u cles con s u rep res en ta ción a lgorítm ica . 4 4 .2 . TIPOS DE BUCLES. E xis ten , p rin cip a lm en te, tres tip os d e b u cles , s u u tiliza ción d ep en d e d el tip o d e p rogra m a qu e es tem os rea liza n d o. Los b u cles s e d efin en b á s ica m en te p or la form a en qu e les in d ica m os el n ú m ero d e itera cion es qu e d eb e rea liza r . 4 .2 .1 . Buc le s Fo r. 4 .2 .1 .1 . Co n c e pt o de buc le Fo r. Los b u cles fo r s e u tiliza n cu a n d o el p rogra m a s a b e el n ú m ero d e vu elta s qu e tien e qu e rea liza r cu a n d o en tra en el b u cle. El n ú m ero d e vu elta s s e p u ed e in d ica r p or u n a con s ta n te (p or ejem p lo "5 " vu elta s ) o p or u n a exp res ión (p or ejem p lo "n " vu elta s o "n *j" vu elta s ), en es te ú ltim o ca s o cu a n do el m a qu in is ta llega a l in icio d el b u cle la va ria b le d eb e es ta r a s ign a d a o la exp res ión ca lcu la d a . Pa ra lleva r la cu en ta d el n ú m ero d e itera cion es qu e s e rea liza n en el b u cle s e u tiliza u n a va ria b le en tera , d e es ta form a , en tod o m o m en to s e s a b e el n ú m ero d e itera ción s in m á s qu e ob s erva r el va lor d e la va ria b le, es ta va ria b le t a m b ién s e u tiliza p a ra s a b er cu á n d o s e d eb e a ca b a r el b u cle. E n es te tip o d e b u cles s e d eb e es p ecifica r a l com ien zo d el m is m o la va ria b le en tera qu e s e u tiliza rá p a ra con ta r el n ú m ero d e itera cion es y el n ú m ero d e vu elta s qu e d eb e rea liza r el b u cle. Pa ra evita r p os ib les errores en el va lor d e la va ria b le, a l com ien zo d el b u cle s e d eb e es p ecifica r el va lor in icia l y el va lor fin a l qu e ten d rá la va ria b le en tera , d e es ta form a s e ten d rá con trola d o en tod o m om en to el n ú m ero d e itera cion es . Ta m b ién es con ven ien te es p ecifica r el in crem en to d e la va ria b le ca d a vez qu e s e rea liza u n a itera ción (el 9 7 % d e la s veces el in crem en to es 1 ). Por ejem p lo s i d es ea m os u tiliza r la va ria b le en tera I p a ra con trola r el n ú m ero d e itera cion es y qu erem os qu e rea lice 4 itera cion es , en ton ces s e p od ría es p ecifica r d e la s igu ien te m a n era : I = 1 ,4 ,1 E s to s ign ifica qu e a l com en za r el b u cle la va ria b le tom a el va lor 1 y fin a liza el b u cle cu a n d o tom a el va lor 4 . Ta m b ién s e p od ría es p ecifica r qu e el b u cle rea liza ra 4 itera cion es d e otra s form a s : 5 I I I I I = = = = = 2 ,5 ,1 2 8 ,3 1 ,1 n ,n +3 ,1 2 ,8 ,2 3 ,1 0 ,2 Si gen era liza m os , s e p od ría rep res en ta r el in icio d el b u cle com o I = e xpr1 , e xpr2 ,in c d on d e exp r1 y exp r2 rep res en ta n exp res ion es en tera s e in c el in crem en to qu e tom a la va ria b le I. La con d ición p a ra qu e el b u cle rea liza ra 4 itera cion es s ería qu e la p a rte en tera d e (e xpr2 +in c - e xpr1 )/ in c = 4 . Com p ru eb e el lector qu e es ta con d ición s e cu m p le p a ra tod os los ca s os cita d os a n teriorm en te. La fórm u la gen érica p a ra ca lcu la r el n ú m ero d e itera cion es qu e s e rea liza rá d en tro d e u n b u cle fo r es : Part e e n t e ra ((e xpr2 + in c - e xpr1 )/ in c ) Ob s érves e qu e cu a n d o com ien za el b u cle s e h a ce cu m p lir la con d ición d e qu e I=e xpr1 (c o n d1 ) y cu a n d o fin a liza el b u cle es p orqu e n o s e cu m p le la con d ición I<=e xpr2 (c o n d2 ), el in crem en to s e exp res a p or otra exp res ión (c o n d3 ) (p or ejem p lo in crem en to 1 s ería I=I+1 ). Ca d a vez qu e u n b u cle fo r rea liza u n a itera ción el va lor d e la va ria b le I ca m b ia . Siem p re qu e com ien ce el b u cle el va lor d e la va ria b le I s e h a ce igu a l a l va lor d e la p rim era exp res ión , es d ecir, I=e xpr1 . Pos teriorm en te, el va lor d e I s erá igu a l a l va lor qu e ten ía a n tes m a s el in crem en to ; es d ecir I=I+in c . Vea m os d os ejem p los : E jem p lo 1 . Los va lores qu e tom a la va ria b le I en el b u cle I=2 ,5 ,1 s on los s igu ien tes : Prim era itera ción I=2 Segu n d a itera ción I=3 Tercera itera ción I=4 Cu a rta itera ción I=5 E jem p lo 2 . Pa ra el ca s o d e I=3 ,1 0 ,2 s ería n : Prim era itera ción I=3 Segu n d a itera ción I=5 Tercera itera ción I=7 Cu a rta itera ción I=9 6 La fin aliz ac ió n de l buc le s e d etecta p or el va lor qu e tom a la va ria b le I, a s í en el p rim er ejem p lo en la ú ltim a itera ción el va lor d e I es igu a l a 5 , el b u cle in ten ta rea liza r u n a n u eva itera ción y el va lor d e I tom a el va lor 6 (5 +in c) y es te va lor s u p era a l lím ite (6 >5 ) p or ta n to n o s e rea liza el b u cle. En el s egu n d o ca s o, el b u cle in ten ta rea liza r u n a qu in ta itera ción y el va lor d e I s e h a ce igu a l a 1 1 (9 +in c), es te va lor s u p era a l lím ite (1 1 >1 0 ) p or ta n to el b u cle n o s e rea liza . Cu a n d o el b u cle fin a liza , el p rogra m a con tin ú a la ejecu ción en la p rim era in s tru cción qu e en cu en tre d es p u és d el fin a l d el b u cle. 4 .2 .1 .2 . Re pre s e n t ac ió n algo rít m ic a de l buc le fo r. E n a lgoritm ia el com ien zo d el b u cle for s iem p re s e re p res en ta p or u n a es p ecie d e h exá gon o "es tira d o" (ver la figura n º 2 ). Den tro del h exá gon o s e d eb e es p ecifica r el com ien zo y el fin a l d el b u cle; es d ecir, la con d ición in icia l y la con d ición fin a l. El fin a l d el b u cle s e es p ecifica con u n p u n to n egro. En la figu ra s e rep res en ta el a lgoritm o p a ra u n b u cle fo r con 4 itera cion es . 7 E l va lor d e la va ria b le en tera qu e s e u tiliza com o con ta d or s u fre u n p roces o d e ca m b io d en tro d el b u cle, ca d a vez qu e ocu rre u n a itera ción s e s u m a el va lor es p ecifica d o en la exp res ión d e in crem en to. Pero, ¿qu é ocu rre con el va lor d e la va ria b le a n teriorm en te cita d a a n tes y d es p u és d e qu e s e ejecu te el b u cle?. La m a yoría d e m is a lu m n os h a n ten id o m u ch os p rob lem a s en la rea liza ción d e los p rogra m a s p or n o con s id era r la a n terior p regu n ta , p or ta n to con vien e ten er en cu en ta qu é ocu rre con la va ria b le qu e s e u tiliza com o con ta d or. An t e s de l buc le la va ria b le en tera p u ed e ten er cu a lqu ier va lor, es d ecir s i la h em os a s ign a d o u n va lor d eterm in a d o, s erá es te va lor el qu e con ten ga ; p ero a ten ción , e l valo r de la variable c uan do c o m ie n z a e l buc le s e s us t it uy e po r e l valo r in dic ado e n la e xpr1 , d e es ta form a el va lor a n terior s e d es tru ye y s e ca rga u n o n u evo. As í p u es s e d eb e p res ta r es p ecia l a ten ción a es ta va ria b le. De s pué s de l buc le la va ria b le en tera con tien e el va lor d e la ú ltim a itera ción 8 m á s el in crem en to. Es te es u n fa ctor d e vita l im p orta n cia p u es to qu e s e s u ele creer qu e el va lor d e la va ria b le t ien e el ú ltim o va lor a s ign a d o en la ú ltim a itera ción . La figura n º 3 rep res en ta u n a lgoritm o qu e m u es tra los va lores d e la va ria b le "con ta d or" a n tes y d es p u és d e ejecu ta r u n b u cle fo r. No exis te n in gú n p rob lem a en u tiliza r es ta va ria b le d es p u és d el b u cle ten ien d o en cu en ta la s con s id era cion es a n teriores . Po r n o rm a ge n e ral la s va ria b les qu e u tilicem os com o con ta d ores en los b u cles fo r n o la s u tiliza rem os a lo la rgo d e tod o el p rogra m a . No s e de be c am biar e l valo r de la variable de n t ro de l buc le fo r ya qu e es to "d es p is ta ría " a l b u cle y ca u s a ría u n m a l fu n cion a m ien to d el m is m o. Se s ue le ut iliz ar la va ria b le d el con ta d or d el b u cle fo r p a ra rea liza r cierta s op era cion es , ya qu e és ta s u m in is tra va lores qu e s e p u ed en u tiliza r p a ra rea liza r cierta s s iguie n t e s figuras 4 , 5 , 6 y 7 d ivers a s u tiliza cion es d en tro d el m is m o u n a s ecu en cia d e op era cion es . La s d e la va ria b le d e 9 con ta d or d en tro d e u n b u cle. 10 11 12 13 14 4 .2 .2 . Buc le s Wh ile . 4 .2 .2 .1 . Co n c e pt o de l buc le Wh ile . E l b u cle Wh ile s e u tiliza cu a n d o rea lm en te n o s a b em os el n ú m ero d e itera cion es qu e s e va n a rea liza r en el b u cle, s in em b a rgo s í s a b em os qu e m ien tra s s e cu m p la u n a d eterm in a d a con d ición d eb em os rea liza r el b u cle. Cu a n d o es a con d ición ya n o s e cu m p la en ton ces el b u cle fin a liza rá . E n es te tip o d e b u cles n o exis te n in gu n a va ria b le qu e in d iqu e el n ú m ero d e vu elta s qu e h a rea liza d o o fa lta p or rea liza r. El ú n ico con trol qu e u tiliza es u n a con d ición qu e es tá a l com ien zo d el b u cle, m ien tra s es ta con d ición s ea cierta s e rea liza n itera cion es y en el m om en to qu e s ea fa ls a s e fin a liza el b u cle. Ob s érves e qu e la con d ición es tá a l com ien zo d el b u cle y és ta h a ce la s veces d e u n a p u erta d e en tra d a a l m is m o. La p u erta s e a b re s i la con d ición es verd a d era y la p u erta s e cierra s i la con d ición es fa ls a . Al es ta r la con d ición a la en tra d a d el b u cle, lo p rim ero qu e s e h a ce es com p rob a r la con d ición y d es p u és la itera ción ; es to s ign ifica qu e a n tes d e com en za r a rea liza rs e el b u cle d eb e com p rob a r qu e la con d ición es verd a d era , s i és ta n o lo es en ton ces el b u cle n o s e rea liza rá . De h ech o ca d a vez qu e es te b u cle h a ce u n a itera ción d eb e volver a p a s a r p or la p u erta y com p rob a r s i la con d ición es verd a d era o fa ls a . E s te tip o d e b u cles es m u y ú til en p rogra m a ción p u es to qu e s im u la p roces os rea les ; p or ejem p lo en u n s u rtid or s e p od ría llen a r los d ep ós itos d e com b u s tib le m ien tra s h a ya ga s olin a ; u n a m á qu in a exp en ded ora d e b illetes p u ed e ven d er b illetes m ien tra s h a ya b illetes . En gen era l es te b u cle tien e a p lica ción cu a n d o n os en con trem os a n te u n p rob lem a qu e s e en u n cie d e la form a m ie n t ras ..o c urra algo ...h ac e r t al c o s a . El "ocu rra a lgo" es la con d ición d el b u cle y "h a cer ta l cos a " es el cu erp o d el b u cle; es d ecir, la s s en ten cia s qu e s e ejecu ta n d u ra n te la itera ción . Por ejem p lo: Com o ya s a b es , la s m á qu in a s d e ta b a co s u m in is tra n u n p a qu ete d eterm in a d o in trodu cien d o u n a s m on ed a s . Es ta m á qu in a fu n cion a con u n b u cle d e tip o Wh ile ya qu e s e p od ría exp res a r p or: "m ie n t ras h ay a paque t e s de t abac o ve n de rlo s ". m ien tra s (h a ya ta b a co) 15 ven d erlos . La con d ición "h ay a t abac o " s e p u ed e exp res a r p or (t abac o >0 ) y el p roces o "ve n de rlo s " p or: t o m ar din e ro ; dar c aje t illa; de vo lve r c am bio (s i lo h a y) y h ac e r t abac o =t abac o -1 (qu iere d ecir qu e qu ed a u n a ca jetilla m en os ). As í s e p od ría exp res a r: m ien tra s (ta b a co>0 ) tom a r d in ero. d a r ca jetilla . d evolver ca m b io (s i lo h a y). ta b a co=ta b a co-1 . (s e h a ven d id o u n p a qu ete). fin d el b u cle. Cu a n d o s e u tiliza es te tip o d e b u cles s e h a d e ten er en cu en ta d os cos a s : 1 .- Al com ien zo d el p rogra m a los va lores d e la exp res ión qu e form a la con d ición es tá n in icia liza d os . En el ejem p lo a n terior es lógico qu e a n tes d e p on er a fu n cion a r la m á qu in a h a ya n m etid o ca jetilla s d e ta b a co. Si p or ejem p lo, s e h a n m etid o in icia lm en te 1 0 0 ca jetilla s en el p rogra m a s e exp res a "t abac o =1 0 0 " y es to s e rea liza a n tes d e com en za r el b u cle. 2 .- Den tro d el b u cle s e a ltera la con d ición d e en tra d a ; es d ecir, s i s e es tá ejecu ta n d o el b u cle es to qu iere d ecir qu e la con d ición es verd a d era . Si es ta con d ición n o ca m b ia ra n u n ca en ton ces el b u cle s ería in fin ito (ya qu e la p u erta es ta ría s iem p re a b ierta ). As í p u es , p a rece lógico s u p on er qu e d en tro d el b u cle llega rá u n m om en to en el qu e la con dición s ea fa ls a y p or ta n to fin a lice el b u cle. En el ejem p lo a n te rior exis te la s en ten cia "t abac o =t abac o -1 " qu e ca u s a rá qu e la con d ición (ta b a co>0 ) s ea fa ls a . Rea lm en te es to ocu rrirá cu a n do s e rea licen 1 0 0 itera cion es d en tro d el b u cle o lo qu e es lo m is m o cu a n d o s e h a ya n ven d id o la s 1 0 0 ca jetilla s d e ta b a co. Re c ue rda que : los b u cles wh ile a n tes d e com en za r a rea liza r u n a itera ción com p ru eb a n u n a con d ición , s i és ta es verd a d era en ton ces s e rea liza u n a itera ción y s i es fa ls a en ton ces fin a liza la ejecu ción d el b u cle. Es to s u ele s er p rop en s o a con s tru ir b u cles qu e n o s e e jecu ta n n u n ca o b u cles qu e s e ejecu ta n in d efin id a m en te (b u cles in fin itos ). 16 Lo s buc le s que n o s e e je c ut an n un c a s e s u elen p res en ta r cu a n d o a n tes d el b u cle la con d ición es fa ls a , p or ta n to n o s e en tra en el b u cle y és te n o s e rea liza . Si ocu rre es to revis a los va lores in icia les qu e con form a n la exp res ión qu e h a y d en tro d e la con d ición . Lo s buc le s in fin it os s e s u elen p res en ta r cu a n d o d en tro del b u cle n o s e ca m b ia la con d ición d e en tra d a . Si in icia lm en te es ta con d ición es verd a d era en ton ces s e en tra en el b u cle; p ero s i d en tro d el m is m o n u n ca s e h a ce la con d ición fa ls a , en ton ces el b u cle s e ejecu ta in d efin id a m en te. 4 .2 .2 .2 . Re pre s e n t ac ió n algo rít m ic a de l buc le Wh ile . La es tru ctu ra gen era l d e la s en ten cia wh ile es la s igu ien te: (1 )m ien tra s (con d ición ) (2 ) b loqu e d e s en ten cia s ; (3 )fin wh ile. d on d e blo que de s e n t e n c ias es cu a lqu ier con ju n to d e s en ten cia s C. La es tru ctu ra tien e tres p a rtes : (1 ) m ie n t ras c o n dic ió n s e rep res en ta p or el m is m o s ím b olo qu e u n a s en ten cia if y d en tro d e él la con d ición . (2 ) ca d a s en ten cia s e rep res en ta p or s u s ím b olo. (3 ) el fin wh ile s e rep res en ta m ed ia n te u n p u n to. La figura n º 8 exp res a u n orga n igra m a d e la s en ten cia Wh ile y s u exp lica ción . 17 Ob s érves e qu e el in icio d el b u cle es id én tico a l in icio d e u n a s en ten cia if. Si la con d ición es verd a d era en ton ces s e ejecu ta n la s s en ten cia s d el b loqu e, m ien tra s qu e s i la con d ición es fa ls a en ton ces la p róxim a s en ten cia a ejecu ta r es la qu e es té d etrá s d el fin wh ile . Recu érd es e qu e d en tro d el b loqu e d e s en ten cia s d eb e h a b er a lgu n a qu e ca m b ie la con dición d e en tra d a a l m is m o. Pa ra com p ren d er m ejor el fu n cion a m ien to d e es te tip o d e b u cle rea liza rem os el s igu ien te ejem p lo: "Rea liza r u n orga n igra m a qu e rep res en te el fu n cion a m ien to d e u n a m á qu in a d e ta b a co (p or s im plifica r, s u p on er qu e s ólo h a y u n a m a rca d e ta b a co con u n p recio fijo). La m á qu in a d eb e a cep ta r el d in ero, d a r el p a qu ete y d evolver el ca m b io". E s te p rob lem a s e p u ed e res olver con la es tru ctu ra gen era l: "m ien tra s h a ya ta b a co ven d erlo", d ón d e ven d erlo es u n con ju n to d e a ccion es . Es ta es tru ctu ra in d ica qu e el orga n igra m a s e p u ed e rea liza r a tra vés d e u n b u cle Wh ile. 18 La figura n º 9 m u es tra la s olu ción . 19 4 .2 .3 . Buc le s Do -Wh ile . 4 .2 .3 .1 . Co n c e pt o de l buc le Do -Wh ile . Los b u cles fo r y wh ile tien en la ca ra cterís tica com ú n d e qu e la con d ición s e eva lu a b a a n tes d e rea liza r el b u cle, a s í ca b ía la p os ib ilid a d d e qu e n o s e rea liza ra n in gu n a itera ción . La p rin cip a l d iferen cia d el b u cle do -wh ile , res p ecto a los a n teriores , es qu e és tos eva lú a n la c on d ición a l fin a l d el b u cle; a s í el b u cle s iem p re rea liza rá a l m en os u n a itera ción . E n los b u cles do -wh ile n o s e s a b e a p riori el n ú m ero d e itera cion es qu e s e va n a rea liza r, d ep en d e d e la con d ición qu e h a y a l fin a l d el b u cle; s i és ta es cierta s e vu elve a rea liza r u n a itera ción , m ien tra s qu e s i es fa ls a s e a ca b a la ejecu ción d el b u cle. La con d ición a l fin a l d el b u cle a ctú a com o u n a com p u erta d e s a lid a d el m is m o, s i la con d ición es verd a d era es ta com p u erta es ta rá cerra d a y p or ta n to d eb em os rea liza r u n a n u eva itera ción . Si la con d ición es fa ls a , en ton ces la com p u erta es ta rá a b ierta y s e p od rá a b a n d on a r la ejecu ción d el b u cle. E n es te tip o d e b u cle n o h a y n in gu n a va ria b le qu e con trole el n ú m ero d e itera cion es , el con trol lo rea liza la con d ición , a s í p u es es lógico s u p on er qu e d en tro d e la s s en ten cia s qu e com p on en el b u cle h a ya a l m en os u n a qu e p u ed a ca m b ia r el va lor d e la con d ición o com p u erta d e s a lid a . Al igu a l qu e los b u cles wh ile es te tip o d e b u cles es m u y u tiliza d o p u es to qu e m u ch a s s itu a cion es rea les tien en u n a in terpreta ción d irecta en el b u cle do -wh ile . Con creta m en te tod a s a qu ella s qu e s e p u ed a n exp res a r m ed ia n te: "h az .....ac c io n e s .....m ie n t ras o c urra un a c o n dic ió n " la es tru ctu ra d el b u cle s ería : h a cer b loqu e d e s en ten cia s m ien tra s (con d ición ) Ob s érves e qu e m ie n t ras (c o n dic ió n ) es tá a l fin a l d el b u cle y es to h a ce qu e el b loqu e d e s en ten cia s s e rea lice a l m en os u n a vez (s e rea liza u n a itera ción ) in d ep en d ien tem en te d el va lor qu e ten ga la con d ición . Es ta ca ra cterís tica es la qu e d et erm in a la u tiliza ción d el b u cle; es d ecir, s i de be m o s re aliz ar un buc le e n e l c ual e s n e c e s ario al m e n o s h ac e r un a it e rac ió n , e n t o n c e s ut iliz are m o s e l buc le do -wh ile . Son m u ch a s la s s itu a cion es en la s cu a les s e requ iere qu e el b u cle s e 20 ejecu te a l m en os u n a vez, p or ejem p lo t o das aque llas que n e c e s it e n que un a e n t rada de in fo rm ac ió n c um pla un a s e rie de c o n dic io n e s y n o s e quie ra c o n t in uar c o n e l pro gram a h as t a que s e c um plan . Por ejem p lo, en el orga n igra m a d e la m á qu in a d e ta b a co s e in trod u cía u n a ca n tid a d d e d in ero p a ra a d qu irir u n p a qu ete, s ería con ven ien te n o d eja r con tin u a r la ejecu ción d el p rogra m a h a s ta qu e la ca n tid a d d e d in ero in trod u cid a n o fu es e igu a l o s u p erior a l p recio d el p a qu ete d e ta b a co. Es to s e rea liza ría a s í: haz leer p recio (ca n tid a d in trod u cid a ) m ien tra s (p recio<2 0 0 ) E s te b u cle do -wh ile n o d eja ría con tin u a r con el p rogra m a h a s ta qu e el u s u a rio in trod u jera a l m en os 2 0 0 p es eta s . Si in ten ta m os h a cer es ta s itu a ción con u n b u cle wh ile ten d ría m os : p recio=0 ó leer p recio m ien tra s (p recio<2 0 0 )m ien tra s (p recio<2 0 0 ) leer p recioleer p recio fin d el b u cle.fin d el b u cle. Ob s erva qu e en el p rim er ca s o con la s en ten cia pre c io =0 es ta m os forza n d o a qu e el b u cle wh ile s e rea lice a l m en os u n a vez, es ta s itu a ción s e res u elve m ejor con u n b u cle do -wh ile ; en el s egu n d o ca s o n eces ita m os d os s en ten cia s d e lectu ra p a ra rea liza r lo m is m o qu e el b u cle do -wh ile con u n a s ola s en ten cia . E s ta s s itu a cion es res a lta n la n eces ida d d e los b u cles wh ile d e in icia liza r la s va ria b les qu e in tervien en en la con d ición , m ien tra s qu e los b u cles do -wh ile n o tien en n eces id a d d e in icia liza r n in gu n a va ria b le. A con tin u a ción vea m os u n ejem p lo d e u tiliza ción d e b u cles do -wh ile : "Rea liza r u n orga n igra m a a tra vés d el cu a l s e p u ed a ju ga r a l n ú m ero es con d id o. En es te ju ego a lgu ien es crib e u n n ú m ero y otra pers on a tra ta d e a d ivin a rlo, es ta p ers on a d irá u n n ú m ero y s i es m a yor qu e el qu e es tá es crito s e d eb erá d ecir "a lto" m ien tra s qu e s i es m en or s e d eb erá d ecir "b a jo". E l ju ego fin a liza cu a n do s e a cierta el n ú m ero es crito y ga n a a qu el qu e lo h a ya a certa d o en m en os in ten tos ". E s te ju ego s e p u ed e exp res a r d e la form a : "d i u n n ú m ero m ien tra s n o 21 a ciertes el n ú m ero s ecreto" ó "ju ega m ien tra s n o a cierte s el n ú m ero s ecreto". E s to s e p u ed e exp res a r m ed ia n te u n b u cle do -wh ile d e la s igu ien te form a : x=0 haz lee n ú m ero (el ju ga d or d ice u n n ú m ero) s i es m a yor qu e el s ecreto es crib e ("a lto") s i es m en or qu e el s ecreto es crib e ("b a jo") x=x+1 m ien tra s (n ú m ero d is tin to a l s ecreto) es crib e ("h a s a certa d o en ", x , "in ten tos ") Ob s erva qu e el b u cle s e rea liza h a s ta qu e el ju ga d or a cierta el n ú m ero s ecreto. La va ria b le x m id e el n ú m ero d e in ten tos qu e h a rea liza d o el ju ga d or h a s ta a certa r. 4 .2 .3 .2 . Re pre s e n t ac ió n algo rít m ic a de l buc le Do -Wh ile . La es tru ctu ra d el b u cle do -wh ile tien e tres p a rtes d iferen cia d a s : in icio, b loqu e d e s en ten cia s y fin a l. d o(com ien zo d el b u cle). b loqu e d e s en ten cia s ;(b loqu e d e s en ten cia s ). m ien tra s (con d ición )(fin d el b u cle). E n es te ca s o la con d ición fin a l d el b u cle ta m b ién a ctú a com o "com p u erta " d e s a lid a o in d ica d or d e itera cion es . El orga n igra m a d el b u cle do -wh ile s e rep res en ta en la figura n º 1 0 22 Ob s érves e qu e el fin a l d el b u cle (m ien tra s (con d ición )) s e rep res en ta p or el m is m o s ím b olo qu e u n a s en ten cia if. Den tro d e la s s en ten cia s qu e com p on en el cu erp o d el b u cle d eb e h a b er a lgu n a qu e p os ib ilite ca m b ia r el va lor d e la con d ición , ya qu e s i el va lor d e és ta in icia lm en te es verd a d ero, en ton ces rea liza ría m os u n b u cle in fin ito. E l a lgoritm o a tra vés d el cu a l rep res en tá b a m os el ju ego d el n ú m ero s ecreto s e rep res en ta m ed ia n te u n orga n igra m a com o s e m u es tra en la figura n º 1 1 23 24