[HP-41C] Profitons-en, "PGCDons" !
Modérateur : Politburo
- Thierry Loiseau
- Fonctionne à 1200 bauds
- Messages : 823
- Enregistré le : 10 avr. 2004 22:23
- Localisation : Terrasson (Périgord)
- Contact :
[HP-41C] Profitons-en, "PGCDons" !
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, 8500, Atari Mega ST1 ***], PB-540c, PISMO, [***CPC-6128, MO5***]... et bien d'autres trucs
[--- plus ---]
http://astrophoto.free.fr/
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
[***Apple //e, 7100, 8500, Atari Mega ST1 ***], PB-540c, PISMO, [***CPC-6128, MO5***]... et bien d'autres trucs
[--- plus ---]
http://astrophoto.free.fr/
- Thierry Loiseau
- Fonctionne à 1200 bauds
- Messages : 823
- Enregistré le : 10 avr. 2004 22:23
- Localisation : Terrasson (Périgord)
- Contact :
Re: [HP-41C] Profitons-en, "PGCDons" !
J'ai tenté de me creuser la tête en n'utilisant que la pile opérationnelle...
Ça marche mais je ne suis pas certain de ma logique RPNienne
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
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, 8500, Atari Mega ST1 ***], PB-540c, PISMO, [***CPC-6128, MO5***]... et bien d'autres trucs
[--- plus ---]
http://astrophoto.free.fr/
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
[***Apple //e, 7100, 8500, Atari Mega ST1 ***], PB-540c, PISMO, [***CPC-6128, MO5***]... et bien d'autres trucs
[--- plus ---]
http://astrophoto.free.fr/
- Marge
- Fonctionne à 14400 bauds
- Messages : 6189
- Enregistré le : 01 oct. 2008 14:39
- Localisation : En bas, tout au fond à gauche.
Re: [HP-41C] Profitons-en, "PGCDons" !
Ton message initial est une jolie présentation en tout cas.
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é. ♥ ♠
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é. ♥ ♠
Re: [HP-41C] Profitons-en, "PGCDons" !
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
Ben
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
- Thierry Loiseau
- Fonctionne à 1200 bauds
- Messages : 823
- Enregistré le : 10 avr. 2004 22:23
- Localisation : Terrasson (Périgord)
- Contact :
Re: [HP-41C] Profitons-en, "PGCDons" !
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, 8500, Atari Mega ST1 ***], PB-540c, PISMO, [***CPC-6128, MO5***]... et bien d'autres trucs
[--- plus ---]
http://astrophoto.free.fr/
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
[***Apple //e, 7100, 8500, Atari Mega ST1 ***], PB-540c, PISMO, [***CPC-6128, MO5***]... et bien d'autres trucs
[--- plus ---]
http://astrophoto.free.fr/
Re: [HP-41C] Profitons-en, "PGCDons" !
Il y a sûrement moyen de l'optimiser.
J'ai voulu respecter la méthode de calcul qu'on apprend à l'école
J'ai voulu respecter la méthode de calcul qu'on apprend à l'école
- C.Ret
- Fonctionne à 9600 bauds
- Messages : 3421
- Enregistré le : 31 mai 2008 23:43
- Localisation : N 49°22 E 6°10
Re: [HP-41C] Profitons-en, "PGCDons" !
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:
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)
Modifié en dernier par C.Ret le 06 mai 2017 09:14, modifié 2 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.
- Thierry Loiseau
- Fonctionne à 1200 bauds
- Messages : 823
- Enregistré le : 10 avr. 2004 22:23
- Localisation : Terrasson (Périgord)
- Contact :
Re: [HP-41C] Profitons-en, "PGCDons" !
Grand merci pour ce code commenté !
Astucieux
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
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, 8500, Atari Mega ST1 ***], PB-540c, PISMO, [***CPC-6128, MO5***]... et bien d'autres trucs
[--- plus ---]
http://astrophoto.free.fr/
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
[***Apple //e, 7100, 8500, Atari Mega ST1 ***], PB-540c, PISMO, [***CPC-6128, MO5***]... et bien d'autres trucs
[--- plus ---]
http://astrophoto.free.fr/
- C.Ret
- Fonctionne à 9600 bauds
- Messages : 3421
- Enregistré le : 31 mai 2008 23:43
- Localisation : N 49°22 E 6°10
Re: [HP-41C] Profitons-en, "PGCDons" !
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.
Comme beaucoup de fonctions et instructions sont diadiques (prennent deux arguments), copier les deux arguments une seule instruction devient fort utile.
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.
- Thierry Loiseau
- Fonctionne à 1200 bauds
- Messages : 823
- Enregistré le : 10 avr. 2004 22:23
- Localisation : Terrasson (Périgord)
- Contact :
Re: [HP-41C] Profitons-en, "PGCDons" !
PGCD ? ou PPCM ?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:
PGDC ? ou PPMC ?
PGCD... et PPCM !
Pleins de souvenirs pour moi
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, 8500, Atari Mega ST1 ***], PB-540c, PISMO, [***CPC-6128, MO5***]... et bien d'autres trucs
[--- plus ---]
http://astrophoto.free.fr/
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
[***Apple //e, 7100, 8500, Atari Mega ST1 ***], PB-540c, PISMO, [***CPC-6128, MO5***]... et bien d'autres trucs
[--- plus ---]
http://astrophoto.free.fr/
- C.Ret
- Fonctionne à 9600 bauds
- Messages : 3421
- Enregistré le : 31 mai 2008 23:43
- Localisation : N 49°22 E 6°10
Re: [HP-41C] Profitons-en, "PGCDons" !
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.
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 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.
- Thierry Loiseau
- Fonctionne à 1200 bauds
- Messages : 823
- Enregistré le : 10 avr. 2004 22:23
- Localisation : Terrasson (Périgord)
- Contact :
Re: [HP-41C] Profitons-en, "PGCDons" !
Oui, je vérifie et...
Modifié en dernier par Thierry Loiseau le 15 avr. 2017 23:23, modifié 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, 8500, Atari Mega ST1 ***], PB-540c, PISMO, [***CPC-6128, MO5***]... et bien d'autres trucs
[--- plus ---]
http://astrophoto.free.fr/
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
[***Apple //e, 7100, 8500, Atari Mega ST1 ***], PB-540c, PISMO, [***CPC-6128, MO5***]... et bien d'autres trucs
[--- plus ---]
http://astrophoto.free.fr/
- Thierry Loiseau
- Fonctionne à 1200 bauds
- Messages : 823
- Enregistré le : 10 avr. 2004 22:23
- Localisation : Terrasson (Périgord)
- Contact :
Re: [HP-41C] Profitons-en, "PGCDons" !
Vous êtes tout excusé maître C.Ret ...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.
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, 8500, Atari Mega ST1 ***], PB-540c, PISMO, [***CPC-6128, MO5***]... et bien d'autres trucs
[--- plus ---]
http://astrophoto.free.fr/
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
[***Apple //e, 7100, 8500, Atari Mega ST1 ***], PB-540c, PISMO, [***CPC-6128, MO5***]... et bien d'autres trucs
[--- plus ---]
http://astrophoto.free.fr/
- C.Ret
- Fonctionne à 9600 bauds
- Messages : 3421
- Enregistré le : 31 mai 2008 23:43
- Localisation : N 49°22 E 6°10
Re: [HP-41C] Profitons-en, "PGCDons" !
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 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.
Re: [HP-41C] Profitons-en, "PGCDons" !
C'est le MPO ultime
? Apple, Atari, Canon, Casio, ????????????, HP, Psion, Sharp, Tandy... même TI.