FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Gestion d'un système client-serveur.
Problème avec IF en chaîne (encore un...) Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
Problème avec IF en chaîne (encore un...) Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Problème avec IF en chaîne (encore un...) Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Problème avec IF en chaîne (encore un...) Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Problème avec IF en chaîne (encore un...) Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Problème avec IF en chaîne (encore un...) Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Problème avec IF en chaîne (encore un...) Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Problème avec IF en chaîne (encore un...) Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Problème avec IF en chaîne (encore un...) Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Problème avec IF en chaîne (encore un...) Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Problème avec IF en chaîne (encore un...) Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Problème avec IF en chaîne (encore un...) Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Problème avec IF en chaîne (encore un...) Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Problème avec IF en chaîne (encore un...) Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Problème avec IF en chaîne (encore un...) Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier

 

 Problème avec IF en chaîne (encore un...)

Aller en bas 
4 participants
AuteurMessage
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Problème avec IF en chaîne (encore un...) Empty
MessageSujet: Problème avec IF en chaîne (encore un...)   Problème avec IF en chaîne (encore un...) EmptyLun 6 Jan 2014 - 1:07

Je n'arrive pas à comprendre où je fais une erreur avec des IF en ligne. Dans le code suivant, j'ai placé deux SUB qui à mon avis sont fonctionnellement équivalents. La première ne donne pas le résultat escompté, mais la seconde marche bien. Qui peut me dire pourquoi la première ne marche pas comme je veux ?
Code:
dim x3%
test1(1,2)
print "test1: "+str$(x3%)+"  devrait être -1 !"
test2(1,2)
print "test2: "+str$(x3%)+"  est correctement -1 !"
end

sub test1(x1%,x2%)
  x3% = -1
  if x1%>0 then if x1%<>x2% then exit_sub
  if x1%<0 then if x1%=x2% then exit_sub
  x3% = 0
end_sub

sub test2(x1%,x2%)
  x3% = -1
  if x1%>0
    if x1%<>x2% then exit_sub
  end_if
  if x1%<0
    if x1%=x2% then exit_sub
  end_if
  x3% = 0
end_sub
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Problème avec IF en chaîne (encore un...) Empty
MessageSujet: Re: Problème avec IF en chaîne (encore un...)   Problème avec IF en chaîne (encore un...) EmptyLun 6 Jan 2014 - 1:51

Et bien Klaus, il y a un bug tout court.
En modifiant légérement:
Code:
dim x3%

test1(1,2)
print "test1: "+str$(x3%)+"  devrait être -1 !"

test2(1,2)
print "test2: "+str$(x3%)+"  est correctement -1 !"
end

sub test1(x1%,x2%)
  x3% = -1
  if x1%>0 then if x1%<>x2% then message " exit_sub" : exit_sub
  if x1%<0 then if x1%=x2% then exit_sub
  x3% = 0
end_sub

sub test2(x1%,x2%)
  x3% = -1
  if x1%>0
    if x1%<>x2% then exit_sub
  end_if
  if x1%<0
    if x1%=x2% then exit_sub
  end_if
  x3% = 0
end_sub
Là le résultat est bon.
 Sleep
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Problème avec IF en chaîne (encore un...) Empty
MessageSujet: Re: Problème avec IF en chaîne (encore un...)   Problème avec IF en chaîne (encore un...) EmptyLun 6 Jan 2014 - 2:13

Ouaouhhhhhh ! Tu as raison, Cosmos70 ! Voilà qui va intéresser Jack, je suppose !

Tu le croiras si tu veux, mais j'ai passé un temps fou à résoudre le problème. Le code que j'ai présenté pour mettre le problème en évidence, est en effet une version anorexique d'un code beaucoup plus complexe que je n'arrivais pas à faire marcher, mais qui aurait été rébarbatif à publier in extenso. Il a fallu que je trouve le contournement lourdingue pour comprendre ce qui se passe. Et ainsi, j'ai pu produire ces quelques lignes qui montrent le problème.

Merci pour ton soutien, Cosmos70. Cela me rassure - je ne suis pas encore devenu gâteux !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Problème avec IF en chaîne (encore un...) Empty
MessageSujet: Re: Problème avec IF en chaîne (encore un...)   Problème avec IF en chaîne (encore un...) EmptyLun 6 Jan 2014 - 2:25

