Está en la página 1de 25

ALUMNO:

 Prado Flores Johan Matheo

DOCENTE:

 Ing. Elí Guayan H.

CURSO:

 Lenguaje de programación.

CICLO:

 II

SECCIÓN:

 “A”

TEMA:

 Trabajo práctico 2

TRUJILLO - PERÚ

2019
ÍNDICE

1era PREGUNTA...……………………………...……….……..……………………….….............2
a. Divisores de un numero……….…....….....……….……………...............................2
b. Prueba de escritorio….……………..……...............................................................2
c. Diagrama de flujo de la pregunta 1..…..…………….…………..............................3
2da PREGUNTA...……………………………...……….……..……...........................................4
a. Área máxima y minima….................…...……….………...…...................................4
b. Prueba de escritorio….……………..……................................................................4
c. Diagrama de flujo de la pregunta 2…....……………...………………………………4
3 PREGUNTA...……………………………...……………..……...........................................5
era

a. Function………………………..…....…...…………………….....................................5
b. Prueba de escritorio……….………..……...............................................................5
c. Diagrama de flujo de la pregunta 3……..…………….……………………………….6
4ta PREGUNTA...……………………………...……….……..……...........................................7
a. Programa de trayectoria de misiles..…...……….……………...............................7
b. Prueba de escritorio………………..……................................................................9
c. Diagrama de flujo de la pregunta 4………………….…………………………….…10
d. Ecuaciones y formulismo analítico …………………….......................................13
e. Reemplazo de datos y respuesta.……………………………..…………………….14
f. Grafica de variables……………………….…...………….….……...........................14
g. Comentario de la solución…………….….…………..……...……………………….15
h. Conclusiones del tema……………………...…………….……...…………………...15
5 PREGUNTA...……………………………...……….……..…….........................................16
ta

a. Datos e incógnita del problema…....…...……….……………...............................16


b. Esquema del problema……………..……..............................................................16
c. Hipótesis.…………………………………..…………….………………………………16
d. Ecuaciones y formulismo analítico …………………….......................................16
e. Reemplazo de datos y respuesta.……………………………..…….......................17
f. Grafica de variables……………………….…...………….….……...........................17
g. Comentario de la solución…………….….…………..……...……………………….17
h. Conclusiones del tema……………………...…………….……...….........................18

1
%PREGUNTA 1
%Divisores de un número
N=input('ingrese el numero entero positivo=')
D=1;
S=0;
while D<N
if mod(N,D)==0
S=S+D;
end
D=D+1;
end
%para ver si es perfecto
if S==N
disp('es perfecto')
else
disp('no es perfecto')
end
%Guardar el programa en documentos-Matlab con el nombre de divisores1

PRUEBA DE ESCRITORIO
%procedemos a elabora la prueba del programa
%escribimos en el comand window el nombre con que guardamos el programa
>>divisores1
Ingrese el numero entero positivo=7
n=
7
No es perfecto
%vemos que 7 no es perfecto

%ingresamos otro número a la prueba del algoritmo


>>divisores1
Ingrese el numero entero positivo=28
n=

28

Es perfecto

2
%Diagrama de Flujo de la pregunta 1

Verificar si el numero N
entero positivo es perfecto

Leer N

D=1;
s=0

D<N

Residuo(N/D)=0

S=S+D V F
S=N

D+1
No es
Es perfecto perfecto

IMPRIMIR

FIN

3
%PREGUNTA2
%calculamos el área máxima y mínima que se puede hacer con un alambre.
%al partirlo en dos mitades 3*x & L-3*x
%formamos area de un cuadrado y un triangulo equilátero
L=input('ingrese la longitud del alambre, L= ');
if L>0
x=0:0.1:L;
v='((L-3*x)/4).^2 + (sqrt(3)*x.^2)/4';
A=eval(v);
B=max(A)
C=min(A)
fprintf('obtener la máxima área: ',B)
fprintf('obtener la mínima área: ',C)
else
disp('Asigne un valor positivo para la longitud L del alambre')
end
%Guardamos el programa en documentos-Matlab con el nombre de areamaxmin

