1 00:00:00,000 --> 00:00:10,940 2 00:00:10,940 --> 00:00:13,060 >> DAVID J Malan: Všetko Dobre, takže to je CS50. 3 00:00:13,060 --> 00:00:15,040 A to je samozrejme piatok. 4 00:00:15,040 --> 00:00:16,850 A to je koniec týždňa jedna. 5 00:00:16,850 --> 00:00:21,020 Takže si možno spomenú, že sme skončili, naposledy, s Cliffhanger svojho druhu. 6 00:00:21,020 --> 00:00:25,020 Pričom sme odhaliť tú lož, že žiadny ohľadu na to, čo ste učil rastie 7 00:00:25,020 --> 00:00:31,610 up, 1 delené 10 nie je, v Skutočnosť, 0,1 alebo 0,100 alebo 0,10000. 8 00:00:31,610 --> 00:00:35,270 V skutočnosti, ak by sme zostaviť tento Program, ako sme to urobili včera, s, 9 00:00:35,270 --> 00:00:39,770 aby nepresnosť, a potom urobiť bodku, lomítko, nepresnosť, 10 00:00:39,770 --> 00:00:43,600 sme sa dozvedeli, že to je to, čo je 1 delené 10 v skutočnosti je. 11 00:00:43,600 --> 00:00:46,140 Takže v skutočnosti to nie je tak celkom pravda. 12 00:00:46,140 --> 00:00:49,014 Ale to robí narážku na niektoré Základné obmedzenia počítačov. 13 00:00:49,014 --> 00:00:50,930 A skutočne, medzi čo budeme robiť 14 00:00:50,930 --> 00:00:55,130 dnes je sa pozrieť na dôvod, prečo to má sa stalo, aké dôsledky to má, 15 00:00:55,130 --> 00:00:58,430 ako sa ľudstvo zlyhalo pochopiť to v niektorých veľmi 16 00:00:58,430 --> 00:01:00,410 vážny situations-- výsledok z ktorých 17 00:01:00,410 --> 00:01:03,141 bol celkom tragický a expensive-- a tiež 18 00:01:03,141 --> 00:01:04,849 sa pozrieť na to, ako môžu skutočne brániť 19 00:01:04,849 --> 00:01:06,530 proti týmto druhom obmedzenia. 20 00:01:06,530 --> 00:01:10,940 Takže intuitívne, snáď, Preto je 1 delené 10, 21 00:01:10,940 --> 00:01:15,480 podľa môjho počítača tu, nie len desatina, 0.10? 22 00:01:15,480 --> 00:01:15,980 Jo. 23 00:01:15,980 --> 00:01:16,530 Co si myslis? 24 00:01:16,530 --> 00:01:17,860 >> Diváčka: radix je iný? 25 00:01:17,860 --> 00:01:18,550 >> DAVID J Malan: Čože je? 26 00:01:18,550 --> 00:01:19,730 Ach, tá základ je iný? 27 00:01:19,730 --> 00:01:20,720 Takže nie tak celkom. 28 00:01:20,720 --> 00:01:23,200 Je to vlastne viac zásadné pre hardvér. 29 00:01:23,200 --> 00:01:23,980 Iné myšlienky? 30 00:01:23,980 --> 00:01:24,584 Jo. 31 00:01:24,584 --> 00:01:26,750 Diváčka: Oni predstavovať čísla inak? 32 00:01:26,750 --> 00:01:27,880 DAVID J Malan: Tak they-- Right. 33 00:01:27,880 --> 00:01:29,338 Predstavujú čísla inak. 34 00:01:29,338 --> 00:01:30,700 Nepresne, zrejme. 35 00:01:30,700 --> 00:01:33,190 Tak, že je-- No, odlišne od čoho? 36 00:01:33,190 --> 00:01:34,490 Alebo od koho? 37 00:01:34,490 --> 00:01:35,050 Od nás? 38 00:01:35,050 --> 00:01:35,966 Diváčka: Jo. 39 00:01:35,966 --> 00:01:38,930 Oni nepoužívajú desatinné systém [nepočuteľný]. 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 istom zmysle, oni robia nie použiť desiatkovú sústavu. 42 00:01:41,560 --> 00:01:43,720 Pod kapotou všetko je, naozaj, binárne, 43 00:01:43,720 --> 00:01:45,510 a to je príbuzný, v skutočnosti. 44 00:01:45,510 --> 00:01:48,135 Ale je to ešte jednoduchšie vysvetlenie než to. 45 00:01:48,135 --> 00:01:48,635 Jo. 46 00:01:48,635 --> 00:01:49,970 >> Diváčka: Oni len toľko bitov. 47 00:01:49,970 --> 00:01:52,370 Môžu iba uložiť až do určitej rozsahu, rovnako ako s desatinné miesta. 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, čo sa naozaj dostať na to. 50 00:01:54,420 --> 00:01:57,180 Ukazuje sa, že počítače typicky, bude vždy len 51 00:01:57,180 --> 00:01:59,690 použiť dispozícii obmedzené množstvo informácií predstavovať niečo. 52 00:01:59,690 --> 00:01:59,870 Je to tak? 53 00:01:59,870 --> 00:02:02,110 Koniec koncov, máme fixné iba Množstvo miesta na pevnom disku. 54 00:02:02,110 --> 00:02:04,210 Máme len pevne stanovenú sumu RAM, alebo pamäť počítača. 55 00:02:04,210 --> 00:02:06,251 A ak budete mať iba pevná suma na niečo, 56 00:02:06,251 --> 00:02:09,611 iste nemožno vlastne spočítať do nekonečna alebo akékoľvek číslo, ktoré chcete. 57 00:02:09,611 --> 00:02:11,610 Tie, druh, musí zvoliť, čo rozsah 58 00:02:11,610 --> 00:02:13,220 hodnôt budete podporovať. 59 00:02:13,220 --> 00:02:18,100 >> A tak napríklad, týždeň alebo dva dávno, keď sme hovorili o ASCII, 60 00:02:18,100 --> 00:02:21,610 a Hovorili sme o 8 bitov, alebo byte, aby som tak povedal, 61 00:02:21,610 --> 00:02:26,360 Najviac sme mohli predstavujú s 8 bitov bolo to, čo? 62 00:02:26,360 --> 00:02:28,350 255. 63 00:02:28,350 --> 00:02:31,850 A môžeme reprezentovať 256 celkovej hodnoty ale nie v prípade, strávime jeden z nich 64 00:02:31,850 --> 00:02:34,190 na 0-- No, ale ak budeme stráviť jeden z nich na 0, 65 00:02:34,190 --> 00:02:36,830 potom najväčší počet je, samozrejme, 255. 66 00:02:36,830 --> 00:02:39,410 >> Tak sa ukázalo, že sa jedná v prípade príliš, v tejto súvislosti. 67 00:02:39,410 --> 00:02:42,350 Začali sme hovoriť, minule, o číslach s plávajúcou desatinnou čiarkou, ktoré 68 00:02:42,350 --> 00:02:44,640 sa líši od celých čísel, v že majú desatinnú čiarku 69 00:02:44,640 --> 00:02:47,056 a dúfajme, niektoré čísla po tom, ale sú príliš. 70 00:02:47,056 --> 00:02:51,730 Počítač je len obvykle deje na použitie 32 bitov, 64 bitov možná 71 00:02:51,730 --> 00:02:53,497 reprezentovať plávajúce bodovú hodnotu. 72 00:02:53,497 --> 00:02:56,080 Takže aj keď sme vyrástli učenie matematiky a vedieť, 73 00:02:56,080 --> 00:02:58,750 že môžete mať absolútne nekonečný počet čísel 74 00:02:58,750 --> 00:03:01,650 za desatinnou čiarkou, nie Ak máte konečný pamäť. 75 00:03:01,650 --> 00:03:03,930 Tie, druh, majú na bicykli, alebo vybrať, ktoré 76 00:03:03,930 --> 00:03:05,346 Čísla budete reprezentovať. 77 00:03:05,346 --> 00:03:08,710 A tak si môžete myslieť, v istom zmysle, čo je počítač je najbližšia 78 00:03:08,710 --> 00:03:14,050 priblíženie na hodnotu 1/10, ktorý to môže dostať, len s 32 alebo tak bitov. 79 00:03:14,050 --> 00:03:15,300 A nie je to len 1 desettin. 80 00:03:15,300 --> 00:03:19,820 >> Napríklad, keď zmením to Tretiny, čo si myslíme, že je ešte jednoduchšie. 81 00:03:19,820 --> 00:03:21,300 Takže 1 delené 3. 82 00:03:21,300 --> 00:03:22,355 Dovoľte mi, aby som uložiť súbor. 83 00:03:22,355 --> 00:03:24,680 Nechaj ma ísť napred a překompilovat ju. 84 00:03:24,680 --> 00:03:25,820 A dovoľte mi znova spustite ho. 85 00:03:25,820 --> 00:03:30,000 Aj tu, zrejme, 1/3 nie je 0.3 a potom nekonečné množstvo 3 rokov 86 00:03:30,000 --> 00:03:30,770 potom. 87 00:03:30,770 --> 00:03:32,540 Máte túto nepresnosť na konci. 88 00:03:32,540 --> 00:03:35,544 Takže my ľudia sú správne, a čo ste sa naučili je, v skutočnosti, správny, 89 00:03:35,544 --> 00:03:37,460 ale my narážala hore proti niektorým obmedzeniam. 90 00:03:37,460 --> 00:03:39,420 >> A to, čo som si myslel, by sme urobiť dnes, je začať 91 00:03:39,420 --> 00:03:42,190 pri pohľade na, úprimne sa Tragické následky tohto 92 00:03:42,190 --> 00:03:45,490 Niekedy, keď ľudstvo nie je úplne realizovať 93 00:03:45,490 --> 00:03:48,460 pre túto realitu a týmito obmedzeniami. 94 00:03:48,460 --> 00:03:52,360 A uvidíme sériu známok od History Channel, ktorý berie 95 00:03:52,360 --> 00:03:53,950 Pozrite sa, ako veci išli zle. 96 00:03:53,950 --> 00:03:56,340 To je asi 8 minút, a vrátime sa po tomto 97 00:03:56,340 --> 00:03:59,439 a pozrite sa na presne to, čo ešte môže pokaziť. 98 00:03:59,439 --> 00:04:00,605 Keby sme mohli stlmiť lights-- 99 00:04:00,605 --> 00:04:02,350 >> [Videoprehrávanie] 100 00:04:02,350 --> 00:04:06,310 >> -Computers, Všetci sme si zvykli na sa často nepríjemné problémy, ktoré 101 00:04:06,310 --> 00:04:07,750 ísť s nimi. 102 00:04:07,750 --> 00:04:11,370 Chyby, vírusy, a softvér závady sú malé ceny 103 00:04:11,370 --> 00:04:13,230 platiť pre pohodlie. 104 00:04:13,230 --> 00:04:17,519 Ale v high-tech a high-speed vojenské a vesmírny program aplikácie, 105 00:04:17,519 --> 00:04:22,130 najmenší problém môže zväčšovať do katastrofy. 106 00:04:22,130 --> 00:04:27,750 4. júna 1996, spracovali vedci začať bezpilotné Ariane 5 rakety. 107 00:04:27,750 --> 00:04:29,890 To niesol vedecké satelity navrhnutý 108 00:04:29,890 --> 00:04:33,030 stanoviť presne, ako sa Zemské magnetické pole interaguje 109 00:04:33,030 --> 00:04:35,600 so solárnymi vetry. 110 00:04:35,600 --> 00:04:37,930 Raketa bola postavená pre Európska vesmírna agentúra 111 00:04:37,930 --> 00:04:41,620 a odštartovala z jeho zariadení na pobreží Francúzskej Guyany. 112 00:04:41,620 --> 00:04:44,924 >> -A Asi 30 sekúnd do rokov, sa prvýkrát 113 00:04:44,924 --> 00:04:46,340 si všimol, sa niečo deje zle. 114 00:04:46,340 --> 00:04:49,280 Že trysky boli otočné v spôsobe, akým by sa mal naozaj nie. 115 00:04:49,280 --> 00:04:53,042 Okolo 40 sekúnd do letu, jasne vozidlo bolo v ťažkostiach, 116 00:04:53,042 --> 00:04:55,250 a to je, keď oni robili rozhodnutie ho zničiť. 117 00:04:55,250 --> 00:04:58,970 Rozmedzie dôstojník s bezpečnostnou obrovské čreva stlačil tlačidlo, 118 00:04:58,970 --> 00:05:03,940 vyhodil raketu predtým to mohlo byť nebezpečné pre verejnú bezpečnosť. 119 00:05:03,940 --> 00:05:06,600 >> Toto bola dievča plavba Ariane 5, 120 00:05:06,600 --> 00:05:09,270 a jeho zničenie vzal miesto z dôvodu chyby 121 00:05:09,270 --> 00:05:10,992 vložené do softvéru rakety. 122 00:05:10,992 --> 00:05:12,700 -the Problém na Ariane bolo, že 123 00:05:12,700 --> 00:05:15,370 bolo číslo, ktoré vyžaduje 64 bitov vyjadriť, 124 00:05:15,370 --> 00:05:18,150 a chcel previesť to na 16 bitové číslo. 125 00:05:18,150 --> 00:05:21,160 Predpokladali, že čísla sa nikdy nebude veľmi veľký, 126 00:05:21,160 --> 00:05:25,020 , Že väčšina z týchto číslic v 64 bit číslo bolo 0 je. 127 00:05:25,020 --> 00:05:26,310 Mýlili sa. 128 00:05:26,310 --> 00:05:28,680 >> -the Neschopnosť jedného softvérový program prijať 129 00:05:28,680 --> 00:05:32,820 druh číslo generované iný bol pri koreni zlyhania. 130 00:05:32,820 --> 00:05:37,190 Vývoj softvéru sa stal veľmi nákladné súčasťou novej technológie. 131 00:05:37,190 --> 00:05:40,760 Ariane 4 Raketa bola veľmi úspešná, tak veľkú časť softvéru 132 00:05:40,760 --> 00:05:43,990 vytvorený pre to bolo tiež použitý na Ariane 5. 133 00:05:43,990 --> 00:05:49,750 >> -the Základným problémom bolo to, že Ariane 5 bol rýchlejší, zrýchlil rýchlejšie. 134 00:05:49,750 --> 00:05:53,000 A softvér nemal predstavoval, že. 135 00:05:53,000 --> 00:05:56,330 >> -the Zničenie rakety bol obrovský finančný katastrofa, 136 00:05:56,330 --> 00:05:59,670 všetko z dôvodu chyby minút softvéru. 137 00:05:59,670 --> 00:06:01,990 Ale to nebol prvý Problémy s konverziou dát časové 138 00:06:01,990 --> 00:06:05,310 bol sužovaný modernej raketovej techniky. 139 00:06:05,310 --> 00:06:08,300 >> -V 1.991, so štartom vojny v Perzskom zálive 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 sa 28 ľudí, 28 amerických vojakov 143 00:06:15,620 --> 00:06:18,440 bolo zabitých a asi 100 iní zranený, 144 00:06:18,440 --> 00:06:21,900 keď Patriot, ktorý mal k ochrane proti prichádzajúcej Scud, 145 00:06:21,900 --> 00:06:24,630 nedokázal vystreliť raketu. 146 00:06:24,630 --> 00:06:29,440 >> -Keď Irak napadol Kuvajt a Ameriku zahájená Púštna búrka na začiatku roku 1991, 147 00:06:29,440 --> 00:06:33,800 Patriot raketová batéria boli nasadené chrániť Saudská Arábia a Izrael 148 00:06:33,800 --> 00:06:37,000 z irackých Scud raketových útokov. 149 00:06:37,000 --> 00:06:40,610 Patriot je v USA, stredného doletu povrch-k-vzduch systém 150 00:06:40,610 --> 00:06:43,010 vyrábané spoločnosťou Raytheon. 151 00:06:43,010 --> 00:06:49,080 >> -veľkosť Patriot Interceptor, sám o sebe, je o zhruba 20 stôp dlhý. 152 00:06:49,080 --> 00:06:51,250 A váži asi 2000 libier. 153 00:06:51,250 --> 00:06:55,195 A to so sebou nesie bojovú hlavicu o about-- Myslím, že to je zhruba 150 libier. 154 00:06:55,195 --> 00:06:59,500 A hlavice, sám, je vysoko výbušný, 155 00:06:59,500 --> 00:07:02,570 ktorý má fragmenty okolo neho. 156 00:07:02,570 --> 00:07:06,890 Puzdro hlavice je navrhnuté tak, aby správať ako hrubé broky. 157 00:07:06,890 --> 00:07:09,130 >> -the Rakety sú vykonávané, 4 na obale, 158 00:07:09,130 --> 00:07:12,080 a sú prepravované návesu. 159 00:07:12,080 --> 00:07:19,100 >> -the Patriot proti raketový systém siaha najmenej 20 rokov. 160 00:07:19,100 --> 00:07:22,320 To bolo pôvodne navrhnuté ako vzdušná obrana rakety 161 00:07:22,320 --> 00:07:24,180 zostreliť nepriateľské lietadlá. 162 00:07:24,180 --> 00:07:27,860 Vo vojne v Perzskom zálive prvé, keď tá vojna prišla, 163 00:07:27,860 --> 00:07:32,745 Armáda chcela používať to, aby zostreliť Scud, nie lietadiel. 164 00:07:32,745 --> 00:07:36,150 Iracká sila nebola tak veľký problém, 165 00:07:36,150 --> 00:07:39,110 ale armáda bola starosti Scud. 166 00:07:39,110 --> 00:07:42,340 A tak sa pokúsili upgrade Patriot. 167 00:07:42,340 --> 00:07:44,760 >> -Intercepting Nepriateľa raketa cestovanie u Macha päť 168 00:07:44,760 --> 00:07:47,250 šiel byť dosť náročné. 169 00:07:47,250 --> 00:07:50,000 Ale keď Patriot bol behave do prevádzky, 170 00:07:50,000 --> 00:07:54,030 armáda nebol vedomý Iracký modifikácie, ktoré robil 171 00:07:54,030 --> 00:07:56,840 ich Pláva takmer nemožné zasiahnuť. 172 00:07:56,840 --> 00:08:01,020 >> Čo sa stalo, je, že Pláva prichádzali, boli nestabilné, 173 00:08:01,020 --> 00:08:02,310 boli kymácení. 174 00:08:02,310 --> 00:08:05,140 Dôvodom pre to, bol Iračanov, aby 175 00:08:05,140 --> 00:08:09,450 dostať 600 kilometrov z 300km doletu, 176 00:08:09,450 --> 00:08:12,930 vzal váhu z predného hlavice a robil hlavice ľahší. 177 00:08:12,930 --> 00:08:17,710 Takže teraz, Patriot sa snaží prísť na plávať, a väčšinu času, 178 00:08:17,710 --> 00:08:21,700 drvivá väčšina z Tentoraz to bude len lietať plávať. 179 00:08:21,700 --> 00:08:25,700 >> -Akonáhle Prevádzkovateľov Systém Patriot si uvedomil, že Patriot minula svoj cieľ, 180 00:08:25,700 --> 00:08:29,790 oni odpálili Patriot v hlavici, aby sa zabránilo možným obetiam ak to 181 00:08:29,790 --> 00:08:32,380 nechá spadnúť na zem. 182 00:08:32,380 --> 00:08:36,340 >> -to Je to, čo väčšina ľudí videl, Tie veľké ohnivé gule na oblohe, 183 00:08:36,340 --> 00:08:41,289 a nepochopený as zachytí Scud hlavíc. 184 00:08:41,289 --> 00:08:43,590 Aj keď v noci neba, sa objavil Patriots 185 00:08:43,590 --> 00:08:47,020 úspešne byť ničiť Scud, na zahranie, 186 00:08:47,020 --> 00:08:49,730 tam mohol byť žiadna chyba o jeho výkonnosti. 187 00:08:49,730 --> 00:08:53,990 Tam, radarový systém Patriot stratil na prichádzajúce Scud, 188 00:08:53,990 --> 00:08:56,650 a nikdy začatý vzhľadom k softvér chybu. 189 00:08:56,650 --> 00:08:59,650 190 00:08:59,650 --> 00:09:04,100 Bol to Izraelčanov, ktorí ako prví objavili , Že čím dlhšie je systém bol na, 191 00:09:04,100 --> 00:09:07,510 tým väčšia je časový nesúlad sa 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ýždne pred tragédie v Dhahran, 194 00:09:12,670 --> 00:09:15,010 Izraelčania hlásených ministerstvo obrany, 195 00:09:15,010 --> 00:09:17,940 že systém bol čas stráca, že po približne 8 hodinách prevádzky, 196 00:09:17,940 --> 00:09:21,410 si všimli, že systém bol stále znateľne menej presné. 197 00:09:21,410 --> 00:09:25,290 Ministerstvo obrany odpovedal tým, že hovoriť všetky batérie Patriot 198 00:09:25,290 --> 00:09:28,070 nenechať systémy na dlhú dobu. 199 00:09:28,070 --> 00:09:29,960 Oni nikdy nepovedal to, čo dávno bol. 200 00:09:29,960 --> 00:09:30,460 8 hodín? 201 00:09:30,460 --> 00:09:30,960 10 hodín? 202 00:09:30,960 --> 00:09:31,870 1000 hodín? 203 00:09:31,870 --> 00:09:33,734 Nikto nevedel. 204 00:09:33,734 --> 00:09:35,650 -the Patriot batérie umiestnený v kasárňach 205 00:09:35,650 --> 00:09:40,410 na zahranie a jej chybné interné hodiny, bol na viac ako 100 hodín 206 00:09:40,410 --> 00:09:43,041 v noci 25. februára. 207 00:09:43,041 --> 00:09:47,416 >> -To Sledoval čas s presnosťou asi 1/10 sekundy. 208 00:09:47,416 --> 00:09:49,290 Teraz 1 desatiny sekundy, je zaujímavé čísla 209 00:09:49,290 --> 00:09:52,700 pretože to nemôže byť vyjadrené v binárnej, presne tak. 210 00:09:52,700 --> 00:09:54,820 Čo znamená, že nemôže byť vyjadrený, presne, 211 00:09:54,820 --> 00:09:57,420 v každom modernom digitálnom počítači. 212 00:09:57,420 --> 00:10:01,460 Je ťažké uveriť, ale použiť ako príklad. 213 00:10:01,460 --> 00:10:03,520 Vezmime si číslo 1/3. 214 00:10:03,520 --> 00:10:07,110 Tretiny nemožno vyjadriť v desiatkovej sústave, presne tak. 215 00:10:07,110 --> 00:10:11,490 Tretín je 0,333 deje na nekonečno. 216 00:10:11,490 --> 00:10:15,486 Neexistuje žiadny spôsob, ako to urobiť, s absolútna presnosť, v desiatkovej sústave. 217 00:10:15,486 --> 00:10:18,360 To je presne rovnaký druh Problém, ktorý sa stalo v Patriot. 218 00:10:18,360 --> 00:10:22,510 Čím dlhšia je systém bežal sa horší stal čas k chybe. 219 00:10:22,510 --> 00:10:28,420 >> -po 100 hodinách prevádzky, chyba v dobe bol len asi 1/3 sekundy. 220 00:10:28,420 --> 00:10:31,830 Ale pokiaľ ide o zacielení raketa jede 5 Mach, 221 00:10:31,830 --> 00:10:35,890 to viedlo k sledovanie Chyba viac ako 600 metrov. 222 00:10:35,890 --> 00:10:38,970 Bolo by fatálna chyba pre vojakov v zahrani. 223 00:10:38,970 --> 00:10:45,035 >> Čo sa stalo, je Scud štart bol detekované včasného varovania satelity, 224 00:10:45,035 --> 00:10:48,930 a nový, že Scud bol prichádza vo svojom všeobecnom smere. 225 00:10:48,930 --> 00:10:51,170 Nevedeli, kam že to príde. 226 00:10:51,170 --> 00:10:53,990 >> -To Bol teraz až k radaru zložkou systému Patriot, 227 00:10:53,990 --> 00:10:58,520 brániť Dhahran, nájsť a udržať Trať prichádzajúce nepriateľské rakety. 228 00:10:58,520 --> 00:10:59,690 >> -the Radar bol veľmi šikovný. 229 00:10:59,690 --> 00:11:01,710 To by v skutočnosti sledovať poloha Scud 230 00:11:01,710 --> 00:11:04,040 a potom predpovedať, kde to asi bude, 231 00:11:04,040 --> 00:11:06,140 nabudúce sa radar poslal pulz von. 232 00:11:06,140 --> 00:11:07,660 To bolo nazývané rozsah brána. 233 00:11:07,660 --> 00:11:11,870 >> -Tak, Akonáhle Patriot Rozhodne dosť času má 234 00:11:11,870 --> 00:11:16,280 prešiel sa vrátiť a skontrolovať ďalšie umiestnenie pre túto zisteným objektom, 235 00:11:16,280 --> 00:11:17,280 sa vráti späť. 236 00:11:17,280 --> 00:11:21,690 Takže keď sa vrátil k zlý miesto, to potom nevidí objekt 237 00:11:21,690 --> 00:11:25,230 a rozhodne, že neexistuje objekt, to bola falošná detekcia, 238 00:11:25,230 --> 00:11:26,650 a kvapky trať. 239 00:11:26,650 --> 00:11:29,690 Prichádzajúce Scud zmizol z obrazovky radaru, 240 00:11:29,690 --> 00:11:32,670 a sekúnd neskôr ju narazila do kasární. 241 00:11:32,670 --> 00:11:38,100 Plávať zabil 28 a bolo to posledné, raz počas vojny v Perzskom zálive prvej vystrelil. 242 00:11:38,100 --> 00:11:43,460 Je tragické, že aktualizovaný softvér dorazil zahraní nasledujúci deň. 243 00:11:43,460 --> 00:11:46,150 Tento softvér vada mal bolo opravené, zatváranie 244 00:11:46,150 --> 00:11:48,940 jedna kapitola v problémovej História Patriot strely. 245 00:11:48,940 --> 00:11:50,220 >> [END Prehrávanie] 246 00:11:50,220 --> 00:11:54,340 >> DAVID J Malan: Takže budeme sa pozrieť na Niektoré podobné obmedzenia pri len trochu. 247 00:11:54,340 --> 00:11:58,470 Ale najprv, poďme Prechod na niekoľko FYI je. 248 00:11:58,470 --> 00:12:01,575 Takže one-- tento víkend, tam bude flash sekcií, 249 00:12:01,575 --> 00:12:04,200 ktoré sú určené na nahradiť Pravidelne v naplánovanom profily, ktoré 250 00:12:04,200 --> 00:12:05,460 sa spustí za týždeň odtiaľto. 251 00:12:05,460 --> 00:12:08,204 Pozrite sa na webové stránky CS50 je Pre viac informácií o nich. 252 00:12:08,204 --> 00:12:11,120 Budú tiež natočený a streamovať žiť pre tých, ktorí nemôžu zúčastniť. 253 00:12:11,120 --> 00:12:12,980 Problém sada 1 je na Webové stránky už ihrisko je, 254 00:12:12,980 --> 00:12:15,105 a my sa pozrieť na že v len trochu. 255 00:12:15,105 --> 00:12:18,350 A tiež úradné hodiny, bude mať umiestniť tento od pondelka do štvrtka. 256 00:12:18,350 --> 00:12:20,960 >> Tak toto bolo najviac kanonické Program sme sa pozreli na minule. 257 00:12:20,960 --> 00:12:23,590 Je to ako najjednoduchšie Program môžete písať v C, 258 00:12:23,590 --> 00:12:25,250 a dokonca aj to je trochu odvážne tvrdenie. 259 00:12:25,250 --> 00:12:25,750 Je to tak? 260 00:12:25,750 --> 00:12:28,070 Pretože tam je veľa zdalo zložitosť v tejto oblasti. 261 00:12:28,070 --> 00:12:30,445 Takže poďme sa rýchlo pozrieť na to, čo niektoré z týchto prvkov 262 00:12:30,445 --> 00:12:33,080 boli a potom sa snažíme poskytnúť mentálne model, ako 263 00:12:33,080 --> 00:12:35,710 tie najjednoduchšie programov pracovať, a potom začneme 264 00:12:35,710 --> 00:12:38,050 pri pohľade na veci stále zložitejšie. 265 00:12:38,050 --> 00:12:41,280 Takže tento riadok tu, zdôraznil teraz, žlto, čo sme povedať, minule, 266 00:12:41,280 --> 00:12:43,200 že to robí pre nás? 267 00:12:43,200 --> 00:12:45,220 Aký je účel to slúži? 268 00:12:45,220 --> 00:12:46,984 Každý, kto sa ďalej späť? 269 00:12:46,984 --> 00:12:47,483 Jo. 270 00:12:47,483 --> 00:12:48,649 >> Diváčka: [Nepočuteľné] 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áva prístup na príkazy, alebo poďme 274 00:12:53,537 --> 00:12:56,750 Funkcie volania je, že niekto inde napísal, že sú deklarované, 275 00:12:56,750 --> 00:12:58,350 tak povediac, v nejakom inom súbore. 276 00:12:58,350 --> 00:13:02,370 Tak uvidíme, presne to, čo .h súbor je oproti súboru .c, popr. 277 00:13:02,370 --> 00:13:04,710 Ale teraz, len viem, že printf, napríklad, 278 00:13:04,710 --> 00:13:08,370 je medzi funkciami, ktoré boli deklarované v nejakom inom súbore, niekde 279 00:13:08,370 --> 00:13:12,930 inde na pevnom disku mraku, ktorý nám umožňuje pristupovať k printf a používať ho 280 00:13:12,930 --> 00:13:15,240 aby bolo nutné znovu vynájsť že kolesá sami. 281 00:13:15,240 --> 00:13:16,930 Medzitým, hlavný. 282 00:13:16,930 --> 00:13:19,690 Aký bol analóg hlavné, minulý týždeň? 283 00:13:19,690 --> 00:13:20,190 Jo. 284 00:13:20,190 --> 00:13:21,460 >> Diváčka: Zelená vlajka kliknutie. 285 00:13:21,460 --> 00:13:21,740 >> DAVID J Malan: Jo. 286 00:13:21,740 --> 00:13:23,490 Scratch je, keď zelená vlajka kliknutí. 287 00:13:23,490 --> 00:13:25,560 Je to ako puzzle že lopta veci preč. 288 00:13:25,560 --> 00:13:28,306 A tak podobne, to robil svet sa rozhodol pred niekoľkými rokmi, že v C, 289 00:13:28,306 --> 00:13:30,930 a veľa ďalších jazykov, Ak chcete napísať program, 290 00:13:30,930 --> 00:13:33,410 vaše prvé funkcie musí byť nazývaný, hlavné. 291 00:13:33,410 --> 00:13:34,641 A to musí vyzerať takto. 292 00:13:34,641 --> 00:13:36,640 Ale my sa vrátime, inokedy, s čím, int, 293 00:13:36,640 --> 00:13:38,690 a, void, znamená v tomto kontexte. 294 00:13:38,690 --> 00:13:42,860 Pre túto chvíľu, zložené zátvorky sú láskaví ako sa Scratch je skladačky tvare 295 00:13:42,860 --> 00:13:45,080 zapouzdřující určitý počet riadkov. 296 00:13:45,080 --> 00:13:47,070 A medzi na tratiach tu, je toto tu. 297 00:13:47,070 --> 00:13:51,610 printf je funkcia, ktorej účel život je vytlačiť formátovaný reťazec. 298 00:13:51,610 --> 00:13:55,010 A formátovaný, mám na mysli vás môžu pripojiť zástupnými hodnotami, 299 00:13:55,010 --> 00:13:58,360 a môžete určiť, koľko desatinné miesto bodov, koľko čísel vytlačiť 300 00:13:58,360 --> 00:14:00,040 po desatinnou čiarkou a podobne. 301 00:14:00,040 --> 00:14:05,040 A printf, samozrejme, trvá jeden alebo viac argumenty alebo parametre, 302 00:14:05,040 --> 00:14:06,770 inak známy, jednoduchšie, ako vstupy. 303 00:14:06,770 --> 00:14:09,230 >> Takže printf, ako veľa funkcie, berie vstupy. 304 00:14:09,230 --> 00:14:12,730 A tieto vstupy sú zahrnuté dvoma zátvorkách tu. 305 00:14:12,730 --> 00:14:15,180 A vo vnútri nich je jeden vstup. 306 00:14:15,180 --> 00:14:18,600 Je to reťazec, ako sme to nazval, čo je len postupnosť znakov, 307 00:14:18,600 --> 00:14:22,310 ako slovo alebo frázu, alebo celku esej dokonca medzi úvodzovkách. 308 00:14:22,310 --> 00:14:25,712 A to je to, čo sa deje na ovplyvňovať Správanie printf, pretože, samozrejme, 309 00:14:25,712 --> 00:14:27,170 je to len všeobecný funkcie tlače. 310 00:14:27,170 --> 00:14:29,600 To nebude vedieť, čo k tlači, pokiaľ ju povedať. 311 00:14:29,600 --> 00:14:31,000 A potom, niektorí markanty. 312 00:14:31,000 --> 00:14:34,056 Čo hovoríme to divný postupnosť symbolov, je? 313 00:14:34,056 --> 00:14:34,556 Jo. 314 00:14:34,556 --> 00:14:35,410 >> Diváčka: Nová rada. 315 00:14:35,410 --> 00:14:35,990 >> DAVID J Malan: Nová rada. 316 00:14:35,990 --> 00:14:39,340 Tak to dopadá, môžete nielen zasiahnuť, vstúpiť, keď píšete program. 317 00:14:39,340 --> 00:14:42,590 Všeobecne platí, že kompilátor dostane trochu zmätený, ako na to, čo máte na mysli. 318 00:14:42,590 --> 00:14:45,340 Skôr, musíte doslova hovoria, daj mi nový riadok tu. 319 00:14:45,340 --> 00:14:49,506 A tak / n je to, čo sme sa všeobecne zavolajte znak escape. 320 00:14:49,506 --> 00:14:50,870 Takže n, na nový riadok. 321 00:14:50,870 --> 00:14:53,810 A kompilátor vie, že keď vidí / n, 322 00:14:53,810 --> 00:14:57,420 že by sa v skutočnosti vyvolať počítače, v konečnom dôsledku, alebo printf, v tomto prípade, 323 00:14:57,420 --> 00:15:00,260 vytlačiť aktuálny Novinka linka, rovnako ako biť, zadajte, 324 00:15:00,260 --> 00:15:01,480 kláves na klávesnici. 325 00:15:01,480 --> 00:15:05,620 A konečne, čo urobil hovoríme Tento kus syntax je pre? 326 00:15:05,620 --> 00:15:06,591 Čo to predstavuje? 327 00:15:06,591 --> 00:15:07,090 Jo. 328 00:15:07,090 --> 00:15:07,490 >> Diváčka: [Nepočuteľné] 329 00:15:07,490 --> 00:15:08,660 >> DAVID J Malan: Je to len koniec riadku. 330 00:15:08,660 --> 00:15:09,909 Je to koniec vyhlásenia. 331 00:15:09,909 --> 00:15:11,890 A uvedomiť si, že my nie dať je všade. 332 00:15:11,890 --> 00:15:13,900 Určite nie dať je na koncoch každého riadku. 333 00:15:13,900 --> 00:15:16,680 Napríklad, tam nič nie je na prvý riadok, je tu nikto na linke 334 00:15:16,680 --> 00:15:18,680 s, hlavné, tam nič nie je po zložených zátvorkách, 335 00:15:18,680 --> 00:15:21,740 ale začnete vidieť a získať oboznámení s tým, kde je to len pre. 336 00:15:21,740 --> 00:15:26,014 A to je takmer vždy po funkcii volať alebo vyhlásenia, niektoré akcie 337 00:15:26,014 --> 00:15:27,180 že ste skutočne užívať. 338 00:15:27,180 --> 00:15:29,520 >> A viem teraz, a to najmä v prípade, medzi tie menej pohodlné, 339 00:15:29,520 --> 00:15:32,540 to sú druhy hlúpe veci že skončíte omylom výprask 340 00:15:32,540 --> 00:15:33,873 hlavou proti múru nad. 341 00:15:33,873 --> 00:15:36,107 Vzhľadom k tomu, budete logicky dôveru v nejakom probléme 342 00:15:36,107 --> 00:15:38,440 ste vyriešil pre problém set, a tá prekliata vec práve 343 00:15:38,440 --> 00:15:40,187 nebude kompilovať ani spustiť. 344 00:15:40,187 --> 00:15:43,270 A tak často, na začiatku, bude to byť preto, že ste vynechal zátvorky, 345 00:15:43,270 --> 00:15:44,455 alebo ste vynechal bodkočiarku. 346 00:15:44,455 --> 00:15:46,547 A tak len budú mať na zreteli tieto druhy vecí, 347 00:15:46,547 --> 00:15:49,380 a pokúsiť sa dostať frustrovaní je, pretože veľmi rýchlo to robí 348 00:15:49,380 --> 00:15:50,640 stať sa stará vesta. 349 00:15:50,640 --> 00:15:53,910 Ale je to veľmi ľahké sa dostať frustrovaní skoro, ako výsledok. 350 00:15:53,910 --> 00:15:57,020 >> Takže teraz, poďme sa pozrieť na to, ako Táto linka je skutočne pracuje 351 00:15:57,020 --> 00:15:59,170 a potom sa pozrite na mierne zložitejšie jednu. 352 00:15:59,170 --> 00:16:02,017 Takže máme tu sa schopnosť vypracovať na tejto obrazovke. 353 00:16:02,017 --> 00:16:04,100 A predpokladajme, že toto je moja obrazovka počítača, 354 00:16:04,100 --> 00:16:08,589 ale ja som písanie, ahoj programu, a ja netransponovali, printf. 355 00:16:08,589 --> 00:16:10,130 Niekto iný zaviedla, printf. 356 00:16:10,130 --> 00:16:12,420 Kto by chcel tvrdiť, že zaviedli, printf? 357 00:16:12,420 --> 00:16:12,920 Ak sa nám môže? 358 00:16:12,920 --> 00:16:13,830 Dobre, Ako sa voláte? 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, poď hore. 361 00:16:15,529 --> 00:16:16,430 Poď hore. 362 00:16:16,430 --> 00:16:17,070 Dobre. 363 00:16:17,070 --> 00:16:22,260 Takže máme tu, niektoré menovky, pretože urobíme malú hru tohto. 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 ak chcete, aby sem prišiel, to, čo som práve natiahnutý na obrazovke, 366 00:16:30,170 --> 00:16:32,340 je to celkom jednoducho, tam som ja, toto. 367 00:16:32,340 --> 00:16:35,550 >> Dobre, takže, ahoj volám sa, printf, ak by ste chceli, aby si to. 368 00:16:35,550 --> 00:16:35,740 Dobre. 369 00:16:35,740 --> 00:16:37,360 A ak môžete ísť stánok podľa obrazovke počítača 370 00:16:37,360 --> 00:16:39,730 ako keby ste funkciu, ktorú prišiel s týmto počítačovým systémom. 371 00:16:39,730 --> 00:16:42,063 A váš cieľ v živote je aby skutočne niečo vytlačiť. 372 00:16:42,063 --> 00:16:44,560 Ale podobne ako programu sme proste musel na obrazovke, tu, 373 00:16:44,560 --> 00:16:47,060 budeme musieť skutočne dať vám nejaký vstup. 374 00:16:47,060 --> 00:16:51,810 >> A tak, ak môj vstup, tu, je zdá sa, že to, čo je odovzdaný do printf, 375 00:16:51,810 --> 00:16:53,730 poďme trochu mock to takto. 376 00:16:53,730 --> 00:16:58,720 Chystám sa doslova písať na kus papiera, "ahoj, svet" 377 00:16:58,720 --> 00:17:03,020 spätné lomítko N. A aby bolo jasné, čo sa Práve som natiahnutý na tento kus papiera, 378 00:17:03,020 --> 00:17:04,020 vyzerá takto. 379 00:17:04,020 --> 00:17:08,730 Takže keď som spustenie tohto programu, a to žltá riadok kódu dostane popravený, 380 00:17:08,730 --> 00:17:12,970 je to, ako by som, program Dobrý deň, som podal nejaký vstup preč do funkcie 381 00:17:12,970 --> 00:17:13,970 že niekto iný napísal. 382 00:17:13,970 --> 00:17:16,595 >> A ak sa vám, prstom, mohol v skutočnosti, prstom, 383 00:17:16,595 --> 00:17:21,520 kresliť na obrazovku čokoľvek si to ty, ktoré boli odovzdané, 384 00:17:21,520 --> 00:17:27,465 účinok, nakoniec, je presne vidieť, že na obrazovke. 385 00:17:27,465 --> 00:17:29,140 A malý kútik prípad. 386 00:17:29,140 --> 00:17:31,540 A dobre, nemali by sme vidieť uzávierky, nový riadok, v tomto bode. 387 00:17:31,540 --> 00:17:33,900 Bolo by nesprávne pre vás explicitne nakresliť nový riadok. 388 00:17:33,900 --> 00:17:36,810 Ale ak budeme stále písať slová na obrazovka, by skončiť pod tým. 389 00:17:36,810 --> 00:17:39,560 >> Takže ďakujem moc, ale držať len na jednej chvíli tu. 390 00:17:39,560 --> 00:17:42,860 Teraz potrebujeme jeden ďalší dobrovoľník, keby sme mohli, 391 00:17:42,860 --> 00:17:46,830 že to bude musieť hrať úlohu of-- Je to len ľudí v orchestri 392 00:17:46,830 --> 00:17:47,355 práve teraz. 393 00:17:47,355 --> 00:17:47,980 Ako about-- OK. 394 00:17:47,980 --> 00:17:48,480 Práve tu. 395 00:17:48,480 --> 00:17:49,180 Poď hore. 396 00:17:49,180 --> 00:17:49,955 Ako sa voláš? 397 00:17:49,955 --> 00:17:50,922 >> Študent 2: [? Ivay. ?] 398 00:17:50,922 --> 00:17:51,796 DAVID J Malan: Sorry? 399 00:17:51,796 --> 00:17:52,990 Študent 2: [? Ivay. ?] 400 00:17:52,990 --> 00:17:55,320 DAVID J Malan: Ethan, poď hore. 401 00:17:55,320 --> 00:17:55,820 Nie? 402 00:17:55,820 --> 00:17:58,390 Povedal som si, že zle, dokonca aj potom, čo ste ho dvakrát hovoril? 403 00:17:58,390 --> 00:17:58,890 Poď hore. 404 00:17:58,890 --> 00:18:00,030 Je ťažké počuť tu. 405 00:18:00,030 --> 00:18:05,240 406 00:18:05,240 --> 00:18:05,740 OK. 407 00:18:05,740 --> 00:18:07,190 A je mi ľúto, Ako sa voláte? 408 00:18:07,190 --> 00:18:07,680 >> Študent 2: [? Ivay. ?] 409 00:18:07,680 --> 00:18:08,790 >> [? DAVID J Malan: Ivay. ?] OK. 410 00:18:08,790 --> 00:18:10,430 Pre túto chvíľu, ak nemáte myseľ, ste getString. 411 00:18:10,430 --> 00:18:11,013 >> Študent 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 ak by ste chceli stáť tu len na chvíľu, 414 00:18:14,630 --> 00:18:17,100 poďme sa pozrieť na mierne viac komplexný program, ktorý 415 00:18:17,100 --> 00:18:18,670 Teraz má tri riadky kódu. 416 00:18:18,670 --> 00:18:24,080 Takže máme, človek, uveďte svoje meno pomocou printf; dva, volanie getString, 417 00:18:24,080 --> 00:18:28,060 nasleduje priradenie k variabilný volal, reťazec s, alebo tzv s; 418 00:18:28,060 --> 00:18:31,260 a potom ďalšie volanie, printf, ale tentoraz s dvoma vstupmi. 419 00:18:31,260 --> 00:18:33,646 >> Takže sme už urobili stav Vaše meno, alebo skôr, máme 420 00:18:33,646 --> 00:18:34,770 už urobili printf volaní. 421 00:18:34,770 --> 00:18:38,960 Takže budem písať, Uveďte svoje meno. 422 00:18:38,960 --> 00:18:42,089 A tak, čo budem prejsť, printf, za chvíľu, 423 00:18:42,089 --> 00:18:43,005 je pomerne jednoducho, to. 424 00:18:43,005 --> 00:18:47,760 Takže ak chcete ísť dopredu a kresliť to Na obrazovke sa, že je to váš vstup teraz. 425 00:18:47,760 --> 00:18:48,260 Dobre. 426 00:18:48,260 --> 00:18:51,160 A zabudnúť na reťazec, máme teraz naše vlastné riadok kódu sem. 427 00:18:51,160 --> 00:18:54,470 Takže, GetString, potrebujeme skutočne volať, getString. 428 00:18:54,470 --> 00:18:57,920 Takže váš cieľ v živote je len tak von do orchestra, keby mohol, 429 00:18:57,920 --> 00:18:58,980 a získať niečiu meno. 430 00:18:58,980 --> 00:19:00,860 Ale poďme dať niečo, aby to na. 431 00:19:00,860 --> 00:19:02,908 Ak chcete, ísť vpred a získať reťazec, 432 00:19:02,908 --> 00:19:05,241 získať niečí meno na to kus papiera, keby si mohol. 433 00:19:05,241 --> 00:19:12,940 434 00:19:12,940 --> 00:19:13,530 >> Dobre. 435 00:19:13,530 --> 00:19:15,250 A uvidíme, za chvíľu, ktorého meno sme získali. 436 00:19:15,250 --> 00:19:17,630 Medzitým, čo budem majú pripravené, je prázdny kus 437 00:19:17,630 --> 00:19:21,340 papiera, v ktorom, idem uložiť čokoľvek hodnota 438 00:19:21,340 --> 00:19:25,752 je, že GetString sa vracia ku mne, Aj, ktorý je reťazec premennú s názvom, s. 439 00:19:25,752 --> 00:19:26,252 Dobre. 440 00:19:26,252 --> 00:19:27,293 Takže to, čo máte tu? 441 00:19:27,293 --> 00:19:27,950 Nik. 442 00:19:27,950 --> 00:19:28,450 Dobre. 443 00:19:28,450 --> 00:19:30,910 Takže máme tu NIK meno. 444 00:19:30,910 --> 00:19:33,750 Takže toto je to, čo doslova bola vrátená 445 00:19:33,750 --> 00:19:35,810 ku mne, aby som tak povedal, o getString. 446 00:19:35,810 --> 00:19:38,720 >> Aj teraz, chystám vykonať ľavá strana 447 00:19:38,720 --> 00:19:43,440 tohto výrazu, kde som proste opisovať, pre dnešné účely, Nik. 448 00:19:43,440 --> 00:19:46,470 Takže teraz, mám premennú volal, s, ukladanie Nik meno. 449 00:19:46,470 --> 00:19:49,520 Už som podal na printf, predchádzajúce tvrdenia. 450 00:19:49,520 --> 00:19:52,800 Ale v našom tretí a posledný riadok kód, Vlastne som sa rukou printf 451 00:19:52,800 --> 00:19:58,500 niečo trochu different-- "Dobrý deň,% s," spätné lomítko n. 452 00:19:58,500 --> 00:20:01,510 >> A tak sa posledný riadok idem k send-- posledná vec Som 453 00:20:01,510 --> 00:20:03,060 bude písať teraz dolu, je to. 454 00:20:03,060 --> 00:20:06,310 Takže dva riadky kódu, alebo skôr posledný riadok kódu, 455 00:20:06,310 --> 00:20:10,690 žiada dve inputs-- jedným, toto, a dva, to. 456 00:20:10,690 --> 00:20:13,330 Takže ak naše printf funkcie Teraz môžete mať tieto ako vstup, 457 00:20:13,330 --> 00:20:16,000 dovoľte mi, aby som vymazanie obrazovky pre vás. 458 00:20:16,000 --> 00:20:17,250 Vlastne nie, môžete ísť dopredu. 459 00:20:17,250 --> 00:20:19,333 Necháme to, pretože je to na rovnakom programe. 460 00:20:19,333 --> 00:20:21,760 461 00:20:21,760 --> 00:20:27,380 Mali by sme vidieť, ahoj, Nik. 462 00:20:27,380 --> 00:20:27,880 Dobre. 463 00:20:27,880 --> 00:20:29,670 Takže to bolo celkom málo obruče proskočit, len 464 00:20:29,670 --> 00:20:31,620 písať, uviesť svoje meno, a, ahoj, Nik. 465 00:20:31,620 --> 00:20:37,210 Ale táto jednoduchá myšlienka na odovzdávanie správ, vstupné a výstupné prechádzanie prijímanie, 466 00:20:37,210 --> 00:20:40,430 je presne model budeme mať aj pre tie najzložitejšie funkcie. 467 00:20:40,430 --> 00:20:41,804 Takže ďakujem moc vám obom. 468 00:20:41,804 --> 00:20:43,730 Máme krásny stres lopta pre teba. 469 00:20:43,730 --> 00:20:48,890 A ďakujem nášmu getString a printf dobrovoľníci podobne. 470 00:20:48,890 --> 00:20:49,551 Ďakujem. 471 00:20:49,551 --> 00:20:50,050 Dobre. 472 00:20:50,050 --> 00:20:50,966 Ďakujem vám obom. 473 00:20:50,966 --> 00:20:56,640 474 00:20:56,640 --> 00:21:00,430 >> Takže sme hovorili o tak ďaleko, hlavne o reťazcoch. 475 00:21:00,430 --> 00:21:06,550 A ukázalo sa, že C môže v skutočnosti porozumieť niekoľkých rôznych typov dát. 476 00:21:06,550 --> 00:21:08,860 V skutočnosti, poďme Pozrite sa na tieto tu. 477 00:21:08,860 --> 00:21:12,490 Takže C, a mnoho jazykov, chápať veci nazývané znaky. 478 00:21:12,490 --> 00:21:16,852 Char je všeobecne jeden byte, alebo osem bitov. 479 00:21:16,852 --> 00:21:19,810 A to predstavuje jeden znak, ako písmeno A, alebo na základnom imaní 480 00:21:19,810 --> 00:21:21,990 písmeno A, alebo malé písmeno A, alebo výkričník, 481 00:21:21,990 --> 00:21:25,440 alebo ľubovoľný znak, ktorý môžete písať na klávesnice, a niekedy aj viac. 482 00:21:25,440 --> 00:21:26,795 Tiež sme sa ocitli na plaváky. 483 00:21:26,795 --> 00:21:31,160 Plavák je, všeobecne, je 32-bitová hodnota, alebo štyri byty 484 00:21:31,160 --> 00:21:33,660 pretože zase jeden bajt je osem bitov. 485 00:21:33,660 --> 00:21:36,675 >> Takže plavák je plávajúca bodová hodnota, niečo s desatinnou čiarkou. 486 00:21:36,675 --> 00:21:38,550 A naozaj, to je to, čo film hovoril 487 00:21:38,550 --> 00:21:42,240 o tom, kedy hovorili o plávajúce bodové hodnoty, niektoré pevný počet bitov 488 00:21:42,240 --> 00:21:43,940 používaný reprezentovať reálne číslo. 489 00:21:43,940 --> 00:21:45,740 Ale je tu aj veci, zvané zdvojnásobí. 490 00:21:45,740 --> 00:21:47,860 Tie existujú v Jave, ak ste si vzal APC, 491 00:21:47,860 --> 00:21:51,540 a dvojité, ako názov našťastie navrhuje, je dvakrát tak veľký ako hotovosť. 492 00:21:51,540 --> 00:21:54,540 Je to stále reálne číslo, to proste má viac bitov 493 00:21:54,540 --> 00:21:58,390 s ktorým sa niekedy byť presnejší, alebo pri skladovaní aj väčšie množstvo. 494 00:21:58,390 --> 00:21:58,890 int je ľahké. 495 00:21:58,890 --> 00:22:00,181 Hovorili sme o tom minule. 496 00:22:00,181 --> 00:22:01,160 Je to len celé číslo. 497 00:22:01,160 --> 00:22:03,980 A to je všeobecne 32 bitov, alebo štyri byty. 498 00:22:03,980 --> 00:22:07,850 >> A tak, ak máte, pozrime sa teraz, 32 bits-- a robili sme to v týždni 0, 499 00:22:07,850 --> 00:22:10,820 niekedy tak briefly-- ak máte 32 bitov, čo je najväčší 500 00:22:10,820 --> 00:22:13,580 číslo, ktoré môže predstavovať ako celé číslo? 501 00:22:13,580 --> 00:22:16,080 Plus mínus? 502 00:22:16,080 --> 00:22:18,380 Je to ako 4 miliardy, a to len vtedy, ak sme 503 00:22:18,380 --> 00:22:20,690 čo predstavuje iba kladné čísla. 504 00:22:20,690 --> 00:22:23,930 Ak máte 32 bitov, a ak chcete predstavujú záporné čísla rovnako, 505 00:22:23,930 --> 00:22:27,100 Tento dosah je v podstate negatívny 2000000000 2000000000 na pozitívne. 506 00:22:27,100 --> 00:22:29,250 Ale všeobecne, začneme pri 0 ísť až na 4 miliardy. 507 00:22:29,250 --> 00:22:32,400 >> Nemusíte presne viem, ale môžeme vidieť, v skutočnosti, keď som zrovna 508 00:22:32,400 --> 00:22:36,400 otvoriť malú kalkulačku, tu. 509 00:22:36,400 --> 00:22:41,070 Dokážem 2 na 32, a to je presne, ako veľký, 510 00:22:41,070 --> 00:22:43,190 koľko hodnôt si môžete predstavujú, s 32 bitmi. 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 sa budeme držať vidieť, že číslo v niekoľkých rôznych miestach. 513 00:22:46,900 --> 00:22:48,890 Ale ak budete potrebovať dlhší čísla, než to, 514 00:22:48,890 --> 00:22:51,670 to dopadá je tu niečo, čo nazýva long long. 515 00:22:51,670 --> 00:22:54,005 A dlhá dlho všeobecne 64 bitov, ktoré 516 00:22:54,005 --> 00:22:56,380 znamená, že je o poriadok ešte väčší ako int. 517 00:22:56,380 --> 00:22:59,510 >> Tak som si ani vysloviť najväčšiu číslo, ktoré môže predstavovať, 518 00:22:59,510 --> 00:23:01,340 ale je to výrazne väčší. 519 00:23:01,340 --> 00:23:05,190 Teraz ako stranou, historicky, ak int je 32 bitov, 520 00:23:05,190 --> 00:23:12,780 a dlhý dlhý je 64 bitov, ako veľký je dlhá, nie je dlhá dlho? 521 00:23:12,780 --> 00:23:16,500 522 00:23:16,500 --> 00:23:20,330 Človek by si myslel, že je to dlhšie ako int ale možno menej ako dlhá dlhá dlhá, 523 00:23:20,330 --> 00:23:21,400 ale v skutočnosti záleží. 524 00:23:21,400 --> 00:23:23,400 >> A tak to dopadá jedna z frustrácie príliš, 525 00:23:23,400 --> 00:23:26,830 s písaním kódu na niektorých systémoch, je to, že nie všetky z týchto dátových typov 526 00:23:26,830 --> 00:23:28,440 majú vopred určené hodnoty. 527 00:23:28,440 --> 00:23:29,771 Niekedy je to toľko bitov. 528 00:23:29,771 --> 00:23:31,020 Niekedy je to, že mnoho bitov. 529 00:23:31,020 --> 00:23:32,750 Takže ste skutočne vedieť, niekedy, aký hardware 530 00:23:32,750 --> 00:23:34,083 vediete svoj softvér na. 531 00:23:34,083 --> 00:23:36,960 Našťastie, iné jazyky a Iné typy dát, ktoré teraz existujú, 532 00:23:36,960 --> 00:23:38,400 umožní byť presnejšie. 533 00:23:38,400 --> 00:23:41,220 No, videli sme reťazec, a my sme videli bool, taky, 534 00:23:41,220 --> 00:23:43,960 ale ukázalo sa, tie prichádzajú iba s knižnicou CS50. 535 00:23:43,960 --> 00:23:46,240 Takže tie nie sú postavené do C Tí namiesto toho, 536 00:23:46,240 --> 00:23:49,340 prichádzajú v tomto súbore nazvanom CS50.h, že budeme nakoniec 537 00:23:49,340 --> 00:23:51,831 olúpte vrstvy. 538 00:23:51,831 --> 00:23:53,830 Ale teraz, sú to len ďalšie dátové typy. 539 00:23:53,830 --> 00:23:57,060 Boolovské je pravdivý alebo nepravdivý, a Reťazec je postupnosť znakov, 540 00:23:57,060 --> 00:23:57,970 ako slovo. 541 00:23:57,970 --> 00:24:01,690 Teraz printf, sme videli, má zástupné symboly,% s je jeden. 542 00:24:01,690 --> 00:24:05,430 A malo by byť možné, aby teraz, vyvodiť z týchto ďalších príkladov, ako 543 00:24:05,430 --> 00:24:07,720 môžete mať zástupný symbol Pre rôzne typy dát. 544 00:24:07,720 --> 00:24:11,150 Napríklad, hádajte, ak ste chcel vytlačiť jeden znak pomocou 545 00:24:11,150 --> 00:24:15,270 printf, zástupný symbol je pravdepodobne% c. 546 00:24:15,270 --> 00:24:19,650 A ak chcete, vytlačí sa integer s zástupný,% i. 547 00:24:19,650 --> 00:24:25,150 % LLD je dlhá dlhá desiatková hodnota, ale dlho dlho, takže mapuje na to. 548 00:24:25,150 --> 00:24:28,640 A potom% f pre plávajúce bodová hodnota alebo za double, 549 00:24:28,640 --> 00:24:31,270 takže niekedy, že sú opätovne použité v rôznych kontextoch. 550 00:24:31,270 --> 00:24:33,350 Tak uvidíme a použitie niektoré z nich v priebehu času. 551 00:24:33,350 --> 00:24:36,420 A printf a ďalšie funkcie aj únikové sekvencie podporu ostatných " 552 00:24:36,420 --> 00:24:38,080 a niekedy, ak sú potrebné. 553 00:24:38,080 --> 00:24:39,770 Takže spätné lomítko n je nový riadok. 554 00:24:39,770 --> 00:24:42,886 Spätné lomítko t, má niekto Chcete, aby sa bodnúť? 555 00:24:42,886 --> 00:24:43,760 Diváč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 ak skutočne chcú vytlačiť kartu, nie 558 00:24:46,810 --> 00:24:49,940 pevný počet miest, ale skutočné Karta znak, nemusíte hit vašej, 559 00:24:49,940 --> 00:24:53,490 Karta, na klávesnici, všeobecne, vlastne robíte spätného lomítka t. 560 00:24:53,490 --> 00:24:57,750 Spätné lomítko dvojité úvodzovky, Prečo by som niekedy chcel, že? 561 00:24:57,750 --> 00:24:58,250 Je to tak? 562 00:24:58,250 --> 00:25:00,417 Prečo nemôžem len zadajte a dvojité úvodzovky na mojej klávesnici? 563 00:25:00,417 --> 00:25:02,124 Diváčka: Vzhľadom k tomu, inak, je to 564 00:25:02,124 --> 00:25:04,830 bude si myslieť, že je koniec Páči sa mi z tlačového [? textu. ?] 565 00:25:04,830 --> 00:25:05,420 >> DAVID J Malan: Presne tak. 566 00:25:05,420 --> 00:25:07,211 Pamätajte si, že s našimi printf príklady, kedy sme 567 00:25:07,211 --> 00:25:10,075 míňali na printf na vstupe, na ľavej strane tohto vstupného reťazca 568 00:25:10,075 --> 00:25:12,950 a na pravej strane tohto vstupu na jar, samozrejme, bol dvojitý citát. 569 00:25:12,950 --> 00:25:16,270 Ak váš vlastný vstup má dvojaký citácie v stredu to, 570 00:25:16,270 --> 00:25:18,920 Počítač by mohol potenciálne zmätený, pokiaľ ide o, 571 00:25:18,920 --> 00:25:20,760 Znamená to, úvodzovky patrí v stredu? 572 00:25:20,760 --> 00:25:22,150 Má to patrí sa ľavá? 573 00:25:22,150 --> 00:25:23,566 Má patriť s pravou? 574 00:25:23,566 --> 00:25:26,780 A tak, ak chcete, aby to výborný jasné, vy spätné lomítka dvojité cenovú ponuku, 575 00:25:26,780 --> 00:25:30,480 tak, že utiekol, aby som tak povedal, a to nie je zjednotil na niečo iné. 576 00:25:30,480 --> 00:25:34,400 A je tu niekoľko ďalších tu, spätné lomítko r, jednoduché úvodzovky, 0, 577 00:25:34,400 --> 00:25:36,510 že môžeme vidieť v priebehu času, ako je tiež. 578 00:25:36,510 --> 00:25:37,760 A teraz, čo o funkciách? 579 00:25:37,760 --> 00:25:41,630 >> Takže akcií, ktoré môžeme vziať tak ďaleko v tomto jazyku, C, dobre, sme videli, 580 00:25:41,630 --> 00:25:44,320 printf, samozrejme, a všetko z ostatných na obrazovke, 581 00:25:44,320 --> 00:25:47,140 tú, že budeme používať pre Samozrejme je len prvých pár týždňov, 582 00:25:47,140 --> 00:25:48,485 vo chvíli, keď knižnicu CS50. 583 00:25:48,485 --> 00:25:51,850 A robia to oveľa jednoduchšie, v C, skutočne získať vstup užívateľa. 584 00:25:51,850 --> 00:25:54,200 Ukazuje sa, že v C, a úprimne povedané, v niekoľkých jazykoch, 585 00:25:54,200 --> 00:25:57,450 to je skutočnou bolesť v krku robiť niečo jednoduchého, ako vyzve užívateľa 586 00:25:57,450 --> 00:26:01,310 na klávesnici, pre jeho vstup. 587 00:26:01,310 --> 00:26:03,240 A tak tieto funkcie uľahčujú. 588 00:26:03,240 --> 00:26:05,472 >> A to tiež chyba kontrola po celú dobu, 589 00:26:05,472 --> 00:26:07,180 tak, že keď vás spomínam na stredu sme 590 00:26:07,180 --> 00:26:09,740 videl, opakovanie, varovanie, keď som nespolupracoval, 591 00:26:09,740 --> 00:26:11,700 a ja som napísal slovo, namiesto čísla? 592 00:26:11,700 --> 00:26:15,402 Urobili sme ťažkú ​​prácu čoskoro na uistite sa, že užívateľ spolupracuje. 593 00:26:15,402 --> 00:26:17,860 Ale to sú len tréning kolesá, že budeme nakoniec, 594 00:26:17,860 --> 00:26:19,640 a rýchlo, vzlietnuť. 595 00:26:19,640 --> 00:26:22,630 >> Takže rekapitulácia, a potom, poďme sa rýchlo pozrieť, 596 00:26:22,630 --> 00:26:26,620 podobne ako sme to urobili s Scratch, na niektoré kanonické konštrukty v C. 597 00:26:26,620 --> 00:26:28,580 Tým sa myslí, triedenie o, bude víchrica turné, 598 00:26:28,580 --> 00:26:30,990 len preto, že máte odkaz a že ste videli, čo na prvý pohľad. 599 00:26:30,990 --> 00:26:34,100 Ale potom sa pozrieme na aktuálne kódovanie použiť niektoré z týchto stavebných blokov. 600 00:26:34,100 --> 00:26:36,710 Toľko ako v Scratch, keď sme sa vyhlásenie páči, 601 00:26:36,710 --> 00:26:41,570 hovoria, alebo počkať, v C, máme funguje rovnako, ako printf. 602 00:26:41,570 --> 00:26:45,350 >> Ak chceme vyjadriť podmienku v C, je to podobné, v duchu, 603 00:26:45,350 --> 00:26:47,840 tejto skladačky, ktoré vyzeralo to na Scratch. 604 00:26:47,840 --> 00:26:49,850 Ale namiesto toho, my doslova len písať, ak. 605 00:26:49,850 --> 00:26:51,830 A potom, v zátvorke, sme dali podmienku, 606 00:26:51,830 --> 00:26:54,807 ak táto podmienka je, čo budeme zavolaj, opäť, je logický výraz. 607 00:26:54,807 --> 00:26:56,390 A opäť, to je druh pseudokódu. 608 00:26:56,390 --> 00:26:58,830 A, v skutočnosti, že // je komentár. 609 00:26:58,830 --> 00:27:00,550 Je to len anglické slová pre seba. 610 00:27:00,550 --> 00:27:03,000 Ale to je všeobecný Štruktúra, je-li, stavu. 611 00:27:03,000 --> 00:27:05,220 Ale uvidíme betón príklady v chvíľku. 612 00:27:05,220 --> 00:27:07,960 >> Ak chcete mať dvojcestný rázcestí, 613 00:27:07,960 --> 00:27:11,740 podobne ako sme to urobili s naším dobrovoľníkom na Streda, môžete mať, else if. 614 00:27:11,740 --> 00:27:16,020 A ak chcete mať tretín a Konečná podmienka, a alebo východiskovú situáciu, 615 00:27:16,020 --> 00:27:19,006 môžete mať len blok iné, tam. 616 00:27:19,006 --> 00:27:21,880 A podobne sa boolean výrazy, môžete, a ich dohromady. 617 00:27:21,880 --> 00:27:24,296 A my sme videli v stredu, že to nie je jediný ampersand, 618 00:27:24,296 --> 00:27:28,220 to je dva, z dôvodov nižšej úrovne, ktorý budeme nakoniec vidieť a hrať. 619 00:27:28,220 --> 00:27:30,410 Alebo-ing veci dohromady je 2 zvislé pruhy. 620 00:27:30,410 --> 00:27:32,240 Na americkú klávesnicu, to je všeobecne kľúčovým 621 00:27:32,240 --> 00:27:35,730 s klávesou Shift vyššie váš klávesu Enter alebo Return. 622 00:27:35,730 --> 00:27:38,620 >> Potom je tu toho, čo budeme používať asi raz alebo dvakrát. 623 00:27:38,620 --> 00:27:42,570 Sú funkčne ekvivalentný čo môžete robiť s, v prípade, ak iný, 624 00:27:42,570 --> 00:27:44,950 else if iné, konštruovať, ale oni sú volal prepínač. 625 00:27:44,950 --> 00:27:48,020 Vyzerajú veľmi odlišné, ale my budeme vidieť v niektorej z našej distribučnej kódu, 626 00:27:48,020 --> 00:27:51,890 pre budúce problém sady, s najväčšou pravdepodobnosťou, že je to niekedy len krajšie 627 00:27:51,890 --> 00:27:54,060 spôsob, ako vyjadriť celok banda podmienok, 628 00:27:54,060 --> 00:27:57,590 bez toho, aby bolo veľa zložených zátvorkách a veľa zátvoriek a odsadenie. 629 00:27:57,590 --> 00:28:01,910 Ale nám dávajú viac energie, než sme už. 630 00:28:01,910 --> 00:28:02,550 A teraz slučky. 631 00:28:02,550 --> 00:28:05,020 A tento, pozrieme na pomalšie. 632 00:28:05,020 --> 00:28:08,470 Ale potom, začneme používať tieto, zvlášť pre tých, ktorí už poznajú. 633 00:28:08,470 --> 00:28:13,830 Toto je kánonický spôsobom, ak neuveriteľne Arcane spôsobom, aby napísať slučky v C. 634 00:28:13,830 --> 00:28:15,896 >> Teraz slučka Scratch bol celkom 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, opakovanie, blok s len číslo musíte zadať. 637 00:28:19,760 --> 00:28:22,220 A s, pre slučku, môžete implementovať oboch týchto myšlienok, 638 00:28:22,220 --> 00:28:23,595 ale je to trochu technickejšie. 639 00:28:23,595 --> 00:28:25,994 Ale úprimne povedané, je to tiež relatívne jednoduché. 640 00:28:25,994 --> 00:28:28,160 Akonáhle budete vedieť, poradie operáciám, doslova 641 00:28:28,160 --> 00:28:30,910 sa práve chystá pripojiť v hodnotách a povedzte počítaču, čo má robiť. 642 00:28:30,910 --> 00:28:32,800 Takže tu je príklad. 643 00:28:32,800 --> 00:28:38,040 To je, že slučka, úplne jednoducho, počíta z jedného čísla hore 644 00:28:38,040 --> 00:28:40,187 prostredníctvom iného. 645 00:28:40,187 --> 00:28:42,020 A len tým, pozrel sa na to, aj keď máte 646 00:28:42,020 --> 00:28:44,660 žiadne predchádzajúce skúsenosti s Tento jazyk, aké číslo 647 00:28:44,660 --> 00:28:46,920 to asi začať počítať od? 648 00:28:46,920 --> 00:28:47,730 OK, 0. 649 00:28:47,730 --> 00:28:50,240 A Hádam, že je to preto, že ste vidieť, že je tu int a i, 650 00:28:50,240 --> 00:28:51,073 čo je premenná. 651 00:28:51,073 --> 00:28:52,390 Je to inicializuje na 0. 652 00:28:52,390 --> 00:28:55,670 >> A neskôr, to vyzerá, sme okolo printf, hodnotu. 653 00:28:55,670 --> 00:28:58,000 A v skutočnosti, urobil som malú preklep tu. 654 00:28:58,000 --> 00:28:59,850 Ale to je ľahko napraviť. 655 00:28:59,850 --> 00:29:02,390 Dovoľte mi pridať, aj tu. 656 00:29:02,390 --> 00:29:06,150 Teraz máme printf bytia prešiel túto zástupnú hodnotu. 657 00:29:06,150 --> 00:29:08,299 A čo sa bude počítať hore cez? 658 00:29:08,299 --> 00:29:08,840 Divákov: 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 prvý pohľad, zdá sa. 663 00:29:13,340 --> 00:29:16,990 Ale to, že sa ukázalo, sa bude naše podmienka, že budeme priebežne kontrolovať. 664 00:29:16,990 --> 00:29:21,740 A budeme sa raz zastaví i už nie je menšia ako 50. 665 00:29:21,740 --> 00:29:24,920 Takže táto slučka, naopak, mal by vykonať, tak dlho, ako som je menšia ako 50. 666 00:29:24,920 --> 00:29:28,891 Ale akonáhle sa stane 50, alebo 51, alebo ešte horšie, mal by sa automaticky zastaví. 667 00:29:28,891 --> 00:29:29,390 Dobre. 668 00:29:29,390 --> 00:29:31,200 >> Takže čo sa vlastne deje tu? 669 00:29:31,200 --> 00:29:33,160 Tak toto je poradie operácie pre slučku. 670 00:29:33,160 --> 00:29:35,440 One, máte tzv inicializácia. 671 00:29:35,440 --> 00:29:38,264 Tento žltý zdôraznené kus kódu je vykonaný ako prvý, 672 00:29:38,264 --> 00:29:40,930 a to má za následok, že, za Streda, pravdepodobne predstavit. 673 00:29:40,930 --> 00:29:45,500 To vytvára premennú s názvom i a to obchody v tejto premennej hodnotu 0. 674 00:29:45,500 --> 00:29:47,560 Tak som je 0 v tomto bode príbehu. 675 00:29:47,560 --> 00:29:49,680 >> Ďalšia vec, ktorá sa deje v tomto konštruktu, 676 00:29:49,680 --> 00:29:51,540 je skutočnosť, že stav dostane skontrolovať. 677 00:29:51,540 --> 00:29:54,325 Tak som hneď skontrolovať, je aj menej ako 50? 678 00:29:54,325 --> 00:29:57,700 A samozrejme, že odpoveď teraz je, iste, áno. 679 00:29:57,700 --> 00:30:00,710 Áno, pretože aj je 0, a To je určite menej ako 50. 680 00:30:00,710 --> 00:30:03,866 Potom, čo sa stane, je, že toto riadok kódu dostane popravený. 681 00:30:03,866 --> 00:30:06,740 A v skutočnosti, v prípade, že je násobkom riadkov kódu v týchto zložených zátvorkách, 682 00:30:06,740 --> 00:30:09,020 všetci vykonaný jeden po druhom. 683 00:30:09,020 --> 00:30:11,450 >> A v tom zmysle, tu, je Zdá sa, že na vytlačenie 684 00:30:11,450 --> 00:30:15,365 číslo i, ktorý sa chystá 0, a potom 1, a potom 2. 685 00:30:15,365 --> 00:30:15,865 Ale prečo? 686 00:30:15,865 --> 00:30:17,410 Prečo to dostať zvýši? 687 00:30:17,410 --> 00:30:20,680 No, štvrtá vec, ktorá stane je, že túto syntax 688 00:30:20,680 --> 00:30:22,610 dostane vykonaný, za bodkočiarkou. 689 00:30:22,610 --> 00:30:27,506 i ++ je skratka spôsob, ako hovoriť; mať hodnotu i, a pridať 1 k nemu; 690 00:30:27,506 --> 00:30:30,380 a potom nabudúce okolo, pridajte 1 k nemu; a nabudúce, 691 00:30:30,380 --> 00:30:31,330 pridať 1 k nej. 692 00:30:31,330 --> 00:30:33,640 >> Takže ak budeme ďalej, čo sa bude diať 693 00:30:33,640 --> 00:30:35,890 Ďalšie je Nebudem sa inicializovať aj niekedy znovu. 694 00:30:35,890 --> 00:30:38,290 Ak som si inicializácia aj na 0, tento príklad 695 00:30:38,290 --> 00:30:41,110 že nikdy neskončí, pretože Chcel by som sa zasekol na 0 ° C. 696 00:30:41,110 --> 00:30:43,870 Ale to, čo sa bude diať, je že táto podmienka bude kontrolovať, 697 00:30:43,870 --> 00:30:54,280 riadok kódu bude vykonaný, Aj bude zvýšená, 698 00:30:54,280 --> 00:30:56,970 podmienka bude kontrolovať, kód bude vykonaný. 699 00:30:56,970 --> 00:30:59,790 A to zase stále na bicykli, a znovu a znovu, 700 00:30:59,790 --> 00:31:03,340 kým i ++ vyvoláva hodnotu 50. 701 00:31:03,340 --> 00:31:05,870 >> Tento stav potom hovorí, 50 je menšia ako 50 ° C? 702 00:31:05,870 --> 00:31:09,360 Odpoveď, samozrejme, nie je, a takže celý kód sa zastaví realizáciu. 703 00:31:09,360 --> 00:31:13,020 A ak máte viac kódu na obrazovke dole, to je to, čo sa stane ďalej. 704 00:31:13,020 --> 00:31:17,530 To vyskočí z týchto zložených zátvorkách a pokračuje v tlači viac po tom. 705 00:31:17,530 --> 00:31:20,470 >> Takže teraz vtip, od Foxtrot, že budete možno teraz pochopili. 706 00:31:20,470 --> 00:31:30,810 707 00:31:30,810 --> 00:31:31,560 Vždy je to smiešne. 708 00:31:31,560 --> 00:31:34,110 Je to ako smiech druh presakovať, 709 00:31:34,110 --> 00:31:38,370 a potom si uvedomíte, že ste nemali sa smiali humor, ako je tento. 710 00:31:38,370 --> 00:31:41,160 Ale tam je nejaký stánok s jedlom tu, pedagogicky, taky. 711 00:31:41,160 --> 00:31:43,577 Tak to dopadá, že som chýbajúci kus syntaxe, 712 00:31:43,577 --> 00:31:45,410 alebo Foxtrot je chýba kus syntaxe sem. 713 00:31:45,410 --> 00:31:48,076 To, čo chýba, že sme mali v každom inom príklade, tak ďaleko? 714 00:31:48,076 --> 00:31:51,599 715 00:31:51,599 --> 00:31:53,390 Return, je tam, tak to je niečo iné, 716 00:31:53,390 --> 00:31:54,440 že sa vrátime do onedlho. 717 00:31:54,440 --> 00:31:55,398 Čo chýba, aj keď? 718 00:31:55,398 --> 00:31:55,908 Jo. 719 00:31:55,908 --> 00:31:58,150 >> Diváčka: The inicializácia [nepočuteľný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 v skutočnosti, to je-- No, a počet sa inicializuje 723 00:32:03,210 --> 00:32:05,470 hore, alebo skôr, uvedených vyššie sa. 724 00:32:05,470 --> 00:32:06,960 Takže toto je ďalší spôsob, ako to urobiť. 725 00:32:06,960 --> 00:32:08,685 Ale nie v jednej línii je to platný hoci. 726 00:32:08,685 --> 00:32:09,310 Ako sa asi tu? 727 00:32:09,310 --> 00:32:10,196 >> Diváčka: Je to zložené zátvorky? 728 00:32:10,196 --> 00:32:10,640 >> DAVID J Malan: Jo. 729 00:32:10,640 --> 00:32:12,080 Takže zložené zátvorky chýba. 730 00:32:12,080 --> 00:32:15,495 Ale tento kód, myslím, k ich cti, je v skutočnosti, syntakticky platné. 731 00:32:15,495 --> 00:32:17,610 Ukazuje sa, že nie Potrebujem zložené zátvorky 732 00:32:17,610 --> 00:32:21,691 ak máte len jeden riadok kódu, ktorý Ak chcete vykonať vnútri slučky. 733 00:32:21,691 --> 00:32:24,190 Teraz sme vždy v triede a vo všetky naše distribučné kódu, 734 00:32:24,190 --> 00:32:26,730 patrí zložené zátvorky tak ako tak, len z dôvodov prehľadnosti. 735 00:32:26,730 --> 00:32:29,010 Ale uvedomiť, že v učebniciach a online príklady, 736 00:32:29,010 --> 00:32:31,300 môžete veľmi dobre vidieť kučeravé traky chýba niekedy. 737 00:32:31,300 --> 00:32:34,850 A to je v poriadku, či to, čo majú členité a určené 738 00:32:34,850 --> 00:32:38,650 je len jediný riadok kódu, a nie viac riadkov kódu, potenciálne. 739 00:32:38,650 --> 00:32:39,150 Dobre. 740 00:32:39,150 --> 00:32:44,500 Takže súvisiace s problematikou nepresnosť, je problém pretečeniu, 741 00:32:44,500 --> 00:32:48,560 v tom zmysle, že, podobne, to celé čísla majú svoje limity, ktoré im 742 00:32:48,560 --> 00:32:49,970 rovnako ako s plávajúcou desatinnou čiarkou hodnoty? 743 00:32:49,970 --> 00:32:53,120 Vo svete plávajúce bod hodnoty, môžeme byť len tak presné, 744 00:32:53,120 --> 00:32:55,710 po ktorej, niekedy zlé veci sa môže stať, 745 00:32:55,710 --> 00:32:57,760 a naše programy môžu byť buggy a omylov. 746 00:32:57,760 --> 00:33:00,050 Teraz dokonca s celými číslami, môžete dostať do problémov. 747 00:33:00,050 --> 00:33:03,820 Teraz celé číslo nie je vybavený desatinná čiarka alebo čísla po ňom. 748 00:33:03,820 --> 00:33:07,130 Je to len prirodzené číslo, typicky. 749 00:33:07,130 --> 00:33:09,430 Tak čo by mohlo ísť s int zlého? 750 00:33:09,430 --> 00:33:12,210 Ak som pomocou int na Počet, čo by mohlo pokaziť? 751 00:33:12,210 --> 00:33:13,230 Zdá sa, že oveľa jednoduchšie. 752 00:33:13,230 --> 00:33:13,873 Jo. 753 00:33:13,873 --> 00:33:16,240 >> Diváčka: V prípade, že Číslo dostane [nepočuteľných] 754 00:33:16,240 --> 00:33:17,073 >> DAVID J Malan: Jo. 755 00:33:17,073 --> 00:33:20,820 Čo keď počítam tak vysoko, aby vás nemôžu vyjadriť, že naozaj veľké číslo. 756 00:33:20,820 --> 00:33:21,320 Je to tak? 757 00:33:21,320 --> 00:33:23,910 V určitom bode, budete prekročiť hranice 758 00:33:23,910 --> 00:33:27,077 z 32-bitové hodnoty, alebo 64-bitové hodnoty. 759 00:33:27,077 --> 00:33:29,410 Teraz znovu, nie som si istý, ako vysloviť 64-bit hodnotu, 760 00:33:29,410 --> 00:33:32,230 ale viem, že sa 32-bitové celé číslo, najväčšia hodnota, ktorú môže byť, 761 00:33:32,230 --> 00:33:35,490 keď je to len pozitívne hodnôt, je zhruba 4 miliardy korún. 762 00:33:35,490 --> 00:33:39,000 Takže keď sa snažím počítať do 5 miliárd, niečo, čo sa stane. 763 00:33:39,000 --> 00:33:41,050 Ale poďme sa pozrieť, čo v skutočnosti sa môže stať. 764 00:33:41,050 --> 00:33:44,570 Vo svete integer pretečeniu, kde ste, v istom zmysle, 765 00:33:44,570 --> 00:33:48,270 pretečeniu kapacity integer, čo sa môže stať? 766 00:33:48,270 --> 00:33:51,190 >> Tak tu je binárne číslo, je to návrat k 0 ° C. 767 00:33:51,190 --> 00:33:54,630 Je to všetko 1 je, a zástupné symboly tam sú sily 2, 768 00:33:54,630 --> 00:33:55,980 tak toto je binárny. 769 00:33:55,980 --> 00:33:59,416 Tak to sú 8, 1 bitov na obrazovke. 770 00:33:59,416 --> 00:34:01,290 A ak si spomínate, alebo rýchlo si to spočítajte, 771 00:34:01,290 --> 00:34:06,074 aká hodnota je zastúpený tu sa týchto ôsmich bitov 1? 772 00:34:06,074 --> 00:34:06,950 255. 773 00:34:06,950 --> 00:34:09,260 A aj keď ste neboli úplne istí, z matematiky, si to mohol urobiť to. 774 00:34:09,260 --> 00:34:10,550 Alebo môžete jednoducho druh rozumu cez to, 775 00:34:10,550 --> 00:34:12,633 počkajte chvíľu, keď som čo predstavuje 8-bitové hodnoty, 776 00:34:12,633 --> 00:34:17,750 a ja mám 256 možných hodnôt, ale z ktorých prvá je 0, 777 00:34:17,750 --> 00:34:19,909 Ja len viem, že Najväčší bude 255, 778 00:34:19,909 --> 00:34:21,510 a to je to, čo tento človek môže byť. 779 00:34:21,510 --> 00:34:26,060 >> Takže predpokladám, že sa snažím pridať 1 k tejto hodnote. 780 00:34:26,060 --> 00:34:28,750 Čo by ste robili do platovej triedy Škola pri pridaní 1, a to 781 00:34:28,750 --> 00:34:31,139 nie je naozaj fit, pretože budete musieť niesť 1? 782 00:34:31,139 --> 00:34:34,380 To, čo je toto číslo bude aby sa stal, keď pridáte 1? 783 00:34:34,380 --> 00:34:37,030 Bude to stať sa 0. 784 00:34:37,030 --> 00:34:37,530 Je to tak? 785 00:34:37,530 --> 00:34:41,139 Vzhľadom k tomu, ak ste mali viac bits-- a budem pokúsiť sa, druh, napíšte to here-- 786 00:34:41,139 --> 00:34:44,710 keby sme mali viac bitov, čo sme tu môže urobiť, je pridať 1, 787 00:34:44,710 --> 00:34:47,370 a potom by sme si to. 788 00:34:47,370 --> 00:34:48,739 Jejda. 789 00:34:48,739 --> 00:34:52,250 Budeme mať 1 bit celú cestu sem. 790 00:34:52,250 --> 00:34:55,530 >> Ale ak sa jedná o konečný hodnota, je to len 8 bitov, 791 00:34:55,530 --> 00:34:57,480 a to je vopred stanovená počítačom, 792 00:34:57,480 --> 00:34:59,370 že 1 je v podstate nie je. 793 00:34:59,370 --> 00:35:00,980 Tak nejako spadne z útesu. 794 00:35:00,980 --> 00:35:05,480 A tak keď pridáte 1 do 255, čo hodnotu, máte zrejme 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 snáď neúmyselne, 797 00:35:09,700 --> 00:35:12,040 skončiť obal okolo takhle. 798 00:35:12,040 --> 00:35:14,079 Takže to, čo môže byť dôsledok to? 799 00:35:14,079 --> 00:35:15,620 No, je tu niekoľko rôznych vecí. 800 00:35:15,620 --> 00:35:18,751 Takže jedným, to nakoniec vyzerá ako 0, neúmyselne, 801 00:35:18,751 --> 00:35:20,750 ale môžete trochu vidieť, dokonca v reálnom svete, 802 00:35:20,750 --> 00:35:23,416 k lepšiemu alebo k horšiemu, prejavy tohto nápadu limitu. 803 00:35:23,416 --> 00:35:26,630 Napríklad, niekto z vás, ktorí sa kedy hral Lego Star Wars, 804 00:35:26,630 --> 00:35:28,880 Vie niekto náhodou vedieť maximálny počet mincí 805 00:35:28,880 --> 00:35:32,032 môžete zbierať v Lego Star Wars? 806 00:35:32,032 --> 00:35:35,640 Potom sa hádať na základe dnešné sugestívne otázky. 807 00:35:35,640 --> 00:35:39,140 Je väčší ako 256 alebo 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 nejaké people-- 810 00:35:42,080 --> 00:35:46,080 niektoré googling potvrdil minulý night-- sa dostali 4 miliardy zlaté mince, 811 00:35:46,080 --> 00:35:47,730 alebo ktovie čo ešte, v Lego Star Wars. 812 00:35:47,730 --> 00:35:49,860 Aj keď sa zdá, je tu spôsob, ako napáliť hru, 813 00:35:49,860 --> 00:35:53,222 tam je chyba alebo funkcia, ktorá vám umožní len narastať veľa a veľa bodov. 814 00:35:53,222 --> 00:35:54,930 Ale najväčší možný hodnota, podľa 815 00:35:54,930 --> 00:35:58,360 k tomuto snímku obrazovky niekoho, koho našiel na internete, je skutočne 4000000000. 816 00:35:58,360 --> 00:35:59,240 >> Teraz prečo je tomu tak? 817 00:35:59,240 --> 00:36:03,040 Je to presne 4000000000, Pravdepodobne preto, že niekto rozhodol, 818 00:36:03,040 --> 00:36:05,500 kto písal túto hru, že by mohli robiť 4 miliardy, 819 00:36:05,500 --> 00:36:07,340 niečo, niečo, niečo, ako hodnota som dať do 820 00:36:07,340 --> 00:36:10,256 s kalkulačkou skôr, ale je to len trochu čistejšie pre ľudí 821 00:36:10,256 --> 00:36:12,610 povedať, maximálny počet z coins-- alebo klincami, 822 00:36:12,610 --> 00:36:14,860 ako hovoria, že vás them-- môžete zbierať je 4000000000. 823 00:36:14,860 --> 00:36:16,290 A tak, prečo je to? 824 00:36:16,290 --> 00:36:20,310 Ako je LEGO hra vykonávanie počítadlo 825 00:36:20,310 --> 00:36:23,420 to je udržiavanie prehľadu o množstvo mincí máte? 826 00:36:23,420 --> 00:36:24,266 Používajú čo? 827 00:36:24,266 --> 00:36:26,390 Diváčka: Zastaví počítanie po 4 miliardy. 828 00:36:26,390 --> 00:36:27,720 DAVID J Malan: Zastaví počítanie po 4 miliardy, 829 00:36:27,720 --> 00:36:29,525 čo znamená, že môžete odvodiť, ako programátor, 830 00:36:29,525 --> 00:36:31,960 že sú nejspíš pomocou 32 bitové celé číslo. 831 00:36:31,960 --> 00:36:35,380 Rovnako ako programátor doslova zadaný, int, v jeho alebo jej kód, 832 00:36:35,380 --> 00:36:39,620 a to je typ premennej Používajú na ukladanie niečí kód. 833 00:36:39,620 --> 00:36:42,230 Takže je tu iné prejavy týchto druhov limitov. 834 00:36:42,230 --> 00:36:45,063 >> Takže som nehral tento game-- a ja som bol čítanie na históriu 835 00:36:45,063 --> 00:36:48,470 Pre potvrdenie, ako much-- ale v Pôvodná verzia civilizácie, kde 836 00:36:48,470 --> 00:36:53,240 budete zrejme komunikovať s každým a môžu viesť vojnu, alebo mať pokoj, 837 00:36:53,240 --> 00:36:56,590 Gandhi mal byť jedným z najpokojnejšie znaky, ako ja 838 00:36:56,590 --> 00:36:59,280 pochopiť, v prvom verzia civilizácie. 839 00:36:59,280 --> 00:37:03,250 A v skutočnosti, na stupnici od 1 do 10, Jeho agresivita bol len 1. 840 00:37:03,250 --> 00:37:05,620 Takže niekedy tak mierne agresívne, zrejme. 841 00:37:05,620 --> 00:37:11,590 >> Ale v určitom okamihu, môžete si zrejme nainštalovať demokracie v geografii. 842 00:37:11,590 --> 00:37:14,900 A ak si nainštalujete demokraciu do vašej verziu hry, 843 00:37:14,900 --> 00:37:17,320 potom sa vaše agresivita hladina klesá. 844 00:37:17,320 --> 00:37:18,460 Je to dobrá vec. 845 00:37:18,460 --> 00:37:20,890 Ľudia sú pokojnejší Zdá sa, že v tejto situácii. 846 00:37:20,890 --> 00:37:23,190 Ale zdá sa, niekto urobil nebude mať, pokiaľ je to, stav 847 00:37:23,190 --> 00:37:24,780 v pôvodnej verzii kódu. 848 00:37:24,780 --> 00:37:30,650 >> Takže úroveň agresie Gándhího išiel od Pozitívne 1, mínus 2, na negatívny 1, 849 00:37:30,650 --> 00:37:33,840 ale hra nie je porozumieť záporné čísla. 850 00:37:33,840 --> 00:37:38,680 Takže to, čo sa stalo, bolo Gándhího agresie Úroveň šla od 1, 0, 1 na negatívny, 851 00:37:38,680 --> 00:37:40,900 čo malo za následok obal okolo, že sú 852 00:37:40,900 --> 00:37:44,690 najagresívnejší charakter v hre, v hodnote 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 tej doby, tam bolo viac stelesnenie tejto hry, 855 00:37:49,887 --> 00:37:51,720 a že som držal ho ako akýmsi veľkonočné vajíčko, 856 00:37:51,720 --> 00:37:53,870 že Gandhi je zrejme tak strašne agresívny. 857 00:37:53,870 --> 00:37:56,740 Ale bolo výsledkom veľmi jednoduchý programovací chyba 858 00:37:56,740 --> 00:37:58,630 v tejto veľmi skoré verzie hry. 859 00:37:58,630 --> 00:38:02,860 >> Teraz viac znepokojujúco, viac nedávno, Boeing 787 860 00:38:02,860 --> 00:38:05,720 bol dokumentovaný ako majúce chyba, nie druh zariadenia 861 00:38:05,720 --> 00:38:07,340 sa vám obzvlášť chcete mať chybu. 862 00:38:07,340 --> 00:38:10,130 A príznaky, že budem čítať tu, z článku on-line, 863 00:38:10,130 --> 00:38:13,840 Bola to, model 787 lietadlo , Ktorý bol priebežne zásobovaný 864 00:38:13,840 --> 00:38:18,030 za 248 dní môže stratiť všetko striedavý prúd, AC, 865 00:38:18,030 --> 00:38:20,850 elektrickej energie, v dôsledku riadiacej jednotky generátora, 866 00:38:20,850 --> 00:38:23,330 GCUs, súčasne ísť do fail-safe módu. 867 00:38:23,330 --> 00:38:26,790 Takže to bolo vydané varovanie kedy bol tento problém objavený. 868 00:38:26,790 --> 00:38:28,750 Tento stav je spôsobený počítadlom softvéru 869 00:38:28,750 --> 00:38:32,230 interné do GCUs, tak celé číslo alebo premenná, 870 00:38:32,230 --> 00:38:36,850 že pretečie po 248 dni nepretržitého výkonu. 871 00:38:36,850 --> 00:38:40,350 Boeing je v procese rozvíjanie Upgrade softvéru, ktorá GCU 872 00:38:40,350 --> 00:38:42,350 napraví nebezpečného stavu. 873 00:38:42,350 --> 00:38:44,226 >> Toľko ako raketa scenár, vyznačujúci sa tým, 874 00:38:44,226 --> 00:38:46,850 oni mali nejaké premenné že počítal, a počítanie, 875 00:38:46,850 --> 00:38:50,720 a počítanie, ale postupne pretekajúca hranice jeho schopnosť, 876 00:38:50,720 --> 00:38:54,890 Podobne urobil ten prekliaty lietadlo majú variabilné pretečeniu 877 00:38:54,890 --> 00:38:56,410 Po dostatok času behu. 878 00:38:56,410 --> 00:38:59,240 A tak sa spôsob pero-in-tváre o prácu okolo tohto problému 879 00:38:59,240 --> 00:39:04,400 je skutočne, reštartovať, vaše lietadlo každý 247 dní, tak, že je pamäť dostane stierané 880 00:39:04,400 --> 00:39:06,100 a premenná prejde späť na 0. 881 00:39:06,100 --> 00:39:09,410 Ale uvedomiť, to je veľmi veľký inkarnácia softvéru, 882 00:39:09,410 --> 00:39:14,070 ale najmä preto, počujeme o Apple operačné systémy ísť do auta, 883 00:39:14,070 --> 00:39:18,030 a self-riadiť vozidlá od spoločnosti Google, a ľubovoľný počet inkarnácií softvér 884 00:39:18,030 --> 00:39:21,000 v našom každodennom živote, TV a hodinky a ďalšie, 885 00:39:21,000 --> 00:39:24,950 si uvedomiť, boli obklopené softvér, všetci ktorý je napísaný nás ľudí. 886 00:39:24,950 --> 00:39:28,150 >> A ako budeme všetci čoskoro zistíte, je to veľmi jednoduché a veľmi typické 887 00:39:28,150 --> 00:39:30,250 robiť chyby pri písaní softvéru. 888 00:39:30,250 --> 00:39:32,745 A ak nechcete chytiť, niektoré zlé veci sa môže stať. 889 00:39:32,745 --> 00:39:35,400 Teraz niekedy, niektoré vtipné veci sa môže stať, 890 00:39:35,400 --> 00:39:38,280 alebo aspoň niekedy sme poznať očakávať nejakú zlobu. 891 00:39:38,280 --> 00:39:41,550 Takže 0 delené 0, zo stupňa škola, je všeobecne zlá vec. 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, či môj mic môžete vybrať to up--, že Apple 894 00:39:46,440 --> 00:39:47,790 mal nejakú zábavu s tým v poslednej dobe. 895 00:39:47,790 --> 00:39:48,850 Tak som tu iPhone. 896 00:39:48,850 --> 00:39:54,160 Budem hovoriť Siri a požiadajte ju, mi dať odpoveď na 0 delená 0. 897 00:39:54,160 --> 00:39:55,850 Čo 0 deleno 0? 898 00:39:55,850 --> 00:39:59,350 899 00:39:59,350 --> 00:40:02,230 >> SIRI: Predstavte si, že máte 0 cookies, a môžete ich rozdeliť rovnomerne 900 00:40:02,230 --> 00:40:03,540 medzi 0 priatelia. 901 00:40:03,540 --> 00:40:05,810 Koľko cookies, sa každá osoba dostať? 902 00:40:05,810 --> 00:40:06,350 Vidíš? 903 00:40:06,350 --> 00:40:07,660 To nedáva zmysel. 904 00:40:07,660 --> 00:40:10,540 A netvor Cookie je smutné že neexistujú žiadne sušienky. 905 00:40:10,540 --> 00:40:13,987 A ste smutní, že nemáte žiadne priateľov. 906 00:40:13,987 --> 00:40:15,570 DAVID J Malan: Je to celkom nepríjemný. 907 00:40:15,570 --> 00:40:17,550 Tak toto je to, čo práve povedal, že. 908 00:40:17,550 --> 00:40:21,380 To je neurčitý, to nie je definované, A skutočne, mnoho programovacích jazykov 909 00:40:21,380 --> 00:40:24,950 alebo, naozaj, bude kompilátory rozpoznať, keď v programe, 910 00:40:24,950 --> 00:40:27,050 pokúsiť sa rozdeliť 0. 0. 911 00:40:27,050 --> 00:40:29,830 Viac zábavy ako toto však je, to zrejme, netvor Cookie 912 00:40:29,830 --> 00:40:31,270 je na Twitteri v týchto dňoch. 913 00:40:31,270 --> 00:40:37,610 A on odpovedal na to, s tým, čo je úplne rozkošný. 914 00:40:37,610 --> 00:40:40,110 Ale poďme sa rýchlo pozrieť na pár ďalších konštruktov, 915 00:40:40,110 --> 00:40:43,459 a potom dal niektoré z týchto kód na použitie, v dobré spôsoby. 916 00:40:43,459 --> 00:40:45,250 Tak to dopadá, okrem pre slučky, je tu 917 00:40:45,250 --> 00:40:49,174 niečo, čo nazýva while, že vyzerá inak a je realizovaný 918 00:40:49,174 --> 00:40:51,590 trochu differently-- a budeme nakoniec vidieť examples-- 919 00:40:51,590 --> 00:40:53,500 ale v určitom zmysle, je to jednoduchšie, pretože to 920 00:40:53,500 --> 00:40:56,670 neumožňuje inicializovať a aktualizovať vnútri hraníc slučky. 921 00:40:56,670 --> 00:40:57,794 Môžete ho realizovať aj naďalej. 922 00:40:57,794 --> 00:41:01,219 Takže si môžete urobiť presne rovnaké veci s while, ako sa slučky for, 923 00:41:01,219 --> 00:41:03,260 ale vaša syntax, ultimately-- ako budete nakoniec 924 00:41:03,260 --> 00:41:04,551 see-- bude inak. 925 00:41:04,551 --> 00:41:07,450 K dispozícii je aj robiť, kým slučka, ktorá je vlastne trochu inak, 926 00:41:07,450 --> 00:41:09,640 v tomto zatiaľ čo pre sláčiky a while vždy 927 00:41:09,640 --> 00:41:13,005 najprv skontroluje ich stav, pokiaľ čítate túto vec zhora nadol, 928 00:41:13,005 --> 00:41:16,440 to trochu vyzerá to, že to bude skontrolujte, či je stav posledný, pretože to je 929 00:41:16,440 --> 00:41:17,910 skutočne posledný riadok kódu. 930 00:41:17,910 --> 00:41:20,580 A naozaj, že to bude užitočné, v niektorých programoch, ktoré píšeme, 931 00:41:20,580 --> 00:41:23,746 ak chcete len slepo niečo urobiť a nakoniec skontrolujte stav. 932 00:41:23,746 --> 00:41:25,205 To nie je nevyhnutne zlá vec. 933 00:41:25,205 --> 00:41:27,912 Ak chceme premenné, môžeme to urobiť že v niekoľkými rôznymi spôsobmi. 934 00:41:27,912 --> 00:41:30,290 A my sme videli v Foxtrot karikatúra, jedným zo spôsobov, ako to urobiť, 935 00:41:30,290 --> 00:41:33,400 kde ste deklarovať svoju premennú, ako čítač int bodkočiarkou, 936 00:41:33,400 --> 00:41:36,570 a potom later-- možno budúci linka, možno 10 riadkov later-- 937 00:41:36,570 --> 00:41:37,800 ste skutočne inicializovať ju. 938 00:41:37,800 --> 00:41:42,230 Takže tieto 2 riadky kódu deklarovať premennú typu int 939 00:41:42,230 --> 00:41:44,930 a nazývať to počítadlo, tak to dáva me dostatok bitov usporiadať int. 940 00:41:44,930 --> 00:41:48,230 A potom nakoniec, kladie hodnota 0 do tejto premennej. 941 00:41:48,230 --> 00:41:51,250 To usporadúva Je v 0 a 1 vzor, ​​ktorý poznáme z minulého týždňa, 942 00:41:51,250 --> 00:41:53,260 predstavuje počet poznáme ako 0. 943 00:41:53,260 --> 00:41:56,920 Alebo povedané, môžete to urobiť toľko stručnejšie, rovnako ako táto. 944 00:41:56,920 --> 00:41:59,390 >> Teraz máme tiež Možnosť volať funkcie. 945 00:41:59,390 --> 00:42:03,070 A v skutočnosti, tu je 2 linka programu, alebo výňatok zmluvy, 946 00:42:03,070 --> 00:42:06,157 ktorá nám umožňuje skutočne napísať nejaký kód, ktorý 947 00:42:06,157 --> 00:42:08,990 dostane reťazec z user-- moc ako naše dobrovoľníčky na chvíľu ago-- 948 00:42:08,990 --> 00:42:11,320 ukladanie výsledok v premenné s názvom názov, 949 00:42:11,320 --> 00:42:15,470 a then-- podobne ako s naším dobrovoľníkom s printf-- vytlačí týchto hodnôt 950 00:42:15,470 --> 00:42:19,180 odovzdaním dva argumenty sa reťazec, nasledovaný premennú 951 00:42:19,180 --> 00:42:20,781 volal, meno, sám. 952 00:42:20,781 --> 00:42:23,155 Takže poďme sa pozrieť, pred sme sa vrátiť k Mario tam, 953 00:42:23,155 --> 00:42:26,010 na pár Teraz príkladov. 954 00:42:26,010 --> 00:42:30,537 >> Chystám sa ísť dopredu a otvorený up, povedzme, funkcia-0.c. 955 00:42:30,537 --> 00:42:33,120 A ako vždy, tento kód je k dispozícii na internetových stránkach Course, 956 00:42:33,120 --> 00:42:35,660 takže môžete hrať spolu na doma a pozerať sa na to neskôr. 957 00:42:35,660 --> 00:42:40,400 Ale tu je ten program je to esencie, od riadku 17 až 22. 958 00:42:40,400 --> 00:42:43,270 Hlavný program je miesto, kde Program je vždy začnú. 959 00:42:43,270 --> 00:42:46,980 Tento program, zdá sa, že sa deje vytlačiť svoje meno, hrubého čreva. 960 00:42:46,980 --> 00:42:50,320 Je to potom zavolá getString, rovnako ako sme to urobili s našimi dobrovoľníkmi. 961 00:42:50,320 --> 00:42:53,365 A potom, to je zaujímavé, to bude volať PrintName. 962 00:42:53,365 --> 00:42:56,490 Ukázalo sa, že celú tú dobu, tam Zdá sa, že funkcia nazvaná PrintName. 963 00:42:56,490 --> 00:42:57,614 Ktorá tlačí niečí meno. 964 00:42:57,614 --> 00:43:01,210 Nepotrebovali sme použiť printf z včerajška je tu PrintName. 965 00:43:01,210 --> 00:43:03,500 >> Ale to je zavádzajúce preto, že nie je PrintName 966 00:43:03,500 --> 00:43:06,760 prísť s C. ľudia nemali vymyslieť asi pred 40 alebo 50 rokmi, 967 00:43:06,760 --> 00:43:07,990 Urobil som, namiesto toho. 968 00:43:07,990 --> 00:43:10,330 A v skutočnosti, keď som prechádzanie dole, ďalšie oznámenie 969 00:43:10,330 --> 00:43:14,200 ako môžem napísať vlastnú funkcie v C. Budeme nakoniec 970 00:43:14,200 --> 00:43:16,319 vysvetliť, prečo sme sa stále hovorí, neplatné, na niekoľkých miestach, 971 00:43:16,319 --> 00:43:18,110 ale pre dnešok, poďme stačí sa pozrieť na mená. 972 00:43:18,110 --> 00:43:20,905 >> Na riadku 24, ak chcete vytvoriť svoj vlastný funkcie, 973 00:43:20,905 --> 00:43:22,780 doslova písať Názov funkcie. 974 00:43:22,780 --> 00:43:24,340 Vybral som si PrintName. 975 00:43:24,340 --> 00:43:26,159 V zátvorke, budete zadajte, aké druhy 976 00:43:26,159 --> 00:43:28,450 vstupov, a koľko ste chcú túto funkciu prijať. 977 00:43:28,450 --> 00:43:31,906 V tomto prípade, chcem, aby sa 1 variabilný volal, meno, 978 00:43:31,906 --> 00:43:34,030 a to bude mať typ, reťazec, takže to ide 979 00:43:34,030 --> 00:43:35,780 byť nejaký postupnosť znakov. 980 00:43:35,780 --> 00:43:39,170 A potom, to program-- podobne ako v Scratch, 981 00:43:39,170 --> 00:43:42,590 môžete mať vlastné puzzle pieces-- bude mať tento vlastné správanie. 982 00:43:42,590 --> 00:43:46,760 Bude to hovoriť printf odovzdaním, ahoj, zástupný symbol, 983 00:43:46,760 --> 00:43:49,110 a potom to bude plug vo všetkom, čo volal užívateľ. 984 00:43:49,110 --> 00:43:51,450 >> Tak to je príklad toho, čo počítačový vedec by 985 00:43:51,450 --> 00:43:55,090 hovor abstrakcie alebo funkčné rozklad, ktoré sú rovnako 986 00:43:55,090 --> 00:43:58,110 galantérny Spôsoby saying-- je, ak sa vám páči tento nápad na vysokej úrovni, 987 00:43:58,110 --> 00:44:01,569 ako ja chcem funkcie, ktoré vytlačí niečí meno, úplne vás 988 00:44:01,569 --> 00:44:04,360 môže doslova napísať printf a potom prejsť v argumentoch, ktoré chcete, 989 00:44:04,360 --> 00:44:07,340 a program bude fungovať, pretože má od stredu. 990 00:44:07,340 --> 00:44:10,510 Ale môžete začať abstraktné preč pojem tlače meno. 991 00:44:10,510 --> 00:44:13,270 Môžete dať mu meno, ako je PrintName, a to 992 00:44:13,270 --> 00:44:15,280 je to myšlienka vrstvenie od týždňa 0. 993 00:44:15,280 --> 00:44:19,910 >> Odteraz, ja a vy nemusíte vedieť alebo jedno, ako PrintName je implementovaná. 994 00:44:19,910 --> 00:44:22,470 Áno, používa printf, možno to nie je, kto vie, čo používa? 995 00:44:22,470 --> 00:44:23,410 Koho to zaujíma? 996 00:44:23,410 --> 00:44:26,034 Teraz hovorím tu, namiesto toho tu dole. 997 00:44:26,034 --> 00:44:28,700 A skutočne, ako naše programy dostať vyspelejšie a sofistikovanejšie, 998 00:44:28,700 --> 00:44:32,550 budeme pokračovať v užívaní za samozrejmosť že nižšia úroveň dieliky existujú. 999 00:44:32,550 --> 00:44:34,780 Pretože sme písali im alebo niekto iný, takž 1000 00:44:34,780 --> 00:44:36,910 že môžeme potom vytvoriť nad nimi. 1001 00:44:36,910 --> 00:44:39,430 Poďme sa pozrieť na to variant, fungujú jeden. 1002 00:44:39,430 --> 00:44:41,780 >> Tak toto je trochu viac pokročilých, ale ukázalo sa, 1003 00:44:41,780 --> 00:44:44,570 že v knižnici CS50 je, je tu len funkcia GetInt. 1004 00:44:44,570 --> 00:44:47,720 Nemysleli sme si, pred rokmi, aby implementovať funkcie GetPositiveInt. 1005 00:44:47,720 --> 00:44:50,970 A to je trochu nepríjemné, pretože ak Vy ste písanie programu u ktorého 1006 00:44:50,970 --> 00:44:53,325 Ak chcete získať pozitívne celé číslo od užívateľa, 1007 00:44:53,325 --> 00:44:55,010 môžete použiť absolútne GetInt. 1008 00:44:55,010 --> 00:44:57,840 A môžete úplne poradiť sa stav a možno aj slučka 1009 00:44:57,840 --> 00:45:00,320 v prípade, že je väčší, int ako 0 a kričať na užívateľa 1010 00:45:00,320 --> 00:45:02,699 ak on alebo ona nedá Ste kladné číslo. 1011 00:45:02,699 --> 00:45:04,740 Ale poďme postaviť tento stavebný blok sami, je, 1012 00:45:04,740 --> 00:45:06,555 zvyk Scratch kus, ak chcete. 1013 00:45:06,555 --> 00:45:08,680 Budem mať program tu to nakoniec, myslím, 1014 00:45:08,680 --> 00:45:11,780 chcú mať možnosť volať GetPositiveInt, a ja chcem byť 1015 00:45:11,780 --> 00:45:14,200 schopné vytlačiť čo to je int. 1016 00:45:14,200 --> 00:45:16,240 Ale to je preč abstrahovaný teraz. 1017 00:45:16,240 --> 00:45:19,050 Je to len dostal vysokú úroveň Názov, ktorý hovorí, že to, čo robí, 1018 00:45:19,050 --> 00:45:21,780 čo je skvelé, pretože to je veľmi intuitívne teraz prečítať. 1019 00:45:21,780 --> 00:45:24,710 A keď to urobím jedno, čo je pod kapota, dovoľte mi prejdite nadol. 1020 00:45:24,710 --> 00:45:27,140 A je to trochu zastrašujúce na prvý, najmä 1021 00:45:27,140 --> 00:45:29,470 ak je to vaša prvá program, ale poďme sa pozrieť. 1022 00:45:29,470 --> 00:45:32,860 >> Ja už hovoril, void, pretože to dopadá funkcií, 1023 00:45:32,860 --> 00:45:34,777 podobne ako getString, môže vracia hodnotu ku mne. 1024 00:45:34,777 --> 00:45:36,610 Nejedná sa len mať vytlačiť na obrazovku, 1025 00:45:36,610 --> 00:45:38,410 môžu skutočne ruky ma niečo späť. 1026 00:45:38,410 --> 00:45:41,535 A zatiaľ čo pred PrintName, Nepotreboval som nič späť. 1027 00:45:41,535 --> 00:45:44,160 Potreboval som vedľajší účinok niečo, čo objavovať na obrazovke, 1028 00:45:44,160 --> 00:45:46,570 ale ja som nepotreboval človeka mi podať niečo späť. 1029 00:45:46,570 --> 00:45:48,840 Tu, s GetPositiveInt, ako u GetInt, 1030 00:45:48,840 --> 00:45:50,640 Chcem byť odovzdaný niečo späť. 1031 00:45:50,640 --> 00:45:53,220 Takže ja hovorím nie, void, na vedenie 23, ale int, 1032 00:45:53,220 --> 00:45:55,570 ktorý hovorí, táto funkcia že píšem, 1033 00:45:55,570 --> 00:45:58,860 volal GetPositiveInt sa chystá Podaj mi naspäť celé číslo, nie nič, 1034 00:45:58,860 --> 00:45:59,890 nie void. 1035 00:45:59,890 --> 00:46:03,280 >> Medzitým, to bude trvať vstupy, takže som sa, druh, obrátil to. 1036 00:46:03,280 --> 00:46:08,280 Nedám žiadnu GetPositiveInt vstup, chcem, aby mi dať svoj výstup. 1037 00:46:08,280 --> 00:46:09,800 A čo sa potom stane teraz? 1038 00:46:09,800 --> 00:46:11,640 Takže tu je návod, ako môžem deklarovať premennú. 1039 00:46:11,640 --> 00:46:15,090 Urobil som to mimo slučku, z dôvodov, budeme nakoniec vidieť, 1040 00:46:15,090 --> 00:46:17,700 ale to len dáva me 32 bitov s názvom, n, 1041 00:46:17,700 --> 00:46:20,952 A ja som pre-určujúci je pre uloženie celé číslo. 1042 00:46:20,952 --> 00:46:23,660 A tu je to, robiť, zatiaľ čo konštrukt, a to je dôvod, prečo je to užitočné. 1043 00:46:23,660 --> 00:46:26,700 Doslova to urobiť, keď n je menšia ako 1. 1044 00:46:26,700 --> 00:46:28,030 Tak uvidíme, čo sa stane. 1045 00:46:28,030 --> 00:46:30,760 Aj vytlačiť, prosím daj mi pozitívne int. 1046 00:46:30,760 --> 00:46:34,300 Potom som si int, pomocou CS50 je fungovať a uložené v n. 1047 00:46:34,300 --> 00:46:38,990 >> A potom, čo riadok kódu pravdepodobne dostane vykonaný ďalší, logicky? 1048 00:46:38,990 --> 00:46:41,890 Ktoré číslo riadka? 1049 00:46:41,890 --> 00:46:42,571 Jo, tak 31. 1050 00:46:42,571 --> 00:46:45,320 Tie by sa vedieť, kým ste bolo povedané, alebo tak nejako vyvodzovať to, 1051 00:46:45,320 --> 00:46:45,986 ale je to pravda. 1052 00:46:45,986 --> 00:46:48,280 Ide to zhora nadol a potom sa opakuje. 1053 00:46:48,280 --> 00:46:55,840 Takže ak som napísal v povedzme, číslo Negatívny 1, je n menšie ako negatívny 1? 1054 00:46:55,840 --> 00:46:56,340 Jo. 1055 00:46:56,340 --> 00:46:58,470 Vzhľadom k tomu, negatívne 1 je menšia ako 1. 1056 00:46:58,470 --> 00:46:59,510 Takže to, čo by sa malo stať? 1057 00:46:59,510 --> 00:47:03,260 Chystám sa to urobiť pričom n je menší ako 1, 1058 00:47:03,260 --> 00:47:05,760 takže budem sa vrátiť do riadku 28. 1059 00:47:05,760 --> 00:47:09,530 >> A každý time-- a poďme bežať tohle-- aby funkcia 1 skompilovať, 1060 00:47:09,530 --> 00:47:11,340 a teraz dot lomka funkcie 1. 1061 00:47:11,340 --> 00:47:14,280 Keby som zadajte záporné 1, to je bude mať na mňa jačať 1062 00:47:14,280 --> 00:47:17,530 kým som spolupracovať, pretože každý mojich vstupov je menšia ako 1 1063 00:47:17,530 --> 00:47:20,070 a ak je to, zatiaľ čo menej ako 1, Budem držať robiť. 1064 00:47:20,070 --> 00:47:24,240 Ak som sa konečne dať číslo ako 50, našťastie, to hovorí, vďaka za 50. 1065 00:47:24,240 --> 00:47:24,970 Prečo? 1066 00:47:24,970 --> 00:47:30,640 Vzhľadom k tomu, akonáhle n nie je menšia ako 1, prestanem neuvízly v tejto slučky, 1067 00:47:30,640 --> 00:47:33,840 a tento nový kľúčové slovo dnes, return, doslova to robí. 1068 00:47:33,840 --> 00:47:36,800 Takže som práve realizovaná, v zmysel, čo je ekvivalent getString, 1069 00:47:36,800 --> 00:47:40,590 kde som podal späť kto používa ma, nejakú hodnotu. 1070 00:47:40,590 --> 00:47:42,820 Nemusí to byť reťazec, je to int. 1071 00:47:42,820 --> 00:47:44,990 Tak jednoduchý, rýchly príklad, ale my budeme čoskoro 1072 00:47:44,990 --> 00:47:47,930 vidieť niektoré sofistikovanejšie verzia ešte. 1073 00:47:47,930 --> 00:47:53,882 V skutočnosti, poďme sa pozrieť na číselný jedného, ​​ktorý sa nazýva return.c. 1074 00:47:53,882 --> 00:47:55,590 A toto je vlastne o niečo jednoduchšie. 1075 00:47:55,590 --> 00:47:59,010 Takže účel tohto programu v life-- poďme skompilovať a spustiť ho, 1076 00:47:59,010 --> 00:48:03,090 takže sa vrátiť, dot lomítko, return-- oznámenia 1077 00:48:03,090 --> 00:48:05,530 Program jednoducho kocky hodnotu 2. 1078 00:48:05,530 --> 00:48:08,410 Je to celkom hlúpe, je to ťažké kód, to neberie žiadne vstupy, 1079 00:48:08,410 --> 00:48:12,220 ale to preukázať ďalší Funkcie, ktoré som napísal sám. 1080 00:48:12,220 --> 00:48:15,760 Tak tu som vyhlásil variabilné, zvané x, typu int, 1081 00:48:15,760 --> 00:48:17,840 rovná počtu 2, úplne ľubovoľné. 1082 00:48:17,840 --> 00:48:19,530 To je len nejaký našuchorený tlač. 1083 00:48:19,530 --> 00:48:23,070 To hovorí, že X je teraz, také a taký, Cubing dot dot dot. 1084 00:48:23,070 --> 00:48:26,390 A kúzlo je zrejme v riadku 21. 1085 00:48:26,390 --> 00:48:30,120 Volám funkciu nazvanú, kocky, Ja som podal list papiera 1086 00:48:30,120 --> 00:48:32,890 s číslom 2 písaný na tom, a to, čo hodnota, matematicky, 1087 00:48:32,890 --> 00:48:34,860 chcem sa dostať z toho? 1088 00:48:34,860 --> 00:48:36,570 Rovnako ako 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 Chcem 2 kocky späť, 2 sila 3, takže 8 späť. 1092 00:48:40,160 --> 00:48:42,570 >> Takže tam, kde sa kocka realizovaný? 1093 00:48:42,570 --> 00:48:44,349 No, všimnete je implementované tu dole. 1094 00:48:44,349 --> 00:48:47,140 A rovnako ako predtým, logicky, hoci syntax je pravdepodobne 1095 00:48:47,140 --> 00:48:49,320 mnohí z vás úplne nové, Chcem túto funkciu 1096 00:48:49,320 --> 00:48:51,780 mi ruku list papier s int na to. 1097 00:48:51,780 --> 00:48:53,990 Takže mám int, na Volá sa ľubovoľne, 1098 00:48:53,990 --> 00:48:55,530 ale vhodne nazvaný kocky. 1099 00:48:55,530 --> 00:48:58,430 Vstupné k nemu, je n of zadajte celé číslo, tak to je 1100 00:48:58,430 --> 00:49:00,800 Ako môžem odovzdať v počte 2 na jeden list papiera. 1101 00:49:00,800 --> 00:49:03,910 A potom sa ukáže, C podpery matematika, takže nemáte x je pre časy, 1102 00:49:03,910 --> 00:49:06,680 stačí použiť hviezdičku pre násobenie. 1103 00:49:06,680 --> 00:49:11,070 A to sa vracia krát N krát N n, čo je jednoducho hodnota kocky. 1104 00:49:11,070 --> 00:49:12,840 >> Tak kam ideme sa toto všetko? 1105 00:49:12,840 --> 00:49:14,570 To je určite víchrica tour, buďte si istý, 1106 00:49:14,570 --> 00:49:16,410 že v super sekciách a problém set 1, 1107 00:49:16,410 --> 00:49:18,368 budete prešiel to všetko o to viac. 1108 00:49:18,368 --> 00:49:22,490 A problém nastaviť 1, budeme prechodu z grafického sveta Scratch 1109 00:49:22,490 --> 00:49:25,640 na niečo viac príkazového riadku v C. Ale budeme čerpať inšpiráciu 1110 00:49:25,640 --> 00:49:27,680 z tejto hry tu z dávnych čias, kde 1111 00:49:27,680 --> 00:49:31,591 pomocou C a štandardnej edícii p set budete realizovať MARIEOVÁ pyramídy. 1112 00:49:31,591 --> 00:49:34,340 A v hackerské vydanie p set, pokiaľ sa tak rozhodnete voliť, 1113 00:49:34,340 --> 00:49:38,280 budete implementovať trochu viac náročné pyramídy s dvoma vrcholmi. 1114 00:49:38,280 --> 00:49:41,239 Budete tiež implementovať algoritmus, chamtivý algoritmus. 1115 00:49:41,239 --> 00:49:43,030 Ukazuje sa, že je tu niektoré zaujímavé logika 1116 00:49:43,030 --> 00:49:45,640 za proces beh stanica A pokladníka 1117 00:49:45,640 --> 00:49:47,410 a skutočne podal niekto staré zmena. 1118 00:49:47,410 --> 00:49:50,410 Tam je algoritmus, ktorý je celkom jednoduché, že môžete dokonca 1119 00:49:50,410 --> 00:49:53,576 uchopiť intuitívne, keď ste prvýkrát čítal to-- si uvedomil, že to, čo som vždy 1120 00:49:53,576 --> 00:49:57,110 vykonať kedykoľvek som si dal niekto nejakú Peniaze back--, ktorý vám umožní vždy 1121 00:49:57,110 --> 00:50:00,679 minimalizovať počet papierové bankovky alebo kovové mince 1122 00:50:00,679 --> 00:50:02,220 že ste podal späť užívateľovi. 1123 00:50:02,220 --> 00:50:04,610 A to, samozrejme, je presvedčivý pretože keď idete do CVS alebo ktovie čo ešte, 1124 00:50:04,610 --> 00:50:06,430 nechcete, aby podal celá partia tie 1125 00:50:06,430 --> 00:50:07,596 alebo celá partia haliere. 1126 00:50:07,596 --> 00:50:10,120 Chcete najmenším počtom mince, pravdepodobne, je to možné. 1127 00:50:10,120 --> 00:50:13,070 >> Napokon, budete tiež byť spochybnená fušovať do sveta vody 1128 00:50:13,070 --> 00:50:17,220 a skutočne dostať zhodnotenie pre mapovanie medzi prietokom vody, 1129 00:50:17,220 --> 00:50:19,890 z páči, voda v sprche, koľko vody sa spotrebuje. 1130 00:50:19,890 --> 00:50:22,640 A narážka tam, bude tento klip tu, 1131 00:50:22,640 --> 00:50:24,840 ktoré budeme končí za len 60 sekúnd, že 1132 00:50:24,840 --> 00:50:29,070 maľuje obraz low-flow sprchovej hlavice. 1133 00:50:29,070 --> 00:50:30,886 >> [Videoprehrávanie] 1134 00:50:30,886 --> 00:50:31,385 -Dobre. 1135 00:50:31,385 --> 00:50:32,774 Som sa sem dostal všetko. 1136 00:50:32,774 --> 00:50:35,800 Mám cyklónu rady F, Hydra, Jetflow, Štokholm 1137 00:50:35,800 --> 00:50:37,660 Supersteam, čo si len spomeniete. 1138 00:50:37,660 --> 00:50:39,265 >> -A Čo odporúčate? 1139 00:50:39,265 --> 00:50:40,460 >> -Čo hľadáte? 1140 00:50:40,460 --> 00:50:41,300 >> Power človek. 1141 00:50:41,300 --> 00:50:42,285 Power. 1142 00:50:42,285 --> 00:50:42,910 -ako Silkwood. 1143 00:50:42,910 --> 00:50:44,520 -To Je pre žiarenie. 1144 00:50:44,520 --> 00:50:46,335 -To je správne. 1145 00:50:46,335 --> 00:50:48,275 -Teraz Čo to je? 1146 00:50:48,275 --> 00:50:49,704 -To Je Commando 450. 1147 00:50:49,704 --> 00:50:50,620 Nechcem predať, že jeden. 1148 00:50:50,620 --> 00:50:51,700 >> -Ale To je to, čo chceme. 1149 00:50:51,700 --> 00:50:52,680 Je to komando 450. 1150 00:50:52,680 --> 00:50:53,882 >> Nie mi veriť. 1151 00:50:53,882 --> 00:50:55,090 Používa sa iba v cirkuse. 1152 00:50:55,090 --> 00:50:56,512 To je pre slony. 1153 00:50:56,512 --> 00:50:59,356 >> -Budem Platiť nič. 1154 00:50:59,356 --> 00:51:01,252 >> Čo o Jerry? 1155 00:51:01,252 --> 00:51:02,760 >> -on Nemohol zvládnuť. 1156 00:51:02,760 --> 00:51:04,910 Je to delikátna. 1157 00:51:04,910 --> 00:51:05,750 OH ano. 1158 00:51:05,750 --> 00:51:36,737 1159 00:51:36,737 --> 00:51:37,320 [END Prehrávanie] 1160 00:51:37,320 --> 00:51:37,700 DAVID J Malan: Dobre. 1161 00:51:37,700 --> 00:51:38,820 Teda ak na CS50. 1162 00:51:38,820 --> 00:51:40,050 Uvidíme sa budúci týždeň. 1163 00:51:40,050 --> 00:51:45,910 1164 00:51:45,910 --> 00:51:49,029 >> Reproduktor 1: [? Scullyová?], [? Ian?] tak ďaleko, ako tento záverečný projekt, 1165 00:51:49,029 --> 00:51:50,362 Čo ste chlapci prišli s? 1166 00:51:50,362 --> 00:51:51,990 >> SPEAKER 2: No, dali sme to rôzne myslenia, 1167 00:51:51,990 --> 00:51:53,250 a domnievame sa, že najlepší spôsob, ako to-- 1168 00:51:53,250 --> 00:51:53,660 >> SPEAKER 3: Môžem? 1169 00:51:53,660 --> 00:51:54,326 >> SPEAKER 2: Jo. 1170 00:51:54,326 --> 00:51:56,360 V každom prípade, v skutočnosti. 1171 00:51:56,360 --> 00:51:59,425 >> SPEAKER 3: Takže si myslím, môžeme zhrnúť náš nápad 1172 00:51:59,425 --> 00:52:05,450 Pre Outros s jedným word-- nič. 1173 00:52:05,450 --> 00:52:08,950 1174 00:52:08,950 --> 00:52:10,409 >> DAVID J Malan: Nič? 1175 00:52:10,409 --> 00:52:11,200 SPEAKER 3: Nič. 1176 00:52:11,200 --> 00:52:12,990 DAVID J Malan: Čo to znamená? 1177 00:52:12,990 --> 00:52:16,260 SPEAKER 3: Outros sú o ničom. 1178 00:52:16,260 --> 00:52:21,720 SPEAKER 2: No, myslím, vo filozofii, Myslím, že nič nie je vždy niečo. 1179 00:52:21,720 --> 00:52:24,200 Reproduktor 1: Takže what's-- čo je predpoklad? 1180 00:52:24,200 --> 00:52:25,720 SPEAKER 3: Takže je to ako život. 1181 00:52:25,720 --> 00:52:26,680 OK. 1182 00:52:26,680 --> 00:52:28,294 Čo si dnes robil? 1183 00:52:28,294 --> 00:52:31,811 >> DAVID J Malan: Vstal som, mal raňajky, a prišiel 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, nemal niečo, čo sa s ním stane na the-- 1186 00:52:36,806 --> 00:52:37,889 SPEAKER 3: Nie, nie, nie, nie. 1187 00:52:37,889 --> 00:52:40,220 Nič sa nedeje. 1188 00:52:40,220 --> 00:52:42,910 >> Reproduktor 1: Tak prečo sa pozeráme? 1189 00:52:42,910 --> 00:52:46,956 >> SPEAKER 3: Vzhľadom k tomu, je to outro na CS50. 1190 00:52:46,956 --> 00:52:48,652 >> DAVID J Malan: Ešte nie. 1191 00:52:48,652 --> 00:52:49,151