24
1 CAPITULO 4 . BUCLES Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos reservados UNIDAD DIDACTICA Nº 4 . BUCLES. OBJETIVOS: * Conocer el concepto de bucles. * Identificar las distintas partes de un bucle. * Conocer los distintos tipos de bucles. * Representar mediante algoritmos los distintos tipos de bucles.

UNIDAD DIDACTICA Nº 4. BUCLES. - Innovación Educativa · PDF file1 CAPITULO 4. BUCLES Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos

  • Upload
    vudat

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UNIDAD DIDACTICA Nº 4. BUCLES. - Innovación Educativa · PDF file1 CAPITULO 4. BUCLES Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos

1

CAPITULO 4 . BUCLES

Án gel Fida lgo Blan co

Un ivers idad Polit écn ica de Madrid

Licen cia Crea t ive Com m on s Algu n os derech os reservados

UNIDAD DIDACTICA Nº 4 .

BUCLES.

OBJ ETIVOS:

* Con ocer el con cepto de bu cles .

* Iden tifica r la s d is t in ta s pa rtes de u n bu cle.

* Con ocer los d is t in tos t ipos de bu cles .

* Represen ta r m edian te a lgoritm os los d is t in tos t ipos de bu cles .

Page 2: UNIDAD DIDACTICA Nº 4. BUCLES. - Innovación Educativa · PDF file1 CAPITULO 4. BUCLES Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos

2

CONTENIDOS:

4 .1 . In trodu cción .

4 .2 . Tipos de bu cles .

4 .2 .1 . Bu cles For .

4 .2 .1 .1 . Con cepto del bu cle For .

4 .2 .1 .2 . Represen tación a lgorítm ica del bu cle For .

4 .2 .2 . Bu cles Wh ile.

4 .2 .2 .1 . Con cepto del bu cle Wh ile.

4 .2 .2 .2 . Represen tación a lgorítm ica del bu cle Wh ile.

4 .2 .3 . Bu cles Do-Wh ile.

4 .2 .3 .1 . Con cepto del bu cle Do-Wh ile.

4 .2 .3 .2 . Represen tación a lgorítm ica del bu cle Do-Wh ile.

CONOCIMIENTOS PREVIOS:

* As ign acion es de va riables .

* Expres ion es .

* Sen ten cia s de en trada y sa lida .

* Sen ten cia if-else.

Page 3: UNIDAD DIDACTICA Nº 4. BUCLES. - Innovación Educativa · PDF file1 CAPITULO 4. BUCLES Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos

3

4.1 . INTRODUCCIÓN.

En program ación se den om in a bu cle a la ejecu ción repet idas veces de

u n m ism o con ju n to de sen ten cia s . Norm a lm en te en cada n u eva ejecu ción

va ría a lgú n elem en to. Pa ra com pren der m ejor el con cepto de bu cle

im agin em os u n a m áqu in a de tren qu e pa rte de la es tación "in icio" y via ja

h as ta la es tación "fin a l"; cu an do el m aqu in is ta llega a la es tación "fin a l"

vu elve a la es tación "in icio" y a s í su ces ivam en te. Cada vu elta qu e da el

m aqu in is ta es u n a ejecu ción o u n a iteración , en la cu a l s e ejecu tan todas la s

in s tru ccion es qu e h ay en el t rayecto com pren dido en tre la es tación "in icio" y

la es tación "fin a l". La figura nº 1 m u es tra es te con cepto.

Pa ra rea liza r u n bu cle correctam en te, el m aqu in is ta t ien e qu e con ocer tres

cosas : el com ien zo, el fin a l del bu cle y el n ú m ero de iteracion es qu e t ien e qu e

rea liza r . Pa ra n u es tro m aqu in is ta es fácil recon ocer el in icio y el fin a l del

bu cle; pero adem ás a lgu ien t ien e qu e decir le el n ú m ero de vu elta s qu e t ien e

Page 4: UNIDAD DIDACTICA Nº 4. BUCLES. - Innovación Educativa · PDF file1 CAPITULO 4. BUCLES Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos

4

qu e rea liza r , de otra form a es ta r ía dan do vu elta s in defin idam en te. La form a