PRUEBA DE ESCRITORIO
%procedemos a elabora la prueba del programa
%escribimos en el comand window el nombre con que guardamos el programa
>>areamaxmin
ingrese la longitud del alambre,L= 12

B=

98.3538

C=

3.9163

Obtener la máxima área: 98.3538


Obtener la mínima área: 3.9163

%ingresamos otra longitud para comprobar su resultado


>>areamaxmin
Ingrese la longitud del alambre, L= 20

B=

273.2051

C=

10.8752

Obtener la máxima área: 273.2051


Obtener la mínima área: 10.8752

4
%Diagrama de Flujo de la pregunta 2

INICIO

Leer: L

L>0

v='((L-3*x)/4).^2 +
(sqrt(3)*x.^2)/4'

A=eval(v);
B=max(A)
C=min(A)

IMPRIMIR: Áreas
máximas y
mínimas.

FIN

5
%PREGUNTA 3

function [d] = DistPal(xo,yo,A,B,C)


%Calculamos la distancia del punto (xo,yo) con una recta
%donde
%xo: la abscisa del punto
%yo: la ordenada del punto
%A: la primera componente del vector normal de la recta
%B: la segunda componente del vector normal de la recta
%C: la multiplicación del punto (xo,yo) con el vector normal
%
d= abs(A*xo+ B*yo+ C)/ sqrt(A^2+B^2)
end
%Guardamos el programa en documentos-Matlab con el nombre de DistPal

PRUEBA DE ESCRITORIO
%escribimos en el comand window el nombre con que guardamos el programa.
a) Punto:(2,-4), recta:-2x+3,5y-6=0.

>> [d] = DistPal( 2,-4,-2,3.5,-6 )

d=

5.9537

%ingresamos otra recta y otro punto para hallar su distancia minima.


b) Punto:(11,2), recta: y=-2x+6.

>> [d] = DistPal( 11,2,2,1,-6 )

d=

8.0498

6
%Diagrama de Flujo de la pregunta 3

Hallaremos la distancia (la menor) de


un punto exterior p=(xo, yo) a la recta
A*x+B*y+C=0

LEER:(xo, yo, A, B, C)

La distancia es:

ȁ𝐴ሺ𝑥𝑜ሻ + 𝐵ሺ𝑦0ሻ + 𝐶ȁ
𝑑=
ξ𝐴2 + 𝐵2

IMPRIMIR: d

Fin

7
%PREGUNTA 4

%programa de la trayectoria de misiles


%theta1=angulo 1(en °)
%theta2=angulo 2(en °)
%vo1=velocidad inicial 1(en m/s)
%vo2=velocidad inicial de 2(en m/s)
%vo1x=vo1 en el eje x
%vo1y=vo1 en el eje y
%vo2x=vo2 en el eje x
%vo2y=vo2 en el eje y
%a1= theta 1 en radianes
%a2= theta 2 en radianes
%tt1=tiempo total del proyectil 1
%thmax1=tiempo hasta la altura máxima 1
%hmax1=altura máxima 1
%dAB=distancia de A hasta B
%g=aceleración de la gravedad en m/s^2
%dAC= distancia entre el punto A y C en metros
g=9.8;
theta1=input('coloque el valor del ángulo 1 en°:');
vo1=input('coloque la velocidad inicial 1 en m/s:');
dac=input('coloque la distancia entre el punto A y C en m:');
a1=theta1*pi/180;
vo1x=vo1*cos(a1);
vo1y=vo1*sin(a1);
tt1=2*vo1y/g;
thmax1=vo1y/g;
fprintf('el tiempo hasta la altura máxima del proyectil 1 es=%4.2f\n',thmax1)
fprintf('el tiempo hasta que impacte con el suelo el proyectil uno es=%4.2f\n',tt1)
dAB=vo1x*tt1;
fprintf('la distancia del proyectil 1 de A hasta B es=%4.2f\n',dAB)
hmax1=(vo1y^2)/(2*g);
t1=0:0.1:tt1;
x=vo1x*t1;
y=vo1y*t1-(0.5*g.*t1.^2);
plot(x,y,'m')
xlabel('eje x')
ylabel('eje y')
text(8000,4250,'trayectoria del proyectil 1')
gridon
holdon
%calculamos con respecto al proyectil 2
%tc1=tiempo de choque del proyectil 1
%ti1=tiempo desde la altura maxima hasta el tiempo de choque 1
%tc1=thmax1+ti1
%ademas sabemos que la velocidad en la altura maxima es 0 m/s
%entonces calcularemos el tiempo desde la altura maxima hasta el tiempo de
%choque
%vf1y=velocidad final 1 en el eje en el punto de choque
%por el dato del problema, la altura de choque es 0.8*hmax1
vf1y=sqrt(2*g*0.8*hmax1);
ti1=vf1y/g;
tc1=thmax1+ti1;
fprintf('el tiempo de choque entre el proyectil 1 y 2 es=%4.2f\n',tc1)

