capítulo 3. sentencias de decisión

22
1 INTRODUCCIÓN A LA ALGORITMIA. CAPITULO 3. SENTENCIAS DE SELECCIÓN. Ángel Fidalgo Blanco Universidad Politécnica de Madrid Licencia Creative Commons Algunos derechos reservados UNIDAD DIDÁCTICA Nº 3 . FUNCIONES DE SELECCIÓN. OBJETIVOS: * Saber el concepto de las sentencias de selección. * Conocer las distintas sentencias de selección con sus variedades. * Saber representar mediante un organigrama las sentencias de selección. * Conocer la forma de crear y evaluar condiciones lógicas.

Upload: nguyennhi

Post on 09-Feb-2017

221 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Capítulo 3. Sentencias de decisión

1

INTRODUCCIÓN A LA ALGORITMIA.

CAPITULO 3 . SENTENCIAS DE SELECCIÓN.

Á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 DIDÁCTICA Nº 3 .

FUNCIONES DE SELECCIÓN.

OBJ ETIVOS:

* Saber el con cepto de la s s en ten cia s de selección .

* Con ocer la s d is t in ta s s en ten cia s de selección con su s va r iedades .

* Saber represen ta r m edian te u n organ igram a la s s en ten cias de selección .

* Con ocer la form a de crea r y eva lu a r con dicion es lógica s .

Page 2: Capítulo 3. Sentencias de decisión

2

CONTENIDOS:

1 . In trodu cción .

2 . Represen tación a lgorítm ica de la s s en ten cia s de selección .

2 .1 . Con cepto y represen tación a lgorítm ica de la s en ten cia de selección if.

2 .1 .1 . Sen ten cia if con form a to gen era l (if-th en -else).

2 .1 .2 . Sen ten cia if con u n a sola a ltern a tiva (if-th en ).

2 .1 .3 . Sen ten cia if en esca lera (if-else-if).

2 .1 .4 . Sen ten cia s if an idadas .

2 .1 .5 . Con dicion es con va ria s expres ion es lógica s .

CONOCIMIENTOS PREVIOS.

- Tipos de va riables .

- Sen ten cia s de en trada .

- Sen ten cia s de sa lida .

Page 3: Capítulo 3. Sentencias de decisión

3

INTRODUCCIÓN.

En los capítu los an ter iores h em os rea lizado a lgu n os a lgoritm o; la

ca racter ís t ica com ú n a todos ellos es qu e la s in s tru ccion es o sen ten cia s se

ejecu taban u n a tra s otra ; es decir , pr im ero se ejecu ta la pr im era

in s tru cción , pos ter iorm en te la s egu n da ; s egu idam en te la tercera y a s í

su ces ivam en te h as ta llega r a la ú lt im a in s tru cción del program a .Tam bién

en los program as secu en cia les , an tes de ejecu ta rse u n a in s tru cción

determ in ada se ejecu ta rá la preceden te; es decir , an tes de ejecu ta rse la

in s tru cción n º 5 , s e debe ejecu ta r la n º 4 . Es to h ace qu e s iem pre qu e se

ejecu te u n program a de es ta s ca racter ís t ica s el orden de ejecu ción de las

s en ten cia s es : 1 ª , 2 ª , 3 ª , 4 ª ,....n ª . Adem ás es ta s ecu en cia de ejecu ción se

m an tien e s iem pre qu e se ejecu te el program a . Cu an do u n program a es tá

escr ito de es ta form a se d ice qu e es u n program a con flujo secuenc ial , ya

qu e el flu jo de ejecu ción es s ecu en cia l (s e ejecu ta u n a sen ten cia t ra s otra

en orden de escr itu ra ). La figura nº 1 m u es tra u n esqu em a de u n

program a con flu jo secu en cia l.

Exis ten u n a ser ie de sen ten cia s qu e perm iten a ltera r el orden secu en cia l de

Page 4: Capítulo 3. Sentencias de decisión

4

ejecu ción ; es decir , n o es n ecesa r io qu e pa ra ejecu ta rse la in s tru cción n º 5

an tes s e h aya ejecu tado la n º 4 , o qu e la s igu ien te in s tru cción a ejecu ta r

n o sea la qu e es tá escr ita a con tin u ación . Es ta s s en ten cias qu e perm iten

cam bia r el flu jo secu en cia l s e den om in an es tru ctu ra s o sentenc ias de

control. Las sen ten cia s de con trol pu eden ser de d iversos t ipos : de