de indicar al "m aquin is ta" e l núm ero de vue ltas de fine e l t ipo de buc le .

As í pu es , cu an do u tilicem os la s in s tru ccion es de bu cle s debem os in dica r a l

program a don de em pieza el bu cle, don de term in a y cu an ta s iteracion es t ien e

qu e rea liza r . Todas la s s en ten cia s com pren didas en tre el com ien zo y el fin a l

del bu cle se ejecu ta rán en cada iteración .

In depen dien tem en te de qu é t ipo de bu cle es tem os u t ilizan do se debe in dica r

el in icio, el fin a l y el n ú m ero de iteracion es ; au n qu e pa ra cada t ipo de bu cle

se especifica de u n a form a dis t in ta . Es to tam bién es aplicable pa ra los

d is t in tos len gu a jes de program ación , cada len gu a je defin e u n bu cle de form a

dis t in ta ; pero la u t ilización y los com pon en tes son los m ism os pa ra todos los

len gu a jes . A con tin u ación se an a liza rán los d is t in tos t ipos de bu cles con su

represen tación a lgorítm ica .

Page 5: UNIDAD DIDACTICA Nº 4. BUCLES. - Innovación Educativa · PDF file1 CAPITULO 4. BUCLES Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos

5

4 .2 . TIPOS DE BUCLES.

Exis ten , pr in cipa lm en te, tres t ipos de bu cles , su u t ilización depen de del t ipo

de program a qu e es tem os rea lizan do. Los bu cles se defin en bás icam en te por

la form a en qu e les in dicam os el n ú m ero de iteracion es qu e debe rea liza r .

4 .2 .1 . Buc le s For.

4 .2 .1 .1 . Concepto de buc le For.

Los bu cles for s e u t ilizan cu an do el program a sabe el n ú m ero de vu elta s qu e

t ien e qu e rea liza r cu an do en tra en el bu cle. El n ú m ero de vu elta s s e pu ede

in dica r por u n a con s tan te (por ejem plo "5" vu elta s ) o por u n a expres ión (por

ejem plo "n " vu elta s o "n *j" vu elta s ), en es te ú lt im o caso cu an do el m aqu in is ta

llega a l in icio del bu cle la va r iable debe es ta r a s ign ada o la expres ión

ca lcu lada .

Pa ra lleva r la cu en ta del n ú m ero de iteracion es qu e se rea lizan en el bu cle se

u t iliza u n a va riable en tera , de es ta form a , en todo m om en to se sabe el

n ú m ero de iteración s in m ás qu e observa r el va lor de la va r iable, es ta

va r iable tam bién se u t iliza pa ra saber cu á n do se debe acaba r el bu cle.

En es te t ipo de bu cles se debe especifica r a l com ien zo del m ism o la va r iable

en tera qu e se u t iliza rá pa ra con ta r el n ú m ero de iteracion es y el n ú m ero de

vu elta s qu e debe rea liza r el bu cle. Pa ra evita r pos ibles errores en el va lor de

la va r iable, a l com ien zo del bu cle se debe especifica r el va lor in icia l y el va lor

fin a l qu e ten drá la va r iable en tera , de es ta form a se ten drá con trolado en

todo m om en to el n ú m ero de iteracion es . Tam bién es con ven ien te especifica r

el in crem en to de la va r iable cada vez qu e se rea liza u n a iteración (el 97% de

la s veces el in crem en to es 1).

Por ejem plo s i desea m os u t iliza r la va r iable en tera I pa ra con trola r el n ú m ero

de iteracion es y qu erem os qu e rea lice 4 iteracion es , en ton ces se podría

especifica r de la s igu ien te m an era :

I = 1 ,4 ,1

Es to s ign ifica qu e a l com en za r el bu cle la va r iable tom a el va lor 1 y

fin a liza el bu cle cu an do tom a el va lor 4 . Tam bién se podría especifica r qu e el

bu cle rea liza ra 4 iteracion es de otra s form as :

Page 6: UNIDAD DIDACTICA Nº 4. BUCLES. - Innovación Educativa · PDF file1 CAPITULO 4. BUCLES Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos

