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
Tipoucet
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3787
Enregistré le : 10 janv. 2009 13:47

Re: Casio fx 850p

Message par Tipoucet »

Bonjour. Pour le lien, il y a abandonware magazines. Merci à son auteur pour tout le travail de numérisation.
https://www.abandonware-magazines.org
Dominique
Andromede
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 157
Enregistré le : 09 oct. 2021 15:15

Re: Casio fx 850p

Message par Andromede »

Merci beaucoup :D
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 »

Bonsoir,
Je m'amuse à adapter le code du jeu "Une course aux chiffres pour PB-100" publié dans le magazine "L'ORDINATEUR DE POCHE N°20 page 47" dont l'auteur était "Raoul Lebastard".

Code : Tout sélectionner

5 D=0: G=0: L=0: K=0
10 CLS: DIM T1(25)
12 FOR A=0 TO 24: T1(A)=INT(RAN#*9)+1: NEXT A: B=0
15 FOR H=B TO B+4: PRINT T1(H);: NEXT H
18 FOR A=0 TO 1000: NEXT A: PRINT: B=B+5: IF B<>25 THEN 15
40 INPUT"QUI DEBUTE"; C$: IF C$<>"PB-100" THEN 60
42 FOR A=0 TO 24 : GOSUB 500: NEXT A: A=E
50 M=1: G=G+INT T1(A): T1(A)=T1(A)/10
51 FOR H=0 TO 24 STEP 5: IF A>=H THEN IF A<=H+4 THEN 54
52 M=M+1: NEXT H
54 I=(M-1)*5: N=A-I+1
55 D=1: PRINT"#COL:"; N; " LIG:"; M; "#": GOSUB 558
60 INPUT "COM? LIGNE"; J$: IF J$="*" THEN 598
61 J=VAL(J$): INPUT F: I=(F-1)*5
62 IF N<>J THEN M<>F THEN IF D<>0 THEN PRINT "COUP IMPOSSIBLE!->";:PRINT : GOTO 60
65 B=I+J: K=0: A=0: L=L+INT T1(A): T1(A)/10
71 M=5-J: H=1: GOSUB 547: H=-H: M=1-J: GOSUB 547
75 H=5: M=5*(5-F): GOSUB 547: H=-H: M=-5*(F-1): GOSUB 547 : A=E
102 IF T1(A)<I THEN 598
105 GOTO 50
500 IF T1(A)>K; K=T1(A): E=A
509 RETURN
547 FOR A=B TO B+M STEP H: GOSUB 500: NEXT A: RETURN
558 PRINT"JOUEUR:";L;" /PB-100:"; G;"  ";:PRINT: RETURN
600 IF G<L THEN PRINT "GAGNE!->";
605 IF G=L THEN PRINT "EGALITE!->";
610 GOSUB 558: END
Je n'ai aucun message d'erreur au lancement du programme. Je commence par choisir comme début de partie "PB-100". Il sélectionne alors des coordonnées. A mon tour de jouer; je sélectionne des coordonnées en respectant les règles du jeu. Mais là il m'affiche "PERDU!->" et il termine l'exécution du programme :?: :?: :?:
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 »

Je ne vois pas de PERDU dans le code :|
? Apple, Atari, Canon, Casio, ????????????, HP, Psion, Sharp, Tandy... même TI.
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 »

C’est quand même bien illisible !
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 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 »

A la ligne 102, il y a un then 598, ligne qui n'existe pas ?
Tipoucet
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3787
Enregistré le : 10 janv. 2009 13:47

Re: Casio fx 850p

Message par Tipoucet »

La ligne 598 est dans le listing original avec le test qui retourne 'PERDU". Ah OK le programme d'andromede est un retravail, Ce qui explique d'autres différences. Je n'avais pas tout lu.
Dominique
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 »

Il faudrait aussi donner la bonne référence initiale : dans l'Op 20 page 47, ce n'est pas le programme du PB-100...
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 s'agit de la page 37 et non pas 47 comme je l'ai mentionné par erreur. Je fais un exercice d'adaptation sur un Casio fx 850p. Jai gardé pour des raisons pédagogiques les mêmes numéros de ligne que le programme initial pour que vous puissiez me suivre dans cet exercice. Par la suite, on pourrait réfléchir ensemble à
son optimisation. J'ai rajouté la ligne 598 qui manquait

Code : Tout sélectionner

5 D=0: G=0: L=0: K=0
10 CLS: DIM T1(25)
12 FOR A=0 TO 24: T1(A)=INT(RAN#*9)+1: NEXT A: B=0
15 FOR H=B TO B+4: PRINT T1(H);: NEXT H
18 FOR A=0 TO 1000: NEXT A: PRINT: B=B+5: IF B<>25 THEN 15
40 INPUT"QUI DEBUTE"; C$: IF C$<>"PB-100" THEN 60
42 FOR A=0 TO 24 : GOSUB 500: NEXT A: A=E
50 M=1: G=G+INT T1(A): T1(A)=T1(A)/10
51 FOR H=0 TO 24 STEP 5: IF A>=H THEN IF A<=H+4 THEN 54
52 M=M+1: NEXT H
54 I=(M-1)*5: N=A-I+1
55 D=1: PRINT"#COL:"; N; " LIG:"; M; "#": GOSUB 558
60 INPUT "COM? LIGNE"; J$: IF J$="*" THEN 598
61 J=VAL(J$): INPUT F: I=(F-1)*5
62 IF N<>J THEN M<>F THEN IF D<>0 THEN PRINT "COUP IMPOSSIBLE!->";:PRINT : GOTO 60
65 B=I+J: K=0: A=0: L=L+INT T1(A): T1(A)/10
71 M=5-J: H=1: GOSUB 547: H=-H: M=1-J: GOSUB 547
75 H=5: M=5*(5-F): GOSUB 547: H=-H: M=-5*(F-1): GOSUB 547 : A=E
102 IF T1(A)<I THEN 598
105 GOTO 50
500 IF T1(A)>K; K=T1(A): E=A
509 RETURN
547 FOR A=B TO B+M STEP H: GOSUB 500: NEXT A: RETURN
558 PRINT"JOUEUR:";L;" /PB-100:"; G;"  ";:PRINT: RETURN
598 IF G>L  THEN PRINT "PERDU!->";
600 IF G<L THEN PRINT "GAGNE!->";
605 IF G=L THEN PRINT "EGALITE!->";
610 GOSUB 558: END
Je propose que l'on insère des commentaires pour les blocs de code qui décrivent les étapes importantes du jeu afin de comprendre la structure du programme et déterminer où se trouve l'erreur (ou encore les erreurs parce qu'il peut y en avoir d'autres) dans mon premier essai d'adaptation. :!: :?:
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
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 »

A la ligne 61, c'est "A=B" et non "A=0" dans le listing initial du PB-100. Si tu remets tout le temps A à 0, c'est logique que ça ne marche pas.

Plus loin dans la ligne, il y a aussi "T1(A) = T1(A) / 10" et non "T1(A) /10" mais c'est peut-être juste une erreur de recopie sur Sili ?
Andromede
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 157
Enregistré le : 09 oct. 2021 15:15

Re: Casio fx 850p

Message par Andromede »

Bonjour,
Effectivement, à la ligne 65 (et non pas 61) A=B (et non pas A=0). Par contre T1(A)/10 est une erreur de recopie comme vous l'avez deviné.

Code : Tout sélectionner

5 D=0: G=0: L=0: K=0
10 CLS: DIM T1(25)
12 FOR A=0 TO 24: T1(A)=INT(RAN#*9)+1: NEXT A: B=0
15 FOR H=B TO B+4: PRINT T1(H);: NEXT H
18 FOR A=0 TO 1000: NEXT A: PRINT: B=B+5: IF B<>25 THEN 15
40 INPUT"QUI DEBUTE"; C$: IF C$<>"PB-100" THEN 60
42 FOR A=0 TO 24 : GOSUB 500: NEXT A: A=E
50 M=1: G=G+INT T1(A): T1(A)=T1(A)/10
51 FOR H=0 TO 24 STEP 5: IF A>=H THEN IF A<=H+4 THEN 54
52 M=M+1: NEXT H
54 I=(M-1)*5: N=A-I+1
55 D=1: PRINT"#COL:"; N; " LIG:"; M; "#": GOSUB 558
60 INPUT "COM? LIGNE"; J$: IF J$="*" THEN 598
61 J=VAL(J$): INPUT F: I=(F-1)*5
62 IF N<>J THEN M<>F THEN IF D<>0 THEN PRINT "COUP IMPOSSIBLE!->";:PRINT : GOTO 60
65 B=I+J: K=0: A=B: L=L+INT T1(A): T1(A)=T1(A)/10
71 M=5-J: H=1: GOSUB 547: H=-H: M=1-J: GOSUB 547
75 H=5: M=5*(5-F): GOSUB 547: H=-H: M=-5*(F-1): GOSUB 547 : A=E
102 IF T1(A)<I THEN 598
105 GOTO 50
500 IF T1(A)>K; K=T1(A): E=A
509 RETURN
547 FOR A=B TO B+M STEP H: GOSUB 500: NEXT A: RETURN
558 PRINT"JOUEUR:";L;" /PB-100:"; G;"  ";:PRINT: RETURN
598 IF G>L  THEN PRINT "PERDU!->";
600 IF G<L THEN PRINT "GAGNE!->";
605 IF G=L THEN PRINT "EGALITE!->";
610 GOSUB 558: END
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 »

La première itération du programme répond bien quand on accepte que débute PB-100. Mais lorsque le tour du joueur arrive, cela ne fonctionne pas correctement :?: :?: . Je ne comprends pas l'idée de l'auteur sur les lignes 60 et 61 8O :?:
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 »

J'ai modifié le nom de la variable compteur au niveau de la ligne 18 par C1 à la place de A qui prête à confusion. Si j'ai bien compris le raisonnement de l'auteur, la ligne 18 permet d'insérer un délai d'attente à chaque affichage de la ligne du tableau afin de permettre à l'utilisateur d'avoir suffisamment de temps pour la recopier sur une feuille. Moi je préfère 2000 au lieu de 1000 (en fait tout dépendra de la vitesse de la machine utilisée).
Cependant, la partie relative au tour du joueur pose problème 8O :?:

Code : Tout sélectionner

5 D=0: G=0: L=0: K=0
10 CLS: DIM T1(25)
12 FOR A=0 TO 24: T1(A)=INT(RAN#*9)+1: NEXT A: B=0
15 FOR H=B TO B+4: PRINT T1(H);: NEXT H
18 FOR C1=0 TO 2000: NEXT C1: PRINT: B=B+5: IF B<>25 THEN 15
40 INPUT"QUI DEBUTE"; C$: IF C$<>"PB-100" THEN 60
42 FOR A=0 TO 24 : GOSUB 500: NEXT A: A=E
50 M=1: G=G+INT T1(A): T1(A)=T1(A)/10
51 FOR H=0 TO 24 STEP 5: IF A>=H THEN IF A<=H+4 THEN 54
52 M=M+1: NEXT H
54 I=(M-1)*5: N=A-I+1
55 D=1: PRINT"#COL:"; N; " LIG:"; M; "#": GOSUB 558
60 INPUT "COM? LIGNE"; J$: IF J$="*" THEN 598
61 J=VAL(J$): INPUT F: I=(F-1)*5
62 IF N<>J THEN M<>F THEN IF D<>0 THEN PRINT "COUP IMPOSSIBLE!->";:PRINT : GOTO 60
65 B=I+J: K=0: A=B: L=L+INT T1(A): T1(A)=T1(A)/10
71 M=5-J: H=1: GOSUB 547: H=-H: M=1-J: GOSUB 547
75 H=5: M=5*(5-F): GOSUB 547: H=-H: M=-5*(F-1): GOSUB 547 : A=E
102 IF T1(A)<I THEN 598
105 GOTO 50
500 IF T1(A)>K; K=T1(A): E=A
509 RETURN
547 FOR A=B TO B+M STEP H: GOSUB 500: NEXT A: RETURN
558 PRINT"JOUEUR:";L;" /PB-100:"; G;"  ";:PRINT: RETURN
598 IF G>L  THEN PRINT "PERDU!->";
600 IF G<L THEN PRINT "GAGNE!->";
605 IF G=L THEN PRINT "EGALITE!->";
610 GOSUB 558: END
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
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 »

Oui la ligne 18 est juste une tempo pour le PB-100 qui n'a pas d'instruction WAIT ou PAUSE. Je ne sais pas ce qu'il en est sur le 850P ?
Andromede
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 157
Enregistré le : 09 oct. 2021 15:15

Re: Casio fx 850p

Message par Andromede »

C'est la même chose que pour le 850P, les instructions WAIT et PAUSE n'y sont pas implémentées.
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
Répondre

Retourner vers « Tous les Pockets »