Imbrication de IF.. ou matrice [Résolu]

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Imbrication de IF.. ou matrice [Résolu]

Message par Kwai chang caine »

Bonjour à tous

Non non, je ne recré pas un autre TOPIC sur le nombre maximal de conditions imbriquée.
Le premier a déjà bien assez fait tchatcher :lol:

Vu que je suis nul en math...en autre :oops:
Et que je pense que la prog a du penser a mon genre de probleme....

N'y existerait il pas, un style de matrice, qui permette de tester X conditions selons plusieurs parametres dependant les uns des autres ??? :roll:

Bon..je vois deja vos gros sourcils velus se froncer :oops:

Avec un exemple tres simple, J'ai :
a, b, c, d

Et je voudrais que des choses se passent selon si (a=1 et b=0), (a=1 et b=1) etc....
Ya la methode bourrin, donc ma préférée :mrgreen:

Code : Tout sélectionner

If a
 
 If b
 
  If c
 
   If d
   Else
   EndIf
 
  Else
 
  EndIf

 Else
 
  If b
 
  If c
 
   If d
   Else
   EndIf
 
  Else
 
  EndIf


 EndIf

Else

+
+
+
+
+
EndIf
 
Alors...cette fois, avant de me lancer dans deux pages de If/Endif et que un de vous me dise : "Ouarfff...Ouarfff...Ouarfff... KCC il est trop drole.....fallait utiliser les QUATRITONS, ou les GRATEMOILEFION :?

Je demande donc humblement a la famille, si FRED il a pas prévu ce genre de possibilité, ou bien sinon comment vous faites au plus simple, lorsque vous avez ce genre de probleme.
Car je suppose que dans les jeux videos, ça doit drolement etre souvent le cas avec toutes les conditions qui doivent se reunir quand y'a plein d'elements qui dependent les uns des autres :roll:

Je vous remercie et vous souhaite une bonne journée
Dernière modification par Kwai chang caine le mer. 28/oct./2009 11:09, modifié 2 fois.
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Imbrication de IF.. ou matrice

Message par Backup »

Kwai chang caine a écrit :ou bien sinon comment vous faites au plus simple, lorsque vous avez ce genre de probleme.
ben justement tout l'art de la programmation consiste a en faire le moins possible
du coup , on n'a pas ce genre de problème ! :)

si t'en arrive la , c'est que la solution a ton problème n'est pas la bonne :)

il y a pratiquement toujours un moyen d'eviter de trop gros écueil !

par exemple en utilisant une autre façon de faire....

je prends comme exemple les collisions de sprites

sur qu'on peut par une miriade de IF-Endif tester si tel ou tel sprite est en collision avec le decors , ou un autre sprite !

mais heureusement il existe des soluce tres simple genre
tout coder en "dur" !!! :)

tu met dans des data la position des pieces du decors

tu lis la position de ton personnage
et tu l'a compare au data

si ton perso est en case 3X3 de ton ecran
tu lis la 3em ligne, 3em colonne de tes data, pour savoir si ton sprite est sur le decors ou pas

et s'il l'es tu pose celui ci a la position qu'il avait avant !

et voila une collision geré sans fonction de collision, et avec un seul if ! :)



tu vois , c'est ce genre de trucs qu'on utilise dans les jeux :)
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Imbrication de IF.. ou matrice

Message par Kwai chang caine »

Ouaaahh, c'est une bonne combine ça.... 8O
En fait tu recré une matrice mais en data.....un peu comme pour les matrices a diodes en electonique. :D
Quand on rentrait un jack avec une diode dedans pour connecter la ligne X de la colonne Y ...

Je garde ton idée...elle pourra me servir surement un jour :wink:
Mais en fait, j'ai parlé des jeux car je sais que c'est ce qu'il y a de plus dur a faire, et que devait en avoir des parametres a gerer par rapport a d'autres.

Mais dans mon cas, c'est plus simple..enfin si on peut dire.
J'ai une appli....elle peut etre lancé soit manuellement, soit par une autre qui la gere
Cette appli ....elle peut etre soit dans cette appli qui la gere, soit en dehors toute seule
J'ai des autorisations...selon les autorisations elle a le droit de se lancer seule, ou non
Et selon ces autorisations....et selons des criteres de nom de machine, IP, Nom de session elle a le droit ou non...
Etc....je doit en oublier, je pense :oops:

Alors ça commence à faire compliqué avec les IF.... 8O
Mais bon....je vais me lancer....je voulais juste etre sur de ne pas etre passé a coté d'une fonction que je ne connais encore pas, un genre de MEGA select case a plusieurs etages quoi :lol:

Bon merci beaucoup de ton aide....DOBRO
Je regarde avec tristesse ton compteur descendre :cry:

Comme quoi le bonheur des uns....fait pas toujours le bonheur des autres :roll:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Imbrication de IF.. ou matrice

Message par Le Soldat Inconnu »

La solution pour simplifier un test trop tordu :

Le tableau de karnaugh

http://fr.wikipedia.org/wiki/Table_de_Karnaugh
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Imbrication de IF.. ou matrice

Message par Kwai chang caine »

Hello soldat :D
Je savais bien que un cerveau avait du penser a un truc comme ça.
En plus, je me rappelle avoir dormi a un cours parlant de ça quand j'avais 14 ans. :oops:

Oui, j'ai honte !!!! mais comment aurais je pu savoir que 30 ans apres j'aurais eu besoin de ce cours :?

C'est apparement ce que je recherche, d'apres le fruit chevelu vert....ah non....celui la c'est le KIWI :mrgreen:

Bon j'ai fait un search sur les 3 forum et on peut pas dire que la declaration des droits de l'homme s'affiche :(
Je vais regarder des fois en VB ... :roll:
Car c'est deja pas evident a comprendre..alors a coder quand t'as pas compris :(

Merci de cette piste 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Imbrication de IF.. ou matrice

Message par Le Soldat Inconnu »

c'est extrêmement pratique quand tu es perdu dans une condition trop complexe.

Tu trouveras surement des cours sur internet
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Imbrication de IF.. ou matrice

Message par Kwai chang caine »

J'ai cherché sur KARNAUGH.
Mais je vois pas bien comment adapter cette methode en PB
Car en fait elle est visuelle plus qu'autre chose :roll:

Par contre j'suis tombé sur un truc de "guedin" que j'essais de coder depuis ce matin...
Pas simple, mais peut etre plus simple pour PB :roll:

J'en suis a 60%....
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Imbrication de IF.. ou matrice

Message par Kwai chang caine »

Bon je crois que je vais abandonner :(

En fait je voulais faire la surprise, en pondant certe un code de merde..Mais qui sortait le resultat escompté.
Apres 4 heures de codages...j'en suis arrivé a 80 % et les 20 % qui restent sont encore pire que le reste :?

J'avais trouvé la methode de QUINE-MAC CLUSKEY
Surement un des matheux du forum connait.
Elle paraissait plus simple a adapter pour moi, que KARNAUGH...mais les apparences sont parfois trompeuses.

Bon avec toutes ces heures perdues...j'aurais surement fini mes 10 conditions qui s'imbriquent, si j'avais pas eu cette idée a la con de vouloir simplifier :?

Alors attention...si y'en a que ça amuse de finir....surtout derriere moi, c'est pas triste :mrgreen:
Il reste a faire les deux derniers tableaux

Voila le lien :
http://pagesperso-orange.fr/daniel.robe ... _3TS1.html

Et ma daube : :oops:

Code : Tout sélectionner

Global Dim F(15,15,15,15)

Debug "Pour examiner cette méthode, nous prendrons un exemple à quatre variables."
Debug "Partons de la table de vérité de la fonction f (a, b, c, d)"
Debug ""

Debug "F(a, b, c, d)"
Debug "-------------"

Debug "F(0, 0, 0, 0) = 1 ==> Ligne 1"
Debug "F(0, 0, 0, 1) = 1 ==> Ligne 2"
Debug "F(0, 0, 1, 0) = 1 ==> Ligne 3"
Debug "F(0, 0, 1, 1) = 0 ==> Ligne 4"
Debug "F(0, 1, 0, 0) = 1 ==> Ligne 5"
Debug "F(0, 1, 1, 0) = 1 ==> Ligne 6"
Debug "F(0, 1, 1, 1) = 0 ==> Ligne 7"
Debug "F(1, 0, 0, 0) = 1 ==> Ligne 8"
Debug "F(1, 0, 0, 1) = 1 ==> Ligne 9"
Debug "F(1, 0, 1, 0) = 0 ==> Ligne 10"
Debug "F(1, 0, 1, 1) = 0 ==> Ligne 11"
Debug "F(1, 1, 0, 0) = 1 ==> Ligne 12"
Debug "F(1, 1, 0, 1) = 1 ==> Ligne 13"
Debug "F(1, 1, 1, 0) = 1 ==> Ligne 14"
Debug "F(1, 1, 1, 1) = 1 ==> Ligne 15"
Debug ""

; Chargement du tableau
F(0, 0, 0, 0) = 1 ;1
F(0, 0, 0, 1) = 1 ;2
F(0, 0, 1, 0) = 1 ;3
F(0, 0, 1, 1) = 0 ;4
F(0, 1, 0, 0) = 1 ;5
F(0, 1, 1, 0) = 1 ;6
F(0, 1, 1, 1) = 0 ;7
F(1, 0, 0, 0) = 1 ;8
F(1, 0, 0, 1) = 1 ;9
F(1, 0, 1, 0) = 0 ;10
F(1, 0, 1, 1) = 0 ;11
F(1, 1, 0, 0) = 1 ;12
F(1, 1, 0, 1) = 1 ;13
F(1, 1, 1, 0) = 1 ;14
F(1, 1, 1, 1) = 1 ;15

Debug "Nous pouvons constater que la fonction f est «vraie» (égale à 1) pour onze combinaisons des variables a, b, c et d."
Debug "Donnons comme nom à chacune de ces combinaisons la valeur décimale qui correspond au code binaire formé par les "
Debug "variables a, b, c, d en considérant que a est le bit de poids fort et d le bit de poids faible."
Debug ""
Debug "Exemple :"

Debug "0110 = (a)bc(d) : nous l'appellerons la combinaison 6 puisque 0110 en binaire équivaut à 6 en décimal."
Debug "F(0, 1, 1, 0) = 1 ;6"
Debug ""
Debug "Si nous récapitulons, la fonction f est donc la somme des combinaisons résumées dans cette figure :"
Debug ""

; a b c d  |  COMBINAISONS
; =====================
; 0 0 0 0   |  Combinaison 0
; 0 0 0 1   |  Combinaison 1
; 0 0 1 0   |  Combinaison 2
; 0 1 0 0   |  Combinaison 4
; 0 1 1 0   |  Combinaison 6
; 1 0 0 0   |  Combinaison 8
; 1 0 0 1   |  Combinaison 9
; 1 1 0 0   |  Combinaison 12
; 1 1 0 1   |  Combinaison 13
; 1 1 1 0   |  Combinaison 14
; 1 1 1 1   |  Combinaison 15

Debug "a b c d  |  COMBINAISONS"
Debug "====================="
Dim TabloCombinaison(0)
Dim ValeurCombinaison.s(0)

For i = 0 To ArraySize(F())
 
 TexteBin$ = Right("000" + Bin(i), 4)
 Bit1 = Val(Left(TexteBin$, 1))
 Bit2 = Val(Mid(TexteBin$, 2, 1))
 Bit3 = Val(Mid(TexteBin$, 3, 1))
 Bit4 = Val(Right(TexteBin$, 1))
  
 If F(Bit1, Bit2, Bit3, Bit4) = #True
  Debug Str(Bit1) + " " + Str(Bit2) + " " + Str(Bit3) + " " + Str(Bit4) + " " + "  |  Combinaison " + Str(i)
  ReDim TabloCombinaison(i)
  ReDim ValeurCombinaison(i)
  TabloCombinaison(i) = i
  ValeurCombinaison(i) = Str(Bit1) + Str(Bit2) + Str(Bit3) + Str(Bit4)
 EndIf
 
Next

Debug ""
Debug "Cette liste peut être récapitulée de la façon suivante :"

For i = 1 To ArraySize(TabloCombinaison())
 If TabloCombinaison(i)
  PhraseCombinaison$ + Str(TabloCombinaison(i)) + ","
 EndIf 
Next

PhraseCombinaison$ = Left(PhraseCombinaison$, Len(PhraseCombinaison$) - 1)

Debug "F = SIGMA(" + PhraseCombinaison$ + ")"
Debug ""
Debug "A partir de cette liste de combinaisons commence réellement la méthode de QUINE-MAC CLUSKEY."
Debug "La première chose à faire est de classer ces combinaisons en un ensemble successifs en fonction du nombre de zéros"
Debug "de la forme binaire de chaque combinaison en commençant par celle qui en compte le plus."
Debug ""
Debug "Le premier ensemble est donc formé par la combinaison 0 dont la forme binaire 0000 comporte quatre zéros."
Debug "Le second ensemble regroupe les combinaisons comportant trois zéros ... "
Debug "jusqu'au cinquième qui est formé de la combinaison 15 dont la forme binaire 1111 ne comporte pas de zéro du tout."
Debug ""
Debug "Les cinq ensembles sont représentés cette figure :"

Dim TabloEnsembleZero.s(50)
x = 1
NumEnsemble = 0

For NbreZeroRechercher = 4 To 0 Step - 1
 
 NumEnsemble + 1
 Debug ""
 
 ; Compte les zeros
 For u = 0 To ArraySize(ValeurCombinaison())

  If CountString(ValeurCombinaison(u), "0") = NbreZeroRechercher And Trim(ValeurCombinaison(u)) <> ""
   Debug "Combinaison " + Str(u) + " | " + ValeurCombinaison(u) + " | Ensemble " + Str(NumEnsemble) + " (" + Str(NbreZeroRechercher) + " zéros)"
   TabloEnsembleZero(x) + Str(u) + "|"
  EndIf
  
 Next
 
 x + 1
   
Next

ReDim TabloEnsembleZero(x)

Debug ""
Debug "La seconde phase de la méthode consiste à comparer les termes de chaque ensemble avec les termes de l'ensemble qui suit immédiatement"
Debug "de façon à éliminer une variable si cela est possible."
Debug ""
Debug "La combinaison 0000 de l'ensemble 1 doit donc être comparée aux quatre combinaisons de l'ensemble 2."
Debug "Puis chacune des quatre combinaisons de cet ensemble 2 sera comparée à chacune des trois combinaisons de"
Debug "l'ensemble 3 et ainsi de suite jusqu'à l'ensemble 5..."
Debug ""
Debug "Lorsque deux combinaisons ne diffèrent que d'UNE VARIABLE, celles-ci peuvent être associées pour n'en former plus qu'une dans laquelle"
Debug "la variable qui diffère peut être éliminée."
Debug ""
Debug "Quand une variable s'élimine dans une telle association, on signale ce fait en remplaçant cette variable par une croix (ou tout autre signe à votre convenance)."
Debug "Dans l'exemple que nous avons choisi, les combinaisons 0 et 1 peuvent, par exemple, être associées puisque seule la variable d est différente :"
Debug ""

Dim TabloEnsembleCroix.s(0)
x = 0

For a = 1 To ArraySize(TabloEnsembleZero()) - 1 ; Boucle de lecture des Ensembles combinaisons
 
 For h = 1 To CountString(TabloEnsembleZero(a), "|") ; Boucle de lecture des combinaisons
 
  NumTabloCombinaison1 = Val(StringField(TabloEnsembleZero(a), h, "|"))
  ValPremierElement = 0
  
  ; Calcul de la valeur du premier element
  For i = 1 To Len(Trim(ValeurCombinaison(NumTabloCombinaison1)))
   ValPremierElement + Val(Mid(ValeurCombinaison(NumTabloCombinaison1), i, 1))
  Next 
      
  For o = 1 To ArraySize(ValeurCombinaison())
    
   NumTabloCombinaison2 = Val(StringField(TabloEnsembleZero(a + 1), o, "|"))
   
   If Not NumTabloCombinaison2
    Continue
   EndIf
    
   ValSecondElement = 0
 
   ; Calcul de la valeur du second element 
   For i = 1 To Len(Trim(ValeurCombinaison(NumTabloCombinaison2)))
    ValSecondElement + Val(Mid(ValeurCombinaison(NumTabloCombinaison2), i, 1))
   Next
      
   If Abs(ValPremierElement - ValSecondElement) = 1 ; Difference entre les deux elements de 1
     
    ; Recherche des croix
    
    Temp_TabloEnsembleCroix$ = ""
    DifferenceCombinaison = 0
    
    For z = 1 To Len(ValeurCombinaison(NumTabloCombinaison1))
    
     If Mid(ValeurCombinaison(NumTabloCombinaison1), z, 1) <> Mid(ValeurCombinaison(NumTabloCombinaison2), z, 1)
      DifferenceCombinaison + 1
      Temp_TabloEnsembleCroix$ + "X"
     Else
      Temp_TabloEnsembleCroix$ + Mid(ValeurCombinaison(NumTabloCombinaison1), z, 1)
     EndIf
    
    Next
    
    If DifferenceCombinaison = 1
     x + 1
     ReDim TabloEnsembleCroix(x)
     TabloEnsembleCroix(x) + Temp_TabloEnsembleCroix$
     Debug Str(NumTabloCombinaison1) + " - " + Str(NumTabloCombinaison2) + "  = " + TabloEnsembleCroix(x)
    EndIf
       
   EndIf  
  
  Next
  
 Next
 
 Debug "" 
 
Next

Debug "Nous obtenons de nouveaux membres regroupés à présent dans quatre ensembles I, II, III et  IV."
Debug "Recommençons la même opération avec ces nouveaux ensembles. La figure suivante donne les nouvelles combinaisons obtenues."
Debug ""
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Imbrication de IF.. ou matrice [Résolu]

Message par Kwai chang caine »

Bon apres etre reparti de zero...
J'ai pu créer ce que je cherchais.....

En fin de compte c'etait bien moins compliqué que je ne le croyais.

En fait SOLDAT y m'a dit que normalement on utilisait la methode KARNAUGH pour resoudre ce genre de problemes.....mais KCC lui il préfere utiliser la methode CORNIAUD :D

Alors attention c'est mega copyrighté KCC :?
A coté les mathematiciens, physiciens et toute la clique....c'est de la roupie de sansonet :mrgreen:

Bon je vous donne ma methode, car je sais que vos claviers ne sont pas etanche...et qu'il craignent les filets de bave :D
Je sais que comme d'habitude, ça servira a personne....car les idées a KCC, on peut pas dire qu'elle surchargent le journal officiel :roll:
Mais bon peut etre qu'un jour, un mathématicien de ma trempe, aura besoin de ça et surtout de comprendre ce qu'il ecrit :D

Methode KCCORNIAUD

1/ Je passe les divers etats de chacune des variables a tester, j'ai donc été obligé de les passer en string, mais je pourrais aussi les passer en tableau
Je ne peux pas les passer en numerique, car comme on peut pas avoir une procedure dont on ne connait pas le nombre de parametres, ça coincerait un jour.
D'ailleur c'est dommage que FRED est pas prevu ce genre de procedure...y'a longtemps j'avais deja eu besoin de ça, mais c'est pas possible :(

2/ On entre la valeur de sortie de la fonction, donc des 0 et de 1 autant que y'a de ligne dans la table de vérité (Au passage y'a une vérification de la longueur)
Mais pour pas avoir a taper une famille de 0 et 1, je converti la suite binaire en decimal :mrgreen:

Dans cet exemple, je veux mes sorties à 1001

00 = 1
01 = 0
10 = 0
11 = 1

Cela correspond au chiffre 9 en decimal (1001 = 9)

Je n'ai plus qu'a entrer les diverses possibilitées pour tester la sortie :wink:

Code : Tout sélectionner

Procedure MultiCondition(BinaireEntrees.s, DecFonction)

 NbrColonne = Len(BinaireEntrees)
 NbrLigne = Pow(2, NbrColonne) - 1
 BinaireFonction.s = Bin(DecFonction)
 
 If Len(BinaireFonction) < NbrLigne + 1
  MessageRequester("", "L'indice de fonction " + Str(Fonction) + " n'est pas assez long")
 ElseIf Len(BinaireFonction) > NbrLigne + 1 
  MessageRequester("", "L'indice de fonction " + Str(Fonction) + " est trop long")
 EndIf
   
 For Lig = 0 To NbrLigne

  NbrLigneBin$ = RSet(Bin(Lig), NbrColonne, "0") 

  If BinaireEntrees = NbrLigneBin$
   ValeurFonction = Val(Mid(BinaireFonction, Lig + 1, 1))
   Break
  EndIf
   
 Next 
 
 ProcedureReturn ValeurFonction
 
EndProcedure

a = 0
b = 0
Debug MultiCondition(Str(a) + Str(b), 9)

a = 0
b = 1
Debug MultiCondition(Str(a) + Str(b), 9)

a = 1
b = 0
Debug MultiCondition(Str(a) + Str(b), 9)

a = 1
b = 1
Debug MultiCondition(Str(a) + Str(b), 9)
Si par miracle y'en avait un que ça interesse et qui n'a pas compris :lol:
Je suis a sa disposition :D
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Imbrication de IF.. ou matrice [Résolu]

Message par Backup »

oui ! :)

