Page 1 sur 2

[résolu] Procedure et resultat multiple.

Publié : mer. 15/févr./2012 10:15
par GallyHC
Bonjour tous,

J'ai un problème a soumettre sur la meilleur methode pour faire une chose, Je m'explique :

J'ai une fonction du nom de "ToRGB()" qui a comme argument "fCH.f, fCL.f, fCS.f, lCR.l, lCG.l, lCB.l". fCH.f, fCL.f, fCS.f sont des valeurs que l'on met et lCR.l, lCG.l, lCB.l le resultat.

Voila un exemple de code simple.

Code : Tout sélectionner

Procedure ToRGB(fCH.f, fCL.f, fCS.f, lCR.l, lCG.l, lCB.l)
;
  lCR = fCH
  lCG = fCL
  lCB = fCS

EndProcedure

Define R.l
Define G.l
Define B.l

ToRGB(100, 50, 20, R, G, B)

Debug R
Debug G
Debug B
Mon problème et de savoir comment mettre les valeur dans R G et B facilement.

Cordialement,
GallyHC

Re: Procedure et resultat multiple.

Publié : mer. 15/févr./2012 10:32
par Ar-S
Ce serait pas plus simple comme ça ?

Code : Tout sélectionner



Procedure ToRGB(fCH.i = 0, fCL.i = 0, fCS.i = 0) ; Noir par défaut
  Shared R.i, G.i, B.i
	R = fCH
	G = fCL
	B = fCS

EndProcedure

; choix des couleurs
ToRGB(100, 50, 20)

Debug R
Debug G
Debug B

; Par défaut 
ToRGB()

Debug R
Debug G
Debug B


Re: Procedure et resultat multiple.

Publié : mer. 15/févr./2012 11:00
par Backup
....

Re: Procedure et resultat multiple.

Publié : mer. 15/févr./2012 12:18
par GallyHC
Bonjour,

Merci a vous deux cela repond bien a ce que desire :) donc a moi de faire au mieu je pencherais pour la solution de Dobro pour la simple raison que cela peu etre une autre procedure qui appel la fonction.

Merci,
GallyHC

Re: Procedure et resultat multiple.

Publié : mer. 15/févr./2012 12:29
par Backup
...

Re: Procedure et resultat multiple.

Publié : mer. 15/févr./2012 12:55
par Backup
correction du code ci dessus , j'avais fait une boulette :oops: :roll:

Re: Procedure et resultat multiple.

Publié : mer. 15/févr./2012 13:06
par GallyHC
ouep aussi merci

Re: Procedure et resultat multiple.

Publié : mer. 15/févr./2012 13:18
par lepiaf31
Dobro a écrit :autre solution
tu renvoi le résultat de ta procedure , par les parametres !! :lol:
Pour moi, c'est la meilleur méthode, elle est rapide, efficace, simple à comprendre et pas de variables partagées.

Re: Procedure et resultat multiple.

Publié : mer. 15/févr./2012 13:46
par GallyHC
Je le penses aussi un peu comme fait VB6 quoi :)

Cordialement,
GallyHC

Re: [résolu] Procedure et resultat multiple.

Publié : jeu. 16/févr./2012 15:50
par G-Rom
Agglomération des résultats dans un string
et Désagglomération en sortie pour récupérer les résultats
Tu peut écrire aussi le résultat dans un fichier distant sur un reseau
( plus long que le string ) :mrgreen:

sérieusement , y a aussi les structures , elle sont faite pour ca :

Code : Tout sélectionner

Structure color
  r.a
  g.a
  b.a
  a.a
EndStructure

Procedure MyFunc(*col.color)
  *col\r = 1
  *col\g = 1
  *col\b = 1
  *col\a = 1
EndProcedure


MaCouleur.color

MaCouleur\r = 100
MaCouleur\g = 128
MaCouleur\b = 64
MaCouleur\a = 32


MyFunc(@MaCouleur)

Debug MaCouleur\r  
Debug MaCouleur\g 
Debug MaCouleur\b 
Debug MaCouleur\a 
C'est plus propre que 50 @ en paramètres dans une fct°

Re: [résolu] Procedure et resultat multiple.

