You are on page 1of 9

Universidad Industrial de Santander

Escuela de Matemáticas, Facultad de Ciencias


Bucaramanga, junio 11 de 2016

Introducción a MATLAB: Programación y


algoritmos

Prof. Giovanni Calderón


Escuela de Matemáticas, Facultad de Ciencias
Universidad Industrial de Santander
e-mail: Giovanni@ula.ve http://www.mathworks.com
Operadores de repetición (control de flujo)
SENTENCIA WHILE
La sentencia while ejecuta repetidamente la sentencia mientras Ejercicio 1: Para 𝑚 = 1,2, … , y 𝑐𝑜𝑡𝑎 = 1000. Sean
la condición sea verdadera.

while condición
se quiere encontrar el mayor valor de 𝑚 para el cual la suma
Sentencias
. ; 𝑆 = 𝑆1 + 𝑆2 ≤ 𝑐𝑜𝑡𝑎.
end Crear el algoritmo correspondiente y codificar. La salida por pantalla debe ser el
valor final de 𝑆 y 𝑚.

Ejemplo 1: ¿Qué hace el siguiente código? COTA = 1000;


suma = 0;
j = 1;
eps = 1; while suma <= COTA,
j = 1; S1 = j^2+sin(3*j);
while (1+eps) > 1, S2 = j*cos(pi^2*j)+log(j);
eps = eps/2; suma = S1+S2;
j = j+1; j = j+1;
end end
disp(eps) disp(suma)
disp(j) disp(j)
Otras funciones
any( ): Responde verdadero si algún elemento no es cero y falso si todos son cero.
all( ): Responde verdadero si todos los elementos del vector son distintos de cero; en caso contrario, responde falso.

Ejemplo 1:
a = [1 2 3];
b = [1 2 0];
any(a)
any(b)
all(a)
all(b)

Ejemplo 2:
X = [-1 1 1]; y = [ 1 2 -3];
x>0, y>0
x>0 & y>0
x>0 | y>0
any(x > 0)
all(x > 0)
Operadores de BIFURCACIONES ()
SENTENCIA IF Ejemplo 1: Dado un número entero determinar si es un número par o impar.
La sentencia If ejecuta la sentencia si la condición es verdadera.
% Determinar si un número es par o impar
x = input('Ingrese un número ');
if condicion r = mod(x,2);
Sentencias; if r==0,
end . disp('El número es par');
else
disp('El número es impar');
Existe también la bifurcación múltiple end

if condición 1
Observación: mod() Entrega el residuo de la división entera entre dos
Bloque de Sentencias 1; números
elseif condición 2
Bloque de Sentencias 2;
elseif condición 3
Bloque de Sentencias 3;
else
Observación: La opción por defecto else puede ser omitida, si no está
Bloque de Sentencias 4; presente no se hace nada en caso de que no se cumpla ninguna de las
condiciones
end
Ejemplo 2: Las siguientes líneas de código evalúan si se emite una licencia de conducir o no, con base en la edad del solicitante:

% Determinar si se emite la licencia


edad = input('Ingrese su edad ');
if edad < 16,
disp('Lo sentimos. Tendrá que esperar');
elseif edad < 18,
disp('Puede obtener un permiso para conducir');
elseif edad < 70,
disp('Puede obtener un licencia de conducir estándar');
else
disp('Los conductores mayores de 70 requieren una licencia especial');
end
Ejercicio 1: Escribir un código para ver si el número leído por pantalla se encuentra %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%55
entre 5 y 10 (5 < 𝑥 < 10). % Ejercicio 1
x = input('Ingrese el valor del número x ');
𝑎 if x>5 & x<10,
Ejercicio 2: Dados dos números a y b, escribir el código para ver si el número > 1 disp('x está en el intervalo');
𝑏
𝑎
y < 10 . else
𝑏
disp('x está fuera del intervalo');
end
Ejercicio 3: Escribir el código que permita calcular si el número leído x es
exactamente igual a tres o cinco.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%55
Ejercicio 4: Escribir un código que reciba como entrada un número entero n y % Ejercicio 2
devuelva el factorial de dicho número. a = input('Ingrese el valor del número a ');
b = input('Ingrese el valor del número b ');
if (a/b)>1 & (a/b)<10,
𝑛 𝑛!
Ejercicio 5: Escribir un código que calcule el número combinatorio = disp('a/b está en el intervalo [1 10]');
𝑚 𝑚! 𝑛−𝑚 !
else
disp('a/b está fuera del intervalo [1 10]');
Ejercicio 6: Escribir un código para evaluar 𝑓 𝑥 = |𝑥|. end

