4. estructuras selectivas

37
ESTRUCTURAS SELECTIVAS Elaborado por; Ing. Alberto Pérez

Transcript of 4. estructuras selectivas

Page 1: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ESTRUCTURAS SELECTIVAS

Page 2: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

FLUJO DE CONTROL En las estructuras selectivas se evalúa una condición y en

función del resultado de la misma se realiza una instrucción u otra.

Las estructuras selectivas o alternativas pueden ser:

-Simples-Dobles -Múltiples

Page 3: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ALTERNATIVA SIMPLE La estructura alternativa simple si-

entonces ejecuta una determinada acción cuando se cumple determinada condición .

Si la condición es verdadera entonces ejecuta la acción S1 (o acciones en caso de ser S1 una acción compuesta y constar de varias acciones).

Si la condición es falsa entonces no hace nada.

Page 4: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

EJEMPLO: Si <condición> entonces

<acción S1> fin_si

// S1 acción compuestasi <condición> entonces

<acción S1> <acción S2>

<acción Sn>

fin_si

Page 5: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ALTERNATIVA SIMPLE Obsérvese que las palabras del pseudocódigo si y fin_si se

alinean verticalmente identando la <acción> o bloque de acciones.

Sintaxis en lenguaje de programación C/C++if (condición ) {

sentencias

}

Page 6: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ALTERNATIVA DOBLE

La estructura anterior es muy limitada y normalmente se necesitara una estructura que permita elegir entre dos opciones o alternativas posibles, en función del cumplimiento o no de una determinada condición .

Page 7: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ALTERNATIVA DOBLE Ejemplo:

Resolución de una ecuación de primer grado. Si la ecuación es ax + b = 0 , a y b son los datos, 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 8: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

EJEMPLO

Pseudocódigo

si <condición>entonces <acción S1>

si_no <acción S2>fin_si

Page 9: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

PRÁCTICA Se desea obtener la nómina semanal del salario neto de lo

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 por teclado al igual que el numero de horas y nombre del trabajador. Las horas superiores a 35 se pagaran como extras a un

precio de 1.5 horas normales.

Page 10: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

PRÁCTICA Los impuestos a deducir a los trabajadores varían en

función a su sueldo mensual. Sueldo < = 20000, libre de impuestos. Los siguientes 15000 al 20% y el resto al 30% .

Page 11: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ALTERNATIVA MÚLTIPLE Con frecuencia en la práctica es necesario que existan mas

de dos elecciones. Este problema, como se vera mas adelante, se podría

resolver por estructuras simples o dobles, anidadas o en cascada; sin embargo, si el numero de alternativas es grande puede plantear serios problemas de escritura del algoritmo y naturalmente de legibilidad.

Page 12: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ALTERNATIVA MÚLTIPLE La estructura de decisión

múltiple evaluara una expresión que podrá tomar n valores distintos.

Según el valor elegido se realizara una de las n acciones, o lo que es igual, el flujo del algoritmo seguirá un determinado camino entre los n posibles.

Page 13: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ALTERNATIVA MÚLTIPLE

según_sea expresión (E) hacer

e1: acción S11

acción S12e2: acción S1a

acción S21 acción S22 acción S2b en: acción S31 acción S32 si_no acción Sx fin_según

Page 14: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

EJEMPLO Se desea diseñar un algoritmo que escriba los nombres de

los días de la semana en función del valor de una variable DIA introducida por el teclado.

Los días de la semana son 7; por consiguiente el rango de valores de DIA será 1. . 7 y en caso de que DIA tome un valor fuera de este rango se deberá producir un mensaje de error advirtiendo la situación anómala.

Page 15: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

PRÁCTICA

Se desea convertir la calificaciones alfabéticas A, B, C, D y E a calificaciones numéricas 4, 5, 6, 7 y 8 respectivamente.

Introducir un número del 1 al 10 y visualizar si el número es par o impar.

Page 16: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ESTRUCTURA DE DECISION ANIDADAS Es posible utilizar la instrucción

si para enseñar estructuras de selección que contengan mas de 3 alternativas.

Una estructura si-entonces puede contener otra estructura si-entonces, y esta estructura puede contener otra y así sucesivamente cualquier número de veces.

Page 17: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ESTRUCTURA DE DECISION ANIDADAS

si < condicion1> entonces

si <condición> entonces

<acciones>

fin_si

fin_si

Page 18: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ESTRUCTURA DE DECISION ANIDADAS Una estructura selectiva múltiple constara de una serie de

estructuras si, unas interiores a otras. Como las estructuras si pueden volverse bastante

complejas para que el algoritmo sea claro, será preciso utilizar identación.

Deberá existir una correspondencia entre las palabras reservadas si y fin_si, por un lado, y entonces y si_no.

