Un pot commun à toutes les machines n°2 : tracer des courbes

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
dprtl
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 390
Inscription : 27 janv. 2013 01:26
Localisation : Strasbourg
Contact :

Un pot commun à toutes les machines n°2 : tracer des courbes

Message par dprtl » 20 avr. 2013 16:08

Comment étudier graphiquement une fonction mathématique sur une calculatrice qui ne dispose pas de ce programme en ROM ?

Voici ma proposition pour Casio PB-700 :

Code : Tout sélectionner

10 ANGLE 1:GOTO 35
20 Y=SINX
30 RETURN
35 XI=-6:XM=6:SX=1:YI=-1:YM=1:SY=1:SP=3
40 CLS :L=150:H=31:PRINT "Range"
50 PRINT "X min :";XI:PRINT "  max :";XM:PRINT "  scl :";SX;
60 LOCATE 7,1:INPUT "",R$:IF R$<>"" THEN XI=VAL(R$)
70 LOCATE 7,2:INPUT "",R$:IF R$<>"" THEN XM=VAL(R$)
75 DX=XM-XI:IF DX<=0 THEN 60
80 LOCATE 7,3:INPUT "",R$:IF R$<>"" THEN SX=VAL(R$)
85 IF SX<=0 THEN SX=1
90 CLS:PRINT "Y min :";:PRINT USING "####.####";YI
95 PRINT "  max :";YM:PRINT "  scl :";SY:PRINT "speed :";SP;
100 LOCATE 7,0:INPUT "",Q$:IF Q$<>"" THEN YI=VAL(Q$)
110 LOCATE 7,1:INPUT "",R$:IF R$<>"" THEN YM=VAL(R$)
120 DY=YM-YI:IF Q$<>"A" THEN IF DY<=0 THEN 100
130 LOCATE 7,2:INPUT "",R$:IF R$<>"" THEN SY=VAL(R$):IF SY<=0 THEN SY=1
140 LOCATE 7,3:INPUT "",R$:IF R$<>"" THEN SP=VAL(R$):IF SP<=0 THEN SP=3
150 REM Repere
160 CLS :U=L/DX:IF Q$="A" THEN YI=YM-SY*H/SX/U:DY=YM-YI 
170 V=H/DY:I=-XI*U:J=YM*V
180 IF J<=0 THEN 230
190 IF J>H THEN 230
200 DRAW(0,J)-(L,J) 
210 FOR X=INT(XI+SX) TO XM STEP SX
220 A=X*U+I:DRAW(A,J-1):NEXT X
230 IF I<=0 THEN 290 
240 IF I>=L THEN 290
250 DRAW(I,0)-(I,H) 
260 FOR Y=INT(YI+SY-DY) TO YM STEP SY
270 B=-Y*V+J:DRAW(I+1,B):NEXT Y
280 REM Graph
290 X=XI:GOSUB 20:C=X*U+I:D=-Y*V+J:E=SP/U
300 FOR X=XI+E TO XM STEP E
310 GOSUB 20:A=X*U+I:B=-Y*V+J
320 IF D<0 THEN 370
330 IF D>H THEN 370
340 IF B<0 THEN 370
350 IF B>H THEN 370
360 DRAW(C,D)-(A,B)
370 C=A:D=B:NEXT X
380 LOCATE 18,0:INPUT R$:GOTO 40
Ici une vidéo de démonstration : http://youtu.be/F5uCiLTYn94. Et il y a d'autres explications dans un article de mon blog : http://chipotman.blogspot.fr/2013/04/de ... b-700.html.
Dernière édition par dprtl le 21 avr. 2013 08:54, édité 1 fois.

Avatar de l’utilisateur
Paul Tergeist
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2417
Inscription : 15 oct. 2007 15:50
Localisation : 3ème planète après le soleil

Re: Un pot commun à toutes les machines n°2 : tracer des cou

Message par Paul Tergeist » 20 avr. 2013 17:33

D'enfer !
C'est quel groupe la musique ?

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

Re: Un pot commun à toutes les machines n°2 : tracer des cou

Message par C.Ret » 20 avr. 2013 17:51

Ah! Excellent pot commun.