Publié : jeu. 16/févr./2012 16:13
par lepiaf31
G-Rom a écrit :
C'est plus propre que 50 @ en paramètres dans une fct°
Je trouve que pour 3 paramètres c'est largement envisageable.
Et, de plus, je trouve ça beaucoup plus "moche" de faire une structure pour 1 seule procédure ...

Re: [résolu] Procedure et resultat multiple.

Publié : jeu. 16/févr./2012 17:51
par G-Rom
C'est un exemple...
Pour une gestion complete des couleurs il te faut plus d'une fonction, si tu colles 3@ par fonction, alors oui c'est crado.

Re: [résolu] Procedure et resultat multiple.

Publié : jeu. 16/févr./2012 18:29
par Backup
G-Rom a écrit :C'est un exemple...
Pour une gestion complete des couleurs il te faut plus d'une fonction, si tu colles 3@ par fonction, alors oui c'est crado.
bon on va se calmer là ...

renvoyer des résultats par parametres c'est pas plus crado, que d'utiliser une structure
utiliser des strings non plus ;)
ça veut dire quoi crado ? que ça ne te conviens pas d'un point de vue esthétique ?
ou que ça ne colle pas au C++ ?

bah , seul le résultat compte non ?
l'optimisation ?
a ce compte Shared est la plus courte des solutions , et n'implique pas grand chose de plus..

on est en Basic , ne l'oublions pas , le Basic c'est bonjour la débrouille
je vois déja revenir les Anti Codes Spaghétis de mon enfance , avec qui je me prenais la téte a propos des Goto

Crado, pas Crado , on s'en fout , c'est juste une solution , l'emploi des Structures en est une autre
pas mieux , ni moins bien :)

et si nous avions eu des bank mémoire comme en Stos ou en DarkBasic, j'aurai même donné une soluce les utilisants
bref, c'est une possibilité offerte, pas un concours de reine de beauté :) ................ lopette ! :mrgreen: :lol: :lol:

Re: [résolu] Procedure et resultat multiple.

Publié : jeu. 16/févr./2012 18:32
par GallyHC
Bonjour,

Voila le pourquoi je demandais cela (http://purebasic.fr/french/viewtopic.php?f=6&t=12596), maintenant j'ai retenu une solution est je vais mis tenir :)

Cordialement,
GallyHC

Re: [résolu] Procedure et resultat multiple.

Publié : jeu. 16/févr./2012 19:43
par G-Rom
renvoyer des résultats par parametres c'est pas plus crado, que d'utiliser une structure
utiliser des strings non plus ;)
Complètement , c'est crade.
ça veut dire quoi crado ? que ça ne te conviens pas d'un point de vue esthétique ?
Exactement.
ou que ça ne colle pas au C++ ?
Aucun rapport , dans le cas ou tu cherches à me faire dire que j'étale ma science.
je te rappel que j'ai débuter la prog sur dbpro , puis ici , le tout en moins de dix ans, j'ai du commencer à comprendre la prog en 2004 ou 2005...
et si tu veut que j'étale ma science , je peut le faire , je connais sur le bout des doigts purebasic , je peut m'attaquer à n'importe quel projet , je connais le c/c++ , je code bénévolement en c++ sous Linux pour le compte de Fred pour la partie 3D, je peut encore continuer , le cv est loin d'être fini...
Quand j'apporte une solution , ce n'est pas pour "me la pété" mais pour donner de l'eau au moulin , j'ai autre chose à foutre , quitte à impressionner quelqu'un , je préfère les femmes... :wink: A force de casser les couilles , et tu est le premier à le dire , au gens qui répondent , et bah il n'y aura plus de réponse qui tirerons les gens par le haut.

Et d'écrire :

Code : Tout sélectionner

procedure BlendColor( red_A, green_A, blue_A, alpha_A, red_B, green_B, blue_B, alpha_B, red_A, green_C, blue_C, alpha_C)
...
endprocedure
et plus crado que d'écrire ca :

Code : Tout sélectionner

Procedure.i BlendColor( *colorA.color, *colorB.color )
ne pas être d'accord avec un truc si bête c'est ne pas avoir de bon sens , même si il y a d'autres solution, c'est celle la la plus simple, la plus propre , après si on comprend pas les structures , ben on bûche, on cherche à comprendre , et on fait avec! cela s'appelle progresser. :wink: