[Casio fx-850p] Comment coder la saisie d'une fonction ?

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
wilou
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 52
Inscription : 20 juin 2012 18:26
Localisation : Lyon
Contact :

[Casio fx-850p] Comment coder la saisie d'une fonction ?

Message par wilou » 21 févr. 2016 08:35

Re-bonjour ! :)

Tout est dans le titre, ou presque. :)

La première question que je me pose, et cela concerne un bon nombre des programmes que j'avais réalisés quand j'étais ado :
Je souhaite travailler, par exemple, sur une fonction f(x), et j'aimerais pouvoir la saisir comme n'importe quel nombre que l'on va renseigner à coup de INPUT. A ce jour, je n'ai pas réussi, mais j'ai toujours pu éditer mes programmes et renseigner la fonction directement dedans. Ça marche très bien, mais ce n'est pas très élégant.
En parcourant les ressources au sujet de la 850p, j'ai vu qu'il avait été possible d'extraire le code des librairies, et le code montre a priori comment faire.

Si je prends l'exemple de la librairie 5200 - Intégration numérique (Méthode de Romberg) - Le code est le suivant :

Code : Tout sélectionner

5 ONERRORGOTO1000
10 DEFCHR$(255)="0000FE0000":MODE8:DIM:PRINTCHR$(15);
30 f$="":c$=CHR$(5):a=0:b=0:e=1e-7:m=8:ANGLE1:ERASEa:DIMa(m)
50 CLS:PRINT"Romberg's method  ʃf(x)dx [a,b] 1:f(x),[a,b]      2:ɛ,loop";
60 k=ASC(INPUT$(1,@)):IFk=13ORk=49THEN90:ELSEIFk=50THEN170
80 GOTO60
90 CLS:PRINT"Define function";
100 LOCATE0,1:PRINTc$;"f(x) ?";f$;:LOCATE0,0:LOCATE6,1:INPUT@100;f$:LOCATE0,0:z=VALF(f$)
110 IFLEN(f$)<21THENg$=f$ :ELSEg$=LEFT$(f$,17)+"..."
120 m$="ʃ "+g$+" dx [a,b]":s$="a":z=a:GOSUB800:a=z
130 s$="b":z=b:GOSUB800:b=z:GOTO250
170 m$="Err  |An+1-An|<ɛ  (ɛ>0)":s$="ɛ":z=e:GOSUB800:e=z:IFe<1e-90 THEN170
200 m$="Max loop  2n    
(n>0)":s$="n":z=m:GOSUB800:m=z:IFm=<0ORFRACm<>0THEN200:ELSEERASEa:DIMa(m):GOTO50
250 CLS:PRINTm$;TAB(0);"ʃf(x)dx = .....";
260 h=b-a:x=a:g=VALF(f$):x=b:f=VALF(f$):a(0)=(g+f)*h/2
300 FORi=1 TOm:h=h/2
310 s=0:FORj=1TO2^i-1STEP2:x=a+j*h:s=s+VALF(f$):NEXT
320 a(i)=a(i-1)/2+h*s
330 n=1:FORk=i-1TO0STEP-1
340 a(k)=a(k+1)+(a(k+1)-a(k))/(4^n-1)
350 IFABS(a(k+1)-a(k)) <e AND(i>3ORi=m)THENx=a(k):GOTO500
360 n=n+1:NEXT:NEXT:GOSUB450
390 PRINTc$;"n =";m;TAB(11);":An =";STR$(a(m-1));:LOCATE0,0:LOCATE1,1:z$=INPUT$(1,@):GOTO50
450 LOCATE0,1:PRINTc$;"not found";:z$=INPUT$(1,@):RETURN
500 x=ROUND(x,INTLOG(ABSe)-1):PRINTc$;"ʃf(x)dx =";x;:z$=INPUT$(1,@):GOTO50
800 CLS:PRINTm$;
810 LOCATE0,1:PRINTc$;s$"=";z;"?";:INPUT@10;z:LOCATE0,0:RETURN
1000 IFERR=1 THENCLS:ONERRORGOTO0
1010 IFERL=100 THENIFERR=2 THENRESUME100 :ELSERESUMENEXT
1015 IFERL=810 THENRESUME810
1020 GOSUB450:RESUME50
Source : http://manib.bplaced.net/blog/calculato ... ibrary.pdf

Je ne suis pas sûr de tout comprendre dans ce code. L'entrée de la fonction se fait-elle uniquement par :

