1 00:00:00,000 --> 00:00:02,880 >> [Přehrávání hudby] 2 00:00:02,880 --> 00:00:10,580 3 00:00:10,580 --> 00:00:13,500 >> Reproduktor 1: Toto je CS50 a to je začátek dvou týdnů. 4 00:00:13,500 --> 00:00:18,400 Takže, pojďme se ponořit se přímo do něčeho že je buggy, abych tak řekl. 5 00:00:18,400 --> 00:00:24,015 Takže, tady je CS50 IDE a já jsem zastavil v předstihu to screen-- zatracený 6 00:00:24,015 --> 00:00:25,070 za to. 7 00:00:25,070 --> 00:00:25,760 Spoiler alert. 8 00:00:25,760 --> 00:00:26,260 Dobře. 9 00:00:26,260 --> 00:00:29,060 Já jsem vytáhl tuto obrazovku tady, který má velmi jednoduchý program. 10 00:00:29,060 --> 00:00:32,659 Budeme-li se posunout dolů, nejvíce to je jen komentáře, 11 00:00:32,659 --> 00:00:36,730 ale tady v řádcích 13 až 17 máme program. 12 00:00:36,730 --> 00:00:40,580 >> To je syntakticky platné, což znamená, že pokud I zkompilovat, bude to zkompilovat a spustit, 13 00:00:40,580 --> 00:00:41,920 ale je to kočárek. 14 00:00:41,920 --> 00:00:47,330 Tento program tvrdí v komentáři up vrcholu, že by se měla vytisknout 10 hvězd, 15 00:00:47,330 --> 00:00:48,870 ale to není. 16 00:00:48,870 --> 00:00:53,290 A na základě vašich zkušeností, nebo brzy bude zkušenost s C, 17 00:00:53,290 --> 00:00:56,820 můžete logicky rozeznat proč to je ve skutečnosti, kočárek? 18 00:00:56,820 --> 00:00:57,804 To jo? 19 00:00:57,804 --> 00:00:59,220 Diváků: Jde to od nuly do 10 let. 20 00:00:59,220 --> 00:01:01,884 To je 11 iterací. 21 00:01:01,884 --> 00:01:02,550 Reproduktor 1: Jo. 22 00:01:02,550 --> 00:01:06,030 Takže, bude to od nuly vzhůru a se rovná 10, 23 00:01:06,030 --> 00:01:08,140 což je samozřejmě 11 iterací. 24 00:01:08,140 --> 00:01:10,020 Tak, to bude tisk, opravdu, 11 hvězdy. 25 00:01:10,020 --> 00:01:13,040 Takže, počítačové vědy konvence ve většině programovacích jazyků 26 00:01:13,040 --> 00:01:15,270 je opravdu jen proto, aby začne počítat od nuly, 27 00:01:15,270 --> 00:01:18,800 ale počítat až po, ale ne přes hodnota, kterou jste skutečně záleží. 28 00:01:18,800 --> 00:01:21,216 >> Nyní, to je jedna věc, která trvá trochu zvyknout 29 00:01:21,216 --> 00:01:25,350 a dokonce i Scratch, navržený jako je pro non programátory nebo non počítači 30 00:01:25,350 --> 00:01:28,070 vědci a pro děti z velké části, je navržen tak, aby 31 00:01:28,070 --> 00:01:29,570 začnete počítat obvykle v jednom. 32 00:01:29,570 --> 00:01:30,277 A to je v pořádku. 33 00:01:30,277 --> 00:01:33,110 Můžete naprosto začít počítat v jednom případě, že je to mnohem pohodlnější. 34 00:01:33,110 --> 00:01:37,210 A počítat až do a přes 10, ale si uvědomíte, zvláště tento týden 35 00:01:37,210 --> 00:01:39,950 a za ní jen tak mnoho věcí v programování 36 00:01:39,950 --> 00:01:42,465 Předpokládáme, že 0 je první číslice, se kterým budete počítat, 37 00:01:42,465 --> 00:01:45,590 že budete snadněji jen se dostat do tohoto zvyku spouštění 38 00:01:45,590 --> 00:01:49,490 od nuly a počítá do hodnoty vám záleží právě teď od 39 00:01:49,490 --> 00:01:49,990 dostat jít. 40 00:01:49,990 --> 00:01:50,990 >> Tak, že má pevné, že. 41 00:01:50,990 --> 00:01:53,670 Změnili jsme méně než nebo se rovná jen méně než. 42 00:01:53,670 --> 00:01:56,050 Pojďme se podívat na druhý příklad zde. 43 00:01:56,050 --> 00:01:59,585 >> Tak, tento program také uvádí, ve svém komentuje up top, že by měla vytisknout 44 00:01:59,585 --> 00:02:02,260 deset hvězdy, ale to není. 45 00:02:02,260 --> 00:02:05,540 Co je to chyba tady? 46 00:02:05,540 --> 00:02:07,930 >> Tak, what-- a promiň, pojďme být jasné. 47 00:02:07,930 --> 00:02:08,610 10 hvězdy. 48 00:02:08,610 --> 00:02:11,644 Jedno na řádek, ale to není. 49 00:02:11,644 --> 00:02:14,810 Takže ve skutečnosti, nechte mě jít dopředu a zkompilovat tenhle, protože je to o něco méně 50 00:02:14,810 --> 00:02:16,900 jasné na základě tohoto popisu. 51 00:02:16,900 --> 00:02:18,720 Nech mě jít do našeho zdrojového adresáře. 52 00:02:18,720 --> 00:02:25,110 Udělat Buggy jednu tečku lomítko, buggy jeden. 53 00:02:25,110 --> 00:02:28,680 OK, vidím, 11 hvězdy, které je stále problematické, 54 00:02:28,680 --> 00:02:30,090 ale jsou také všechny v jednom řádku. 55 00:02:30,090 --> 00:02:31,500 Co je problém tady? 56 00:02:31,500 --> 00:02:32,339 To jo. 57 00:02:32,339 --> 00:02:33,255 Diváků: [Neslyšitelné]. 58 00:02:33,255 --> 00:02:36,194 59 00:02:36,194 --> 00:02:36,860 Reproduktor 1: Jo. 60 00:02:36,860 --> 00:02:40,210 Takže to je jemnost, že můžete připomínají mi dělat krátkou zmínku o. 61 00:02:40,210 --> 00:02:42,793 I když všechno vypadá hezká, a to je pěkně členité, 62 00:02:42,793 --> 00:02:45,850 a to trochu vypadá jako Scratch- V tomto řádku 16 a 17 jsou, 63 00:02:45,850 --> 00:02:47,600 vskutku, odsazeny pod že pro smyčce. 64 00:02:47,600 --> 00:02:48,400 To je nepodstatné. 65 00:02:48,400 --> 00:02:50,460 Počítač není vědí nebo vidět prázdné místo. 66 00:02:50,460 --> 00:02:52,910 Bílý prostor je jen pro nás lidi, stylisticky. 67 00:02:52,910 --> 00:02:57,010 Počítač má vědět, kdy máte složené závorky, které by, opravdu, 68 00:02:57,010 --> 00:02:58,280 tento problém vyřešit. 69 00:02:58,280 --> 00:03:02,350 >> Takže, když jsme vlastně šel dovnitř a výslovně dát v těchto složených závorek 70 00:03:02,350 --> 00:03:05,220 že by se tento problém vyřešit tím, Díky jasné, kompilátor 71 00:03:05,220 --> 00:03:07,930 že jsem vlastně chtějí spustit opět dva řádky kódu, 72 00:03:07,930 --> 00:03:09,220 a znovu a znovu. 73 00:03:09,220 --> 00:03:11,680 Ale to, co je základní vysvětlení? 74 00:03:11,680 --> 00:03:12,180 Je to tak? 75 00:03:12,180 --> 00:03:15,260 Nemáme striktně potřebovat složené závorky po celou dobu, 76 00:03:15,260 --> 00:03:18,210 i když je to asi nejlepší Praxe se dostat do tohoto zvyku stejně 77 00:03:18,210 --> 00:03:20,878 ačkoliv dodává dva znaky na váš kód. proč? 78 00:03:20,878 --> 00:03:22,380 >> Diváků: [Neslyšitelné]? 79 00:03:22,380 --> 00:03:24,630 Reproduktor 1: Jo, tak to je jiné řešení úplně. 80 00:03:24,630 --> 00:03:25,130 Je to tak? 81 00:03:25,130 --> 00:03:28,250 Zvlášť když na první pohled, že ne Opravdu si toho vážím, co se děje. 82 00:03:28,250 --> 00:03:31,070 No, určitě jsme mohli prostě dělat dvě věci najednou 83 00:03:31,070 --> 00:03:32,710 a jen se problému vyhnout úplně. 84 00:03:32,710 --> 00:03:36,080 A to je v pořádku, ale teď, pro dnešní účely, co 85 00:03:36,080 --> 00:03:38,200 je vysvětlení pro chybu? 86 00:03:38,200 --> 00:03:39,810 Proč byly všechny ty hvězdy na jedné lince? 87 00:03:39,810 --> 00:03:40,806 To jo? 88 00:03:40,806 --> 00:03:43,296 >> Diváků: Zdá se, že v případě, máte jeden řádek kódu, 89 00:03:43,296 --> 00:03:46,649 můžete to udělat bez nich. 90 00:03:46,649 --> 00:03:47,440 Reproduktor 1: Přesně tak. 91 00:03:47,440 --> 00:03:48,750 To je jen lidská konvence. 92 00:03:48,750 --> 00:03:50,750 Lidé si uvědomit, že je to Trochu nepříjemné nebo nudné 93 00:03:50,750 --> 00:03:53,470 muset dát složené závorky všechny času, pokud vše, co chcete dělat 94 00:03:53,470 --> 00:03:55,090 je spustit jeden řádek kódu. 95 00:03:55,090 --> 00:03:57,660 Takže, lidé se rozhodl některé před časem, že to je v pořádku. 96 00:03:57,660 --> 00:04:01,180 Pokud chcete, aby všechny vaše smyčky jen na tom jednom řádku, jako je tato, 97 00:04:01,180 --> 00:04:04,030 to je v pořádku se singlem středník na konci. 98 00:04:04,030 --> 00:04:07,210 Ale můžete udělat jen jeden takový linka bez složených závorek. 99 00:04:07,210 --> 00:04:09,900 >> Takže, když průvodce CS50 styl jak bude bod, který, 100 00:04:09,900 --> 00:04:11,980 uvidíte, že obecně je to dobrý zvyk 101 00:04:11,980 --> 00:04:14,920 se dostat do toho, dokud jste docela pohodlné zbloudění 102 00:04:14,920 --> 00:04:17,404 z těchto druhů konvencí a dělá svou vlastní věc. 103 00:04:17,404 --> 00:04:18,820 Tak dlouho, jak jste vlastní konzistentní. 104 00:04:18,820 --> 00:04:21,540 A budeme hovořit o styl trochu později dnes. 105 00:04:21,540 --> 00:04:23,200 >> Takže mi dovolte, abych otevřít jeden jiný program. 106 00:04:23,200 --> 00:04:24,930 Samozřejmě, měli bychom opravit, že 10 stejně. 107 00:04:24,930 --> 00:04:32,470 Nech mě jít napřed a napsat skutečný rychlý program, který budu říkat, 108 00:04:32,470 --> 00:04:38,140 řekněme, smyčka tečka C. Takže, smyčka dot C. A ve smyčce dot C budu mít, 109 00:04:38,140 --> 00:04:41,970 zahrnují standardní I / O dot H int main neplatné. 110 00:04:41,970 --> 00:04:44,020 A teď pojďme prostě dělat, opravdu, smyčka. 111 00:04:44,020 --> 00:04:46,020 Takže, 4 int jsem dostane nula. 112 00:04:46,020 --> 00:04:48,660 I je menší než, řekněme, 50. 113 00:04:48,660 --> 00:04:49,950 I plus, plus. 114 00:04:49,950 --> 00:04:53,350 A pak tady pojďme jděte do toho a do tisku F. 115 00:04:53,350 --> 00:04:56,400 A pak chci vytisknout I a nový řádek, středník. 116 00:04:56,400 --> 00:05:00,015 >> A to by mělo tisknout všechny Čísla od nuly do 50? 117 00:05:00,015 --> 00:05:02,900 118 00:05:02,900 --> 00:05:03,680 Několik hlava přikyvuje. 119 00:05:03,680 --> 00:05:04,270 Několik nos. 120 00:05:04,270 --> 00:05:05,339 Co je to chyba už? 121 00:05:05,339 --> 00:05:06,630 Co je snadné chybu jsem udělal? 122 00:05:06,630 --> 00:05:07,170 To jo. 123 00:05:07,170 --> 00:05:08,544 >> Diváků: [Neslyšitelné]. 124 00:05:08,544 --> 00:05:09,210 Reproduktor 1: Jo. 125 00:05:09,210 --> 00:05:11,520 Takže i když to vypadá, takhle je to, co mám v úmyslu, 126 00:05:11,520 --> 00:05:13,920 připomenout, že jsem je také jen ASCII znak. 127 00:05:13,920 --> 00:05:14,955 >> Takže, když řeknu, print "I." 128 00:05:14,955 --> 00:05:16,670 Je to doslova děje do I. tisk Takže, když jsem 129 00:05:16,670 --> 00:05:20,030 chtějí plug-in zástupný Hodnota jsem skutečně potřebují to udělat 130 00:05:20,030 --> 00:05:22,630 a pak připojte-in hodnota proudu I, dynamicky. 131 00:05:22,630 --> 00:05:25,200 Jinak já jsem prostě jít dostanete 50 let jsem na obrazovce. 132 00:05:25,200 --> 00:05:28,140 >> Takže, nech mě jít dopředu a tuto smyčku, spusťte jej, 133 00:05:28,140 --> 00:05:30,650 a, samozřejmě, jsme všichni cesta nahoru přes 49. 134 00:05:30,650 --> 00:05:34,140 A když jsem se posouvat zpět v čase vidím číslo na začátku nula. 135 00:05:34,140 --> 00:05:36,050 >> No, co kdybych druh zpackat? 136 00:05:36,050 --> 00:05:37,800 Co když to udělám? 137 00:05:37,800 --> 00:05:40,120 Jen proto, že jsem nepřemýšlel. 138 00:05:40,120 --> 00:05:40,970 Co je tento program. 139 00:05:40,970 --> 00:05:43,970 Jakmile znovu sestaven a spuštění, dělat logicky? 140 00:05:43,970 --> 00:05:44,870 >> Diváků: Nic. 141 00:05:44,870 --> 00:05:45,661 >> Reproduktor 1: Nic. 142 00:05:45,661 --> 00:05:47,156 Proč tomu tak je? 143 00:05:47,156 --> 00:05:49,124 >> Diváků: I je určen pro nulu. 144 00:05:49,124 --> 00:05:51,899 Takže, je podmínka nepravdivá. 145 00:05:51,899 --> 00:05:52,940 Reproduktor 1: Jo, přesně tak. 146 00:05:52,940 --> 00:05:55,110 Veškerý kód je správný, syntakticky. 147 00:05:55,110 --> 00:05:57,310 To bude sestavovat, to Kód bude spuštěn, ale není to 148 00:05:57,310 --> 00:06:00,110 dělat něco užitečného protože jsem inicializovat jsem na nulu. 149 00:06:00,110 --> 00:06:02,240 Pak jsme zjistit, je, že jsem větší než 50? 150 00:06:02,240 --> 00:06:03,810 Je zřejmé, že ne, že to není. 151 00:06:03,810 --> 00:06:05,760 Takže se smyčka nebude nikdy proveden vůbec. 152 00:06:05,760 --> 00:06:09,580 >> Co když něco děláme trochu víc lehkomyslný? 153 00:06:09,580 --> 00:06:12,890 Takže, co když budeme dělat, jako int i dostane nula. 154 00:06:12,890 --> 00:06:15,640 A nyní mi dovolte použít chvíli smyčky, což byl další podmínkou. 155 00:06:15,640 --> 00:06:21,810 A když říkám, když jsem je větší než nebo roven nule, a pak se v tu I 156 00:06:21,810 --> 00:06:26,070 jděte do toho a uložte soubor, aby smyčku. 157 00:06:26,070 --> 00:06:27,070 A já jsem asi jej spustit. 158 00:06:27,070 --> 00:06:30,230 Co mám to vidět tentokrát s smyčky while? 159 00:06:30,230 --> 00:06:30,852 To jo. 160 00:06:30,852 --> 00:06:32,120 >> Diváků: nekonečnou smyčku? 161 00:06:32,120 --> 00:06:35,360 >> Reproduktor 1: nekonečné smyčce? 162 00:06:35,360 --> 00:06:36,662 Ano, a proč? 163 00:06:36,662 --> 00:06:38,120 Diváků: Protože je to vždy nulové. 164 00:06:38,120 --> 00:06:38,786 Reproduktor 1: Jo. 165 00:06:38,786 --> 00:06:40,100 Takže, je inicializován jako nula. 166 00:06:40,100 --> 00:06:44,470 Samozřejmě, že je vždy větší než nebo roven 0 jako výsledek. 167 00:06:44,470 --> 00:06:46,460 Takže, já jsem prostě jít vidět nekonečně. 168 00:06:46,460 --> 00:06:49,850 A teď, to má přijít jednou nebo dvakrát do hlavy kurzu je. 169 00:06:49,850 --> 00:06:52,417 Co se stane, když vás mají nekonečnou smyčku? 170 00:06:52,417 --> 00:06:53,314 >> Publikum: Control C. 171 00:06:53,314 --> 00:06:53,980 Reproduktor 1: Jo. 172 00:06:53,980 --> 00:06:56,250 Takže Control C bude nakonec reagovat. 173 00:06:56,250 --> 00:06:59,520 Bohužel, jsme vytisknout milióny a milióny nuly již 174 00:06:59,520 --> 00:07:01,520 a tak má počítač druh dostal před sebou. 175 00:07:01,520 --> 00:07:03,394 Takže to bude ignorovat mě na trochu. 176 00:07:03,394 --> 00:07:06,560 Ale pokud jste právě hit ovladač C málo Časy na počítači Mac nebo PC klávesnice, 177 00:07:06,560 --> 00:07:08,790 nakonec to by skutečně ukončit. 178 00:07:08,790 --> 00:07:11,770 A pokud ne, budeme vám ukázat některé techniky, kde na vás před dlouhým 179 00:07:11,770 --> 00:07:14,850 může skutečně zabíjet násilně programy, podobně jako v systémech Windows a Mac OS, 180 00:07:14,850 --> 00:07:15,562 v případě potřeby. 181 00:07:15,562 --> 00:07:16,770 Ale pojďme zkusit něco jiného. 182 00:07:16,770 --> 00:07:19,895 Pojďme skutečně zvýšit I. to stále bude nekonečný? 183 00:07:19,895 --> 00:07:22,870 184 00:07:22,870 --> 00:07:25,140 Dovolte mi, abych to běžet. 185 00:07:25,140 --> 00:07:27,090 A nyní můžete druh zjistit, co se děje. 186 00:07:27,090 --> 00:07:30,140 To, také, je nekonečné smyčce. 187 00:07:30,140 --> 00:07:33,080 Ale to je tak trochu chyták. 188 00:07:33,080 --> 00:07:35,460 Je to bude tisknout čísla navždy? 189 00:07:35,460 --> 00:07:36,647 >> Publikum: Ne. 190 00:07:36,647 --> 00:07:37,230 Reproduktor 1: Ne. 191 00:07:37,230 --> 00:07:37,620 Proč? 192 00:07:37,620 --> 00:07:38,820 Slyšel jsem nějaké nos sem. 193 00:07:38,820 --> 00:07:41,859 Someone-- Jo. 194 00:07:41,859 --> 00:07:44,275 Diváků: Nemáte dost bity opravdu jít dál. 195 00:07:44,275 --> 00:07:44,730 Reproduktor 1: Dobře. 196 00:07:44,730 --> 00:07:46,000 Takže nemám dost bity jít dál. 197 00:07:46,000 --> 00:07:47,124 Takže, co se stane? 198 00:07:47,124 --> 00:07:49,320 Je to jen tak přestat? 199 00:07:49,320 --> 00:07:52,542 >> Diváků: Na nějakém místě to bude zavřel the-- 200 00:07:52,542 --> 00:07:54,500 Reproduktor 1: Bude zavřít smyčky dolů, ale proč? 201 00:07:54,500 --> 00:07:57,950 Co se bude dít u Velmi konec jeho hranic? 202 00:07:57,950 --> 00:07:58,479 To jo? 203 00:07:58,479 --> 00:08:00,520 Diváků: Bude cyklus zpět do záporných čísel. 204 00:08:00,520 --> 00:08:02,900 Reproduktor 1: Chcete-li záporných čísel, nebo Pokud bychom byli právě léčbu pozitivní, 205 00:08:02,900 --> 00:08:03,570 nula minimálně. 206 00:08:03,570 --> 00:08:04,550 Takže ano, absolutně. 207 00:08:04,550 --> 00:08:08,059 Připomeňme, že jsme viděli naposledy, že pokud zvýšit vaše bity jeden příliš mnohokrát, 208 00:08:08,059 --> 00:08:10,225 a vy tam Fore přetečení kapacita vašeho int 209 00:08:10,225 --> 00:08:13,058 nebo bez ohledu na typ dat je, že jste bude zalomit kolem, pravděpodobně, 210 00:08:13,058 --> 00:08:14,020 dvě záporná čísla. 211 00:08:14,020 --> 00:08:16,644 Nebo pokud jste se určit, že rozsah by měl být pouze pozitivní, 212 00:08:16,644 --> 00:08:18,560 které můžete udělat, ale jsme neviděli, že dosud, 213 00:08:18,560 --> 00:08:21,420 můžete skončit alespoň zpátky na nulu. 214 00:08:21,420 --> 00:08:22,410 I když, vlastně ano. 215 00:08:22,410 --> 00:08:24,320 V tomto případě, negativní čísla, přičemž v tomto případě 216 00:08:24,320 --> 00:08:26,870 smyčka bude k ukončení proto, že jsem se ani, ve skutečnosti, 217 00:08:26,870 --> 00:08:29,220 větší než nebo rovno nula, pokud je to negativní. 218 00:08:29,220 --> 00:08:31,780 >> Takže, bohužel, jak dlouho budeme muset čekat? 219 00:08:31,780 --> 00:08:35,490 Právě teď jsme až do co, 2000000-ish? 220 00:08:35,490 --> 00:08:37,705 Jsme jako 2 miliardy, budeme muset počkat 221 00:08:37,705 --> 00:08:39,330 dokud se skutečně můžeme vidět tento příznak. 222 00:08:39,330 --> 00:08:46,200 Ale my to vidět o něco rychleji, maybe-- uvidíme, jestli můžeme přerušit. 223 00:08:46,200 --> 00:08:46,700 No tak. 224 00:08:46,700 --> 00:08:49,500 225 00:08:49,500 --> 00:08:51,331 Dokonce i menu se objevují pomalu. 226 00:08:51,331 --> 00:08:51,830 Dobře. 227 00:08:51,830 --> 00:08:54,270 Takže, budeme vracet k tomu zanedlouho. 228 00:08:54,270 --> 00:08:56,320 Je to dobrá time-- sakra, štěňata. 229 00:08:56,320 --> 00:08:58,280 >> Je to dobrý čas na nějaké oznámení. 230 00:08:58,280 --> 00:09:01,225 Takže, pokud vám bude líbit aby se zapojily do YHack, 231 00:09:01,225 --> 00:09:03,600 který je událost, že podporovaný našimi přáteli na Yale. 232 00:09:03,600 --> 00:09:05,990 A skutečně, někteří kurz je TFS na Yale jsou spojené s tímto. 233 00:09:05,990 --> 00:09:08,610 YHack je mezinárodní hack-a-thon hostil a držel 234 00:09:08,610 --> 00:09:12,395 na Yale, sdružuje 1500 stejně smýšlejícími hackery a reklamy všech 235 00:09:12,395 --> 00:09:13,120 na celém světě. 236 00:09:13,120 --> 00:09:14,610 Jedná-li se o zájmu, podívejte se sem. 237 00:09:14,610 --> 00:09:17,401 Pokud je to příliš krátce na obrazovky, se podívat na dnešní skluzavky 238 00:09:17,401 --> 00:09:19,622 pro URL pro yhack.org. 239 00:09:19,622 --> 00:09:21,080 Takže, i několik rychlých oznámení. 240 00:09:21,080 --> 00:09:24,410 Takže, oficiálně sekce začne Příští týden jak zde, New Haven. 241 00:09:24,410 --> 00:09:27,660 Mějte na paměti, budete získání e-mail později tento víkend nejpravděpodobnější. 242 00:09:27,660 --> 00:09:29,390 trvá to dlouho pro CS50 k bodu, 243 00:09:29,390 --> 00:09:32,080 Vzhledem ke všem lidem v třída a každý pohybující se kolem. 244 00:09:32,080 --> 00:09:34,871 A veškeré výuky Fellows " rozvrhy jsou také stále zpevňovat, 245 00:09:34,871 --> 00:09:38,110 ale zůstaňte naladěni pro e-mail a v případě potřeby se můžete re-oddíl tam po. 246 00:09:38,110 --> 00:09:39,580 >> Study.cs50.net. 247 00:09:39,580 --> 00:09:43,280 Takže, i když jste konstantní účastníka na úsecích, uvědomit si, že téměř všechny 248 00:09:43,280 --> 00:09:46,786 zdrojů používáme v oddílech jsou veřejně dostupné na CS50 249 00:09:46,786 --> 00:09:48,460 Studium na této adrese URL zde. 250 00:09:48,460 --> 00:09:51,630 Takže, pokud byste někdy chtěli obnovit recenzi materiál z části, nebo čtení napřed, 251 00:09:51,630 --> 00:09:54,170 nebo nemůžete dělat to nějaký týden, uvědomit, že ukázkové snímky, 252 00:09:54,170 --> 00:09:58,210 a problémy, a definice, a další jsou tam také. 253 00:09:58,210 --> 00:10:00,645 >> Úřední hodiny pokračovat dnes, a zítra, a ve středu, 254 00:10:00,645 --> 00:10:03,020 a ve čtvrtek zkontrolovat kurz je webové stránky pro časový rozvrh. 255 00:10:03,020 --> 00:10:05,690 >> A také, nyní zahajuje dnes je CS50 Diskutovat. 256 00:10:05,690 --> 00:10:09,230 Takže, pokud a když máte otázky pro navzájem nebo pro zaměstnance Course, 257 00:10:09,230 --> 00:10:12,099 a jsou obecně pracují na nějaký problém set, 258 00:10:12,099 --> 00:10:15,015 Uvědomuji si, že nemusíte nutně muset obrátit na člověka Další. 259 00:10:15,015 --> 00:10:17,810 Pokud se to nikdo tam, můžete natáhnout nás a spolužáky 260 00:10:17,810 --> 00:10:19,890 on-line prostřednictvím CS50 Diskutovat. 261 00:10:19,890 --> 00:10:22,600 Takže, to je diskuse deska pro kurzu, 262 00:10:22,600 --> 00:10:24,550 a uvědomit si, že toto je možná nejlepší 263 00:10:24,550 --> 00:10:28,480 místem, kde začít, když máte otázky, kdy mimo úřední hodiny 264 00:10:28,480 --> 00:10:29,470 zejména. 265 00:10:29,470 --> 00:10:31,070 >> Obědy začne tento týden taky. 266 00:10:31,070 --> 00:10:33,170 U ohně a ledu [Neslyšitelné] v New Haven. 267 00:10:33,170 --> 00:10:35,379 Podívejte se na kurz je webové stránky, aby se RSVP. 268 00:10:35,379 --> 00:10:36,753 Kdo dřív přijde, ten dřív mele za to. 269 00:10:36,753 --> 00:10:39,380 Pokud se nechcete dostat v tomto týdnu uděláme to nejvíce každý pátek 270 00:10:39,380 --> 00:10:40,400 během semestru. 271 00:10:40,400 --> 00:10:41,830 >> OK, a nyní slovo o třídění. 272 00:10:41,830 --> 00:10:44,690 Zejména jak jsme se vstoupit problém set člověk, který je tento týden, 273 00:10:44,690 --> 00:10:46,670 a problém nastavit dva a poté. 274 00:10:46,670 --> 00:10:51,680 Jak můžeme jít o hodnocení P sety a hodnocení jejich kvality? 275 00:10:51,680 --> 00:10:55,560 Takže, je to čtyři osy, které používáme v CS50, a jsou to tyto čtyři zde. 276 00:10:55,560 --> 00:10:59,200 >> Oblast působnosti, který zachycuje na numerické Základem, kolik ze souboru P 277 00:10:59,200 --> 00:10:59,860 jsi řešit. 278 00:10:59,860 --> 00:11:02,890 Je to zhruba odpovídá úsilí, a to je náš způsob, jak zachytit 279 00:11:02,890 --> 00:11:05,190 Zkusili jste polovinu P set, všechny sady P. 280 00:11:05,190 --> 00:11:08,860 Jedná se o jednoduchý, kdo dostat perfektní skóre na pokud ano, opravdu, 281 00:11:08,860 --> 00:11:11,020 vyzkoušet každý aspekt sady P. 282 00:11:11,020 --> 00:11:12,010 Takže mějte na paměti. 283 00:11:12,010 --> 00:11:13,420 >> Korektnost je přesně to. 284 00:11:13,420 --> 00:11:17,760 Má váš kód fungovat jako specifikace a jako vzorku roztoku štábů ' 285 00:11:17,760 --> 00:11:19,730 naznačují, že váš kód by ve skutečnosti fungovat. 286 00:11:19,730 --> 00:11:23,260 Zkontrolujte, 50, pokud jste ji potkal přesto je v P nastavit jednu specifikaci 287 00:11:23,260 --> 00:11:25,060 a obecně vám ano / ne odpovědi 288 00:11:25,060 --> 00:11:26,518 o tom, zda je váš kód je správný. 289 00:11:26,518 --> 00:11:30,680 Alespoň tak daleko, že budeme zhodnotit jej na základě zkoušek 290 00:11:30,680 --> 00:11:32,430 že jsme se spustit v rámci tohoto programu. 291 00:11:32,430 --> 00:11:33,850 >> Design je mnohem více subjektivní. 292 00:11:33,850 --> 00:11:35,994 To je, jak dobře napsaný je váš kód. 293 00:11:35,994 --> 00:11:38,410 A to je něco, budete mít lepší na čase, 294 00:11:38,410 --> 00:11:41,201 a je to něco, že budeme poskytují více kvalitativní zpětnou vazbu. 295 00:11:41,201 --> 00:11:43,350 A záměrné bych mohl znamenat, zanedlouho budete 296 00:11:43,350 --> 00:11:47,650 by mohl být v pokušení nějakým P nastaven na něco loopingly, 297 00:11:47,650 --> 00:11:51,590 , ale nebude mít možná tři, nebo čtyři, nebo pět vnořené Přední smyčky nebo vnořené zatímco 298 00:11:51,590 --> 00:11:52,090 smyčky. 299 00:11:52,090 --> 00:11:54,130 To by obecně začnou vás krčit 300 00:11:54,130 --> 00:11:56,070 a by obecně považováno za špatné konstrukce. 301 00:11:56,070 --> 00:11:59,490 A začnete vidět ve třídě a z třídy dobrých způsobů, jak dělat věci, 302 00:11:59,490 --> 00:12:02,920 špatné způsoby, jak dělat věci, které by mohly být všechny správné, ale ne 303 00:12:02,920 --> 00:12:04,304 nutně dobře navržen. 304 00:12:04,304 --> 00:12:05,220 Stejně jako psaní eseje. 305 00:12:05,220 --> 00:12:08,100 Ty by mohly být schopni dát slova na Stránka, která jsou gramaticky správně, 306 00:12:08,100 --> 00:12:10,016 ale esej nebo Práce jsou v je prostě 307 00:12:10,016 --> 00:12:11,810 zcela nesouvislá či nepřesvědčivé. 308 00:12:11,810 --> 00:12:15,930 A tak, že může být analog v písemná svět špatného nebo dobrého designu. 309 00:12:15,930 --> 00:12:18,490 >> A styl, taky, je poměrně subjektivní. 310 00:12:18,490 --> 00:12:20,060 Ale aspoň očekáváme konzistenci. 311 00:12:20,060 --> 00:12:21,480 To je, jak krásná je váš kód. 312 00:12:21,480 --> 00:12:22,840 Jsou věci pěkně členité? 313 00:12:22,840 --> 00:12:26,600 Jsou vaše proměnné dobře jmenuje / Jsou všechny vaše závorek a složených závorkách 314 00:12:26,600 --> 00:12:27,920 sladěna, jak by měly? 315 00:12:27,920 --> 00:12:31,490 Máme průvodce CS50 styl jako Problém sada bude ukazovat vás na adrese. 316 00:12:31,490 --> 00:12:33,730 Ti, kteří jsou pohodlnější vítejte bloudit z toho 317 00:12:33,730 --> 00:12:35,771 tak dlouho, jak jste vlastní konzistentní. 318 00:12:35,771 --> 00:12:38,020 A i to je lekce budeme posilovat v oddíle. 319 00:12:38,020 --> 00:12:40,990 Takže, pokud to všechno bylo trochu rychlá, si uvědomit, P množina a profilů 320 00:12:40,990 --> 00:12:42,900 půjde do větší hloubky, než dlouhý. 321 00:12:42,900 --> 00:12:45,490 >> Ale obecně máme velmi málo kbelíky na CS50. 322 00:12:45,490 --> 00:12:48,170 Výsledky jsou obecně na stupnici obsahující jeden až tři, nebo jedné do pěti. 323 00:12:48,170 --> 00:12:50,836 Jsme literally-- a nemůžu říct, to dost v prvním týdnu. 324 00:12:50,836 --> 00:12:51,582 Tři je dobrá. 325 00:12:51,582 --> 00:12:54,290 Takže, i když, ano, tři ze z pěti normálně, matematicky, 326 00:12:54,290 --> 00:12:57,240 může být 60 procent, nebo jako D minus. 327 00:12:57,240 --> 00:12:58,840 Tři je ve skutečnosti, dobře. 328 00:12:58,840 --> 00:13:01,050 A ve skutečnosti, očekáváme, že většina studentů ve třídě 329 00:13:01,050 --> 00:13:04,280 odstartovat termín kolem dvojky, trojky a čtyřky a. 330 00:13:04,280 --> 00:13:05,510 Pravděpodobně ne tolik pětky. 331 00:13:05,510 --> 00:13:06,661 Ne příliš mnoho z nich. 332 00:13:06,661 --> 00:13:08,910 Ale obecně začít v že sweet spot v křivce 333 00:13:08,910 --> 00:13:11,694 tak, že postupem času, je to vlastně prostor pro, 334 00:13:11,694 --> 00:13:13,360 a příležitosti pro vyšší progrese. 335 00:13:13,360 --> 00:13:15,810 Takže, prosím, se nerovnají tři s 60%. 336 00:13:15,810 --> 00:13:17,410 Je to mnohem víc než to abstraktní. 337 00:13:17,410 --> 00:13:20,160 Vzorec, s níž počítáme stupně se váží takto. 338 00:13:20,160 --> 00:13:21,610 Správnost stojí nejvíce. 339 00:13:21,610 --> 00:13:23,010 Design je stojí za trochu méně. 340 00:13:23,010 --> 00:13:24,490 Styl je stojí za trochu méně. 341 00:13:24,490 --> 00:13:26,950 A toto obecně zachycuje množství času 342 00:13:26,950 --> 00:13:29,800 že jde do dostat každý z těchto os tak akorát. 343 00:13:29,800 --> 00:13:31,810 Styl je super snadno, by měla být super rychlý, 344 00:13:31,810 --> 00:13:33,657 ale je to snadný zvyk dostat líný kolem. 345 00:13:33,657 --> 00:13:35,490 Správnost může trvat budete většinu času. 346 00:13:35,490 --> 00:13:38,990 Honí nějaký bug sílu přijmout, že další hodinu či více, 347 00:13:38,990 --> 00:13:41,737 a tak, bodování nakonec zachytí to. 348 00:13:41,737 --> 00:13:43,070 A tak teď vážnější slovo. 349 00:13:43,070 --> 00:13:45,240 Vzhledem k tomu, CS50 má rozlišení, pro lepší 350 00:13:45,240 --> 00:13:47,440 nebo horší, že jsou možná lépe seznámili 351 00:13:47,440 --> 00:13:50,065 s problematikou akademické poctivost než většina jakýchkoli jiných programů. 352 00:13:50,065 --> 00:13:53,720 A skutečně, to je mi známo, že vyšleme více studentů, bohužel, 353 00:13:53,720 --> 00:13:56,690 pro disciplinární účely každý rok jako výsledek. Tak, 354 00:13:56,690 --> 00:13:59,040 v zájmu plné zveřejňování, pojďme se krátce promluvit 355 00:13:59,040 --> 00:14:02,820 o tom, co se děje v CS50, a to, co vás může dělat, a co můžete mít na paměti. 356 00:14:02,820 --> 00:14:05,530 >> Takže, tady od roku 2007, kdy Zdědil jsem kurz, 357 00:14:05,530 --> 00:14:07,870 je počet případů Ad rady. 358 00:14:07,870 --> 00:14:10,690 Ad rada je Harvardu disciplinární tělo, nebo nyní Honor Counsel, 359 00:14:10,690 --> 00:14:13,790 , na které se odkazuje, když případy Studenti něco udělat, že kurz je 360 00:14:13,790 --> 00:14:15,470 Osnova považuje za nepřiměřené. 361 00:14:15,470 --> 00:14:17,220 Není tam žádný skutečný vzor tu, řekl bych. 362 00:14:17,220 --> 00:14:19,530 To kolísá přes let, ale obecně 363 00:14:19,530 --> 00:14:22,262 to je počet případy, které jsou uvedené. 364 00:14:22,262 --> 00:14:23,970 Počet studentů které jsou zapojeny? 365 00:14:23,970 --> 00:14:25,290 Je to příliš liší. 366 00:14:25,290 --> 00:14:27,930 Typicky, v loňském roce pro Například, 29 studenti na Harvardu 367 00:14:27,930 --> 00:14:29,740 byli Ad Boarded, abych tak řekl. 368 00:14:29,740 --> 00:14:32,670 29 z nich se studenty proudu, Dva z nich minulých studentů, 369 00:14:32,670 --> 00:14:35,610 kteří byli spolupráce nějakým nepříjemným způsobem. 370 00:14:35,610 --> 00:14:38,400 A pak, pokud jde o procento, je to obvykle asi 3% 371 00:14:38,400 --> 00:14:41,360 třídy, která, bohužel, dělá tyto druhy rozhodnutí. 372 00:14:41,360 --> 00:14:44,470 >> Takže, v loňském roce to bylo 3,5% z CS50 studentský sbor 373 00:14:44,470 --> 00:14:46,820 to bylo Ad Boarded, abych tak řekl. 374 00:14:46,820 --> 00:14:48,490 >> Takže, co to všechno znamená? 375 00:14:48,490 --> 00:14:49,660 A co vlastně dělat? 376 00:14:49,660 --> 00:14:52,930 >> Takže, pro úplné zveřejnění, my absolutně, as počítačových vědců, 377 00:14:52,930 --> 00:14:57,620 mají softwarové nástroje máme k dispozici a to je pro nás velmi snadné, ve spravedlnost, 378 00:14:57,620 --> 00:15:00,980 že ostatní je spolužáci, kteří nejsou křížení tyto řádky překročit porovnat 379 00:15:00,980 --> 00:15:04,570 každý podání letos proti každý Podání žádosti o posledních osm let. 380 00:15:04,570 --> 00:15:05,445 Software dělá toto. 381 00:15:05,445 --> 00:15:07,440 A nakonec je to lidské oči, které se rozhodnou 382 00:15:07,440 --> 00:15:11,410 zda se má odkazovat nějaký jedno pro další rozhodování, 383 00:15:11,410 --> 00:15:12,737 ale software určitě pomáhá. 384 00:15:12,737 --> 00:15:15,820 A to, upřímně řečeno, je důvod, proč si myslím, máme tak velká čísla v CS50. 385 00:15:15,820 --> 00:15:18,540 Není to proto, CS50 studenti nebo CS studenti více 386 00:15:18,540 --> 00:15:20,840 jsou obecně nic méně upřímný než jakékoli jiné studenty, 387 00:15:20,840 --> 00:15:22,340 je to jen máme nástroje a techniky 388 00:15:22,340 --> 00:15:24,095 , s níž se tento první průchod. 389 00:15:24,095 --> 00:15:25,960 >> Ale my hlídat Na všechny tyto věci 390 00:15:25,960 --> 00:15:30,340 stejně opět v zájmu uznávajíce práci, která je jejich uvedením 391 00:15:30,340 --> 00:15:32,397 v o super většinou třídy. 392 00:15:32,397 --> 00:15:34,230 A politika kurzu je na akademické poctivosti, 393 00:15:34,230 --> 00:15:37,021 i když je to banda odstavců dlouhý s partou kulek 394 00:15:37,021 --> 00:15:40,490 že jsou snad dost čitelné, to opravdu redukuje být rozumný. 395 00:15:40,490 --> 00:15:44,000 A to nejlepší pravidlo, které nabízíme vybudována v rámci osnov 396 00:15:44,000 --> 00:15:46,020 je to, esence veškeré práce, která vás 397 00:15:46,020 --> 00:15:47,850 předloží kurzu, musí být váš vlastní. 398 00:15:47,850 --> 00:15:51,510 A skutečně, v téměř všech těch, Případy uvedené pro disciplinární řízení 399 00:15:51,510 --> 00:15:55,640 bylo to proto, že některé studentské jednou pozdě noc typicky obrátil svůj kód 400 00:15:55,640 --> 00:15:58,130 přes přímo na spolužáka, kdo pak jej přijala 401 00:15:58,130 --> 00:16:00,840 v celém rozsahu nebo výrazně nich. 402 00:16:00,840 --> 00:16:02,680 >> Ale opravdu, to je v pořádku. 403 00:16:02,680 --> 00:16:04,684 A skutečně, v kanceláři hodiny, papírky 404 00:16:04,684 --> 00:16:07,850 jste byl předán, pokud jste přišli úřadem hodin minulý týden povzbuzuje tolik. 405 00:16:07,850 --> 00:16:09,710 Máte naprostou přivítal a povzbudil 406 00:16:09,710 --> 00:16:12,340 projednat problémové sady se spolužáky. 407 00:16:12,340 --> 00:16:14,461 Chcete-li si navzájem pomáhají při zakopnutí. 408 00:16:14,461 --> 00:16:17,710 Ale obecně pravidlo by mělo být takhle, "když se žádostí o pomoc, 409 00:16:17,710 --> 00:16:20,412 můžete ukázat svůj kód s ostatními, ale nemusí zobrazit jejich. " 410 00:16:20,412 --> 00:16:22,620 Takže, jinými slovy, když jsem zápasí s některými P sadou 411 00:16:22,620 --> 00:16:25,290 a já sedím tam v jídelna, nebo v knihovně, 412 00:16:25,290 --> 00:16:28,470 nebo ve třídě se snaží najít nějakou chybu, 413 00:16:28,470 --> 00:16:30,340 Já určitě ukázat můj kód na mé obrazovce 414 00:16:30,340 --> 00:16:32,590 se osoba sedící vedle pro mě, určitě personál, 415 00:16:32,590 --> 00:16:33,600 ale i spolužák. 416 00:16:33,600 --> 00:16:36,580 Ale v případě, že řešení, které můj spolužák nabízí, je, oh, 417 00:16:36,580 --> 00:16:39,200 Zde stačí se podívat na to, co Udělal jsem, že překročí hranici. 418 00:16:39,200 --> 00:16:43,120 >> A já bych si tvrdit, že je to obecně rozumná věc pro většinu lidí 419 00:16:43,120 --> 00:16:45,030 velmi snadno rozpoznat linii. 420 00:16:45,030 --> 00:16:47,195 A tak, viz osnova pro další podrobnosti. 421 00:16:47,195 --> 00:16:49,070 A nyní jedním z více sporné aspekty 422 00:16:49,070 --> 00:16:52,529 z CS50 osnov, že jsem si myslel, by mluvil v závěru zde 423 00:16:52,529 --> 00:16:53,820 je takzvaná klauzule lítost. 424 00:16:53,820 --> 00:16:55,340 Tak, tady je všechno drobným písmem. 425 00:16:55,340 --> 00:16:58,090 Ale obecně jsme viděli, během posledních 8 roků plusu 426 00:16:58,090 --> 00:17:01,510 že skutečně téměř všechny CS50 je případy akademické nepoctivosti 427 00:17:01,510 --> 00:17:04,390 byly důsledkem právě chudí rozhodování pozdě v noci. 428 00:17:04,390 --> 00:17:07,144 Výsledkem stresu, výsledek nedostatku jídlo, nedostatek spánku, 429 00:17:07,144 --> 00:17:09,560 příliš mnoho soupravy P, příliš mnoho termíny, příliš mnoho závazků. 430 00:17:09,560 --> 00:17:13,520 Stres buduje v 2:00 ráno, 03:00 AM, 04:00, s termín rýsuje. 431 00:17:13,520 --> 00:17:17,020 Většina studentů v těchto případech právě udělal špatných rozhodnutí 432 00:17:17,020 --> 00:17:20,619 že oni by mohli velmi dobře litovat Druhý den ráno, ne-li minut později, 433 00:17:20,619 --> 00:17:25,490 ale až do loňského roku nedošlo uvolňování ventil, který tito studenti mohli 434 00:17:25,490 --> 00:17:29,140 skutečně otevřít až skutečně řešit problém Problém s hlavou bez strachu z bytí 435 00:17:29,140 --> 00:17:30,850 zavedený z vysoké školy vůbec. 436 00:17:30,850 --> 00:17:33,260 >> A opravdu, jsme zavedli tato lítost klauzule v loňském roce, 437 00:17:33,260 --> 00:17:35,970 který říká, že pokud v rámci 72 hodin, tři dny, 438 00:17:35,970 --> 00:17:37,970 křížení nějaké linky předepsaný v učebních osnovách 439 00:17:37,970 --> 00:17:41,178 přijedete těšit na jednu z kurzu je hlavy a budeme popovídat si o tom. 440 00:17:41,178 --> 00:17:43,720 Tam jsou ještě některé výsledek, na rozdíl od toho, co je 441 00:17:43,720 --> 00:17:44,990 Bylo hlášeno, že naopak. 442 00:17:44,990 --> 00:17:49,190 Tam je ještě nějaká výsledkem, že je žalovatelné průběhem, 443 00:17:49,190 --> 00:17:51,611 obecně nulování a P set nebo přijímání jinou akci, 444 00:17:51,611 --> 00:17:53,610 ale budeme, samozřejmě, zvládnout to sami, a nikoli 445 00:17:53,610 --> 00:17:58,460 naleznete je vyšší byly výsledkem může být mnohem přísnější. 446 00:17:58,460 --> 00:18:01,810 A, samozřejmě, sdílet to, co se stalo v loňském roce, v osmi letech, a teď 447 00:18:01,810 --> 00:18:04,950 devět let, výuky tohoto kurzu a poté, co hrát si s různými knoflíky, 448 00:18:04,950 --> 00:18:07,866 soustružení různé číselníky nad minulostí několik let na akademické poctivosti, 449 00:18:07,866 --> 00:18:11,920 a když viděl podle údajů bez zjevného dopad, a to i projevy, jako je tento, 450 00:18:11,920 --> 00:18:15,490 to vynese nejlepší věc jsme zavedli pedagogicky 451 00:18:15,490 --> 00:18:18,090 Za osm let spolu tyto linky CS50. 452 00:18:18,090 --> 00:18:21,010 >> 19 studentů přistoupil na základě tohoto ustanovení v loňském roce. 453 00:18:21,010 --> 00:18:23,389 Vzali jsme žádnou akci pro sedm z těchto studentů, 454 00:18:23,389 --> 00:18:25,430 určení, že jsou zbytečně starosti. 455 00:18:25,430 --> 00:18:27,304 Neměli, ve skutečnosti, překročili čáru,, ale je 456 00:18:27,304 --> 00:18:28,960 Byl to dobrý rozhovor mít nicméně. 457 00:18:28,960 --> 00:18:31,190 My vynulováno 11 o skóre které byly předloženy. 458 00:18:31,190 --> 00:18:33,840 A v jednom případě jsme se zeptal se Student dělat problém nastavit. 459 00:18:33,840 --> 00:18:36,370 Ale ještě přesvědčivější, upřímně, s těmito 19 chatů, 460 00:18:36,370 --> 00:18:39,020 což bylo mnohem více než já Očekává se, že mají, každý z nich 461 00:18:39,020 --> 00:18:41,370 10 minut na možná hodinový, také přinesla 462 00:18:41,370 --> 00:18:44,920 na světlo řadu problémů, pokud jde o familiární otázky, otázky přítel, 463 00:18:44,920 --> 00:18:46,940 duševní zdravotní problémy že jsme se pak zabývá, 464 00:18:46,940 --> 00:18:50,200 s studenta požehnání, bydliště děkan, nebo přátelé, ani žádné jiné číslo 465 00:18:50,200 --> 00:18:51,450 podpůrných prostředků. 466 00:18:51,450 --> 00:18:54,454 Takže to byl zdaleka jeden nejlepších využití naší doby 467 00:18:54,454 --> 00:18:55,870 a jeden z nejlepších intervencí. 468 00:18:55,870 --> 00:18:58,870 >> Díky, že řekl, že neměl vstup na rychlosti detekce 469 00:18:58,870 --> 00:19:00,909 akademické nepoctivosti obecněji. 470 00:19:00,909 --> 00:19:02,950 A troufám si říci, tuto podmnožinu studentů v loňském roce 471 00:19:02,950 --> 00:19:06,350 bylo demografickou skupinu, které jsme předtím nikdy zjištěna přede 472 00:19:06,350 --> 00:19:08,140 a nikdy spojeni s předtím. 473 00:19:08,140 --> 00:19:10,020 A tak, jednalo nádherné příběhy o úspěchu 474 00:19:10,020 --> 00:19:13,390 i když byly přineseny na světlo za méně než optimálních podmínek. 475 00:19:13,390 --> 00:19:15,640 Takže mějte na paměti jak si udělat, snad, 476 00:19:15,640 --> 00:19:17,390 Některé chudé rozhodnutí si pozdě v noci, 477 00:19:17,390 --> 00:19:20,151 že se přistoupí tak dlouho jako student v této situaci 478 00:19:20,151 --> 00:19:23,400 vlastnit a přijít dopředu tak, aby můžeme mít tento druh chatu a vypořádat se s ní 479 00:19:23,400 --> 00:19:27,310 způsobem, který je vzdělávací, a poté můžeme dát to za námi další den. 480 00:19:27,310 --> 00:19:30,335 >> Takže bez dalších okolků, vezměte hrany z tohoto rozhovoru, 481 00:19:30,335 --> 00:19:35,080 důvod, proč štěňátka jsou nahoru znamená jen proto, aby prolomit ledy na chvíli. 482 00:19:35,080 --> 00:19:39,560 A bohužel, oni jsou všichni spát, ale to, co se mělo stát zde 483 00:19:39,560 --> 00:19:41,760 byl každý měl k úctu a trochu relaxovat 484 00:19:41,760 --> 00:19:43,910 po tomto velmi těžkém konverzace. 485 00:19:43,910 --> 00:19:46,930 Ale zřejmě jsem dal štěňátka spát. 486 00:19:46,930 --> 00:19:50,070 Ale když jdete do CS50 je Webové stránky lomítko štěňata, 487 00:19:50,070 --> 00:19:51,610 můžete dlouho dívat se na ně celý den. 488 00:19:51,610 --> 00:19:55,280 Zvláště možná 2:00, nebo 03:00, nebo 04:00 v noci 489 00:19:55,280 --> 00:19:57,480 vidět trochu pnutí tam. 490 00:19:57,480 --> 00:19:58,805 Takže to je lomítko štěňata. 491 00:19:58,805 --> 00:20:01,700 492 00:20:01,700 --> 00:20:02,200 Dobře. 493 00:20:02,200 --> 00:20:03,020 Nebylo to legrace? 494 00:20:03,020 --> 00:20:04,200 DOBŘE. 495 00:20:04,200 --> 00:20:07,140 Takže, zpět do jisté počítače věda, pokud mohu. 496 00:20:07,140 --> 00:20:10,600 >> Takže, připomenout, že naposledy jsme začali při pohledu nejen na hlavní, což 497 00:20:10,600 --> 00:20:13,930 byl výchozí funkce se při zelenou vlajkou klikli ekvivalent, 498 00:20:13,930 --> 00:20:16,999 ale jsme také začali krátce psaní některé z našich vlastních funkcí. 499 00:20:16,999 --> 00:20:20,040 A zatím žádný z těchto funkcí byly zvlášť velký nebo výstižné. 500 00:20:20,040 --> 00:20:24,570 Dostanete do těch větších funkce pravděpodobně P set 2, P set 3, 501 00:20:24,570 --> 00:20:26,410 Rozhodně P set 4 a dál. 502 00:20:26,410 --> 00:20:29,340 Právě teď většina vašich programů, ne-li všechny z nich, určitě pro P 503 00:20:29,340 --> 00:20:31,550 set 1 může být provedeno zcela v hlavní. 504 00:20:31,550 --> 00:20:33,810 Pokud je váš program je jediný pět řádků, 10 řádků, 505 00:20:33,810 --> 00:20:37,070 dokonce 20 řádků dlouhá, dokonale rozumné psát to 506 00:20:37,070 --> 00:20:40,930 to vše v hlavní, a nikoli na více než komplikovat váš kód, ale to, co děláme dnes 507 00:20:40,930 --> 00:20:44,360 a dál se snaží také zavést nějaké dobré techniky designu 508 00:20:44,360 --> 00:20:48,660 tak, že když váš kód dostane více komplikované a jako problémy 509 00:20:48,660 --> 00:20:51,690 Chcete-li vyřešit dostat těžší a zajímavější máte, tak nějak, 510 00:20:51,690 --> 00:20:55,850 nástroje v panelu nástrojů, s nimiž navrhnout dobré řešení pro ty. 511 00:20:55,850 --> 00:21:01,210 >> Takže, pojďme se rychle podívat se na tento program z mého minulého týdne, který 512 00:21:01,210 --> 00:21:06,550 byla funkce nulový dot C. A Všimněte si, že zcela jednoduše, 513 00:21:06,550 --> 00:21:10,310 vypadá to, že to s dvěma funkce, hlavní a název tisku. 514 00:21:10,310 --> 00:21:13,160 A vzpomínal nebo možná reverzní inženýrství dnes, 515 00:21:13,160 --> 00:21:16,880 co bylo motivací pro zavedení funkce v souladu s názvem 28, 516 00:21:16,880 --> 00:21:18,180 název tiskového? 517 00:21:18,180 --> 00:21:21,745 Nebo co byl tento příklad v podmínky zásady nebo stánek s jídlem, 518 00:21:21,745 --> 00:21:22,605 pokud byste. 519 00:21:22,605 --> 00:21:26,560 520 00:21:26,560 --> 00:21:27,300 Některé mumlá. 521 00:21:27,300 --> 00:21:28,830 Cože? 522 00:21:28,830 --> 00:21:32,210 >> Jo, tak Funkční rozkladu je druh efektní způsob, jak říkat, 523 00:21:32,210 --> 00:21:34,690 rozložit svůj program do jeho součástí 524 00:21:34,690 --> 00:21:37,530 a pak použít ty části sestavit celek. 525 00:21:37,530 --> 00:21:39,620 Tak, to taky je jen tak z sousto již, 526 00:21:39,620 --> 00:21:42,050 ale je možná i lepší příklad něčeho 527 00:21:42,050 --> 00:21:43,081 Právě volal abstrakce. 528 00:21:43,081 --> 00:21:43,580 Je to tak? 529 00:21:43,580 --> 00:21:46,950 Abstrakce bude jeden z opakujících se témat v CS50 530 00:21:46,950 --> 00:21:49,085 a také počítačové vědy obecněji, protože je to 531 00:21:49,085 --> 00:21:53,060 technika, se kterou můžete vyřešit Problémy efektivněji, protože vás 532 00:21:53,060 --> 00:21:56,807 může psát řešení více intuitivně a tak, aby váhy 533 00:21:56,807 --> 00:21:58,390 a je pochopitelné jinými lidmi. 534 00:21:58,390 --> 00:21:59,860 Co tím chci říct, že? 535 00:21:59,860 --> 00:22:04,340 >> Takže, pravděpodobně to je mnohem čitelnější se podívat na program, jako je tato, 536 00:22:04,340 --> 00:22:05,990 extra krátké ačkoli to je. 537 00:22:05,990 --> 00:22:10,050 Když vidíte na lince 22, která je tu funkce nazvaná, název tisku. 538 00:22:10,050 --> 00:22:12,620 Sám název říká, že to, co dělá. 539 00:22:12,620 --> 00:22:15,780 Tato funkce zřejmě bere Vstup mezi jeho závorkách, 540 00:22:15,780 --> 00:22:18,600 a zřejmě něco dělá, pravděpodobně vytiskne jméno. 541 00:22:18,600 --> 00:22:20,880 A tak, i když jsme absolutně by mohlo mít 542 00:22:20,880 --> 00:22:25,280 udělal, co jsme dělali před týdnem, který byl Jen tento skutečné řádek kódu, 543 00:22:25,280 --> 00:22:28,710 se zbavit tohoto, a získat zbavit to vše dohromady, 544 00:22:28,710 --> 00:22:31,436 jsme se nějak abstrahovat pryč pojem tisku jméno. 545 00:22:31,436 --> 00:22:33,060 Je mi jedno, jestli používáte tiskové def. 546 00:22:33,060 --> 00:22:35,601 Je mi jedno, jestli máte S procent a zpětné lomítko N. Tyto 547 00:22:35,601 --> 00:22:37,270 jsou neuvěřitelně tajemné detaily. 548 00:22:37,270 --> 00:22:40,090 Co mi záleží jako programátor právě tiskne jméno. 549 00:22:40,090 --> 00:22:43,414 A tak to, co lepší způsob, jak to udělat, než tím, že volá funkce, název tiskového? 550 00:22:43,414 --> 00:22:46,330 A tak, aby byl jeden z motivací dělat něco takového. 551 00:22:46,330 --> 00:22:50,370 Zpřístupnění kód čitelnější, více opakovaně použitelné, a také vlastní popisný. 552 00:22:50,370 --> 00:22:52,120 A teď, pojďme se podívat na další příklad, 553 00:22:52,120 --> 00:22:56,220 což byla jedna funkce, které jsme měli tady. 554 00:22:56,220 --> 00:23:00,367 >> Tak, tohle je snad ještě více přesvědčivá, protože v tomto případě, 555 00:23:00,367 --> 00:23:01,700 Nechci jen dostat int. 556 00:23:01,700 --> 00:23:03,320 Chci se dostat pozitivní int. 557 00:23:03,320 --> 00:23:06,470 A ukázalo se, aby se pozitivní int, co musíte udělat spoustu terénní výzkum. 558 00:23:06,470 --> 00:23:06,969 Je to tak? 559 00:23:06,969 --> 00:23:09,600 Není to jednoduché jeden řádek zavolejte jako název tiskového bylo, 560 00:23:09,600 --> 00:23:11,480 což je sice méně přesvědčivé. 561 00:23:11,480 --> 00:23:16,000 >> Chcete-li získat pozitivní int, logically-- dovolte mi, abych přejděte zpět dolů skrýt toto. 562 00:23:16,000 --> 00:23:18,887 Co musíte udělat? 563 00:23:18,887 --> 00:23:20,720 Stejně jako všechny nástroje, které mají v okamžiku, kdy jsou 564 00:23:20,720 --> 00:23:24,440 věci, jako tiskový def od společnosti Standard Knihovna a také z CS50 knihovny 565 00:23:24,440 --> 00:23:26,990 máme Get Int, a dostat Float, Get Long Long, Get String, 566 00:23:26,990 --> 00:23:29,260 ale jen jeden, Germane, právě teď, je dostat Int. 567 00:23:29,260 --> 00:23:32,970 Takže, pokud je jediný nástroj, který má v krabici nářadí, je dostat Int, 568 00:23:32,970 --> 00:23:35,505 jak jsme se jít o provádění to se dostat pozitivní int? 569 00:23:35,505 --> 00:23:35,929 >> Diváků: Vytvořte protokol a zkontrolovat na tom, zda je vstup, který dali 570 00:23:35,929 --> 00:23:36,762 bylo pozitivní, nebo ne. 571 00:23:36,762 --> 00:23:39,390 572 00:23:39,390 --> 00:23:40,640 >> Reproduktor 1: Perfect. 573 00:23:40,640 --> 00:23:41,200 Přesně tak. 574 00:23:41,200 --> 00:23:43,950 Dalším nástrojem máme v naší Panel nástrojů z jednoho nebo dvou týdnů před 575 00:23:43,950 --> 00:23:45,419 je jen je smyčka konstrukt. 576 00:23:45,419 --> 00:23:48,210 A tak, jo, pokud budeme používat chvíli smyčka, nebo dělat, zatímco smyčka, nebo přední 577 00:23:48,210 --> 00:23:50,850 smyčka bychom pravděpodobně mohli dostat pryč s některým z v určité formě. 578 00:23:50,850 --> 00:23:55,140 Můžeme realizovat představu get Pozitivní int jen pomocí Get Int, 579 00:23:55,140 --> 00:23:57,830 a pak už jen držet volat to Znovu a držet otravovat uživatele 580 00:23:57,830 --> 00:24:00,320 dokud ne on nebo ona vlastně dává nám, co chceme. 581 00:24:00,320 --> 00:24:03,260 >> A tak teď, to abstrakce procesu 582 00:24:03,260 --> 00:24:05,680 jak se dostat pozitivní int do funkce s názvem 583 00:24:05,680 --> 00:24:08,930 Získat Pozitivní Int je trochu více přesvědčivé, protože se na to podívat. 584 00:24:08,930 --> 00:24:10,990 Jsou jako 10 Plus řádků kódu, který 585 00:24:10,990 --> 00:24:15,090 jsou zapojeni do získávání pozitivní int, a je mi to opravdu jedno, jak to udělat. 586 00:24:15,090 --> 00:24:17,850 Vše, co záleží, je, že vás Můžete to udělat, a tak jsem 587 00:24:17,850 --> 00:24:21,660 skryté všechny tyto údaje za Funkce s názvem Get Pozitivní int to, 588 00:24:21,660 --> 00:24:23,430 vskutku, má tento dělat, zatímco smyčky. 589 00:24:23,430 --> 00:24:27,660 >> A viz minulý týden pro syntaxi tam, ale to jen deklaruje N, 590 00:24:27,660 --> 00:24:29,800 a to tiskne instrukce pro uživatele. 591 00:24:29,800 --> 00:24:33,330 Vyzývá Získejte Int a pak zkontroluje opět tento stav, a znovu, 592 00:24:33,330 --> 00:24:35,230 a znovu, dokud se uživatel spolupracuje. 593 00:24:35,230 --> 00:24:38,000 >> Takže teď, několik rychlé kontroly. 594 00:24:38,000 --> 00:24:40,370 Pro ty, kteří možná obeznámeni s některými programování 595 00:24:40,370 --> 00:24:46,410 proč N deklarován, proč jsem se vytvořit N mimo dělat, zatímco smyčky? 596 00:24:46,410 --> 00:24:50,370 Proč je to na lince 29 a ne o, jako je 33, například. 597 00:24:50,370 --> 00:24:53,529 >> Diváků: Protože když vás deklarovat to venku, to laskavý 598 00:24:53,529 --> 00:24:56,688 více, tím větší scope-- 599 00:24:56,688 --> 00:24:58,146 >> Reproduktor 1: Dobře. 600 00:24:58,146 --> 00:24:59,604 >> Diváků: --and pokud deklarovat to uvnitř smyčky, [neslyšitelných] 601 00:24:59,604 --> 00:25:00,979 protože se neví o tom. 602 00:25:00,979 --> 00:25:02,819 603 00:25:02,819 --> 00:25:03,610 Reproduktor 1: Přesně tak. 604 00:25:03,610 --> 00:25:06,330 Když se mi podaří simplify-- to je otázka oblasti působnosti. 605 00:25:06,330 --> 00:25:11,530 A rozsah odkazuje na kontextu v což je proměnná existuje, nebo je použitelný. 606 00:25:11,530 --> 00:25:15,050 A pěkné pravidlem je, že obvykle při deklarovat nebo vytvoření 607 00:25:15,050 --> 00:25:21,642 proměnné můžete jej použít pouze uvnitř z nejbližších všeobjímající složené závorky. 608 00:25:21,642 --> 00:25:22,600 Takže co to znamená? 609 00:25:22,600 --> 00:25:26,551 Pokud bych, místo toho, vrátit zpět to a jít s něco, co se cítí trochu jednodušší. 610 00:25:26,551 --> 00:25:27,050 Je to tak? 611 00:25:27,050 --> 00:25:29,360 >> Linka 32 jen vypadá čistší pro mě teď. 612 00:25:29,360 --> 00:25:31,500 Dělám obojí na jednou a pak přiřazením 613 00:25:31,500 --> 00:25:33,070 pravá ruka na levé ruce. 614 00:25:33,070 --> 00:25:35,180 Problém nyní založen na že vymezení rozsahu působnosti 615 00:25:35,180 --> 00:25:41,130 se, že N může být použit v řádcích 31 a 32 uvnitř této smyčky, 616 00:25:41,130 --> 00:25:45,100 ale tam, kde touto definicí to nemůže být použit? 617 00:25:45,100 --> 00:25:45,660 V souladu co? 618 00:25:45,660 --> 00:25:46,160 To jo. 619 00:25:46,160 --> 00:25:47,490 >> Diváků: 35. 620 00:25:47,490 --> 00:25:49,180 >> Reproduktor 1: 35. 621 00:25:49,180 --> 00:25:50,480 Rozhodně ne 35. 622 00:25:50,480 --> 00:25:52,349 A taky kde jinde? 623 00:25:52,349 --> 00:25:52,890 Diváků: 34. 624 00:25:52,890 --> 00:25:55,040 Reproduktor 1: I 34 problematické, protože je to 625 00:25:55,040 --> 00:25:56,450 mimo složených závorek. 626 00:25:56,450 --> 00:25:58,200 A tak ve skutečnosti, uvidíme, co se stane. 627 00:25:58,200 --> 00:25:58,700 Je to tak? 628 00:25:58,700 --> 00:26:00,722 To se může zdát trochu intuitivní, nebo možná ne, 629 00:26:00,722 --> 00:26:02,680 ale pojďme se podívat, co kompilátor musí říci, kdy 630 00:26:02,680 --> 00:26:04,730 jdeme do dnešní zdrojového adresáře. 631 00:26:04,730 --> 00:26:08,950 Proveďte funkci jeden. 632 00:26:08,950 --> 00:26:11,231 Ó můj bože. 633 00:26:11,231 --> 00:26:12,980 No, nakonec jsem skončil která, mimochodem. 634 00:26:12,980 --> 00:26:14,030 Dobře. 635 00:26:14,030 --> 00:26:15,510 A co je problém tady? 636 00:26:15,510 --> 00:26:17,430 Velmi Arcane na pohled. 637 00:26:17,430 --> 00:26:19,570 Ale tady je to, co jsem typed-- aby funkce jednoho. 638 00:26:19,570 --> 00:26:21,640 Tady je to, co dělat vyvolané, což je vlastně 639 00:26:21,640 --> 00:26:23,705 pomocí kompilátoru řinčení s některými z těchto příznaků 640 00:26:23,705 --> 00:26:25,080 že uvidíme zase zanedlouho. 641 00:26:25,080 --> 00:26:26,829 A opět, vždy se na první chybě, 642 00:26:26,829 --> 00:26:30,540 protože by to mohlo mít jen řetězení bezvýznamný vliv na jiných tratích. 643 00:26:30,540 --> 00:26:34,410 >> Takže to, co to znamená, je to, že Problém je ve funkci 1.c 644 00:26:34,410 --> 00:26:36,890 To je na potrubí 32. 645 00:26:36,890 --> 00:26:39,712 A to je ve sloupci, nebo znak, 13. 646 00:26:39,712 --> 00:26:42,670 Takže když váš textový editor, který může pomohou určit, kde je problém. 647 00:26:42,670 --> 00:26:47,079 Takže když jsem se posunout nahoru, co je linka 32? 648 00:26:47,079 --> 00:26:49,120 To je opravdu tahle že už je zvýrazněný 649 00:26:49,120 --> 00:26:50,607 právo here-- nepoužitý proměnná n. 650 00:26:50,607 --> 00:26:51,440 Ale není to nevyužité. 651 00:26:51,440 --> 00:26:52,320 Já používám ho. 652 00:26:52,320 --> 00:26:56,110 Ale kompilátoru zmatený, protože že existuje pouze uvnitř tohoto rozsahu. 653 00:26:56,110 --> 00:26:57,727 A tak nemohu použít zde. 654 00:26:57,727 --> 00:26:58,560 Nemohu použít zde. 655 00:26:58,560 --> 00:27:01,320 A kompilátor, a proto, ani jedno, že se snažím. 656 00:27:01,320 --> 00:27:03,940 Zdá se, že nevyužité v jeho skutečný rozsah. 657 00:27:03,940 --> 00:27:08,854 >> Takže můžeme rozšířit rozsah tím, že dělá přesně to, co jsme začali with-- int n. 658 00:27:08,854 --> 00:27:11,020 A i když to není vypadat jako elegantní, snad, 659 00:27:11,020 --> 00:27:15,110 a bereme další řádek tady, teď je to co do rozsahu všude. 660 00:27:15,110 --> 00:27:15,970 Tak pojďme zkusit znovu. 661 00:27:15,970 --> 00:27:19,040 Tak, aby funkce jednoho. 662 00:27:19,040 --> 00:27:19,610 Nice. 663 00:27:19,610 --> 00:27:23,370 A teď, když já, když jsem běžet funkce člověk, pojďme dát to negativní 10, 664 00:27:23,370 --> 00:27:27,170 negativní 1, 0, 1, a to opravdu funguje. 665 00:27:27,170 --> 00:27:28,610 >> Takže tam je další řešení, sem. 666 00:27:28,610 --> 00:27:29,280 Ty víš co? 667 00:27:29,280 --> 00:27:31,230 Co když opravdu jsem zápasil s tím? 668 00:27:31,230 --> 00:27:33,140 Nevím, kde je n to má jít. 669 00:27:33,140 --> 00:27:33,723 Ty víš co? 670 00:27:33,723 --> 00:27:39,220 Já jsem prostě jít, aby to všechno cesta na vrcholu mého souboru zde. 671 00:27:39,220 --> 00:27:42,835 Co by to to, co myslíte? 672 00:27:42,835 --> 00:27:43,335 To jo? 673 00:27:43,335 --> 00:27:44,251 >> Diváků: [Neslyšitelné]. 674 00:27:44,251 --> 00:27:47,964 675 00:27:47,964 --> 00:27:48,630 Reproduktor 1: Jo. 676 00:27:48,630 --> 00:27:50,560 Takže jsem dělal to globální, abych tak řekl. 677 00:27:50,560 --> 00:27:54,430 Pokud máte proměnnou, která je venku všechny své funkce, které je povoleno, 678 00:27:54,430 --> 00:27:58,780 a kód by měl sestavit a n budou nyní přístupné nejen v get 679 00:27:58,780 --> 00:28:02,490 kladný int, ale i ve kterém main-- je trochu znepokojující, protože tam je 680 00:28:02,490 --> 00:28:04,864 již n v hlavní, tak více o že za pouhý moment-- 681 00:28:04,864 --> 00:28:06,530 ale to by bylo považováno za špatné konstrukci. 682 00:28:06,530 --> 00:28:06,910 Dobře. 683 00:28:06,910 --> 00:28:08,570 Máte-li se uchýlit k něco jako, oh, já 684 00:28:08,570 --> 00:28:10,125 jen dát to tady, protože Zdá se, že kód kompilovat 685 00:28:10,125 --> 00:28:12,180 obecně není nejlepší praxí. 686 00:28:12,180 --> 00:28:14,590 Spíše chcete zvolit nejužší možný rozsah 687 00:28:14,590 --> 00:28:18,720 pro proměnné, což by znamenalo, děje s naší počátečního návrhu, který 688 00:28:18,720 --> 00:28:19,920 je tady. 689 00:28:19,920 --> 00:28:24,400 >> Nyní jako stranou, když jste máte identicky pojmenované variabilní tady, 690 00:28:24,400 --> 00:28:27,750 cesta c by zvládnout tohle-- i když se to nestane příliš often-- 691 00:28:27,750 --> 00:28:30,150 je to, že je to stále naprosto v pořádku tady. 692 00:28:30,150 --> 00:28:35,000 Avšak tato definice n v souladu 22 bude stín globálního jeden. 693 00:28:35,000 --> 00:28:38,190 Tak tohle bude fungovat v rámci hlavní, a celosvětový 694 00:28:38,190 --> 00:28:41,670 bude skutečně platit, když jste v získat pozitivní int Ale o tom více 695 00:28:41,670 --> 00:28:43,890 jindy, ale jen pro ty, zvědavý. 696 00:28:43,890 --> 00:28:45,970 >> Takže ve zkratce, jsme opravit tady. 697 00:28:45,970 --> 00:28:49,220 Nyní pojďme šprýmaři odděleně dva jiné kusy Než se podíváme na posledním řádku kódu 698 00:28:49,220 --> 00:28:50,170 v tomto programu. 699 00:28:50,170 --> 00:28:52,170 Získat pozitivní int. 700 00:28:52,170 --> 00:28:54,450 Na levé straně jeho slovo je slovo int. 701 00:28:54,450 --> 00:28:56,860 Co to má znamenat si o tom myslíš? 702 00:28:56,860 --> 00:28:58,900 Dosud jsme viděli hlavně neplatné. 703 00:28:58,900 --> 00:28:59,400 To jo? 704 00:28:59,400 --> 00:29:01,810 >> Diváků: Je to typ proměnná, která se ptáte. 705 00:29:01,810 --> 00:29:04,550 >> Reproduktor 1: Jo, je to ten typ, dovolte mi, abych Neřekl variabilní, ale typ hodnoty 706 00:29:04,550 --> 00:29:05,990 že se ptám zpět. 707 00:29:05,990 --> 00:29:08,070 A opravdu, to je tady intuitivní, snad. 708 00:29:08,070 --> 00:29:08,200 Je to tak? 709 00:29:08,200 --> 00:29:10,250 Chcete-li získat kladný int, co je to vás 710 00:29:10,250 --> 00:29:12,920 chtějí function-- Stejně jako naše dobrovolníci z minulého týdne 711 00:29:12,920 --> 00:29:15,720 Ta vám předá zpět kus papíru s int na to? 712 00:29:15,720 --> 00:29:19,190 A tak jsme se upřesnit, že takzvaný návrat typ této funkce 713 00:29:19,190 --> 00:29:20,450 je získat pozitivní int. 714 00:29:20,450 --> 00:29:22,990 Pokud bychom nechtěli, aby to vrátit něco, říkáte neplatné. 715 00:29:22,990 --> 00:29:25,270 Pokud chcete, aby se vrátit řetězec, říkáte řetězec. 716 00:29:25,270 --> 00:29:27,310 Pokud chcete, aby se vrátit float, říkáte plavat. 717 00:29:27,310 --> 00:29:30,440 Ale jediný, kdo to platí zde logicky, protože jsem pomocí get int, 718 00:29:30,440 --> 00:29:34,130 i když jsem jej omezovaly na pozitivní hodnoty, je vrátit int. 719 00:29:34,130 --> 00:29:38,380 >> Tak naopak, co to znamená že je tu prázdno v závorce? 720 00:29:38,380 --> 00:29:40,130 Co závorky obecně definovat? 721 00:29:40,130 --> 00:29:40,588 To jo? 722 00:29:40,588 --> 00:29:42,880 >> Diváků: To znamená, že funkce je není vlastně marně. 723 00:29:42,880 --> 00:29:44,650 >> Reproduktor 1: To znamená, že funkce je není vlastně dostat to, co? 724 00:29:44,650 --> 00:29:45,430 >> Diváků: Vstup. 725 00:29:45,430 --> 00:29:46,763 >> Reproduktor 1: Vstup, vůbec. 726 00:29:46,763 --> 00:29:49,870 Takže opravdu, pokud závorka Zde zadáte neplatné, 727 00:29:49,870 --> 00:29:51,650 to jen znamená, že nechci žádný vstup. 728 00:29:51,650 --> 00:29:53,269 Budu jednat s problémem sám. 729 00:29:53,269 --> 00:29:55,810 A opravdu, vy nemusíte řekni si pozitivní int nic. 730 00:29:55,810 --> 00:29:59,630 Stačí říct, dostat pozitivní int, a že funkce zhasne a dělat svou věc. 731 00:29:59,630 --> 00:30:02,970 >> Ale tam byl malý trik jsem Hráli zde celou tuto dobu 732 00:30:02,970 --> 00:30:04,970 aby se ujistil, tento kód je sestaven. 733 00:30:04,970 --> 00:30:09,620 Všimněte si, že int-- dostat pozitivní int void-- je vedením 27. 734 00:30:09,620 --> 00:30:14,530 Ale z nějakého podivného důvodu zdánlivě to je také tady na lince 16. 735 00:30:14,530 --> 00:30:18,530 A jen pro jistotu budu opakovat to tak je to naprosto identické. 736 00:30:18,530 --> 00:30:21,640 A já jsem řekl prototyp s trochu jednořádkový komentář. 737 00:30:21,640 --> 00:30:28,850 Co se stane, když odstraním, že, a Nyní spusťte, aby funkce 1, zadejte. 738 00:30:28,850 --> 00:30:29,350 Jejda. 739 00:30:29,350 --> 00:30:32,527 740 00:30:32,527 --> 00:30:33,110 Počkej chvíli. 741 00:30:33,110 --> 00:30:34,764 Kde je moje karta? 742 00:30:34,764 --> 00:30:35,263 Huh? 743 00:30:35,263 --> 00:30:37,969 744 00:30:37,969 --> 00:30:39,620 Standby. 745 00:30:39,620 --> 00:30:41,570 Proveďte funkce 1. 746 00:30:41,570 --> 00:30:42,150 Tam jedeme. 747 00:30:42,150 --> 00:30:42,310 DOBŘE. 748 00:30:42,310 --> 00:30:43,400 Copak chytá správně. 749 00:30:43,400 --> 00:30:45,220 Takže si myslím, že je to trochu bug tady, kde si nejsem 750 00:30:45,220 --> 00:30:46,636 vidění na název záložky v této chvíli. 751 00:30:46,636 --> 00:30:47,940 Takže to, co se tady děje? 752 00:30:47,940 --> 00:30:52,210 Implicitní deklarace funkce získat pozitivní int je C99 neplatný. 753 00:30:52,210 --> 00:30:53,940 Takže znovu matoucí. 754 00:30:53,940 --> 00:30:55,200 Takže to, co je to svědčí o? 755 00:30:55,200 --> 00:30:57,287 No, to ukáže, že C je docela hloupé. 756 00:30:57,287 --> 00:30:59,912 No, je to programování jazyk, nebo spíše kompilátor je. 757 00:30:59,912 --> 00:31:02,940 To ví jen to, co máte učil ji, a je to jen 758 00:31:02,940 --> 00:31:05,640 bude něco vědět pokud ji učil předtím. 759 00:31:05,640 --> 00:31:07,960 Jinými slovy, v hlavní v této chvíli, já jsem 760 00:31:07,960 --> 00:31:10,900 pokusu o volání funkce volal získat pozitivní int. 761 00:31:10,900 --> 00:31:14,120 Ale kompilátor nebude si uvědomit, že dostat pozitivní int 762 00:31:14,120 --> 00:31:16,500 existuje do potrubí 26. 763 00:31:16,500 --> 00:31:21,360 A tak to, co dělá, je jen kompilátor Chyby, jakmile se dostane do řádku 17, 764 00:31:21,360 --> 00:31:23,700 říká implicitní prohlášení o získání pozitivního int, který 765 00:31:23,700 --> 00:31:27,740 je jen fantazie způsob, jak říkat, nemám víte, co dostanete pozitivní int je dosud. 766 00:31:27,740 --> 00:31:31,240 >> Jiné jazyky, jako je Java a Python a Ruby může vypadat dopředu. 767 00:31:31,240 --> 00:31:32,240 C není. 768 00:31:32,240 --> 00:31:35,110 A tak, jak jsme opravit toto je jeden ze dvou způsobů. 769 00:31:35,110 --> 00:31:40,160 Buď jeden, v případě, že problém je, že se Pozitivní int nebyl viděn předtím, 770 00:31:40,160 --> 00:31:42,150 No, dovolte mi, abych ho jen přesunout až na vrchol. 771 00:31:42,150 --> 00:31:43,650 To by tento problém vyřešit. 772 00:31:43,650 --> 00:31:46,790 Ale obecně, to je považována za lepší techniku 773 00:31:46,790 --> 00:31:50,220 aby váš hlavní funkce u velmi top tak, že člověk čtení vašeho kódu 774 00:31:50,220 --> 00:31:52,710 ví, co program dělá, proto, že hlavní není pohřben všechny 775 00:31:52,710 --> 00:31:53,960 jak ve spodní části, nebo ve středu. 776 00:31:53,960 --> 00:31:55,130 Je to na samém vrcholu. 777 00:31:55,130 --> 00:31:56,410 Tak, že necítí ideální. 778 00:31:56,410 --> 00:31:58,326 A můžete skutečně dostat do situace, kde 779 00:31:58,326 --> 00:32:00,820 pokud volání funkcí další, které vyžaduje další, 780 00:32:00,820 --> 00:32:04,630 se můžete dostat do problému, kdy ani jeden mohou jít nad druhým, logicky. 781 00:32:04,630 --> 00:32:05,920 Je to prostě není možné. 782 00:32:05,920 --> 00:32:09,290 >> A tak se způsob práce kolem je to jen vzít 783 00:32:09,290 --> 00:32:13,200 Podpis funkci, takže se speak-- první řádek, kde je declared-- 784 00:32:13,200 --> 00:32:16,850 a jen kopírovat, vložit jej u top, ale ne s kudrnatými braces-- 785 00:32:16,850 --> 00:32:17,980 Jen se středníkem. 786 00:32:17,980 --> 00:32:20,840 Je to jako malý náznak z toho, co má přijít. 787 00:32:20,840 --> 00:32:26,630 A ve skutečnosti, všechny tyto době, kdy Viděl věci, jako standardní io.h 788 00:32:26,630 --> 00:32:33,040 a cs50.h, podobně, v těch dot h soubory jsou tam další prototypy. 789 00:32:33,040 --> 00:32:35,250 A my budeme vidět, že zanedlouho. 790 00:32:35,250 --> 00:32:39,340 >> Takže ve zkratce, když máte program v souboru s více funkcemi 791 00:32:39,340 --> 00:32:42,300 Kromě hlavní, skoro vždy chtějí, aby je deklarovat 792 00:32:42,300 --> 00:32:45,360 jen tím, že způsob jejich nejprve linka, následuje středník, 793 00:32:45,360 --> 00:32:48,410 na samém vrcholu části souboru. 794 00:32:48,410 --> 00:32:50,460 To bylo hodně najednou. 795 00:32:50,460 --> 00:32:53,130 Nějaké otázky? 796 00:32:53,130 --> 00:32:53,920 Nějaké otázky? 797 00:32:53,920 --> 00:32:54,530 Dobře. 798 00:32:54,530 --> 00:32:59,760 >> Takže pojďme dál pak na něco jako kašel. 799 00:32:59,760 --> 00:33:00,260 Aha. 800 00:33:00,260 --> 00:33:00,570 Jak přiléhající. 801 00:33:00,570 --> 00:33:01,220 Dobře. 802 00:33:01,220 --> 00:33:02,260 Kašel. 803 00:33:02,260 --> 00:33:05,080 Takže tady je c realizace programu 804 00:33:05,080 --> 00:33:07,560 jsme se druhý den v Scratch, že jen velmi prostě jen 805 00:33:07,560 --> 00:33:08,691 říká kašel, kašel, kašel. 806 00:33:08,691 --> 00:33:09,190 Dobře. 807 00:33:09,190 --> 00:33:11,136 A někdo řekl pár dny, že je tu 808 00:33:11,136 --> 00:33:12,760 způsob čištění tento kód do již. 809 00:33:12,760 --> 00:33:12,880 Dobře? 810 00:33:12,880 --> 00:33:15,440 Jakmile jste kopírování a vkládání pravděpodobně špatný design. 811 00:33:15,440 --> 00:33:18,725 Nejméně jednou se dostaneme na čtyři nebo pět nebo 20 kašle, to je špatná praxe. 812 00:33:18,725 --> 00:33:19,850 Právě jsme se držet kopii, vkládání. 813 00:33:19,850 --> 00:33:22,213 Co je samozřejmé řešení k čištění tohoto programu up? 814 00:33:22,213 --> 00:33:23,120 >> Diváků: Loop. 815 00:33:23,120 --> 00:33:23,350 >> Reproduktor 1: Jo. 816 00:33:23,350 --> 00:33:24,070 Takže pomocí opakování. 817 00:33:24,070 --> 00:33:27,697 A můžeme použít pro-smyčky, chvíli smyčka, libovolný počet přístupů. 818 00:33:27,697 --> 00:33:29,780 A opravdu, to je to, co děláme v jednom verzi zde. 819 00:33:29,780 --> 00:33:32,250 Já jsem místo toho přepsat ji ve verzi jednoho z cough.c 820 00:33:32,250 --> 00:33:35,170 že je jen kašel v rámci pro-smyčky. 821 00:33:35,170 --> 00:33:38,240 Dobře, ale je tu příležitost nyní druhu startu 822 00:33:38,240 --> 00:33:41,630 navrhovat to trochu více jako ponaučení jsme učili před chvílí, 823 00:33:41,630 --> 00:33:46,190 což je tohle-- předpokládám, že jsem chtěl k vytvoření funkce nazývá kašel, 824 00:33:46,190 --> 00:33:49,730 uvažujme jen na chvíli co to bude vypadat. 825 00:33:49,730 --> 00:33:51,900 Takže pokud chci něco ke kašli, já jen potřebuji 826 00:33:51,900 --> 00:33:53,800 použít tiskové f uvnitř funkce. 827 00:33:53,800 --> 00:33:55,030 A skutečně jsem. 828 00:33:55,030 --> 00:33:56,990 A ve skutečnosti, to vše čas, kdykoliv budete 829 00:33:56,990 --> 00:33:59,000 tisk něco obrazovky, programátor 830 00:33:59,000 --> 00:34:00,610 by volal, že vedlejší efekt. 831 00:34:00,610 --> 00:34:02,990 To nejsem já podával zpět někdo hodnota. 832 00:34:02,990 --> 00:34:06,170 To jsem já, přičemž některé akce to by mohlo být vizuálně zřejmé. 833 00:34:06,170 --> 00:34:10,672 Ale tato funkce kašel, to vrátit cokoliv založen na jeho prvním řádku? 834 00:34:10,672 --> 00:34:12,880 Ne, protože jeho návratový typ je neplatné, což znamená jen 835 00:34:12,880 --> 00:34:14,250 to není mi podával nic zpátky. 836 00:34:14,250 --> 00:34:16,791 To by mohlo být něco dělat vizuálně, ale to mi podával 837 00:34:16,791 --> 00:34:18,639 zpět kus papíru, jako minulý týden. 838 00:34:18,639 --> 00:34:21,310 >> Má to potřebovat žádný vstup? 839 00:34:21,310 --> 00:34:21,810 Ne. 840 00:34:21,810 --> 00:34:23,134 A tak to je neplatný i zde. 841 00:34:23,134 --> 00:34:25,600 Takže i toto je druh over-engineering tento problém. 842 00:34:25,600 --> 00:34:26,099 Je to tak? 843 00:34:26,099 --> 00:34:28,820 Jsem udělal program více komplexní, více řádků kódu, 844 00:34:28,820 --> 00:34:31,889 Nemám dělal to některý více funkční, ale toto 845 00:34:31,889 --> 00:34:34,210 by byla odrazovým můstkem, Možná, pro širší 846 00:34:34,210 --> 00:34:36,830 kontext s složitější kódem. 847 00:34:36,830 --> 00:34:38,150 Ale co to? 848 00:34:38,150 --> 00:34:42,050 Co jsem done-- právě pohlédl na to bez pohledu na komentář 849 00:34:42,050 --> 00:34:46,076 na samém vrcholu file--, co mají Zásadně jsem tady udělal s mým kašel 850 00:34:46,076 --> 00:34:47,409 implementace, která je něco jiného? 851 00:34:47,409 --> 00:34:48,327 Jo, v zádech? 852 00:34:48,327 --> 00:34:51,384 >> Diváků: Ať je to, takže můžete mají charakter vypnout. 853 00:34:51,384 --> 00:34:52,050 Reproduktor 1: Jo. 854 00:34:52,050 --> 00:34:53,270 Takže to cítí docela hezké. 855 00:34:53,270 --> 00:34:53,389 Je to tak? 856 00:34:53,389 --> 00:34:56,600 Je to jako přidání funkce do svého Program nebo vaše funkce, v tomto případě. 857 00:34:56,600 --> 00:34:57,830 Je to stále vrátí nic. 858 00:34:57,830 --> 00:35:00,538 To by mohlo mít vizuální vedlejší účinky, protože je to volá tiskový f. 859 00:35:00,538 --> 00:35:02,800 Ale teď jsem parametrized funkce, která 860 00:35:02,800 --> 00:35:06,470 znamená, že jste zadali vzít vstup typu int a nazývat to n, 861 00:35:06,470 --> 00:35:08,510 ale to bych mohl říkat, co chci. 862 00:35:08,510 --> 00:35:11,550 Ve skutečnosti je to může být jen časy být dokonce více explicitní. 863 00:35:11,550 --> 00:35:13,310 A pak jsem mohl jen změnit zde. 864 00:35:13,310 --> 00:35:16,450 Ale jde o to, že to je, jak jsem vytvořit funkci, která vezme vstup. 865 00:35:16,450 --> 00:35:19,530 A pokud si vzpomínáte mizerný přes snad online v jednom 866 00:35:19,530 --> 00:35:23,000 z Walk-průchodek se Čtvrtý a poslední příklad kašel, 867 00:35:23,000 --> 00:35:27,150 si všimnete, tady jsem zobecnit můj kód further-- trochu roztržitý 868 00:35:27,150 --> 00:35:27,690 dále. 869 00:35:27,690 --> 00:35:31,390 Stejně jako kašel a kýchnutí, oba jsou asi jako říct, něco, nebo dělat 870 00:35:31,390 --> 00:35:32,330 nějaký druh zvuku. 871 00:35:32,330 --> 00:35:34,725 Uložte by odpovídající Scratch blok. 872 00:35:34,725 --> 00:35:37,350 A tak to, co jsem dělal v této verzi, který můžeme právě pohled na, 873 00:35:37,350 --> 00:35:43,170 je kašel je jako říkat, [kašel], kašel, a mezitím, kýchání je 874 00:35:43,170 --> 00:35:44,570 jako říkat, [ACHOO]. 875 00:35:44,570 --> 00:35:46,900 A tak jsem zobecnit provádění těchto 876 00:35:46,900 --> 00:35:48,970 Od této chvíle se provádí Tato kmenová funkce, 877 00:35:48,970 --> 00:35:51,490 říkat, což je zajímavé pro dnešní účely 878 00:35:51,490 --> 00:35:54,300 jen proto, že stále nemá návratový typ. 879 00:35:54,300 --> 00:35:56,398 Ale kolik vstupy to má? 880 00:35:56,398 --> 00:35:56,981 Diváků: Two. 881 00:35:56,981 --> 00:35:57,430 Reproduktor 1: Two. 882 00:35:57,430 --> 00:35:59,263 A tak pokud chcete trvat dva argumenty, 883 00:35:59,263 --> 00:36:00,710 Jen oddělte je čárkou. 884 00:36:00,710 --> 00:36:03,110 A pokud chcete, aby pak volání této funkce, 885 00:36:03,110 --> 00:36:05,800 Všimněte si, že jste právě volejte řekněme, cituji, konec citátu, 886 00:36:05,800 --> 00:36:09,090 Jako první argument, časté n, pro druhý argument. 887 00:36:09,090 --> 00:36:12,130 Takže znovu, jen musíme teď stavební kameny tak, že můžeme vlastně 888 00:36:12,130 --> 00:36:15,686 realizovat některé z našich vlastních funkcí. 889 00:36:15,686 --> 00:36:16,570 Dobře. 890 00:36:16,570 --> 00:36:19,690 Jakékoli otázky týkající se těchto? 891 00:36:19,690 --> 00:36:22,400 >> Takže teď pojďme sloupněte vrstvu, pokud tak. 892 00:36:22,400 --> 00:36:24,840 A cíl, nakonec, je příští týden problém set 893 00:36:24,840 --> 00:36:27,710 bude na cryptogrophy-- umění kódování informace. 894 00:36:27,710 --> 00:36:30,640 A zvláště, informace tě bude šifrování nebo dešifrování 895 00:36:30,640 --> 00:36:31,605 bude textu. 896 00:36:31,605 --> 00:36:33,980 A tak ten druh zve Otázkou dnes podobně dobře, 897 00:36:33,980 --> 00:36:38,480 co se děje pod kapotou s textem mimo ASCII z týdne nula, 898 00:36:38,480 --> 00:36:40,730 a jak můžeme vlastně začne manipulovat s ním? 899 00:36:40,730 --> 00:36:43,070 Takže tady je Zamyla jméno. 900 00:36:43,070 --> 00:36:47,380 A v textu, které by mohly být zadány do jako funkce GET řetězce. 901 00:36:47,380 --> 00:36:52,540 A od této chvíle, když vidíte string jako tohle-- Z-A-M-Y-L-je-- 902 00:36:52,540 --> 00:36:56,550 začít přemýšlet o tom, jako by každý z těchto znaků je v krabici jejího 903 00:36:56,550 --> 00:36:57,050 vlastní. 904 00:36:57,050 --> 00:36:59,460 A opravdu, za týden nebo tak to čas, přičemž každá z těchto krabic 905 00:36:59,460 --> 00:37:04,280 bude reprezentovat velmi specificky blok memory-- sousto paměti. 906 00:37:04,280 --> 00:37:07,050 Takže každý z těchto písmen, nakonec, bude reprezentovat 8 bitů. 907 00:37:07,050 --> 00:37:10,560 A my budeme skutečně vidět, co se děje Na pod pokličku v mém počítači. 908 00:37:10,560 --> 00:37:13,440 >> Ale za to, že postačí stačí se podívat na Zamyla 909 00:37:13,440 --> 00:37:17,520 touto optikou, přičemž každý z tato písmena je v jeho vlastním poli. 910 00:37:17,520 --> 00:37:22,697 A dost pěkně v C můžeme přístup každé z těchto krabic přímo. 911 00:37:22,697 --> 00:37:25,530 Takže pokud chcete získat první Dopis jejího jména, super snadné v C. 912 00:37:25,530 --> 00:37:28,410 Pokud chcete získat poslední Dopis, super jednoduché, jak dobře 913 00:37:28,410 --> 00:37:30,240 s kusem novou syntaxí. 914 00:37:30,240 --> 00:37:36,250 >> Takže budu pokračovat do CS50 IDE a otevřít řetězec nulový bod C. 915 00:37:36,250 --> 00:37:40,270 A v tomto případě, je zde pár nových věcí děje. 916 00:37:40,270 --> 00:37:44,360 Takže nejprve v řadě 19, máme viděli tuto before-- get řetězec. 917 00:37:44,360 --> 00:37:49,840 Takže stejně jako rychlou kontrolu sanitačního, kdyby někdo mohl nabídnout až slovně 918 00:37:49,840 --> 00:37:52,662 vysvětlení laik ze dne co se děje v řadě 19. 919 00:37:52,662 --> 00:37:55,370 Stejně jako právě to přeložit do Angličtina, že spolubydlící není CS50 920 00:37:55,370 --> 00:37:56,416 by mohl rozumět. 921 00:37:56,416 --> 00:37:56,916 To jo. 922 00:37:56,916 --> 00:37:59,749 >> Diváků: Mít uživatelského vstupu A řetězec a uložit jej do variabilní s. 923 00:37:59,749 --> 00:38:01,934 924 00:38:01,934 --> 00:38:02,600 Reproduktor 1: Dobře. 925 00:38:02,600 --> 00:38:05,579 Mají vstupu uživatele řetězec a uložit je v proměnné s. 926 00:38:05,579 --> 00:38:06,120 To je skvělé. 927 00:38:06,120 --> 00:38:08,090 A tak na pravém side, říkáme get řetězec. 928 00:38:08,090 --> 00:38:10,340 To vrací hodnotu že nedostal přiděleno 929 00:38:10,340 --> 00:38:14,230 z pravé strany na levou ruku strana do proměnné s názvem S, která je 930 00:38:14,230 --> 00:38:15,950 určen k ukládání řetězec. 931 00:38:15,950 --> 00:38:16,800 Přesně tak. 932 00:38:16,800 --> 00:38:20,000 >> Takže teď potrubím 22, per komentář na řádku 21, 933 00:38:20,000 --> 00:38:22,780 samozřejmě vytiskne tento řetězec jeden znak za řádek. 934 00:38:22,780 --> 00:38:23,740 Ale jak? 935 00:38:23,740 --> 00:38:27,040 Takže v první řadě, jsme inicializovat jsem se 0. 936 00:38:27,040 --> 00:38:31,061 A pak jak se dostaneme do konec Zamyla jména? 937 00:38:31,061 --> 00:38:32,810 No, na konci roku Zamyla jméno, mohl bych 938 00:38:32,810 --> 00:38:38,151 ručně zadat v poslední znak její jméno nějak, nebo počet na to. 939 00:38:38,151 --> 00:38:38,650 Je to tak? 940 00:38:38,650 --> 00:38:43,500 Pokud bychom se vrátit here-- Z-A-M-L-- Y-L-je--, takže jsem mohl psát. 941 00:38:43,500 --> 00:38:47,340 Co je index Poslední písmeno Zamyla je? 942 00:38:47,340 --> 00:38:52,517 Pokud je to 0-- mluví se jako programmer-- 0, 1, 2, 3, 4, 5, 943 00:38:52,517 --> 00:38:56,570 I heard-- tak opravdu, poslední písmeno V Zamyla jménu je šestý, 944 00:38:56,570 --> 00:38:58,890 ale pokud budeme počítat od 0, že to bude číslo 5. 945 00:38:58,890 --> 00:39:01,320 Takže mějte na paměti, že zde. 946 00:39:01,320 --> 00:39:04,929 >> Ukazuje se, že je funkce v C zavolal strlen, a zpět v den 947 00:39:04,929 --> 00:39:06,720 a k tomuto dni ještě, mnoho programátorů 948 00:39:06,720 --> 00:39:09,524 rozhodnete synchronizovat jména pro jejich funkce, které znějí jako slova 949 00:39:09,524 --> 00:39:10,440 že se snaží říct. 950 00:39:10,440 --> 00:39:12,590 Takže strlen je délka řetězce. 951 00:39:12,590 --> 00:39:18,168 A tak to, co by se délka řetězce S vrátí, až Zamyla je vstup? 952 00:39:18,168 --> 00:39:19,569 >> Diváků: Five. 953 00:39:19,569 --> 00:39:22,090 >> Reproduktor 1: Z-A-M-Y-L. Six. 954 00:39:22,090 --> 00:39:22,590 Je to tak? 955 00:39:22,590 --> 00:39:23,940 Jaká je délka Zamyla jména? 956 00:39:23,940 --> 00:39:24,440 Je to tak? 957 00:39:24,440 --> 00:39:26,240 A právě ve skutečnosti, šest písmen. 958 00:39:26,240 --> 00:39:26,740 Je to tak? 959 00:39:26,740 --> 00:39:28,940 A tak co to znamená pro naši smyčky? 960 00:39:28,940 --> 00:39:32,130 Chystáme se jít od 0 až šest, který 961 00:39:32,130 --> 00:39:33,650 se chystá dát nám pět iterací. 962 00:39:33,650 --> 00:39:34,890 Co budeme dělat na každé iteraci? 963 00:39:34,890 --> 00:39:36,870 No, procento C, někdo odhadoval, že druhý den, 964 00:39:36,870 --> 00:39:38,710 znamená zástupným symbolem pro co? 965 00:39:38,710 --> 00:39:39,335 >> Diváků: Char. 966 00:39:39,335 --> 00:39:40,293 Reproduktor 1: Jen char. 967 00:39:40,293 --> 00:39:42,877 Takže jediný character-- ne více znaků, jako řetězec. 968 00:39:42,877 --> 00:39:45,251 A pak tady je nová řada že máme vytisknout. 969 00:39:45,251 --> 00:39:46,580 A pak tady je nová syntaxe. 970 00:39:46,580 --> 00:39:51,130 Chcete-li vytisknout i-tého znak v řetězci S, abych tak řekl, 971 00:39:51,130 --> 00:39:54,060 můžete jednoduše říci, Název řetězce S, 972 00:39:54,060 --> 00:39:58,230 a pak otevřete hranatou závorku, a zavřel hranatou závorku, s i 973 00:39:58,230 --> 00:39:58,780 prostředek. 974 00:39:58,780 --> 00:40:01,430 A je to docela hezké, že to trochu vypadá jako čtverec 975 00:40:01,430 --> 00:40:06,210 stejně jako na náměstích, v nichž je Zamyla znaky existují na tamté obrázek. 976 00:40:06,210 --> 00:40:09,970 >> Takže když jsem se vlastně spustit tento Nyní se podívejme, co se stane. 977 00:40:09,970 --> 00:40:15,190 Udělat řetězec 0 dot lomítko Řetězec 0, a pak jsem 978 00:40:15,190 --> 00:40:16,720 chystá zadat Zamyla jménu. 979 00:40:16,720 --> 00:40:19,428 Neexistuje žádná výzva, protože jsem neměl používejte tiskové f, ale to je v pořádku. 980 00:40:19,428 --> 00:40:20,660 Já jen vím, co mám dělat. 981 00:40:20,660 --> 00:40:23,240 A skutečně, to vytiskne Zamyla jméno, na každý řádek jednu. 982 00:40:23,240 --> 00:40:25,760 >> Teď buďme trochu lehkomyslný. 983 00:40:25,760 --> 00:40:28,461 Předpokládejme, že jsem nevěděl, o strlen a já jsem přišel, 984 00:40:28,461 --> 00:40:31,460 v pořádku, nikdo to bude mít jméno větší než jako 50 znaků. 985 00:40:31,460 --> 00:40:36,360 Pojďme dál a překompilovat to a spusťte jej, a poté zadejte Zamyla 986 00:40:36,360 --> 00:40:37,160 znovu. 987 00:40:37,160 --> 00:40:40,850 Logicky, co je Program bude snažit k tisku? 988 00:40:40,850 --> 00:40:49,545 Z-A-M-Y-L-A pak, jako 45 neznámé bajtů paměti. 989 00:40:49,545 --> 00:40:51,670 A skutečně, budeme vracet k této myšlence paměti. 990 00:40:51,670 --> 00:40:54,180 Ale jen logicky, pokud Zamyla jméno je tak dlouho, 991 00:40:54,180 --> 00:40:56,450 podle obrázku tady, co říkáme 992 00:40:56,450 --> 00:40:59,810 je pokračovat v tisku, pokračovat v tisku, mějte tisk, pokračovat v tisku, pokračovat v tisku, 993 00:40:59,810 --> 00:41:03,781 celou cestu až do 50. charakter, což kdo ví, co se bude dít. 994 00:41:03,781 --> 00:41:05,030 Takže pojďme vlastně se podívat. 995 00:41:05,030 --> 00:41:06,720 Pojďme zadejte Zamyla. 996 00:41:06,720 --> 00:41:07,250 Zajímavé. 997 00:41:07,250 --> 00:41:08,190 Měli jsme štěstí. 998 00:41:08,190 --> 00:41:09,700 Jen celá parta bílé místo. 999 00:41:09,700 --> 00:41:09,930 Aha. 1000 00:41:09,930 --> 00:41:11,120 Je tu ještě jedna funky znak. 1001 00:41:11,120 --> 00:41:14,577 Vypadá to trochu jako podivný otázka označit tam, ale tam je Zamyla jméno. 1002 00:41:14,577 --> 00:41:15,660 Pojďme opravdu nezodpovědné. 1003 00:41:15,660 --> 00:41:20,000 Co kdybychom vytisknout 500 blokuje do neznáma? 1004 00:41:20,000 --> 00:41:24,380 Pojďme dál a dělat to jak dobře a potom znovu spustit. 1005 00:41:24,380 --> 00:41:27,980 A pojďme na celou obrazovku, protože musíme vidět více prostoru. 1006 00:41:27,980 --> 00:41:30,460 Zamyla. 1007 00:41:30,460 --> 00:41:31,830 Mám opět štěstí. 1008 00:41:31,830 --> 00:41:33,070 >> Dare dostaneme víc lehkomyslný? 1009 00:41:33,070 --> 00:41:36,070 Pojďme víc lehkomyslný. 1010 00:41:36,070 --> 00:41:39,350 50,000 znaky. 1011 00:41:39,350 --> 00:41:41,390 To je nejvíce rozhodně není dobrý nápad. 1012 00:41:41,390 --> 00:41:41,890 Dobře. 1013 00:41:41,890 --> 00:41:42,990 Proveďte řetězec 0. 1014 00:41:42,990 --> 00:41:44,720 To bude naše poslední demo. 1015 00:41:44,720 --> 00:41:47,261 Zamyla. 1016 00:41:47,261 --> 00:41:48,632 Uff. 1017 00:41:48,632 --> 00:41:50,010 Uff. 1018 00:41:50,010 --> 00:41:50,680 DOBŘE. 1019 00:41:50,680 --> 00:41:54,407 Takže moje paměť je opravdu prázdná právě teď, což je vlastně trochu pohodlnější. 1020 00:41:54,407 --> 00:41:55,990 Snažím se dostat to-- v pořádku. 1021 00:41:55,990 --> 00:41:57,614 A teď jsem prostě jít dostat bezohledný. 1022 00:41:57,614 --> 00:41:58,570 500000. 1023 00:41:58,570 --> 00:42:03,860 Make-- pojďme plnou-obrazovku to. 1024 00:42:03,860 --> 00:42:04,990 Enter. 1025 00:42:04,990 --> 00:42:05,490 Zamyla. 1026 00:42:05,490 --> 00:42:12,050 1027 00:42:12,050 --> 00:42:13,390 Tam jedeme. 1028 00:42:13,390 --> 00:42:15,610 Nemám ponětí, co to Je, ale zní to špatně. 1029 00:42:15,610 --> 00:42:16,110 Dobře. 1030 00:42:16,110 --> 00:42:20,322 A ve skutečnosti, brzy, pokud jste mezi Šťastné nemnoho v úředních hodinách 1031 00:42:20,322 --> 00:42:22,780 a v problému nastavit jednu, vás může velmi dobře setkat toto. 1032 00:42:22,780 --> 00:42:25,490 Porucha Segmentace vlastně dělá mají dobře definovaný význam. 1033 00:42:25,490 --> 00:42:28,450 Znamená to nějaký omyl vztahující se k segmentu paměti. 1034 00:42:28,450 --> 00:42:30,490 A v Laicky řečeno, to znamená, že jsme se dotkli 1035 00:42:30,490 --> 00:42:34,780 memory-- jsme použili RAM v mém počítači že bych neměl přístup. 1036 00:42:34,780 --> 00:42:37,050 A to je to, co je oba výkonné a také nebezpečné 1037 00:42:37,050 --> 00:42:39,910 o C, je, že jste skutečně mají neomezený přístup 1038 00:42:39,910 --> 00:42:45,910 na celý rozsah paměti programu nebo bajtů nebo RAM, konkrétněji. 1039 00:42:45,910 --> 00:42:49,510 >> Takže i když Zamyla jména je dlouhá pouze šest znaků, 1040 00:42:49,510 --> 00:42:51,450 Pořád můžu jít kamkoliv v paměti chci. 1041 00:42:51,450 --> 00:42:53,491 A jako stranou, pokud jste někdy četl nějaký článek 1042 00:42:53,491 --> 00:42:55,610 v průběhu let o některých serveru nebo nějaký program 1043 00:42:55,610 --> 00:42:58,654 prasklé nebo dostat naboural to je využili něco 1044 00:42:58,654 --> 00:43:00,820 volal buffer overflow exploit, že budeme ve skutečnosti 1045 00:43:00,820 --> 00:43:04,970 mluvit o tom, za pár týdnů, to je obecně odkazuje na nějak podvádět 1046 00:43:04,970 --> 00:43:09,090 počítač do pořádku za hranice paměti 1047 00:43:09,090 --> 00:43:11,410 že by měl mít, a najít něco šťavnaté 1048 00:43:11,410 --> 00:43:13,530 v tom, že memory-- heslo, možná cesta 1049 00:43:13,530 --> 00:43:16,990 obcházení nějaké sériové číslo zkontrolovat, nebo jen obecně schopni 1050 00:43:16,990 --> 00:43:20,360 přimět počítač vykonávající kód, který nebyl určen. 1051 00:43:20,360 --> 00:43:22,360 Ale pojďme se vrátit do reality na chvilku 1052 00:43:22,360 --> 00:43:24,550 kde tento program byl implementován s strlen, 1053 00:43:24,550 --> 00:43:26,110 a zavést jednu věc tady. 1054 00:43:26,110 --> 00:43:30,030 Co je nového u těchto špičkových tří řádků? 1055 00:43:30,030 --> 00:43:30,910 >> Takže řetězec tečka h. 1056 00:43:30,910 --> 00:43:35,490 Ukázalo se, že je to knihovna s názvem String Dot H, nebo řetězec Knihovna, 1057 00:43:35,490 --> 00:43:38,490 jejíž soubor záhlaví, abych tak řekl, je řetězec tečka h, který mi dává 1058 00:43:38,490 --> 00:43:40,860 Přístup k této funkci strlen. 1059 00:43:40,860 --> 00:43:43,841 Pokud pominu to, že kompilátor je bude křičet na mě v nějaké formě. 1060 00:43:43,841 --> 00:43:44,590 Ale víte co? 1061 00:43:44,590 --> 00:43:46,090 A teď pojďme opravdu nuancí. 1062 00:43:46,090 --> 00:43:50,820 V souladu 22, je tu něco, co druh z inefficient-- špatně navržený, 1063 00:43:50,820 --> 00:43:53,990 arguably-- o tomto řádku kódu. 1064 00:43:53,990 --> 00:43:56,280 Vzpomeňte si na to, jak pro-smyčky jsou implementovány 1065 00:43:56,280 --> 00:44:00,140 a jaké kroky se to stalo znovu a Znovu a again-- inicializace, 1066 00:44:00,140 --> 00:44:04,110 stav, kód, který dostane proveden, pak přírůstek 1067 00:44:04,110 --> 00:44:07,880 nebo změna, pak se podmínka, pak kód, pak je změna, pak 1068 00:44:07,880 --> 00:44:11,280 stav, pak je kód, pak je změna, a tak dále. 1069 00:44:11,280 --> 00:44:15,320 Takže to, co by mohlo být trochu znepokojující nebo tady špatně udělal? 1070 00:44:15,320 --> 00:44:16,387 Jo, v modré barvě. 1071 00:44:16,387 --> 00:44:18,220 Publikum: strlen je volal mnohokrát. 1072 00:44:18,220 --> 00:44:20,654 1073 00:44:20,654 --> 00:44:21,320 Reproduktor 1: Jo. 1074 00:44:21,320 --> 00:44:23,700 Tak strlen se nazývá mnohokrát, ale to, co je 1075 00:44:23,700 --> 00:44:27,113 délka Zamyla jména na Poprvé smyčky provede? 1076 00:44:27,113 --> 00:44:27,860 >> Diváků: Six. 1077 00:44:27,860 --> 00:44:28,110 >> Reproduktor 1: Six. 1078 00:44:28,110 --> 00:44:30,976 No, a co je délka jejího jména podruhé kód spustí? 1079 00:44:30,976 --> 00:44:31,432 >> Diváků: Six. 1080 00:44:31,432 --> 00:44:31,890 >> Reproduktor 1: Dobře. 1081 00:44:31,890 --> 00:44:32,720 Pořád je to šest. 1082 00:44:32,720 --> 00:44:33,220 Je to tak? 1083 00:44:33,220 --> 00:44:35,260 Zarla jméno nemá změnily, i když se dívám 1084 00:44:35,260 --> 00:44:38,240 pouze na část dopisů v jejím jménu. 1085 00:44:38,240 --> 00:44:41,349 A tak skutečnost, že jsem skutečně nejsem dotazem na tuto otázku, co je 1086 00:44:41,349 --> 00:44:44,640 délka Zamyla, co je délka z Zamyla, co je délka Zamyla, 1087 00:44:44,640 --> 00:44:47,990 šest samostatných časy, nebo seven dokonce, je prostě hloupé, 1088 00:44:47,990 --> 00:44:50,390 protože to je neměnná, že odpověď. 1089 00:44:50,390 --> 00:44:53,550 A tak to, co jsem mohl vlastně udělat, je tohle-- v řetězci jednom 1090 00:44:53,550 --> 00:44:55,680 Mám zde okrajově lepší verzi. 1091 00:44:55,680 --> 00:45:00,110 There-- whoops-- řetězec dvou mám okrajově lepší verze, kde 1092 00:45:00,110 --> 00:45:05,010 Já tohle-- místo jen inicializaci i na 0, i já s čárkou 1093 00:45:05,010 --> 00:45:07,990 deklarovat druhou proměnnou s názvem n- Já nemusím říkat int znovu. 1094 00:45:07,990 --> 00:45:09,220 Bych neměl, ve skutečnosti. 1095 00:45:09,220 --> 00:45:10,380 Ale já říkám n. 1096 00:45:10,380 --> 00:45:13,610 A pak jsem se inicializovat n strlen n, tak, že nyní 1097 00:45:13,610 --> 00:45:17,110 kolikrát to strlen vykonán celkem? 1098 00:45:17,110 --> 00:45:17,610 Jen jednou. 1099 00:45:17,610 --> 00:45:20,257 A tak to je to, co máme na mysli dříve o lepším provedení. 1100 00:45:20,257 --> 00:45:23,090 Ve skutečnosti, jakmile je váš kód je správný, vracet a promýšlení, 1101 00:45:23,090 --> 00:45:26,820 jsem s použitím tak málo, paměť nebo jako pár sekund 1102 00:45:26,820 --> 00:45:30,409 nebo milisekund počítačového času as možné realizovat nějaký problém? 1103 00:45:30,409 --> 00:45:32,200 A budu posouvat up a jen zmínit 1104 00:45:32,200 --> 00:45:34,283 že tam je tato zmínka null v této verzi, 1105 00:45:34,283 --> 00:45:36,390 ale vrátíme se, že zanedlouho. 1106 00:45:36,390 --> 00:45:41,010 Protože teď, pojďme se podívat na to, kde to bude, aby nás vedl. 1107 00:45:41,010 --> 00:45:44,110 Takže člověk, se ukazuje, že Nyní, když máme možnost 1108 00:45:44,110 --> 00:45:46,860 se podívat na jednotlivé znaky, můžeme využít něco 1109 00:45:46,860 --> 00:45:50,807 od týdne 0, která byla velmi tajemný a nějak nezajímavé v té době. 1110 00:45:50,807 --> 00:45:53,390 Ale teď, a to zejména, když jsme dostat se do kryptografie v týdnu, 1111 00:45:53,390 --> 00:45:54,820 že to bude dost silný. 1112 00:45:54,820 --> 00:45:57,450 Ukazuje se, že některé údaji types-- ints a plave 1113 00:45:57,450 --> 00:46:00,300 a znaky a řetězce a jiné things-- některé z nich 1114 00:46:00,300 --> 00:46:02,800 může být velmi snadno převést na jinou. 1115 00:46:02,800 --> 00:46:05,840 >> Například, když jsme spolu mluvili o ASCII nějaký čas ago-- tady 1116 00:46:05,840 --> 00:46:07,796 Velká písmena přes M, tečka, tečka, 1117 00:46:07,796 --> 00:46:12,530 dot-- jsme říkali, že tam je mapování mezi těmito písmeny a čísly. 1118 00:46:12,530 --> 00:46:14,970 A ve skutečnosti, je pravdou, pro malá písmena, stejně. 1119 00:46:14,970 --> 00:46:17,470 Malé písmo a je 97, hlavní město a je 65. 1120 00:46:17,470 --> 00:46:20,860 A je tu číslo v ASCII, což je právě tato mapování 1121 00:46:20,860 --> 00:46:23,240 systém pro všechny ty ostatní dopisy. 1122 00:46:23,240 --> 00:46:25,030 Takže co to znamená? 1123 00:46:25,030 --> 00:46:28,390 No, já jdu dál a otevřená Real rychle něco, co nazývá 1124 00:46:28,390 --> 00:46:31,240 ASCII 0, z nichž většina je komentář. 1125 00:46:31,240 --> 00:46:33,860 A opět on-line můžete vždy pohled přes komentáře. 1126 00:46:33,860 --> 00:46:36,180 >> A podívejte se, co to bude dělat. 1127 00:46:36,180 --> 00:46:38,410 Tak je to tu hlavní funkci. 1128 00:46:38,410 --> 00:46:41,490 Já jsem pevně čísla jen pro teď, protože vím, co dělám. 1129 00:46:41,490 --> 00:46:42,950 Vím, co chci vidět zde. 1130 00:46:42,950 --> 00:46:45,220 A já jsem inicializuje I 65 let. 1131 00:46:45,220 --> 00:46:48,490 A já jsem počítal nahoru přes 26 písmen celkem. 1132 00:46:48,490 --> 00:46:52,990 A co mám vytisknout jeden řádek najednou 1133 00:46:52,990 --> 00:46:54,930 pokud můžete interpretovat Tato zkušenost zvýraznila linku? 1134 00:46:54,930 --> 00:46:55,970 Co se vytiskne? 1135 00:46:55,970 --> 00:46:56,797 To jo. 1136 00:46:56,797 --> 00:46:57,264 >> Diváků: Chystáš vytisknout dopis, který 1137 00:46:57,264 --> 00:46:59,805 odpovídá na mapu z Dopis hodnoty a celočíselná hodnota? 1138 00:46:59,805 --> 00:47:01,199 1139 00:47:01,199 --> 00:47:01,990 Reproduktor 1: Přesně tak. 1140 00:47:01,990 --> 00:47:04,740 Chystám se vytisknout dopis odpovídající celé číslo, 1141 00:47:04,740 --> 00:47:06,131 a naopak, a to následovně. 1142 00:47:06,131 --> 00:47:08,880 No to, někdo řekl dříve, je jen zástupným symbolem pro char. 1143 00:47:08,880 --> 00:47:09,490 Je to ještě je. 1144 00:47:09,490 --> 00:47:12,280 To, samozřejmě, je zástupný Aby byla int-- není nový řádek. 1145 00:47:12,280 --> 00:47:18,140 A teď si všimnout, můj první hodnotu, která Jsem zasunutí pro tento zástupný symbol 1146 00:47:18,140 --> 00:47:22,320 není jen já říkám, v závorce, char I, 1147 00:47:22,320 --> 00:47:26,700 který v závorkách je char říká kompilátoru, léčit I 1148 00:47:26,700 --> 00:47:28,490 ne jako to, co je to, které je číslo. 1149 00:47:28,490 --> 00:47:30,490 Považujte to za skutečné postavy. 1150 00:47:30,490 --> 00:47:34,490 Vzhledem k tomu, druhá hodnota jsem ucpávání in-- Já-- by měl být jen číslo. 1151 00:47:34,490 --> 00:47:38,140 >> Takže když jsem zkompilovat program-- tak toto je udělat ASCII 0, 1152 00:47:38,140 --> 00:47:41,720 dot lomítko ASCII 0-- jsem jen získat Tento šikovný malý graf, který 1153 00:47:41,720 --> 00:47:44,950 Ukazuje mi všechny možné mapování, aniž by si to 1154 00:47:44,950 --> 00:47:46,450 skrz nebo na to přijít sám. 1155 00:47:46,450 --> 00:47:48,783 A já jsem také vytištění, Všimněte si malá písmena, 1156 00:47:48,783 --> 00:47:51,410 proto, že pár řádků později jsem také vytisknout toto mapování 1157 00:47:51,410 --> 00:47:53,737 stejně, což je jen říkají, že jakmile pochopíte, 1158 00:47:53,737 --> 00:47:55,570 co se děje pod kapota, můžete 1159 00:47:55,570 --> 00:47:57,111 automaticky konvertovat tam a zpět. 1160 00:47:57,111 --> 00:48:00,160 A ve skutečnosti, pokud někdo z vás kdy udělal to na základní škole 1161 00:48:00,160 --> 00:48:03,490 nebo slyšel o někom myticky přijetí poznámku 1162 00:48:03,490 --> 00:48:05,620 a její předání k jeho nebo její přítel ve třídě, 1163 00:48:05,620 --> 00:48:08,300 ale míchaná dopisy od podobné jako ve stane B, 1164 00:48:08,300 --> 00:48:11,240 a B se stává C, nebo tak něco složitější než to, dobře, 1165 00:48:11,240 --> 00:48:13,410 jak byste jít o kterým se provádí, že jako dítě? 1166 00:48:13,410 --> 00:48:16,340 No, to prostě vím, Â B, B se stane C, 1167 00:48:16,340 --> 00:48:19,700 ale matematicky, co se ten kluk dělá? 1168 00:48:19,700 --> 00:48:22,050 Co jste přidání do každého dopisu? 1169 00:48:22,050 --> 00:48:23,340 Účinně, 1. 1170 00:48:23,340 --> 00:48:27,740 >> Takže když změníte A do místa B, to je něco jako měnící se 65 až 66, 1171 00:48:27,740 --> 00:48:29,590 což znamená, že matematicky jen přidat 1. 1172 00:48:29,590 --> 00:48:33,300 A tak pokud jste byli realizovat ten malý klamný technika 1173 00:48:33,300 --> 00:48:36,380 pro učitele v kódu, budete mohli dělat přesně to, že právě 1174 00:48:36,380 --> 00:48:38,552 přidáním jedno písmeno společně. 1175 00:48:38,552 --> 00:48:40,260 Takže než dlouhý, my jsme uvidí, jak 1176 00:48:40,260 --> 00:48:43,300 mohou využít, které skutečně skutečně tahanice a dešifrovat 1177 00:48:43,300 --> 00:48:43,991 informace. 1178 00:48:43,991 --> 00:48:47,240 Do té doby, vím, že jsme začali představit pár jiných knihoven 1179 00:48:47,240 --> 00:48:48,990 here-- Řetězec jeden dnes. 1180 00:48:48,990 --> 00:48:51,180 A velmi užitečné stránky doufejme, že zjistíte, 1181 00:48:51,180 --> 00:48:55,010 se nazývá reference.cs50.net, který pedagogičtí pracovníci dali dohromady, 1182 00:48:55,010 --> 00:48:57,510 takže pokud chcete vyhledat jak strlen práce, 1183 00:48:57,510 --> 00:48:59,300 můžete začít psát Jméno Funkce je, 1184 00:48:59,300 --> 00:49:02,890 klepněte na tlačítko strlen tam, a pak méně komfortní vysvětlení 1185 00:49:02,890 --> 00:49:03,700 se chystá objevit. 1186 00:49:03,700 --> 00:49:06,880 Nebo chcete-li úředník Linux-založené vysvětlení, 1187 00:49:06,880 --> 00:49:08,945 můžete klepnutím na tlačítko více pohodlný v pravém horním rohu, a to 1188 00:49:08,945 --> 00:49:12,070 bude prezentovat stejné informace, ale ve složitějších podmínek. 1189 00:49:12,070 --> 00:49:15,070 To je užitečným zdrojem pro skutečně vědět, co všechno dělá. 1190 00:49:15,070 --> 00:49:17,320 >> Příště budeme se podívat na Ovaltine 1191 00:49:17,320 --> 00:49:20,070 a další, a představit sami sebe do světa kryptografie. 1192 00:49:20,070 --> 00:49:21,930 Do té doby, uvidíme později tento týden. 1193 00:49:21,930 --> 00:49:23,390 A teď, Colton Ogden. 1194 00:49:23,390 --> 00:49:26,730 Uvidíme se ve středu. 1195 00:49:26,730 --> 00:49:30,216 >> [Přehrávání hudby] 1196 00:49:30,216 --> 00:49:33,702 >> [Přehrávání hudby] 1197 00:49:33,702 --> 00:49:38,682 1198 00:49:38,682 --> 00:49:42,200 >> Reproduktor 1: Co [Píp] děláš? 1199 00:49:42,200 --> 00:49:45,720 >> Reproduktor 1: Já jsem jíst svůj dezert? 1200 00:49:45,720 --> 00:49:47,160 Jak se vám to jíst? 1201 00:49:47,160 --> 00:49:47,860 S rukama? 1202 00:49:47,860 --> 00:49:54,050 1203 00:49:54,050 --> 00:49:57,940 >> [Přehrávání hudby] 1204 00:49:57,940 --> 00:50:03,453