< Return to Video

Function Parameters | Computer Programming | Khan Academy

  • 0:01 - 0:06
    Nous voici revenus au programme qui dessine Winston,
    auquel j'ai ajouté du texte.
  • 0:06 - 0:11
    Ce que je veux, c'est placer mes
    Winston en dessous de chacune de ces étiquettes
  • 0:11 - 0:13
    pour que cela corresponde à
    chaque période de sa vie.
  • 0:13 - 0:15
    Mais pour l'instant, il est placé
    un peu partout,
  • 0:15 - 0:20
    car la fonction place Winston à une
    position aléatoire pour faceX et faceY.
  • 0:20 - 0:27
    À la place, on veut indiquer
    à la fonction à quelle position dessiner Winston.
  • 0:27 - 0:31
    Je veux pouvoir indiquer la position à chaque fois qu'on appellera la fonction.
  • 0:31 - 0:34
    comme pour les rectangles ou les ellipses.
  • 0:34 - 0:40
    OK. En fait, je veux pouvoir dessiner un Winston ici...
    et ici... aussi ici... et là !
  • 0:40 - 0:44
    Je ne veux plus de position aléatoire à chaque appel.
  • 0:44 - 0:48
    Pour faire ça, on va spécifier des paramètres
    à notre fonction...
  • 0:48 - 0:53
    à la fois, au moment de la définition
    (tout en haut... ici)
  • 0:53 - 0:58
    et aussi au moment de l'appeler...
    en bas...ici.
  • 0:58 - 1:03
    Dans "drawWinston()", on va lui passer
    faceX et faceY,
  • 1:03 - 1:09
    et il pourra utiliser ces
    valeurs au lieu de les générer aléatoirement.
  • 1:09 - 1:15
    Que va-t-on lui passer
    comme valeurs au moment de l'appel.
  • 1:15 - 1:19
    On veut le positionner sous chaque bloc de texte.
  • 1:19 - 1:25
    Donc on va passer des valeurs proches
    des x et y utilisés pour le texte.
  • 1:25 - 1:29
    Probablement 10 pixels
    plus bas pour le y.
  • 1:29 - 1:38
    Le premier sera à peu près à 10 et 30,
    puis... 200 et 30...
  • 1:38 - 1:42
    puis, 10 et 230... et enfin, 200 et 230.
  • 1:42 - 1:49
    Les mêmes que les textes
    et j'ai ajouté 10 au y pour être un peu en dessous.
  • 1:49 - 1:53
    OK. Winston, lui, n'a pas bougé !
  • 1:53 - 1:57
    C'est parce qu'on n'a pas indiqué
    à la fonction d'utiliser les paramètres.
  • 1:57 - 1:59
    Elle utilise donc toujours les valeurs aléatoires.
  • 1:59 - 2:04
    Donc pour lui dire d'utiliser les paramètres à la place,
  • 2:04 - 2:09
    on doit ajouter les noms des paramètres
    entre les parenthèses... ici.
  • 2:09 - 2:15
    On va les appeler faceX et faceY... et les séparer
    par une virgule.
  • 2:15 - 2:21
    On les appelle comme ça, car on utilise déjà ces
    noms dans la fonction.
  • 2:21 - 2:25
    Cela nous évite de modifier
    le code existant.
  • 2:25 - 2:29
    Mais, même en faisant ça,
    Winston est toujours n'importe où !
  • 2:29 - 2:32
    Si vous regardez au début du code de la fonction,
  • 2:32 - 2:36
    vous voyez qu'on écrase les valeurs de
    faceX et faceY avec des valeurs aléatoires !
  • 2:36 - 2:40
    Il faut donc qu'on enlève ces deux lignes, là.
  • 2:40 - 2:46
    Et voilà ! maintenant la fonction utilise
    les valeurs de faceX et faceY,
  • 2:46 - 2:51
    qu'on lui a passées au moment de l'appel.
  • 2:51 - 2:54
    Je n'ai pas bien positionné
    mes Winston pour l'instant,
  • 2:54 - 2:58
    car j'ai oublié que les x et y
    des textes représentent le coin supérieur gauche
  • 2:58 - 3:04
    alors que pour le visage,
    ils représentent le centre.
  • 3:04 - 3:07
    Donc je vais changer ça un peu...
  • 3:07 - 3:13
    Je vais changer pas mal le x... et le y pareil...
    avec l'outil c'est plus facile...
  • 3:13 - 3:19
    Donc, j'ai juste à changer
    les valeurs des paramètres de ma fonction.
  • 3:19 - 3:23
    Je n'ai plus à modifier la fonction elle-même.
  • 3:23 - 3:29
    Car elle va utiliser les valeurs que je lui passe.
    Comme avec ellipse() et rect().
  • 3:29 - 3:34
    OK. Je les ai positionnés,
    mais en fait, ils sont trop larges.
  • 3:34 - 3:36
    Ils se superposent. Ils prennent trop de place.
  • 3:36 - 3:42
    Comme j'ai fait une fonction pour les dessiner,
    je peux modifier leur taille à tous,
  • 3:42 - 3:45
    juste en changeant une ligne de code !
  • 3:45 - 3:51
    Essayons de prendre la valeur 190, Yeah !
    Ils vont maigrir d'un coup... 190.
  • 3:51 - 4:02
    C'est pas mal ! et si je modifie encore
    un peu leur position, ça ira mieux.
  • 4:02 - 4:06
    Cool ! Bon.
    Revoyons un peu ce que ce code fait.
  • 4:06 - 4:10
    On a définit une fonction appelée
    "drawWinston()",
  • 4:10 - 4:15
    Cette fonction accepte 2 valeurs,
    qu'on a nommées faceX et faceY.
  • 4:15 - 4:22
    Ces variables peuvent être utilisées
    partout dans le reste de la fonction.
  • 4:22 - 4:26
    Exactement comme si on les
    avait déclarées en haut normalement,
  • 4:26 - 4:30
    Et on peut appeler cette fonction
    où on veut (après l'avoir déclarée)
  • 4:30 - 4:35
    et lui passer des valeurs
    différentes en paramètres à chaque fois.
  • 4:35 - 4:38
    On vient de voir un truc super utile
    avec les fonctions.
  • 4:38 - 4:40
    Quand on a du code qu'on pense
    pouvoir réutiliser,
  • 4:40 - 4:43
    il suffit de le mettre dans une fonction.
  • 4:43 - 4:45
    Ensuite, on peut lui passer des paramètres
  • 4:45 - 4:47
    pour la personnaliser ou changer
    son comportement.
  • 4:47 - 4:49
    C'est comme une recette.
  • 4:49 - 4:53
    Vous écrivez la recette pour un gâteau.
    Mais si vous avez besoin d'en faire 4,
  • 4:53 - 4:57
    Vous n'avez pas à tout réinventer...
    il suffit de tout multiplier par 4.
  • 4:57 - 5:02
    Maintenant vous pouvez commencez à réfléchir aux recettes dans votre code! miam !
Title:
Function Parameters | Computer Programming | Khan Academy
Description:

more » « less
Video Language:
English
Team:
Khan Academy
Duration:
05:05

French subtitles

Revisions