Code : Tout sélectionner

100 LOCATE0,1:PRINTc$;"f(x) ?";f$;:LOCATE0,0:LOCATE6,1:INPUT@100;f$:LOCATE0,0:z=VALF(f$)
Actuellement, avec QB64, voici la syntaxe de mon programme :

Code : Tout sélectionner

'Intégrales - Romberg
1
CLS
CLEAR
SCREEN 12
COLOR 11

DEFDBL A-Z

PRINT
PRINT TAB(20); "Intégrales - Méthode de Romberg"
PRINT

INPUT " a "; a
INPUT " b "; b

n = 500
h = (b - a) / 4 / n
x = a
t = 7 * f(x)
i = 1

10
x = x + h
t = t + 32 * f(x)
x = x + h
t = t + 12 * f(x)
x = x + h
t = t + 32 * f(x)
x = x + h
t = t + 14 * f(x)

IF i = n THEN 20
i = i + 1
GOTO 10

20
t = t - 7 * f(x)
t = 2 * h * t / 45

PRINT " ⌠ "; b
PRINT " │ f(x) dx ="; t
PRINT " ⌡"; a


WINDOW (-30, -12)-(12, 12)
LINE (-10, 0)-(10, 0)
LINE (0, -10)-(0, 10)

FOR i = -10 TO 10 STEP 1
    PSET (i, .125)
    PSET (.125, i)
NEXT i
FOR x = -10 TO 10 STEP 1 / 256
    IF x <= -10 OR f(x) >= 10 OR f(x) <= 10 OR x >= 10 THEN PSET (x, f(x)), 14
    LINE -(x, f(x)), 14
NEXT x

FOR x = a TO b STEP 1 / 256
    LINE (x, f(x))-(x, 0), 14
NEXT x

LOCATE 28, 1
INPUT " Encore (o/n) "; z$
IF z$ = "o" THEN 1 ELSE CHAIN "menu.bas"
END

FUNCTION f (x)
f = SIN(x)
END FUNCTION
Où la fonction est située tout à la fin :

Code : Tout sélectionner

FUNCTION f (x)
f = SIN(x)
END FUNCTION
Il s'agit d'une particularité de QB64. Avant, sous QBasic, j'utilisais DEF FN f...

Pouvez-vous m'aiguiller ?

Merci ! :)

W.
••• Inventeur du "CCMOS mystique" © ••• Amateur de BM et d'IBM •••
••• La petite famille SASFEPU s'agrandit : TI-57II v.3, Casio fx-7500G, Casio fx-8800G, Sharp PC-1403H, Casio FX-850P (+RP-33), Atari Porfolio, HP 200LX 2 Mo •••

Avatar de l’utilisateur
bernouilli92
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4159
Inscription : 21 nov. 2012 14:03
Localisation : Ile de France

Re: [Casio fx-850p] Comment coder la saisie d'une fonction ?

Message par bernouilli92 » 21 févr. 2016 09:32

L'entrée de la fonction se fait en 100 par un input, la fonction se trouve alors dans la variable f$ de type chaîne de caractères. On évalue ensuite la fonction en mettant une valeur dans x et en utilisant VALF(f$) comme valeur de la fonction f$ pour la valeur x.
HP, Casio, Sharp, Psion, quelques TI et divers autres

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

Re: [Casio fx-850p] Comment coder la saisie d'une fonction ?

Message par dprtl » 21 févr. 2016 10:10

Pour la Casio PB-1000, et autres modèles basés sur le CPU HD61700, qui ne disposent pas de la fonction VALF en ROM, il est possible de la reprogrammer en assembleur avec le code suivant :

Code : Tout sélectionner

10 FORI=0 TO 320
25 READ A
30 POKE &H6FFA+I,A
35 NEXT I
40 CLOSE
50 BSAVE"VALF",&H6FFA,321,&H707A
60 PRINT"VALF function is now available ."
500 DATA &H77,&HF9,&H00,&H41,&H00,&H2C,&H34,&HC0,&HAB,&H2A
510 DATA &H60,&H1F,&HF7,&H01,&H0C,&H60,&H2A,&H60,&H1F,&H41
520 DATA &H00,&H30,&HF5,&H41,&H00,&H3A,&HB5,&H62,&H41,&H00
530 DATA &H41,&HF5,&H41,&H00,&H5B,&HB5,&H59,&H41,&H00,&H61
540 DATA &HF5,&H41,&H00,&H7B,&HB5,&H50,&H41,&H00,&HA4,&HF5
550 DATA &H41,&H00,&HE0,&HB5,&H47,&HF7,&HD6,&H00,&H3B,&H69
560 DATA &HA8,&H04,&H96,&H04,&H42,&H00,&H28,&HAA,&H64,&H1F
570 DATA &H4E,&H04,&H20,&H81,&H64,&H00,&HB0,&H16,&H28,&HE4
580 DATA &H1E,&HAA,&H64,&H04,&H9E,&H04,&H88,&H64,&H1E,&HD6
590 DATA &H40,&H3D,&H69,&HBB,&H64,&H1F,&HF5,&HB7,&H9F,&H96
600 DATA &H42,&H02,&H64,&H01,&H49,&H04,&H01,&H28,&H65,&H04
610 DATA &H3B,&H65,&H04,&HB4,&HA4,&H49,&H04,&H01,&HB1,&H8C
620 DATA &HA8,&H62,&H01,&H96,&H02,&H01,&H40,&HF7,&HD6,&H60
630 DATA &H0A,&H70,&HAE,&H00,&H9F,&H04,&HA7,&H05,&HAE,&H02
640 DATA &H96,&H02,&HA6,&H03,&HA6,&H01,&HFF,&H77,&HE5,&H98
650 DATA &H31,&H04,&HAC,&HFF,&H77,&HF9,&H00,&H9E,&H00,&HA6
660 DATA &H01,&H96,&H0F,&H02,&H12,&H49,&H11,&H01,&HB5,&H32
670 DATA &H88,&H6F,&H11,&H96,&H2F,&HD1,&H1C,&H06,&H6C,&H96
680 DATA &H5C,&HD8,&H21,&H7F,&H1E,&H96,&H1C,&H96,&H5C,&H02
690 DATA &H17,&H89,&H6E,&H0E,&H77,&HC8,&H96,&HD6,&H00,&H06
700 DATA &H6C,&H20,&H7F,&H0E,&H77,&H89,&H99,&H3A,&H1F,&H34
710 DATA &HC0,&HAB,&HAE,&H06,&H96,&H06,&H77,&H0A,&H70,&H35
720 DATA &HC0,&HAB,&H77,&H0A,&H01,&HB5,&H87,&H77,&H0A,&H70
730 DATA &HB1,&H84,&H9E,&H01,&H89,&H61,&H1E,&HAF,&H03,&H96
740 DATA &H43,&HA1,&H01,&H89,&H61,&H06,&H82,&H62,&H06,&HA7
750 DATA &H03,&H27,&H01,&H77,&H32,&H70,&HB1,&H24,&H96,&H06
760 DATA &H26,&H12,&HA6,&H11,&HA6,&H0F,&HA6,&H0D,&HA6,&H0B
770 DATA &HA6,&H07,&H77,&H89,&H99,&HAE,&H06,&HAE,&H0A,&HAE
780 DATA &H0C,&HAE,&H0E,&HAE,&H10,&H2E,&H12,&H2F,&H01,&HAF
790 DATA &H02,&HB7,&HA7,&HA2,&H6A,&H1F,&HA2,&H6C,&H1F,&HA2
800 DATA &H6E,&H1F,&H02,&H74,&H11,&H1A,&H34,&H08,&H70,&H14
810 DATA &H1A,&H11,&H1A,&H32,&H08,&H71,&H12,&HA2,&H70,&H1F,&HF7
Dans ce cas, il faudra appeler la fonction par un "CALL". Par exemple de la façon suivante :

Code : Tout sélectionner

F$ = "3 * x + 5"
x = 2
CALL "VALF",F$,Y 
=> retourne le résultat dans la variable Y

Je ne sais pas qui est l'auteur de ce programme, mais je l'ai trouvé sur :

http://airbug.one.pagesperso-orange.fr/index.htm
Dernière édition par dprtl le 21 févr. 2016 11:06, édité 1 fois.

Airbug.one
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 191
Inscription : 08 oct. 2003 20:40
Localisation : Toulouse
Contact :

Re: [Casio fx-850p] Comment coder la saisie d'une fonction ?

Message par Airbug.one » 21 févr. 2016 10:33

Je sais qui est l'auteur de ce programme. 8)
NON ce n'est pas moi :( , c'est un copain de prepa qui bricolait des trucs de ouf en assembleur sur son PB-1000 (ex: affichage de surfaces quadrillees avec masquage des parties cachées 8O ). Bref, ayant obtenu un PB-1000 quelques années après, j'ai pu le re-contacter pour savoir si par hasard, il avait codé une fonction "valf" sur son PB-1000. Helas, il ne l'avait pas. :cry:
3 semaines après, je recevais une lettre avec la liste des codes binaires associés ! :D

J'ai tenté de désassembler ce code mais il utilise des codes non documentés et aussi quelques adresses de routines en ROM basse et je n'ai AUCUNE idées de ce qu"elles font. :?

Vu l'utilité de ce programme je me suis dit que je DEVAIS le rendre public. :geek:.

Wala, après, ... le souvenir ... , la légende ... bref ... l'entrée dans l'Histoire de la fonction Valf sur PB-1000 quoi. :wink:

Plus sérieusement, je suis SUPER content que ça puisse servir à d'autres personnes.

Jean-Philippe (airbug.one)
JPI : CASIO PB-1000 - Canon X-O7

Avatar de l’utilisateur
wilou
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 52
Inscription : 20 juin 2012 18:26
Localisation : Lyon
Contact :

Re: [Casio fx-850p] Comment coder la saisie d'une fonction ?

Message par wilou » 21 févr. 2016 11:02

Hello,

Merci pour toutes ces informations.

Je vais de ce pas tester un peu voir ce que ça donne.

Y a-t-il des équivalents à VALF sur d'autres plateformes ?
Je vois ceci : https://www.purebasic.com/documentation ... /valf.html
Si je comprends bien, l'utilisation de VAL si j'ai pas VALF pourrait faire l'affaire ?

Merci. :)

W.
••• Inventeur du "CCMOS mystique" © ••• Amateur de BM et d'IBM •••
••• La petite famille SASFEPU s'agrandit : TI-57II v.3, Casio fx-7500G, Casio fx-8800G, Sharp PC-1403H, Casio FX-850P (+RP-33), Atari Porfolio, HP 200LX 2 Mo •••

tyann
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 737
Inscription : 06 oct. 2012 14:37

Re: [Casio fx-850p] Comment coder la saisie d'une fonction ?

Message par tyann » 21 févr. 2016 15:07

Bonjour
Y a-t-il des équivalents à VALF sur d'autres plateformes ?
Sur les machines plus récentes genre Hp Prime c'est expr("chaîne")
qui renvoie l'expression contenue dans chaîne, elle accepte des expressions avec des variables
voir même du code programme.
Si je comprends bien, l'utilisation de VAL si j'ai pas VALF pourrait faire l'affaire ?
Non val qui est un peu l'ancêtre de expr ne reconnaît que des nombres.
Si chaîne contient "4*x" et variable x=5 alors val(chaîne) renverra 4 tandis que expr renverra 20.
Sur fx 850p valF doît être une fonction équivalente à expr, est-elle limitée ? la fonction doit-elle être
obligatoirement dans f$ et la variable de calcul doit-elle être x ?.
Je ne sais pas.
Je n'ai pas, à mon grand regret de fx 850p ou 880p, je me demande par ailleurs ce que peut signifier
les @nn qui suivent les input ?
Ti(s) 60, 62 Galaxy, 66, 67 Galaxy, 68, 74 Basical 80, 81, 82, 83+, 83 CE, 84+SE, 85, 86, 89, 89 titanium, 92, 95 Procalc, v200, nSpire cx
Hp(s) 41CX, 28S, 48g, 50g, 39gII, Prime G1 et G2,
Casio(s) fx 602P, 702P, 4000P, 4500P, 6000G, 6900G, 7700G, 8500g, PB-700, CG-20, Graph 95 sd
Psion(s)II LZ64, siena, s3a, s3mx, s5mx.
Sharp(s) pc-1350, 1403, 1500A, El 5120, 9200, 9600

Canon X-07

Avatar de l’utilisateur
bernouilli92
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4159
Inscription : 21 nov. 2012 14:03
Localisation : Ile de France

Re: [Casio fx-850p] Comment coder la saisie d'une fonction ?

Message par bernouilli92 » 21 févr. 2016 15:41

tyann a écrit : Je n'ai pas, à mon grand regret de fx 850p ou 880p, je me demande par ailleurs ce que peut signifier
les @nn qui suivent les input ?
Ce n'est pas indiqué dans le manuel. Je suppose que c'est pour limiter la taille de la saisie en nombre de caractères.
HP, Casio, Sharp, Psion, quelques TI et divers autres