6

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 lizam os , s e podría represen ta r el in icio del bu cle com o I = expr1 ,

expr2 ,inc don de expr1 y expr2 represen tan expres ion es en tera s e in c el

in crem en to qu e tom a la va r iable I. La con dición pa ra qu e el bu cle rea liza ra 4

iteracion es ser ía qu e la pa r te en tera de (expr2 +inc - expr1 )/ inc = 4 .

Com pru ebe el lector qu e es ta con dición se cu m ple pa ra todos los ca sos

citados an ter iorm en te. La fórm u la gen érica pa ra ca lcu la r el n ú m ero de

iteracion es qu e se rea liza rá den tro de u n bu cle for es :

Parte entera ((expr2 + inc - expr1 )/ inc )

Obsérvese qu e cu an do com ien za el bu cle se h ace cu m plir la con dición de

qu e I=expr1 (cond1 ) y cu an do fin a liza el bu cle es porqu e n o se cu m ple la

con dición I<=expr2 (cond2 ), el in crem en to se expresa por otra expres ión

(cond3 ) (por ejem plo in crem en to 1 ser ía I=I+1).

Cada vez qu e u n bu cle for rea liza u n a iteración el va lor de la va r iable I

cam bia . Siem pre qu e com ien ce el bu cle el va lor de la va r iable I s e h ace igu a l

a l va lor de la pr im era expres ión , es decir , I=expr1 . Pos ter iorm en te, el va lor

de I s erá igu a l a l va lor qu e ten ía an tes m as el in crem en to; es decir I=I+inc .

Veam os dos ejem plos :

Ejem plo 1 . Los va lores qu e tom a la va riable I en el bu cle I=2,5 ,1 son los

s igu ien tes :

Pr im era iteración I=2

Segu n da iteración I=3

Tercera iteración I=4

Cu a rta iteración I=5

Ejem plo 2 . Pa ra el ca so de I=3,10,2 ser ían :

Pr im era iteración I=3

Segu n da iteración I=5

Tercera iteración I=7

Cu a rta iteración I=9

Page 7: UNIDAD DIDACTICA Nº 4. BUCLES. - Innovación Educativa · PDF file1 CAPITULO 4. BUCLES Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos

7

La finalizac ión de l buc le s e detecta por el va lor qu e tom a la va r iable I, a s í

en el pr im er ejem plo en la ú lt im a iteración el va lor de I es igu a l a 5 , el bu cle

in ten ta rea liza r u n a n u eva iteración y el va lor de I tom a el va lor 6 (5+in c) y

es te va lor su pera a l lím ite (6>5) por tan to n o se rea liza el bu cle. En el

s egu n do caso, el bu cle in ten ta rea liza r u n a qu in ta iteración y el va lor de I s e

h ace igu a l a 11 (9+in c), es te va lor su pera a l lím ite (11>10) por tan to el bu cle

n o se rea liza .

Cu an do el bu cle fin a liza , el program a con tin ú a la ejecu ción en la pr im era

in s tru cción qu e en cu en tre despu és del fin a l del b u cle.

4 .2 .1 .2 . Representac ión algorítm ica de l buc le for.

En a lgoritm ia el com ien zo del bu cle for s iem pre se represen ta por u n a

especie de h exágon o "es t irado" (ver la figura nº 2 ). Den tro del h exágon o

se debe especifica r el com ien zo y el fin a l del bu cle; es decir , la con dición

in icia l y la con dición fin a l. El fin a l del bu cle se especifica con u n pu n to

n egro. En la figu ra se represen ta el a lgoritm o pa ra u n bu cle for con 4

iteracion es .

Page 8: UNIDAD DIDACTICA Nº 4. BUCLES. - Innovación Educativa · PDF file1 CAPITULO 4. BUCLES Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos

8

El va lor de la va r iab le en tera qu e se u t iliza com o con tador su fre u n proceso

de cam bio den tro del bu cle, cada vez qu e ocu rre u n a iteración se su m a el

va lor especificado en la expres ión de in crem en to. Pero, ¿qu é ocu rre con el

va lor de la va r iable a n ter iorm en te citada a n tes y despu és de qu e se ejecu te el

