Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
2.2 kB
1
Indexable
Never
import math
r=6356767
k=input("Какую высоту вводим? геометрическая 0, геопотенциальная 1: ")
if k==0:
	h=float(input("Геометрическая высота: "))
	H = (r * h) / (r + h)
else:
	H = float(input("Геопотенциальная высота: "))
	h = (r * H) / (r - H)

g0=9.80665
g=g0*(r/(r+h))**2
if (H>=-2001) and (H<0):
	Hx=-2000
	b=-0.0065
	Tx=301.15
	px=127774
elif (H>=0) and (H<=11000):
	Hx=0
	b=-0.0065
	Tx=288.15
	px=101325
elif (H>11000) and (H<20000):
	Hx=11000
	Tx=216.65
	b=0
	px=22632												
elif (H>=20000) and (H<32000):
	Hx=20000
	b=0.001
	Tx=216.65
	px=5474.87
elif (H>=32000) and (H<47000):
	Hx=32000
	b=0.0028 
	Tx=228.65
	px=868.014
elif (H>=47000) and (H<51000):
	Hx=47000
	Tx=270.65
	b=0
	px=110.906								
elif (H>=51000) and (H<71000):
	Hx=51000
	b=-0.0028 
	Tx=270.650
	px=66.9384
elif (H>=71000) and (H<80000):
	Hx=71000
	b=-0.002 
	Tx=214.65
	px=3.95639
T=Tx+b*(H-Hx)
R=287.05287
if b==0:									
	p=10**(math.log10(px)-((0.434294*g0*(H-Hx))/(T*R)))
else:
	p=10**(math.log10(px)-(g0/(b*R))*math.log10(T/Tx))
ro=p/(R*T)  								
a=20.046796*math.sqrt(T)
i=0
if (H>0):
	while (H>10):
		H/=10
		i+=1
	print ("Геопотенциальная высота: "+str(round(H,5))+' * 10^'+str(i)+' м')
	i=0
elif (H<0):
	while (H<-10):
		H/=10
		i+=1
	print ("Геопотенциальная высота: "+str(round(H,5))+' * 10^'+str(i)+' м')
	i=0
else:
	print("Геопотенциальная высота: 0 м")
print ("Ускорение свободного падения: "+str(round(g,5))+' м/с^2')
print ("Температура: "+str(round(T/100,5))+' * 10^2 K')
while (p>10):
	p/=10
	i+=1
if i==0:
	print ("Давление: "+str(round(p,5))+' Па')
else:
	print ("Давление: "+str(round(p,5))+' * 10^'+str(i)+' Па')
	i=0
if ro<1: 
	while (ro<1):
		ro*=10
		i+=1 
	print ('Плотность: '+str(round(ro,5))+' * 10^-'+str(i)+' кг/м^3') 
else: 
	print ('Плотность: '+str(round(ro,5))+' кг/м^3')
print ("Скорость звука: "+str(round(a/100,5))+' * 10^2 м/с')