Mostrando entradas con la etiqueta Programación. Mostrar todas las entradas
Mostrando entradas con la etiqueta Programación. Mostrar todas las entradas
2021/02/24
Tabla de Casas de Regiomontano. Programa en basic
'regio.bas
'Este programa produce una Tabla de Casas por el sistema de Regiomontano que se graba en un 'fichero con el nombre Regiomon.doc. Este fichero puede abrirse con cualquier procesador de 'textos.
'Las instrucciones utilizadas en el codigo son de Basic y pueden ser facilmente traducibles a 'cualquier lenguaje de programacion.
'Se producen las longitudes de las Casas 10, 11, 12, 1, 2 y 3, las otras no son necesarias pues basta con añadirles 6 signos.
2013/01/02
Coordenadas geocentricas del sol. Programa en Basic
'coordenadas del sol (basado en las formulas de Jean Meeus "Astronomical algorithms")
screen 9
cls
pi=4*atn(1)
screen 9
cls
pi=4*atn(1)
Longitud, ascension recta y declinacion del sol en un periodo determinado. Programa en Basic
cls
'calculamos el valor de pi y el coeficiente ra que pasa grados
'a radianes
pi=4*atn(1):ra=2*pi/360
Calculo del Dia Juliano. Programacion
'julia-da.bas
'--------------------------
cls
'd=19 :m=3 :a=1920 'fechas de ejemplo
2011/09/23
Calculo aproximado de efemerides planetarias. Programa en Basic
' EFEMERIDES PLANETARIAS
cls
dim b$(32)
c%=360
pi#=4*atn(1)
cd#=360/365.2422 ' grados recorridos en un dia medio
ra#=180/pi# ' factor para transformar radianes en grados multiplicando
' grados en radianes dividiendo
rr#=360/pi# ' el doble de ra#
2011/09/06
Programa en Basic. Cuspides, Ascendente y Medio Cielo
'casa10.bas
' Hora Sid Casa X CASAXI CASA XII Casa I CASA II CASA III
data "00:00:00"," 0( 1)"," 8.6( 2)","22.0( 3)","26( 4)10","12.4( 5)"," 2.4( 6)"
data "00:03:40"," 1( 1)"," 9.6( 2)","22.9( 3)","26( 4)51","13.1( 5)"," 3.4( 6)"
data "02:03:08"," 3( 2)","12.4( 3)","19.2( 4)","18( 5)12"," 6.6( 6)"," 0.7( 7)"
data "04:16:27"," 6( 3)","13.4( 4)","15.6( 5)","11( 6)39"," 3.3( 7)"," 1.3( 8)"
data "05:55:38","29( 3)"," 5.0( 5)"," 5.1( 6)","29( 6)13","23.9( 7)","23.2( 8)"
data "06:00:00"," 0( 4)"," 5.9( 5)"," 6.0( 6)"," 0( 7)00","24.0( 7)","24.1( 8)"
data "06:04:22"," 1( 4)"," 6.8( 5)"," 6.9( 6)"," 0( 7)47","24.9( 7)","25.0( 8)"
data "08:12:54"," 1( 5)"," 5.4( 6)"," 2.6( 7)","23( 7)31","20.1( 8)","23.2( 9)"
data "10:23:35"," 4( 6)"," 5.4( 7)","28.6( 7)","16( 8)30","16.3( 9)","24.4(10)"
data "11:56:20","29( 6)","26.8( 7)","16.9( 8)"," 3( 9)09"," 7.1(10)","20.4(11)"
data "12:00:00"," 0( 7)","27.6( 7)","17.6( 8)"," 3( 9)50"," 8.0(10)","21.4(11)"
data "12:03:40"," 1( 7)","28.3( 7)","18.3( 8)"," 4( 9)30"," 8.9(10)","22.6(11)"
data "14:30:21","10( 8)"," 0.7( 9)","17.7( 9)"," 4(10)55","23.6(11)","10.0( 1)"
data "16:46:16","13( 9)"," 0.7(10)","12.9(10)","20(11)09","19.4( 1)","22.0( 2)"
data "17:55:38","29( 9)","17.2(10)","11.2(11)","27(12)27","15.8( 2)","10.5( 3)"
data "18:00:00"," 0(10)","18.3(10)","12.7(11)"," 0( 1)00","17.3( 2)","11.7( 3)"
data "18:04:22"," 1(10)","19.5(10)","14.2(11)"," 2( 1)33","18.8( 2)","12.8( 3)"
data "20:41:41"," 8(11)"," 4.4(12)","17.5( 1)","12( 3)18"," 1.8( 4)","19.0( 4)"
data "22:49:53","11(12)","16.4( 1)"," 3.1( 3)","12( 4)43","28.7( 4)","16.8( 5)"
data "23:56:20","29(12)"," 7.4( 2)","21.1( 3)","25( 4)30","11.7( 5)"," 1.7( 6)"
data "24:00:00"," 0( 1)"," 8.6( 2)","22.0( 3)","26( 4)10","12.4( 5)"," 2.4( 6)"
'..................
for nn=1 to 21:read hs$,h10$,h11$,h12$,h1$,h2$,h3$: next
la$="51N00"
'..................
cls
e$="23:27:15"
pi#=4*atn(1)
ra#=2*pi#/360
'......................
hs#=val(left$(hs$,2))+val(mid$(hs$,4,2))/60+val(right$(hs$,2))/3600
if hs#=24 then hs#=0
la=val(left$(la$,2))+val(right$(la$,2))/60
la.c=la-11/60-29/(60*60) 'correccion de la latitud geografica
e#=val(left$(e$,2))+val(mid$(e$,4,2))/60+val(right$(e$,2))/3600
' ................
'Ascension Recta del Medio Cielo
armc=hs#*360/24
'Longitud del Medio Cielo
MC=atn(tan((armc)*ra#)/cos(e#*ra#))/ra#
if MC<0 then MC=MC+360
MC=MC+180
if MC>=360 then MC=MC-360
if hs#>=0 and hs#=<6 then MC=MC-180
if hs#>18 and hs#=<24 then MC=MC+180
'................
' polos
senx#=tan(e#*ra#)*tan(la.c*ra#)
tanx#=senx#/sqr(1-senx#^2)
ax#=atn(tanx#) ' ax en radianes
if ax#<0 then ax#=ax#+2*pi#
for n=1 to 5
if n=1 then casa$="Casa XI" :h$(n)=h11$
if n=2 then casa$="Casa XII":h$(n)=h12$
if n=3 then casa$="Casa I" :h$(n)=h1$
if n=4 then casa$="Casa II" :h$(n)=h2$
if n=5 then casa$="Casa III":h$(n)=h3$
a=0
t=n*30
a=armc+t 'Ascension Oblicua de la cuspide
if n=1 or n=5 then tanpolo#=sin(ax#/3)/tan(e#*ra#) ' casas XI y III
if n=3 then tanpolo#=tan(la*ra#) ' casa I
if n=2 or n=4 then tanpolo#=sin(2*ax#/3)/tan(e#*ra#) ' casas XII y II
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
'Longitud de la cuspide
AA#= (atn(tanpolo#/cos(a*ra#)))/ra#
cus(n)= (atn(tan(a*ra#)*cos(AA#*ra#)/cos((AA#+e#)*ra#)))/ra#
cus(1)=cus(1)-180
cus(2)=cus(2)-180
if cus(n)<0 and hs#>12 then cus(n)=cus(n)+180
do
if cus(n)<0 then cus(n)=cus(n)+360 else exit loop
loop
' print n;"cus ";cus(n)
if hs#=<6 and cus(1)> 90 and cus(1)<180 then cus(1)=cus(1)+180
if hs#=<6 and cus(2)> 90 and cus(2)<180 then cus(2)=cus(2)+180
if hs#>6 and hs#=<12 and cus(1)>180 and cus(1)<270 then cus(1)=cus(1)+180
if hs#>6 and hs#=<12 and cus(2)>180 and cus(2)<270 then cus(2)=cus(2)+180
if hs#>6 and hs#=<12 and cus(4)>270 and cus(4)<360 then cus(4)=cus(4)+180
if hs#>6 and hs#=<12 and cus(5)>270 and cus(5)<360 then cus(5)=cus(5)+180
if hs#>12 and hs#<18 and cus(1)>270 and cus(1)<360 then cus(1)=cus(1)+180
if hs#>12 and hs#<18 and cus(2)>270 and cus(2)<360 then cus(2)=cus(2)+180
if hs#>12 and hs#<18 and cus(4)> 0 and cus(4)< 90 then cus(4)=cus(4)+180
if hs#>12 and hs#<18 and cus(5)> 0 and cus(5)< 90 then cus(5)=cus(5)+180
if hs#>=18 and cus(1)>270 and cus(1)<360 then cus(1)=cus(1)+180
if hs#>=18 and cus(2)>270 and cus(2)<360 then cus(2)=cus(2)+180
if hs#>18 and cus(1)>0 and cus(1)< 90 then cus(1)=cus(1)+180
if hs#>18 and cus(2)>0 and cus(2)< 90 then cus(2)=cus(2)+180
if hs#>=18 and cus(4)>0 and cus(4)< 90 then cus(4)=cus(4)+180
if hs#>=18 and cus(5)>0 and cus(5)< 90 then cus(5)=cus(5)+180
if hs#>18 and cus(4)>90 and cus(4)<180 then cus(4)=cus(4)+180
if hs#>18 and cus(5)>90 and cus(5)<180 then cus(5)=cus(5)+180
' print n;"cus ";cus(n)
cus(n)=cus(n)+180
if cus(n)>=360 then cus(n)=cus(n)-360
if hs#>=18 then cus(3)=cus(3)-180
call trans(cus(n),cus$(n))
call trans(MC,MC$)
'..................
d$= "\ \ ###,.## \ \\ \"
if n=1 then print "latitud: ";la$;" hora sideral: ";hs$
if n=1 then print "----------------------------------------------"
if n=1 then print using d$;"Medio Cielo ";MC;MC$;h10$
print using d$;casa$ ;cus(n);cus$(n);h$(n)
if n=5 then print ".............................................."
next
'next
end
'..................
sub s: while inkey$="":wend: end sub
'..................
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
Determinacion del Medio Cielo y Ascendente
'casa9.bas
for n=1 to 21:read hs$,h11$,h12$,hs1$,hs2$,hs3$:next
' Hora Sid Casa X Casa I CASAXI CASA XII CASA II CASA III
data "00:00:00"," 0( 1)","26( 4)10"," 8.6( 2)","22.0( 3)","12.4( 5)"," 2.4( 5)"
data "00:03:40"," 1( 1)","26( 4)51"," 9.6( 2)","22.9( 3)","13.1( 5)"," 3.4( 6)"
data "02:03:08"," 3( 2)","18( 5)12","12.4( 3)","19.2( 4)"," 6.6( 6)"," 0.7( 7)"
data "04:16:27"," 6( 3)","11( 6)39","13.1( 3)","15.2( 5)"," 3.3( 7)"," 1.4( 8)"
data "05:55:38","29( 3)","29( 6)13"," 5.0( 5)"," 5.1( 6)","23.9( 7)","23.2( 8)"
data "06:00:00"," 0( 4)"," 0( 7)00"," 5.9( 5)"," 6.0( 7)","24.0( 7)","24.1( 8)"
data "06:04:22"," 1( 4)"," 0( 7)47"," 6.8( 5)"," 6.9( 6)","24.9( 7)","25.0( 8)"
data "08:12:54"," 1( 5)","23( 7)31"," 5.4( 6)"," 2.6( 7)","20.1( 8)","23.2( 9)"
data "10:23:35"," 4( 6)","16( 8)30"," 5.4( 7)","28.6( 7)","16.3( 9)","24.4(10)"
data "11:56:20","29( 6)"," 3( 9)09","26.8( 7)","16.9( 8)"," 7.1(10)","20.4(11)"
data "12:00:00"," 0( 7)"," 3( 9)50","27.6( 7)","17.6( 8)"," 8.0(10)","21.4(11)"
data "12:03:40"," 1( 7)"," 4( 9)30","28.3( 7)","18.3( 8)"," 8.9(10)","22.6(11)"
data "14:30:21","10( 8)"," 4(10)55"," 0.7( 9)","17.7( 9)","23.6(10)","10.0( 1)"
data "16:46:16","13( 9)","20(11)09"," 0.7(10)","12.9(10)","19.4( 1)","22.0( 2)"
data "17:55:38","29( 9)","27(12)27","17.2(10)","11.2(11)","15.8( 2)","10.5( 3)"
data "18:00:00"," 0(10)"," 0( 1)00","18.3(10)","12.7(11)","17.3( 2)","11.7( 3)"
data "18:04:22"," 1(10)"," 2( 1)33","19.5(10)","14.2(11)","18.8( 2)","12.8( 3)"
data "20:41:41"," 8(11)","12( 3)18"," 4.4(12)","17.5( 1)"," 1.8( 3)","19.0( 3)"
data "22:49:53","11(12)","12( 4)43","16.4( 1)"," 3.1( 3)","28.7( 4)","16.8( 5)"
data "23:56:20","29(12)","25( 4)30"," 7.4( 2)","21.1( 3)","11.7( 5)"," 1.7( 6)"
data "24:00:00"," 0( 1)","26( 4)10"," 8.6( 2)","22.0( 3)","12.4( 5)"," 2.4( 6)"
la$="51N00"
'..................
cls
e$="23:28:00"
pi#=4*atn(1)
ra#=2*pi#/360
'......................
hs=val(left$(hs$,2))+val(mid$(hs$,4,2))/60+val(right$(hs$,2))/3600
if hs=24 then hs=0
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
' ................
armc=hs*360/24 'Ascension Recta del Medio Cielo
MC=atn(tan((armc)*ra#)/cos(e#*ra#))/ra# 'Longitud del Medio Cielo
if MC<0 then MC=MC+360
MC=MC+180
if MC>=360 then MC=MC-360
if hs>=0 and hs=<6 then MC=MC-180
if hs>18 and hs=<24 then MC=MC+180
'................
'a=armc+90 'Ascension Oblicua del Ascendente
a=armc+120
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
AA= (atn((tan(la*ra#))/cos(a*ra#)))/ra#
H1= (atn(tan(a*ra#)*cos(AA*ra#)/cos((AA+e#)*ra#)))/ra# 'Longitud del Ascendente
if H1<0 and hs>12 then H1=H1+180
if H1<0 then H1=H1+360
H1=H1+180
if H1>=360 then H1=H1-360
if hs>=18 then H1=H1-180
senx=tan(e#*ra#)*tan(la*ra#)
cosx=sqr(1-senx^2)
tanx=senx/cosx
x=atn(tanx) ' x en radianes
tanpolo11=sin(2*x/3)*(1/tan(e#*ra#))
AA= (atn(tanpolo11/cos(a*ra#)))/ra#
H11= (atn(tan(a*ra#)*cos(AA*ra#)/cos((AA+e#)*ra#)))/ra# 'Longitud de la casa 11
if H11<0 then H11=H11+360
print "H11";H11
'..................
call trans(H1,H1$)
call trans(MC,MC$)
print "latitud: ";la$;" hora sideral: ";hs$
d$= "\ \ ###,.## \ \ \ \"
print using d$;"Medio Cielo ";MC;MC$;h10$
print using d$;"Ascendente ";H1;H1$;h1$
end
'..................
sub s: while inkey$="":wend: end sub
'..................
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/09/05
Determinacion de cuspides. Sistema de Placidus
'placidus.bas
' Hora Sid Casa X CASAXI CASA XII Casa I CASA II CASA III
data "00:00:00"," 0( 1)"," 8.6( 2)","22.0( 3)","26( 4)10","12.4( 5)"," 2.4( 6)"
data "00:03:40"," 1( 1)"," 9.6( 2)","22.9( 3)","26( 4)51","13.1( 5)"," 3.4( 6)"
data "02:03:08"," 3( 2)","12.4( 3)","19.2( 4)","18( 5)12"," 6.6( 6)"," 0.7( 7)"
data "04:16:27"," 6( 3)","13.4( 4)","15.6( 5)","11( 6)39"," 3.3( 7)"," 1.3( 8)"
data "05:55:38","29( 3)"," 5.0( 5)"," 5.1( 6)","29( 6)13","23.9( 7)","23.2( 8)"
data "06:00:00"," 0( 4)"," 5.9( 5)"," 6.0( 6)"," 0( 7)00","24.0( 7)","24.1( 8)"
data "06:04:22"," 1( 4)"," 6.8( 5)"," 6.9( 6)"," 0( 7)47","24.9( 7)","25.0( 8)"
data "08:12:54"," 1( 5)"," 5.4( 6)"," 2.6( 7)","23( 7)31","20.1( 8)","23.2( 9)"
data "10:23:35"," 4( 6)"," 5.4( 7)","28.6( 7)","16( 8)30","16.3( 9)","24.4(10)"
data "11:56:20","29( 6)","26.8( 7)","16.9( 8)"," 3( 9)09"," 7.1(10)","20.4(11)"
data "12:00:00"," 0( 7)","27.6( 7)","17.6( 8)"," 3( 9)50"," 8.0(10)","21.4(11)"
data "12:03:40"," 1( 7)","28.3( 7)","18.3( 8)"," 4( 9)30"," 8.9(10)","22.6(11)"
data "14:30:21","10( 8)"," 0.7( 9)","17.7( 9)"," 4(10)55","23.6(11)","10.0( 1)"
data "16:46:16","13( 9)"," 0.7(10)","12.9(10)","20(11)09","19.4( 1)","22.0( 2)"
data "17:55:38","29( 9)","17.2(10)","11.2(11)","27(12)27","15.8( 2)","10.5( 3)"
data "18:00:00"," 0(10)","18.3(10)","12.7(11)"," 0( 1)00","17.3( 2)","11.7( 3)"
data "18:04:22"," 1(10)","19.5(10)","14.2(11)"," 2( 1)33","18.8( 2)","12.8( 3)"
data "20:41:41"," 8(11)"," 4.4(12)","17.5( 1)","12( 3)18"," 1.8( 4)","19.0( 4)"
data "22:49:53","11(12)","16.4( 1)"," 3.1( 3)","12( 4)43","28.7( 4)","16.8( 5)"
data "23:56:20","29(12)"," 7.4( 2)","21.1( 3)","25( 4)30","11.7( 5)"," 1.7( 6)"
data "24:00:00"," 0( 1)"," 8.6( 2)","22.0( 3)","26( 4)10","12.4( 5)"," 2.4( 6)"
'..................
for nn=1 to 2:read hs$,h10$,h11$,h12$,h1$,h2$,h3$: next
la$="51N00"
'..................
cls
e$="23:27:15"
pi#=4*atn(1)
ra#=2*pi#/360
'......................
hs#=val(left$(hs$,2))+val(mid$(hs$,4,2))/60+val(right$(hs$,2))/3600
if hs#=24 then hs#=0
la=val(left$(la$,2))+val(right$(la$,2))/60
la.c=la-11/60-29/(60*60) 'correccion de la latitud geografica
e#=val(left$(e$,2))+val(mid$(e$,4,2))/60+val(right$(e$,2))/3600
' ................
'Ascension Recta del Medio Cielo
armc=hs#*360/24
'Longitud del Medio Cielo
MC=atn(tan((armc)*ra#)/cos(e#*ra#))/ra#
if MC<0 then MC=MC+360
MC=MC+180
if MC>=360 then MC=MC-360
if hs#>=0 and hs#=<6 then MC=MC-180
if hs#>18 and hs#=<24 then MC=MC+180
'................
for n=1 to 2
if n=1 then casa$="Casa XI" :h$(n)=h11$
if n=2 then casa$="Casa XII":h$(n)=h12$
' if n=3 then casa$="Casa I" :h$(n)=h1$
' if n=4 then casa$="Casa II" :h$(n)=h2$
' if n=5 then casa$="Casa III":h$(n)=h3$
ra1=armc+30*n
ra2=ra1
f=3/n
' do
for kk=1 to 20
print "ra1 ";ra1
' if abs(ra2-ra3)<0.01 then exit loop
print abs(ra2-ra3)
ra3=ra1
cose=-sin(ra1*ra#)*tan(e#*ra#)*tan(la*ra#)
seno=sqr(1-cose^2)
tang=seno/cose
deno=(atn(tang))/ra#
ra2=armc+deno/f
if ra2<0 then ra2=ra2+360
ra1=ra2
' loop
print "ra1 ";ra1
call s
next kk
print "ra2 ";ra2
cus(n)=(atn(tan(ra2*ra#)/cos(e#*ra#)))/ra#
call trans(cus(n),cus$(n))
call trans(MC,MC$)
'..................
d$= "\ \ ###,.## \ \\ \"
if n=1 then print "latitud: ";la$;" hora sideral: ";hs$
if n=1 then print "----------------------------------------------"
if n=1 then print using d$;"Medio Cielo ";MC;MC$;h10$
print using d$;casa$ ;cus(n);cus$(n);h$(n)
if n=5 then print ".............................................."
next
end
'''..................
sub s: while inkey$="":wend: end sub
'..................
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/09/04
Programa en Basic para calculo de cuspides mediante interpolacion (Version 2)
'casa9.bas
for n=1 to 21:read hs$,h11$,h12$,hs1$,hs2$,hs3$:next
' Hora Sid Casa X Casa I CASAXI CASA XII CASA II CASA III
data "00:00:00"," 0( 1)","26( 4)10"," 8.6( 2)","22.0( 3)","12.4( 5)"," 2.4( 5)"
data "00:03:40"," 1( 1)","26( 4)51"," 9.6( 2)","22.9( 3)","13.1( 5)"," 3.4( 6)"
data "02:03:08"," 3( 2)","18( 5)12","12.4( 3)","19.2( 4)"," 6.6( 6)"," 0.7( 7)"
data "04:16:27"," 6( 3)","11( 6)39","13.1( 3)","15.2( 5)"," 3.3( 7)"," 1.4( 8)"
data "05:55:38","29( 3)","29( 6)13"," 5.0( 5)"," 5.1( 6)","23.9( 7)","23.2( 8)"
data "06:00:00"," 0( 4)"," 0( 7)00"," 5.9( 5)"," 6.0( 7)","24.0( 7)","24.1( 8)"
data "06:04:22"," 1( 4)"," 0( 7)47"," 6.8( 5)"," 6.9( 6)","24.9( 7)","25.0( 8)"
data "08:12:54"," 1( 5)","23( 7)31"," 5.4( 6)"," 2.6( 7)","20.1( 8)","23.2( 9)"
data "10:23:35"," 4( 6)","16( 8)30"," 5.4( 7)","28.6( 7)","16.3( 9)","24.4(10)"
data "11:56:20","29( 6)"," 3( 9)09","26.8( 7)","16.9( 8)"," 7.1(10)","20.4(11)"
data "12:00:00"," 0( 7)"," 3( 9)50","27.6( 7)","17.6( 8)"," 8.0(10)","21.4(11)"
data "12:03:40"," 1( 7)"," 4( 9)30","28.3( 7)","18.3( 8)"," 8.9(10)","22.6(11)"
data "14:30:21","10( 8)"," 4(10)55"," 0.7( 9)","17.7( 9)","23.6(10)","10.0( 1)"
data "16:46:16","13( 9)","20(11)09"," 0.7(10)","12.9(10)","19.4( 1)","22.0( 2)"
data "17:55:38","29( 9)","27(12)27","17.2(10)","11.2(11)","15.8( 2)","10.5( 3)"
data "18:00:00"," 0(10)"," 0( 1)00","18.3(10)","12.7(11)","17.3( 2)","11.7( 3)"
data "18:04:22"," 1(10)"," 2( 1)33","19.5(10)","14.2(11)","18.8( 2)","12.8( 3)"
data "20:41:41"," 8(11)","12( 3)18"," 4.4(12)","17.5( 1)"," 1.8( 3)","19.0( 3)"
data "22:49:53","11(12)","12( 4)43","16.4( 1)"," 3.1( 3)","28.7( 4)","16.8( 5)"
data "23:56:20","29(12)","25( 4)30"," 7.4( 2)","21.1( 3)","11.7( 5)"," 1.7( 6)"
data "24:00:00"," 0( 1)","26( 4)10"," 8.6( 2)","22.0( 3)","12.4( 5)"," 2.4( 6)"
la$="51N00"
'..................
cls
e$="23:28:00"
pi#=4*atn(1)
ra#=2*pi#/360
'......................
hs=val(left$(hs$,2))+val(mid$(hs$,4,2))/60+val(right$(hs$,2))/3600
if hs=24 then hs=0
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
' ................
armc=hs*360/24 'Ascension Recta del Medio Cielo
MC=atn(tan((armc)*ra#)/cos(e#*ra#))/ra# 'Longitud del Medio Cielo
if MC<0 then MC=MC+360
MC=MC+180
if MC>=360 then MC=MC-360
if hs>=0 and hs=<6 then MC=MC-180
if hs>18 and hs=<24 then MC=MC+180
'................
'a=armc+90 'Ascension Oblicua del Ascendente
a=armc+120
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
AA= (atn((tan(la*ra#))/cos(a*ra#)))/ra#
H1= (atn(tan(a*ra#)*cos(AA*ra#)/cos((AA+e#)*ra#)))/ra# 'Longitud del Ascendente
if H1<0 and hs>12 then H1=H1+180
if H1<0 then H1=H1+360
H1=H1+180
if H1>=360 then H1=H1-360
if hs>=18 then H1=H1-180
senx=tan(e#*ra#)*tan(la*ra#)
cosx=sqr(1-senx^2)
tanx=senx/cosx
x=atn(tanx) ' x en radianes
tanpolo11=sin(2*x/3)*(1/tan(e#*ra#))
AA= (atn(tanpolo11/cos(a*ra#)))/ra#
H11= (atn(tan(a*ra#)*cos(AA*ra#)/cos((AA+e#)*ra#)))/ra# 'Longitud de la casa 11
if H11<0 then H11=H11+360
print "H11";H11
'..................
call trans(H1,H1$)
call trans(MC,MC$)
print "latitud: ";la$;" hora sideral: ";hs$
d$= "\ \ ###,.## \ \ \ \"
print using d$;"Medio Cielo ";MC;MC$;h10$
print using d$;"Ascendente ";H1;H1$;h1$
end
'..................
sub s: while inkey$="":wend: end sub
'..................
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
Programa en Basic para calculo de cuspides mediante interpolacion
cls
d1$=" ## ## ## ## "
d2$=" MC ## ## ## "
pi#=4*atn(1)
a#=2*pi#/360
ce#=(23+27/60)*a# ' constante ecliptica en radianes
input "Horasideral ",hs$
'hs$="163913"
hs=val(left$(hs$,2))+(val(mid$(hs$,3,2)))/60+(val(right$(hs$,2)))/3600
input "latitud ",la$
la=val(left$(la$,2))+(val(mid$(la$,3,2)))/60+(val(right$(la$,2)))/3600
if la>60 then la=60
x=hs*360/24
print "Hora sideral en grados ";x
' calculo del medio cielo
aa=x+2.5*2*sin(x*a#)*(cos(x*a#))
a0=aa
gosub signos
print using d2$;s+1;g;m
'ascendente a 0 grados
'primera correccion
x0=x-2.5*2*sin(x*a#)*(cos(x*a#))
aa=x0
g0=x0+3*30
gosub signos
print " Ascendnte"
print "Latitud Signo Grado Minuto"
print using d1$;0;s+4;g;m
open "casadato.dat" for input as #1
input #1, nd
for n=1 to nd
' g0a=g0p
g2a=g2p
g4a=g4p
g5a=g5p
g6a=g6p
ha =hp 'hacemos igual la hora anterior a la posterior leida antes
input #1, ht$ 'hora sideral de la tabla de datos
ht=val(left$(ht$,2))+(val(mid$(ht$,3,2)))/60+(val(right$(ht$,2)))/3600
input #1, g0$ ' grado 0
' g0=val((left$(g0$,2))-1)*30+(val(mid$(g0$,3,2)))+(val(right$(g0$,2)))/60
input #1, g2$ ' grado 20
g2=(val(left$(g2$,2))-1)*30+(val(mid$(g2$,3,2)))+(val(right$(g2$,2)))/60
input #1, g4$ ' grado 40
g4=(val(left$(g4$,2))-1)*30+(val(mid$(g4$,3,2)))+(val(right$(g4$,2)))/60
input #1, g5$ ' grado 50
g5=(val(left$(g5$,2))-1)*30+(val(mid$(g5$,3,2)))+(val(right$(g5$,2)))/60
input #1, g6$ ' grado 60
g6=(val(left$(g6$,2))-1)*30+(val(mid$(g6$,3,2)))+(val(right$(g6$,2)))/60
' g0p=g0
' if g0p<g0a then g0p=g0p+12*30
g2p=g2
if g2p<g2a then g2p=g2p+12*30
g4p=g4
if g4p<g4a then g4p=g4p+12*30
g5p=g5
if g5p<g5a then g5p=g5p+12*30
g6p=g6
if g6p<g6a then g6p=g6p+12*30
hp=ht ' hacemos igual la hora posterior a la hora leida en ese momento
' si la hora sidral esta comprendida entre dos consecutivas de la tabla
' podemos hacer el calculo de interpolacion con esos dos datos.
if hs>=ha and hs<=hp then
' call inter(g0a,g0p,hp,ha,hs)
' a0=aa
aa=g0
a0=g0
gosub signos
print "Ascendente a 0 grados ";aa$
call inter(g2a,g2p,hp,ha,hs)
a2=aa
print "Ascendente a 20 grados ";aa$
call inter(g4a,g4p,hp,ha,hs)
a4=aa
print "Ascendente a 40 grados ";aa$
call inter(g5a,g5p,hp,ha,hs)
a5=aa
print "Ascendente a 50 grados ";aa$
call inter(g6a,g6p,hp,ha,hs)
a6=aa
print "Ascendente a 60 grados ";aa$
if la<=20 then call inter(a0,a2,20,0 ,la)
if la>20 and la<=40 then call inter(a2,a4,40,20,la)
if la>40 and la<=50 then call inter(a4,a5,50,40,la)
if la>50 then call inter(a5,a6,60,50,la)
al=aa
print "-------------------------------------"
print "ASCENDENTE A";int(la);"GRADOS ";aa$
goto fuera
end if
next n
close #1
fuera:
end
sub inter(ga,gp,p,a,s)
shared gs,aa$,aa
i=p-a
if abs(gp)<=abs(ga) then aa=((ga-gp)*(p-s))/i+gp
if abs(gp)> abs(ga) then aa=((gp-ga)*(s-a))/i+ga
if aa>12*30 then aa=aa-12*30
call s
gosub signos
end sub
signos:
s=int(aa/30) ' signo
g1=(aa-s*30)
g=int(g1) ' grado
m=int((g1-g)*60) ' minuto
aa$=str$(s+1)+str$(g)+str$(m)
return
sub s
while inkey$="":wend
end sub
2011/07/30
Tabla de Casas de Regiomontano (Programa en Basic)
'regio.bas
'Este programa produce una Tabla de Casas por el sistema de Regiomontano que se graba en un fichero con el nombre Regiomon.doc. Este fichero puede abrirse con cualquier procesador de textos.
2011/06/17
efemerides planetarias. programa en basic v2
' EFEMERIDES PLANETARIAS
cls
dim b$(32)
c%=360
pi#=4*atn(1)
cls
dim b$(32)
c%=360
pi#=4*atn(1)
2011/06/04
Programa en basic de calculo de efemerides planetarias. (poca aproximacion)
' EFE.BAS
cls
dim b$(32)
c%=360
pi#=4*atn(1)
cls
dim b$(32)
c%=360
pi#=4*atn(1)
2011/05/23
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 using d1$;"Latitud del cuadrante ";la.c.s;"segundos"
print using d1$;"";la.c.d;"grados"
print using d1$;"";la.c.r;"radianes"
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
Suscribirse a:
Entradas (Atom)