< Return to Video

Function Parameters | Computer Programming | Khan Academy

  • 0:01 - 0:06
    Här har vi vårt ritprogram med Winston, men jag har lagt till lite text också.
  • 0:06 - 0:11
    Det vi nu ska göra är att placera en
    Winston under varje etikett,
  • 0:11 - 0:13
    för att visa honom vid olika tillfällen i livet.
  • 0:13 - 0:16
    Just nu är han lite överallt. Det beror på att vi sätter
  • 0:16 - 0:20
    faceX och faceY till slumptal i funktionen.
  • 0:20 - 0:23
    Det vi egentligen vill kunna göra är att säga:
  • 0:23 - 0:27
    "På exakt den här positionen ska Winston ritas".
  • 0:27 - 0:30
    Vi vill kunna ange positionen
    varje gång vi anropar funktionen,
  • 0:30 - 0:33
    På samma sätt som vi gör med ellipse och rect.
  • 0:34 - 0:40
    Vi vill kunna sätta en Winston här, en här, en annan här och en här,
  • 0:40 - 0:44
    vi vill inte få helt slumpmässiga positioner varje gång vi anropar funktionen.
  • 0:44 - 0:49
    För att kunna göra det måste vi ange
    "parametrar" för funktionen,
  • 0:49 - 0:53
    både i vår funktionsdefinition
    - här uppe i toppen -
  • 0:53 - 0:57
    och i vårt funktionsanrop, här nere, där vi gör själva anropet.
  • 0:57 - 1:02
    Till drawWinston, vill vi skicka faceX och faceY,
  • 1:02 - 1:09
    så att funktionen använder de värden vi skickar istället för att generera slumpmässiga värden. Det är mycket coolare
  • 1:09 - 1:14
    Vi börjar med att fundera på vad vi ska skicka in i funktionsanropen här nere.
  • 1:15 - 1:20
    Vi vill placera en Winstons under varje text, så vi vill förmodligen att X och Y för varje
  • 1:20 - 1:24
    Winston ska vara ganska lika siffrorna
    vi skickade in i dom här text-funktionerna.
  • 1:24 - 1:28
    så Kanske... 10 pixlar lägre för Y.
  • 1:30 - 1:32
    Den första får då 10 och 30,
  • 1:32 - 1:36
    och sen kanske 200, 230 ...
  • 1:36 - 1:39
    nästa...10, 230...
  • 1:39 - 1:41
    200, 230.
  • 1:41 - 1:45
    Det är samma som textkoordinaterna,
    Jag lägger bara till 10 på varje Y, '
  • 1:45 - 1:47
    för att jag vill ha dem lite längre ner.
  • 1:50 - 1:55
    Winston har inte flyttat sig än och Det är för att vi inte sagt till vår funktion här uppe
  • 1:55 - 1:57
    att vi skickar parametrar till den,
  • 1:57 - 1:59
    så den använder fortfarande sina slumpade värden.
  • 1:59 - 2:04
    För att berätta för funktionen att "Hörredu vi kommer skicka värden i stället"
  • 2:04 - 2:08
    så måste vi ge parametrarna namn i de här parenteserna.
  • 2:08 - 2:14
    Vi kallar dom faceX och faceY och
    skiljer dem åt med ett komma,
  • 2:14 - 2:21
    Vi kallar dem det eftersom det är
    vad vi kallar dem inuti funktionen
  • 2:21 - 2:23
    Då slipper vi skriva om resten av vår kod.
  • 2:23 - 2:29
    Men fortfarande har ingenting hänt;
    Winston är fortfarande överallt.
  • 2:29 - 2:31
    Om vi tittar längst upp i vår funktion,
  • 2:31 - 2:35
    så skriver vi över faceX och faceY
    med slumpmässiga värden.
  • 2:35 - 2:39
    Så, det enda vi behöver göra nu är att radera de här två raderna...
  • 2:40 - 2:41
    TADA!
  • 2:42 - 2:45
    Nu skickas faceX och faceY in i funktionen,
  • 2:45 - 2:50
    och den använder värdena
    som vi anropar den med härifrån.
  • 2:50 - 2:55
    Vi ställde inte riktigt in Winstons position rätt, eftersom jag glömde att texten blir placerad
  • 2:55 - 3:01
    utifrån det övre vänstra hörnet och ansiktet placeras utifrån mitten. Där kom den logiska prylen och briljerade....igen..
  • 3:02 - 3:06
    Så vi får justera värdena lite här.
  • 3:06 - 3:09
    Vi får ändra X ganska mycket...
  • 3:10 - 3:11
    och ändra det här, okej ...
  • 3:11 - 3:13
    där har vi vår toddler(bebis) ...
  • 3:13 - 3:14
    sen de andra...
  • 3:14 - 3:18
    Jadå! Det enda vi behöver göra nu, är att ändra vad vi skickar in i funktionen,
  • 3:18 - 3:23
    vi behöver inte ändra någonting inuti själva funktionen,
  • 3:23 - 3:26
    eftersom den alltid kommer använda de värden vi skickar till den.
  • 3:26 - 3:28
    Precis som ellipse och rect.
  • 3:28 - 3:33
    Okej! Nu har vi spritt ut dem, men
    jag tror att Winston är lite för stor.
  • 3:33 - 3:36
    Han överlappar sig själv och får inte riktigt plats.
  • 3:36 - 3:39
    Men, eftersom vi har skrivit rit-koden i en funktion,
  • 3:39 - 3:42
    kan vi kan ändra storleken på alla samtidigt
  • 3:42 - 3:45
    genom att ändra kodraden som ritar ellipsen.
  • 3:45 - 3:48
    Så, om vi ​​gör honom till 190...
  • 3:48 - 3:49
    Ok! Winston bantar...
  • 3:49 - 3:50
    Och 190.
  • 3:51 - 3:56
    Najs! Nu borde han passa bättre och vi
    kan fortsätta justera
  • 3:56 - 3:59
    så att han hamnar på plats.
  • 3:59 - 4:02
    alla 4 versionerna av honom ...Kanon!
  • 4:02 - 4:06
    Vi kollar lite på vad den här koden faktiskt gör.
  • 4:06 - 4:09
    Den definierar en funktion som heter drawWinston
  • 4:09 - 4:15
    och säger att funktionen tar två värden, inparametrar och kallar dem faceX och faceY,
  • 4:15 - 4:20
    Dessa värden kommer in som variabler som vi kan använda var som helst inom vår funktion,
  • 4:20 - 4:23
    precis som vi använda variablerna
    som vi definierade högst upp
  • 4:23 - 4:27
    och sen kan vi anropa den här funktionen
  • 4:27 - 4:29
    när vi vill efter att vi definierat den,
  • 4:29 - 4:31
    och vi kan skicka in olika värden,
  • 4:31 - 4:34
    och den kommer att använda de nya värdena varje gång.
  • 4:34 - 4:35
    Sådärja!
  • 4:35 - 4:37
    Nu har du fått se vad som är coolt med funktioner.
  • 4:37 - 4:38
    Vi kan skriva kod som
  • 4:38 - 4:40
    vi tror att vi kommer vilja återanvända,
  • 4:40 - 4:43
    och samtidigt använda parametrar för att säga:
  • 4:43 - 4:46
    "Hallå, här är några grejer du kan styra själv för att justera resultatet."
  • 4:46 - 4:49
    Det är som ett recept. Du skriver ner de generella instruktionerna,
  • 4:49 - 4:53
    och om du plötsligt inser att du behöver mata fyra Winstons istället för en,
  • 4:53 - 4:56
    så behöver du inte börja om från början, Du justerar bara de ursprungliga instruktionerna
  • 4:56 - 4:58
    och multiplicerar allt med 4.
  • 4:58 - 5:03
    Nu kan du börja se din kod som recept, kanske efterrätt! Va, sa nån efterrätt? Var e den?
Title:
Function Parameters | Computer Programming | Khan Academy
Description:

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

Swedish subtitles

Revisions