Está en la página 1de 24

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 .

CONTENIDOS:

4 .1 . In trod u ccin . 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 cin a lgortm 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 cin a lgortm 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 cin a lgortm 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.

4 .1 . INTRODUCCIN. E n p rogra m a cin s e d en om in a b u cle a la ejecu cin 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 cin va ra 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 cin "fin a l"; cu a n d o el m a qu in is ta llega a la es ta cin "fin a l" vu elve a la es ta cin "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 cin o u n a itera cin , 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 cin "in icio" y la es ta cin "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

qu e rea liza r, d e otra form a es ta ra 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 cin . 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 in es a p lica b le p a ra los d is tin tos len gu a jes de p rogra m a cin , 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 cin 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 cin 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 cin a lgortm ica .

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 cin 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 in (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 in 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 cin 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 in 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 in 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 cin (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 ra 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 in s e p od ra es p ecifica r qu e el b u cle rea liza ra 4 itera cion es d e otra s form a s :

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 ra 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 icin p a ra qu e el b u cle rea liza ra 4 itera cion es s era 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 icin s e cu m p le p a ra tod os los ca s os cita d os a n teriorm en te. La frm 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 icin 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 icin I<=e xpr2 (c o n d2 ), el in crem en to s e exp res a p or otra exp res in (c o n d3 ) (p or ejem p lo in crem en to 1 s era I=I+1 ). Ca d a vez qu e u n b u cle fo r rea liza u n a itera cin 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 in , 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 cin I=2 Segu n d a itera cin I=3 Tercera itera cin I=4 Cu a rta itera cin I=5 E jem p lo 2 . Pa ra el ca s o d e I=3 ,1 0 ,2 s era n : Prim era itera cin I=3 Segu n d a itera cin I=5 Tercera itera cin I=7 Cu a rta itera cin I=9

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 cin 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 cin 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 lm 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 cin 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 lm 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 cin en la p rim era in s tru ccin 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 rt 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 icin in icia l y la con d icin 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 .

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 cin s e s u m a el va lor es p ecifica d o en la exp res in 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 yora 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 cin 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 cin , 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 cin 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 cin

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 cin . 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 ra " a l b u cle y ca u s a ra 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

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 icin d eb em os rea liza r el b u cle. Cu a n d o es a con d icin 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 icin qu e es t a l com ien zo d el b u cle, m ien tra s es ta con d icin 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 icin 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 icin es verd a d era y la p u erta s e cierra s i la con d icin es fa ls a . Al es ta r la con d icin 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 icin y d es p u s la itera cin ; 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 icin 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 cin 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 icin 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 cin 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 ra 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 cin 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 icin 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 cin . 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 ra 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 icin "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 ra 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 in qu e form a la con d icin es t n in icia liza d os . En el ejem p lo a n terior es lgico 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 icin 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 icin es verd a d era . Si es ta con d icin n o ca m b ia ra n u n ca en ton ces el b u cle s era in fin ito (ya qu e la p u erta es ta ra s iem p re a b ierta ). As p u es , p a rece lgico 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 dicin 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 icin (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 cin com p ru eb a n u n a con d icin , s i s ta es verd a d era en ton ces s e rea liza u n a itera cin y s i es fa ls a en ton ces fin a liza la ejecu cin 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 icin 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 in qu e h a y d en tro d e la con d icin . 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 icin d e en tra d a . Si in icia lm en te es ta con d icin 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 icin 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 rt 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 icin ) (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 icin . (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 cin .

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 icin 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 icin es fa ls a en ton ces la p rxim 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 dicin 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 vs d e u n b u cle Wh ile.

18

La figura n 9 m u es tra la s olu cin .

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 cters tica com n d e qu e la con d icin 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 cin . 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 icin 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 cin . 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 icin 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 cin , m ien tra s qu e s i es fa ls a s e a ca b a la ejecu cin d el b u cle. La con d icin 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 icin 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 cin . Si la con d icin 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 cin 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 icin , a s p u es es lgico 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 icin 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 cin 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 era : h a cer b loqu e d e s en ten cia s m ien tra s (con d icin ) 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 cin ) in d ep en d ien tem en te d el va lor qu e ten ga la con d icin . Es ta ca ra cters tica es la qu e d et erm in a la u tiliza cin 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 ca 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 era con ven ien te n o d eja r con tin u a r la ejecu cin 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 ra 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 ra 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 cin con u n b u cle wh ile ten d ra 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 cin 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 icin , 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 cin vea m os u n ejem p lo d e u tiliza cin d e b u cles do -wh ile :

"Rea liza r u n orga n igra m a a tra vs 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 rt 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 icin )(fin d el b u cle). E n es te ca s o la con d icin fin a l d el b u cle ta m b in 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 icin )) 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 icin , 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 ra m os u n b u cle in fin ito. E l a lgoritm o a tra vs 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

También podría gustarte