selección , de repet ición (o iteración ) y de sa lto. En es te capítu lo

es tu dia rem os la s sentenc ias de se lecc ió n .

Las sentenc ias de se lecc ión son aqu ella s qu e n os perm iten a ltera r el flu jo

de ejecu ción de la s in s tru ccion es de u n program a en fu n ción de qu e se

cu m pla u n a con dición determ in ada . Una sentenc ia de se lecc ión perm ite

e jecutar unas u otras ins trucc iones , e n func ión de que ocurra una

condic ión de term inada . Un ejem plo de cóm o se a ltera el flu jo secu en cia l

podría s er u n program a , en el cu a l s i s e cu m ple la con dición de qu e (a > 4)

en ton ces ejecu ta la s in s tru ccion es 1 ª ,2 ª ,3 ª ,4 ª ,5 ª y 6 ª y s i cu m ple la

con dición de qu e (a < 4) en ton ces se ejecu tan la s in s tru ccion es

1 ª ,2 ª ,3 ª ,7 ª ,8 ª y 9 ª .

Pa ra com pren der la s s en ten cia s de selección , an tes h ay qu e com pren der

perfectam en te qué e s una condic ión . Un a con dición la podem os descr ib ir

com o una o varias expres iones cuyo resu ltado puede ser verdadero o

falso , a la s expres ion es qu e es tán den tro de la con dición se la s su ele

den om in a r expres iones lógicas (pa ra facilita r la com pren s ión de la s

s en ten cia s de selección , de m om en to, su pon drem os qu e u n a con dición

solam en te t ien e u n a expres ión lógica ).

En a lgu n os ca sos las expres ion es lógicas se escr iben de la m ism a m an era

qu e expres ion es n u m érica s o expres ion es de ca racteres ; pa ra d is t in gu ir la s ,

la s expres ion es lógica s la s expresa rem os en tre dos pa rén tes is (de h ech o,

h ay u n a sen ten cia de selección qu e u tiliza la s expres ion es lógica s en tre

pa rén tes is ). Por ejem plo, la expres ión :

a=5

Si fuese una expres ión num érica en la va r iable a s é

a lm acen a ría el va lor 5 .

Si fuese una expres ión lógica n o se a s ign a ría el va lor 5

a la va r iable a, s i n o qu e se com pararía e l conten ido de

la variable a c on e l valor 5 y el resu ltado podría s er :

Verdadero s i el va lor de la va r iable a es 5 .

Page 5: Capítulo 3. Sentencias de decisión

5

Falso s i el va lor de la va r iable a es d is t in to de 5 .

Pa ra evita r es te t ipo de in terpretacion es am bigu as cu an do n os refiram os a

u n a expres ión lógica la en cerra rem os en tre pa rén tes is , a s í:

a=5 ser ía u n a expres ión n u m érica .

(a=5) ser ía u n a expres ión lógica .

n om ="Heavy" ser ía u n a expres ión de ca racteres .

(n om ="Heavy") s er ía u n a expres ión lógica .

Se decía qu e la s expres ion es lógica s solam en te podían ten er dos va lores :

verdadero y fa lso; a s í pu es , s e recom ien da a l lector qu e cu an do desee

eva lu a r u n a expres ión lógica se la p la n tee com o u n a in terrogación ; por

ejem plo:

expres ión lógicaPlanteam iento para evaluarla

(a=5)¿es a=5?

(n om ="Heavy")¿es n om = "Heavy"?

Eviden tem en te la res pu es ta a es tos p lan team ien tos pu ede ser : s í o n o (ó

a=5 ó a es d is t in to de 5). Si la respu es ta a la in terrogación es "s í" es to

qu iere decir qu e la con dición se cu m ple, por tan to el resu ltado de la m ism a

es verdadero. Si la respu es ta es "n o", qu iere decir qu e la con dición n o se

cu m ple y por tan to el resu ltado de esa expres ión es fa lso. La figura nº 2

resu m e el proceso de eva lu ación de la s expres ion es lógica s .

Page 6: Capítulo 3. Sentencias de decisión

6

En es te capítu lo se es tu dia rán dos sen ten cia s de selección , la s

den om in adas sen ten cia s if y la s s en ten cia s switch ó case . In icia rem os su

es tu dio en el pu n to s igu ien te.

Recuerda que : u n a con dición es tá form ada por expres ion es lógica s

y solam en te pu eden ten er dos va lores : "verdadero" y "fa lso".

Page 7: Capítulo 3. Sentencias de decisión

