Está en la página 1de 9

UNIVERSIDAD TECNOLOGICA DE PEREIRA

Facultad de Ingeniería Industrial – Informática III (Matlab)

Estructuras repetitivas
Son aquellas que permiten repetir instrucciones (sentencias) hasta que una o varias
condiciones lo permitan (cuando su interpretación lógica sea verdadera). Pueden ser de
2 formas: numéricos y/o lógicos, los numéricos son aquellos que se repiten una n
(cantidad) veces, mientas que los lógicos algo los hace suspender la repetición a nivel
de un estado de variable.

Para el caso puntual del curso en matlab, utilizaremos los ciclos repetitivos (bucles)
while y for (según sea el caso).

mientras (while-condicion-end)

Falso
Condicion

Verdadero

Instrucciones

Sintaxis en matlab:

while condicion(es)
Instrucciones;
end

Observación: El ciclo se inicia con la cabecera while y se cierra con end (abre – cierra). Esta
estructura se utiliza para ciclos numéricos y/o lógicos.

Profesor WILSON CORTES ALVAREZ, Ing. y Auditor de Sistemas de Información


wcortes@utp.edu.co - wcortesalvarez@yahoo.com
UNIVERSIDAD TECNOLOGICA DE PEREIRA
Facultad de Ingeniería Industrial – Informática III (Matlab)

para hasta (for-condicion-end)

Falso
Condiciones

Verdadero

Instrucciones

Sintaxis en matlab:

for vble = inicio : incremento : fin


Instrucciones;
end

Observación: El ciclo se inicia con la cabecera for y se cierra con end (abre – cierra). Los
argumentos inicio, incremento y fin son valores numéricos. Esta estructura se utiliza para
ciclos numéricos, debido a su simple sintaxis y lógica en utilización.

Profesor WILSON CORTES ALVAREZ, Ing. y Auditor de Sistemas de Información


wcortes@utp.edu.co - wcortesalvarez@yahoo.com
UNIVERSIDAD TECNOLOGICA DE PEREIRA
Facultad de Ingeniería Industrial – Informática III (Matlab)

Planteamiento de problemas y soluciones.

Ejercicio 1: Mostrar los números del 1 al 10 en forma ascendente, diseñar el algoritmo tanto
con la estructura while como la for.

a) Con while
clear all
clc
disp(‘Números del 1 al 10 ascendente’)
numero = 1;
while numero <= 10
disp(numero)
numero = numero + 1; % contador que incrementa el numero inicial
end
disp(‘Fin del ejercicio’)

b) Con for
clear all
clc
disp(‘Números del 1 al 10 ascendente’)
for numero = 1 : 1 : 10
disp(numero)
end
disp(‘Fin del ejercicio’)

Observación: La cabecera (condiciones) del ciclo podría ser también for numero = 1 : 10
debido a que el incremento es 1, esto quiere decir, que el incremento es opcional
colocarlo cuando se sabe que es 1 en valor. Igualmente el incremento puede ser positivo o
negativo y diferente a 1 (cuando se requiera utilizarlo por lógica).

Ejercicio 2: Mostrar los números del 1 al 10 en forma descendente, diseñar el algoritmo tanto
con la estructura while como la for.
a) Con while
clear all
clc
disp(‘Números del 1 al 10 descendente’)
numero = 10;
while numero >= 1
disp(numero)
numero = numero - 1; % contador que decrementa el numero inicial
end
disp(‘Fin del ejercicio’)

Profesor WILSON CORTES ALVAREZ, Ing. y Auditor de Sistemas de Información


wcortes@utp.edu.co - wcortesalvarez@yahoo.com
UNIVERSIDAD TECNOLOGICA DE PEREIRA
Facultad de Ingeniería Industrial – Informática III (Matlab)

b) Con for
clear all
clc
disp(‘Números del 1 al 10 descendente’)
for numero = 10 : -1 : 1
disp(numero)
end
disp(‘Fin del ejercicio’)

Ejercicio 3: Mostrar los números del 1 al 10 en forma descendente pero solo impares, diseñar
el algoritmo tanto con la estructura while como la for.

a) Con while
clear all
clc
disp(‘Números del 1 al 10 descendente solo impares’)
numero = 10;
while numero >= 1
if mod(numero, 2) ~= 0
disp(numero)
end
numero = numero - 1; % contador que decrementa el numero inicial
end
disp(‘Fin del ejercicio’)

c) Con for
clear all
clc
disp(‘Números del 1 al 10 descendente solo impares’)
for numero = 10 : -1 : 1
if mod(numero, 2) ~= 0
disp(numero)
end
end
disp(‘Fin del ejercicio’)

