ESTRUCTURAS SELECTIVAS5.1 ESTRUCTURAS SELECTIVAS
Selectiva simpleLa estructura alternativa simple si-entonces (en inglés 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 SI.Si la condición es falsa, entonces no hacer nada. El diagrama de sintaxis es el siguiente: Sentencia if_simple ::=  si (<expresión lógica<)  inicio   <sentencias>fin
Selectiva simpleLa sintaxis en pseudocódigo: Si (condición)  entonces      Accionesfin-si En C/C++ : If(condición){   sentencias} En Pascal If(condición) thenbegín  sentenciasend
Selectiva dobleLa estructura anterior es muy limitada y normalmente se necesitará una 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, tal como se muestra a continuación:   If < condición > then    < acción S1 >else    < acción S2 >endif
Selectiva dobleObsérvese que en el pseudocódigo las acciones que dependen de entonces (then) y si_no (else)  están indentadas, lo cual aumenta la legibilidad de la estructura y es el medio idóneo para representar los algoritmos. Ejemplo 1:Resolución de una ecuación de primer grado.Solución: Si la ecuación es ax + b = 0, a y b son los datos, las posibles soluciones son: a <> 0 	x = -b/aa = 0, b <> 0 	entonces “solución imposible”a = 0, b = 0 	entonces “solución indeterminada”
Selectiva dobleEl algoritmo correspondiente es: algoritmo RESOL1 varreal : a, b, xinicioleer (a,b)si a <> 0 entonces      x = -b/aescribir (x)si_nosi b <> o entoncesescribir (“solución imposible”)si_noescribir (“solución indeterminada”)fin_sifin_sifin fin del ejemplo 1.
Selectiva dobleEjemplo 2.Calcular la media aritmética de una serie de números positivos.Solución: La media aritmética de n números es En el problema se supondrá la entrada de datos a través del teclado hasta que se introduzca el último número, en este caso –99. Para calcular la media aritmética se necesita saber cuántos números se han introducido hasta llegar a –99; para ello se utilizará un contador n que llevará la cuenta del número de datos introducidos.
Selectiva doblealgoritmo mediainicio   s = 0    // inicialización de variables: s y n   n = 0datos:leer (x)    // el primer número debe ser mayor que cerosi x > 0 entonces      n = n + 1      s = s + xir_a (datos)fin_si   m = s/n    // media de los números positivosescribir (m)fin fin del ejemplo 2
Selectiva dobleEjemplo 3. Se desea obtener la nómina semanal (salario neto) de los empleados de una empresa cuyo trabajo se paga por horas y del modo siguiente: Las horas inferiores o iguales a 35 horas (normales) se pagan a una tarifa determinada que se debe introducir a través del teclado, lo mismo que el número de horas y el nombre del trabajador.   Las horas superiores a 35 se pagarán como extras a un precio 1.5 horas normales. Los impuestos a deducir a los trabajadores varían en función de su sueldo mensual: Sueldo <= $20,000, libre de impuestosLos siguientes $15,000 al 20%El resto, al 30%.

51

  • 1.
  • 2.
    Selectiva simpleLa estructuraalternativa simple si-entonces (en inglés 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 SI.Si la condición es falsa, entonces no hacer nada. El diagrama de sintaxis es el siguiente: Sentencia if_simple ::=  si (<expresión lógica<) inicio <sentencias>fin
  • 3.
    Selectiva simpleLa sintaxisen pseudocódigo: Si (condición) entonces Accionesfin-si En C/C++ : If(condición){ sentencias} En Pascal If(condición) thenbegín sentenciasend
  • 4.
    Selectiva dobleLa estructuraanterior es muy limitada y normalmente se necesitará una 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, tal como se muestra a continuación:   If < condición > then < acción S1 >else < acción S2 >endif
  • 5.
    Selectiva dobleObsérvese queen el pseudocódigo las acciones que dependen de entonces (then) y si_no (else) están indentadas, lo cual aumenta la legibilidad de la estructura y es el medio idóneo para representar los algoritmos. Ejemplo 1:Resolución de una ecuación de primer grado.Solución: Si la ecuación es ax + b = 0, a y b son los datos, las posibles soluciones son: a <> 0 x = -b/aa = 0, b <> 0 entonces “solución imposible”a = 0, b = 0 entonces “solución indeterminada”
  • 6.
    Selectiva dobleEl algoritmocorrespondiente es: algoritmo RESOL1 varreal : a, b, xinicioleer (a,b)si a <> 0 entonces x = -b/aescribir (x)si_nosi b <> o entoncesescribir (“solución imposible”)si_noescribir (“solución indeterminada”)fin_sifin_sifin fin del ejemplo 1.
  • 7.
    Selectiva dobleEjemplo 2.Calcularla media aritmética de una serie de números positivos.Solución: La media aritmética de n números es En el problema se supondrá la entrada de datos a través del teclado hasta que se introduzca el último número, en este caso –99. Para calcular la media aritmética se necesita saber cuántos números se han introducido hasta llegar a –99; para ello se utilizará un contador n que llevará la cuenta del número de datos introducidos.
  • 8.
    Selectiva doblealgoritmo mediainicio s = 0 // inicialización de variables: s y n n = 0datos:leer (x) // el primer número debe ser mayor que cerosi x > 0 entonces n = n + 1 s = s + xir_a (datos)fin_si m = s/n // media de los números positivosescribir (m)fin fin del ejemplo 2
  • 9.
    Selectiva dobleEjemplo 3. Sedesea obtener la nómina semanal (salario neto) de los empleados de una empresa cuyo trabajo se paga por horas y del modo siguiente: Las horas inferiores o iguales a 35 horas (normales) se pagan a una tarifa determinada que se debe introducir a través del teclado, lo mismo que el número de horas y el nombre del trabajador. Las horas superiores a 35 se pagarán como extras a un precio 1.5 horas normales. Los impuestos a deducir a los trabajadores varían en función de su sueldo mensual: Sueldo <= $20,000, libre de impuestosLos siguientes $15,000 al 20%El resto, al 30%.