0:00:00.491,0:00:05.300 Voici le code qui utilise une fonction[br]pour dessiner Winston 4 fois. 0:00:05.300,0:00:08.963 J'ai juste ajouté l'age qu'il avait [br]à chaque période de sa vie. 0:00:08.963,0:00:11.096 Et vous allez voir pourquoi bientôt. 0:00:11.096,0:00:15.500 J'ai une histoire à raconter : [br]Winston adore les donuts ! 0:00:15.500,0:00:18.430 Il en mange 3 par jour ! 0:00:18.430,0:00:21.470 C'est probablement pour ça [br]que son visage est gros et jaune ! 0:00:21.470,0:00:25.046 Pour lui faire comprendre que [br]ce n'est pas bon pour lui, 0:00:25.046,0:00:31.702 je veux afficher le nombre de donuts [br]qu'il aura mangé au total à chaque age. 0:00:31.702,0:00:37.047 Par exemple, à 2 ans, il en aura mangé ... 0:00:37.077,0:00:45.312 3 chaque jour, pendant 365 jours, sur 2 ans.[br]C'est à dire : 3 fois 365 fois 2 ! 0:00:45.312,0:00:49.472 On affiche ça sous le titre... 0:00:49.472,0:00:53.962 Wouah ! ça fait plus de 2.000 donuts[br]alors qu'il n'a que 2 ans ! 0:00:53.962,0:00:56.939 Maintenant, lorsqu'il aura 14 ans, 0:00:56.939,0:01:02.956 voyons un peu...[br]il en aura mangé 3 fois 365 fois 14. 0:01:02.956,0:01:07.448 Et ça fait... plus de 15.000 donuts ! 0:01:07.448,0:01:13.070 OK. Je peux continuer comme ça[br]mais je reconnais une formule. 0:01:13.070,0:01:16.305 Je répète mon calcul ici. 0:01:16.305,0:01:20.640 Je change juste un truc : [br]le nombre d'années. 0:01:20.640,0:01:23.171 Dès que je vois que je répète du code, 0:01:23.171,0:01:27.732 comme ça...[br]je dois penser à faire une fonction. 0:01:27.732,0:01:31.925 Et oui, c'est ce qu'il faut faire.[br]Faisons-le, alors ! 0:01:31.925,0:01:36.026 Je défini ma fonction ici, [br]et je l'appelle... 0:01:36.026,0:01:41.117 "calcTotalDonuts" (pour "calcule le nombre[br]total de donuts"). 0:01:41.117,0:01:44.341 Elle va utiliser un paramètre[br](le nombre d'années) 0:01:44.341,0:01:48.615 car c'est la seule chose [br]qui change dans ma formule. 0:01:48.615,0:01:54.617 A l'intérieur, on va faire le calcul.[br]Le résultat sera dans une variable. 0:01:54.617,0:02:01.179 C'est 3 fois 365 fois "numYears".[br](le nombre d'années, le paramètre) 0:02:01.179,0:02:05.665 OK. Maintenant qu'on a cette fonction,[br]je remplace les calculs... 0:02:05.665,0:02:12.011 par l'appel de la fonction... ici... [br]en lui passant le nombre d'années, ici 2. 0:02:12.011,0:02:17.037 OK. Hum... [br]on ne voit plus aucun calcul maintenant ! 0:02:17.037,0:02:22.632 Pourquoi ça ? [br]Notre fonction a fait le calcul, ici.[br] 0:02:22.632,0:02:25.847 Mais on n'a pas indiquer [br]ce qu'il fallait en faire. 0:02:25.847,0:02:29.777 C'est un peu comme si [br]votre professeur vous pose une question... 0:02:29.777,0:02:33.707 vous pensez à la réponse... [br]mais vous oubliez de la dire. 0:02:33.707,0:02:37.638 Vous avez fait le travail, mais votre [br]professeur ne pourra pas le savoir. 0:02:37.638,0:02:42.019 Si on veut que la fonction communique[br]une valeur au programme qui l'a appelée, 0:02:42.019,0:02:45.980 on doit indiquer à la fonction de le faire. 0:02:45.980,0:02:48.566 Pour que la fonction retourne une valeur, 0:02:48.566,0:02:52.126 on doit écrire "return",[br]puis la valeur à retourner. 0:02:52.126,0:02:55.526 Ça peut être la valeur [br]d'une variable, ou une expression. 0:02:55.526,0:02:58.101 Donc, ici, on va retourner la valeur[br]de notre variable. OK ? 0:02:58.101,0:03:01.736 Celui qui va appeler cette fonction [br]va obtenir cette réponse. 0:03:01.736,0:03:04.861 Et maintenant, notre valeur est affichée ![br]Yahou ! 0:03:04.861,0:03:07.310 On peut même optimiser [br]le code de la fonction, 0:03:07.310,0:03:10.749 car on n'a pas besoin de la variable intermédiaire, ici. 0:03:10.749,0:03:15.418 On peut directement retourner l'expression ! Impec. 0:03:15.418,0:03:19.790 Donc maintenant, on peut utiliser notre fonction 0:03:19.790,0:03:24.992 aux différents endroits en passant le nombre d'années. 0:03:24.992,0:03:36.426 Voyons... calcTotalDonuts(25)... [br]et calcTotalDonuts(65) 0:03:36.426,0:03:42.651 OK ! ... si il fait ça pendant 65 ans,[br]il aura mangé 70.000 donuts ! 0:03:42.651,0:03:45.366 Ça fait beaucoup, non ? 0:03:45.366,0:03:48.351 Je ne pense pas qu'il fera ça ! 0:03:48.351,0:03:52.825 Maintenant qu'on en a fait une fonction, [br]c'est simple de la faire évoluer. 0:03:52.825,0:03:59.211 Par exemple, si Winston voit ça et se dit :[br]"ça fait trop ! et si j'en mangeais qu'un par jour ?" 0:03:59.211,0:04:02.876 OK. On a juste à aller ici... [br]pour changer ce nombre. 0:04:02.876,0:04:04.921 et du coup, tous les calculs changent d'un coup. 0:04:04.921,0:04:08.231 Bon, ça fait encore 23.000 ! [br]C'est encore beaucoup. 0:04:08.231,0:04:12.381 Et si il en mangeais seulement [br]un par semaine ? 0:04:12.381,0:04:17.563 On a juste a changer le 365 par 52,[br]car il y a 52 semaines dans une année... 0:04:17.563,0:04:22.091 OK. C'est mieux... [br]3.000 donuts, c'est plus raisonnable. 0:04:22.091,0:04:26.911 OK. Vous avez vu qu'avec les fonctions[br]qui retournent une valeur, [br] 0:04:26.911,0:04:30.911 on peut gagner en ligne de code... [br]et on se simplifie la vie !