Cálculo de los parámetros para un reloj de Sol analémico


     Este programa consta de dos partes independientes:

     En una se calcula los puntos horarios sobre la elipse.

     En otra se calcula la posición del observador sobre el eje Y.
     Para este cálculo es necesario introducir las fechas que queramos (que pueden ser los días 1 de cada mes, los inicios de las cuatro estaciones, etc.) y la declinación del Sol en esas fechas. El programa está construido de forma que el usuario va introduciendo en pantalla las fechas y las declinaciones solares, y los resultados del cálculo se van imprimiendo por la impresora.
     No está de más recordar algunos de estos datos:
Día 1
Ene
Feb
Mar
Abr
May
Jun
Jul
Ago
Sep
Oct
Nov
Dic
dSol -23´03-17´21-7´74+4´39+14´96+22´00+23´13+18´11+8´42-3´03-14´30-21´74
21 Dic.
21 Mar.
21 Jun
23 Sep.
dSol -23´4386
0
+23´4386
0

   Os recuerdo que estos programas son muy lentos, por lo que hay que tener un poco de paciencia (¡Ay, aquellos tiempos del MSDOS!) y no pulsar repetidamente que sí, creyendo que no ha cogido la orden. Estad seguros que la ha cogido, y cuando vuelva a repetir la pregunta después de haberle dicho ya que sí, decirle que no.

10 REM Reloj analémico en Basic

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

40 INPUT "¿Latitud Norte del lugar"; f: IF f < 0 THEN 40
50 INPUT "¿Longitud del lugar en grados (+ si es Oeste y - si es Este)"; l
60 INPUT "¿Meridiano central en grados"; l0
70 INPUT "¿Tiempo entre los puntos horarios (en minutos)"; g
80 INPUT "¿Altura del gnomom": altura

90 fr = f*gr: b = altura*TAN(fr): a = b/SIN(fr): c = SQR(a^2 - b^2)
100 mr = g*gr/4: zs = (l0 - l)*gr: H = zs - pi/2
101 INPUT "¿Calcular los puntos horarios (s, n)"; a$
103 IF a$ = "s" THEN 110
105 INPUT "¿Calcular la posición del observador segun la fecha (s, n)"; a$
107 IF a$ = "s" THEN 260
109 END

110 PRINT #2, "Latitud del lugar = "; l
120  PRINT #2, "Longitud del lugar = "; ABS(l);
123 IF l < 0 THEN PRINT #2, "º Este"
126 IF l > 0 THEN PRINT #2, "º Oeste"
130 PRINT #2, "Altura del gnomon = "; altura
140 PRINT #2, "Parámetros de la elipse: a = "; a; " b = "; b; " c = "; c
145 PRINT #2, ""

150 DO
160 IF H < -pi/2 THEN H = H + mr
170 LOOP UNTIL H > -pi/2

180 DO
190 tanalf = TAN(H)/SIN(fr)
200 x = (a*b*tanalf)/SQR(a^2 + b^2*tanalf^2)
210 y = b/a SQR(a^2 - x^2)
220 PRINT #2, "Hora="; H/(15*gr) + 12 - (l0 - l)/15; TAB(17); "x="; x; TAB(33); "y="; y
230 H = H + mr
240 LOOP UNTIL H > pi/2
250 GOTO101

260 PRINT ""
270 PRINT "Debe escribir una fecha y la declinación solar en esa fecha"
280 PRINT "Cuando no tenga más fechas teclee para terminar"
290 nada$ = " ": fecha$ = "Fecha:": posicion$ = "Posición: y="
300 DO
310 PRINT ""
320 INPUT "¿Fecha"; fcha$
330 IF fcha$ = "salir" THEN EXIT DO
340 INPUT "¿Declinación solar en esa fecha"; dec: dec = dec*gr: dec$ = STR$(dec)
350 d = a*COS(fr)*TAN(dec): d$ = STR$ (d)
360 PRINT #2, fecha$ + fcha$ + nada$ + posicion$ + d$
370 LOOP
380 GOTO 101


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