Subiectul anterior :: Subiectul urmator |
|
Autor |
Mesaj |
nikelblue Membru
Data inscrierii: 06 Noi 2006 Mesaje: 3
Localitate: Iasi
|
Trimis: 06 Noi 2006 19:19 Download mesaj |
Titlul subiectului: Formula de calcul pentru rasaritul Soarelui |
|
|
|
Buna,
Sunt programator si am nevoie intr-una din aplicatiile mele de formulele de calul ale rasaritului si apusului soarelui. Fiind un forum dedicat am sperat ca ma puteti ajuta cu un titlu de carte sau un link unde as putea gasi aceste informatii.
Imi cer scuze daca acest subiect nu face parte din topicul acestui forum.
Va multumesc. |
|
Sus |
|
|
cris Membru
Data inscrierii: 13 Iun 2006 Mesaje: 312
Localitate: Pitesti
|
|
Sus |
|
|
Doru Dragan Membru
Data inscrierii: 02 Mar 2006 Mesaje: 4414
Motto: PER ASPERA AD ASTRA Localitate: Timisoara
|
Trimis: 07 Noi 2006 11:45 Download mesaj |
Titlul subiectului: |
|
|
|
Un program BASIC care face calculul rasaritului si apusului de Soare.
Instructiunile cred ca sunt suficient de clare pentru a fi portate in orice alt limbaj. Ce urmeaza dupa apostrof sunt comentarii. Trebuie sa inlocuiesti latitudinea si longitudinea locului. Cele din program sunt de la Timisoara
PI=4*ATN(1): DR=PI/180:RD=180/PI
B5=45.77 'Latitudinea locului
L5=21.30 'Longitudinea locului
H=-2:B5=DR*B5
INPUT "DATA (ZIUA,LUNA, ANUL):"; ZI,LU,AN
anul=an
ziua=zi
luna=lu
N=INT(275*luna/9)-2*INT((luna+9)/12)+ziua-30 'Numarul zilei din an
L0=4.8771+.0172*(N+.5-L5/360) 'Longitudinea medie m Soarelui
C=.03342*SIN(L0+1.345)
C2=RD*(ATN(TAN(L0+C))-ATN(.9175*TAN(L0+C))-C) 'Ecuatia timpului
SD=0.3978*SIN(L0+C)
CD=SQR(1-SD*SD)
SC=(SD*SIN(B5)+.0145)/(COS(B5)*CD)
IF ABS(C)>1 THEN GOTO 9
C3=RD*ATN(SC/SQR(1-SC*SC)) 'Refractia atmosferica
R1=6-H-(L5+C2+C3)/15
HR$=str$(INT(R1))
MR$=str$(INT((R1-val(HR$))*60))
S1=18-H-(L5+C2-C3)/15
HS$=str$(INT(S1))
MS$=str$(INT((S1-val(HS$))*60))
? "Soarele rasare: "+HR$+":"+MR$
? " si apune: "+HS$+":"+MS$
END
9 IF SC>1 THEN ?"SOARELE SUS TOATA ZIUA"
IF SC<-1 THEN ?"SOARELE JOS TOATA ZIUA" |
|
Sus |
|
|
nikelblue Membru
Data inscrierii: 06 Noi 2006 Mesaje: 3
Localitate: Iasi
|
Trimis: 07 Noi 2006 13:26 Download mesaj |
Titlul subiectului: |
|
|
|
Multumesc mult pentru ambele raspunsuri. Cred ca voi alege calea cea mai simpla pentru mine: conversia din limbajul BASIC. Algoritmul nu va fi folosit in scopuri comerciale iar in documentatie voi specifica sursa acestuia. Daca exista restrictii de utilizare ale algoritmului va rog sa le specificati. |
|
Sus |
|
|
Doru Dragan Membru
Data inscrierii: 02 Mar 2006 Mesaje: 4414
Motto: PER ASPERA AD ASTRA Localitate: Timisoara
|
Trimis: 07 Noi 2006 13:33 Download mesaj |
Titlul subiectului: |
|
|
|
Eu am preluat si adaptat algoritmul dintr-o revista Ciel et space asa ca "dar din dar se face rai" Poti sa-l folosesti cum crezi de cuviinta. M-as bucura daca l-ai folosi in scopuri comerciale. Atunci as cere si eu un procent. |
|
Sus |
|
|
nikelblue Membru
Data inscrierii: 06 Noi 2006 Mesaje: 3
Localitate: Iasi
|
Trimis: 07 Noi 2006 13:51 Download mesaj |
Titlul subiectului: |
|
|
|
Atunci, daca se va ajunge la scopuri comerciale va voi contacta pentru negocieri (dupa cum ati spus: "dar din dar se face rai"). |
|
Sus |
|
|
Abel Cavași Membru
Data inscrierii: 17 Iul 2006 Mesaje: 2527
Motto: Un șchiop mergând pe drumul drept ajunge înaintea celui rătăcit care aleargă. (Spinoza) Localitate: România, Satu Mare
|
Trimis: 28 Apr 2007 09:35 Download mesaj |
Titlul subiectului: |
|
|
|
dragon a scris: | Un program BASIC care face calculul rasaritului si apusului de Soare.
Instructiunile cred ca sunt suficient de clare pentru a fi portate in orice alt limbaj. Ce urmeaza dupa apostrof sunt comentarii. Trebuie sa inlocuiesti latitudinea si longitudinea locului. Cele din program sunt de la Timisoara
PI=4*ATN(1): DR=PI/180:RD=180/PI
B5=45.77 'Latitudinea locului
L5=21.30 'Longitudinea locului
H=-2:B5=DR*B5
INPUT "DATA (ZIUA,LUNA, ANUL):"; ZI,LU,AN
anul=an
ziua=zi
luna=lu
N=INT(275*luna/9)-2*INT((luna+9)/12)+ziua-30 'Numarul zilei din an
L0=4.8771+.0172*(N+.5-L5/360) 'Longitudinea medie m Soarelui
C=.03342*SIN(L0+1.345)
C2=RD*(ATN(TAN(L0+C))-ATN(.9175*TAN(L0+C))-C) 'Ecuatia timpului
SD=0.3978*SIN(L0+C)
CD=SQR(1-SD*SD)
SC=(SD*SIN(B5)+.0145)/(COS(B5)*CD)
IF ABS(C)>1 THEN GOTO 9
C3=RD*ATN(SC/SQR(1-SC*SC)) 'Refractia atmosferica
R1=6-H-(L5+C2+C3)/15
HR$=str$(INT(R1))
MR$=str$(INT((R1-val(HR$))*60))
S1=18-H-(L5+C2-C3)/15
HS$=str$(INT(S1))
MS$=str$(INT((S1-val(HS$))*60))
? "Soarele rasare: "+HR$+":"+MR$
? " si apune: "+HS$+":"+MS$
END
9 IF SC>1 THEN ?"SOARELE SUS TOATA ZIUA"
IF SC<-1 THEN ?"SOARELE JOS TOATA ZIUA" |
Doru, cred că ar fi mai ușor de utilizat acest program dacă l-ai transforma într-o foaie de calcul în ale cărei celule să pui formulele corespunzătoare.
Așa ar putea fi folosit și de cineva care nu știe să programeze.
Aș fi transformat eu programul, dar, necunoscând prea bine problema, s-ar putea să greșesc formulele de calcul. _________________ Oamenii sunt extrem de valoroși |
|
Sus |
|
|
Andi Membru
Data inscrierii: 10 Oct 2007 Mesaje: 1275
|
Trimis: 06 Ian 2008 11:49 Download mesaj |
Titlul subiectului: |
|
|
|
Am "ronțăit" programul și cred că linia
IF ABS(C)>1 THEN GOTO 9
trebuie scrisă
IF ABS(SC)>1 THEN GOTO 9
Precizia programului este de circa 1 minut. |
|
Sus |
|
|
Doru Dragan Membru
Data inscrierii: 02 Mar 2006 Mesaje: 4414
Motto: PER ASPERA AD ASTRA Localitate: Timisoara
|
|
Sus |
|
|
Andi Membru
Data inscrierii: 10 Oct 2007 Mesaje: 1275
|
Trimis: 06 Ian 2008 19:02 Download mesaj |
Titlul subiectului: |
|
|
|
Splendid, "merci beaucoup" pentru adresă!
Programul dădea eroare dacă latitudinea locului trecea de cercul polar nord sau sud.
Poate adunăm programe într-un topic separat? |
|
Sus |
|
|
|