Estructuras de Selección (Anidadas)galvez.milibreta.com.mx/UAS/Algoritmia/8... · Estructuras de...

26
12/12/2018 1 Facultad de Informática Culiacán Estructuras de Selección (Anidadas) Instructores: MC. Gerardo Gálvez Gámez Octubre de 2018 UNIVERSIDAD AUTÓNOMA DE SINALOA Estructuras de selección • Algoritmia • FIUAS Competencia del Tema El alumno: Conocerá la semántica de la estructura algorítmica de selección anidada como componentes en soluciones algorítmicas. Aplicará la estructura en el desarrollo de algoritmos más complejos.

Transcript of Estructuras de Selección (Anidadas)galvez.milibreta.com.mx/UAS/Algoritmia/8... · Estructuras de...

12/12/2018

1

Facultad de Informática Culiacán

Estructuras de Selección (Anidadas)

Instructores: MC. Gerardo Gálvez Gámez

Octubre de 2018

UNIVERSIDAD AUTÓNOMA DE SINALOA

Estructuras de selección • Algoritmia • FIUAS

Competencia del Tema

El alumno:

• Conocerá la semántica de la estructuraalgorítmica de selección anidada comocomponentes en soluciones algorítmicas.

• Aplicará la estructura en el desarrollo dealgoritmos más complejos.

12/12/2018

2

Estructuras de selección • Algoritmia • FIUAS

Contenido

• Estructuras de Selección (condicionales)

▫ Anidadas

▫ Ejemplos

▫ Ejercicios extra clase

Estructuras de selección • Algoritmia • FIUAS

Estructura de Selección ANIDADA

Permiten elegir entre doso más opciones oalternativas posibles, enfunción del cumplimientoo no de las ExpresionesBooleanas evaluadas.

Expresión Booleana 1

Instrucciones fuera de condicionales

NoInstrucciones 1

Si

Expresión Booleana 2

Instrucciones 2

Si

Expresión Booleana 3

Instrucciones 3

Si

Instrucciones 4 (Default)

No

No

12/12/2018

3

Estructuras de selección • Algoritmia • FIUAS

Estructura de Selección Anidada

SI expresión-booleana1 ENTONCES

Instrucciones1 (acciones a realizar) caso true

SI_NO

SI expresión-booleana2 ENTONCESInstrucciones2 (acciones a realizar) caso true

SI_NOSI expresión-booleana3 ENTONCES

Instrucciones3 (acciones a realizar) caso trueSI_NO

Instrucciones (acciones a realizar) caso DefaultFIN_SI

FIN_SI

FIN_SI

Sintaxis: Pseudocódigo

Estructuras de selección • Algoritmia • FIUAS

El alumno realizará el análisis para la definición del siguiente

problema:

12/12/2018

4

Estructuras de selección • Algoritmia • FIUAS

Problema 1

Elabore un pseudocódigo (incluiranálisis y verificación) que:

▫ Solicite al usuario la lectura de 1número entero, e imprima enpantalla, un mensaje que indique, siel número es:

Positivo,

Negativo o

Nulo.

Estructuras de selección • Algoritmia • FIUAS

Procedimientos para

solucionar problemas

COMPRENDER EL PROBLEMA.

Leer el problema varias veces

¿Qué datos me dan en el enunciado del problema?

¿Qué datos requiero aparte de los que me da el enunciado del problema?

¿Qué debo lograr?

¿Cuál es la incógnita del problema?

¿Cuáles son las restricciones del problema?

Organizar la información, si es necesario.

12/12/2018

5

Estructuras de selección • Algoritmia • FIUAS

Alto, pregúntate:

• ¿Mis conocimientos actuales me permitenresolver este problema?

• Respuesta:

▫ : Plantear una estrategia para obtener losconocimientos requeridos.

▫ : Continuar con la siguiente etapa de lasolución del problema.

Estructuras de selección • Algoritmia • FIUAS

Investigar Herramientas

•Cálculo de:

•Descuento

•Resta

•Otros

12/12/2018

6

Estructuras de selección • Algoritmia • FIUAS

Contenido del Tema

