[HP-41C] Profitons-en, "PGCDons" !

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
Thierry Loiseau
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 822
Inscription : 10 avr. 2004 22:23
Localisation : Terrasson (Périgord)
Contact :

[HP-41C] Profitons-en, "PGCDons" !

Message par Thierry Loiseau » 07 avr. 2017 17:59

Depuis mon précédent programme, voilà une application bien pratique...

Image

:lol:
HP-41C, HP-12C ; Casio FX-702P, FX-850P, FX-602P, FX-3900P, FX-4000P, FX-180Pv ;
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
Apple //e, 7100, 8100, 8500, PB-540c, PISMO, CPC-6128, MO5... et bien d'autres trucs

http://astrophoto.free.fr/

Avatar de l’utilisateur
Thierry Loiseau
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 822
Inscription : 10 avr. 2004 22:23
Localisation : Terrasson (Périgord)
Contact :

Re: [HP-41C] Profitons-en, "PGCDons" !

Message par Thierry Loiseau » 11 avr. 2017 11:42

J'ai tenté de me creuser la tête en n'utilisant que la pile opérationnelle...

Code : Tout sélectionner

01 LBL "PGCDST"
02 CF 29
03 FIX 0
04 CLA
05 AVIEW
06"NUMERATEUR : "
07 PROMPT			
08"DENOMINATEUR : "
09 PROMPT
10 CLA
11 AVIEW
12 LBL 00				
13 STO Z
14 MOD	
15 ENTER
16 1
17 X<>Y	
18 X<=Y?
19 GTO 02
20 X<>Y
21 RDN
22 GTO 00
23 LBL 02
24 X=0?
25 RCL Z
26"PGCD="
27 ARCL X
28 AVIEW
29 END
Ça marche mais je ne suis pas certain de ma logique RPNienne :(
HP-41C, HP-12C ; Casio FX-702P, FX-850P, FX-602P, FX-3900P, FX-4000P, FX-180Pv ;
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
Apple //e, 7100, 8100, 8500, PB-540c, PISMO, CPC-6128, MO5... et bien d'autres trucs

http://astrophoto.free.fr/

Avatar de l’utilisateur
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5593
Inscription : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: [HP-41C] Profitons-en, "PGCDons" !

Message par Marge » 11 avr. 2017 13:20

Ton message initial est une jolie présentation en tout cas.
3 hommes, 3 demis, un 3a... Magnéto, Serge !

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

Ben
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1817
Inscription : 21 août 2016 19:04

Re: [HP-41C] Profitons-en, "PGCDons" !

Message par Ben » 11 avr. 2017 19:56

Un programme que j'avais fait, il y a quelques mois pour calculer les PGCD et PPCM. Il utilise quelques mémoires.

La méthode pour le calcul est le même que celle apprise à l'école. Soustraction de A et B. Ensuite, on soustrait le résultat avec le plus petit des 2 termes de la soustraction. On répète jusqu'à ce que le résultat=0. Le PGCD est le dernier résutat non nulle.
PPCM = (A*B)/E

Code : Tout sélectionner

01 LBL PGCD
02 STO 01
03 X<>Y
04 STO 02
05 LBL 01
06 X>Y?
07 X<>Y
08 STO 03
09 -
10 X=0?
11 GTO 02
12 RCL 03
13 GTO 01
14 LBL 02
15 LASTX
16 STO 03
17 PGCD=
18 ARCL x
19 AVIEW
20 PSE
20 RCL 01
21 RCL 02
22 *
23 RCL 03
24 /
25 PPCM=
26 ARCL X
27 AVIEW
29 END
Ben

Avatar de l’utilisateur
Thierry Loiseau
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 822
Inscription : 10 avr. 2004 22:23
Localisation : Terrasson (Périgord)
Contact :

Re: [HP-41C] Profitons-en, "PGCDons" !

Message par Thierry Loiseau » 11 avr. 2017 20:41

Merci pour ta version :)
HP-41C, HP-12C ; Casio FX-702P, FX-850P, FX-602P, FX-3900P, FX-4000P, FX-180Pv ;
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
Apple //e, 7100, 8100, 8500, PB-540c, PISMO, CPC-6128, MO5... et bien d'autres trucs

