51
Transcript of 51
![Page 1: 51](https://reader031.fdocumento.com/reader031/viewer/2022013101/55873c1ed8b42a80098b4584/html5/thumbnails/1.jpg)
ESTRUCTURAS SELECTIVAS5.1 ESTRUCTURAS SELECTIVAS
![Page 2: 51](https://reader031.fdocumento.com/reader031/viewer/2022013101/55873c1ed8b42a80098b4584/html5/thumbnails/2.jpg)
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
![Page 3: 51](https://reader031.fdocumento.com/reader031/viewer/2022013101/55873c1ed8b42a80098b4584/html5/thumbnails/3.jpg)
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
![Page 4: 51](https://reader031.fdocumento.com/reader031/viewer/2022013101/55873c1ed8b42a80098b4584/html5/thumbnails/4.jpg)
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
![Page 5: 51](https://reader031.fdocumento.com/reader031/viewer/2022013101/55873c1ed8b42a80098b4584/html5/thumbnails/5.jpg)
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”
![Page 6: 51](https://reader031.fdocumento.com/reader031/viewer/2022013101/55873c1ed8b42a80098b4584/html5/thumbnails/6.jpg)
Selectiva dobleEl algoritmo correspondiente es: algoritmo RESOL1 var real : a, b, xinicio leer (a,b) si a <> 0 entonces x = -b/a escribir (x) si_no si b <> o entonces escribir (“solución imposible”) si_no escribir (“solución indeterminada”) fin_si fin_sifin fin del ejemplo 1.
![Page 7: 51](https://reader031.fdocumento.com/reader031/viewer/2022013101/55873c1ed8b42a80098b4584/html5/thumbnails/7.jpg)
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.
n
xxxx n...321
![Page 8: 51](https://reader031.fdocumento.com/reader031/viewer/2022013101/55873c1ed8b42a80098b4584/html5/thumbnails/8.jpg)
Selectiva dobleTabla de variables
s (suma): real
n (contador de números): entero
m (media) : realalgoritmo mediainicio s = 0 // inicialización de variables: s y n n = 0datos: leer (x) // el primer número debe ser mayor que cero si x > 0 entonces n = n + 1 s = s + x ir_a (datos) fin_si m = s/n // media de los números positivos escribir (m)fin fin del ejemplo 2
![Page 9: 51](https://reader031.fdocumento.com/reader031/viewer/2022013101/55873c1ed8b42a80098b4584/html5/thumbnails/9.jpg)
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%.