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

  FORUM HardWare.fr
  Programmation
  C++

  [Cpp] Donner une variable en argument dans une fonction

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

[Cpp] Donner une variable en argument dans une fonction

n°821347
NiLux
Posté le 12-08-2004 à 12:42:25  profilanswer
 

Je voudrais faire une fonction qui demande en argument, une variable.
 
int a;
bool b;
printf("a avant %d\n", a);
b = maFonction(a);
if( b ) printf("a après %d\n", a);
 
La fonction modifierai donc la variable a. Un exemple ce serait bien ^^ Merci.

mood
Publicité
Posté le 12-08-2004 à 12:42:25  profilanswer
 

n°821351
masklinn
í dag viðrar vel til loftárása
Posté le 12-08-2004 à 12:48:09  profilanswer
 

:heink:  
c'est la base de la base du C ca, hein [:itm]  

Code :
  1. bool fct(int & a)
  2. {
  3.     // Opérations sur a
  4.     if(condition) // Si ca a marché
  5.         return true;
  6.     else // Si ca a pas marché
  7.         return false;
  8. }


Message édité par masklinn le 12-08-2004 à 12:48:42

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°821366
NiLux
Posté le 12-08-2004 à 13:03:10  profilanswer
 

Et si on veut que cette argument soit optionnel ?

n°821377
masklinn
í dag viðrar vel til loftárása
Posté le 12-08-2004 à 13:08:30  profilanswer
 

Surdéfinition de fonctions

Code :
  1. bool fct(void)// Si pas d'argument fourni (appel fct()) le programme utilise ca
  2.   {  return false; }// la tu mets les trucs a faire
  3.   bool fct(int &a)// Si int fourni en argument, il utilise ca
  4.   {
  5.       // Opérations sur a
  6.         if(condition) // Si ca a marché
  7.               return true;
  8.         else // Si ca a pas marché
  9.               return false;
  10.   }


Message édité par masklinn le 12-08-2004 à 13:08:56

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°821380
NiLux
Posté le 12-08-2004 à 13:12:14  profilanswer
 

ah ouais ^^
 
Merci beaucoup ! :)
 
Pour le faite que je ne sache pas ça, je n'ai pas eu de formation en Cpp ni de tutorial en faite... c'est venu tout seul alors il arrive que je sache tout comme je peux ne rien savoir. :D

n°821382
Ace17
Posté le 12-08-2004 à 13:13:25  profilanswer
 

NiLux a écrit :

c'est venu tout seul

J'en connais un qui va hurler...

n°821388
cricri_
Posté le 12-08-2004 à 13:18:05  profilanswer
 

Pour un argument optionnel pas besoin de faire de la surdéfinition de fonction tout de même ...

n°821389
NiLux
Posté le 12-08-2004 à 13:18:27  profilanswer
 

Pourquoi donc ?

n°821391
cricri_
Posté le 12-08-2004 à 13:19:42  profilanswer
 

bah tu mets une valeur par défaut dans la déclaration, comme ça il est optionnel.

n°821392
NiLux
Posté le 12-08-2004 à 13:19:52  profilanswer
 

On sait pas faire un truc du genre, dans le header :
 
bool maFonction(int & a = NULL);
 
Ce serait encore plus simple ça.

mood
Publicité
Posté le 12-08-2004 à 13:19:52  profilanswer
 

n°821393
cricri_
Posté le 12-08-2004 à 13:23:44  profilanswer
 

c'est exactement ce que je viens de te dire ;)

n°821398
NiLux
Posté le 12-08-2004 à 13:25:15  profilanswer
 

Sauf que ça marche pas ^^ 0 est un int et on demande un &int

n°821399
Ace17
Posté le 12-08-2004 à 13:27:06  profilanswer
 

Ah ben si tu mets une référence ( & ) tu peux pas lui passer de constantes en parametres. Enleve la référence, tu verras ca marche.  
Sauf que si tu veux modifier la variable passée en parametre, tu as besoin de cette référence, mais dans ce cas, passer zero en parametre n'a pas de sens.