bu cle?. La m ayoría de m is a lu m n os h an ten ido m u ch os problem as en la

rea lización de los p rogram as por n o con s idera r la an ter ior pregu n ta , por

tan to con vien e ten er en cu en ta qu é ocu rre con la va r iable qu e se u t iliza com o

con tador .

Antes de l buc le la va r iable en tera pu ede ten er cu a lqu ier va lor , es decir s i la

h em os a s ign ado u n va lor determ in ado, s erá es te va lor el qu e con ten ga ; pero

a ten ción , e l valor de la variable cuando com ienza e l buc le se sus t ituye

por e l valor indic ado en la expr1 , de es ta form a el va lor an ter ior s e

des tru ye y se ca rga u n o n u evo. As í pu es se debe pres ta r especia l a ten ción a

es ta va r iable.

Después de l buc le la va r iable en tera con tien e el va lor de la ú lt im a iteración

Page 9: UNIDAD DIDACTICA Nº 4. BUCLES. - Innovación Educativa · PDF file1 CAPITULO 4. BUCLES Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos

9

m ás el in crem en to. Es te es u n factor de vita l im portan cia pu es to qu e se

su ele creer qu e el va lor de la va r iable t ien e el ú lt im o va lor a s ign ado en la

ú lt im a iteración . La figura nº 3 represen ta u n a lgoritm o qu e m u es tra los

va lores de la va r iable "con tador" an tes y despu és de ejecu ta r u n bu cle for.

No exis te n in gú n problem a en u t iliza r es ta va r iable despu és del bu cle

ten ien do en cu en ta la s con s ideracion es an ter iores .

Por norm a general la s va r iables qu e u t ilicem os com o con tadores en los

bu cles for n o la s u tiliza rem os a lo la rgo de todo el program a . No se debe

cam biar e l valor de la variable dentro de l buc le for ya qu e es to

"despis ta r ía" a l bu cle y cau sa ría u n m a l fu n cion am ien to del m ism o.

Se sue le ut ilizar la va r iable del con tador del bu cle for den tro del m ism o

pa ra rea liza r cier ta s operacion es , ya qu e és ta su m in is tra u n a secu en cia de

va lores qu e se pu eden u t iliza r pa ra rea liza r cierta s operacion es . La s

s iguientes figuras 4 , 5 , 6 y 7 d iversa s u t ilizacion es de la va r iable de

Page 10: UNIDAD DIDACTICA Nº 4. BUCLES. - Innovación Educativa · PDF file1 CAPITULO 4. BUCLES Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos

1 0

con tador den tro de u n bu cle.

Page 11: UNIDAD DIDACTICA Nº 4. BUCLES. - Innovación Educativa · PDF file1 CAPITULO 4. BUCLES Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos

1 1

Page 12: UNIDAD DIDACTICA Nº 4. BUCLES. - Innovación Educativa · PDF file1 CAPITULO 4. BUCLES Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos

1 2

Page 13: UNIDAD DIDACTICA Nº 4. BUCLES. - Innovación Educativa · PDF file1 CAPITULO 4. BUCLES Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos

1 3

Page 14: UNIDAD DIDACTICA Nº 4. BUCLES. - Innovación Educativa · PDF file1 CAPITULO 4. BUCLES Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos

1 4

Page 15: UNIDAD DIDACTICA Nº 4. BUCLES. - Innovación Educativa · PDF file1 CAPITULO 4. BUCLES Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos

1 5

4 .2 .2 . Buc le s While .

4 .2 .2 .1 . Concepto de l buc le While .

El bu cle While s e u t iliza cu an do rea lm en te n o sabem os el n ú m ero de

iteracion es qu e se van a rea liza r en el bu cle, s in em bargo s í s abem os qu e

m ien tra s s e cu m pla u n a determ in ada con dición debem os rea liza r el bu cle.

Cu an do esa con dición ya n o se cu m pla en ton ces el bu cle fin a liza rá .

En es te t ipo de bu cles n o exis te n in gu n a va riable qu e in diqu e el

n ú m ero de vu elta s qu e h a rea lizado o fa lta por rea liza r . El ú n ico con trol qu e