http://astrophoto.free.fr/

Ben
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1817
Inscription : 21 août 2016 19:04

Re: [HP-41C] Profitons-en, "PGCDons" !

Message par Ben » 12 avr. 2017 19:53

Il y a sûrement moyen de l'optimiser.

J'ai voulu respecter la méthode de calcul qu'on apprend à l'école

Avatar de l’utilisateur
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2483
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: [HP-41C] Profitons-en, "PGCDons" !

Message par C.Ret » 12 avr. 2017 22:47

C'est bien de respecter la méthode apprise à l'école.

On peut aussi utiliser la congruence. l'algorithme reste le même mais l'on remplace la soustraction par le calcul du reste de la division euclidienne. cela va donc converger bien plus vite vers le PGDC.

Comme pour le programme de ben, ce code calcule le PGDC (GCD en anglais) et le PPMC de deux entiers a et b:

Code : Tout sélectionner

PC PRoGRaMme               Contenu de la pile:                       Commentaires:
                           t:         z:         y:         x:
01 LBL "GCD                 .          .          a          b          
02 RCL Y                    .          a          b          a       // Copie de a et b dans la pile opérationelle
03 RCL Y                    a          b          a          b 
04 LBL 00                                                            // Boucle de l'algorithme d'euclide (PGDC) 
05 MOD                        
06 LastX                    a          b          r          b     
07 x<>y  x#0?  GTO 00                                                // Boucle jsuqu'à reste r=0, b est alors le PGDC
10 +                                   a          b    gcd(a,b)      // Astuce pour faire disparaitre le terme null
11 ST/ T                a/gcd          a          b         gcd 
12 /                               a/gcd          a       b/gcd      // Calcul a'/b'  fraction irréductible a/b  
13 ST* Y                           a/gcd    a.b/gcd       b/gcd      // Calcul le PPMC   =  a*b/gcd(a,b)      	
14 x<>y                            a/gcd      b/gcd     a.b/gcd      // Met en place dans la pile
15 Lastx                a/gcd      b/gcd    a.b/gcd         gcd      // 
16 END

Code : Tout sélectionner

01 LBL "GCD                           // Les arguments a et b sont dans la pile
     RCL Y  RCL Y                     // Copie a et b
04 LBL 00                             // Boucle de l'algorithme d'euclide (PGDC) 
     MOD  LastX  x<>y  x#0?  GTO 00   // Boucle jsuqu'à reste nul, b est alors le PGDC
10 +  ST/ T  /  ST* Y  x<>y  Lastx    // Met en place dans la pile frraction irréductible a/b, PPMC, PGDC
16 END 

Code : Tout sélectionner

Utilisation :
Les termes a et b sont en y et x dans la pile de la calculette.

Exemple :
 950796 [ENTER^] 107016 [XEQ][Alpha]GCD[Alpha]  affiche 4116     = PGDC( 950796 , 107016 ) le plus grand diviseur commun
 Une pression sur                       [ R↓ ]  affiche 24720696 = PPMC( 950796 , 107016 ) le plus petit multiple commun
                                        [ R↓ ]  affiche 26       = b'                   
                                        [ R↓ ]  affiche 231      = a'  La fraction 950796/107016 se réduit donc à 231/26
                                        [ R↓ ]  revient à l'affichage du PGDC , etc.