Message édité par Ace17 le 12-08-2004 à 13:28:28
n°821404
masklinn
í dag viðrar vel til loftárása
Posté le 12-08-2004 à 13:31:00  profilanswer
 

NiLux a écrit :

ah ouais ^^
 
Merci beaucoup ! :)
 
Pour le faite que je ne sache pas ça, je n'ai pas eu de formation en Cpp ni de tutorial en faite... c'est venu tout seul alors il arrive que je sache tout comme je peux ne rien savoir. :D


 :pfff:  
en être à ne pas savoir faire une fonction j'appelle pas ca "venu tout seul" :sweat:  

cricri_ a écrit :

bah tu mets une valeur par défaut dans la déclaration, comme ça il est optionnel.


Toi tu acceptes peut être, mais après avoir testé la solution gcc n'aime pas du tout les passages par références avec paramètre par défaut (ce qui est normal je trouve :))
 
grillaid par Ace :cry:


Message édité par masklinn le 12-08-2004 à 13:31:36

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°821405
cricri_
Posté le 12-08-2004 à 13:31:25  profilanswer
 

Et en mettant la refèrence constante ça doit marcher je pense

n°821407
masklinn
í dag viðrar vel til loftárása
Posté le 12-08-2004 à 13:33:10  profilanswer
 

vachement utile si on veut modifier la valeur au sein de la fonction, le const [:itm]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°821408
cricri_
Posté le 12-08-2004 à 13:34:04  profilanswer
 

C'est vrai que ça n'est pas très propre de d'avoir une réfèrence optionnel ...

n°821411
NiLux
Posté le 12-08-2004 à 13:35:35  profilanswer
 

Sur un autre forum on m'a proposé une autre méthode qui fonctionne tout aussi bien :
 
bool maFonction(int *a)
{
    *a=54;
    return true;
}
 
Autre part:
int z;
bool b;
b=maFonction(&z);
 

n°821418
NiLux
Posté le 12-08-2004 à 13:38:48  profilanswer
 

Merci mais je sais faire une fonction, même une procédure regarde :
 
void maProcedure()
{
    printf("La belle procedure\n" );
}
 
Autre part :
maProcedure();
 
Le truc de passer une variable ou un pointeur en paramètre est une particularité du C que je ne connaissais pas. J'appel pas ça une "base".

n°821419
masklinn
í dag viðrar vel til loftárása
Posté le 12-08-2004 à 13:41:16  profilanswer
 

1- ce que tu appelles une procédure c'est juste une fonction appelée procédure -_-
2- les pointeurs, c'est du C, t'as posté sur le forum C++ autant utiliser les références quand les pointeurs ne sont pas nécessaires


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°821438
NiLux
Posté le 12-08-2004 à 13:56:29  profilanswer
 

1- je déteste quand on numérote, ça me donne l'impression de passer pour un con
2- une procédure c'est une fonction qui ne renvoie pas de résultat ou une fonction c'est une procédure qui renvoie un résultat
3- les pointeurs c'est du C, merci ^^
 
Enfin merci pour votre aide même si je vous trouve pas très agréable, vous devriez être plus gentil avec les noobs qui demande une petite aide ;)
(si ça vous fait chier répondez pas quoi)

n°821440
cricri_
Posté le 12-08-2004 à 13:59:06  profilanswer
 

la notion de procédure n'existe pas en C, là tu parles Pascal ;)

n°821446
NiLux
Posté le 12-08-2004 à 14:06:32  profilanswer
 

(C'est franchement peu important, enfin merci pour l'info quand même : )

n°821496
masklinn
í dag viðrar vel til loftárása
Posté le 12-08-2004 à 14:46:31  profilanswer
 

NiLux a écrit :

1- je déteste quand on numérote, ça me donne l'impression de passer pour un con
2- une procédure c'est une fonction qui ne renvoie pas de résultat ou une fonction c'est une procédure qui renvoie un résultat
3- les pointeurs c'est du C, merci ^^
 
