[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:01.06,0:00:05.71,Default,,0000,0000,0000,,Pomówmy o czymś, czego\Ncały czas używacie: o funkcjach. Dialogue: 0,0:00:05.81,0:00:09.44,Default,,0000,0000,0000,,Używając poleceń\N„rect”, „fill” czy „text”, Dialogue: 0,0:00:09.54,0:00:14.67,Default,,0000,0000,0000,,przywołujecie funkcje,\Na one rysują to, co każecie. Dialogue: 0,0:00:14.77,0:00:16.14,Default,,0000,0000,0000,,Czym jest funkcja? Dialogue: 0,0:00:16.24,0:00:19.94,Default,,0000,0000,0000,,To seria poleceń,\Nktóre zebraliśmy i nazwaliśmy, Dialogue: 0,0:00:20.04,0:00:23.68,Default,,0000,0000,0000,,żeby później wiele razy\Nkorzystać z tego zestawu. Dialogue: 0,0:00:23.78,0:00:26.13,Default,,0000,0000,0000,,Weźmy polecenie „rect”. Jak działa? Dialogue: 0,0:00:26.23,0:00:28.42,Default,,0000,0000,0000,,Rysuje cztery linie. Dialogue: 0,0:00:28.52,0:00:31.41,Default,,0000,0000,0000,,Moglibyśmy to osiągnąć,\Nużywając funkcji „line”. Dialogue: 0,0:00:31.51,0:00:33.92,Default,,0000,0000,0000,,I mamy prostokąt. Dialogue: 0,0:00:34.02,0:00:39.01,Default,,0000,0000,0000,,Ale chcemy rysować prostokąt\Nwiele razy, Dialogue: 0,0:00:39.11,0:00:42.33,Default,,0000,0000,0000,,a kiepsko byłoby\Nza każdym razem obliczać, Dialogue: 0,0:00:42.43,0:00:45.21,Default,,0000,0000,0000,,jak narysować linię od rogu\Ndo rogu. Dialogue: 0,0:00:45.31,0:00:47.99,Default,,0000,0000,0000,,Ułożyliśmy więc funkcję „rect”, Dialogue: 0,0:00:48.09,0:00:50.71,Default,,0000,0000,0000,,która robi to samo, Dialogue: 0,0:00:50.81,0:00:54.54,Default,,0000,0000,0000,,co tamte cztery wiersze programu,\Nale trzeba mniej zachodu. Dialogue: 0,0:00:54.64,0:00:56.74,Default,,0000,0000,0000,,Super! Dialogue: 0,0:00:56.84,0:00:59.64,Default,,0000,0000,0000,,To jedna z funkcji, która działa Dialogue: 0,0:00:59.74,0:01:02.25,Default,,0000,0000,0000,,we wszystkich programach\Nw Khan Academy. Dialogue: 0,0:01:02.35,0:01:05.24,Default,,0000,0000,0000,,Możecie też tworzyć własne funkcje, Dialogue: 0,0:01:05.34,0:01:07.34,Default,,0000,0000,0000,,do swoich programów. Dialogue: 0,0:01:07.44,0:01:10.75,Default,,0000,0000,0000,,Powiedzmy, że piszemy program Dialogue: 0,0:01:10.85,0:01:13.87,Default,,0000,0000,0000,,i chcemy wiele razy\Nrysować Winstona. Dialogue: 0,0:01:13.97,0:01:16.74,Default,,0000,0000,0000,,Żeby opowiedzieć historię jego życia Dialogue: 0,0:01:16.84,0:01:19.94,Default,,0000,0000,0000,,i pokazać go w każdym etapie. Dialogue: 0,0:01:20.04,0:01:23.35,Default,,0000,0000,0000,,Program możemy zacząć tak: Dialogue: 0,0:01:23.45,0:01:28.51,Default,,0000,0000,0000,,Zmienne „faceX” i „faceY”\Nokreślą środek twarzy. Dialogue: 0,0:01:28.61,0:01:32.62,Default,,0000,0000,0000,,Względem tego środka\Nnarysujemy oczy i usta. Dialogue: 0,0:01:32.72,0:01:34.57,Default,,0000,0000,0000,,Na razie program widzi kod Dialogue: 0,0:01:34.67,0:01:37.54,Default,,0000,0000,0000,,niebędący w żadnej funkcji,\Nwięc go uruchamia. Dialogue: 0,0:01:37.64,0:01:39.77,Default,,0000,0000,0000,,Tylko raz. Dialogue: 0,0:01:39.87,0:01:43.11,Default,,0000,0000,0000,,Zróbmy z tego funkcję. Dialogue: 0,0:01:43.21,0:01:49.01,Default,,0000,0000,0000,,Postąpimy podobnie jak przy\Nokreślaniu zmiennej. Bo to robimy! Dialogue: 0,0:01:49.11,0:01:52.14,Default,,0000,0000,0000,,Piszemy „var drawWinston”. Dialogue: 0,0:01:52.24,0:01:54.23,Default,,0000,0000,0000,,Nadajemy nazwę, opisową, Dialogue: 0,0:01:54.33,0:01:59.11,Default,,0000,0000,0000,,wstawiamy „=”, ale zamiast\Npisać liczbę lub ciąg znaków, Dialogue: 0,0:01:59.21,0:02:02.71,Default,,0000,0000,0000,,wpiszemy „function”\N(nie pomylcie się!). Dialogue: 0,0:02:02.81,0:02:05.84,Default,,0000,0000,0000,,Dalej - puste nawiasy, Dialogue: 0,0:02:05.94,0:02:08.27,Default,,0000,0000,0000,,otwieramy klamrę, Dialogue: 0,0:02:08.36,0:02:10.70,Default,,0000,0000,0000,,zamykamy ją i wstawiamy średnik. Dialogue: 0,0:02:10.80,0:02:14.79,Default,,0000,0000,0000,,Teraz umieśćmy wszystko, Dialogue: 0,0:02:14.89,0:02:18.73,Default,,0000,0000,0000,,co chcemy mieć w funkcji,\Nmiędzy klamrami. Dialogue: 0,0:02:18.83,0:02:21.72,Default,,0000,0000,0000,,Weźmiemy cały ten kod, Dialogue: 0,0:02:21.82,0:02:26.39,Default,,0000,0000,0000,,umieścimy go w funkcji i już! Dialogue: 0,0:02:26.49,0:02:30.29,Default,,0000,0000,0000,,Mamy teraz zmienną,\Nktóra zawiera funkcję. Dialogue: 0,0:02:30.39,0:02:33.91,Default,,0000,0000,0000,,Nadaliśmy nazwę\Ntemu fragmentowi kodu, Dialogue: 0,0:02:34.01,0:02:37.40,Default,,0000,0000,0000,,żeby w każdej chwili\Nmóc powiedzieć programowi: Dialogue: 0,0:02:37.50,0:02:40.19,Default,,0000,0000,0000,,„znajdź fragment\No tej nazwie i uruchom!”. Dialogue: 0,0:02:40.29,0:02:42.98,Default,,0000,0000,0000,,Tę część będzie można\Nwiele razy wykorzystywać. Dialogue: 0,0:02:43.55,0:02:46.59,Default,,0000,0000,0000,,Tylko że nie ma już Winstona! Dialogue: 0,0:02:46.69,0:02:48.89,Default,,0000,0000,0000,,Straciliśmy go! Gdzie jest? Dialogue: 0,0:02:48.99,0:02:52.93,Default,,0000,0000,0000,,Umieszczając to w funkcji, Dialogue: 0,0:02:53.03,0:02:55.90,Default,,0000,0000,0000,,powiedzieliśmy programowi:\N„Tu jest kod, Dialogue: 0,0:02:56.00,0:03:00.30,Default,,0000,0000,0000,,który masz uruchamiać później,\Nale tylko kiedy ci każę”. Dialogue: 0,0:03:00.40,0:03:03.38,Default,,0000,0000,0000,,Musimy nakazać to programowi, Dialogue: 0,0:03:03.48,0:03:06.30,Default,,0000,0000,0000,,czyli przywołać funkcję. Dialogue: 0,0:03:06.40,0:03:09.19,Default,,0000,0000,0000,,Jak w przypadku elipsy,\Nprostokąta i prostej. Dialogue: 0,0:03:09.29,0:03:13.43,Default,,0000,0000,0000,,Piszemy nazwę funkcji\N„drawWinston”, Dialogue: 0,0:03:13.53,0:03:15.81,Default,,0000,0000,0000,,dalej nawiasy, Dialogue: 0,0:03:15.91,0:03:19.07,Default,,0000,0000,0000,,oczywiście średnik i już! Dialogue: 0,0:03:19.17,0:03:20.58,Default,,0000,0000,0000,,Mamy Winstona! Dialogue: 0,0:03:20.68,0:03:24.11,Default,,0000,0000,0000,,Moim zdaniem to super,\Nale waszym - może nie, Dialogue: 0,0:03:24.21,0:03:26.83,Default,,0000,0000,0000,,bo tylko kazaliśmy programowi Dialogue: 0,0:03:26.93,0:03:29.96,Default,,0000,0000,0000,,zrobić to, co już zrobił. Głupio! Dialogue: 0,0:03:30.06,0:03:32.75,Default,,0000,0000,0000,,W funkcjach chodzi\Nwłaśnie o powtarzanie. Dialogue: 0,0:03:32.85,0:03:34.47,Default,,0000,0000,0000,,Zróbmy to. Dialogue: 0,0:03:34.57,0:03:40.78,Default,,0000,0000,0000,,Możemy kopiować i wklejać\Ntę funkcję raz po raz. Dialogue: 0,0:03:40.88,0:03:43.80,Default,,0000,0000,0000,,Ale wygląda to tak samo. Dialogue: 0,0:03:43.90,0:03:45.75,Default,,0000,0000,0000,,Cóż... Udało się, Dialogue: 0,0:03:45.85,0:03:48.12,Default,,0000,0000,0000,,program rysuje wielu Winstonów, Dialogue: 0,0:03:48.22,0:03:50.100,Default,,0000,0000,0000,,ale w jednym miejscu. Dialogue: 0,0:03:51.10,0:03:54.06,Default,,0000,0000,0000,,Gdybyśmy mieli rentgen w oczach, Dialogue: 0,0:03:54.16,0:03:58.14,Default,,0000,0000,0000,,zobaczylibyśmy trzech Winstonów,\Nale ja rentgena w oczach nie mam. Dialogue: 0,0:03:58.24,0:03:59.80,Default,,0000,0000,0000,,(Nie wiem, jak wy!). Dialogue: 0,0:03:59.90,0:04:03.17,Default,,0000,0000,0000,,Drobna modyfikacja w funkcji Dialogue: 0,0:04:03.27,0:04:04.44,Default,,0000,0000,0000,,zaraz to zmieni. Dialogue: 0,0:04:04.54,0:04:08.66,Default,,0000,0000,0000,,Współrzędne „faceX” i „faceY”\Nto zawsze 202 i 208. Dialogue: 0,0:04:08.76,0:04:11.57,Default,,0000,0000,0000,,Zmienimy to, używając\Nfunkcji „random()”. Dialogue: 0,0:04:11.67,0:04:14.63,Default,,0000,0000,0000,,Określmy przedział od 50 do 350. Dialogue: 0,0:04:14.73,0:04:16.84,Default,,0000,0000,0000,,Funkcja wygeneruje liczbę losową Dialogue: 0,0:04:16.94,0:04:18.86,Default,,0000,0000,0000,,i możemy zrobić to samo tutaj... Dialogue: 0,0:04:18.96,0:04:23.04,Default,,0000,0000,0000,,Przy każdym przywołaniu funkcja\Ngeneruje nową liczbę losową. Dialogue: 0,0:04:23.02,0:04:26.11,Default,,0000,0000,0000,,Wciskamy „restart”\Ni mamy losowych Winstonów. Dialogue: 0,0:04:26.21,0:04:27.85,Default,,0000,0000,0000,,Super! Dialogue: 0,0:04:29.82,0:04:31.27,Default,,0000,0000,0000,,Moim zdaniem to świetne. Dialogue: 0,0:04:31.37,0:04:34.51,Default,,0000,0000,0000,,Gdyby nie funkcja, musielibyśmy\Ndużo programować. Dialogue: 0,0:04:34.61,0:04:36.74,Default,,0000,0000,0000,,Trzy razy więcej! Dialogue: 0,0:04:37.97,0:04:40.75,Default,,0000,0000,0000,,Ale nie jest jeszcze idealnie, Dialogue: 0,0:04:40.85,0:04:43.19,Default,,0000,0000,0000,,bo nie chcemy\Nlosowych Winstonów. Dialogue: 0,0:04:43.29,0:04:46.82,Default,,0000,0000,0000,,Chcemy ustawiać Winstona\Nw konkretnych miejscach. Dialogue: 0,0:04:46.92,0:04:50.02,Default,,0000,0000,0000,,W następnym filmiku\Npomówimy o parametrach funkcji. Dialogue: 0,0:04:50.12,0:04:54.13,Default,,0000,0000,0000,,I będziecie mogli\Nwłaśnie to robić!