-- earth.adb some Constants and equations about earth and sun with Ada.Text_IO; use Ada.Text_IO; with Ada.Numerics.Elementary_Functions; procedure Earth is use Ada.numerics; use Elementary_Functions; package FLT_IO is new Ada.Text_IO.Float_IO(float); use FLT_IO; E_Radius : float := 6370.0; -- KM E_Mass : float := 5.97E24; -- Kg E_Cir_Area : float := Pi * E_Radius * E_Radius; -- KM**2 Orbit_Time : float := 365.2422 * 24.0 * 3600.0; -- seconds in a year Orbit_R : float := 149.0E6; -- KM Orbit_Circum : float := 2.0 * Pi * Orbit_R; -- KM Orbit_vel : float := Orbit_Circum / Orbit_Time; -- KM/sec Sun_Radius : float := 696000.0; -- KM Sun_Mass : float := 333000.0 * E_Mass; -- Kg G_univers : float := 6.672E-11; -- nt meter**2 /Kg**2 -- multiply by 1000 to convert KM to meters, KM/sec to meters/sec F_centrip : float := (E_Mass * (Orbit_vel * 1000.0)**2 ) / (Orbit_R * 1000.0); -- newtons F_attrac : float := (G_univers * E_Mass * Sun_Mass) / (Orbit_R*1000.0 * Orbit_R*1000.0); -- newtons begin Put_Line("Earth - Sun data"); Put(E_Radius); Put_Line(" = Earth radius in KM"); Put(E_Mass); Put_Line(" = Earth mass in Kg"); Put(E_Cir_Area); Put_line(" = Earth circular area in KM**2"); Put(Orbit_Time); Put_Line(" = Orbit time, seconds in a year"); Put(Orbit_R); Put_Line(" = Orbit radius in KM"); Put(Orbit_Circum); Put_Line(" = Orbit circumfrence in KM"); Put(Orbit_vel); Put_line(" = Orbital velocity in KM/sec"); Put(Sun_Radius); Put_Line(" = Sun radius in KM"); Put(Sun_Mass); Put_line(" = Sun mass in Kg"); Put(G_univers); Put_line(" = universal gravitational constant in nt meter**2 /Kg**2"); Put(F_centrip); Put_Line(" = Centripital force in newtons"); Put(F_attrac); Put_Line(" = Force of attraction in newtons"); end Earth;