Universidad Nacional del
Centro del Perú
Ingeniería Química
Ingeniería Química Industrial
Computación para
la ingeniería
Cátedra:
COMPUTACIÓN PARA LA INGENIERÍA
Catedrático:
ING. HUGO CAÑARI MARTICORENA
Estudiante:
REYNOSO SURCO, FIORELA ESTEFANY
20
ejercicios
con FOR
a) Suma de números hasta cierto límite:
PROGRAMACIÓN : RESPUESTA
limite = 5; >> Untitled
suma = 0;
15
for i = 1:limite
suma = suma + i;
end
disp(suma);
b) Búsqueda de un valor en un vector:
PROGRAMACIÓN:
vector = [3, 7, 12, 5, 9];
valor_buscado = 5;
encontrado = false;
for i = 1:length(vector)
if vector(i) == valor_buscado
encontrado = true;
disp(['Valor encontrado en la posición ',
num2str(i)]);
break;
end
end
RESPUESTA
>> Untitled
Valor encontrado en la posición 4
c) Raíces cuadradas hasta cierto límite:
PROGRAMACIÓN:
limite = 5;
for i = 1:limite
raiz_cuadrada = sqrt(i);
disp(['Raíz cuadrada de ', num2str(i), ' es ',
num2str(raiz_cuadrada)]);
end
RESPUESTA
>> Untitled
Raíz cuadrada de 1 es 1
Raíz cuadrada de 2 es 1.4142
Raíz cuadrada de 3 es 1.7321
Raíz cuadrada de 4 es 2
Raíz cuadrada de 5 es 2.2361
d) Generación de una secuencia Fibonacci:
PROGRAMACIÓN:
a = 0;
b = 1;
limite = 10;
for i = 1:limite
disp(a);
temp = a + b;
a = b;
b = temp;
end
RESPUESTA
>> Untitled
0
13
21
34
e) Suma de elementos en un vector:
PROGRAMACIÓN:
vector = [2, 4, 6, 8, 10];
suma = 0;
for i = 1:length(vector)
suma = suma + vector(i);
end
disp(suma);
RESPUESTA
>> Untitled
30
f) Validación de entrada de usuario:
PROGRAMACIÓN:
numero = input('Ingrese un número positivo: ');
while numero <= 0
disp('Error. Ingrese un número positivo.');
numero = input('Ingrese un número positivo: ');
end
disp(['Número ingresado: ', num2str(numero)]);
RESPUESTA
>> Untitled
Ingrese un número positivo: 43
Número ingresado: 43
g) Conteo de dígitos en un número:
PROGRAMACIÓN
numero = 54321;
contador = 0;
while numero > 0
contador = contador + 1;
numero = floor(numero / 10);
end
disp(['El número tiene ', num2str(contador), ' dígitos.']);
RESPUESTA
>> Untitled
El número tiene 5 dígitos.
h) Tabla de multiplicar:
PROGRAMACIÓN
numero = 7;
for i = 1:10
resultado = numero * i;
disp([num2str(numero), ' x ', num2str(i), ' = ',
num2str(resultado)]);
end
RESPUESTA
>> Untitled
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63
7 x 10 = 70
i) Juego adivina el número:
PROGRAMACIÓN
numero_secreto = randi([1, 100]);
intentos = 0;
for intentos = 1:3
adivinanza = input('Adivina el número: ');
if adivinanza == numero_secreto
disp(['¡Correcto! El número era ',
num2str(numero_secreto), '.']);
break;
else
disp('Incorrecto. Intenta de nuevo.');
end
end
RESPUESTA
Adivina el número: 24
Incorrecto. Intenta de nuevo.
Adivina el número: 11
Incorrecto. Intenta de nuevo.
j) Simulación de lanzamiento de moneda hasta obtener 3 caras seguidas:
PROGRAMACIÓN
caras_seguidas = 0;
lanzamientos = 0;
while caras_seguidas < 3
resultado = randi([0, 1]); % 0 representa cruz, 1
representa cara
lanzamientos = lanzamientos + 1;
if resultado == 1
caras_seguidas = caras_seguidas + 1;
else
caras_seguidas = 0;
end
end
disp(['Se necesitaron ', num2str(lanzamientos), '
lanzamientos para obtener 3 caras seguidas.']);
RESPUESTA
>> Untitled
Se necesitaron 8 lanzamientos para obtener 3 caras
seguidas.
>> Untitled
Se necesitaron 10 lanzamientos para obtener 3 caras
seguidas.
k) Validación de contraseña:
PROGRAMACIÓN
contrasena_correcta = 'secreto123';
intentos = 1;
for intentos = 1:3
contrasena_ingresada = input('Ingrese la
contraseña: ', 's');
if strcmp(contrasena_ingresada,
contrasena_correcta)
disp('Contraseña correcta. Bienvenido.');
break;
else
disp('Contraseña incorrecta. Intenta de
nuevo.');
end
end
if intentos > 3
disp('Número máximo de intentos alcanzado.
Acceso denegado.');
end
RESPUESTA
>> Untitled
Ingrese la contraseña: 111
Contraseña incorrecta. Intenta de nuevo.
Ingrese la contraseña: 231
Contraseña incorrecta. Intenta de nuevo.
l) Calculadora simple:
PROGRAMACIÓN
for opcion = 1:3
disp(['Opción ', num2str(opcion)]);
end
disp('Saliendo de la calculadora.');
RESPUESTA
>> Untitled
Opción 1
Opción 2
Opción 3
Saliendo de la calculadora.
m) Generación de números primos:
PROGRAMACIÓN
limite = 50;
for numero_actual = 2:limite
es_primo = true;
for divisor = 2:sqrt(numero_actual)
if rem(numero_actual, divisor) == 0
es_primo = false;
break;
end
end
if es_primo
disp(['Número primo: ',
num2str(numero_actual)]);
end
end
RESPUESTA
>> Untitled
Número primo: 19
Número primo: 2
Número primo: 23
Número primo: 3
Número primo: 29
Número primo: 5
Número primo: 31
Número primo: 7
Número primo: 37
Número primo: 11
Número primo: 41
Número primo: 13
Número primo: 43
Número primo: 17
Número primo: 47
n) Conversión de temperatura Celsius a Fahrenheit:
PROGRAMACIÓN
for celsius = [Link]
fahrenheit = (celsius * 9/5) + 32;
disp([num2str(celsius), '°C es igual a ',
num2str(fahrenheit), '°F']);
end
RESPUESTA
>> Untitled
0°C es igual a 32°F
10°C es igual a 50°F
20°C es igual a 68°F
30°C es igual a 86°F
40°C es igual a 104°F
50°C es igual a 122°F
60°C es igual a 140°F
70°C es igual a 158°F
80°C es igual a 176°F
90°C es igual a 194°F
100°C es igual a 212°F
o) Contador de vocales en una cadena:
PROGRAMACIÓN
cadena = 'hola mundo';
contador_vocales = 0;
for indice = 1:length(cadena)
if any(cadena(indice) == 'aeiouAEIOU')
contador_vocales = contador_vocales + 1;
end
end
disp(['Número de vocales en la cadena: ',
num2str(contador_vocales)]);
RESPUESTA
>> Untitled
Número de vocales en la cadena: 4
p) Impresión de patrón numérico:
PROGRAMACIÓN
for fila = 1:5
for columna = 1:fila
disp(columna);
end
end
RESPUESTA
>> Untitled
1
1 3
2 4
1 1
2 2
3 3
1 4
2 5
q) Cálculo del promedio de una lista de números:
PROGRAMACIÓN
lista = [10, 15, 20, 25, 30];
suma = 0;
for indice = 1:length(lista)
suma = suma + lista(indice);
end
promedio = suma / length(lista);
disp(['El promedio es: ',
num2str(promedio)]);
RESPUESTA
>> Untitled
El promedio es: 20
r) Adivina el número (versión simplificada):
PROGRAMACIÓN
numero_secreto = randi([1, 10]);
for intentos = 1:3
adivinanza = input('Adivina el número (entre 1 y
10): ');
if adivinanza == numero_secreto
disp('¡Correcto! Has adivinado el número.');
break;
else
disp('Incorrecto. Intenta de nuevo.');
end
end
RESPUESTA
>> Untitled
Adivina el número (entre 1 y 10): 1
Incorrecto. Intenta de nuevo.
Adivina el número (entre 1 y 10): 3
Incorrecto. Intenta de nuevo.
s) Contador descendente:
for i = 10:-1:1
disp(i);
end
RESPUESTA
6
>> Untitled
10 5
9 4
8 3
7 2
1
12
ejercicios
con WHILE
1) Raíces cuadradas hasta cierto límite:
limite = 5;
contador = 1;
while contador <= limite
raiz_cuadrada = sqrt(contador);
disp(['Raíz cuadrada de ', num2str(contador),
' es ', num2str(raiz_cuadrada)]);
contador = contador + 1;
end
RESPUESTA
>> Untitled
Raíz cuadrada de 1 es 1
Raíz cuadrada de 2 es 1.4142
Raíz cuadrada de 3 es 1.7321
Raíz cuadrada de 4 es 2
Raíz cuadrada de 5 es 2.2361
2) Generación de una secuencia Fibonacci:
RESPUESTA
a = 0;
b = 1; >> Untitled
limite = 10;
while a <= limite 0
disp(a); 1
temp = a + b;
1
a = b;
b = temp; 2
end
3
5
8
3) Suma de elementos en un vector:
vector = [2, 4, 6, 8, 10];
suma = 0;
indice = 1;
while indice <= length(vector);
suma = suma + vector(indice);
indice = indice + 1;
end
disp(suma);
RESPUESTA
>> Untitled
30
4) Validación de entrada de usuario:
numero = input('Ingrese un número positivo: ');
while numero <= 0
disp('Error. Ingrese un número positivo.');
numero = input('Ingrese un número positivo:
');
end
disp(['Número ingresado: ', num2str(numero)]);
RESPUESTA
>> Untitled
Ingrese un número positivo: 12
Número ingresado: 12
5) Conteo de dígitos en un número:
numero = 54321;
contador = 0;
while numero > 0
contador = contador + 1;
numero = floor(numero / 10);
end
disp(['El número tiene ', num2str(contador), '
dígitos.']);
RESPUESTA
>> Untitled
El número tiene 5 dígitos.
6) Tabla de multiplicar:
numero = 7;
multiplicador = 1;
while multiplicador <= 10
resultado = numero * multiplicador;
disp([num2str(numero), ' x ',
num2str(multiplicador), ' = ',
num2str(resultado)]);
multiplicador = multiplicador + 1;
end
RESPUESTA
>> Untitled
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63
7 x 10 = 70
7) Juego adivina el número:
numero_secreto = randi([1, 100]);
adivinanza = 0;
intentos = 0;
while adivinanza ~= numero_secreto
adivinanza = input('Adivina el número: ');
intentos = intentos + 1;
if adivinanza < numero_secreto
disp('Demasiado bajo. Intenta de nuevo.');
elseif adivinanza > numero_secreto
disp('Demasiado alto. Intenta de nuevo.');
else
disp(['¡Correcto! El número era ',
num2str(numero_secreto), '.']);
disp(['Número de intentos: ', num2str(intentos)]);
end
end
RESPUESTA
>> Untitled
Adivina el número: 54232
Demasiado alto. Intenta de nuevo.
Adivina el número: 23
Demasiado bajo. Intenta de nuevo.
Adivina el número: 5555
Demasiado alto. Intenta de nuevo.
Adivina el número: 322
8) Simulación de lanzamiento de moneda hasta obtener 3 caras seguidas:
caras_seguidas = 0;
lanzamientos = 0;
while caras_seguidas < 3
resultado = randi([0, 1]); % 0 representa cruz, 1
representa cara
lanzamientos = lanzamientos + 1;
if resultado == 1
caras_seguidas = caras_seguidas + 1;
else
caras_seguidas = 0;
end
end
disp(['Se necesitaron ', num2str(lanzamientos), '
lanzamientos para obtener 3 caras seguidas.']);
RESPUESTA
>> Untitled
Se necesitaron 8 lanzamientos para obtener 3 caras
seguidas.
9) Validación de contraseña:
contrasena_correcta = 'secreto123';
contrasena_ingresada = input('Ingrese la
contraseña: ', 's');
intentos = 1;
while ~strcmp(contrasena_ingresada,
contrasena_correcta) && intentos < 3
disp('Contraseña incorrecta. Intenta de
nuevo.');
contrasena_ingresada = input('Ingrese la
contraseña: ', 's');
intentos = intentos + 1;
end
if strcmp(contrasena_ingresada,
contrasena_correcta)
disp('Contraseña correcta. Bienvenido.');
else
disp('Número máximo de intentos
alcanzado. Acceso denegado.');
end
RESPUESTA
>> Untitled
Ingrese la contraseña: 3332
Contraseña incorrecta. Intenta de nuevo.
Ingrese la contraseña: secreto123
Contraseña correcta. Bienvenido.
10) Calculadora simple:
opcion = 0;
while opcion = 4
disp('1. Sumar');
disp('2. Restar');
disp('3. Multiplicar');
disp('4. Salir');
opcion = input('Seleccione una opción: ');
switch opcion
case 1
num1 = input('Ingrese el primer
número: ');
num2 = input('Ingrese el segundo
número: ');
resultado = num1 + num2;
disp(['La suma es: ',
num2str(resultado)]);
case 2
num1 = input('Ingrese el primer
número: ');
num2 = input('Ingrese el segundo
número: ');
resultado = num1 - num2;
disp(['La resta es: ',
num2str(resultado)]);
case 3
num1 = input('Ingrese el primer
número: ');
num2 = input('Ingrese el segundo
número: ');
resultado = num1 * num2;
disp(['La multiplicación es: ',
num2str(resultado)]);
case 4
disp('Saliendo de la
calculadora.');
otherwise
disp('Opción no válida. Inténtelo
de nuevo.');
end
11) Conversión de temperatura Celsius a Fahrenheit:
celsius = 0;
while celsius <= 100
fahrenheit = (celsius * 9/5) + 32;
disp([num2str(celsius), '°C es igual a ',
num2str(fahrenheit), '°F']);
celsius = celsius + 10;
end
RESPUESTA
>> Untitled
0°C es igual a 32°F
10°C es igual a 50°F
20°C es igual a 68°F
30°C es igual a 86°F
40°C es igual a 104°F
50°C es igual a 122°F
60°C es igual a 140°F
70°C es igual a 158°F
80°C es igual a 176°F
90°C es igual a 194°F
100°C es igual a 212°F
12) Contador de vocales en una cadena:
cadena = 'hola mundo';
indice = 1;
contador_vocales = 0;
while indice <= length(cadena)
if any(cadena(indice) == 'aeiouAEIOU')
contador_vocales = contador_vocales + 1;
end
indice = indice + 1;
end
disp(['Número de vocales en la cadena: ',
num2str(contador_vocales)]);
RESPUESTA
>> Untitled
Número de vocales en la cadena: 4
20
ejercicios
con IF,
ELSE Y
ELSEIF
1. Número positivo o negativo:
num = input('Ingrese un número: ');
if num > 0
disp('El número es positivo');
elseif num < 0
disp('El número es negativo');
else
disp('El número es cero');
end
RESPUESTA
>> Untitled
Ingrese un número: 12
El número es positivo
2. Par o impar:
num = input('Ingrese un número: ');
if rem(num, 2) == 0
disp('El número es par');
else
disp('El número es impar');
end
RESPUESTA
>> Untitled
Ingrese un número: 15
El número es impar
>> Untitled
Ingrese un número: 12
3. Mayor de tres números:
a = input('Ingrese el primer número: ');
b = input('Ingrese el segundo número: ');
c = input('Ingrese el tercer número: ');
if a >= b && a >= c
disp('El primer número es el mayor');
elseif b >= a && b >= c
disp('El segundo número es el mayor');
else
disp('El tercer número es el mayor');
end
RESPUESTA
>> Untitled
Ingrese el primer número: 2
Ingrese el segundo número: 1
Ingrese el tercer número: 4
El tercer número es el mayor
4. Calculadora simple:
operacion = input('Ingrese la operación (+, -,
*, /): ', 's');
num1 = input('Ingrese el primer número: ');
num2 = input('Ingrese el segundo número: ');
if operacion == '+'
resultado = num1 + num2;
elseif operacion == '-'
resultado = num1 - num2;
elseif operacion == '*'
resultado = num1 * num2;
elseif operacion == '/'
resultado = num1 / num2;
else
disp('Operación no válida');
return;
end
disp(['El resultado es: ' num2str(resultado)]);
RESPUESTA
>> Untitled
Ingrese la operación (+, -, *, /): 5+4+6
Ingrese el primer número: 12
Ingrese el segundo número: 4
Operación no válida
5. Categoría de edad:
edad = input('Ingrese la edad: ');
if edad < 18
disp('Eres menor de edad');
elseif edad >= 18 && edad <= 65
disp('Eres adulto');
else
disp('Eres adulto mayor');
end
RESPUESTA
>> Untitled
Ingrese la edad: 34
Eres adulto
6. Día de la semana:
dia = input('Ingrese el día de la semana (1-
7): ');
if dia >= 1 && dia <= 5
disp('Es un día laboral');
elseif dia == 6 || dia == 7
disp('Es fin de semana');
else
disp('Número de día no válido');
end
RESPUESTA
Ingrese el día de la semana (1-7): 2
Es un día laboral
7. Ordenar tres números:
a = input('Ingrese el primer número: ');
b = input('Ingrese el segundo número: ');
c = input('Ingrese el tercer número: ');
if a <= b && a <= c
menor = a;
if b <= c
medio = b;
mayor = c;
else
medio = c;
mayor = b;
end
elseif b <= a && b <= c
menor = b;
if a <= c
medio = a;
mayor = c;
else
medio = c;
mayor = a;
end
else
menor = c;
if a <= b
medio = a;
mayor = b;
else
medio = b;
mayor = a;
end
end
disp(['Orden ascendente: ' num2str(menor)
', ' num2str(medio) ', ' num2str(mayor)]);
RESPUESTA
>> Untitled
Ingrese el primer número: 3
Ingrese el segundo número: 2
Ingrese el tercer número: 1
Orden ascendente: 1, 2, 3
8. Calificación de estudiantes:
calificacion = input('Ingrese la calificación del
estudiante: ');
if calificacion >= 90
disp('A');
elseif calificacion >= 80
disp('B');
elseif calificacion >= 70
disp('C');
elseif calificacion >= 60
disp('D');
else
disp('F');
end
RESPUESTA
>> Untitled
Ingrese la calificación del estudiante: 15
F
9. Comprobar si un año es bisiesto:
anio = input('Ingrese un año: ');
if rem(anio, 4) == 0 && (rem(anio, 100) ~= 0 ||
rem(anio, 400) == 0)
disp('El año es bisiesto');
else
disp('El año no es bisiesto');
end
RESPUESTA
>> Untitled
Ingrese un año: 2003
El año no es bisiesto
10. Categoría de IMC (Índice de Masa Corporal):
peso = input('Ingrese el peso (kg): ');
altura = input('Ingrese la altura (m): ');
imc = peso / (altura^2);
if imc < 18.5
disp('Bajo peso');
elseif imc >= 18.5 && imc < 25
disp('Peso normal');
elseif imc >= 25 && imc < 30
disp('Sobrepeso');
else
disp('Obesidad');
end
RESPUESTA
>> Untitled
Ingrese el peso (kg): 56
Ingrese la altura (m): 1.56
Peso normal
11. Convertir grados Celsius a Fahrenheit o viceversa:
opcion = input('Ingrese 1 para convertir de Celsius a
Fahrenheit, o 2 para convertir de Fahrenheit a Celsius: ');
if opcion == 1
celsius = input('Ingrese la temperatura en grados
Celsius: ');
fahrenheit = (celsius * 9/5) + 32;
disp(['La temperatura en Fahrenheit es: '
num2str(fahrenheit)]);
elseif opcion == 2
fahrenheit = input('Ingrese la temperatura en grados
Fahrenheit: ');
celsius = (fahrenheit - 32) * 5/9;
disp(['La temperatura en Celsius es: '
num2str(celsius)]);
else
disp('Opción no válida');
end
RESPUESTA
>> Untitled
Ingrese 1 para convertir de Celsius
a Fahrenheit, o 2 para convertir de
Fahrenheit a Celsius: 46
Opción no válida
12. Calculadora de descuento:
monto = input('Ingrese el monto de la compra: ');
if monto >= 1000
descuento = 0.1 * monto;
else
descuento = 0;
end
totalPagar = monto - descuento;
disp(['Descuento aplicado: $'
num2str(descuento)]);
disp(['Total a pagar: $' num2str(totalPagar)]);
RESPUESTA
>> Untitled
Ingrese el monto de la compra: 554
Descuento aplicado: $0
Total a pagar: $554
13. Clasificación de triángulos:
lado1 = input('Ingrese la longitud del primer lado del
triángulo: ');
lado2 = input('Ingrese la longitud del segundo lado del
triángulo: ');
lado3 = input('Ingrese la longitud del tercer lado del
triángulo: ');
if lado1 == lado2 && lado2 == lado3
disp('Triángulo equilátero');
elseif lado1 == lado2 || lado1 == lado3 || lado2 == lado3
disp('Triángulo isósceles');
else
disp('Triángulo escaleno');
end
RESPUESTA
>> Untitled
Ingrese la longitud del primer lado del triángulo: 12
Ingrese la longitud del segundo lado del triángulo: 31
Ingrese la longitud del tercer lado del triángulo: 42
Triángulo escaleno
14. Validar una contraseña:
contrasena = input('Ingrese la contraseña: ');
if length(contrasena) >= 8 &&
any(isletter(contrasena)) &&
any(isdigit(contrasena))
disp('Contraseña válida');
else
disp('Contraseña no válida');
end
RESPUESTA
>> Untitled
Ingrese la contraseña: 123
Contraseña no válida
15. Categoría de deporte según la edad:
edad = input('Ingrese la edad: ');
if edad >= 5 && edad <= 12
disp('Categoría infantil');
elseif edad >= 13 && edad <= 18
disp('Categoría juvenil');
else
disp('Categoría adulto');
end
RESPUESTA
>> Untitled
Ingrese la edad: 21
Categoría adulto
16. Número primo:
numero = input('Ingrese un número: ');
esPrimo = true;
for i = 2:sqrt(numero)
if rem(numero, i) == 0
esPrimo = false;
break;
end
end
if esPrimo
disp('El número es primo');
else
disp('El número no es primo');
end
RESPUESTA
>> Untitled
Ingrese un número: 53
El número es primo
>> Untitled
Ingrese un número: 21
El número no es primo
17. Determinar si un año es de la era actual o anterior:
anio = input('Ingrese un año: ');
if anio >= 2000
disp('Es de la era actual');
else
disp('Es de la era anterior');
end
RESPUESTA
>> Untitled
Ingrese un año: 2003
Es de la era actual
>> Untitled
Ingrese un año: 1982
Es de la era anterior
18. Calcular la factorial de un número:
numero = input('Ingrese un número entero
positivo: ');
if numero < 0 || rem(numero, 1) ~= 0
disp('Número no válido');
else
factorial = 1;
for i = 1:numero
factorial = factorial * i;
end
disp(['El factorial de ' num2str(numero) ' es
' num2str(factorial)]);
end
RESPUESTA
>> Untitled
Ingrese un número entero positivo: 32
El factorial de 32 es 2.631308369336935e+35
19. Simulador de semáforo:
color = input('Ingrese el color del
semáforo (rojo, amarillo, verde): ',
's');
if strcmpi(color, 'rojo')
disp('Alto');
elseif strcmpi(color, 'amarillo')
disp('Precaución');
elseif strcmpi(color, 'verde')
disp('Avance');
else
20. Verificar si un año es olímpico:
anio = input('Ingrese un año: ');
if rem(anio, 4) == 0 && rem(anio, 100) ~= 0 ||
rem(anio, 400) == 0
disp('Es un año olímpico');
else
disp('No es un año olímpico');
end
RESPUESTA
>> Untitled
Ingrese un año: 2010
No es un año olímpico
>> Untitled
Ingrese un año: 2023
No es un año olímpico