[S&V] LCDLA 1 : Calculer l’azimut du lever et du coucher du Soleil

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Avatar du membre
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6186
Enregistré le : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: [S&V] LCDLA 1 : Calculer l’azimut du lever et du coucher du Soleil

Message par Marge »

Miskatonic91 a écrit : 19 sept. 2018 20:00 Bravo pour le boulot!
Ce sera pour moi l'occasion de comprendre enfin quelque chose au RPL, langage qui m'attire intellectuellement (comme le Forth), mais me rebute en pratique (le côté "illisible"...).
En tout cas le recours au Solver est astucieux, il faudra que j'essaie sur une HP-17BII, ou sur le calculateur des HP-LX...
C.Ret a écrit : 19 sept. 2018 16:56 Une HP-28S peut contenir jusqu’à 32 kio de données, il est important d’organiser son espace de travail. Je vous recommande de créer un sous-répertoire où seront stockés les données, les formules et les programmes de cette rubrique et de le mettre tout au fond du menu USER, au bout de l’arbre qui organise vos données, rattaché au répertoire bien caché où toutes les conneries, MPO et autres excentricités glanées sur ce forum sont regroupées. Cela évitera de mélanger les données sérieuses avec les données astrologiques.
Je ne puis qu'abonder dans ton sens, ne mélangeons pas les calculs astronomiques avec les "données astrologiques"... :wink:
J'opine ! Du coup, j'ai ressorti le HP-28C (puisque je peux y mélanger tout ce qui est sérieux ;)) et son manuel français pour tenter d'y voir plus clair que sur HP-48. J'ai l'impression que la pédagogie y est bien plus efficace - sans doute parce que le fossé du RPN au RPL devait être ressenti chez HP comme plus impressionnant pour plus de monde.
3 hommes, 3 demis, un 3a... Magnéto, Serge !

Quelques-uns de mes petits programmes pour machines Hewlett-Packard :
15C : Knight's Tour ;
29C : (k-)Permutations, Combinations, Linear Regression and Pseudo-random number ;
34C : Hanoi Towers - Automatic & Manual resolutions ;
67
__: A L I E N .

« Boris », c'était juste Maurice enrhumé.
Ben
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1549
Enregistré le : 21 août 2016 19:04

Re: [S&V] LCDLA 1 : Calculer l’azimut du lever et du coucher du Soleil

Message par Ben »

Suite au programme BASIC, voici ma version pour la petite FX-602P de 75 pas.

Code : Tout sélectionner

"L=" HLT Min01
"N=" HLT - 80 =
x>=0 GOTO1
+ 360 =
LBL1 * .9836 = SIN * 23.442 = Min02
90 - MR01 + MR02 = TAN Min03
.6 / MR03 = Min03
MR02 SIN / Mr01 COS = +/-
COS^-1 Min04
360 - MR04 = HLT
MR04 + MR03 =
Juste une petite précision, si N est égale à 80, est-ce qu'il faut lui ajouter les 360 jours?
Avatar du membre
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6186
Enregistré le : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: [S&V] LCDLA 1 : Calculer l’azimut du lever et du coucher du Soleil

Message par Marge »

Bonjour,
A priori, il n'est pas nécessaire de modifier n puisque le test n'est finalement plus nécessaire (c'est dans le supplément au programme publié en janvier 1980).
Je précise bien cela sous l'organigramme qui ne mentionne pas le cas n=0.
3 hommes, 3 demis, un 3a... Magnéto, Serge !

Quelques-uns de mes petits programmes pour machines Hewlett-Packard :
15C : Knight's Tour ;
29C : (k-)Permutations, Combinations, Linear Regression and Pseudo-random number ;
34C : Hanoi Towers - Automatic & Manual resolutions ;
67
__: A L I E N .

« Boris », c'était juste Maurice enrhumé.
Ben
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1549
Enregistré le : 21 août 2016 19:04

Re: [S&V] LCDLA 1 : Calculer l’azimut du lever et du coucher du Soleil

Message par Ben »

Quand on regarde les programmes du magasine, pour la TI-59, le test de N (avec ajout de 360) est fait, tandis qu'il n'est pas présent sur l'HP-33. Pourtant, les résultats ne sont pas les mêmes:

L=48.9 et N=40
Sans le test de N : 292,9648556 et 68.25244751
Avec le test de N: 293,4600662 et 67.77401716
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3419
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: [S&V] LCDLA 1 : Calculer l’azimut du lever et du coucher du Soleil

Message par C.Ret »

Il y a quelque chose qui ne va pas avec les valeurs, pourquoi 292,9648556 et 68.25244751 ne font pas 360 ?

(Même question pour 293,4600662 et 67.77401716)

Et concernant le programme, il doit manquer un petit bout vers la fin, je m'attendais à:

Code : Tout sélectionner

"L=" HLT                                 Min01    // Latitude
"N=" HLT - 80 = * .9863 = SIN * 23.442 = Min02    // Déclinaison solaire
 90 - MR01 + MR02 TAN  Min03 .6 / MR03 = Min03    // Correction due à l'atmosphère
       MR02 SIN / MR01 COS = +/-  COS^-1 Min04    // Azimut au méridien
360 - MR04 - MR03 = HLT  MR04 + MR03 =            // Azimut du lever et du coucher
Je trouve alors, sans la correction :
291.800 et 68.200

Le 0.9863 {et respectivement 0.9836} est la valeur arrondie de 360/365 { ou 360/366 pour les années bissextiles }.

P.S.: Il n y a pas de parenthèses sur CASIO fx 602P ?
Modifié en dernier par C.Ret le 21 sept. 2018 18:14, modifié 3 fois.
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
Ben
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1549
Enregistré le : 21 août 2016 19:04

Re: [S&V] LCDLA 1 : Calculer l’azimut du lever et du coucher du Soleil

Message par Ben »

C.Ret a écrit : 21 sept. 2018 17:50 Il y a quelque chose qui ne va pas avec les valeurs, pourquoi 292,9648556 et 68.25244751 ne font pas 360 ?

(Même question pour 293,4600662 et 67.77401716)

Et concernant le programme, il doit manquer un petit bout vers la fin, je m'attendais à:

Code : Tout sélectionner

"L=" HLT                                 Min01    // Latitude
"N=" HLT - 80 = * .9836 = SIN * 23.442 = Min02    // Déclinaison solaire
 90 - MR01 + MR02 TAN  Min03 .6 / MR03 = Min03    // Correction due à l'atmosphère
       MR02 SIN / MR01 COS = +/-  COS^-1 Min04    // Azimut au méridien
360 - MR04 - MR03 = HLT  MR04 + MR03 =            // Azimut du lever et du coucher
Evidemment! Le programme pour le PC-1211 est faux également, le calcul de l'azimut du levé n'est pas correct:

Code : Tout sélectionner

10 INPUT "L=";L:INPUT "N=";N
20 N=N-80
30 IF N<0 LET N=N+365
40 D=23.442*SIN(.9863*N)
50 C=.6/TAN(90-L+D)
60 A=-(SIN(D)/COS(L)):A=ACS(A)
70 Z=A+C:X=360-Z:PRINT "AL=";X:PRINT "AC="Z
Si, il y a des parenthèses sur la Casio. Le calcul de la correction du à l'atmosphère pourrait être différent, on peut prendre l'inverse du calcul de la TAN et multiplier par .6. Ca fait gagner quelques pas.

Je vais aller me flageller sur le champs! :-(
Modifié en dernier par Ben le 21 sept. 2018 18:15, modifié 1 fois.
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3419
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: [S&V] LCDLA 1 : Calculer l’azimut du lever et du coucher du Soleil

Message par C.Ret »

Je te rejoins dans les champs de flageolets, je n'avais pas vu l'erreur dans ton programme BASIC que j'ai pourtant adapté pour SHARP PC-1350/1360 !
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
Ben
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1549
Enregistré le : 21 août 2016 19:04

Re: [S&V] LCDLA 1 : Calculer l’azimut du lever et du coucher du Soleil

Message par Ben »

C.Ret a écrit : 21 sept. 2018 18:13 Je te rejoins dans les champs de flageolets, je n'avais pas vu l'erreur dans ton programme BASIC que j'ai pourtant adapté pour SHARP PC-1350/1360 !
Le programme de l'un étant basé sur l'autre, j'ai donc répété les erreurs :-/
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3419
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: [S&V] LCDLA 1 : Calculer l’azimut du lever et du coucher du Soleil

Message par C.Ret »

Pour punition, j'ai complété mon programme pour SHARP :

Code : Tout sélectionner

1:WAIT 0: CURSOR 0: INPUT "Oblicivite Eclip. ";E: CLS : GOSUB 9: PRINT "OEm";E: IF INT E<>23 GOTO 1
2:"B" CURSOR 12: INPUT "NB j/a";T: GOSUB 8: PRINT "NBj/a"; STR$ T: IF T<>365 AND T<>366 GOTO 2
3:"L" CURSOR 24: INPUT "Lat";L: GOSUB 9: PRINT "Lat";L: IF ABS L>90 GOTO 3 
4:"J" CURSOR 36: INPUT "N. j";N: GOSUB 8: PRINT "N.j"; STR$ N: IF N<1 OR N>T GOTO 4
5:"=" DEGREE : D=E* SIN (360*(N-80)/T),A=.6/ TAN (90-L+D)+ ACS (- SIN D/ COS L): USING "&&####.###"
6:CURSOR 48: PRINT "Al";360-A;"s": CURSUR 60: PRINT "Ac";A;"s": 
7:CURSOR 72: PRINT "Al";180-A;"N": CURSOR 84: PRINT "Ac";180+A;"N": GOTO 4
8 USING "&&&&&&": RETURN
9 USING "&&&###.#####": RETURN

Lancer le programme par RUN[ENTER] en mode RUN

Par la suite, on peut saisir directement le n° du jour ou par DEF-J
La latitude peut aussi être modifiée pour un nouveau calcul en tapant DEF-L et indiquer une année bissextile ou non se fait par DEF-B

On sort du programme par la fonction CA (accessible en tapant [shif][CLS] )
LCDLA1_SHARP_PC1360_1.gif
LCDLA1_SHARP_PC1360_1.gif (73.81 Kio) Vu 11107 fois
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
Avatar du membre
Miskatonic91
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 477
Enregistré le : 27 août 2016 17:28
Localisation : Valdemarnie

Re: [S&V] LCDLA 1 : Calculer l’azimut du lever et du coucher du Soleil

Message par Miskatonic91 »

Un essai sur TI-95 Procalc. L'adaptation du programme ne pose pas de problème. La partie calcul est exactement la même que celle destinée aux TI-58/59. J'ai juste remplacé les numéros des registres-mémoire par des lettres, sachant que sur TI-95 le registre 000 = A, 001 = B, etc...
J'ai ajouté un menu pour entrer les données: latitude par la touche de fonction F1, numéro de jour par la touche de fonction F2. J'ai utilisé la latitude 48.9° et le numéro de jour 172 comme dans l'exemple donné par P. Kohler.
(les recopies d'écran viennent du simulateur de Hrast)

Image

Après l'entrée des données on lance le calcul par appui sur F4 = CAL. On obtient l'azimut du coucher:

Image

L'appui sur GO permet d'obtenir le 2ème résultat, l'azimut du lever:

Image

F5 permet de sortir proprement du programme en effaçant le menu et l'affichage.

Le programme a également été testé sur une vraie TI-95, mais j'ai la flemme de faire les photos... :wink:

Code : Tout sélectionner

// Azimut lever et coucher du Soleil
// Listing pour TI_95 (117 pas)
// =================================
// (évidemment il ne faut entrer aucun saut de ligne, aucun commentaire
//  ni aucun espace sauf dans le message alphanumérique du début!)

`LAT ET NO JOUR`          // Message d'invite entré en mode ALPHA

                          // Menu (touches de fonction)
                          // --------------------------
DFN F1:LAT@LA          // Entrée latitude
DFN F2:NJ @NJ          // Entrée numéro jour
DFN F4:CAL@CA          // Lancement calcul
DFN F5:FIN@FI          // Sortie du pgm
HLT

LBL LA                    // Entrée latitude
STO L
HLT

LBL NJ                    // Entrée numéro du jour
STO N
HLT

LBL CA                    // Calcul
RCL N - 80 = * .9863 =
SIN * 23.442 +/- + STO C
RCL L = TAN * .6 +
( RCL C SIN / RCL L COS )
INV COS = BRK
+/- + 360 = HLT

LBL FI                   // Sortie du pgm
CLR                      // Mise à zéro de l'affichage
DFN CLR                  // Effacement menu 
HLT

Un peu de tout, mais toujours de bon goût :wink:
Avatar du membre
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6186
Enregistré le : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: [S&V] LCDLA 1 : Calculer l’azimut du lever et du coucher du Soleil

Message par Marge »

Magnifique !

On attend une programmation en FORTH ! mais qui en aura la force ? :wink:
3 hommes, 3 demis, un 3a... Magnéto, Serge !

Quelques-uns de mes petits programmes pour machines Hewlett-Packard :
15C : Knight's Tour ;
29C : (k-)Permutations, Combinations, Linear Regression and Pseudo-random number ;
34C : Hanoi Towers - Automatic & Manual resolutions ;
67
__: A L I E N .

« Boris », c'était juste Maurice enrhumé.
Avatar du membre
Miskatonic91
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 477
Enregistré le : 27 août 2016 17:28
Localisation : Valdemarnie

Re: [S&V] LCDLA 1 : Calculer l’azimut du lever et du coucher du Soleil

Message par Miskatonic91 »

Quelques perfectionnements pour TI-95 Procalc, au prix d'une cinquantaine de pas supplémentaires:
- affichage de messages alphanumériques pour identifier les valeurs affichées (AZ.L, AZ.C). Ce qui nécessite une limitation des décimales (FIX 2) pour avoir la place. A noter le côté malcommode de l'affichage simultané de texte avec des valeurs numériques, à coup d'instructions cabalistiques telles COL 16 ou MRG= ... :(
- affichage de l'azimut du lever avant celui du coucher, ce qui semble plus logique. Il est donc nécessaire de stocker l'azimut du coucher dans un registre-mémoire (STO D), puisqu'il sert à calculer celui du lever.
- affichage des azimuts standard (Nord = 0°, Est=90°, Sud=180°, Ouest = 270°). Si l'azimut du lever dépasse 360°, soustraire 360.

Une vraie TI-95 a été utilisée (aucune souffrance inutile ne lui a été imposée :mrgreen: ). Dans l'exemple ci-dessous, LAT= 48.9° et NJ=172.

Image

Code : Tout sélectionner

// Azimut lever et coucher du Soleil version 2.0
// Listing pour TI_95 Procalc (165 pas)
// =============================================
// (il ne faut entrer aucun saut de ligne, ni aucun espace
// sauf dans le message alphanumérique du début)

360 STO T

`LAT ET NO JOUR`          // Message d'invite entré en mode ALPHA

                          // Menu (touches de fonction)
                          // --------------------------
DFN F1:LAT@LA             // Entrée latitude
DFN F2:NJ @NJ             // Entrée numéro jour
DFN F4:CAL@CA             // Lancement calcul
DFN F5:FIN@FI             // Sortie du pgm
HLT

LBL LA                    // Entrée latitude
STO L
HLT

LBL NJ                    // Entrée numéro du jour
STO N
HLT

LBL CA                    // Calcul
FIX 2                     // 2 décimales
RCL N - 80 = * .9863 =
SIN * 23.442 +/- + STO C
RCL L = TAN * .6 +
( RCL C SIN / RCL L COS )
INV COS = STO D           // sauvegarde azimut coucher
+/- + 540 =               // 540 = 360 + 180 (pour azimuts standards)
IF< T                     // Si azimut inférieur à 360...
GTL SU                    // ...aller au label SU
- RCL T =                 // sinon soustraire 360°

LBL SU                    // Affichage des résultats
`AZ.L=`
COL 16		     // valeur numérique cadrée à droite (16e colonne de l'écran)
MRG =		    // cela donne  "AZ.L=        90.56" (exemple)
BRK

RCL D		      // Rappel azimut coucher
+ 180 =                   // conversion azimut standard
`AZ.C=`                   
COL 16
MRG =                     // "AZ.C=      270.25" (exemple)		
 HLT

LBL FI                    // Sortie du pgm
CLR                       // Mise à zéro de l'affichage
DFN CLR                   // Effacement menu 
FIX 9			          // affichage standard des décimales
HLT

Un peu de tout, mais toujours de bon goût :wink:
Avatar du membre
Miskatonic91
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 477
Enregistré le : 27 août 2016 17:28
Localisation : Valdemarnie

Re: [S&V] LCDLA 1 : Calculer l’azimut du lever et du coucher du Soleil

Message par Miskatonic91 »

Restons dans le thème TI... :wink:

Il me paraissait impossible d'adapter ce programme sur une TI-57II (ou sa jumelle TI-57LCD). La liste du programme, calquée sur celle proposée par Daniel Ferro pour les TI-58/59, occupe 47 pas sur une TI-57 classique (à diodes) et utilise 2 registres-mémoire.
La TI-57II offre 48 pas... mais avec un seul registre-mémoire. Chaque registre supplémentaire "coûte" 8 pas. Avec 2 registres, il ne reste donc que 40 pas.
La solution qui consiste à rentrer les constantes numériques dans des registres-mémoire avant le lancement du programme permet de réduire la taille du programme à 34 pas, mais utilise en tout 6 registres! Sur une TI-57II, l'usage de 6 registres laisse... 8 pas de programme! :?

Heureusement, il existe un registre qui peut nous dépanner, le registre t, et une instruction magique, x<->t, qui échange le nombre à l'affichage avec celui contenu dans le registre t (qui sert normalement pour les tests).

La touche "magique" x<->t sur une TI-57II:
Image

L'adaptation du programme consiste simplement à:
1. enlever les LBL
2. remplacer les STO 1 et RCL 1 par des STO 0 et RCL 0 (0 étant le numéro du seul registre-mémoire disponible). Ce registre contient la latitude.
3. remplacer les STO 2 et RCL 2 par x<->t.
Le reste est strictement inchangé!

Code : Tout sélectionner

La Calculette de l'Astronome
Azimuts des lever et coucher du Soleil
TI-57II/TI-57LCD
-------------------------------------
Partition mémoire: 48 pas/1 mémoire
2d Part 1
-------------------------------------

STO 0
R/S
-
80
=
x
.9863
=
sin
x
23.442
+/-
+
x<->t
RCL 0
=
tan
x
.6
+
(
x<->t
sin
/
RCL 0
cos
)
INV cos
=
R/S
+/-
+
360
=
R/S

-------------------------------
Mode d'emploi:
RST
Introduire la latitude R/S
Introduire le n° du jour R/S
Affichage azimut coucher R/S
Affichage azimut lever
Ce qui nous donne pour latitude = 48.9° et n° jour = 172:

Image

Image
Un peu de tout, mais toujours de bon goût :wink:
Avatar du membre
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6186
Enregistré le : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: [S&V] LCDLA 1 : Calculer l’azimut du lever et du coucher du Soleil

Message par Marge »

BRV (bravo mpoïsé !)
3 hommes, 3 demis, un 3a... Magnéto, Serge !

Quelques-uns de mes petits programmes pour machines Hewlett-Packard :
15C : Knight's Tour ;
29C : (k-)Permutations, Combinations, Linear Regression and Pseudo-random number ;
34C : Hanoi Towers - Automatic & Manual resolutions ;
67
__: A L I E N .

« Boris », c'était juste Maurice enrhumé.
Trevarec
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 3
Enregistré le : 03 déc. 2018 08:20

Re: [S&V] LCDLA 1 : Calculer l’azimut du lever et du coucher du Soleil

Message par Trevarec »

Je viens de découvrir votre forum.
Étant passionné de navigation depuis mon plus jeune age, j'avais également
conservé ces articles de S&V.
Je viens de m'amuser à transcrire cela sur une feuille excel et ...Ô
désespoir mes résultats ne correspondent pas aux vôtres.
Vous serait-il possible de me faire parvenir les résultats intermédiaires
pour D, C et A afin que je trouve ma coquille (je suppose une mauvaise
conversion degré/radian ou inverse).
Merci d'avance,
Répondre

Retourner vers « Tous les Pockets »