[FX-702P] La division euclidienne pour les nuls

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 :

[FX-702P] La division euclidienne pour les nuls

Message par Thierry Loiseau » 25 oct. 2016 02:59

J'ai retrouvé dans mes archives ce programme génial que j'ai écrit il y a bien 30 ans...

Image

... et cela fonctionne bien :)

Image

La preuve :

Image

(bon, question optimisation... :roll: )

Mais tout de même, 30 ans, c'est émotionnant, non ?

:oops:

__________________________________________________

... et j'en profite pour faire une petite pub :

__________________________________________________

Image

... bientôt en librairie :mrgreen:
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
Miskatonic91
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 495
Inscription : 27 août 2016 17:28
Localisation : Valdemarnie

Re: [FX-702P] La division euclidienne pour les nuls

Message par Miskatonic91 » 25 oct. 2016 13:42

Bravo pour ces reliques du passé, enfin retrouvées! Effectivement, trente ans après, ce doit être émouvant de remettre la main dessus.
Perso, je n'ai rien gardé de cette période, je reprends tout à zéro (pockets, programmation...).
Félicitations pour ton bouquin. Je ne savais pas que "Pour les Nuls" publiait des fascicules consacrés à un seul exercice de maths? :?:
Un peu de tout, mais toujours de bon goût :wink:

Avatar de l’utilisateur
ledudu
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5600
Inscription : 26 mars 2009 14:07
Localisation : Ile de France
Contact :

Re: [FX-702P] La division euclidienne pour les nuls

Message par ledudu » 25 oct. 2016 16:10

Salut
Tu nous fais un wav ?
Merci

Avatar de l’utilisateur
badaze
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7462
Inscription : 12 févr. 2007 19:36
Localisation : Pas très loin de Lyon
Contact :

Re: [FX-702P] La division euclidienne pour les nuls

Message par badaze » 25 oct. 2016 19:42

Miskatonic91 a écrit :Bravo pour ces reliques du passé, enfin retrouvées! Effectivement, trente ans après, ce doit être émouvant de remettre la main dessus.
Perso, je n'ai rien gardé de cette période, je reprends tout à zéro (pockets, programmation...).
Félicitations pour ton bouquin. Je ne savais pas que "Pour les Nuls" publiait des fascicules consacrés à un seul exercice de maths? :?:
Il existe des générateurs de couvertures...