8
%dai=distancia de A hasta el impacto
dai=vo1x*tc1;
fprintf('la distancia desde A hasta el impacto de los proyectiles es=%4.2f\n',dai)
%dci=distancia entre el punto C y el punto de Impacto
dci=dac-dai;
fprintf('la distancia entre el punto C y el de impacto es=%4.2f\n',dci)
%Recordar
%vo1y=vo1 en el eje y
%vo2x=vo2 en el eje x
vo2x=dci/(tc1+5);
fprintf('la velocidad 2 en el eje x es=%4.2f\n',vo2x)
vo2y= (0.8*hmax1+(0.5*g*tc1^2))/(tc1+5);
fprintf('la velocidad inicial 2 en el eje y es=%4.2f\n',vo2y)
vo2=(vo2x^2+vo2y^2)/(sqrt(vo2x^2+vo2y^2));
fprintf('la velocidad de lanzamiento del proyectil 2 es=%4.2f\n',vo2)
%Recordar
%a2= theta 2 en radianes
a2=acos(vo2x/vo2);
theta2=a2*180/pi;
fprintf('el valor de theta2 en ° es=%4.2f\n',theta2)
%tt2=tiempo total del proyectil 2
tt2=2*vo2y/g;
%D=punto de impacto con el suelo del proyectil 2
disp('suponemos D como punto de impacto con el suelo del proyectil 2')
%dcd=distancia del punto C al D
dcd=vo2x*tt2;
t2=0:0.01:tt2;
x2=(dac-dcd)+(vo2x*t2);
y2=vo2y*t2-(0.5*g.*t2.^2);
plot(x2,y2,'b')
text(17000,4750,'trayectoria del proyectil 2')
text(14464.71,747.073,'choque entre los proyectiles')
text(15464.71,-10,'D')
text(0,-10,'A')
text(16320,-10,'B')
text(20000,-10,'C')
title('Colision entre 2 Proyectiles')
%Guardamos el programa en documentos-Matlab con el nombre de trayectoria1

PRUEBA DE ESCRITORIO

%escribimos en el comand window el nombre con que guardamos el programa.


>> trayectoria1

Coloque el valor del ángulo 1 en°:45

Coloque la velocidad inicial 1 en m/s: 400

Coloque la distancia entre el punto A y C en m: 20000

El tiempo hasta la altura máxima del proyectil 1 es=28.86

9
El tiempo hasta que impacte con el suelo el proyectil uno es=57.72

La distancia del proyectil 1 de A hasta B es=16326.53

El tiempo de choque entre el proyectil 1 y 2 es=54.68

La distancia desde A hasta el impacto de los proyectiles es=15464.71

La distancia entre el punto C y el de impacto es=4535.29

La velocidad 2 en el eje x es=76.00

La velocidad inicial 2 en el eje y es=300.18

La velocidad de lanzamiento del proyectil 2 es=309.65

El valor de theta2 en ° es=75.79

