1 00:00:00,491 --> 00:00:05,300 Voici le code qui utilise une fonction pour dessiner Winston 4 fois. 2 00:00:05,300 --> 00:00:08,963 J'ai juste ajouté l'age qu'il avait à chaque période de sa vie. 3 00:00:08,963 --> 00:00:11,096 Et vous allez voir pourquoi bientôt. 4 00:00:11,096 --> 00:00:15,500 J'ai une histoire à raconter : Winston adore les donuts ! 5 00:00:15,500 --> 00:00:18,430 Il en mange 3 par jour ! 6 00:00:18,430 --> 00:00:21,470 C'est probablement pour ça que son visage est gros et jaune ! 7 00:00:21,470 --> 00:00:25,046 Pour lui faire comprendre que ce n'est pas bon pour lui, 8 00:00:25,046 --> 00:00:31,702 je veux afficher le nombre de donuts qu'il aura mangé au total à chaque age. 9 00:00:31,702 --> 00:00:37,047 Par exemple, à 2 ans, il en aura mangé ... 10 00:00:37,077 --> 00:00:45,312 3 chaque jour, pendant 365 jours, sur 2 ans. C'est à dire : 3 fois 365 fois 2 ! 11 00:00:45,312 --> 00:00:49,472 On affiche ça sous le titre... 12 00:00:49,472 --> 00:00:53,962 Wouah ! ça fait plus de 2.000 donuts alors qu'il n'a que 2 ans ! 13 00:00:53,962 --> 00:00:56,939 Maintenant, lorsqu'il aura 14 ans, 14 00:00:56,939 --> 00:01:02,956 voyons un peu... il en aura mangé 3 fois 365 fois 14. 15 00:01:02,956 --> 00:01:07,448 Et ça fait... plus de 15.000 donuts ! 16 00:01:07,448 --> 00:01:13,070 OK. Je peux continuer comme ça mais je reconnais une formule. 17 00:01:13,070 --> 00:01:16,305 Je répète mon calcul ici. 18 00:01:16,305 --> 00:01:20,640 Je change juste un truc : le nombre d'années. 19 00:01:20,640 --> 00:01:23,171 Dès que je vois que je répète du code, 20 00:01:23,171 --> 00:01:27,732 comme ça... je dois penser à faire une fonction. 21 00:01:27,732 --> 00:01:31,925 Et oui, c'est ce qu'il faut faire. Faisons-le, alors ! 22 00:01:31,925 --> 00:01:36,026 Je défini ma fonction ici, et je l'appelle... 23 00:01:36,026 --> 00:01:41,117 "calcTotalDonuts" (pour "calcule le nombre total de donuts"). 24 00:01:41,117 --> 00:01:44,341 Elle va utiliser un paramètre (le nombre d'années) 25 00:01:44,341 --> 00:01:48,615 car c'est la seule chose qui change dans ma formule. 26 00:01:48,615 --> 00:01:54,617 A l'intérieur, on va faire le calcul. Le résultat sera dans une variable. 27 00:01:54,617 --> 00:02:01,179 C'est 3 fois 365 fois "numYears". (le nombre d'années, le paramètre) 28 00:02:01,179 --> 00:02:05,665 OK. Maintenant qu'on a cette fonction, je remplace les calculs... 29 00:02:05,665 --> 00:02:12,011 par l'appel de la fonction... ici... en lui passant le nombre d'années, ici 2. 30 00:02:12,011 --> 00:02:17,037 OK. Hum... on ne voit plus aucun calcul maintenant ! 31 00:02:17,037 --> 00:02:22,632 Pourquoi ça ? Notre fonction a fait le calcul, ici. 32 00:02:22,632 --> 00:02:25,847 Mais on n'a pas indiquer ce qu'il fallait en faire. 33 00:02:25,847 --> 00:02:29,777 C'est un peu comme si votre professeur vous pose une question... 34 00:02:29,777 --> 00:02:33,707 vous pensez à la réponse... mais vous oubliez de la dire. 35 00:02:33,707 --> 00:02:37,638 Vous avez fait le travail, mais votre professeur ne pourra pas le savoir. 36 00:02:37,638 --> 00:02:42,019 Si on veut que la fonction communique une valeur au programme qui l'a appelée, 37 00:02:42,019 --> 00:02:45,980 on doit indiquer à la fonction de le faire. 38 00:02:45,980 --> 00:02:48,566 Pour que la fonction retourne une valeur, 39 00:02:48,566 --> 00:02:52,126 on doit écrire "return", puis la valeur à retourner. 40 00:02:52,126 --> 00:02:55,526 Ça peut être la valeur d'une variable, ou une expression. 41 00:02:55,526 --> 00:02:58,101 Donc, ici, on va retourner la valeur de notre variable. OK ? 42 00:02:58,101 --> 00:03:01,736 Celui qui va appeler cette fonction va obtenir cette réponse. 43 00:03:01,736 --> 00:03:04,861 Et maintenant, notre valeur est affichée ! Yahou ! 44 00:03:04,861 --> 00:03:07,310 On peut même optimiser le code de la fonction, 45 00:03:07,310 --> 00:03:10,749 car on n'a pas besoin de la variable intermédiaire, ici. 46 00:03:10,749 --> 00:03:15,418 On peut directement retourner l'expression ! Impec. 47 00:03:15,418 --> 00:03:19,790 Donc maintenant, on peut utiliser notre fonction 48 00:03:19,790 --> 00:03:24,992 aux différents endroits en passant le nombre d'années. 49 00:03:24,992 --> 00:03:36,426 Voyons... calcTotalDonuts(25)... et calcTotalDonuts(65) 50 00:03:36,426 --> 00:03:42,651 OK ! ... si il fait ça pendant 65 ans, il aura mangé 70.000 donuts ! 51 00:03:42,651 --> 00:03:45,366 Ça fait beaucoup, non ? 52 00:03:45,366 --> 00:03:48,351 Je ne pense pas qu'il fera ça ! 53 00:03:48,351 --> 00:03:52,825 Maintenant qu'on en a fait une fonction, c'est simple de la faire évoluer. 54 00:03:52,825 --> 00:03:59,211 Par exemple, si Winston voit ça et se dit : "ça fait trop ! et si j'en mangeais qu'un par jour ?" 55 00:03:59,211 --> 00:04:02,876 OK. On a juste à aller ici... pour changer ce nombre. 56 00:04:02,876 --> 00:04:04,921 et du coup, tous les calculs changent d'un coup. 57 00:04:04,921 --> 00:04:08,231 Bon, ça fait encore 23.000 ! C'est encore beaucoup. 58 00:04:08,231 --> 00:04:12,381 Et si il en mangeais seulement un par semaine ? 59 00:04:12,381 --> 00:04:17,563 On a juste a changer le 365 par 52, car il y a 52 semaines dans une année... 60 00:04:17,563 --> 00:04:22,091 OK. C'est mieux... 3.000 donuts, c'est plus raisonnable. 61 00:04:22,091 --> 00:04:26,911 OK. Vous avez vu qu'avec les fonctions qui retournent une valeur, 62 00:04:26,911 --> 00:04:30,911 on peut gagner en ligne de code... et on se simplifie la vie !