u t iliza es u n a con dición qu e es tá a l com ien zo del bu cle, m ien tra s es ta

con dición sea cier ta s e rea lizan iteracion es y en el m om en to qu e sea fa lsa se

fin a liza el bu cle.

Obsérvese qu e la con dición es tá a l com ien zo del bu cle y és ta h ace la s

veces de u n a pu erta de en trada a l m ism o. La pu erta s e abre s i la con dición

es verdadera y la pu erta s e cierra s i la con dición es fa lsa .

Al es ta r la con dición a la en trada del bu cle, lo pr im ero qu e se h ace es

com proba r la con dición y despu és la iteración ; es to s ign ifica qu e an tes de

com en za r a rea liza rse el bu cle debe com proba r qu e la con dición es

verdadera , s i és ta n o lo es en ton ces el bu cle n o se rea liza rá . De h ech o cada

vez qu e es te bu cle h ace u n a iteración debe volver a pasa r por la pu erta y

com proba r s i la con dición es verdadera o fa lsa .

Es te t ipo de bu cles es m u y ú t il en program ación pu es to qu e s im u la

procesos rea les ; por ejem plo en u n su rt idor s e podría llen a r los depós itos de

com bu s tib le m ien tra s h aya gasolin a ; u n a m áqu in a expen dedora de b illetes

pu ede ven der b illetes m ien tra s h aya billetes . En gen era l es te bu cle t ien e

aplicación cu an do n os en con trem os an te u n problem a qu e se en u n cie de la

form a m ientras ..ocurra algo...hacer tal cosa . El "ocu rra a lgo" es la

con dición del bu cle y "h acer ta l cosa" es el cu erpo del bu cle; es decir , la s

s en ten cia s qu e se ejecu tan du ran te la iteración . Por ejem plo:

Com o ya sabes , la s m áqu in as de tabaco su m in is tran u n paqu ete

determ in ado in trodu cien do u n as m on edas . Es ta m áqu in a fu n cion a

con u n bu cle de t ipo Wh ile ya qu e se podría expresa r por: "m ientras

haya paquetes de tabaco venderlos ".

m ien tra s (h aya tabaco)

Page 16: UNIDAD DIDACTICA Nº 4. BUCLES. - Innovación Educativa · PDF file1 CAPITULO 4. BUCLES Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos

1 6

ven derlos .

La con dición "haya tabaco" s e pu ede expresa r por (tabaco >0 ) y el proceso

"venderlos" por: tom ar dinero; dar caje t illa; devolver cam bio (s i lo

h ay) y hacer tabaco=tabaco -1 (qu iere decir qu e qu eda u n a ca jet illa

m en os ). As í s e podría expresa r :

m ien tra s (tabaco>0)

tom ar d in ero.

da r ca jet illa .

devolver cam bio (s i lo h ay).

tabaco=tabaco-1. (s e h a ven dido u n paqu ete).

fin del bu cle.

Cu an do se u t iliza es te t ipo de bu cles se h a de ten er en cu en ta dos

cosas :

1 .- Al com ien zo del program a los va lores de la expres ión qu e form a la

con dición es tán in icia lizados . En el ejem plo an ter ior es lógico qu e

an tes de pon er a fu n cion ar la m áqu in a h ayan m etido ca jet illa s de

tabaco. Si por ejem plo, s e h an m etido in icia lm en te 10 0 ca jet illa s en el

program a se expresa "tabaco=1 0 0 " y es to se rea liza an tes de

com en za r el bu cle.

2 .- Den tro del bu cle se a ltera la con dición de en trada ; es decir , s i s e es tá

ejecu tan do el bu cle es to qu iere decir qu e la con dición es verdadera . Si

es ta con dición n o cam bia ra n u n ca en ton ces el bu cle ser ía in fin ito (ya

qu e la pu erta es ta r ía s iem pre abier ta ). As í pu es , pa rece lógico su pon er

qu e den tro del bu cle llega rá u n m om en to en el qu e la con dición sea

fa lsa y por tan to fin a lice el bu cle. En el ejem plo an te r ior exis te la

s en ten cia "tabaco=tabaco-1 " qu e cau sa rá qu e la con dición (tabaco>0)