▫ Definición del Problema.

▫ Análisis del problema.

▫ Construcción del Algoritmo.

▫ Verificación (Prueba y Depuración).

Estructuras de selección • Algoritmia • FIUAS

Análisis del problema

1. Información de Salida▫ TipoNumero

2. Datos Conocidos1.Ninguno en este problema

3. Datos no Conocidos1.Numero

4.Restricciones▫ No se debe solicitar al usuario el tipo de número.

▫ El número es entero.

12/12/2018

7

Estructuras de selección • Algoritmia • FIUAS

Proceso (Idea)

• Paso#1:Asignar a TipoNumero el valor “Positivo”, sí el valordel número es mayor a Cero

▫ TipoNumero=“Positivo”

• Paso #2: Asignar a TipoNumero el valor “Negativo”, sí el valordel número es menor a Cero.

▫ TipoNumero=“Negativo”

• Paso #3: Asignar a TipoNumero el valor “Nulo” , sí el valor delnúmero es igual a Cero..

▫ TipoNumero=“Nulo”

Escoger y decidir las operaciones a efectuar.

Estructuras de selección • Algoritmia • FIUAS

Contenido del Tema

▫ Definición del Problema.

▫ Análisis del problema.

▫ Construcción del Algoritmo.

▫ Verificación (Prueba y Depuración).

12/12/2018

8

Estructuras de selección • Algoritmia • FIUAS

Construcción del Algoritmo (Pseudocódigo)

Objetivo: Imprimir en pantalla, si un número dado por elusuario es: positivo, negativo o nulo.

Programador: MC. Gálvez Gámez Gerardo

Fecha: __/Octubre/2016

INICIO

//Definición de Variables y ConstantesCADENA TipoNumero

ENTERO Numero

//Lectura de Datos no ConocidosIMPRIMIR “Proporcione el valor para número:”

LEER Numero

Estructuras de selección • Algoritmia • FIUAS

Construcción del Algoritmo (Pseudocódigo)

//Determinar el tipo de número

SI Numero > 0 ENTONCES

TipoNumero = “Positivo”

FIN_SI

SI Numero < 0 ENTONCES

TipoNumero = “Negativo”

FIN_SI

SI Numero==0 ENTONCES

TipoNumero = “Nulo”

FIN_SI

//Imprimir como resultado el tipo de número

IMPRIMIR “El Número ”, Numero, “ es: ”, TipoNumero

FIN

12/12/2018

9

Estructuras de selección • Algoritmia • FIUAS

Actividad: (Plan de Prueba)

Número Resultado Esperado Verificación

4 “Positivo” √

-5 “Negativo” √

0 “Nulo” √

Estructuras de selección • Algoritmia • FIUAS

Pantalla de la PC

Actividad: Verificación

Estructura de 32 bits

12/12/2018

10

Estructuras de selección • Algoritmia • FIUAS

Segunda Idea

Estructuras de selección • Algoritmia • FIUAS

Proceso (Idea 2)

• Paso#1:Asignar a TipoNumero el valor “Positivo”, sí el valordel número es mayor a Cero

▫ TipoNumero=“Positivo”

• Paso #2: Sí la primer condición es falsa, asignar aTipoNumero el valor “Negativo”, sí el valor del número esmenor a Cero.

▫ TipoNumero=“Negativo”

• Paso #3: Sí las condiciones anteriores son falsas, asignar aTipoNumero el valor “Nulo”.

▫ TipoNumero=“Nulo”

Escoger y decidir las operaciones a efectuar.

12/12/2018

11

Estructuras de selección • Algoritmia • FIUAS

Construcción del Algoritmo (Pseudocódigo)

Objetivo: Imprimir en pantalla, si un número dado por elusuario es: positivo, negativo o nulo.

Programador: MC. Gálvez Gámez Gerardo

Fecha: __/Octubre/2016

INICIO

//Definición de Variables y ConstantesCADENA TipoNumero

ENTERO Numero

//Lectura de Datos no ConocidosIMPRIMIR “Proporcione el valor para número:”

LEER Numero

Estructuras de selección • Algoritmia • FIUAS