(d'après programme trouvé sur le site du MoHP muséum et Yolasite)
Dernière édition par C.Ret le 06 mai 2017 09:14, édité 2 fois.
SHARP PC-1211 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803 + SD2iec. | TI-57 LCD | HP-28S + HP82240A | TI-74 BasiCalc | HP-41C + (2 memory + stat + IR) | HP-15C | HP Prime Color Touchscreen Graphing Calculator| TI-92 II | CASIO fx-602p + FA-1 | HP-71B 64K+JPC-ROM+HPIL+card reader . Sommaire des M.P.O..

Avatar de l’utilisateur
Thierry Loiseau
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 822
Inscription : 10 avr. 2004 22:23
Localisation : Terrasson (Périgord)
Contact :

Re: [HP-41C] Profitons-en, "PGCDons" !

Message par Thierry Loiseau » 13 avr. 2017 16:33

Grand merci pour ce code commenté !

Code : Tout sélectionner

02 RCL Y                    .          a          b          a       // Effectue une copie de a et b dans la pile opérationelle
03 RCL Y                    a          b          a          b
Astucieux :)
HP-41C, HP-12C ; Casio FX-702P, FX-850P, FX-602P, FX-3900P, FX-4000P, FX-180Pv ;
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
Apple //e, 7100, 8100, 8500, PB-540c, PISMO, CPC-6128, MO5... et bien d'autres trucs

http://astrophoto.free.fr/

Avatar de l’utilisateur
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2483
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: [HP-41C] Profitons-en, "PGCDons" !

Message par C.Ret » 13 avr. 2017 17:55

C'est l'origine de l'instruction DUP2 que l'on trouvera par la suite sur les calculatrices R.P.L.
Comme beaucoup de fonctions et instructions sont diadiques (prennent deux arguments), copier les deux arguments une seule instruction devient fort utile.
SHARP PC-1211 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803 + SD2iec. | TI-57 LCD | HP-28S + HP82240A | TI-74 BasiCalc | HP-41C + (2 memory + stat + IR) | HP-15C | HP Prime Color Touchscreen Graphing Calculator| TI-92 II | CASIO fx-602p + FA-1 | HP-71B 64K+JPC-ROM+HPIL+card reader . Sommaire des M.P.O..

Avatar de l’utilisateur
Thierry Loiseau
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 822
Inscription : 10 avr. 2004 22:23
Localisation : Terrasson (Périgord)
Contact :

Re: [HP-41C] Profitons-en, "PGCDons" !

Message par Thierry Loiseau » 15 avr. 2017 18:42

C.Ret a écrit :C'est bien de respecter la méthode apprise à l'école.

On peut aussi utiliser la congruence. l'algorithme reste le même mais l'on remplace la soustraction par le calcul du reste de la division euclidienne. cela va donc converger bien plus vite vers le PGDC.

Comme pour le programme de ben, ce code calcule le PGDC (GCD en anglais) et le PPMC de deux entiers a et b:
PGCD ? ou PPCM ?
PGDC ? ou PPMC ?

PGCD... et PPCM ! :arrow:
Pleins de souvenirs pour moi :oops:

:?:
HP-41C, HP-12C ; Casio FX-702P, FX-850P, FX-602P, FX-3900P, FX-4000P, FX-180Pv ;
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
Apple //e, 7100, 8100, 8500, PB-540c, PISMO, CPC-6128, MO5... et bien d'autres trucs

http://astrophoto.free.fr/

Avatar de l’utilisateur
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2483
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: [HP-41C] Profitons-en, "PGCDons" !

Message par C.Ret » 15 avr. 2017 21:56

Je crois que les acronymes corrects sont PGCD et PPCM en français.

