Está en la página 1de 43

CAPITULO III

ESTRUCTURAS DE CONTROL
Materia : ELT -202

DOCENTE:
Ing. Oscar Galarza L.
CONTENIDO

• Introducción
3.1. Introducción.
Las estructuras secuenciales ejecutadas en orden de como los algoritmos y programas vistos
hasta el momento donde las sentencias u instrucciones se han ejecutado secuencialmente de
forma simple; sin embargo, existen tareas como cálculos o procesos más complejas que no
pueden ser resueltas para obtener un determinado resultado con un esquema sencillo.
Sin embargo, para la resolución de problemas de tipo general se necesita la capacidad de
controlar cuáles son las sentencias que se ejecutan, y en qué momentos.
3.2. Estructuras de control.
La programación estructurada promueve diseñar y codificar con un conjunto de técnicas que
permite controlar las instrucciones, evaluar una expresión, realizar acciones operaciones más
complejas que ejecuta el programa y por consiguiente se reducen los errores.
En MATLAB como en la mayoría de los lenguajes de programación, se tiene las siguientes
estructuras de control:
Secuencial: Es la más sencilla de las estructuras,
simplemente debe ejecutar las acciones de forma
secuencial o lineal.
Condicional o de Selección: La estructura
condicional permite bifurcar el “flujo” del
algoritmo con la evaluación de una expresión
lógica y tomar una decisión para seguir.
Repetición o Iteración: La estructura repetitiva o
iterativa permite, repetir una acción un número de
veces o depender de la evaluación de una
expresión lógica.
3.3. Programación condicionales en MATLAB.
Las estructuras de control condicionales o selección controlan si una sentencia o instrucciones
se ejecutan, y qué no en un programa, en función de una expresión lógica a evaluar, para
seleccionar la ruta que debe tomar y alterar la secuencia o flujo llevando el control de ejecución
del programa.
3.3. Programación condicionales en MATLAB.
Las estructuras condicionales comparan expresiones lógicas formada por una variable o un
valor contra otras variables o valores, para que, en base al resultado de esta comparación, se
siga la secuencia de ejecución dentro del programa.
Estas estructuras de selección (selectivas o condicionales) se clasifican en:

Simple

Doble

Múltiples
Múltiples
3.3.1. Estructura Selectiva Simple en MATLAB.
La estructura selectiva simple ejecuta una determinada acción o acciones cuando se cumple una
determinada condición, es decir, tenemos la opción de realizar una actividad o varias si la
condición es verdadera y si es falso no se realizará ninguna actividad.
La representación gráfica de la estructura selectiva simple en un Diagrama de Flujo es la
siguiente:
Diagrama de Flujo Pseudocódigo Código en MATLAB

SI (condición) entonces
verdadero falso if < condición >
condición acción 1
acción 2 Instrucciones o grupo de
: instrucciones.
acciones
acción N end
Fin/SI
3.3.1. Estructura Selectiva Simple en MATLAB.
Estructura Selectiva Simple, Ejemplo:
A un trabajador se le aplica un aumento del 15% en su salario si este es menor a 400 mil pesos.
Realice un algoritmo y programa en MATLAB que imprima el sueldo del trabajador.
Análisis del problema Algoritmo Código en MATLAB
Entrada
SUE: variable de tipo real
que representa el salario del
trabajador.
Salida
AUM: variable de tipo real;
almacena el aumento del
trabajador.
NSUE: variable de tipo real;
almacena el nuevo sueldo del
trabajador.
Proceso
AUM = SUE·0.15
NSUE = SUE + AUM
3.3.1. Estructura Selectiva Simple en MATLAB.
Estructura Selectiva Simple, Ejercicio propuesto:
Se considera el cálculo del valor en un punto x de una función definida por partes.
Realice un algoritmo y programa en MATLAB que imprima la f(x).

Análisis del problema Algoritmo Código en MATLAB


Entrada

Salida

