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