[résolu] Procedure et resultat multiple.

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

[résolu] Procedure et resultat multiple.

Message 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
Dernière modification par GallyHC le mer. 15/févr./2012 18:01, modifié 1 fois.
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Procedure et resultat multiple.

Message 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

~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Procedure et resultat multiple.

Message par Backup »

....
Dernière modification par Backup le mar. 19/août/2014 10:34, modifié 1 fois.
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Procedure et resultat multiple.

Message 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
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Procedure et resultat multiple.

Message par Backup »

...
Dernière modification par Backup le mar. 19/août/2014 10:34, modifié 1 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Procedure et resultat multiple.

Message par Backup »

correction du code ci dessus , j'avais fait une boulette :oops: :roll:
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Procedure et resultat multiple.

Message par GallyHC »

ouep aussi merci
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

Re: Procedure et resultat multiple.

Message 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.
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Procedure et resultat multiple.

Message par GallyHC »

Je le penses aussi un peu comme fait VB6 quoi :)

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

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

Message 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°
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

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

Message 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 ...
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

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

Message 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.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

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

Message 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:
Dernière modification par Backup le jeu. 16/févr./2012 18:37, modifié 1 fois.
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

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

Message 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
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

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

Message 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:
Répondre