Proceso
3.3.2. Estructura Selectiva Doble en MATLAB.
La estructura selectiva doble permite elegir entre dos opciones o alternativas, en función del
cumplimiento de una determinada condición, de tal forma que, si se cumple, se ejecutan las
acciones del primer bloque; si no se cumple, se ejecutan las acciones del segundo bloque.
La representación gráfica de una estructura selectiva doble en los métodos para representar a los
algoritmos es el siguiente:

Pseudocódigo Código en MATLAB


Diagrama de Flujo
if < condición >
verdadero falso si (condición) entonces
condición Acciones o Instrucciones
Acciones (A)
sino else
Acciones (A) Acciones (B)
Acciones (B) Acciones o Instrucciones
fin/si
end
3.3.2. Estructura Selectiva Doble en MATLAB.
Estructura Selectiva Doble, Ejemplo:
Realice un algoritmo y programa en MATLAB para calcular las raíces de una ecuación de
segundo grado. Código en MATLAB

Análisis del problema Algoritmo


Entrada
a, b, c
Salida
x1, x2, re, im
Proceso
3.3.2. Estructura Selectiva Doble en MATLAB.
Estructura Selectiva Doble, Ejercicio propuesto:
Realice un algoritmo y programa en MATLAB para calcular el total que una persona debe pagar
en un almacén Mecatrónico. Si compra menos de 5 sensores el precio de cada sensor es de 80bs.
y si compra 5 o más el precio es de 70bs.
Análisis del problema Algoritmo Código en MATLAB
Entrada

Salida

Proceso
3.3.3. Estructura Selectiva Anidado en MATLAB.
Estructura Selectiva Compuestos (Anidadas).
La estructura selectiva anidada llamada también estructura de decisión anidada, viene hacer una
estructura si-entonces que puede contener otra estructura si-entonces, y así sucesivamente dentro
de cada estructura pueden existir diferentes instrucciones o acciones.
La representación gráfica de una estructura selectiva anidada en las tres herramientas de
programación es la siguiente: Pseudocódigo Código en MATLAB
Diagrama de Flujo
si (condición 1) entonces
Acciones 1
sino si (condición 2) entonces
Acciones 2
sino si ...
.
.
.
sino si (condición N) entonces
Acciones N
sino
Acciones por defecto
fin/si
3.3.3. Estructura Selectiva Anidado en MATLAB.
Estructura Selectiva Compuestos (Anidadas): Las dos formas mas conocidas son:
Escalonada

Ramificación
3.3.3. Estructura Selectiva Anidado en MATLAB.
Estructura Selectiva Compuestos (Anidadas), Ejemplo:
Se requiere determinar cuál de tres cantidades diferentes proporcionadas es la mayor. Realizar su
respectivo algoritmo y programa en MATLAB Código en MATLAB
Algoritmo
Análisis del problema
Entrada
A,B,C
Salida
M
Proceso
A >B y A > C
V and V
V
M=A
3.3.3. Estructura Selectiva Anidado en MATLAB.
Estructura Selectiva Compuestos (Anidadas), Ejercicio propuesto :
Un local vende chips electrónicos según la siguiente tabla: Cantidad Precio
Lea el número de chips de una compra y el precio unitario. Menos de 4 Sin descuento
Realice un algoritmo y programa en MATLAB para que muestre 4 o 5 5% de descuento
el valor que debe pagar. Algoritmo Mas de 5 10% de descuento
Análisis del problema
Entrada Código en MATLAB

Salida

Proceso
3.3.4. Estructura Selectiva Múltiple en MATLAB.
Estructura Selectiva Múltiples (Según).
Esta estructura selectiva múltiple se utiliza para seleccionar una de entre múltiples alternativas,
se evalúa una condición o expresión que puede tomar “n” valores distintos, y seguir,
dependiendo del valor que toma una variable conocida como selector o expresión de control.
La representación gráfica de la estructura selectiva múltiple en las tres herramientas de
programación es la siguiente: Código en MATLAB
Pseudocódigo
Diagrama de Flujo
3.3.4. Estructura Selectiva Múltiple en MATLAB.
Estructura Selectiva Múltiples (Según): Código como ejemplos.

