1 00:00:00,000 --> 00:00:10,940 2 00:00:10,940 --> 00:00:13,060 >> DAVID J MALAN: Minden Rendben, tehát ez CS50. 3 00:00:13,060 --> 00:00:15,040 És ez egyértelműen pénteken. 4 00:00:15,040 --> 00:00:16,850 És ez az a hét végére egy. 5 00:00:16,850 --> 00:00:21,020 Szóval lehet felidézni, hogy mi maradt ki, utoljára, egy filmsorozat a fajta. 6 00:00:21,020 --> 00:00:25,020 Mely által ki ezt a hazugságot, hogy nem Mindegy, mit tanítottak növekvő 7 00:00:25,020 --> 00:00:31,610 up, 1 osztva 10 nem, a Tény, 0,1 vagy 0,100, illetve 0,10000. 8 00:00:31,610 --> 00:00:35,270 Sőt, ha fordítani ezt programot, mint mi tegnap,, 9 00:00:35,270 --> 00:00:39,770 teszik pontatlanság, majd do pont, perjel, pontatlanság, 10 00:00:39,770 --> 00:00:43,600 megtudtuk, hogy ez az, amit az 1 osztva 10 valójában. 11 00:00:43,600 --> 00:00:46,140 Szóval ez nem igazán a helyzet. 12 00:00:46,140 --> 00:00:49,014 De ez nem hint néhány alapvető korlátozása számítógépek. 13 00:00:49,014 --> 00:00:50,930 És valóban, többek között a dolgokat fogunk csinálni 14 00:00:50,930 --> 00:00:55,130 ma megnézzük, hogy ez miért van történt, milyen hatásai vannak ennek, 15 00:00:55,130 --> 00:00:58,430 hogyan emberiség nem megragadni ezt a néhány nagyon 16 00:00:58,430 --> 00:01:00,410 Súlyos situations-- az eredmény az, amely 17 00:01:00,410 --> 00:01:03,141 már elég tragikus és expensive-- és 18 00:01:03,141 --> 00:01:04,849 vessünk egy pillantást, hogyan valóban védeni 19 00:01:04,849 --> 00:01:06,530 ezek ellen a korlátozásokat. 20 00:01:06,530 --> 00:01:10,940 Tehát intuitív módon, talán, miért van 1 osztva 10, 21 00:01:10,940 --> 00:01:15,480 szerint a számítógépem Itt nem csak 1/10, 0,10? 22 00:01:15,480 --> 00:01:15,980 Igen. 23 00:01:15,980 --> 00:01:16,530 Mit gondolsz? 24 00:01:16,530 --> 00:01:17,860 >> Közönség tagja: a radix a különbség? 25 00:01:17,860 --> 00:01:18,550 >> DAVID J MALAN: A mi? 26 00:01:18,550 --> 00:01:19,730 Ó, a radix a különbség? 27 00:01:19,730 --> 00:01:20,720 Szóval nem egészen. 28 00:01:20,720 --> 00:01:23,200 Ez valójában több alapvető fontosságú a hardver. 29 00:01:23,200 --> 00:01:23,980 Más gondolatok? 30 00:01:23,980 --> 00:01:24,584 Igen. 31 00:01:24,584 --> 00:01:26,750 KÖZÖNSÉG TAG: jelentik a számokat másképp? 32 00:01:26,750 --> 00:01:27,880 DAVID J MALAN: Szóval they-- jobb. 33 00:01:27,880 --> 00:01:29,338 Ők jelentik a számokat másképp. 34 00:01:29,338 --> 00:01:30,700 Pontatlanul, látszólag. 35 00:01:30,700 --> 00:01:33,190 Annak érdekében, hogy is-- Nos, eltérően, mi? 36 00:01:33,190 --> 00:01:34,490 Vagy kitől? 37 00:01:34,490 --> 00:01:35,050 Tőlünk? 38 00:01:35,050 --> 00:01:35,966 Közönség tagja: Igen. 39 00:01:35,966 --> 00:01:38,930 Nem használják a tizedes rendszer [hallhatatlan]. 40 00:01:38,930 --> 00:01:39,680 DAVID J MALAN: OK. 41 00:01:39,680 --> 00:01:41,560 Tehát bizonyos értelemben, nem az használja a decimális rendszert. 42 00:01:41,560 --> 00:01:43,720 A motorháztető alatt, mindent, sőt, bináris, 43 00:01:43,720 --> 00:01:45,510 és ez a kapcsolódó, az tény. 44 00:01:45,510 --> 00:01:48,135 De ez még egyszerűbb magyarázatot, mint hogy. 45 00:01:48,135 --> 00:01:48,635 Igen. 46 00:01:48,635 --> 00:01:49,970 >> KÖZÖNSÉG TAG: Csak olyan sok bit. 47 00:01:49,970 --> 00:01:52,370 Ők csak tárolni egy bizonyos mértékben, mint a tizedes. 48 00:01:52,370 --> 00:01:52,780 >> DAVID J MALAN: Igen. 49 00:01:52,780 --> 00:01:54,420 Ez az, ami igazán kapok rá. 50 00:01:54,420 --> 00:01:57,180 Kiderül, hogy a számítógépek jellemzően, mindig csak 51 00:01:57,180 --> 00:01:59,690 használjon egy véges mennyiségű információt hogy valamit ábrázol. 52 00:01:59,690 --> 00:01:59,870 Jobb? 53 00:01:59,870 --> 00:02:02,110 Végtére is, már csak egy fix mennyiségű hely a merevlemezen. 54 00:02:02,110 --> 00:02:04,210 Már csak egy fix összeget RAM, vagy a számítógép memóriájában. 55 00:02:04,210 --> 00:02:06,251 És ha csak egy fix összegű valamit, 56 00:02:06,251 --> 00:02:09,611 Biztosan akkor valójában nem számít fel a végtelenbe, vagy bármilyen kívánt számot. 57 00:02:09,611 --> 00:02:11,610 Te, milyen, meg kell válogathat milyen tartományban 58 00:02:11,610 --> 00:02:13,220 Az értékek fogsz támogatja. 59 00:02:13,220 --> 00:02:18,100 >> És így például egy-két hét ezelőtt, amikor beszélgettünk ASCII, 60 00:02:18,100 --> 00:02:21,610 és beszélgettünk 8 bit, vagy egy bájt, hogy úgy mondjam, 61 00:02:21,610 --> 00:02:26,360 A legnagyobb szám tudtunk képviseli a 8 bites volt, mi? 62 00:02:26,360 --> 00:02:28,350 255. 63 00:02:28,350 --> 00:02:31,850 És tudjuk képviselni 256 teljes értékek de akkor nem, ha tölteni az egyiket 64 00:02:31,850 --> 00:02:34,190 A 0-- Nos, de ha tölteni az egyiket 0, 65 00:02:34,190 --> 00:02:36,830 akkor a legnagyobb szám természetesen, 255. 66 00:02:36,830 --> 00:02:39,410 >> Így kiderül, hogy ez az esetben is, ebben az összefüggésben. 67 00:02:39,410 --> 00:02:42,350 Elkezdtünk beszélgetni, utoljára, mintegy lebegőpontos számok, amelyek 68 00:02:42,350 --> 00:02:44,640 eltérnek egészek, a hogy van egy tizedesvessző 69 00:02:44,640 --> 00:02:47,056 és remélhetőleg néhány szám után, de ezek túl. 70 00:02:47,056 --> 00:02:51,730 A számítógép csak a tipikusan megy használni 32 bites, talán 64 bit 71 00:02:51,730 --> 00:02:53,497 hogy képviselje a lebegőpontos értéket. 72 00:02:53,497 --> 00:02:56,080 Tehát még akkor is, felnőttem tanulás matematika és tudván, 73 00:02:56,080 --> 00:02:58,750 hogy akkor feltétlenül meg végtelen számú számok 74 00:02:58,750 --> 00:03:01,650 tizedesvessző után, nem ha véges memória. 75 00:03:01,650 --> 00:03:03,930 Te, milyen, meg kell kerekíteni, vagy válogathat, amelyek 76 00:03:03,930 --> 00:03:05,346 szám fogsz képviselni. 77 00:03:05,346 --> 00:03:08,710 És így lehet gondolni, bizonyos értelemben, ez az a számítógép legközelebbi 78 00:03:08,710 --> 00:03:14,050 közelítés értéke 1/10, hogy kaphat, csak 32, vagy úgy bit. 79 00:03:14,050 --> 00:03:15,300 És ez nem csak 1/10. 80 00:03:15,300 --> 00:03:19,820 >> Például, ha ezen változtatni kell 1/3, ami szerintünk ennél is egyszerűbb. 81 00:03:19,820 --> 00:03:21,300 Tehát 1 osztva 3. 82 00:03:21,300 --> 00:03:22,355 Hadd menteni a fájlt. 83 00:03:22,355 --> 00:03:24,680 Hadd menjen előre, és újrafordítani azt. 84 00:03:24,680 --> 00:03:25,820 És hadd újra futtatni. 85 00:03:25,820 --> 00:03:30,000 Itt is, mint kiderült, 1/3 nem 0.3 majd egy végtelen számú 3'S 86 00:03:30,000 --> 00:03:30,770 azt követően. 87 00:03:30,770 --> 00:03:32,540 Itt van ez a pontatlanság végén. 88 00:03:32,540 --> 00:03:35,544 Tehát mi, emberek helyes, és mi megtanultad, valójában, helyes, 89 00:03:35,544 --> 00:03:37,460 de ütközünk fel ellen bizonyos korlátai. 90 00:03:37,460 --> 00:03:39,420 >> És mit gondoltam tennénk ma is kezdődik 91 00:03:39,420 --> 00:03:42,190 nézi, őszintén szólva, a tragikus következményei ennek 92 00:03:42,190 --> 00:03:45,490 Néha, amikor az emberiség nem elég végrehajtása 93 00:03:45,490 --> 00:03:48,460 Ennek valóság és ezeket a korlátozásokat. 94 00:03:48,460 --> 00:03:52,360 És majd meglátjuk egy sor matricák A History Channel vevő 95 00:03:52,360 --> 00:03:53,950 Nézd meg, hogy a dolgok rosszul sikerült. 96 00:03:53,950 --> 00:03:56,340 Arról van szó, 8 perc hosszú, és mi után visszatért ezt 97 00:03:56,340 --> 00:03:59,439 és nézd meg, hogy pontosan mi mást lehet baj. 98 00:03:59,439 --> 00:04:00,605 Ha tudnánk homályos a lights-- 99 00:04:00,605 --> 00:04:02,350 >> [Videó lejátszás] 100 00:04:02,350 --> 00:04:06,310 >> -Computers, Most már minden el fogjuk fogadni, A gyakran frusztráló problémák 101 00:04:06,310 --> 00:04:07,750 menjen velük. 102 00:04:07,750 --> 00:04:11,370 Hibák, vírusok és szoftver hibák kicsik árak 103 00:04:11,370 --> 00:04:13,230 fizetni a kényelmet. 104 00:04:13,230 --> 00:04:17,519 De a high-tech és a nagy sebességű katonai és űrprogram alkalmazások, 105 00:04:17,519 --> 00:04:22,130 A legkisebb probléma nagyításban is a katasztrófa. 106 00:04:22,130 --> 00:04:27,750 Június 4-én, 1996, a tudósok elő hogy indítson egy pilóta nélküli Ariane 5 rakétán. 107 00:04:27,750 --> 00:04:29,890 Ez vitt tudományos műholdak tervezett 108 00:04:29,890 --> 00:04:33,030 megállapítani, pontosan hogyan Föld mágneses mezeje kölcsönhatásba lép 109 00:04:33,030 --> 00:04:35,600 A napszél. 110 00:04:35,600 --> 00:04:37,930 A rakéta épült Az Európai Űrügynökség 111 00:04:37,930 --> 00:04:41,620 és elemelkedik a létesítmény partján a Francia Guyana. 112 00:04:41,620 --> 00:04:44,924 >> -És Mintegy 30 másodperc A repülés először 113 00:04:44,924 --> 00:04:46,340 észrevette, hogy valami nincs rendjén. 114 00:04:46,340 --> 00:04:49,280 Hogy a fúvókák voltak elfordítható oly módon, hogy tényleg nem kellene. 115 00:04:49,280 --> 00:04:53,042 40 másodperccel a repülés, egyértelműen a jármű bajban volt, 116 00:04:53,042 --> 00:04:55,250 és ez mikor történt a döntést, hogy elpusztítsa azt. 117 00:04:55,250 --> 00:04:58,970 A tartomány biztonsági tisztviselőt óriási bátorság megnyomta a gombot, 118 00:04:58,970 --> 00:05:03,940 felrobbantotta a rakétát, mielőtt tudott vált veszélyt a közbiztonságra nézve. 119 00:05:03,940 --> 00:05:06,600 >> -Ez Volt a leánykori út az Ariane 5, 120 00:05:06,600 --> 00:05:09,270 és pusztítások a helyet, mert egy hiba 121 00:05:09,270 --> 00:05:10,992 beágyazva a rakéta program. 122 00:05:10,992 --> 00:05:12,700 -A Probléma a Ariane az volt, hogy 123 00:05:12,700 --> 00:05:15,370 volt egy szám, amely szükséges 64 bit kifejezni, 124 00:05:15,370 --> 00:05:18,150 és azt akarta átalakítani azt, hogy egy 16-bites számot. 125 00:05:18,150 --> 00:05:21,160 Azt feltételezték, hogy a szám soha nem lesz nagyon nagy, 126 00:05:21,160 --> 00:05:25,020 hogy a legtöbb ilyen számjegy A 64 bites szám volt 0 években. 127 00:05:25,020 --> 00:05:26,310 Nem volt igazuk. 128 00:05:26,310 --> 00:05:28,680 >> -A Képtelensége az egyik szoftver elfogadni 129 00:05:28,680 --> 00:05:32,820 az a fajta által generált Egy másik volt a gyökere a hiba. 130 00:05:32,820 --> 00:05:37,190 Software kidolgozása vált nagyon költséges része az új technológia. 131 00:05:37,190 --> 00:05:40,760 Az Ariane 4 rakéta volt nagyon Sikeres, annyira a szoftver 132 00:05:40,760 --> 00:05:43,990 létre azt is használják az Ariane 5. 133 00:05:43,990 --> 00:05:49,750 >> -Az Alapvető probléma az volt, hogy az Ariane 5. gyorsabb volt, felgyorsult gyorsabb. 134 00:05:49,750 --> 00:05:53,000 És a szoftver nem volt elszámolni, hogy. 135 00:05:53,000 --> 00:05:56,330 >> -A Megsemmisítése a rakéta Egy hatalmas pénzügyi katasztrófa, 136 00:05:56,330 --> 00:05:59,670 minden miatt egy perc szoftver hiba. 137 00:05:59,670 --> 00:06:01,990 De nem ez volt az első idejű adatok konverziós problémák 138 00:06:01,990 --> 00:06:05,310 már sújtja a modern rakétatechnika. 139 00:06:05,310 --> 00:06:08,300 >> -A 1991-ben, a start Az első Öböl-háború, 140 00:06:08,300 --> 00:06:10,650 A Patriot rakéta tapasztalt hasonló jellegű 141 00:06:10,650 --> 00:06:12,650 A számkonverzió probléma. 142 00:06:12,650 --> 00:06:15,620 Ennek eredményeként a 28 ember, 28 amerikai katona 143 00:06:15,620 --> 00:06:18,440 megöltek és mintegy 100 másik megsebesült, 144 00:06:18,440 --> 00:06:21,900 amikor a Patriot, ami kellett volna ellen védő bejövő scuds, 145 00:06:21,900 --> 00:06:24,630 nem a tűz egy rakéta. 146 00:06:24,630 --> 00:06:29,440 >> -Amikor Irak lerohanta Kuvait és Amerikában indított Sivatagi Vihar 1991 elején, 147 00:06:29,440 --> 00:06:33,800 Patriot rakéták akkumulátorok vezényeltek hogy megvédje Szaúd-Arábia és Izrael 148 00:06:33,800 --> 00:06:37,000 az iraki Scud rakéta támadások. 149 00:06:37,000 --> 00:06:40,610 A Patriot egy amerikai, közép-hatótávolságú felület-levegő rendszer 150 00:06:40,610 --> 00:06:43,010 által gyártott Raytheon cég. 151 00:06:43,010 --> 00:06:49,080 >> -A Méret a Patriot elfogó, önmagában körülbelül, mintegy 20 láb hosszú. 152 00:06:49,080 --> 00:06:51,250 És a súlya körülbelül 2000 fontot. 153 00:06:51,250 --> 00:06:55,195 És hordoz robbanófejet a about-- Azt hiszem, ez körülbelül 150 fontot. 154 00:06:55,195 --> 00:06:59,500 És a robbanófejet, önmagában, egy magas robbanásveszélyes, 155 00:06:59,500 --> 00:07:02,570 amely fragmensek körül. 156 00:07:02,570 --> 00:07:06,890 A ház a robbanófej célja, hogy úgy viselkednek, mint sörét. 157 00:07:06,890 --> 00:07:09,130 >> -A Rakéták végzett, 4 per konténer, 158 00:07:09,130 --> 00:07:12,080 és szállítják a félpótkocsi. 159 00:07:12,080 --> 00:07:19,100 >> -A Patriot elleni rakétarendszer nyúlik vissza, legalább 20 éve. 160 00:07:19,100 --> 00:07:22,320 Ez eredetileg tervezték mint egy légvédelmi rakéta 161 00:07:22,320 --> 00:07:24,180 lő le az ellenséges repülőgépek. 162 00:07:24,180 --> 00:07:27,860 Az első Öböl-háború, amikor a háború jött, 163 00:07:27,860 --> 00:07:32,745 A hadsereg akarta felhasználni arra, hogy lő le scuds, nem repülőgépek. 164 00:07:32,745 --> 00:07:36,150 Az iraki erők nem volt így sok a probléma, 165 00:07:36,150 --> 00:07:39,110 de a hadsereg aggódott scuds. 166 00:07:39,110 --> 00:07:42,340 És így igyekeztek frissíteni a Patriot. 167 00:07:42,340 --> 00:07:44,760 >> -Intercepting Ellensége rakéta haladó meccs öt 168 00:07:44,760 --> 00:07:47,250 volt, lesz elég ambiciózusak. 169 00:07:47,250 --> 00:07:50,000 De amikor a Patriot rohant helyezését, 170 00:07:50,000 --> 00:07:54,030 A hadsereg nem volt tisztában a Iraki módosítása tette 171 00:07:54,030 --> 00:07:56,840 a scuds szinte lehetetlen eltalálni. 172 00:07:56,840 --> 00:08:01,020 >> -Mi Történt, a scuds, hogy jöttek be, nem volt stabil, 173 00:08:01,020 --> 00:08:02,310 ők imbolyog. 174 00:08:02,310 --> 00:08:05,140 Ennek az az oka, volt az irakiak, annak érdekében, 175 00:08:05,140 --> 00:08:09,450 hogy 600 kilométernyi ki a 300 kilométeres hatótávolságú rakétát, 176 00:08:09,450 --> 00:08:12,930 vette súlya ki az első robbanófej és így a robbanófej könnyebb. 177 00:08:12,930 --> 00:08:17,710 Tehát most, a Patriot próbál jönni a Scud, és az idő nagy részében, 178 00:08:17,710 --> 00:08:21,700 A túlnyomó többsége időben, akkor csak repülni a száguldás. 179 00:08:21,700 --> 00:08:25,700 >> -Ha A Patriot-üzemeltetők rájött, hogy a Patriot elvétette a célt, 180 00:08:25,700 --> 00:08:29,790 úgy felrobbantotta a Patriot robbanófejet, hogy elkerülje az esetleges baleseteket, ha 181 00:08:29,790 --> 00:08:32,380 Hagytuk, hogy leesik a földre. 182 00:08:32,380 --> 00:08:36,340 >> -Ez Volt az, amit a legtöbb ember látta, azokat a nagy tűzgolyók az égen, 183 00:08:36,340 --> 00:08:41,289 és félreértik, mint elfogja a Scud robbanófejeket. 184 00:08:41,289 --> 00:08:43,590 Bár az éjszaka égbolt, Patriots megjelent 185 00:08:43,590 --> 00:08:47,020 hogy sikeresen pusztító scuds, a Dhahran, 186 00:08:47,020 --> 00:08:49,730 nem lehetne hibát annak teljesítményéért. 187 00:08:49,730 --> 00:08:53,990 Ott, a Patriot radarrendszer tudta követni a bejövő Scud, 188 00:08:53,990 --> 00:08:56,650 és soha nem indult, szoftverhiba miatt hiba. 189 00:08:56,650 --> 00:08:59,650 190 00:08:59,650 --> 00:09:04,100 Ez volt az izraeliek, aki először fedezte hogy minél hosszabb a rendszer volt, 191 00:09:04,100 --> 00:09:07,510 annál nagyobb az időeltérés vált, mivel egy óra beágyazott 192 00:09:07,510 --> 00:09:09,490 A rendszer számítógépét. 193 00:09:09,490 --> 00:09:12,670 >> -közelítòleg Előtt 2 héttel A tragédia Dhahran, 194 00:09:12,670 --> 00:09:15,010 Az izraeliek jelentett A Honvédelmi Minisztérium, 195 00:09:15,010 --> 00:09:17,940 hogy a rendszer időveszteség, hogy miután körülbelül 8 óra futás, 196 00:09:17,940 --> 00:09:21,410 amikor észrevették, hogy a rendszer egyre észrevehetően kevésbé pontos. 197 00:09:21,410 --> 00:09:25,290 A Honvédelmi Minisztérium reagált, mondja minden a Patriot akkumulátorok 198 00:09:25,290 --> 00:09:28,070 hogy nem hagyja el a rendszert a hosszú ideig. 199 00:09:28,070 --> 00:09:29,960 Soha nem mondtam, amit sokáig volt. 200 00:09:29,960 --> 00:09:30,460 8 órán? 201 00:09:30,460 --> 00:09:30,960 10 óra? 202 00:09:30,960 --> 00:09:31,870 1000 óra? 203 00:09:31,870 --> 00:09:33,734 Senki sem tudta. 204 00:09:33,734 --> 00:09:35,650 -A Patriot akkumulátor állomásozott a laktanyában 205 00:09:35,650 --> 00:09:40,410 A Dhahran, és annak hibás belső óra, már több mint 100 óra 206 00:09:40,410 --> 00:09:43,041 én éjjel február 25. 207 00:09:43,041 --> 00:09:47,416 >> -Ez Lánctalpas időt pontossággal A mintegy 1/10 másodpercnél. 208 00:09:47,416 --> 00:09:49,290 Most 1/10 egy második Érdekes száma 209 00:09:49,290 --> 00:09:52,700 mert nem lehet kifejezve bináris, pontosan. 210 00:09:52,700 --> 00:09:54,820 Ami azt jelenti, hogy nem lehet kifejezhető, pontosan, 211 00:09:54,820 --> 00:09:57,420 minden modern digitális számítógép. 212 00:09:57,420 --> 00:10:01,460 Nehéz elhinni, de Használja ezt a példát. 213 00:10:01,460 --> 00:10:03,520 Vessünk száma, 1/3. 214 00:10:03,520 --> 00:10:07,110 1/3 nem lehet kifejezni decimális, pontosan. 215 00:10:07,110 --> 00:10:11,490 1/3 0.333 folyik a végtelenbe. 216 00:10:11,490 --> 00:10:15,486 Kizárt, hogy ezt megtehessük, a Abszolút pontossággal, a tizedes. 217 00:10:15,486 --> 00:10:18,360 Ez pontosan ugyanolyan probléma, hogy történt a Patriot. 218 00:10:18,360 --> 00:10:22,510 Minél hosszabb a rendszer futott, a rosszabb az idő, hiba lett. 219 00:10:22,510 --> 00:10:28,420 >> -A 100 üzemóra, a hiba időben csak mintegy 1/3 a második. 220 00:10:28,420 --> 00:10:31,830 De tekintve a célba rakéta haladó meccs 5, 221 00:10:31,830 --> 00:10:35,890 ez eredményezte a nyomkövető Hiba több mint 600 méter. 222 00:10:35,890 --> 00:10:38,970 Lenne egy végzetes hiba A katonák Dhahran. 223 00:10:38,970 --> 00:10:45,035 >> Mi történt, egy Scud elindítása volt által észlelt korai előrejelző műholdak, 224 00:10:45,035 --> 00:10:48,930 és új, hogy a Scud volt jön az általános irányt. 225 00:10:48,930 --> 00:10:51,170 Nem tudom, hol jön. 226 00:10:51,170 --> 00:10:53,990 >> -Ez Most már csak a radar komponens a Patriot rendszer, 227 00:10:53,990 --> 00:10:58,520 védő Dhahran, hogy keresse meg és tartsa követni a beérkező ellenséges rakétát. 228 00:10:58,520 --> 00:10:59,690 >> -A Radar nagyon okos. 229 00:10:59,690 --> 00:11:01,710 Ez valóban követni a helyzet a Scud 230 00:11:01,710 --> 00:11:04,040 majd megjósolni, ahol valószínűleg lenne, 231 00:11:04,040 --> 00:11:06,140 A következő alkalommal, a radar küldött impulzust ki. 232 00:11:06,140 --> 00:11:07,660 Ez volt az úgynevezett tartományban kaput. 233 00:11:07,660 --> 00:11:11,870 >> -Akkor, Ha a Patriot úgy dönt, elég idő van 234 00:11:11,870 --> 00:11:16,280 telt, hogy menjen vissza, és ellenőrizze a következő hely erre észlelt objektum, 235 00:11:16,280 --> 00:11:17,280 megy vissza. 236 00:11:17,280 --> 00:11:21,690 Tehát amikor visszament a rossz hely, ez aztán nem lát tárgy 237 00:11:21,690 --> 00:11:25,230 és úgy dönt, hogy nem volt objektumot, ez egy hamis nyomozás, 238 00:11:25,230 --> 00:11:26,650 és eldobja a pályán. 239 00:11:26,650 --> 00:11:29,690 A beérkező Scud eltűnt a radar képernyőjén, 240 00:11:29,690 --> 00:11:32,670 és másodperccel később bevágta a várba. 241 00:11:32,670 --> 00:11:38,100 A Scud megölt 28 és az utolsó egy égetett az első Öböl-háború. 242 00:11:38,100 --> 00:11:43,460 Tragikus, a frissített szoftver megérkezett Dhahran a következő napon. 243 00:11:43,460 --> 00:11:46,150 A szoftver hibája volt rögzítették, záró 244 00:11:46,150 --> 00:11:48,940 egy fejezet van a bajba jutott történelem, a Patriot rakéták. 245 00:11:48,940 --> 00:11:50,220 >> [Lejátszás vége] 246 00:11:50,220 --> 00:11:54,340 >> DAVID J MALAN: Szóval vessünk egy pillantást néhány hasonló korlátozások csak egy kicsit. 247 00:11:54,340 --> 00:11:58,470 De először nézzük átmenet egy pár FYI van. 248 00:11:58,470 --> 00:12:01,575 Tehát one-- ezen a hétvégén, ott lesz szuper szakaszok, 249 00:12:01,575 --> 00:12:04,200 amelyek célja, hogy kiváltsa rendszeresen ütemezett szakaszok, amelyek 250 00:12:04,200 --> 00:12:05,460 elindul egy hét múlva. 251 00:12:05,460 --> 00:12:08,204 Vessen egy pillantást a CS50 honlapján További információ ezekről. 252 00:12:08,204 --> 00:12:11,120 Ők is forgatták, és áramlott élnek, akik nem tudnak részt venni. 253 00:12:11,120 --> 00:12:12,980 Probléma állítsa 1 van a Természetesen honlapján már, 254 00:12:12,980 --> 00:12:15,105 és mi megnézzük hogy csak egy kicsit. 255 00:12:15,105 --> 00:12:18,350 És munkaidőn túl, fog helyezze a hétfőtől csütörtökig. 256 00:12:18,350 --> 00:12:20,960 >> Szóval ez volt a legnagyobb kanonikus programot néztük utoljára. 257 00:12:20,960 --> 00:12:23,590 Ez olyan, mint a legegyszerűbb programmal lehet írni a C, 258 00:12:23,590 --> 00:12:25,250 és még ez egy kicsit merész állítás. 259 00:12:25,250 --> 00:12:25,750 Jobb? 260 00:12:25,750 --> 00:12:28,070 Mert van egy csomó látszólagos összetettsége e. 261 00:12:28,070 --> 00:12:30,445 Szóval vessünk egy gyors pillantást amit néhány ilyen elem 262 00:12:30,445 --> 00:12:33,080 volt, majd próbálja nyújtani A mentális modell arra, hogyan 263 00:12:33,080 --> 00:12:35,710 Ezek legegyszerűbb program dolgozni, majd kezdjük 264 00:12:35,710 --> 00:12:38,050 nézi a dolgokat egyre összetettebb. 265 00:12:38,050 --> 00:12:41,280 Tehát ez a sor itt, kiemelve most, sárga, mit mondunk, utoljára, 266 00:12:41,280 --> 00:12:43,200 hogy ez nekünk? 267 00:12:43,200 --> 00:12:45,220 Mi a célja, hogy szolgálja? 268 00:12:45,220 --> 00:12:46,984 Bárki távolabbról vissza? 269 00:12:46,984 --> 00:12:47,483 Igen. 270 00:12:47,483 --> 00:12:48,649 >> Közönség tagja: [hallható] 271 00:12:48,649 --> 00:12:50,871 272 00:12:50,871 --> 00:12:51,704 DAVID J MALAN: Jó. 273 00:12:51,704 --> 00:12:53,537 Szóval ez ad hozzáférést a parancsokra, vagy menjünk 274 00:12:53,537 --> 00:12:56,750 hívjuk őket funkciókat, hogy valaki más írta, hogy bejelentették, 275 00:12:56,750 --> 00:12:58,350 hogy úgy mondjam, néhány más fájlt. 276 00:12:58,350 --> 00:13:02,370 Szóval majd meglátjuk, pontosan mi a .h fájlt van szemben egy .c fájlt, végül. 277 00:13:02,370 --> 00:13:04,710 De most, csak tudom, hogy printf, például, 278 00:13:04,710 --> 00:13:08,370 között van a funkciókat, hogy már bejelentett más fájlt, valahol 279 00:13:08,370 --> 00:13:12,930 máshol a felhő merevlemez, lehetővé teszi számunkra, hogy hozzáférést printf és használja 280 00:13:12,930 --> 00:13:15,240 anélkül, hogy újra feltalálni hogy a kerék magunkat. 281 00:13:15,240 --> 00:13:16,930 Közben fő. 282 00:13:16,930 --> 00:13:19,690 Mi volt az analóg fő, a múlt héten? 283 00:13:19,690 --> 00:13:20,190 Igen. 284 00:13:20,190 --> 00:13:21,460 >> Közönség tagja: Zöld zászló kattint. 285 00:13:21,460 --> 00:13:21,740 >> DAVID J MALAN: Igen. 286 00:13:21,740 --> 00:13:23,490 Scratch években, amikor a zöld zászlót kattintott. 287 00:13:23,490 --> 00:13:25,560 Ez olyan, mint a puzzle-darabot hogy indul dolgokat ki. 288 00:13:25,560 --> 00:13:28,306 És így hasonlóan, nem a világ úgy döntött, néhány évvel ezelőtt, hogy a C- 289 00:13:28,306 --> 00:13:30,930 és egy csomó más nyelveken, Ha akarsz írni egy programot, 290 00:13:30,930 --> 00:13:33,410 Az első funkció azt, hogy hívják, fő. 291 00:13:33,410 --> 00:13:34,641 És azt, hogy néz ki. 292 00:13:34,641 --> 00:13:36,640 De mi jön vissza, Egy másik alkalommal, hogy mit, int, 293 00:13:36,640 --> 00:13:38,690 és, semmisnek jelenti ebben az összefüggésben. 294 00:13:38,690 --> 00:13:42,860 Most, a kapcsos zárójelek természetbeni hasonló Scratch puzzle darab alakja 295 00:13:42,860 --> 00:13:45,080 amely magában foglalja bizonyos sorok száma. 296 00:13:45,080 --> 00:13:47,070 És közül a vonalak Itt van ez itt. 297 00:13:47,070 --> 00:13:51,610 printf egy olyan funkció, amelynek célja a az élet nyomtatni egy formázott karakterláncot. 298 00:13:51,610 --> 00:13:55,010 És formázott, azt jelenti, lehet csatlakoztatni helykitöltő értékek, 299 00:13:55,010 --> 00:13:58,360 és megadhatja, hány tizedesjegy pont, hogy hány számot nyomtatni 300 00:13:58,360 --> 00:14:00,040 után egy tizedespont és hasonlók. 301 00:14:00,040 --> 00:14:05,040 És a printf, persze, úgy egy vagy több érvek vagy paraméterek, 302 00:14:05,040 --> 00:14:06,770 más néven még egyszerűbben, mint bemenet. 303 00:14:06,770 --> 00:14:09,230 >> Szóval printf, mint sok funkciók, úgy bemenet. 304 00:14:09,230 --> 00:14:12,730 És ezek a bemenetek felkarolta a két zárójelben itt. 305 00:14:12,730 --> 00:14:15,180 És belül azoknak az egyik bemenet. 306 00:14:15,180 --> 00:14:18,600 Ez egy string, ahogy mi is hívták, ami csak egy karaktersorozat, 307 00:14:18,600 --> 00:14:22,310 mint egy szót, vagy kifejezést, vagy egy egész esszé sőt, dupla idézőjelek közé. 308 00:14:22,310 --> 00:14:25,712 És ez az, ami fogja befolyásolni a viselkedését printf, mert természetesen, 309 00:14:25,712 --> 00:14:27,170 ez csak egy általános nyomtatási funkcióval. 310 00:14:27,170 --> 00:14:29,600 Ez nem fog tudni mit nyomtatni, ha nem mondja meg. 311 00:14:29,600 --> 00:14:31,000 És akkor, néhány vonását. 312 00:14:31,000 --> 00:14:34,056 Mit mondunk ez a fura szimbólumok sorozatát is? 313 00:14:34,056 --> 00:14:34,556 Igen. 314 00:14:34,556 --> 00:14:35,410 >> Közönség tagja: Új sor. 315 00:14:35,410 --> 00:14:35,990 >> DAVID J MALAN: Új sor. 316 00:14:35,990 --> 00:14:39,340 Így kiderül, akkor nem csak a hit, adja, amikor írsz a program. 317 00:14:39,340 --> 00:14:42,590 Általában a fordító fog kapni egy kicsit zavaros, hogy mit gondolsz. 318 00:14:42,590 --> 00:14:45,340 Inkább meg kell szó szerint azt mondják, hogy nekem egy új sor itt. 319 00:14:45,340 --> 00:14:49,506 És így / n, amit általában hívja escape karakter. 320 00:14:49,506 --> 00:14:50,870 Tehát n, az új vonal. 321 00:14:50,870 --> 00:14:53,810 És a fordító tudja hogy ha látja / n, 322 00:14:53,810 --> 00:14:57,420 azt valójában rábírja a számítógépet, végül, vagy printf, ebben az esetben, 323 00:14:57,420 --> 00:15:00,260 kinyomtatni egy aktuális vonal, mint ütő a, írja, 324 00:15:00,260 --> 00:15:01,480 gombot a billentyűzeten. 325 00:15:01,480 --> 00:15:05,620 És végül, milyen is mondtunk ez a darab szintaxis számára? 326 00:15:05,620 --> 00:15:06,591 Mit jelentenek? 327 00:15:06,591 --> 00:15:07,090 Igen. 328 00:15:07,090 --> 00:15:07,490 >> Közönség tagja: [hallható] 329 00:15:07,490 --> 00:15:08,660 >> DAVID J MALAN: Ez csak a végén a vonal. 330 00:15:08,660 --> 00:15:09,909 Ez a végét jelenti. 331 00:15:09,909 --> 00:15:11,890 És rájönnek, hogy mi nem tedd őket mindenütt. 332 00:15:11,890 --> 00:15:13,900 Mi biztosan nem őket végein minden sorban. 333 00:15:13,900 --> 00:15:16,680 Például, ott sem a első sorban, ott sem a vonalon 334 00:15:16,680 --> 00:15:18,680 a, fő, ott sem miután a kapcsos zárójelek 335 00:15:18,680 --> 00:15:21,740 de akkor elkezd látni, és kap ismerik, ahol ez indokolt. 336 00:15:21,740 --> 00:15:26,014 És ez szinte mindig, miután egy függvény hívjon vagy egy nyilatkozatot, néhány fellépés 337 00:15:26,014 --> 00:15:27,180 hogy te tényleg figyelembe. 338 00:15:27,180 --> 00:15:29,520 >> És most már tudom, különösen, ha azok között, kevésbé kényelmes, 339 00:15:29,520 --> 00:15:32,540 Ezek azok a fajta hülyeségeket hogy akkor a végén véletlenül dörömböl 340 00:15:32,540 --> 00:15:33,873 a fejét a falba fölött. 341 00:15:33,873 --> 00:15:36,107 Mert akkor logikusan magabiztos néhány probléma 342 00:15:36,107 --> 00:15:38,440 ha már megoldódott a probléma set, és a szart, csak 343 00:15:38,440 --> 00:15:40,187 nem fordul le, vagy akár futni. 344 00:15:40,187 --> 00:15:43,270 És olyan gyakran, korán, ez lesz a az oka, hogy kimaradt egy zárójel, 345 00:15:43,270 --> 00:15:44,455 vagy ha kimaradt egy pontosvessző. 346 00:15:44,455 --> 00:15:46,547 És így csak legyen tudatában Az ilyen dolgokat, 347 00:15:46,547 --> 00:15:49,380 és próbáld meg nem kap csalódott őket, mert nagyon gyorsan teszi ezt 348 00:15:49,380 --> 00:15:50,640 megöregszik kalapot. 349 00:15:50,640 --> 00:15:53,910 De ez nagyon könnyű eljutni frusztrált korán, ennek eredményeként. 350 00:15:53,910 --> 00:15:57,020 >> Tehát most, vessünk egy pillantást, hogyan ezen a vonalon valóban működik 351 00:15:57,020 --> 00:15:59,170 majd nézd meg enyhén bonyolultabb egy. 352 00:15:59,170 --> 00:16:02,017 Tehát van itt, a képesnek kell ezen a képernyőn. 353 00:16:02,017 --> 00:16:04,100 És tegyük fel, hogy ez az én számítógép képernyőjén, 354 00:16:04,100 --> 00:16:08,589 de írom a Hello program és én nem hajtották végre, printf. 355 00:16:08,589 --> 00:16:10,130 Valaki végre, printf. 356 00:16:10,130 --> 00:16:12,420 Ki szeretné azt állítják, hogy hajtották végre, printf? 357 00:16:12,420 --> 00:16:12,920 Ha mi is? 358 00:16:12,920 --> 00:16:13,830 Rendben, mi a neved? 359 00:16:13,830 --> 00:16:14,155 >> DIÁK 1: [? Kopál. ?] 360 00:16:14,155 --> 00:16:15,529 >> DAVID J MALAN: Copal, gyere fel. 361 00:16:15,529 --> 00:16:16,430 Gyere fel. 362 00:16:16,430 --> 00:16:17,070 Minden rendben. 363 00:16:17,070 --> 00:16:22,260 Tehát van itt néhány név címkék, hiszen csinálni fogunk egy kis játék ezen. 364 00:16:22,260 --> 00:16:26,270 És mi fog hívni, printf. 365 00:16:26,270 --> 00:16:30,170 És ha azt szeretnénk, hogy jöjjön ide, amit épp most húzott a képernyőn, 366 00:16:30,170 --> 00:16:32,340 ez egész egyszerűen, van nekem, ez az. 367 00:16:32,340 --> 00:16:35,550 >> Rendben, szóval, hello my name is, printf, ha azt szeretné, hogy tegye, hogy a. 368 00:16:35,550 --> 00:16:35,740 Minden rendben. 369 00:16:35,740 --> 00:16:37,360 És ha tudsz menni állvány a számítógép képernyőjén 370 00:16:37,360 --> 00:16:39,730 mintha te vagy a funkciót, hogy jött ezzel a számítógépes rendszer. 371 00:16:39,730 --> 00:16:42,063 És a célja az életben van hogy ténylegesen nyomtatni valamit. 372 00:16:42,063 --> 00:16:44,560 De ugyanúgy, mint a programunk most volt a képernyőn, itt, 373 00:16:44,560 --> 00:16:47,060 mi lesz, hogy valóban ad némi bemenet. 374 00:16:47,060 --> 00:16:51,810 >> És így, ha a bemenet, itt, Úgy tűnik, hogy mi vezetjük a printf, 375 00:16:51,810 --> 00:16:53,730 nézzük milyen gúnyolni fel, mint ez. 376 00:16:53,730 --> 00:16:58,720 Megyek szó írjon egy darab papírra, hogy "hello, világ" 377 00:16:58,720 --> 00:17:03,020 backslash N. És hogy világos legyen, mit Most levonni ezt a papírt, 378 00:17:03,020 --> 00:17:04,020 így néz ki. 379 00:17:04,020 --> 00:17:08,730 Tehát, amikor elindul a program, és ezt a sárga vonal kód kerül végrehajtásra, 380 00:17:08,730 --> 00:17:12,970 olyan, mintha én, a Hello program am átadta néhány bemeneti ki, hogy egy függvény 381 00:17:12,970 --> 00:17:13,970 hogy valaki más írta. 382 00:17:13,970 --> 00:17:16,595 >> És ha, az ujjával, ténylegesen, az ujjával, 383 00:17:16,595 --> 00:17:21,520 rajzolni bármilyen ez akkor már átadta, 384 00:17:21,520 --> 00:17:27,465 A hatás végső soron az, hogy pontosan lássa, hogy a képernyőn. 385 00:17:27,465 --> 00:17:29,140 És egy kis sarok helyzet. 386 00:17:29,140 --> 00:17:31,540 És jó, nem szabad látni a, új vonal, ezen a ponton. 387 00:17:31,540 --> 00:17:33,900 Helytelen lenne az Ön számára hogy kifejezetten felhívja az új sor. 388 00:17:33,900 --> 00:17:36,810 De ha az írást szó a képernyőn, akkor a végén alá. 389 00:17:36,810 --> 00:17:39,560 >> Szóval nagyon köszönöm, de ragaszkodik itt csak egy pillanatra. 390 00:17:39,560 --> 00:17:42,860 Most kell egy másik önkéntes, ha tudnánk, 391 00:17:42,860 --> 00:17:46,830 hogy lesz szüksége, hogy játszani of-- Ez csak az emberek a zenekar 392 00:17:46,830 --> 00:17:47,355 most. 393 00:17:47,355 --> 00:17:47,980 Hogyan about-- OK. 394 00:17:47,980 --> 00:17:48,480 Pont itt. 395 00:17:48,480 --> 00:17:49,180 Gyere fel. 396 00:17:49,180 --> 00:17:49,955 Mi a neved? 397 00:17:49,955 --> 00:17:50,922 >> Diák 2: [? Ivay. ?] 398 00:17:50,922 --> 00:17:51,796 DAVID J MALAN: Sajnáljuk? 399 00:17:51,796 --> 00:17:52,990 Diák 2: [? Ivay. ?] 400 00:17:52,990 --> 00:17:55,320 DAVID J MALAN: Ethan, gyere fel. 401 00:17:55,320 --> 00:17:55,820 Nem? 402 00:17:55,820 --> 00:17:58,390 Kaptam, hogy rossz, akár Miután kétszer mondtam? 403 00:17:58,390 --> 00:17:58,890 Gyere fel. 404 00:17:58,890 --> 00:18:00,030 Nehéz hallani itt. 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 És sajnálom, hogy mi a neve? 408 00:18:07,190 --> 00:18:07,680 >> Diák 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 Mert most, ha nem szem előtt tartva, akkor getString. 411 00:18:10,430 --> 00:18:11,013 >> Diák 2: OK. 412 00:18:11,013 --> 00:18:11,797 Cool. 413 00:18:11,797 --> 00:18:14,630 DAVID J MALAN: Tehát, ha szeretné itt állni egy pillanatra, 414 00:18:14,630 --> 00:18:17,100 vessünk egy pillantást egy kicsit bonyolultabb programot, amely 415 00:18:17,100 --> 00:18:18,670 most három sornyi kódot. 416 00:18:18,670 --> 00:18:24,080 Tehát van egy, adja meg nevét használva printf; Két, a hívás getString, 417 00:18:24,080 --> 00:18:28,060 majd olyan feladat, hogy a nevű változó, s karakterlánc, vagy nevezzük s; 418 00:18:28,060 --> 00:18:31,260 majd egy másik hívás, printf, de ezúttal két bemenettel. 419 00:18:31,260 --> 00:18:33,646 >> Szóval ezt már megtettük állam Ön nevét, vagy inkább, most már 420 00:18:33,646 --> 00:18:34,770 Már eddig is printf hívást. 421 00:18:34,770 --> 00:18:38,960 Így fogok írni, be a nevét. 422 00:18:38,960 --> 00:18:42,089 És igen, milyen fogok át, printf, csak egy pillanatra, 423 00:18:42,089 --> 00:18:43,005 egészen egyszerűen, ez. 424 00:18:43,005 --> 00:18:47,760 Tehát ha azt szeretnénk, hogy menjen előre, és felhívni a A képernyőn, ez a bemeneti most. 425 00:18:47,760 --> 00:18:48,260 Minden rendben. 426 00:18:48,260 --> 00:18:51,160 És felejtsd húr, most már van saját kódsort itt. 427 00:18:51,160 --> 00:18:54,470 Tehát, getString van szükségünk hogy valóban hívja, getString. 428 00:18:54,470 --> 00:18:57,920 Tehát a célja az életben, hogy csak gyalog ki a zenekar, ha lehetne, 429 00:18:57,920 --> 00:18:58,980 és kap valaki nevét. 430 00:18:58,980 --> 00:19:00,860 De nézzük kapsz valamit tenni azt. 431 00:19:00,860 --> 00:19:02,908 Ha azt szeretnénk, hogy menjen előre, és kap egy string, 432 00:19:02,908 --> 00:19:05,241 valakit nevét, hogy darab papírt, ha lehetne. 433 00:19:05,241 --> 00:19:12,940 434 00:19:12,940 --> 00:19:13,530 >> Minden rendben. 435 00:19:13,530 --> 00:19:15,250 És majd meglátjuk, egy pillanat, akinek a nevét már kezd. 436 00:19:15,250 --> 00:19:17,630 Közben mi fogok készen, van egy üres 437 00:19:17,630 --> 00:19:21,340 Papír, amelyben, megyek tárolni bármilyen értéket 438 00:19:21,340 --> 00:19:25,752 az, hogy getString visszatér hozzám, Azt, hogy egy string változó nevű, s. 439 00:19:25,752 --> 00:19:26,252 Minden rendben. 440 00:19:26,252 --> 00:19:27,293 Szóval mi van itt? 441 00:19:27,293 --> 00:19:27,950 Nik. 442 00:19:27,950 --> 00:19:28,450 Minden rendben. 443 00:19:28,450 --> 00:19:30,910 Tehát van Nik nevét. 444 00:19:30,910 --> 00:19:33,750 Szóval ez az, amit szó szerint került vissza 445 00:19:33,750 --> 00:19:35,810 nekem, hogy úgy mondjam, a getString. 446 00:19:35,810 --> 00:19:38,720 >> Én, most megyek, végrehajtja a bal oldali 447 00:19:38,720 --> 00:19:43,440 e kifejezés, ahol egyszerűen másolja le, a mai célra, Nik. 448 00:19:43,440 --> 00:19:46,470 Tehát most, van egy változó nevezett, s, tárolására Nik nevét. 449 00:19:46,470 --> 00:19:49,520 Már átadta printf, a korábbi érvelést. 450 00:19:49,520 --> 00:19:52,800 De mi a harmadik és egyben utolsó sorban a kódot, én valójában a kezét printf 451 00:19:52,800 --> 00:19:58,500 egy kicsit different-- "hello,% s," backslash n. 452 00:19:58,500 --> 00:20:01,510 >> És így az utolsó sort fogok hogy send-- az utolsó dolog, én vagyok 453 00:20:01,510 --> 00:20:03,060 megy, hogy írja le őt, ez. 454 00:20:03,060 --> 00:20:06,310 Tehát a két sornyi kódot, vagy inkább az utolsó sorban a kód, 455 00:20:06,310 --> 00:20:10,690 kéri, hogy a két inputs-- egy, ez, és a két, ez. 456 00:20:10,690 --> 00:20:13,330 Tehát, ha a printf függvény Most ezeket a bemenet, 457 00:20:13,330 --> 00:20:16,000 hadd törölje a képernyőt az Ön számára. 458 00:20:16,000 --> 00:20:17,250 Igazából nem, akkor megy előre. 459 00:20:17,250 --> 00:20:19,333 Majd rá kellene bízni, hiszen ez ugyanazon a programot. 460 00:20:19,333 --> 00:20:21,760 461 00:20:21,760 --> 00:20:27,380 Meg kell látni, hello, Nik. 462 00:20:27,380 --> 00:20:27,880 Minden rendben. 463 00:20:27,880 --> 00:20:29,670 Szóval ez volt jó néhány karikán ugrik át, csak 464 00:20:29,670 --> 00:20:31,620 írni, közölje Íme, valamint, hello, Nik. 465 00:20:31,620 --> 00:20:37,210 De ez az egyszerű ötlet, üzenetekkel, A bemeneti és kimeneti tompított fogadó, 466 00:20:37,210 --> 00:20:40,430 Pontosan a modell fogunk van még a legbonyolultabb feladatokat. 467 00:20:40,430 --> 00:20:41,804 Szóval nagyon köszönöm mindkettőtöknek. 468 00:20:41,804 --> 00:20:43,730 Van egy szép stressz labda itt. 469 00:20:43,730 --> 00:20:48,890 És köszönöm, hogy mi getString és a printf önkéntesek számára egyaránt. 470 00:20:48,890 --> 00:20:49,551 Köszönöm. 471 00:20:49,551 --> 00:20:50,050 Minden rendben. 472 00:20:50,050 --> 00:20:50,966 Köszönöm mindkettőtöknek. 473 00:20:50,966 --> 00:20:56,640 474 00:20:56,640 --> 00:21:00,430 >> Így már beszélünk Eddig, főleg arról szálakat. 475 00:21:00,430 --> 00:21:06,550 És kiderül, hogy a C ténylegesen megérteni néhány különböző adattípusok. 476 00:21:06,550 --> 00:21:08,860 Tény, vessünk Nézd meg ezeket itt. 477 00:21:08,860 --> 00:21:12,490 Szóval C, és a sok nyelv, megérteni a dolgokat nevű karakter. 478 00:21:12,490 --> 00:21:16,852 A char általában egyetlen bájt, illetve nyolc bit. 479 00:21:16,852 --> 00:21:19,810 És ez jelenti egyetlen karakter, mint az A betű, vagy a fővárosban 480 00:21:19,810 --> 00:21:21,990 A betű, vagy a kisbetű Egy, vagy egy felkiáltójel, 481 00:21:21,990 --> 00:21:25,440 vagy bármely karaktert beírhatja a a billentyűzet, és néha még több. 482 00:21:25,440 --> 00:21:26,795 Azt is megtörténhet, hogy úszik a vízen. 483 00:21:26,795 --> 00:21:31,160 Az úszó, általában, egy 32-bites érték, vagy négy bájt 484 00:21:31,160 --> 00:21:33,660 mert megint egy bájt nyolc bit. 485 00:21:33,660 --> 00:21:36,675 >> Tehát egy úszó egy lebegőpontos értéket, valami egy tizedes pontossággal. 486 00:21:36,675 --> 00:21:38,550 És valóban, ez az, amit a film beszélt 487 00:21:38,550 --> 00:21:42,240 mikor beszéltek úszó pont értékeket, néhány rögzített számú bitet 488 00:21:42,240 --> 00:21:43,940 használják, hogy képviselje a valós szám. 489 00:21:43,940 --> 00:21:45,740 De van még dolgokat az úgynevezett páros. 490 00:21:45,740 --> 00:21:47,860 Ezek léteznek Java, Ha már vett APCS, 491 00:21:47,860 --> 00:21:51,540 és egy dupla, mint a neve is hálásan sugallja, kétszer olyan nagy, mint egy úszó. 492 00:21:51,540 --> 00:21:54,540 Ez még mindig egy valós szám, csak éppen több bitet 493 00:21:54,540 --> 00:21:58,390 amellyel lenni az egyre pontosabb, vagy tárolni, még nagyobb számban. 494 00:21:58,390 --> 00:21:58,890 int egyszerű. 495 00:21:58,890 --> 00:22:00,181 Beszéltünk arról, hogy utoljára. 496 00:22:00,181 --> 00:22:01,160 Ez csak egy szám. 497 00:22:01,160 --> 00:22:03,980 És ez általában 32 bit, vagy négy bájt. 498 00:22:03,980 --> 00:22:07,850 >> És igen, ha van, lássuk most, 32 bits-- és mi tette ezt a hét 0, 499 00:22:07,850 --> 00:22:10,820 még oly briefly-- ha 32 bit, mi a legnagyobb 500 00:22:10,820 --> 00:22:13,580 száma Be tudja képviselni egészként? 501 00:22:13,580 --> 00:22:16,080 Plusz-mínusz? 502 00:22:16,080 --> 00:22:18,380 Olyan ez, mint 4 milliárd, és ez csak akkor, ha mi vagyunk 503 00:22:18,380 --> 00:22:20,690 képviselő pozitív számok csak. 504 00:22:20,690 --> 00:22:23,930 Ha van 32 bit, és szeretne képviseli a negatív számokat is, 505 00:22:23,930 --> 00:22:27,100 A tartomány lényegében negatív 2 milliárd pozitív 2 milliárd. 506 00:22:27,100 --> 00:22:29,250 De általánosságban, elkezdünk 0 csomagnál akár 4 milliárd euróra. 507 00:22:29,250 --> 00:22:32,400 >> Nem kell tudni pontosan, de látjuk ezt, sőt, ha csak úgy 508 00:22:32,400 --> 00:22:36,400 nyit egy kis számológép, itt. 509 00:22:36,400 --> 00:22:41,070 Meg tudom csinálni 2 a 32, és a hogy pontosan mekkora, 510 00:22:41,070 --> 00:22:43,190 hány érték tudsz képviselnek, 32 bit. 511 00:22:43,190 --> 00:22:44,442 És ez nagyjából 4 milliárd. 512 00:22:44,442 --> 00:22:46,900 Szóval mi is látom, hogy számos néhány különböző helyeken. 513 00:22:46,900 --> 00:22:48,890 De ha kell többé számok, mint az, 514 00:22:48,890 --> 00:22:51,670 Kiderült, hogy a egy úgynevezett hosszú, hosszú. 515 00:22:51,670 --> 00:22:54,005 És hosszú ideig általában 64 bit, ami 516 00:22:54,005 --> 00:22:56,380 azt jelenti, hogy egy nagyságrenddel még nagyobb, mint egy int. 517 00:22:56,380 --> 00:22:59,510 >> Szóval én nem is kimondani a legnagyobb hívható képviseli, 518 00:22:59,510 --> 00:23:01,340 de ez jelentősen nagyobb. 519 00:23:01,340 --> 00:23:05,190 Most Mellesleg, történelmileg, ha egy int 32 bit, 520 00:23:05,190 --> 00:23:12,780 és egy hosszú, hosszú 64 bit, hogyan big egy hosszú, nem hosszú ideig? 521 00:23:12,780 --> 00:23:16,500 522 00:23:16,500 --> 00:23:20,330 Az ember azt hinné, hogy ez hosszabb, mint egy int de talán kevésbé hosszú, mint egy hosszú, hosszú, 523 00:23:20,330 --> 00:23:21,400 de valójában attól függ. 524 00:23:21,400 --> 00:23:23,400 >> És így kiderül, az egyik A frusztráció is, 525 00:23:23,400 --> 00:23:26,830 A kód írása egyes rendszerek, az, hogy nem az összes ilyen adat típusok 526 00:23:26,830 --> 00:23:28,440 van előre meghatározott értékeket. 527 00:23:28,440 --> 00:23:29,771 Néha ez a sok bit. 528 00:23:29,771 --> 00:23:31,020 Néha, hogy sok bitet. 529 00:23:31,020 --> 00:23:32,750 Szóval tényleg kell tudni, Néha, milyen hardver 530 00:23:32,750 --> 00:23:34,083 futsz a szoftvert. 531 00:23:34,083 --> 00:23:36,960 Szerencsére, más nyelvek és más adattípusok, hogy most létezik, 532 00:23:36,960 --> 00:23:38,400 lehetővé teszi, hogy pontosabban. 533 00:23:38,400 --> 00:23:41,220 Nos, láttuk, húr, és láttuk bool is 534 00:23:41,220 --> 00:23:43,960 de kiderült, azok jönnek csak a CS50 könyvtár. 535 00:23:43,960 --> 00:23:46,240 Tehát azok nem épülnek a C. Azok helyett, 536 00:23:46,240 --> 00:23:49,340 jönnek, hogy nevű fájlt CS50.h, hogy mi lesz végül 537 00:23:49,340 --> 00:23:51,831 húzza vissza a rétegek. 538 00:23:51,831 --> 00:23:53,830 De most, ők csak további adattípusok. 539 00:23:53,830 --> 00:23:57,060 A bool változó igaz vagy hamis, és egy string karakterek sorozata, 540 00:23:57,060 --> 00:23:57,970 mint egy szó. 541 00:23:57,970 --> 00:24:01,690 Most printf, láttunk, olyan helykitöltők,% s egyike. 542 00:24:01,690 --> 00:24:05,430 És lehet, hogy képes, hogy most, következtetni ezekből más példát, hogyan 543 00:24:05,430 --> 00:24:07,720 Önnek is van egy helykitöltő A különböző adattípusok. 544 00:24:07,720 --> 00:24:11,150 Például, akkor gondolom, ha akarta, hogy nyomtassa ki egyetlen karakter segítségével 545 00:24:11,150 --> 00:24:15,270 printf, a helykitöltő valószínűleg% c. 546 00:24:15,270 --> 00:24:19,650 És ha azt szeretnénk, hogy nyomtassa ki a integer a helykitöltő,% i. 547 00:24:19,650 --> 00:24:25,150 % lld egy hosszú, hosszú decimális értéket, de hosszú, hosszú, így a térképek, hogy az. 548 00:24:25,150 --> 00:24:28,640 Aztán% f úszó pont értéke, vagy egy dupla, 549 00:24:28,640 --> 00:24:31,270 így néha ők újra felhasználni a különböző kontextusokban. 550 00:24:31,270 --> 00:24:33,350 Szóval majd meglátjuk, és használja néhány ilyen idővel. 551 00:24:33,350 --> 00:24:36,420 És a printf és egyéb funkciók is támogassa mások escape szekvenciák, 552 00:24:36,420 --> 00:24:38,080 és néha, ezek szükségesek. 553 00:24:38,080 --> 00:24:39,770 Tehát backslash n egy új vonal. 554 00:24:39,770 --> 00:24:42,886 Backslash t, csinál akárki szeretnénk, hogy a stab? 555 00:24:42,886 --> 00:24:43,760 Közönség tagja: Tab. 556 00:24:43,760 --> 00:24:44,551 DAVID J MALAN: Tab. 557 00:24:44,551 --> 00:24:46,810 Tehát, ha tényleg akar egy kinyomtatott lapot, nem 558 00:24:46,810 --> 00:24:49,940 fix számú terek, hanem egy tényleges tabulátorkarakter, nem találsz meg, 559 00:24:49,940 --> 00:24:53,490 lapon gombot a billentyűzeten, általában, Ön ténylegesen backslash t. 560 00:24:53,490 --> 00:24:57,750 Backslash idézőjel, miért kellett volna valaha szeretné, hogy? 561 00:24:57,750 --> 00:24:58,250 Jobb? 562 00:24:58,250 --> 00:25:00,417 Miért nem tudok csak írja idézőjel a billentyűzetem? 563 00:25:00,417 --> 00:25:02,124 Közönség tagja: Mert, különben ez 564 00:25:02,124 --> 00:25:04,830 fogja gondolni, hogy itt a vége Az tetszik a nyomtatás [? szöveget. ?] 565 00:25:04,830 --> 00:25:05,420 >> DAVID J MALAN: Pontosan. 566 00:25:05,420 --> 00:25:07,211 Ne feledje, a mi printf példák, amikor 567 00:25:07,211 --> 00:25:10,075 Teltek a printf input, bal oldalán, hogy a bemeneti karakterlánc 568 00:25:10,075 --> 00:25:12,950 és a jobb oldalon, hogy a bemeneti tavasz, persze, volt idézőjel. 569 00:25:12,950 --> 00:25:16,270 Ha a saját bemeneti kettős idézet a közepén, hogy 570 00:25:16,270 --> 00:25:18,920 A számítógép potenciálisan összezavarodnak, hogy, 571 00:25:18,920 --> 00:25:20,760 Teszi ezt idézőjel tartoznak a közepén? 572 00:25:20,760 --> 00:25:22,150 Vajon tartoznak a balt? 573 00:25:22,150 --> 00:25:23,566 Vajon tartozol az igazit? 574 00:25:23,566 --> 00:25:26,780 És igen, ha azt szeretné, hogy ez szuper tiszta, akkor backslash idézőjel, 575 00:25:26,780 --> 00:25:30,480 úgy, hogy megszökött, hogy úgy mondjam, és ez nem keveri valami mást. 576 00:25:30,480 --> 00:25:34,400 És van még néhány más itt, backslash r, szimpla idézőjelet, 0, 577 00:25:34,400 --> 00:25:36,510 hogy lássuk idővel is. 578 00:25:36,510 --> 00:25:37,760 És most, mi a helyzet a funkciókat? 579 00:25:37,760 --> 00:25:41,630 >> Tehát akciók hogy ki tudjuk venni az eddig ezen a nyelven, C, illetve, láttunk, 580 00:25:41,630 --> 00:25:44,320 printf, természetesen, és minden a többiek a képernyőn, 581 00:25:44,320 --> 00:25:47,140 Itt, hogy fel fogjuk használni a Természetesen az első néhány hét csak, 582 00:25:47,140 --> 00:25:48,485 jönnek, amikor a CS50 könyvtár. 583 00:25:48,485 --> 00:25:51,850 És, hogy sokkal könnyebb, a C, hogy valóban kap felhasználótól. 584 00:25:51,850 --> 00:25:54,200 Kiderül, hogy a C-ben őszintén szólva néhány nyelven, 585 00:25:54,200 --> 00:25:57,450 ez egy igazi fájdalom a nyak, hogy nem valami egyszerű, mint figyelmezteti a felhasználót 586 00:25:57,450 --> 00:26:01,310 A billentyűzet, vagy őt bemenet. 587 00:26:01,310 --> 00:26:03,240 És így ezek a funkciók megkönnyítik. 588 00:26:03,240 --> 00:26:05,472 >> És ez is hiba ellenőrzése során, 589 00:26:05,472 --> 00:26:07,180 így, amikor felidézni szerdán, mi 590 00:26:07,180 --> 00:26:09,740 látta, hogy a, próbálja újra, figyelmeztetés, amikor nem működött együtt, 591 00:26:09,740 --> 00:26:11,700 és beírtam egy szót, egy szám helyett? 592 00:26:11,700 --> 00:26:15,402 Megtettük a nehéz korai A ellenőrizze, hogy a felhasználó együttműködik. 593 00:26:15,402 --> 00:26:17,860 De ezek csak a képzés kerekek, hogy előbb-utóbb, 594 00:26:17,860 --> 00:26:19,640 és gyorsan, vegye le. 595 00:26:19,640 --> 00:26:22,630 >> Tehát, hogy újra bedugni, majd, vessünk egy gyors pillantást, 596 00:26:22,630 --> 00:26:26,620 ugyanúgy, mint tettük Scratch, a Néhány kanonikus konstrukciókat C. 597 00:26:26,620 --> 00:26:28,580 Ez azt jelentette, hogy, egyfajta Az, hogy egy forgószél túra, 598 00:26:28,580 --> 00:26:30,990 Csak úgy, hogy a referencia- és hogy láttad a dolgokat az elején. 599 00:26:30,990 --> 00:26:34,100 De aztán megnézzük, tényleges kódolás Bizonyos ezekből az építőelemekből. 600 00:26:34,100 --> 00:26:36,710 Annyira, mint a Scratch, Mikor pedig nyilatkozatok, mint, 601 00:26:36,710 --> 00:26:41,570 mondjuk, vagy várjon, a C, mi kell funkciókat is, mint a printf. 602 00:26:41,570 --> 00:26:45,350 >> Ha azt akarjuk kifejezni feltétele C, ez hasonlít, a lélekben, 603 00:26:45,350 --> 00:26:47,840 E puzzle darab, így nézett ki a semmiből. 604 00:26:47,840 --> 00:26:49,850 De ahelyett, mi Szó szerint csak írni, ha. 605 00:26:49,850 --> 00:26:51,830 És akkor, zárójelben, teszünk egy állapot, 606 00:26:51,830 --> 00:26:54,807 Ahol ez a feltétel, amit mindjárt hívja, megint egy logikai kifejezés. 607 00:26:54,807 --> 00:26:56,390 És újra, ez a fajta pszeudokódja. 608 00:26:56,390 --> 00:26:58,830 És valóban, a // egy megjegyzést. 609 00:26:58,830 --> 00:27:00,550 Ez csak angol szavakat magamnak. 610 00:27:00,550 --> 00:27:03,000 De ez az általános szerkezet egy, ha, állapot. 611 00:27:03,000 --> 00:27:05,220 De majd meglátjuk konkrét példák csak egy pillanatra. 612 00:27:05,220 --> 00:27:07,960 >> Ha azt szeretnénk, hogy egy kétirányú villát a közúti, 613 00:27:07,960 --> 00:27:11,740 ugyanúgy, mint mi a mi önkéntesként Szerda, akkor van egy, még ha. 614 00:27:11,740 --> 00:27:16,020 És ha azt szeretnénk, hogy egy harmadik és végleges állapot, vagy az alapértelmezett helyzet, 615 00:27:16,020 --> 00:27:19,006 akkor már csak egy más blokk van. 616 00:27:19,006 --> 00:27:21,880 És hasonlóan, a logikai kifejezések, tudsz, és össze őket. 617 00:27:21,880 --> 00:27:24,296 És láttuk szerdán, hogy ez nem egy jelet, 618 00:27:24,296 --> 00:27:28,220 ez a két, az alacsonyabb szintű oka annak, hogy akkor előbb-utóbb látni és játszani. 619 00:27:28,220 --> 00:27:30,410 Vagy-nek a dolgokat együtt 2 függőleges vonalak. 620 00:27:30,410 --> 00:27:32,240 A US billentyűzet, ennek általában egy kulcsfontosságú 621 00:27:32,240 --> 00:27:35,730 A Shift billentyű felett Ön Enter billentyűt, vagy a Return gombot. 622 00:27:35,730 --> 00:27:38,620 >> Aztán ott van ezeket a dolgokat, hogy fogjuk használni, talán egyszer vagy kétszer. 623 00:27:38,620 --> 00:27:42,570 Ezek funkcionálisan egyenértékű mit lehet csinálni egy adott, else if, 624 00:27:42,570 --> 00:27:44,950 else if mást, konstrukció, de ők hívják egy kapcsolót. 625 00:27:44,950 --> 00:27:48,020 Úgy néznek ki, nagyon különböző, de majd látni néhány disztribúciós kódot, 626 00:27:48,020 --> 00:27:51,890 a jövőbeni problémát sor, a legvalószínűbb, hogy néha csak egy csinosabb 627 00:27:51,890 --> 00:27:54,060 kifejezési módja egy egész csomó feltételeket, 628 00:27:54,060 --> 00:27:57,590 anélkül, hogy sok kapcsoszárójele és Sok zárójelben és behúzás. 629 00:27:57,590 --> 00:28:01,910 De nekünk nem több teljesítmény, mint ami van. 630 00:28:01,910 --> 00:28:02,550 És most hurkok. 631 00:28:02,550 --> 00:28:05,020 És ez, akkor nézd egy kicsit lassabban. 632 00:28:05,020 --> 00:28:08,470 De aztán, elkezdünk használni ezeket, különösen azok számára már ismerős. 633 00:28:08,470 --> 00:28:13,830 Ez a kanonikus módon, ha hihetetlenül misztikus módon, hogy írjon egy hurok C. 634 00:28:13,830 --> 00:28:15,896 >> Most egy hurkot Scratch volt elég egyértelmű. 635 00:28:15,896 --> 00:28:17,020 Van egy, örökre, blokk. 636 00:28:17,020 --> 00:28:19,760 Van egy, ismétlés, blokk csak egy szám van, hogy írja be. 637 00:28:19,760 --> 00:28:22,220 És az, a hurok, akkor végre mind az ilyen ötletek, 638 00:28:22,220 --> 00:28:23,595 de ez egy kicsit több technikai. 639 00:28:23,595 --> 00:28:25,994 De őszintén szólva, ez is viszonylag egyszerű. 640 00:28:25,994 --> 00:28:28,160 Ha már tudja a sorrendben műveleteket, akkor szó 641 00:28:28,160 --> 00:28:30,910 csak fogja, hogy csatlakoztassa értékek és mondd el a számítógépet, mit kell tennie. 642 00:28:30,910 --> 00:28:32,800 Tehát itt egy példa. 643 00:28:32,800 --> 00:28:38,040 Ez egy ciklus, ami meglehetősen Egyszerűen, számít az egyik számot fel 644 00:28:38,040 --> 00:28:40,187 keresztül egy másik. 645 00:28:40,187 --> 00:28:42,020 És csak ránézve rajta, akkor is, ha 646 00:28:42,020 --> 00:28:44,660 nem korábbi tapasztalatok ezt a nyelvet, milyen szám 647 00:28:44,660 --> 00:28:46,920 nem is valószínűleg kezdeni a számlálást? 648 00:28:46,920 --> 00:28:47,730 OK, 0. 649 00:28:47,730 --> 00:28:50,240 És biztos vagyok benne, hogy azért van, mert látom, hogy van egy int és egy i, 650 00:28:50,240 --> 00:28:51,073 mely változó. 651 00:28:51,073 --> 00:28:52,390 Ez kap kezdetben 0. 652 00:28:52,390 --> 00:28:55,670 >> Aztán később, úgy néz ki, mi elhaladó printf érték. 653 00:28:55,670 --> 00:28:58,000 És valóban, csináltam egy kis elírás itt. 654 00:28:58,000 --> 00:28:59,850 De ez könnyen meghatározni. 655 00:28:59,850 --> 00:29:02,390 Hadd tegyem hozzá, én itt. 656 00:29:02,390 --> 00:29:06,150 Most már printf lény telt, hogy helykitöltő értéket. 657 00:29:06,150 --> 00:29:08,299 És mi fog számítani, egészen? 658 00:29:08,299 --> 00:29:08,840 Közönség: 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 Tehát 50, első pillantásra úgy tűnik, igaza van. 663 00:29:13,340 --> 00:29:16,990 De, mint kiderült, lesz a feltétellel, hogy mi tartsa ellenőrzése. 664 00:29:16,990 --> 00:29:21,740 És mi fog megállni egyszer i már nem kevesebb, mint 50. 665 00:29:21,740 --> 00:29:24,920 Szóval ez a hurok, Fordítva is igaz: végre, mindaddig, amíg az i kisebb, mint 50. 666 00:29:24,920 --> 00:29:28,891 De amint válik 50, vagy 51, vagy ami még rosszabb, azt automatikusan leáll. 667 00:29:28,891 --> 00:29:29,390 Minden rendben. 668 00:29:29,390 --> 00:29:31,200 >> Tehát valójában mi történik itt? 669 00:29:31,200 --> 00:29:33,160 Szóval ez a rendje műveleteket a hurok. 670 00:29:33,160 --> 00:29:35,440 Az egyik, hogy van a úgynevezett elindulni. 671 00:29:35,440 --> 00:29:38,264 Ez a sárga kiemelte darab A kód végrehajtása az első, 672 00:29:38,264 --> 00:29:40,930 és ez azzal a következménnyel jár, hogy a per Szerda, akkor valószínűleg képzelni. 673 00:29:40,930 --> 00:29:45,500 Ez létrehoz egy változót, az i és üzletek, hogy a változó értéke 0. 674 00:29:45,500 --> 00:29:47,560 Tehát én 0 Ezen a ponton a történet. 675 00:29:47,560 --> 00:29:49,680 >> A következő dolog, történik, ebben a konstrukcióban, 676 00:29:49,680 --> 00:29:51,540 az, hogy a feltétel lesz jelölve. 677 00:29:51,540 --> 00:29:54,325 Szóval azonnal ellenőrizze, jelentése i kevesebb, mint 50? 678 00:29:54,325 --> 00:29:57,700 És persze, a válasz A most bizonyára igen. 679 00:29:57,700 --> 00:30:00,710 Igen, mert én 0, és ez biztosan kevesebb, mint 50. 680 00:30:00,710 --> 00:30:03,866 Akkor mi történik, hogy ez a vonal kód kerül végrehajtásra. 681 00:30:03,866 --> 00:30:06,740 És valóban, ha van többszörös kódsor azok kapcsos zárójelek 682 00:30:06,740 --> 00:30:09,020 mindannyian kivégeznek egyik a másik után. 683 00:30:09,020 --> 00:30:11,450 >> És a hatás itt, Úgy tűnik, hogy nyomtassa ki 684 00:30:11,450 --> 00:30:15,365 A szám i, ami megy 0, majd 1, majd 2. 685 00:30:15,365 --> 00:30:15,865 De miért? 686 00:30:15,865 --> 00:30:17,410 Miért tart kap növekszik? 687 00:30:17,410 --> 00:30:20,680 Nos, a negyedik dolog, Az történik, hogy ez a szintaktikai 688 00:30:20,680 --> 00:30:22,610 kerül végrehajtásra, miután a pontosvessző. 689 00:30:22,610 --> 00:30:27,506 i ++ egy rövidített módja mondván; hogy az i értékét, és adjunk hozzá 1-et; 690 00:30:27,506 --> 00:30:30,380 majd a következő alkalommal, add 1-et; és a következő alkalommal, 691 00:30:30,380 --> 00:30:31,330 adjunk hozzá 1 hozzá. 692 00:30:31,330 --> 00:30:33,640 >> Tehát, ha folyamatosan megy, mi fog történni 693 00:30:33,640 --> 00:30:35,890 következőt én nem fogok alaphelyzetbe i soha többé. 694 00:30:35,890 --> 00:30:38,290 Ha én tartott inicializálása i értéke 0, ez a példa 695 00:30:38,290 --> 00:30:41,110 Soha nem lesz vége, mert én azt felragasztva 0. 696 00:30:41,110 --> 00:30:43,870 De mi fog történni, hogy a feltétel ellenőrizni fogják, 697 00:30:43,870 --> 00:30:54,280 a sort, majd kivégeznek, Az i inkrementációval, 698 00:30:54,280 --> 00:30:56,970 állapotban ellenőrizni fogják, kód kerül végrehajtásra. 699 00:30:56,970 --> 00:30:59,790 És ez tartott kerékpáros újra, és újra, és újra, 700 00:30:59,790 --> 00:31:03,340 amíg én ++ indukál értéke 50. 701 00:31:03,340 --> 00:31:05,870 >> A feltétel, majd azt mondja, 50 kevesebb, mint 50? 702 00:31:05,870 --> 00:31:09,360 A válasz természetesen az, nincs, és így az egész kódot megáll végrehajtó. 703 00:31:09,360 --> 00:31:13,020 És ha több kódot a képernyőn lent, ez az, ami történik ezután. 704 00:31:13,020 --> 00:31:17,530 Ez kiugrik ilyen kapcsoszárójele és továbbra is nyomtatni több után. 705 00:31:17,530 --> 00:31:20,470 >> Tehát egy vicc most, foxtrot, hogy akkor talán most már értem. 706 00:31:20,470 --> 00:31:30,810 707 00:31:30,810 --> 00:31:31,560 Ez mindig vicces. 708 00:31:31,560 --> 00:31:34,110 Ez olyan, mint a nevetés fajta átszivárog, 709 00:31:34,110 --> 00:31:38,370 majd rájössz, hogy nem kellene nevetne humor, mint ez. 710 00:31:38,370 --> 00:31:41,160 De van néhány elvihető Itt, pedagógiailag is. 711 00:31:41,160 --> 00:31:43,577 Így kiderül, hogy én vagyok hiányzik egy darab a szintaxis, 712 00:31:43,577 --> 00:31:45,410 vagy foxtrot eltűnt egy darab szintaxis itt. 713 00:31:45,410 --> 00:31:48,076 Mi hiányzik, hogy már volt minden más Például, eddig? 714 00:31:48,076 --> 00:31:51,599 715 00:31:51,599 --> 00:31:53,390 Visszatérés, ott van, így ez valami más, 716 00:31:53,390 --> 00:31:54,440 hogy mi jön vissza, mielőtt hosszú. 717 00:31:54,440 --> 00:31:55,398 Mi hiányzik, igaz? 718 00:31:55,398 --> 00:31:55,908 Igen. 719 00:31:55,908 --> 00:31:58,150 >> Közönség tagja: A inicializálásánál [hallhatatlan]. 720 00:31:58,150 --> 00:31:58,470 >> DAVID J MALAN: OK. 721 00:31:58,470 --> 00:31:58,980 Szóval igen. 722 00:31:58,980 --> 00:32:03,210 Tehát tulajdonképpen ez is-- Nos, és gróf inicializálódik 723 00:32:03,210 --> 00:32:05,470 fölé, vagy inkább kijelentette fölé. 724 00:32:05,470 --> 00:32:06,960 Szóval ez egy másik módja, hogy. 725 00:32:06,960 --> 00:32:08,685 De nem egy sorban ez érvényes mégis. 726 00:32:08,685 --> 00:32:09,310 Mit szólnál itt? 727 00:32:09,310 --> 00:32:10,196 >> Közönség tagja: Vajon a kapcsos zárójelek? 728 00:32:10,196 --> 00:32:10,640 >> DAVID J MALAN: Igen. 729 00:32:10,640 --> 00:32:12,080 Tehát a kapcsos zárójelek hiányoznak. 730 00:32:12,080 --> 00:32:15,495 De ezt a kódot, úgy értem, hogy ez a hitel, valójában, szintaktikailag helyes. 731 00:32:15,495 --> 00:32:17,610 Kiderül, akkor nem szükség van a kapcsos zárójelek 732 00:32:17,610 --> 00:32:21,691 ha csak egy kódsort végre kívánja hajtani belsejében a hurok. 733 00:32:21,691 --> 00:32:24,190 Most mindig, az osztályban, és a Minden disztribúciós kódot, 734 00:32:24,190 --> 00:32:26,730 többek között a kapcsos zárójelek különben is, csak a jobb átláthatóság kedvéért. 735 00:32:26,730 --> 00:32:29,010 De észre, hogy a tankönyvekben és az online példákat, 736 00:32:29,010 --> 00:32:31,300 akkor nagyon jól látni göndör melles hiányzik valamikor. 737 00:32:31,300 --> 00:32:34,850 És ez rendben, ha az, amit még beljebb és tervezett 738 00:32:34,850 --> 00:32:38,650 mindössze egyetlen sor kódot, és nem több sornyi kódot, potenciálisan. 739 00:32:38,650 --> 00:32:39,150 Minden rendben. 740 00:32:39,150 --> 00:32:44,500 Így kapcsolódik a kérdés a pontatlanság, egy olyan kérdés, túlfolyó, 741 00:32:44,500 --> 00:32:48,560 abban az értelemben, hogy hasonlóan, nem egész számok vannak korlátok nekik 742 00:32:48,560 --> 00:32:49,970 mint lebegőpontos értékek? 743 00:32:49,970 --> 00:32:53,120 A világ egy lebegőpontos értékeket, csak akkor lehetünk olyan pontosak, 744 00:32:53,120 --> 00:32:55,710 ami után, néha Rossz dolgok történnek, 745 00:32:55,710 --> 00:32:57,760 és a programok is hibás, és a hiba. 746 00:32:57,760 --> 00:33:00,050 Most még egészek, akkor problémákba ütközött. 747 00:33:00,050 --> 00:33:03,820 Most egy egész szám nem rendelkezik tizedesvessző vagy számok után. 748 00:33:03,820 --> 00:33:07,130 Ez csak egy természetes szám, tipikusan. 749 00:33:07,130 --> 00:33:09,430 Szóval, mi romolhat el egy int? 750 00:33:09,430 --> 00:33:12,210 Ha én vagyok a int, hogy száma, mi baj? 751 00:33:12,210 --> 00:33:13,230 Úgy tűnik, sokkal egyszerűbb. 752 00:33:13,230 --> 00:33:13,873 Igen. 753 00:33:13,873 --> 00:33:16,240 >> Közönség tagja: Ha a szám lesz [hallhatatlan] 754 00:33:16,240 --> 00:33:17,073 >> DAVID J MALAN: Igen. 755 00:33:17,073 --> 00:33:20,820 Mi van, ha számít olyan nagy, hogy nem tudom kifejezni, hogy igazán nagy szám. 756 00:33:20,820 --> 00:33:21,320 Jobb? 757 00:33:21,320 --> 00:33:23,910 Egy bizonyos ponton, fogsz haladja meg a határokat 758 00:33:23,910 --> 00:33:27,077 Egy 32-bites érték, vagy egy 64-bites érték. 759 00:33:27,077 --> 00:33:29,410 Most megint, nem vagyok benne biztos, hogy kell mondani ezt a 64 bites értéket, 760 00:33:29,410 --> 00:33:32,230 de tudom, hogy egy 32 bites egész, A legnagyobb érték lehet, 761 00:33:32,230 --> 00:33:35,490 ha csak pozitív értékeket, nagyjából 4 milliárd. 762 00:33:35,490 --> 00:33:39,000 Tehát ha megpróbálom számít, hogy 5 milliárd, valami történni fog. 763 00:33:39,000 --> 00:33:41,050 De lássuk, mi, sőt, megtörténhet. 764 00:33:41,050 --> 00:33:44,570 A világon az egész túlcsordulás, ahol, bizonyos értelemben, 765 00:33:44,570 --> 00:33:48,270 ragadják el a terhelést egy egész, hogy mi történhet? 766 00:33:48,270 --> 00:33:51,190 >> Tehát itt egy bináris szám, ez egy primitivizmus 0. 767 00:33:51,190 --> 00:33:54,630 Ez mind 1-es, és a helyőrzők ott van hatásköre 2, 768 00:33:54,630 --> 00:33:55,980 így ez bináris. 769 00:33:55,980 --> 00:33:59,416 Tehát ezek a 8, 1 bit a képernyőn. 770 00:33:59,416 --> 00:34:01,290 És ha felidézni, vagy gyorsan csinálni a matek, 771 00:34:01,290 --> 00:34:06,074 milyen értéket képviselt Itt a nyolc 1 bit? 772 00:34:06,074 --> 00:34:06,950 255. 773 00:34:06,950 --> 00:34:09,260 És akkor is, ha nem volt egészen biztos abban, A matek, amit tehetünk, hogy ki. 774 00:34:09,260 --> 00:34:10,550 Vagy csak egyfajta Az ész rajta, 775 00:34:10,550 --> 00:34:12,633 várj egy percet, ha én vagyok amely 8 bites érték, 776 00:34:12,633 --> 00:34:17,750 és kaptam 256 lehetséges értékeit, de amelyek közül az első jelentése 0, 777 00:34:17,750 --> 00:34:19,909 Csak azt tudom, hogy a legnagyobb lesz 255, 778 00:34:19,909 --> 00:34:21,510 és ez az, amit ez az egyik lehet. 779 00:34:21,510 --> 00:34:26,060 >> Tegyük fel, hogy megpróbálok 1 hozzáadása ezt az értéket. 780 00:34:26,060 --> 00:34:28,750 Mit tennél évfolyamon iskolában, amikor hozzá egy 1, és 781 00:34:28,750 --> 00:34:31,139 nem igazán illik, mert akkor fel kell tüntetni az 1? 782 00:34:31,139 --> 00:34:34,380 Mi ez a szám megy válni, ha hozzá 1? 783 00:34:34,380 --> 00:34:37,030 Meg fog válni 0. 784 00:34:37,030 --> 00:34:37,530 Jobb? 785 00:34:37,530 --> 00:34:41,139 Mert ha már több bits-- és én próbálja, milyen, írja ki here-- 786 00:34:41,139 --> 00:34:44,710 ha több bitet, amit tehetett itt van hozzá a 1, 787 00:34:44,710 --> 00:34:47,370 és akkor lenne ez. 788 00:34:47,370 --> 00:34:48,739 Hoppá. 789 00:34:48,739 --> 00:34:52,250 Mi volna egy 1 bites egészen ide. 790 00:34:52,250 --> 00:34:55,530 >> De ha ez egy véges értéket, ez csak 8 bites, 791 00:34:55,530 --> 00:34:57,480 és ez az előre meghatározott a számítógép, 792 00:34:57,480 --> 00:34:59,370 hogy 1 gyakorlatilag nem létezik. 793 00:34:59,370 --> 00:35:00,980 Ez csak egyfajta lezuhan egy szikláról. 794 00:35:00,980 --> 00:35:05,480 És így, ha hozzá 1-255, mit értéke Mit láthatóan kap? 795 00:35:05,480 --> 00:35:06,180 0. 796 00:35:06,180 --> 00:35:09,700 És ezért a számok véletlenül, és talán akaratlanul, 797 00:35:09,700 --> 00:35:12,040 a végén körülveszik, mint ez. 798 00:35:12,040 --> 00:35:14,079 Szóval mi lehet a következménye ennek? 799 00:35:14,079 --> 00:35:15,620 Nos, van egy pár más dolgot. 800 00:35:15,620 --> 00:35:18,751 Tehát az egyik, hogy nem a végén keres mint 0, akaratlanul, 801 00:35:18,751 --> 00:35:20,750 de akkor milyen látni, még a való világban, 802 00:35:20,750 --> 00:35:23,416 jobb vagy rosszabb, megnyilvánulása ez a gondolat, hogy a határérték. 803 00:35:23,416 --> 00:35:26,630 Például valakinek, aki valaha játszott Lego Star Wars, 804 00:35:26,630 --> 00:35:28,880 Tudja valaki véletlenül, hogy a maximális számú érmékkel 805 00:35:28,880 --> 00:35:32,032 gyűjthetünk a Lego Star Wars? 806 00:35:32,032 --> 00:35:35,640 Akkor gondolom alapján mai vezető kérdések. 807 00:35:35,640 --> 00:35:39,140 Ez nagyobb, mint 256, vagy 255. 808 00:35:39,140 --> 00:35:40,330 Ez 4 milliárd. 809 00:35:40,330 --> 00:35:42,080 Így kiderül, és van valami people-- 810 00:35:42,080 --> 00:35:46,080 Néhány googling megerősítette a múlt night-- ütött 4 milliárd aranyat, 811 00:35:46,080 --> 00:35:47,730 vagy miegymás, a Lego Star Wars. 812 00:35:47,730 --> 00:35:49,860 Bár úgy tűnik, van olyan módon, hogy trükk a játék, 813 00:35:49,860 --> 00:35:53,222 van egy bug vagy szolgáltatás, amely lehetővé teszi, Csak gyűlnek sok-sok pont. 814 00:35:53,222 --> 00:35:54,930 De a lehető legnagyobb érték szerint 815 00:35:54,930 --> 00:35:58,360 hogy ez a képernyő lövés valaki azt megtalálható az interneten, valóban, 4 milliárd. 816 00:35:58,360 --> 00:35:59,240 >> Most miért van ez? 817 00:35:59,240 --> 00:36:03,040 Ez pontosan 4 milliárd, Valószínűleg azért, mert valaki úgy döntött, 818 00:36:03,040 --> 00:36:05,500 aki írásban ezt a játékot, hogy meg tudják csinálni 4000000000, 819 00:36:05,500 --> 00:36:07,340 valami, valami, valami, mint az érték tettem fel 820 00:36:07,340 --> 00:36:10,256 a számológép korábban, de ez csak egy kicsit tisztább az emberre 821 00:36:10,256 --> 00:36:12,610 azt a maximális számát A coins-- vagy csapok, 822 00:36:12,610 --> 00:36:14,860 ahogy hívják them-- hogy összegyűjti a 4 milliárd. 823 00:36:14,860 --> 00:36:16,290 És igen, mi ennek az oka? 824 00:36:16,290 --> 00:36:20,310 Hogy van a LEGO játék végrehajtása ellen 825 00:36:20,310 --> 00:36:23,420 ami nyomon követi a számú érme van? 826 00:36:23,420 --> 00:36:24,266 Ők a mi? 827 00:36:24,266 --> 00:36:26,390 Közönség tagja: Megállítja számolás után 4 milliárd. 828 00:36:26,390 --> 00:36:27,720 DAVID J MALAN: Megállítja számolás után 4 milliárd, 829 00:36:27,720 --> 00:36:29,525 ami azt jelenti, következtetni, mint programozó, 830 00:36:29,525 --> 00:36:31,960 hogy ők valószínűleg egy 32 bites egész. 831 00:36:31,960 --> 00:36:35,380 Mint a programozó szó szerint csak gépelt, int, a saját kódját, 832 00:36:35,380 --> 00:36:39,620 és ez a típusú változó, hogy ők használ tárolni valaki kódot. 833 00:36:39,620 --> 00:36:42,230 Szóval van más megnyilvánulásait Az ilyen jellegű korlátokat. 834 00:36:42,230 --> 00:36:45,063 >> Szóval én még nem játszottam ezt a game-- és olvastam fel a történelem 835 00:36:45,063 --> 00:36:48,470 hogy erősítse a much--, de a eredeti változata civilizáció, ahol 836 00:36:48,470 --> 00:36:53,240 Önnek nyilvánvalóan kölcsönhatásban vannak egymással Más és háborút, vagy a béke, 837 00:36:53,240 --> 00:36:56,590 Gandhi kellett volna, hogy az egyik legbékésebb karakter, mint én 838 00:36:56,590 --> 00:36:59,280 értem, az első változata civilizáció. 839 00:36:59,280 --> 00:37:03,250 És valóban, skálán 1-től 10, ő agresszivitás, mindössze 1. 840 00:37:03,250 --> 00:37:05,620 Tehát még oly szelíden agresszív, látszólag. 841 00:37:05,620 --> 00:37:11,590 >> De egy bizonyos ponton, akkor nyilvánvalóan telepítse a demokrácia a földrajz. 842 00:37:11,590 --> 00:37:14,900 És ha telepíti a demokrácia az Ön változata a játék, 843 00:37:14,900 --> 00:37:17,320 akkor a agresszió szintje lemegy. 844 00:37:17,320 --> 00:37:18,460 Ez egy jó dolog. 845 00:37:18,460 --> 00:37:20,890 Az emberek jobban nyugodt Úgy tűnik, ebben a helyzetben. 846 00:37:20,890 --> 00:37:23,190 De úgy tűnik, valaki nem nincs, ha állapota 847 00:37:23,190 --> 00:37:24,780 Az eredeti verzió a kód. 848 00:37:24,780 --> 00:37:30,650 >> Így Gandhi agresszió szintjét ment Pozitív 1, mínusz 2, a negatív 1, 849 00:37:30,650 --> 00:37:33,840 de a játék nem megérteni a negatív számok. 850 00:37:33,840 --> 00:37:38,680 Szóval az történt, Gandhi agresszió szinten ment 1, 0, a negatív 1, 851 00:37:38,680 --> 00:37:40,900 amelyek hatása az volt, körülveszik a lét 852 00:37:40,900 --> 00:37:44,690 A legagresszívebb karakter a játék, értékben 255, 853 00:37:44,690 --> 00:37:46,630 skálán 1-10. 854 00:37:46,630 --> 00:37:49,887 És azóta, ott volt több inkarnációja ezt a játékot, 855 00:37:49,887 --> 00:37:51,720 és már tartotta a egyfajta húsvéti tojás, 856 00:37:51,720 --> 00:37:53,870 Gandhi látszólag borzasztóan agresszív. 857 00:37:53,870 --> 00:37:56,740 De ez volt az eredménye, amely Nagyon egyszerű programozási hiba 858 00:37:56,740 --> 00:37:58,630 abban a nagyon korai változata a játék. 859 00:37:58,630 --> 00:38:02,860 >> Most több zavaróan, több Nemrég, a Boeing 787 860 00:38:02,860 --> 00:38:05,720 dokumentálták, mint aminek bug, nem az a fajta készülék 861 00:38:05,720 --> 00:38:07,340 Ön különösen szeretné, hogy egy hiba. 862 00:38:07,340 --> 00:38:10,130 És a tüneteket, hogy fogom olvasni Itt egy cikket az interneten, 863 00:38:10,130 --> 00:38:13,840 volt ez, a modell 787 repülőgép hogy már energiaellátása folyamatos 864 00:38:13,840 --> 00:38:18,030 248 nap elveszíthetik minden váltóáram, AC, 865 00:38:18,030 --> 00:38:20,850 elektromos miatt a generátor ellenőrző egységek, 866 00:38:20,850 --> 00:38:23,330 GCUs, egyidejűleg bemegy fail-safe mode. 867 00:38:23,330 --> 00:38:26,790 Tehát ez egy figyelmeztetés volt kiállított ha ez a probléma fedezték fel. 868 00:38:26,790 --> 00:38:28,750 Ez a feltétel az okozza egy szoftver ellen, 869 00:38:28,750 --> 00:38:32,230 belső a GCUs, így integer vagy változó, 870 00:38:32,230 --> 00:38:36,850 hogy túlcsordul után 248 Január folyamatos teljesítmény. 871 00:38:36,850 --> 00:38:40,350 Boeing a folyamat kialakítása GCU szoftverfrissítés, hogy 872 00:38:40,350 --> 00:38:42,350 fogja orvosolni veszélyes helyzet. 873 00:38:42,350 --> 00:38:44,226 >> Annyira, mint a rakéta forgatókönyv, azzal jellemezve, 874 00:38:44,226 --> 00:38:46,850 ők már valamilyen változó hogy számolta, és a számolás, 875 00:38:46,850 --> 00:38:50,720 és a számolás, de fokozatosan csordultig határait az a képessége, 876 00:38:50,720 --> 00:38:54,890 Hasonlóan tett a rohadt repülőgép van egy változó túlcsordulás 877 00:38:54,890 --> 00:38:56,410 Miután elég ideje fut. 878 00:38:56,410 --> 00:38:59,240 És így a nyelv-in-pofa módon A munka körül ezt a kérdést 879 00:38:59,240 --> 00:39:04,400 az, hogy valóban, reboot, a sík minden 247 nap, úgy, hogy a memória gets megtörölte 880 00:39:04,400 --> 00:39:06,100 és a változó visszatér 0. 881 00:39:06,100 --> 00:39:09,410 De ismerniük, ez egy nagyon nagy inkarnációja szoftver, 882 00:39:09,410 --> 00:39:14,070 de különösen a hallunk az Apple operációs rendszerek megy autók, 883 00:39:14,070 --> 00:39:18,030 és az önálló autóvezetés a Google, és a tetszőleges számú inkarnációja szoftver 884 00:39:18,030 --> 00:39:21,000 a mindennapi életünkben, TV-k és karórák, és több, 885 00:39:21,000 --> 00:39:24,950 észre vették körül szoftver, amelyek mindegyike írta nálunk, embereknél. 886 00:39:24,950 --> 00:39:28,150 >> És mivel mi minden hamarosan felfedezik, ez nagyon egyszerű és nagyon jellemző 887 00:39:28,150 --> 00:39:30,250 hibázni írásakor szoftver. 888 00:39:30,250 --> 00:39:32,745 És ha nem elkapni őket, néhány rossz dolgok történnek. 889 00:39:32,745 --> 00:39:35,400 Most néha, bizonyos vicces dolog történhet, 890 00:39:35,400 --> 00:39:38,280 vagy legalábbis néha tudni, hogy számíthat némi rosszaság. 891 00:39:38,280 --> 00:39:41,550 Szóval 0 osztva 0, évfolyamtól iskola, általában egy rossz dolog. 892 00:39:41,550 --> 00:39:43,050 Ez nem definiált. 893 00:39:43,050 --> 00:39:46,440 És kiderül out-- és lássuk, én mic vedd ezt up--, hogy az Apple 894 00:39:46,440 --> 00:39:47,790 Volt néhány fun ennek a közelmúltban. 895 00:39:47,790 --> 00:39:48,850 Szóval van egy iPhone itt. 896 00:39:48,850 --> 00:39:54,160 Én fogok beszélni, hogy Siri és megkérdezem hogy nekem a választ 0 osztva 0. 897 00:39:54,160 --> 00:39:55,850 Mit 0 osztva 0? 898 00:39:55,850 --> 00:39:59,350 899 00:39:59,350 --> 00:40:02,230 >> Siri: Képzeld el, hogy van 0 cookie-kat, és akkor szét egyenletesen 900 00:40:02,230 --> 00:40:03,540 között 0 ismerős. 901 00:40:03,540 --> 00:40:05,810 Hány cookie-k minden egyes ember kap? 902 00:40:05,810 --> 00:40:06,350 Látod? 903 00:40:06,350 --> 00:40:07,660 Ennek nincs értelme. 904 00:40:07,660 --> 00:40:10,540 És Cookie Monster szomorú hogy nincsenek cookie-kat. 905 00:40:10,540 --> 00:40:13,987 És szomorú, hogy nincsenek barátaid. 906 00:40:13,987 --> 00:40:15,570 DAVID J MALAN: Elég ellenszenves. 907 00:40:15,570 --> 00:40:17,550 Szóval ez az, amit éppen azt mondta, nem. 908 00:40:17,550 --> 00:40:21,380 Ez határozatlan, ez nem definiált, sőt, sok programozási nyelvek 909 00:40:21,380 --> 00:40:24,950 vagy, tényleg, a fordítóprogramok érzékeli, amikor, egy programot, 910 00:40:24,950 --> 00:40:27,050 próbálja osztani 0 0. 911 00:40:27,050 --> 00:40:29,830 Szórakoztatóbb, mint ez azonban az, hogy látszólag, Cookie Monster 912 00:40:29,830 --> 00:40:31,270 a Twitteren ezekben a napokban. 913 00:40:31,270 --> 00:40:37,610 És ő válaszolt erre, ezzel, ami teljesen imádnivaló. 914 00:40:37,610 --> 00:40:40,110 De vessünk egy gyors pillantást egy pár más konstrukciók, 915 00:40:40,110 --> 00:40:43,459 majd tegye néhány ilyen kódot kell használni, jó választás. 916 00:40:43,459 --> 00:40:45,250 Így kiderül, amellett, A hurkok, van 917 00:40:45,250 --> 00:40:49,174 egy úgynevezett while ciklus, hogy másképp néz ki, és végrehajtása 918 00:40:49,174 --> 00:40:51,590 egy kicsit differently-- és akkor előbb-utóbb látni examples-- 919 00:40:51,590 --> 00:40:53,500 de bizonyos értelemben, ez egyszerűbb, mert 920 00:40:53,500 --> 00:40:56,670 nem teszi lehetővé, hogy inicializálni és frissíteni határán belül a hurok. 921 00:40:56,670 --> 00:40:57,794 Továbbra is végrehajtja. 922 00:40:57,794 --> 00:41:01,219 Szóval lehet nem pontosan ugyanaz a dolog egy while ciklus, mint egy for ciklus, 923 00:41:01,219 --> 00:41:03,260 de a szintaxis, ultimately-- mint mi lesz végül 924 00:41:03,260 --> 00:41:04,551 see-- lesz más. 925 00:41:04,551 --> 00:41:07,450 Van még egy do while ciklus, amely valójában egy kicsit más, 926 00:41:07,450 --> 00:41:09,640 abban mivel egy for ciklus és egy while ciklus mindig 927 00:41:09,640 --> 00:41:13,005 állapotának ellenőrzésére az első, ha olvassa el ezt a dolgot, fentről lefelé, 928 00:41:13,005 --> 00:41:16,440 ez a fajta néz ki, hogy lesz ellenőrizze állapotát utolsó, mert ez 929 00:41:16,440 --> 00:41:17,910 valóban az utolsó sor kódot. 930 00:41:17,910 --> 00:41:20,580 És valóban, ez lesz hasznos Bizonyos programok írunk, 931 00:41:20,580 --> 00:41:23,746 Ha azt szeretnénk, hogy csak vakon tenni valamit és végül ellenőrizze az állapotot. 932 00:41:23,746 --> 00:41:25,205 Ez nem feltétlenül rossz dolog. 933 00:41:25,205 --> 00:41:27,912 Ha azt akarjuk, változók, amit tehetünk, ez egy pár különböző módon. 934 00:41:27,912 --> 00:41:30,290 És láttuk a foxtrot rajzfilm, ennek egyik módja, hogy, 935 00:41:30,290 --> 00:41:33,400 ahol állapítsa meg a változó, mint int számláló pontosvessző, 936 00:41:33,400 --> 00:41:36,570 majd later-- talán a következő vonal, talán 10 vonalak later-- 937 00:41:36,570 --> 00:41:37,800 hogy tényleg inicializálás. 938 00:41:37,800 --> 00:41:42,230 Tehát ezek a 2 sornyi kód Kijelentem, egy egész típusú változó 939 00:41:42,230 --> 00:41:44,930 és hívja meg a számláló, így ez ad nekem elég bit tart int. 940 00:41:44,930 --> 00:41:48,230 És akkor végül, hogy hozza A 0 érték a változónak. 941 00:41:48,230 --> 00:41:51,250 Ez rendezi a 0 és 1-es egy minta, hogy tudjuk, a múlt héten, 942 00:41:51,250 --> 00:41:53,260 számát jelenti ismerünk 0. 943 00:41:53,260 --> 00:41:56,920 Vagy őszintén, akkor ezt sokkal tömörebben, mint ez. 944 00:41:56,920 --> 00:41:59,390 >> Most mi is a képes meghívni. 945 00:41:59,390 --> 00:42:03,070 És valóban, itt egy 2 vonalon programot, vagy egy részlet cikkére, 946 00:42:03,070 --> 00:42:06,157 amely lehetővé teszi számunkra, hogy ténylegesen írni egy kódot, 947 00:42:06,157 --> 00:42:08,990 kap egy húr a user-- sokat mint mi önkéntes egy pillanatra ago-- 948 00:42:08,990 --> 00:42:11,320 tárolására az eredményt egy változó nevű nevet, 949 00:42:11,320 --> 00:42:15,470 és then-- ugyanúgy, mint mi önkéntes A printf-- kinyomtatja azokat az értékeket 950 00:42:15,470 --> 00:42:19,180 átadásával a két érv, a húr, majd a változó 951 00:42:19,180 --> 00:42:20,781 nevű, nevét, saját maga. 952 00:42:20,781 --> 00:42:23,155 Szóval vessünk egy pillantást, mielőtt Térjünk vissza Mario ott, 953 00:42:23,155 --> 00:42:26,010 egy pár most, példa erre. 954 00:42:26,010 --> 00:42:30,537 >> Megyek, hogy menjen előre és nyitott fel, mondjuk, a funkció-0.c. 955 00:42:30,537 --> 00:42:33,120 És mint mindig, ez a kód elérhető a tanfolyam honlapján, 956 00:42:33,120 --> 00:42:35,660 így játszhat mentén otthoni és később megnézem. 957 00:42:35,660 --> 00:42:40,400 De itt van a program, hogy ez Lényegében sorról 17-22. 958 00:42:40,400 --> 00:42:43,270 A fő program, ahol a program mindig fog kezdeni. 959 00:42:43,270 --> 00:42:46,980 Ez a program, úgy tűnik, megy hogy nyomtassa ki a nevét, a vastagbél. 960 00:42:46,980 --> 00:42:50,320 Ez akkor fog hívni getString, mint mi a mi önkéntesek. 961 00:42:50,320 --> 00:42:53,365 És akkor, ez érdekes, ez meg fog hívni PrintName. 962 00:42:53,365 --> 00:42:56,490 Kiderül, ennyi idő van Úgy tűnik, hogy a nevezett funkció PrintName. 963 00:42:56,490 --> 00:42:57,614 Amely kiírja valakinek a nevét. 964 00:42:57,614 --> 00:43:01,210 Nem kell használni a printf-re múlt, van PrintName. 965 00:43:01,210 --> 00:43:03,500 >> De ez félrevezető mert PrintName nem 966 00:43:03,500 --> 00:43:06,760 gyere C. emberek nem feltalálni mintegy 40 vagy 50 évvel ezelőtt, 967 00:43:06,760 --> 00:43:07,990 Tettem, helyette. 968 00:43:07,990 --> 00:43:10,330 És valóban, ha görgetni tovább részletezve, értesítés 969 00:43:10,330 --> 00:43:14,200 hogyan tudok írni a saját funkciók C. Majd végül 970 00:43:14,200 --> 00:43:16,319 megmagyarázni, miért mondogatom, void, néhány helyen, 971 00:43:16,319 --> 00:43:18,110 de ma, hadd Csak nézd meg a nevét. 972 00:43:18,110 --> 00:43:20,905 >> A 24. sor, ha azt szeretné, hogy létrehozhatunk saját funkciója, 973 00:43:20,905 --> 00:43:22,780 szó szerint írni a A függvény neve. 974 00:43:22,780 --> 00:43:24,340 Azért választottam PrintName. 975 00:43:24,340 --> 00:43:26,159 Zárójelben, akkor majd adja meg, milyen 976 00:43:26,159 --> 00:43:28,450 A bemenetek, és hány van szeretnénk ezt a funkciót, hogy. 977 00:43:28,450 --> 00:43:31,906 Ebben az esetben, azt akarom, hogy 1 nevű változó, nevet, 978 00:43:31,906 --> 00:43:34,030 és ez lesz a típusú, húr, így fog 979 00:43:34,030 --> 00:43:35,780 hogy néhány karaktersor. 980 00:43:35,780 --> 00:43:39,170 És akkor ez program-- ugyanúgy, mint a Scratch, 981 00:43:39,170 --> 00:43:42,590 Önnek egyedi puzzle pieces-- megy, hogy ez a szokás viselkedés. 982 00:43:42,590 --> 00:43:46,760 Meg fog hívni printf halad, hello, helyfoglaló, 983 00:43:46,760 --> 00:43:49,110 majd ez lesz dugó bármilyen a felhasználó neve. 984 00:43:49,110 --> 00:43:51,450 >> Tehát ez egy példa, amit egy számítógép tudós lenne 985 00:43:51,450 --> 00:43:55,090 Hívás kivétele, illetve a funkcionális bomlás, melyek csak 986 00:43:55,090 --> 00:43:58,110 divatos módon saying--, ha tetszik ez a magas szintű elképzelést, 987 00:43:58,110 --> 00:44:01,569 mint szeretnék funkcionalitás kiírja valakinek a nevét, akkor feltétlenül 988 00:44:01,569 --> 00:44:04,360 szó levelet printf majd át az érveket akarsz, 989 00:44:04,360 --> 00:44:07,340 és a program működni fog, hiszen szerda óta. 990 00:44:07,340 --> 00:44:10,510 De meg lehet kezdeni elvonatkoztatni fogalmát nyomtatás egy nevet. 991 00:44:10,510 --> 00:44:13,270 Akkor adja meg a nevét, mint PrintName, és ez a 992 00:44:13,270 --> 00:44:15,280 Ez a gondolat a rétegződés hétről 0. 993 00:44:15,280 --> 00:44:19,910 >> Ezentúl, I. és akkor nem kell tudni vagy érdekel, hogy PrintName végrehajtását. 994 00:44:19,910 --> 00:44:22,470 Igen használja printf, talán nem, ki tudja, mit használ? 995 00:44:22,470 --> 00:44:23,410 Kit érdekel? 996 00:44:23,410 --> 00:44:26,034 Most én beszélek itt, ahelyett, hogy itt lent. 997 00:44:26,034 --> 00:44:28,700 És valóban, mint a mi programok kap fejlettebb és kifinomultabb, 998 00:44:28,700 --> 00:44:32,550 fogunk tartani vesz készpénznek hogy az alacsonyabb szintű kirakós darab létezik. 999 00:44:32,550 --> 00:44:34,780 Mert írta őket vagy valaki más tette, így 1000 00:44:34,780 --> 00:44:36,910 hogy tudunk majd építeni a tetejükön. 1001 00:44:36,910 --> 00:44:39,430 Vessünk egy pillantást erre variáns, működik az egyik. 1002 00:44:39,430 --> 00:44:41,780 >> Tehát ez az ember egy kicsit többet Részletes, de kiderült, 1003 00:44:41,780 --> 00:44:44,570 hogy CS50 könyvtárában, már csak egy GetInt funkciót. 1004 00:44:44,570 --> 00:44:47,720 Nem hiszem, évekkel ezelőtt, hogy végre egy GetPositiveInt funkciót. 1005 00:44:47,720 --> 00:44:50,970 És ez egy kicsit bosszantó, mert ha srácok írunk egy programot, amelyben 1006 00:44:50,970 --> 00:44:53,325 azt akarjuk, hogy a pozitív egész szám a felhasználó, 1007 00:44:53,325 --> 00:44:55,010 akkor teljesen használni GetInt. 1008 00:44:55,010 --> 00:44:57,840 És akkor teljesen ellenőrizze Az állapot és talán egy hurok 1009 00:44:57,840 --> 00:45:00,320 ha ez int nagyobb 0-nál, és kiabálni a felhasználó 1010 00:45:00,320 --> 00:45:02,699 ha ő nem ad Ön pozitív szám. 1011 00:45:02,699 --> 00:45:04,740 De építsetek építőkocka magunkat, egy, 1012 00:45:04,740 --> 00:45:06,555 Egyéni Scratch darab, ha úgy tetszik. 1013 00:45:06,555 --> 00:45:08,680 Megyek, hogy a program Itt, hogy végül én 1014 00:45:08,680 --> 00:45:11,780 azt szeretném tudni, hogy hívja GetPositiveInt, és azt akarom, hogy 1015 00:45:11,780 --> 00:45:14,200 kinyomtathatja bármit is int. 1016 00:45:14,200 --> 00:45:16,240 De ez kiveszik el most. 1017 00:45:16,240 --> 00:45:19,050 Ez csak kapott egy magas szintű név, amely azt mondja, hogy mit csinál, 1018 00:45:19,050 --> 00:45:21,780 ami csodálatos, mert nagyon intuitív most olvasni. 1019 00:45:21,780 --> 00:45:24,710 És ha mégis érdekel, mi van alatta A motorháztető, hadd lépjünk le. 1020 00:45:24,710 --> 00:45:27,140 És ez egy kicsit ijesztő Eleinte, főként 1021 00:45:27,140 --> 00:45:29,470 ha ez az első program, de vessünk egy pillantást. 1022 00:45:29,470 --> 00:45:32,860 >> Én már nem azt mondja, üres, mert kiderül, funkciók, 1023 00:45:32,860 --> 00:45:34,777 hasonlóan getString, lehet visszatérési értéke számomra. 1024 00:45:34,777 --> 00:45:36,610 Nem csak azt, nyomtatni a képernyőn, 1025 00:45:36,610 --> 00:45:38,410 tudják ténylegesen átadja nekem valamit. 1026 00:45:38,410 --> 00:45:41,535 És míg korábban PrintName, Nem kell semmit vissza. 1027 00:45:41,535 --> 00:45:44,160 Kellett a mellékhatása valami felbukkan a képernyőn, 1028 00:45:44,160 --> 00:45:46,570 de nem kell egy emberi hogy adja át nekem valamit. 1029 00:45:46,570 --> 00:45:48,840 Itt, a GetPositiveInt, mint a GetInt, 1030 00:45:48,840 --> 00:45:50,640 Szeretnék adni valamit vissza. 1031 00:45:50,640 --> 00:45:53,220 Szóval azt mondom, nem, semmis, on line 23, de int, 1032 00:45:53,220 --> 00:45:55,570 amely azt mondja, ez a funkció hogy írok, 1033 00:45:55,570 --> 00:45:58,860 nevű GetPositiveInt fog adja vissza az egész, nem semmi, 1034 00:45:58,860 --> 00:45:59,890 Nem semmis. 1035 00:45:59,890 --> 00:46:03,280 >> Közben ez lesz, hogy nem tesznek bemenetek, úgyhogy, fajta, megfordította. 1036 00:46:03,280 --> 00:46:08,280 Nem adom GetPositiveInt semmilyen bemenet, azt akarom, hogy adjon nekem termelését. 1037 00:46:08,280 --> 00:46:09,800 És akkor most mi lesz? 1038 00:46:09,800 --> 00:46:11,640 Tehát itt van, hogyan tudom, hogy egy változót. 1039 00:46:11,640 --> 00:46:15,090 Megcsináltam kívül a hurok, okokból fogunk végül látni, 1040 00:46:15,090 --> 00:46:17,700 de ez csak ad nekem 32 bit nevű, n, 1041 00:46:17,700 --> 00:46:20,952 és én már előre meghatározó őket tárolni egész. 1042 00:46:20,952 --> 00:46:23,660 És itt van, hogy nem, miközben konstrukció, és ez az oka, hogy hasznos. 1043 00:46:23,660 --> 00:46:26,700 Szó Ehhez míg n értéke kisebb, mint 1. 1044 00:46:26,700 --> 00:46:28,030 Nézzük, mi történik. 1045 00:46:28,030 --> 00:46:30,760 Azt ki kell nyomtatni, kérjük adj egy pozitív int. 1046 00:46:30,760 --> 00:46:34,300 Aztán kap egy int, a CS50 a működni és tárolni n. 1047 00:46:34,300 --> 00:46:38,990 >> És akkor mi kódsort valószínűleg kerül végrehajtásra, a következő, logikus? 1048 00:46:38,990 --> 00:46:41,890 Melyik sor száma? 1049 00:46:41,890 --> 00:46:42,571 Igen, 31. 1050 00:46:42,571 --> 00:46:45,320 Nem tudod ezt, amíg meg nem azt mondták, vagy valami következtetni rá, 1051 00:46:45,320 --> 00:46:45,986 de ez igaz. 1052 00:46:45,986 --> 00:46:48,280 Magától fentről lefelé majd ismétlődik. 1053 00:46:48,280 --> 00:46:55,840 Tehát ha én beírtam mondjuk száma Negatív 1, n-nél kisebb negatív 1? 1054 00:46:55,840 --> 00:46:56,340 Igen. 1055 00:46:56,340 --> 00:46:58,470 Mivel a negatív 1 kisebb, mint 1. 1056 00:46:58,470 --> 00:46:59,510 Szóval, mi történjen? 1057 00:46:59,510 --> 00:47:03,260 Megyek, hogy ezt míg n értéke kisebb, mint 1, 1058 00:47:03,260 --> 00:47:05,760 így fogok visszamenni 28. sor. 1059 00:47:05,760 --> 00:47:09,530 >> És minden egyes time-- és Fussunk this-- hogy a funkció 1 lefordítani, 1060 00:47:09,530 --> 00:47:11,340 és most pont perjel funkció 1. 1061 00:47:11,340 --> 00:47:14,280 Ha I. típusú negatív 1, ez fog tartani kiabáljon velem 1062 00:47:14,280 --> 00:47:17,530 amíg együttműködni, mert egyes én bemenetek kevesebb, mint 1 1063 00:47:17,530 --> 00:47:20,070 és ha ez míg kevesebb, mint 1, Megyek csinálom ezt. 1064 00:47:20,070 --> 00:47:24,240 Ha végül, hogy ez egy több, mint 50, Szerencsére, azt mondja, köszi a 50. 1065 00:47:24,240 --> 00:47:24,970 Miért? 1066 00:47:24,970 --> 00:47:30,640 Mert amint n értéke nem kevesebb, mint 1, abbahagyom elakadás a hurok, 1067 00:47:30,640 --> 00:47:33,840 és ez az új kulcsszó ma, Cserébe szó csinálja. 1068 00:47:33,840 --> 00:47:36,800 Szóval már csak végre, egy értelme, ami megegyezik az getString, 1069 00:47:36,800 --> 00:47:40,590 ahol én átadta vissza Aki használja velem, valamilyen értéket. 1070 00:47:40,590 --> 00:47:42,820 Nem kell, hogy egy string, ez egy int. 1071 00:47:42,820 --> 00:47:44,990 Tehát egy egyszerű, gyors Például, de hamarosan 1072 00:47:44,990 --> 00:47:47,930 látni néhány kifinomultabb verziói még. 1073 00:47:47,930 --> 00:47:53,882 Tény, vessünk egy pillantást a numerikusnál, amely az úgynevezett return.c. 1074 00:47:53,882 --> 00:47:55,590 És ez tulajdonképpen egy kicsit egyszerűbb. 1075 00:47:55,590 --> 00:47:59,010 Szóval ez a program célja a life-- nézzük lefordítani és futtatni, 1076 00:47:59,010 --> 00:48:03,090 így a visszatérést, pont perjel, return-- nyilatkozat 1077 00:48:03,090 --> 00:48:05,530 A program egyszerűen kockák értéke 2. 1078 00:48:05,530 --> 00:48:08,410 Ez elég hülye, nehéz kód, nem veszi-e alapanyagot, 1079 00:48:08,410 --> 00:48:12,220 de ez nem bizonyítja egy másik funkciót, hogy én írtam magamnak. 1080 00:48:12,220 --> 00:48:15,760 Tehát itt, amit nyilvánították változó, úgynevezett x, int típusú, 1081 00:48:15,760 --> 00:48:17,840 egyenlő a szám 2, teljesen önkényes. 1082 00:48:17,840 --> 00:48:19,530 Ez csak néhány bolyhos nyomtatást. 1083 00:48:19,530 --> 00:48:23,070 Azt mondja x ma már, mint és Ilyen, kocka dot dot dot. 1084 00:48:23,070 --> 00:48:26,390 És a varázslat nyilvánvalóan összhangban 21. 1085 00:48:26,390 --> 00:48:30,120 Hívom olyan függvény, kocka, Én lerakom egy papírlap 1086 00:48:30,120 --> 00:48:32,890 A 2-es szám van ráírva, és milyen értéket, matematikailag, 1087 00:48:32,890 --> 00:48:34,860 akarok kijutni belőle? 1088 00:48:34,860 --> 00:48:36,570 Csakúgy, mint egy józan ellenőrzés? 1089 00:48:36,570 --> 00:48:37,070 8. 1090 00:48:37,070 --> 00:48:37,570 Jobb? 1091 00:48:37,570 --> 00:48:40,160 Azt akarom 2 kockára vágott vissza, 2 A hatalom a 3, így 8 vissza. 1092 00:48:40,160 --> 00:48:42,570 >> Szóval, ha van kockát végrehajtani? 1093 00:48:42,570 --> 00:48:44,349 Nos, észre, hogy ez végre itt lent. 1094 00:48:44,349 --> 00:48:47,140 És csakúgy, mint korábban, logikusan, bár a szintaxis valószínűleg 1095 00:48:47,140 --> 00:48:49,320 nagyon új sokan közületek, Azt akarom, hogy ez a funkció 1096 00:48:49,320 --> 00:48:51,780 hogy adja vissza a lap papírok int rajta. 1097 00:48:51,780 --> 00:48:53,990 Szóval van egy int, a név önkényesen, 1098 00:48:53,990 --> 00:48:55,530 de kényelmesen nevű kocka. 1099 00:48:55,530 --> 00:48:58,430 A bemeneti rá, az n Integer, szóval 1100 00:48:58,430 --> 00:49:00,800 hogyan tudom át a számot 2. egy papírlapra. 1101 00:49:00,800 --> 00:49:03,910 És akkor kiderül, C tartók matematika, így nem kell x-for-szer, 1102 00:49:03,910 --> 00:49:06,680 csak használja a csillag szorzás. 1103 00:49:06,680 --> 00:49:11,070 És ez adja vissza n-szer n-szer N, amely egyszerűen egy kockára vágott érték. 1104 00:49:11,070 --> 00:49:12,840 >> Szóval hová megyünk mindezt? 1105 00:49:12,840 --> 00:49:14,570 Ez határozottan egy forgószél túra, megnyugodhat, 1106 00:49:14,570 --> 00:49:16,410 hogy a szuper szakaszok és a probléma készlet 1, 1107 00:49:16,410 --> 00:49:18,368 leszel végigsétált mindez még inkább. 1108 00:49:18,368 --> 00:49:22,490 És a probléma készlet 1, akkor átmenet A grafikus világában Scratch 1109 00:49:22,490 --> 00:49:25,640 hogy valami parancssori C. De majd inspirációt 1110 00:49:25,640 --> 00:49:27,680 ebből van a játék re tavalyi, ahol 1111 00:49:27,680 --> 00:49:31,591 a C és a standard kiadás a o set akkor végre Mario piramis. 1112 00:49:31,591 --> 00:49:34,340 És a hacker kiadás a p készlet, ha úgy döntenek, hogy megválasszák, 1113 00:49:34,340 --> 00:49:38,280 akkor végre egy kicsit kihívást piramis két csúcs. 1114 00:49:38,280 --> 00:49:41,239 Azt is hajt végre, algoritmust, mohó algoritmussal. 1115 00:49:41,239 --> 00:49:43,030 Kiderült, hogy a néhány érdekes logika 1116 00:49:43,030 --> 00:49:45,640 mögött a folyamat fut egy pénztáros állomás 1117 00:49:45,640 --> 00:49:47,410 és valóban átadta valaki visszaadni. 1118 00:49:47,410 --> 00:49:50,410 Van egy algoritmus, ami meglehetősen egyszerű, hogy talán még 1119 00:49:50,410 --> 00:49:53,576 megragadni ösztönösen, amikor először olvasta it-- rájött, hogy ez, amit mindig is 1120 00:49:53,576 --> 00:49:57,110 kész bármikor adtam valakinek valamilyen pénzt back-- amely lehetővé teszi, hogy mindig 1121 00:49:57,110 --> 00:50:00,679 számának minimalizálása papírpénzekhez vagy fém érmék 1122 00:50:00,679 --> 00:50:02,220 hogy átadod vissza a felhasználónak. 1123 00:50:02,220 --> 00:50:04,610 És ez, persze, impozánsak mert ha megy, hogy a CVS vagy miegymás, 1124 00:50:04,610 --> 00:50:06,430 ha nem akarjuk, hogy kézzel egy csomó is 1125 00:50:06,430 --> 00:50:07,596 vagy egy csomó fillérekért. 1126 00:50:07,596 --> 00:50:10,120 Azt akarjuk, hogy legkevesebb érmék, talán, lehetséges. 1127 00:50:10,120 --> 00:50:13,070 >> Végül, akkor is vitatható a pancsolás a világon a víz 1128 00:50:13,070 --> 00:50:17,220 és tényleg csak megbecsülésére Egy közötti leképezés áramlási sebességét, 1129 00:50:17,220 --> 00:50:19,890 Az tetszik, vizet egy zuhanyzó, hogy mennyi vizet használnak. 1130 00:50:19,890 --> 00:50:22,640 És ez az utalás, ott, lesz ez a klip itt, 1131 00:50:22,640 --> 00:50:24,840 amit majd véget a mindössze 60 másodperc alatt, hogy 1132 00:50:24,840 --> 00:50:29,070 fest egy képet alacsony áramlási zuhanyfejek. 1133 00:50:29,070 --> 00:50:30,886 >> [Videó lejátszás] 1134 00:50:30,886 --> 00:50:31,385 -Minden rendben. 1135 00:50:31,385 --> 00:50:32,774 Megvan itt minden. 1136 00:50:32,774 --> 00:50:35,800 Megvan a ciklon F sorozat, Hydra, Jetflow, Stockholm 1137 00:50:35,800 --> 00:50:37,660 Supersteam, akkor nevezd meg. 1138 00:50:37,660 --> 00:50:39,265 >> -És Mit ajánl? 1139 00:50:39,265 --> 00:50:40,460 >> -Mit keresel? 1140 00:50:40,460 --> 00:50:41,300 >> -Power Ember. 1141 00:50:41,300 --> 00:50:42,285 Teljesítmény. 1142 00:50:42,285 --> 00:50:42,910 -szerű Silkwood. 1143 00:50:42,910 --> 00:50:44,520 -Ez A sugárzás. 1144 00:50:44,520 --> 00:50:46,335 -Ez Igaz. 1145 00:50:46,335 --> 00:50:48,275 -Most Mi ez? 1146 00:50:48,275 --> 00:50:49,704 -Ez A Commando 450. 1147 00:50:49,704 --> 00:50:50,620 Nem árulok, hogy az egyik. 1148 00:50:50,620 --> 00:50:51,700 >> -De Ez az, amit akarunk. 1149 00:50:51,700 --> 00:50:52,680 Ez egy kommandós 450. 1150 00:50:52,680 --> 00:50:53,882 >> -Nem Hiszel nekem. 1151 00:50:53,882 --> 00:50:55,090 Ez csak használják a cirkusz. 1152 00:50:55,090 --> 00:50:56,512 Ez az elefántok. 1153 00:50:56,512 --> 00:50:59,356 >> -I'll Fizet semmit. 1154 00:50:59,356 --> 00:51:01,252 >> -Mi Jerry? 1155 00:51:01,252 --> 00:51:02,760 >> -Ő Nem tudta kezelni ezt. 1156 00:51:02,760 --> 00:51:04,910 Ő finom. 1157 00:51:04,910 --> 00:51:05,750 Ó igen. 1158 00:51:05,750 --> 00:51:36,737 1159 00:51:36,737 --> 00:51:37,320 [Lejátszás vége] 1160 00:51:37,320 --> 00:51:37,700 DAVID J MALAN: Rendben. 1161 00:51:37,700 --> 00:51:38,820 Ez, ha a CS50. 1162 00:51:38,820 --> 00:51:40,050 Találkozunk a jövő héten. 1163 00:51:40,050 --> 00:51:45,910 1164 00:51:45,910 --> 00:51:49,029 >> 1. Előadó: [? Scully?], [? Ian,?] amennyire ez az outro projekt, 1165 00:51:49,029 --> 00:51:50,362 mit srácok jön? 1166 00:51:50,362 --> 00:51:51,990 >> Hangszóró 2: Nos, most már adott ez a fajta gondolkodás, 1167 00:51:51,990 --> 00:51:53,250 és úgy gondoljuk, hogy a legjobb módja az alábbiakra: 1168 00:51:53,250 --> 00:51:53,660 >> Hangszóró 3: Szabad? 1169 00:51:53,660 --> 00:51:54,326 >> Hangszóró 2: Igen. 1170 00:51:54,326 --> 00:51:56,360 Minden eszközzel, valóban. 1171 00:51:56,360 --> 00:51:59,425 >> Hangszóró 3: Szóval azt hiszem, tudjuk összefoglalni a mi ötletünk 1172 00:51:59,425 --> 00:52:05,450 A Outros egy word-- semmi. 1173 00:52:05,450 --> 00:52:08,950 1174 00:52:08,950 --> 00:52:10,409 >> DAVID J MALAN: Semmi? 1175 00:52:10,409 --> 00:52:11,200 Hangszóró 3: Semmi. 1176 00:52:11,200 --> 00:52:12,990 DAVID J MALAN: Mit jelent ez? 1177 00:52:12,990 --> 00:52:16,260 Hangszóró 3: A Outros a semmiért. 1178 00:52:16,260 --> 00:52:21,720 Hangszóró 2: Nos, úgy értem, a filozófia, Úgy értem, semmi sem mindig van valami. 1179 00:52:21,720 --> 00:52:24,200 1. Előadó: Szóval what's-- mi az előfeltétele? 1180 00:52:24,200 --> 00:52:25,720 Hangszóró 3: Szóval ez olyan, mint az élet. 1181 00:52:25,720 --> 00:52:26,680 OKÉ. 1182 00:52:26,680 --> 00:52:28,294 Mit csináltál ma? 1183 00:52:28,294 --> 00:52:31,811 >> DAVID J MALAN: felkeltem, már reggeli, és jött dolgozni. 1184 00:52:31,811 --> 00:52:34,056 >> Hangszóró 3: Ez egy outro. 1185 00:52:34,056 --> 00:52:36,806 Hangszóró 2: De, úgy értem, nem kell valami történne vele a the-- 1186 00:52:36,806 --> 00:52:37,889 Hangszóró 3: Nem, nem, nem, nem. 1187 00:52:37,889 --> 00:52:40,220 Semmi nem történik. 1188 00:52:40,220 --> 00:52:42,910 >> 1. Előadó: Akkor miért nézünk? 1189 00:52:42,910 --> 00:52:46,956 >> Hangszóró 3: Mert ez egy outro a CS50. 1190 00:52:46,956 --> 00:52:48,652 >> DAVID J MALAN: Még nem. 1191 00:52:48,652 --> 00:52:49,151