Está en la página 1de 9

UNIVERSIDAD TECNOLOGICA DE PEREIRA

Facultad de Ingeniera Industrial Informtica III (Matlab)



Profesor WILSON CORTES ALVAREZ, Ing. y Auditor de Sistemas de Informacin
wcortes@utp.edu.co - wcortesalvarez@yahoo.com
Estructuras repetitivas

Son aquellas que permiten repetir instrucciones (sentencias) hasta que una o varias
condiciones lo permitan (cuando su interpretacin lgica sea verdadera). Pueden ser de
2 formas: numricos y/o lgicos, los numricos son aquellos que se repiten una n
(cantidad) veces, mientas que los lgicos algo los hace suspender la repeticin a nivel
de un estado de variable.

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

mientras (while-condicion-end)


















Sintaxis en matlab:

while condicion(es)
Instrucciones;
end

Observacin: El ciclo se inicia con la cabecera while y se cierra con end (abre cierra) Esta
estructura se utili!a "ara ciclos num#ricos y$o l%icos


Condicion
Instrucciones
Falso
Verdadero
UNIVERSIDAD TECNOLOGICA DE PEREIRA
Facultad de Ingeniera Industrial Informtica III (Matlab)

Profesor WILSON CORTES ALVAREZ, Ing. y Auditor de Sistemas de Informacin
wcortes@utp.edu.co - wcortesalvarez@yahoo.com
"ara hasta (&or-condicion-end)


















Sintaxis en matlab:

&or vble ' inicio : incremento : &in
Instrucciones;
end

Observacin: El ciclo se inicia con la cabecera &or y se cierra con end (abre cierra) (os
ar%umentos inicio) incremento y &in son valores num#ricos Esta estructura se utili!a "ara
ciclos num#ricos) debido a su sim"le sintaxis y l%ica en utili!acin
Condiciones
Instrucciones
Falso
Verdadero
UNIVERSIDAD TECNOLOGICA DE PEREIRA
Facultad de Ingeniera Industrial Informtica III (Matlab)

Profesor WILSON CORTES ALVAREZ, Ing. y Auditor de Sistemas de Informacin
wcortes@utp.edu.co - wcortesalvarez@yahoo.com
*lanteamiento de "roblemas y soluciones

E+ercicio ,: -ostrar los n.meros del , al ,/ en &orma ascendente) dise0ar el al%oritmo tanto
con la estructura while como la &or

a) 1on while
clear all
clc
dis"(23.meros del , al ,/ ascendente4)
numero ' ,;
while numero 5' ,/
dis"(numero)
numero ' numero 6 ,; 7 contador 8ue incrementa el numero inicial
end
dis"(29in del e+ercicio4)

b) 1on &or
clear all
clc
dis"(23.meros del , al ,/ ascendente4)
&or numero ' , : , : ,/
dis"(numero)
end
dis"(29in del e+ercicio4)

Observacin: (a cabecera (condiciones) del ciclo "odr:a ser tambi#n for numero = 1 : 10
debido a 8ue el incremento es ,) esto 8uiere decir) 8ue el incremento es o"cional
colocarlo cuando se sabe 8ue es , en valor I%ualmente el incremento "uede ser "ositivo o
ne%ativo y di&erente a , (cuando se re8uiera utili!arlo "or l%ica)

E+ercicio ;: -ostrar los n.meros del , al ,/ en &orma descendente) dise0ar el al%oritmo tanto
con la estructura while como la &or
a) 1on while
clear all
clc
dis"(23.meros del , al ,/ descendente4)
numero ' ,/;
while numero <' ,
dis"(numero)
numero ' numero - ,; 7 contador 8ue decrementa el numero inicial
end
dis"(29in del e+ercicio4)
UNIVERSIDAD TECNOLOGICA DE PEREIRA
Facultad de Ingeniera Industrial Informtica III (Matlab)

Profesor WILSON CORTES ALVAREZ, Ing. y Auditor de Sistemas de Informacin
wcortes@utp.edu.co - wcortesalvarez@yahoo.com

b) 1on &or
clear all
clc
dis"(23.meros del , al ,/ descendente4)
&or numero ' ,/ : -, : ,
dis"(numero)
end
dis"(29in del e+ercicio4)

E+ercicio =: -ostrar los n.meros del , al ,/ en &orma descendente "ero solo im"ares) dise0ar
el al%oritmo tanto con la estructura while como la &or

a) 1on while
clear all
clc
dis"(23.meros del , al ,/ descendente solo im"ares4)
numero ' ,/;
while numero <' ,
i& mod(numero) ;) >' /
dis"(numero)
end
numero ' numero - ,; 7 contador 8ue decrementa el numero inicial
end
dis"(29in del e+ercicio4)