Construcción del Algoritmo (Pseudocódigo)

//Determinar el tipo de número

SI Numero > 0 ENTONCES

TipoNumero = “Positivo”

SI_NO

SI Numero < 0 ENTONCES

TipoNumero = “Negativo”

SI_NO

TipoNumero = “Nulo”

FIN_SI

FIN_SI

//Imprimir como resultado el tipo de número

IMPRIMIR “El Número ”, Numero, “ es: ”, TipoNumero

FIN

12/12/2018

12

Estructuras de selección • Algoritmia • FIUAS

El alumno realizará el análisis para la definición del siguiente

problema:

Estructuras de selección • Algoritmia • FIUAS

Problema 2

Elabore un pseudocódigo (incluiranálisis y verificación) que:

▫ Solicite al usuario el valor para tres númerosenteros y determine e imprima en pantallaquien es mayor. Suponga que los valores de losnúmeros son diferentes.

▫ Ejemplo: Plan de pruebaEntrada Salida

Numero1=10Numero2=15Numero3=12

El mayor es 15

Numero1=25Numero2=16Numero3=10

El mayor es 25

Numero1=2Numero2=16Numero3=30

El mayor es 30

12/12/2018

13

Estructuras de selección • Algoritmia • FIUAS

Problema 3

Elabore un pseudocódigo (incluiranálisis y verificación) que:

▫ Solicite al usuario la edad de una persona ydetermine si es Bebe, Niño, Adolescente, Adultoo Viejo según lo siguiente:

Años Clasificado

0 – 4 Es un Bebe

5 – 9 Es un Niño

10 – 19 Es un Adolescente

20 – 44 Es un Adulto

45 en adelante Es un Viejo

Estructuras de selección • Algoritmia • FIUAS

Sintaxis: Pseudocódigo

12/12/2018

14

Estructuras de selección • Algoritmia • FIUAS

Estructura de Selección Anidada

SI expresión-booleana1 ENTONCES

[ Instrucciones]SI expresión-booleana2 ENTONCES

InstruccionesSI_NO

Instrucciones

FIN_SI

[ Instrucciones]SI_NO

SI expresión-booleana ENTONCESInstrucciones

SI_NOSI expresión-booleana ENTONCES

InstruccionesSI_NO

InstruccionesFIN_SI

FIN_SI

FIN_SI

Estructuras de selección • Algoritmia • FIUAS

Problema: Determinar por medio de un mensaje, el mayor de 3 números dados, considerando que los tres números son diferentes.

12/12/2018

15

Estructuras de selección • Algoritmia • FIUAS

Verificar el Proceso

//Determinar el número mayorSI Numero1 > Numero2 ENTONCES

SI Numero1 > Numero3 ENTONCES

NumeroMayor = “El primer número es Mayor”

SI_NO

NumeroMayor = “El tercer número es Mayor”

FIN_SI

SI_NO

SI Numero1 > Numero3 ENTONCES

NumeroMayor = “El primer número es Mayor”

SI_NO

NumeroMayor = “El Segundo Número es Mayor”

FIN_SI

FIN_SI

Entrada Salida

Numero1=10Numero2=15Numero3=12

El segundo número es

Mayor

Numero1=25Numero2=16Numero3=10

El primero número es

Mayor

Numero1=2Numero2=16Numero3=30

El Tercer número es

Mayor

Plan de Prueba

Estructuras de selección • Algoritmia • FIUAS

Actividad de Clase

▫ Dado el siguiente proceso y plan deprueba, determine su objetivo.

12/12/2018

16

Estructuras de selección • Algoritmia • FIUAS

Verificar el Proceso://Determinar el número mayor

SI Numero1 > Numero2 ENTONCES

SI Numero1 > Numero3 ENTONCES

NumeroMayor = “Número 1 es Mayor”

SI_NO

SI Numero3 > Numero1 ENTONCES

NumeroMayor = “Número 3 es Mayor”

SI_NO

NumeroMayor = “Existe Iguales”

FIN_SI

FIN_SI

SI_NO

SI Numero1 > Numero3 ENTONCES

