Está en la página 1de 31

Prof.

Robert Espinoza Dominguez

Estructuras de control secuenciales


y selectivas
Flujo de control de un programa

 La expresión flujo
de control hace
referencia al
orden en el que
se ejecutarán las
instrucciones de
un programa,
desde su comienzo
hasta que finaliza.
Programación estructurada
 La programación estructurada es una forma de
escribir programas de computadora de forma clara,
utilizando únicamente tres estructuras: secuencia,
selección e iteración; siendo innecesario y no
permitiéndose el uso de instrucciones de
transferencia incondicional (por ejemplo: Go to).
 El teorema del programa estructurado, de Böhm-
Jacopini, demuestra que todo programa puede
escribirse utilizando únicamente las tres
instrucciones de control siguientes:
 Secuencia
 Instrucción condicional.
 Iteración (bucle de instrucciones) con la
condición al principio
Programación estructurada

 Solamente con estas tres estructuras o “patrones


lógicos” se pueden escribir todos los programas y
aplicaciones posibles. Si bien los lenguajes de
programación tienen un mayor repertorio de
estructuras de control, éstas pueden ser construidas
mediante las tres básicas.
Programación estructurada

 Hoy en día las aplicaciones informáticas son mucho


más ambiciosas que las necesidades de aquellos
años, por lo que se desarrollaron nuevas técnicas,
tales como la programación orientada a objetos y el
desarrollo de entornos de programación que facilitan
la programación de grandes aplicaciones.
 De todas formas, el paradigma estructurado tiene
vigencia en muchos ámbitos de desarrollo de
programas y constituye una buena forma de
iniciarse en la programación de computadoras.
Estructuras de Control

 Las estructuras de control tienen una finalidad


bastante definida: señalar el orden en que
tienen que sucederse o ejecutarse los pasos
de un algoritmo o instrucciones en un
programa.

 Pueden ser:
 Secuenciales
 Selectivas
 Iterativas
Estructuras secuenciales
Estructuras secuenciales

 Son estructuras que obedecen la linealidad, es decir,


no admiten saltos
 A la ejecución de una instrucción le sigue otra
instrucción y así sucesivamente.
 Mantiene la secuencia de acciones en el orden en
el que aparecen las instrucciones.

acción 1
acción 1
acción 2 acción 2

acción n
acción n
Estructura secuencial

Ejemplo: Inicio

Sumar y multiplicar 2 números.


Leer y, z

Inicio x  y+z
x, y, z, w: reales
Leer y, z;
w  y*z
x  y + z;
w  y * z;
Escribir x, w; Escribir x, w
Fin
Fin
Ejercicios

1. El primer problema es determinar el alcance y el tiempo de


vuelo de un proyectil lanzado con una velocidad inicial v0 y
haciendo un ángulo de q grados con la horizontal.


rad  grados para convertir entre grados y radianes
180

v02 sen 2 máximo alcance de un proyectil, g es la


R aceleración de la gravedad
g
2v sen
2
T 0 tiempo de vuelo
2
Ejercicios

2. Parte del costo de producción de un producto se calcula por


el tiempo de operación de una máquina utilizada. Se
realizan pruebas para determinar este tiempo ingresando
la hora de inicio de y de final de producción en el formato
de horas, minutos y segundos registrados en la máquina. El
costo está diferenciado por hora, minuto y segundo.
Calcular dicho costo.
Por ejemplo, se tienen los siguientes datos de entrada:
Hora Inicio: 14:30:15
Hora final: 16:40:20
Costo por hora: 60 soles
Costo por minuto: 2 soles
Costo por segundo: 0,20 soles
Ejercicios

3. Estando en guerra, se necesita enviar a los aliados la


cantidad de tanques disponibles en un valor encriptado, por lo
que le encarga a usted dicha tarea.
La encriptación se hace mediante el ingreso de 5 valores de 5
dígitos cada uno. Estos valores serán enviados a los aliados
que ya tienen el programa hecho por usted.
Por ejemplo podrían ser estos valores:
Valor 1: 34571
Valor 2: 61254
Valor 3: 75120
Valor 4: 24712
Valor 5: 31652
Ejercicios

Su sistema, ya disponible en los aliados, tomarán los dígitos


según la figura, donde los dígitos de las diagonales se suman
y estos 2 valores se multiplican, el resultado será la cantidad
de tanques disponibles:

Suma de dígitos de primera diagonal: 8


Suma de dígitos de segunda diagonal: 14
Cantidad de tanques disponibles: 112
Otras estructuras

 Algunos programas muy simples pueden escribirse


sólo con este flujo unidireccional. No obstante, la
mayor eficacia y utilidad de cualquier lenguaje de
programación se deriva de la posibilidad de
cambiar el orden de ejecución según la necesidad
de elegir uno de entre varios caminos en función
de ciertas condiciones, o de ejecutar algo repetidas
veces, sin tener que escribir el código para cada
vez.
 Con frecuencia, el programador necesita que el
programa no se comporte sólo de modo
secuencial. Por ejemplo, calcular una función f(x)
para los X > 0.
Otras estructuras

 También puede ocurrir que interese que un grupo


