|
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:
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 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 |