resolver cd
TRANSCRIPT
-
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.