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 de l’utilisateur
Marge
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4483
Inscription : 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 » 22 janv. 2013 14:40

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 !

« Boris », c'est juste Maurice enrhumé.

Avatar de l’utilisateur
zpalm
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2499
Inscription : 03 mai 2008 15:33
Localisation : Grenoble

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

Message par zpalm » 22 janv. 2013 15:22

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 de l’utilisateur
C.Ret
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1991
Inscription : 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 » 22 janv. 2013 17:07

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 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803. | TI-57 LCD | TI-74 BasiCalc | TI-92 II | HP-28S + HP82240A | HP-41C + (2 memory + stat + IR) modules. | HP Prime Wireless Graphing Calculator |HP-15C | CASIO fx-602p + FA-1. .Sommaire des M.P.O.. . Sommaire du P.C.T.M. .

Avatar de l’utilisateur
zpalm
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2499
Inscription : 03 mai 2008 15:33
Localisation : Grenoble

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

Message par zpalm » 22 janv. 2013 19:09

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 de l’utilisateur
Marge
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4483
Inscription : 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 » 22 janv. 2013 22:25

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 !

« Boris », c'est juste Maurice enrhumé.

Avatar de l’utilisateur
Hobiecat
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2926
Inscription : 06 sept. 2011 14:57
Localisation : Normandie / Antwerpen

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

Message par Hobiecat » 22 janv. 2013 23:18

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 de l’utilisateur
zpalm
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2499
Inscription : 03 mai 2008 15:33
Localisation : Grenoble

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

Message par zpalm » 23 janv. 2013 14:03

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°  
Dernière édition par zpalm le 24 janv. 2013 10:15, édité 3 fois.

Avatar de l’utilisateur
C.Ret
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1991
Inscription : 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 » 23 janv. 2013 14:09

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 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803. | TI-57 LCD | TI-74 BasiCalc | TI-92 II | HP-28S + HP82240A | HP-41C + (2 memory + stat + IR) modules. | HP Prime Wireless Graphing Calculator |HP-15C | CASIO fx-602p + FA-1. .Sommaire des M.P.O.. . Sommaire du P.C.T.M. .

Avatar de l’utilisateur
Marge
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4483
Inscription : 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 » 23 janv. 2013 17:28

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 !

« Boris », c'est juste Maurice enrhumé.

Avatar de l’utilisateur
bkg2018
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 359
Inscription : 30 mai 2012 16:57

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

Message par bkg2018 » 24 janv. 2013 01:43

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 de l’utilisateur
C.Ret
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1991
Inscription : 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 » 24 janv. 2013 09:47

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 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803. | TI-57 LCD | TI-74 BasiCalc | TI-92 II | HP-28S + HP82240A | HP-41C + (2 memory + stat + IR) modules. | HP Prime Wireless Graphing Calculator |HP-15C | CASIO fx-602p + FA-1. .Sommaire des M.P.O.. . Sommaire du P.C.T.M. .

Avatar de l’utilisateur
Marge
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4483
Inscription : 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 » 24 janv. 2013 12:59

:D
3 hommes, 3 demis, un 3a... Magnéto, Serge !

« Boris », c'est juste Maurice enrhumé.

Avatar de l’utilisateur
zpalm
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2499
Inscription : 03 mai 2008 15:33
Localisation : Grenoble

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

Message par zpalm » 25 janv. 2013 14:30

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 de l’utilisateur
Marge
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4483
Inscription : 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 » 25 janv. 2013 17:30

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 !

« Boris », c'est juste Maurice enrhumé.

Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1290
Inscription : 27 oct. 2010 20:46

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

Message par Gilles59 » 26 janv. 2013 01:09

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+

Répondre

Revenir vers « Tous les Pockets »