mes = input('Ingrese un Mes (1 - 12) : ');


switch mes
case {1 2 3}
disp('VERANO');
case {4 5 6}
x = [12 64 24]; disp('OTOÑO');
plottype = 'pie3'; case {7 8 9}
switch plottype disp('INVIERNO');
case 'bar' case {10 11 12}
bar(x) disp('PRIMAVERA');
title('Bar Graph') otherwise
case {'pie','pie3'} disp(' NO EXISTE ESTACION');
pie3(x) end
title('Pie Chart')
otherwise
disp('Error.')
end
3.3.4. Estructura Selectiva Múltiple en MATLAB.
Estructura Selectiva Múltiples (Según), Ejemplo:
Su empresa implementará una nueva forma de ajustar los sueldos según la experiencia laboral:
Si la experiencia es de 1 año, el sueldo actual aumenta en 10%, si esta es de 2 años el
incremento es del 15% y si es de 3 años el incremento es del 20% De acuerdo a lo anterior,
Realice un algoritmo y programa en MATLAB para que calcule el salario final.
Análisis del problema Algoritmo Código en MATLAB
Entrada
su, exp
Salida
nsu
Proceso
Según la exp
Caso 1 sueldo aumenta en 10%
Caso 2 sueldo aumenta en 15%
Caso 3 sueldo aumenta en 20%
3.3.4. Estructura Selectiva Múltiple en MATLAB.
Estructura Selectiva Múltiples (Según), Ejercicio propuesto :
En la ciudad de Sucre, una agencia de seguros para automóviles asigna costos basados en el
sexo y la edad del conductor. Los varones menores de 25 años pagan los precios más altos, 1000
bs. Los hombres de 25 años o más pagan 700 bs. Las mujeres de menos de 21 años o más pagan
500 bs. Desarrolle un algoritmo y programa en MATLAB que imprima la edad del conductor,
sexo y el pago correspondiente para los clientes de la aseguradora.
Análisis del problema Algoritmo Código en MATLAB
Entrada

Salida

Proceso
3.4. Programación Repetitivas en MATLAB.
En las estructuras secuenciales y de decisión las instrucciones que conforman el algoritmo se
ejecutan una, y sólo una vez, en el mismo orden en que aparecen.
Existen problemas que requieren que un grupo de instrucciones no se aplique sólo a un caso
específico, sino que estas mismas instrucciones se apliquen a muchos otros casos.
Las estructuras repetitivas permiten la ejecución repetida de una lista o secuencia de
instrucciones (también llamada bloque de instrucciones).
El número de veces que el bloque de instrucciones se ejecutará se puede especificar de manera
explícita o a través de una condición que indica cuando se ejecuta de nuevo o cuando no. A cada
ejecución el bloque de instrucciones se le conoce como una iteración.
3.4. Programación Repetitivas en MATLAB.
Las estructuras cíclicas o repetitivas es la estructura de algorítmica que contiene o representa un
bucle o conjunto de instrucciones que se repiten un número finito de veces.
Cada repetición del bucle se llama una iteración.
Todo bucle tiene asociada una condición, que es la que va a determinar si se ejecuta el bucle y
hasta cuándo.
Por Ejemplo: Calcular el promedio de calificaciones de los estudiantes de una universidad.
El grupo de instrucciones que conforman el modelo matemático para la solución de un
determinado proceso dentro del algoritmo y se repita tantas veces como sea necesario.
3.4. Programación Repetitivas en MATLAB.
MATLAB como en la mayoría de los lenguajes de programación, proporciona sentencias
denominadas iterativas que permiten realizar una tarea una y otra vez hasta que se cumpla una
determinada condición, dicha tarea viene definida por un conjunto de sentencias agrupadas en un
bloque.
Las sentencias iterativas son muy básicas en los lenguajes de programación como C++ o Java,
pero muy utilizadas en MATLAB, se utilizan para crear arreglos y las operaciones elemento a
elemento.
Existen dos tipos principales de sentencias de iterativas o repetición:

