[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:01.14,0:00:04.57,Default,,0000,0000,0000,,V tomto průvodci se podíváme na něco,\Nco už dávno používate. Dialogue: 0,0:00:04.60,0:00:05.76,Default,,0000,0000,0000,,Jsou to funkce. Dialogue: 0,0:00:05.95,0:00:09.35,Default,,0000,0000,0000,,Kdykoli, když používáte\Npříkazy jako "rect", "fill" nebo "text", Dialogue: 0,0:00:09.78,0:00:11.23,Default,,0000,0000,0000,,voláte funkce. Dialogue: 0,0:00:11.40,0:00:13.99,Default,,0000,0000,0000,,A tyto funkce nakreslí,\Nco jim řeknete. Dialogue: 0,0:00:14.74,0:00:16.38,Default,,0000,0000,0000,,A co to vlastně funkce je? Dialogue: 0,0:00:16.42,0:00:19.94,Default,,0000,0000,0000,,Je to kus kódu, který jsme dali\Ndohromady a nějak jsme ho pojmenovali. Dialogue: 0,0:00:19.94,0:00:23.11,Default,,0000,0000,0000,,A tuto funkci můžeme \Nopakovaně používat. Dialogue: 0,0:00:23.88,0:00:25.10,Default,,0000,0000,0000,,Vezměte si třeba "rect". Dialogue: 0,0:00:25.14,0:00:26.37,Default,,0000,0000,0000,,Co vlastně "rect" dělá? Dialogue: 0,0:00:26.37,0:00:28.39,Default,,0000,0000,0000,,Jednoduše nakreslí\Nčtyři čáry. Dialogue: 0,0:00:28.58,0:00:30.81,Default,,0000,0000,0000,,To samé bychom\Nzvládli udělat i pomocí funkce "line". Dialogue: 0,0:00:31.49,0:00:33.70,Default,,0000,0000,0000,,Vidíme, že třeba pomocí 4 takových funkcí\Nvykreslíme obdélník. Dialogue: 0,0:00:34.03,0:00:39.05,Default,,0000,0000,0000,,Je ale pravda,\Nže obdélník budeme kreslit docela často. Dialogue: 0,0:00:39.38,0:00:45.36,Default,,0000,0000,0000,,A počítat pokaždé nakreslení\Nvšech čtyř čar, to je celkem otrava. Dialogue: 0,0:00:45.36,0:00:48.08,Default,,0000,0000,0000,,Namísto toho\Ntedy máme funkci "rect". Dialogue: 0,0:00:48.08,0:00:52.08,Default,,0000,0000,0000,,A ta dělá to samé,\Njako tyto čtyři řádky kódu. Dialogue: 0,0:00:52.08,0:00:53.56,Default,,0000,0000,0000,,Ale za použití\Nméně kódu! Dialogue: 0,0:00:54.96,0:01:02.21,Default,,0000,0000,0000,,Funkce "rect" je funkcí dostupnou \Nve všech programech na Khan Academy. Dialogue: 0,0:01:02.61,0:01:04.100,Default,,0000,0000,0000,,Můžete si ale udělat\Ni své vlastní funkce, Dialogue: 0,0:01:04.100,0:01:07.35,Default,,0000,0000,0000,,které pak můžete\Npoužívat ve svých programech. Dialogue: 0,0:01:07.56,0:01:08.49,Default,,0000,0000,0000,,Dám vám příklad. Dialogue: 0,0:01:08.71,0:01:13.67,Default,,0000,0000,0000,,Řekněme, že chceme program, \Nkterý bude opakovaně kreslit Winstona. Dialogue: 0,0:01:14.18,0:01:16.79,Default,,0000,0000,0000,,Třeba bychom chtěli vyprávět\NWinstonův životní příběh Dialogue: 0,0:01:16.82,0:01:19.37,Default,,0000,0000,0000,,A chtěli bychom ukázat\Nkaždou etapu jeho života. Dialogue: 0,0:01:20.72,0:01:23.40,Default,,0000,0000,0000,,Takhle by mohl vypadat\Npočáteční Winstonův kód. Dialogue: 0,0:01:24.16,0:01:27.10,Default,,0000,0000,0000,,Máme zde proměnné\NfaceX a faceY. Dialogue: 0,0:01:27.10,0:01:31.94,Default,,0000,0000,0000,,Ty označují střed obličeje, vůči \Nkterému se vykreslí oči a ústa. Dialogue: 0,0:01:32.71,0:01:36.31,Default,,0000,0000,0000,,V této chvíli program \Nvidí kód bez jakékoli funkce. Dialogue: 0,0:01:36.60,0:01:39.58,Default,,0000,0000,0000,,Program tedy kód spustí,\Nale pouze jednou. Dialogue: 0,0:01:40.87,0:01:42.82,Default,,0000,0000,0000,,Zkusíme z toho teď\Nudělat funkci. Dialogue: 0,0:01:43.40,0:01:47.73,Default,,0000,0000,0000,,Princip je velmi podobný tomu,\Njak se definují proměnné. Dialogue: 0,0:01:47.73,0:01:49.06,Default,,0000,0000,0000,,Už to vlastně skoro umíme. Dialogue: 0,0:01:49.06,0:01:51.94,Default,,0000,0000,0000,,Napíšeme tedy\N"var drawWinston". Dialogue: 0,0:01:51.94,0:01:54.49,Default,,0000,0000,0000,,Tedy název bude "nakresli Winstona" Dialogue: 0,0:01:54.49,0:01:56.02,Default,,0000,0000,0000,,A pak napíšeme rovná se. Dialogue: 0,0:01:56.02,0:02:05.55,Default,,0000,0000,0000,,Ale tady namísto čísla nebo řetězce\Nnapíšeme "function" a "prázdné závorky". Dialogue: 0,0:02:06.13,0:02:10.84,Default,,0000,0000,0000,,Pak napíšeme otevřenou složenou závorku,\Nzavřenou složenou závorku a středník. Dialogue: 0,0:02:11.76,0:02:16.78,Default,,0000,0000,0000,,Teď musíme vložit všechno,\Nco chceme ve funkci mít, Dialogue: 0,0:02:16.78,0:02:18.89,Default,,0000,0000,0000,,mezi složené závorky. Dialogue: 0,0:02:18.95,0:02:23.65,Default,,0000,0000,0000,,Čili vezmeme tento kód\Na vložíme ho do naší funkce. Dialogue: 0,0:02:23.65,0:02:26.71,Default,,0000,0000,0000,,Pěkně to ještě odsadíme. Dialogue: 0,0:02:26.71,0:02:30.22,Default,,0000,0000,0000,,Takže teď tady máme proměnnou,\Nkterá obsahuje naši funkci. Dialogue: 0,0:02:30.22,0:02:33.88,Default,,0000,0000,0000,,V podstatě jsme tento shluk \Nkódu označili proto, Dialogue: 0,0:02:33.88,0:02:40.08,Default,,0000,0000,0000,,abychom ho později\Nběhem programu mohli přivolat. Dialogue: 0,0:02:40.60,0:02:42.84,Default,,0000,0000,0000,,Upravili jsme si to, abychom tento kód\Nmohli opakovaně používat. Dialogue: 0,0:02:43.60,0:02:46.47,Default,,0000,0000,0000,,Ale teď si všimněte, že \Nnám zmizel Winston! Dialogue: 0,0:02:46.47,0:02:48.33,Default,,0000,0000,0000,,Ztratili jsme ho. Dialogue: 0,0:02:49.68,0:02:51.07,Default,,0000,0000,0000,,Stalo se to, Dialogue: 0,0:02:51.07,0:02:54.38,Default,,0000,0000,0000,,že při vložení kódu do funkce\Njsme našemu programu řekli: Dialogue: 0,0:02:54.38,0:03:00.29,Default,,0000,0000,0000,,"Tady máš nějaký kód k přivolání,\Nale jenom když ti to řeknu." Dialogue: 0,0:03:00.80,0:03:03.69,Default,,0000,0000,0000,,Musíme tedy programu\Nříct, aby kód spustil. Dialogue: 0,0:03:03.69,0:03:06.52,Default,,0000,0000,0000,,A to znamená, že\Nmusíme přivolat funkci. Dialogue: 0,0:03:06.52,0:03:09.18,Default,,0000,0000,0000,,Úplně stejně jako\Ns elipsami, čárami a obdélníky. Dialogue: 0,0:03:09.18,0:03:13.09,Default,,0000,0000,0000,,Napíšeme název funkce\N"drawWinston". Dialogue: 0,0:03:13.75,0:03:15.81,Default,,0000,0000,0000,,Doplníme závorky. Dialogue: 0,0:03:16.09,0:03:17.90,Default,,0000,0000,0000,,A samozřejmě středník. Dialogue: 0,0:03:19.30,0:03:20.80,Default,,0000,0000,0000,,A máme Winstona! Dialogue: 0,0:03:21.66,0:03:22.82,Default,,0000,0000,0000,,Mně se to dost líbí! Dialogue: 0,0:03:22.82,0:03:28.29,Default,,0000,0000,0000,,Vám asi úplně ne, protože náš\Nprogram dělá to samé, co předtím. Dialogue: 0,0:03:28.72,0:03:29.72,Default,,0000,0000,0000,,Ale v čem je to teď lepší? Dialogue: 0,0:03:30.14,0:03:32.58,Default,,0000,0000,0000,,Smysl funkcí je ten, \Nže je můžeme použít opakovaně. Dialogue: 0,0:03:33.52,0:03:34.50,Default,,0000,0000,0000,,Tak pojďme na to. Dialogue: 0,0:03:34.50,0:03:37.27,Default,,0000,0000,0000,,Jednoduše zkopírujeme\Na vložíme přivolání funkce. Dialogue: 0,0:03:38.23,0:03:40.61,Default,,0000,0000,0000,,Znovu a ještě jednou. Dialogue: 0,0:03:41.82,0:03:44.02,Default,,0000,0000,0000,,No, ale to pořád vypadá stejně. Dialogue: 0,0:03:45.22,0:03:48.34,Default,,0000,0000,0000,,Funguje to, kreslí to\Nněkolik Winstonů. Dialogue: 0,0:03:48.34,0:03:50.88,Default,,0000,0000,0000,,Problémem je, že jsou\Nvšichni na tom samém místě. Dialogue: 0,0:03:51.09,0:03:52.52,Default,,0000,0000,0000,,Kdybychom měli rentgen, Dialogue: 0,0:03:52.52,0:03:55.76,Default,,0000,0000,0000,,ozářili bychom plátno\Na viděli bychom tři Winstony. Dialogue: 0,0:03:56.44,0:03:59.16,Default,,0000,0000,0000,,Nevím jak vy, ale já\Nrentgen nemám. Dialogue: 0,0:04:00.34,0:04:03.31,Default,,0000,0000,0000,,Můžeme ale naši funkci\Ntrochu upravit. Dialogue: 0,0:04:03.31,0:04:04.74,Default,,0000,0000,0000,,A pak už to vidět bude. Dialogue: 0,0:04:04.74,0:04:08.74,Default,,0000,0000,0000,,Jak vidíte, faceX a faceY\Njsou vždy 202 a 208. Dialogue: 0,0:04:08.74,0:04:11.57,Default,,0000,0000,0000,,To můžeme změnit\Npoužitím funkce "random". Dialogue: 0,0:04:11.57,0:04:14.60,Default,,0000,0000,0000,,Určíme náhodná čísla\Nod 50 do 350. Dialogue: 0,0:04:14.60,0:04:16.74,Default,,0000,0000,0000,,Vygeneruje mi to náhodná\Nčísla v tomto rozmezí. Dialogue: 0,0:04:16.74,0:04:18.39,Default,,0000,0000,0000,,Tady uděláme to samé. Dialogue: 0,0:04:19.02,0:04:23.02,Default,,0000,0000,0000,,Takže při každém přivolání\Nfunkce se generují náhodná čísla. Dialogue: 0,0:04:23.31,0:04:28.01,Default,,0000,0000,0000,,Při opětovném spuštění\Ndostaneme náhodné Winstony. Dialogue: 0,0:04:29.87,0:04:31.41,Default,,0000,0000,0000,,Podle mě je to skvělý, Dialogue: 0,0:04:31.41,0:04:34.78,Default,,0000,0000,0000,,protože bez funkce\Nbychom museli napsat hromadu kódu. Dialogue: 0,0:04:34.78,0:04:36.65,Default,,0000,0000,0000,,Museli bychom napsat\Ntřikrát tolik kódu. Dialogue: 0,0:04:38.12,0:04:40.84,Default,,0000,0000,0000,,Pořád to ale není tak\Npraktické, jak by to mohlo být. Dialogue: 0,0:04:40.84,0:04:43.47,Default,,0000,0000,0000,,My totiž nechceme\Nnáhodné Winstony, Dialogue: 0,0:04:43.47,0:04:46.88,Default,,0000,0000,0000,,ale Winstony na\Nspecifické pozici. Dialogue: 0,0:04:46.92,0:04:48.14,Default,,0000,0000,0000,,Takže se těšte na příště, Dialogue: 0,0:04:48.14,0:04:52.14,Default,,0000,0000,0000,,protože se naučíme něco o tom,\Njak naší funkci předávat parametry.