7

2 . REPRESENTACIÓN ALGORÍTMICA DE LAS SENTENCIAS DE

SELECCIÓN.

Práct icam en te la tota lidad de los len gu a jes de program ación qu e se

den om in an es tru ctu rados t ien en la s dos sen ten cia s de selección qu e se

es tu dia rán en es te capítu lo; la represen tación a lgorítm ica de la s m ism as es

com ú n en todos los len gu a jes de program ación , n o obs tan te la form a de

escr ib ir la s va r ía u n poco de u n len gu a je a otro; pero u n a vez qu e se saben

m an eja r s e pu eden aplica r con su m a facilidad en u n len gu a je u otro.

2 .1 . Concepto y representac ión algorítm ica de la sentenc ia de

se lecc ión if.

La sen ten cia de selección if (if en in glés qu iere decir s i...) es u n a sen ten cia

qu e se basa en la eva lu ación de u n a expres ión lógica . Si el resu ltado de la

expres ión es verdadero la s en ten cia if cede el con trol a u n a sen ten cia o

sen ten cia s determ in adas y s i es fa ls o cede el con trol a otra s s en ten cia s . Se

podría decir qu e la s en ten cia if determ in a cu a l s erá la próxim a in s tru cción

a ejecu ta r en fu n ción de u n a determ in ada con dición . Por ejem plo,

su pon gam os qu e se acaba de ejecu ta r u n a sen ten cia de lectu ra don de se

p ide el n ú m ero de d ía s qu e t ien e el m es de Febrero pa ra el añ o actu a l; a

con tin u ación se p ide qu e se escr iba "añ o bis ies to" s i en la va r iab le Febrero

h an in trodu cido el va lor 29 y qu e escr iba "añ o n o bis ies to" s i el va lor n o es

29. Es to se podría h acer de la s igu ien te form a :

s i (Febrero = 29) entonces

escr ibe "añ o bis ies to"

de lo contrario

escr ibe "añ o n o bis ies to"

fin s i.

Tradu cien do los térm in os de la s en ten cia if m a rcados en n egrita , és ta

qu eda ría :

if (Febrero = 29) then

escr ibe "añ o bis ies to"

e lse

escr ibe "añ o n o bis ies to"

endif

Rea lm en te es to es la es tru ctu ra de la s en ten cia if y su represen tación

Page 8: Capítulo 3. Sentencias de decisión

8

m edian te u n organ igram a se m u es tra en la figura nº 3

Si en la figu ra n º 3 su pon em os qu e cada s ím bolo del organ igram a es u n a

es tación de ferrocarr il y la s lín eas qu e los u n en son vías ferrovia r ia s el

con trol del flu jo se podría defin ir com o la s es tacion es por la s cu a les pasa r ía

u n h ipotét ico tren qu e via ja ra a t ravés del organ igram a .

Com o se pu ede obs erva r en la figu ra el orden de ejecu ción de sen ten cia s

ser ía :

o 1ª , 2 ª, 3 ª y 5 ª en el ca so de qu e Febrero sea igu a l a 29 y..

o 1ª , 2 ª, 4 ª y 5 ª en el ca so de qu e Febrero n o sea igu a l a 29.

Recordem os qu e decíam os qu e la s s en ten cia s de selección perm it ían

a ltera r el flu jo de ejecu ción de in s tru ccion es y efect ivam en te a s í lo h acen ,

la s en ten cia 2ª (s en ten cia if) a ltera el flu jo de ejecu ción (defin e cu a l es la

próxim a in s tru cción a ejecu ta rse) en fu n ción de la eva lu ación de u n a

expres ión lógica .

Page 9: Capítulo 3. Sentencias de decisión

9

Hay u n deta lle m u y im portan te pa ra com pren der con exact itu d el

fu n cion am ien to de la s s en ten cia s if, es te deta lle son los de lim itadores .

Los delim itadores son la s referen cia s qu e u t ilizan la s s en ten cia s if pa ra

qu e el orden ador sepa : a ) el com ien zo y fin a l del con ju n to de in s tru ccion es

qu e se deben ejecu ta r s i la con dición es verdadera ; b) el com ien zo y el fin a l

del con ju n to de in s tru ccion es qu e se deben ejecu ta r s i la con dición es fa lsa

y el pr in cipio y c) lo qu e se den om in a bloque if (ver figu ra 5 .3 .). El b loqu e if

es el com pu es to por la s en ten cia if y el con ju n to de in s tru ccion es qu e se

ejecu ta r ían tan to s i la con dición es verdadera com o fa lsa .

La figura nº 4 ilu s tra y m arca los delim itadores qu e se em plean tan to en el

organ igram a com o en la escr itu ra de la s en ten cia de selección .

La sen ten cia if pu ede ten er va r ia s m oda lidades , es ta s m oda lidades se

es tablecen en fu n ción de la s a lter n a t ivas de con trol de flu jo (o vía s pa ra

poder con tin u a r con la ejecu ción de la s in s tru ccion es ).

Page 10: Capítulo 3. Sentencias de decisión

10

2 .1 .1 . Sentenc ia if con form ato general (sentenc ia if -then-e lse ).

Es ta s en ten cia t ien e su equ iva len te en todos los len gu a jes de

program ación . La sen ten cia if-then-e lse perm ite ejecu ta r u n a in s tru cción

o con ju n to de in s tru ccion es s i la con dición qu e eva lú a es verdadera

(a ltern a t iva th en ) y otra in s tru cción o con ju n to de ella s s i el resu ltado es

fa lso (a ltern a t iva else).

La m ayoría de los len gu a jes perm iten escr ib ir es ta s en ten cia de dos form as

depen dien do del n ú m ero de in s tru ccion es qu e es tén en cada a ltern a t iva ,

con cretam en te se d is t in gu en dos : u n a cu an do tan to en la a ltern a t iva th en

(verdadero) com o en la a ltern a t iva else (fa lso) h ay u n a sola in s tru cción y

otra form a cu an do h ay va ria s in s tru ccion es en cada a ltern a tiva .

La figura nº 5 m u es tra la s dos pos ibilidades de es ta sen ten cia de selección

y su represen tación m edian te u n organ igra m a .

Com o ejem plo de u t ilización de la sen ten cia if-then-e lse en su s dos

m oda lidades rea liza rem os dos ejem plos :

Page 11: Capítulo 3. Sentencias de decisión

11

Ejem plo 1 . if-then-e lse con una sola ins trucc ión por alternat iva.

Se p ide qu e se rea lice u n a lgoritm o con su organ igram a

correspon dien te pa ra qu e el orden ador p ida el n om bre y el s exo de

u n a person a y en fu n ción de es te ú lt im o da to escr iba : "Hola Señ or

xxxxx" s i la va r iable sexo="Varón " y qu e escr iba "Hola Señ orita xxxx"

s i la va r iable sexo es d is t in to de “Varón ”

Soluc ión:

Ejem plo 2 . if-then-e lse con varias ins trucc iones en cada alternat iva.

Su pon gam os qu e n os en ca rgan qu e rea licem os u n organ igram a pa ra

el m an ejo de u n ca jero au tom ático. Es te ca jero m ostra rá dos

opcion es a l u su a rio. La opción 1 pa ra in gresa r d in ero y la opción 2

pa ra ret ira r d in ero.

Page 12: Capítulo 3. Sentencias de decisión

12

Si la opción es 1 , en ton ces el organ igram a im prim irá u n m en sa je

pa ra pregu n ta r a l u su a rio la can tidad qu e desea in trodu cir .

Pos ter iorm en te esa can tidad se a lm acen a rá en u n a va riable

(can tm et) y esa can tidad se le su m ará a l s a ldo qu e ten ía

an ter iorm en te.

Si la opción es d is t in to de 1 , en ton ces el organ igram a im prim irá u n

m en sa je pa ra pregu n ta r a l u su ario qu é can tidad desea ret ira r .

Pos ter iorm en te esa can tidad se leerá en u n a va riable (can tret) y esa

can tidad se le res ta rá a l s a ldo qu e ten ía an ter iorm en te.

Fin a lm en te se le m os tra rá a l u su ario el s a ldo qu e le qu eda resu ltan te

t ra s rea liza r la operación seleccion ada .

Soluc ión:

Recuerda que : la s en ten cia if-th en -else perm ite la ejecu ción de u n

con ju n to de in s tru ccion es s i la con dición es verdadera y de otro con ju n to

s i es fa lsa .

Page 13: Capítulo 3. Sentencias de decisión

13

2 .1 .2 . Sentenc ia if con una sola alt ernat iva (sentenc ia if -then).

Es ta s en ten cia se u t iliza cu an do se desea ejecu ta r u n a o va ria s

in s tru ccion es ú n icam en te cu an do la con dición sea verdade ra . Si la

eva lu ación de la con dición es fa lsa en ton ces se ejecu ta r ía la in s tru cción

s igu ien te a la if-then . Al igu a l qu e la sen ten cia an ter ior la m ayoría de los

len gu a jes de program ación la u t ilizan en dos m oda lidades . Un a m oda lidad

es cu an do en la a ltern a t iva then sólo h ay u n a sen ten cia y la otra

m oda lidad es cu an do h ay va ria s s en ten cia s . La figura nº 8 m u es tra los

organ igram as pa ra cada va riedad de sen ten cia if-then .

Recuerda que : la s en ten cia if-th en perm ite la ejecu ción de u n con ju n to de

in s tru ccion es ú n icam en te en el ca so de qu e la con dición sea verdadera .

Page 14: Capítulo 3. Sentencias de decisión

14

2 .1 .3 . Sentenc ia if en e scalera (sentenc ia if-e lse -if).

Observa de n u evo el organ igram a del ca jero, don de s i opción = 1

s ign ificaba qu e el u su a rio deseaba in trodu cir d in ero y cu an do el u su a rio

tecleaba el va lor 2 (opción =2) qu ería decir qu e deseaba ret ira r d in ero. ¿Qu é

pasa r ía s i en opción a lm acen o el va lor 5? ó d ich o de ot ra form a ¿Qu é

pasa r ía s i la va r iable opción = 5?. E l lector podrá com proba r a terrado qu e

el organ igram a fu n cion a de la m ism a form a qu e s i h u biera tecleado el va lor

2 ; es decir , qu e s i opción = 2 y lo m ism o ocu rr ir ía s i tecleo el va lor 12345 o

-345678 . Es to se debe a qu e la s en ten cia if rea lm en te com pru eba s i s e

cu m ple o n o u n a con dición ; en es te ca so com pru eba s i s e cu m ple qu e

(opción =1), s i s e cu m ple qu iere decir qu e opción = 1 , pero s i n o se cu m ple

qu iere decir qu e opción pu ede con ten er cu a lqu ier va lor d is t in to de 1 .

Es ta form a de actu a r de la s en ten cia de selección if n os pu ede llega r a

p lan tea r ciertos problem as . Por ejem plo en la s en ten cia :

leer la va r iable sexo.

if (s exo="Varón ") then

escr ibe "eres u n ch ico"

e lse

escr ibe "eres u n a ch ica"

endif

Si el u su ario teclea "h om bre"; es decir s exo="h om bre" el program a le

con tes ta r ía : "eres u n a ch ica" y su pon em os qu e n o h ará m u ch a gracia a l

u su a rio del orden ador. En lu ga r de es to, ¿n o ser ía m ejor h acer u n

program a qu e rea liza ra lo s igu ien te?:

o Si el u su ario teclea "Varón " escr ib ir ía "eres u n ch ico"

o Si el u su ario teclea "Hem bra" escr ib ir ía "eres u n a ch ica"

o Si el u su a rio teclea cu a lqu ier otro va lor escr ib ir ía "el con ten ido

de la va r iable sexo sólo pu ede ser : Hem bra o Varón . Por favor

teclee de n u evo la respu es ta ".

Otra s itu ación , ¿cóm o h a ríam os s i en el organ igram a del ca jero ten em os

la s opcion es : 1 -Meter d in ero, 2 -Retira r d in ero, 3 - Con su lta r s a ldo?.

Todos es tos problem as n os los resu elve con gran eficacia la s en ten cia if-

e lse -if o s en ten cia if en esca lera .

La sen ten cia if-e lse -if s e d is t in gu e de la s otra s s en ten cia s if porqu e és ta

Page 15: Capítulo 3. Sentencias de decisión

15

pu ede eva lu a r m ás de u n a con dición . Un ejem plo pu ede ser:

s i (opción =1) entonces

escr ibe "in trodu ce la can tidad de d in ero a m eter"

leer can tm et

s a ldo=sa ldo+can tm et

de lo contrario s i (opción = 2) entonce s

escr ibe "in trodu ce la can tidad de d in ero a ret ira r"

leer can tret

s a ldo =sa ldo-can tret

de lo contrario s i (opción = 3) entonce s

escr ibe "su sa ldo es",sa ldo

de lo contrario

escr ibe "debe elegir u n a opción n u m erada del 1 a l 3".

fin if.

d e form a genérica:

s i condic ión 1 en ton ces

sen ten cia s 1 .

de lo con tra r io s i condic ión 2 en ton ces

sen ten cia s 2 .

