MPO107 - Heure temporaire

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
Schraf
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 499
Enregistré le : 05 mars 2020 20:45
Contact :

MPO107 - Heure temporaire

Message par Schraf »

Je vous propose un MPO historique :
Wikipédia : Une heure temporaire (du grec ώρατ χατρτχαι, heures dépendant de l'époque) est une heure ancienne égale au douzième de l'intervalle de temps compris entre le lever et le coucher du Soleil, quelle que soit la saison.
Voici le minimum à comprendre et 3 exemples pour pouvoir réussir ce MPO :

- Les durées des heures temporaires varient au cours de l’année. Cette durée dépend des heures du lever et du coucher du soleil. Les rares cas où 1 heure temporaire = 1 heure actuelle sont aux équinoxes (de printemps ou d'automne) puisque les durées des jours et des nuits sont alors égales à 12h.
- 1 heure temporaire de nuit n'est pas égale à une 1 heure temporaire de jour (sauf aux équinoxes)

Exemple : Lever soleil = 7h42min et Coucher soleil = 16h51min

Quelle est l'heure temporaire correspondant à 14h00 (heure actuelle) ce jour-là ? Réponse : 8h15min44s JOUR
Quelle est l'heure temporaire correspondant à 22h00 (heure actuelle) ce jour-là ? Réponse : 4h09min42s NUIT
Quelle est l'heure temporaire correspondant à 05h00 (heure actuelle) ce jour-là ? Réponse : 9h49min05s NUIT

Réponse en image :

Remarquez que le jour et la nuit n'ont pas les mêmes durées en heures actuelles mais valent bien chacune 12 heures temporaires (représentées par les chiffres romains)
Remarquez que le jour et la nuit n'ont pas les mêmes durées en heures actuelles mais valent bien chacune 12 heures temporaires (représentées par les chiffres romains)
HeuresTemporaires.jpg (58.46 Kio) Vu 4732 fois

Votre programme

Il devra demander (ou utiliser la pile pour les HP) les heures de lever (S.UP) et de coucher (S.Dwn) du soleil qui seront entrées au format hh.mmss (ou équivalent), ainsi que l'heure actuelle (toujours au format hh.mmss)
En sortie la machine affichera l'heure temporaire au format hh.mmss, avec un signe négatif si c'est la nuit.

Exemples :

Code : Tout sélectionner

S.U ? 7.42
S.Dwn ? 16.51
H actuelle ? 14.00
HT = 8.1544

S.U ? 7.42
S.Dwn ? 16.51
H actuelle ? 22.00
HT = -4.0942

S.U ? 7.42
S.Dwn ? 16.51
H actuelle ? 5.00
HT = -9.4905
Heure temporaire sur Wikipédia

Misez P'tits Optimisez : sommaire
Modifié en dernier par Schraf le 24 mars 2022 18:41, modifié 2 fois.
Avatar du membre
zpalm
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2928
Enregistré le : 03 mai 2008 15:33
Localisation : Grenoble

Re: MPO107 - Heure temporaire

Message par zpalm »

Intéressant.
Une petite question: dans l’exemple ci-dessus que doit-t-on retourner pour 7h42mn et 16h51mn? 0h00mn ou 12h00mn?
Avatar du membre
Schraf
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 499
Enregistré le : 05 mars 2020 20:45
Contact :

Re: MPO107 - Heure temporaire

Message par Schraf »

@zpalm : On va suivre le paragraphe n°51 de la circulaire du 28 octobre 2011 relative aux règles particulières à divers actes de l’état civil, à savoir :

Il sera 0h00
Il sera 0h00
EtatCivil.jpg (30.14 Kio) Vu 4702 fois

Donc pour l'exemple donné du MPO, à 7h42min il est (en heure temporaire) 0h00 Jour et à 16h51min il est 0h00 (ou -0h00 !) NUIT.

🕐
Avatar du membre
Danny
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1248
Enregistré le : 28 déc. 2013 16:34

Re: MPO107 - Heure temporaire

Message par Danny »

Allez je tente une version pour la petite HP-20S, avec son affichage LCD mais programmation style "HP Classic".
Elle a une logique algébrique, mais avec sa touche INPUT on peut quand même simuler une sorte de pile à 2 niveaux.
Et en plus elle a des fonctions natives pour convertir les heures en format décimal :geek:

IMG_4167.jpg
IMG_4167.jpg (177.49 Kio) Vu 4699 fois
IMG_4168.jpg
IMG_4168.jpg (181.01 Kio) Vu 4699 fois

Code : Tout sélectionner

Utilisation :
- saisir l'heure de lever du Soleil puis INPUT puis l'heure de coucher du Soleil
- saisir XEQ A
- puis saisir l'heure actuelle et R/S
(saisir les heures au format H.MMSS)


01  61 41 a   LBL A
02  51 54     ->HR    ' Conversion de l'heure au format décimal
03  21  2     STO 2   ' Heure de coucher du Soleil
04  51 31     SWAP
05  51 54     ->HR
06  21  1     STO 1   ' Heure de lever du Soleil
07  26        R/S
08  51 54     ->HR
09  21  3     STO 3   ' Heure réelle
10  31        INPUT
11  22  1     RCL 1
12  61 42     x<=y ?  ' Si l'heure de lever du Soleil (y) est après l'heure réelle (x)
13  51 41 1   GTO 1
14  51 31     SWAP
15  31        INPUT
16  22  2     RCL 2
17  51 31     SWAP
18  61 42     x<=y ?  ' Si l'heure réelle (y) est après l'heure de coucher du Soleil (x)
19  51 41 2   GTO 2
20  51 41 3   GTO 3
21  61 41 1   LBL 1
22  22  3     RCL 3
23  75        +
24   2
25   4        24
26  74        =
27  21  3     STO 3
28  61 41 2   LBL 2
29  22  2     RCL 2
30  31        INPUT
31  22  1     RCL 1
32  75        +
33   2
34   4        24
35  74        =
36  21  2     STO 2
37  51 31     SWAP
38  21  1     STO 1
39   0        0       ' Astuce pour multiplier par -12 dans le cas d'une heure temporaire de nuit
40  65        -
41  61 41 3   LBL 3
42   1
43   2        12
44  74        =
45  55        *
46  33        (
47  22  3     RCL 3
48  65        -
49  22  1     RCL 1
50  34        )
51  45        /
52  33        (
53  22  2     RCL 2
54  65        -
55  22  1     RCL 1
56  34        )
57  34        )       ' Parenthèse supplémentaire pour finaliser la division
58  61 54     ->HMS
Modifié en dernier par Danny le 25 mars 2022 13:57, modifié 3 fois.
? Apple, Atari, Canon, Casio, ????????????, HP, Psion, Sharp, Tandy... même TI.
Avatar du membre
Schraf
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 499
Enregistré le : 05 mars 2020 20:45
Contact :

Re: MPO107 - Heure temporaire

Message par Schraf »

@Danny : Il ne manquerait pas un "0" à la fin de la ligne 13 ?
Avatar du membre
Danny
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1248
Enregistré le : 28 déc. 2013 16:34

Re: MPO107 - Heure temporaire

Message par Danny »

Yes en effet !
Il a sauté quand j'ai effacé les noms des instructions pour rendre le code moins lisible pour le moment :D

IMG_4169.jpg
IMG_4169.jpg (32.03 Kio) Vu 4691 fois
? Apple, Atari, Canon, Casio, ????????????, HP, Psion, Sharp, Tandy... même TI.
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: MPO107 - Heure temporaire

Message par Marge »

Heu, pardon, chef, mais n’est-ce pas aux équinoxes, et non aux solstices, que la durée du jour égale celle de la nuit ?
Parce que j’avais bien une idée de programme, mais là, ça chamboule tout. :oops:
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
Schraf
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 499
Enregistré le : 05 mars 2020 20:45
Contact :

Re: MPO107 - Heure temporaire

Message par Schraf »

@Marge : Ca tombe bien j'avais une modification à faire dans l'énoncé, ça en fera 2 !! 🚧🚧🚧
Avatar du membre
Danny
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1248
Enregistré le : 28 déc. 2013 16:34

Re: MPO107 - Heure temporaire

Message par Danny »

Ah oui merde, j'ai oublié de traiter un cas :roll: :P
? Apple, Atari, Canon, Casio, ????????????, HP, Psion, Sharp, Tandy... même TI.
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3418
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: MPO107 - Heure temporaire

Message par C.Ret »

Danny a écrit : 24 mars 2022 17:58 Ah oui merde, j'ai oublié de traiter un cas :roll: :P
Ben oui, c'est ça d'aller trop vite.

Où est Chris ? Il doit s'insérer avant le prochain sniper !



Bon. Je réfléchis, vu que nous avons passé le 21 mars 2022, les nuits sont plus courtes que les jours. Pas de beaucoup pour le moment, mais tout de même. J'aurais donc moins de temps pour chercher une solution à ce MPO la nuit. Par contre, les heures temporaires vont défilées plus vite et j'aurais l'impression d'avancer plus vite... c'est pas mal cette impression de vitesse.

Par contre, j'aurais plus de temps de jour, et je serai, à priori mieux réveillé. Par contre, je vais avoir l'impression que mon projet temporaire n'avance pas et surtout de moins en moins vite au fur et à mesure des jours de recherches et réflexions.

Bon, je ne vois qu'une seule solution, demander à Eric des heures supplémentaires temporaires.

Surtout que moi aussi j'ai oublié un truc important !
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
zpalm
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2928
Enregistré le : 03 mai 2008 15:33
Localisation : Grenoble

Re: MPO107 - Heure temporaire

Message par zpalm »

Schraf a écrit : 24 mars 2022 12:21 @zpalm : On va suivre le paragraphe n°51 de la circulaire du 28 octobre 2011 relative aux règles particulières à divers actes de l’état civil […]

Donc pour l'exemple donné du MPO, à 7h42min il est (en heure temporaire) 0h00 Jour et à 16h51min il est 0h00 (ou -0h00 !) NUIT.
Parfait ! Pour l’instant j’ai un programme en 21 pas sur 41C/42S qui marche pour les trois exemples. Il me reste à traiter le cas du -0h00mn…

Un peu de MPO après le Wordle du jour, rien de tel pour bien réveiller les neurones.
Avatar du membre
Schraf
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 499
Enregistré le : 05 mars 2020 20:45
Contact :

Re: MPO107 - Heure temporaire

Message par Schraf »

Comme @zpalm arrive à seulement 21 pas (on le croit sur parole 😇), je peux proposer mes versions pour HP-49/50g et HP-48G (qui n'a pas de UNROT ni de PICK 3) :

📄 HP-49/50g 📄

Code : Tout sélectionner

« PICK3 HMS- HMS→ 24 MOD UNROT SWAP HMS- HMS→
DUP2 < { / } { DUP 24 - UNROT - SWAP / } IFTE
12 * →HMS »
'MP107 STO

3: 7.42
2: 16.51
1: 14
MP107
1: 8.15442622951
📄 HP-48G 📄

Code : Tout sélectionner

« 3 PICK HMS- HMS→ 24 MOD 3 ROLLD SWAP HMS- HMS→
DUP2 < { / } { DUP 24 - 3 ROLLD - SWAP / } IFTE
12 * →HMS »
'MP107 STO

3: 7.42
2: 16.51
1: 22
MP107
1: -4.09418181818
Avatar du membre
zpalm
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2928
Enregistré le : 03 mai 2008 15:33
Localisation : Grenoble

Re: MPO107 - Heure temporaire

Message par zpalm »

Schraf a écrit : 25 mars 2022 08:19
Comme @zpalm arrive à seulement 21 pas (on le croit sur parole 😇)
Je ne voulais pas poster mon code trop tôt, mais bon le voici (à exécuter en FIX 04):

Code : Tout sélectionner

00 { 39-Byte Prgm }
01▸LBL "MPO107"
02 RCL ST Z
03 HMS-
04 →HR
05 24
06 MOD
07 X<>Y
08 RCL ST Z
09 HMS-
10 →HR
11 X>=Y?
12 GTO 01
13 STO- ST Y
14 24
15 -
16▸LBL 01
17 ÷
18 12
19 ×
20 →HMS
21 END
Tout doit être bon sauf pour 0h00mn NUIT où il retourne 12.0000 JOUR. Pour afficher -0.0000 sur une 41C ou 42S il faut passer en mode Alpha et ça rajoute 5 pas au total.
Avatar du membre
Schraf
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 499
Enregistré le : 05 mars 2020 20:45
Contact :

Re: MPO107 - Heure temporaire

Message par Schraf »

@Zpalm : Nos programmes sont identiques sauf que j'ai bêtement utiliser un IFTE (If Then Else) à la place d'un IFT puisque la division se fait dans tous les cas, je te pique donc l'idée :

Code : Tout sélectionner

« PICK3 HMS- HMS→ 24 MOD UNROT SWAP HMS- HMS→
DUP2 ≥ { DUP 24 - UNROT - SWAP } IFT
/ 12 * →HMS »
'MP107 STO

3: 7.42
2: 16.51
1: 7.42
MP107
1: 0

3: 7.42
2: 16.51
1: 16.51
MP107
1: 0
Avatar du membre
Danny
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1248
Enregistré le : 28 déc. 2013 16:34

Re: MPO107 - Heure temporaire

Message par Danny »

J'ai mis à jour mon code pour HP-20S pour gérer tous les cas (jour, et nuit avant ou après minuit).
? Apple, Atari, Canon, Casio, ????????????, HP, Psion, Sharp, Tandy... même TI.
Répondre

Retourner vers « Tous les Pockets »