Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails) *** mise à jour 12/10/2014 ***

#1 Le 09/12/2005, à 14:12

racoon97

Qu'est ce qu'une fonction ?

Quelqu'un peut t'il m'expliquer ce qu'est une fonction et comment on l'utilise ?
Avec des exemples si possible ... en python par exemple.

Dernière modification par racoon97 (Le 09/12/2005, à 19:14)


Pas de logiciel de montage vidéo professionnel sous Linux ? Demandez à Sony son portage de Vegas Pro sous Linux... ou attendez Lightworks ;)

Hors ligne

#2 Le 09/12/2005, à 14:31

max63

Re : Qu'est ce qu'une fonction ?

Je vais donner un exemple en C, car c'est la base de la programmation, et donc c'est le mieux poru comprendre :
Ben imaginons que ton programme calcul l'air d'un cercle. Pour cela tu as besoin de connaitre le rayon du cercle.
Donc tu va crée un progamme en C de cette facon :

void main(void)  {
 int rayon = 2;
 flaot pi = 3.14f;
 float aire = 0.0;
  
 aire = 2 * pi * r ;

}

Ca c'est la facon classique ... mais tu peux très bien crée une fonction permettant de calculer ton aire, que tu appellera calculAire qui prendra en paramètre le rayon et qui te renvera le resultat

float calculAire(int rayon);

void main(void)  {
  
 float aire = calculAire(2)

 /* printf sert a afficher le résultat */
 printf( " Résultat de l'aire %.2f ", aire );

}

float calculAire(int rayon) {

 float pi = 3.14f;
 return 2 * pi * rayon ;
}

De cette facon tu peux utiliser la fonction calculAire a plusieur endroit dans le programme, et modiifier a seul endroit le code. Si dans un programme tu calcul 100 fois des aire différentes, et que un jours on te dis la formule et fait c'est 2*pi*r² et bien tu changera seulement le corps de ta fonction et tout le reste marchera. L'appel de la fonction ne change pas mais le résultat oui ! Par exemple printf est une fonction qui écrit sur la sorti standart (l'écran) et bien peu de personnes savent comment elle est écris mais cela n'empeche pas de s'en servir. Et si un jour cette fonction est optimisé, tous les printf le seront.

Dernière modification par max63 (Le 09/12/2005, à 14:32)


Tout sur l'actualité frakassante du libre : http://www.frakass.org

Hors ligne

#3 Le 09/12/2005, à 16:45

alexmic

Re : Qu'est ce qu'une fonction ?

Je veux pas faire mon inspecteur des travaux finis mais il y a quelques erreurs de code

La première : ta fonction te renverra toujours  12,56... car ne calculera qu'une aire (en fait la criconférence voir deuxième erreur) d'un cercle de rayon 2

float aire = calculAire(2)

il faudrait que ce soit

float aire = calculAire(rayon)

au passage il manque un ';'

La seconde te renvoie la cironférence (2*pi*r et non pi*r²)

Mais bon je ferais pas mieux en C alors je n'ai rien dit (ou presque)

Dernière modification par alexmic (Le 09/12/2005, à 16:46)


OMG Lawl pwnd rofl... Plaît-il?

Hors ligne

#4 Le 09/12/2005, à 17:18

Io

Re : Qu'est ce qu'une fonction ?

Ce qui te donne en Python :

import math #la librairie math possede la constante pi

def calculAire (rayon) :
    return 2*math.pi*rayon

def main (rayon) :
     print  "Résultat de l'aire " + str( calculAire(rayon) )

main (2)

Hors ligne

#5 Le 09/12/2005, à 19:20

max63

Re : Qu'est ce qu'une fonction ?

alexmic a écrit :

Je veux pas faire mon inspecteur des travaux finis mais il y a quelques erreurs de code

La première : ta fonction te renverra toujours  12,56... car ne calculera qu'une aire (en fait la criconférence voir deuxième erreur) d'un cercle de rayon 2

float aire = calculAire(2)

il faudrait que ce soit

float aire = calculAire(rayon)

au passage il manque un ';'

La seconde te renvoie la cironférence (2*pi*r et non pi*r²)

Mais bon je ferais pas mieux en C alors je n'ai rien dit (ou presque)

Ben en fait pour la première remarque je ne vois pas ou et l'erreur,  certe dans mon exemple la fonction retrounera bien 12.56 mais c'est juste un exemple, pour traduire le code du dessus.. par contre c'est vrai que j'ai oublié le point virgule... autant pour moi j'ai écris le code en live


Tout sur l'actualité frakassante du libre : http://www.frakass.org

Hors ligne

#6 Le 09/12/2005, à 19:51

racoon97

Re : Qu'est ce qu'une fonction ?

Merci beaucoup pour vos explications tongue
Comme je le prévoyais, la version python, je l'ai comprise plus facilement.
Je donc m'en inspirer pour ma poser ma prochaine question :
Donc si j'ai bien compris, avec main (rayon) tu as créé une autre fonction qui fait appel à la première que tu as créée, c'est ça ?
Par contre je ne comprends pas à quoi sert le main (2)roll


Pas de logiciel de montage vidéo professionnel sous Linux ? Demandez à Sony son portage de Vegas Pro sous Linux... ou attendez Lightworks ;)

Hors ligne

#7 Le 09/12/2005, à 20:09

tukuyomi

Re : Qu'est ce qu'une fonction ?

main (2) te retourne le résultat de l'aire d'un cercle de rayon 2  cool
main (rayon) retourne le texte Résultat de l'aire, fait appel à calculAire(rayon) avec l'argument rayon pour calculer l'aire, transforme la valeur en chaine de caractère str() pour que ça suive le texte Résultat de l'aire

*C'est bien plus simple de lire le code que de le lire de manière littérale tongue

Dernière modification par tukuyomi (Le 09/12/2005, à 20:13)

Hors ligne

#8 Le 10/12/2005, à 03:21

Noé

Re : Qu'est ce qu'une fonction ?

Ils se compliquent bien la vie ! Une fonction c'est comme en maths ! C'est un truc qui prends une valeur et qui la transforme en une autre valeur !
f : x -> x²
f : x -> x+8
ou
f(x) = x²
f(x) = x+8
(pas tout a fait pareil mais passons, on est pas en cours de maths)

Dans un programme on peut faire la même chose, sauf qu'à la place de manipuler des nombres on peut manipuler d'autres choses (des phrases ou des PingouinsFantasques par exemple smile ) et qu'on peut prendre plusieurs valeurs.
Et puis il y a des procédures. C'est un truc qui "fait" quelque chose alors qu'une fonction "donne" quelque chose.
Exemple quand je te dis 2+2 ça donne 4. C'est une fonction qui transforme aucune  valeur en 4. (f : x -> 2+2)
Quand je te dis lève les bras ça donne rien. Par contre après t'auras les bras levés. J'ai suivi une procédure.

Je sais pas si je suis clair. oO


dotdotno ou Phlogistique sur IRC
Jabber : noe.rubinstein CHEZ fritalk.com

Hors ligne

Haut de page ↑