Misez P'tit, Optimisez - N°33 (angles & côtés d'un triangle)

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

Répondre
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: Misez P'tit, Optimisez - N°33 (angles & côtés d'un trian

Message par Marge »

Merci pour cette optimisation et ces explications, zpalm !

Je retiens aussi qu'un registre pèse 7 octets. Mais je ne sais pas comment compter les instructions combinées sur HP-29c et assimilées.
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
zpalm
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2931
Enregistré le : 03 mai 2008 15:33
Localisation : Grenoble

Re: Misez P'tit, Optimisez - N°33 (angles & côtés d'un trian

Message par zpalm »

Marge a écrit :Mais je ne sais pas comment compter les instructions combinées sur HP-29c et assimilées.
Sur ces machines, une instruction = 1 octet.
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: Misez P'tit, Optimisez - N°33 (angles & côtés d'un trian

Message par C.Ret »

zpalm a écrit : @C.Ret: Je me suis demandé pendant un moment pourquoi tu avais choisi les registres 1 à 3 puis 6 à 8, mais en rentrant le programme sur une 41C j’ai vite compris que c’était plus simple avec l’adressage direct par les deux premières rangées de touches: RCL Σ+ donne RCL 01 et RCL X<>Y donne RCL 06.
Les 3 premières touches de la première rangée correspondent donc aux 3 côtés et les 3 premières touches de la deuxième rangée correspondent aux 3 angles.
Et oui, en codant j'avais devant moi les "matrices de résultat" de mon HP-28S, alors très vite l'idée est venue d'utiliser les deux rangées d'adressage direct. C'est une astuce que j'utilise beaucoup lorsque je programme.
Et l'adressage direct a été beaucoup sollicité pour chercher à bien "normaliser" les angles. Alors avoir les valeurs en deux touches cela aide bien !

Curieusement, sur une HP-25/19/29 ou même ma Ti-57LCD, j'utilisais les registres en fonction de la position sur le clavier numérique. Comme quoi on prend vite des habitudes avec la 41 !!!

Le problème de l'attribution des registres n'est pas anodin. A l'origine, avoir des registres alphabétiques avait été un gros avantage. Mes camarade de classe devaient consulter les instructions de la fiche programme pour se souvenir où mettre le rayon, la hauteur ou la surface. Alors que très vite, avec les pockets on fait simple; R pour rayon, H pour hauteur, S pour surface, P pour pression, V pour volume, N pour nombre de mole, R pour rapport et T pour temps...

Apparemment cela ne suffit plus, les systèmes CAS actuels (dont HP-50G, HP-39gii, etc...) proposent des variables à plusieurs caractères, minuscules, majuscules, indices, exposants, caractères grecs, hébreux, japonais, chinois, coréens, égyptiens, ... 8O

En tout cas nous sommes d'accord, ajouter 180° ( -1 ACOS) avant de normaliser par « COS ACOS » devrait effectivement corriger le tir. Je suis arrivé à la même solution.

En tout cas, les exemples qui posaient problème avec le code précèdent sont maintenant résolus. Ils ne sont pas toujours facile à détecté, je tester avec quatre ou cinq cas pris comme témoins. Et évidemment, le 'bug' n'était pas apparu. Il a fallu que Marge me le signal sur le code (que je n'avais pas testé) pour le rendre compte de l'incident.

Et bravo pour l'optimisation de mon code car :
-1- je n'avais pas réalisé que les répétitions de code pouvaient être l'objet d'un sous-programme supplémentaire,
-2- c'est pas tous les jours que l'instruction d'échange X<> -- est utilisée avec le contenu d'un registre.

Je me disais justement c'est bizarre, il n'y a pas d'instruction équivalent au EXC -- de TI. Mais si, j'avais complètement oublié X<> -- !! Comme quoi rien de tel que les MPO pour ce dégourdir et se remémorer tout cela.