c) 1on &or
clear all
clc
dis"(23.meros del , al ,/ descendente solo im"ares4)
&or numero ' ,/ : -, : ,
i& mod(numero) ;) >' /
dis"(numero)
end
end
dis"(29in del e+ercicio4)
UNIVERSIDAD TECNOLOGICA DE PEREIRA
Facultad de Ingeniera Industrial Informtica III (Matlab)

Profesor WILSON CORTES ALVAREZ, Ing. y Auditor de Sistemas de Informacin
wcortes@utp.edu.co - wcortesalvarez@yahoo.com
Ejercicio 4: Mostrar los productos del 1 al 10 de la tabla de multiplicar del nmero 5,
ejemplo de salida:
Tabla de multiplicar del nmero 5
5 x 1 = 5
5 x 2 = 10
Hasta 5 x 10 = 50

clc
clear all
disp('Tabla de multiplicar del nmero 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 nmero %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 contina con un Enter
clc
end
disp('Fin del ejercicio...')


Ejercicio 6: Mostrar la tabla de multiplicar de un nmero dado

clc
clear all
disp('Tabla de multiplicar de un nmero ingresado')
tabla = 0;
resultado = 0;
tabla = input('Nmero de la tabla a procesar:');
disp(' ')
for numero = 1 : 10
resultado = tabla * numero;
disp(sprintf('%d x %d = %d', tabla, numero, resultado))
UNIVERSIDAD TECNOLOGICA DE PEREIRA
Facultad de Ingeniera Industrial Informtica III (Matlab)

Profesor WILSON CORTES ALVAREZ, Ing. y Auditor de Sistemas de Informacin
wcortes@utp.edu.co - wcortesalvarez@yahoo.com
end
disp(' ')
disp('Fin del ejercicio...')


Ejercicio 7: Disear un programa que permita calcular el factorial de un nmero dado
(n!)

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

Ejercicio 8: Ingresar n nmeros 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 nmeros 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 nmeros pares %d', sumapar))
disp(sprintf('Suma de los nmeros impares %d', sumaimpar))
disp('Fin del ejercicio...')






UNIVERSIDAD TECNOLOGICA DE PEREIRA
Facultad de Ingeniera Industrial Informtica III (Matlab)

Profesor WILSON CORTES ALVAREZ, Ing. y Auditor de Sistemas de Informacin
wcortes@utp.edu.co - wcortesalvarez@yahoo.com
Ejercicio 9: Mostrar la tabla de multiplicar de un nmero dado, y repetir el proceso
hasta que el usuario lo quiera realizar.


clc
clear all
disp('Tabla de multiplicar de un nmero ingresado con pregunta para nueva ejecucin')
tabla = 0;
resultado = 0;
respuesta = 'S';
while respuesta == 'S'
tabla = input('Nmero 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 nmero 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
UNIVERSIDAD TECNOLOGICA DE PEREIRA
Facultad de Ingeniera Industrial Informtica III (Matlab)

Profesor WILSON CORTES ALVAREZ, Ing. y Auditor de Sistemas de Informacin
wcortes@utp.edu.co - wcortesalvarez@yahoo.com
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 nmeros aleatorios y al final mostrar su promedio.

clc
clear all
disp('Generar n nmeros aleatorios y su promedio')
cantidad = 0;
primedio = 0;
sumatoria = 0;
cantidad = input('Cantidad de nmeros 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 nmeros aleatorios es %.4f', promedio))
disp('Fin del ejercicio...')


Ejercicio 12: Ingresar n nmeros y al final mostrar de acuerdo a los siguientes rangos su
correspondiente sumatoria:
a) Nmeros menores a 10
b) Nmeros entre 10 y 50
c) Nmeros mayores a 50.
clc
clear all
disp('Ingresar n nmeros realizando unas sumatorios')
cantidad = 0;
numero = 0;
nummenor = 0;
numentre = 0;
nummayor = 0;
cantidad = input('Cantidad de nmeros a ingresar: ');
for n = 1 : cantidad
numero = input('Ingrese el nmero: ');
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))
UNIVERSIDAD TECNOLOGICA DE PEREIRA
Facultad de Ingeniera Industrial Informtica III (Matlab)

Profesor WILSON CORTES ALVAREZ, Ing. y Auditor de Sistemas de Informacin
wcortes@utp.edu.co - wcortesalvarez@yahoo.com
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 vlida 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 solucin con errores sintcticos y/o lgicos 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 calificacin cualitativa de la materia es %f', mensaje))
disp('Fin del ejercicio')


Ejercicio 14: Dado un nmero entero mostrar la lista de los nmeros pares inferiores a
l.

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

Ejercicio 16: Generar un nmero aleatorio entero entre 0 y 20, seguidamente disee un
algoritmo que permita establecer en cuantos intentos fue adivinado.

También podría gustarte