Je commencerai avec le programme qui pour moi est historique, car c'est le premier programme qui m'a permis de tracer les courbes des fonctions jusqu'au bac.
Et en plus sur une machine sans aucune capacité graphique : SHARP PC-1211

Code : Tout sélectionner

1 Y=SIN X:RETURN
10 "=" AREAD X:GOSUB 1:PRINT X,Y:END
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
dprtl
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 390
Inscription : 27 janv. 2013 01:26
Localisation : Strasbourg
Contact :

Re: Un pot commun à toutes les machines n°2 : tracer des cou

Message par dprtl » 20 avr. 2013 20:19

Paul Tergeist a écrit :D'enfer !
C'est quel groupe la musique ?
C'est "Blizzard" un titre du dernier album de Kavinsky. Si tu as l'impression de reconnaître un vieux thème, c'est qu'il y a du sample sur la bande originale de "San Ku Kaï" ("La Guerre", Eric Charden, 1980).

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

Re: Un pot commun à toutes les machines n°2 : tracer des cou

Message par Gilles59 » 20 avr. 2013 22:53

Sympa la vidéo :D

Pour ce pot commun, soit mes calcs ont cela intégré, soit elles ne sont pas graphiques ....
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+

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

Re: Un pot commun à toutes les machines n°2 : tracer des cou

Message par Hobiecat » 20 avr. 2013 23:12

Il faudrait que je retrouve le programme que j'avais fait pour une HP-42S : malgré la faible taille de l'écran, cétait relativement pratique pour tracer une allure générale de courbe... mais là pour l'instant, pas moyen de mettre la main dessus !
C.Ret a écrit :Ah! Excellent pot commun.
Je commencerai avec le programme qui pour moi est historique, car c'est le premier programme qui m'a permis de tracer les courbes des fonctions jusqu'au bac.
Et en plus sur une machine sans aucune capacité graphique : SHARP PC-1211
Sur les machines basic sans possibilités graphiques, je trouvais plus intéressant la technique qui faisait défiler une courbe à coups de I et de * . Exemple :

Code : Tout sélectionner

     
*    I     
 *   I
  *  I
    *I
     *
     I*
     I *
     I  *
J'avais fait ça sur mon PB-100, c'était très rustique, mais ça donnait une bonne idée de l'allure générale.

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

Re: Un pot commun à toutes les machines n°2 : tracer des cou

Message par C.Ret » 21 avr. 2013 09:36

C'est vrai ! J'oubliais c'était une technique très utilisée sur toute les machines avec imprimante. Comme par exemple l'HP-41C qui a d'ailleurs une instruction spécifique pour faire cela.

Mais à l'époque , je n'avais pas d'imprimante. Et de toute façon celle-ci n'aurait pas était authorisée en classe (et surtout lors des contrôles et brevêts !).

A l'époque, je gagnais un temps précieux qui faisait la diffèrence avec mes petits camarades pour tracer les courbes sur la page du cahier (à grands carreaux) ou sur le papier millimétré. Par contre, il que je recherche, j'avais un programme plus sophistiqué paramétrable où j'entrais les bornes de x et l'échelle en x(et y sauf en cas de repère orthonormé) ce qui faisait que mon SHARP affiché les coorodnnées des points en cm (ou en carreaux).

Cela permettait d'avoir sur la papier l'aspect global de la courbe dessinée sur une plage suffisante pour ne pas manquer les zones d'intérêts (racines, asymptotes, plateaux, etc...).

Je me souviens que pour eviter la confusion entre valeurs réelles de x et y avec les coorodnnée centimétriques, j'utilisais l'instruction USING afin d'arondir les cm au mimillimètre et afficher toutes les valeurs réelles avec 5 décimales.
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
zpalm
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2498
Inscription : 03 mai 2008 15:33
Localisation : Grenoble

Re: Un pot commun à toutes les machines n°2 : tracer des cou

Message par zpalm » 21 avr. 2013 10:15