NumeroMayor = “Número 1 es Mayor”

SI_NO

SI Numero3 > Numero1 ENTONCES

NumeroMayor = “Número 3 es Mayor”

SI_NO

NumeroMayor = “Existe Igualdades”

FIN_SI

FIN_SI

FIN_SI

Entrada Salida

Numero1=10Numero2=15Numero3=12

Numero1=25Numero2=16Numero3=10

Numero1=2Numero2=16Numero3=30

Numero1=30Numero2=30Numero3=30

Numero1=12Numero2=16Numero3=16

Estructuras de selección • Algoritmia • FIUAS

Resolver los siguientes problemas propuestos y debatirlos en

clase.

12/12/2018

17

Estructuras de selección • Algoritmia • FIUAS

Problema 4

Elabore un pseudocódigo (incluiranálisis y verificación) que:

▫ Solicite al usuario la lectura de 2 númerosenteros, e imprima en pantalla, un mensaje queindique el número mayor.

▫ Considere que si los valores de los números soniguales, el mensaje deberá ser : “son iguales”.

Numero1 Numero2 Resultado Esperado

10 4 “Número 1 es Mayor”

-5 15 “Número 2 es Mayor”

8 8 “Son Iguales”

Estructuras de selección • Algoritmia • FIUAS

Análisis del problema

1. Información de Salida▫ NumeroMayor

2. Datos Conocidos1.Ninguno en este problema

3. Datos no Conocidos1.Numero1

2.Numero2

4.Restricciones▫ No se debe solicitar al usuario quien de los dos números es mayor.

▫ El número es entero.

▫ Se debe imprimir un mensaje y no los valores de los números.

12/12/2018

18

Estructuras de selección • Algoritmia • FIUAS

Proceso

• Paso#1:Asignar a NumeroMayor el valor “Número 1 es Mayor”, sí elvalor del número1 es mayor al valor del numero2

NumeroMayor=“Número 1 es Mayor”

• Paso #2: SI la primer condición es falsa, asignar a NumeroMayor elvalor “Número 2 es Mayor”, sí el valor del número1 es menor a valorde numero2.

NumeroMayor=“Número 2 es Mayor”

• Paso #3: SI las condiciones anteriores son falsas, asignar aNumeroMayor el valor “Son iguales”.

NumeroMayor=“Son iguales”

Escoger y decidir las operaciones a efectuar.

Estructuras de selección • Algoritmia • FIUAS

Construcción del Algoritmo (Pseudocódigo)

Objetivo: Imprimir en pantalla, si dado los valores de dos númerosquien es mayor.

Programador: MC. Gálvez Gámez Gerardo

Fecha: __/octubre/2016

INICIO

//Definición de Constantes y VariablesCADENA NumeroMayor

ENTERO Numero1, Numero2

//Lectura de Datos no ConocidosIMPRIMIR “Proporcione el valor para número 1:”

LEER Numero1

IMPRIMIR “Proporcione el valor para número 2:”

LEER Numero2

12/12/2018

19

Estructuras de selección • Algoritmia • FIUAS

Construcción del Algoritmo (Pseudocódigo)

//Determinar el tipo de número

SI Numero1 > Numero2 ENTONCES

NumeroMayor = “Número 1 es Mayor”

SI_NO

SI Numero1 < Numero2 ENTONCES

NumeroMayor = “Número 2 es Mayor”

SI_NO

NumeroMayor = “Son iguales”

FIN_SI

FIN_SI

//Imprimir el resultado

IMPRIMIR NumeroMayor

FIN

Estructuras de selección • Algoritmia • FIUAS

Actividad:

Verificación (Plan de Prueba)

Numero1 Numero2 Resultado Esperado Verificación

10 4 “Número 1 es Mayor” √

-5 15 “Número 2 es Mayor” √

8 8 “Son Iguales” √

12/12/2018

20

Estructuras de selección • Algoritmia • FIUAS

Problema 5

• Elabore un pseudocódigo (incluir análisis yverificación) que:

▫ Lea como dato de entrada un dígito (0-9) y determinee imprima en pantalla su nombre alfabético.

