2011/05/21

Construccion de reloj de sol. Programa en Basic



cls


'                         CONSTANTES
pi#=4*atn(1) '3.141594


' Angulo de la ecliptica=23§ 27'
g=23
m=27
s=0
eclip.seg=g*60*60+m*60
eclip.dec=g+m/60
eclip.rad=eclip.dec*2*pi#/360
' -------------------------------------


'                           VARIABLES




l=1  ' Altura del campo del cuadrante (vertical)=distancia del polo del reloj
     ' al pie de la linea de las XII
     ' Ancho del cuadrante (horizontal) = dimension en la longitud Norte-Sur


' latitud del cuadrante=37§ 36' 18"
g=37
m=36
s=18
la.c.s=g*60*60+m*60+s
la.c.d=g+m/60+s/(60*60)
la.c.r=la.c.d*2*pi#/360


' longitud del cuadrante y difrencia horaria oficial
g=1                           'hora de adelanto respecto a inglaterra
m=0
s=59
lo.c.s=g*60*60+60+m*60+s
lo.c.d=g+m/60+s/(60*60)
lo.c.r=la.c.d*2*pi#/360




' Declinacion del cuadrante (Relojes verticales)
'g=20
'm=2
's=2
'd.c.s=g*60*60+m*60+s        ' en segundos
'd.c.d=g+m/60+s/(60*60)      ' en grados
'd.c.r=d.c.d*2*pi#/360       ' en radianes
' --------------------------------------------




'                           CALCULOS




' Relojes Ecuatoriales
' calculo de las lineas horarias limites.
' definidas por los angulos orto y ocaso