dprtl a écrit : Ici une vidéo de démonstration : http://youtu.be/F5uCiLTYn94. Et il y a d'autres explications dans un article de mon blog : http://chipotman.blogspot.fr/2013/04/de ... b-700.html.
Dommage, la vidéo ne marche pas sur ma tablette Android ... :(
"Le propriétaire du contenu n'a pas rendu la vidéo disponible sur les mobiles."

Avatar de l’utilisateur
dprtl
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 390
Inscription : 27 janv. 2013 01:26
Localisation : Strasbourg
Contact :

Re: Un pot commun à toutes les machines n°2 : tracer des cou

Message par dprtl » 21 avr. 2013 11:23

zpalm a écrit :
dprtl a écrit : Ici une vidéo de démonstration : http://youtu.be/F5uCiLTYn94. Et il y a d'autres explications dans un article de mon blog : http://chipotman.blogspot.fr/2013/04/de ... b-700.html.
Dommage, la vidéo ne marche pas sur ma tablette Android ... :(
"Le propriétaire du contenu n'a pas rendu la vidéo disponible sur les mobiles."
Pour rendre ma vidéo compatible avec Android, j'ai du modifier la bande son. Celle-ci était soumise à droits d'auteurs. Pour le coup, Google mériterait un procès pour allégation mensongère et diffamation. En effet, ce n'est pas moi qui ai souhaité discriminer les mobiles Android, mais bel et bien l'application Youtube, automatiquement.

C'est d'autant plus absurde que cette bande son est déjà disponible sur Youtube (entre autres), dans plusieurs vidéos, dont celle-ci : https://www.youtube.com/watch?v=JghRB3SlHoo (image fixe sans intérêt).

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

Re: Un pot commun à toutes les machines n°2 : tracer des cou

Message par Marge » 21 avr. 2013 13:33

C'est vrai ! J'oubliais c'était une technique très utilisée sur toute les machines avec imprimante. Comme par exemple l'HP-41C qui a d'ailleurs une instruction spécifique pour faire cela.
Oui, il y a eu une floppée de pages de programmation parues à ce sujet dans les revues spécialisées.
Je ne vais pas les ressortir, mais peut-être me lancer dans la confection d'une routine pour HP-19c... 8)
3 hommes, 3 demis, un 3a... Magnéto, Serge !

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

remy
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2008
Inscription : 13 mars 2006 16:39
Localisation : Issy
Contact :

Re: Un pot commun à toutes les machines n°2 : tracer des cou

Message par remy » 21 avr. 2013 17:37

Ca marche tel quel sans modification sur le Z-1. Je ne savais pas qu'il y avait une belle compatibilité entre les BASIC chez Casio.
C'est cool.
P.S.: Ce tracé de courbe me permet de vérifier que mon Z-1 calcule correctement la trigo. J'avais essayé quelques valeurs, mais là, j'ai la continuité. :-)

Image
PockEmul, Emulateur de pocket Sharp, Canon, Casio, HP, TI, NEC, Panasonic, Sanco, Seiko, General, National, ....
sur Windows, Linux, OS X et Android
Available now on the Google Play Store

Avatar de l’utilisateur
babaorhum
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 451
Inscription : 13 janv. 2013 20:44
Localisation : Marseille-est

Re: Un pot commun à toutes les machines n°2 : tracer des cou

Message par babaorhum » 21 avr. 2013 22:22

Hello dprtl,
Sympa ton pgm (et la vidéo). Je l'ai Sharpisé sur mon PC-1360:

Code : Tout sélectionner

10 RADIAN:GOTO 35
20 Y=SINX
30 RETURN
35 XI=-6:XM=6:SX=1:YI=-1:YM=1:SY=1:SP=3
40 CLS :L=150:H=31:PRINT "Range"
50 PRINT "X min : ";XI:PRINT "  max : ";XM:PRINT "  scl : ";SX;
60 CURSOR 7,1:INPUT XI
70 CURSOR 7,2:INPUT XM
75 DX=XM-XI:IF DX<=0 THEN 60
80 CURSOR 7,3:INPUT SX
85 IF SX<=0 THEN SX=1
90 CLS:PRINT "Y min :";:PRINT USING "####.####";YI
95 PRINT "  max :";YM:PRINT "  scl :";SY:PRINT "speed :";SP;
100 CURSOR 7,0:INPUT Q$:IF Q$<>"" THEN LET YI=VAL(Q$)
110 CURSOR 7,1:INPUT YM
120 DY=YM-YI:IF Q$<>"A" THEN IF DY<=0 THEN 100
130 CURSOR 7,2:INPUT SY:IF SY<=0 THEN LET SY=1
140 CURSOR 7,3:INPUT SP:IF SP<=0 THEN LET SP=3
150 REM Repere
160 CLS :U=L/DX:IF Q$="A" THEN LET YI=YM-SY*H/SX/U:DY=YM-YI
170 V=H/DY:I=-XI*U:J=YM*V
180 IF J<=0 THEN 230
190 IF J>H THEN 230
200 LINE(0,J)-(L,J)
210 FOR X=INT(XI+SX) TO XM STEP SX
220 A=X*U+I: PSET(A,J-1):NEXT X
230 IF I<=0 THEN 290
240 IF I>=L THEN 290
250 LINE(I,0)-(I,H)
260 FOR Y=INT(YI+SY-DY) TO YM STEP SY
270 B=-Y*V+J:PSET(I+1,B):NEXT Y
280 REM Graph
290 X=XI:GOSUB 20:C=X*U+I:D=-Y*V+J:E=SP/U
300 FOR X=XI+E TO XM STEP E
310 GOSUB 20:A=X*U+I:B=-Y*V+J
320 IF D<0 THEN 370
330 IF D>H THEN 370
340 IF B<0 THEN 370
350 IF B>H THEN 370
360 LINE(C,D)-(A,B)
370 C=A:D=B:NEXT X
380 CURSOR 18,0:INPUT R$:GOTO 40
--> Changé les LOCATE en CURSOR - DRAW en LINE ou en PSET - ne pas oublier de mettre des LET pour une affectation après THEN et c'est dans le sac !
J'ai un peu simplifié les INPUT - sur Sharp on garde la valeur des variables si on répond par ENTER sur un INPUT ( d'après ton code ca ne doit pas se passer comme ca sur CASIO)