de instrucciones se ejecute repetidamente hasta
que se le indique que se detenga. Por ejemplo,
calcular el promedio de notas para cada uno de los
alumnos de un curso, o realizar algún cálculo con
cada uno de los elementos de un vector.
 Para las dos situaciones planteadas existen dos
soluciones: las sentencias de control selectivas y
las repetitivas o iterativas.
 Éstas permiten que el flujo secuencial del
programa sea modificado. También cumplen con
este objetivo las sentencias denominadas de
invocación o salto.
Estructuras selectivas
Estructuras selectivas

 Las estructuras selectivas permiten seleccionar


uno de entre varios caminos por donde seguirá
la ejecución del programa. Esta selección viene
determinada por la evaluación de una expresión
lógica o condición.
 Pueden ser:
 Simples
 Dobles
 Anidadas
 Múltiples
Estructura selectiva simple

Diagrama de Flujo Pseudocódigo

Si(condición)entonces
sentencias
V Fin Si
Condición

Sentencias
F
En C++

if(condición){
sentencias;
}
Estructura selectiva doble

Pseudocódigo
Diagrama de Flujo Si(condición)entonces
sentencias 1
Sino
sentencias 2
V F Fin Si
condición
En C++
sentencia1 sentencia2
if(condición){
sentencias;
}
else){
sentencias;
}
Estructura selectiva anidada

 La instrucción SI-ENTONCES puede ser utilizada


también en casos de selección de más de dos
alternativas.
 Esto es posible anidando estas instrucciones. Es
decir, una estructura SI-ENTONCES puede
contener a otra, y esta a su vez a otra.
Estructura selectiva anidada
Diagrama de Flujo

F V
cond
F V
cond

F V
cond
Estructura selectiva anidada

Pseudocódigo En C++
if (condición1) {
Si (condición1) entonces if (condición2) {
Si (condición2) entonces bloque1
bloque1 }
Sino else {
bloque2 bloque2
Fin Si }
}
Sino
else {
Si (condición3) entonces
if (condición3) {
bloque3
bloque3
Sino }
bloque4 else {
Fin Si bloque4
Fin Si }
}
Estructura selectiva anidada

Ejemplo:
Inicio
edadJuan  20
edadJose  18
Si (edadJuan < edadJose) entonces
Escribir "Juan es mas joven que Jose"
Sino
Si (edadJuan > edadJose)
Escribir "Juan es mayor que Jose"
Sino
Escribir "Juan tiene la misma edad que Jose"
Fin Si
Fin Si
Fin Si
Estructura selectiva anidada

Ejemplo:
 Un sensor toma (lee) la temperatura ambiente y de
acuerdo al rango en que se encuentre, debe emitir un
mensaje. La escala es la siguiente:
 Mayor que 100 “Temperatura muy alta – Mal
funcionamiento”
 Entre 91 y 100 “Rango normal”
 Entre 51 y 90 “Bajo el rango normal”
 Menor que 50 “Muy frío – Apague el equipo”
Estructura selectiva anidada

Solución:
INICIO
Leer temperatura
Si temperatura > 100 entonces
Escribir “Temperatura muy alta – Mal funcionamiento”
Sino
Si temperatura > 90 entonces
Escribir “Rango normal”
Sino
Si temperatura > 50 entonces
Escribir “Bajo el rango normal”
Sino
Escribir “Muy frío – Apague equipo”
Fin Si
Fin Si
Fin Si
FIN
Estructura selectiva múltiple

 Cuando en una condición existen diversas


posibilidades nos vemos obligados a utilizar
estructuras selectivas anidadas, lo que complica la
realización y depuración del código.
 Para facilitar esta situación se tiene la estructura
selectiva múltiple que permite definir un número
ilimitado de ramas basadas en una misma condición.
 En otras palabras la condición puede tomar más de
dos valores y por cada valor que cumpla realizará
una acción
Estructura selectiva múltiple

Diagrama de Flujo

cond

Caso1 Caso2 CasoN



Estructura selectiva múltiple

Pseudocódigo

Según (condición) Hacer


Caso1: Acción1
[salir]
Caso2: Acción2
[salir]
.......................
CasoN: AcciónN
[salir]
De otro modo:
Acción por defecto
Fin Según
Estructura selectiva múltiple (switch)

En C++

switch (condición) {
case caso1: acción1;
[break;]
case caso2: acción2;
[break;]
....................
case casoP: acciónP;
[break;]
default: acciónN;
};
Estructura selectiva múltiple (switch)

 La condición puede ser una expresión, siendo ésta una


fórmula o una variable.
 Las sentencias de cada case se ejecutan
secuencialmente incluyendo las de los otros casos, a
menos que se use la sentencia break que es opcional.
 En la condicional sólo se permite char, int, byte, short.
 Omitir la sentencia break trae como consecuencia,
ejecutar el siguiente case.
Estructura selectiva múltiple (switch)

Ejemplo
 Determinar el nuevo sueldo de un empleado si se

conoce de entrada el sueldo inicial y la categoría.


 El sueldo neto se obtiene mediante una tabla de
categorías que determina el aumento.
 Mostrar la categoría, el sueldo normal y el sueldo neto.

Categoría Incremento
1 15%
2 10%
3 8%
4 7%

También podría gustarte