sea fa lsa . Rea lm en te es to ocu rr irá cu an do se rea licen 100 iteracion es

den tro del bu cle o lo qu e es lo m ism o cu an do se h ayan ven dido la s 100

ca jet illa s de tabaco.

Recuerda que : los bu cles wh ile an tes de com en za r a rea liza r u n a iteración

com pru eban u n a con dición , s i és ta es verdadera en ton ces se rea liza u n a

iteración y s i es fa lsa en ton ces fin a liza la ejecu ción del bu cle. Es to su ele ser

propen so a con s tru ir bu cles qu e n o se e jecu tan n u n ca o bu cles qu e se

ejecu tan in defin idam en te (bu cles in fin itos ).

Page 17: UNIDAD DIDACTICA Nº 4. BUCLES. - Innovación Educativa · PDF file1 CAPITULO 4. BUCLES Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos

1 7

Los buc le s que no se e jecutan nunca s e su elen presen ta r cu an do an tes del

bu cle la con dición es fa lsa , por tan to n o se en tra en el bu cle y és te n o se

rea liza . Si ocu rre es to revisa los va lores in icia les qu e con form an la expres ión

qu e h ay den tro de la con dición .

Los buc le s in fin itos s e su elen presen ta r cu an do den tro del bu cle n o se

cam bia la con dición de en trada . Si in icia lm en te es ta con dición es verdadera

en ton ces se en tra en el bu cle; pero s i den tro del m ism o n u n ca se h ace la

con dición fa lsa , en ton ces el bu cle se ejecu ta in defin idam en te.

4 .2 .2 .2 . Representac ión algorítm ica de l buc le While .

La es tru ctu ra gen era l de la s en ten cia wh ile es la s igu ien te:

(1)m ien tra s (con dición )

(2) b loqu e de sen ten cias ;

(3)fin wh ile.

don de bloque de s entenc ias es cu a lqu ier con ju n to de sen ten cia s C. La

es tru ctu ra t ien e tres pa r tes :

(1) m ientras condic ión s e represen ta por el m ism o s ím bolo qu e u n a

sen ten cia if y den tro de él la con dición .

(2) cada sen ten cia se represen ta por su s ím bolo.

(3) el fin while s e represen ta m edian te u n pu n to.

La figura nº 8 expresa u n organ igram a de la s en ten cia Wh ile y su

explicación .

Page 18: UNIDAD DIDACTICA Nº 4. BUCLES. - Innovación Educativa · PDF file1 CAPITULO 4. BUCLES Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos

1 8

Obsérvese qu e el in icio del bu cle es idén tico a l in icio de u n a sen ten cia

if. Si la con dición es verdadera en ton ces se ejecu tan la s s en ten cia s del

b loqu e, m ien tra s qu e s i la con dición es fa lsa en ton ces la próxim a sen ten cia a

ejecu ta r es la qu e es té detrá s del fin while .

Recu érdese qu e den tro del b loqu e de sen ten cia s debe h aber a lgu n a

qu e cam bie la con dición de en trada a l m ism o. Pa ra com pren der m ejor el

fu n cion am ien to de es te t ipo de bu cle rea liza rem os el s igu ien te ejem plo:

"Rea liza r u n organ igram a qu e represen te el fu n cion am ien to de u n a m áqu in a

de tabaco (por s im plifica r , su pon er qu e sólo h ay u n a m arca de tabaco con

u n precio fijo). La m áqu in a debe acepta r el d in ero, da r el paqu ete y devolver

el cam bio".

Es te problem a se pu ede resolver con la es tru ctu ra gen era l: "m ien tra s

h aya tabaco

ven derlo", dón de ven derlo es u n con ju n to de accion es . Es ta es tru ctu ra

in dica qu e el organ igram a se pu ede rea liza r a t ravés de u n bu cle Wh ile.

Page 19: UNIDAD DIDACTICA Nº 4. BUCLES. - Innovación Educativa · PDF file1 CAPITULO 4. BUCLES Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos

1 9

La figura nº 9 m u es tra la solu ción .

