PRACTICA 6 –MATLAB
1. SWITCH… CASE… OTHERWISE … END (MULTIBIFURCACION)
Ejemplo: Implementar el siguiente archivo script:
x=input('x= ');
switch x
case pi/5; f=sin(3*x)*exp(-x/2);
case 5; f=sqrt(x+5)*(x^2+5);
case 6.1; f=x^2.6;
otherwise; f=0;
end
fprintf('f(%4.3f)=%f\n',x,f)
2. WHILE – END
Estructura repetitiva: Un bucle iterativo o interacción de una secuencia de instrucciones hace que se repita
su ejecución mientras se cumpla una condición. El número de iteraciones normalmente está determinado
por el cambio en la condición dentro del mismo bucle, aunque puede ser forzado o explicito por otra
condición. Por la forma de ejecución del bucle tenemos a la sentencia while, la cual trabaja según la
evaluación de condición, y a la sentencia for, que trabaja según el recorrido de un contador.
Ejemplo: Implementar un script que calcule la suma de los 10 primeros número naturales.
k=1;
suma=0;
while k<=10
suma=suma+k;
k=k+1;
end
fprintf('Suma10=%i\n',suma)
Instituto Superior “Hipólito Unanue” – Arequipa -1-
3. FOR … END
Ejemplo: Implementar un script que calculi la suma de los 10 primeros número naturales.
n=10;
suma=0;
for k=1:10
suma=suma+k;
end
fprintf('Suma es: %i\n',suma)
EJERCICIOS DE APLICACION
1. Dado el vector v1=[-1,3,6,11,-15,2,-7,-18], implemente un script que calcule y muestre valores de los
resultados al sumar todos los números positivos y todos los número negativos.
Solución:
v=[-1,3,6,11,-15,2,-7,-18];
sn=0;
sp=0;
for k=1:length(v)
if v(k)>=0
sp=sp+v(k)
else
sn=sn+v(k)
end
end
fprintf('Suma positivos=%i\n',sp)
fprintf('Suma negativos=%i\n',sn)
2. Implemente un función de nombre facto que calcule el factorial de un número cualquiera; el programa
deberá responder ante el ingreso del dato.
>> facto(0)
ans =
1 function X=facto(N)
p=1;
>> facto(4) for k=1:N
p=p*k;
ans = end
24 X=p;
>> facto(5)
ans =
120
Instituto Superior “Hipólito Unanue” – Arequipa -2-
3. Implemente un script que calcule la sumatoria de los primeros n números cuadrados perfectos.
Solución:
n=input('n= ');
Scp=0;
for k=1:n
Scp=Scp+k^2;
end
fprintf('Suma: %i\n',Scp)
4. Implemente una función de nombre exponencial que calcule la aproximación de ex por la serie de
Maclaurin, con un error de 10-4, donde x y n son ingresados por el usuario.
𝑥 𝑥2 𝑥3 𝑥 (𝑛−1) 𝑥𝑛
𝑒𝑥 = 1 + + + +⋯ +
1! 2! 3! (𝑛 − 1)! 𝑛!
>> Maclaurin(10, 2) function R=Maclaurin(x,n)
ans = p=1;
61 for k=1:n
p=p+((x^k)/facto(k));
>> Maclaurin(10, 3) end
R=p;
ans =
227.6667
5. Dada la ecuación de 2do grado: ax2 + bx + c = 0, implemente un script que calcule y muestre las raíces
de dicha ecuación y de qué tipo son dependiendo de su discriminante, donde a , b y c son ingresados
por el usuario.
a=input('a= ');
b=input('b= ');
c=input('c= ');
d=b^2-4*a*c;
if d>0
disp('Raices reales')
elseif d==0
disp('Raices reales iguales')
else
disp('Raices complejas')
end
x1=(-b+sqrt(d))/2;
x2=(-b-sqrt(d))/2;
fprintf('x1=%8.6f \nx2=%8.6f\n',x1,x2);
Instituto Superior “Hipólito Unanue” – Arequipa -3-
6. Escriba un programa que permita determinar si un número entero dado es par o impar. (Utilizar el
operador mod)
n=input('Ingrese un número:');
espar=mod(n,2);
if espar==0
disp('Es par')
else
disp('Es ImPar')
end
7. Implemente un script que muestre en pantalla la siguiente lista de artículos de una tienda:
[1] Zapatos………… $ 200.00
[2] Pantalones…….$ 100.00
[3] Camisas ……….. $ 80.00
Y que el programa permita al usuario elegir el tipo de artículo a comprar, además que pueda ingresar la
cantidad que desea comprar. Finalmente el programa deberá mostrar el valor total a pagar.
>> articulos
Ingrese el código del producto que desea comprar:2
Ingrese la cantidad de producto a comprar:10
Pago total por pantalones: 1000.00
artículos.m
codigo=input('Ingrese el código del producto que desea comprar:');
cantidad=input('Ingrese la cantidad de producto a comprar:');
resultado=0;
if codigo==1
resultado=cantidad*200;
fprintf('Pago total por zapatos: %.2f \n',resultado);
elseif codigo==2
resultado=cantidad*100;
fprintf('Pago total por pantalones: %.2f \n',resultado);
else
resultado=cantidad*80;
fprintf('Pago total por camisas: %.2f \n',resultado);
end
Instituto Superior “Hipólito Unanue” – Arequipa -4-
8. Utilizando el operador relacional > (mayor que), escriba un archivo.m que permita definir si un número
a es mayor que un número b. El programa debe admitir ingresar los número a y b, e imprimir el
resultado a es mayor que b, o a es menor que b, o a es igual a b
9. Implemente un programa que permita ingresar un vector con N números, y posteriormente, permita
evaluar la media aritmética.
vec=input('Ingrese un vector:');
suma=0;
for k=1:length(vec)
suma=suma+vec(k);
end
fprintf('La suma es: %8.2f \n',suma);
Instituto Superior “Hipólito Unanue” – Arequipa -5-