beaucoup de code pour pas grand chose ;)

Code : Tout sélectionner

Procedure.s  qui_tue_ca_race(a,b) 
    sou_res=(a ! b) 
    res$=Str(sou_res Not sou_res)
    ProcedureReturn res$
EndProcedure


a = 0
b = 0
Debug qui_tue_ca_race(a,b)

a = 0
b = 1
Debug qui_tue_ca_race(a,b)

a = 1
b = 0
Debug qui_tue_ca_race(a,b)

a = 1
b = 1
Debug qui_tue_ca_race(a,b)
    
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Imbrication de IF.. ou matrice [Résolu]

Message par Kwai chang caine »

Faut reconnaitre que "QuiTueSaRace" elle est cool, et drolement plus courte 8O

Mais j'ai encore plus fort :lol: :lol:

Code : Tout sélectionner

Procedure.s  qui_tue_encore_plus_sa_race_que_celle_qui_tue_sa_race() 
 ProcedureReturn "1" + Chr(13) + "0" + Chr(13) + "0" + Chr(13) + "1"
EndProcedure

Debug qui_tue_encore_plus_sa_race_que_celle_qui_tue_sa_race()
En fait moi, mes comparaisons ne peuvent pas etre en dur dans la procedure....
A tel point que je devrais meme l'apeller une "PROCEMOLLE" :D

