Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » [Need Help] Programme Table Multiplication
Boby12 Hors ligne Membre Points: 39 Défis: 0 Message

[Need Help] Programme Table Multiplication

Posté le 19/09/2013 21:55

Bonjour tous le monde

Comme ça fait depuis le CM2 qu'on me dit que ça craint que je connaisse pas mes tables de multiplication j'ai décidé de faire un programme sur ma calto pour m’entraîner à programmer et à apprendre les table
J'ai rapidement fais le gros du code qui faisait bien ce que je voulais mais je veux le perfectionner. Cependant j'ai quelques détailles que je comprends pas trop comme: Comment gérer l'affichage du
"-Disp-" qui se met un peu au milieu de mon texte quand je lance le programme.
Mais aussi j'ai fais une grande boucle qui fait le gros du programme comme vous m'aviez dis de faire dans mon autre topic Le problème c'est quand je lui demande de s'arrêter (en appuyant sur F1) elle ne le fais tout simplement pas.

Voilà mon code dans l'état actuel des choses, je pourrais mettre le fichier en ligne si vous le désirez.


Locate 1,2,"CHOISIR TABLE"
?→T
Do
If T>0
Then T→A
Else Int (9Ran# +1 )→A
IfEnd
Int (9Ran# +1)→B
Locate 1,2,A
Locate 2,2,"x"
Locate 3,2,B
Locate 4,2,"="
AxB→C
?→D
If D≠C
Then Locate 1,4,"FAUX"
Locate 1,5,"REPONSE:"
Locate 9,5,C◢
IfEnd
F+1→F
ClrText
If D=C
Then Locate 1,4,"BIEN"◢
IfEnd
V+1→V
ClrText
LpWhile Getkey≠47
Locate 1,1,"RESULTATS JUSTES:"
Locate 18,1,V
Locate 1,2,"RESULTATS FAUX:"
Locate 17,2,F◢


Merci d'avance à ce qui vont me répondre.


1, 2 Suivante
Maliafo Hors ligne Membre Points: 236 Défis: 27 Message

Citer : Posté le 19/09/2013 22:39 | #


Pour enlever les disp, enlève les triangle et ajoute à la place
Do:LpWhile Getkey = 31
Do:Lpwhile Getkey !=31


(Le LpWhile Getkey = 31 est là pcq tu viens d'appuyer sur exe pour valider le nombre, et permet que, si tu restes appuyé trop longtemps dessus, le programme ''attende'' quand même)

Quand au fait que le programme ne quitte pas, c'est par ce que celui-ci ne regarde le getkey qu'à la toute fin :
le programme arrive à LpWhile Getkey != 47, et ne vérifie cette condition qu'a cette ligne là, il faut donc que tu appuis sur F1 PILE quand on arrive à cette ligne
Tu peux, pour quitter, mettre qqch comme
[
[b][blue]IfEnd[/blue][/b]
V+1[b]->[/b]V
[brown][strike]ClrText[/strike][/brown]
]
[b][blue]Do[/blue][/b]:[b][blue]LpWhile[/blue][/b] Getkey != [maroon]0[/maroon]
0[b]->[/b]F
[b][blue]Do[/blue][/b]
Getkey[b]->[/b]F
[b][blue]LpWhile[/blue][/b] F !=[maroon]0[/maroon]
[b][blue]LpWhile[/blue][/b] F != [maroon]47[/maroon] (<- Cette ligne remplace le LpWhile Getkey != 47)
[brown]ClrText[/brown]



Ce n'est qu'une suggestion, mais ça devrait marcher ; cependant, même si tu veux continuer le programme, il te faudra appuyer sur une touche
Comment recouvrir la Terre avec du cuir ?
Avec la semelle de nos chaussures, on en fait autant
Cartix Hors ligne Membre Points: 2748 Défis: 98 Message

Citer : Posté le 20/09/2013 16:16 | #


Si jamais, la touche dont le code getkey est 47, c'est pas F1, c'est ESC
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 20/09/2013 17:03 | #


En fait le fait de mettre la condition avec le Getkey à la toute fin n'est pas gênant en soi, parce que lorsque l'on appuie sur EXIT, on reste appuyé assez longtemps jusqu'à ce qu'on arrive à la fin de la boucle (c'est quand même assez rapide)
Mais ça ne marche que dans les petites boucles, ici effectivement, il y' a les ◢ ou les boucles "Do Lpwhile Getkey≠31)" qui gênent
Boby12 Hors ligne Membre Points: 39 Défis: 0 Message

Citer : Posté le 20/09/2013 19:20 | #


@Malafio: A quoi servent les crochés ? Je connais pas (encore ?).

@Cartix: Ouai je sais, au début j'avais mis Getkey = 79 après j'ai changé pour voir si ça venais pas de là mon problème...

@Malafio et @Position: Je vais m'inspiré de vos conseil pour faire les modifications nécéssaire Merci !
Maliafo Hors ligne Membre Points: 236 Défis: 27 Message

Citer : Posté le 20/09/2013 19:26 | #


Les crochets, c'était juste pour dire que ça faisait partie du code que tu avais déjà écris
Comment recouvrir la Terre avec du cuir ?
Avec la semelle de nos chaussures, on en fait autant
Boby12 Hors ligne Membre Points: 39 Défis: 0 Message

Citer : Posté le 20/09/2013 23:48 | #


Ah ok.

Ajouté le 22/09/2013 à 23:37 :
J'ai modifié mon code avec ce que tu m'a dis Malafio.
Pour remplacer le -Disp- ça fonctionne bien. Mais à quoi sert précisément les deux points ":" ?

Sinon je comprends pas comment fonctionne le deuxième code et puis j'ai pas l'impression qu'il fonctionne...

Je vais réécrire mon code modifié ici quand j'aurai le temps.
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 22/09/2013 23:48 | #


Les deux points ":" font exactement la même chose que le retour a la ligne, c'est un symbole de fin de ligne de code.
Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Boby12 Hors ligne Membre Points: 39 Défis: 0 Message

Citer : Posté le 23/09/2013 20:27 | #



Locate 1,2,"CHOISIR TABLE"
0→A~Z
?→T
Do
If T>0
Then T→A
Else Int (9Ran# +1 )→A
IfEnd
Int (9Ran# +1)→B
Locate 1,2,A
Locate 2,2,"x"
Locate 3,2,B
Locate 4,2,"="
AxB→C
?→D
If D≠C
Then Locate 1,4,"FAUX"
Locate 1,5,"REPONSE:"
Locate 9,5,C
Do:LpWhile Getkey = 31
Do:Lpwhile Getkey !=31
IfEnd
F+1→F
ClrText
If D=C
Then Locate 1,4,"BIEN"
Do:LpWhile Getkey = 31
Do:Lpwhile Getkey !=31
IfEnd
V+1→V
Do:LpWhile Getkey != 0
0->F
Do
Getkey->F
LpWhile F !=0
LpWhile F != 47
ClrText
Locate 1,1,"RESULTATS JUSTES:"
Locate 18,1,V
Locate 1,2,"RESULTATS FAUX:"
Locate 17,2,F
Do:LpWhile Getkey = 31
Do:Lpwhile Getkey !=31


Donc il faut que je tape ça ?


[
IfEnd
V+1->V
ClrText
]
Do:LpWhile Getkey != 0
0->F
Do
Getkey->F
LpWhile F !=0
LpWhile F != 47 (<- Cette ligne remplace le LpWhile Getkey != 47)
ClrText


Toutes cette partie je comprend pas. Et puis c'est fait exprès que tu prennes F comme variable ? (vu que je m'en sers déjà dans le code).
Et le

"Do:LpWhile Getkey = 31
Do:Lpwhile Getkey !=31"

c'est souvent utilisé comme code dans les programmes ?
Thiladon Hors ligne Membre Points: 150 Défis: 1 Message

Citer : Posté le 23/09/2013 20:35 | #


Comme variable, tu peut prendre de A ~ Z, F n'est qu'une variable prise au hasard, tu peut donc la changer

Pour le Do:LpWhile

Tu place Do avant ta question, tu pose ensuite ta question / phrase, et tu fait LpWhile Getkey≠31

Dans ce cas, lorsque l'utilisateur appuieras sur la touche 31 ( Exe ) ton programme reprendras et iras a la ligne suivante

Exemple :
Do
"Bonjour"
LpWhile Getkey ≠ 31



Perso je mettrais plutôt :
Do
"Bonjour"
LpWhile Getkey


ou même :

While Getkey
"Bonjour"
WhileEnd


Tout ces codes reviennent à la même chose
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 23/09/2013 21:02 | #


ou plutôt :
"Bonjour"
While Getkey
WhileEnd


Sinon il affiche plein de bonjours tant que l'on appuie sur EXE
Boby12 Hors ligne Membre Points: 39 Défis: 0 Message

Citer : Posté le 23/09/2013 21:06 | #


Tous ça je le savais et je dois admettre que ça m'aide pas trop
Et j'insiste je comprends vraiment pas son code rien que le "Getkey->F" je vois pas ce que ça fait :-/

Ajouté le 23/09/2013 à 21:21 :
Et puis le système du genre

"Bonjour"
While Getkey
WhileEnd


Les 3/4 du temps on reste trop longtemps appuyé et on voit pas le message passer
Thiladon Hors ligne Membre Points: 150 Défis: 1 Message

Citer : Posté le 23/09/2013 21:32 | #


Le
Getkey→F


La touche pressé ( donc l'ID de la touche ) est incrémenter dans la variable, sachant que la touche Exe possède comme ID 31, si j'appuie sur Exe, la variable F sera donc égal à 31.
Boby12 Hors ligne Membre Points: 39 Défis: 0 Message

Citer : Posté le 23/09/2013 21:48 | #



Do:LpWhile Getkey != 0  //Continuer cette boucle tant que 0 n'est pas appuyé ?
0->F //La variable F est remis 0
Do //initialisation d'une nouvelle boucle
Getkey->F //Le code de la touche appuyée va dans la variable F
LpWhile F !=0 //Arrêt de la boucle si F est 0
LpWhile F != 47 (<- Cette ligne remplace le LpWhile Getkey != 47) //Arrêt de la boucle si F est 47 (soit EXIT)
ClrText

Voilà ce que je comprends et je vois pas la logique
Thiladon Hors ligne Membre Points: 150 Défis: 1 Message

Citer : Posté le 23/09/2013 22:09 | #


Commence déjà par me dire ou tu compte mettre cela, et comment, ensuite :

Do:LpWhile Getkey≠0
--> ça sert a rien.
LpWhile F≠0
Complètement inutile, puisque aucune touche n'as pour ID 0
LpWhile F≠47
--> Cette ligne te dit que tant que la touche ayant pour ID 47 n'est pas appuyé, le code retourne sur le Do.
ClrText
--> Clear le texte, donc efface le texte de l'écran
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 23/09/2013 22:09 | #


euh....

quand aucune touche n'est pressée, getkey renvoye zero...
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm (dont je connais le nom, mais pas vous ) Arcuz !
Maliafo Hors ligne Membre Points: 236 Défis: 27 Message

Citer : Posté le 23/09/2013 22:10 | #


En fait, Getkey vaut par défaut, et prend une autre valeur que si tu appuis sur une touche.
DU coup, LpWhile Getkey != 0 signifie "Tant que tu n'appuies pas sur aucune touche [= Tant que tu appuies sur une touche])
0->F Permet que, pour la suite
HA MAIS NAN
j'ai mis !=F ? c'était plutôt LpWhile F=0

C'est peut-être pour ça que c'était pas clair, effectivement :/

Sinon pour reprendre le choix de la variable F, j'en ai juste pris une au hasard comme l'as dit Thiladon, je n'ai pas fait gaffe qu'elle servait déjà



En tout cas désolé pour cette étourderie

Ajouté le 23/09/2013 à 22:12 :
Thiladon a écrit :

Do:LpWhile Getkey≠0
--> ça sert a rien.


C'est la pour empecher d'arriver dans la boucle suivante si tu n'as pas relevé ton doigt de la touche, sinon tu risque d'en ressortir direct sans avoir pu appuyer sur la touche pour quitter
Comment recouvrir la Terre avec du cuir ?
Avec la semelle de nos chaussures, on en fait autant
Thiladon Hors ligne Membre Points: 150 Défis: 1 Message

Citer : Posté le 23/09/2013 22:12 | #


Du coup j'avais raison x')

Ce que je te propose, c'est de regarder tes messages personnel dans moins de 2 minute, et tu développe ton programme, mais je t'assisterais
Boby12 Hors ligne Membre Points: 39 Défis: 0 Message

Citer : Posté le 23/09/2013 22:35 | #


Mais c'est possible ça de mettre deux LpWhile ?


Do
Getkey→G
LpWhile F=0
LpWhile G!=47


J'invente rien hein, c'est tiré du code de Malafio
Thiladon Hors ligne Membre Points: 150 Défis: 1 Message

Citer : Posté le 23/09/2013 22:41 | #


Non justement, c'est ce que je disait, un des deux doit être enlevais, car ici nous n'avons qu'un seule DO, et de même, un seul GetKey qui renvoie a la variable G et pas F, donc le programme va considéré que LpWhile F=0 renvoie au Do, et comme on ne touche qu'à la variable G, le programme se répéteras a l'infini...
Boby12 Hors ligne Membre Points: 39 Défis: 0 Message

Citer : Posté le 23/09/2013 22:45 | #


Ah non mais le G c'est moi qui l'ai foutu à la place de F dans mon programme, (parce que F je l'ai déjà utilisé)

du coup c'était plutôt

Do
Getkey→G
LpWhile G=0
LpWhile G!=47


Sinon si c'est bien à moi que tu voulais envoyer un MP, je l'ai toujours pas reçu.
1, 2 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 256 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd