1 00:00:00,000 --> 00:00:10,940 2 00:00:10,940 --> 00:00:13,060 >> DAVID J Malan: Vše Dobře, takže to je CS50. 3 00:00:13,060 --> 00:00:15,040 A to je samozřejmě pátek. 4 00:00:15,040 --> 00:00:16,850 A to je konec týdne jedna. 5 00:00:16,850 --> 00:00:21,020 Takže si možná vzpomenou, že jsme skončili, naposledy, s cliffhanger svého druhu. 6 00:00:21,020 --> 00:00:25,020 Přičemž jsme odhalit tu lež, že žádný ohledu na to, co jste učil roste 7 00:00:25,020 --> 00:00:31,610 up, 1 děleno 10 není, v Skutečnost, 0,1 nebo 0,100 nebo 0,10000. 8 00:00:31,610 --> 00:00:35,270 Ve skutečnosti, pokud bychom sestavit tento Program, jako jsme to udělali včera, s, 9 00:00:35,270 --> 00:00:39,770 aby nepřesnost, a poté udělat tečku, lomítko, nepřesnost, 10 00:00:39,770 --> 00:00:43,600 jsme se dozvěděli, že to je to, co je 1 děleno 10 ve skutečnosti je. 11 00:00:43,600 --> 00:00:46,140 Takže ve skutečnosti to není tak docela pravda. 12 00:00:46,140 --> 00:00:49,014 Ale to dělá narážku na některé Základní omezení počítačů. 13 00:00:49,014 --> 00:00:50,930 A skutečně, mezi co budeme dělat 14 00:00:50,930 --> 00:00:55,130 dnes je se podívat na důvod, proč to má se stalo, jaké důsledky to má, 15 00:00:55,130 --> 00:00:58,430 jak se lidstvo selhalo pochopit to v některých velmi 16 00:00:58,430 --> 00:01:00,410 vážný situations-- výsledek z nichž 17 00:01:00,410 --> 00:01:03,141 byl docela tragický a expensive-- a také 18 00:01:03,141 --> 00:01:04,849 se podívat na to, jak mohou skutečně bránit 19 00:01:04,849 --> 00:01:06,530 proti těmto druhům omezení. 20 00:01:06,530 --> 00:01:10,940 Takže intuitivně, snad, Proto je 1 děleno 10, 21 00:01:10,940 --> 00:01:15,480 podle mého počítače tady, ne jen desetina, 0.10? 22 00:01:15,480 --> 00:01:15,980 Jo. 23 00:01:15,980 --> 00:01:16,530 Co myslíš? 24 00:01:16,530 --> 00:01:17,860 >> Divačka: radix je jiný? 25 00:01:17,860 --> 00:01:18,550 >> DAVID J Malan: Cože je? 26 00:01:18,550 --> 00:01:19,730 Ach, ta základ je jiný? 27 00:01:19,730 --> 00:01:20,720 Takže ne tak docela. 28 00:01:20,720 --> 00:01:23,200 Je to vlastně více zásadní pro hardware. 29 00:01:23,200 --> 00:01:23,980 Jiné myšlenky? 30 00:01:23,980 --> 00:01:24,584 Jo. 31 00:01:24,584 --> 00:01:26,750 Divačka: Oni představovat čísla jinak? 32 00:01:26,750 --> 00:01:27,880 DAVID J Malan: Tak they-- Right. 33 00:01:27,880 --> 00:01:29,338 Představují čísla jinak. 34 00:01:29,338 --> 00:01:30,700 Nepřesně, zřejmě. 35 00:01:30,700 --> 00:01:33,190 Tak, že je-- No, odlišně od čeho? 36 00:01:33,190 --> 00:01:34,490 Nebo od koho? 37 00:01:34,490 --> 00:01:35,050 Od nás? 38 00:01:35,050 --> 00:01:35,966 Divačka: Jo. 39 00:01:35,966 --> 00:01:38,930 Oni nepoužívají desetinné systém [neslyšitelný]. 40 00:01:38,930 --> 00:01:39,680 DAVID J Malan: OK. 41 00:01:39,680 --> 00:01:41,560 Takže v jistém smyslu, oni dělají ne použít desítkovou soustavu. 42 00:01:41,560 --> 00:01:43,720 Pod kapotou všechno je, opravdu, binární, 43 00:01:43,720 --> 00:01:45,510 a to je příbuzný, ve skutečnosti. 44 00:01:45,510 --> 00:01:48,135 Ale je to ještě jednodušší vysvětlení než to. 45 00:01:48,135 --> 00:01:48,635 Jo. 46 00:01:48,635 --> 00:01:49,970 >> Divačka: Oni jen tolik bitů. 47 00:01:49,970 --> 00:01:52,370 Mohou pouze uložit až do určité rozsahu, stejně jako s desetinná místa. 48 00:01:52,370 --> 00:01:52,780 >> DAVID J Malan: Jo. 49 00:01:52,780 --> 00:01:54,420 To je to, co se opravdu dostat na to. 50 00:01:54,420 --> 00:01:57,180 Ukazuje se, že počítače typicky, bude vždy jen 51 00:01:57,180 --> 00:01:59,690 použít dispozici omezené množství informací představovat něco. 52 00:01:59,690 --> 00:01:59,870 Je to tak? 53 00:01:59,870 --> 00:02:02,110 Koneckonců, máme fixní pouze Množství místa na pevném disku. 54 00:02:02,110 --> 00:02:04,210 Máme jen pevně stanovenou částku RAM, nebo paměť počítače. 55 00:02:04,210 --> 00:02:06,251 A pokud budete mít pouze pevná částka na něco, 56 00:02:06,251 --> 00:02:09,611 jistě nelze vlastně spočítat do nekonečna nebo jakékoliv číslo, které chcete. 57 00:02:09,611 --> 00:02:11,610 Ty, druh, musí zvolit, co rozsah 58 00:02:11,610 --> 00:02:13,220 hodnot budete podporovat. 59 00:02:13,220 --> 00:02:18,100 >> A tak například, týden nebo dva dávno, když jsme mluvili o ASCII, 60 00:02:18,100 --> 00:02:21,610 a Mluvili jsme o 8 bitů, nebo byte, abych tak řekl, 61 00:02:21,610 --> 00:02:26,360 Nejvíce jsme mohli představují s 8 bitů bylo to, co? 62 00:02:26,360 --> 00:02:28,350 255. 63 00:02:28,350 --> 00:02:31,850 A můžeme reprezentovat 256 celkové hodnoty ale ne v případě, strávíme jeden z nich 64 00:02:31,850 --> 00:02:34,190 na 0-- No, ale budeme-li strávit jeden z nich na 0, 65 00:02:34,190 --> 00:02:36,830 pak největší počet je, samozřejmě, 255. 66 00:02:36,830 --> 00:02:39,410 >> Tak se ukázalo, že se jedná v případě příliš, v této souvislosti. 67 00:02:39,410 --> 00:02:42,350 Začali jsme mluvit, minule, o číslech s plovoucí desetinnou čárkou, které 68 00:02:42,350 --> 00:02:44,640 se liší od celých čísel, v že mají desetinnou čárku 69 00:02:44,640 --> 00:02:47,056 a doufejme, některá čísla po tom, ale jsou příliš. 70 00:02:47,056 --> 00:02:51,730 Počítač je pouze obvykle děje k použití 32 bitů, 64 bitů možná 71 00:02:51,730 --> 00:02:53,497 reprezentovat plovoucí bodovou hodnotu. 72 00:02:53,497 --> 00:02:56,080 Takže i když jsme vyrostli učení matematiky a vědět, 73 00:02:56,080 --> 00:02:58,750 že můžete mít absolutně nekonečný počet čísel 74 00:02:58,750 --> 00:03:01,650 za desetinnou čárkou, nikoli Máte-li konečný paměť. 75 00:03:01,650 --> 00:03:03,930 Ty, druh, mají na kole, nebo vybrat, které 76 00:03:03,930 --> 00:03:05,346 Čísla budete reprezentovat. 77 00:03:05,346 --> 00:03:08,710 A tak si můžete myslet, v jistém smyslu, což je počítač je nejbližší 78 00:03:08,710 --> 00:03:14,050 přiblížení na hodnotu 1/10, který to může dostat, jen s 32 nebo tak bitů. 79 00:03:14,050 --> 00:03:15,300 A není to jen 1 desettin. 80 00:03:15,300 --> 00:03:19,820 >> Například, když změním to Třetiny, což si myslíme, že je ještě jednodušší. 81 00:03:19,820 --> 00:03:21,300 Takže 1 děleno 3. 82 00:03:21,300 --> 00:03:22,355 Dovolte mi, abych uložit soubor. 83 00:03:22,355 --> 00:03:24,680 Nech mě jít napřed a překompilovat ji. 84 00:03:24,680 --> 00:03:25,820 A dovolte mi znovu spusťte jej. 85 00:03:25,820 --> 00:03:30,000 I zde, zřejmě, 1/3 není 0.3 a pak nekonečné množství 3 let 86 00:03:30,000 --> 00:03:30,770 poté. 87 00:03:30,770 --> 00:03:32,540 Máte tuto nepřesnost na konci. 88 00:03:32,540 --> 00:03:35,544 Takže my lidé jsou správné, a co jste se naučili je, ve skutečnosti, správný, 89 00:03:35,544 --> 00:03:37,460 ale my narážela nahoru proti některým omezením. 90 00:03:37,460 --> 00:03:39,420 >> A to, co jsem si myslel, bychom udělat dnes, je začít 91 00:03:39,420 --> 00:03:42,190 při pohledu na, upřímně se Tragické následky tohoto 92 00:03:42,190 --> 00:03:45,490 Někdy, když lidstvo není zcela realizovat 93 00:03:45,490 --> 00:03:48,460 pro tuto realitu a těmito omezeními. 94 00:03:48,460 --> 00:03:52,360 A uvidíme sérii známek od History Channel, který bere 95 00:03:52,360 --> 00:03:53,950 Podívejte se, jak věci šly špatně. 96 00:03:53,950 --> 00:03:56,340 To je asi 8 minut, a vrátíme se po tomto 97 00:03:56,340 --> 00:03:59,439 a podívejte se na přesně to, co ještě může pokazit. 98 00:03:59,439 --> 00:04:00,605 Kdybychom mohli ztlumit lights-- 99 00:04:00,605 --> 00:04:02,350 >> [VIDEOPŘEHRÁVÁNÍ] 100 00:04:02,350 --> 00:04:06,310 >> -Computers, Všichni jsme si zvykli na se často nepříjemné problémy, které 101 00:04:06,310 --> 00:04:07,750 jít s nimi. 102 00:04:07,750 --> 00:04:11,370 Chyby, viry, a software závady jsou malé ceny 103 00:04:11,370 --> 00:04:13,230 platit pro pohodlí. 104 00:04:13,230 --> 00:04:17,519 Ale v high-tech a high-speed vojenské a vesmírný program aplikace, 105 00:04:17,519 --> 00:04:22,130 nejmenší problém může zvětšovat do katastrofy. 106 00:04:22,130 --> 00:04:27,750 Dne 4. června 1996, zpracovali vědci zahájit bezpilotní Ariane 5 rakety. 107 00:04:27,750 --> 00:04:29,890 To nesl vědecké satelity navržený 108 00:04:29,890 --> 00:04:33,030 stanovit přesně, jak se Zemské magnetické pole interaguje 109 00:04:33,030 --> 00:04:35,600 se solárními větry. 110 00:04:35,600 --> 00:04:37,930 Raketa byla postavena pro Evropská kosmická agentura 111 00:04:37,930 --> 00:04:41,620 a odstartovala z jeho zařízení na pobřeží Francouzské Guyany. 112 00:04:41,620 --> 00:04:44,924 >> -A Asi 30 sekund do let, se poprvé 113 00:04:44,924 --> 00:04:46,340 si všiml, se něco děje špatně. 114 00:04:46,340 --> 00:04:49,280 Že trysky byly otočné ve způsobu, jakým by se měl opravdu ne. 115 00:04:49,280 --> 00:04:53,042 Kolem 40 sekund do letu, jasně vozidlo bylo v potížích, 116 00:04:53,042 --> 00:04:55,250 a to je, když oni dělali rozhodnutí ho zničit. 117 00:04:55,250 --> 00:04:58,970 Rozmezí důstojník s bezpečnostní obrovské střeva stiskl tlačítko, 118 00:04:58,970 --> 00:05:03,940 vyhodil raketu předtím to mohlo být nebezpečné pro veřejnou bezpečnost. 119 00:05:03,940 --> 00:05:06,600 >> Tohle byla dívka plavba Ariane 5, 120 00:05:06,600 --> 00:05:09,270 a jeho zničení vzal místo z důvodu chyby 121 00:05:09,270 --> 00:05:10,992 vložené do softwaru rakety. 122 00:05:10,992 --> 00:05:12,700 -The Problém na Ariane bylo, že 123 00:05:12,700 --> 00:05:15,370 bylo číslo, které vyžaduje 64 bitů vyjádřit, 124 00:05:15,370 --> 00:05:18,150 a chtěl převést to na 16 bitové číslo. 125 00:05:18,150 --> 00:05:21,160 Předpokládali, že čísla se nikdy nebude velmi velký, 126 00:05:21,160 --> 00:05:25,020 , že většina z těchto číslic v 64 bit číslo bylo 0 je. 127 00:05:25,020 --> 00:05:26,310 Mýlili se. 128 00:05:26,310 --> 00:05:28,680 >> -The Neschopnost jednoho softwarový program přijmout 129 00:05:28,680 --> 00:05:32,820 druh číslo generované jiný byl u kořene selhání. 130 00:05:32,820 --> 00:05:37,190 Vývoj softwaru se stal velmi nákladné součástí nové technologie. 131 00:05:37,190 --> 00:05:40,760 Ariane 4 Raketa byla velmi úspěšná, tak velkou část softwaru 132 00:05:40,760 --> 00:05:43,990 vytvořen pro to bylo také použitý na Ariane 5. 133 00:05:43,990 --> 00:05:49,750 >> -The Základním problémem bylo to, že Ariane 5 byl rychlejší, zrychlil rychleji. 134 00:05:49,750 --> 00:05:53,000 A software neměl představoval, že. 135 00:05:53,000 --> 00:05:56,330 >> -The Zničení rakety byl obrovský finanční katastrofa, 136 00:05:56,330 --> 00:05:59,670 vše z důvodu chyby minut softwaru. 137 00:05:59,670 --> 00:06:01,990 Ale to nebyl první Problémy s konverzí dat časové 138 00:06:01,990 --> 00:06:05,310 byl sužován moderní raketové techniky. 139 00:06:05,310 --> 00:06:08,300 >> -V 1.991, se startem války v Perském zálivu prvé, 140 00:06:08,300 --> 00:06:10,650 Patriot raketa zažila podobný typ 141 00:06:10,650 --> 00:06:12,650 konverzního číslo problému. 142 00:06:12,650 --> 00:06:15,620 V důsledku toho se 28 lidí, 28 amerických vojáků 143 00:06:15,620 --> 00:06:18,440 bylo zabito a asi 100 jiní zraněný, 144 00:06:18,440 --> 00:06:21,900 když Patriot, který měl k ochraně proti příchozí scudy, 145 00:06:21,900 --> 00:06:24,630 nedokázal vystřelit raketu. 146 00:06:24,630 --> 00:06:29,440 >> -Když Irák napadl Kuvajt a Ameriku zahájena Pouštní bouře na počátku roku 1991, 147 00:06:29,440 --> 00:06:33,800 Patriot raketová baterie byly nasazeny chránit Saúdská Arábie a Izrael 148 00:06:33,800 --> 00:06:37,000 z iráckých Scud raketových útoků. 149 00:06:37,000 --> 00:06:40,610 Patriot je v USA, středního doletu povrch-k-vzduch systém 150 00:06:40,610 --> 00:06:43,010 vyráběné společností Raytheon. 151 00:06:43,010 --> 00:06:49,080 >> -Velikost Patriot interceptor, sám o sobě, je o zhruba 20 stop dlouhý. 152 00:06:49,080 --> 00:06:51,250 A váží asi 2000 liber. 153 00:06:51,250 --> 00:06:55,195 A to s sebou nese bojovou hlavici o about-- Myslím, že to je zhruba 150 liber. 154 00:06:55,195 --> 00:06:59,500 A hlavice, sám, je vysoce výbušný, 155 00:06:59,500 --> 00:07:02,570 který má fragmenty kolem něj. 156 00:07:02,570 --> 00:07:06,890 Pouzdro hlavice je navrženy tak, aby chovat jako hrubé broky. 157 00:07:06,890 --> 00:07:09,130 >> -The Rakety jsou prováděny, 4 na obalu, 158 00:07:09,130 --> 00:07:12,080 a jsou přepravovány návěsu. 159 00:07:12,080 --> 00:07:19,100 >> -The Patriot proti raketový systém sahá nejméně 20 let. 160 00:07:19,100 --> 00:07:22,320 To bylo původně navržené jako vzdušná obrana rakety 161 00:07:22,320 --> 00:07:24,180 sestřelit nepřátelské letouny. 162 00:07:24,180 --> 00:07:27,860 Ve válce v Perském zálivu prvé, když ta válka přišla, 163 00:07:27,860 --> 00:07:32,745 Armáda chtěla používat to, aby sestřelit scudy, ne letadel. 164 00:07:32,745 --> 00:07:36,150 Irácká síla nebyla tak velký problém, 165 00:07:36,150 --> 00:07:39,110 ale armáda byla starosti scudy. 166 00:07:39,110 --> 00:07:42,340 A tak se pokusili upgrade Patriot. 167 00:07:42,340 --> 00:07:44,760 >> -Intercepting Nepřítele raketa cestování u Macha pět 168 00:07:44,760 --> 00:07:47,250 šel být dost náročné. 169 00:07:47,250 --> 00:07:50,000 Ale když Patriot byl běhavý do provozu, 170 00:07:50,000 --> 00:07:54,030 armáda nebyl vědom Irácký modifikace, které dělal 171 00:07:54,030 --> 00:07:56,840 jejich Pluje téměř nemožné zasáhnout. 172 00:07:56,840 --> 00:08:01,020 >> Co se stalo, je, že Pluje přicházely, byly nestabilní, 173 00:08:01,020 --> 00:08:02,310 byly kymácení. 174 00:08:02,310 --> 00:08:05,140 Důvodem pro to, byl Iráčany, aby 175 00:08:05,140 --> 00:08:09,450 dostat 600 kilometrů z 300km doletu, 176 00:08:09,450 --> 00:08:12,930 vzal váhu z předního hlavice a dělal hlavice lehčí. 177 00:08:12,930 --> 00:08:17,710 Takže teď, Patriot se snaží přijít na plout, a většinu času, 178 00:08:17,710 --> 00:08:21,700 drtivá většina z Tentokrát to bude jen létat plout. 179 00:08:21,700 --> 00:08:25,700 >> -Jakmile Provozovatelů Systém Patriot si uvědomil, že Patriot minula svůj cíl, 180 00:08:25,700 --> 00:08:29,790 oni odpálili Patriot v hlavici, aby se zabránilo možným obětem jestliže to 181 00:08:29,790 --> 00:08:32,380 nechá spadnout na zem. 182 00:08:32,380 --> 00:08:36,340 >> -To Je to, co většina lidí viděl, Ty velké ohnivé koule na obloze, 183 00:08:36,340 --> 00:08:41,289 a nepochopený as zachytí Scud hlavic. 184 00:08:41,289 --> 00:08:43,590 I když v noci nebe, se objevil Patriots 185 00:08:43,590 --> 00:08:47,020 úspěšně být ničit scudy, na Zahránu, 186 00:08:47,020 --> 00:08:49,730 tam mohl být žádná chyba o jeho výkonnosti. 187 00:08:49,730 --> 00:08:53,990 Tam, radarový systém Patriot ztratil na příchozí Scud, 188 00:08:53,990 --> 00:08:56,650 a nikdy zahájen, vzhledem k software chybu. 189 00:08:56,650 --> 00:08:59,650 190 00:08:59,650 --> 00:09:04,100 Byl to Izraelce, kteří jako první objevili , že čím delší je systém byl na, 191 00:09:04,100 --> 00:09:07,510 tím větší je časový nesoulad se stal v důsledku hodiny vložený 192 00:09:07,510 --> 00:09:09,490 V počítači systému. 193 00:09:09,490 --> 00:09:12,670 >> -O 2 týdny před tragédie v Dhahran, 194 00:09:12,670 --> 00:09:15,010 Izraelci hlášeno ministerstvo obrany, 195 00:09:15,010 --> 00:09:17,940 že systém byl čas ztrácí, že po přibližně 8 hodinách provozu, 196 00:09:17,940 --> 00:09:21,410 si všimli, že systém byl stále znatelně méně přesné. 197 00:09:21,410 --> 00:09:25,290 Ministerstvo obrany odpověděl tím, že říkat všechny baterie Patriot 198 00:09:25,290 --> 00:09:28,070 nenechat systémy na dlouhou dobu. 199 00:09:28,070 --> 00:09:29,960 Oni nikdy neřekl to, co dávno byl. 200 00:09:29,960 --> 00:09:30,460 8 hodin? 201 00:09:30,460 --> 00:09:30,960 10 hodin? 202 00:09:30,960 --> 00:09:31,870 1000 hodin? 203 00:09:31,870 --> 00:09:33,734 Nikdo nevěděl. 204 00:09:33,734 --> 00:09:35,650 -The Patriot baterie umístěný v kasárnách 205 00:09:35,650 --> 00:09:40,410 na Zahránu a její chybné interní hodiny, byl na více než 100 hodin 206 00:09:40,410 --> 00:09:43,041 v noci 25. února. 207 00:09:43,041 --> 00:09:47,416 >> -To Sledoval čas s přesností asi 1/10 sekundy. 208 00:09:47,416 --> 00:09:49,290 Nyní 1 desetiny sekundy, je zajímavá čísla 209 00:09:49,290 --> 00:09:52,700 protože to nemůže být vyjádřené v binární, přesně tak. 210 00:09:52,700 --> 00:09:54,820 Což znamená, že nemůže být vyjádřen, přesně, 211 00:09:54,820 --> 00:09:57,420 v každém moderním digitálním počítači. 212 00:09:57,420 --> 00:10:01,460 Je těžké uvěřit, ale použít jako příklad. 213 00:10:01,460 --> 00:10:03,520 Vezměme si číslo 1/3. 214 00:10:03,520 --> 00:10:07,110 Třetiny nelze vyjádřit v desítkové soustavě, přesně tak. 215 00:10:07,110 --> 00:10:11,490 Třetin je 0,333 děje na nekonečno. 216 00:10:11,490 --> 00:10:15,486 Neexistuje žádný způsob, jak to udělat, s absolutní přesnost, v desítkové soustavě. 217 00:10:15,486 --> 00:10:18,360 To je přesně stejný druh Problém, který se stalo v Patriot. 218 00:10:18,360 --> 00:10:22,510 Čím delší je systém běžel se horší stal čas k chybě. 219 00:10:22,510 --> 00:10:28,420 >> -Po 100 hodinách provozu, chyba v době byl jen asi 1/3 sekundy. 220 00:10:28,420 --> 00:10:31,830 Ale pokud jde o cílení raketa jede 5 Mach, 221 00:10:31,830 --> 00:10:35,890 to vedlo k sledování Chyba více než 600 metrů. 222 00:10:35,890 --> 00:10:38,970 Bylo by fatální chyba pro vojáky v Zahránu. 223 00:10:38,970 --> 00:10:45,035 >> Co se stalo, je Scud start byl detekovány včasného varování satelity, 224 00:10:45,035 --> 00:10:48,930 a nový, že Scud byl přichází ve svém obecném směru. 225 00:10:48,930 --> 00:10:51,170 Nevěděli, kam že to přijde. 226 00:10:51,170 --> 00:10:53,990 >> -To Byl nyní až k radaru složkou systému Patriot, 227 00:10:53,990 --> 00:10:58,520 bránit Dhahran, najít a udržet Trať příchozí nepřátelské rakety. 228 00:10:58,520 --> 00:10:59,690 >> -The Radar byl velmi chytrý. 229 00:10:59,690 --> 00:11:01,710 To by ve skutečnosti sledovat poloha Scud 230 00:11:01,710 --> 00:11:04,040 a pak předpovědět, kde to asi bude, 231 00:11:04,040 --> 00:11:06,140 příště se radar poslal puls ven. 232 00:11:06,140 --> 00:11:07,660 To bylo nazýváno rozsah brána. 233 00:11:07,660 --> 00:11:11,870 >> -Tak, Jakmile Patriot Rozhodne dost času má 234 00:11:11,870 --> 00:11:16,280 prošel se vrátit a zkontrolovat další umístění pro tuto zjištěným objektem, 235 00:11:16,280 --> 00:11:17,280 se vrátí zpět. 236 00:11:17,280 --> 00:11:21,690 Takže když se vrátil k špatný místo, to pak nevidí objekt 237 00:11:21,690 --> 00:11:25,230 a rozhodne, že neexistuje objekt, to byla falešná detekce, 238 00:11:25,230 --> 00:11:26,650 a kapky trať. 239 00:11:26,650 --> 00:11:29,690 Příchozí Scud zmizel z obrazovky radaru, 240 00:11:29,690 --> 00:11:32,670 a vteřin později ji narazila do kasáren. 241 00:11:32,670 --> 00:11:38,100 Plout zabil 28 a bylo to poslední, jednou během války v Perském zálivu první vystřelil. 242 00:11:38,100 --> 00:11:43,460 Je tragické, že aktualizovaný software dorazil Zahránu následující den. 243 00:11:43,460 --> 00:11:46,150 Tento software vada měl bylo opraveno, zavírání 244 00:11:46,150 --> 00:11:48,940 jedna kapitola v problémové Historie Patriot střely. 245 00:11:48,940 --> 00:11:50,220 >> [END Přehrávání] 246 00:11:50,220 --> 00:11:54,340 >> DAVID J Malan: Takže budeme se podívat na Některé podobné omezení při jen trochu. 247 00:11:54,340 --> 00:11:58,470 Ale nejprve, pojďme Přechod na několik FYI je. 248 00:11:58,470 --> 00:12:01,575 Takže one-- tento víkend, tam bude flash sekcí, 249 00:12:01,575 --> 00:12:04,200 které jsou určeny k nahradit Pravidelně v naplánovaném profily, které 250 00:12:04,200 --> 00:12:05,460 se spustí za týden odsud. 251 00:12:05,460 --> 00:12:08,204 Podívejte se na webové stránky CS50 je Pro více informací o nich. 252 00:12:08,204 --> 00:12:11,120 Budou také natočen a streamovat žít pro ty, kteří nemohou zúčastnit. 253 00:12:11,120 --> 00:12:12,980 Problém sada 1 je na Webové stránky již hřiště je, 254 00:12:12,980 --> 00:12:15,105 a my se podívat na že v jen trochu. 255 00:12:15,105 --> 00:12:18,350 A také úřední hodiny, bude mít umístit tento od pondělí do čtvrtka. 256 00:12:18,350 --> 00:12:20,960 >> Tak tohle bylo nejvíce kanonická Program jsme se podívali na minule. 257 00:12:20,960 --> 00:12:23,590 Je to jako nejjednodušší Program můžete psát v C, 258 00:12:23,590 --> 00:12:25,250 a dokonce i to je trochu odvážné tvrzení. 259 00:12:25,250 --> 00:12:25,750 Je to tak? 260 00:12:25,750 --> 00:12:28,070 Protože tam je hodně zdálo složitost v této oblasti. 261 00:12:28,070 --> 00:12:30,445 Takže pojďme se rychle podívat na to, co některé z těchto prvků 262 00:12:30,445 --> 00:12:33,080 byly a pak se snažíme poskytnout mentální model, jak 263 00:12:33,080 --> 00:12:35,710 ty nejjednodušší programů pracovat, a pak začneme 264 00:12:35,710 --> 00:12:38,050 při pohledu na věci stále složitější. 265 00:12:38,050 --> 00:12:41,280 Takže tento řádek tady, zdůraznil nyní, žlutě, co jsme říct, minule, 266 00:12:41,280 --> 00:12:43,200 že to dělá pro nás? 267 00:12:43,200 --> 00:12:45,220 Jaký je účel to slouží? 268 00:12:45,220 --> 00:12:46,984 Každý, kdo se dál zpět? 269 00:12:46,984 --> 00:12:47,483 Jo. 270 00:12:47,483 --> 00:12:48,649 >> Divačka: [Neslyšitelné] 271 00:12:48,649 --> 00:12:50,871 272 00:12:50,871 --> 00:12:51,704 DAVID J Malan: Dobrý. 273 00:12:51,704 --> 00:12:53,537 Tak to vám dává přístup na příkazy, nebo pojďme 274 00:12:53,537 --> 00:12:56,750 Funkce volání je, že někdo jinde napsal, že jsou deklarovány, 275 00:12:56,750 --> 00:12:58,350 tak říkajíc, v nějakém jiném souboru. 276 00:12:58,350 --> 00:13:02,370 Tak uvidíme, přesně to, co .h soubor je oproti souboru .c, popř. 277 00:13:02,370 --> 00:13:04,710 Ale teď, jen vím, že printf, například, 278 00:13:04,710 --> 00:13:08,370 je mezi funkcemi, které byly deklarované v nějakém jiném souboru, někde 279 00:13:08,370 --> 00:13:12,930 jinde na pevném disku mraku, který nám umožňuje přistupovat k printf a používat jej 280 00:13:12,930 --> 00:13:15,240 aniž by bylo nutné znovu vynalézat že kola sami. 281 00:13:15,240 --> 00:13:16,930 Mezitím, hlavní. 282 00:13:16,930 --> 00:13:19,690 Jaký byl analog hlavní, minulý týden? 283 00:13:19,690 --> 00:13:20,190 Jo. 284 00:13:20,190 --> 00:13:21,460 >> Divačka: Zelená vlajka kliknutí. 285 00:13:21,460 --> 00:13:21,740 >> DAVID J Malan: Jo. 286 00:13:21,740 --> 00:13:23,490 Scratch je, když zelená vlajka klepnutí. 287 00:13:23,490 --> 00:13:25,560 Je to jako puzzle že míč věci pryč. 288 00:13:25,560 --> 00:13:28,306 A tak podobně, to dělal svět se rozhodl před několika lety, že v C, 289 00:13:28,306 --> 00:13:30,930 a spoustu dalších jazyků, Chcete-li napsat program, 290 00:13:30,930 --> 00:13:33,410 vaše první funkce musí být nazýván, hlavní. 291 00:13:33,410 --> 00:13:34,641 A to musí vypadat takto. 292 00:13:34,641 --> 00:13:36,640 Ale my se vrátíme, jindy, s čím, int, 293 00:13:36,640 --> 00:13:38,690 a, void, znamená v tomto kontextu. 294 00:13:38,690 --> 00:13:42,860 Pro tuto chvíli, složené závorky jsou laskaví jako se Scratch je skládačky tvaru 295 00:13:42,860 --> 00:13:45,080 zapouzdřující určitý počet řádků. 296 00:13:45,080 --> 00:13:47,070 A mezi na tratích tady, je tohle tady. 297 00:13:47,070 --> 00:13:51,610 printf je funkce, jejíž účel život je vytisknout formátovaný řetězec. 298 00:13:51,610 --> 00:13:55,010 A formátovaný, mám na mysli vás mohou připojit zástupnými hodnotami, 299 00:13:55,010 --> 00:13:58,360 a můžete určit, kolik desetinné místo bodů, kolik čísel vytisknout 300 00:13:58,360 --> 00:14:00,040 po desetinnou čárkou a podobně. 301 00:14:00,040 --> 00:14:05,040 A printf, samozřejmě, trvá jeden nebo více argumenty nebo parametry, 302 00:14:05,040 --> 00:14:06,770 jinak známý, jednodušeji, jako vstupy. 303 00:14:06,770 --> 00:14:09,230 >> Takže printf, jako hodně funkce, bere vstupy. 304 00:14:09,230 --> 00:14:12,730 A tyto vstupy jsou zahrnuty dvěma závorkách zde. 305 00:14:12,730 --> 00:14:15,180 A uvnitř nich je jeden vstup. 306 00:14:15,180 --> 00:14:18,600 Je to řetězec, jak jsme to nazval, což je jen posloupnost znaků, 307 00:14:18,600 --> 00:14:22,310 jako slovo nebo frázi, nebo celku esej dokonce mezi uvozovkách. 308 00:14:22,310 --> 00:14:25,712 A to je to, co se děje na ovlivňovat Chování printf, protože, samozřejmě, 309 00:14:25,712 --> 00:14:27,170 je to jen obecný funkce tisku. 310 00:14:27,170 --> 00:14:29,600 To nebude vědět, co k tisku, pokud ji říct. 311 00:14:29,600 --> 00:14:31,000 A pak, někteří markanty. 312 00:14:31,000 --> 00:14:34,056 Co říkáme to divný posloupnost symbolů, je? 313 00:14:34,056 --> 00:14:34,556 Jo. 314 00:14:34,556 --> 00:14:35,410 >> Divačka: Nová řada. 315 00:14:35,410 --> 00:14:35,990 >> DAVID J Malan: Nová řada. 316 00:14:35,990 --> 00:14:39,340 Tak to dopadá, můžete nejen zasáhnout, vstoupit, když píšete program. 317 00:14:39,340 --> 00:14:42,590 Obecně platí, že kompilátor dostane trochu zmatený, jak na to, co máte na mysli. 318 00:14:42,590 --> 00:14:45,340 Spíše, musíte doslova říkají, dej mi nový řádek zde. 319 00:14:45,340 --> 00:14:49,506 A tak / n je to, co jsme se obecně zavolejte znak escape. 320 00:14:49,506 --> 00:14:50,870 Takže n, na nový řádek. 321 00:14:50,870 --> 00:14:53,810 A kompilátor ví, že když vidí / n, 322 00:14:53,810 --> 00:14:57,420 že by se ve skutečnosti vyvolat počítače, v konečném důsledku, nebo printf, v tomto případě, 323 00:14:57,420 --> 00:15:00,260 vytisknout aktuální Novinka linka, stejně jako bít, zadejte, 324 00:15:00,260 --> 00:15:01,480 klávesu na klávesnici. 325 00:15:01,480 --> 00:15:05,620 A konečně, co udělal říkáme Tento kus syntaxe je pro? 326 00:15:05,620 --> 00:15:06,591 Co to představuje? 327 00:15:06,591 --> 00:15:07,090 Jo. 328 00:15:07,090 --> 00:15:07,490 >> Divačka: [Neslyšitelné] 329 00:15:07,490 --> 00:15:08,660 >> DAVID J Malan: Je to jen konec řádku. 330 00:15:08,660 --> 00:15:09,909 Je to konec prohlášení. 331 00:15:09,909 --> 00:15:11,890 A uvědomit si, že my ne dát je všude. 332 00:15:11,890 --> 00:15:13,900 Určitě ne dát je na koncích každého řádku. 333 00:15:13,900 --> 00:15:16,680 Například, tam nic není na první řádek, je tu nikdo na lince 334 00:15:16,680 --> 00:15:18,680 s, hlavní, tam nic není po složených závorkách, 335 00:15:18,680 --> 00:15:21,740 ale začnete vidět a získat obeznámeni s tím, kde je to jen pro. 336 00:15:21,740 --> 00:15:26,014 A to je téměř vždy po funkci volat nebo prohlášení, některé akce 337 00:15:26,014 --> 00:15:27,180 že jste skutečně užívat. 338 00:15:27,180 --> 00:15:29,520 >> A vím teď, a to zejména v případě, mezi ty méně pohodlné, 339 00:15:29,520 --> 00:15:32,540 to jsou druhy hloupé věci že skončíte omylem výprask 340 00:15:32,540 --> 00:15:33,873 hlavou proti zdi nad. 341 00:15:33,873 --> 00:15:36,107 Vzhledem k tomu, budete logicky důvěru v nějakém problému 342 00:15:36,107 --> 00:15:38,440 jste vyřešil pro problém set, a ta zatracená věc právě 343 00:15:38,440 --> 00:15:40,187 nebude kompilovat ani spustit. 344 00:15:40,187 --> 00:15:43,270 A tak často, na začátku, bude to být proto, že jste vynechal závorky, 345 00:15:43,270 --> 00:15:44,455 nebo jste vynechal středník. 346 00:15:44,455 --> 00:15:46,547 A tak jen budou mít na zřeteli tyto druhy věcí, 347 00:15:46,547 --> 00:15:49,380 a pokusit se dostat frustrovaný je, protože velmi rychle to dělá 348 00:15:49,380 --> 00:15:50,640 stát se stará vesta. 349 00:15:50,640 --> 00:15:53,910 Ale je to velmi snadné se dostat frustrovaný brzy, jako výsledek. 350 00:15:53,910 --> 00:15:57,020 >> Takže teď, pojďme se podívat na to, jak Tato linka je skutečně pracuje 351 00:15:57,020 --> 00:15:59,170 a pak se podívejte na mírně složitější jednu. 352 00:15:59,170 --> 00:16:02,017 Takže máme tady se schopnost vypracovat na této obrazovce. 353 00:16:02,017 --> 00:16:04,100 A předpokládejme, že tohle je moje obrazovka počítače, 354 00:16:04,100 --> 00:16:08,589 ale já jsem psaní, ahoj programu, a já neprovedly, printf. 355 00:16:08,589 --> 00:16:10,130 Někdo jiný zavedla, printf. 356 00:16:10,130 --> 00:16:12,420 Kdo by chtěl tvrdit, že zavedly, printf? 357 00:16:12,420 --> 00:16:12,920 Pokud se nám může? 358 00:16:12,920 --> 00:16:13,830 Dobře, Jak se jmenujete? 359 00:16:13,830 --> 00:16:14,155 >> STUDENT 1: [? Copal. ?] 360 00:16:14,155 --> 00:16:15,529 >> DAVID J Malan: Copal, pojď nahoru. 361 00:16:15,529 --> 00:16:16,430 Pojď nahoru. 362 00:16:16,430 --> 00:16:17,070 Dobře. 363 00:16:17,070 --> 00:16:22,260 Takže máme tady, některé jmenovky, protože uděláme malou hru tohoto. 364 00:16:22,260 --> 00:16:26,270 A my vám zavolá, printf. 365 00:16:26,270 --> 00:16:30,170 A pokud chcete, aby sem přišel, to, co jsem právě natažený na obrazovce, 366 00:16:30,170 --> 00:16:32,340 je to docela jednoduše, tam jsem já, tohle. 367 00:16:32,340 --> 00:16:35,550 >> Dobře, takže, ahoj jmenuji se, printf, pokud byste chtěli, aby si to. 368 00:16:35,550 --> 00:16:35,740 Dobře. 369 00:16:35,740 --> 00:16:37,360 A pokud můžete jít stánek podle obrazovce počítače 370 00:16:37,360 --> 00:16:39,730 jako kdyby jste funkci, kterou přišel s tímto počítačovým systémem. 371 00:16:39,730 --> 00:16:42,063 A váš cíl v životě je aby skutečně něco vytisknout. 372 00:16:42,063 --> 00:16:44,560 Ale podobně jako programu jsme prostě musel na obrazovce, zde, 373 00:16:44,560 --> 00:16:47,060 budeme muset skutečně dát vám nějaký vstup. 374 00:16:47,060 --> 00:16:51,810 >> A tak, pokud můj vstup, tady, je zdá se, že to, co je předán do printf, 375 00:16:51,810 --> 00:16:53,730 pojďme trochu mock to takhle. 376 00:16:53,730 --> 00:16:58,720 Chystám se doslova psát na kus papíru, "ahoj, svět" 377 00:16:58,720 --> 00:17:03,020 zpětné lomítko N. A aby bylo jasné, co se Právě jsem natažený na tento kus papíru, 378 00:17:03,020 --> 00:17:04,020 vypadá takto. 379 00:17:04,020 --> 00:17:08,730 Takže když jsem spuštění tohoto programu, a to žlutá řádek kódu dostane popraven, 380 00:17:08,730 --> 00:17:12,970 je to, jako bych, program Dobrý den, jsem podal nějaký vstup pryč do funkce 381 00:17:12,970 --> 00:17:13,970 že někdo jiný napsal. 382 00:17:13,970 --> 00:17:16,595 >> A pokud se vám, prstem, mohl ve skutečnosti, prstem, 383 00:17:16,595 --> 00:17:21,520 kreslit na obrazovku cokoliv jsi to ty, které byly odevzdány, 384 00:17:21,520 --> 00:17:27,465 účinek, nakonec, je přesně vidět, že na obrazovce. 385 00:17:27,465 --> 00:17:29,140 A malý koutek případ. 386 00:17:29,140 --> 00:17:31,540 A dobře, neměli bychom vidět závěrky, nový řádek, v tomto bodě. 387 00:17:31,540 --> 00:17:33,900 Bylo by nesprávné pro vás explicitně nakreslit nový řádek. 388 00:17:33,900 --> 00:17:36,810 Ale pokud budeme stále psát slova na obrazovka, by skončit pod tím. 389 00:17:36,810 --> 00:17:39,560 >> Takže děkuji moc, ale držet jen na jednu chvíli tady. 390 00:17:39,560 --> 00:17:42,860 Nyní potřebujeme jeden další dobrovolník, kdybychom mohli, 391 00:17:42,860 --> 00:17:46,830 že to bude muset hrát roli of-- Je to jen lidi v orchestru 392 00:17:46,830 --> 00:17:47,355 právě teď. 393 00:17:47,355 --> 00:17:47,980 Jak about-- OK. 394 00:17:47,980 --> 00:17:48,480 Právě tady. 395 00:17:48,480 --> 00:17:49,180 Pojď nahoru. 396 00:17:49,180 --> 00:17:49,955 Jak se jmenuješ? 397 00:17:49,955 --> 00:17:50,922 >> Student 2: [? Ivay. ?] 398 00:17:50,922 --> 00:17:51,796 DAVID J Malan: Sorry? 399 00:17:51,796 --> 00:17:52,990 Student 2: [? Ivay. ?] 400 00:17:52,990 --> 00:17:55,320 DAVID J Malan: Ethan, pojď nahoru. 401 00:17:55,320 --> 00:17:55,820 Ne? 402 00:17:55,820 --> 00:17:58,390 Řekl jsem si, že špatně, dokonce i poté, co jste ho dvakrát říkal? 403 00:17:58,390 --> 00:17:58,890 Pojď nahoru. 404 00:17:58,890 --> 00:18:00,030 Je těžké slyšet tady. 405 00:18:00,030 --> 00:18:05,240 406 00:18:05,240 --> 00:18:05,740 DOBŘE. 407 00:18:05,740 --> 00:18:07,190 A je mi líto, Jak se jmenujete? 408 00:18:07,190 --> 00:18:07,680 >> Student 2: [? Ivay. ?] 409 00:18:07,680 --> 00:18:08,790 >> [? DAVID J Malan: Ivay. ?] DOBŘE. 410 00:18:08,790 --> 00:18:10,430 Pro tuto chvíli, pokud nemáte mysl, jste getString. 411 00:18:10,430 --> 00:18:11,013 >> Student 2: OK. 412 00:18:11,013 --> 00:18:11,797 Super. 413 00:18:11,797 --> 00:18:14,630 DAVID J Malan: Takže pokud byste chtěli stát tu jen na chvíli, 414 00:18:14,630 --> 00:18:17,100 pojďme se podívat na mírně více komplexní program, který 415 00:18:17,100 --> 00:18:18,670 Nyní má tři řádky kódu. 416 00:18:18,670 --> 00:18:24,080 Takže máme, člověk, uveďte své jméno pomocí printf; dva, volání getString, 417 00:18:24,080 --> 00:18:28,060 následuje přiřazení k variabilní volal, řetězec s, nebo tzv s; 418 00:18:28,060 --> 00:18:31,260 a pak další volání, printf, ale tentokrát se dvěma vstupy. 419 00:18:31,260 --> 00:18:33,646 >> Takže jsme už udělali stav Vaše jméno, nebo spíše, máme 420 00:18:33,646 --> 00:18:34,770 již udělali printf volání. 421 00:18:34,770 --> 00:18:38,960 Takže budu psát, Uveďte své jméno. 422 00:18:38,960 --> 00:18:42,089 A tak, co budu projít, printf, za chvíli, 423 00:18:42,089 --> 00:18:43,005 je poměrně jednoduše, to. 424 00:18:43,005 --> 00:18:47,760 Takže pokud chcete jít dopředu a kreslit to Na obrazovce se, že je to váš vstup teď. 425 00:18:47,760 --> 00:18:48,260 Dobře. 426 00:18:48,260 --> 00:18:51,160 A zapomenout na řetězec, máme nyní naše vlastní řádek kódu sem. 427 00:18:51,160 --> 00:18:54,470 Takže, GetString, potřebujeme skutečně volat, getString. 428 00:18:54,470 --> 00:18:57,920 Takže váš cíl v životě je jen tak ven do orchestru, kdybyste mohl, 429 00:18:57,920 --> 00:18:58,980 a získat něčí jméno. 430 00:18:58,980 --> 00:19:00,860 Ale pojďme dát něco, aby to na. 431 00:19:00,860 --> 00:19:02,908 Chcete-li, jít vpřed a získat řetězec, 432 00:19:02,908 --> 00:19:05,241 získat něčí jméno na to kus papíru, kdybys mohl. 433 00:19:05,241 --> 00:19:12,940 434 00:19:12,940 --> 00:19:13,530 >> Dobře. 435 00:19:13,530 --> 00:19:15,250 A uvidíme, za chvíli, jehož jméno jsme získali. 436 00:19:15,250 --> 00:19:17,630 Mezitím, co budu mají připravené, je prázdný kus 437 00:19:17,630 --> 00:19:21,340 papíru, ve kterém, jdu uložit cokoliv hodnota je 438 00:19:21,340 --> 00:19:25,752 je, že GetString se vrací ke mně, I, který je řetězec proměnnou s názvem, s. 439 00:19:25,752 --> 00:19:26,252 Dobře. 440 00:19:26,252 --> 00:19:27,293 Takže to, co máte tady? 441 00:19:27,293 --> 00:19:27,950 Nik. 442 00:19:27,950 --> 00:19:28,450 Dobře. 443 00:19:28,450 --> 00:19:30,910 Takže máme tu NIK jméno. 444 00:19:30,910 --> 00:19:33,750 Takže tohle je to, co doslova byla vrácena 445 00:19:33,750 --> 00:19:35,810 ke mně, abych tak řekl, o getString. 446 00:19:35,810 --> 00:19:38,720 >> I teď, chystám vykonat levá strana 447 00:19:38,720 --> 00:19:43,440 tohoto výrazu, kde jsem prostě opisovat, pro dnešní účely, Nik. 448 00:19:43,440 --> 00:19:46,470 Takže teď, mám proměnnou volal, s, ukládání Nik jméno. 449 00:19:46,470 --> 00:19:49,520 Už jsem podal na printf, předchozí tvrzení. 450 00:19:49,520 --> 00:19:52,800 Ale v našem třetí a poslední řádek kód, Vlastně jsem se rukou printf 451 00:19:52,800 --> 00:19:58,500 něco trochu different-- "Dobrý den,% s," zpětné lomítko n. 452 00:19:58,500 --> 00:20:01,510 >> A tak se poslední řádek jdu k send-- poslední věc Jsem 453 00:20:01,510 --> 00:20:03,060 bude psát teď dolů, je to. 454 00:20:03,060 --> 00:20:06,310 Takže dva řádky kódu, nebo spíše poslední řádek kódu, 455 00:20:06,310 --> 00:20:10,690 žádá dvě inputs-- jedním, toto, a dva, to. 456 00:20:10,690 --> 00:20:13,330 Takže pokud naše printf funkce Nyní můžete mít tyto jako vstup, 457 00:20:13,330 --> 00:20:16,000 dovolte mi, abych vymazání obrazovky pro vás. 458 00:20:16,000 --> 00:20:17,250 Vlastně ne, můžete jít dopředu. 459 00:20:17,250 --> 00:20:19,333 Necháme to, protože je to na stejném programu. 460 00:20:19,333 --> 00:20:21,760 461 00:20:21,760 --> 00:20:27,380 Měli bychom vidět, ahoj, Nik. 462 00:20:27,380 --> 00:20:27,880 Dobře. 463 00:20:27,880 --> 00:20:29,670 Takže to bylo docela málo obruče proskočit, jen 464 00:20:29,670 --> 00:20:31,620 psát, uvést své jméno, a, ahoj, Nik. 465 00:20:31,620 --> 00:20:37,210 Ale tato jednoduchá myšlenka na předávání zpráv, vstupní a výstupní procházení přijímání, 466 00:20:37,210 --> 00:20:40,430 je přesně model budeme mít i pro ty nejsložitější funkce. 467 00:20:40,430 --> 00:20:41,804 Takže děkuji moc vám oběma. 468 00:20:41,804 --> 00:20:43,730 Máme krásný stres míč pro tebe. 469 00:20:43,730 --> 00:20:48,890 A děkuji našemu getString a printf dobrovolníci podobně. 470 00:20:48,890 --> 00:20:49,551 Děkuji. 471 00:20:49,551 --> 00:20:50,050 Dobře. 472 00:20:50,050 --> 00:20:50,966 Děkuji vám oběma. 473 00:20:50,966 --> 00:20:56,640 474 00:20:56,640 --> 00:21:00,430 >> Takže jsme mluvili o tak daleko, hlavně o řetězcích. 475 00:21:00,430 --> 00:21:06,550 A ukázalo se, že C může ve skutečnosti porozumět několika různých typů dat. 476 00:21:06,550 --> 00:21:08,860 Ve skutečnosti, pojďme Podívejte se na tyto zde. 477 00:21:08,860 --> 00:21:12,490 Takže C, a mnoho jazyků, chápat věci nazývané znaky. 478 00:21:12,490 --> 00:21:16,852 Char je obecně jeden byte, nebo osm bitů. 479 00:21:16,852 --> 00:21:19,810 A to představuje jeden znak, jako písmeno A, nebo na základním kapitálu 480 00:21:19,810 --> 00:21:21,990 písmeno A, nebo malé písmeno A, nebo vykřičník, 481 00:21:21,990 --> 00:21:25,440 nebo libovolný znak, který můžete psát na klávesnice, a někdy i více. 482 00:21:25,440 --> 00:21:26,795 Také jsme se ocitli na plováky. 483 00:21:26,795 --> 00:21:31,160 Plovák je, obecně, je 32-bitová hodnota, nebo čtyři byty 484 00:21:31,160 --> 00:21:33,660 protože zase jeden byte je osm bitů. 485 00:21:33,660 --> 00:21:36,675 >> Takže plovák je plovoucí bodová hodnota, něco s desetinnou čárkou. 486 00:21:36,675 --> 00:21:38,550 A opravdu, to je to, co film mluvil 487 00:21:38,550 --> 00:21:42,240 o tom, kdy mluvili o plovoucí bodové hodnoty, některé pevný počet bitů 488 00:21:42,240 --> 00:21:43,940 používán reprezentovat reálné číslo. 489 00:21:43,940 --> 00:21:45,740 Ale je tu i věci, zvané zdvojnásobí. 490 00:21:45,740 --> 00:21:47,860 Ty existují v Javě, pokud jste si vzal APC, 491 00:21:47,860 --> 00:21:51,540 a dvojité, jak název naštěstí navrhuje, je dvakrát tak velký jako hotovost. 492 00:21:51,540 --> 00:21:54,540 Je to stále reálné číslo, to prostě má více bitů 493 00:21:54,540 --> 00:21:58,390 se kterým se někdy být přesnější, nebo při skladování i větší množství. 494 00:21:58,390 --> 00:21:58,890 int je snadné. 495 00:21:58,890 --> 00:22:00,181 Mluvili jsme o tom minule. 496 00:22:00,181 --> 00:22:01,160 Je to jen celé číslo. 497 00:22:01,160 --> 00:22:03,980 A to je obecně 32 bitů, nebo čtyři byty. 498 00:22:03,980 --> 00:22:07,850 >> A tak, pokud máte, podívejme se nyní, 32 bits-- a dělali jsme to v týdnu 0, 499 00:22:07,850 --> 00:22:10,820 někdy tak briefly-- pokud máte 32 bitů, co je největší 500 00:22:10,820 --> 00:22:13,580 číslo, které může představovat jako celé číslo? 501 00:22:13,580 --> 00:22:16,080 Plus minus? 502 00:22:16,080 --> 00:22:18,380 Je to jako 4 miliardy, a to pouze tehdy, pokud jsme 503 00:22:18,380 --> 00:22:20,690 což představuje pouze kladná čísla. 504 00:22:20,690 --> 00:22:23,930 Pokud máte 32 bitů, a chcete-li představují záporná čísla stejně, 505 00:22:23,930 --> 00:22:27,100 Tento dosah je v podstatě negativní 2000000000 2000000000 na pozitivní. 506 00:22:27,100 --> 00:22:29,250 Ale obecně, začneme při 0 jít až na 4 miliardy. 507 00:22:29,250 --> 00:22:32,400 >> Nemusíte přesně vím, ale můžeme vidět, ve skutečnosti, když jsem zrovna 508 00:22:32,400 --> 00:22:36,400 otevřít malou kalkulačku, zde. 509 00:22:36,400 --> 00:22:41,070 Dokážu 2 na 32, a to je přesně, jak velký, 510 00:22:41,070 --> 00:22:43,190 kolik hodnot si můžete představují, s 32 bity. 511 00:22:43,190 --> 00:22:44,442 A to je zhruba 4000000000. 512 00:22:44,442 --> 00:22:46,900 Takže se budeme držet vidět, že číslo v několika různých místech. 513 00:22:46,900 --> 00:22:48,890 Ale pokud budete potřebovat delší čísla, než to, 514 00:22:48,890 --> 00:22:51,670 to dopadá je tu něco, co nazývá long long. 515 00:22:51,670 --> 00:22:54,005 A dlouhá dlouho obecně 64 bitů, které 516 00:22:54,005 --> 00:22:56,380 znamená, že je o řád ještě větší než int. 517 00:22:56,380 --> 00:22:59,510 >> Tak jsem si ani vyslovit největší číslo, které může představovat, 518 00:22:59,510 --> 00:23:01,340 ale je to výrazně větší. 519 00:23:01,340 --> 00:23:05,190 Nyní jako stranou, historicky, pokud int je 32 bitů, 520 00:23:05,190 --> 00:23:12,780 a dlouhý dlouhý je 64 bitů, jak velký je dlouhá, není dlouhá dlouho? 521 00:23:12,780 --> 00:23:16,500 522 00:23:16,500 --> 00:23:20,330 Člověk by si myslel, že je to déle než int ale možná méně než dlouhá dlouhá dlouhá, 523 00:23:20,330 --> 00:23:21,400 ale ve skutečnosti záleží. 524 00:23:21,400 --> 00:23:23,400 >> A tak to dopadá jedna z frustrace příliš, 525 00:23:23,400 --> 00:23:26,830 s psaním kódu na některých systémech, je to, že ne všechny z těchto datových typů 526 00:23:26,830 --> 00:23:28,440 mají předem určené hodnoty. 527 00:23:28,440 --> 00:23:29,771 Někdy je to tolik bitů. 528 00:23:29,771 --> 00:23:31,020 Někdy je to, že mnoho bitů. 529 00:23:31,020 --> 00:23:32,750 Takže jste skutečně vědět, někdy, jaký hardware 530 00:23:32,750 --> 00:23:34,083 vedete svůj software na. 531 00:23:34,083 --> 00:23:36,960 Naštěstí, jiné jazyky a Jiné typy dat, které nyní existují, 532 00:23:36,960 --> 00:23:38,400 umožní být přesnější. 533 00:23:38,400 --> 00:23:41,220 No, viděli jsme řetězec, a my jsme viděli bool, taky, 534 00:23:41,220 --> 00:23:43,960 ale ukázalo se, ty přicházejí pouze s knihovnou CS50. 535 00:23:43,960 --> 00:23:46,240 Takže ty nejsou postaveny do C Ti namísto toho, 536 00:23:46,240 --> 00:23:49,340 přicházejí v tomto souboru nazvaném CS50.h, že budeme nakonec 537 00:23:49,340 --> 00:23:51,831 oloupejte vrstvy. 538 00:23:51,831 --> 00:23:53,830 Ale teď, jsou to jen další datové typy. 539 00:23:53,830 --> 00:23:57,060 Boolovské je pravdivý nebo nepravdivý, a Řetězec je posloupnost znaků, 540 00:23:57,060 --> 00:23:57,970 jako slovo. 541 00:23:57,970 --> 00:24:01,690 Nyní printf, jsme viděli, má zástupné symboly,% s je jeden. 542 00:24:01,690 --> 00:24:05,430 A mělo by být možné, aby nyní, vyvodit z těchto dalších příkladů, jak 543 00:24:05,430 --> 00:24:07,720 můžete mít zástupný symbol Pro různé typy dat. 544 00:24:07,720 --> 00:24:11,150 Například, hádejte, pokud jste chtěl vytisknout jeden znak pomocí 545 00:24:11,150 --> 00:24:15,270 printf, zástupný symbol je pravděpodobně% c. 546 00:24:15,270 --> 00:24:19,650 A pokud chcete, vytiskne se integer s zástupný,% i. 547 00:24:19,650 --> 00:24:25,150 % lld je dlouhá dlouhá desítková hodnota, ale dlouho dlouho, takže mapuje na to. 548 00:24:25,150 --> 00:24:28,640 A potom% f pro plovoucí bodová hodnota nebo za double, 549 00:24:28,640 --> 00:24:31,270 takže někdy, že jsou opětovně použity v různých kontextech. 550 00:24:31,270 --> 00:24:33,350 Tak uvidíme a použití některé z nich v průběhu času. 551 00:24:33,350 --> 00:24:36,420 A printf a další funkce i únikové sekvence podporu ostatních " 552 00:24:36,420 --> 00:24:38,080 a někdy, jsou-li nutná. 553 00:24:38,080 --> 00:24:39,770 Takže zpětné lomítko n je nový řádek. 554 00:24:39,770 --> 00:24:42,886 Zpětné lomítko t, má někdo Chcete, aby se bodnout? 555 00:24:42,886 --> 00:24:43,760 Divačka: Tab. 556 00:24:43,760 --> 00:24:44,551 DAVID J Malan: Tab. 557 00:24:44,551 --> 00:24:46,810 Takže pokud skutečně chtějí vytisknout kartu, ne 558 00:24:46,810 --> 00:24:49,940 pevný počet míst, ale skutečné Karta znak, nemusíte hit vaší, 559 00:24:49,940 --> 00:24:53,490 Karta, na klávesnici, obecně, vlastně děláte zpětného lomítka t. 560 00:24:53,490 --> 00:24:57,750 Zpětné lomítko dvojité uvozovky, Proč bych někdy chtěl, že? 561 00:24:57,750 --> 00:24:58,250 Je to tak? 562 00:24:58,250 --> 00:25:00,417 Proč nemohu jen zadejte a dvojité uvozovky na mé klávesnici? 563 00:25:00,417 --> 00:25:02,124 Divačka: Vzhledem k tomu, jinak, je to 564 00:25:02,124 --> 00:25:04,830 bude si myslet, že je konec Líbí se mi z tiskového [? textu. ?] 565 00:25:04,830 --> 00:25:05,420 >> DAVID J Malan: Přesně tak. 566 00:25:05,420 --> 00:25:07,211 Pamatujte si, že s našimi printf příklady, kdy jsme 567 00:25:07,211 --> 00:25:10,075 míjeli na printf na vstupu, na levé straně tohoto vstupního řetězce 568 00:25:10,075 --> 00:25:12,950 a na pravé straně tohoto vstupu na jaře, samozřejmě, byl dvojitý citát. 569 00:25:12,950 --> 00:25:16,270 Pokud váš vlastní vstup má dvojí citace ve středu to, 570 00:25:16,270 --> 00:25:18,920 Počítač by mohl potenciálně zmatený, pokud jde o, 571 00:25:18,920 --> 00:25:20,760 Znamená to, uvozovky patří ve středu? 572 00:25:20,760 --> 00:25:22,150 Má to patří se levá? 573 00:25:22,150 --> 00:25:23,566 Má patřit s pravou? 574 00:25:23,566 --> 00:25:26,780 A tak, pokud chcete, aby to výborný jasné, vy zpětná lomítka dvojité cenovou nabídku, 575 00:25:26,780 --> 00:25:30,480 tak, že utekl, abych tak řekl, a to není sjednotil na něco jiného. 576 00:25:30,480 --> 00:25:34,400 A je tu několik dalších zde, zpětné lomítko r, jednoduché uvozovky, 0, 577 00:25:34,400 --> 00:25:36,510 že můžeme vidět v průběhu času, jak je také. 578 00:25:36,510 --> 00:25:37,760 A teď, co o funkcích? 579 00:25:37,760 --> 00:25:41,630 >> Takže akcí, které můžeme vzít tak daleko v tomto jazyce, C, dobře, jsme viděli, 580 00:25:41,630 --> 00:25:44,320 printf, samozřejmě, a vše z ostatních na obrazovce, 581 00:25:44,320 --> 00:25:47,140 tu, že budeme používat pro Samozřejmě je jen prvních pár týdnů, 582 00:25:47,140 --> 00:25:48,485 ve chvíli, kdy knihovnu CS50. 583 00:25:48,485 --> 00:25:51,850 A dělají to mnohem jednodušší, v C, skutečně získat vstup uživatele. 584 00:25:51,850 --> 00:25:54,200 Ukazuje se, že v C, a upřímně řečeno, v několika jazycích, 585 00:25:54,200 --> 00:25:57,450 to je skutečnou bolest v krku dělat něco jednoduchého, jako vyzve uživatele 586 00:25:57,450 --> 00:26:01,310 na klávesnici, pro jeho vstup. 587 00:26:01,310 --> 00:26:03,240 A tak tyto funkce usnadňují. 588 00:26:03,240 --> 00:26:05,472 >> A to také chyba kontrola po celou dobu, 589 00:26:05,472 --> 00:26:07,180 tak, že když vás vzpomínám na středu jsme 590 00:26:07,180 --> 00:26:09,740 viděl, opakování, varování, když jsem nespolupracoval, 591 00:26:09,740 --> 00:26:11,700 a já jsem napsal slovo, místo čísla? 592 00:26:11,700 --> 00:26:15,402 Udělali jsme těžkou práci brzy na ujistěte se, že uživatel spolupracuje. 593 00:26:15,402 --> 00:26:17,860 Ale to jsou jen trénink kola, že budeme nakonec, 594 00:26:17,860 --> 00:26:19,640 a rychle, vzlétnout. 595 00:26:19,640 --> 00:26:22,630 >> Takže rekapitulace, a pak, pojďme se rychle podívat, 596 00:26:22,630 --> 00:26:26,620 podobně jako jsme to udělali s Scratch, na některé kanonické konstrukty v C. 597 00:26:26,620 --> 00:26:28,580 Tím se myslí, třídění o, bude vichřice turné, 598 00:26:28,580 --> 00:26:30,990 jen proto, že máte odkaz a že jste viděli, co na první pohled. 599 00:26:30,990 --> 00:26:34,100 Ale pak se podíváme na aktuální kódování použít některé z těchto stavebních bloků. 600 00:26:34,100 --> 00:26:36,710 Tolik jako v Scratch, když jsme se prohlášení líbí, 601 00:26:36,710 --> 00:26:41,570 říkají, nebo počkat, v C, máme funguje stejně, jako printf. 602 00:26:41,570 --> 00:26:45,350 >> Pokud chceme vyjádřit podmínku v C, je to podobné, v duchu, 603 00:26:45,350 --> 00:26:47,840 této skládačky, které vypadalo to na Scratch. 604 00:26:47,840 --> 00:26:49,850 Ale místo toho, my doslova jen psát, pokud. 605 00:26:49,850 --> 00:26:51,830 A pak, v závorce, jsme dali podmínku, 606 00:26:51,830 --> 00:26:54,807 pokud tato podmínka je, co budeme zavolej, opět, je logický výraz. 607 00:26:54,807 --> 00:26:56,390 A opět, to je druh pseudokódu. 608 00:26:56,390 --> 00:26:58,830 A, ve skutečnosti, že // je komentář. 609 00:26:58,830 --> 00:27:00,550 Je to jen anglická slova pro sebe. 610 00:27:00,550 --> 00:27:03,000 Ale to je obecný Struktura, je-li, stavu. 611 00:27:03,000 --> 00:27:05,220 Ale uvidíme beton příklady v chvilku. 612 00:27:05,220 --> 00:27:07,960 >> Chcete-li mít dvoucestný rozcestí, 613 00:27:07,960 --> 00:27:11,740 podobně jako jsme to udělali s naším dobrovolníkem na Středa, můžete mít, else if. 614 00:27:11,740 --> 00:27:16,020 A pokud chcete mít třetin a Konečná podmínka, a nebo výchozí situaci, 615 00:27:16,020 --> 00:27:19,006 můžete mít jen blok jiného, ​​tam. 616 00:27:19,006 --> 00:27:21,880 A podobně se boolean výrazy, můžete, a je dohromady. 617 00:27:21,880 --> 00:27:24,296 A my jsme viděli ve středu, že to není jediný ampersand, 618 00:27:24,296 --> 00:27:28,220 to je dva, z důvodů nižší úrovně, který budeme nakonec vidět a hrát. 619 00:27:28,220 --> 00:27:30,410 Nebo-ing věci dohromady je 2 svislé pruhy. 620 00:27:30,410 --> 00:27:32,240 Na americkou klávesnici, to je obecně klíčovým 621 00:27:32,240 --> 00:27:35,730 s klávesou Shift výše váš klávesu Enter nebo Return. 622 00:27:35,730 --> 00:27:38,620 >> Pak je tu těch věcí, kteréž budeme používat asi jednou nebo dvakrát. 623 00:27:38,620 --> 00:27:42,570 Jsou funkčně ekvivalentní co můžete dělat s, v případě, pokud jiný, 624 00:27:42,570 --> 00:27:44,950 else if jiného, ​​konstruovat, ale oni jsou volal přepínač. 625 00:27:44,950 --> 00:27:48,020 Vypadají velmi odlišné, ale my budeme vidět v některé z naší distribuční kódu, 626 00:27:48,020 --> 00:27:51,890 pro budoucí problém sady, s největší pravděpodobností, že je to někdy jen hezčí 627 00:27:51,890 --> 00:27:54,060 způsob, jak vyjádřit celek banda podmínek, 628 00:27:54,060 --> 00:27:57,590 aniž by bylo hodně složených závorkách a hodně závorek a odsazení. 629 00:27:57,590 --> 00:28:01,910 Ale nám dávají více energie, než jsme již. 630 00:28:01,910 --> 00:28:02,550 A teď smyčky. 631 00:28:02,550 --> 00:28:05,020 A tenhle, podíváme na pomaleji. 632 00:28:05,020 --> 00:28:08,470 Ale pak, začneme používat tyto, zvláště pro ty, kteří již znají. 633 00:28:08,470 --> 00:28:13,830 Toto je kanonický způsobem, pokud neuvěřitelně Arcane způsobem, aby napsat smyčky v C. 634 00:28:13,830 --> 00:28:15,896 >> Nyní smyčka Scratch byl docela jednoduché. 635 00:28:15,896 --> 00:28:17,020 Máte, navždy, blok. 636 00:28:17,020 --> 00:28:19,760 Máte, opakování, blok s jen číslo musíte zadat. 637 00:28:19,760 --> 00:28:22,220 A s, pro smyčku, můžete implementovat obou těchto myšlenek, 638 00:28:22,220 --> 00:28:23,595 ale je to trochu techničtější. 639 00:28:23,595 --> 00:28:25,994 Ale upřímně řečeno, je to také relativně jednoduché. 640 00:28:25,994 --> 00:28:28,160 Jakmile budete vědět, pořadí operacím, doslova 641 00:28:28,160 --> 00:28:30,910 se právě chystá připojit v hodnotách a řekněte počítači, co má dělat. 642 00:28:30,910 --> 00:28:32,800 Takže tady je příklad. 643 00:28:32,800 --> 00:28:38,040 To je, že smyčka, zcela jednoduše, počítá z jednoho čísla nahoru 644 00:28:38,040 --> 00:28:40,187 prostřednictvím jiného. 645 00:28:40,187 --> 00:28:42,020 A jen tím, podíval se na to, i když máte 646 00:28:42,020 --> 00:28:44,660 žádné předchozí zkušenosti s Tento jazyk, jaké číslo 647 00:28:44,660 --> 00:28:46,920 to asi začít počítat od? 648 00:28:46,920 --> 00:28:47,730 OK, 0. 649 00:28:47,730 --> 00:28:50,240 A Hádám, že je to proto, že jste vidět, že je tu int a i, 650 00:28:50,240 --> 00:28:51,073 což je proměnná. 651 00:28:51,073 --> 00:28:52,390 Je to inicializuje na 0. 652 00:28:52,390 --> 00:28:55,670 >> A později, to vypadá, jsme kolem printf, hodnotu. 653 00:28:55,670 --> 00:28:58,000 A ve skutečnosti, udělal jsem malou překlep zde. 654 00:28:58,000 --> 00:28:59,850 Ale to je snadno napravit. 655 00:28:59,850 --> 00:29:02,390 Dovolte mi přidat, i tady. 656 00:29:02,390 --> 00:29:06,150 Nyní máme printf bytí prošel tuto zástupnou hodnotu. 657 00:29:06,150 --> 00:29:08,299 A co se bude počítat nahoru přes? 658 00:29:08,299 --> 00:29:08,840 Diváků: 50. 659 00:29:08,840 --> 00:29:09,340 50. 660 00:29:09,340 --> 00:29:10,160 49. 661 00:29:10,160 --> 00:29:10,910 DAVID J Malan: 49. 662 00:29:10,910 --> 00:29:13,340 Takže 50, na první pohled, zdá se. 663 00:29:13,340 --> 00:29:16,990 Ale to, že se ukázalo, se bude naše podmínka, že budeme průběžně kontrolovat. 664 00:29:16,990 --> 00:29:21,740 A budeme se jednou zastaví i již není menší než 50. 665 00:29:21,740 --> 00:29:24,920 Takže tato smyčka, naopak, měl by vykonat, tak dlouho, jak jsem je menší než 50. 666 00:29:24,920 --> 00:29:28,891 Ale jakmile se stane 50, nebo 51, nebo ještě hůře, měl by se automaticky zastaví. 667 00:29:28,891 --> 00:29:29,390 Dobře. 668 00:29:29,390 --> 00:29:31,200 >> Takže co se vlastně děje tady? 669 00:29:31,200 --> 00:29:33,160 Tak tohle je pořadí operace pro smyčku. 670 00:29:33,160 --> 00:29:35,440 One, máte tzv inicializace. 671 00:29:35,440 --> 00:29:38,264 Tento žlutý zdůrazněno kus kódu je proveden jako první, 672 00:29:38,264 --> 00:29:40,930 a to má za následek, že, za Středa, pravděpodobně predstavit. 673 00:29:40,930 --> 00:29:45,500 To vytváří proměnnou s názvem i a to obchody v této proměnné hodnotu 0. 674 00:29:45,500 --> 00:29:47,560 Tak jsem je 0 v tomto bodě příběhu. 675 00:29:47,560 --> 00:29:49,680 >> Další věc, která se děje v tomto konstruktu, 676 00:29:49,680 --> 00:29:51,540 je skutečnost, že stav dostane zkontrolovat. 677 00:29:51,540 --> 00:29:54,325 Tak jsem hned zkontrolovat, je i méně než 50? 678 00:29:54,325 --> 00:29:57,700 A samozřejmě, že odpověď teď je, jistě, ano. 679 00:29:57,700 --> 00:30:00,710 Ano, protože i je 0, a To je jistě méně než 50. 680 00:30:00,710 --> 00:30:03,866 Potom, co se stane, je, že toto řádek kódu dostane popraven. 681 00:30:03,866 --> 00:30:06,740 A ve skutečnosti, v případě, že je násobkem řádků kódu v těchto složených závorkách, 682 00:30:06,740 --> 00:30:09,020 všichni vykonán jeden po druhém. 683 00:30:09,020 --> 00:30:11,450 >> A v tom smyslu, tady, je Zdá se, že k vytištění 684 00:30:11,450 --> 00:30:15,365 číslo i, který se chystá 0, a pak 1, a pak 2. 685 00:30:15,365 --> 00:30:15,865 Ale proč? 686 00:30:15,865 --> 00:30:17,410 Proč to dostat zvýší? 687 00:30:17,410 --> 00:30:20,680 No, čtvrtá věc, která stane je, že tuto syntaxi 688 00:30:20,680 --> 00:30:22,610 dostane vykonán, za středníkem. 689 00:30:22,610 --> 00:30:27,506 i ++ je zkratka způsob, jak říkat; mít hodnotu i, a přidat 1 k němu; 690 00:30:27,506 --> 00:30:30,380 a pak příště kolem, přidejte 1 k němu; a příště, 691 00:30:30,380 --> 00:30:31,330 přidat 1 k ní. 692 00:30:31,330 --> 00:30:33,640 >> Takže pokud budeme dál, co se bude dít 693 00:30:33,640 --> 00:30:35,890 Další je Nebudu se inicializovat i někdy znovu. 694 00:30:35,890 --> 00:30:38,290 Pokud jsem si inicializace i na 0, tento příklad 695 00:30:38,290 --> 00:30:41,110 že nikdy neskončí, protože Chtěl bych se zasekl na 0 ° C. 696 00:30:41,110 --> 00:30:43,870 Ale to, co se bude dít, je že tato podmínka bude kontrolovat, 697 00:30:43,870 --> 00:30:54,280 řádek kódu bude vykonán, I bude zvýšena, 698 00:30:54,280 --> 00:30:56,970 podmínka bude kontrolovat, kód bude vykonán. 699 00:30:56,970 --> 00:30:59,790 A to zase stále na kole, a znovu a znovu, 700 00:30:59,790 --> 00:31:03,340 dokud i ++ vyvolává hodnotu 50. 701 00:31:03,340 --> 00:31:05,870 >> Tento stav pak říká, 50 je menší než 50 ° C? 702 00:31:05,870 --> 00:31:09,360 Odpověď, samozřejmě, není, a takže celý kód se zastaví provádění. 703 00:31:09,360 --> 00:31:13,020 A pokud máte více kódu na obrazovce dole, to je to, co se stane dál. 704 00:31:13,020 --> 00:31:17,530 To vyskočí z těchto složených závorkách a pokračuje v tisku víc po tom. 705 00:31:17,530 --> 00:31:20,470 >> Takže teď vtip, od Foxtrot, že budete možná nyní pochopili. 706 00:31:20,470 --> 00:31:30,810 707 00:31:30,810 --> 00:31:31,560 Vždycky je to legrační. 708 00:31:31,560 --> 00:31:34,110 Je to jako smích druh prosakovat, 709 00:31:34,110 --> 00:31:38,370 a pak si uvědomíte, že jste neměli se smáli humor, jako je tento. 710 00:31:38,370 --> 00:31:41,160 Ale tam je nějaký stánek s jídlem tady, pedagogicky, taky. 711 00:31:41,160 --> 00:31:43,577 Tak to dopadá, že jsem chybějící kus syntaxe, 712 00:31:43,577 --> 00:31:45,410 nebo Foxtrot je chybí kus syntaxe sem. 713 00:31:45,410 --> 00:31:48,076 To, co chybí, že jsme měli v každém jiném příkladu, tak daleko? 714 00:31:48,076 --> 00:31:51,599 715 00:31:51,599 --> 00:31:53,390 Return, je tam, tak to je něco jiného, 716 00:31:53,390 --> 00:31:54,440 že se vrátíme do zanedlouho. 717 00:31:54,440 --> 00:31:55,398 Co chybí, i když? 718 00:31:55,398 --> 00:31:55,908 Jo. 719 00:31:55,908 --> 00:31:58,150 >> Divačka: The inicializace [neslyšitelných]. 720 00:31:58,150 --> 00:31:58,470 >> DAVID J Malan: OK. 721 00:31:58,470 --> 00:31:58,980 Tak jo. 722 00:31:58,980 --> 00:32:03,210 Takže ve skutečnosti, to je-- No, a počet se inicializuje 723 00:32:03,210 --> 00:32:05,470 nahoře, nebo spíše, uvedených výše se. 724 00:32:05,470 --> 00:32:06,960 Takže tohle je další způsob, jak to udělat. 725 00:32:06,960 --> 00:32:08,685 Ale ne v jedné linii je to platný ačkoli. 726 00:32:08,685 --> 00:32:09,310 Jak se asi tady? 727 00:32:09,310 --> 00:32:10,196 >> Divačka: Je to složené závorky? 728 00:32:10,196 --> 00:32:10,640 >> DAVID J Malan: Jo. 729 00:32:10,640 --> 00:32:12,080 Takže složené závorky chybí. 730 00:32:12,080 --> 00:32:15,495 Ale tento kód, myslím, k jejich cti, je ve skutečnosti, syntakticky platné. 731 00:32:15,495 --> 00:32:17,610 Ukazuje se, že ne Potřebuji složené závorky 732 00:32:17,610 --> 00:32:21,691 pokud máte pouze jeden řádek kódu, který Chcete-li provést uvnitř smyčky. 733 00:32:21,691 --> 00:32:24,190 Nyní jsme vždy ve třídě a ve všechny naše distribuční kódu, 734 00:32:24,190 --> 00:32:26,730 patří složené závorky tak jako tak, jen z důvodů přehlednosti. 735 00:32:26,730 --> 00:32:29,010 Ale uvědomit, že v učebnicích a online příklady, 736 00:32:29,010 --> 00:32:31,300 můžete velmi dobře vidět kudrnaté šle chybí někdy. 737 00:32:31,300 --> 00:32:34,850 A to je v pořádku, jestli to, co mají členité a určené 738 00:32:34,850 --> 00:32:38,650 je jen jediný řádek kódu, a nikoli více řádků kódu, potenciálně. 739 00:32:38,650 --> 00:32:39,150 Dobře. 740 00:32:39,150 --> 00:32:44,500 Takže související s problematikou nepřesnost, je problém přetečení, 741 00:32:44,500 --> 00:32:48,560 v tom smyslu, že, podobně, to celá čísla mají své limity, které jim 742 00:32:48,560 --> 00:32:49,970 stejně jako s plovoucí desetinnou čárkou hodnoty? 743 00:32:49,970 --> 00:32:53,120 Ve světě plovoucí bod hodnoty, můžeme být jen tak přesné, 744 00:32:53,120 --> 00:32:55,710 po které, někdy špatné věci se může stát, 745 00:32:55,710 --> 00:32:57,760 a naše programy mohou být buggy a omylů. 746 00:32:57,760 --> 00:33:00,050 Nyní dokonce s celými čísly, můžete dostat do problémů. 747 00:33:00,050 --> 00:33:03,820 Nyní celé číslo není vybaven desetinná čárka nebo čísla po něm. 748 00:33:03,820 --> 00:33:07,130 Je to jen přirozené číslo, typicky. 749 00:33:07,130 --> 00:33:09,430 Tak co by mohlo jít s int špatného? 750 00:33:09,430 --> 00:33:12,210 Pokud jsem pomocí int na Počet, co by mohlo pokazit? 751 00:33:12,210 --> 00:33:13,230 Zdá se, že mnohem jednodušší. 752 00:33:13,230 --> 00:33:13,873 Jo. 753 00:33:13,873 --> 00:33:16,240 >> Divačka: V případě, že Číslo dostane [neslyšitelných] 754 00:33:16,240 --> 00:33:17,073 >> DAVID J Malan: Jo. 755 00:33:17,073 --> 00:33:20,820 Co když počítám tak vysoko, aby vás nemohou vyjádřit, že opravdu velké číslo. 756 00:33:20,820 --> 00:33:21,320 Je to tak? 757 00:33:21,320 --> 00:33:23,910 V určitém bodě, budete překročit hranice 758 00:33:23,910 --> 00:33:27,077 z 32-bitové hodnoty, nebo 64-bitové hodnoty. 759 00:33:27,077 --> 00:33:29,410 Teď znovu, nejsem si jistý, jak vyslovit 64-bit hodnotu, 760 00:33:29,410 --> 00:33:32,230 ale vím, že se 32-bitové celé číslo, největší hodnota, kterou může být, 761 00:33:32,230 --> 00:33:35,490 když je to jen pozitivní hodnot, je zhruba 4 miliardy korun. 762 00:33:35,490 --> 00:33:39,000 Takže když se snažím počítat do 5 miliard, něco, co se stane. 763 00:33:39,000 --> 00:33:41,050 Ale pojďme se podívat, co ve skutečnosti se může stát. 764 00:33:41,050 --> 00:33:44,570 Ve světě integer přetečení, kde jste, v jistém smyslu, 765 00:33:44,570 --> 00:33:48,270 přetečení kapacity integer, co se může stát? 766 00:33:48,270 --> 00:33:51,190 >> Tak tady je binární číslo, je to návrat k 0 ° C. 767 00:33:51,190 --> 00:33:54,630 Je to všechno 1 je, a zástupné symboly tam jsou síly 2, 768 00:33:54,630 --> 00:33:55,980 tak toto je binární. 769 00:33:55,980 --> 00:33:59,416 Tak to jsou 8, 1 bitů na obrazovce. 770 00:33:59,416 --> 00:34:01,290 A pokud si vzpomínáte, nebo rychle si to spočítejte, 771 00:34:01,290 --> 00:34:06,074 jaká hodnota je zastoupen zde se těchto osmi bitů 1? 772 00:34:06,074 --> 00:34:06,950 255. 773 00:34:06,950 --> 00:34:09,260 A i když jste nebyli zcela jisti, z matematiky, jsi to mohl udělat to. 774 00:34:09,260 --> 00:34:10,550 Nebo můžete prostě druh rozumu přes to, 775 00:34:10,550 --> 00:34:12,633 počkejte chvíli, když jsem což představuje 8-bitové hodnoty, 776 00:34:12,633 --> 00:34:17,750 a já mám 256 možných hodnot, ale z nichž první je 0, 777 00:34:17,750 --> 00:34:19,909 Já jen vím, že Největší bude 255, 778 00:34:19,909 --> 00:34:21,510 a to je to, co tento člověk může být. 779 00:34:21,510 --> 00:34:26,060 >> Takže předpokládám, že se snažím přidat 1 k této hodnotě. 780 00:34:26,060 --> 00:34:28,750 Co byste dělali do platové třídy Škola při přidání 1, a to 781 00:34:28,750 --> 00:34:31,139 není opravdu fit, protože budete muset nést 1? 782 00:34:31,139 --> 00:34:34,380 To, co je toto číslo bude aby se stal, když přidáte 1? 783 00:34:34,380 --> 00:34:37,030 Bude to stát se 0. 784 00:34:37,030 --> 00:34:37,530 Je to tak? 785 00:34:37,530 --> 00:34:41,139 Vzhledem k tomu, pokud jste měli víc bits-- a budu pokusit se, druh, napište to here-- 786 00:34:41,139 --> 00:34:44,710 kdybychom měli více bitů, co jsme zde může udělat, je přidat 1, 787 00:34:44,710 --> 00:34:47,370 a pak bychom si to. 788 00:34:47,370 --> 00:34:48,739 Jejda. 789 00:34:48,739 --> 00:34:52,250 Budeme mít 1 bit celou cestu sem. 790 00:34:52,250 --> 00:34:55,530 >> Ale pokud se jedná o konečný hodnota, je to pouze 8 bitů, 791 00:34:55,530 --> 00:34:57,480 a to je předem stanovena počítačem, 792 00:34:57,480 --> 00:34:59,370 že 1 je v podstatě není. 793 00:34:59,370 --> 00:35:00,980 Tak nějak spadne z útesu. 794 00:35:00,980 --> 00:35:05,480 A tak když přidáte 1 do 255, co hodnotu, máte zřejmě dostanete? 795 00:35:05,480 --> 00:35:06,180 0. 796 00:35:06,180 --> 00:35:09,700 A tak čísla k náhodnému, a snad neúmyslně, 797 00:35:09,700 --> 00:35:12,040 skončit obal kolem takhle. 798 00:35:12,040 --> 00:35:14,079 Takže to, co může být důsledek to? 799 00:35:14,079 --> 00:35:15,620 No, je tu několik různých věcí. 800 00:35:15,620 --> 00:35:18,751 Takže jedním, to nakonec vypadá jako 0, neúmyslně, 801 00:35:18,751 --> 00:35:20,750 ale můžete trochu vidět, dokonce v reálném světě, 802 00:35:20,750 --> 00:35:23,416 k lepšímu nebo k horšímu, projevy tohoto nápadu limitu. 803 00:35:23,416 --> 00:35:26,630 Například, někdo z vás, kteří se kdy hrál Lego Star Wars, 804 00:35:26,630 --> 00:35:28,880 Ví někdo náhodou vědět maximální počet mincí 805 00:35:28,880 --> 00:35:32,032 můžete sbírat v Lego Star Wars? 806 00:35:32,032 --> 00:35:35,640 Pak se hádat na základě dnešní sugestivní otázky. 807 00:35:35,640 --> 00:35:39,140 Je větší než 256 nebo 255. 808 00:35:39,140 --> 00:35:40,330 To je 4000000000. 809 00:35:40,330 --> 00:35:42,080 Tak to dopadá, a tam je nějaké people-- 810 00:35:42,080 --> 00:35:46,080 některé googling potvrdil minulý night-- se dostali 4 miliardy zlaté mince, 811 00:35:46,080 --> 00:35:47,730 nebo kdoví co ještě, v Lego Star Wars. 812 00:35:47,730 --> 00:35:49,860 I když se zdá, je tu způsob, jak napálit hru, 813 00:35:49,860 --> 00:35:53,222 tam je chyba nebo funkce, která vám umožní jen narůstat hodně a hodně bodů. 814 00:35:53,222 --> 00:35:54,930 Ale největší možný hodnota, podle 815 00:35:54,930 --> 00:35:58,360 k tomuto snímku obrazovky někoho, koho našel na internetu, je skutečně 4000000000. 816 00:35:58,360 --> 00:35:59,240 >> Teď proč je tomu tak? 817 00:35:59,240 --> 00:36:03,040 Je to přesně 4000000000, Pravděpodobně proto, že někdo rozhodl, 818 00:36:03,040 --> 00:36:05,500 kdo psal tuto hru, že by mohli dělat 4 miliardy, 819 00:36:05,500 --> 00:36:07,340 něco, něco, něco, jako hodnota jsem dát do 820 00:36:07,340 --> 00:36:10,256 s kalkulačkou dříve, ale je to jen trochu čistší pro lidi 821 00:36:10,256 --> 00:36:12,610 říci, maximální počet z coins-- nebo hřeby, 822 00:36:12,610 --> 00:36:14,860 jak říkají, že vás them-- můžete sbírat je 4000000000. 823 00:36:14,860 --> 00:36:16,290 A tak, proč je to? 824 00:36:16,290 --> 00:36:20,310 Jak je LEGO hra provádění počítadlo 825 00:36:20,310 --> 00:36:23,420 to je udržování přehledu o množství mincí máte? 826 00:36:23,420 --> 00:36:24,266 Používají co? 827 00:36:24,266 --> 00:36:26,390 Divačka: Zastaví počítání po 4 miliardy. 828 00:36:26,390 --> 00:36:27,720 DAVID J Malan: Zastaví počítání po 4 miliardy, 829 00:36:27,720 --> 00:36:29,525 což znamená, že můžete odvodit, jako programátor, 830 00:36:29,525 --> 00:36:31,960 že jsou nejspíš pomocí 32 bitové celé číslo. 831 00:36:31,960 --> 00:36:35,380 Stejně jako programátor doslova zadaný, int, v jeho nebo její kód, 832 00:36:35,380 --> 00:36:39,620 a to je typ proměnné Používají k ukládání něčí kód. 833 00:36:39,620 --> 00:36:42,230 Takže je tu jiné projevy těchto druhů limitů. 834 00:36:42,230 --> 00:36:45,063 >> Takže jsem nehrál tento game-- a já jsem byl čtení na historii 835 00:36:45,063 --> 00:36:48,470 Pro potvrzení, jak much-- ale v Původní verze civilizace, kde 836 00:36:48,470 --> 00:36:53,240 budete zřejmě komunikovat s každým a mohou vést válku, nebo mít klid, 837 00:36:53,240 --> 00:36:56,590 Gandhi měl být jedním z nejklidnější znaky, jako já 838 00:36:56,590 --> 00:36:59,280 pochopit, v první verze civilizace. 839 00:36:59,280 --> 00:37:03,250 A ve skutečnosti, na stupnici od 1 až 10, Jeho agresivita byl jen 1. 840 00:37:03,250 --> 00:37:05,620 Takže někdy tak mírně agresivní, zřejmě. 841 00:37:05,620 --> 00:37:11,590 >> Ale v určitém okamžiku, můžete si zřejmě nainstalovat demokracie v geografii. 842 00:37:11,590 --> 00:37:14,900 A pokud si nainstalujete demokracii do vaší verzi hry, 843 00:37:14,900 --> 00:37:17,320 pak se vaše agresivita hladina klesá. 844 00:37:17,320 --> 00:37:18,460 Je to dobrá věc. 845 00:37:18,460 --> 00:37:20,890 Lidé jsou klidnější Zdá se, že v této situaci. 846 00:37:20,890 --> 00:37:23,190 Ale zdá se, někdo udělal nebude mít, pokud je to, stav 847 00:37:23,190 --> 00:37:24,780 v původní verzi kódu. 848 00:37:24,780 --> 00:37:30,650 >> Takže úroveň agrese Gándhího šel od Pozitivní 1, minus 2, na negativní 1, 849 00:37:30,650 --> 00:37:33,840 ale hra není porozumět záporná čísla. 850 00:37:33,840 --> 00:37:38,680 Takže to, co se stalo, bylo Gándhího agrese Úroveň šla od 1, 0, 1 na negativní, 851 00:37:38,680 --> 00:37:40,900 což mělo za následek obal kolem, že jsou 852 00:37:40,900 --> 00:37:44,690 nejagresivnější charakter ve hře, v hodnotě 255, 853 00:37:44,690 --> 00:37:46,630 na stupnici od 1 do 10. 854 00:37:46,630 --> 00:37:49,887 A od té doby, tam bylo více ztělesnění této hry, 855 00:37:49,887 --> 00:37:51,720 a že jsem držel jej jako jakýmsi velikonoční vajíčko, 856 00:37:51,720 --> 00:37:53,870 že Gandhi je zřejmě tak strašně agresivní. 857 00:37:53,870 --> 00:37:56,740 Ale bylo výsledkem velmi jednoduchý programovací chyba 858 00:37:56,740 --> 00:37:58,630 v této velmi rané verze hry. 859 00:37:58,630 --> 00:38:02,860 >> Nyní více znepokojivě, více nedávno, Boeing 787 860 00:38:02,860 --> 00:38:05,720 byl dokumentován jako mající chyba, ne druh zařízení 861 00:38:05,720 --> 00:38:07,340 se vám obzvláště chcete mít chybu. 862 00:38:07,340 --> 00:38:10,130 A příznaky, že budu číst tady, z článku on-line, 863 00:38:10,130 --> 00:38:13,840 Byla to, model 787 letadlo , který byl průběžně zásobován 864 00:38:13,840 --> 00:38:18,030 za 248 dní může ztratit vše střídavý proud, AC, 865 00:38:18,030 --> 00:38:20,850 elektrické energie, v důsledku řídicí jednotky generátoru, 866 00:38:20,850 --> 00:38:23,330 GCUs, současně jít do fail-safe módu. 867 00:38:23,330 --> 00:38:26,790 Takže to bylo vydáno varování kdy byl tento problém objeven. 868 00:38:26,790 --> 00:38:28,750 Tento stav je způsoben čítačem softwaru 869 00:38:28,750 --> 00:38:32,230 interní do GCUs, tak celé číslo nebo proměnná, 870 00:38:32,230 --> 00:38:36,850 že přeteče po 248 dny nepřetržitého výkonu. 871 00:38:36,850 --> 00:38:40,350 Boeing je v procesu rozvíjení Upgrade softwaru, která GCU 872 00:38:40,350 --> 00:38:42,350 napraví nebezpečného stavu. 873 00:38:42,350 --> 00:38:44,226 >> Tolik jako raketa scénář, vyznačující se tím, 874 00:38:44,226 --> 00:38:46,850 oni měli nějaké proměnné že počítal, a počítání, 875 00:38:46,850 --> 00:38:50,720 a počítání, ale postupně přetékající hranice jeho schopnost, 876 00:38:50,720 --> 00:38:54,890 Podobně udělal ten zatracený letadlo mají variabilní přetečení 877 00:38:54,890 --> 00:38:56,410 Po dostatek času běhu. 878 00:38:56,410 --> 00:38:59,240 A tak se způsob pero-in-tváře o práci kolem tohoto problému 879 00:38:59,240 --> 00:39:04,400 je skutečně, restartovat, vaše letadlo každý 247 dní, tak, že je paměť dostane stírané 880 00:39:04,400 --> 00:39:06,100 a proměnná přejde zpět na 0. 881 00:39:06,100 --> 00:39:09,410 Ale uvědomit, to je velmi velký inkarnace softwaru, 882 00:39:09,410 --> 00:39:14,070 ale zejména proto, slyšíme o Apple operační systémy jít do auta, 883 00:39:14,070 --> 00:39:18,030 a self-řídit vozidla od společnosti Google, a libovolný počet inkarnací software 884 00:39:18,030 --> 00:39:21,000 v našem každodenním životě, TV a hodinky a další, 885 00:39:21,000 --> 00:39:24,950 si uvědomit, byly obklopeny software, všichni který je napsán nás lidi. 886 00:39:24,950 --> 00:39:28,150 >> A jak budeme všichni brzy zjistíte, je to velmi jednoduché a velmi typické 887 00:39:28,150 --> 00:39:30,250 dělat chyby při psaní softwaru. 888 00:39:30,250 --> 00:39:32,745 A pokud nechcete chytit, některé špatné věci se může stát. 889 00:39:32,745 --> 00:39:35,400 Teď někdy, některé vtipné věci se může stát, 890 00:39:35,400 --> 00:39:38,280 nebo alespoň někdy jsme znát očekávat nějakou špatnost. 891 00:39:38,280 --> 00:39:41,550 Takže 0 děleno 0, ze stupně škola, je obecně špatná věc. 892 00:39:41,550 --> 00:39:43,050 Je to nedefinované. 893 00:39:43,050 --> 00:39:46,440 A ukazuje out-- a uvidíme, jestli můj mic můžete vybrat to up--, že Apple 894 00:39:46,440 --> 00:39:47,790 měl nějakou zábavu s tím v poslední době. 895 00:39:47,790 --> 00:39:48,850 Tak jsem zde iPhone. 896 00:39:48,850 --> 00:39:54,160 Budu mluvit Siri a požádejte ji, mi dát odpověď na 0 dělená 0. 897 00:39:54,160 --> 00:39:55,850 Co 0 děleno 0? 898 00:39:55,850 --> 00:39:59,350 899 00:39:59,350 --> 00:40:02,230 >> SIRI: Představte si, že máte 0 cookies, a můžete je rozdělit rovnoměrně 900 00:40:02,230 --> 00:40:03,540 mezi 0 přátelé. 901 00:40:03,540 --> 00:40:05,810 Kolik cookies, se každá osoba dostat? 902 00:40:05,810 --> 00:40:06,350 Vidíš? 903 00:40:06,350 --> 00:40:07,660 To nedává smysl. 904 00:40:07,660 --> 00:40:10,540 A netvor Cookie je smutné že neexistují žádné sušenky. 905 00:40:10,540 --> 00:40:13,987 A jste smutní, že nemáte žádné přátele. 906 00:40:13,987 --> 00:40:15,570 DAVID J Malan: Je to docela nepříjemný. 907 00:40:15,570 --> 00:40:17,550 Tak tohle je to, co právě řekl, že. 908 00:40:17,550 --> 00:40:21,380 To je neurčitý, to není definováno, A skutečně, mnoho programovacích jazyků 909 00:40:21,380 --> 00:40:24,950 nebo, opravdu, bude kompilátory rozpoznat, když v programu, 910 00:40:24,950 --> 00:40:27,050 pokusit se rozdělit 0. 0. 911 00:40:27,050 --> 00:40:29,830 Více zábavy než toto však je, to zřejmě, netvor Cookie 912 00:40:29,830 --> 00:40:31,270 je na Twitteru v těchto dnech. 913 00:40:31,270 --> 00:40:37,610 A on odpověděl na to, s tím, což je naprosto rozkošný. 914 00:40:37,610 --> 00:40:40,110 Ale pojďme se rychle podívat na pár dalších konstruktů, 915 00:40:40,110 --> 00:40:43,459 a pak dal některé z těchto kód k použití, v dobré způsoby. 916 00:40:43,459 --> 00:40:45,250 Tak to dopadá, kromě pro smyčky, je tu 917 00:40:45,250 --> 00:40:49,174 něco, co nazývá while, že vypadá jinak a je realizován 918 00:40:49,174 --> 00:40:51,590 trochu differently-- a budeme nakonec vidět examples-- 919 00:40:51,590 --> 00:40:53,500 ale v určitém smyslu, je to jednodušší, protože to 920 00:40:53,500 --> 00:40:56,670 neumožňuje inicializovat a aktualizovat uvnitř hranic smyčky. 921 00:40:56,670 --> 00:40:57,794 Můžete jej realizovat i nadále. 922 00:40:57,794 --> 00:41:01,219 Takže si můžete udělat přesně stejné věci s while, jak se smyčky for, 923 00:41:01,219 --> 00:41:03,260 ale vaše syntax, ultimately-- jak budete nakonec 924 00:41:03,260 --> 00:41:04,551 see-- bude jinak. 925 00:41:04,551 --> 00:41:07,450 K dispozici je i dělat, zatímco smyčka, která je vlastně trochu jinak, 926 00:41:07,450 --> 00:41:09,640 v tomto zatímco pro smyčce a while vždy 927 00:41:09,640 --> 00:41:13,005 nejprve zkontroluje jejich stav, pokud čtete tuto věc shora dolů, 928 00:41:13,005 --> 00:41:16,440 to trochu vypadá to, že to bude zkontrolujte, zda je stav poslední, protože to je 929 00:41:16,440 --> 00:41:17,910 skutečně poslední řádek kódu. 930 00:41:17,910 --> 00:41:20,580 A opravdu, že to bude užitečné, v některých programech, které píšeme, 931 00:41:20,580 --> 00:41:23,746 pokud chcete jen slepě něco udělat a nakonec zkontrolujte stav. 932 00:41:23,746 --> 00:41:25,205 To není nutně špatná věc. 933 00:41:25,205 --> 00:41:27,912 Pokud chceme proměnné, můžeme to udělat že v několika různými způsoby. 934 00:41:27,912 --> 00:41:30,290 A my jsme viděli v Foxtrot karikatura, jedním ze způsobů, jak to udělat, 935 00:41:30,290 --> 00:41:33,400 kde jste deklarovat svou proměnnou, jako čítač int středníkem, 936 00:41:33,400 --> 00:41:36,570 a pak later-- možná příští linka, možná 10 řádků later-- 937 00:41:36,570 --> 00:41:37,800 jste skutečně inicializovat ji. 938 00:41:37,800 --> 00:41:42,230 Takže tyto 2 řádky kódu deklarovat proměnnou typu int 939 00:41:42,230 --> 00:41:44,930 a nazývat to počítadlo, tak to dává me dostatek bitů uspořádat int. 940 00:41:44,930 --> 00:41:48,230 A pak nakonec, klade hodnota 0 do této proměnné. 941 00:41:48,230 --> 00:41:51,250 To uspořádává Je v 0 a 1 vzor, ​​který známe z minulého týdne, 942 00:41:51,250 --> 00:41:53,260 představuje počet známe jako 0. 943 00:41:53,260 --> 00:41:56,920 Nebo řečeno, můžete to udělat tolik stručněji, stejně jako tato. 944 00:41:56,920 --> 00:41:59,390 >> Nyní máme také Možnost volat funkce. 945 00:41:59,390 --> 00:42:03,070 A ve skutečnosti, tady je 2 linka programu, nebo výňatek smlouvy, 946 00:42:03,070 --> 00:42:06,157 která nám umožňuje skutečně napsat nějaký kód, který 947 00:42:06,157 --> 00:42:08,990 dostane řetězec z user-- moc jako naše dobrovolnice na chvíli ago-- 948 00:42:08,990 --> 00:42:11,320 ukládání výsledek v proměnné s názvem název, 949 00:42:11,320 --> 00:42:15,470 a then-- podobně jako s naším dobrovolníkem s printf-- vytiskne těchto hodnot 950 00:42:15,470 --> 00:42:19,180 předáním dva argumenty se řetězec, následovaný proměnnou 951 00:42:19,180 --> 00:42:20,781 volal, jméno, sám. 952 00:42:20,781 --> 00:42:23,155 Takže pojďme se podívat, před jsme se vrátit k Mario tam, 953 00:42:23,155 --> 00:42:26,010 na pár Nyní příkladů. 954 00:42:26,010 --> 00:42:30,537 >> Chystám se jít dopředu a otevřený up, řekněme, funkce-0.c. 955 00:42:30,537 --> 00:42:33,120 A jako vždy, tento kód je k dispozici na internetových stránkách Course, 956 00:42:33,120 --> 00:42:35,660 takže můžete hrát spolu na doma a dívat se na to později. 957 00:42:35,660 --> 00:42:40,400 Ale tady je ten program je to esence, od řádku 17 až 22. 958 00:42:40,400 --> 00:42:43,270 Hlavní program je místo, kde Program je vždy začnou. 959 00:42:43,270 --> 00:42:46,980 Tento program, zdá se, že se děje vytisknout své jméno, tlustého střeva. 960 00:42:46,980 --> 00:42:50,320 Je to pak zavolá getString, stejně jako jsme to udělali s našimi dobrovolníky. 961 00:42:50,320 --> 00:42:53,365 A pak, to je zajímavé, to bude volat PrintName. 962 00:42:53,365 --> 00:42:56,490 Ukázalo se, že celou tu dobu, tam Zdá se, že funkce nazvaná PrintName. 963 00:42:56,490 --> 00:42:57,614 Která tiskne něčí jméno. 964 00:42:57,614 --> 00:43:01,210 Nepotřebovali jsme použít printf z včerejška je tu PrintName. 965 00:43:01,210 --> 00:43:03,500 >> Ale to je zavádějící proto, že není PrintName 966 00:43:03,500 --> 00:43:06,760 přijít s C. lidé neměli vymyslet asi před 40 nebo 50 lety, 967 00:43:06,760 --> 00:43:07,990 Udělal jsem, místo toho. 968 00:43:07,990 --> 00:43:10,330 A ve skutečnosti, když jsem procházení dolů, další oznámení 969 00:43:10,330 --> 00:43:14,200 jak mohu napsat vlastní funkce v C. Budeme nakonec 970 00:43:14,200 --> 00:43:16,319 vysvětlit, proč jsme se pořád říká, neplatné, na několika místech, 971 00:43:16,319 --> 00:43:18,110 ale pro dnešek, pojďme stačí se podívat na jména. 972 00:43:18,110 --> 00:43:20,905 >> Na řádku 24, chcete-li vytvořit svůj vlastní funkce, 973 00:43:20,905 --> 00:43:22,780 doslova psát Název funkce. 974 00:43:22,780 --> 00:43:24,340 Vybral jsem si PrintName. 975 00:43:24,340 --> 00:43:26,159 V závorce, budete zadejte, jaké druhy 976 00:43:26,159 --> 00:43:28,450 vstupů, a kolik jste chtějí tuto funkci přijmout. 977 00:43:28,450 --> 00:43:31,906 V tomto případě, chci, aby se 1 variabilní volal, jméno, 978 00:43:31,906 --> 00:43:34,030 a to bude mít typ, řetězec, takže to jde 979 00:43:34,030 --> 00:43:35,780 být nějaký posloupnost znaků. 980 00:43:35,780 --> 00:43:39,170 A pak, to program-- podobně jako v Scratch, 981 00:43:39,170 --> 00:43:42,590 můžete mít vlastní puzzle pieces-- bude mít tento vlastní chování. 982 00:43:42,590 --> 00:43:46,760 Bude to říkat printf předáním, ahoj, zástupný symbol, 983 00:43:46,760 --> 00:43:49,110 a pak to bude plug ve všem, co volal uživatel. 984 00:43:49,110 --> 00:43:51,450 >> Tak to je příklad toho, co počítačový vědec by 985 00:43:51,450 --> 00:43:55,090 hovor abstrakce nebo funkční rozklad, které jsou stejně 986 00:43:55,090 --> 00:43:58,110 galanterní Způsoby saying-- je, pokud se vám líbí tento nápad na vysoké úrovni, 987 00:43:58,110 --> 00:44:01,569 jako já chci funkce, které vytiskne něčí jméno, naprosto vás 988 00:44:01,569 --> 00:44:04,360 může doslova napsat printf a poté projít v argumentech, které chcete, 989 00:44:04,360 --> 00:44:07,340 a program bude fungovat, protože má od středu. 990 00:44:07,340 --> 00:44:10,510 Ale můžete začít abstraktní pryč pojem tisku jméno. 991 00:44:10,510 --> 00:44:13,270 Můžete dát mu jméno, jako je PrintName, a to 992 00:44:13,270 --> 00:44:15,280 je to myšlenka vrstvení od týdne 0. 993 00:44:15,280 --> 00:44:19,910 >> Od nynějška, já a vy nemusíte vědět nebo jedno, jak PrintName je implementována. 994 00:44:19,910 --> 00:44:22,470 Ano, používá printf, možná to není, kdo ví, co používá? 995 00:44:22,470 --> 00:44:23,410 Koho to zajímá? 996 00:44:23,410 --> 00:44:26,034 Teď mluvím tady, místo toho tady dole. 997 00:44:26,034 --> 00:44:28,700 A skutečně, jak naše programy dostat vyspělejší a sofistikovanější, 998 00:44:28,700 --> 00:44:32,550 budeme pokračovat v užívání za samozřejmost že nižší úroveň dílky existují. 999 00:44:32,550 --> 00:44:34,780 Protože jsme psali jim nebo někdo jiný, takž 1000 00:44:34,780 --> 00:44:36,910 že můžeme potom vytvořit nad nimi. 1001 00:44:36,910 --> 00:44:39,430 Pojďme se podívat na to varianta, fungují jeden. 1002 00:44:39,430 --> 00:44:41,780 >> Tak tohle je trochu více pokročilé, ale ukázalo se, 1003 00:44:41,780 --> 00:44:44,570 že v knihovně CS50 je, je tu jen funkce GetInt. 1004 00:44:44,570 --> 00:44:47,720 Nemysleli jsme si, před lety, aby implementovat funkce GetPositiveInt. 1005 00:44:47,720 --> 00:44:50,970 A to je trochu nepříjemné, protože pokud Vy jste psaní programu u něhož 1006 00:44:50,970 --> 00:44:53,325 Chcete-li získat pozitivní celé číslo od uživatele, 1007 00:44:53,325 --> 00:44:55,010 můžete použít absolutně GetInt. 1008 00:44:55,010 --> 00:44:57,840 A můžete naprosto poradit se stav a možná i smyčka 1009 00:44:57,840 --> 00:45:00,320 v případě, že je větší, int než 0 a křičet na uživatele 1010 00:45:00,320 --> 00:45:02,699 pokud on nebo ona nedá Jste kladné číslo. 1011 00:45:02,699 --> 00:45:04,740 Ale pojďme postavit tento stavební blok sami, je, 1012 00:45:04,740 --> 00:45:06,555 zvyk Scratch kus, chcete-li. 1013 00:45:06,555 --> 00:45:08,680 Budu mít program tady to nakonec, myslím, 1014 00:45:08,680 --> 00:45:11,780 chtějí mít možnost volat GetPositiveInt, a já chci být 1015 00:45:11,780 --> 00:45:14,200 schopné vytisknout co to je int. 1016 00:45:14,200 --> 00:45:16,240 Ale to je pryč abstrahovány teď. 1017 00:45:16,240 --> 00:45:19,050 Je to jen dostal vysokou úroveň Název, který říká, že to, co dělá, 1018 00:45:19,050 --> 00:45:21,780 což je skvělé, protože to je velmi intuitivní nyní přečíst. 1019 00:45:21,780 --> 00:45:24,710 A když to udělám jedno, co je pod kapota, dovolte mi přejděte dolů. 1020 00:45:24,710 --> 00:45:27,140 A je to trochu zastrašující na první, zejména 1021 00:45:27,140 --> 00:45:29,470 pokud je to vaše první program, ale pojďme se podívat. 1022 00:45:29,470 --> 00:45:32,860 >> Já už říkal, void, protože to dopadá funkcí, 1023 00:45:32,860 --> 00:45:34,777 podobně jako getString, může vrací hodnotu ke mně. 1024 00:45:34,777 --> 00:45:36,610 Nejedná se jen mít vytisknout na obrazovku, 1025 00:45:36,610 --> 00:45:38,410 mohou skutečně ruky mě něco zpátky. 1026 00:45:38,410 --> 00:45:41,535 A zatímco před PrintName, Nepotřeboval jsem nic zpátky. 1027 00:45:41,535 --> 00:45:44,160 Potřeboval jsem vedlejší účinek něco, co objevovat na obrazovce, 1028 00:45:44,160 --> 00:45:46,570 ale já jsem nepotřeboval člověka mi podat něco zpět. 1029 00:45:46,570 --> 00:45:48,840 Zde, s GetPositiveInt, jako u GetInt, 1030 00:45:48,840 --> 00:45:50,640 Chci být předán něco zpět. 1031 00:45:50,640 --> 00:45:53,220 Takže já říkám ne, void, na vedení 23, ale int, 1032 00:45:53,220 --> 00:45:55,570 který říká, tato funkce že píši, 1033 00:45:55,570 --> 00:45:58,860 volal GetPositiveInt se chystá Podej mi zpátky celé číslo, ne nic, 1034 00:45:58,860 --> 00:45:59,890 ne void. 1035 00:45:59,890 --> 00:46:03,280 >> Mezitím, to bude trvat vstupy, takže jsem se, druh, obrátil to. 1036 00:46:03,280 --> 00:46:08,280 Nedám žádnou GetPositiveInt vstup, chci, aby mi dát svůj výstup. 1037 00:46:08,280 --> 00:46:09,800 A co se pak stane teď? 1038 00:46:09,800 --> 00:46:11,640 Takže tady je návod, jak mohu deklarovat proměnnou. 1039 00:46:11,640 --> 00:46:15,090 Udělal jsem to mimo smyčku, z důvodů, budeme nakonec vidět, 1040 00:46:15,090 --> 00:46:17,700 ale to jen dává me 32 bitů s názvem, n, 1041 00:46:17,700 --> 00:46:20,952 A já jsem pre-určující je pro uložení celé číslo. 1042 00:46:20,952 --> 00:46:23,660 A tady je to, dělat, zatímco konstrukt, a to je důvod, proč je to užitečné. 1043 00:46:23,660 --> 00:46:26,700 Doslova to udělat, když n je menší než 1. 1044 00:46:26,700 --> 00:46:28,030 Tak uvidíme, co se stane. 1045 00:46:28,030 --> 00:46:30,760 I vytisknout, prosím dej mi pozitivní int. 1046 00:46:30,760 --> 00:46:34,300 Pak jsem si int, pomocí CS50 je fungovat a uloženy v n. 1047 00:46:34,300 --> 00:46:38,990 >> A pak, co řádek kódu pravděpodobně dostane proveden další, logicky? 1048 00:46:38,990 --> 00:46:41,890 Které číslo řádku? 1049 00:46:41,890 --> 00:46:42,571 Jo, tak 31. 1050 00:46:42,571 --> 00:46:45,320 Ty by se vědět, dokud jste bylo řečeno, nebo tak nějak vyvozovat to, 1051 00:46:45,320 --> 00:46:45,986 ale je to pravda. 1052 00:46:45,986 --> 00:46:48,280 Jde to shora dolů a pak se opakuje. 1053 00:46:48,280 --> 00:46:55,840 Takže pokud jsem napsal v řekněme, číslo Negativní 1, je n menší než negativní 1? 1054 00:46:55,840 --> 00:46:56,340 Jo. 1055 00:46:56,340 --> 00:46:58,470 Vzhledem k tomu, negativní 1 je menší než 1. 1056 00:46:58,470 --> 00:46:59,510 Takže to, co by se mělo stát? 1057 00:46:59,510 --> 00:47:03,260 Chystám se to udělat přičemž n je menší než 1, 1058 00:47:03,260 --> 00:47:05,760 takže budu se vrátit do řádku 28. 1059 00:47:05,760 --> 00:47:09,530 >> A každý time-- a pojďme běžet tohle-- aby funkce 1 zkompilovat, 1060 00:47:09,530 --> 00:47:11,340 a teď dot lomítko funkce 1. 1061 00:47:11,340 --> 00:47:14,280 Kdybych zadejte záporné 1, to je bude mít na mě ječet 1062 00:47:14,280 --> 00:47:17,530 dokud jsem spolupracovat, protože každý mých vstupů je menší než 1 1063 00:47:17,530 --> 00:47:20,070 a pokud je to, zatímco méně než 1, Budu držet dělat. 1064 00:47:20,070 --> 00:47:24,240 Pokud jsem se konečně dát číslo jako 50, naštěstí, to říká, díky za 50. 1065 00:47:24,240 --> 00:47:24,970 Proč? 1066 00:47:24,970 --> 00:47:30,640 Vzhledem k tomu, jakmile n není menší než 1, přestanu neuvízly v této smyčky, 1067 00:47:30,640 --> 00:47:33,840 a tento nový klíčové slovo dnes, return, doslova to dělá. 1068 00:47:33,840 --> 00:47:36,800 Takže jsem právě realizována, v smysl, což je ekvivalent getString, 1069 00:47:36,800 --> 00:47:40,590 kde jsem podal zpět kdo používá mě, nějakou hodnotu. 1070 00:47:40,590 --> 00:47:42,820 Nemusí to být řetězec, je to int. 1071 00:47:42,820 --> 00:47:44,990 Tak jednoduchý, rychlý příklad, ale my budeme brzy 1072 00:47:44,990 --> 00:47:47,930 vidět některé sofistikovanější verze ještě. 1073 00:47:47,930 --> 00:47:53,882 Ve skutečnosti, pojďme se podívat na číselný jednoho, který se nazývá return.c. 1074 00:47:53,882 --> 00:47:55,590 A tohle je vlastně o něco jednodušší. 1075 00:47:55,590 --> 00:47:59,010 Takže účel tohoto programu v life-- pojďme zkompilovat a spustit jej, 1076 00:47:59,010 --> 00:48:03,090 takže se vrátit, dot lomítko, return-- oznámení 1077 00:48:03,090 --> 00:48:05,530 Program jednoduše kostky hodnotu 2. 1078 00:48:05,530 --> 00:48:08,410 Je to docela hloupé, je to těžké kód, to nebere žádné vstupy, 1079 00:48:08,410 --> 00:48:12,220 ale to prokázat další Funkce, které jsem napsal sám. 1080 00:48:12,220 --> 00:48:15,760 Tak tady jsem vyhlásil variabilní, zvané x, typu int, 1081 00:48:15,760 --> 00:48:17,840 rovna počtu 2, zcela libovolné. 1082 00:48:17,840 --> 00:48:19,530 To je jen nějaký načechraný tisk. 1083 00:48:19,530 --> 00:48:23,070 To říká, že X je nyní, takové a takový, Cubing dot dot dot. 1084 00:48:23,070 --> 00:48:26,390 A kouzlo je zřejmě v řádku 21. 1085 00:48:26,390 --> 00:48:30,120 Volám funkci nazvanou, krychle, Já jsem podal list papíru 1086 00:48:30,120 --> 00:48:32,890 s číslem 2 psaný na tom, a to, co hodnota, matematicky, 1087 00:48:32,890 --> 00:48:34,860 chci se dostat z toho? 1088 00:48:34,860 --> 00:48:36,570 Stejně jako kontrola sanitačního? 1089 00:48:36,570 --> 00:48:37,070 8. 1090 00:48:37,070 --> 00:48:37,570 Je to tak? 1091 00:48:37,570 --> 00:48:40,160 Chci 2 kostičky zpět, 2 síla 3, takže 8 zpět. 1092 00:48:40,160 --> 00:48:42,570 >> Takže tam, kde se kostka realizován? 1093 00:48:42,570 --> 00:48:44,349 No, všimnete je implementováno tady dole. 1094 00:48:44,349 --> 00:48:47,140 A stejně jako předtím, logicky, přestože syntaxe je pravděpodobně 1095 00:48:47,140 --> 00:48:49,320 mnozí z vás zcela nové, Chci tuto funkci 1096 00:48:49,320 --> 00:48:51,780 mi ruku list papír s int na to. 1097 00:48:51,780 --> 00:48:53,990 Takže mám int, na Jmenuje se libovolně, 1098 00:48:53,990 --> 00:48:55,530 ale vhodně nazvaný krychle. 1099 00:48:55,530 --> 00:48:58,430 Vstupní k němu, je n of zadejte celé číslo, tak to je 1100 00:48:58,430 --> 00:49:00,800 Jak mohu předat v počtu 2 na jeden list papíru. 1101 00:49:00,800 --> 00:49:03,910 A pak se ukáže, C podpěry matematika, takže nemáte x je pro časy, 1102 00:49:03,910 --> 00:49:06,680 stačí použít hvězdičku pro násobení. 1103 00:49:06,680 --> 00:49:11,070 A to se vrací krát N krát N n, což je jednoduše hodnota kostičky. 1104 00:49:11,070 --> 00:49:12,840 >> Tak kam jedeme se tohle všechno? 1105 00:49:12,840 --> 00:49:14,570 To je určitě vichřice tour, buďte ujištěni, 1106 00:49:14,570 --> 00:49:16,410 že v super sekcích a problém set 1, 1107 00:49:16,410 --> 00:49:18,368 budete prošel to vše o to víc. 1108 00:49:18,368 --> 00:49:22,490 A problém nastavit 1, budeme přechodu z grafického světa Scratch 1109 00:49:22,490 --> 00:49:25,640 na něco více příkazového řádku v C. Ale budeme čerpat inspiraci 1110 00:49:25,640 --> 00:49:27,680 z této hry zde z dávných dob, kde 1111 00:49:27,680 --> 00:49:31,591 pomocí C a standardní edici p set budete realizovat Mariovu pyramidy. 1112 00:49:31,591 --> 00:49:34,340 A v hackerské vydání p set, pokud se tak rozhodnete volit, 1113 00:49:34,340 --> 00:49:38,280 budete implementovat trochu víc náročné pyramidy se dvěma vrcholy. 1114 00:49:38,280 --> 00:49:41,239 Budete také implementovat algoritmus, chamtivý algoritmus. 1115 00:49:41,239 --> 00:49:43,030 Ukazuje se, že je tu některé zajímavé logika 1116 00:49:43,030 --> 00:49:45,640 za proces běh stanice A pokladníka 1117 00:49:45,640 --> 00:49:47,410 a skutečně podal někdo zpátky změna. 1118 00:49:47,410 --> 00:49:50,410 Tam je algoritmus, který je docela jednoduché, že můžete dokonce 1119 00:49:50,410 --> 00:49:53,576 uchopit intuitivně, když jste poprvé četl to-- si uvědomil, že to, co jsem vždycky 1120 00:49:53,576 --> 00:49:57,110 provést kdykoliv jsem si dal někdo nějakou Peníze back--, který vám umožní vždy 1121 00:49:57,110 --> 00:50:00,679 minimalizovat počet papírové bankovky nebo kovové mince 1122 00:50:00,679 --> 00:50:02,220 že jste podal zpět uživateli. 1123 00:50:02,220 --> 00:50:04,610 A to, samozřejmě, je přesvědčivý protože když jdete do CVS nebo kdoví co ještě, 1124 00:50:04,610 --> 00:50:06,430 nechcete, aby podal celá parta ty 1125 00:50:06,430 --> 00:50:07,596 nebo celá parta haléře. 1126 00:50:07,596 --> 00:50:10,120 Chcete nejmenším počtem mince, pravděpodobně, je to možné. 1127 00:50:10,120 --> 00:50:13,070 >> Konečně, budete také být zpochybněna fušovat do světa vody 1128 00:50:13,070 --> 00:50:17,220 a skutečně dostat zhodnocení pro mapování mezi průtokem vody, 1129 00:50:17,220 --> 00:50:19,890 z líbí, voda ve sprše, kolik vody se spotřebuje. 1130 00:50:19,890 --> 00:50:22,640 A narážka tam, bude tento klip tady, 1131 00:50:22,640 --> 00:50:24,840 které budeme končí za jen 60 sekund, že 1132 00:50:24,840 --> 00:50:29,070 maluje obraz low-flow sprchové hlavice. 1133 00:50:29,070 --> 00:50:30,886 >> [VIDEOPŘEHRÁVÁNÍ] 1134 00:50:30,886 --> 00:50:31,385 -Dobře. 1135 00:50:31,385 --> 00:50:32,774 Jsem se sem dostal všechno. 1136 00:50:32,774 --> 00:50:35,800 Mám cyklonu řady F, Hydra, Jetflow, Stockholm 1137 00:50:35,800 --> 00:50:37,660 Supersteam, co si jen vzpomenete. 1138 00:50:37,660 --> 00:50:39,265 >> -A Co doporučujete? 1139 00:50:39,265 --> 00:50:40,460 >> -Co hledáš? 1140 00:50:40,460 --> 00:50:41,300 >> Power člověk. 1141 00:50:41,300 --> 00:50:42,285 Power. 1142 00:50:42,285 --> 00:50:42,910 -Jako Silkwood. 1143 00:50:42,910 --> 00:50:44,520 -To Je pro záření. 1144 00:50:44,520 --> 00:50:46,335 -To je pravda. 1145 00:50:46,335 --> 00:50:48,275 -Nyní Co to je? 1146 00:50:48,275 --> 00:50:49,704 -To Je Commando 450. 1147 00:50:49,704 --> 00:50:50,620 Nechci prodat, že jeden. 1148 00:50:50,620 --> 00:50:51,700 >> -Ale To je to, co chceme. 1149 00:50:51,700 --> 00:50:52,680 Je to komando 450. 1150 00:50:52,680 --> 00:50:53,882 >> Ne mi věřit. 1151 00:50:53,882 --> 00:50:55,090 Používá se pouze v cirkuse. 1152 00:50:55,090 --> 00:50:56,512 To je pro slony. 1153 00:50:56,512 --> 00:50:59,356 >> -Budu Platit nic. 1154 00:50:59,356 --> 00:51:01,252 >> Co o Jerry? 1155 00:51:01,252 --> 00:51:02,760 >> -On Nemohl zvládnout. 1156 00:51:02,760 --> 00:51:04,910 Je to delikátní. 1157 00:51:04,910 --> 00:51:05,750 Ach jo. 1158 00:51:05,750 --> 00:51:36,737 1159 00:51:36,737 --> 00:51:37,320 [END Přehrávání] 1160 00:51:37,320 --> 00:51:37,700 DAVID J Malan: Dobře. 1161 00:51:37,700 --> 00:51:38,820 Tedy pokud na CS50. 1162 00:51:38,820 --> 00:51:40,050 Uvidíme se příští týden. 1163 00:51:40,050 --> 00:51:45,910 1164 00:51:45,910 --> 00:51:49,029 >> Reproduktor 1: [? Scullyová?], [? Ian?] tak daleko, jak tento závěrečný projekt, 1165 00:51:49,029 --> 00:51:50,362 Co jste kluci přišli s? 1166 00:51:50,362 --> 00:51:51,990 >> SPEAKER 2: No, dali jsme to různé myšlení, 1167 00:51:51,990 --> 00:51:53,250 a domníváme se, že nejlepší způsob, jak to-- 1168 00:51:53,250 --> 00:51:53,660 >> SPEAKER 3: Mohu? 1169 00:51:53,660 --> 00:51:54,326 >> SPEAKER 2: Jo. 1170 00:51:54,326 --> 00:51:56,360 V každém případě, ve skutečnosti. 1171 00:51:56,360 --> 00:51:59,425 >> SPEAKER 3: Takže si myslím, můžeme shrnout náš nápad 1172 00:51:59,425 --> 00:52:05,450 Pro Outros s jedním word-- nic. 1173 00:52:05,450 --> 00:52:08,950 1174 00:52:08,950 --> 00:52:10,409 >> DAVID J Malan: Nic? 1175 00:52:10,409 --> 00:52:11,200 SPEAKER 3: Nic. 1176 00:52:11,200 --> 00:52:12,990 DAVID J Malan: Co to znamená? 1177 00:52:12,990 --> 00:52:16,260 SPEAKER 3: outros jsou o ničem. 1178 00:52:16,260 --> 00:52:21,720 SPEAKER 2: No, myslím, ve filozofii, Myslím, že nic není vždy něco. 1179 00:52:21,720 --> 00:52:24,200 Reproduktor 1: Takže what's-- co je předpoklad? 1180 00:52:24,200 --> 00:52:25,720 SPEAKER 3: Takže je to jako život. 1181 00:52:25,720 --> 00:52:26,680 DOBŘE. 1182 00:52:26,680 --> 00:52:28,294 Co jsi dnes dělal? 1183 00:52:28,294 --> 00:52:31,811 >> DAVID J Malan: Vstal jsem, měl snídaně, a přišel do práce. 1184 00:52:31,811 --> 00:52:34,056 >> SPEAKER 3: To je Outro. 1185 00:52:34,056 --> 00:52:36,806 SPEAKER 2: Ale myslím, neměl něco, co se s ním stane na the-- 1186 00:52:36,806 --> 00:52:37,889 SPEAKER 3: Ne, ne, ne, ne. 1187 00:52:37,889 --> 00:52:40,220 Nic se neděje. 1188 00:52:40,220 --> 00:52:42,910 >> Reproduktor 1: Tak proč se díváme? 1189 00:52:42,910 --> 00:52:46,956 >> SPEAKER 3: Vzhledem k tomu, je to outro na CS50. 1190 00:52:46,956 --> 00:52:48,652 >> DAVID J Malan: Ještě ne. 1191 00:52:48,652 --> 00:52:49,151