Enfin merci pour votre aide même si je vous trouve pas très agréable, vous devriez être plus gentil avec les noobs qui demande une petite aide ;)
(si ça vous fait chier répondez pas quoi)


1- désolé, je suis très mauvais réthoricien donc j'utilise la numérotation pour structurer mes posts et éviter de me perdre moi même dans mon bordel
2- en C/C++ c'est kif kif, la notion de procédure n'existe pas en tant que tel
3- précisons que les pointeurs existent aussi en C++, mais que les références (entre autres) permettent de s'en passer dans bien des cas :)  
4- Si ca nous avait fait chier de répondre nous n'aurions pas répondu
5- Si tu ne nous trouve pas très agréable, files des offrandes à la vierge pour le fait que Taz ne soit pas passé te dire bonjours sur ce thread [:aloy]  

NiLux a écrit :

(C'est franchement peu important, enfin merci pour l'info quand même : )


c'est important pour faire comprendre aux gens de quoi tu parles, si tu parles de procédure (avec procédure == fonction sans retour) à un codeux non pascal il risque de ne pas comprendre ou de mal interpréter


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°821951
Ace17
Posté le 12-08-2004 à 23:18:22  profilanswer
 

NiLux a écrit :


Le truc de passer une variable ou un pointeur en paramètre est une particularité du C que je ne connaissais pas. J'appel pas ça une "base".


 
Si tu deviens a l'aise en C/C++ par la suite, tu verras a quel point "Le truc de passer une variable ou un pointeur en paramètre" est banal et n'a rien d'une particularité. Si, ca fait partie des bases.
 
Et j'ajoute que les pointeurs n'ont pas disparu en C++, loin de la, mais dans le cas particulier cité plus haut, on peut élégament les remplacer par des références.
 
Ensuite, tu dis que tu trouves notre aide pas tres agréable, apres relecture du topic le seul truc susceptible de t'avoir dérangé est :
"en être à ne pas savoir faire une fonction j'appelle pas ca 'venu tout seul' " avec les smileys méprisants.
 
Sache qu'ici beaucoup de gens on un niveau tres élevé, et il y a deux types de gars qu'on ne supporte pas : ceux qui ont une haute estime de leur niveau alors qu'ils sont au ras des paquerettes, et ceux qui font de l'auto-dérision sur leur niveau minable.
Tu t'annonces comme noob, c'est tres bien, mais c'est ta phrase sur "c'est venu tout seul" qui a dérangé pas mal d'entre nous, te placant dans la premiere catégorie de gars insupportables.
 
Tout ceux qui ont un niveau raisonnable en C++ ne l'ont pas appris en un jour, alors forcément quelqu'un qui s'amene en prétendant avoir acquis la connaissance de ce langage par l'opération du saint-esprit, ca enerve.
 
Je ne suis pas du tout en train de me moquer de toi, ni de m'énerver (j'espere d'ailleurs ne pas etre trop désagréable a lire :) ). Je veux juste te faire comprendre l'erreur stratégique qui t'a sur le moment foutu le forum a dos.
 
As tu finalement résolu ton probleme de référence?
 

n°822112
masklinn
í dag viðrar vel til loftárása
Posté le 13-08-2004 à 10:03:56  profilanswer
 

Ace17 a écrit :


"en être à ne pas savoir faire une fonction j'appelle pas ca 'venu tout seul' " avec les smileys méprisants.


Il n'y avait pas de smiley méprisants, le smiley méprisant c'est [:itm]  
 
j'ai utilisé :pfff: et :sweat: , des smileys de doute :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°822143
Ace17
Posté le 13-08-2004 à 10:31:55  profilanswer
 

:pfff: pas méprisant? Ca s'appelle ": pfff :" pourtant!

n°822146
Taz
bisounours-codeur
Posté le 13-08-2004 à 10:33:43  profilanswer
 

ta gueule :o

n°822165
masklinn
í dag viðrar vel til loftárása
Posté le 13-08-2004 à 11:00:41  profilanswer
 

Ace17 a écrit :

:pfff: pas méprisant? Ca s'appelle ": pfff :" pourtant!


oui mais spa méprisant, ca montre que ca fait un peu suer de lire des trucs pareils, si tu voulais un exemple de méprisant fallait prendre

Citation :

c'est la base de la base du C ca, hein [:itm]


la l'exemple est valide


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°822168
Ace17
Posté le 13-08-2004 à 11:02:04  profilanswer
 

Ok, j'ai compris l'idée  :D

n°822288
NiLux
Posté le 13-08-2004 à 13:18:46  profilanswer
 

Je ne suis pas si insupportable que ça, c'est dérangeant à ce point que j'ai apris le C sans manuel ? Comme on peut apprendre presque n'importe quel langage avec un exemple, le reste c'est de la documentation qu'on a besoin, pas d'un tutorial. (ouep enfin y'a des exceptions... le Perl il faut quand même une doc assez complète parce que $a=~s/\n/ /g; il faut y aller pour deviner que ça remplacer tous les retours à la ligne par des espaces lol)
 
Et puis c'est pas si troublant qu'il soit possible d'apprendre le C sans manuel. Exemple, le PHP c'est ultra-simple. Une source et c'est partis. L'éditeur de module de Neverwinter Nights. On peut apprendre les bases du C très facilement un peu partout.
 
Mais passer une variable en argument... c'est pas très fréquent. Et le pointeur c'est spécifique au C.
 
bah je trouve pas que je suis si insupportable que ça ^^
 
(et pis y'a d'autres langages faciles à apprendre : le Python. Avec Karamba, on télécharge un thème qui possède un script et c'est partis on connait comment ça marche. Le tout c'est de savoir déjà programmer sur un autre langage. Le premier c'est le plus dur c'est logique.)
 

n°822303
cris56
Posté le 13-08-2004 à 13:35:10  profilanswer
 

NiLux a écrit :

Et puis c'est pas si troublant qu'il soit possible d'apprendre le C sans manuel.


 
apprendre à faire quoi? un programme qui calcul ta moyenne au bac ?
 

NiLux a écrit :


Mais passer une variable en argument... c'est pas très fréquent. Et le pointeur c'est spécifique au C.


 
c'est tres frequents en c, mais de quoi tu parle ? ya que ca...

n°822309
NiLux
Posté le 13-08-2004 à 13:37:44  profilanswer
 

Ça dépend ce que tu fait, c'est clair que si tu fait un programme en C ouais. Mais si tu fait un script à Neverwinter Nights c'est déjà bien rare quand tu fait une simple fonction (bien que tu utilises ceux de NWN) et en PHP passer une variable en argument j'ai jamais vu :S

n°822319
cris56
Posté le 13-08-2004 à 13:45:14  profilanswer
 

passer une variable en agurment, c'est dans tous les langages (je  suppose que tu veux dire autres  choses)
 
il me semble qu'en php on peut passer des objets par references, je suis pas sur
 
ce que je veux dire, c'est qu'il suffit pas d'avoir les bases en algo et d'avoir vu 2-3 sources en c pour connaitre le c

n°822333
NiLux
Posté le 13-08-2004 à 13:54:15  profilanswer
 

je prétend pas tout savoir, c'est pour ça que quand je sais pas, je demande. Mais on me reproche ici de prétendre avoir appris sans tutorial : ben ouais j'ai appris sans tutorial. J'ai pas *tout* appris mais j'ai appris les équivalents par rapport aux langages dont j'étais habitué. Et comme on passait rarement des variables en arguments, ici, en C, ça m'arrive rarement de passer une variable en argument.
 
y cherche la petite bête les gens ici ^^ Prise de tête inutile, la prochaine fois je répondrai le strictement minimum ainsi ça m'évitera une bête discussion inutile.

n°822341
masklinn
í dag viðrar vel til loftárása
Posté le 13-08-2004 à 13:59:55  profilanswer
 

NiLux a écrit :


Et puis c'est pas si troublant qu'il soit possible d'apprendre le C sans manuel. Exemple, le PHP c'est ultra-simple. Une source et c'est partis. L'éditeur de module de Neverwinter Nights. On peut apprendre les bases du C très facilement un peu partout.


pour le PHP c'est un langage simple, haut niveau et interprété, et de plus tu ne connaitrais jamais toutes les spécificités du PHP en te basant sur 2 scripts :)  

Citation :

Mais passer une variable en argument... c'est pas très fréquent.


si quand même, j'ai pas arrêté de le faire dans tous les langages que j'ai pu utiliser (C C++ Java Python PHP principalement)

Citation :

Et le pointeur c'est spécifique au C.


Pas exactement, disons plutot que le C/C++ est l'un des rares langages dans lesquelles ont manipule directement le pointeur

Citation :

(et pis y'a d'autres langages faciles à apprendre : le Python. Avec Karamba, on télécharge un thème qui possède un script et c'est partis on connait comment ça marche. Le tout c'est de savoir déjà programmer sur un autre langage. Le premier c'est le plus dur c'est logique.)


mais n'importe quoi :sweat:  
le python a beau être facile d'approche on ne l'apprend pas "comme ca", et surtout pas en se basant sur un seul type de code [:itm]  
 
tiens par exemple si tu es si fort que ca en python, es tu capable de comprendre tout ce qu'il y a là dedans? [:itm]  

NiLux a écrit :

Ça dépend ce que tu fait, c'est clair que si tu fait un programme en C ouais. Mais si tu fait un script à Neverwinter Nights c'est déjà bien rare quand tu fait une simple fonction (bien que tu utilises ceux de NWN)


un script NWN c'est pas de la programmation :whistle:  

Citation :

et en PHP passer une variable en argument j'ai jamais vu :S


t'as pas du en faire beaucoup alors, du paihachepai [:aloy]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°822344
cris56
Posté le 13-08-2004 à 14:01:32  profilanswer
 

"J'ai pas *tout* appris mais j'ai appris les équivalents par rapport aux langages dont j'étais habitué"
 
en gros ta appris a faire un if un for et une fonction (rien koi), et tu applique ca au c comme pour les autres langage
pour resumer tu programme en c à l'aveuglette
 
et ca ve dire quoi "passer une variable en argument"

n°822363
lint
O_O
Posté le 13-08-2004 à 14:13:58  profilanswer
 

ca veut dire qu'il fout tout dans son main :D

n°822371
cris56
Posté le 13-08-2004 à 14:16:44  profilanswer
 

je sais ce que ca ve dire "passer une variable en argument", mais NiLux visiblement ne le sais pas et il arrete pas d'utiliser ces termes

n°822605
Ummon
Posté le 13-08-2004 à 17:28:07  profilanswer
 

Masklinn a écrit :

:heink:  
c'est la base de la base du C ca, hein [:itm]  

Code :
  1. bool fct(int & a)
  2. {
  3.     // Opérations sur a
  4.     if(condition) // Si ca a marché
  5.         return true;
  6.     else // Si ca a pas marché
  7.         return false;
  8. }



 
Juste en passant : c'est pas du C ce que tu as écrit, le passage pas référence (& ), les commentaires de type // et le type bool ont été introduit avec le C++. http://forum.hardware.fr/images/perso/itm.gif

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

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

  [Cpp] Donner une variable en argument dans une fonction

 

Sujets relatifs
Pb : tableau[ ][ ] de taille non déclaré dans une fonction[Tomcat] : Incompatible object argument for function call
Gtk# : Avoir un renderer différent en fonction du niveau dans l'arbrefopen et parametre variable
Fonction "Val()"modifier ou creer une variable d'environnement
Obtenir le Nombre de collones sans la fonction num_fields[Excel][Résolu] pb de variable avec une feuille
Fonction Explode : histoire de paramètreune variable env qui contient l'url ?
Plus de sujets relatifs à : [Cpp] Donner une variable en argument dans une fonction


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