Selectiva simple
Selectiva doble
Ejemplos
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Contenido
Introduccin o
Ejemplos
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Una sentencia condicional es una instruccin o grupo de o instrucciones que se pueden ejecutar o no en funcin del valor de una o condicin. o Se utilizan cuando en el desarrollo de la solucin de un problema se o hace necesario tomar una decisin para establecer un proceso. o
Los sentencias condicionales constituyen, junto con los bucles, los pilares de la programacin estructurada. o Las estructuras selectivas se utilizan para tomar decisiones lgicas. o Por medio de las estructuras selectivas se evala una condicin y u o dependiendo del resultado la misma se realiza un proceso.
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Las condiciones evaluadas por medio de las estructuras selectivas se especican utilizando expresiones lgicas. o Clasicacin de las estructuras de control selectivas: o
Si entonces (Estructura selectiva simple) Si entonces / sino (Estructura selectiva doble) Si mltiple (Estructura selectiva mltiple) u u
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
donde
P: condicin o conjunto de condiciones a o evaluar. Intrucciones: instrucciones a realizar si la condicin P es verdadera. o
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Ejemplos
Ejemplo 2.1 Ralice un algoritmo (implemntelo en FreeDFD) tal que dado como dato la e calicacin de un alumno en un examen, escriba reprobado en caso de que o dicha nota sea menor a 3. Solucin o
Pseudocdigo o % Descripcion: Dada la calificacin de un o % alumno en un examen, se imprime "reprobado" % si la calificacin es menor a 3. o Leer NOTA; si NOTA<3.0 entonces Escribir "Reprobado"; fin
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Ejemplo 2.2
Ejemplo 2.2 A un trabajador se le aplica un aumento del 15 % en su salario si ste es e menor a 400 mil pesos. Realice un algoritmo (implemntelo en FreeDFD) e que imprima el sueldo del trabajador. Solucin o Datos: SUE: variable de tipo real que representa el salario del trabajador. Variables de salida: AUM: variable de tipo real; almacena el aumento del trabajador. NSUE: variable de tipo real; almacena el nuevo sueldo del trabajador.
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Ejemplo 2.2
Pseudocdigo o % Dado como dato el sueldo de un trabajador, % el programa aplica un aumento del 15 % si % el sueldo es inferior a 400 mil pesos. % Lee el sueldo del empleado SUE = input(ngrese el sueldo: "); I si SUE<400000 entonces Hacer AUM = SUE*0.15; Hacer NSUE = SUE + AUM; Escribir "El nuevo sueldo es" NSUE fin
# 1 2 3 4
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Ejemplo 3.1
Ejemplo 3.1 Realice un algoritmo (implemntelo en FreeDFD) tal que dado como dato la e calicacin de un alumno en un examen, escriba aprobado si su o calicacin es mayor o igual a 3 y reprobado en caso contrario. o Solucin o
Pseudocdigo o % % % % Dada la calificacin de un alumno en o un examen, se imprime "aprobado"si la calificacin mayor o igual a 3 y o "reprobado" en caso contrario
Leer NOTA; si NOTA>=3.0 entonces Escribir "aprobado"; sino Escribir "reprobado"; end
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Ejemplo 3.2
Ejemplo 3.2 A un trabajador se le aplica un aumento del 15 % en su salario si ste es e menor a 400 mil pesos y 8 % en caso contrario. Realice un algoritmo (implemntelo en FreeDFD) que imprima el sueldo del trabajador. e Solucin o Datos: SUE: variable de tipo real que representa el salario del trabajador. Variables de salida: NSUE: variable de tipo real; almacena el nuevo sueldo del trabajador.
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Ejemplo 3.2
Pseudocdigo o % % % % Dado como dato el sueldo de un trabajador, el programa aplica un aumento del 15 % si el sueldo es inferior a 400 mil pesos y en caso contrario el aumento es del 8 %.
Leer SUE; si SUE<=400000 entonces NSUE = SUE*1.15; sino NSUE = SUE*1.08; fin Escribir "El nuevo sueldo es" NSUE
# 1 2 3 4
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Pseudocdigo o si Condicion1 entonces si Condicion2 entonces Operacion21; sino Operacion22; fin end
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Ejemplo
Pseudocdigo o si P1 entonces Operacion11; sino si P2 entonces Operacion21; sino Operacion22; fin fin
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Ejemplo
Pseudocdigo o si Condicion1 entonces si Condicion2 entonces Operacion21; sino Operacion22; fin sino si Condicion3 entonces Operacion31; fin end
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Ejemplo 4.1 Realice un algoritmo en FreeDFD tal que dado como dato un entero, determine si es par y en caso de no serlo, determine si es divisble por 3. Solucin o
Pseudocdigo o % Determina si un entero es par y en tal % caso determina si es divisible por 3 Leer a; si a MOD 2 = 0 entonces Escribir "El nmero es par" u sino si a MOD 3 = 0 entonces Escribir "El nmero es impar... u y es divisible por 3" sino Escribir "El nmero es impar... u y no es divisible por 3" fin fin
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Ejemplo 4.2
Ejemplo 4.2 Realice un algoritmo en FreeDFD que reciba como datos de entrada tres nmeros enteros distintos A, B y C y los escriba de mayor a menor. u
Solucin o Datos: A, B, C: variables de tipo entero. Variables de salida: A, B, C: variables de tipo entero; se imprimen en orden descendente.
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Pseudocdigo o %******************************************* % Descripcin: dado tres enteros distintos, o % el algoritmo los ordena de mayor a menor. %******************************************* % Lee tres enteros distintos Leer A, B, C si A>B entonces si A>C entonces si B>C entonces Escribir A, sino Escribir A, fin sino Escribir C, fin sino si B>C entonces si A>C entonces Escribir B, sino Escribir B, fin sino Escribir C, fin end
B, C C, B
A, B
A, C C, A
B, A
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Ejemplo 5.1
Ejemplo 5.1 Realice un algoritmo en FreeDFD que determine si un punto con coordenadas (x, y) se encuentra en el segundo o cuarto cuadrante del plano cartesiano. Anlisis a
Datos: x, y: variables de tipo real (coordenadas del punto). Consideraciones: Un punto (x, y) se encuentra en el segundo cuadrante si x<0 y y>0 (1)
De (1) y (2), un punto (x, y) se encuentra en el segundo o cuarto cuadrante si xy<0 (3)
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Ejemplo 5.2
Ejemplo 5.2 Realice un algoritmo en FreeDFD que determine si un punto con coordenadas (x, y) se encuentra en el interior de la circunferencia con centro en el origen y radio 3. Anlisis a
Datos: x, y: variables de tipo real (coordenadas del punto). Consideraciones: La circunferencia con centro en (0, 0) y radio 3 est dada por el conjunto de a puntos (x, y) que satisfacen x2 + y2 = 9 Un punto (x, y) se encuentra en el interior de dicha circunferencia si x2 + y2 < 9 (5) (4)
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Ejemplo 5.3
Ejemplo 5.3 Realice un algoritmo en FreeDFD que calcule, de ser posible, las raices reales de la ecuacin o ax2 + bx + c = 0, Anlisis a
Consideraciones: Las soluciones de la ecuacin cuadrtica (6) vienen dadas por o a b b2 4ac x= 2a La frmula (7) puede conducir a soluciones complejas si o = b2 4ac < 0 Variables: a, b, c: variables de tipo real (coecientes de la ecuacin) con a = 0. o dis: variable de tipo real; almacena el discriminante de la ecuacin. o x1 y x2: variables de tipo real; almacenan las raices de la ecuacin. o
a = 0.
(6)
(7)
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Ejemplo 5.4
Ejemplo 5.4 Realice un algoritmo en FreeDFD tal que dado como dato un nmero u entero, determine e imprima si el mismo es postivo, negativo o nulo.
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Ejemplo 5.5
Ejemplo 5.5 Realice un algoritmo en FreeDFD tal que dado como dato un nmero u entero, determine e imprima si el mismo es par, impar o nulo.
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Ejemplo 5.6
Ejemplo 5.6 Realice un algoritmo en FreeDFD tal que dado como datos tres nmeros u enteros, determine si stos estn en orden creciente. e a
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Ejemplo 5.7
Ejemplo 5.7 Una tienda norteamericana efecta un descuento a sus clientes dependiendo u del monto de la compra (en dlares). El descuento se efecta de acuerdo a o u los siguientes criterios:
1
monto < $500 no hay descuento $500 < monto $1000 5 % de descuento $1000 < monto $7000
11 % de descuento
4
Realice un algoritmo en FreeDFD tal que dado el monto de la compra de un cliente, determine lo que el mismo debe pagar. Anlisis a Datos: COMPRA: variables de tipo real; representa el monto de la compra. PAGO: variables de tipo real; representa el valor a pagar.
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Ejemplo 5.8
Ejemplo 5.8 En un pa los impuestos que debe pagar una persona al comprar un s art culo se calculan de la siguiente manera: los primeros $20 no causan impuesto, los siguientes $20 tienen el 30 % de impuesto y el resto el 40 % de impuesto, pero si el costo del producto es mayor a $500, entonces en lugar del 40 % se cobra el 50 %. Realice un algoritmo en FreeDFD que lea el costo bsico de un art a culo y calcule su precio total (precio total = precio bsico + impuesto). a Anlisis a Variables: PREBAS: variables de tipo real; almacena el precio bsico del producto. a IMP: variables de tipo real; almacena el impuesto del producto que se ingresa. PRETOT: variables de tipo real; almacena el costo total del producto (costo bsico ms impuesto). a a
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Ejemplo 5.9
Ejemplo 5.9 Cierta universidad para liquidar el pago de matr cula de un estudiante exige los siguientes datos:
1 2
3 4
La universidad cobra un valor constante para cada estudiante de $50000. Si el patrimonio es mayor a dos millones y el estrato es superior a 3, se le incrementa un porcentaje dle 3 % sobre el patrimonio. Realice un algoritmo en FreeDFD que muestre: Nmero de u inscripcin o Anlisis a Variables: NI: variable de tipo entera, representa el nmero de inscripcin. u o NOM: variable de tipo cadena de caracteres, representa el nombre. PAT: variable de tipo real, representa el patrimonio. EST: variable de tipo entera, representa el estrato. PAGMAT: variable de tipo real, almacena el pago de matr cula. Nombres Pago de matr cula
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Ejemplo 5.10
Ejemplo 5.10 Un almacn efecta una promocin en la cual se hace un descuento sobre el e u o valor de la compra total, segn el color de la bolita que el cliente saque al u pagar en la caja. Si la bolita es blanca no se le har descuento alguno, si es a verde se le har un 10 % de descuento, si es amarilla un 25 %, si es azul un a 50 % y si es roja un 100 %. Realice un algoritmo en FreeDFD que determine la cantidad nal que un cliente deber pagar por su compra. Se sabe que slo hay bolitas de los a o colores mencionados. Anlisis a Variables : VCOMP: variable de tipo real, almacena el valor de la compra. COL: variable de tipo cadena de caracteres, almacena el color de la bolita. VPAG: variable de tipo real, almacena valor a pagar. PDES: variable de tipo entera, almacena el porcentaje de descuento.
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Ejemplo 5.11
Ejemplo 5.11 Se tienen cuatro esferas A, B, C y D de las cuales se sabe que tres son de igual peso y una diferente. Realice un algoritmo en FreeDFD que reciba como datos los pesos de las cuatro esferas y determine cul es la esfera a diferente y si es de mayor o menor peso.
Anlisis a Variables : PESOA: variable de tipo real, almacena el peso de la esfera A PESOB: variable de tipo real, almacena el peso de la esfera B PESOC: variable de tipo real, almacena el peso de la esfera C PESOD: variable de tipo real, almacena el peso de la esfera D
Introduccin o
Selectiva simple
Selectiva doble
Ejemplos
Referencias
O. Cair o Metodolog de la programacin a o Segunda edicin. Alfaomega Grupo Editor, S.A., 2005 o
M.A. Criado Programacin en lenguajes estructurados o Alfaomega Grupo Editor, S.A. de C.V. Primera Edicin, 2006 o