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

Andromede
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 23
Inscription : 09 oct. 2021 15:15

Re: Casio fx 850p

Message par Andromede » 12 oct. 2021 15:41

Bonjour,
Désolé, je n'ai vraiment pas compris votre commentaire et votre réaction ?
Je viens de tester une utilisation particulière de la commande INPUT. Il s'agit de INPUT$(n) ou "n" représente le nombre de caractères attendus mais qui ne seront pas affichés à l'écran exactement comme INKEY$ sauf que cette fois-çi on peut attendre plusieurs caractères au lieu d'un seul, c'est la raison pour laquelle je la trouve meilleure que INKEY$. Je l'explore actuellement dans le fameux jeu de mémorisation de caractères où je remplace toutes les commandes INKEY$ par celle-ci.
Quelqu'un pourrait peut être m'informer pourquoi Casio a implémenté les deux commandes si elles arrivent à faire la même chose. Sûrement il devrait y avoir une explication technique à ça :?: :!:

Merci

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

Re: Casio fx 850p

Message par badaze » 12 oct. 2021 15:48

Pocket demande que tu passes par la case présentation.
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 à 75 bauds
Fonctionne à 75 bauds
Messages : 23
Inscription : 09 oct. 2021 15:15

Re: Casio fx 850p

Message par Andromede » 12 oct. 2021 15:54

