Descripcion y ejercicios de ciclo repetitivos_version1

Anuncio
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 Cortés Álvarez, 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 Cortés Álvarez, 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 Cortés Álvarez, 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 Cortés Álvarez, 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;
% Ciclo de tablas
for tabla = 1 : 10
disp(sprintf('Tabla del número %d', tabla))
% Ciclo de productos por 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 (ingresado)
Ejercicio 7: Diseñar un programa que permita calcular el factorial de un número dado
(n!)
Ejercicio 8: Ingresar n números y al final mostrar:
- Sumatoria de los pares
- Sumatoria de los impares
Profesor Wilson Cortés Álvarez, 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.
Ejercicio 10: Ingresar un texto y determinar por cada vocal su cantidad encontrada
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.
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 = '';
% Se valida lo que no sirve como dato de entrada
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';
Profesor Wilson Cortés Álvarez, 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)
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 Cortés Álvarez, Ing. y Auditor de Sistemas de Información
wcortes@utp.edu.co - wcortesalvarez@yahoo.com
Descargar