Problème de syntaxe dans mon code source

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Nemesty
Messages : 3
Inscription : dim. 13/févr./2011 13:53

Problème de syntaxe dans mon code source

Message 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:
Avatar de l’utilisateur
SPH
Messages : 4949
Inscription : mer. 09/nov./2005 9:53

Re: Problème de syntaxe dans mon code source

Message 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"

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Problème de syntaxe dans mon code source

Message 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
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Problème de syntaxe dans mon code source

Message 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())
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Problème de syntaxe dans mon code source

Message 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"
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Problème de syntaxe dans mon code source

Message 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"
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Problème de syntaxe dans mon code source

Message par falsam »

Nemesty, bienvenu à toi dans ce forum de doux dingues.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Problème de syntaxe dans mon code source

Message par Ollivier »

Punition?
Avatar de l’utilisateur
Nemesty
Messages : 3
Inscription : dim. 13/févr./2011 13:53

Re: Problème de syntaxe dans mon code source

Message 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
Avatar de l’utilisateur
Nemesty
Messages : 3
Inscription : dim. 13/févr./2011 13:53

Re: Problème de syntaxe dans mon code source

Message 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:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Problème de syntaxe dans mon code source

Message 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:
Répondre