tema 3 estructuras de datos - uv.mx · escribir "tres"; finsi si num == 4 ... los...

30
Tema 3 Estructuras de Datos

Upload: dangthu

Post on 23-Sep-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

Tema 3 !

Estructuras de Datos

Page 2: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

Estructuras Simples, Doble, Anidada y Múltiple

Page 3: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

• En este tema veremos las sentencias selectivas:

• IF (Si)

• IF - Then (Si - Entonces)

• IF - Then - Else ( Si - Entonces - Sino)

• Switch (Según)

Page 4: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

• 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.

Page 5: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

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

Page 6: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

• Ejemplo de una estructura selectiva simple:

Proceso sin_titulo

Si 5 > 4 Entonces

Escribir "Hacer una accion";

FinSi

FinProceso

Page 7: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

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.

Page 8: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

Proceso sin_titulo

Si 5 > 4 Entonces

Escribir "Acción S1";

Sino

Escribir "Acción S2";

FinSi

FinProceso

Ejemplo Selectiva Doble

Page 9: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

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

Page 10: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

Si <condición> entonces Si <condición> entonces .<Instrucciones> .<Instrucciones> FinSi Sino Si <condición> entonces .<Instrucciones> .<Instrucciones> Sino .<Instrucciones> .<Instrucciones> FinSi FinSi

Page 11: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

• 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.

Page 12: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

Ejemplo IF AnidadoProceso 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

Page 13: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

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 = 0 b = 0 entonces “solución indeterminada”

Page 14: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

Práctica 21.- 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!

Page 15: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

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.

Page 16: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

• 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.

Page 17: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

Segun <variable> Hacer             <número1>: <instrucciones>             <número2>,<número3>: <instrucciones>             <...>             De Otro Modo: <instrucciones> FinSegun

Page 18: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

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

Page 19: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

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

Page 20: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

Estructuras Repetitivas

Page 21: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

• En este tema veremos las sentencias de:

• While (mientras)

• Do - While (hacer mientras)

• For (desde / para)

Page 22: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

¿Qué es un bucle?

• Son estructuras que se repiten un número determinado de veces.

• También conocidas como iteraciones.

Page 23: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

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.

Page 24: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

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

Page 25: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

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.

Page 26: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

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

Ejemplo: Selecionar una opción

Page 27: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

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)

Page 28: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

• 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.

Page 29: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

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.

Page 30: Tema 3 Estructuras de Datos - uv.mx · Escribir "Tres"; FinSi Si num == 4 ... Los empleados de una fábrica trabajan en dos turnos: ... 1.- introducir el sueldo bruto de un empleado

Continuación Práctica 31.- 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.