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 .

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 = 2 ,5 ,1
I = 2 8 ,3 1 ,1
I = n ,n +3 ,1
I = 2 ,8 ,2
I = 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 d en tro d el m is m o


p a ra rea liza r cierta s op era cion es , ya qu e és ta s u m in is tra u n a s ecu en cia d e
va lores qu e s e p u ed en u tiliza r p a ra rea liza r cierta s op era cion es . La s
s iguie n t e s figuras 4 , 5 , 6 y 7 d ivers a s u tiliza cion es 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

También podría gustarte