Profesor WILSON CORTES ALVAREZ, Ing. y Auditor de Sistemas de Información


wcortes@utp.edu.co - wcortesalvarez@yahoo.com
UNIVERSIDAD TECNOLOGICA DE PEREIRA
Facultad de Ingeniería Industrial – Informática III (Matlab)

Ejercicio 4: Mostrar los productos del 1 al 10 de la tabla de multiplicar del número 5,


ejemplo de salida:
Tabla de multiplicar del número 5
5x1=5
5 x 2 = 10
Hasta 5 x 10 = 50

clc
clear all
disp('Tabla de multiplicar del número 5')
resultado = 0;
tabla = 5;
for numero = 1 : 10
resultado = tabla * numero;
disp(sprintf('%d x %d = %d', tabla, numero, resultado))
end
disp('Fin del ejercicio...')

Ejercicio 5: Mostrar las tablas de multiplicar del 1 al 10 por pantallazos

clc
clear all
disp('Tablas de multiplicar del 1 al 10')
resultado = 0;
for tabla = 1 : 10
disp(sprintf('Tabla del número %d', tabla))
for numero = 1 : 10
resultado = tabla * numero;
disp(sprintf('%d x %d = %d', tabla, numero, resultado))
end
disp('Presione Enter para continuar')
pause % hace una pause y continúa con un Enter
clc
end
disp('Fin del ejercicio...')

Ejercicio 6: Mostrar la tabla de multiplicar de un número dado

clc
clear all
disp('Tabla de multiplicar de un número ingresado')
tabla = 0;
resultado = 0;
tabla = input('Número de la tabla a procesar:');
disp(' ')
for numero = 1 : 10
resultado = tabla * numero;
disp(sprintf('%d x %d = %d', tabla, numero, resultado))

Profesor WILSON CORTES ALVAREZ, Ing. y Auditor de Sistemas de Información


wcortes@utp.edu.co - wcortesalvarez@yahoo.com
UNIVERSIDAD TECNOLOGICA DE PEREIRA
Facultad de Ingeniería Industrial – Informática III (Matlab)

end
disp(' ')
disp('Fin del ejercicio...')

Ejercicio 7: Diseñar un programa que permita calcular el factorial de un número dado


(n!)

clc
clear all
numero = 0;
factorial = 1;
numero = input ('Factorial del número: ');
for i = 1 : numero
factorial = factorial * i;
end
disp(sprintf('El factorial del número %d es %d', numero, factorial))
disp('Fin del ejercicio...')

Ejercicio 8: Ingresar n números y al final mostrar:


- Sumatoria de los pares
- Sumatoria de los impares

clc
clear all
cantidad = 0;
numero = 0;
sumapar = 0;
sumaimpar = 0;
cantidad = input('Cantidad de números a ingresar: ');
for i =1:cantidad
numero = input ('Numero: ');
if mod(numero, 2) == 0
sumapar = sumapar + numero;
else
sumaimpar = sumaimpar + numero;
end
end
disp(' ')
disp('RESULTADOS')
disp(sprintf('Suma de los números pares %d', sumapar))
disp(sprintf('Suma de los números impares %d', sumaimpar))
disp('Fin del ejercicio...')

Profesor WILSON CORTES ALVAREZ, Ing. y Auditor de Sistemas de Información


wcortes@utp.edu.co - wcortesalvarez@yahoo.com
UNIVERSIDAD TECNOLOGICA DE PEREIRA
Facultad de Ingeniería Industrial – Informática III (Matlab)

Ejercicio 9: Mostrar la tabla de multiplicar de un número dado, y repetir el proceso


hasta que el usuario lo quiera realizar.

clc
clear all
disp('Tabla de multiplicar de un número ingresado con pregunta para nueva ejecución')
tabla = 0;
resultado = 0;
respuesta = 'S';
while respuesta == 'S'
tabla = input('Número de la tabla a procesar:');
disp(' ')
for numero = 1 : 10
resultado = tabla * numero;
disp(sprintf('%d x %d = %d', tabla, numero, resultado))
end
respuesta = upper(input('¿Desea procesar otro número de tabla (S/N)?', 's'));
if respuesta == 'S'
clc
end
end
disp(' ')
disp('Fin del ejercicio...')