Page 19: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

PRÁCTICAS Calcular la hora dentro de un segundo, el usuario

introducirá HH, MM, SS.

Leer dos números y determinar si están en orden

creciente o decreciente.

Page 20: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

FLUJO DE CONTROLESTRUCTURAS REPETITIVAS

Page 21: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ESTRUCTURAS REPETITIVAS Un tipo muy importante de

estructura es el algoritmo necesario para repetir una o varias acciones un numero determinado de veces.

Las estructuras que repiten una secuencia de instrucciones un numero determinado de veces se denominan ciclos.

Page 22: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ESTRUCTURAS REPETITIVAS Se denomina iteración al

hecho de repetir la ejecución de una secuencia de acciones.

Las dos principales preguntas a realizarse en el diseño de un bucle son: ¿Qué contiene el ciclo? ¿Cuántas veces se tiene que

repetir?

Page 23: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ESTRUCTURAS REPETITIVAS Para detener la ejecución

de los ciclos se utiliza una condición de parada.

El pseudocódigo de una estructura repetitiva tendrá este formato:

Page 24: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ESTRUCTURAS REPETITIVAS

inicio

//iniciación de variables

repetir

acciones S1, S2 …

salir según condición

acciones Sn, Sn + 1, …

fin_repetir

Page 25: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ESTRUCTURAS REPETITIVAS Los enunciados a utilizar

serán:

Iterar (loop)

mientras (while)

hacer-mientras (do-while)

repetir (repeat)

desde (for)

Page 26: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ESTRUCTURAS REPETITIVAS algoritmo SUMA 1 inicio K = 0 S = 0 leer (n) mientras K < n hacer K = K+ 1 S = S +K fin_mientras escribir (S) fin

Page 27: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ESTRUCTURAS REPETITIVAS MIENTRAS La estructura repetitiva mientras

es aquella en que el cuerpo del ciclo se repite mientras se cumple determinada condición.

Cuando se ejecuta la instrucción mientras, la primera cosa que sucede es que se evalúa la condición.

Page 28: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ESTRUCTURAS REPETITIVAS

Si se evalúa falsa no se toma ninguna acción y el programa prosigue en la siguiente instrucción después del ciclo.

Si la expresión booleana es verdadera, entonces se ejecuta el cuerpo del ciclo, después de lo cual se evalúa de nuevo la expresión booleana.

Page 29: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ESTRUCTURAS REPETITIVAS

mientras condición hacer

acción S1

acción S2

acción Sn

fin_mientras

Page 30: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ESTRUCTURAS REPETITIVAS Hacer-mientras (do-while) Este ciclo se denomina ciclo

post-test o ciclos controlados por la salida.

Las sentencias de este ciclo se ejecutan al menos una vez, incluso aunque la expresión booleana sea falsa

Page 31: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ESTRUCTURAS REPETITIVAS La elección entre un ciclo

mientras y un ciclo hacer-mientras depende del problema computo a resolver.

En la mayoría de los casos el ciclo mientras será el indicado

Page 32: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ESTRUCTURAS REPETITIVAS

hacer

<acciones>

mientras (<expresión>)

Page 33: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ESTRUCTURAS REPETITIVAS Estructura desde/para (for) En muchas ocasiones se conoce de antemano el número

de veces que se desean ejecutar las acciones de un ciclo. En estos casos se debe usar la estructura desde. Ejecuta las acciones del cuerpo un número especificado de

veces y de modo automático controla el número de iteraciones.

Page 34: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ESTRUCTURAS REPETITIVAS

desde v = vi hasta vf [incremento incr] hacer

<acciones>

fin_desde Si se omite el incremento el default es que aumente en 1

Page 35: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ESTRUCTURAS REPETITIVAS

desde i = 20 hasta 10 hacer

<acciones>

fin_desde

desde i = 20 hasta 10 decremento 1 hacer

<acciones>

fin_desde

Page 36: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

ESTRUCTURAS REPETITIVAS ESTRUCTURAS ANIDADAS

De igual forma que se pueden anidar estructuras de selección, es posible insertar un ciclo dentro de otro.

Las variables índices o de control toman valores de modo tal que por cada valor de la variable índice del ciclo externo se debe ejecutar totalmente el ciclo interno.

Page 37: 4. estructuras selectivas

Elaborado por; Ing. Alberto Pérez

PRÁCTICAS - CICLOS PRÁCTICA 18 Algoritmo para obtener la tabla de multiplicar completa de

un número dado (ciclo anidado) PRÁCTICA 19 Buscar y escribir la primera vocal leída del teclado PRÁCTICA 20 Escribir un algoritmo que permita escribir en una pantalla la

frase ¿Desea continuar? S / N hasta que la respuesta sea S o N