Tema 3 ! Estructuras de Datos Estructuras Simples, Doble, Anidada y Múltiple • En este tema veremos las sentencias selectivas: • IF (Si) • IF - Then (Si - Entonces) • IF - Then - Else ( Si - Entonces - Sino) • Switch (Según) • Una estructura selectiva es aquella en la que una acción (Instrucción) sigue a otra en secuencia. • Las estructuras selectivas se utilizan para tomar decisiones lógicas; es por ello que también son llamadas estructuras de decisión o alternativas. • En estas se evalúa una condición y en función del resultado se realiza una opción o otra. • Las estructuras selectivas pueden ser Simples, Dobles, Múltiples o Anidadas. Estructura Selectiva Simple • La estructura selectiva simple es un If - Then (Si - Entonces), el cual ejecuta una determinada acción cuando la condición resulta ser verdadera o falsa. • Si la condición es verdadera, se ejecuta el Si • Si la condición es falsa, no hace nada • Ejemplo de una estructura selectiva simple: Proceso sin_titulo Si 5 > 4 Entonces Escribir "Hacer una accion"; FinSi FinProceso Estructura Selectiva Doble • Como vimos la estructura simple no nos permite manejar dos opciones ya que solamente funciona cuando la condición es verdadera. • Por ello tenemos una estructura selectiva Doble, también conocida como If - Then - Else (Si - Entonces - Sino) • Si la condición es verdadera se ejecuta la acción S1 y si es falsa la acción S2. Ejemplo Selectiva Doble Proceso sin_titulo Si 5 > 4 Entonces Escribir "Acción S1"; Sino Escribir "Acción S2"; FinSi FinProceso Estructuras de Decisión Anidadas • Una estructura de selección doble implica la selección de una o dos alternativas • Una estructura de selección Si puede contener mas de dos alternativas de solución • Esto es porque puede contener otra condición dentro de otra condición Si <condición> entonces Si <condición> entonces .<Instrucciones> .<Instrucciones> FinSi Sino Si <condición> entonces .<Instrucciones> .<Instrucciones> Sino .<Instrucciones> .<Instrucciones> FinSi FinSi • Por lo tanto una estructura selectiva múltiple constará de una serie de estructuras Si anidadas, esto es una condición dentro de otra. • De tal forma que aparenta una escalera. Ejemplo IF Anidado Proceso EjercicioConvierteNum Definir num Como Entero; Escribir "Programa que convierte numeros a texto"; Escribir "Introduce un numero entre 1 y 5"; Leer num; Si num > 0 && num < 6 Entonces Si num == 1 Entonces Escribir "Uno"; FinSi Si num == 2 Entonces Escribir "Dos"; FinSi Si num == 3 Entonces Escribir "Tres"; FinSi Si num == 4 Entonces Escribir "Cuatro"; FinSi Si num == 5 Entonces Escribir "Cinco"; FinSi Sino Escribir "Numero fuera del rango"; FinSi FinProceso Ejercicio Opcional • Si la ecuación es A + B = 0 y las posibles soluciones son: • a <> 0 x = -b / a • a = 0 b <> 0 entonces “Solución imposible” • a=0b=0 entonces “solución indeterminada” Práctica 2 1.- Algoritmo que lee tres diferentes números enteros (A, B, C) y los imprimirá ordenados, para esto se deberán comparar en parejas sucesivamente para encontrar el elemento mayor.! ! 2.- Algoritmo al que lee la hora dada por el usuario (Hora, Minutos y Segundos) y nos calcule la hora dentro de un segundo. Las variables usadas serán enteros. ! ! 3.- Los empleados de una fábrica trabajan en dos turnos: Matutino y Nocturno. Se desea calcular el sueldo diario de acuerdo a las siguientes condiciones:! a) El sueldo por hora Matutino es de 20 pesos! b) El sueldo por hora Nocturno es de 30 pesos! c) En caso de ser domingo la tarifa se incrementa en 10 pesos en turno Matutino y 15 en turno Vespertino! Estructura Selectiva Multiple SWITCH • Este tipo de estructura permite decidir entre varios caminos posibles, en función del valor que tome una determinada instrucción. • Permite ejecutar opcionalmente varias acciones posibles, dependiendo del valor almacenado en una variable de tipo numérico. • Al ejecutarse, se evalúa el contenido de la variable y se ejecuta la secuencia de instrucciones asociada con dicho valor. • Cada opción está formada por uno o más números separados por comas, dos puntos y una secuencia de instrucciones. • Si una opción incluye varios números, la secuencia de instrucciones se debe ejecutar cuando el valor de la variable es uno de esos números • Otra opción se denomina “De Otro Modo”, la cual se ejecutará sólo si el valor almacenado en la variable no coincide con ninguna de las opciones anteriores. Segun <variable> Hacer <número1>: <instrucciones> <número2>,<número3>: <instrucciones> <...> De Otro Modo: <instrucciones> FinSegun Ejemplo Proceso EjemploSwitch Definir opc como Entero; Escribir "Menu"; Escribir "1.- Opcion 1"; Escribir "2.- Opcion 2"; Escribir "3.- Opcion 2"; Escribir "4.- Opcion 3"; Escribir "Elije una opción: "; Leer opc; Segun opc Hacer 1: Escribir "Hola Mundo"; 2: Escribir "Algoritmica"; 3: Escribir "Universidad Veracruzana"; 4: Escribir "Adios"; De Otro Modo: Escribir "Opcion no valida"; FinSegun FinProceso Práctica 4 • 1.- Convertir números de numero a texto • 2.- Obtener el mes del año mediante el número de mes ejemplo 4 = Abril • 3.- Hacer un menú que se este repitiendo cada vez que se ingrese una opción incorrecta • 4.- El usuario ingresa un numero y el algoritmo debe mostrar su valor en ASCII Estructuras Repetitivas • En este tema veremos las sentencias de: • While (mientras) • Do - While (hacer mientras) • For (desde / para) ¿Qué es un bucle? • Son estructuras que se repiten un número determinado de veces. • También conocidas como iteraciones. While • Estructura repetitiva conocida como “mientras”. • El cuerpo del bucle se repite mientras se cumple una determinada condición. • Se evalúa mediante una expresión booleana. • Cuando esta sea falsa se sale del ciclo, mientras sea verdadera permanece dentro del ciclo. Ejemplo: Sumar 10 números Proceso EjemploWhile1 Definir Suma, x, Numero Como Entero; x <- 0; Suma <- 0; Escribir "Programa que suma 10 números"; Mientras x < 10 Hacer Escribir "Introduce un número ", x, ": "; Leer Numero; Suma <- Suma + Numero; x <- x + 1; FinMientras Escribir "El resultado es = ", Suma; FinProceso Do - While • El do - While es un método muy parecido al While, con la diferencia de que este funciona al menos una vez. • En PSeInt se conoce como un “repetir” • Ejecuta una secuencia de instrucciones hasta que la condición sea verdadera. Ejemplo: Selecionar una opción Proceso EjemploDoWhile Definir opc Como Entero; opc <- 0; Repetir Escribir "Elige una opción:"; Escribir "1.- Continuar"; Escribir "2.- Salir"; Leer opc; Hasta Que opc == 2 FinProceso For • La instrucción For ejecuta una secuencia de instrucciones un número determinado de veces. • Es una de las estructuras más utilizadas. • su lógica es: • For ( valor inicial ; condición ; Incremento) • En el caso de PSeInt su lógica es: • Para variable inicial Hasta final ( Con Paso paso ) Hacer • Si se omite la cláusula Con Paso paso, la variable <variable> se incrementará en 1. Práctica 3 • Ejercicio 1: Mediante el manejo de dos variables enteras (Número y Contador) leer desde pantalla, cuantos números vas a sumar. • Ejercicio 2: Obtener el promedio de 10 números dados desde lectura estándar, utilizando While. • Ejercicio 3: Obtener el promedio de 10 números dados desde lectura estándar, utilizando Do-While. • Ejercicio 4: Obtener el promedio de 10 números dados desde lectura estándar, utilizando For. Continuación Práctica 3 1.- introducir el sueldo bruto de un empleado y calcular su sueldo neto con base a las siguientes condiciones: A) sumar ayuda de renta 1000 B) sumar apoyó por puntualidad 300 C) restar impuesto 16% ! 2.- hacer un menú que permita al usuario seleccionar una de cuatro posibles relaciones básicas (suma, resta, multiplicación, división) ! 3.- mostrar en pantalla los primeros 30 números impares.