Page 1 sur 1

Problème de syntaxe dans mon code source

Publié : dim. 13/févr./2011 14:03
par Nemesty
Bonjour à tous :!:

Alors voilà mon code :

Code : Tout sélectionner

OpenConsole()

Repeat
  
  PrintN("SkyzPunition V1")

  PrintN("")
  PrintN("")
  PrintN("")

  Print("Entrer au clavier la punition a recopier :  ")
  punitionEntrer$ = Input()

  PrintN("")
  Print("Entrer au clavier le nombre de fois que la punition doit etre recopier :  ")
  nombreDeFois$ = Input()
  nombreDeFois = Val(nombreDeFois$)

  PrintN("")
  PrintN("")

  PrintN("Vous devez recopier " + Str(nombreDeFois) + " fois la punition suivante : " + punitionEntrer$)

  While reponse$ != "n" Or "N"
  
    If reponse$ != "o" Or "O" Or "n" Or "N"
      Print("Entrer soit o pour recommencer, soit n pour eteindre le programme : ")
      reponse$ = Input()
      PrintN("")
    EndIf
  
  Wend


Until reponse$ = "n" Or "N"
Le problème c'est que l'EDI me dit qu'il ya une erreur de syntaxe à la ligne 24 donc à la ligne du : While reponse$ != "n" Or "N"
Je pense que j'aurais le même problème avec le prochain If et arriver au Until aussi.
Pour vous situer je suis en train d'effectuer le tp suivant qui ce trouve sur le site du zero : http://www.siteduzero.com/tutoriel-3-22 ... ition.html
Bien sûr je n'est pas encore fini de taper mon code source :wink:

Merci d'avance :wink:

Re: Problème de syntaxe dans mon code source

Publié : dim. 13/févr./2011 14:37
par SPH

Code : Tout sélectionner

OpenConsole()

Repeat
  
  PrintN("SkyzPunition V1")

  PrintN("")
  PrintN("")
  PrintN("")

  Print("Entrer au clavier la punition a recopier :  ")
  punitionEntrer$ = Input()

  PrintN("")
  Print("Entrer au clavier le nombre de fois que la punition doit etre recopier :  ")
  nombreDeFois$ = Input()
  nombreDeFois = Val(nombreDeFois$)

  PrintN("")
  PrintN("")

  PrintN("Vous devez recopier " + Str(nombreDeFois) + " fois la punition suivante : " + punitionEntrer$)

  While reponse$="n" Or reponse$="N"
  
    If reponse$= "o" Or reponse$="O" Or reponse$="n" Or reponse$="N"
      Print("Entrer soit o pour recommencer, soit n pour eteindre le programme : ")
      reponse$ = Input()
      PrintN("")
    EndIf
  
  Wend


Until reponse$ = "n" Or reponse$="N"

Re: Problème de syntaxe dans mon code source

Publié : dim. 13/févr./2011 14:46
par falsam
La prochaine fois que tu veux tester une valeur différente d'une autre utilise l'opérateur <>.
L’opérateur de différence != existe bien en langage C mais pas en Pure Basic.
http://www.purebasic.com/french/documen ... ables.html

Re: Problème de syntaxe dans mon code source

Publié : dim. 13/févr./2011 14:51
par Ar-S
Et j'ajoute qu'avec des OR ou des AND il te faut répéter le terme à considérer
toto$="n" OR toto$="N"

Pour éviter ce genre de OR, tu peux ici forcer la récupération de la valeur en minuscule :

Code : Tout sélectionner

toto$=Lcase("reponse$")
tu peux aussi te simplifier le code en l'imbriquant comme ceci

Code : Tout sélectionner

nombreDeFois$ = Input()
nombreDeFois = Val(nombreDeFois$)
;deviendrait ainsi
nombreDeFois = Val(Input())

Re: Problème de syntaxe dans mon code source

Publié : dim. 13/févr./2011 15:13
par Backup
falsam a écrit :La prochaine fois que tu veux tester une valeur différente d'une autre utilise l'opérateur <>.
L’opérateur de différence != existe bien en langage C mais pas en Pure Basic.
http://www.purebasic.com/french/documen ... ables.html


+1
SPH a écrit : While reponse$="n" Or reponse$="N"
hey ! pourquoi tu parle de "Or" alors qu'il veux "Different" (<>) ?? :roll:



seul Falsam est dans le vrais :)

@Nemesty :
remplace ton != par <>

remplace

Code : Tout sélectionner

  While reponse$ != "n" Or "N"
par

Code : Tout sélectionner

  While reponse$ <> "n" Or reponse$ <> "N"

Re: Problème de syntaxe dans mon code source

Publié : dim. 13/févr./2011 15:27
par Ar-S
Falsam a répondu pour le <>, je ne fais que donner des infos complémentaires :mrgreen:

et il peut en tirer profit ici justement

Code : Tout sélectionner

  While reponse$ <> "n" Or reponse$ <> "N"
devient

Code : Tout sélectionner

reponse$=Lcase(reponse$)
While reponse$ <> "n"
;voir même
While Lcase(reponse$) <> "n"

Re: Problème de syntaxe dans mon code source

Publié : dim. 13/févr./2011 15:32
par falsam
Nemesty, bienvenu à toi dans ce forum de doux dingues.

Re: Problème de syntaxe dans mon code source

Publié : dim. 13/févr./2011 16:00
par Ollivier
Punition?

Re: Problème de syntaxe dans mon code source

Publié : dim. 13/févr./2011 16:24
par Nemesty
Merci les amis :mrgreen:

Je pense poster mon code source une fois fini sur ce même poste pour d'éventuelle conseils :wink:

Encore merci :D

Re: Problème de syntaxe dans mon code source

Publié : dim. 13/févr./2011 21:02
par Nemesty
Petit up :!: Pour vous montrer mon tp fini et voir si vous n'avez pas quelque conseils sur mon code source à me faire par :wink:

Mon code source :

Code : Tout sélectionner

OpenConsole()

Repeat
  
  power$ = ""
  PrintN("")
  PrintN("")
  
  PrintN("***__SkyzPunitionV1__***")
  PrintN("")
  PrintN("")
  PrintN("")

  Print("Entrer au clavier la punition a recopier :  ")
  punitionEntrer$ = Input()

  PrintN("")
  Print("Entrer au clavier le nombre de fois que doit etre recopier la punition :  ")
  nombreDeFois = Val(Input())
  nombreFoisAfficher = nombreDeFois

  PrintN("")
  PrintN("")

  PrintN("Vous devez recopier " +Str(nombreDeFois) + " fois la punition : " +punitionEntrer$ +".")

  Repeat 
  
    PrintN("")
    PrintN("")
  
    punitionRecopier$ = Input()
  
    If punitionRecopier$ = punitionEntrer$
      PrintN("")
      nombreFoisAfficher = nombreFoisAfficher - 1
      Print("Encore " + Str(nombreFoisAfficher) + " fois.")
      i = i+1
    
    Else
      PrintN("")
      PrintN("Vous n avez pas taper correctement la punition.")
    
    EndIf
  
  Until i = nombreDeFois

  PrintN("")
  PrintN("")
  PrintN("Vous avez terminer !")

  While LCase(power$) <> "o"
  
    PrintN("")
    Print("Pour commencer avec une autre punition taper 'o', pour eteindre le programme taper 'n' :  ")
    power$ = Input()

    If LCase(power$) = "o"
      nombreDeFois = 0
      nombreFoisAfficher = 0
      i = 0
      punitionEntrer$ = ""
      punitionRecopier$ = ""
    ElseIf LCase(power$) <> "o"
      PrintN("")
      PrintN("Veuillez tapez soit 'o' pour recommancer soit 'n' pour fermer.")
    ElseIf LCase(power$) = "n"
      End
    EndIf

  Wend

Until LCase(power$) <> "o"  
Voilà, merci d'avance :wink:

Re: Problème de syntaxe dans mon code source

Publié : dim. 13/févr./2011 21:42
par Backup
bon la console c'est pas mal

mais plutot utilise le visual designer , pour dessiner ton interface Fenetré
avec gadget (en demandant la generation de la boucle d'event) (voir Tuto en rubrique tuto de notre forum ;) )
ici :
http://www.purebasic.fr/french/viewtopi ... =21&t=6664
Tuto numero 8 rubrique "Débutant"

la console, c'est comment dire.... un peu ringue :lol: