1 00:00:00,981 --> 00:00:03,708 Wracamy do programu, który wykorzystuje funkcję 2 00:00:03,808 --> 00:00:05,570 i rysuje Winstona cztery razy. 3 00:00:05,672 --> 00:00:09,331 Zmieniłam to tak, żeby pokazać jego wiek w każdym etapie życia. 4 00:00:09,431 --> 00:00:11,288 Niedługo zobaczycie, dlaczego. 5 00:00:11,388 --> 00:00:13,583 Najpierw powiem wam coś o Winstonie. 6 00:00:13,683 --> 00:00:16,084 Jest uzależniony od pączków. 7 00:00:16,184 --> 00:00:18,436 Je trzy pączki dziennie. 8 00:00:18,536 --> 00:00:21,640 Pewnie dlatego ma tak dużą i żółtą twarz. 9 00:00:21,740 --> 00:00:25,123 Żeby mu powiedzieć, jak szkodliwe są pączki, 10 00:00:25,223 --> 00:00:26,713 zmienię program 11 00:00:26,813 --> 00:00:29,582 i pokażę, ile zjadł pączków 12 00:00:29,682 --> 00:00:31,466 w różnych etapach życia. 13 00:00:31,566 --> 00:00:35,503 Np. gdy miał 2 lata... 14 00:00:35,603 --> 00:00:37,291 to zjadł już... 15 00:00:37,391 --> 00:00:41,470 3 razy 365 razy 2. 16 00:00:41,570 --> 00:00:45,745 3 pączki dziennie razy 365 dni razy 2 lata. 17 00:00:45,873 --> 00:00:49,342 Wyświetlimy to pod nagłówkiem. 18 00:00:49,442 --> 00:00:50,786 Dwa tysiące pączków! 19 00:00:50,886 --> 00:00:53,452 Dużo jak na dwulatka! 20 00:00:54,334 --> 00:00:56,749 Tu ma 14 lat. 21 00:00:56,849 --> 00:01:02,554 Zjadł 3 razy 365 razy 14. 22 00:01:04,226 --> 00:01:07,581 To 15 tysięcy pączków. 23 00:01:08,486 --> 00:01:13,073 Mogłabym liczyć dalej, ale dostrzegam schemat. 24 00:01:13,173 --> 00:01:16,416 Powtarzam obliczenia 25 00:01:16,516 --> 00:01:20,550 i zmieniam tylko jedno: liczbę lat. 26 00:01:20,650 --> 00:01:22,988 Gdy widzę taki powtarzalny kod, 27 00:01:23,088 --> 00:01:27,724 myślę: „Czy mogłabym zrobić z tego funkcję?”. 28 00:01:27,824 --> 00:01:31,625 Tak, to możliwe. Zróbmy więc to teraz. 29 00:01:32,786 --> 00:01:35,457 Zdefiniuję funkcję. Nazwę ją 30 00:01:35,557 --> 00:01:40,426 „calcTotalDonuts = function”. 31 00:01:40,526 --> 00:01:44,184 Będzie przyjmować jeden parametr, liczbę lat. 32 00:01:44,284 --> 00:01:48,204 Bo tylko to zmieniamy w tych obliczeniach. 33 00:01:49,203 --> 00:01:52,918 Obliczymy to wewnątrz 34 00:01:53,018 --> 00:01:55,735 i zachowamy w zmiennej. 35 00:01:55,835 --> 00:02:00,581 Mamy: 3 razy 365 razy „numYears” (liczba lat). 36 00:02:00,681 --> 00:02:03,228 Gdy już mamy tę funkcję, 37 00:02:03,328 --> 00:02:06,246 zastąpię to wyrażenie 38 00:02:06,346 --> 00:02:09,799 przywołaniem funkcji „calcTotalDonuts”, 39 00:02:09,899 --> 00:02:11,471 i wprowadzę „2”. 40 00:02:12,864 --> 00:02:16,974 No i nie widzimy żadnej sumy. 41 00:02:17,074 --> 00:02:19,081 Co się stało? 42 00:02:19,181 --> 00:02:23,011 Nasza funkcja obliczyła sumę, tutaj, 43 00:02:23,111 --> 00:02:26,216 ale nikomu o niej nie powiedziała. 44 00:02:26,316 --> 00:02:30,465 Jakby nauczyciel wywołał was do odpowiedzi, 45 00:02:30,565 --> 00:02:33,600 a wy udzielacie jej w głowie, bo głośno się wstydzicie. 46 00:02:33,700 --> 00:02:37,431 Uczyliście się, a nauczyciel się o tym nie dowie. 47 00:02:37,531 --> 00:02:41,216 Jeśli chcemy, by funkcja pokazywała wartość, 48 00:02:41,316 --> 00:02:45,670 musi ona tę wartość zwrócić. 49 00:02:45,770 --> 00:02:49,714 Żeby funkcja zwróciła wartość, musimy wpisać „return”, 50 00:02:49,814 --> 00:02:52,315 i określić, co. 51 00:02:52,415 --> 00:02:55,240 Zmienną, wartość, wyrażenie... 52 00:02:55,340 --> 00:02:57,679 Tu napiszemy: „return totalDonuts”. 53 00:02:57,779 --> 00:03:02,067 Kto przywołał tę funkcję, uzyska odpowiedź. 54 00:03:02,167 --> 00:03:04,854 I wartość już widać! 55 00:03:04,954 --> 00:03:06,943 Możemy skrócić funkcję, 56 00:03:07,043 --> 00:03:10,426 nie trzymać jej w zmiennej. Bierzemy to wyrażenie, 57 00:03:10,526 --> 00:03:15,303 umieszczamy je w „zwróć” i mamy jedną linijkę. Ładnie! 58 00:03:15,403 --> 00:03:20,344 Możemy teraz obliczyć, ile pączków zjadł w każdym etapie życia, 59 00:03:20,444 --> 00:03:23,615 przywołując tę funkcję i wprowadzając liczbę lat. 60 00:03:25,752 --> 00:03:28,770 Mamy więc „calcTotalDonuts(25)”, 61 00:03:28,870 --> 00:03:34,552 umieśćmy to... „calcTotalDonuts(65)”... 62 00:03:36,433 --> 00:03:40,473 Jeśli dożyje 65 lat, 63 00:03:40,573 --> 00:03:45,071 to łącznie zje 70 tysięcy pączków. Dużo! 64 00:03:45,171 --> 00:03:47,648 Chyba nie da rady. 65 00:03:47,748 --> 00:03:50,335 Gdy już zrobiliśmy z tego funkcję, 66 00:03:50,435 --> 00:03:53,198 będziemy mogli łatwo zmieniać jej części. 67 00:03:53,298 --> 00:03:55,357 Winston to widzi i mówi: 68 00:03:55,457 --> 00:03:59,119 „Dużo! A gdybym jadł jednego pączka dziennie?”. 69 00:03:59,219 --> 00:04:02,741 Wejdźmy tu, zmieńmy jedną liczbę 70 00:04:02,841 --> 00:04:04,482 i zmieni się wszystko. 71 00:04:04,582 --> 00:04:07,338 Jest 23 tysiące. Nadal dużo. 72 00:04:07,438 --> 00:04:10,447 Winston mówi „Dobrze, może więc jeden tygodniowo?”. 73 00:04:10,547 --> 00:04:12,540 To już rozsądne. 74 00:04:12,640 --> 00:04:15,326 Zmieniamy 365 na 50, 75 00:04:15,426 --> 00:04:17,976 bo rok ma ok. 50 tygodni. 76 00:04:18,077 --> 00:04:20,481 Tak już lepiej, prawda? 77 00:04:20,581 --> 00:04:22,849 3 tysiące pączków. To rozsądne. 78 00:04:22,949 --> 00:04:27,099 Znając funkcje i zwracane wartości 79 00:04:27,199 --> 00:04:30,979 uratujemy program i życie innych osób!