Page 20: UNIDAD DIDACTICA Nº 4. BUCLES. - Innovación Educativa · PDF file1 CAPITULO 4. BUCLES Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos

2 0

4 .2 .3 . Buc le s Do-While .

4 .2 .3 .1 . Concepto de l buc le Do -While .

Los bu cles for y while t ien en la ca racter ís t ica com ú n de qu e la

con dición se eva lu aba an tes de rea liza r el bu cle, a s í ca bía la pos ibilidad de

qu e n o se rea liza ra n in gu n a iteración . La pr in cipa l d iferen cia del bu cle

do-while , respecto a los an ter iores , es qu e és tos eva lú an la con dición a l fin a l

del bu cle; a s í el bu cle s iem pre rea liza rá a l m en os u n a iteración .

En los bu cles do-while n o se sa be a p r ior i el n ú m ero de iteracion es

qu e se van a rea liza r , depen de de la con dición qu e h ay a l fin a l del bu cle; s i

és ta es cier ta s e vu elve a rea liza r u n a iteración , m ien tra s qu e s i es fa lsa se

acaba la ejecu ción del bu cle.

La con dición a l fin a l del bu cle actú a com o u n a com pu erta de sa lida del

m ism o, s i la con dición es verdadera es ta com pu erta es ta rá cerrada y por

tan to debem os rea liza r u n a n u eva iteración . Si la con dición es fa lsa ,

en ton ces la com pu erta es ta rá abierta y se podrá aban don a r la ejecu ción del

bu cle. En es te t ipo de bu cle n o h ay n in gu n a va riable qu e con trole el n ú m ero

de iteracion es , el con trol lo rea liza la con dición , a s í p u es es lógico su pon er

qu e den tro de la s s en ten cia s qu e com pon en el bu cle h aya a l m en os u n a qu e

pu eda cam bia r el va lor de la con dición o com pu erta de sa lida .

Al igu a l qu e los bu cles while es te t ipo de bu cles es m u y u t ilizado

pu es to qu e m u ch as s itu acion es rea les t ien en u n a in terpretación directa en

el bu cle do-while . Con cretam en te todas aqu ella s qu e se pu edan expresa r

m edian te: "haz .....acc iones .. ...m ien tras ocurra una condic ión" la

es tru ctu ra del bu cle ser ía :

h acer

b loqu e de sen ten cias

m ien tra s (con dición )

Obsérvese qu e m ientras (condic ión) es tá a l fin a l del bu cle y es to h ace

qu e el b loqu e de s en ten cia s se rea lice a l m en os u n a vez (se rea liza u n a

iteración ) in depen dien tem en te del va lor qu e ten ga la con dición . Es ta

ca racter ís t ica es la qu e det erm in a la u t ilización del bu cle; es decir , s i

debem os realizar un buc le en e l cual e s necesario al m enos hacer una

it erac ión , entonces ut ilizarem os e l buc le do -while .

Son m u ch as la s s itu acion es en la s cu a les s e requ iere qu e el bu cle se

Page 21: UNIDAD DIDACTICA Nº 4. BUCLES. - Innovación Educativa · PDF file1 CAPITULO 4. BUCLES Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos

2 1

ejecu te a l m en os u n a vez, por ejem plo todas aque llas que neces it en que

una entrada de inform ac ión cum pla una serie de condic iones y no se

quiera cont inuar c on e l program a has ta que se cum plan . Por ejem plo, en

el organ igram a de la m áqu in a de tabaco se in trodu cía u n a can tida d de

d in ero pa ra adqu ir ir u n paqu ete, s er ía con ven ien te n o deja r con tin u a r la

ejecu ción del program a h as ta qu e la can tidad de d in ero in trodu cida n o fu ese

igu a l o su perior a l precio del paqu ete de tabaco. Es to se rea liza r ía a s í:

h az

leer precio (can tidad in trodu cida )

m ien tra s (precio<200)

Es te bu cle do-while n o deja r ía con tin u a r con el program a h as ta qu e el

u su a rio in trodu jera a l m en os 200 peseta s . Si in ten tam os h acer es ta

s itu ación con u n bu cle while ten dríam os :

precio=0 ó leer precio

m ien tra s (precio<200)m ien tra s (precio<200)