Vous parlez de quelle présentation ? :?: :(

Avatar de l’utilisateur
Dom
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 698
Inscription : 26 oct. 2018 18:45
Localisation : Ile-de-France

Re: Casio fx 850p

Message par Dom » 12 oct. 2021 16:00

Ah il faut lire la charte et les règles du forum...
Tu dois te présenter ici.
Des poquettes : une majorité de Sharp, des Canon, Casio, Hp, InterMedics, National, Nec, Panasonic, Paxon, Radioshack, Sanco et Ti

Andromede
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 23
Inscription : 09 oct. 2021 15:15

Re: Casio fx 850p

Message par Andromede » 12 oct. 2021 17:16

Voila, c'est fait :wink:

Andromede
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 23
Inscription : 09 oct. 2021 15:15

Re: Casio fx 850p

Message par Andromede » 13 oct. 2021 16:59

Bonjour,
J'ai testé la commande INPUT$(n) à la place de INKEY$. Le programme précédent sera modifié comme suit :
10 CLS: PRINT"PRESS ANY KEY : ?";
20 C$=INPUT$(1) --------- Voici la modification avec n=1 pour attendre l'appui d'une touche ------------
30 CLS: PRINT"YOU PRESS "; C$; " KEY"
40 END
Cela fonctionne très bien et avec moins de lignes de programmation

Merci

Avatar de l’utilisateur
meridian
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 911
Inscription : 29 oct. 2014 06:08
Localisation : Seine-Saint-Denis

Re: Casio fx 850p

Message par meridian » 13 oct. 2021 21:55

ça fonctionne bien, sauf si je mets un GOTO 20 pour retourner sur le INPUT$. là il faut que j'appuie une fois sur EXE pour qu'il accepte de prendre la touche suivante.

Andromede
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 23
Inscription : 09 oct. 2021 15:15

Re: Casio fx 850p

Message par Andromede » 14 oct. 2021 15:30

Bonjour,
Dans ton cas, il est préférable de faire un GOTO 10. Sinon, si tu veux attendre plusieurs touches à la suite, il faudrait modifier l'argument de INPUT$(1). Au lieu de 1, on pourrait mettre un autre chiffre. Ce programme peut-être amélioré pour servir par exemple de sous-routine de saisie et de vérification d'un mot de passe pour lancer un programme.

On fait l'exercice ensemble ? :D

Andromede
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 23
Inscription : 09 oct. 2021 15:15

Re: Casio fx 850p

Message par Andromede » 17 oct. 2021 16:59

Bonjour,
Je vous propose un défi. Développer une routine avec le langage BASIC vérifiant la validité d'un mot de passe entré par l'utilisateur au lancement du programme. Le Cahier des Charges est comme suit :
1. Le mot de passe doit contenir huit (08) caractères ;
2. La vérification devra se faire par rapport au mot de passe enregistré au préalable dans le programme ;
3. Le mot de passe saisi doit être affiché sous forme ********
4. En cas d'erreur de mot de passe, le programme devra afficher un message d'erreur invitant l'utilisateur à réessayer ;
5. Au bout de trois essais erronés, le programme devra s'arrêter automatiquement en affichant "Vous n'êtes pas autorisé à exécuter ce programme...!"
6. Au cas où le mot de passe entré est juste, alors afficher "HELLO WORLD !!"

A+

Andromede
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 23
Inscription : 09 oct. 2021 15:15

Re: Casio fx 850p

Message par Andromede » 20 oct. 2021 09:16

Bonjour,
D'après vous, comment enregistrer la chaine de caractères constituant le mot de passe en mémoire pour pouvoir le vérifier avec celui entré au clavier par l'utilisateur ?
Moi personnellement, j'ai pensé à la création d'un tableau avec la commande DIM ou à la commande DATA 8O

Andromede
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 23
Inscription : 09 oct. 2021 15:15

Re: Casio fx 850p

Message par Andromede » 20 oct. 2021 11:05

Bonjour,
Je vous propose une première version perfectible et à améliorer du programme. Il répond partiellement au cahier des charges :wink:
10 CLS : A=0
20 READ A$
30 PRINT ‘’Entrez votre mot de passe !’’ ;
40 B$=INPUT$(8)
50 FOR I=1 TO 8
60 IF LEFT$ (A$,I) <> LEFT$ (B$,I) THEN A=A+1
70 NEXT I
80 IF A<>0 THEN GOTO 1000
90 PRINT ‘’ HELLO WORLD !!’’
100 END
200 DATA 12345678
1000 CLS
1010 PRINT ‘’Mot de passe Incorrect, veuillez réessayer ! ‘’
1020 GOTO 10

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

Re: Casio fx 850p

Message par badaze » 20 oct. 2021 11:13

Je pense qu’il manque un RESTORE entre les lignes 10 et 20.
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.

kenneth
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 674
Inscription : 22 sept. 2010 13:48
Localisation : France PdD

Re: Casio fx 850p

Message par kenneth » 20 oct. 2021 13:00

badaze a écrit :
20 oct. 2021 11:13
Je pense qu’il manque un RESTORE entre les lignes 10 et 20.
Ou alors 1020 RUN

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

Re: Casio fx 850p

Message par C.Ret » 20 oct. 2021 14:36

Bonjour,

Dans le code donné en exemple ;

Code : Tout sélectionner

10 CLS : A=0
20 READ A$
30 PRINT ‘’Entrez votre mot de passe !’’ ;
40 B$=INPUT$(8)
50 FOR I=1 TO 8
60 IF LEFT$ (A$,I) <> LEFT$ (B$,I) THEN A=A+1
70 NEXT I
80 IF A<>0 THEN GOTO 1000
90 PRINT ‘’ HELLO WORLD !!’’
100 END
200 DATA 12345678
1000 CLS
1010 PRINT ‘’Mot de passe Incorrect, veuillez réessayer ! ‘’
1020 GOTO 10
-A- Je ne vois pas où les points 3 4 et 5 sont traités ?
1. Le mot de passe doit contenir huit (08) caractères ;
2. La vérification devra se faire par rapport au mot de passe enregistré au préalable dans le programme ;
3. Le mot de passe saisi doit être affiché sous forme ********
4. En cas d'erreur de mot de passe, le programme devra afficher un message d'erreur invitant l'utilisateur à réessayer ;
5. Au bout de trois essais erronés, le programme devra s'arrêter automatiquement en affichant "Vous n'êtes pas autorisé à exécuter ce programme...!"
6. Au cas où le mot de passe entré est juste, alors afficher "HELLO WORLD !!"
-B- Concernant la vérification du mot de passe :

A quoi sert de tester chaque caractère de la chaine saisie, un test du type IF INPUT$(8)="12345678" THEN n'est-il pas envisageable.
Ce serai plus simple et plus rapide non ?

A quoi sert le DATA, en général cette instruction sert à entrer une collection de données. Ici il n'y a qu'un seul mot de passe !
Une affectation directe A$="12345678" c'est plus simple
Ce qui éviterai aussi l'erreur due à l'oublie de la commande RESTORE

-C- Concernant le point 3.
C'est là que la fonction INKEY$ est plus adaptée car elle permet d'afficher un caractère à chaque fois que l'utilisateur appuye sur une touche !

-D- Concernant les points 4. et 5.
Où est le message 'réessayer il reste # essais ' et le traitement du compteur nécessaire ?

-E- l'envoi à la ligne 1000 pour revenir à la ligne 10 ??
C'est ce que l'on appelle un code en spaghetti. rien de pire à suivre, maintenir ou comprendre.
L'ordre des instructions en BASIC est données par leur n° de ligne, alors pourquoi ne pas faire simple et compréhensible en suivant l'ordre croissant ?


En BASIC, le plus simple est le mieux (moins de mémoire, plus rapide, plus facile à debugger et maintenir. Je propose

Code : Tout sélectionner

10  CLS : N=4
20 N=N-1 : IF N<1 THEN PRINT "AUTORISATION REFUSEE" : NEW : END
30  PRINT N;"/3 ENTREZ Mot de passe:";
40 IF INPUT$(8)<>"12345678" THEN GOTO 20 

100 PRINT "HELLO WORLD !"
...
SHARP PC-1211+CE-121+CE-122 | Commodore 128D+Printer P-803+SD2iec | TI-57 LCD | HP-28S+HP82240A | TI-74 BASICalc | HP-41C+2mem+stat+IR | HP-15C | SHARP PC-1360+64Ko+CE-126 | HP Prime | TI-92 II | CASIO fx-602p+FA-1 | HP-71B 64K+JPC-ROM+HPIL+card reader | Sommaire des M.P.O. | Ma...dov'il sapone !.

"All science is either physics or stamp collecting. That which is not measurable is not science." - E. R.

Andromede
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 23
Inscription : 09 oct. 2021 15:15

Re: Casio fx 850p

Message par Andromede » 20 oct. 2021 16:25

C'est formidable :D :D Une communauté très réactive, dynamique et intelligente :lol: Que demander de mieux ? :D
Je vous remercie pour tous ces commentaires. Nous allons les reprendre de façon très structurée pour aboutir à un code propre et d'excellente qualité répondant totalement aux éléments fixés dans notre cahier des charges

A+
Amicalement :wink:

Répondre

Revenir vers « Tous les Pockets »