< Return to Video

Functions (Video Version)

  • 0:01 - 0:04
    Nu til noget du har brugt
  • 0:04 - 0:06
    hele tiden: Funktioner.
  • 0:06 - 0:09
    Hver gang du har brugt kommandoer
    som rect(), fill() eller text(),
  • 0:09 - 0:12
    har du kaldt funktioner,
    og de funktioner har tegnet
  • 0:12 - 0:15
    hvad du har bedt dem om.
  • 0:15 - 0:17
    Hvad er funktioner?
  • 0:17 - 0:19
    Det er en samling kode
    som vi har grupperet
  • 0:19 - 0:21
    og givet et navn
    fordi vi vil være i stand til,
  • 0:21 - 0:23
    at bruge dens
    funktionalitet flere gange.
  • 0:23 - 0:26
    Tænk på rect().
    Hvad gør rect()?
  • 0:26 - 0:29
    Det tegner bare fire linjer, ikke?
  • 0:29 - 0:31
    Det kunne vi da bare gøre
    med vores line() funktion, ikke?
  • 0:31 - 0:34
    og her har vi
    hvad der ligner et rektangel.
  • 0:34 - 0:37
    Men vi indser at vi
    gerne vil kunne
  • 0:37 - 0:39
    tegne et rektangel mange gange,
  • 0:39 - 0:41
    og det ville være irriterende
  • 0:41 - 0:43
    at lave matematikken hver gang
    for at finde ud af
  • 0:43 - 0:44
    hvordan man tegner en linje
    fra et hjørne til det næste
  • 0:44 - 0:46
    og det næste og næste
  • 0:46 - 0:49
    Så i stedet har vi bare lavet
    en rect() funktion,
  • 0:49 - 0:51
    og den funktion gør
    præcis den samme ting,
  • 0:51 - 0:55
    som de fire linjers kode gjorde,
    men fylder meget mindre.
  • 0:55 - 0:58
    Det er pænt sejt,
    og rect() er en af de funktioner
  • 0:58 - 1:01
    som er tilgængelig
    for ALLE programmer
  • 1:01 - 1:03
    og kan bruges her på Khan Academy.
  • 1:03 - 1:05
    Men - du kan også lave
    dine egne funktioner
  • 1:05 - 1:08
    til brug i dine programmer.
  • 1:08 - 1:11
    For eksempel - lad os sige
    at vi laver et program,
  • 1:11 - 1:14
    og gerne vil tegne Winston
    flere gange -
  • 1:14 - 1:17
    måske fordi vi vil fortælle
    Winstons livshistorie
  • 1:17 - 1:20
    og vise de forskellige aldre
    gennem hans liv.
  • 1:20 - 1:24
    Her er hvad vores Winston
    tegne-kode kunne starte med:
  • 1:24 - 1:27
    Vi har variablene
    'faceX' og 'faceY
  • 1:27 - 1:29
    til at gemme centrum
    af ansigtet
  • 1:29 - 1:31
    og så tegner vi øjnene
    og munden
  • 1:31 - 1:33
    relativt til de variable.
  • 1:33 - 1:35
    Lige nu ser
    programmet koden,
  • 1:35 - 1:37
    og det er ikke inde i en funktion,
    så det bliver bare kørt,
  • 1:37 - 1:40
    og det bliver kun kørt en gang.
  • 1:40 - 1:44
    OK, lad os gøre det til en funktion.
  • 1:44 - 1:46
    Dette gøres lidt på samme måde
  • 1:46 - 1:48
    som vi erklærer en variabel,
    fordi det er faktisk
  • 1:48 - 1:50
    hvad vi gør.
  • 1:50 - 1:52
    Så vi siger 'var drawWinston'.
  • 1:52 - 1:55
    Vi giver det et godt navn,
    meget beskrivende,
  • 1:55 - 1:59
    og så '=', men her
    i stedet for at skrive et tal eller en tekststreng,
  • 1:59 - 2:03
    skal vi skrive 'function'
    (vær sikker på at stave det korrekt)
  • 2:03 - 2:08
    og så tomme parenteser '()'
    og så en krøllet startparantes '{'
  • 2:08 - 2:12
    og så en krøllet slutparantes '}'
    og vores semikolon ';'
  • 2:12 - 2:14
    OK så det vi skal gøre
    er at putte alt
  • 2:14 - 2:19
    som vi vil have i vores funktion
    mellem den krøllede start og slut parentes
  • 2:19 - 2:22
    Så vi skal tage alt
    koden her,
  • 2:22 - 2:27
    og putte det i vores funktion
    (indenter det pænt) og Ta Da!
  • 2:27 - 2:29
    Så det vi har nu
    er denne variabel
  • 2:29 - 2:32
    der gemmer en funktion -
    så vi har principielt
  • 2:32 - 2:36
    en mærkat til denne kodeblok,
    sådan at vi når som helst
  • 2:36 - 2:38
    kan sige til vores program,
  • 2:38 - 2:41
    "Hey, find den kodeblok med
    denne mærkat og kør det!"
  • 2:41 - 2:44
    Vi gør at dette stykke kode
    kan genbruges.
  • 2:44 - 2:47
    Men nu kan vi se,
    at der ikke er nogen Winston længere!
  • 2:47 - 2:49
    Vi har mistet Winston!
    Hvor mon han blev af?
  • 2:49 - 2:53
    OK - så det der skete er
    da vi puttede det ind i en funktion,
  • 2:53 - 2:56
    fortalte vi vores program
    "hey her er en bunke kode
  • 2:56 - 2:58
    som jeg vil kunne
    køre senere,
  • 2:58 - 3:01
    men kun når jeg SIGER at du skal køre det"
  • 3:01 - 3:04
    Så vi skal bede det køre koden,
    hvilket betyder at vi skal
  • 3:04 - 3:09
    'call' funktionen - lige som vi gjorde
    med ellipse() og rect() og line().
  • 3:09 - 3:14
    Så vi skriver bare
    funktions navnet ('drawWinston')
  • 3:14 - 3:16
    efterfulgt af vores start
    og slut paranteser '()'
  • 3:16 - 3:19
    og, selvfølgelig, vores semikolon,
    og Ta Da -
  • 3:19 - 3:21
    Vi har en Winston!
  • 3:21 - 3:24
    OK! Jeg syntes det er sejt,
    men det kan være at du ikke syntes det er så sejt
  • 3:24 - 3:27
    fordi at alt hvad vi gjort,
    er at få vores program til at gøre
  • 3:27 - 3:30
    præcis hvad det gjorde før.
    Lidt fjollet, hva'?
  • 3:30 - 3:33
    Hele pointen med funktioner
    er at vi kan genbruge dem
  • 3:33 - 3:35
    Så lad os gøre det nu.
  • 3:35 - 3:41
    Vi kan bare klippe-klistre funktionen
    kaldet "ta da!" "ta da!" igen og igen
  • 3:41 - 3:47
    Hmmm, men det ser ens ud -
    - jamen - det virkede -
  • 3:47 - 3:49
    det tegner flere Winstons,
    men problemet
  • 3:49 - 3:51
    er at de alle er det samme sted.
  • 3:51 - 3:54
    Hvis vi havde røntgen syn,
    kunne vi røntgen syne tegneområdet
  • 3:54 - 3:58
    og se tre Winstons,
    men jeg har ikke røntgen syn,
  • 3:58 - 4:00
    (jeg ved ikke med dig).
  • 4:00 - 4:03
    Men, vi kan lave en lille ændring
    af vores funktion
  • 4:03 - 4:05
    der VIL gøre det tydeligt.
  • 4:05 - 4:09
    Ser du, faceX og faceY -
    de er altid 202 og 208?
  • 4:09 - 4:12
    Vi kan ændre det
    ved at bruge random() funktionen -
  • 4:12 - 4:15
    - lad os sige random() fra 50 til 350
    og det vil generere
  • 4:15 - 4:19
    et tilfældigt tal mellem disse to -
    og vi kan gøre det samme her -
  • 4:19 - 4:23
    så hver gang funktionen bliver kaldt,
    genererer den et nyt tilfældigt tal,
  • 4:23 - 4:27
    og hvis vi trykker genstart,
    kan vi fortæt få tilfældige Winstons.
  • 4:27 - 4:29
    SÅ sejt!
    Wohoo!!
  • 4:29 - 4:32
    Okay - altså jeg syntes det er sejt
    fordi det kunne have
  • 4:32 - 4:35
    taget en masse kode at skrive dette
    hvis vi ikke havde det i en funktion,
  • 4:35 - 4:38
    Det ville have været
    tre gange så meget kode.
  • 4:38 - 4:41
    Men det ville ikke have været
    SÅ brugbart som det kunne have været
  • 4:41 - 4:44
    fordi vi sikkert
    ikke vil have tilfældige Winstoner.
  • 4:44 - 4:46
    Vi vil nok gerne kunne
    give Winston
  • 4:46 - 4:48
    en specifik position på skærmen.
  • 4:48 - 4:50
    Så bliv hængende, for' vi vil snakke
    om at give paramtere
  • 4:50 - 4:52
    til vores funktioner,
    så du kan
  • 4:52 - 4:56
    gøre præcis det.
Title:
Functions (Video Version)
Description:

more » « less
Video Language:
Turkish
Duration:
04:56
Simon Linneberg edited Danish subtitles for Functions (Video Version)

Danish subtitles

Incomplete

Revisions