Cálculo de las líneas horarias para un reloj de Sol vertical


     Este programa está escrito para que los datos calculados salgan por la impresora, como en el programa del reloj horizontal. Pero si queremos que salga en pantalla y no en papel solo tenemos que quitar #2, de todas las órdenes PRINT; por ejemplo: PRINT  #2,  "H=";  H que se imprime en papel, quedaría como PRINT  "H=";  H que se imprime en pantalla.

5 REM Reloj de Sol Vertical en Basic

10 OPEN "lpt1" FOR OUTPUT AS #2
20 pi = 3.14159265#: gr = pi/180

30 INPUT "¿Latitud Norte del lugar (en grados)"; b
40 IF b < 0 THEN 30
50 INPUT "¿Longitud del lugar en grados (+ si es Oeste y - si es Este)"; l
60 INPUT "¿Meridiano central en grados (+ si es Oeste y - si es Este)"; l0
70 INPUT "¿Altura del reloj"; hs
80 INPUT "¿Anchura de la mitad del reloj"; ws
90 INPUT "¿Tiempo entre las líneas horarias (en minutos)"; g

100 PRINT #2, "Latitud del lugar"; b; "Norte"
110 IF l < 0 THEN PRINT #2, "Longitud del lugar = "; l; "Este"
115 IF l > 0 THEN PRINT #2, "Longitud de lugar = "; l; "Oeste"
120 PRINT #2, "Longitud del meridiano central = "; l0
125 PRINT #2, "Tiempo entre líneas horarias = "; g; "minutos"
130 rs = ws/hs: br = b*gr: zs = gr*(l0-l): mr = g*gr/4: H = zs-pi/2
132 PRINT #2, "Punta del estilo en (0, -"; hs; ","; hs*tan(br); ")"

135 DO
136 IF H < -pi/2 THEN H = H + mr
137 LOOP UNTIL H > -pi/2
138 PRINT #2, ""

140 tanalf = TAN(H)*COS(br)
145 IF H > pi/2 THEN END

150 IF tanalf < -rs OR tanalf > rs THEN 200

160 x = tanalf*hs
170 PRINT #2, "H = "; H/(15*gr)+12-(l0-l)/15; TAB(15); "x = "; x
175 PRINT #2, ""
180 H = H+mr
190 GOTO 140

200 y = -ws/ABS(tanalf)
210 PRINT #2, "H = "; H/(15*gr)+12-(l0-l)/15; "y = "; y
215 PRINT #2, ""
220 H = H+mr
230 GOTO 140


Volver a Relojes de Sol | | Ir a Astronomía