Et je l'ai executé en parallèle de ta vidéo ... quasi la même vitesse d'execution entre PC-1360 et PB-700 !!!
BaBaoRhum
HP J728,200LX,1000CX,75C,71B, 48GX,42s,41CX,35s,32E,32Sii,28S,22s,21,16C,11C,12Cp
Sharp PC- E500,1600,1500,1350,1261,1245
Casio FX-502P,602p,850P,3900P,4000P
TI-74&92 ; Canon X-07 ; Panasonic HHC RL-H1400 ; TANDY EC-4026

Avatar de l’utilisateur
dprtl
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 390
Inscription : 27 janv. 2013 01:26
Localisation : Strasbourg
Contact :

Re: Un pot commun à toutes les machines n°2 : tracer des cou

Message par dprtl » 28 avr. 2013 11:35

babaorhum a écrit : J'ai un peu simplifié les INPUT - sur Sharp on garde la valeur des variables si on répond par ENTER sur un INPUT ( d'après ton code ca ne doit pas se passer comme ca sur CASIO)
Sur la plupart des Casio "un peu récentes", si on teste le programme ci-dessous :

Code : Tout sélectionner

10 CLEAR:PRINT XI
20 XI=PI:PRINT XI;
30 INPUT"",XI
30 PRINT XI
... ça affiche :

Code : Tout sélectionner

RUN
 0 
 3.141592654 _
On peut revenir avec les flêches au début de la ligne, remplacer juste le 3 par un 6, puis [Enter]. Et ça affiche :

Code : Tout sélectionner

 6.141592654
 6.141592654 
Mais, sur PB-700, le comportement est moins évolué ("UV error" dès la ligne 10)... d'où la bidouille avec les VAL(R$).

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

Re: Un pot commun à toutes les machines n°2 : tracer des cou

Message par Marge » 29 avr. 2013 01:12

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 : 3334
Inscription : 06 sept. 2011 14:57
Localisation : Normandie

Re: Un pot commun à toutes les machines n°2 : tracer des cou

Message par Hobiecat » 29 avr. 2013 08:30

Sympa ! Et le programme, il est où ? :mrgreen:

Répondre

Revenir vers « Tous les Pockets »