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
» Une calculatrice en une ligne de programme
erreur logical expression Emptypar jean_debord Aujourd'hui à 8:47

» Form(résolu)
erreur logical expression Emptypar leclode Hier à 17:59

» trop de fichiers en cours
erreur logical expression Emptypar Marc Hier à 11:42

» Bataille navale SM
erreur logical expression Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Gestion d'un système client-serveur.
erreur logical expression Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
erreur logical expression Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
erreur logical expression Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
erreur logical expression Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
erreur logical expression Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
erreur logical expression Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
erreur logical expression Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
erreur logical expression Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
erreur logical expression Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
erreur logical expression Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
erreur logical expression Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
-39%
Le deal à ne pas rater :
Ordinateur portable ASUS Chromebook Vibe CX34 Flip
399 € 649 €
Voir le deal

 

 erreur logical expression

Aller en bas 
4 participants
AuteurMessage
philou029




Nombre de messages : 49
Age : 56
Localisation : BREST
Date d'inscription : 17/10/2010

erreur logical expression Empty
MessageSujet: erreur logical expression   erreur logical expression EmptySam 4 Déc 2010 - 4:36

j'ai une erreur dans cette ligne de code quelqun pourrait il m'aiguiller

dim postir2,hb1,tirv2,vb1
if ((postir2)+12)>=hb1 and ((postir2)+16)<=hb1+7 and ((tirv2)+24)>=vb1 and tirv2<((vb1)+7) then terminate
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

erreur logical expression Empty
MessageSujet: Re: erreur logical expression   erreur logical expression EmptySam 4 Déc 2010 - 7:39

Je pense que tu devrais supprimer toutes les parenthèses, car dans ce cas precis elle ne servent à rien.
Cela dit: çà ne changera pas le problème, vu que le résultat devrait être le même.

voir fonctions logiques dans la manuel utilisateur.

A+
Revenir en haut Aller en bas
Invité
Invité




erreur logical expression Empty
MessageSujet: Re: erreur logical expression   erreur logical expression EmptySam 4 Déc 2010 - 8:33

J'ai eu le même problème; il y a quelques temps, mais je ne retrouve pas le sujet.
On m'a dit qu'il n'y avait pas de problème avec AND. N'empêche que pour contourner le problème que j'avais, j'ai du décomposer le teste en deux lignes.
Je pense que dans ton cas ce serait:

Code:
if ((postir2)+12)>=hb1 and ((postir2)+16)<=hb1+7
if ((tirv2)+24)>=vb1 and tirv2<((vb1)+7)
    teminate
end_if
end_if


Quelque chose comme cela. En tout cas c'est la méthode que j'ai utilisé pour ce problème.
Bonne chance.
Revenir en haut Aller en bas
Klaus

Klaus


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

erreur logical expression Empty
MessageSujet: Re: erreur logical expression   erreur logical expression EmptySam 4 Déc 2010 - 11:31

Volià la version correcte de tes lignes:

dim postir2,hb1,tirv2,vb1
if ((postir2+12)>=hb1) and ((postir2+16)<=(hb1+7)) and ((tirv2+24)>=vb1) and (tirv2<(vb1+7)) then terminate

Il faut:
1. entourer de paranthèses TOUTES les expressions logiques dont l'évaluation doit être faite AVANT le "and"
2. entourer de parenthèses TOUTES les expressions arithmétiques dont l'évaluation doit être faite AVANT l'opérateur logique

Les caractères en gras sont mes rajouts.

Tout ceci est peut-être gênant, mais c'est lié à la priorité des opérateurs.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jean Claude

Jean Claude


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

erreur logical expression Empty
MessageSujet: Re: erreur logical expression   erreur logical expression EmptySam 4 Déc 2010 - 11:45

Pas d'accord avec toi Klaus, il me semble que Cosmos a raison.

Essai ce code, en particulier les 3 lignes qui sont shuntées, il y a quelque chose que je ne comprend pas

Code:
dim a,b,c,d,a$

a=1:b=2:c=3:d=4: a$="OK"

if a=1 and b=2 and c=3 and d=4 then print "OK1"

if a*2=2 and b=2 and c=3 and d=4 then print "OK2"

if (a*2)=2 and b=2 and c=3 and d=4 then print "OK3"

if (a*2)+b=a*4 and a=(d-c) and c=a*3 and a=4/d then print "OK4"

if (a*2)+b=4 and a=(d-c) and c=a*3 and a=4/d and a$="OK" then print "OK5"

if (a*2)+b=a*4 and a=(d-c) and c=a*3 and a=4/d and a$<>"" then print "OK6"

' if (a*2)+b=a*4 and a=(d-c) and (c=(a*2)+a) and a=(4/d) and a$="OK" then print "OK7"