Ejercicio 7: Escribir un código para encontrar las raíces de 𝑎𝑥 2 + 𝑏𝑥 + 𝑐 = 0. Los %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%55


valores de a, b y c son dados por pantalla. % Ejercicio 3
x = input('Ingrese el valor del número x ');
if x==3 | x==5,
Ejercicio 8: Escribir un código que calcule el total que una persona debe pagar al disp('x cumple con la condición pedida');
comprar N llantas en un almacén. El precio de cada llanta es de $120000 si se else
compra menos de 5 llantas y de $98000 si se compran de 5 a 10 llantas, y de $94000 disp('x no cumple con la condición');
si se compran más de 10. Lea el número de llantas de una compra y muestre el valor end
que debe pagar.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Ejercicio 4
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Ejercicio 6
n = input('Ingrese un valor entero n ');
x = input('Ingrese el valor del número x ');
j=2; factorial = 1;
if x<0,
while j <= n,
f = -x;
factorial =factorial*j;
else
j=j+1;
f = x;
end
end
disp(factorial)
disp(['El valor absoluto es ', num2str(f)]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%55
% Ejercicio 5
n = input('Ingrese un valor entero n ');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
m = input('Ingrese un valor entero m ');
% Ejercicio 7 Raices de la ecuacion cuadratica:
j=2; fn = 1;
a = input('Ingrese el valor del número a ');
while j <= n,
b = input('Ingrese el valor del número b ');
fn = fn*j;
c = input('Ingrese el valor del número c ');
j=j+1;
aux = b^2-4*a*c;
end
if aux < 0
j=2; fm = 1;
disp('Las raices son complejas');
while j <= m,
else
fm = fm*j;
x1 = (-b+sqrt(aux))/(2*a);
j=j+1;
x2 = (-b-sqrt(aux))/(2*a);
end
end
j=2; fnm = 1;
disp(['La primera raíz es ', num2str(x1)]);
while j <= (n-m),
disp(['La segunda raíz es ', num2str(x2)]);
fnm = fnm*j;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
j=j+1;
end
comb = fn/(fm*fnm);
disp(comb)
Ejercicio 9: Calcule el total que una persona debe pagar al comprar N latas de
cerveza. El precio por unidad es de $1500. Sin embargo, existe la siguiente oferta:
menos de cuatro no tiene descuento, 4 o 5 latas tienen un 10% de descuento, de 6 a
10 latas un 15%, y más de 10 un 20% de descuento. Lea el número de llantas de
una compra y muestre el valor que debe pagar.

Ejercicio 10: El valor de una pizza depende de su tamaño:


Tamaño Precio
1 12000
2 20000
3 28000
Cada ingrediente adicional cuesta $2000. Lea el tamaño de la pizza y el número de
ingredientes y muestre el valor que debe pagar.

Ejercicio 11: Liste todas las ternas 𝑎, 𝑏, 𝑐 de números enteros entre 1 y 20 que
cumplan la propiedad pitagórica: 𝑎2 + 𝑏 2 = 𝑐 2 .
Modifique la versión hecha para no listar las ternas repetidas.

Ejercicio 12: Genere un vector 𝑥 ∈ −10,10 con un incremento de 0.2. Evalúe


luego la función
𝑥
𝑥 2 + 3 cos 𝜋 , −10 ≤ 𝑥 < 0
3
𝑓 𝑥 = 3 𝑥=0
3𝑥
𝑡𝑔(𝑥) + 3𝑒 0 < 𝑥 ≤ 10
Grafique los resultados.

You might also like