➢ Mientras que ->> while()


Repetitivas
➢ Para ->> for(…)
3.4.1. Estructura Mientras (while) en MATLAB.
El CICLO MIENTRAS ejecuta un bloque de acciones ‘mientras’ que una condición dada se
cumpla, es decir, cuando la condición es verdadera. La condición es evaluada antes de ejecutar el
bloque de acciones y si la condición no se cumple, el bloque no se ejecuta. De esta manera es
que el número de repeticiones del bloque de acciones sea cero, pues, si la condición de entrada
se evalúa falsa, el bloque no será ejecutado.
La representación gráfica de la estructura iterativa en las tres herramientas de programación es la
siguiente:
Pseudocódigo Diagrama de Flujo

mientras <condición>
falso
acción 1 condición Código en MATLAB
acción 2 verdadero while <expresión lógica>
: acción 1
acción N Acciones A acción 2
bloque de código :
fin/mientras acción N
Acciones B bloque de código
end
3.4.1. Estructura Mientras (while) en MATLAB.
Estructura Repetitiva Mientras (while) Ejemplo: Desarrollar un algoritmo y programa en
MATLAB para determinar cuánto ahorrará una persona en un año, si cada fin de mes deposita
distintas cantidades de dinero; además, se requiere saber cuánto lleva ahorrado cada mes.
Análisis del problema
Entrada Código en MATLAB
Cantidad
Salida
AHORROMES
Proceso

Algoritmo
3.4.1. Estructura Mientras (while) en MATLAB.
Estructura Repetitiva Mientras (while) Ejemplo Propuesto: Desarrollar un algoritmo y
programa en MATLAB para generar N elementos de la sucesión de Fibonacci (0, 1, 1, 2, 3, 5, 8,
13,…) aplicando el modelo matemático siguiente:

Análisis del problema Algoritmo Código en MATLAB


Entrada

Salida

Proceso
3.4.2. Estructura Para (for) en MATLAB.
Estructura Repetitiva para (for).
Es una estructura de ciclo que se usa cuando se sabe el número exacto de veces que se va a
ejecutar el bucle. El bucle lleva asociada una variable denominada índice o contador, se le asigna
un valor inicial y un valor final, y un contador que incrementa o decrementa en cada iteración
del bucle en un valor constante de manera automática.
La representación gráfica de la estructura iterativa en las tres herramientas de programación es la
Pseudocódigo
siguiente:
para <v  vi> hasta <vf> hacer Código en MATLAB
Diagrama de Flujo accion1
accion2 for V=VI:I:VF
VI, VF, I :
accionN Instrucción 1
fin/para Instrucción 2
desde valor inicial Hasta valor Final
Instrucciones accion1
Instrucción 3
accion2 :
: Instrucción N
accionN
fin/desde end
3.4.2. Estructura Para (for) en MATLAB.
Estructura Repetitiva para (for) Ejemplo: Desarrollar un algoritmo y programa en MATLAB
para determinar la sumatoria de la siguiente:
Análisis del problema Algoritmo
Entrada
n Código en MATLAB
Salida
S
Proceso
3.4.2. Estructura Para (for) en MATLAB.
Estructura Repetitiva para (for) Ejemplo Propuesto: Una empresa tiene el registro de las
horas que trabaja diariamente un empleado durante la semana (seis días) y requiere determinar el
total de éstas, así como el sueldo que recibirá por las horas trabajadas. Realice un algoritmo y
programa en MATLAB para determinar el sueldo del empleado.
Análisis del problema Algoritmo Código en MATLAB
Entrada

Salida

Proceso
3.5. Estructuras Repetitivas Anidadas en MATLAB.
Algunos algoritmos requieren bucles anidados, donde un bucle se encuentra dentro de otro
bucle. Los bucles pueden tener cualquier nivel de anidamiento.
En los bucles anidados es importante utilizar variables de control distintas, para no obtener
resultados inesperados.
Y son clasificados de la siguiente forma:
Variables independientes
Los bucles anidados con variables independientes son los bucles
en los que ninguna de las variables de uno de los bucles
interviene ni en la condición de continuación ni en la expresión
Bucles anidados con de paso de los otros bucles.