Céline
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 183
Inscription : 23 mars 2014 14:11

Re: [Casio fx-850p] Comment coder la saisie d'une fonction ?

Message par Céline » 21 févr. 2016 18:42

Il y a input$(n) qui est l'équivalent de inkey$ mais avec n caractères.
C'est pas ça ?
TI-30 Galaxy
fx-180P, fx-4000P
HP 11c, 12c, 12c le, 15c, 15c le
HP 32s, 32s ii, 42s, 17b ii, 30b, 35s
HP 28s, 48s, 48sx, 48g, 50g, prime

Avatar de l’utilisateur
wilou
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 52
Inscription : 20 juin 2012 18:26
Localisation : Lyon
Contact :

Re: [Casio fx-850p] Comment coder la saisie d'une fonction ?

Message par wilou » 22 févr. 2016 15:01

Bonjour,

Je comprends mieux pourquoi je n'arrive à rien avec VAL. :p

La routine en assembleur est spécifique au PB-1000. Néanmoins, c'est une info super intéressante. Merci Daniel, merci Jean-Philippe ! :)
Y a-t-il possibilité de faire autrement sur une machine qui n'est pas équipée de la fonction VALF ? Contourner l'absence de fonction en créant un petit programme en BASIC ? J'imagine qu'avec les instructions qui permettent de traiter les chaînes de caractères, il y a sûrement moyen d'arriver à quelque chose ?
En fait, je pense à un petit sous-programme qui serait indépendant, et qui pourrait être appelé des programmes principaux dont je dispose.
Le top du top serait pour moi de pouvoir porter cette fonction VALF sur mon PC-1403H et sur mon PC sur lequel j'ai installé QB64.
En écrivant, il me vient une idée que je n'ai pas explorée encore : Le PC E500 ayant lui aussi une librairie, il faudrait que je trouve le code des programmes quelque part s'il est dispo pour voir comment c'est fait (à moins que ce soit un système totalement différent de ce qui se fait chez Casio).

Une petite recherche qui je l'espère apportera quelques fruits.

Bonne après-midi.

W.
••• Inventeur du "CCMOS mystique" © ••• Amateur de BM et d'IBM •••
••• La petite famille SASFEPU s'agrandit : TI-57II v.3, Casio fx-7500G, Casio fx-8800G, Sharp PC-1403H, Casio FX-850P (+RP-33), Atari Porfolio, HP 200LX 2 Mo •••

Avatar de l’utilisateur
wilou
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 52
Inscription : 20 juin 2012 18:26
Localisation : Lyon
Contact :

Re: [Casio fx-850p] Comment coder la saisie d'une fonction ?

Message par wilou » 22 févr. 2016 17:35

Re ! :)

Bernouilli92, Céline :

J'ai trouvé ceci sur un site espagnol :
Función Input no documentada
Función de INPUT no documentada:
Es posible limitar los caracteres que se introducen mediante la sentencia INPUT:
INPUT @X;VAR

- X= Nº de caracteres límite a introducir.
- VAR= Variable (a$,b$,...)
Ce qui donne, après traduction maison :

Fonction INPUT non-documentée
Il est possible de limiter le nombre de caractères introduits par le biais de la fonction INPUT :
INPUT @X;VAR
  • X : Nombre de caractères maximum à renseigner ;
  • VAR : Variable (a$, b$...).
La source : http://electronica.ugr.es/~amroldan/mod ... /index.php

Bonne après-midi,

W.
••• Inventeur du "CCMOS mystique" © ••• Amateur de BM et d'IBM •••
••• La petite famille SASFEPU s'agrandit : TI-57II v.3, Casio fx-7500G, Casio fx-8800G, Sharp PC-1403H, Casio FX-850P (+RP-33), Atari Porfolio, HP 200LX 2 Mo •••

Céline
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 183
Inscription : 23 mars 2014 14:11

Re: [Casio fx-850p] Comment coder la saisie d'une fonction ?

Message par Céline » 23 févr. 2016 08:48

Testé :
possibilité d'entrer un message

Code : Tout sélectionner

input"Entrée";@n;va
en sortie, on obtient Entrée sans point d'interrogation, le n-ième caractère clignote et on ré-écrit par dessus si on essaie d'en rajouter un supplémentaire.
TI-30 Galaxy
fx-180P, fx-4000P
HP 11c, 12c, 12c le, 15c, 15c le
HP 32s, 32s ii, 42s, 17b ii, 30b, 35s
HP 28s, 48s, 48sx, 48g, 50g, prime

piotr433
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 7
Inscription : 13 nov. 2009 12:02
Localisation : Szczecin, Pologne
Contact :

Re: [Casio fx-850p] Comment coder la saisie d'une fonction ?

Message par piotr433 » 24 févr. 2016 22:44

I have tried to write my own implementation of the function VALF for the Casio PB-1000. It's much smaller than the program from the Airbug.one's web site - only 61 bytes instead of 321. Here's the source code which can be assembled with the PB-1000 built-in assembler:

Code : Tout sélectionner

        ORG     &H7000
        START   &H7000

        DB      &HEE,&H08,&H60  ;= PPSM $8,4
        PRE     IX,$10          ;pointer to the BASIC line
        DB      &HE6,&H0B,&H60  ;= PHSM $11,4
; parse the BASIC line pointed to by IX for the operands
        CAL     &H014C          ;test for a comma, SN Error if not found
        CAL     &H9CEB          ;evaluate a string expression
        CAL     &H9D81          ;append zero
        PHSW    $16
        CAL     &H014C          ;test for a comma, SN Error if not found
        CAL     &HA61A          ;variable specification
        DB      &H00,&H0D       ;= ADC $13,$SX ;variable type
        JP      LZ,&HAC04       ;TM Error if not a numeric variable
        DB      &HEE,&H06,&HA0  ;= PPSM $6,6
        GRE     IX,$10          ;updated pointer to the BASIC line
        DB      &HE6,&H0B,&H60  ;= PHSM $11,4
        DB      &HE6,&H10,&H80  ;= PHSM $16,5 ;VAR1..VAR4
; tokenize the input string
        PRE     IX,$6           ;input pointer
        PRE     IZ,$6           ;output pointer
        DB      &H02,&H17       ;= LD $23,$SX
        SBW     $14,$14
        CAL     &H96C8          ;tokenize
        PRE     IX,$6
        ST      $31,(IX+$14)    ;append zero
; evaluate the input string and assign the result to the variable
        JP      &HC6BD          ;command LET
Updates:
2016/02/25 - bug fix
2016/02/26 - optimisation
Dernière édition par piotr433 le 26 févr. 2016 22:58, édité 4 fois.

Airbug.one
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 191
Inscription : 08 oct. 2003 20:40
Localisation : Toulouse
Contact :

Re: [Casio fx-850p] Comment coder la saisie d'une fonction ?

Message par Airbug.one » 25 févr. 2016 17:51

piotr433 a écrit :I have tried to write my own implementation of the function VALF for the Casio PB-1000. It's much smaller than the program from the Airbug.one's web site - only 77 bytes instead of 321. Here's the source code which can be assembled with the PB-1000 built-in assembler:
Very impressive Piotr ! 8O
Hats off to you ! You're a real PB-1000 master ! 8)
Do you have a web site with a link to your program so that i can make a reference from my site (when i have time) ?

Jean-Philippe
JPI : CASIO PB-1000 - Canon X-O7

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

Re: [Casio fx-850p] Comment coder la saisie d'une fonction ?

Message par dprtl » 25 févr. 2016 21:45

I made some testing on Piotr program, with the following lines :

Code : Tout sélectionner

10 F$="3*X+5"
20 X=9
30 CALL "VALF.EXE",F$,Y
40 PRINT F$;"  X =";X
50 PRINT Y
The result 32 is correct. But, if I change the line 10 like this :

Code : Tout sélectionner

10 F$="3*SQR(X)+5"
The result is wrong ! Actually, it returns 3*SQR(X)+55.

EDIT : this bug has been fixed !
Dernière édition par dprtl le 27 févr. 2016 20:13, édité 1 fois.

piotr433
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 7
Inscription : 13 nov. 2009 12:02
Localisation : Szczecin, Pologne
Contact :

Re: [Casio fx-850p] Comment coder la saisie d'une fonction ?

Message par piotr433 » 25 févr. 2016 22:37

Daniel, thank you very much for the bug report!
A zero byte terminating the tokenized input string was placed at a wrong memory location. I've updated the program and I hope it's OK now.

Jean-Philippe, thanks for the compliment! As for the link, I propose to point it to the forum message, of course only when there will be no more bugs :)

Répondre

Revenir vers « Tous les Pockets »