Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1829 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Problème test if()

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème test if()

n°2028811
M Orthogra​phe
Posté le 13-10-2010 à 01:26:45  profilanswer
 

Bonjour,
 
   J'ai un petit problème en C. Dans une fonction de recherche sur un liste chainée, je passe 4 paramètres.
La liste chaine et trois indicateurs.
 
   Si les indicateurs (notons-les A, B et C) sont de valeur 1 alors une condition de test supplémentaire doit être exécutée.
 
   Il y a donc 2^3 soit 8 tests différents.
 
   J'aimerais faire un test différent pour les 8 entrées mais j'aimerais synthétiser comme ceci
 
   Si A, testA =  "xxx" sinon testA = ""
   Si B, testB =  "yyy" sinon testB = ""
   Si C, testC = "zzz" sinon testC = ""
 
   et apres faire if( testA && testB && testC)
 
   en gros est-ce que je peux mettre le contenu du test dans un string (tableau de char) et concatener à la fin toutes ces chaines pour obtenir mon test final ? ou suis-je obligé de faire 8 tests différents?
 
  J'espère que c'est clair...  
 
  Un petit exemple ....

Code :
  1. int i = 5;
  2. int j = 6;
  3. char* monTest = "i<j";


et après faire un truc comme :  

Code :
  1. if(monTest)   qui serait executé comme   if(i<j)
  2.   ...


  Merci par avance

mood
Publicité
Posté le 13-10-2010 à 01:26:45  profilanswer
 

n°2028825
Taz
bisounours-codeur
Posté le 13-10-2010 à 07:53:40  profilanswer
 

Et ben ça s'appelle coder un interpréteur.
Sinon tu convertis tes chaînes avec strtol / sscanf et après tu compares tes entiers.

n°2028891
M Orthogra​phe
Posté le 13-10-2010 à 12:02:00  profilanswer
 

oui mais si dans mon if je veux mettre  
char* maCh1 = "toto"
char* maCh2 = "tata"
 
char* monTest = "strcomp(maCh1,maCh2)==0"
 
comment je fais pour faire if(monTest) ??

n°2028938
theshockwa​ve
I work at a firm named Koslow
Posté le 13-10-2010 à 14:38:51  profilanswer
 

on est pas en PHP, ici, on ne met pas de code dans des chaines de caractère [:pingouino]


---------------
last.fm
n°2029769
el muchach​o
Comfortably Numb
Posté le 16-10-2010 à 07:48:55  profilanswer
 

monTest doit être un pointeur de fonction qui pointe vers une fonction montest. Ca c'est si on connait à l'avance toutes les fonctions test possibles, que tu écriras toi-même.
Si on ne les connait pas et que ça peut être n'importe quoi, par exemple la possibilité offerte à l'utilisateur d'écrire lui-même n'importe quel test, il faut écrire un interpréteur ou plus simplement en intégrer un existant (comme Lua par exemple). Offrir la possibilité à l'utilisateur d'écrire lui-même son code est une extension très puissante d'un programme qui est presque toujours payante, mais je suppose que tu en es pas là.


Message édité par el muchacho le 16-10-2010 à 07:57:02

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2029773
regexp42
Eplucheur de RFC.
Posté le 16-10-2010 à 09:48:21  profilanswer
 

Il te suffit d'attribuer le résultat du test à ta variable.
 

Code :
  1. int i = 5;
  2. int j = 6;
  3. bool monTest = i < j;
  4. if (monTest) {
  5.     // Vrai
  6. } else {
  7.     // Faux.
  8. }

n°2029891
mrbebert
Posté le 17-10-2010 à 00:42:44  profilanswer
 

M Orthographe a écrit :

...
 
   J'aimerais faire un test différent pour les 8 entrées mais j'aimerais synthétiser comme ceci
 
   Si A, testA =  "xxx" sinon testA = ""
   Si B, testB =  "yyy" sinon testB = ""
   Si C, testC = "zzz" sinon testC = ""
 
   et apres faire if( testA && testB && testC)
 ...

Au lieu de concaténer les test à effectuer, est-ce que tu peux concaténer leurs résultats ?
si A , resulta = "le test à faire" sinon resulta=1
si B , resultb = "le test à faire" sinon resultb=1
si C , resultc = "le test à faire" sinon resultc=1
 
et enfin : if (resulta && resultb && resultc) ...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Problème test if()

 

Sujets relatifs
[PHP] Problème Array : test de valeurs negatives de suiteProblème pattern Decorateur FilterInputStream et classe de test.
Petit problème avec un script qui test la date d'installation de windoproblème de test Voyage 200
Test de XQuery SAXON - Problème de Compilationproblème test db
probleme de test sur une valeur sortie d'une requete SQLProbleme de test sur une variable en VB
[résolu tout seul] Problème avec Gtk => ** (Test Gtk.exe:1144):Probleme de test sur un formulaire dynamique
Plus de sujets relatifs à : Problème test if()


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR