Resolver CD

download Resolver CD

of 16

Transcript of Resolver CD

  • 7/24/2019 Resolver CD

    1/16

    4.2 Estructuras Condicionales

    Las estructuras condicionales comparan una variable

    contra otro(s) valor(es), para que en base al resultado de

    esta comparacin, se siga un curso de accin dentro del

    programa.

    Estas estructuras son las que nos dan la capacidad de

    crear sistemas inteligentes, es decir, que toman decisiones.

    Cabe mencionar que la comparacin se puede hacer

    contra otra variable o contra una constante, segn se

    necesite. Existen dos tipos bsicos, las simples las

    mltiples.

    Condiciones Simples. !on aquellas en que

    solamente se puede escoger uno de dos caminos

    posibles al seleccionar se e"ecutarn las

    instrucciones que se encuentren dentro de este.

    Esto es similar a la situacin que su#rimos

    cuando nos encontramos en la punta de una

    cuchilla, solamente se puede ir por un camino

    a que es imposible cru$ar por ambos a la ve$.

    Condiciones Mltiples. !on aquellas en que

    solamente se puede escoger uno de n caminos

    posibles, al seleccionar se e"ecutarn las

    instrucciones que se encuentren dentro de este.

    Esto es similar a la situacin que su#rimos

    cuando nos encontramos en un cruce de caminos,

    solamente se puede ir por un camino a que es

    imposible cru$ar por todos a la ve$.

    Ilustracin 1Condicin simple

    Ilustracin 2 Condicin Mltiple

  • 7/24/2019 Resolver CD

    2/16

    En este momento anali$aremos a las condiciones

    simples con las tres t%cnicas algor&tmicas a conocidas.

    En pseudocdigo se utili$a la instruccin si ...

    entonces, donde en lugar de los puntos suspensivos secoloca la expresin a evaluar (en esta parte es donde

    nos sirven los operadores lgicos relacionales), donde

    si el resultado de esta evaluacin es verdadero se

    e"ecutan las instrucciones que se encuentran entre esta

    instruccin las palabras si no' ero si el resultado

    es #also, se e"ecutan las instrucciones que se

    encuentran despu%s de las palabras si no las palabras

    fin si. or lo cual podemos decir que los delimitadores

    de esta estructura son las palabra si ... entonces

    fin si.

    Las instrucciones que se encuentran dentro de la

    condicin si...entonces pueden ser estructuras

    secu%nciales en este caso las acciones llevan una

    subnumeracin secuencial, menos las palabras si no fin

    si.

    Sugerencia. Colocar una sangr&a a las acciones

    internas a la condicin para tener una me"or legibilidad

    de nuestro algoritmo.

    l momento de dise*ar un algoritmo con esta

    estructura se puede omitir el lado #also, es decir las

    instrucciones dentro del si no el fin si' En caso de

    no desear hacer nada en esta parte.

    Sugerencia. En caso de no desear hacer nada en el

    lado #also de la condicin, es recomendable poner dentro

  • 7/24/2019 Resolver CD

    3/16

    de las palabras si no fin siel siguiente comentario+

    // no hace nada

    . -nicio

    . ccin

    /. ccin 0. !i 1ariable operador valorentonces

    0. ccin /

    0. ccin 0

    !i no

    0./ ccin 2

    0.0 ccin 3

    4in si

    2. ccin 5

    3. ccin 6

    5. 4in

    Ilustracin 3 Estructura condicional simple en pseudocdigo.

    En diagrama de flujo esta representada por el s&mbolo

    decisin, donde, dentro de este se coloca la expresin a

    evaluar, del s&mbolo salen dos #lu"os o #lechas donde

    cada una debe de tener la leenda del camino posible

    (#also o verdadero), estos #lu"os indican el con"unto de

    acciones o instrucciones a reali$ar dependiendo de la

    respuesta a la condicin. El #inal de la estructura seindica uniendo nuevamente los dos #lu"os en uno solo, en

    caso de no desear reali$ar acciones dentro del lado

    #also, se debe de sacar la #or$osamente la #lecha para

    tener una indicacin de donde termina la estructura.

  • 7/24/2019 Resolver CD

    4/16

    Inicio

    Fin

    Accin 1

    Variable operador valor

    Accin 2

    Accin 3

    Accin 4

    Accin 5

    Accin 6

    Accin 7

    Accin 8

    Ilustracin 4 Estructura condicional !imple en diagrama de #lu"o

    continuacin reali$amos unos e"emplos de

    estructuras condicionales simples, utili$ando las tres

    t%cnicas algor&tmicas. ero adems veremos otros e"emplos

    utili$ando el concepto de anidacin.

    La anidacin es el proceso de colocar dentro de una

    estructura a sea condicional o c&clica otra estructura

    condicional o c&clica.

    Ejemplo

    !e necesita un sistema para un supermercado, el cual dar un 7

    de descuento a las personas que compren ms de 9777, al client

    se le debe de dar el total a pagar.

    Paso I. nali!ar el problema.Salidas Entrada Constantes Procesos

    :otal

    !ubtotal

    ;escuent

    o

    Cuando subtotal < 777

    ;escuento = !ubtotal > 7.7

    :otal = !ubtotal ? ;escuent

    Cuando !ubtotal @= 777

    :otal = !ubtotal

    Paso II. "ise#ar El algoritmoPSE$"%C&"I'%

    seudocdigo+ !upermercado

    1ariables+

    :otal + real + traba"o

    !ubtotal + real + traba"o

    ;escuento + real + traba"o

  • 7/24/2019 Resolver CD

    5/16

    Inicio

    Fin

    Subtotal > 1000

    e!cuento " Subtotal # 0$10

    %otal " Subtotal & e!cuento

    %otal " Subtotal

    Variable!'

    %otal ' real ' traba(o

    Subtotal ' real ' traba(oe!cuento ' real ' traba(o

    )*uanto co+pr el cliente,-

    Subtotal

    V F

    )total a pa.ar e!'-/ %otal

    ia.ra+a de u(o' Super+ercado

    . -nicio

    . Escribir ACuanto compr el clienteB

    /. Leer !ubtotal

    0. !i !ubtotal < 777 entonces

    0. ;escuento = !ubtotal > 7.7

    0. :otal = !ubtotal ? ;escuento

    si no

    0./ :otal = !ubtotal

    #in si

    2. Escribir Ael total a pagar es+, :otal

    3. 4in

    "I'(M "E )*$+%

    Paso III. Prueba "el lgoritmo.,alores a entradas Procesos (esultados

    !ubtotal = 527.67

    !ubtotal < 777

    527. 67 < 777 D

    :otal = !ubtotal

    :otal = 527.67

    -otal /01.1

    !ubtotal = /77

    !ubtotal < 777

    /77 < 777 !-

    ;escuento = !ubtotal > 7.7

    ;escuento = /77 > 7.7

    ;escuento = /7

    :otal = !ubtotal ? ;escuento

    :otal = /77 ? /7

    :otal = 57

    -otal /1

    -abla E"emplo de una Estructura Condicional simple.

  • 7/24/2019 Resolver CD

    6/16

    En este e"emplo, se dieron di#erentes valores a

    subtotal para ver qu% es lo que pasa cuando se va por

    cualquier camino.

    Aspecto Crtico. En este e"emplo, reciben el descuento

    del 78 solo aquellos clientes que su compra es maor a

    9777, los que compraron 9777 exactamente no reciben

    descuento. or lo cual si se quiere que esta ci#ra tenga

    descuento, en la expresin debemos de colocar el operador

    maor o igual.

    Ejemplo

    !e necesita un sistema que reciba tres cali#icaciones parciale

    de un alumno en base a estas darle su promedio donde si e

    promedio es menor a 3 se le dir que esta reprobado, en cascontrario el mensa"e ser aprobado

    Paso I. nali!ar el problema.Salidas Entrada Constantes Procesos

    rom

    Fn

    mensa"e

    (probado o

    Geprobado)

    Cal

    Cal

    Cal/

    rom = (cal H cal H cal/) I /

    Cuando rom @ 3

    AGEGJ;

    Cuando rom

  • 7/24/2019 Resolver CD

    7/16

    Inicio

    Variable!'

    pro+/ cal1/ cal2/ cal3' real ' traba(o

    )a+e calicacin de pri+er parcial-

    cal1

    ia.ra+a de u(o' ro+edio

    )a+e calicacin de !e.undo parcial-

    cal2

    1 *onector a otra p.ina

    Fin

    pro+ 6V F

    )a+e calicacin de tercer parcial-

    cal3

    ro+ " cal1 cal2 cal3 3

    )%u pro+edio e!'-/ pro+/ )e!ta! 9:9;

  • 7/24/2019 Resolver CD

    8/16

    Ejemplo

    !e necesita un sistema para un supermercado, en el cual si e

    monto de la compra del cliente es maor de 92777 se le har u

    descuento del /78, si es menor o igual a 92777 pero maor qu

    9/777 ser del 78, si no rebasa los 9/777 pero si los 9777 l

    reba"a e#ectiva es del 78 en caso de que no rebase los 977

    no tendr bene#icio.

    Paso I. nali!ar el problema.Salidas Entrada Constantes Procesos

    :otal

    subtotal

    descuent

    o

    Cuando subtotal < 2777

    descuento = subtotal > 7./7

    total = subtotal ? descuento

    Cuando subtotal < /777 pero @= 277

    descuento = subtotal > 7.7

    total = subtotal ? descuento

    Cuando subtotal < 777 pero @= /77

    descuento = subtotal > 7.7

    total = subtotal ? descuento

    Cuando subtotal @= 777

    total = subtotal

    Paso II. "ise#ar El algoritmoPSE$"%C&"I'%

    seudocdigo+ ;escuentos

    1ariables+

    total, subtotal, descuento + real + traba"o = 7

    II se iniciali$an todas las variables con el valor de cero

    . -nicio

    . Escribir ACuanto compr el clienteB

    /. Leer subtotal

    0. !i subtotal < 2777 entonces II inicio de primera condicin

    0. descuento = subtotal > 7./7

    si no II lado #also de primera condicin

    0. si subtotal < /777 entonces II inicio de segunda condicin

    0.. descuento = subtotal > 7.7

    si no II lado #also de segunda condicin

    0.. si subtotal < 777 entonces II inicio tercera cond.

    0... descuento = subtotal > 7.7

    si no II lado #also tercera condicin

    II no hace nada

    #in si II #in de tercera condicin

    #in si II #in de segunda condicin

    #in si II #in de primera condicin

    2. total = subtotal descuento

    3. Escribir Ael total a pagar es+, :otal

    5. 4in

  • 7/24/2019 Resolver CD

    9/16

    ia.ra+a de u(o' e!cuento!

    F

    Inicio

    Fin

    !ubtotal > 5000

    de!cuento " !ubtotal # 0$30

    total " !ubtotal & de!cuento

    Variable!'

    total / !ubtotal/ de!cuento ' real ' traba(o " 0

    )*uanto co+pr el cliente,-

    !ubtotal

    V

    F

    )total a pa.ar e!'-/ total

    !ubtotal > 3000

    F

    V

    !ubtotal > 3000

    de!cuento "!ubtotal # 0$10

    Vde!cuento " !ubtotal # 0$20

    "I'(M "E )*$+%

  • 7/24/2019 Resolver CD

    10/16

    Paso III. Prueba "el lgoritmo.,alores a entradas Procesos (esultados

    subtotal = 2/77

    subtotal < 2777

    2/77 < 2777 SIdescuento = subtotal > 7./7

    descuento = 2/77 > 7./7

    descuento = 2K7

    total = subtotal ? descuento

    total = 2/77 ? 2K7

    total = /57

    -otal 3/1

    subtotal = 077

    subtotal < 2777

    077 < 2777 9%

    subtotal < /777

    077 < /777 SIdescuento = subtotal > 7.7

    descuento = 077 > 7.7

    descuento = 67

    total = subtotal ? descuentototal = 077 ? 67

    total = /67

    -otal 321

    subtotal = 627

    subtotal < 2777

    627 < 2777 9%

    subtotal < /777

    627 < /777 9%

    subtotal < 777

    627 < /777 SIdescuento = subtotal > 7.7

    descuento = 627 > 7.7

    descuento = 62

    total = subtotal ? descuentototal = 627 ? 62

    total = 332

    -otal 550

    subtotal = 577

    subtotal < 2777

    577 < 2777 9%

    subtotal < /777

    577 < /777 9%

    subtotal < 777

    577 < /777 9%

    total = subtotal ? descuento

    total = 577 ? 7

    total = 577

    -otal /11

    -abla 3E"emplo / de una estructura condicional simple anidada

    En este e"emplo, se iniciali$aron las variables a cero,

    con lo cual se pudo resolver la expresin total subtotal :

    descuento, a que descuento pod&a tener cualquier valor, adems

  • 7/24/2019 Resolver CD

    11/16

    gracias a esto pudimos colocar la expresin #uera de toda

    estructura.

    Ejemplo

    !e necesita un sistema que le muestre a un alumno su cali#icaci

    en letra su promedio, el promedio se saca en base a

    parciales, donde si el promedio es menor a 3 su letra es9, s

    es maor o igual a 3 cuando mucho 6 le corresponde S, ssobrepasa el 6 pero menor o igual a K debe tener 7, todo lo demes una E.

    Paso I. nali!ar el problema.Salidas Entrada Constantes Procesos

    Mensa"e

    (D, !, J, E)

    Cal

    Cal

    Cal/

    prom = (cal H cal H cal/) I /

    cuando prom @ 3

    9

    Cuando prom

  • 7/24/2019 Resolver CD

    12/16

    4in si

    7. Escribir Aa que tu promedio es+, prom

    . 4in

    "I'(M "E )*$+%

  • 7/24/2019 Resolver CD

    13/16

    ia.ra+a de u(o' ro+edio en letra

    F

    Inicio

    Fin

    pro+ 6

    Variable!'

    cal1/ cal2/ cal3/ pro+ ' real ' traba(o

    )*alicacin pri+er parcial,-

    cal1

    V

    F

    )=a ue tu pro+edio e!' )/ pro+

    pro+ " 8F

    V

    pro+ " ?V

    )*alicacin !e.undo parcial,-

    cal2

    )*alicacin tercer parcial,-

    cal3

    pro+ " cal1 cal2 cal3 3

    )@A-

    )S-

    )

  • 7/24/2019 Resolver CD

    14/16

    ,alores a entradas Procesos (esultadoscal = 0

    cal = 2

    cal/ = /

    prom = ( cal H cal H cal/ ) I /

    prom = ( 0 H 2 H / ) I /

    prom = 0

    prom @ 3

    0 @ 3 SI

    Acali#icacin con letra es D

    Aa que tu promedio es+ 0

    9

    prom 4

    cal = 6

    cal = 3

    cal/ = 5

    prom = ( cal H cal H cal/ ) I /

    prom = ( 6 H 3 H 5 ) I /

    prom = 5

    prom @ 3

    5 @ 3 9%

    prom @= 6

    5 @= 6 SI

    Acali#icacin con letra es !

    Aa que tu promedio es+ 5

    S

    prom /

    cal = K

    cal = 6

    cal/ = K

    prom = ( cal H cal H cal/ ) I /

    prom = ( 6 H 3 H 5 ) I /

    prom = 6.5

    prom @ 36.5 @ 3 9%

    prom @= 6

    6.5 @= 6 9%

    prom @= K

    .5 @= K SI

    Acali#icacin con letra es J

    Aa que tu promedio es+ 6.5

    7

    prom ./

    cal = 7cal = K

    cal/ = 7

    prom = ( cal H cal H cal/ ) I /

    prom = ( 6 H 3 H 5 ) I /

    prom = K.5

    prom @ 3

    K.5 @ 3 9%

    prom @= 6

    E

    prom ;./

  • 7/24/2019 Resolver CD

    15/16

    K.5 @= 6 9%

    prom @= K

    K.5 @= K 9%

    Acali#icacin con letra es E

    Aa que tu promedio es+ 6.5

    -abla 4E"emplo 0 de una estructura condicional simple anidada

    Ejercicios.Geali$a los siguientes e"ercicios+

    -. Escribe un algoritmo en pseudocdigo, diagrama de #lu"o

    diagrama D! para cada una de las situaciones siguientes+

    . Decesitamos saber si una persona es A"oven o Avie"a

    basndonos en su edad. Noven es aquella menor de 02 a*os.

    . Decesitamos saber si el usuario es alto o chaparro.

    Chaparro es aquel que mide cuando mucho .32 mts./. Decesitamos veri#icar que la contrase*a que escribe el

    usuario es igual a Asolrac. ;ependiendo de lo ingresado

    desplegar el mensa"e correspondiente.

    0. Oue lea dos nmeros los imprima en #orma ascendente

    2. Leer nmeros' si son iguales que los multiplique, si el

    primero es maor que el segundo que los reste si no,

    que los sume.

    3. Leer tres nmeros di#erentes e imprimir el nmero maor.

    5. El -M!! requiere clasi#icar a las personas que se

    "ubilaran en el a*o 770. Existen tres tipos de

    "ubilaciones+ por edad, por antigPedad "oven por

    antigPedad adulta. Las personas adscritas a la "ubilacin

    por edad deben tener 37 a*os o mas una antigPedad en su

    empleo de menos de 2 a*os. Las personas adscritas a

    la "ubilacin por antigPedad "oven deben tener menos de

    37 a*os una antigPedad en su empleo de 2 a*os o ms.

    Las personas adscritas a la "ubilacin por antigPedad

    adulta deben tener 37 a*os o mas una antigPedad en su

    empleo de 2 a*os o mas.

  • 7/24/2019 Resolver CD

    16/16

    6. Calcular la utilidad que un traba"ador recibe en el

    reparto anual de utilidades si a este se le asigna un

    porcenta"e de su salario mensual que depende de su

    antigPedad en la empresa de acuerdo con la siguiente

    tabla+

    -iempo $tilidadMenos de a*o 2 8 del salario

    a*o o mas menos de a*os 58 del salario

    a*os o mas menos de 2 a*os 78 del salario

    2 a*os o mas menos de 7 a*os 28 del salario

    7 a*os o mas 78 del salario

    K. Fn obrero necesita calcular su salario semanal, el cual

    se obtiene de la sig. manera+

    !i traba"a 07 horas o menos se le paga 93 por hora

    !i traba"a ms de 07 horas se le paga 93 por cada

    una de las primeras 07 horas 97 por cada hora

    extra.

    7. Fna empresa quiere hacer una compra de varias pie$as de

    la misma clase a una #brica de re#acciones. La empresa,

    dependiendo del monto total de la compra, decidir que

    hacer para pagar al #abricante.

    !i el monto total de la compra excede de 9277 777 la

    empresa tendr la capacidad de invertir de su propio

    dinero un 228 del monto de la compra, pedir prestado

    al banco un /78 el resto lo pagara solicitando un

    cr%dito al #abricante.

    !i el monto total de la compra no excede de 9277 777

    la empresa tendr capacidad de invertir de su propio

    dinero un 578 el restante /78 lo pagara solicitando

    cr%dito al #abricante.

    El #abricante cobra por concepto de intereses un 78

    sobre la cantidad que se le pague a cr%dito.

    . ;eterminar la cantidad de dinero que recibir un

    traba"ador por concepto de las horas extras traba"adas

    en una empresa, sabiendo que cuando las horas de traba"o

    exceden de 07, el resto se consideran horas extras que

    estas se pagan al doble de una hora normal cuando no

    exceden de 6' si las horas extras exceden de 6 se pagan

    las primeras 6 al doble de lo que se pagan las horas

    normales el resto al triple.