' if ((a*2)+b=a*4) and (a=(d-c)) and ((c=(a*2)+a)) and (a=(4/d)) and a$="OK" then print "OK8"

' if (a*2)+b=a*4 and (a*2)+b=a*4 then print "OK9"


A+
Revenir en haut Aller en bas
Klaus

Klaus


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

erreur logical expression Empty
MessageSujet: Re: erreur logical expression   erreur logical expression EmptySam 4 Déc 2010 - 12:09

Qu'est-ce qui ne colle pas dans les règles que j'ai données ci-dessus ? Voici la première de tes 3 lignes adaptée selon ma préconisation, et ça marche:
Code:
dim a,b,c,d,a$

a=1:b=2:c=3:d=4: a$="OK"

if a=1 and b=2 and c=3 and d=4 then print "OK1"

if a*2=2 and b=2 and c=3 and d=4 then print "OK2"

if (a*2)=2 and b=2 and c=3 and d=4 then print "OK3"

if (a*2)+b=a*4 and a=(d-c) and c=a*3 and a=4/d then print "OK4"

if (a*2)+b=4 and a=(d-c) and c=a*3 and a=4/d and a$="OK" then print "OK5"

if (a*2)+b=a*4 and a=(d-c) and c=a*3 and a=4/d and a$<>"" then print "OK6"

' if (a*2)+b=a*4 and a=(d-c) and (c=(a*2)+a) and a=(4/d) and a$="OK" then print "OK7"
if ((a*2+b)=a*4) and (a=(d-c)) and (c=(a*2+a)) and (a=(4/d)) and (a$="OK") then print "OK7"

' if ((a*2)+b=a*4) and (a=(d-c)) and ((c=(a*2)+a)) and (a=(4/d)) and a$="OK" then print "OK8"

' if (a*2)+b=a*4 and (a*2)+b=a*4 then print "OK9"


D'accord, ce n'est pas élégant. Jack pourra peut-être y apporter quelque chose, mais j'en doute, en tout cas pas facilement. Je connais bien le problème des conditions logiques composées - je me bats avec depuis le début. Mais avec cette technique, ça marche - la preuve !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jean Claude

Jean Claude


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

erreur logical expression Empty
MessageSujet: Re: erreur logical expression   erreur logical expression EmptySam 4 Déc 2010 - 13:05

Ce qui m'a troublé, c'est qu'en fait on peut écrire de plusieurs manières, mais bon l'important c'est que çà marche.
Dans le code suivant on voit 4 manières d'écrire if a*2+b=4 .......

Code:
dim a,b,c,d,a$

a=1:b=2:c=3:d=4: a$="OK"

if a*2+b=4 and a=(d-c) then print "OK4"

if (a*2)+b=4 and a=(d-c) then print "OK5"

if ((a*2)+b)=4 and a=(d-c) then print "OK6"

if ((a*2+b)=a*4) and (a=(d-c)) then print "OK7"


je me demande, s'il existe une règle précise....

A+
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2690
Date d'inscription : 13/09/2009

erreur logical expression Empty
MessageSujet: +++   erreur logical expression EmptySam 4 Déc 2010 - 13:30

Eh bien, ce qu'il faut, c'est mettre suffisamment de parenthèses
(et dans le bon sens) pour que l'ordinateur ne se trompe pas
dans le choix des calculs à faire,
maintenant, on peut mettre aussi des parenthèses inutiles,
c'est n'est pas joli, mais ça ne gêne pas le microprocesseur.
alien
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
philou029




Nombre de messages : 49
Age : 56
Localisation : BREST
Date d'inscription : 17/10/2010

erreur logical expression Empty
MessageSujet: Re: erreur logical expression   erreur logical expression EmptyDim 5 Déc 2010 - 4:31

merci bien a vous tous
ca va m'éviter de réécrire toute la structure de mon programme
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

erreur logical expression Empty
MessageSujet: Re: erreur logical expression   erreur logical expression EmptyDim 5 Déc 2010 - 9:34

Je crois me souvenir qu'il y a un ordre de priorité à respecter pour les calculs. Je vais essayer de retrouver ou j'ai vu çà.

A+
Revenir en haut Aller en bas
Contenu sponsorisé





erreur logical expression Empty
MessageSujet: Re: erreur logical expression   erreur logical expression Empty

Revenir en haut Aller en bas
 
erreur logical expression
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» KGF_dll - nouvelles versions
» [RESOLU] CAM_MOVE N,D n'aime pas cette expression
» Not correct arithmetic expression : Sequence error, bad char
» Création de Constante et d'expression
» Parseur d'expression en Panoramic.

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: