task1.py (830B) - Raw
1 #!/usr/bin/python3 2 3 from math import sin, cos, sqrt, e, log, radians, degrees 4 5 6 def sinq(x): 7 return sin(x)**2 8 9 10 def sqr(x): 11 return x**2 12 13 14 # duota 15 B = radians(13) 16 17 # didysis pusašis 18 a = 6378137 19 20 # suspaudimas 21 alpha = 1/298.25722 22 23 # mažasis pusašis 24 b = a*(1-alpha) 25 26 # ekscentricitetas 27 e2 = (a**2-b**2)/(a**2) 28 29 # meridiano kreivumo spindulys 30 M = a*(1-e2)/((1-e2*sinq(B))**3/2) 31 32 # meridiano vertikalės kreivumo spindulys 33 N = a/sqrt(1-e2*sinq(B)) 34 35 # vidutinis kreivumo spindulys 36 R = sqrt(M*N) 37 38 # lygiagretės spindulys 39 r = N * cos(B) 40 41 # Lygiagretės lanko ilgis metrais 42 Sn = r/degrees(1) 43 44 # Trapecijos plotas esant 1 radiano platumai 45 P = sqr(b)/2 * ( sin(B)/(1-e2*sinq(B)) + 1/(2*e)*log( (1+e*sin(B))/(1-e*sin(B)) ) ) 46 47 g = globals() 48 for v in ["b", "e2", "M", "N", "R", "r", "Sn", "P"]: 49 print("%2s: %18.4f" % (v, g[v]))