[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:01.38,0:00:03.65,Default,,0000,0000,0000,,Nu til noget du har brugt Dialogue: 0,0:00:03.65,0:00:05.68,Default,,0000,0000,0000,,hele tiden: Funktioner. Dialogue: 0,0:00:05.68,0:00:09.14,Default,,0000,0000,0000,,Hver gang du har brugt kommandoer\Nsom rect(), fill() eller text(), Dialogue: 0,0:00:09.14,0:00:12.38,Default,,0000,0000,0000,,har du kaldt funktioner,\Nog de funktioner har tegnet Dialogue: 0,0:00:12.38,0:00:15.13,Default,,0000,0000,0000,,hvad du har bedt dem om. Dialogue: 0,0:00:15.13,0:00:16.81,Default,,0000,0000,0000,,Hvad er funktioner? Dialogue: 0,0:00:16.81,0:00:19.48,Default,,0000,0000,0000,,Det er en samling kode \Nsom vi har grupperet Dialogue: 0,0:00:19.48,0:00:21.24,Default,,0000,0000,0000,,og givet et navn\Nfordi vi vil være i stand til, Dialogue: 0,0:00:21.24,0:00:23.17,Default,,0000,0000,0000,,at bruge dens\Nfunktionalitet flere gange. Dialogue: 0,0:00:23.37,0:00:25.98,Default,,0000,0000,0000,,Tænk på rect().\NHvad gør rect()? Dialogue: 0,0:00:25.98,0:00:28.55,Default,,0000,0000,0000,,Det tegner bare fire linjer, ikke? Dialogue: 0,0:00:28.55,0:00:31.14,Default,,0000,0000,0000,,Det kunne vi da bare gøre\Nmed vores line() funktion, ikke? Dialogue: 0,0:00:31.14,0:00:33.85,Default,,0000,0000,0000,,og her har vi\Nhvad der ligner et rektangel. Dialogue: 0,0:00:33.85,0:00:36.75,Default,,0000,0000,0000,,Men vi indser at vi\Ngerne vil kunne Dialogue: 0,0:00:36.75,0:00:39.32,Default,,0000,0000,0000,,tegne et rektangel mange gange, Dialogue: 0,0:00:39.32,0:00:40.77,Default,,0000,0000,0000,,og det ville være irriterende Dialogue: 0,0:00:40.77,0:00:42.78,Default,,0000,0000,0000,,at lave matematikken hver gang\Nfor at finde ud af Dialogue: 0,0:00:42.78,0:00:44.28,Default,,0000,0000,0000,,hvordan man tegner en linje\Nfra et hjørne til det næste Dialogue: 0,0:00:44.28,0:00:45.82,Default,,0000,0000,0000,,og det næste og næste Dialogue: 0,0:00:45.82,0:00:48.54,Default,,0000,0000,0000,,Så i stedet har vi bare lavet\Nen rect() funktion, Dialogue: 0,0:00:48.54,0:00:50.86,Default,,0000,0000,0000,,og den funktion gør\Npræcis den samme ting, Dialogue: 0,0:00:50.86,0:00:55.15,Default,,0000,0000,0000,,som de fire linjers kode gjorde,\Nmen fylder meget mindre. Dialogue: 0,0:00:55.15,0:00:58.40,Default,,0000,0000,0000,,Det er pænt sejt,\Nog rect() er en af de funktioner Dialogue: 0,0:00:58.40,0:01:00.52,Default,,0000,0000,0000,,som er tilgængelig\Nfor ALLE programmer Dialogue: 0,0:01:00.52,0:01:02.73,Default,,0000,0000,0000,,og kan bruges her på Khan Academy. Dialogue: 0,0:01:02.73,0:01:05.34,Default,,0000,0000,0000,,Men - du kan også lave\Ndine egne funktioner Dialogue: 0,0:01:05.34,0:01:08.41,Default,,0000,0000,0000,,til brug i dine programmer. Dialogue: 0,0:01:08.41,0:01:11.43,Default,,0000,0000,0000,,For eksempel - lad os sige\Nat vi laver et program, Dialogue: 0,0:01:11.43,0:01:14.43,Default,,0000,0000,0000,,og gerne vil tegne Winston\Nflere gange - Dialogue: 0,0:01:14.43,0:01:17.02,Default,,0000,0000,0000,,måske fordi vi vil fortælle\NWinstons livshistorie Dialogue: 0,0:01:17.02,0:01:20.19,Default,,0000,0000,0000,,og vise de forskellige aldre\Ngennem hans liv. Dialogue: 0,0:01:20.19,0:01:24.24,Default,,0000,0000,0000,,Her er hvad vores Winston\Ntegne-kode kunne starte med: Dialogue: 0,0:01:24.24,0:01:27.11,Default,,0000,0000,0000,,Vi har variablene\N'faceX' og 'faceY Dialogue: 0,0:01:27.11,0:01:29.03,Default,,0000,0000,0000,,til at gemme centrum\Naf ansigtet Dialogue: 0,0:01:29.03,0:01:31.24,Default,,0000,0000,0000,,og så tegner vi øjnene\Nog munden Dialogue: 0,0:01:31.24,0:01:33.04,Default,,0000,0000,0000,,relativt til de variable. Dialogue: 0,0:01:33.04,0:01:34.73,Default,,0000,0000,0000,,Lige nu ser\Nprogrammet koden, Dialogue: 0,0:01:34.73,0:01:37.32,Default,,0000,0000,0000,,og det er ikke inde i en funktion,\Nså det bliver bare kørt, Dialogue: 0,0:01:37.32,0:01:39.74,Default,,0000,0000,0000,,og det bliver kun kørt en gang. Dialogue: 0,0:01:39.74,0:01:43.72,Default,,0000,0000,0000,,OK, lad os gøre det til en funktion. Dialogue: 0,0:01:43.72,0:01:46.44,Default,,0000,0000,0000,,Dette gøres lidt på samme måde Dialogue: 0,0:01:46.44,0:01:48.49,Default,,0000,0000,0000,,som vi erklærer en variabel,\Nfordi det er faktisk Dialogue: 0,0:01:48.49,0:01:50.24,Default,,0000,0000,0000,,hvad vi gør. Dialogue: 0,0:01:50.24,0:01:52.08,Default,,0000,0000,0000,,Så vi siger 'var drawWinston'. Dialogue: 0,0:01:52.08,0:01:54.55,Default,,0000,0000,0000,,Vi giver det et godt navn,\Nmeget beskrivende, Dialogue: 0,0:01:54.55,0:01:59.04,Default,,0000,0000,0000,,og så '=', men her\Ni stedet for at skrive et tal eller en tekststreng, Dialogue: 0,0:01:59.04,0:02:02.72,Default,,0000,0000,0000,,skal vi skrive 'function'\N(vær sikker på at stave det korrekt) Dialogue: 0,0:02:02.72,0:02:08.36,Default,,0000,0000,0000,,og så tomme parenteser '()'\Nog så en krøllet startparantes '{' Dialogue: 0,0:02:08.36,0:02:11.56,Default,,0000,0000,0000,,og så en krøllet slutparantes '}'\Nog vores semikolon ';' Dialogue: 0,0:02:11.56,0:02:14.49,Default,,0000,0000,0000,,OK så det vi skal gøre\Ner at putte alt Dialogue: 0,0:02:14.49,0:02:19.45,Default,,0000,0000,0000,,som vi vil have i vores funktion\Nmellem den krøllede start og slut parentes Dialogue: 0,0:02:19.45,0:02:22.13,Default,,0000,0000,0000,,Så vi skal tage alt\Nkoden her, Dialogue: 0,0:02:22.13,0:02:26.82,Default,,0000,0000,0000,,og putte det i vores funktion\N(indenter det pænt) og Ta Da! Dialogue: 0,0:02:26.82,0:02:28.97,Default,,0000,0000,0000,,Så det vi har nu\Ner denne variabel Dialogue: 0,0:02:28.97,0:02:32.38,Default,,0000,0000,0000,,der gemmer en funktion -\Nså vi har principielt Dialogue: 0,0:02:32.38,0:02:35.76,Default,,0000,0000,0000,,en mærkat til denne kodeblok,\Nsådan at vi når som helst Dialogue: 0,0:02:35.76,0:02:37.86,Default,,0000,0000,0000,,kan sige til vores program, Dialogue: 0,0:02:37.86,0:02:40.76,Default,,0000,0000,0000,,"Hey, find den kodeblok med\Ndenne mærkat og kør det!" Dialogue: 0,0:02:40.76,0:02:43.55,Default,,0000,0000,0000,,Vi gør at dette stykke kode\Nkan genbruges. Dialogue: 0,0:02:43.55,0:02:46.54,Default,,0000,0000,0000,,Men nu kan vi se,\Nat der ikke er nogen Winston længere! Dialogue: 0,0:02:46.54,0:02:49.36,Default,,0000,0000,0000,,Vi har mistet Winston!\NHvor mon han blev af? Dialogue: 0,0:02:49.36,0:02:53.02,Default,,0000,0000,0000,,OK - så det der skete er\Nda vi puttede det ind i en funktion, Dialogue: 0,0:02:53.02,0:02:55.91,Default,,0000,0000,0000,,fortalte vi vores program\N"hey her er en bunke kode Dialogue: 0,0:02:55.91,0:02:57.84,Default,,0000,0000,0000,,som jeg vil kunne\Nkøre senere, Dialogue: 0,0:02:57.84,0:03:00.81,Default,,0000,0000,0000,,men kun når jeg SIGER at du skal køre det" Dialogue: 0,0:03:00.81,0:03:04.29,Default,,0000,0000,0000,,Så vi skal bede det køre koden,\Nhvilket betyder at vi skal Dialogue: 0,0:03:04.29,0:03:09.11,Default,,0000,0000,0000,,'call' funktionen - lige som vi gjorde\Nmed ellipse() og rect() og line(). Dialogue: 0,0:03:09.40,0:03:13.75,Default,,0000,0000,0000,,Så vi skriver bare\Nfunktions navnet ('drawWinston') Dialogue: 0,0:03:13.75,0:03:16.38,Default,,0000,0000,0000,,efterfulgt af vores start\Nog slut paranteser '()' Dialogue: 0,0:03:16.38,0:03:18.96,Default,,0000,0000,0000,,og, selvfølgelig, vores semikolon,\Nog Ta Da - Dialogue: 0,0:03:18.96,0:03:20.94,Default,,0000,0000,0000,,Vi har en Winston! Dialogue: 0,0:03:20.94,0:03:24.24,Default,,0000,0000,0000,,OK! Jeg syntes det er sejt,\Nmen det kan være at du ikke syntes det er så sejt Dialogue: 0,0:03:24.24,0:03:27.37,Default,,0000,0000,0000,,fordi at alt hvad vi gjort,\Ner at få vores program til at gøre Dialogue: 0,0:03:27.37,0:03:30.24,Default,,0000,0000,0000,,præcis hvad det gjorde før.\NLidt fjollet, hva'? Dialogue: 0,0:03:30.24,0:03:32.92,Default,,0000,0000,0000,,Hele pointen med funktioner\Ner at vi kan genbruge dem Dialogue: 0,0:03:32.92,0:03:34.96,Default,,0000,0000,0000,,Så lad os gøre det nu. Dialogue: 0,0:03:34.96,0:03:41.16,Default,,0000,0000,0000,,Vi kan bare klippe-klistre funktionen\Nkaldet "ta da!" "ta da!" igen og igen Dialogue: 0,0:03:41.16,0:03:46.57,Default,,0000,0000,0000,,Hmmm, men det ser ens ud -\N- jamen - det virkede - Dialogue: 0,0:03:46.57,0:03:48.100,Default,,0000,0000,0000,,det tegner flere Winstons,\Nmen problemet Dialogue: 0,0:03:48.100,0:03:51.47,Default,,0000,0000,0000,,er at de alle er det samme sted. Dialogue: 0,0:03:51.47,0:03:54.43,Default,,0000,0000,0000,,Hvis vi havde røntgen syn,\Nkunne vi røntgen syne tegneområdet Dialogue: 0,0:03:54.43,0:03:57.63,Default,,0000,0000,0000,,og se tre Winstons,\Nmen jeg har ikke røntgen syn, Dialogue: 0,0:03:57.63,0:04:00.33,Default,,0000,0000,0000,,(jeg ved ikke med dig). Dialogue: 0,0:04:00.33,0:04:03.44,Default,,0000,0000,0000,,Men, vi kan lave en lille ændring\Naf vores funktion Dialogue: 0,0:04:03.44,0:04:05.49,Default,,0000,0000,0000,,der VIL gøre det tydeligt. Dialogue: 0,0:04:05.49,0:04:08.82,Default,,0000,0000,0000,,Ser du, faceX og faceY -\Nde er altid 202 og 208? Dialogue: 0,0:04:08.82,0:04:11.59,Default,,0000,0000,0000,,Vi kan ændre det\Nved at bruge random() funktionen - Dialogue: 0,0:04:11.59,0:04:14.85,Default,,0000,0000,0000,,- lad os sige random() fra 50 til 350\Nog det vil generere Dialogue: 0,0:04:14.85,0:04:19.18,Default,,0000,0000,0000,,et tilfældigt tal mellem disse to -\Nog vi kan gøre det samme her - Dialogue: 0,0:04:19.18,0:04:23.02,Default,,0000,0000,0000,,så hver gang funktionen bliver kaldt,\Ngenererer den et nyt tilfældigt tal, Dialogue: 0,0:04:23.02,0:04:26.57,Default,,0000,0000,0000,,og hvis vi trykker genstart,\Nkan vi fortæt få tilfældige Winstons. Dialogue: 0,0:04:26.57,0:04:29.36,Default,,0000,0000,0000,,SÅ sejt!\NWohoo!! Dialogue: 0,0:04:29.36,0:04:32.10,Default,,0000,0000,0000,,Okay - altså jeg syntes det er sejt\Nfordi det kunne have Dialogue: 0,0:04:32.10,0:04:34.92,Default,,0000,0000,0000,,taget en masse kode at skrive dette\Nhvis vi ikke havde det i en funktion, Dialogue: 0,0:04:34.92,0:04:38.32,Default,,0000,0000,0000,,Det ville have været\Ntre gange så meget kode. Dialogue: 0,0:04:38.32,0:04:40.96,Default,,0000,0000,0000,,Men det ville ikke have været\NSÅ brugbart som det kunne have været Dialogue: 0,0:04:40.96,0:04:43.80,Default,,0000,0000,0000,,fordi vi sikkert\Nikke vil have tilfældige Winstoner. Dialogue: 0,0:04:43.80,0:04:45.74,Default,,0000,0000,0000,,Vi vil nok gerne kunne\Ngive Winston Dialogue: 0,0:04:45.74,0:04:47.85,Default,,0000,0000,0000,,en specifik position på skærmen. Dialogue: 0,0:04:47.85,0:04:49.94,Default,,0000,0000,0000,,Så bliv hængende, for' vi vil snakke\Nom at give paramtere Dialogue: 0,0:04:49.94,0:04:52.48,Default,,0000,0000,0000,,til vores funktioner,\Nså du kan Dialogue: 0,0:04:52.00,0:04:56.00,Default,,0000,0000,0000,,gøre præcis det.