Estructuras de Control Selección o Decisión - … de control... · •Las estructuras selectivas...

41
Estructuras de Control Selección o Decisión Corina Flores Villarroel UMSS 1 Corina Flores V. - UMSS

Transcript of Estructuras de Control Selección o Decisión - … de control... · •Las estructuras selectivas...

Estructuras de Control Selección o Decisión

Corina Flores Villarroel

UMSS

1 Corina Flores V. - UMSS

Introducción

• Al ser un algoritmo una secuencia de pasos ordenados, estos deben seguir una trayectoria para su ejecución desde el primer paso hasta el último.

• Esta trayectoria se denomina flujo de control que indica el orden en el cual deben ejecutarse los pasos elementales.

2 Corina Flores V. - UMSS

Introducción

• Para organizar el flujo de control de un algoritmo se utilizan estructuras de control, estas son construcciones algorítmicas lineales, de selección e iteración.

• Las dos últimas alteran el flujo de control lineal del algoritmo.

3 Corina Flores V. - UMSS

Introducción

La forma de tomar decisiones en un algoritmo o programa es a través de las estructuras de control.

4 Corina Flores V. - UMSS

Tipos de estructuras de control

1. Estructura secuencial

2. Estructura de selección

3. Estructura de repetición

5 Corina Flores V. - UMSS

Estructura secuencial

• Está representada por una sucesión de acciones que se ejecutan de arriba hacia abajo sin bifurcaciones, es decir, una acción a continuación de otra

6 Corina Flores V. - UMSS

Estructura selección

• Día a día las personas estamos enfrentados a tomar decisiones, aun sean estas pequeñas, por ejemplo, ¿a qué hora levantarse?, ¿qué desayunar?, ¿qué ropa ponerse?, ¿dónde ir?, etc

7 Corina Flores V. - UMSS

Estructura selección

• Día a día las personas estamos enfrentados a tomar decisiones, aun sean estas pequeñas, por ejemplo, ¿a qué hora levantarse?, ¿qué desayunar?, ¿qué ropa ponerse?, ¿dónde ir?, etc

8 Corina Flores V. - UMSS

Estructura selección

• En un algoritmo representativo de un problema real, es prácticamente imposible que las instrucciones o acciones a realizar sean secuenciales puras. Es necesario tomar decisiones en función de los datos del problema.

9 Corina Flores V. - UMSS

Estructura selección

• Aparece entonces la necesidad de aplicar una estructura de selección, a través de la selección se incorpora, a la especificación del algoritmo, la capacidad de decisión.

• De esta forma será posible seleccionar una de dos alternativas de acción posibles durante la ejecución del algoritmo.

10 Corina Flores V. - UMSS

Estructura selección

• Las estructuras selectivas se clasifican en:

– Selectivas SIMPLES

– Selectivas DOBLES

– Selectivas MULTIPLES

11 Corina Flores V. - UMSS

Estructura selección

• La estructura selectiva si entonces, permite que el flujo de la secuencia siga por un camino específico si se cumple una condición o conjunto de condiciones.

• Si al evaluar la condición (condiciones) el resultado es verdadero, entonces se ejecuta(n) cierta(s) acción(es). Luego se continua con el flujo normal.

12 Corina Flores V. - UMSS

Estructura selección simple

Si (condición)

entonces

acción o acciones a realizar si la condición es

verdadera

FinSi

Representamos la estructura con el siguiente pseudocódigo:

13 Corina Flores V. - UMSS

Estructura selección simple

donde condición es una expresión que al ser evaluada puede tomar solamente uno de los dos valores posibles: verdadero o falso.

14 Corina Flores V. - UMSS

Estructura selección simple

A continuación se presenta gráficamente esta estructura.

CONDICIÓN

Acciones o

instrucciones

true

false

15 Corina Flores V. - UMSS

Estructura selección doble

A continuación se presenta gráficamente esta estructura.

16 Corina Flores V. - UMSS

Estructura selección anidada

A continuación se presenta gráficamente esta estructura.