Image
Tout est bon dans le pocket.
Moi j'aime tout.... Casio, HP, Sharp, TI et les autres sauf que les TI semblent ne pas m'aimer :(
http://www.emmella.fr
Mes Casio - HP - Sharp - TI
Homme invisible.

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: [FX-702P] La division euclidienne pour les nuls

Message par Thierry Loiseau » 25 oct. 2016 21:14

Miskatonic91 a écrit :Félicitations pour ton bouquin. Je ne savais pas que "Pour les Nuls" publiait des fascicules consacrés à un seul exercice de maths? :?:
Euh, félicitations pour mon "fake" ?
ledudu a écrit :Salut
Tu nous fais un wav ?
Merci
Why not ? :P :!:
badaze a écrit :Il existe des générateurs de couvertures...
Vraiment obligé d'utiliser un "générateur de couvertures" pour faire ça ?

:|
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
Miskatonic91
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 495
Inscription : 27 août 2016 17:28
Localisation : Valdemarnie

Re: [FX-702P] La division euclidienne pour les nuls

Message par Miskatonic91 » 25 oct. 2016 21:47

Thierry Loiseau a écrit :
Miskatonic91 a écrit :Félicitations pour ton bouquin. Je ne savais pas que "Pour les Nuls" publiait des fascicules consacrés à un seul exercice de maths? :?:
Euh, félicitations pour mon "fake" ?
Ben oui, il est bien fait... :mrgreen:
Un peu de tout, mais toujours de bon goût :wink:

Avatar de l’utilisateur
badaze
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7462
Inscription : 12 févr. 2007 19:36
Localisation : Pas très loin de Lyon
Contact :

Re: [FX-702P] La division euclidienne pour les nuls

Message par badaze » 25 oct. 2016 21:59

Thierry Loiseau a écrit :
badaze a écrit :Il existe des générateurs de couvertures...
Vraiment obligé d'utiliser un "générateur de couvertures" pour faire ça ?
:|
Vu qu'ils existent autant les utiliser.
Tout est bon dans le pocket.
Moi j'aime tout.... Casio, HP, Sharp, TI et les autres sauf que les TI semblent ne pas m'aimer :(
http://www.emmella.fr
Mes Casio - HP - Sharp - TI
Homme invisible.

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: [FX-702P] La division euclidienne pour les nuls

Message par Thierry Loiseau » 25 oct. 2016 23:17

badaze a écrit :
Thierry Loiseau a écrit :
badaze a écrit :Il existe des générateurs de couvertures...
Vraiment obligé d'utiliser un "générateur de couvertures" pour faire ça ?
:|
Vu qu'ils existent autant les utiliser.
Je ne savais pas... que tu utilisais régulièrement les divisions euclidiennes :D
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
badaze
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7462
Inscription : 12 févr. 2007 19:36
Localisation : Pas très loin de Lyon
Contact :

Re: [FX-702P] La division euclidienne pour les nuls

Message par badaze » 25 oct. 2016 23:44

Thierry Loiseau a écrit :
badaze a écrit :
Thierry Loiseau a écrit :
badaze a écrit :Il existe des générateurs de couvertures...
Vraiment obligé d'utiliser un "générateur de couvertures" pour faire ça ?
:|
Vu qu'ils existent autant les utiliser.
Je ne savais pas... que tu utilisais régulièrement les divisions euclidiennes :D
Je suis comme M. Jourdain qui faisait de la prose sans le savoir. ;)
Tout est bon dans le pocket.
Moi j'aime tout.... Casio, HP, Sharp, TI et les autres sauf que les TI semblent ne pas m'aimer :(
http://www.emmella.fr
Mes Casio - HP - Sharp - TI
Homme invisible.

Avatar de l’utilisateur
spacemax
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 85
Inscription : 05 nov. 2011 13:45
Localisation : Alpes de Haute Provence
Contact :

Re: [FX-702P] La division euclidienne pour les nuls

Message par spacemax » 26 oct. 2016 21:17

C'est un programme sympa que l'on peut utiliser avec les enfants quand ils apprennent les divisions.
Je garde.
Don't forget the spirit of the game...

Canon X-07 / Casio fx-850P / TI74 / Casio fx-8500G / Psion 3 / Psion 3a / Psion II XP / Psion II Lz / Psion Revo / Fx-4000p / Dell Axim x50V / Spiga Sagem / Casio fx-3900p / Casio fc-200 / Sharp 1403

Tipoucet
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3767
Inscription : 10 janv. 2009 14:47

Re: [FX-702P] La division euclidienne pour les nuls

Message par Tipoucet » 28 oct. 2016 21:00

Superbe ce programme visuel de division !! j'adore ! :D
Dominique

Avatar de l’utilisateur
ledudu
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5600
Inscription : 26 mars 2009 14:07
Localisation : Ile de France
Contact :

Re: [FX-702P] La division euclidienne pour les nuls

Message par ledudu » 30 oct. 2016 00:00

Voici le code :

Code : Tout sélectionner

DEFM 10
10 VAC:WAIT 0:INP "DIVIDENDE=",A,"DIVISEUR",B
20 IF B=0 THEN 10
30 A=INT A:B=INT B:C=INT(A/B):D=A-C*B
40 IF A<B THEN 10
50 E=1:IF C<=0;E=2
60 FOR I=2 TO 9:IF C>=10^I;E=I+1:NEXT I:GOTO 90
70 NEXT I
80 MODE 7
90 F=1:IF A>=10;F=2
100 FOR I=2 TO 9:IF A>=10^I;F=I+1:NEXT I:GOTO 120
110 NEXT I
120 G=4:IF B>=10;G=5
130 FOR I=2 TO 9:IF B>=10^I;G=I+4:NEXT I:GOTO 130
140 NEXT I
150 PRT A;" !";B:FOR I=1 TO G:$=$+"-":NEXT I
160 PRT CSR F+2;$
170 FOR I=E TO 1 STEP-1:A(I)=FRAC(C/10^I):A(I)=A(I)*10
180 A(I)=INT A(I):NEXT I
190 J=A
200 IF A(E)*B<J;J=J/10:GOTO 200
210 J=J*10:H=2:IF J>=10;H=3
220 FOR I=2 TO 9:IF J>=10^I;H=I+2:NEXT I:GOTO 260
230 NEXT I
240 K=INT J-A(E)*B:L=E:IF J=A;M=1
250 IF M!=1;K=K*10:N=J*10:N=INT N/10:N=FRAC N:N=N*10:K=K+N
260 L=L-1
270 H=H+1
280 T=E:J=J*10
290 IF E=1;H=F+1:K=D
300 IF H=1;PRT#;K;
310 IF H=2;PRT##;K;
320 IF H=3;PRT###;K;
330 IF H=4;PRT####;K;
340 IF H=5;PRT#####;K;
350 IF H=6;PRT######;K;
360 IF H=7;PRT#######;K;
370 IF H=8;PRT########;K;
380 IF H=9;PRT#########;K;
390 IF H=10;PRT##########;K;
400 IF L+1=E;PRT CSR F+2;"!";C
410 IF L+1!=E;PRT CSR F+2;"!"
420 IF E=1;PRT:PRT:PRT:PRT:MODE 8:END
430 E=E-1:O=A(E)*B:K=K-O:J=J*10:P=INT J/10:K=K*10:P=FRAC P
440 P=P*10:K=K+P:H=H+1
450 IF E=1;K=K/10
460 GOTO 290

Avatar de l’utilisateur
jojo
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 369
Inscription : 28 juin 2006 21:28
Localisation : Entre la France, la Suisse et l'Italie ... au pays du bien décolleté.

Re: [FX-702P] La division euclidienne pour les nuls

Message par jojo » 30 oct. 2016 01:24

Pour le fun, j'ai essayé en GW-Basic (DosBox sous Linux) ... Ya des trucs qui ne marchent pas !
CSR qui n'a pas d'équivalent en GW-Basic par exemple ou bien la fonction INT qui ne renvoie que l'entier le plus petit et pas le plus proche (FIX, CINT ou CLNG ne donnent pas les bons résultats) ou encore la fonction FRAC qui n'existe pas ..

Alors, le programme devient ça, après mûre réflexion et avec obligation de passer en double précision sinon l'affichage avec de grands nombres devient incohérent à cause de ^E. Et puis, je me suis aussi amusé à réduire l'affichage des résultats intermédiaires dans une seule boucle sans faire les tests sur la longueur du nombre

Code : Tout sélectionner

100 ' Division Euclidienne
110 ' NCDE: Nombre de chiffres du dividende
120 ' NCDR: Nombre de chiffres du diviseur
130 ' NCQT: Nombre de chiffres du quotient
140 CLS:INPUT "Dividende:",DIVID#
150 IF DIVID#<1 THEN END  'Ça suffit, on a assez fait mumuse !
160 INPUT "Diviseur:",DIVIS#
170 IF DIVIS#=0 OR DIVID#<DIVIS# THEN GOTO 100
180 DIVID#=INT(DIVID#)
190 DIVIS#=INT(DIVIS#)
200 QUOT#=INT(DIVID#/DIVIS#)
210 REST#=DIVID#-(DIVIS#*QUOT#)
220 PRINT:PRINT
230 PRINT DIVID#;"divise par";DIVIS#;"=";QUOT#;"reste ";REST#
240 NCQT=1
250 IF QUOT#>=10 THEN NCQT=2
260 FOR I=2 TO 9
270    IF (10^I)<QUOT# THEN NCQT=I+1 ELSE GOTO 290
280 NEXT I
290 NCDE=1
300 IF DIVID#>=10 THEN NCDE=2
310 FOR I=2 TO 9
320    IF (10^I)<DIVID# THEN NCDE=I+1 ELSE GOTO 340
330 NEXT I
340 NCDR=4
350 IF DIVIS#>=10 THEN NCDR=5
360 FOR I=2 TO 9
370    IF (10^I)<DIVIS# THEN NCDR=I+4 ELSE GOTO 390
380 NEXT I
390 FOR I=NCQT TO 1 STEP -1
400    CHIF#(I)=INT((QUOT#/(10^I)-INT(QUOT#/(10^I)))*10+1*(10^-I)) ' l'ajout de 1*(10^-I) c'est pour forcer INT à renvoyer le bon résultat
410 NEXT I
420 PRINT:PRINT
430 RESU#=DIVID#
440 U$=STRING$(NCDE+NCDR-2,"#")
450 PRINT USING U$;RESU#;
460 PRINT " |";DIVIS#
470 PRINT SPC(NCDE+NCDR-1);"|";STRING$(NCQT+2,"-")
480 FOR I=NCQT TO 2 STEP -1
490    PROD#=DIVIS#*CHIF#(I)*(10^(I-1))
500    RESU#=RESU#-PROD#
510    U$=STRING$(NCDE-I+NCDR,"#")
520    PRINT USING U$;INT(10*(RESU#/(10^(I-1))));
530    PRINT SPC(I-1);"|";
540    IF I=NCQT THEN PRINT QUOT# ELSE PRINT
550 NEXT I
560 I=1
570 PROD#=DIVIS#*CHIF#(I)*(10^(I-1))
580 RESU#=RESU#-PROD#
590 U$=STRING$(NCDE-2+NCDR,"#")
600 PRINT USING U$;INT((RESU#/(10^(I-1))));
610 PRINT SPC(I);"|";
620 IF NCQT<2 THEN PRINT QUOT#
630 PRINT:PRINT
640 PRINT:PRINT "Appuyez sur une touche"
650 Z$=INPUT$(1)
660 IF Z$=CHR$(27) THEN END 'Ça suffit, on a assez fait mumuse !
670 GOTO 100
Si quelqu'un veut bien essayer ... pour voir s'il ne reste pas un ou deux bugs.
J'ai fait la même chose pour QBasic mais sans les numéros et en utilisant la sortie de boucle avec EXIT FOR. Il y a aussi la possibilité de créer la fonction Frac. Je peux mettre cette version QBasic à disposition.

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: [FX-702P] La division euclidienne pour les nuls

Message par Marge » 30 oct. 2016 02:38

Moi, en tout cas, ça me donne bien envie d'essayer sur HP-19c ou HP-97... MPO !

... et sur un Sharp 1403 pour la beauté de l'impression.
3 hommes, 3 demis, un 3a... Magnéto, Serge !

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

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: [FX-702P] La division euclidienne pour les nuls

Message par Thierry Loiseau » 31 oct. 2016 09:53

Bravo à vous pour les retranscriptions ! :ugeek:
À l'époque, je ne connais pas la possibilité d'utiliser la fonction Log pour déterminer le nombre de chiffres composant un nombre entier.

Par exemple quelque chose comme cela :

Code : Tout sélectionner

10 INP "NOMBRE :",N
20 C=INT(LOG(N))+1
30 PRT "NOMBRE DE CHIFFRES :";C
D'autre part, la fonction "INT" retourne la partie entière ; "FRAC" la partie décimale.
De plus, la ligne

Code : Tout sélectionner

280 T=E:J=J*10
doit se simplifier par

Code : Tout sélectionner

280 J=J*10
(la variable T ne servant que de repère pour débuguer le programme...
Dernière édition par Thierry Loiseau le 31 oct. 2016 10:07, édité 2 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/

Répondre

Revenir vers « Tous les Pockets »