Casio fx 850p

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
Andromede
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 157
Enregistré le : 09 oct. 2021 15:15

Casio fx 850p

Message par Andromede »

Bonjour à tous,
Y a-t-il parmi vous ceux qui s'amusent encore â programmer le casio fx-850p. C'est vraiment une très belle machine. Il serait très intéressant de les revoir revivre peut-être avec un nouveau langage comme PYTHON.
Ma question concerne la commande INKEY$. Bien qu'elle soit documentée dans le manuel utilisateur avec un exemple d'application, celle-ci ne s'exécute pas.
Quelqu'un a t'il une idée?
Merci
Casio FX-850P, FX-880P, FX-7000G, FX-7000GA, FX-3900P
Canon X-07
Sharp E500, EL-9000, PC 1500
Texas Instruments TI-57 II, TI-62 Galaxy, TI-66 Programmable, TI-74 Basicalc, TI-74S, TI-95 Procalc
" Les machines un jour pourront résoudre tous les problèmes, mais jamais aucune d'entre elles ne pourra en poser un !" Albert Einstein
Avatar du membre
Danny
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1248
Enregistré le : 28 déc. 2013 16:34

Re: Casio fx 850p

Message par Danny »

Ça fonctionne bien normalement.
Tu l’as bien mis dans une boucle ?
Car l’instruction INKEY$ seule « n’attend » pas qu’on appuie sur une touche :geek:
? Apple, Atari, Canon, Casio, ????????????, HP, Psion, Sharp, Tandy... même TI.
Andromede
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 157
Enregistré le : 09 oct. 2021 15:15

Re: Casio fx 850p

Message par Andromede »