de lo con tra r io s i condic ión 3 en ton ces

sen ten cia s 3 .

de lo con tra r io

sen ten cia s 4 .

fin if.

La sen ten cia if-e lse -if fu n cion a de la s igu ien te m an era .

1 .- eva lú a condic ión 1 , s i es verdadera en ton ces ejecu ta "sen ten cia s 1" y

se acaba la s en ten cia if-else-if. Si la con dición 1 es fa lsa en ton ces va

a eva lu a r la s igu ien te con dición (paso 2).

2 .- eva lú a condic ión 2 , s i es verdadera en ton ces ejecu ta "sen ten cia s 2" y

s e acaba la s en ten cia if-else-if. Si la con dición 2 es fa lsa en ton ces se

va a eva lu a r la s igu ien te con dición (paso 3).

3 .- eva lú a condic ión 3 , s i es verdadera en ton ces se ejecu ta "sen ten cia s 3"

y se acaba la s en ten cia if-else-if. Si la con dición 3 es fa lsa en ton ces

com o ya n o h ay m ás con dicion es qu iere decir qu e n o se h a cu m plido

Page 16: Capítulo 3. Sentencias de decisión

16

n i la con dición 1 , n i la 2 n i la 3 ; por tan to se ejecu ta el pa so 4 (de lo

con tra r io).

4 .- com o n o se h a cu m plido n in gu n a con dición se ejecu ta "sen ten cia s 4".

El organ igram a de es ta s en ten cia se pu ede ver en la figura nº 9 .

En u n a sen ten cia if-e lse -if s e pu eden eva lu a r tan ta s con dicion es com o se

deseen ; es decir podem os pon er tan ta s lín eas de lo c ontrario s i condic ión

x com o qu eram os . Al igu a l qu e el res to de la s s en ten cia s if los len gu a jes de

program ación su elen escr ib ir de form a dis t in ta es ta s en ten c ia en fu n ción

del n ú m ero de sen ten cia s qu e se ejecu ten en cada a ltern a t iva . Si en cada

a ltern a t iva h ay u n a sola sen ten cia se escr ibe de u n a form a m ien tra s qu e s i

h ay va ria s s e escr ibe de otra .

Hay len gu a jes qu e n o adm iten la s en ten cia if-else-if, en es te ca so se

em plea rían la s “IF ANIDADAS” (ver el apa rtado s igu ien te)

Recuerda que : Un a sen ten cia if-else-if eva lú a su ces ivam en te u n con ju n to

de con dicion es y cu an do en cu en tra u n a qu e sea verdadera , en ton ces ejecu ta

u n con ju n to de in s tru ccion es y acaba la s en ten cia if. En ca so de qu e n o

en cu en tre n in gu n a con dición verdadera , en ton ces se ejecu tan la s

in s tru ccion es qu e es tán en la opción "de lo con tra r io".

Page 17: Capítulo 3. Sentencias de decisión

17

2 .1 .4 . Sentenc ias if an idadas .

Las sen ten cia s de selección if s e basan en la eva lu ación de u n a con dición

(com pu es ta por u n a o va ria s expres ion es lógica s ) y en fu n ción de és ta el

orden ador ejecu ta u n as u otra s in s tru ccion es . Es ta s in s tru ccion es qu e se

ejecu tan en fu n ción de la eva lu ación de la con dición pu eden ser cu a lqu ier

fu n ción o sen ten cia , in clu idas la s s en ten cia s if.

Un a sen ten cia if an idada es u n a sen ten cia if qu e con tien e otra s sen ten cia s

if es su s in s tru ccion es a ltern a t ivas .

Pa ra com pren der con m ayor precis ión la s s en ten cia s if rea liza rem os u n

a lgoritm o pa ra detecta r s i u n a person a debe h acer el s ervicio m ilita r . Pa ra

ello su pon em os qu e u n a person a rea liza el s ervicio m ilita r s i es m ayor de

edad, s i es va rón y s i n o padece n in gu n a en ferm edad crón ica .

leer sexo.

┌─ Si (sexo= varón) entonces

│ leer mayor_edad

│ ┌─ Si mayor_edad='sí' entonces

│ │ leer enfermedad

│ │

│ │ ┌─ Si enfermedad='sí' entonces

│ │ │ escribe "Lo siento, no vas a la mili"

│ │ │ de lo contrario

│ │ │ escribe "Usted va a la mili"

│ │ └─ fin if

│ │

│ │ de lo contrario

│ │ escribe "Usted es menor de edad, no va a la mili"

