Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Autres questions


Index du Forum » Autres questions » C : problème boucle
Marmotti Hors ligne Youtuber Points: 3610 Défis: 6 Message

C : problème boucle

Posté le 21/07/2012 14:57

bonjour !
Je débute en C fin disons que je me débrouille et pour le test j'ai un peu chipoté au SDK et j'ai déjà un problème, comment fait-on pour faire une boucle comme en basic qui attend qu'on appuie sur exe pour continuer ? :
en basic :
Do
getkey
lpwhile ans =/ 31

(=/ => n'est pas égal)
merci d'avance !


1, 2 Suivante
Javierxd Hors ligne Membre Points: 1899 Défis: 13 Message

Citer : Posté le 21/07/2012 16:31 | #


Ce serait quelque chose comme ça:
while(a!=KEY_CTRL_EXE) GetKey(&a);

avec a étant un unsigned int
Calculatrices: g35+usb modifiée, PRIZM

My program is not working, I have no idea why.
My program is working, I have no idea why.

Programmes
Cliquer pour enrouler
Marmotti Hors ligne Youtuber Points: 3610 Défis: 6 Message

Citer : Posté le 21/07/2012 16:40 | #


je test tout de suite

Ajouté le 21/07/2012 à 16:50 :
cela ne fonctionne pas ou alors c\'est un problème dans le code
Bdisp_DrawLineVRAM(43,63,127,63);
while(aKEY_CTRL_EXE) GetKey(&a);
Bdisp_AllClr_DD();
Bdisp_DrawLineVRAM(0,50,127,50);
Pierrotll Hors ligne Ancien administrateur Points: 5488 Défis: 41 Message

Citer : Posté le 21/07/2012 16:59 | #


Tu veux dire quoi par "ça ne fonctionne pas", parce que je ne vois aucun soucis moi.

A la limite, si tu répètes plusieurs fois de suite cette boucle, il est préférable d'utiliser une boucle do/while pour ne pas se préocuper de la valeur de a avant d'entrer dans la boucle :
do { GetKey(&a); } while(a != KEY_CTRL_EXIT);

Dans on message je remarque que tu n'as pas mis le signe !=, si tu as fait un bête copier coller sans faire attention il est évident que le compilateur va te dire "Undeclared name aKEY_CTRL_EXE".
Marmotti Hors ligne Youtuber Points: 3610 Défis: 6 Message

Citer : Posté le 21/07/2012 17:09 | #


merci pierrot effectivement je devrais un peu plus regarder se que je fais

Ajouté le 21/07/2012 à 18:14 :
maintenant il m\'affiche une erreur lors de la compilation :/
Javierxd Hors ligne Membre Points: 1899 Défis: 13 Message

Citer : Posté le 21/07/2012 18:33 | #


Quel est le nom de l'erreur?
Calculatrices: g35+usb modifiée, PRIZM

My program is not working, I have no idea why.
My program is working, I have no idea why.

Programmes
Cliquer pour enrouler
Marmotti Hors ligne Youtuber Points: 3610 Défis: 6 Message

Citer : Posté le 21/07/2012 19:47 | #


ERROR: Process failed with return code: 1
je l'ai déjà eu plus d'une fois d'ailleurs :/
Javierxd Hors ligne Membre Points: 1899 Défis: 13 Message

Citer : Posté le 22/07/2012 02:41 | #


Euh, non, cela veut dire qu'il y a eu une erreur à la compilation. Moi je veux dire le type de l'erreur. Voici une liste des erreurs que tu peux trouver: lien
Calculatrices: g35+usb modifiée, PRIZM

My program is not working, I have no idea why.
My program is working, I have no idea why.

Programmes
Cliquer pour enrouler
Pierrotll Hors ligne Ancien administrateur Points: 5488 Défis: 41 Message

Citer : Posté le 22/07/2012 04:10 | #


Comme quoi, il n'était pas superflu de commencer ce topic par "qu'est ce qu'une erreur de compilation"

Les compilateurs parlent toujours de manière intelligible, suffit d'avoir quelques notion d'anglais.
Marmotti Hors ligne Youtuber Points: 3610 Défis: 6 Message

Citer : Posté le 22/07/2012 12:30 | #


[quote = SDK]
C:\Documents and Settings\Louis\Mes documents\CASIO\Add ins\+ ou -\poum.c(287) : C1016 (W) Argument mismatch
C:\Documents and Settings\Louis\Mes documents\CASIO\Add ins\+ ou -\poum.c(290) : C2313 (E) Missing ;
[/quote]
la je ne trouve vraiment pas :/
Javierxd Hors ligne Membre Points: 1899 Défis: 13 Message

Citer : Posté le 22/07/2012 13:41 | #


Pourrais tu nous montrer la fonction?
Calculatrices: g35+usb modifiée, PRIZM

My program is not working, I have no idea why.
My program is working, I have no idea why.

Programmes
Cliquer pour enrouler
Marmotti Hors ligne Youtuber Points: 3610 Défis: 6 Message

Citer : Posté le 22/07/2012 15:04 | #


bah sinon je te file le fichier ?
mince pas le bon format....
bon
do {
GetKey(&touche);
}
while( touche != KEY_CTRL_EXIT )
Bdisp_AllClr_DD();
Bdisp_DrawLineVRAM(0,50,127,50);
while(1)
{
GetKey(&key);
}
    return 1;
}

c'est dans cette partie de code là
Smashmaster Hors ligne Ancien modérateur Points: 4561 Défis: 253 Message

Citer : Posté le 22/07/2012 15:51 | #


Il manque un ';' juste après while( touche KEY_CTRL_EXIT )

Javierxd Hors ligne Membre Points: 1899 Défis: 13 Message

Citer : Posté le 22/07/2012 16:25 | #


Oui, dans un do/while il y a un point virgule après le while
Calculatrices: g35+usb modifiée, PRIZM

My program is not working, I have no idea why.
My program is working, I have no idea why.

Programmes
Cliquer pour enrouler
Pierrotll Hors ligne Ancien administrateur Points: 5488 Défis: 41 Message

Citer : Posté le 22/07/2012 16:46 | #


Missing ;
Traduction mot-à-mot : Point virgule manquant.
Marmotti Hors ligne Youtuber Points: 3610 Défis: 6 Message

Citer : Posté le 22/07/2012 18:55 | #


Merci beaucoup !

Ajouté le 22/07/2012 à 19:44 :
bon j\'allais pas créer un nouveau topic mais pourquoi la fonction Bdisp_AllClr_DD(); n’efface pas mon écran ? :d
Pierrotll Hors ligne Ancien administrateur Points: 5488 Défis: 41 Message

Citer : Posté le 22/07/2012 20:01 | #


Il faut bien distinguer l'écran et la VRAM.
Dans le code que tu as écrit plus haut, tu effaces l'écran, dessines un truc dans la VRAM et affiches à l'écran le contenu de la VRAM (GetKey appelle Bdisp_PutDisp_DD).

La phase de dessin doit être :
- efface la VRAM
- dessine dans la VRAM
- copie le contenu de la VRAM à l'écran
Marmotti Hors ligne Youtuber Points: 3610 Défis: 6 Message

Citer : Posté le 22/07/2012 20:36 | #


Merci beaucoup sa fonctionne !

Ajouté le 22/07/2012 à 20:42 :
bon dernier problème.... pour déclarer une variable de type int il met : Illegal token \"int\"
comment cela se fait-il ? :/
Nitrosax Hors ligne Ancien rédacteur Points: 1061 Défis: 17 Message

Citer : Posté le 22/07/2012 20:53 | #


Tu l'as déclarée où dans ton code ?
Marmotti Hors ligne Youtuber Points: 3610 Défis: 6 Message

Citer : Posté le 22/07/2012 20:56 | #


juste avant la condition qui l'utilise
Nitrosax Hors ligne Ancien rédacteur Points: 1061 Défis: 17 Message

Citer : Posté le 22/07/2012 20:57 | #


Mets le au début de ton code et ça devrait fonctionner.
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 v42 © créé par Neuronix et Muelsaco 2004 - 2021 | Il y a 69 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