Sinon j'aurais utilisé ta super combine des DATA :wink:

C'est selon la table de vérité (DecFonction) des parametres que je lui envoie que j'aurais des reponses differentes, comprend tu ??? :D
Avec un seul chiffre, je peux modifier toutes les valeurs de retour pour les 16 possibilités, ou bien centaines de possibilités si j'agrandi le nombre de parametres :mrgreen:

Mais par contre, cela me montre une fois de plus, que j'aurais du commencer par le commencement.
Car ton code, il utilise l'operateur !... et ce genre d'operateur, je pense jamais a l'utiliser :oops:

J'avais meme besoin d'un operateur de concatenation numerique.
Mais je crois pas que cela existe nativement :roll:

Code : Tout sélectionner

a = 1
b = 2
c = a ? b
Debug c

Code : Tout sélectionner

Reponse 12
Mais merci de ton exemple, il m'a apris quelque chose :wink:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Imbrication de IF.. ou matrice [Résolu]

Message par Backup »

ceci : c = a ? b en v4.31 ne fonctionne pas ;)


mais ça oui ;)

Code : Tout sélectionner

Declare _(a,b)



a = 1
b = 2
c = _(a,b)
Debug c



Procedure _(a,b)
    r$=Str(a)+Str(b)
    ProcedureReturn Val(r$)