d1$=" \                            \  #######,.###  \           \"
print using d1$;"Angulo de la ecliptica";eclip.seg;"segundos"
print using d1$;"";eclip.dec;"grados"
print using d1$;"";eclip.rad;"radianes"
print
print using d1$;"Latitud del cuadrante ";la.c.s;"segundos"
print using d1$;"";la.c.d;"grados"
print using d1$;"";la.c.r;"radianes"
print
cosu=tan(eclip.rad)*tan(la.c.r)
tanu=(sqr(1-cosu^2))/cosu
orto.rad=atn(tanu)
orto.dec=orto.rad*360/(2*pi#)


print using d1$;"tangente de la ecliptica";tan(eclip.rad);"..."
'print using d1$;"tangente de la latitud";tan(la.c.r);"..."
print using d1$;"Coseno del angulo orto";cosu;"..."
print using d1$;"Angulo orto ";orto.rad;"radianes"
print using d1$;"";orto.dec;"grados"
print using d1$;"Se deben eliminar del dibujo";int(orto.dec/15);"horas"
call seguir






print "RELOJES HORIZONTALES"
PRINT "--------------------"
g=l/(sin(la.c.r)+(cos(la.c.r))*tan(la.c.r+eclip.rad))
print using d1$;"Ancho del cuadrante";l;"metros"
print using d1$;"Longitud del gnomon";g;"metros"
print using d1$;"Angulo con la horizontal :";la.c.d;"Latitud"
s.l=sin(la.c.r)
'PRINT using d1$;"Seno de la latitud ";s.l
print "Angulos de cada linea horaria con las XII"
  d2$=" \          \   ###,.###   #########,.###"
print "      Hora      Angulo           tangente"
print "-----------------------------------------"
for n=1 to 12
t=tan(n*15*2*pi#/360)
print using d2$;"Hora "+str$(n);(360/(2*pi#))*atn(s.l*t);t
next n


call seguir
' CALCULO DE LA DECLINACION DEL CUADRANTE
'La declinacion del cuadrante es el angulo que forman su perpendicular con
'la direccion de la meridiana.Esta es la sombra de una varilla vertical
'en el momento de maxima elevacion del sol.


'Calculo de la perpendidular al cuadrante
'Datos f=angulo horizontal con dos puntos de la fachada del cuadrante
'      l1=longitud del taquimetro al primer punto
'      l2=longitud del taquimetro al segundo punto
g=56
m=36
s=20
l1=7.58
l2=7.46
f.seg=g*60*60+m*60   'angulo que forma el taquimetro con los puntos 1 y 2
f.dec=g+m/60+a/(60*60)
f.rad=f.dec*2*pi#/360
b=l2*cos(f.rad)      'calculo auxiliar
a=l1-b               ' idem
h=l2*sin(f.rad)      ' idem
d=l1*cos(atn(h/a))   'distancia del punto 1 a la perpendicular desde el
                     'taquimetro a la pared.
d1$=" \                                                 \  #######,.###  "
print using d1$;"Distancia del punto 1 al punto perpendicular de la fachada";d




'hora1  =024523
'angulo1=555800


' hora de la observacion
h=14
m=45
s=23
ho.ob.s=h*60*60+m*60+s
ho.ob.d=h+m/60+s/(60*60)
'ho.ob.r=ho.ob.d*2*pi#/360


' angulo observado
g=55
m=58
s=0
an.ob.s=g*60*60+m*60+s
an.ob.d=g+m/60+s/(60*60)
an.ob.r=ho.ob.d*2*pi#/360




' hora del paso del sol por el meridiano
dia=19
h=11
m=57.3
s=0
pgm1.s=h*60*60+m*60+s
pgm1.d=h+m/60+s/(60*60)
'correccion de la longitud
pgm1.d=pgm1.d+lo.c.d/15   ' se suma la correccion por estar al oeste
pgm1.r=pgm1.d*2*pi#/360


'declinacion solar del dia que se efectua la observacion
g=-23
m=25.5
s=0
dec1.s=g*60*60+m*60+s
dec1.d=g+m/60+s/(60*60)
dec1.r=dec1.d*2*pi#/360


'angulo horario
an.ho.d=pgm1.d-ho.ob.d
an.ho.grados=an.ho.d*15
an.ho.r=an.ho.grados*2*pi#/360


'angulo que forma la sombra arrojada de la plomada con el norte verdadero.
beta.r=atn(sin(an.ho.r)/(sin(la.c.r)*cos(an.ho.r)-cos(la.c.r)*tan(pgm1.r)))
beta.d=beta.r*360/(2*pi#)




print using d1$;"Hora de paso del sol en radianes";pgm1.r
print using d1$;"Angulo horario en radianes";an.ho.r
print using d1$;"Angulo sombra-norte en radianes";beta.r
print using d1$;"Angulo de la sombra con el norte verdadero";beta.d
print using d1$;"Angulo de la sombra con la perpendicular del cuadrante";an.ob.d
print using d1$;"Angulo de la perpendicular con el norte verdadero";beta.d+an.ob.d
primera=beta.d+an.ob.d




'call seguir


'hora2  =034912
'angulo2=692300
' hora de la observacion
h=15
m=49
s=12
ho.ob.s=h*60*60+m*60+s
ho.ob.d=h+m/60+s/(60*60)
'ho.ob.r=ho.ob.d*2*pi#/360


' angulo observado
g=69
m=23
s=0
an.ob.s=g*60*60+m*60+s
an.ob.d=g+m/60+s/(60*60)
an.ob.r=ho.ob.d*2*pi#/360




'angulo horario
an.ho.d=pgm1.d-ho.ob.d
an.ho.grados=an.ho.d*15
an.ho.r=an.ho.grados*2*pi#/360


'angulo que forma la sombra arrojada de la plomada con el norte verdadero.
beta.r=atn(sin(an.ho.r)/(sin(la.c.r)*cos(an.ho.r)-cos(la.c.r)*tan(pgm1.r)))
beta.d=beta.r*360/(2*pi#)


print "-------------------"
print "Segunda observacion"
print using d1$;"Angulo horario en radianes";an.ho.r
print using d1$;"Angulo sombra-norte en radianes";beta.r
print using d1$;"Angulo de la sombra con el norte verdadero";beta.d
print using d1$;"Angulo de la sombra con la perpendicular del cuadrante";an.ob.d
segunda=beta.d+an.ob.d
print using d1$;"Angulo de la perpendicular con el norte verdadero";segunda
d.c.d=(primera+segunda)/2
d.c.d=30   ' declinacion del cuadrante en forma decimal
d.c.r=d.c.d*(2*pi#)/360
print "+++++++++++++++++++++++++++++++++++++++++++++"
print using d1$;"Declinacion del cuadrante";d.c.d


call seguir


print "RELOJES VERTICALES"
PRINT "------------------"
g=l/(cos(la.c.r)/tan(la.c.r-eclip.rad)+sin(la.c.r))
print using d1$;"Altura del cuadrante";l
print using d1$;"Longitud del gnomon";g
print "               Angulo horario      tangente"
print "               ----------------------------"
for n=1 to 24
t=tan(n*15*2*pi#/360)
coti=(cos(d.c.r)/((cos(la.c.r))*t))-(sin(d.c.r))*tan(la.c.r)
print using d2$;"Hora "+str$(n);(360/(2*pi#))*atn(1/coti);1/coti
if n=12 then call seguir
next n
call seguir


print "CALCULO DEL GNOM0N"
PRINT "------------------"
senu=cos(la.c.r)*cos(d.c.r)
cosu=sqr(1-senu^2)
a.es.r=atn(senu/cosu)   ' angulo estilar que forma el gnomon con la subestilar
a.es.d=a.es.r*360/(2*pi#)
print using d1$;"Angulo estilar (gnomon con subestilar)";a.es.d
' lados del gnomon
l.par=g*cos(a.es.r)
l.per=g*sin(a.es.r)


a.su.r=atn(sin(d.c.r)/tan(la.c.r))
a.su.d=a.su.r*360/(2*pi#)
print using d1$;"Angulo de la subestilar con la vertical";a.su.d
' en el sentido de las agujas del reloj desde la vertical inferior
print using d1$;"Angulo de la subestilar con la horizontal";270+a.su.d
' en sentido contrario de las agujas del reloj desde la horizontal derecha
print using d1$;"Longitud sobre el reloj del gnomon ";l.par
print using d1$;"Longitud perpendicular al reloj del gnomon ";l.per


print "....................................."
print "DISE¥O del CALENDARIO"
print "---------------------"


data -23,-27,-20,-10,-11,-20,0,0
data 0,0,11,20,20,10,23,27
for n=1 to 8
read gr(n),mi(n)
c.sig.d(n)=gr(n)+mi(n)/60  'declinacion del sol en el cambio del signo zodiacal
c(n)=c.sig.d(n)*2*pi#/360
a(n)=g*((1/sin(a.es.r-c(n)))-(1/sin(a.es.r+c(n))))*cos(c(n))
oc(n)=0.5*g*((1/sin(a.es.r-c(n)))+(1/sin(a.es.r+c(n))))*cos(c(n))
' angulo que forman las asintotas con la subestilar
coss(n)=sin(c(n)*(1/sin(a.es.r)))
sens(n)=sqr(1-coss(n)^2)
if coss(n)><0 then x(n)=atn(sens(n)/coss(n))     'angulo de las asintotas
x.d(n)=x(n)*360/(2*pi#)
if coss(n)><0 then b(n)=a(n)*(sens(n)/coss(n))   ' eje mayor
next n
print "(1)=distancia del polo del cuadrante al centro de la hiperbola"
print "(2)=angulo que forman las asintotas con la subestilar"


print "semieje     (1)     (2)  eje mayor             coordenadas"
print "----------------------------------  0.1   0.2   0.3   0.4   0.5   0.6 "
  d2$="###,.##  ###,.##  ###,.##  ###,.##  #.### #.### #.### #.### #.### #.###"
for n=1 to 8
x1=0:x2=0:x3=0:x4=0:x5=0:x6=0
if b(n)<>0 then
    x1=sqr(a(n)^2*(1+(0.1^2)/(b(n)^2)))
    x2=sqr(a(n)^2*(1+(0.2^2)/(b(n)^2)))
    x3=sqr(a(n)^2*(1+(0.3^2)/(b(n)^2)))
    x4=sqr(a(n)^2*(1+(0.4^2)/(b(n)^2)))
    x5=sqr(a(n)^2*(1+(0.5^2)/(b(n)^2)))
    x6=sqr(a(n)^2*(1+(0.6^2)/(b(n)^2)))
 end if
  print using d2$;a(n);oc(n);x.d(n);b(n);x1;x2;x3;x4;x5;x6
next n










'h=11
'm=57.8
'pgm2.s=h*60*60+m*60+s
'pgm2.d=h+m/60+s/(60*60)
'pgm2.r=la.c.d*2*pi#/360
'
'g.dec2=-23
'm.dec2=26.3


end




sub seguir
locate 23,20
print "Para seguir pulsar una tecla"
While inkey$="":wend
cls
end sub

Fecha de pentecostes. Programa en Basic


'fecha de pentecostes
cls
'pentecos.bas


an#=2008
x#=an#/19
a#=an#-int(x#)*19


x#=an#/100
b#=int(x#)
c#=an#-b#*100


x#=b#/4
d#=int(x#)
e#=b#-int(x#)*4


f#=int((b#+8)/25)


g#=int((b#-f#+1)/3)


y#=19*a#+b#-d#-g#+15
x#=y#/30
h#=y#-int(x#)*30


y#=c#/4
i#=int(y#)
k#=c#-int(y#)*4


y#=32+2*e#+2*i#-h#-k#
x#=y#/7
l#=y#-int(x#)*7


y#=a#+11*h#+22*l#
x#=y#/451
m#=int(x#)


y#=h#+l#-7*m#+114
x#=y#/31
n#=int(x#)
p#=y#-int(x#)*31


d1$="##   ##  ####"


print "dia  mes  a¤o"
print using d1$;p#+1;n#;an#

end

Transformacion de coordenadas. Programa en Basic


cls
A=0:h=0:d=0:Ho=0
pri:
on error goto  pri


pi=4*atn(1)


r=2*pi/360   'grados a radianes
g=1/r        'radianes a grados


locate  8,10:print "(hs) Hora sideral"
locate  9,10:print "(o ) Latitud del observador"
locate 10,10:print "COORDENADAS HORIZONTALES"
locate 11,10:print "(A ) Acimut.........."
locate 12,10:print "(h ) Altura.........."
locate 13,10:print "COORDENADAS ECUATORIALES HORARIAS"
locate 14,10:print "(Ho) Angulo horario.."
locate 15,10:print "(d ) Declinacion....."
locate 16,10:print "COORDENADAS ECUATORIALES ABSOLUTAS"
locate 17,10:print "(Ar) Ascension recta."
locate 18,10:print "(d ) Declinacion....."
locate 19,10:print "COORDENADAS ECLIPTICAS"
locate 20,10:print "(lo) Longitud........"
locate 21,10:print "(la) Latitud........."


color 2,8
locate  8,40:'input hs$:call co(hs$,hs)
hs$="012 13 02"
locate  9,40:'input o$
'o$="041 12 06"
o$="-042 13 14"
call co(o$,o):print o$
locate 11,40:'input A$
'A$="310 42 02"
A$="023 17 22"
call co(A$,A):print A$
locate 12,40:'input h$
'h$="-071 42 06"
h$="-015 20 00"
call co(h$,h):print h$
color 4,7


if A=0 and h=0 then
  locate 14,25:input Ho$:call co(Ho$,Ho)
  locate 15,25:input  d$:call co( d$,d )
end if
if A=0 and h=0 and Ho=0 and d=0 then goto pri
if A<>0 and h<>0 then  gosub eh.ho


if A=0 and h=0 then
  m=atn(tan(d)/cos(Ho))
  A=atn(tan(Ho)*cos(m)/sin(o-m)): locate 11,25:call gra(A*g):print gr;mi;se
  h=pi/2-atn(tan(o-m)/cos(A))
  locate 12,35:call gra(h*g):print gr;mi;se
end if


end


'--------------------------------------------
sub cuadrante(y,z)
  shared pi
  if y>0 and z<pi then y=y
  if y>0 and z>pi then y=y+pi
  if y<0 and z<pi then y=y+pi
  if y<0 and z>pi then y=y+2*pi
end sub
'-------------


eh.ho:
  m=atn(tan((pi/2)-h)*cos(A))
  Ho=atn(tan(A)*sin(m)/cos(o-m))
  call cuadrante(Ho,A)
  locate 14,35:call gra(Ho*g):print gr;mi;se
  d=atn(tan(o-m)*cos(Ho))
  locate 15,35:call gra(d*g) :print gr;mi;se
return
'----------------


sub s
while inkey$="":wend
end sub
'----------------
sub co(h$,h)
  shared r
  sig=1
  if left$(h$,1)="-" then sig=-1:h$=right$(h$,9)
  h=val(left$(h$,3))+(val(mid$(h$,5,2)))/60+(val(right$(h$,2)))/3600
  h=sig*r*h
  if sig=-1 then h$="-"+h$
end sub
'-----------------
sub gra(g1)
  shared gr,mi,se
  sig=1:if g1<0 then sig=-1
  gr=int(abs(g1))
  m1=60*(abs(g1)-gr):mi=int(m1)
  s1=60*(m1-mi):se=cint(s1)
  gr=sig*gr

2011/05/19

AÑOS BISIESTOS


Los años bisiestos son los que el mes de Febrero tiene 29 días en lugar de 28. Los últimos años bisiestos son los que indican abajo con una letra b delante:

  1911 b.1912   1913   1914   1915 
b.1916   1917   1918   1919 b.1920 
  1921   1922   1923 b.1924   1925 
  1926   1927 b.1928   1929   1930 
  1931 b.1932   1933   1934   1935 
b.1936   1937   1938   1939 b.1940 
  1941   1942   1943 b.1944   1945 
  1946   1947 b.1948   1949   1950 
  1951 b.1952   1953   1954   1955 
b.1956   1957   1958   1959 b.1960 
  1961   1962   1963 b.1964   1965 
  1966   1967 b.1968   1969   1970 
  1971 b.1972   1973   1974   1975 
b.1976   1977   1978   1979 b.1980 
  1981   1982   1983 b.1984   1985 
  1986   1987 b.1988   1989   1990 
  1991 b.1992   1993   1994   1995 
b.1996   1997   1998   1999 b.2000 
  2001   2002   2003 b.2004   2005 
  2006   2007 b.2008   2009   2010 
  2011 b.2012   2013   2014   2015 
b.2016   2017   2018   2019 b.2020 

Si deseas calcular si un año es  bisiesto se comprueba si las dos ultimas cifras son divisibles por 4 o son 00 y es divisible por 400, por ejemplo: 1988  tomaremos las 2 ultimas cifras y vemos que 88 es divisible por 4 pues se puede dividir por 4 y no deja resto: 88 / 4 = 22, así que 1988 es un año bisiesto.
El año 1900 no es bisiesto pues aunque acaba en 2 ceros no es divisible por 400, pero el año 2000 si es bisiesto pues es divisible por 400. ( 2000 / 400 = 5 y no deja resto alguno).


Programa en Basic para el calculo del Ascendente astronomico

INTRODUCCIÓN:

Actualmente la proliferación de programas informáticos que pueden descargarse gatuítamente desde la red hace innecesario el estudio de cálculos astronómicos para el astrónomo aficionado. No obstante si se quiere profundizar en algunos conceptos matemáticos este articulo sera de utilidad.

Podemos basar todos nuestros cálculos en el empleo de tablas de efemérides que nos dan las posiciones planetarias para cada día. Este sistema tiene el inconveniente de que si queremos emplear programas informáticos debemos introducir como datos, las efemérides del día que nos interesa y las del día siguiente para que el ordenador calcule la interpolación. La lentitud de este procedimiento hace aconsejable que aprendamos a calcular diréctamente las efemérides sin necesidad de tablas, ya que esto no es excesívamente complicado requiriendo solamente unos conocimientos de matemáticas bastante elementales.
En todos los cálculos astronómicos se utiliza una forma de expresar una fecha que se denomina DÍA JULIANO. A partir de ese dato haremos todos los cálculos, por ejemplo el día de la semana que corresponde a esa fecha.
El Ascendente y el Medio Cielo también pueden obtenerse gráficamente sin necesidad de cálculos como puede verse en este ejemplo .


PROGRAMACIÓN DEL CALCULO DEL ASCENDENTE

--------------------------------------------------------------------------------
Cálculo del Ascendente en cualquier latitud y para cualquier hora del día.

--------------------------------------------------------------------------------


A continuación se expone una forma de realizar este calculo sin necesidad de recurrir a tablas, y también el correspondiente programa escrito en Basic, que puede traducirse fácilmente a cualquier otro lenguaje de programación.
Pasos a seguir para realizar este calculo:
1º).- Debe convertirse la Hora Sideral en Ascensión Recta.
Para esto se tendrá en cuenta que 4 minutos de tiempo es 1º de Ascensión Recta.
De esta forma tendremos la Ascensión Recta del Medio Cielo (armc)
2º).- Se añadían 90º a la armc y obtendremos la Ascensión Oblicua del Ascendente (a)
3º).- Se calcula la longitud del Medio Cielo (MC)
4º).- Se calcula la longitud del Ascendente (H1)
5º) Si estamos en el hemisferio Sur se invierten los ángulos. añadiendo 180º a los resultados.


A continuación daremos el programa escrito en BASIC que calcula automáticamente la longitud del Medio Cielo y del Ascendente:


'datos de un ejemplo que pueden ser sustituidos por otros

hs$="18:04:22":la$="51N00"
' En este ejemplo se ha tomado una hora sideral de 18h, 4m y 2s, y una latitud de 51 grados, norte.
'Buscamos los valores dados por las tablas de Dalton para el Medio Cielo (meci$) y para el Ascendente (asce$), y los anotamos para comprobar después que nuestros cálculos son correctos.

meci$=" 1(10)":asce$=" 2( 1)33"
' En estas tablas se indica el signo con su símbolo, pero para hacer los cálculos sustituimos el símbolo por un numero entre paréntesis, empezando en Aries que es el nº 1 y terminando en piscis que es el numero 12. Delante del paréntesis se pone el numero de grados dentro del signo y después del paréntesis , los minutos.

'..................
' Empezamos por borrar la pantalla del ordenador con la instrucción cls

cls
' A continuación damos el valor de la eclíptica. Esto puede hacerse mas exáctamente con la formula que la relaciona con el año en que estamos, pero para estos cálculos es suficiente con este valor aproximado.

e$="23:28:00"
'Ahora damos el valor de la constante "pi". Podríamos ponerla por su valor numérico aproximado 3.141592, pero esta otra forma de ponerlo es mas exacta: es el producto de 4 por el arco cuya tangente vale 1.
pi=4*atn(1)
' a continuación creamos la variable "gr", que nos sera de ayuda para transformar los grados en radianes y los radianes en grados. Como un circulo completo tiene 360 grados o bien 2*pi radianes, el cociente entre estos dos valores sera el factor de conversión. Esto es necesario en todos los programas informáticos pues los datos se dan en grados y los cálculos se hacen en radianes.
gr=2*pi/360

'......................
' Transformamos el dato inicial de la hora sideral que viene dado como un texto (hs$) por su valor numérico (hs), para ello vamos leyendo sus componentes, las dos primeras cifras son horas, las dos del centro son minutos y las dos ultimas son segundos. Las transformamos en horas, para ello las dos primeras se dejan como están pues son horas, las dos del centro se dividen por 60 y las dos ultimas se dividen por 3600 ( es decir 60x60).

hs= val(left$(hs$,2))+val(mid$(hs$,4,2))/60+val(right$(hs$,2))/3600
' si el valor de hs fuese precisamente 24, lo transformamos en cero, pues es un circulo horario completo.
if hs=24 then hs=0
' Hacemos lo mismo que hicimos con la hora sideral con la latitud y la declinación de la eclíptica y las ponemos en grados con decimales
la=val(left$(la$,2))+val(right$(la$,2))/60
e#=val(left$(e$,2))+val(mid$(e$,4,2))/60+val(right$(e$,2))/3600

' ................
' Ahora calculamos la ascensión recta del medio cielo (armc) que no es sino la hora sideral expresada en grados:

armc=hs*360/24
' A partir de aquí es fácil calcular ella longitud del Medio Cielo a partir de esta formula:
tan(MC)=tan(armc)/cos(e)
De aquí se deduce que la longitud del MC sera el arco cuya tangente (atn) es ese cociente:
MC=atn(tan((armc)*gr)/cos(e#*gr))/gr
' Se dividió por el factor de conversión gr para pasar los radianes a grados.
' Ahora ajustamos el resultado a los cuadrantes:

if MC<0 mc="">
MC=MC+180
if MC>=360 then MC=MC-360

if hs>=0 and hs=<6 mc="">

if hs>18 and hs=<24 mc="">
' Con esto hemos terminado el calculo del Medio Cielo y podemos pasar al calculo del Ascendente.
'................
' Los primero es calcular la ascensión oblicua del ascendente (a), para ello basta con añadir 90 grados a la ascensión recta del medio cielo.
a=armc+90
' y ajustamos los cuadrantes:
if a= 90 then a= 90.0010
if hs=12 and a=270 then a=270.0026
if a=270 then a=270.0001
if a>=360 then a=a-360
' calculamos la variable auxiliar AA
AA= (atn((tan(la*gr))/cos(a*gr)))/gr
' con ella calculamos la longitud del ascendente H1
H1=(atn(tan(a*gr)*cos(AA*gr)/cos((AA+e#)*gr)))/gr
' y ajustamos el resultado al cuadrante:
if H1<0>12 then H1=H1+180
if H1<0 h1="">

H1=H1+180
if H1>=360 then H1=H1-360
if hs>=18 then H1=H1-180

'..................
'Ahora bastara con transformar los resultados en el formato de grados, minutos y segundos:
call trans(H1,H1$)
call trans(MC,MC$)
' y ya podemos imprimir los resultados y compararlos con los que anotamos desde las tablas de Dalton u otra cualquiera y así comprobar que los resultados son correctos:

print "latitud: ";la$;" hora sideral: ";hs$
d$= "\ \ ###,.## \ \ \ \"
print using d$;"Medio Cielo ";MC;MC$;meci$
print using d$;"Ascendente ";H1;H1$;asce$

end

'..................

sub trans(x,x$)

s=int(x/30)+1
ga=x-(s-1)*30:g=int(ga)
m=cint((ga-g)*60)
if m=60 then m=0:g=g+1
if g=30 then g=0:s=s+1
if s=13 then s=1
x$=str$(g)+"("+str$(s)+")"+str$(m)

end sub

2011/05/15