▫ Ejemplo: Sí el dígito, como dato de entrada es 1, sunombre alfabético será “uno”, si el digito es 5, sunombre alfabético es “cinco”, etc.

▫ Nota: Considere que el usuario puede proporcionar un valorque no sea dígito, por lo que en este caso deberá de enviar unmensaje apropiado, ejemplo: “El valor ingresado no es undígito”.

Estructuras de selección • Algoritmia • FIUAS

Análisis del problema

1. Información de Salida▫ NombreAlfabetico

2. Datos Conocidos1.Ninguno en este problema

3. Datos no Conocidos1.Digito

4.Restricciones▫ No se debe solicitar al usuario el nombre alfabético del dígito.

▫ Se debe imprimir un mensaje y no el valor del número.

▫ Si se ingresa un valor que no sea dígito se enviara un mensaje indicando: “Error, el valor ingresado no es Dígito”

12/12/2018

21

Estructuras de selección • Algoritmia • FIUAS

Proceso

• Paso#1:Asignar a NombreAlfabetico el valor “Cero”, sí el valor deldigito es igual a 0.

▫ NombreAlfabetico=“Cero”

• Paso #2: SI la condición anterior es falsa, Asignar a NombreAlfabeticoel valor “Uno”, sí el valor del digito es igual a 1.

▫ NombreAlfabetico=“Uno”

• Paso #3: SI la condición anterior es falsa, Asignar a NombreAlfabeticoel valor “Dos”, sí el valor del digito es igual a 2.

▫ NombreAlfabetico=“Dos”

• Paso #4: SI la condición anterior es falsa, Asignar a NombreAlfabeticoel valor “Tres”, sí el valor del digito es igual a 3.

▫ NombreAlfabetico=“Tres”

• Paso #5: SI la condición anterior es falsa, Asignar a NombreAlfabeticoel valor “Cuatro”, sí el valor del digito es igual a 4.

▫ NombreAlfabetico=“Cuatro”

Escoger y decidir las operaciones a efectuar.

Estructuras de selección • Algoritmia • FIUAS

• Paso#6:Si la condición anterior es falsa, Asignar a NombreAlfabetico el valor“Cinco”, sí el valor del digito es igual a 5.

▫ NombreAlfabetico=“Cinco”

• Paso #7: Si la condición anterior es falsa, Asignar a NombreAlfabetico el valor“Seis”, sí el valor del digito es igual a 6.

▫ NombreAlfabetico=“Seis”

• Paso #8: Si la condición anterior es falsa, Asignar a NombreAlfabetico el valor“Siete”, sí el valor del digito es igual a 7.

▫ NombreAlfabetico=“Siete”

• Paso #9: Si la condición anterior es falsa, Asignar a NombreAlfabetico el valor“Ocho”, sí el valor del digito es igual a 8.

▫ NombreAlfabetico=“Ocho”

• Paso #10: Si la condición anterior es falsa, Asignar a NombreAlfabetico el valor“Nueve”, sí el valor del digito es igual a 9.

▫ NombreAlfabetico=“Nueve”

• Paso #11: Si las condiciones anteriores son falsas, asignar a NombreAlfabetico elvalor “Error, el Número no es Dígito”.

NombreAlfabetico = “Error, el valor ingresado no es Dígito”

12/12/2018

22

Estructuras de selección • Algoritmia • FIUAS

Construcción del Algoritmo (Pseudocódigo)

Objetivo: Imprimir en pantalla, el nombre alfabético de undígito ingresado.

Programador: MC. Gálvez Gámez Gerardo

Fecha: __/octubre/2016

INICIO

//Definición de Constantes y VariablesCADENA NombreAlfabetico

ENTERO Digito

//Lectura de Datos no ConocidosIMPRIMIR “Ingrese el valor del dígito a evaluar:”

LEER Digito

Estructuras de selección • Algoritmia • FIUAS

Continuación ….

//Determinar el tipo de número

SI Digito == 0 ENTONCES

NombreAlfabetico = “Cero”

SI_NO

SI Digito == 1 ENTONCES

NombreAlfabetico = “Uno”