Variables Dependientes
Los bucles anidados con variables dependientes son los bucles
en los que la variable de uno de los bucles interviene en la
condición de continuación o en la expresión de paso de los otros
bucles.
3.5. Estructuras Repetitivas Anidadas en MATLAB.
Al bucle que se encuentra dentro del otro se le puede denominar bucle interno y el otro bucle
sería el bucle exterior.
La representación gráfica de la estructura selectiva múltiple en las tres herramientas de
programación es la siguiente: Pseudocódigo Código en MATLAB
Diagrama de Flujo para <i  vi> hasta <vf> hacer for I=VI:I:VF
para <j  vi> hasta <vf> hacer for J=VI:J:VF
accion1 Instrucción 1
accion2 Instrucción 2
: Instrucción 3
accionN :
fin/para Instrucción N
fin/para end
end
3.5. Estructuras Repetitivas Anidadas en MATLAB.
Ejemplo Nro. 1:
Realice un algoritmo y programa en MATLAB para producir la siguiente salida en pantalla:
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
Algoritmo Código en MATLAB

Algoritmo CicloAnidado
variables I, k Como Enteros
para I <- 1 Hasta 4 Hacer
para J <-1 Hasta 5 Hacer
escribir I Sin Bajar
Fin/Para
escribir " "
Fin/Para
Fin/Algoritmo
3.5. Estructuras Repetitivas Anidadas en MATLAB.
Ejemplo Nro. 2:
Realice un algoritmo y programa en MATLAB para generar la tabla completa de multiplicar:
Análisis del problema Algoritmo Código en MATLAB
Entrada

Salida

Proceso
3.5. Estructuras Repetitivas Anidadas en MATLAB.
Ejemplo propuesto:
Realice un algoritmo y programa en MATLAB para leer las 5 asignaturas y notas en cada una de
las tres evaluaciones de un alumno, y calcular la nota de cada evaluación:
Análisis del problema Algoritmo Código en MATLAB
Entrada

Salida

Proceso
3.6. Bucles controlado por centinela y banderas.
3.6.1 Centinela.
Un método para terminar un bucle es introducir un único dato definido y especificado
denominado valor centinela como último dato. La condición del bucle comprueba cada dato y
termina cuando se lee el valor centinela.
El centinela es una variable que inicia con un valor, luego dentro de un bucle este valor cambia,
haciendo falsa la condición del ciclo y por lo tanto terminando la ejecución del mismo (el
usuario puede determinar cuándo hacerlo). La repetición controlada por centinela se considera
como una repetición indefinida pues se desconoce el número de repeticiones.
3.6. Bucles controlado por centinela y banderas.
3.6.2 Bandera.
En programación, una bandera (flag, interruptor o marca) es una variable que es utilizada dentro
de la condición del ciclo, sólo puede tomar dos valores opuestos, generalmente, 1 (verdadero) o
0 (falso), o conectada con una expresión booleana, para determinar cuándo un ciclo se sigue
iterando o cuándo no durante la ejecución del algoritmo o programa. De esta manera una
variable bandera debe ser de tipo booleano.
3.7. Estructuras de control break y continúe.
3.7.1 Sentencia break.
En ocasiones es necesario interrumpir la ejecución de un ciclo de repetición en algún punto
interno del bloque de instrucciones que se repiten mediante alguna condición. Cuando la
interrupción se hace para abandonar el ciclo de repetición definitivamente, se hace uso de la
interrupción con BREAK.
La interrupción con BREAK se representa en algoritmo mostrando la sintaxis de esta estructura
en MATLAB.
% Interrupcion con BREAK
while condicion1
instrucciones 1
if condicion2
break;
else
instrucciones 2
end
end
3.7. Estructuras de control break y continúe.
3.7.1. Sentencia break.
Ejemplo. Simular lanzamientos de un dado. Determinar la cantidad de lanzamientos hasta que
salga el 5.
n=input('Cantidad máxima de lanzamientos ');
for i=1:n
x=fix(rand*6)+1;
disp(x);
if x==5
disp('Cantidad de lanzamientos hasta que salió el 5');
disp(i);
break;
end
end
3.7. Estructuras de control break y continúe.
3.7.2. Sentencia continúe.
Cuando la interrupción se hace para abandonar la iteración del bucle for o while, pero
comenzando la siguiente; se hace uso de la interrupción con CONTINUE. La interrupción con
CONTINUE se representa en algoritmo mostrando la sintaxis de esta estructura en MATLAB.