Suponemos D como punto de impacto con el suelo del proyectil 2

10
%PREGUNTA 5
%programa de las áreas
disp('1=area del triangulo')
disp('2=area del cuadrado')
disp('3=area del circulo')
disp('4=area del rectángulo')
área=input('coloque el área de que figura desea hallar:');
switcharea
case 1
%hallando el área del triangulo
B=input('coloque la base del triangulo:');
H=input('coloque la altura del triangulo:');
if B>0 & H>0
at= B*H/2;
%at: area Del triángulo
fprintf('el area del triangulo es=%4.2f\n', at)
else
disp('por favor coloque valores positivos')
end
case 2
%hallando el área del cuadrado
L=input('coloque el lado del cuadrado=');
if L>0
ac= L^2;
%ac: área del cuadrado
fprintf('el area del cuadrado es=%4.2f\n', ac)
else
disp('por favor coloque valores positivos')
end
case 3
%hallando el área del círculo
r=input('coloque el radio del circulo:');
if r>0
aci=pi*r^2;
%aci: área del circulo
fprintf('el área del circulo es=%4.2f\n', aci)
else
disp('por favor coloque valores positivos')
end
case 4
%hallando el área del rectángulo
B=input('coloque la base del rectángulo:');
H=input('coloque la altura del rectángulo:');
if B>0 & H>0
ar=B*H;
fprintf('el área del rectángulo es=%4.2f\n', ar)
else
disp('por favor coloque valores positivos')
end
otherwise
disp('escoja un área según las antes mencionadas con valores del 1 al 4')
end
%Guardamos el programa en documentos-Matlab con el nombre de áreas

11
PRUEBA DE ESCRITORIO

%escribimos en el comand window el nombre con que guardamos el programa.


>>áreas
1=área del triangulo
2=área del cuadrado
3=área del circulo
4=área del rectángulo
Coloque el área de que figura desea hallar:2
Coloque el lado del cuadrado=4
el área del cuadrado es=16.00
>>áreas
1=área del triangulo
2=área del cuadrado
3=área del circulo
4=área del rectángulo
Coloque el área de que figura desea hallar:3
Coloque el radio del circulo:5
El área del circulo es=78.54
>>áreas
1=área del triangulo
2=área del cuadrado
3=área del circulo
4=área del rectángulo
Coloque el área de que figura desea hallar: 1
Coloque la base del triangulo: 4
Coloque la altura del triangulo: 5
El área del triangulo es=10.00

>>áreas
1=área del triangulo
2=área del cuadrado
3=área del circulo
4=área del rectángulo
Coloque el área de que figura desea hallar:2
Coloque el lado del cuadrado=-6
Por favor coloque valores positivos

12
%Diagrama de Flujo de la pregunta 5

INICIO

LEER: área

Área

Other w.
1 2 3 4

Leer: B,H Leer: L Leer: r Leer: B, H

Imprimir:
‘escoja
un área
B&H L>= r> B&H según las
>=0 0 =0 >=0 antes
menciona
das con
valores
del 1 al
4

at=B*H/2 ac= L^2 aci= pi*r^2 ar=B*H

IMP:at IMP:ac IMP: aci IMP: ar

FIN FIN FIN FIN FIN

13
%PREGUNTA 6
% programa para determinar la expresión
S=0
n =0
m= input('números de términos m:')
for n=0:m
S= sqrt(12)*(S +(-1/3)^n/2*n+1)
end
fprintf('El valor (suma) de la serie es: %15f\n',S)
format long
%Guardamos el programa en documentos-Matlab con el nombre de expresión1

PRUEBA DE ESCRITORIO

%escribimos en el comand window el nombre con que guardamos el programa.


>>expresión1

Número de términos m: 5

El valor (suma) de la serie es S: 2358.67677112735

%ingresamos otro valor de ‘m’ para hallar la suma total.


>> expresión1

Número de términos m= 10

El valor (suma) de la serie S: 1177281.93498877

14
%Diagrama de Flujo de la pregunta 6

INICIO

S=0

n=0

LEER: m

1 m

1 𝑛
S=ξ12 ∗ σ𝑛=𝑚
𝑛=0 ቀ− 3ቁ /ሺ2𝑛 + 1ሻ

IMPRIMIR: S

FIN

15
%PREGUNTA 7
% programa para determinar suma menores a 50
c=0; suma=0; men=0;
%men= número menor a 50
SM= input(´ingrese la cantidad de números a sumar SM:’)
while c < SM
c= c + 1
numero = input(‘ingrese un numero=’);
if numero < 50
men= men +1
suma = suma + numero;
end
end
fprintf(‘la suma de los números menores a 50 es= %4.5f/n’,suma);
%Guardamos el programa en documentos-Matlab con el nombre de sumamenores50

PRUEBA DE ESCRITORIO

%escribimos en el comand window el nombre con que guardamos el programa.


>>sumamenores50

Ingrese la cantidad de números a sumar SM= 4

Ingrese un numero= 25

Ingrese un numero= 90

Ingrese un numero= 35

Ingrese un numero= 70

La suma de los números menores a 50 es= 60.00000

%ingresamos otros números para hallar la suma de esos números menores que 50.
>>sumamenores50

Ingrese la cantidad de números a sumar SM= 5

Ingrese un numero= 15

Ingrese un numero= 95

Ingrese un numero= 40

Ingrese un numero= 73

Ingrese un numero= 20

La suma de los números menores a 50 es= 75.00000

16
%Diagrama de Flujo de la pregunta 7

INICIO

c=0
Suma=0
men= 0

LEER: SM

c< SM

c = c +1

LEER: numero

Numero
<50

men = men +1

suma = suma +
numero

FIN

17
%PREGUNTA 8
positivo=0
negativo=0
nulo=0
while true
n = input('\nIngrese la cantidad de números a evaluar:')
if n >0
for i=1:n
numero= input('\nIngrese el numero a evaluar:')
if numero > 0
positivo = positivo + 1
elseif numero==0
nulo = nulo + 1
else numero < 0
negativo = negativo + 1
end
end
fprintf('la cantidad de numeros positivos es: %i',positivo);
fprintf('la cantidad de numeros nulos es: %i',nulo);
fprintf('la cantidad de numeros negativos es: %i',negativo);
break
else
input('el numero ingresado no es correcto. Intente nuevamente')
end
end
%Guardamos el programa en documentos-Matlab con el nombre de numerosma1

PRUEBA DE ESCRITORIO

%escribimos en el comand window el nombre con que guardamos el programa.


>>numerosma1
positivo =
0
negativo =
0
nulo =
0
Ingrese la cantidad de números a evaluar:5
n=
5

Ingrese el numero a evaluar:-8


Ingrese el numero a evaluar:-9
Ingrese el numero a evaluar:0
Ingrese el numero a evaluar:0
Ingrese el numero a evaluar:4

la cantidad de numeros positivos es: 1


la cantidad de numeros nulos es: 2
la cantidad de numeros negativos es: 2

18
%ingresamos otros números para hallar cuantos son mayores, menores e iguales a
cero.
>>numerosma1
positivo =
0
negativo =
0
nulo =
0
Ingrese la cantidad de números a evaluar:4
n=
4

Ingrese el numero a evaluar:-5


Ingrese el numero a evaluar:-4
Ingrese el numero a evaluar:0
Ingrese el numero a evaluar:3
Ingrese el numero a evaluar:1

la cantidad de numeros positivos es: 2


la cantidad de numeros nulos es: 1
la cantidad de numeros negativos es: 2

19
%Diagrama de Flujo de la pregunta 9

INICIO

Positivo = 0
Negativo = 0
Nulo = 0

TRUE IMPRIMIR:
Positivo,
negativo, nulo

LEER: n

i= 1: n n>0

LEER:
FIN
numero(N) IMPRIMIR:
falso

N <0 N =0 N>0

nu= nu + 1 po = po +1
ne = ne +1