17 Corina Flores V. - UMSS

Estructura selección

Reglas para la estructura de control si (if) 1. La condicion va entre paréntesis 2. La línea del si (if) y sino (else) no lleva punto y coma 3. El si (if) y el sino (else) se ejecuta para una sola

sentencia, no se precisan de llaves. 4. Si se necesita mas de una sentencia o instrucción se

encierra entre llaves. Esto se llama bloque.

18 Corina Flores V. - UMSS

Estructura selección

Operadores Relacionales Actúan sobre valores enteros, reales y caracteres. Estos operadores retornan un valor booleano:

19 Corina Flores V. - UMSS

Estructura selección

Operadores Relacionales

20 Corina Flores V. - UMSS

Estructura selección

Operadores Lógicos

21 Corina Flores V. - UMSS

Estructura selección anidada

Una forma equivalente de representar una estructura anidada puede ser a través de switch (más información pueden encontrar en el archivo EstructurasControl que ya están publicadas)

22 Corina Flores V. - UMSS

Estructura selección anidada

Estructura de switch()

23 Corina Flores V. - UMSS

Estructura selección

• Problema: Desarrollar un algoritmo que solicite la edad de una persona e indique si es mayor de edad o no

1. Análisis del problema

– Entradas: ??

– Salidas: ??

– Proceso:??

24 Corina Flores V. - UMSS

Estructura selección

• Problema: Desarrollar un algoritmo que solicite la edad de una persona e indique si es mayor de edad o no

1. Análisis del problema

– Entradas: edad

– Salidas: ??

– Proceso:??

25 Corina Flores V. - UMSS

Estructura selección

• Problema: Desarrollar un algoritmo que solicite la edad de una persona e indique si es mayor de edad o no

1. Análisis del problema

– Entradas: edad

– Salidas: impresión de mensaje de texto (anuncio)

– Proceso:??

26 Corina Flores V. - UMSS

Estructura selección

• Problema: Desarrollar un algoritmo que solicite la edad de una persona e indique si es mayor de edad o no

1. Análisis del problema

Proceso? edad impresión de mensaje de texto

27 Corina Flores V. - UMSS

Estructura selección

• Problema: Desarrollar un algoritmo que solicite la edad de una persona e indique si es mayor de edad o no

1. Análisis del problema

– Entradas: edad

– Salidas: impresión de mensaje de texto (anuncio)

– Proceso: SI la edad es mayor o igual que 18

28 Corina Flores V. - UMSS

Estructura selección

• Problema: Desarrollar un algoritmo que solicite la edad de una persona e indique si es mayor de edad o no

1. Análisis del problema – Entradas: edad

– Salidas: impresión de mensaje de texto (anuncio)

– Proceso: SI la edad es mayor o igual que 18

mostrar el mensaje “Usted es mayor de edad”.

29 Corina Flores V. - UMSS

Estructura selección

• Problema: Desarrollar un algoritmo que solicite la edad de una persona e indique si es mayor de edad o no

1. Análisis del problema – Entradas: edad

– Salidas: impresión de mensaje de texto (anuncio)

• Proceso: SI la edad es mayor o igual que 18

mostrar el mensaje “Usted es mayor de edad”.

SI NO

30 Corina Flores V. - UMSS

Estructura selección

• Problema: Desarrollar un algoritmo que solicite la edad de una persona e indique si es mayor de edad o no

1. Análisis del problema – Entradas: edad – Salidas: impresión de mensaje de texto (anuncio) – Proceso: SI la edad es mayor o igual que 18

mostrar el mensaje “Usted es mayor de edad”.

SI NO mostrar el mensaje “Usted es menor de

edad”

31 Corina Flores V. - UMSS

Estructura selección

• Problema: Desarrollar un algoritmo que solicite la edad de una persona e indique si es mayor de edad o no

1. Análisis del problema

Si edad > = 18 Imprimir usted es mayor de edad Sino Imprimir usted es menor de edad

edad impresión de mensaje de texto