Bonsoir,
J'ai repris l'exemple pratique en page 121 du manuel de l'utilisateur:
10 PRINT "PRESS ANY KEY";
20 C$=INKEY$
30 IF C$="" THEN 20
40 CLS:PRINT"YOU PRESS"; C$; "KEY"
50 END
Il y a effectivement une boucle à la ligne 30. Le programme s'exécute de façon séquentielle jusqu'à la fin. J'ai activé la commande TRON pour tracer l'exécution du programme. Cela confirme qu'il exécute le programme de façon séquentielle (10, 20, 30, 40, 50) comme si la boucle n'existait pas.
:(
Casio FX-850P, FX-880P, FX-7000G, FX-7000GA, FX-3900P
Canon X-07
Sharp E500, EL-9000, PC 1500
Texas Instruments TI-57 II, TI-62 Galaxy, TI-66 Programmable, TI-74 Basicalc, TI-74S, TI-95 Procalc
" Les machines un jour pourront résoudre tous les problèmes, mais jamais aucune d'entre elles ne pourra en poser un !" Albert Einstein
kenneth
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 948
Enregistré le : 22 sept. 2010 13:48
Localisation : France PdD

Re: Casio fx 850p

Message par kenneth »

Il faut peut etre vider la memoire de scrutation clavier remplie par le 《enter》entré après le RUN.
Essaie de le vider en ajoutant
15 C$=INKEY$
Avatar du membre
Hobiecat
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3626
Enregistré le : 06 sept. 2011 14:57
Localisation : Normandie

Re: Casio fx 850p

Message par Hobiecat »

Pour trouver ce qui cloche, tu peux commencer par regarder ce qu'il y a dans C$ à la fin de l'exécution. Probablement, ce n'est pas vide, et la solution de Kenneth est la bonne.
Avatar du membre
Danny
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1248
Enregistré le : 28 déc. 2013 16:34

Re: Casio fx 850p

Message par Danny »

Andromede a écrit : 10 oct. 2021 01:04 Le programme s'exécute de façon séquentielle jusqu'à la fin.
Ok donc au final il affiche "YOU PRESS" ?
? Apple, Atari, Canon, Casio, ????????????, HP, Psion, Sharp, Tandy... même TI.
Andromede
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 157
Enregistré le : 09 oct. 2021 15:15

Re: Casio fx 850p

Message par Andromede »

Bonjour à tous,
J'ai exploré la piste de Kenneth. Ce qui donne le programme suivant :
10 PRINT "PRESS ANY KEY";
15 C$=INKEY$ ------------ Proposition de Kenneth -------------------
20 C$=INKEY$
30 IF C$="" THEN 20
40 CLS: PRINT"YOU PRESS ";C$;" KEY"
50 END
Le programme a bien fonctionné durant deux itérations, ensuite plus rien, c'est-à-dire qu'il affiche directement "YOU PRESS KEY". En affichant le contenu de la variable C$ à la fin de l'exécution du programme comme l'a recommandé Hobiecat avec la commande PRINT C$, l'affichage est vide, autrement dit la variable C$ ne contient aucune valeur. J'ai remarqué également qu'en faisant CLS deux ou trois fois, le programme s'exécute dès fois correctement mais sans dépasser deux ou trois itérations. Cela ressemble à un fonctionnement aléatoire :?: :!: :(
Casio FX-850P, FX-880P, FX-7000G, FX-7000GA, FX-3900P
Canon X-07
Sharp E500, EL-9000, PC 1500
Texas Instruments TI-57 II, TI-62 Galaxy, TI-66 Programmable, TI-74 Basicalc, TI-74S, TI-95 Procalc
" Les machines un jour pourront résoudre tous les problèmes, mais jamais aucune d'entre elles ne pourra en poser un !" Albert Einstein
Avatar du membre
Coyotte
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 71
Enregistré le : 02 oct. 2019 13:14
Localisation : Liège (BE)

Re: Casio fx 850p

Message par Coyotte »

Bonjour,
l'affichage est vide, autrement dit la variable C$ ne contient aucune valeur
Je ne suis pas spécialiste Casio mais ce n'est pas parce que l'affichage est vide que c$ l'est pour autant.
Il peut y avoir un caractère non imprimable.

Peut-être peux-tu essayer d'aficher la longueur de c$ et/ou le code Ascii du contenu de c$ afin de t'assurer que la variable est bien vide.
Cela aiderait certainement à comprendre ce qu'il se passe.

Coyotte
Avatar du membre
badaze
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 8384
Enregistré le : 12 févr. 2007 18:36
Localisation : Pas très loin de Lyon
Contact :

Re: Casio fx 850p

Message par badaze »

Andromede a écrit : 11 oct. 2021 11:59 Bonjour à tous,
J'ai exploré la piste de Kenneth. Ce qui donne le programme suivant :
10 PRINT "PRESS ANY KEY";
15 C$=INKEY$ ------------ Proposition de Kenneth -------------------
20 C$=INKEY$
30 IF C$="" THEN 20
40 CLS: PRINT"YOU PRESS ";C$;" KEY"
50 END
Le programme a bien fonctionné durant deux itérations, ensuite plus rien, c'est-à-dire qu'il affiche directement "YOU PRESS KEY". En affichant le contenu de la variable C$ à la fin de l'exécution du programme comme l'a recommandé Hobiecat avec la commande PRINT C$, l'affichage est vide, autrement dit la variable C$ ne contient aucune valeur. J'ai remarqué également qu'en faisant CLS deux ou trois fois, le programme s'exécute dès fois correctement mais sans dépasser deux ou trois itérations. Cela ressemble à un fonctionnement aléatoire :?: :!: :(
Est-ce qu’il y a un espace ou pas entre les 2 " dans le IF ?
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.
Andromede
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 157
Enregistré le : 09 oct. 2021 15:15

Re: Casio fx 850p

Message par Andromede »

Bonjour,
Il n'y a pas d'espace entre les guillemets C$="" de la condition IF. Je vais essayer avec C$=" "
Je vais essayer également d'afficher le code ASCII du contenu de la variable C$
Par contre, je n'arrive pas à comprendre le fait que le programme arrive à fonctionner correctement sur une ou deux itérations comme je vous l'ai signalé :?: :!: :cry: Cela ressemble à un fonctionnement aléatoire de la commande INKEY$ :!:
Merci
Casio FX-850P, FX-880P, FX-7000G, FX-7000GA, FX-3900P
Canon X-07
Sharp E500, EL-9000, PC 1500
Texas Instruments TI-57 II, TI-62 Galaxy, TI-66 Programmable, TI-74 Basicalc, TI-74S, TI-95 Procalc
" Les machines un jour pourront résoudre tous les problèmes, mais jamais aucune d'entre elles ne pourra en poser un !" Albert Einstein
Avatar du membre
meridian
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 1151
Enregistré le : 29 oct. 2014 05:08
Localisation : Seine-Saint-Denis

Re: Casio fx 850p

Message par meridian »

tu as essayé de mettre un print asc(c$) pour voir ce que retournait le inkey$ ?

edit :

J'ai regardé rapidement sur un FX-850, le INKEY$ retourne un code ASCII 13 peut-être celui de la commande RUN
Tu pourrais peut-être modifier ton IF en testant aussi un CHR$(13) ?
Avatar du membre
Pocket
Administrateur
Administrateur
Messages : 5940
Enregistré le : 24 mai 2002 16:55
Localisation : Toulouse
Contact :

Re: Casio fx 850p

Message par Pocket »

Salut,

Andromede, n'oublie pas aussi ce que je t'ai demandé.

A+
Pocket, voit tout, sait tout, lit l'avenir dans les entrailles d'une base phpBB ...
Image
Andromede
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 157
Enregistré le : 09 oct. 2021 15:15

Re: Casio fx 850p

Message par Andromede »

Excellent, tu as résolu l'énigme. Effectivement, la commande INKEY$ renvoie le code ASCII 13. Vérification faite avec la commande PRINT ASC(C$). Cela correspond peut-être au code généré par la commande RUN ou la touche EXE :?: :!:
Donc, effectivement il fallait prendre en charge ce code ASCII dans la ligne IF. De plus, il ne doit pas y avoir d'espace entre les guillemets IF C$=""
La ligne 15 n'est pas nécessaire. Voici le programme final :
10 CLS: PRINT"PRESS ANY KEY";
20 C$=INKEY$
30 IF C$="" OR C$=CHR$(13) THEN 20
40 CLS: PRINT"YOU PRESS ";C$;" KEY"
50 END

BRAVO À TOUS !! :!:
Casio FX-850P, FX-880P, FX-7000G, FX-7000GA, FX-3900P
Canon X-07
Sharp E500, EL-9000, PC 1500
Texas Instruments TI-57 II, TI-62 Galaxy, TI-66 Programmable, TI-74 Basicalc, TI-74S, TI-95 Procalc
" Les machines un jour pourront résoudre tous les problèmes, mais jamais aucune d'entre elles ne pourra en poser un !" Albert Einstein
Andromede
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 157
Enregistré le : 09 oct. 2021 15:15

Re: Casio fx 850p

Message par Andromede »

Bonjour à tous,
Il paraît que l'on peut réaliser le même programme à l'identique grâce à une variante de la commande INPUT non documentée qui fait exactement le même travail que la commande INKEY$ en mieux :?:
Comment fait-on?
Merci
Casio FX-850P, FX-880P, FX-7000G, FX-7000GA, FX-3900P
Canon X-07
Sharp E500, EL-9000, PC 1500
Texas Instruments TI-57 II, TI-62 Galaxy, TI-66 Programmable, TI-74 Basicalc, TI-74S, TI-95 Procalc
" Les machines un jour pourront résoudre tous les problèmes, mais jamais aucune d'entre elles ne pourra en poser un !" Albert Einstein
Avatar du membre
Pocket
Administrateur
Administrateur
Messages : 5940
Enregistré le : 24 mai 2002 16:55
Localisation : Toulouse
Contact :

Re: Casio fx 850p

Message par Pocket »

Salut,

Andromede, si tu te moques de moi, je désactiverais ton compte, j'espère que ton prochain message sera le bon.

A+
Pocket, voit tout, sait tout, lit l'avenir dans les entrailles d'une base phpBB ...
Image
Répondre

Retourner vers « Tous les Pockets »