Au fait, à propos de TI, je n’ai pas vu de version pour ces dernières. Elles étaient pourtant bien présentes il y a peu sur un MPO précèdent !
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 : 2931
Enregistré le : 03 mai 2008 15:33
Localisation : Grenoble

Re: Misez P'tit, Optimisez - N°33 (angles & côtés d'un trian

Message par zpalm »

C.Ret a écrit :Au fait, à propos de TI, je n’ai pas vu de version pour ces dernières. Elles étaient pourtant bien présentes il y a peu sur un MPO précèdent !
Quand on voit la taille du programme sur HP-41, ça être chaud de faire rentrer ça dans les 49 pas d'une TI-57, mais c'est peut-être jouable...

Voici une petite optimisation du code pour HP-41 qui permet de gagner 1 pas et 2 octets (changement au pas 21 et suivants):

Code : Tout sélectionner

                     Bytes  X            Y        Z        T        R1      R2      R3      R6              R7      R8
01      LBL "TRI     7                                                                           
02      "ENTER X,Y"  10                                                                            
03      PROMPT       1      Ay           Ax                                                              
04      STO 02       1      Ay           Ax                                 Ay                            
05      X<>Y         1      Ax           Ay                                 Ay                            
06      STO 06       1      Ax           Ay                                 Ay              Ax              
07      PROMPT       1      By           Bx       Ax       Ay               Ay              Ax              
08      XEQ 01       3      c            ba°      Bx       By               Ay              Ax              
09      STO 03       1      c            ba°      Bx       By               Ay      c       Ax              
10      RDN          1      ba°          Bx       By       c                Ay      c       Ax              
11      STO 07       1      ba°          Bx       By       c                Ay      c       Ax               ba°       
12      RDN          1      Bx           By       c        ba°              Ay      c       Ax               ba°     
13      PROMPT       1      Cy           Cx       Bx       By               Ay      c       Ax               ba°     
14      XEQ 01       3      a            cb°      Cx       Cy               Ay      c       Ax               ba°     
15      STO 01       1      a            cb°      Cx       Cy       a       Ay      c       Ax               ba°     
16      RDN          1      cb°          Cx       Cy       a        a       Ay      c       Ax               ba°    
17      STO 08       1      cb°          Cx       Cy       a        a       Ay      c       Ax               ba°     cb°
18      RCL 07       1      ba°          cb°      Cx       Cy       a       Ay      c       Ax               ba°     cb°
19      XEQ 09       3      b°           Cx       Cy       Cy       a       Ay      c       Ax               ba°     cb°
20      STO 07       1      b°           Cx       Cy       Cy       a       Ay      c       Ax               b°      cb°
21      CHS          1      -b°          Cx       Cy       Cy       a       Ay      c       Ax               b°      cb°
22      -1           2      -1           -b°      Cx       Cy       a       Ay      c       Ax               b°      cb°
23      ACOS         1      ACOS(-1)     -b°      Cx       Cy       a       Ay      c       Ax               b°      cb°
24      +            1      ACOS(-1)-b°  Cx       Cy       Cy       a       Ay      c       Ax               b°      cb°
25      X<> 06       2      Ax           Cx       Cy       Cy       a       Ay      c       ACOS(-1)-b°      b°      cb°
26      RCL 02       1      Ay           Ax       Cx       Cy       a       Ay      c       ACOS(-1)-b°      b°      cb°
27      XEQ 01       3      b            ac°      Ax       Ay       a       Ay      c       ACOS(-1)-b°      b°      cb°
28      STO 02       1      b            ac°      Ax       Ay       a       b       c       ACOS(-1)-b°      b°      cb°
29      RDN          1      ac°          Ax       Ay       Ay       a       b       c       ACOS(-1)-b°      b°      cb°
30      RCL 08       1      cb°          ac°      Ax       Ay       a       b       c       ACOS(-1)-b°      b°      cb°
31      XEQ 09       3      c°           Ax       Ay       Ay       a       b       c       ACOS(-1)-b°      b°      cb°
32      STO 08       1      c°           Ax       Ay       Ay       a       b       c       ACOS(-1)-b°      b°      c°
33      ST- 06       2      c°           Ax       Ay       Ay       a       b       c       ACOS(-1)-(b°+c°) b°      c°
34      RTN          1      b°           c°       Ax       Ay       a       b       c       a°               b°      c°
35      LBL 01       1                                                                            
36      X<>Y         1      Bx           By       Ax       Ay                                                 
37      ST- Z        2      Bx           By       Ax-Bx    Ay                                                 
38      RDN          1      By           Ax-Bx    Ay       Bx                                                 
39      ST- Z        2      By           Ax-Bx    Ay-By    Bx                                                 
40      RDN          1      Ax-Bx        Ay-By    Bx       By                                                 
41      R-P          1      c            ba°      Bx       By                                                 
42      RTN          1                                                                            
43      LBL 09       1      ba°          cb°      Cx       Cy                                                 
44      -            1      cb°-ba°      Cx       Cy       Cy                                                 
45      -1           2      -1           cb°-ba°  Cx       Cy                                                 
46      ACOS         1      ACOS(-1)     cb°-ba°  Cx       Cy                                                 
47      +            1      cb°-ab°      Cx       Cy       Cy                                                 
48      COS          1      b°           Cx       Cy       Cy                                                 
49      ACOS         1      b°           Cx       Cy       Cy                                                 
50      END          3      b°           Cx       Cy       Cy                                                 

