Download 1. Diga si un número es par o impar Código (en extensión *.m, con
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