Download 1. Diga si un número es par o impar Código (en extensión *.m, con

Document related concepts
Transcript
Practica 2
PROGRAMACION EN MATLAB (Archivos M-file)
1. Diga si un número es par o impar
Código (en extensión *.m, con block de notas)
fprintf('\t\tReconocer si un número es Par\n')
nm = input('ingrese un número')
if(mod(nm,2) ~= 0)
fprintf('Este número es Impar\n')
else
fprintf('Este numero es Par\n')
end
Se obtiene (Corriendo el programa para nm= 13)
2. Si dos números son positivos calcule el producto en caso contrario calcule su
suma
fprintf('\t\tProducto o suma\n')
a = input('Ingrese primer número real')
b = input('Ingrese segundo número real')
prod=a*b
sum=a+b
if(a>0)
if (b>0)
sprintf('el Producto es:%f\n',prod)
else
sprintf('La suma es:%f\n',sum)
end
else
sprintf('La suma es:%f\n',sum)
end
Corriendo el programa se obtiene(ejemplo a , ejemplo b)
3. Lea cinco números y determine el menor
fprintf('\t\tnúmero menor\n')
for i = 1:5
n=input('Ingrese el siguiente número\n');
if(i==1)
m=n;
end
if(n < m)
m=n
end
end
sprintf('el menor número es: %f\n',m)
Corriendo el programa se obtiene
4. Elabore un algoritmo que obtenga las raíces de una ecuación de segundo
grado, contemplado el caso de raíces imaginarias
fprintf('\t\tRaices de una ecuacion de segundo grado ax^2+bx+c=0\n')
a=input('Ingrese el valor de a: \n');
if(a==0)
sprintf('esta ecuación no es de segundo grado\n')
else
b=input('Ingrese el valor de b: \n');
c=input('Ingrese el valor de c: \n');
if(4*a*c>b^2)
r1=-b/(2*a);
i1=sqrt(4*a*c-b^2)/(2*a);
r2=-b/(2*a);
i2=-sqrt(4*a*c-b^2)/(2*a);
sprintf('Las Raices Imaginarias son: (%f+i(%f) , %f+i(%f))\n',r1, i1,r2,i2)
else
raiz1=(sqrt(b^2 - 4*a*c)-b)/2*a;
raiz2=(-sqrt(b^2 - 4*a*c)-b)/2*a;
sprintf('Las Raices Reales son: (%f, %f)\n', raiz1, raiz2)
end
end
Corriendo el programa se obtiene
5. Dados tres longitudes compruebe si pueden formar un triángulo y luego
clasifique el triángulo según sus ángulos
function triangulo
for j =1:3
l(j) = input('Ingrese el siguiente lado\n');
end
m =l(1);
p=1;
ang =0;
for i =2:3
if (m< l(i))
m=l(i);
p=i;
end
end
switch p
case 1
if (m<(l(2)+l(3)))
ang=acos(((l(2))^2+(l(3))^2-(l(1))^2)/(2*l(2)*l(3)));
else
fprintf('No se puede formar un triangulo con esos lados\n')
end
case 2
if (m<(l(1)+l(3)))
ang=acos(((l(1))^2+(l(3))^2-(l(2))^2)/(2*l(1)*l(3)));
else
fprintf('No se puede formar un triangulo con esos lados\n')
end
case 3
if (m<(l(1)+l(2)))
ang=acos(((l(2))^2+(l(1))^2-(l(3))^2)/(2*l(2)*l(1)));
else
fprintf('No se puede formar un triangulo con esos lados\n')
end
end
if(ang~=0)
if (ang == pi/2)
fprintf('El Triángulo formado es Rectángulo\n')
else
if (ang<pi/2)
fprintf('El Triángulo formado es Acutángulo\n')
else
fprintf('El Triángulo formado es Obtusángulo\n')
end
end
end
Ejecutando el programa se obtiene
6. Muestre un algoritmo que nos permita evaluar la función y graficar la función
function evaluar
global fun1 fun2 fun3
fun1='x^2+1';
fun2='x^2+3*x+2';
fun3='x+1';
fprintf('La Ecuación f(x) esta definido como:\n','s')
fprintf('f(x)= x^2 + 1,
si x <= 0 \n','s')
fprintf('f(x)= x^2 + 3x + 2, si 0 < x <3 \n','s')
fprintf('f(x)= x + 1,
si x >= 3 \n','s')
n = input('Ingrese valor a evaluar\n');
x=n;
if (n<=0)
y=eval(fun1);
else
if (n>0)
if (n<3)
y=eval(fun2);
else
y=eval(fun3);
end
end
end
s1 = 'La evaluacion es f(x) = rp';
valor = num2str(y);
message = strrep(s1, 'rp', valor);
msgbox(message,' Respuesta','none')
x = linspace(-5,5,100);
y = (x.^2+1).*(x<=0) + (x.^2+3*x+2).*((x>0)&(x<3)) + (x+1).*(x>=3);
plot(x,y,'--mo','LineWidth',1,'MarkerEdgeColor','b','MarkerFaceColor','w','MarkerSize',10)
Ejecutando el programa se obtiene las siguientes ventanas
7. Lea dos enteros a, b y obtenga el valor numérico de la función
function evaluar2
global fun1 fun2 fun3
fun1='2*a+b';
fun2='a^2-2*b';
fun3='a+b';
fprintf('La Función f(a,b) esta definido como:\n','s')
fprintf('f(a,b)= 2*a + b,
si a^2 - b^2 < 0\n','s')
fprintf('f(a,b)= a^2 - 2b,
si a^2 - b^2 = 0\n','s')
fprintf('f(a,b)= a + b,
si a^2 - b^2 > 0\n','s')
a = input('Ingrese valor de a\n');
b = input('Ingrese valor de b\n');
if (abs(a)<abs(b))
y=eval(fun1);
else
if (abs(a)==abs(b))
y=eval(fun2);
else
y=eval(fun3);
end
end
s1 = 'La evaluacion es f(a,b) = rp';
valor = num2str(y);
message = strrep(s1, 'rp', valor);
msgbox(message,' Respuesta','none')
Ejecutando el programa se obtiene
8. Lea tres números e indique cual es el valor intermedio
fprintf('\t\tnúmero Intermedio\n')
sm=0;
for i = 1:3
n=input('Ingrese el siguiente número\n');
sm = sm + n;
if(i==1)
m=n;
s=n;
end
if(n < m)
m = n;
else
s=n ;
end
end
sm = sm -(s + m);
sprintf('el número Intermedio es: %f\n',sm)
Ejecutando el programa se obtiene
9. Dada la hora en horas, minutos y segundos encuentre la hora del segundo
anterior
fprintf('\t\tLa hora del segundo anterior\n')
h =input('Ingrese la Hora\n');
m =input('Ingrese los minutos\n');
s =input('Ingrese los segundos\n');
msn=0;
if (0 <= s)&(s < 60)
if (s==0)
s = 59;
m=m-1;
else
s=s-1;
end
else
fprintf('Ridículo, no puede ser dato (considere de 0 Seg a 59 Seg)\n')
msn=1;
end
if (-1 <= m)&(m < 60)
if (m == -1)
h=h-1;
m=59;
end
else
fprintf('Ridículo, no puede ser dato (considere de 0 Min a 59 Min)\n')
msn=1';
end
if (-1 <= h)&(h < 24)
if (h == -1)
h=23;
end
else
fprintf('Ridículo, no puede ser dato (considere de 0 Hr a 23 Hr)\n')
msn=1';
end
if (msn==0)
sprintf('La hora del segundo anterior es: %1.0f: %1.0f: %1.0f\n',h,m,s)
end
Ejecutando el programa se obtiene
10. En una universidad tiene como política considerar 3 notas en cada curso la
nota de trabajos T, la nota de medio ciclo M y la de fin de ciclo F, cada una
tiene un peso de 20%, 40%, 40% respectivamente. Un alumno es calificado
según lo siquiente:
Bueno: Si su promedio esta entre 16 a 20
Regular: Si su promedio esta entre 11 a 15.
Malo: si su promedio esta entre 6 a 10
fprintf('\t\tSistema de Calificación\n')
T =input('Ingrese la nota de Trabajos T\n');
M =input('Ingrese la nota de medio ciclo M\n');
F =input('Ingrese la nota final F\n');
prom = (2*T+4*M+4*F)/10;
if (15<prom)&(prom<21)
texto= 'BUENO';
end
if (10 < prom)&(prom<16)
texto= 'REGULAR';
end
if (5 < prom)&(prom < 11)
texto= 'MALO';
end
if (0 <= prom)&(prom < 6)
texto='NO HAY ADJETIVO PARA SU NOTA';
end
s1 = 'Su calificación es rp , Su promedio es np';
s1 = strrep(s1, 'rp',texto);
valor = num2str(prom);
message = strrep(s1, 'np',valor);
msgbox(message,'Calificación','none');
Ejecutando el programa se obtiene