2. 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
Elaborado por; Ing. Alberto Pérez
3. 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. Elaborado por; Ing. Alberto Pérez
4. EJEMPLO:
Si <condición> entonces
<acción S1>
fin_si
// S1 acción compuesta
si <condición> entonces
<acción S1>
<acción S2>
<acción Sn>
fin_si
Elaborado por; Ing. Alberto Pérez
5. 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
}
Elaborado por; Ing. Alberto Pérez
6. 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 .
Elaborado por; Ing. Alberto Pérez
7. 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=0b=0 entonces ‘solución indeterminada’
Elaborado por; Ing. Alberto Pérez
8. EJEMPLO
Pseudocódigo
si <condición>entonces
<acción S1>
si_no
<acción S2>
fin_si
Elaborado por; Ing. Alberto Pérez
9. 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.
Elaborado por; Ing. Alberto Pérez
10. 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% .
Elaborado por; Ing. Alberto Pérez
11. 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.
Elaborado por; Ing. Alberto Pérez
12. 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.
Elaborado por; Ing. Alberto Pérez
14. 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.
Elaborado por; Ing. Alberto Pérez
15. 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.
Elaborado por; Ing. Alberto Pérez
16. 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.
Elaborado por; Ing. Alberto Pérez
17. ESTRUCTURA DE DECISION ANIDADAS
si < condicion1> entonces
si <condición> entonces
<acciones>
fin_si
fin_si
Elaborado por; Ing. Alberto Pérez
18. 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.
Elaborado por; Ing. Alberto Pérez
19. 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.
Elaborado por; Ing. Alberto Pérez
21. 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.
Elaborado por; Ing. Alberto Pérez
22. 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?
Elaborado por; Ing. Alberto Pérez
23. 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:
Elaborado por; Ing. Alberto Pérez
24. ESTRUCTURAS REPETITIVAS
inicio
//iniciación de variables
repetir
acciones S1, S2 …
salir según condición
acciones Sn, Sn + 1, …
fin_repetir
Elaborado por; Ing. Alberto Pérez
25. ESTRUCTURAS REPETITIVAS
Los enunciados a utilizar
serán:
Iterar (loop)
mientras (while)
hacer-mientras (do-while)
repetir (repeat)
desde (for)
Elaborado por; Ing. Alberto Pérez
26. 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
Elaborado por; Ing. Alberto Pérez
27. 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.
Elaborado por; Ing. Alberto Pérez
28. 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.
Elaborado por; Ing. Alberto Pérez
29. ESTRUCTURAS REPETITIVAS
mientras condición hacer
acción S1
acción S2
acción Sn
fin_mientras
Elaborado por; Ing. Alberto Pérez
30. 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
Elaborado por; Ing. Alberto Pérez
31. 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
Elaborado por; Ing. Alberto Pérez
33. 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.
Elaborado por; Ing. Alberto Pérez
34. 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
Elaborado por; Ing. Alberto Pérez
35. ESTRUCTURAS REPETITIVAS
desde i = 20 hasta 10 hacer
<acciones>
fin_desde
desde i = 20 hasta 10 decremento 1 hacer
<acciones>
fin_desde
Elaborado por; Ing. Alberto Pérez
36. 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.
Elaborado por; Ing. Alberto Pérez
37. 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
Elaborado por; Ing. Alberto Pérez