Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema:
Trabajo N°2 de Lenguaje de Programación
Profesor:
Eli Guayan H.
Alumno:
Jurgen Tolentino M.
Facultad:
Ingeniería Mecánica
Curso:
Lenguaje de Programación
Ciclo:
II
2018
1
Índice 2
1. Pregunta 1 3
1.1. Explicación de pasos y datos otorgados 3
1.2. Usando el fichero M-file 3
1.3. Prueba en MATLAB 3
1.4. Diagrama de Flujo 4
2. Pregunta 2 5
2.1. Explicación de pasos y datos otorgados 5
2.2. Resolución en MATLAB 5
2.3. Grafico en MATLAB 7
3. Pregunta 3 7
3.1. Explicación de pasos y datos otorgados 7
3.2. Resolución en MATLAB 8
3.3. Grafico en MATLAB 9
4. Pregunta 4 9
4.1. Explicación de pasos y datos otorgados 9
4.2. Resolución en MATLAB 10
4.3. Grafico en MATLAB 11
5. Pregunta 5 11
5.1. Explicación de pasos y datos otorgados 11
5.2. Resolución en MATLAB 12
5.3. Grafico en MATLAB 13
2
1. Pregunta 1
Hacer un programa en Matlab que dado un número N nos diga si es perfecto o no
3
1.4. Diagrama de Flujo
INCIO
LEER: N
i=1:N-1
s=
rem(N,i)==0 F
s=s+i;
s=s+i;
F
N==s
Imprimir : El Imprimir: El
número es número no es
perfecto perfecto
END
4
2. Pregunta 2
Cómo debería cortarse el alambre para que su área sea máxima o mínima
2.1. Explicación de pasos y datos otorgados
Como me da la longitud del alambre(12), lo que haré será restarlo con un x, que va
desde 0 a 12, asi obtengo 2 numeros que sumados dan 12.
Luego, como el cuadrado tiene 4 lados, dire que x/4 es un lado y como el triangulo
tiene 3 lados iguales, dire que (12-x/3) es otro lado. Luego, sabemos que el area del
triangulo es sqrt(3)*((12-x)/3)^2/4 y el area del cuadrado seria: (x/4)^2
Finalmente los sumo y le aplico el comando eval, que evalua dicha funcion y luego
aplico el switch case, para ver las posibilidades de minimo y maximo
2.2. Usando el fichero M-file
%Pregunta 2
L=12;
x=0:0.01:L;
y='(x/4).^2+(L-x).^2/(12*sqrt(3))';
A=eval(y);
B=menu('Desea hallar el maximo o minimo de la funcion:,
'maximo','minimo');
switch B
case 1
F=max(A);
fprintf('el maximo de la suma de las areas es: %5.2f\n',F)
case 2
F=min(A);
fprintf('el minimo de la suma de las areas es: %5.2f\n',F)
end
5
3. Pregunta 3
Graficar 2 semi-circunferencias tangentes en un eje a otra circunferencia
3.1. Explicación de pasos y datos otorgados
En este ejercicio me da como dato, que la circunferencia tiene radio=1.5, y que las
otras 2 circunferencias radio=2. La primera semi-circunferencia se encuentra 3.5
encima del origen(y=3.5 y x=0) y la segunda semi-circunferencia, 3.5 debajo del
origen(y=-3.5 y x=0)
Con estos datos ya se puede hallar las 3 figuras
function [d]=Distpal(xo,yo,A,B,C);
d=abs(A*xo+B*yo+C)/sqrt(A^2+B^2);
fprintf('la distancia entre el punto y la recta es: %5.2f\n',d)
end
>> [d]=Distpal(2,4,-2,3.5,6);
la distancia entre el punto y la recta es: 3.97
>> [d]=Distpal(11,2,2,1,-6);
la distancia entre el punto y la recta es: 8.05
4. Pregunta 4
6
Realice la gráfica de la parábola girada
4.1. Explicación de pasos y datos otorgados
Me pide graficar una parábola y=x^2 en cierto intervalo, pero rotándolo 20º en el punto
(2,2). Para esto, aplicaré la ecuación de rotación, que es x=x1*cos(ángulo)-
y1*sen(ángulo) y y=x1*sen(ángulo)+ y1*cos(ángulo) y de esta forma hallar dicho gráfico.
Luego agregaré 2 ejes discontinuos paralelos a el eje x y al eje y en el punto (2,2) para que se
puedan apreciar dichos ejes luego de rotar 20º. Dicha rotación se puede hallar fácilmente,
ya que sé la pendiente (tangente de 20º) y los puntos (x=2 y y=2) por lo cual, con la
fórmula de la recta, puedo hallarlas
7
t4=2*t3; %tiempo total de C
tplot2=linspace(0,t4,200);
X2=-vox2*tplot2;%Distancia en el tiempo con lispace hacia la izquierda
Y2=voy2*tplot2-0.5*g*tplot2.^2;%Distancia en el tiempo con lispace
plot(X2+20000,Y2,'c')
grid
xlabel('Distancia')
ylabel('Altura')
title('Recorrido de A y C')
fprintf('la velocidad inicial de C es: %5.2f y su angulo es:
%5.2f\n',vo2,theta2)
5. Pregunta 5
Grafica de una intersección de dos rectas y hallar el punto de interseccion
8
5.2. Explicación de pasos y datos otorgados
Me dan como dato, dos rectas paramétricas, la primera recta vale x – 4 = t y y= -t, de
la cual reemplazando obtengo que: x + y - 4 = 0; y la segunda recta vale x – 1 =- t/2 y
y=-t, de la cual reemplazando obtengo que: x - y/2 -1 = 0.
Con estos datos, puedo graficar dichas rectas, para finalmente darme cuenta que
efectivamente se interceptan en un punto,
Finalmente, para hallar dicho punto, lo que haré, será convertir dichas rectas en
matrices, quedando finalmente que: [1 1 ; 1 -1/2]*[x ; y]=[ 4 ; 1]. Luego, multiplicamos
por su inversa, quedando finalmente: [x ; y]=inversa de([1 1; 1 -1/2])*[4 ; 1]
case 3
R=input('Ingrese la longitud del radio del circulo,R= ');
if R>0;
A=(pi)*R.^2;
fprintf('El area del círculo es:%5.2f metros^2\n',A)
else
fprintf('El area del círculo no existe')
end
case 4
B=input('Ingrese la longitud de la base, B=');
H=input('Ingrese la longitud de la altura, H=');
if B>0, H>0;
A=B*H;
fprintf('El area del rectángulo es:%5.2f metros^2\n',A)
else
fprintf('El area del rectángulo no existe')
9
end
end
6. Pregunta 6
10
Grafica de una intersección de dos rectas y hallar el punto de interseccion
Me dan como dato, dos rectas paramétricas, la primera recta vale x – 4 = t y y= -t, de
la cual reemplazando obtengo que: x + y - 4 = 0; y la segunda recta vale x – 1 =- t/2 y
y=-t, de la cual reemplazando obtengo que: x - y/2 -1 = 0.
Con estos datos, puedo graficar dichas rectas, para finalmente darme cuenta que
efectivamente se interceptan en un punto,
Finalmente, para hallar dicho punto, lo que haré, será convertir dichas rectas en
matrices, quedando finalmente que: [1 1 ; 1 -1/2]*[x ; y]=[ 4 ; 1]. Luego, multiplicamos
por su inversa, quedando finalmente: [x ; y]=inversa de([1 1; 1 -1/2])*[4 ; 1]
11
7. Pregunta 6
Grafica de una intersección de dos rectas y hallar el punto de interseccion
Me dan como dato, dos rectas paramétricas, la primera recta vale x – 4 = t y y= -t, de
la cual reemplazando obtengo que: x + y - 4 = 0; y la segunda recta vale x – 1 =- t/2 y
y=-t, de la cual reemplazando obtengo que: x - y/2 -1 = 0.
Con estos datos, puedo graficar dichas rectas, para finalmente darme cuenta que
efectivamente se interceptan en un punto,
Finalmente, para hallar dicho punto, lo que haré, será convertir dichas rectas en
matrices, quedando finalmente que: [1 1 ; 1 -1/2]*[x ; y]=[ 4 ; 1]. Luego, multiplicamos
por su inversa, quedando finalmente: [x ; y]=inversa de([1 1; 1 -1/2])*[4 ; 1]
12
INICIO
s=0
Leer:A
k=1:length(A)
A(k)<50
s+(A(k))
Imprimir: s
end
13