Taille totale:       83                                                                             
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: Misez P'tit, Optimisez - N°33 (angles & côtés d'un trian

Message par Marge »

zpalm a écrit :
C.Ret a écrit :Au fait, à propos de TI, je n’ai pas vu de version pour ces dernières. Elles étaient pourtant bien présentes il y a peu sur un MPO précèdent !
Quand on voit la taille du programme sur HP-41, ça être chaud de faire rentrer ça dans les 49 pas d'une TI-57, mais c'est peut-être jouable...
Il nous manque aussi la version assembleur de Charo. Esprit, es-tu là ?
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
Hobiecat
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3639
Enregistré le : 06 sept. 2011 14:57
Localisation : Normandie

Re: Misez P'tit, Optimisez - N°33 (angles & côtés d'un trian

Message par Hobiecat »

zpalm a écrit :Quand on voit la taille du programme sur HP-41, ça être chaud de faire rentrer ça dans les 49 pas d'une TI-57, mais c'est peut-être jouable...
A défaut, les TIstes peuvent tenter sur TI-58 ou TI-59 aussi ... :wink:

PS : Bravo les participants, indépendamment du nombre de pas, arriver à faire rentrer ce programme dans 50 lignes de LMS, c'est une belle performance !
Avatar du membre
zpalm
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2931
Enregistré le : 03 mai 2008 15:33
Localisation : Grenoble

Re: Misez P'tit, Optimisez - N°33 (angles & côtés d'un trian

Message par zpalm »

Eh bien, c’est faisable sur TI-57: 47 pas et 7 registres soit 47 + 7x8 = 103 octets !! Qui dit mieux?

On lance le programme par :

[RST] Ax [R/S] Ay [R/S]Bx [R/S] By [R/S] Cx [R/S] Cy [R/S]

Les résultats sont dans les registres 1 à 6:
RCL 1: a
RCL 2: b
RCL 3: c
RCL 4: (BÂC)
RCL 5: (ABC)
RCL 6: (BCA)

Code : Tout sélectionner

                          X       Y      R0      R1      R2      R3      R4      R5          R6      R7 (t)