% Interrupcion con continue


while condicion1
instrucciones 1
if condicion2
continue;
else
instrucciones 2
end
end
3.7. Estructuras de control break y continúe.
3.7.2. Sentencia continúe.
Ejemplo.
n=0 ;
while(n<10)
n=n+1 ;
a=input ( ' Ingrese un valor mayor que 0 : ' ) ;
if(a<=0)
disp( ' Debe ingresar un número positivo ‘);
disp ( ' Intente de nuevo ‘ );
continue;
end
disp( ' El log natural de este número es:’ )
disp(log(a))
end
3.8. Ejercicios propuestos.
Estructuras selectivas.
1. Sea la función que está compuesta por una función lineal

Desarrollar un algoritmo y programa en MATLAB para calcular f(x), donde x es introducido por
teclado.
2. Desarrollar un algoritmo y programa en MATLAB para determinar si un año es bisiesto o no. Un año
es bisiesto si es múltiplo de 4 (por ejemplo: 1984). Los múltiplos de 100 no son bisiestos, salvo si
ellos son también múltiplos de 400. (2000 es bisiesto, 1800 no lo es).
3. Desarrollar un algoritmo y programa en MATLAB para leer la cantidad de Kw que ha consumido
una familia y el precio por Kw. Si la cantidad es mayor a 700, incremente el precio en 5% para el
exceso de Kw sobre 700. Muestre el valor total a pagar.
4. El docente de la materia está organizando un viaje de estudios, y requiere determinar cuánto debe
cobrar a cada estudiante y cuánto debe pagar a la compañía de viajes por el servicio. La forma de
cobrar es la siguiente: si son 100 alumnos o más, el costo por cada estudiante es de 65.00bs; de 50 a
99 estudiante, el costo es de 70.00bs, de 30 a 49, de 95.00bs, y si son menos de 30, el costo de la
renta del autobús es de 4000.00bs, sin importar el número de estudiante. Desarrollar un algoritmo y
programa en MATLAB que permita determinar el pago a la compañía de autobuses y lo que debe
pagar cada estudiante por el viaje.
3.8. Ejercicios propuestos.
Estructuras repetitivas (for).
1. Se requiere desarrollar un algoritmo y programa en MATLAB para obtener la suma de N cantidades,
donde cada valor es introducido por teclado.
2. Desarrollar un algoritmo y programa en MATLAB que introducido un número par n, sume los
2
primeros n números impares: Ejemplo. n=4: s = 1+3+5+7 = 16, Verifique si s suma es igual a n y
muestre un mensaje.
3. Desarrollar un algoritmo y programa en MATLAB que introducido dos números enteros a, b,
determine su máximo común divisor m. Ejemplo: a = 36, b = 45 entonces m = 9.
4. Desarrollar un algoritmo y programa en MATLAB que lea los votos de n personas. Cada voto es un
número 1, 2, o 3 correspondiente a tres candidatos. Si el dato es 0 es un voto en blanco. Si es otro
número es un voto nulo. Determine el total de votos de cada candidato y el total de votos blancos y
nulos.
5. Encuentre el mayor valor de la función f(x)=sen(x)+ln(x), para los valores: x=1.0, 1.1, 1.2, 1.3, ..., 4

También podría gustarte