Ejercicio 10: Ingresar un texto y determinar por cada vocal su cantidad encontrada
clc
clear all
disp('Cantidad de vocales en un texto')
texto = '';
va = 0;
ve = 0;
vi = 0;
vo = 0;
vu = 0;
texto = lower(input('Ingrese el texto: ', 's'));
for letra = 1 : length(texto)
if texto(letra) == 'a'
va = va + 1;
elseif texto(letra) == 'e'
ve = ve + 1;
elseif texto(letra) == 'i'
vi = vi + 1;
elseif texto(letra) == 'o'
vo = vo + 1;
elseif texto(letra) == 'u'
vu = vu + 1;
end
end

Profesor WILSON CORTES ALVAREZ, Ing. y Auditor de Sistemas de Información


wcortes@utp.edu.co - wcortesalvarez@yahoo.com
UNIVERSIDAD TECNOLOGICA DE PEREIRA
Facultad de Ingeniería Industrial – Informática III (Matlab)

disp('Resultados')
disp(sprintf('Cantidad de vocal a %d', va))
disp(sprintf('Cantidad de vocal e %d', ve))
disp(sprintf('Cantidad de vocal i %d', vi))
disp(sprintf('Cantidad de vocal o %d', vo))
disp(sprintf('Cantidad de vocal u %d', vu))
disp('Fin del ejercicio...')

Ejercicio 11: Generar n números aleatorios y al final mostrar su promedio.

clc
clear all
disp('Generar n números aleatorios y su promedio')
cantidad = 0;
primedio = 0;
sumatoria = 0;
cantidad = input('Cantidad de números aleatorios: ');
for numero = 1 : cantidad
sumatoria = sumatoria + rand; % se genera el numero aleatorio y se acumula
end
promedio = sumatoria / cantidad;
disp(sprintf('El promedio de los números aleatorios es %.4f', promedio))
disp('Fin del ejercicio...')

Ejercicio 12: Ingresar n números y al final mostrar de acuerdo a los siguientes rangos su
correspondiente sumatoria:
a) Números menores a 10
b) Números entre 10 y 50
c) Números mayores a 50.
clc
clear all
disp('Ingresar n números realizando unas sumatorios')
cantidad = 0;
numero = 0;
nummenor = 0;
numentre = 0;
nummayor = 0;
cantidad = input('Cantidad de números a ingresar: ');
for n = 1 : cantidad
numero = input('Ingrese el número: ');
if numero < 10
nummenor = nummenor + numero;
elseif numero >= 10 & numero <= 50
numentre = numentre + numero;
else
nummayor = nummayor + numero;
end
end
disp('Resultado de sumatorias')
disp(sprintf('Menores a 10 %.2f', nummenor))

Profesor WILSON CORTES ALVAREZ, Ing. y Auditor de Sistemas de Información


wcortes@utp.edu.co - wcortesalvarez@yahoo.com
UNIVERSIDAD TECNOLOGICA DE PEREIRA
Facultad de Ingeniería Industrial – Informática III (Matlab)

disp(sprintf('Entre 10 y 50 %.2f', numentre))


disp(sprintf('Mayores a 50 %.2f', nummayor))
disp('Fin del ejercicio...')

Ejercicio 13: Validar que al ingresar una nota solo admita el rango entre 1 y 5, una vez
aceptada como válida determinar por medio de un mensaje si es EXCELENTE (nota
mayor o igual a 4.5), SOBRESALIENTE (nota entre 4 y 4.5), BUENA (entre 3 y 3.9 y
MALA (si es menor a 3). Se plantea la solución con errores sintácticos y/o lógicos para
que sea corregido y solucionado el problema.

clc
clear all
disp('Validar una nota entre 1 y 5')
nota = 0;
mensaje = '';
while nota < 1 | nota > 6
nota = input('Ingrese una nota entre 1 y 5: ');
end
if nota > 4.5
mensaje = 'EXCELENTE';
elseif nota >= 4 & nota <= 4.5
mensaje = 'SOBRESALIENTE';
else if nota > 3 & nota <= 3.9
mensaje = 'BUENA';
else
mensaje = 'MALA';
end
disp(sprintf('La calificación cualitativa de la materia es %f', mensaje))
disp('Fin del ejercicio')

Ejercicio 14: Dado un número entero mostrar la lista de los números pares inferiores a
él.

Ejercicio 15: Dados dos números enteros mostrar la lista de los números
impares comprendidos entre ellos.

Ejercicio 16: Generar un número aleatorio entero entre 0 y 20, seguidamente diseñe un
algoritmo que permita establecer en cuantos intentos fue adivinado.

Profesor WILSON CORTES ALVAREZ, Ing. y Auditor de Sistemas de Información


wcortes@utp.edu.co - wcortesalvarez@yahoo.com

También podría gustarte