Download practica2
Document related concepts
no text concepts found
Transcript
EJERCICIOS 2: METODOS NUMERICOS Alumno: Pablo Asencios Fredhy Ronald I. Diga si un número es par o impar. n = input ('Ingrese el número: ') if rem (n, 2) == 0 fprintf ('El numero es par') else fprintf ('El numero es impar') end << parimpar Ingrese el número: 86 n = 86 El numero es par >> II. Si dos números son positivos calcule su producto, en caso contrario calcule su suma. function numero (a, b) if (a > 0 & b >0) opcion = 1; else opcion = 2; end switch opcion case 1 c = (a*b) fprintf ('Entonces a*b = %10.0f\n', c) case 2 c = a+b fprintf ('Entonces a+b = %10.0f\n', c) end >> numero (15,20) c = 300 Entonces a*b = 300 >> III. Lea 5 números y determine el menor. function menoramayor n1 = input ('Ingrese el primer número:'); n2 = input ('Ingrese el segundo número:'); n3 = input ('Ingrese el tercer número:'); n4 = input ('Ingrese el cuarto número:'); n5 = input ('Ingrese el quinto número:'); A = [n1 n2 n3 n4 n5] for i = 1:4 for j = 1:4 if A (j) > A (j+1); puente = A (j); A (j) = A (j+1); A (j+1) = puente; end end end disp ('Ordenados de menor a mayor:') fprintf('%5.0f %5.0f %5.0f %5.0f %5.0f \n',A(1) , A(2) , A(3) , A(4) , A(5)) >> menoramayor Ingrese el primer número: 9 Ingrese el segundo número: 13 Ingrese el tercer número: 8 Ingrese el cuarto número: 16 Ingrese el quinto número: 5 A= 9 13 8 16 5 Ordenados de menor a mayor: 5 8 9 13 16 >> IV. Elabore un algoritmo que obtenga las raíces de una ecuación de segundo grado, contemplando el caso de raíces imaginarias. function segundogrado disp ('La función cuadrática tiene la forma: ax^2 + bx +c = 0') a = input (' Ingrese el coeficiente a : '); b = input (' Ingrese el coeficiente b : '); c = input (' Ingrese el coeficiente c : '); if a == 0 disp ('"a" debe ser diferente de cero') else D = b*b-4*a*c; if D < 0 disp ('La ecuación tiene raíces imaginarias') x1 = -b/ (2*a) + sqrt(-D)*i/ (2*a) x2 = -b/ (2*a) - sqrt(-D)*i/ (2*a) else x1 = (-b + sqrt(D))/ (2*a); x2 = (-b - sqrt(D))/ (2*a); fprintf ('La primera raíz es = %10.5f\n', x1) fprintf ('La segunda raíz es = %10.5f\n', x2) end end >> segundogrado La función cuadrática tiene la forma: ax^2 + bx +c = 0 Ingrese el coeficiente a : 2 Ingrese el coeficiente b : -3 Ingrese el coeficiente c : 3 La ecuación tiene raíces imaginarias x1 = 0.7500 + 0.9682i x2 = 0.7500 - 0.9682i >> V. Dados 3 longitudes compruebe si pueden formar un triángulo y luego clasifique el triángulo según sus ángulos. function triangulo disp('Existencia de un triángulo') a=input(' Ingrese primera longitud a:\n'); b=input(' Ingrese segunda longitud b:\n'); c=input(' Ingrese tercera longitud c:\n'); if a>(b-c)&a<(b+c)&b>(a-c)&b<(a+c)&c>(a-b)&c<(a+b) fprintf('Si existe este triángulo:\n'); else fprintf('No existe este triángulo:\n'); end M=[a b c]; M=sort(M); a=M(3); b=M(2); c=M(1); if a^2==b^2+c^2 fprintf(' Es un triángulo Rectángulo\n'); elseif a^2<b^2+c^2 fprintf(' Es un triángulo Acutángulo\n'); else fprintf(' Es un triángulo Obtusángulo\n'); end >> triangulo Existencia de un triángulo Ingrese primera longitud a: 3 Ingrese segunda longitud b: 4 Ingrese tercera longitud c: 5 Si existe este triángulo: Es un triángulo Rectángulo >> VI. Muestre un algoritmo que nos permita evaluar la función y graficar la función: function funtrammos disp('Es una función definida por tramos: f(x)= ') disp(' x^2 + 1 si x <= 0') disp(' x^2 + 3x + 2 si 0 < x < 3') disp(' x+1 si x >= 3') x1=-20:0.01:0; y1=x1.^2+1; x2=0.01:0.01:2.99; y2=x2.^2+3.*x2+2; x3=3:0.01:20; y3=x3+1; plot(x1,y1,'r',x2,y2,'g',x3,y3,'b'); grid on >> funtrammos Es una función definida por tramos: f(x)= x^2 + 1 si x <= 0 x^2 + 3x + 2 si 0 < x < 3 x+1 si x >= 3 >> VII. Lea 2 enteros a, b y obtenga el valor numérico de la función. function funnumer disp('Función definida por tramos: f(x)= ') disp(' 2a + b si a^2 - b^2 < 0'); disp(' a^2 - 2b si a^2 - b^2 = 0'); disp(' a+b si a^2 - b^2 > 0'); fprintf('\n'); a=input('Ingrese valor de a:\n'); b=input('Ingrese valor de b:\n'); c=a^2-b^2; fprintf(' a^2-b^2 = %g\n', c) if c<0 f=2*a+b; fprintf('para a=%g y b=%g la funcion f(x)= %g\n',a,b,f); elseif c==0 f=a^2-2*b; fprintf('para a=%g y b=%g la funcion f(x)= %g\n',a,b,f); else f=a+b; fprintf('para a=%g y b=%g la funcion f(x)= %g\n',a,b,f); end >> funnumer Función definida por tramos: f(x)= 2a + b a^2 - 2b a+b si a^2 - b^2 < 0 si a^2 - b^2 = 0 si a^2 - b^2 > 0 Ingrese valor de a: 2 Ingrese valor de b: 4 a^2-b^2 = -12 para a=2 y b=4 la funcion f(x)= 8 >> VIII. Lea 3 números e indique cual es el valor intermedio. function mediana n1 = input('Ingrese el primer número:'); n2 = input('Ingrese el segundo número:'); n3 = input('Ingrese el tercer número:'); A = [n1 n2 n3] for i = 1:2 for j = 1:2 if A(j) > A(j+1); puente = A(j); A(j) = A(j+1); A(j+1) = puente; end end end fprintf('El valor intermedio es: %10.6f\n',A(2)) >> mediana Ingrese el primer número:15 Ingrese el segundo número:8 Ingrese el tercer número:23 A = 15 8 23 El valor intermedio es: 15.000 >> IX. Dada la hora en horas, minutos y segundos encuentre la hora del segundo anterior. function hora h=input(' Ingrese la hora:\n'); if (h >= 0 & h <= 24) m = input(' Ingrese los minutos:\n'); if (m >= 0 & m <= 60) s = input(' Ingrese los segundos:\n'); if (s >= 0 & s <= 60) fprintf('La hora ingresada es: %gº %g´ %g" \n',h,m,s) s=s-1; fprintf('La hora al segundo anterior es: %gº %g´ %g" \n',h,m,s) else fprintf('No está en el rango de segundos\n') end else fprintf('No está en el rango de minutos\n') end else fprintf('No está en el rango de horas\n') end >> hora Ingrese la hora: 2 Ingrese los minutos: 30 Ingrese los segundos: 27 La hora ingresada es: 2° 30´ 27" La hora al segundo anterior es: 2° 30´ 26" >> X. 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 uno tiene un peso de 20%, 40%, 40% respectivamente. Un alumno es calificado según lo siguiente: Bueno: si su promedio está entre 16 a 20. Regular: si su promedio está entre 11 a 15. Malo: si su promedio está entre 6 a 10. function calificacion disp('Evaluar al alumno') T = input('Ingrese la nota de trabajo : '); if (T<=0 | T>= 20) disp(' " Error, las notas son de 0 a 20 "') T = input('Ingrese la nota de trabajo : '); else end M = input('Ingrese la nota de medio ciclo : '); if (M<=0 | M>= 20) disp(' " Error, las notas son de 0 a 20 "') M = input('Ingrese la nota de medio ciclo : '); else end F = input('Ingrese la nota de fin de ciclo : '); if (F<=0 | F>= 20) disp(' " Error, las notas son de 0 a 20 "') F = input('Ingrese la nota de fin de ciclo : '); else end prom = (0.2*T+0.4*M+0.4*F) if (prom >= 0 & prom <= 5) disp('Su calificación es : PESIMO') elseif (prom >= 6 & prom <= 10) disp ('Su calificación es : MALO') elseif (prom >= 11 & prom <= 15) disp ('Su calificación es : REGULAR') else (prom >= 16 & prom <= 20) disp ('Su calificación es : BUENO') end >> calificacion Evaluar al alumno Ingrese la nota de trabajo : 12 Ingrese la nota de medio ciclo : 13 Ingrese la nota de fin de ciclo : 10 prom = 11.6000 Su calificación es : REGULAR >>