32 Corina Flores V. - UMSS

Estructura selección

• Problema: Desarrollar un algoritmo que solicite la edad de una persona e indique si es mayor de edad o no

2. Diseñar el algoritmo y escribirlo en pseudocódigo

Inicio

edad: entero

leer (edad)

???

Fin

33 Corina Flores V. - UMSS

Estructura selección

• Problema: Desarrollar un algoritmo que solicite la edad de una persona e indique si es mayor de edad o no

2. Diseñar el algoritmo y escribirlo en pseudocódigo

Inicio

edad: entero

leer (edad)

???

Fin

Como expresar la condición “la edad es mayor que 18” en pseudocódigo??

34 Corina Flores V. - UMSS

Estructura selección

• Problema: Desarrollar un algoritmo que solicite la edad de una persona e indique si es mayor de edad o no

2. Diseñar el algoritmo y escribirlo en pseudocódigo

Inicio

edad: entero

leer (edad)

SI edad >= 18

Fin

35 Corina Flores V. - UMSS

Estructura selección

• Problema: Desarrollar un algoritmo que solicite la edad

de una persona e indique si es mayor de edad o no

2. Diseñar el algoritmo y escribirlo en pseudocódigo Inicio edad: entero leer (edad) SI edad >= 18 imprimir(“Usted es mayor de edad”) Fin

36 Corina Flores V. - UMSS

Estructura selección

• Problema: Desarrollar un algoritmo que solicite la edad de

una persona e indique si es mayor de edad o no

2. Diseñar el algoritmo y escribirlo en pseudocódigo Inicio edad: entero leer (edad) SI edad >= 18 imprimir(“Usted es mayor de edad”) SINO Fin

37 Corina Flores V. - UMSS

Estructura selección

• Problema: Desarrollar un algoritmo que solicite la edad de una

persona e indique si es mayor de edad o no

2. Diseñar el algoritmo y escribirlo en pseudocódigo Inicio edad: entero leer (edad) SI edad >= 18 imprimir(“Usted es mayor de edad”) SINO imprimir(“Usted es menor de edad”) Fin

38 Corina Flores V. - UMSS

Estructura selección - Ejercicios

• Problema1: ingresar un numero y decir si es par o impar

• Problema2: ingresar una calificación y de acuerdo a su valor imprimir el mensaje correspondiente:

• Nota >= 91 “sobresaliente” • Nota >= 80 “muy bueno” • Nota >= 71 “bueno” • Nota >= 51 “aceptable” • Nota < 40 “deficiente”

• Problema3: Ingresar 2 números y calcular cociente y resto entero. Avisar que no es posible cuando el divisor es cero

39 Corina Flores V. - UMSS

Estructura selección - Ejercicios

• Problema4: Ingresar el año de nacimiento de una persona – Mostrar la edad que tendrá a fin de año (o sea que cumplirá

durante el año lectivo) – Decir si es mayor o menor de edad – Decir si falleció o si aun no ha nacido

• Problema5: ingresar una fecha en formato 26/09/2014 – verificar que esté correctamente escrita y en caso de que no lo

sea mostrar un mensaje y terminar En caso de que la fecha esté escrita correctamente,

• devolver en formato 26 de septiembre de 2014 • Indicar si el año es bisiesto • Indicar la estación en la que se encuentra según el mes

40 Corina Flores V. - UMSS

Estructura selección - Ejercicios

• Problema6: Dadas tres longitudes, determina si forman o no un triángulo (considera, que el lado mayor sea menor que la suma de los otros dos lados). – Si forman un triángulo:

• Determinar de qué tipo es: equilátero, isósceles o escaleno

• Problema7: Teniendo como datos el sueldo y la categoría de un trabajador, calcule el aumento del sueldo correspondiente a partir de la siguiente tabla, imprimiendo la categoría del trabajador y el nuevo sueldo según su incremento.

Categoría Aumento 1 15%

2 10%

3 8% 4 5%

41 Corina Flores V. - UMSS