SI_NO

SI Digito == 2 ENTONCES

NombreAlfabetico = “Dos”

SI_NO

SI Digito == 3 ENTONCES

NombreAlfabetico = “Tres”

SI_NO

SI Digito == 4 ENTONCES

NombreAlfabetico = “Cuatro”

SI_NO

SI Digito == 5 ENTONCES

NombreAlfabetico = “Cinco”

SI_NO

SI Digito == 6 ENTONCES

NombreAlfabetico = “Seis”

SI_NO

12/12/2018

23

Estructuras de selección • Algoritmia • FIUAS

Continuación del pseudocódigo ….

SI Digito == 7 ENTONCES

NombreAlfabetico = “Siete”

SI_NO

SI Digito == 8 ENTONCES

NombreAlfabetico = “Ocho”

SI_NO

SI Digito == 9 ENTONCES

NombreAlfabetico = “Nueve”

SI_NO

NombreAlfabetico= “Error, el Número no es Dígito”

FIN_SI

FIN_SI

FIN_SI

FIN_SI

FIN_SI

FIN_SI

FIN_SI

FIN_SI

FIN_SI

FIN_SI

//Imprimir el resultado

IMPRIMIR “El nombre alfabético de :”, Digito,” Es: ”,NombreAlfabetico

FIN

Estructuras de selección • Algoritmia • FIUAS

Actividad:

Verificación (Plan de Prueba)Número Resultado Esperado Verificación

0 “Cero” √

1 “Uno” √

2 “Dos” √

3 “Tres” √

4 “Cuatro” √

5 “Cinco” √

6 “Seis” √

7 “Siete” √

8 “Ocho” √

9 “Nueve” √

14 “Error, el valor ingresado no es Dígito”

12/12/2018

24

Estructuras de selección • Algoritmia • FIUAS

Problema 6

Elabore un pseudocódigo (incluir análisis yverificación) que: Determine e imprima en pantalla eltotal por incremento y total que debe pagar Ana, por lacompra de una computadora Toshiba.

▫ Se sabe que:

Si el precio de venta es menor a $7,000.00, Ana debe pagar unporcentaje adicional del 5.3%.

Si el precio de venta es de $7,000.00 hasta $10,000.00, Ana debepagar un porcentaje adicional del 15.3%.

Si el precio de venta es mayor a $10,000.00, Ana debe pagar unporcentaje adicional del 16.3%.

Estructuras de selección • Algoritmia • FIUAS

Formar equipos de 5

integrantes, desarrollar y

exponer los siguientes

problemas algorítmicos,

empleando las herramientas

algorítmicas apropiadas.

12/12/2018

25

Estructuras de selección • Algoritmia • FIUAS

Problema 7.1

Elabore un pseudocódigo (incluiranálisis y verificación) que: Permita leerel tipo de empleado(1-3) y su sueldo, paracalcular e imprimir en pantalla, elincremento de sueldo y su nuevo sueldo.

▫ Se sabe que:

Si el tipo de empleado es 1, se le aumenta 5%.

Estructuras de selección • Algoritmia • FIUAS

Problema 7.2

Elabore un pseudocódigo (incluiranálisis y verificación) que: Permita leerel tipo de empleado(1-3) y su sueldo, paracalcular e imprimir en pantalla, elincremento de sueldo y su nuevo sueldo.

▫ Se sabe que:

Si el tipo de empleado es 1, se le aumenta 5%.

Cualquier otro tipo de empleado, se le aumenta 7%.

12/12/2018

26

Estructuras de selección • Algoritmia • FIUAS

Problema 7.3

Elabore un pseudocódigo (incluiranálisis y verificación) que: Permita leerel tipo de empleado (1-3) y su sueldo, paracalcular e imprimir en pantalla, elincremento de sueldo y su nuevo sueldo.

▫ Se sabe que:

Si el tipo de empleado es 1, se le aumenta 5%.

Si el tipo de empleado es 2, se le aumenta 7%.

Si el tipo de empleado es 3, se le aumenta 9%.

Estructuras de selección • Algoritmia • FIUAS

Preguntas

F I N