leer precioleer precio

fin del bu cle.fin del bu cle.

Observa qu e en el pr im er ca so con la s en ten cia prec io=0 es tam os

forzan do a qu e el bu cle while s e rea lice a l m en os u n a vez, es ta s itu ación se

resu elve m ejor con u n bu cle do-while ; en el s egu n do caso n eces itam os dos

sen ten cia s de lectu ra pa ra rea liza r lo m ism o qu e el bu cle do-while con u n a

sola sen ten cia .

Es ta s s itu acion es resa ltan la n eces idad d e los bu cles while de

in icia liza r la s va r iables qu e in tervien en en la con dición , m ien tra s qu e los

bu cles do-while n o t ien en n eces idad de in icia liza r n in gu n a va riable.

A con tin u ación veam os u n ejem plo de u t ilización de bu cles do-while :

"Rea liza r u n organ igram a a través del cu a l s e pu eda ju ga r a l n ú m ero

escon dido. En es te ju ego a lgu ien escr ibe u n n ú m ero y otra person a tra ta de

adivin a rlo, es ta person a dirá u n n ú m ero y s i es m ayor qu e el qu e es tá escr ito

se deberá decir "a lto" m ien tra s qu e s i es m en or se deberá decir "ba jo". El

ju ego fin a liza cu an do se acierta el n ú m ero escr ito y gan a aqu el qu e lo h aya

acertado en m en os in ten tos".

Es te ju ego se pu ede expresa r de la form a : "di u n n ú m ero m ien tra s n o

Page 22: UNIDAD DIDACTICA Nº 4. BUCLES. - Innovación Educativa · PDF file1 CAPITULO 4. BUCLES Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos

2 2

acier tes el n ú m ero secreto" ó "ju ega m ien tra s n o acierte s el n ú m ero secreto".

Es to se pu ede expresa r m edian te u n bu cle do-while de la s igu ien te form a :

x=0

h az

lee n ú m ero (el ju gador d ice u n n ú m ero)

s i es m ayor qu e el secreto escr ibe ("a lto")

s i es m en or qu e el s ecreto escr ibe ("ba jo")

x=x+1

m ien tra s (n ú m ero dis t in to a l s ecreto)

escr ibe ("h as acer tado en ", x , "in ten tos")

Observa qu e el bu cle se rea liza h as ta qu e el ju gador acier ta el n ú m ero

secreto. La va riable x m ide el n ú m ero de in ten tos qu e h a rea lizado el ju gador

h as ta acerta r .

4 .2 .3 .2 . Representac ión algorítm ica de l buc le Do -While .

La es tru ctu ra del bu cle do-while t ien e tres pa r tes d iferen ciadas :

in icio, b loqu e de sen ten cia s y fin a l.

do(com ien zo del bu cle).

b loqu e de sen ten cias ;(b loqu e de sen ten cia s ).

m ien tra s (con dición )(fin del bu cle).

En es te ca so la con dición fin a l del bu cle tam bién actú a com o

"com pu erta" de sa lida o in dicador de iteracion es . El organ igram a del bu cle

do-while s e represen ta en la figura nº 1 0

Page 23: UNIDAD DIDACTICA Nº 4. BUCLES. - Innovación Educativa · PDF file1 CAPITULO 4. BUCLES Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos

2 3

Obsérvese qu e el fin a l del bu cle (m ien tra s (con dición )) s e

represen ta por el m ism o s ím bolo qu e u n a sen ten cia if. Den tro de la s

s en ten cia s qu e com pon en el cu erpo del bu cle debe h aber a lgu n a qu e

pos ibilite cam bia r el va lor de la con dición , ya qu e s i el va lor de és ta

in icia lm en te es verdadero, en ton ces rea liza r íam os u n bu cle in fin ito.

El a lgoritm o a t ravés del cu a l represen tábam os el ju ego del n ú m ero

secreto se represen ta m edian te u n organ igram a com o se m u es tra en la

figura nº 1 1

Page 24: UNIDAD DIDACTICA Nº 4. BUCLES. - Innovación Educativa · PDF file1 CAPITULO 4. BUCLES Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos

2 4