'''2) Criar um código que descreva o movimento de um paraquedista que salta de uma altura que deve ser informada pelo
usuário, mas que deva estar entre 1000m e 4000m. O paraquedas deve abrir na altura 700m, modificando a resistência do ar.
Ao final, o programa deve apresentar o gráfico de posição como função do tempo, indicando a posição de abertura do
paraquedas (ATENÇÃO: a qualidade de apresentação dos resultados é importante!). O programa também deve informar o tempo
total desde o pulo até o pouso.'''
import numpy as np
import matplotlib.pyplot as plt
ddt=0
g=9.81
dt=0.1
n1=1
n2=10
v=0
m=50
t=[0]
def veloci(v, gfic, dt):
if j==0:
v=v-gfic*dt
return v
altura=float(input('forneça uma altura entre 1000m e 4000m: '))
while altura<1000 or altura>4000:
altura=float(input('forneça uma altura entre 1000m e 4000m: '))
Pergunta
wesleytufinho42
'''2) Criar um código que descreva o movimento de um paraquedista que salta de uma altura que deve ser informada pelo
usuário, mas que deva estar entre 1000m e 4000m. O paraquedas deve abrir na altura 700m, modificando a resistência do ar.
Ao final, o programa deve apresentar o gráfico de posição como função do tempo, indicando a posição de abertura do
paraquedas (ATENÇÃO: a qualidade de apresentação dos resultados é importante!). O programa também deve informar o tempo
total desde o pulo até o pouso.'''
import numpy as np
import matplotlib.pyplot as plt
ddt=0
g=9.81
dt=0.1
n1=1
n2=10
v=0
m=50
t=[0]
def veloci(v, gfic, dt):
if j==0:
v=v-gfic*dt
return v
altura=float(input('forneça uma altura entre 1000m e 4000m: '))
while altura<1000 or altura>4000:
altura=float(input('forneça uma altura entre 1000m e 4000m: '))
pos=[altura]
while altura>2:
if 700<altura<=4000:
peso=m*g
far=n1*v*v
fr=peso-far
if fr>2:
gfic=fr/m
s=altura-v*dt-gfic*dt*dt*0.5
v=v+gfic*dt
ddt=ddt+dt
altura=s
pos.append(altura)
t.append(ddt)
else:
s=altura-v*dt
altura=s
ddt=ddt+dt
pos.append(altura)
t.append(ddt)
else:
j=j+1
v=veloci(v, gfic, dt)
s=altura-v*dt
altura=s
ddt=ddt+dt
pos.append(altura)
t.append(ddt)
tempototal = sum(t)
print('tempo de queda igual a {} segundo'.format(tempototal))
plt.figure(figsize=(15,10))
plt.plot(t, pos, color="blue")
plt.xlabel('tempo [s]', fontsize=16)
plt.ylabel('posição [m]', fontsize=16)
plt.title('posição vs tempo', fontsize=18)
plt.grid(True)
plt.show()
esse é meu programa para solucionar essa questão, gostaria de saber se alguém vê alguma simplificação ou erro da minha parte.
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.