00       STO 4            Ax                                             Ax                     
01       STO 6            Ax                                             Ax                  Ax       
02       R/S              Ay                                             Ax                  Ax       
03       STO 1            Ay                     Ay                      Ax                  Ax       
04       STO 3            Ay                     Ay              Ay      Ax                  Ax       
05       R/S              Bx                     Ay              Ay      Ax                  Ax       
06       INV SUM 4        Bx                     Ay              Ay      Ax-Bx               Ax       
07       STO 5            Bx                     Ay              Ay      Ax-Bx   Bx          Ax       
08       R/S              By                     Ay              Ay      Ax-Bx   Bx          Ax       
09       INV SUM 1        By                     Ay-By           Ay      Ax-Bx   Bx          Ax       
10       STO 2            By                     Ay-By   By      Ay      Ax-Bx   Bx          Ax       
11       R/S              Cx                     Ay-By   By      Ay      Ax-Bx   Bx          Ax       
12       INV SUM 5        Cx                     Ay-By   By      Ay      Ax-Bx   Bx-Cx       Ax       
13       INV SUM 6        Cx                     Ay-By   By      Ay      Ax-Bx   Bx-Cx       Ax-Cx       
14       R/S              Cy                     Ay-By   By      Ay      Ax-Bx   Bx-Cx       Ax-Cx       
15       INV SUM 2        Cy                     Ay-By   By-Cy   Ay      Ax-Bx   Bx-Cx       Ax-Cx       
16       INV SUM 3        Cy                     Ay-By   By-Cy   Ay-Cy   Ax-Bx   Bx-Cx       Ax-Cx       
17       RCL 6            Ax-Cx                  Ay-By   By-Cy   Ay-Cy   Ax-Bx   Bx-Cx       Ax-Cx       
18       x<>t                                    Ay-By   By-Cy   Ay-Cy   Ax-Bx   Bx-Cx       Ax-Cx   Ax-Cx
19       RCL 3            Ay-Cy                  Ay-By   By-Cy   Ay-Cy   Ax-Bx   Bx-Cx       Ax-Cx   Ax-Cx
20       INV 2nd P->R     ca°                    Ay-By   By-Cy   Ay-Cy   Ax-Bx   Bx-Cx       Ax-Cx   b
21       STO 6            ca°                    Ay-By   By-Cy   Ay-Cy   Ax-Bx   Bx-Cx       ca°     b
22       2nd Exc 5        Bx-Cx                  Ay-By   By-Cy   Ay-Cy   Ax-Bx   ca°         ca°     b
23       x<>t             b                      Ay-By   By-Cy   Ay-Cy   Ax-Bx   ca°         ca°     Bx-Cx
24       2nd Exc 2        By-Cy                  Ay-By   b       Ay-Cy   Ax-Bx   ca°         ca°     Bx-Cx
25       INV 2nd P->R     cb°                    Ay-By   b       Ay-Cy   Ax-Bx   ca°         ca°     a
26       2nd Exc 4        Ax-Bx                  Ay-By   b       Ay-Cy   cb°     ca°         ca°     a
27       x<>t             a                      Ay-By   b       Ay-Cy   cb°     ca°         ca°     Ax-Bx
28       2nd Exc 1        Ay-By                  a       b       Ay-Cy   cb°     ca°         ca°     Ax-Bx
29       INV 2nd P->R     ba°                    a       b       Ay-Cy   cb°     ca°         ca°     c
30       INV SUM 5        ba°                    a       b       Ay-Cy   cb°     ca°-ba°     ca°     c
31       x<>t             c                      a       b       Ay-Cy   cb°     ca°-ba°     ca°     ba°
32       STO 3            c                      a       b       c       cb°     ca°-ba°     ca°
33       1                1                      a       b       c       cb°     ca°-ba°     ca° 
34       +/-              -1                     a       b       c       cb°     ca°-ba°     ca°
35       ACOS             ACOS(-1)               a       b       c       cb°     ca°-ba°     ca°
36       2nd Exc 5        ca°-ba°                a       b       c       cb°     ACOS(-1)    ca°  
37       2nd COS          COS(a°)                a       b       c       cb°     ACOS(-1)    ca° 
38       INV 2nd COS      a°                     a       b       c       cb°     ACOS(-1)    ca° 
39       INV SUM 5        a°                     a       b       c       cb°     ACOS(-1)-a° ca° 
40       2nd Exc 4        cb°                    a       b       c       a°      ACOS(-1)-a° ca°     
41       INV SUM 6        cb°                    a       b       c       a°      ACOS(-1)-a° ca°-cb° 
42       RCL 6            ca°-cb°                a       b       c       a°      ACOS(-1)-a° ca°-cb° 
43       2nd COS          COS(c°)                a       b       c       a°      ACOS(-1)-a° ca°-cb°
44       INV 2nd COS      c°                     a       b       c       a°      ACOS(-1)-a° ca°-cb°
45       INV SUM 5        c°                     a       b       c       a°      b°          ca°-cb° 
46       STO 6            c°                     a       b       c       a°      b°          c°  
Modifié en dernier par zpalm le 24 janv. 2013 09:15, modifié 3 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: Misez P'tit, Optimisez - N°33 (angles & côtés d'un trian

Message par C.Ret »

Ah! Bien joué!

Comme quoi la fonction R->P sert bien en trigonométrie. Ce qui permet d'utiliser les pas à gérer efficacement les registres mémoires.

De plus ce programme prouve une fois de plus la supériorité de la TI-57 originale sur la Ti-57 LCD qui pour disposer d'autant de registre mémoire n'aura pas assez de pas de programme.
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
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6186
Enregistré le : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: Misez P'tit, Optimisez - N°33 (angles & côtés d'un trian

Message par Marge »

Ah, mais ça ne va pas du tout, il va falloir que je sorte la HP-25 pour relever ce défi ! Pfff, encore un week-end de f... :? 8O :D
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
bkg2018
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 359
Enregistré le : 30 mai 2012 16:57

Re: Misez P'tit, Optimisez - N°33 (angles & côtés d'un trian

Message par bkg2018 »

zpalm.. encore au top :-)
HP : 67 25 34C 15C 41CX 48S* 48SX 48GX 35S* WP34S* 39gII*
TI : SR52 57 58C* 59 Programmer 66 74S 65
Sharp : PC 1245 1251* 1262 G-850S G-850V
Canon : X-07* F-800P*
Casio : CG-8 SF5300E*
*: persos d'époque
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: Misez P'tit, Optimisez - N°33 (angles & côtés d'un trian

Message par C.Ret »

Marge a écrit :Ah, mais ça ne va pas du tout, il va falloir que je sorte la HP-25 pour relever ce défi ! Pfff, encore un week-end de f... :? 8O :D
Ca c'est parceque tu habite "en bas à gauche". Ici (vers le centre et à mi-hauteur) c'est l'hiver et avec le froid, la neige et le verglas, rien de mieux qu'un MPO pour veiller le soir bien au chaud chez soi !

De plus, relever le défit sur une HP-25/HP-25C ça va être chaud, très chaud... c'est l'été quoi
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
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6186
Enregistré le : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: Misez P'tit, Optimisez - N°33 (angles & côtés d'un trian

Message par Marge »

:D
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
zpalm
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2931
Enregistré le : 03 mai 2008 15:33
Localisation : Grenoble

Re: Misez P'tit, Optimisez - N°33 (angles & côtés d'un trian

Message par zpalm »

Le programme pour TI-57 se porte facilement sur HP-41 et sur HP-15C qui disposent toutes deux de l’instruction X<> . Par contre pour la HP 25 c’est pas gagné … bon week-end Marge :-)

Sur HP-41 le résultat est même plus optimisé que la précédente version, à fois en nombre de pas (47 vs 50) et en nombre d’octets : 113 octets (71 + 6x7) vs. 125 octets (83 + 6x7). On utilise un registre de moins que sur la TI-57 (registre 7 utilisé pour la conversion R-P sur la 57) mais on a des instructions de deux octets (ST- xx , X<> xx), tribut payé au jeu d’instructions plus étendu de la HP-41.
Sans le LBL de début et le END de fin on est à 103 octets utilisés dans la mémoire utilisateur, soit exactement comme la TI-57.