│ └─ fin if

│ de lo contrario

│ escribe "Las mujeres, de momento, no van a la mili"

└─ fin if

Page 18: Capítulo 3. Sentencias de decisión

18

En el ejem plo se pu ede observa r u n a sen ten cia con tres if an ida dos .

Cu an do se pon en if an idados se debe ten er m u y en cu en ta el lu ga r don de

com ien za y fin a liza la s en ten cia if. La figura nº 1 0 a cla ra el con cepto de

sen ten cia s if an idadas .

2 .1 .5 . Condic iones con varias expre s iones lógicas .

Decíam os qu e u n a con dición es taba com pu es ta por u n a o varia s

expres ion es lógica s , pero qu e por s im plifica r la es tru ctu ra su pon ía m os qu e

u n a con dición es taba com pu es ta por u n a sola expres ión lógica .

Rea lm en te la s con dicion es pu eden ten er cu a lqu ier n ú m ero de expres ion es

lógica s cu yo va lor s egu irá s ien do verdadero o fa lso. A con tin u ación citam os

a lgu n as con dicion es con va ria s expres ion es lógica s .

(sexo="hom bre" o sexo="varón")Es ta es u n a con dición com pu es ta

Recuerda que : u n a sen ten cia if pu ede con ten er otra s s en ten cia s if. Si

es to ocu rre decim os qu e ten em os sen ten cia s if an idadas .

Page 19: Capítulo 3. Sentencias de decisión

19

por dos expres ion es lógica s . Es tán u n idas por el operador lógico o .

Es ta expres ión será verdadera s i en la va r iable sexo es tá a lm acen ado

el va lor "h om bre" o el va lor "va rón ".

(edad=1 8 y e s tatura=1 .6 0 )Esta con dición es tá com pu es ta por dos

expres ion es lógica s ; pero a d iferen cia de la an ter ior pa ra qu e és ta s ea

verda dera se debe cu m plir qu e el con ten ido de la va r iable edad sea

igu a l a 18 y adem ás qu e el con ten ido de la va r ia ble es ta tu ra sea

1 .60, s i a lgu n a de es ta s va r iables n o t ien e es tos va lores , en ton ces la

con dición será fa lsa .

Pa ra u n ir expres ion es lógica s se u t ilizan los operadores lógicos "and", "or",

"not", "xor",.... No obs tan te en es te capítu lo solam en te es tu dia rem os los

operadores lógicos "and", "or" y "not" (en ca s tellan o tam bién se

den om in an "y", "o" y "n o".

El operador lógico and u n e dos expres ion es form an do u n a n u eva con dición

(o s i s e prefiere u n a n u eva expres ión ). La con dición resu ltan te es

"verdadera" s i la s expres ion es qu e la com pon en (en es te caso dos ) t ien en el

va lor "verdadero". A con tin u ación se expresa u n a tabla don de se pu ede ver

el resu ltado de la con dición en fu n ción de la eva lu a ción de la s expres ion es

qu e la com pon en .

operador and

condic ión .

valor de expr1 valor de expr2 valor de la

condic ión

expr1 and expr2 Fa lso Fa lso Fa lso

expr1 and expr2 Fa lso Verdadero Fa lso

expr1 and expr2 Verdadero Fa lso Fa lso

expr1 and expr2 Verdadero Verdadero Verdadero

Interpretac ión de la tabla: s i en la con dición (expr1 and expr2) (1ª

colu m n a) ten em os qu e expr1 ="verdadero" (2 ª colu m n a) y qu e expr2="fa lso"

(3 ª colu m n a) en ton ces el va lor de la con dición (expr1 an d expr2) s erá

"fa lso" (4 ª colu m n a).

Lo m ism o se aplica pa ra con dicion es com pu es ta s por m ás de dos

expres ion es u n idas por el operador and; por ejem plo, pa ra qu e la

con dición : (expr1 and expr2 and expr3 and expr4 ) s ea verdadera todas

la s expres ion es qu e la com pon en deben ser verdadera s .

Page 20: Capítulo 3. Sentencias de decisión

20

El operador lógico "or" expresa qu e pa ra qu e la con dición sea verdadera a l

m en os debe ser verdadera a lgu n a de la s expres ion es qu e com pon en la

con dición . La s igu ien te tabla expresa es ta s itu ación .

operador or

condic ión .

valor de expr1 valor de expr2 valor de la

condic ión

expr1 or expr2 Fa lso Fa lso Fa lso

expr1 or expr2 Fa lso Verdadero Verdadero

expr1 or expr2 Verdadero Fa lso Verdadero

expr1 or expr2 Verdadero Verdadero Verdadero

Com o se pu ede observa r en la tabla , pa ra qu e la con dición sea verdadera

se debe cu m plir qu e a l m en os u n a de la s expres ion es sea verdadera . Es to

se aplica a cu a lqu ier con dición con m ás de dos expres ion es , por ejem plo la

con dición : (expr1 or expr2 or expr3 or expr4 ) es verdadera s i a l m en os

u n a de la s expres ion es es verdadera .

El operador lógico not es el m ás sen cillo; lo ú n ico qu e h ace es pon er el

va lor con tra r io a l qu e tu viese la expres ión . La s igu ien te tabla m u es tra

cóm o actú a es te operador .

operador not .

Condic ión

valor de expr1 valor de la c ondic ión

not expr1 Fa lso Verdadero

not expr1 Verdadero Fa lso

Las con dicion es tam bién pu eden ten er expres ion es con com bin acion es de

los operadores expresados an ter iorm en te, en ese ca so se recom ien da el u so

de pa rén tes is pa ra expresa r qu é con ju n to de expres ion es se eva lú a

pr im ero. Por ejem plo, en la con dición :

((expr1 and expr2 ) or expr3 )

Pr im eram en te se eva lú a (expr1 an d expr2) y el resu ltado de és ta s e eva lú a

con expr3. Si en la con dición n o exis t en pa rén tes is , en ton ces aplicam os u n

orden de pr ior idad a operadores lógicos , el orden es el s igu ien te:

Page 21: Capítulo 3. Sentencias de decisión

21

- Pr im ero, s e eva lú an la s expres ion es con el operador n ot .

- Segu n do, s e eva lú an la s expres ion es con el operador an d.

- Tercero, s e eva lú an la s expres ion es con el operador or .

A con tin u ación se expresan va ria s con dicion es con el cam in o a segu ir pa ra

su eva lu ación :

Condic ión:(expr1 or expr2 and expr3 )

Evaluac ión:

Su pon gam os qu e: expr1 = "verdadero", expr2 = "fa lso" y expr3 =

"verdadero", en ton ces la eva lu ación es la s igu ien te:

1 .- s e rea liza (expr2 and expr3 ) cu yo resu ltado es falso

2 .- s e rea liza la operación lógica : expr1 con el resu ltado de la

eva lu ación an ter ior, s i su s t itu im os , ten em os la con dición

(expr1 or falso). Com o expr1="verdadero", en ton ces el va lor de

la con dición (expr1 or fa lso) es verdadero.

Condic ión:(expr1 and not expr2 or expr3 and expr4 )

Evaluac ión:

Su pon gam os qu e expr1 = "fa lso", expr2 = "verdadero", expr3 =

"verdadero" y expr4 = "verdadero", en ton ces la eva lu ación es la

s igu ien te:

1 .- s e h a lla el va lor de not expr2 . Com o expr2 = "verdadero" el resu l-

tado de (n ot expr2) es falso .

2 .- ah ora se debe h a lla r la expres ión cu yo operador lógico es and . En

es ta expres ión h ay dos operador es lógicos an d; a s í pu es se debe

com en za r por el an d qu e es te m ás a la izqu ierda . As í pu es eva lu am os

expr1 and (not expr2 ) com o el va lor de (not expr2 ) es fa lso

en ton ces ten drem os qu e eva lu ar la expres ión (expr1 and falso) cu yo

resu ltado es falso .

Page 22: Capítulo 3. Sentencias de decisión

22

3.- eva lu am os la expres ión (expr3 and expr4 ) cu yo resu ltado es

verdadero.

4 .- Fin a lm en te eva lu am os ((expr1 and not expr2 ) or (expr3 and

expr4 )). La expres ión qu e es tá a la izqu ierda del operador or es el

pa so 2 cu yo resu ltado es fa lso; la con dición de la derech a del

operador or es el pa so 3 cu yo resu ltado es verdadero. As í

su s t itu yen do la s expres ion es por su s va lores ten em os qu e (falso or

verdadero) cu yo resu ltado es verdadero. Por tan to la condic ión e s

verdadera.

Recuerda que : Exis ten u n a ser ie de operadores lógicos qu e n os

perm iten rea liza r operacion es con expres ion es lógica s . El va lor

de es ta s operacion es s igu e s ien do verdadero o fa lso.