Les PGDC et PPMC sont en fait une erreur de ma part, je pratique trop le franglais et autres "plates" germaniques et "spam" anglé-tiqué, ( c'est comme polymère et polynôme...

Je suis un peu dyslexique, surtout lorsque je prépare mes posts à partir de documents en langue étranges.
SHARP PC-1211 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803 + SD2iec. | TI-57 LCD | HP-28S + HP82240A | TI-74 BasiCalc | HP-41C + (2 memory + stat + IR) | HP-15C | HP Prime Color Touchscreen Graphing Calculator| TI-92 II | CASIO fx-602p + FA-1 | HP-71B 64K+JPC-ROM+HPIL+card reader . Sommaire des M.P.O..

Avatar de l’utilisateur
Thierry Loiseau
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 822
Inscription : 10 avr. 2004 22:23
Localisation : Terrasson (Périgord)
Contact :

Re: [HP-41C] Profitons-en, "PGCDons" !

Message par Thierry Loiseau » 15 avr. 2017 22:45

Oui, je vérifie et...
Dernière édition par Thierry Loiseau le 15 avr. 2017 23:23, édité 1 fois.
HP-41C, HP-12C ; Casio FX-702P, FX-850P, FX-602P, FX-3900P, FX-4000P, FX-180Pv ;
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
Apple //e, 7100, 8100, 8500, PB-540c, PISMO, CPC-6128, MO5... et bien d'autres trucs

http://astrophoto.free.fr/

Avatar de l’utilisateur
Thierry Loiseau
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 822
Inscription : 10 avr. 2004 22:23
Localisation : Terrasson (Périgord)
Contact :

Re: [HP-41C] Profitons-en, "PGCDons" !

Message par Thierry Loiseau » 15 avr. 2017 23:21

C.Ret a écrit :Je crois que les acronymes corrects sont PGCD et PPCM en français.

Les PGDC et PPMC sont en fait une erreur de ma part, je pratique trop le franglais et autres "plates" germaniques et "spam" anglé-tiqué, ( c'est comme polymère et polynôme...

Je suis un peu dyslexique, surtout lorsque je prépare mes posts à partir de documents en langue étranges.
Vous êtes tout excusé maître C.Ret ... Image

mais acronyme ou sigle, that is the question...

:?:
HP-41C, HP-12C ; Casio FX-702P, FX-850P, FX-602P, FX-3900P, FX-4000P, FX-180Pv ;
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
Apple //e, 7100, 8100, 8500, PB-540c, PISMO, CPC-6128, MO5... et bien d'autres trucs

http://astrophoto.free.fr/

Avatar de l’utilisateur
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2483
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: [HP-41C] Profitons-en, "PGCDons" !

Message par C.Ret » 31 janv. 2021 12:00

C.Ret a écrit :
12 avr. 2017 22:47
Comme pour le programme de ben, ce code calcule le PGDC (GCD en anglais) et le PPMC de deux entiers a et b:(d'après programme trouvé sur le site du MoHP muséum et Yolasite)
Je viens d'en apprendre un peu plus sur ce code pour HP-41C: l'auteur en personne nous donne ici quelque détail l'origine de cette merveille de simplicité et efficacité.
SHARP PC-1211 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803 + SD2iec. | TI-57 LCD | HP-28S + HP82240A | TI-74 BasiCalc | HP-41C + (2 memory + stat + IR) | HP-15C | HP Prime Color Touchscreen Graphing Calculator| TI-92 II | CASIO fx-602p + FA-1 | HP-71B 64K+JPC-ROM+HPIL+card reader . Sommaire des M.P.O..

Avatar de l’utilisateur
Danny
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 739
Inscription : 28 déc. 2013 17:34

Re: [HP-41C] Profitons-en, "PGCDons" !

Message par Danny » 31 janv. 2021 12:25

C'est le MPO ultime 8O
Casio fx-702P, 750P, 880p, 3900p, 7000G, 6000G, 6500G, 6800G, 8500G, 4500P, 9900GC, 9950GB +, Graph 100+ USB, Graph 90+E, fx-CP400
HP 35, 45, 65, 21, 25, 67, 33E, 41C, 41CV, 41CX, 15C, 20S, 42S, 28S, 32S, 32SII, 48SX, 48S, 48G, 48GX, 48G+, 50g, 35s, 39gII, Prime
Sharp PC-1245, 1500A, 1430, 1350, 1360, 1403, 1403H, 1262, EL-9000, PC-E500S | Psion Organiser II XP, Organiser II LZ 64 | Tandy PC-7

Répondre

Revenir vers « Tous les Pockets »