20
%PREGUNTA 9
n=input('Ingrese el numero de trabajadores: ');
A=[0];
SH=0;
PH=30;
for i=1:n
fprintf('HORAS LABORADAS POR EL TRABAJADOR %4.0f\n',i)
for k=1:7
fprintf('DIA %4.0f\n',k);
A(i,k)=input('Ingrese el numero de horas laboradas: ');
if A(i,k)<0
disp('VUELVA A INGRESAR UN NUMERO DE HORAS POSITIVO PORFAVOR')
A(i,k)=input('Ingrese el numero de horas laboradas: ');
end
end
end
for i=1:n
for k=1:7
SH=SH+A(i,k);
end
end
PagoTotal=SH*PH;
fprintf('EL PAGO TOTAL DE LA EMPRESA PARA LOS TRABAJADORES
%4.2f\n',PagoTotal)
%Guardamos el programa en documentos-Matlab con el nombre de pago1

PRUEBA DE ESCRITORIO
>> pago1
Ingrese el numero de trabajadores: 4
HORAS LABORADAS POR EL TRABAJADOR 1
DIA 1
Ingrese el numero de horas laboradas: 8
DIA 2
Ingrese el numero de horas laboradas: 4
DIA 3
Ingrese el numero de horas laboradas: 7
DIA 4
Ingrese el numero de horas laboradas: 3
DIA 5
Ingrese el numero de horas laboradas: 2
DIA 6
Ingrese el numero de horas laboradas: 7
DIA 7
Ingrese el numero de horas laboradas: 8
HORAS LABORADAS POR EL TRABAJADOR 2
DIA 1
Ingrese el numero de horas laboradas: 7
DIA 2
Ingrese el numero de horas laboradas: 8
DIA 3
Ingrese el numero de horas laboradas: 4
DIA 4
Ingrese el numero de horas laboradas: 5

21
DIA 5
Ingrese el numero de horas laboradas: 4
DIA 6
Ingrese el numero de horas laboradas: 8
DIA 7
Ingrese el numero de horas laboradas: 7
HORAS LABORADAS POR EL TRABAJADOR 3
DIA 1
Ingrese el numero de horas laboradas: 5
DIA 2
Ingrese el numero de horas laboradas: 3
DIA 3
Ingrese el numero de horas laboradas: 8
DIA 4
Ingrese el numero de horas laboradas: 6
DIA 5
Ingrese el numero de horas laboradas: 8
DIA 6
Ingrese el numero de horas laboradas: 4
DIA 7
Ingrese el numero de horas laboradas: 6
HORAS LABORADAS POR EL TRABAJADOR 4
DIA 1
Ingrese el numero de horas laboradas: 4
DIA 2
Ingrese el numero de horas laboradas: 5
DIA 3
Ingrese el numero de horas laboradas: 5
DIA 4
Ingrese el numero de horas laboradas: 8
DIA 5
Ingrese el numero de horas laboradas: 7
DIA 6
Ingrese el numero de horas laboradas: 6
DIA 7
Ingrese el numero de horas laboradas: 5
EL PAGO TOTAL DE LA EMPRESA PARA LOS TRABAJADORES 4860.00

22
%Diagrama de Flujo de la pregunta 9

INICIO

A=[0]
SH=0
PH=30 i=1:n

i=1:n
SH=SH+A(i,k)

IMPRIMIR:
HORAS POR PagoTotal=SH*PH
C/T

K=1:7 FIN

Ingresar el número
de horas laboradas

Vuelva a
ingresar si
<0

23
%PREGUNTA 10
%Diagrama de Flujo de la pregunta 10

INICIO

Cadena de
tiendas
farmacéuticas

LEER: C= sucursales; T= tiendas;


N= empleados

Sucursal Sucursal Sucursal Sucursal


1 2 3 4

Ventas de cada Ventas de cada Ventas de cada Ventas de cada


empleado*tiendas empleado*tiendas empleado*tiendas empleado*tiendas

Realizar una sumatoria total


de todos los resultados

FIN

24

También podría gustarte