trabajo
DESCRIPTION
trabajo para presentarTRANSCRIPT
Estructuras selectivas se utilizan para tomar decisiones lógicas; de ahí que se
suelan denominar también estructuras de decisión o alternativas. En las
estructuras selectivas se evalúa una condición y en función del resultado la
misma se realiza una opción u otra. Las condiciones se especifican usando
expresiones lógicas. La representación de una estructura selectiva se hace con
palabras en pseudocódigo (if, then, else o bien en español si, entonces, sino),
con una figura geométrica en forma de rombo o bien con un triángulo en el
interior de una caja rectangular.
Las estructuras selectivas o alternativas pueden ser:
ALTERNATIVA SIMPLE (SI-ENTONCES/IF-THEN):
La estructura alternativa simple si-entonces (en inglés if-then o bien IF-THEN)
ejecuta una determinada acción cuando se cumple una determinada condición.
La selección si-entonces evalúa la condición y si la condición es verdadera,
entonces ejecuta la acción S1 (o acciones caso de ser S1 una acción compuesta
y constar de varias acciones).
Si la condición es falsa, entonces no hacer nada.
PSEUDOCÓDIGO:
Si (condición) Entonces
(acción S1)
Fin_si
ALTERNATIVA DOBLE (SI-ENTONCES-SI_NO / IF - THEN - ELSE):
Estructura que permita elegir entre dos opciones o alternativas posibles, en
función del cumplimiento o no de una determinada condición.
Si la condición C es verdadera, se ejecuta la acción S1 y, si es falsa, se ejecuta
la acción S2.
PSEUDOCÓDIGO:
Si (condición) entonces
(acción S1)
si_no
(acción S2)
fin_si
ALTERNATIVAS MÚLTIPLES (SEGÚN _ SEA, CASO DE / CASE):
Cuando existen más de dos elecciones (alternativas) posibles, es cuando se
presenta el caso de alternativas múltiples. Si el número de alternativas es
grande puede plantear serios problemas de escritura del algoritmo y
naturalmente de legibilidad.
La estructura de decisión múltiple evaluará una expresión que podrá tomar n
valores distintos 1, 2, 3,4,..N. Según que elija uno de estos valores en la
condición, se realizará una de las n acciones, o lo que es igual, el flujo del
algoritmo seguirá un determinado camino entre los n posibles.
Ejemplo:
Determinar si un triángulo es: equilátero, isósceles o escaleno, conociendo sus
tres lados (a, b, c).
PSEUDOCÓDIGO:
INICIO
leer a, b, c
SI (a == b) ENTONCES
SI (b == c) ENTONCES
imprimir ("Triángulo Equilátero")
SINO
imprimir ("Triangulo Isósceles")
FIN SI
SINO
SI (b == c) ENTONCES
imprimir ("Triangulo Isósceles")
SINO
imprimir ("Triangulo Escaleno")
FIN SI
FIN SI
FIN
SELECTIVAS MULTIPLES:
Permiten evaluar condiciones de forma jerárquica, y al hallar la primera condición que retorne True se ejecutan las instrucciones correspondientes y termina dicha estructura. PSEUDOCODIGO (SINTAXIS): SI (CONDICION1) ENTONCES INSTRUCCIONES1 SINO SI (CONDICION2) ENTONCES INSTRUCCIONES2 SINO SI (CONDICION3) ENTONCES INSTRUCCIONES3 ...... SINO instrucciones FIN SI --------------------------------- EN JAVA if (condicion1) { instrucciones1; } else if (condicion2) { instrucciones2; } else if (condicion3) { instrucciones3; } .... Else { instrucciones; } EJEMPLO1: Ingresar el nombre del mes y año para retornar la cantidad de días
correspondientes INICIO VARIABLES: ENTERO: AÑO, CANTDIAS TEXTO: MES ESCRIBIR: "INGRESE EL NOMBRE DEL MES" LEER: MES ESCRIBIR: "INGRESE EL AÑO" LEER: AÑO SI( MES == "ENERO" O MES == "MARZO" O MES == "MAYO" O MES == "JULIO" O MES == "AGOSTO" O MES == "OCTUBRE" O MES == "DICIEMBRE") ENTONCES CANTDIAS <- 31 SINO SI (MES == "ABRIL" O MES == "JUNIO" O MES == "SETIEMBRE" O MES == "NOVIEMBRE") ENTONCES CANTDIAS <- 30 SINO SI (MES == "FEBRERO") ENTONCES SI (AÑO MOD 4 == 0) ENTONCES CANTDIAS <- 29 SINO CANTDIAS <- 28 FIN SI SINO CANTDIAS <-0 FIN SI ESCRIBIR: CANTDIAS FIN ------------------------------------------------- EN JAVA import javax.swing.*; public class ejemplo1 { public static void main(String [ ] args) { int año=0,cantdias=0; String mes; mes=JOptionPane.showInputDialog("Ingrese el mes"); mes=mes.toUpperCase();//Cambia a mayúsculas año=Integer.parseInt(JOptionPane.showInputDialog("Ingrese año")); if(mes.equals("ENERO")||mes.equals("MARZO")||mes.equals("MAYO")||mes.equals("JULIO")||mes.equals("AGOSTO")||mes.equals("OCTUBRE")||mes.equals("DICIEMBRE")){ cantdias=31; }else if(mes.equals("ABRIL")||mes.equals("JUNIO")||mes.equals("S
ETIEMBRE")||mes.equals("NOVIEMBRE")){ cantdias=30; }else if(mes.equals("FEBRERO")){ if(año % 4 == 0){ cantdias=29; }else{ cantdias=28; } }else{ cantdias=0; } JOptionPane.showMessageDialog(null,"Cant días "+cantdias); } } ------------------------------------------------- EJEMPLO2: Crear una aplicación para el alquiler de habitaciones en un hotel según la siguiente tabla: TIPO | COSTO SIMPLE | 15 Matrimonial | 25 MAT + CABLE | 30 MAT + JACUZI| 60 Existen dos tipos de clientes Frecuente y Nuevo a los cuales se da un descuento de 10%(Frecuente) Los días viernes y sábados los costos se incrementan en 20% INICIO VARIABLES: TEXTO: HABITACION,CLIENTE,DIA REAL: COSTO,DESC,INCREMENT ESCRIBIR: "INGRESE TIPO DE HABITACION" LEER: HABITACION ESCRIBIR: "INGRESE TIPO DE CLIENTE " LEER: CLIENTE ESCRIBIR: "INGRESE EL DIA DE LA SEMANA" LEER: DIA SI(HABITACION=="SIMPLE")ENTONCES COSTO<-15 SINO SI(HABITACION=="MATRIMONIAL")ENTONCES COSTO<-25 SINO SI(HABITACION=="MAT + CABLE")ENTONCES COSTO<-30 SINO SI(HABITACION=="MAT + JACUZI")ENTONCES COSTO<-60 SINO ESCRIBIR: "ERROR" FIN SI
SI(CLIENTE=="FRECUENTE")ENTONCES DESC<-0.10*COSTO SINO DESC<-0 FIN SI SI(DIA=="VIERNES" O DIA=="SABADO")ENTONCES INCREMENT<-0.20*COSTO SINO INCREMENT<-0 FIN SI COSTO <- COSTO + INCREMENT - DESC ESCRIBIR: COSTO FIN ------------------------------------------------- EN JAVA import javax.swing.*; public class ejemplo2 { public static void main(String[] args) { String hab,cli,dia; double costo=0,increment,desc; hab=JOptionPane.showInputDialog("Ing tipo de habitación"); cli=JOptionPane.showInputDialog("Ing tipo cli"); día=JOptionPane.showInputDialog("Ing día"); if(hab.equals("SIMPLE")){ costo=15; }else if(hab.equals("MATRIMONIAL")){ costo=25; }else if(hab.equals("MAT + CABLE")){ costo=30; }else if(hab.equals("MAT + JACUZI")){ costo=60; }else{ System.out.println("ERROR"); } if(cli.equals("FRECUENTE")){ desc=0.10*costo; }else{ desc=0; } if(dia.equals("VIERNES") || dia.equals("SABADO")){ increment=0.20*costo; }else{ increment=0; } costo=costo + increment-desc; JOptionPane.showMessageDialog(null,"El costo es "+costo); } }