EndProcedure

Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Imbrication de IF.. ou matrice [Résolu]

Message par Kwai chang caine »

Oui j'aurais pu creer la fonction
Mais c'est rigolo que ça existe pas en natif.....
Remarque ça doit servir a personne, un peu comme toutes les choses dont KC il a besoin :oops:

Mais bon, ça existe pour les strings...et pas pour les nombres...faut passer par les strings...c'est dommage.
Une petite fonction de concatenantion de nombre, pourrait etre utile ???

Du style

Code : Tout sélectionner

a=1
b=2
c = a ++ b

Debug C
Reponse
12
Meme pas je demande....avec la TodoList qui existe et quand on voit que la team ne veux pas entrer le GIF dans PB :lol: :lol:
Y'a rien a faire...c'est pas drole ..mais c'est les nerfs :lol:

Encore merci DOBRO 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Imbrication de IF.. ou matrice [Résolu]

Message par Backup »

Kwai chang caine a écrit :Oui j'aurais pu creer la fonction
Mais c'est rigolo que ça existe pas en natif.....
rien n'empêche d'en faire une lib avec d'autres trucs dans le genre
comme ça tu aura ta fonction en 'pseudo-native' ;)

de toute façon Fred aurai fait une truc equivalent (en passant par une chaine)... donc....

je dits en passant par une chaine, car, je ne pense pas possible de faire ça, sans les chaines

dès qu'il s'agit de concaténer....

mais peut etre axiste t'il une petite formule miracle qui fasse la meme chose ,sans les chaines ;)

un peu dans cet esprit :

Code : Tout sélectionner

a=20
b=2

c=(a*10)+b

Debug c
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Imbrication de IF.. ou matrice [Résolu]

Message par Kwai chang caine »

Quand tu dis creer ta LIB.
Je suppose que tu parle de taillebite et des fichiers sans extension qui sont déposé dans userlibrarie ???

Tu ne parle pas du fichier *.lib qui est créé avec la DLL ???
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Répondre