De rien Klaus. J'ai eu plus d'une fois des problèmes, que j'évite de parler, vu que généralement on n'y répond pas (et que c'est moi qui passe pour un gâteux). Mais j'ai remarqué plusieurs fois qu'un message qui arrête le programme, le problème disparaît.
Un peu comme display pour permettre à Windows de faire son travail.
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Problème avec IF en chaîne (encore un...) Empty
MessageSujet: Re: Problème avec IF en chaîne (encore un...)   Problème avec IF en chaîne (encore un...) EmptyLun 6 Jan 2014 - 2:52

Salut Klaus.

C’est curieux !
En mettant une ‘instruction vide’  seulement : (deux-points) entre then et exit_sub le résultat devient correct.
Code:
dim x3%
test1(1,2)
print "test1: "+str$(x3%)+"  devrait être -1 !"
test2(1,2)
print "test2: "+str$(x3%)+"  est correctement -1 !"
end

sub test1(x1%,x2%)
  x3% = -1
  if x1%>0 then if x1%<>x2% then : exit_sub
  if x1%<0 then if x1%=x2% then : exit_sub
  x3% = 0
end_sub

sub test2(x1%,x2%)
  x3% = -1
  if x1%>0
    if x1%<>x2% then exit_sub
  end_if
  if x1%<0
    if x1%=x2% then exit_sub
  end_if
  x3% = 0
end_sub

Edit : Encore c’est curieux !
Si on met ‘l’instruction vide’ entre le then et le if, le résultat devient aussi correct.
Code:
 if x1%>0 then : if x1%<>x2% then exit_sub

Que peut-on en conclure ?
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
bignono

bignono


Nombre de messages : 1127
Age : 66
Localisation : Val de Marne
Date d'inscription : 13/11/2011

Problème avec IF en chaîne (encore un...) Empty
MessageSujet: Re: Problème avec IF en chaîne (encore un...)   Problème avec IF en chaîne (encore un...) EmptyLun 6 Jan 2014 - 6:52

Bonjour à tous,  Smile 
Oui, c'est vraiment curieux!
si on met
Code:
if ... then:print ....
il y a erreur parce que les 2 points sont collés au then
mais si on laisse un espace entre le then et les 2 points là ça marche!
Code:
dim x1%,x2%,x3%
x3%=-1
x2%=4
x1%=x2%-x3%

if x1%=5 then :print x1%

x1%=x2%+x3%
if x1%=3 then :if x2%-x3%=5 then print x1%
Je ne crois pas que ce soit tellement logique de programmer comme cela, quoique...
Jack tu as du travail! Laughing
même la dernière ligne de mon petit exemple si on y met plusieurs if then ça marche du moment qu'il y a un espace après le then :
Code:
if x1%=3 then :if x2%-x3%=5 then :if x2%=4 then :if x3%=-1 then print x1%
A +  Wink Wink Wink
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Problème avec IF en chaîne (encore un...) Empty
MessageSujet: Re: Problème avec IF en chaîne (encore un...)   Problème avec IF en chaîne (encore un...) EmptyLun 6 Jan 2014 - 8:25

Personnellement j'ai toujours considéré qu'il n'était pas possible d'imbriquer deux IF THEN sur la même ligne comme l' a tenté Klaus dans le test 1.
La méthode du test 2 est la seule valable à mon avis.
Pour moi, pour relancer un test if directement derrière then il faut utiliser 2 lignes:
IF première condition
  IF deuxième condition THEN fait-ci
END_IF.

Pourquoi ne pas utiliser AND plutôt que IF condition1 THEN IF condition2 THEN
Code:
dim x3%
test1(1,2)
print "test1: "+str$(x3%)+"  devrait être -1 !"
test2(1,2)
print "test2: "+str$(x3%)+"  est correctement -1 !"
end

sub test1(x1%,x2%)
  x3% = -1
  if x1%>0 and x1%<>x2% then exit_sub
  if x1%<0 and x1%=x2% then exit_sub
  x3% = 0
end_sub

sub test2(x1%,x2%)
  x3% = -1
  if x1%>0
    if x1%<>x2% then exit_sub
  end_if
  if x1%<0
    if x1%=x2% then exit_sub
  end_if
  x3% = 0
end_sub

Je ne crois pas que Jack est prévu cette façon d'utiliser IF. J'aimerais connaître son avis.

A+
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Problème avec IF en chaîne (encore un...) Empty
MessageSujet: Re: Problème avec IF en chaîne (encore un...)   Problème avec IF en chaîne (encore un...) EmptyLun 6 Jan 2014 - 10:31

Bonjour Jean Claude.
Bonjour tout le monde.

Ton analyse est correcte mais j’ai une petite objection :
L’une des  syntaxes  du If est :
IF Condition THEN Instruction
Or tous les langages de programmation que je connais (y compris Panoramic) définissent Instruction comme étant une instruction simple ou instruction composée.
Si, donc, on accepte que la condition puisse être composée, alors il y a bien un problème avec la structure IF telle qu’elle est définie dans Panoramic.
Certes on peut (presque) toujours trouver une solution pour contourner un problème quelconque, mais quand on aspire à la perfection, on doit procéder autrement.

Jean Claude a écrit:
Je ne crois pas que Jack est ait prévu cette façon d'utiliser IF. J'aimerais connaître son avis.
 lol!  lol! 
 

Moi aussi j’aimerais connaître son avis.  Laughing
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé





Problème avec IF en chaîne (encore un...) Empty
MessageSujet: Re: Problème avec IF en chaîne (encore un...)   Problème avec IF en chaîne (encore un...) Empty

Revenir en haut Aller en bas
 
Problème avec IF en chaîne (encore un...)
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Problème avec select case Probleme réglé merci
» Problème avec SearchStringList.
» Problème avec la 3D.
» Problème avec SearchStringList.
» KGF_dll - nouvelles versions

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: