Rechercher : dans
Par :

Fonction de plusieurs variables

Dernière réponse le 23 mai 2008 à 18:25:02 crazyghandi, le 23 mai 2008 à 13:35:54 
 Signaler ce message aux modérateurs

Bonjour,
je suis en train de faire un programme en C#. j'utilise pas mal de fonctions dont une qui
devrait me renvoyer un entier et une chaine de caracteres

quelqu'un sait comment renvoyer plusieurs variables depuis une meme fonction?

merci pour vos reponses

Configuration: Windows Vista
Opera 9.26

Meilleures réponses pour « fonction de plusieurs variables » dans :
PHP - Les variables Voir Concept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois...
Javascript - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. En Javascript, les noms de variables peuvent être aussi long que l'on désire,...
Variables d'environnement VoirVariables d'environnement Une variable d'environnement est une valeur dynamique, chargée en mémoire, pouvant être utilisée par plusieurs processus fonctionnant simultanément. Sur la plupart des systèmes d'exploitation, les emplacement de...
PHP - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...

1

saralix, le 23 mai 2008 à 13:43:33

En programmation, dans le cas d'une fonction, on ne peut pas vraiment renvoyer plusieurs variables Cependant, il y a des "astuces" qui te le permettent. Perso, j'en vois deux :

1/ Tout betement tu crée une variable globale et tu la modifie dans ta fonction
ex :

variable v;
function X{
v= 3;
} => ainsi au sortir de ta fonction, ta variable gloable v a été modifiée et tu peux l'utiliser comme bon te semble.

2/ Autre solution peut etre un peu mieux d'un point de vue "codeur expérimenté":
tu renvoies un tableau qui contient tes variables que tu veux sortir de la fonction.
Ex
function X{
String monString ;
int monInt;
tab[1] = monString;
tab[0]=monInt;

return tab;
}

Voilà. Je n'ai jamais fait de C#. Cependant, en Java, Ada, ou C le fonctionnement est le meme...
J'espère que cela t'auras aidé.

ST

Répondre à saralix

2

vlmath, le 23 mai 2008 à 13:46:05

Salut,

Une fonction ne peut avoir qu'un seul retour. Cependant, tu peux passer les paramètres en référence, au lieu d'en valeur Exemple ici.

ça va directement te modifier la valeur de la variable (ou des variables) dans la méthode qui appelle ta fonction (tu pourras même ne pas avoir de retour, si tu veux.

@Bientôt

Répondre à vlmath

3

crazyghandi, le 23 mai 2008 à 14:39:48

Merci pour vos reponses :

Saralix je vois comment tu veux faire mais est ce que je peux stocker un entier et une chaine de caracteres dans un meme tableau?
Dans le cas ou j'ai 2 caracteres :

function X{
char a;
char b;
char tab[2]
tab[1] = a;
tab[0]= b;

return tab;
}

Comment je fais pour recuperer dans mon prog principal?
peut etre un truc du genre

main (void)
{
char d;
char e;
char tableau[2];
tableau=X(d,e)
}

J'ai essaye mais je n'arrive pas a un resultat satisfaisant

merci quand meme pour ton aide

Répondre à crazyghandi

4

crazyghandi, le 23 mai 2008 à 14:41:55

Vlmath

est ce que tu pourrai adapter ta methode sur l'exemple basique qu'on a pris dans la discussion ?

merci

Répondre à crazyghandi

5

saralix, le 23 mai 2008 à 15:34:07

Salut!

Alors tout d'abord non c'est vrai qu'en C# tu ne peux pas stocker des char et des int dans un tableau.
Cependant j'ai peut etre une solution qui est certes pas très très "programmatiquement correcte" mais qui peut marcher.
En fait tu crée 2 tableaux de 1 et tu crée un autre tableau de tableau qui contiendra les deux tableaux de 1.
Par exemple :
function X{
int a;
char b;
int tab1[1];
char tab2[1]
tab tab3[2]; (je sais pas si c'est vraiment possible en c#)
tab1[0] = a;
tab2[0] = b;
tab3[0]=tab1;
tab3[1] =tab[2];
return tab3;
}

et dans ton prog principal tu fais :

Main(){
tab tabPrincipal;
tabPrincipal =X();(avec des parametres si tu as des param à la fct X)
}

Voilà si cela ne marche pas je ne sais pas désolée...
En espérant avoir pu t'aider un petit peu ou au moins t'avoir mis sur la piste...

Bonne chance

Répondre à saralix

6

saralix, le 23 mai 2008 à 15:34:18

Salut!

Alors tout d'abord non c'est vrai qu'en C# tu ne peux pas stocker des char et des int dans un tableau.
Cependant j'ai peut etre une solution qui est certes pas très très "programmatiquement correcte" mais qui peut marcher.
En fait tu crée 2 tableaux de 1 et tu crée un autre tableau de tableau qui contiendra les deux tableaux de 1.
Par exemple :
function X{
int a;
char b;
int tab1[1];
char tab2[1]
tab tab3[2]; (je sais pas si c'est vraiment possible en c#)
tab1[0] = a;
tab2[0] = b;
tab3[0]=tab1;
tab3[1] =tab[2];
return tab3;
}

et dans ton prog principal tu fais :

Main(){
tab tabPrincipal;
tabPrincipal =X();(avec des parametres si tu as des param à la fct X)
}

Voilà si cela ne marche pas je ne sais pas désolée...
En espérant avoir pu t'aider un petit peu ou au moins t'avoir mis sur la piste...

Bonne chance

Répondre à saralix

7

vlmath, le 23 mai 2008 à 17:56:43

Je signale que je n'ai jamais fais de C# ...

<code>function X (ref char a, ref char b) {
a = "texte A";
b = "texte B";
}

main (void)
{
char a;
char b;

X(a,b);

System.Console.WriteLine("A: {0}\nB: {1}", a,b);

}

Répondre à vlmath

8

 crazyghandi, le 23 mai 2008 à 18:25:02

Bon je n'y arrive pas

je vais trouver un cours sur le C# et regarder comment marcher les pointeurs (references)

merci quand meme pour vos reponses

++

Répondre à crazyghandi
Collection CommentÇaMarche.net