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
>>