Sur la HP-15C aussi c’est plus optimisé que la version avec la pile complexe: même nombre de pas (48) mais on arrive à 104 octets (62+6x7) en comptant le LBL de début et le RTN de fin, au lieu de 126 octets avec les nombres complexes. A noter sur HP-15C que les instructions X<> prennent deux octets sauf X<> 0 et X<> 1, qui sont codées sur un seul octet.

HP-41:

Code : Tout sélectionner

                       
                       X        Y              R1      R2      R3      R4      R5               R6 
01    LBL "TRI  7                                                                             
02    STO 04    1      Ax                                              Ax                       
03    STO 06    1      Ax                                              Ax                       Ax
04    R/S       1      Ay                                              Ax                       Ax
05    STO 01    1      Ay                      Ay                      Ax                       Ax
06    STO 03    1      Ay                      Ay              Ay      Ax                       Ax
07    R/S       1      Bx                      Ay              Ay      Ax                       Ax
08    ST- 04    2      Bx                      Ay              Ay      Ax-Bx                    Ax
09    STO 05    1      Bx                      Ay              Ay      Ax-Bx   Bx               Ax
10    R/S       1      By       Bx             Ay              Ay      Ax-Bx   Bx               Ax
11    ST- 01    2      By       Bx             Ay-By           Ay      Ax-Bx   Bx               Ax
12    STO 02    1      By       Bx             Ay-By   By      Ay      Ax-Bx   Bx               Ax
13    R/S       1      Cx       By             Ay-By   By      Ay      Ax-Bx   Bx               Ax
14    ST- 05    2      Cx       By             Ay-By   By      Ay      Ax-Bx   Bx-Cx            Ax
15    ST- 06    2      Cx       By             Ay-By   By      Ay      Ax-Bx   Bx-Cx            Ax-Cx
16    R/S       1      Cy                      Ay-By   By      Ay      Ax-Bx   Bx-Cx            Ax-Cx
17    ST- 02    2      Cy                      Ay-By   By-Cy   Ay      Ax-Bx   Bx-Cx            Ax-Cx
18    ST- 03    2      Cy                      Ay-By   By-Cy   Ay-Cy   Ax-Bx   Bx-Cx            Ax-Cx
19    RCL 03    1      Ay-Cy                   Ay-By   By-Cy   Ay-Cy   Ax-Bx   Bx-Cx            Ax-Cx
20    RCL 06    1      Ax-Cx    Ay-Cy          Ay-By   By-Cy   Ay-Cy   Ax-Bx   Bx-Cx            Ax-Cx
21    R-P       1      b        ca°            Ay-By   By-Cy   Ay-Cy   Ax-Bx   Bx-Cx            Ax-Cx
22    X<> 02    2      By-Cy    ca°            Ay-By   b       Ay-Cy   Ax-Bx   Bx-Cx            Ax-Cx
23    X<>Y      1      ca°      By-Cy          Ay-By   b       Ay-Cy   Ax-Bx   Bx-Cx            Ax-Cx
24    STO 06    1      ca°      By-Cy          Ay-By   b       Ay-Cy   Ax-Bx   Bx-Cx            ca°
25    X<> 05    2      Bx-Cx    By-Cy          Ay-By   b       Ay-Cy   Ax-Bx   ca°              ca°
26    R-P       1      a        cb°            Ay-By   b       Ay-Cy   Ax-Bx   ca°              ca°
27    X<> 01    2      Ay-By    cb°            a       b       Ay-Cy   Ax-Bx   ca°              ca°
28    X<>Y      1      cb°      Ay-By          a       b       Ay-Cy   Ax-Bx   ca°              ca°
29    X<> 04    2      Ax-Bx    Ay-By          a       b       Ay-Cy   cb°     ca°              ca°
30    R-P       1      c        ba°            a       b       Ay-Cy   cb°     ca°              ca°
31    STO 03    1      c        ba°            a       b       c       cb°     ca°              ca°
32    X<>Y      1      ba°      c              a       b       c       cb°     ca°              ca°
33    ST- 05    2      ba°      c              a       b       c       cb°     ca°-ba°          ca°
34    -1        2      -1       ba°            a       b       c       cb°     ca°-ba°          ca°
35    ACOS      1      ACOS(-1) ba°            a       b       c       cb°     ca°-ba°          ca°
36    X<> 05    2      ca°-ba°                 a       b       c       cb°     ACOS(-1)         ca°
37    COS       1      COS(a°)                 a       b       c       cb°     ACOS(-1)         ca°
38    ACOS      1      a°                      a       b       c       cb°     ACOS(-1)         ca°
39    ST- 05    2      a°                      a       b       c       cb°     ACOS(-1)-a°      ca°
40    X<> 04    2      cb°                     a       b       c       a°      ACOS(-1)-a°      ca°
41    RCL 06    1      ca°      cb°            a       b       c       a°      ACOS(-1)-a°      ca°
42    -         1      cb°-ca°                 a       b       c       a°      ACOS(-1)-a°      ca°
43    COS       1      COS(c°)                 a       b       c       a°      ACOS(-1)-a°      ca°
44    ACOS      1      c°                      a       b       c       a°      ACOS(-1)-a°      ca°
45    ST- 05    2      c°                      a       b       c       a°      ACOS(-1)-(a°+c°) ca°
46    STO 06    1      c°                      a       b       c       a°      b°               c°
47    END       3                                                                           
Taille totale: 71


HP-15C:

Code : Tout sélectionner

01  LBL A        17  ST- 2        33  ST- 5    
02  STO 4        18  ST- 3        34  1    
03  STO 6        19  RCL 3        35  CHS    
04  R/S          20  RCL 6        36  ACOS    
05  STO 1        21  ->P          37  X<> 5    
06  STO 3        22  X<> 2        38  COS    
07  R/S          23  X<>Y         39  ACOS    
08  ST- 4        24  STO 6        40  ST- 5    
09  STO 5        25  X<> 5        41  X<> 4    
10  R/S          26  ->P          42  RCL 6    
11  ST- 1        27  X<> 1        43  -    
12  STO 2        28  X<>Y         44  COS    
13  R/S          29  X<> 4        45  ACOS    
14  ST- 5        30  ->P          46  ST- 5    
15  ST- 6        31  STO 3        47  STO 6    
16  R/S          32  X<>Y         48  RTN 
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: Misez P'tit, Optimisez - N°33 (angles & côtés d'un trian

Message par Marge »

Toujours aussi efficace, zpalm, bravo !

Effectivement, sur la 25 ça risque d'échouer (dans mes pattes, bien entendu). Je vais au moins essayer de transposer sur 29c, si déjà j'y arrive j'aurai bien bossé :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é.
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Re: Misez P'tit, Optimisez - N°33 (angles & côtés d'un trian

Message par Gilles59 »

Une solution hyper concise pour HP39GII qui utilise l'APPS "triangle" :D

Code : Tout sélectionner

EXPORT TRI(a,b,c)
BEGIN
 SSS(ABS(b-a),ABS(c-b),ABS(c-a));
END;
Usage (ex de C.ret page 1)

TRI ( (0,0), (7,1), (3,3))

donne

{ 108.43, 36.87, 34.70 }

- SSS retourne les 3 angles d'un triangle étant donné les 3 longueurs des cotés
(il existe aussi les fonction AAS ASA SAS SSA facile à comprendre sachant que S=Side, A=Angle))
- ABS retourne le module (la 'longueur') d'un nombre complexe

Va falloir banir la 39GII pour les MPO 'triangles' 8O 8)

On peut d'ailleurs tres facilement dessiner ce triangle
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49g+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+ CM14 et MM12 / Alice 32
Répondre

Retourner vers « Tous les Pockets »