1 00:00:00,000 --> 00:00:10,550 2 00:00:10,550 --> 00:00:14,050 >> DAVID J. Malan: Þetta er CS50 og þetta er upphaf viku fjögur. 3 00:00:14,050 --> 00:00:18,630 Og drengur, er Volkswagen í vandræði allt vegna hugbúnaðar. 4 00:00:18,630 --> 00:00:20,264 Leyfðu okkur að líta. 5 00:00:20,264 --> 00:00:20,930 [Vídeó spilun] 6 00:00:20,930 --> 00:00:25,560 -Cars, Smartest stafir í The Fast og Trylltur bíó. 7 00:00:25,560 --> 00:00:29,100 Þessi vika Þýska automaker Volkswagen fann sig 8 00:00:29,100 --> 00:00:32,490 í miðju hneyksli hugsanlega glæpamaður hlutföll. 9 00:00:32,490 --> 00:00:36,060 >> -Volkswagen Er spelkum fyrir milljarða í sektir, hugsanlegar glæpsamlegt gjöld 10 00:00:36,060 --> 00:00:38,560 fyrir stjórnendur þess, sem fyrirtækið afsökunar 11 00:00:38,560 --> 00:00:41,840 fyrir rigging 11 milljónir bíla til hjálpa því að slá losun próf. 12 00:00:41,840 --> 00:00:44,950 >> -Certain Dísel módel voru hannað með háþróaður hugbúnaður 13 00:00:44,950 --> 00:00:48,440 sem notað, þar með talið staða stýrisins og ökutæki 14 00:00:48,440 --> 00:00:51,870 hraða til að ákvarða bíllinn var gangast losun próf. 15 00:00:51,870 --> 00:00:55,650 Samkvæmt þeim aðstæðum, vélin myndi draga úr eitruðum útblæstri. 16 00:00:55,650 --> 00:00:59,070 En bíllinn var rigged að framhjá að þegar það var verið ekið. 17 00:00:59,070 --> 00:01:03,320 Útstreymi jókst 10 til 40 sinnum meiri viðunandi EPA stigum. 18 00:01:03,320 --> 00:01:04,280 >> [END spilun] 19 00:01:04,280 --> 00:01:05,220 >> DAVID J. Malan: Svo skulum taka a líta á þetta 20 00:01:05,220 --> 00:01:07,250 og sjá nákvæmlega hvernig þetta gæti komið til framkvæmda 21 00:01:07,250 --> 00:01:09,680 og hvernig þetta gæti haft áhrif á svo margir bílar eins og þetta. 22 00:01:09,680 --> 00:01:12,840 Svo í hendi minni hér eru stutt útgáfu sem var gefin út af EPA-- 23 00:01:12,840 --> 00:01:14,620 Umhverfis Protection Agency sem 24 00:01:14,620 --> 00:01:18,032 er US reglur stofnunarinnar sem annast umhverfismál, 25 00:01:18,032 --> 00:01:19,740 og þá í raun Tilkynning um lagaleg atriði sem var 26 00:01:19,740 --> 00:01:22,420 senda Volkswagen bara nokkra daga síðan. 27 00:01:22,420 --> 00:01:26,530 >> Svo skrifar EPA og getur um nú opinberlega, a háþróaður hugbúnaður 28 00:01:26,530 --> 00:01:29,390 reiknirit á víst Volkswagen ökutæki skynjar 29 00:01:29,390 --> 00:01:32,630 þegar bíllinn er verða opinberar losun próf 30 00:01:32,630 --> 00:01:36,505 og snýr fullt losun stjórnar á aðeins meðan á prófuninni. 31 00:01:36,505 --> 00:01:38,380 Virkni þessir bílar mengun 32 00:01:38,380 --> 00:01:43,260 losun stjórn tæki er mjög minnkað á öllum venjulegum akstri 33 00:01:43,260 --> 00:01:44,320 aðstæður. 34 00:01:44,320 --> 00:01:48,190 Þetta leiðir í bíla sem uppfylla að staðla í rannsóknarstofu eða prófun 35 00:01:48,190 --> 00:01:52,790 stöð, en í venjulegum rekstri losa köfnunarefni oxides-- eða NOx-- 36 00:01:52,790 --> 00:01:54,950 á allt að 40 sinnum staðall. 37 00:01:54,950 --> 00:01:58,220 Hugbúnaðurinn framleitt af Volkswagen er tilvitnun unquote, ósigur tæki, 38 00:01:58,220 --> 00:02:00,650 eins og skilgreint er í Clean Air Act í Bandaríkjunum. 39 00:02:00,650 --> 00:02:03,410 >> Þeir fara að segja að sem EPA og annað auglýsingastofu 40 00:02:03,410 --> 00:02:07,020 afhjúpa temprunarbúnað hugbúnaður eftir sjálfstæðum greiningu 41 00:02:07,020 --> 00:02:09,660 sókna á Vesturlöndum Virginia University. 42 00:02:09,660 --> 00:02:14,160 NOx mengun stuðlar að köfnunarefnisdíoxíð, jarðhæð óson, 43 00:02:14,160 --> 00:02:15,700 og fínn agnir. 44 00:02:15,700 --> 00:02:18,090 Útsetning fyrir þessum mengunarefni hefur verið tengd 45 00:02:18,090 --> 00:02:20,870 með a breiður svið af alvarleg áhrif á heilsu, 46 00:02:20,870 --> 00:02:23,637 þ.mt aukin astma árásir og öðrum öndunarfæra 47 00:02:23,637 --> 00:02:26,470 sjúkdóma sem geta verið alvarleg nóg að senda fólk á sjúkrahús. 48 00:02:26,470 --> 00:02:28,660 Exposure óson og agnir hefur einnig 49 00:02:28,660 --> 00:02:31,960 verið tengd við ótímabært dauða vegna öndunarfæra skyld 50 00:02:31,960 --> 00:02:35,690 eða hjarta- tengjast áhrifum. 51 00:02:35,690 --> 00:02:38,940 Börn, aldraðir, fólk með vanstarfsemi öndunarfærasjúkdóma 52 00:02:38,940 --> 00:02:42,840 eru sérstaklega í hættu á að heilsufarsleg áhrif þessara mengunarefna. 53 00:02:42,840 --> 00:02:45,056 >> Látum nægja er að segja, það er alveg alvarlega. 54 00:02:45,056 --> 00:02:46,930 Og við skulum fara að lesa bara einn útdráttur 55 00:02:46,930 --> 00:02:49,370 og þá munum við taka a líta á undirliggjandi áhrif 56 00:02:49,370 --> 00:02:50,920 um þetta í tengslum við bíl. 57 00:02:50,920 --> 00:02:53,730 Sérstaklega, Volkswagen framleidd og sett 58 00:02:53,730 --> 00:02:56,210 hugbúnaður í svokölluðum rafeindastýrieininguna 59 00:02:56,210 --> 00:02:59,320 module-- eða ECM-- af þessir bílar sem skynjaði 60 00:02:59,320 --> 00:03:03,580 þegar ökutækið var verið að prófa fyrir fylgni við EPA losun staðla. 61 00:03:03,580 --> 00:03:07,510 Byggist á ýmsum aðföngum þ.mt stöðu stýrishjóls, ökutæki 62 00:03:07,510 --> 00:03:11,280 hraði, tímalengd vélin er rekstur og loftþrýstingur, 63 00:03:11,280 --> 00:03:13,720 Þessi aðföng nákvæmlega fylgst breytur 64 00:03:13,720 --> 00:03:17,600 sambands prófunaraðferð sem notuð fyrir losun próf fyrir EPA vottun 65 00:03:17,600 --> 00:03:18,400 tilgangi. 66 00:03:18,400 --> 00:03:21,850 >> Á EPA losun próf, ökutækin ECM hugbúnaður 67 00:03:21,850 --> 00:03:25,060 hljóp hugbúnað sem framleitt samhæft losun niðurstöður. 68 00:03:25,060 --> 00:03:28,340 Á öllum öðrum tímum, ökutæki ECM hugbúnaður 69 00:03:28,340 --> 00:03:31,090 hljóp sérstakt veginn kvörðun sem minnkar 70 00:03:31,090 --> 00:03:34,360 skilvirkni í heild mengunarvarnarkerfið, 71 00:03:34,360 --> 00:03:37,864 sérstaklega sértækur hvatar lækkun á Lean NOx trap-- 72 00:03:37,864 --> 00:03:39,280 sem við munum sjá um í smá stund. 73 00:03:39,280 --> 00:03:43,040 Þar af leiðandi, losun NOx faldast á 10 til 40 sinnum 74 00:03:43,040 --> 00:03:47,450 yfir EPA samhæft stigum eftir því hvaða gerð af ökuferð hringrás. 75 00:03:47,450 --> 00:03:50,800 >> Svo er það þetta raunverulega þýðir, og Kóðinn til hugbúnaður hlaupandi 76 00:03:50,800 --> 00:03:53,190 á Volkswagen hefur ekki enn verið birt opinberlega, 77 00:03:53,190 --> 00:03:56,460 er að, á áhrifaríkan hátt, þetta jafngildi er einhvers staðar inni 78 00:03:56,460 --> 00:03:57,830 af kóða Volkswagen. 79 00:03:57,830 --> 00:04:02,200 Ef þú ert að prófa, og ef bílnum skynjar ákveðna umhverfisþætti 80 00:04:02,200 --> 00:04:04,330 eins stýrinu stöðu eða hreyfingu 81 00:04:04,330 --> 00:04:06,710 eða skortur þar á bílnum eða fjölda annarra þátta 82 00:04:06,710 --> 00:04:09,940 sem eru nú tilgáta að vera hluti af þessari formúlu, 83 00:04:09,940 --> 00:04:12,370 þeir snúa einfaldlega á fullur losun stjórna. 84 00:04:12,370 --> 00:04:15,670 Með öðrum orðum, þeir byrja emitting minna af mengandi efna. 85 00:04:15,670 --> 00:04:18,769 >> Annars, í öllum öðrum aðstæðum þegar það er ekki greind eins og að vera 86 00:04:18,769 --> 00:04:20,790 í rannsóknarstofu, þeir gera bara ekki. 87 00:04:20,790 --> 00:04:24,320 Og svo þú getur einfalda þetta í fleiri steypu sauðakóðanum með eitthvað 88 00:04:24,320 --> 00:04:24,820 svona. 89 00:04:24,820 --> 00:04:27,810 Ef hjólin eru að snúa en stýri er ekki, sem bendir til 90 00:04:27,810 --> 00:04:30,060 að bíllinn er á sumum konar snúningur strokka 91 00:04:30,060 --> 00:04:32,550 en í einhvers konar vörugeymsla verið að prófa, 92 00:04:32,550 --> 00:04:36,070 þá hegða sér eins á EPA langar þig til að. 93 00:04:36,070 --> 00:04:37,960 Annars ekki. 94 00:04:37,960 --> 00:04:40,420 Svo skulum taka a líta á stutt myndband sem 95 00:04:40,420 --> 00:04:45,391 tekur a líta á hvaða þýðingu eru þetta í raun vélrænt. 96 00:04:45,391 --> 00:04:48,620 >> [Vídeó spilun] 97 00:04:48,620 --> 00:04:52,800 >> -Last Föstudaginn EPA tilkynnt að sumir Volkswagen Audi bíla á milli 2009 98 00:04:52,800 --> 00:04:55,840 og á þessu ári voru með svonefndan temprunarbúnaður 99 00:04:55,840 --> 00:04:59,060 að komast í kringum losun lögum sem ætlað er að halda loftinu hreinu. 100 00:04:59,060 --> 00:05:01,700 En hvað þýðir það nákvæmlega? 101 00:05:01,700 --> 00:05:04,666 >> Jæja, hafa nútíma bílar heilmikið Tölvur inni þá. 102 00:05:04,666 --> 00:05:07,040 Og sumir af þeim tölvum hjálpa samræma aðgerðir 103 00:05:07,040 --> 00:05:09,590 hreyfilsins fyrir bestur flutningur en gættu 104 00:05:09,590 --> 00:05:12,340 að það er ekki of mikið sorp að koma út úr útblástursrörinu. 105 00:05:12,340 --> 00:05:15,170 Þeir hafa í raun verið að vinna þannig fyrir nokkrum áratugum nú. 106 00:05:15,170 --> 00:05:17,380 Í grundvallaratriðum, sérhver hluti hreyfils A nútíma bílsins 107 00:05:17,380 --> 00:05:20,080 hefur skynjara eða stjórnandi á það, og þessar tölvur 108 00:05:20,080 --> 00:05:23,460 eru að lesa í gögnum þúsundir sinnum á sekúndu breytingar að við gerum 109 00:05:23,460 --> 00:05:26,220 eins hlutfall af eldsneyti til loft það er að fara inn á vélina. 110 00:05:26,220 --> 00:05:28,730 >> Þetta svindla Volkswagen og Audi módel eru dísilvélar, 111 00:05:28,730 --> 00:05:30,890 og diesels hafa eitt mjög mikilvægt tölva 112 00:05:30,890 --> 00:05:34,030 stjórnað breytum, sem er fjárhæð óbrunnu eldsneyti fara 113 00:05:34,030 --> 00:05:35,200 í útblæstri. 114 00:05:35,200 --> 00:05:36,310 Nú hljómar svo slæmt. 115 00:05:36,310 --> 00:05:39,642 Hljómar ekki eins og þú vilt óbrunnu eldsneyti fara í útblæstri. 116 00:05:39,642 --> 00:05:41,600 En í dæminu er dísel, hefur þú eitthvað 117 00:05:41,600 --> 00:05:46,110 kallað NOx gildra sem er tæki sem sig og gildrur fyrir köfnunarefnisoxíð 118 00:05:46,110 --> 00:05:48,880 sem eru mengunarefni sem myndi annars fara út í andrúmsloftið. 119 00:05:48,880 --> 00:05:53,040 Og áhrif þess NOx gildru er auka með óbrunnu eldsneyti. 120 00:05:53,040 --> 00:05:56,650 Svo temprunarbúnaður er sérstakt forrit inni þessum tölvum sem getur gert það 121 00:05:56,650 --> 00:05:59,527 líta út eins og bíllinn uppfyllir losun staðla jafnvel þegar það er ekki. 122 00:05:59,527 --> 00:06:01,110 Volkswagen hafði vandamál á höndum sínum. 123 00:06:01,110 --> 00:06:04,050 Dísilvélar hennar voru þekktir fyrir að fá mikla sparneytni 124 00:06:04,050 --> 00:06:07,510 en NOx gildru virkar bara vel þegar meira eldsneyti er notað. 125 00:06:07,510 --> 00:06:10,460 Þannig að bíllinn myndi uppgötva, nota þessa temprunarbúnað, 126 00:06:10,460 --> 00:06:13,870 þegar það var að fá losun próf, það myndi nota meira eldsneyti, 127 00:06:13,870 --> 00:06:16,830 gera NOx gildru vinna vel, losun væri í lagi. 128 00:06:16,830 --> 00:06:21,130 En þá færðu á veginum, tækið slokknar, þú ert brennandi minna eldsneyti 129 00:06:21,130 --> 00:06:24,256 en þú ert að setja eins mikið og 40 sinnum fleiri mengunarefni í andrúmslofti. 130 00:06:24,256 --> 00:06:26,130 En hvernig Heck gerði bíllinn veit að það var 131 00:06:26,130 --> 00:06:27,720 verið er að prófa fyrir losun farið? 132 00:06:27,720 --> 00:06:30,590 The EPA segir að það var háþróuð kerfi sem skoðaði hlutina 133 00:06:30,590 --> 00:06:34,090 eins stýrishjólið, hraði, hversu lengi vélin var á, 134 00:06:34,090 --> 00:06:35,507 og jafnvel loftþrýstingur. 135 00:06:35,507 --> 00:06:37,673 Með öðrum orðum, það var engin leið að þetta var óviljandi 136 00:06:37,673 --> 00:06:40,260 vegna þess að hugbúnaður var hannað mjög vandlega til að greina 137 00:06:40,260 --> 00:06:41,630 opinbert losunarprófunin. 138 00:06:41,630 --> 00:06:43,588 Það er sumir laglegur alvarlegar blekkingar og það er 139 00:06:43,588 --> 00:06:45,420 hvers vegna Volkswagen er í svo alvarleg vandræði. 140 00:06:45,420 --> 00:06:48,600 Í raun, forstjóri þeirra, Martin Winterkorn, bara steig niður. 141 00:06:48,600 --> 00:06:49,820 >> Svo hvað gerist næst? 142 00:06:49,820 --> 00:06:53,900 Jæja, ef þú ert einn af hálfa milljón dísel Jettas, Beatles, Golfs, Passats, 143 00:06:53,900 --> 00:06:56,220 eða Audi A3s fram, the góður fréttir er er 144 00:06:56,220 --> 00:06:57,886 að bíllinn þinn er enn í lagi að aka. 145 00:06:57,886 --> 00:07:00,510 Þú þarft ekki að setja það í burtu þar Volkswagen gefur muna. 146 00:07:00,510 --> 00:07:02,509 En á einhverjum tímapunkti að þeir eru líklega að fara að hafa 147 00:07:02,509 --> 00:07:04,230 að uppfæra hugbúnað inni bílnum. 148 00:07:04,230 --> 00:07:06,927 Þegar það gerist að þú gætir færri mílur á skriðdreka. 149 00:07:06,927 --> 00:07:09,260 Lögfræðingar eru nú þegar býr upp fyrir tegund aðgerðar málsókn 150 00:07:09,260 --> 00:07:12,500 svo eigendur gætu fá bætur á einhverjum tímapunkti í framtíðinni. 151 00:07:12,500 --> 00:07:15,832 En það er ekki að fara að gerast hvenær sem er bráðum. 152 00:07:15,832 --> 00:07:16,711 >> [END spilun] 153 00:07:16,711 --> 00:07:19,960 DAVID J. Malan: Þannig að þetta reyndar vekur áhugaverð stærri mynd spurning 154 00:07:19,960 --> 00:07:20,660 að treysta. 155 00:07:20,660 --> 00:07:21,160 Ekki satt? 156 00:07:21,160 --> 00:07:24,300 Allar okkar hafa iPhone eða Androids eða eitthvað í vasa okkar líklega 157 00:07:24,300 --> 00:07:26,500 þessa dagana, eða fartölvur á hringi okkar sem eru 158 00:07:26,500 --> 00:07:28,510 gangi hugbúnaður gerður Apple og Microsoft 159 00:07:28,510 --> 00:07:30,710 og bunches annarra fyrirtækja. 160 00:07:30,710 --> 00:07:34,240 En hvernig vitum við að það þessi hugbúnaður vara ert að gera 161 00:07:34,240 --> 00:07:37,680 er í raun hvað þetta fyrirtæki segja þeir eru að gera? 162 00:07:37,680 --> 00:07:39,610 >> Til dæmis, hver er að segja að í hvert skipti sem þú 163 00:07:39,610 --> 00:07:42,200 hringt á iPhone eða Android síma eða þess háttar, 164 00:07:42,200 --> 00:07:45,650 sem að símanúmerið er einnig ekki verið hlaðið á miðlara sumir félagsins 165 00:07:45,650 --> 00:07:48,399 vegna sumir forrit sem þú hefur skrifað, hvort sem það er um starfsleyfi 166 00:07:48,399 --> 00:07:51,070 Kerfið sjálft eins IOS eða Android, eða vegna þess að þú hefur hlaðið niður 167 00:07:51,070 --> 00:07:53,880 sumir þriðja aðila app sem einhvern veginn er að hlusta 168 00:07:53,880 --> 00:07:57,120 að allt sem þú ert að skrifa eða allt sem þú ert í raun að segja. 169 00:07:57,120 --> 00:07:59,500 Hvernig veistu að þegar þið eru í gangi Clang 170 00:07:59,500 --> 00:08:02,590 eða gera til að safna saman þinn eigin hugbúnað í CS50, hvernig 171 00:08:02,590 --> 00:08:06,080 Ert þú átt starfsfólk að CS50 er, með því að CS50 bókasafn, 172 00:08:06,080 --> 00:08:08,690 hefur ekki verið að skrá þig á hverjum band sem þú hefur alltaf fengið 173 00:08:08,690 --> 00:08:10,276 eða sérhver tomma sem þú hefur alltaf fengið? 174 00:08:10,276 --> 00:08:12,900 Jæja, þú vissulega líta á the uppspretta merkjamál fyrir eitthvað 175 00:08:12,900 --> 00:08:15,233 eins CS50 bókasafn, þú getur litið á the uppspretta merkjamál 176 00:08:15,233 --> 00:08:18,170 fyrir Linux stýrikerfi gangi á CS50 IDE. 177 00:08:18,170 --> 00:08:23,090 En ótrúlega kynningu var gefið til baka í 1984 178 00:08:23,090 --> 00:08:26,730 í móttöku Turing verðlaunin frá a mjög frægur tölva vísindamaður þekkt 179 00:08:26,730 --> 00:08:29,750 as-- heitir Ken Thompson sem fékk Turing verðlaunin sem 180 00:08:29,750 --> 00:08:33,500 er tegund af tölvunarfræði er Nobel Prize, ef þú vilt, 181 00:08:33,500 --> 00:08:35,309 fyrir vinnu sína á stýrikerfi sem heitir 182 00:08:35,309 --> 00:08:39,039 Unix, sem er mjög svipað í anda að það sem við notum sem er Linux. 183 00:08:39,039 --> 00:08:41,960 Og spurningin sem hann spurði í hans þakkarræðu, fyrst og fremst 184 00:08:41,960 --> 00:08:44,910 um ramma fyrir ár og ára umræðu 185 00:08:44,910 --> 00:08:46,970 um traust og öryggi, var þetta. 186 00:08:46,970 --> 00:08:50,410 Að hve miklu leyti ætti maður að treysta yfirlýsing um að program-- stykki 187 00:08:50,410 --> 00:08:53,010 af software-- er ókeypis Trójuhestar? 188 00:08:53,010 --> 00:08:56,500 Kannski er það enn mikilvægara að treysta fólk sem skrifaði hugbúnað. 189 00:08:56,500 --> 00:08:58,650 >> Og í raun höfum við tengt að tala um að hann 190 00:08:58,650 --> 00:09:02,400 gaf þegar hann hefur tekið þessi verðlaun í '80s á heimasíðu CS50 er 191 00:09:02,400 --> 00:09:04,030 undir Fyrirlestrar síðu fyrir í dag. 192 00:09:04,030 --> 00:09:06,071 Því það sem þú munt sjá er að hann gefur í raun 193 00:09:06,071 --> 00:09:09,430 nokkuð einfalt dæmi um hvernig jafnvel þýðanda eins Clang eða hvað 194 00:09:09,430 --> 00:09:13,950 Vistþýðendur aðrir hafa notað í fortíðinni, hvað ef embed in þýðanda vér 195 00:09:13,950 --> 00:09:18,190 sjálf erum að nota er lítið ef ástand sem í raun segir, 196 00:09:18,190 --> 00:09:22,360 ef þú tekur eftir að þetta númer er að nota GetString virka eða GetInt 197 00:09:22,360 --> 00:09:26,600 virka, fara á undan og setja a bakdyramegin eða Trojan hestur 198 00:09:26,600 --> 00:09:29,340 þannig að þessi áætlun nú hefur sumir núll 199 00:09:29,340 --> 00:09:30,930 og þau sem gera eitthvað illgjarn. 200 00:09:30,930 --> 00:09:33,080 Skrái allt þitt mínútum, hlaða þessi gögn 201 00:09:33,080 --> 00:09:35,100 að einhverjum miðlara, eða í raun neitt. 202 00:09:35,100 --> 00:09:37,290 >> Og hvað Ken Thompson fer að gera í ræðu hans 203 00:09:37,290 --> 00:09:40,580 er að sýna fram á að jafnvel þótt þú hefur aðgang að upptökum 204 00:09:40,580 --> 00:09:43,794 Kóðinn í þýðanda sem illgirni gæti verið að gera þetta, 205 00:09:43,794 --> 00:09:46,210 það skiptir ekki máli vegna þess að það er þetta kjúklingur og egg 206 00:09:46,210 --> 00:09:49,500 veruleiki undanförnum ára hvorved vistþýðendur 207 00:09:49,500 --> 00:09:51,960 eru notuð til að safna saman sjálfir. 208 00:09:51,960 --> 00:09:55,440 Með öðrum orðum, leiðin til baka þegar einhver þurfti að hafa skrifað fyrstu þýðanda. 209 00:09:55,440 --> 00:09:59,060 Og eftir það, hvenær þeir hafa uppfært þýðanda með því að breyta kóðann hennar, 210 00:09:59,060 --> 00:10:02,020 bæta lögun og recompiling það fyrir fólk eins og okkur til að nota vel, 211 00:10:02,020 --> 00:10:04,270 þeir eru að nota gamla útgáfa af þýðanda 212 00:10:04,270 --> 00:10:06,370 að safna saman nýja útgáfa af þýðanda. 213 00:10:06,370 --> 00:10:08,370 Og ef þú taka a líta á tal, sem hann gaf, 214 00:10:08,370 --> 00:10:10,970 þú munt sjá að vegna þess circularity, 215 00:10:10,970 --> 00:10:14,330 þú getur í raun hafa galla eða Trójuhestar innbyggð í hugbúnaði 216 00:10:14,330 --> 00:10:14,990 við erum að nota. 217 00:10:14,990 --> 00:10:18,010 Og jafnvel ef þú horfir á Kóðinn fyrir þá forrit, 218 00:10:18,010 --> 00:10:21,550 það gæti ekki einu sinni að vera augljóst vegna þess að brögð er í raun 219 00:10:21,550 --> 00:10:24,710 í sumum eldri útgáfu af a þýðanda sem síðan hefur verið 220 00:10:24,710 --> 00:10:27,340 sprauta ógn í hugbúnaði okkar. 221 00:10:27,340 --> 00:10:29,740 >> Sem er bara að segja, að við í raun getur ekki og ætti ekki 222 00:10:29,740 --> 00:10:32,939 traust hugbúnaður hlaupandi á fartölvur okkar eða sími eða allir tala af stöðum. 223 00:10:32,939 --> 00:10:36,230 Og í raun, síðar í þessari önn þegar við byrjum að tala um forritun vefur 224 00:10:36,230 --> 00:10:38,521 og í raun að byrja að byggja vefur umsókn okkur, 225 00:10:38,521 --> 00:10:40,285 við munum tala um þetta ógnir og aðrir. 226 00:10:40,285 --> 00:10:43,410 Nú, þú gætir hafa furða og tekið að það var agnarsmár Darth 227 00:10:43,410 --> 00:10:45,842 Vader í úrklippum sem The Verge var að sýna það 228 00:10:45,842 --> 00:10:47,550 um Volkswagen. Ef þú hefur aldrei séð, ég 229 00:10:47,550 --> 00:10:49,190 hélt að við ættum að létta skapi vegna þess að þetta er allt 230 00:10:49,190 --> 00:10:50,780 mjög niðurdrepandi og ógnvekjandi. 231 00:10:50,780 --> 00:10:52,910 Ég ætla að horfa til baka á Super Bowl 2011 232 00:10:52,910 --> 00:10:55,300 þegar auglýsing með Volkswagen-- og þetta 233 00:10:55,300 --> 00:10:59,620 nánast gerir þá likable again-- frumsýnd í fyrsta sinn í sjónvarpinu. 234 00:10:59,620 --> 00:11:04,039 Það er 60 annað myndband að ég held að þú munt njóta. 235 00:11:04,039 --> 00:11:04,705 [Vídeó spilun] 236 00:11:04,705 --> 00:11:08,198 [TÓNLIST - Þema frá "Star Wars"] 237 00:11:08,198 --> 00:11:35,643 238 00:11:35,643 --> 00:11:38,138 [Hundur Barks] 239 00:11:38,138 --> 00:11:50,114 240 00:11:50,114 --> 00:11:53,607 [Bíllinn byrjar] 241 00:11:53,607 --> 00:12:04,086 242 00:12:04,086 --> 00:12:05,955 [END spilun] 243 00:12:05,955 --> 00:12:06,830 DAVID J. Malan: Já. 244 00:12:06,830 --> 00:12:07,663 Ég var bara að skoða. 245 00:12:07,663 --> 00:12:11,360 Að bíllinn er á lista yfir brot. 246 00:12:11,360 --> 00:12:12,000 Allt í lagi. 247 00:12:12,000 --> 00:12:14,040 Þannig að við líta á sumir sauðakóðanum smá stund síðan. 248 00:12:14,040 --> 00:12:15,380 Og hér er stærri bút af sauðakóðanum kóða 249 00:12:15,380 --> 00:12:16,921 sem við höfum séð nokkrum sinnum svona langt. 250 00:12:16,921 --> 00:12:19,970 Og við skulum nota þetta tækifæri nú að kynna nýja forritun 251 00:12:19,970 --> 00:12:23,776 tækni sem við gerðum sjá algorithmically 252 00:12:23,776 --> 00:12:25,400 í síðustu viku þegar við skoðuðum mergesort. 253 00:12:25,400 --> 00:12:28,270 En við skulum móta það og sjá hvernig við gætum notað það í raun kóða, 254 00:12:28,270 --> 00:12:30,350 og þá erum við að fara að nota þetta tækni niður götuna mest 255 00:12:30,350 --> 00:12:32,000 líklegt til að leysa ákveðin önnur vandamál. 256 00:12:32,000 --> 00:12:35,790 >> Þannig að þetta var einn af fyrstu verkefnum við alltaf skrifaði, að vísu í sauðakóðanum kóða. 257 00:12:35,790 --> 00:12:37,790 Og hvað þetta forrit leyft okkur að gera námskeið 258 00:12:37,790 --> 00:12:41,510 var að finna Mike Smith í símaskránni. 259 00:12:41,510 --> 00:12:46,216 Og taka einkum línum átta og 11 sem höfðu þetta að fara að yfirlýsingu. 260 00:12:46,216 --> 00:12:48,090 Og í raun, víst tungumál, C meðal þeirra, 261 00:12:48,090 --> 00:12:50,006 í raun gera hafa a Yfirlýsing um að er bókstaflega 262 00:12:50,006 --> 00:12:52,710 fara til að leyfa þér að hoppa á tiltekna línu. 263 00:12:52,710 --> 00:12:55,470 Það er almennt hleypa brúnum því það getur verið mjög auðvelt misnotuð 264 00:12:55,470 --> 00:12:58,490 og þú getur byrjað að stökkva þinn program um allt öfugt 265 00:12:58,490 --> 00:13:00,690 að nota hvers konar rökfræði og stjórn rennsli 266 00:13:00,690 --> 00:13:04,000 sem við höfum notað svona langt með bara lykkjur og skilyrði og þess háttar. 267 00:13:04,000 --> 00:13:08,660 >> En við getum einfalda þetta reiknirit í sauðakóða kóða sem hér segir. 268 00:13:08,660 --> 00:13:11,250 Í stað þess að þetta endurtekningu eða lykkja nálgun 269 00:13:11,250 --> 00:13:14,160 þar sem við höldum að fara til baka og aftur og aftur til að stilla þremur, 270 00:13:14,160 --> 00:13:18,300 Hvers vegna eigum við ekki punt bara svona og fleira almennt segja í takt sjö og 10, 271 00:13:18,300 --> 00:13:20,570 bara skipta þessir tveir pör af línum með, 272 00:13:20,570 --> 00:13:22,810 annars ef Smith er fyrr í bókinni við munum 273 00:13:22,810 --> 00:13:25,110 leita Mike í vinstri hluta bókarinnar. 274 00:13:25,110 --> 00:13:28,560 Annars ef Smith er síðar í bók, leita Mike í hægri 275 00:13:28,560 --> 00:13:29,540 helmingur bók. 276 00:13:29,540 --> 00:13:31,180 Og taka nú þegar circularity. 277 00:13:31,180 --> 00:13:31,680 Ekki satt? 278 00:13:31,680 --> 00:13:34,250 Ég er að leita að Mike í símaskrá og þá 279 00:13:34,250 --> 00:13:37,090 Ég lenti að lokum kannski lína sjö eða kannski lína 10 280 00:13:37,090 --> 00:13:41,089 og kennsla mín að mér er að leita fyrir Mike í helmingi símaskránni. 281 00:13:41,089 --> 00:13:42,380 Jæja, hvernig leita ég að Mike? 282 00:13:42,380 --> 00:13:44,213 Ég er í miðjum leita Mike, hvers vegna 283 00:13:44,213 --> 00:13:45,860 ert þú svona að senda mig í hring? 284 00:13:45,860 --> 00:13:49,590 En það er allt í lagi vegna þess að það er gerast við stærð af the vandamál, 285 00:13:49,590 --> 00:13:52,630 eins og skrifað í línu 7 og 10? 286 00:13:52,630 --> 00:13:54,989 Við erum ekki bara að segja leit fyrir Mike, leita Mike. 287 00:13:54,989 --> 00:13:56,280 Við erum sérstaklega að segja það? 288 00:13:56,280 --> 00:13:58,694 289 00:13:58,694 --> 00:14:01,610 Leita eftir honum í vinstri hluta hægri helminginn sem er í raun 290 00:14:01,610 --> 00:14:03,440 helmingur the stærð af the vandamál. 291 00:14:03,440 --> 00:14:07,170 Svo það er í lagi að við erum konar taka þátt í þessu circularity, 292 00:14:07,170 --> 00:14:09,180 þetta hringlaga rök, því að minnsta kosti að við erum 293 00:14:09,180 --> 00:14:11,090 gera vandamálið minni og minni. 294 00:14:11,090 --> 00:14:14,220 Og að lokum við erum að fara að ná að svokölluð grunn tilfelli þar 295 00:14:14,220 --> 00:14:16,780 við höfum bara eina síðu left-- sem sjálfboðaliði okkar í síðustu viku 296 00:14:16,780 --> 00:14:18,684 did-- við höfðum eina síðu vinstri og þá erum við ekki 297 00:14:18,684 --> 00:14:21,600 að halda áfram að leita að Mike Smith vegna þess að hann er annað hvort á þessari síðu 298 00:14:21,600 --> 00:14:23,080 eða hann er ekki. 299 00:14:23,080 --> 00:14:27,480 >> Og hvernig getum við innleiða þessa hugmynd, þetta konar circularity í raun kóða? 300 00:14:27,480 --> 00:14:31,030 Jæja, við getum nýta tækni sem er almennt þekktur eins og endurkvæmni. 301 00:14:31,030 --> 00:14:33,960 Og við höfum séð þetta í sauðakóðanum fyrir mergesort síðustu viku. 302 00:14:33,960 --> 00:14:37,190 Muna að þetta var sauðakóðanum fyrir sameiningu tagi. 303 00:14:37,190 --> 00:14:40,560 Það er að öllum líkindum jafnvel einfaldara en kúla eða val eða innsetning konar 304 00:14:40,560 --> 00:14:43,310 bara hvað varðar einfaldleika sem þú getur tjáð það. 305 00:14:43,310 --> 00:14:46,750 >> En það er vegna við erum konar circularly 306 00:14:46,750 --> 00:14:51,350 sagði, að leita að einhverju með því að leita að því aftur. 307 00:14:51,350 --> 00:14:53,960 En við erum að leita annað hvort á vinstri helminginn eða hægri helminginn 308 00:14:53,960 --> 00:14:56,070 og þá loksins erum við sameina í þessu tilfelli. 309 00:14:56,070 --> 00:14:58,520 En hér líka, með þessir tveir Raða línur, 310 00:14:58,520 --> 00:15:01,320 gerði við höfum aftur á þessu Hugmyndin um endurkvæmni. 311 00:15:01,320 --> 00:15:05,350 Og concretely hvað þetta þýðir, í samhengi við reiknirit, 312 00:15:05,350 --> 00:15:10,880 er að reiknirit er endurkvæma ef það notar eða kallar sig. 313 00:15:10,880 --> 00:15:14,330 >> Eða sem kröfur um C, fall er recursive-- fall sem kallast 314 00:15:14,330 --> 00:15:18,510 foo er endurkvæma ef foo, einhvers staðar í frumkóða hans, 315 00:15:18,510 --> 00:15:21,250 kallar virka foo sjálft. 316 00:15:21,250 --> 00:15:25,790 Og það er slæmt ef allt foo alltaf gerir er að hringja sig aftur og aftur. 317 00:15:25,790 --> 00:15:30,600 Það er allt í lagi ef foo hættir að lokum, sem gerir Mergesort, með því að segja, bíddu í eina mínútu, 318 00:15:30,600 --> 00:15:32,980 ef þetta vandamál er frábær lítill, til dæmis, 319 00:15:32,980 --> 00:15:35,840 eða fann ég þann sem ég er að leita að, bara aftur. 320 00:15:35,840 --> 00:15:41,000 Ekki endurkvæmt, ekki lotubundið kalla mig aftur. 321 00:15:41,000 --> 00:15:44,200 >> Og svo skulum taka a líta á hvernig þetta gæti raunverulega vinnu. 322 00:15:44,200 --> 00:15:48,430 Þannig að ég ætla að fara á undan og opna upp tvö Kóðinn dæmi hér. 323 00:15:48,430 --> 00:15:50,321 Einn sem er kallað Sigma 0. 324 00:15:50,321 --> 00:15:52,320 Og þetta er alls ekki endurkvæma, en við skulum taka 325 00:15:52,320 --> 00:15:53,694 a líta á hvað þetta forrit gerir. 326 00:15:53,694 --> 00:15:55,737 Ég hef færðu út allt athugasemdir frá henni en allt 327 00:15:55,737 --> 00:15:58,070 af the uppspretta merkjamál á CS50 er website hefur athugasemdir ef þú 328 00:15:58,070 --> 00:15:59,570 vilja til að lesa í gegnum það aftur seinna. 329 00:15:59,570 --> 00:16:02,010 Og við skulum gera a par af heilindarathugunum hér. 330 00:16:02,010 --> 00:16:06,640 >> Svo efst á þennan kóða, við höfum eru cs50.h. 331 00:16:06,640 --> 00:16:07,650 Hvað þýðir þetta að gera? 332 00:16:07,650 --> 00:16:08,990 Hvers vegna er það hér? 333 00:16:08,990 --> 00:16:11,740 Í skilmálum sanngjarnt leikmaður. 334 00:16:11,740 --> 00:16:12,424 Hvað þýðir það að gera? 335 00:16:12,424 --> 00:16:12,858 Já. 336 00:16:12,858 --> 00:16:14,160 >> Áhorfendur: Svo að GetInt aðgerð virkar. 337 00:16:14,160 --> 00:16:16,243 >> DAVID J. Malan: Svo að sem GetInt aðgerð virkar. 338 00:16:16,243 --> 00:16:18,115 Vegna inni þessa skrá, CS50.h, sem 339 00:16:18,115 --> 00:16:20,950 við munum sjá áður en langt í Skilmálar kóða þess, 340 00:16:20,950 --> 00:16:23,270 hefur fullt af störfum declared-- GetInt, GetString, 341 00:16:23,270 --> 00:16:26,950 og fullt af others-- og nema við höfum í raun að Hafa línu, 342 00:16:26,950 --> 00:16:29,320 þýðandinn Clang er ekki fara að vita að það er til staðar. 343 00:16:29,320 --> 00:16:32,400 Og sama gildir um línu Tveir þar Int er skilgreint 344 00:16:32,400 --> 00:16:35,101 printf, sem er fall við halda áfram að nota töluvert. 345 00:16:35,101 --> 00:16:37,850 Nú, lína fjögur virðast a lítill Funky vegna þess að það er bara einn Ferja. 346 00:16:37,850 --> 00:16:41,570 Það fékk semíkommu, ekki hrokkið axlabönd, ekki númer innan þess. 347 00:16:41,570 --> 00:16:44,640 En hvað gerði við köllum þetta hlutur í vikur áður? 348 00:16:44,640 --> 00:16:45,140 Já. 349 00:16:45,140 --> 00:16:46,060 Svo frumgerð. 350 00:16:46,060 --> 00:16:48,390 Og hvers vegna eigum við að hafa frumgerð sem virðist 351 00:16:48,390 --> 00:16:51,050 að vera svolítið óþarfi oftast vegna þess að við venjulega 352 00:16:51,050 --> 00:16:53,474 sjá virka aftur síðar í skránni, ekki satt? 353 00:16:53,474 --> 00:16:56,390 Svo hvers vegna ekki að have-- þú ert bara þú klóra höfuð þitt en ég tek það. 354 00:16:56,390 --> 00:16:57,302 Já. 355 00:16:57,302 --> 00:17:00,000 >> Áhorfendur: [inaudible] virka eftir helstu. 356 00:17:00,000 --> 00:17:01,000 DAVID J. Malan: Einmitt. 357 00:17:01,000 --> 00:17:04,089 Svo sem þýðandinn þekkir þig mun að lokum að skilgreina eða framkvæma 358 00:17:04,089 --> 00:17:06,579 að virka eftir helstu, væntanlega. 359 00:17:06,579 --> 00:17:08,462 Svo Clang og mest Þýðendur eru konar heimsk 360 00:17:08,462 --> 00:17:10,510 og þeir bara vita hvað þú segir þeim. 361 00:17:10,510 --> 00:17:12,569 Og ef þú vilt nota fall sem heitir Sigma, 362 00:17:12,569 --> 00:17:15,710 þú kenna betri þýðanda að það er til staðar fyrirfram. 363 00:17:15,710 --> 00:17:17,970 >> Nú, helstu sjálft, jafnvel þó að það er fullt af línum, 364 00:17:17,970 --> 00:17:19,839 er nokkuð kunnuglegt vonandi við nú. 365 00:17:19,839 --> 00:17:21,942 Það fékk að gera á meðan lykkja en tilgangur hennar í lífinu 366 00:17:21,942 --> 00:17:24,400 hér virðist er að fá heila tölu frá notanda. 367 00:17:24,400 --> 00:17:27,349 Og bara halda pestering honum eða hana þar til þeir vinna. 368 00:17:27,349 --> 00:17:30,670 Þá í samræmi 16 Ég hef áhugavert símtal. 369 00:17:30,670 --> 00:17:31,570 IntAnswer. 370 00:17:31,570 --> 00:17:33,710 Sem á vinstri hönd hlið gefur mér Int 371 00:17:33,710 --> 00:17:36,650 sem getur store-- heitir Answer-- sem er að fara að geyma, greinilega, 372 00:17:36,650 --> 00:17:39,090 skilagildi sigma. 373 00:17:39,090 --> 00:17:41,840 Svo er Sigma bara handahófskennt en þroskandi nafn 374 00:17:41,840 --> 00:17:44,500 sem ég hef gefið í aðgerð en tilgangur hennar í lífinu 375 00:17:44,500 --> 00:17:47,680 er að taka einn argument-- við munum kalla það N í þessu case-- 376 00:17:47,680 --> 00:17:52,280 og bara til að taka manntal þeim fjölda plús hvert jákvæð tala sem er 377 00:17:52,280 --> 00:17:53,200 minni en það. 378 00:17:53,200 --> 00:17:58,140 >> Svo ef ég fara í númer 2 til að Sigma, ég vil bæta við 2 plús 1 379 00:17:58,140 --> 00:18:00,240 auk 0-- ekki 0-- svo gefur það mér 3. 380 00:18:00,240 --> 00:18:05,320 Ef ég fara í 3 til morðingja, ég vil hafa 3 plús 2 plús 1, sem gefur mér 6. 381 00:18:05,320 --> 00:18:05,900 Og svo framvegis. 382 00:18:05,900 --> 00:18:09,750 Svo það bætir bara upp alla tölur minna en eða jafnt og henni. 383 00:18:09,750 --> 00:18:12,040 >> Nú, hérna ég ætla bara að fara að prenta út svarið. 384 00:18:12,040 --> 00:18:17,330 Svo eins og a fljótur andleg heilbrigði stöðva, við skulum gera Sigma 0-- punktur rista Sigma 0-- 385 00:18:17,330 --> 00:18:18,690 og láta mig slá í 2. 386 00:18:18,690 --> 00:18:19,960 Og ég fæ reyndar 3. 387 00:18:19,960 --> 00:18:21,240 Leyfðu mér að slá í 3. 388 00:18:21,240 --> 00:18:22,860 Ég fæ örugglega 6. 389 00:18:22,860 --> 00:18:27,636 Og ef einhver getur gert stærðfræði fljótt, ef ég geri 50 það er ég að fara að fá? 390 00:18:27,636 --> 00:18:29,839 >> Áhorfendur: [inaudible]. 391 00:18:29,839 --> 00:18:30,880 DAVID J. Malan: Jæja, engin. 392 00:18:30,880 --> 00:18:33,340 En 1.275 sem er nokkuð nálægt. 393 00:18:33,340 --> 00:18:38,850 Þannig að þetta er afleiðing af að gera 50 plús 49 plús 48 plús 47 plús 46 394 00:18:38,850 --> 00:18:40,349 alla leið niður í 1. 395 00:18:40,349 --> 00:18:41,390 Svo það er allt Sigma gerir. 396 00:18:41,390 --> 00:18:43,350 En við skulum sjá hvernig við höfum framkvæmda það núna. 397 00:18:43,350 --> 00:18:45,790 Svo er hérna fallið sjálft. 398 00:18:45,790 --> 00:18:49,000 Og þetta virðist ekki hafa nokkuð að gera með endurkvæmni enn. 399 00:18:49,000 --> 00:18:51,070 Í raun erum við með því að nota gamla skólanum tækni. 400 00:18:51,070 --> 00:18:56,680 Ég er að virkja breytilega heitir summan núll, þá hef ég foreloop hér, 401 00:18:56,680 --> 00:19:00,790 og ég er að lýsa yfir Int heitir Ég, setja það jafn 1-- 402 00:19:00,790 --> 00:19:04,080 þó að ég gæti sett það jafn núll, en þar sem ég er að gera viðbót, 403 00:19:04,080 --> 00:19:05,340 Hverjum er ekki sama ef það er núll eða einn. 404 00:19:05,340 --> 00:19:06,660 Það er að fara að hafa engin áhrif. 405 00:19:06,660 --> 00:19:10,110 >> Þannig að ég ætla iterating svo lengi sem ég er minna en eða jafnt og m, sem 406 00:19:10,110 --> 00:19:11,671 er rök sem var samþykkt í. 407 00:19:11,671 --> 00:19:13,670 Og þá er ég að halda bara incrementing I. og innsýn 408 00:19:13,670 --> 00:19:20,010 lykkju allt sem ég er að gera er að gera summan plús jafngildir I. Og það er vísvitandi. 409 00:19:20,010 --> 00:19:22,326 Ég vil ekki að gera, í þessu ræða, eins og summa plús plús. 410 00:19:22,326 --> 00:19:24,790 Ég vil í raun og veru að bæta núverandi gildi I 411 00:19:24,790 --> 00:19:28,190 sem heldur að fá stærri og stærri og stærri í gangi stemma. 412 00:19:28,190 --> 00:19:30,210 >> Og þá er ég aftur summa. 413 00:19:30,210 --> 00:19:33,850 Og svo svarið fær gildi summa. 414 00:19:33,850 --> 00:19:35,282 Og þá er ég að prenta það út. 415 00:19:35,282 --> 00:19:37,740 Svo er það tækifæri hér, þó að eins konar einfalda 416 00:19:37,740 --> 00:19:41,260 þetta númer eðli og hvers konar höggi einn er 417 00:19:41,260 --> 00:19:43,250 hugur í skilmálar af the einfaldleiki jafnvel þótt það 418 00:19:43,250 --> 00:19:45,700 tekur tíma að raða af þakka hvers vegna þetta 419 00:19:45,700 --> 00:19:47,330 er öflugur í þessum litlu dæmum. 420 00:19:47,330 --> 00:19:50,380 Hér er Sigma one-- svo önnur útgáfa af þessum kóða. 421 00:19:50,380 --> 00:19:55,290 Allt upp efst er eins svo sama sagan gildir eins og áður. 422 00:19:55,290 --> 00:19:59,220 En nú skulum líta á framkvæmd sigma sem 423 00:19:59,220 --> 00:20:05,040 Ég hef tálga niður í aðeins þessir lines-- fjórar línur af kóða, í raun, 424 00:20:05,040 --> 00:20:06,980 auk sumir hrokkið axlabönd og hvítt rúm. 425 00:20:06,980 --> 00:20:07,930 >> En hvað er ég að gera? 426 00:20:07,930 --> 00:20:11,050 Ef m er minna en eða jafnt og núll, ég þarf að eins konar höndla 427 00:20:11,050 --> 00:20:12,490 að frábær einfalt mál. 428 00:20:12,490 --> 00:20:15,450 Og ef þú rétt mér núll eða eitthvað neikvæð sem er bara skrýtið, 429 00:20:15,450 --> 00:20:17,909 Ég ætla bara að fara að geðþótta en stöðugt aftur núll. 430 00:20:17,909 --> 00:20:20,200 Ég vil ekki þetta að komast í einhverju skrýtnu Infinite 431 00:20:20,200 --> 00:20:21,810 lykkja vegna þess að neikvætt gildi. 432 00:20:21,810 --> 00:20:25,070 Þannig að ég ætla bara að segja, ef þú gefur mér núll eða minna, ég er aftur á núlli. 433 00:20:25,070 --> 00:20:28,220 >> En það er gott því það er að einni síðu af símaskránni 434 00:20:28,220 --> 00:20:28,790 sem er eftir. 435 00:20:28,790 --> 00:20:32,660 Ég er að ætla mjög sérstaka vandamál og ekki að kalla eitthvað endurkvæmt. 436 00:20:32,660 --> 00:20:36,580 En í línu 31, hvað get ég virðist vera að gera? 437 00:20:36,580 --> 00:20:39,780 Svigar eru bara að halda það vonandi svolítið skýrari. 438 00:20:39,780 --> 00:20:42,110 En allt sem ég er að gera er ég aftur m-- hvað 439 00:20:42,110 --> 00:20:45,790 þú hönd me-- plús á gildi m-- miður, 440 00:20:45,790 --> 00:20:49,052 að viðbættu virði morðingja af m mínus 1. 441 00:20:49,052 --> 00:20:50,010 Svo hvað þýðir þetta? 442 00:20:50,010 --> 00:20:53,965 Ef þú gefur mér númer 3 sem inntak, svarið sem ég vil fá að lokum 443 00:20:53,965 --> 00:20:57,307 er 6 vegna 3 plús 2 plús 1 gefur mér 6. 444 00:20:57,307 --> 00:20:59,390 En hvernig get ég hugsa um hvernig þetta númer er í gangi? 445 00:20:59,390 --> 00:21:03,070 Í fyrsta skipti sem ég kalla Sigma og ég fara í verðmæti 3, 446 00:21:03,070 --> 00:21:07,960 það er eins og að segja á stykki pappír, hér er gildi 3 447 00:21:07,960 --> 00:21:09,920 og ég hef verið samþykkt þetta sem morðingja. 448 00:21:09,920 --> 00:21:13,090 3 er augljóslega ekki minna en 0 svo sem IF skilyrði gildir ekki um. 449 00:21:13,090 --> 00:21:14,020 The annar gerir það. 450 00:21:14,020 --> 00:21:14,990 Svo hvað á ég að gera? 451 00:21:14,990 --> 00:21:19,902 Ég vil aftur m, sem er 3, auk Sigma af m mínus 1. 452 00:21:19,902 --> 00:21:21,110 Svo láta mig halda utan um þetta. 453 00:21:21,110 --> 00:21:22,710 Ég ætla að setja þetta stykki af pappír niður. 454 00:21:22,710 --> 00:21:24,668 Og hvers virði, að vera ljóst, er ég að fara að fara 455 00:21:24,668 --> 00:21:26,540 í morðingja á þessum tímapunkti í sögunni? 456 00:21:26,540 --> 00:21:28,080 Hvað fjölda? 457 00:21:28,080 --> 00:21:28,610 2, ekki satt? 458 00:21:28,610 --> 00:21:29,670 3 mínus 1 er 2. 459 00:21:29,670 --> 00:21:32,000 Þannig að ég þarf bara smá rusl úr pappír hér. 460 00:21:32,000 --> 00:21:33,931 Svo nú Sigma er að fá aftur kallað. 461 00:21:33,931 --> 00:21:35,930 Og ég hef vísvitandi sett þetta niður vegna þess að það er 462 00:21:35,930 --> 00:21:38,070 svona eins og stansa að útgáfa af sögunni 463 00:21:38,070 --> 00:21:40,720 því nú er ég áherslu á merki af m mínus 1. 464 00:21:40,720 --> 00:21:42,660 Svo m var 3, m mínus 1 er 2. 465 00:21:42,660 --> 00:21:45,110 Svo hér er 2 sem ég hef verið samþykkt. 466 00:21:45,110 --> 00:21:48,510 2 er augljóslega ekki minna en 0 þannig að mál ekki við. 467 00:21:48,510 --> 00:21:53,445 Annað sem ég aftur m, sem er þetta hlutur, auk Sigma hvers virði? 468 00:21:53,445 --> 00:21:56,160 469 00:21:56,160 --> 00:21:59,650 Svo ef Sigma af 1-- vegna m er núna 2 þannig 2 mínus 1 er 1. 470 00:21:59,650 --> 00:22:01,950 Svo nú hef ég bara gildið 1. 471 00:22:01,950 --> 00:22:04,810 Ég er liggur bara númer 1 við virka sigma-- 472 00:22:04,810 --> 00:22:09,120 eða mig here-- svo 1 er augljóslega ekki minna en núll, enn ekki við. 473 00:22:09,120 --> 00:22:12,970 >> Else aftur 1 plus Sigma hvað? 474 00:22:12,970 --> 00:22:13,470 0. 475 00:22:13,470 --> 00:22:14,678 Svo láta mig muna bara það. 476 00:22:14,678 --> 00:22:15,920 Ég næ aftur að því síðar. 477 00:22:15,920 --> 00:22:18,060 Nú ætla ég að fara á undan og hripa niður fjölda 0 því það er 478 00:22:18,060 --> 00:22:19,470 rök mín eða breytu. 479 00:22:19,470 --> 00:22:22,400 Ég stóðst tölunni 0 og að lokum þetta ferli 480 00:22:22,400 --> 00:22:25,760 þess bara að endurtaka mig auglýsingu nauseum er hætta vegna þess að það 481 00:22:25,760 --> 00:22:28,820 á ég að gera strax þegar ég sé þetta 0? 482 00:22:28,820 --> 00:22:29,790 Ég aftur á núlli. 483 00:22:29,790 --> 00:22:31,790 Svo nú þú ert að baka söguna. 484 00:22:31,790 --> 00:22:34,430 >> Ef ég fer nú aftur í tímann, hvað var nýjasta hlutur 485 00:22:34,430 --> 00:22:36,670 Ég gerði ef þú værir bókstaflega trekkja myndskeið? 486 00:22:36,670 --> 00:22:41,630 Ég ætla að taka upp nýjustu 1 og það gefur mér 1 plús 0 er 1. 487 00:22:41,630 --> 00:22:44,100 Ef ég halda trekkja að Sagan, sem er að fara að gefa mér 488 00:22:44,100 --> 00:22:46,880 2 plús þetta gangi gildi, sem er 1. 489 00:22:46,880 --> 00:22:47,789 Svo er það 3. 490 00:22:47,789 --> 00:22:49,330 Og þá er ég að fara að halda trekkja. 491 00:22:49,330 --> 00:22:54,220 Þegar ég setti fyrst niður fjölda 3-- svo 3 plús 3 gefur mér 6. 492 00:22:54,220 --> 00:22:57,272 >> Og nú, ef þú hefur rewound vídeó upp að þessu stigi, 493 00:22:57,272 --> 00:22:58,980 þetta var mjög Fyrsta spurningin sem ég spurði. 494 00:22:58,980 --> 00:23:01,450 Þegar liðin 3, hvað er Sigma af 3? 495 00:23:01,450 --> 00:23:04,204 Það er reyndar 6, summan af öll þessi stykki af pappír. 496 00:23:04,204 --> 00:23:07,120 Þannig að ef það tekur smá stund að vefja um skoðun um, það er fínt. 497 00:23:07,120 --> 00:23:10,700 En íhuga það var little-- það var mjög vísvitandi að ég staflað 498 00:23:10,700 --> 00:23:12,990 þessar tölur ofan á hvor aðra. 499 00:23:12,990 --> 00:23:17,440 Það er góður af eins og að hafa memory-- met í tíma, 500 00:23:17,440 --> 00:23:19,940 eins og hreinsinn í vídeó, sem ég get örugglega baka í. 501 00:23:19,940 --> 00:23:24,350 Og við erum að fara að koma aftur til sem samlíking í réttlátur a lítill hluti. 502 00:23:24,350 --> 00:23:28,240 >> En fyrst, það kemur í ljós að það er a einhver fjöldi af geeks og fyndið fólk, 503 00:23:28,240 --> 00:23:29,614 Ég giska á Google. 504 00:23:29,614 --> 00:23:31,530 Myndi einhver sem er mjög góður á Googling huga 505 00:23:31,530 --> 00:23:34,270 að koma upp fyrir réttlátur a augnablik og hjálpa mér að leita að einhverju? 506 00:23:34,270 --> 00:23:35,650 Mjög, mjög lágt lykill. 507 00:23:35,650 --> 00:23:37,870 Einhver sem er aldrei koma upp áður, kannski. 508 00:23:37,870 --> 00:23:38,370 OK. 509 00:23:38,370 --> 00:23:39,030 Já? 510 00:23:39,030 --> 00:23:39,530 Láttu ekki svona. 511 00:23:39,530 --> 00:23:41,410 Koma niður. 512 00:23:41,410 --> 00:23:42,183 Hvað heitir þú? 513 00:23:42,183 --> 00:23:42,870 >> SAM: Sam. 514 00:23:42,870 --> 00:23:44,290 >> DAVID J. Malan: Sam, koma niður. 515 00:23:44,290 --> 00:23:45,320 Þetta er sama. 516 00:23:45,320 --> 00:23:46,280 Gaman að hitta þig. 517 00:23:46,280 --> 00:23:46,780 Hey. 518 00:23:46,780 --> 00:23:47,580 Komdu yfir. 519 00:23:47,580 --> 00:23:51,290 Svo allt sem ég þarf að gera, ef þú gætir, Sam, hér er Google. 520 00:23:51,290 --> 00:23:53,240 Getur þú leitar að hugtakið endurkvæmni? 521 00:23:53,240 --> 00:23:55,770 522 00:23:55,770 --> 00:23:56,270 Spilla ekki. 523 00:23:56,270 --> 00:23:59,940 524 00:23:59,940 --> 00:24:00,970 >> Og nú let's-- já. 525 00:24:00,970 --> 00:24:03,380 OK Smelltu það. 526 00:24:03,380 --> 00:24:04,315 Betri smell sem. 527 00:24:04,315 --> 00:24:07,020 528 00:24:07,020 --> 00:24:08,020 Ahh, fá það. 529 00:24:08,020 --> 00:24:08,520 Nei? 530 00:24:08,520 --> 00:24:09,050 OK. 531 00:24:09,050 --> 00:24:10,430 Svo skulum gera nokkrar aðra. 532 00:24:10,430 --> 00:24:12,830 Ekki svo mikið skyld námslega hér, en hefur þú 533 00:24:12,830 --> 00:24:14,520 alltaf leitað á Google að anagram? 534 00:24:14,520 --> 00:24:15,280 >> SAM: Nei 535 00:24:15,280 --> 00:24:15,520 >> DAVID J. Malan: OK. 536 00:24:15,520 --> 00:24:17,186 Leita að anagram stað endurkvæmni. 537 00:24:17,186 --> 00:24:22,540 538 00:24:22,540 --> 00:24:23,790 Hvernig væri út og suður. 539 00:24:23,790 --> 00:24:25,515 Þú alltaf leitað til og suður? 540 00:24:25,515 --> 00:24:29,260 541 00:24:29,260 --> 00:24:32,692 Nú, þetta er svolítið erfitt að sjá en vonandi everything's-- lagi. 542 00:24:32,692 --> 00:24:34,150 Það er bara þú og ég að njóta þessa. 543 00:24:34,150 --> 00:24:34,690 OK. 544 00:24:34,690 --> 00:24:38,950 >> Svo að lokum, þetta one's-- það er lítið út og suður. 545 00:24:38,950 --> 00:24:40,810 Nú gera tunnu rúlla. 546 00:24:40,810 --> 00:24:44,460 547 00:24:44,460 --> 00:24:45,310 Wonderful. 548 00:24:45,310 --> 00:24:45,910 Allt í lagi. 549 00:24:45,910 --> 00:24:47,110 Kærar þakkir til Sam. 550 00:24:47,110 --> 00:24:49,416 Gjörðu svo vel. 551 00:24:49,416 --> 00:24:50,400 Takk. 552 00:24:50,400 --> 00:24:52,807 >> Svo hvað er að gerast í öllum þessara vitleysu dæmum? 553 00:24:52,807 --> 00:24:55,640 Svo í raun, undir hetta Milljónir Google línur af kóða 554 00:24:55,640 --> 00:24:58,860 greinilega er nokkur kjánalegt IF skilyrði sem eru í raun 555 00:24:58,860 --> 00:25:01,160 stöðva ef notandi hefur slegið í þessari setningu, 556 00:25:01,160 --> 00:25:03,760 gera eitthvað sem líklega tók nontrivial magn af tími 557 00:25:03,760 --> 00:25:06,080 að innleiða bara að vera skemmtilegur á þennan hátt. 558 00:25:06,080 --> 00:25:08,430 En það er allt það snýst niður undir hetta. 559 00:25:08,430 --> 00:25:11,570 En, auðvitað, Recursion er af geekier 560 00:25:11,570 --> 00:25:13,880 dæmi meðal þeirra sérstökum bragðarefur. 561 00:25:13,880 --> 00:25:16,880 Og vafalaust er það öðrum þarna úti eins vel að við höfum kannski ekki einu sinni 562 00:25:16,880 --> 00:25:18,230 komst bara ennþá. 563 00:25:18,230 --> 00:25:22,830 >> Svo taka a líta, eða íhuga nú eftirfarandi forrit, 564 00:25:22,830 --> 00:25:24,830 og vissulega grípa eitthvað af þessum á leið út. 565 00:25:24,830 --> 00:25:28,820 Ég ætla að fara á undan og opna forrit sem er 566 00:25:28,820 --> 00:25:30,920 ætla að reyna að skipta tvö gildi. 567 00:25:30,920 --> 00:25:33,210 En áður en við förum þangað, við skulum gera þetta. 568 00:25:33,210 --> 00:25:38,500 Gætum við fengið eitt sjálfboðaliði, ég held? 569 00:25:38,500 --> 00:25:40,480 Vilt þú áhuga á að gerast sjálfboðaliði? 570 00:25:40,480 --> 00:25:40,980 Nei? 571 00:25:40,980 --> 00:25:41,890 Komdu upp. 572 00:25:41,890 --> 00:25:42,390 Komdu upp. 573 00:25:42,390 --> 00:25:42,890 Allt í lagi. 574 00:25:42,890 --> 00:25:44,136 Þannig að nafn þitt er hvað? 575 00:25:44,136 --> 00:25:44,810 >> LAUREN: Lauren. 576 00:25:44,810 --> 00:25:45,768 >> DAVID J. Malan: Lauren. 577 00:25:45,768 --> 00:25:46,890 Komdu upp, Lauren. 578 00:25:46,890 --> 00:25:50,140 Svo Lauren er að vera áskorun hér eins og hér segir. 579 00:25:50,140 --> 00:25:52,310 Gaman að hitta þig. 580 00:25:52,310 --> 00:25:55,730 Svo hefur Lauren hér fyrir framan af tveimur hennar tómum bolla. 581 00:25:55,730 --> 00:25:57,570 Og við höfum sumir appelsínugult safa og mjólk 582 00:25:57,570 --> 00:26:00,301 og við erum að fara að fara undan og gera eftirfarandi. 583 00:26:00,301 --> 00:26:01,550 Við erum bara að fara að fylla þetta. 584 00:26:01,550 --> 00:26:07,840 Nokkrar aura af mjólk hérna og við skulum fylla smá appelsínusafa hérna. 585 00:26:07,840 --> 00:26:11,475 >> Og fyrir framan öllum þessi áhorfendur meðlimir, 586 00:26:11,475 --> 00:26:13,550 skipti á tvö gildi þessara bolla. 587 00:26:13,550 --> 00:26:16,970 Setja appelsínusafa í mjólk bikarnum og mjólk í appelsínusafa bikarnum. 588 00:26:16,970 --> 00:26:22,380 589 00:26:22,380 --> 00:26:26,150 Hvernig myndir þú gera þetta ef þú værir á heim og hafði aðgang að öðrum birgðum? 590 00:26:26,150 --> 00:26:27,400 LAUREN: Setjið það í annan bolla. 591 00:26:27,400 --> 00:26:28,191 DAVID J. Malan: OK. 592 00:26:28,191 --> 00:26:31,940 Svo skulum við hafa tímabundið breyta, ef við munum. 593 00:26:31,940 --> 00:26:35,871 Og fara á undan núna og innleiða þetta sama swap aðferð. 594 00:26:35,871 --> 00:26:36,370 Svo gott. 595 00:26:36,370 --> 00:26:41,490 Við höfum sett OJ í tímabundið breyta, mjólk í Stjtíð breytu, 596 00:26:41,490 --> 00:26:44,481 og nú tímabundið breyta í mjólk breytu. 597 00:26:44,481 --> 00:26:44,980 OK. 598 00:26:44,980 --> 00:26:48,740 Svo mjög vel gert hingað til. 599 00:26:48,740 --> 00:26:50,990 Svo kemur out-- halda að hélt fyrir réttlátur a augnablik. 600 00:26:50,990 --> 00:26:54,479 Hér bara gáfuð það upp a hluti, þetta væri samsvarandi C póstnúmer 601 00:26:54,479 --> 00:26:55,520 að við framkvæmd bara. 602 00:26:55,520 --> 00:26:58,650 Við höfðum tvær inntak, a og b, sem báðar sem við munum bara segja fyrir einfaldleika eru 603 00:26:58,650 --> 00:26:59,260 INT er. 604 00:26:59,260 --> 00:27:02,780 Og eftir hér, ef ég vil skipta gildin tveimur breytum, A og B, 605 00:27:02,780 --> 00:27:06,890 við þurfum örugglega milliliður, a tímabundin breyta, tímabundið bolli, 606 00:27:06,890 --> 00:27:10,830 sem má smella hella einum af þeim gildum þannig að við höfum tákn fyrir það. 607 00:27:10,830 --> 00:27:13,480 En þá er kóðinn nákvæmlega sem Lauren hér til framkvæmda. 608 00:27:13,480 --> 00:27:15,500 >> Nú, bara til að fá lítið geggjaðri, kemur í ljós 609 00:27:15,500 --> 00:27:20,930 að þú getur gert þetta án þess að tímabundið breyta. 610 00:27:20,930 --> 00:27:24,870 Til að gera þetta almennilega, þó, við erum að fara að þurfa að svindla með einhverjum efnafræði. 611 00:27:24,870 --> 00:27:26,380 Við höfum nokkrar auka bolla hér. 612 00:27:26,380 --> 00:27:29,600 Svo næsta hlutur sem lítur eins og mjólk og vatn perhaps-- 613 00:27:29,600 --> 00:27:34,090 eða mjólk og OJ-- er við hafa sumir vatn, þannig að við munum fylla þennan upp 614 00:27:34,090 --> 00:27:36,486 með nokkrum aura af skýrum vatni. 615 00:27:36,486 --> 00:27:38,332 Það er líklega of mikið. 616 00:27:38,332 --> 00:27:38,832 Já. 617 00:27:38,832 --> 00:27:39,934 Það er örugglega of mikið. 618 00:27:39,934 --> 00:27:40,600 Halda á einni sek. 619 00:27:40,600 --> 00:27:43,520 620 00:27:43,520 --> 00:27:48,420 >> Og nú höfum við olíu, sem, eins og ég man frá miðjum skóla efnafræði bekknum, 621 00:27:48,420 --> 00:27:49,990 vonandi er það ekki blanda með vatni. 622 00:27:49,990 --> 00:27:53,650 En það er góður af eins konar lítur út eins og mjólk og OJ. 623 00:27:53,650 --> 00:27:55,760 Svo nú, án þess að nota tímabundið breyta, 624 00:27:55,760 --> 00:27:59,260 getur þú skipta þeim tvö gildi? 625 00:27:59,260 --> 00:28:03,884 Svo olíur fer í vatn bolla, vatn fer inn í olíu bolla. 626 00:28:03,884 --> 00:28:04,800 LAUREN: Engin önnur bollar? 627 00:28:04,800 --> 00:28:05,940 DAVID J. Malan: Engin önnur bollar. 628 00:28:05,940 --> 00:28:07,860 Og ég hef í raun ekki prófað þetta áður en þetta ár 629 00:28:07,860 --> 00:28:10,110 svo ég veit ekki hvort þetta verður raunverulega vinna efnafræðilega. 630 00:28:10,110 --> 00:28:16,130 631 00:28:16,130 --> 00:28:18,650 Það var ekki að gerast. 632 00:28:18,650 --> 00:28:19,761 Er það að vinna? 633 00:28:19,761 --> 00:28:20,260 Allt í lagi. 634 00:28:20,260 --> 00:28:20,990 Svo aðgreina? 635 00:28:20,990 --> 00:28:21,490 Good. 636 00:28:21,490 --> 00:28:24,714 Nú fengum að fá vatn í hinn bolla. 637 00:28:24,714 --> 00:28:27,630 Klárari efnafræði útstöðvar gat sennilega gera þetta betur en ég. 638 00:28:27,630 --> 00:28:28,510 >> LAUREN: Vatnið er á botninum. 639 00:28:28,510 --> 00:28:31,910 >> DAVID J. Malan: The water-- sem var hvað er lykillinn að síðast þegar við gerðum þetta. 640 00:28:31,910 --> 00:28:33,950 Þú þarft að gera það í réttri röð. 641 00:28:33,950 --> 00:28:34,450 Já. 642 00:28:34,450 --> 00:28:35,270 Það er allt í lagi. 643 00:28:35,270 --> 00:28:37,290 Svo nú höfum við tvo bolla af olíu. 644 00:28:37,290 --> 00:28:37,790 OK. 645 00:28:37,790 --> 00:28:38,510 Það er allt í lagi. 646 00:28:38,510 --> 00:28:40,110 En efnafræðilega ef þetta virkaði en I-- 647 00:28:40,110 --> 00:28:41,200 >> LAUREN: Þetta er vatn. 648 00:28:41,200 --> 00:28:41,930 >> DAVID J. Malan: Það er að mestu leyti vatn. 649 00:28:41,930 --> 00:28:42,430 Allt í lagi. 650 00:28:42,430 --> 00:28:44,210 En það er samt sama bolli og áður. 651 00:28:44,210 --> 00:28:47,570 Svo hella it-- reyna það þarna. 652 00:28:47,570 --> 00:28:49,300 OK. 653 00:28:49,300 --> 00:28:51,010 Þetta er gott að nota bekknum tíma í dag. 654 00:28:51,010 --> 00:28:51,510 OK. 655 00:28:51,510 --> 00:28:53,890 Svo we-- nú gott. 656 00:28:53,890 --> 00:28:55,460 Eiginlega. 657 00:28:55,460 --> 00:28:55,960 Allt í lagi. 658 00:28:55,960 --> 00:28:56,690 Svo mjög góður. 659 00:28:56,690 --> 00:29:00,006 Þakka þér að Lauren. 660 00:29:00,006 --> 00:29:01,950 Mjög vel gert. 661 00:29:01,950 --> 00:29:04,570 >> Svo bara til að blása huga þínum, og þetta er ef til vill eitthvað 662 00:29:04,570 --> 00:29:08,660 að spila með ef þú vilt í CS50 ID, þú getur í raun skipta tvær breytur 663 00:29:08,660 --> 00:29:11,470 án þess að nota tímabundið heiltölu. 664 00:29:11,470 --> 00:29:13,060 Og þetta er samsvarandi C póstnúmer. 665 00:29:13,060 --> 00:29:16,110 Og ef þú manst frá síðasta Miðvikudagur, við kynntum, ef stuttlega, 666 00:29:16,110 --> 00:29:19,720 sumir nýir rekstraraðilar C og gerir einhver minnist hvað litla gulrót 667 00:29:19,720 --> 00:29:23,660 tákn er, að lítið þríhyrningslaga Táknið frá lyklaborðinu táknar? 668 00:29:23,660 --> 00:29:26,003 Hvað Bita rekstraraðila? 669 00:29:26,003 --> 00:29:26,770 >> Áhorfendur: EXOR. 670 00:29:26,770 --> 00:29:27,645 >> DAVID J. Malan: EXOR. 671 00:29:27,645 --> 00:29:28,560 Exclusive Or. 672 00:29:28,560 --> 00:29:32,920 Svo ef þú vilt, bara til gamans á heim, til að gefa a og b Two handahófskennt 673 00:29:32,920 --> 00:29:36,072 gildi eins og allir eight-- og I myndi velja átta bita gildi. 674 00:29:36,072 --> 00:29:38,530 Ef þú gerir þetta með 32 bita, þú munt mjög fljótt fá leiðindi. 675 00:29:38,530 --> 00:29:42,150 En bara að gefa sér átta bita gildi sem er hvað, einn eða tveir, 676 00:29:42,150 --> 00:29:43,790 og gefa b svipuðum gildi. 677 00:29:43,790 --> 00:29:46,810 Og þá með skilgreiningu af XOR frá síðasta miðvikudag, 678 00:29:46,810 --> 00:29:52,560 beita þeirri smátt og smátt, hver þessir átta bitar í hverju a og b, 679 00:29:52,560 --> 00:29:54,980 og þá gera það nákvæmlega á þessum kóða. 680 00:29:54,980 --> 00:29:58,170 Og það er ekki rangt það þú sérð hér á skjánum. 681 00:29:58,170 --> 00:30:02,100 Það snýst örugglega um að þremur XOR rekstri 682 00:30:02,100 --> 00:30:05,910 og einhvern veginn dularfullur a og b munu skiptast stöðu 683 00:30:05,910 --> 00:30:08,010 án þess að tapa öllum upplýsingum. 684 00:30:08,010 --> 00:30:11,580 >> Svo er olía og vatn bragð er Næst raunverulega heimi endurfæðingu 685 00:30:11,580 --> 00:30:12,980 Ég gæti hugsað að líkja því. 686 00:30:12,980 --> 00:30:15,950 En það er örugglega auðveldara að nota tímabundið breytu, 687 00:30:15,950 --> 00:30:16,920 eins og í þessu tilfelli hér. 688 00:30:16,920 --> 00:30:21,190 Og þetta líka er tækifæri að segja, of, svona ör hagræðingu, 689 00:30:21,190 --> 00:30:23,590 sem tölvunarfræðingur myndi segja, en góður af gaman 690 00:30:23,590 --> 00:30:27,060 að brag um hvernig þú gerðir þetta án eins skipta með auka breytu, 691 00:30:27,060 --> 00:30:28,640 það er ekki allt sem sannfærandi. 692 00:30:28,640 --> 00:30:31,619 Vegna þess að vista 32 bita, sem um er að ræða raunveruleg int, 693 00:30:31,619 --> 00:30:33,410 er ekki allt sem sannfærandi á kerfi þar 694 00:30:33,410 --> 00:30:36,722 þú gætir verið að nota tugum megabæti eða jafnvel meira svo minni þessa dagana. 695 00:30:36,722 --> 00:30:38,680 Og í raun, þegar við fáum til síðari Heimadæmi 696 00:30:38,680 --> 00:30:41,010 og þú framkvæma álög afgreiðslumaður og þú munt 697 00:30:41,010 --> 00:30:43,550 vera áskorun að gera það með þetta eins lítið RAM og eins lítið 698 00:30:43,550 --> 00:30:46,820 tími og hægt á computer-- þér enn 699 00:30:46,820 --> 00:30:50,160 hafa viku til að hrinda í framkvæmd it-- þú munt have-- þú munt vera 700 00:30:50,160 --> 00:30:51,799 áskorun að draga þessar auðlindir. 701 00:30:51,799 --> 00:30:53,840 Og það er í raun eina tilefni þessa önn 702 00:30:53,840 --> 00:30:57,940 þar sem þú munt vera hvattir til að raka burt jafnvel besta árangur 703 00:30:57,940 --> 00:30:59,340 kostar annars. 704 00:30:59,340 --> 00:31:02,200 >> Svo what-- hvernig getum við sjá þetta í raun kóða? 705 00:31:02,200 --> 00:31:04,530 Leyfðu mér að fara á undan núna og opna dæmi 706 00:31:04,530 --> 00:31:07,700 sem vísvitandi er kallað Nei Swap því það er ekki 707 00:31:07,700 --> 00:31:10,670 í raun skipta breytur eins og þú í raun getur átt von á. 708 00:31:10,670 --> 00:31:12,260 Svo skulum taka a líta. 709 00:31:12,260 --> 00:31:17,050 Hér er forrit sem hefur ekki CS50 Bókasafn gangi, bara venjulegu I / O. 710 00:31:17,050 --> 00:31:19,560 Nú höfum við frumgerð fyrir skipti áðan sem bara 711 00:31:19,560 --> 00:31:21,540 þýðir það er got að vera skilgreind síðar. 712 00:31:21,540 --> 00:31:22,550 Og hér er aðal. 713 00:31:22,550 --> 00:31:26,000 >> Ég úthlutað geðþótta x og y, hver um sig, gildin I og II 714 00:31:26,000 --> 00:31:28,590 bara vegna þess að þeir eru lítið og auðvelt að hugsa um. 715 00:31:28,590 --> 00:31:32,280 Og þá hef ég bara fullt af printfs þar sem ég hef geðheilsu stöðva. x er 1 716 00:31:32,280 --> 00:31:35,110 og Y er 2 er væntanlega hvað þessir printfs segja. 717 00:31:35,110 --> 00:31:36,530 Svo engin galdur svona langt. 718 00:31:36,530 --> 00:31:40,100 >> Þá ætla ég að halda því fram með prenta def, skipta punktur punktur punktur. 719 00:31:40,100 --> 00:31:43,730 Ég ætla að hringja í skipti virka, sem liggur í x og y. 720 00:31:43,730 --> 00:31:47,350 Og við skulum gera ráð fyrir því hér að skipti er hrint í framkvæmd nákvæmlega 721 00:31:47,350 --> 00:31:49,930 eins og það var í smá stund síðan með tímabundna breytu. 722 00:31:49,930 --> 00:31:52,670 Og svo ég kröfu djarflega, skipti. 723 00:31:52,670 --> 00:31:55,429 x er nú þetta og y er nú það. 724 00:31:55,429 --> 00:31:57,220 En the skrá, að sjálfsögðu, heitir No Víxla. 725 00:31:57,220 --> 00:31:58,678 Svo skulum sjá raunverulega hvað gerist. 726 00:31:58,678 --> 00:32:04,450 Ef ég safna saman enga skipti og þá do ./noswap, x er 1, y er 2. 727 00:32:04,450 --> 00:32:05,770 Makaskipti skipti. 728 00:32:05,770 --> 00:32:07,200 x er 1, y er 2. 729 00:32:07,200 --> 00:32:11,980 Svo það virðist í raun að vera gölluð jafnvel þó swap-- skulum fletta niður now-- 730 00:32:11,980 --> 00:32:16,542 er framkvæmd nákvæmlega á því númer Ég lagði stund síðan. 731 00:32:16,542 --> 00:32:19,000 Þannig að við erum ekki að fara að fá ímynda með XOR efni fyrir nú. 732 00:32:19,000 --> 00:32:21,890 Þetta líka, ætti að virka eins og með mjólk og OJ, 733 00:32:21,890 --> 00:32:25,820 en það virðist ekki vera að virka. 734 00:32:25,820 --> 00:32:27,180 >> Svo skulum gera þetta aftur. 735 00:32:27,180 --> 00:32:29,310 Kannski ég var bara ekki að keyra það rétt. 736 00:32:29,310 --> 00:32:32,010 Svo skulum hlaupa No Víxla aftur. 737 00:32:32,010 --> 00:32:32,900 Kannski I-- nr. 738 00:32:32,900 --> 00:32:34,400 Svo það er bara ekki að virka. 739 00:32:34,400 --> 00:32:36,060 Svo skulum gera smá geðheilsu stöðva. 740 00:32:36,060 --> 00:32:39,690 Leyfðu mér að fara á undan hér í Swap og bara bæta við, bíddu í eina mínútu, 741 00:32:39,690 --> 00:32:43,856 a er% i / n og við skulum stinga í verðmæti a. 742 00:32:43,856 --> 00:32:45,730 Vegna þess að ég vil virkilega til að sjá hvað er að gerast. 743 00:32:45,730 --> 00:32:47,570 Og reyndar, þetta er a kembiforrit tækni 744 00:32:47,570 --> 00:32:50,028 sem þú gætir verið að nota í vinnutíma eða heima þegar, 745 00:32:50,028 --> 00:32:53,560 ætt við fyrri hluta Dans Video Armendáriz í PSET3 746 00:32:53,560 --> 00:32:56,870 þar sem við kynnt prenta skýring sem sem mælt er með tækni, að minnsta kosti 747 00:32:56,870 --> 00:32:58,080 til einfaldra tilvikum. 748 00:32:58,080 --> 00:33:01,720 Leyfðu mér að fara á undan og keyra gera nei skipti aftur, ./noswap. 749 00:33:01,720 --> 00:33:04,370 750 00:33:04,370 --> 00:33:05,840 >> Áhugavert. 751 00:33:05,840 --> 00:33:11,670 Svo eftir það virðist vera satt. x er 1, y er 2, en er 2, þegar B er 1. 752 00:33:11,670 --> 00:33:16,790 Svo þessir tveir einhvern veginn fékk skipti en x og y eru ekki að fá skipti. 753 00:33:16,790 --> 00:33:21,090 Svo til að vera skýr, hvað er að gerast er, hér hef ég x og y 754 00:33:21,090 --> 00:33:25,380 og þeir eru breytur sveitarfélaga í Umfang helstu, ég liggur í x og y 755 00:33:25,380 --> 00:33:26,170 að skipta. 756 00:33:26,170 --> 00:33:29,080 Nú, skipti, sem sérstakt fall, er ókeypis að hringja röksemdir 757 00:33:29,080 --> 00:33:30,590 eða breytur eitthvað þess sem það vill. 758 00:33:30,590 --> 00:33:33,280 Foo eða bar eða X eða Y eða a eða b. 759 00:33:33,280 --> 00:33:36,870 Bara til að gera ljóst að þeir eru ekki sá sami og X og Y eru í sjálfu sér, 760 00:33:36,870 --> 00:33:38,020 Ég hef sagt a og b. 761 00:33:38,020 --> 00:33:40,040 En við gátum kalla þá eitthvað sem við viljum. 762 00:33:40,040 --> 00:33:43,960 >> Og svo það lítur út eins og skipti er samþykkt 763 00:33:43,960 --> 00:33:48,980 x-- AKA a-- og það er berist y-- AKA b. 764 00:33:48,980 --> 00:33:51,900 Einhvern veginn þessar þrjár línur eru skipta þau gildi nákvæmlega 765 00:33:51,900 --> 00:33:53,510 eins Lauren gerði með mjólk og OJ. 766 00:33:53,510 --> 00:33:56,010 En þegar við að prenta út Gildin, a og b 767 00:33:56,010 --> 00:34:01,340 eru örugglega skipta en x og Y hefur engin breyting þá. 768 00:34:01,340 --> 00:34:03,150 Muna að X og Y eru upp hér. 769 00:34:03,150 --> 00:34:05,320 >> Svo við getum séð þetta í gegnum Önnur aðferð eins vel. 770 00:34:05,320 --> 00:34:08,110 Og þetta er líka tækni innbyggð í Heimadæmi þrjú. 771 00:34:08,110 --> 00:34:10,780 Við skulum fara á undan og gera þetta í CS50 ID ef þú hefur ekki nú þegar. 772 00:34:10,780 --> 00:34:13,730 Á hægri hönd hlið við hafa þetta Kembiforrit flipann. 773 00:34:13,730 --> 00:34:16,159 Og ef þú opnar þetta upp, það er einhver yfirnáttúrulegt upplýsingar 774 00:34:16,159 --> 00:34:17,530 sem er kastað á þig í upphafi. 775 00:34:17,530 --> 00:34:19,310 En við skulum stríða þetta sundur alvöru hratt. 776 00:34:19,310 --> 00:34:21,620 >> Svo einn, þú sérð staðværar breytur. 777 00:34:21,620 --> 00:34:26,230 Kemur í ljós að byggja inn CS50 IDE og a einhver fjöldi af umhverfi forritun meira 778 00:34:26,230 --> 00:34:28,060 almennt, er aflúsara. 779 00:34:28,060 --> 00:34:31,340 A tól sem gerir þér kleift að sjónrænt séð hvað er að gerast inni í forritinu 780 00:34:31,340 --> 00:34:34,380 án þess að þurfa að grípa til að bæta printfs og byggja og keyra 781 00:34:34,380 --> 00:34:37,588 og bæta printf er og setja saman og gangi, sem þegar hafa í skrifstofutíma 782 00:34:37,588 --> 00:34:40,070 eða heimili, er líklega fá ansi leiðinlegur. 783 00:34:40,070 --> 00:34:43,090 >> Svo hér, í aðeins augnablik, erum við fara að sjá í rauntíma 784 00:34:43,090 --> 00:34:44,760 gildin staðbundnar breytur okkar. 785 00:34:44,760 --> 00:34:47,880 Við erum líka að fara að vera fær um að setja það sem kallast Viðmiðunarmörk sem 786 00:34:47,880 --> 00:34:52,570 eru tækifæri í áætlun mína til að gera hlé framkvæmd á tilteknum línu af kóða 787 00:34:52,570 --> 00:34:53,710 sem ég er forvitinn um. 788 00:34:53,710 --> 00:34:54,210 Ekki satt? 789 00:34:54,210 --> 00:34:55,969 Þessi forrit keyra í hættu annað. 790 00:34:55,969 --> 00:35:00,450 Það er góður af gaman fyrir okkur hægari mönnum að vera fær um að gera hlé, taka a augnablik, sjá 791 00:35:00,450 --> 00:35:02,380 hvað er að gerast í kringum ákveðin lína af kóða 792 00:35:02,380 --> 00:35:05,050 án áætluninni plægja í gegnum það og klára alveg. 793 00:35:05,050 --> 00:35:08,510 Svo a Rofstaðir að fara að leyfa okkur að brjóta og hlé á ákveðnum stað. 794 00:35:08,510 --> 00:35:12,990 >> Call stafla er fínt leið segja hvaða aðgerðir eru nú 795 00:35:12,990 --> 00:35:14,140 vera kölluð í augnablikinu. 796 00:35:14,140 --> 00:35:15,370 Main er alltaf kallaður fyrsta. 797 00:35:15,370 --> 00:35:17,230 En ef Main kallar virka heitir Swap, 798 00:35:17,230 --> 00:35:20,470 við erum í raun að fara að sjá þetta turn af störfum sem hafa verið 799 00:35:20,470 --> 00:35:22,400 kallað í öfugri tímaröð. 800 00:35:22,400 --> 00:35:23,310 Svo skulum sjá það. 801 00:35:23,310 --> 00:35:24,327 >> Ég ætla að minnka hann. 802 00:35:24,327 --> 00:35:25,660 Ég ætla að fara aftur í númerið mitt. 803 00:35:25,660 --> 00:35:27,540 Og bara vegna þess að ég vil að vera smámunasamur hér, 804 00:35:27,540 --> 00:35:31,100 Ég ætla að fara á undan og smelltu bara vinstra megin við línu fimm. 805 00:35:31,100 --> 00:35:32,830 Og það skapar rauða punktur. 806 00:35:32,830 --> 00:35:36,200 Og taka á hægri hönd hlið að aflúsara veit, hey, 807 00:35:36,200 --> 00:35:41,020 Ég sagði bara breakpoint á noswap.c lína fimm, sérstaklega 808 00:35:41,020 --> 00:35:42,480 á þessari línu af kóða. 809 00:35:42,480 --> 00:35:45,090 Svo aflúsara veit að ég hafa beðið um að í næsta skipti 810 00:35:45,090 --> 00:35:48,530 Ég keyrt forrit það hlé minn framkvæmd þar frekar en bara 811 00:35:48,530 --> 00:35:50,390 keyra allt hlutur frábær fljótur. 812 00:35:50,390 --> 00:35:53,889 >> Svo nú er ég að fara að smella á Debug hnappur á the mjög toppur af the IDE 813 00:35:53,889 --> 00:35:55,430 og það er að fara að gera eftirfarandi. 814 00:35:55,430 --> 00:36:00,680 Það er að fara að opna upphaflega nokkuð skuggalegir að öðru tengi window-- 815 00:36:00,680 --> 00:36:02,679 Remote kembiforrit frá hýsa svo og such-- 816 00:36:02,679 --> 00:36:04,970 og við munum koma aftur til það allt sem þýðir fyrir löngu. 817 00:36:04,970 --> 00:36:09,020 En hvað er mikilvægt fyrir nú er sú að rauður punktur var laminn, 818 00:36:09,020 --> 00:36:11,735 aflúsara hefur vísvitandi bið execution-- 819 00:36:11,735 --> 00:36:15,560 ekki á þeirri línu per se en á fyrsta lína af raunverulegu kóða í að virka. 820 00:36:15,560 --> 00:36:18,040 Og það er hvers vegna línan sjö er nú auðkenndur með gulum. 821 00:36:18,040 --> 00:36:20,550 >> Og nú skulum kíkja á hægri hönd. 822 00:36:20,550 --> 00:36:27,300 Það lítur út eins, við vanræksla, fallega nóg, x er hvaða gildi? 823 00:36:27,300 --> 00:36:27,860 0. 824 00:36:27,860 --> 00:36:29,750 Og y hefur hvaða gildi? 825 00:36:29,750 --> 00:36:30,410 Zero. 826 00:36:30,410 --> 00:36:35,540 Og það er að vænta í þeim skilningi sem x og y-- að gula line-- hefur 827 00:36:35,540 --> 00:36:36,770 ekki framkvæmd enn. 828 00:36:36,770 --> 00:36:38,510 Svo x ætti ekki að hafa gildið 1. 829 00:36:38,510 --> 00:36:41,470 Það gæti hafa önnur gildi, svokölluð sorp gildi. 830 00:36:41,470 --> 00:36:44,320 Og við fengum heppinn í því það er núll á þessum tímapunkti, í raun. 831 00:36:44,320 --> 00:36:46,400 >> Svo nú er það bara nokkrar hnappar við þurfum að hugsa 832 00:36:46,400 --> 00:36:48,100 um þegar kembiforrit á þennan hátt. 833 00:36:48,100 --> 00:36:49,970 Tilkynning hér, höfum við play takkann. 834 00:36:49,970 --> 00:36:51,877 Og ef við spilum eða högg halda áfram, það er bara 835 00:36:51,877 --> 00:36:53,710 að fara að keyra í gegnum restin af the program 836 00:36:53,710 --> 00:36:55,300 eða þar til hann lendir annar mörk. 837 00:36:55,300 --> 00:36:56,910 En ég hef ekki sett önnur Viðmiðunarmörk svo er það bara 838 00:36:56,910 --> 00:36:58,118 að fara að keyra í gegnum enda. 839 00:36:58,118 --> 00:37:00,280 Sem eins konar sigraði í Tilgangur poking í kring. 840 00:37:00,280 --> 00:37:03,290 >> Þannig að í stað, mér þykir vænt um Þessi tákn til hægri. 841 00:37:03,290 --> 00:37:05,360 Og ef ég sveima yfir þá, eins og þú ættir líka, 842 00:37:05,360 --> 00:37:07,450 þú munt sjá litla tips-- tól ábendingar. 843 00:37:07,450 --> 00:37:09,020 Þetta er skref yfir. 844 00:37:09,020 --> 00:37:11,290 Nú það þýðir ekki að Sleppa Eftirfarandi lína af kóða. 845 00:37:11,290 --> 00:37:14,840 Það þýðir bara framkvæma það og að færa í næsta, að færa í næsta, 846 00:37:14,840 --> 00:37:15,580 að færa í næsta. 847 00:37:15,580 --> 00:37:17,610 Með öðrum orðum, í gegnum sem hnappur, get ég gengið 848 00:37:17,610 --> 00:37:20,390 gegnum minn númer eitt skref í einu. 849 00:37:20,390 --> 00:37:21,914 Línu fyrir línu, bókstaflega. 850 00:37:21,914 --> 00:37:23,830 Nú, til hægri á það, það er annað 851 00:37:23,830 --> 00:37:25,163 að við munum sjá í bara smá stund. 852 00:37:25,163 --> 00:37:27,820 Þetta er svokölluð Skref Into táknið sem er 853 00:37:27,820 --> 00:37:30,300 að fara að leyfa mér kafa í annan valkost. 854 00:37:30,300 --> 00:37:31,800 En við skulum sjá þetta í aðeins augnablik. 855 00:37:31,800 --> 00:37:33,280 Þannig að ég ætla að fara að smella stíga yfir. 856 00:37:33,280 --> 00:37:35,820 Og nú eftir, eins og ég smelli þessi hnappur efst til hægri, 857 00:37:35,820 --> 00:37:41,260 hafa augun u.þ.b. undir Local Breytur og sjá hvað gerist x. 858 00:37:41,260 --> 00:37:44,115 x er nú 1 vegna þess að Gula línan hefur nú framkvæmt 859 00:37:44,115 --> 00:37:45,840 og við höfum flutt á línu 8. 860 00:37:45,840 --> 00:37:49,840 Og í bara smá stund y ætti vonandi að verða 2. 861 00:37:49,840 --> 00:37:52,330 >> Nú, ekkert áhugavert gerist fyrir a hluti. 862 00:37:52,330 --> 00:37:53,390 Allt þetta er er printf. 863 00:37:53,390 --> 00:37:58,010 Og taka í efri flugstöðinni minn glugga, ég sjá framleiðsla prenta def. 864 00:37:58,010 --> 00:38:01,080 Og nú þarf ég að gera Ákvörðun sem forritari. 865 00:38:01,080 --> 00:38:04,360 Ég get stíga yfir þessari línu númer, framkvæma það en ekki 866 00:38:04,360 --> 00:38:06,220 fá forvitinn um hvað er inni. 867 00:38:06,220 --> 00:38:11,130 Eða ég get í raun stíga inn í það og fara inni Víxla sig. 868 00:38:11,130 --> 00:38:12,340 Svo skulum gera hið síðarnefnda. 869 00:38:12,340 --> 00:38:15,550 >> Leyfðu mér að fara á undan og smelltu ekki farið, yfir en skref inn. 870 00:38:15,550 --> 00:38:17,300 Tilkynning, allt í einu gluggi breytingar 871 00:38:17,300 --> 00:38:19,330 að varpa ljósi á fyrsta lína af kóða í Víxla. 872 00:38:19,330 --> 00:38:20,710 Það er lína 21. 873 00:38:20,710 --> 00:38:25,220 Og nú, hvað er svona funky er að ef þú lítur yfir hér, eins og búist, 874 00:38:25,220 --> 00:38:29,720 komma b er 1 og 2, í þessari röð. 875 00:38:29,720 --> 00:38:33,840 Hvers vegna er afleysingamanneskja 32.767? 876 00:38:33,840 --> 00:38:36,560 Hugfast að afleysingamanneskja, líkt tóm bolli í smá stund síðan, 877 00:38:36,560 --> 00:38:38,980 er lýst hér á línu 21. 878 00:38:38,980 --> 00:38:43,390 Hvers vegna 32,000- Ég meina, hvers vegna er það bara sumir furðulegur gildi? 879 00:38:43,390 --> 00:38:43,890 Já? 880 00:38:43,890 --> 00:38:45,190 >> Áhorfendur: Það er ekki frumstilla. 881 00:38:45,190 --> 00:38:46,940 >> DAVID J. Malan: Það er ekki verið forsniðin. 882 00:38:46,940 --> 00:38:49,370 Svo tölvan okkar alltaf hefur líkamlegur minni. 883 00:38:49,370 --> 00:38:50,544 Það hefur alltaf líkamlega RAM. 884 00:38:50,544 --> 00:38:52,710 Og það er alltaf núll 's og einn er í það, ekki satt? 885 00:38:52,710 --> 00:38:54,626 Þar sem við erum að nota okkar tölva allan daginn, 886 00:38:54,626 --> 00:38:57,210 þú ert að nota CS50 IDE eða netþjóna allan daginn. 887 00:38:57,210 --> 00:39:01,159 Svo að RAM annaðhvort hefur sumir núll eða einhver eða einhverjum núll og sjálfur. 888 00:39:01,159 --> 00:39:02,950 Sama hvort ekki að þú ert að nota þau. 889 00:39:02,950 --> 00:39:05,270 Þú getur ekki bara auður rými þar sem þú vilt bita. 890 00:39:05,270 --> 00:39:06,850 Þeir eru annaðhvort núll og sjálfur. 891 00:39:06,850 --> 00:39:09,610 >> Svo kemur í ljós að afleysingamanneskja, því við höfum ekki frumstilla hana ennþá, 892 00:39:09,610 --> 00:39:14,580 við höfum þá 32 bita en þeir hafa ekki verið forsniðin að neinn þekktra gildi. 893 00:39:14,580 --> 00:39:18,110 Svo hvað þeir voru flestir nýlega verið notuð for-- þeim 32 bits-- 894 00:39:18,110 --> 00:39:23,000 við erum bara að sjá minjar um sum fyrri notkun þessara tilteknu 32 895 00:39:23,000 --> 00:39:23,500 bitar. 896 00:39:23,500 --> 00:39:27,780 Um leið og ég smelli Skref Over þó, phew, afleysingamanneskja er að fara að fá gildið 1. 897 00:39:27,780 --> 00:39:31,600 Og ef ég geri það aftur, a er fara að gefa verðmæti 2 898 00:39:31,600 --> 00:39:33,830 og þá b er að fara að að gefa gildið 1. 899 00:39:33,830 --> 00:39:36,390 >> Og svo er það gott nú þetta atriði í sögunni 900 00:39:36,390 --> 00:39:39,750 er að aflúsara er sýna mér, frábær rólega 901 00:39:39,750 --> 00:39:42,640 á mínum hraða, hvað ástand Víxla er. 902 00:39:42,640 --> 00:39:47,490 En taka efst hér, taka að kalla stafla raun 903 00:39:47,490 --> 00:39:49,180 hefur tvö lög á henni. 904 00:39:49,180 --> 00:39:53,240 Nú sá sem er merkt sem Skipti, ef ég smelli á Main staðinn, 905 00:39:53,240 --> 00:39:57,100 Takið eftir hvernig staðbundnar breytur breytast vegna þess að verktaki getur bara hoppa 906 00:39:57,100 --> 00:39:59,740 um og fara inn í mismunandi umfangi. 907 00:39:59,740 --> 00:40:04,070 Svo jafnvel þótt við erum að gera þetta allt vinna og rétt að skipta a og b, 908 00:40:04,070 --> 00:40:09,080 ef ég fer fram og til baka á milli Heimilisskipti þar sem a er 2 og b sé 1 og Main, 909 00:40:09,080 --> 00:40:11,851 hefur Main orðið fyrir áhrifum á öllum? 910 00:40:11,851 --> 00:40:12,350 Nei 911 00:40:12,350 --> 00:40:13,930 Svo er það takeaway hér? 912 00:40:13,930 --> 00:40:18,200 Jæja, það kemur í ljós að hvenær þú hringja í aðgerð eins Víxla, 913 00:40:18,200 --> 00:40:21,600 og þú fara rök það, hvað þú ert liggur við Víxla virka 914 00:40:21,600 --> 00:40:24,730 í þessu tilfelli er afrit af þessum rifrildum. 915 00:40:24,730 --> 00:40:28,620 Þannig að ef X og Y eru hvor um hver um sig 32 bita, hvað Swap er að fá 916 00:40:28,620 --> 00:40:30,760 er tvö ný staðbundin breytur, eða rök, 917 00:40:30,760 --> 00:40:34,380 kallað og b-- en þeir eru handahófskennt names-- en mynstrið núllum 918 00:40:34,380 --> 00:40:39,520 og sjálfur inni í A og B er raðað upp til að vera eins og x og y 919 00:40:39,520 --> 00:40:42,610 en þeir eru ekki sama og x og y. 920 00:40:42,610 --> 00:40:46,880 >> Það sem þó Main hefur á stykki hennar pappír númer 1 og 2 fyrir X og Y, 921 00:40:46,880 --> 00:40:49,260 og svo þegar það hendur að stykki af pappír til að skipta, 922 00:40:49,260 --> 00:40:51,970 Swap mjög fær fljótt eigin penni, skrifar niður 923 00:40:51,970 --> 00:40:56,240 1 og 2 á eigin blaði sínu pappír, hendur afrit upprunalega XY til Main 924 00:40:56,240 --> 00:40:58,790 og þá er eigin Málið með a og b. 925 00:40:58,790 --> 00:41:01,940 Og þetta er nú frábær mikilvægt vegna þess að þetta hefur nontrivial áhrif 926 00:41:01,940 --> 00:41:06,260 fyrir í raun að skrifa rétt númer vegna þess að það virðist sem við getum ekki skipta 927 00:41:06,260 --> 00:41:07,500 tvær breytur. 928 00:41:07,500 --> 00:41:09,150 >> Ég hef skrifað rétt Víxla virka. 929 00:41:09,150 --> 00:41:12,770 Við höfum innleitt það Lauren sem rétta skipti virka í raun og veru, 930 00:41:12,770 --> 00:41:16,700 en svo virðist sem ekkert af því mál ef þú getur ekki í raun 931 00:41:16,700 --> 00:41:19,530 skipta tvö gildi til frambúðar. 932 00:41:19,530 --> 00:41:21,970 Þannig að við þurfum aðra leið til raunverulega fá á þessu, 933 00:41:21,970 --> 00:41:24,472 og við þurfum að vera fær um að reyndar leysa þetta vandamál. 934 00:41:24,472 --> 00:41:27,180 Og það kemur out-- og við munum koma aftur á þessa tilteknu mynd 935 00:41:27,180 --> 00:41:30,500 áður long-- þetta er ein leið til að þú gætir draga minni tölvunnar. 936 00:41:30,500 --> 00:41:31,460 Það er bara rétthyrningur. 937 00:41:31,460 --> 00:41:32,960 Þú gætir teiknað það eitthvað ýmsan hátt en það er 938 00:41:32,960 --> 00:41:35,740 þægilegt að teikna það sem rétthyrningur af eftirfarandi ástæðu. 939 00:41:35,740 --> 00:41:40,040 >> Við erum að fara að byrja í dag og víðar að tala um svokallaða stafla. 940 00:41:40,040 --> 00:41:43,870 Og stafla er bara klumpur af RAM-- klumpur af memory-- 941 00:41:43,870 --> 00:41:47,100 sem aðgerðir hafa aðgang að þegar þeir eru kallaðir. 942 00:41:47,100 --> 00:41:49,800 Og svo kemur í ljós að á mjög botn af þessari stafla 943 00:41:49,800 --> 00:41:53,590 er þar sem allar staðbundnar breytur helstu er og org C og org V og allt það efni 944 00:41:53,590 --> 00:41:56,950 eru að fara að fara sjálfgefið. Og ef Main kallar einhverja aðra virka eins Víxla, 945 00:41:56,950 --> 00:42:00,330 vel, Swap er að fara að fá aðra lag af minni upp yfir það. 946 00:42:00,330 --> 00:42:04,490 >> Og svo bara til að gefa þér á fljótlegan lauslega mynd af þessu, ef ég fer yfir here-- 947 00:42:04,490 --> 00:42:09,450 og láta mig spegla þetta á kostnaður sem well-- hvað raunverulega sem ég hef, 948 00:42:09,450 --> 00:42:12,100 Ef okkur er annt aðeins um Neðst á þessari mynd fyrir nú, 949 00:42:12,100 --> 00:42:15,070 er að þegar ég keyra forrit og Main fær kallað, 950 00:42:15,070 --> 00:42:18,330 Main er gefið klumpur af RAM í tölvunni minni sem er 951 00:42:18,330 --> 00:42:20,060 neðst á þessari svokölluðu stafla. 952 00:42:20,060 --> 00:42:22,143 Og ég ætla að draga það vísvitandi sem ferningur. 953 00:42:22,143 --> 00:42:24,540 Svo það er eins og 32 bita eða fjórum bæti. 954 00:42:24,540 --> 00:42:28,790 Og ef þetta Helsta hlutverk hefur breytu sem heitir x með gildið 1 955 00:42:28,790 --> 00:42:32,626 og það hefur breytu sem heitir Y með verðmæti 2, sem er 956 00:42:32,626 --> 00:42:35,750 eins og að taka þessa flís af minni sem Main hefur verið gefið með því að stjórna 957 00:42:35,750 --> 00:42:38,850 kerfi og skipta því þannig að fyrsta staðbundin breytu fer hér, 958 00:42:38,850 --> 00:42:40,930 sá seinni fer hér, og það er það. 959 00:42:40,930 --> 00:42:45,590 >> Þegar Main kallar Víxla, Swap fær eigin sneið sína af minni 960 00:42:45,590 --> 00:42:48,280 sem við munum draga svona frá stýrikerfi, 961 00:42:48,280 --> 00:42:50,820 og það er að fara að hafa til þess eigin staðbundnar breytur byggjast 962 00:42:50,820 --> 00:42:53,825 um framkvæmd okkar fyrr með staðbundnum breytur a 963 00:42:53,825 --> 00:42:58,010 og b sem upphaflega fá gildin 1 og 2. 964 00:42:58,010 --> 00:43:00,450 En þá, eins fljótt og Skiptigengi kóða framkvæmir, 965 00:43:00,450 --> 00:43:03,760 og Lauren raun skiptasamninga OJ og mjólk, hvað er að gerast? 966 00:43:03,760 --> 00:43:09,030 Jæja, þetta 2 er að verða 1, þessa 1 er að verða 2, og, við the vegur, 967 00:43:09,030 --> 00:43:13,360 það er afleysingamanneskja breyta sem er að vera notað sem allan tímann sem á endanum 968 00:43:13,360 --> 00:43:14,470 fer í burtu. 969 00:43:14,470 --> 00:43:16,720 En það skiptir ekki máli hversu mikið verk að gera 970 00:43:16,720 --> 00:43:22,160 Í þessari línu of-- í þessum minni, X og Y eru alveg ósnortið. 971 00:43:22,160 --> 00:43:26,320 >> Þannig að við þurfum á einhvern hátt að gefa Skipti og virka eins og það 972 00:43:26,320 --> 00:43:32,640 leyndarmál aðgang, ef þú vilt, til aðgerðir like-- að minni eins x og y. 973 00:43:32,640 --> 00:43:35,110 Svo skulum taka a líta á dæmi sem hjálpar 974 00:43:35,110 --> 00:43:38,220 okkur að sjá nákvæmlega hvað er verið fara á allri þessari tíma. 975 00:43:38,220 --> 00:43:40,284 Ég ætla að fara á undan og opna Berðu Zero. 976 00:43:40,284 --> 00:43:42,200 Og ég ætla að loka aflúsara okkar, ég ætla 977 00:43:42,200 --> 00:43:44,360 að loka þessari skelfilegur útlit skilaboð sem bara segir, bíddu í eina mínútu, 978 00:43:44,360 --> 00:43:45,800 þú ert í miðju kembiforrit. 979 00:43:45,800 --> 00:43:48,383 Ég ætla að fela þennan flipa hér bara til að fara aftur til einfaldleika. 980 00:43:48,383 --> 00:43:50,160 Svo ekki hafa áhyggjur ef GDB er drepinn. 981 00:43:50,160 --> 00:43:53,910 Það þýðir bara að forritið hefur verið hætta, vísvitandi í þessu tilfelli, 982 00:43:53,910 --> 00:43:54,820 af mér. 983 00:43:54,820 --> 00:43:57,700 >> Og nú bera saman Zero er þetta. 984 00:43:57,700 --> 00:44:00,110 Ég er að nota CS50 Bókasafnið í venjulegu I / O. 985 00:44:00,110 --> 00:44:04,319 Ég hef fengið meginhlutverki sem fyrst segir, segja eitthvað, og fær band. 986 00:44:04,319 --> 00:44:06,110 Þá segir það aftur og fær annað band. 987 00:44:06,110 --> 00:44:09,910 Og eftir að þessar tvær strengi eru kallaðir S og T, hver um sig. 988 00:44:09,910 --> 00:44:12,910 Og nú þetta program, Bera Zero, tilgangur þess í lífinu, 989 00:44:12,910 --> 00:44:15,470 það er ætlast til að segja mér, gerði ég slá það sama? 990 00:44:15,470 --> 00:44:16,910 Og svo ég ætla aftur að viku eitt. 991 00:44:16,910 --> 00:44:19,950 Ég er að nota jafnan jafnan mitt rekstraraðila sem er gæði stjórnandi. 992 00:44:19,950 --> 00:44:22,220 Ekki framsal rekstraraðila, jafnrétti rekstraraðila. 993 00:44:22,220 --> 00:44:23,890 Ég ætla bara að bera saman s og t. 994 00:44:23,890 --> 00:44:27,470 >> Svo skulum í raun að fara á undan og gera þetta. 995 00:44:27,470 --> 00:44:32,680 Og ég ætla að fara á undan og gera Berðu Zero. 996 00:44:32,680 --> 00:44:35,110 Ég ætla að gera ./comparezero. 997 00:44:35,110 --> 00:44:37,150 Og ég ætla að fara á undan og segja eitthvað 998 00:44:37,150 --> 00:44:43,450 eins, við skulum gera mömmu með lágstöfum og hvernig um mömmu í hástafi. 999 00:44:43,450 --> 00:44:45,034 Og auðvitað ég að slá mismunandi hluti. 1000 00:44:45,034 --> 00:44:45,533 Allt í lagi. 1001 00:44:45,533 --> 00:44:46,570 Það er að vænta. 1002 00:44:46,570 --> 00:44:47,640 >> Skulum keyra hana aftur. 1003 00:44:47,640 --> 00:44:49,740 Bæði sinnum gera lágstafir, lágstafi. 1004 00:44:49,740 --> 00:44:51,490 Sem lítur frábær eins og mig. 1005 00:44:51,490 --> 00:44:52,930 Sláðu. 1006 00:44:52,930 --> 00:44:53,430 OK. 1007 00:44:53,430 --> 00:44:55,804 Kannski er það bara skrýtið því það er ekki mætur málfræði mína. 1008 00:44:55,804 --> 00:44:59,930 Svo skulum gera höfuðborg mömmu, höfuðborg MOM, eins. 1009 00:44:59,930 --> 00:45:01,490 Mismunandi hluti. 1010 00:45:01,490 --> 00:45:03,907 >> Svo hvers vegna er það? 1011 00:45:03,907 --> 00:45:06,240 Jæja, hvað er raunverulega að gerast á undir hetta hér? 1012 00:45:06,240 --> 00:45:08,180 Svo skulum við fara aftur yfir hér fyrir réttlátur a augnablik 1013 00:45:08,180 --> 00:45:10,910 og íhuga hvað GetString er í raun að gera. 1014 00:45:10,910 --> 00:45:13,385 Þegar þú hringir GetString, það er hlutverk við 1015 00:45:13,385 --> 00:45:16,510 sjálf skrifaði og það fær einhvern veginn röð af stöfum frá notanda. 1016 00:45:16,510 --> 00:45:20,280 Og við skulum gera ráð fyrir að fyrsta þegar ég kalla GetString, sem gefur mér 1017 00:45:20,280 --> 00:45:21,930 klumpur af minni sem lítur svona út. 1018 00:45:21,930 --> 00:45:26,990 Og ef ég slóst í öllum lágstöfum m-o-m-- og hvað fer eftir því? 1019 00:45:26,990 --> 00:45:28,840 Just a fljótur geðheilbrigði athuga. 1020 00:45:28,840 --> 00:45:29,780 >> Sviga núll. 1021 00:45:29,780 --> 00:45:30,510 Við vitum að. 1022 00:45:30,510 --> 00:45:32,784 Og muna að við spiluðum kring með nafni Zamila er 1023 00:45:32,784 --> 00:45:34,950 og fullt af öðrum nöfnum þegar Rob var hér að 1024 00:45:34,950 --> 00:45:36,280 á hvað er að gerast inni minni. 1025 00:45:36,280 --> 00:45:37,780 Svo er það sagan nákvæmlega sama. 1026 00:45:37,780 --> 00:45:40,160 Þetta er það sem GetString er aftur að mér. 1027 00:45:40,160 --> 00:45:44,780 Nú, númerið mitt smá stund síðan geymd skilagildi GetString 1028 00:45:44,780 --> 00:45:47,510 í breytu sem heitir s. 1029 00:45:47,510 --> 00:45:51,390 Og þá í annað sinn sem ég kallaði það, það geymt það í breytu sem heitir t. 1030 00:45:51,390 --> 00:45:55,070 >> Svo ef ég fer hérna, ég þarf að draga þessa staðbundnu variable-- 1031 00:45:55,070 --> 00:45:59,610 og ég almennt að fara að draga band sem just-- við munum 1032 00:45:59,610 --> 00:46:02,360 kalla það s-- sem litla torginu hér. 1033 00:46:02,360 --> 00:46:09,760 Og nú, somehow-- hvernig er mömmu fara inni þessa breytu s? 1034 00:46:09,760 --> 00:46:12,010 Jæja, þurfum við að fara aftur til fyrstu meginreglum hér. 1035 00:46:12,010 --> 00:46:15,660 Hvað er GetString raun aftur? 1036 00:46:15,660 --> 00:46:19,030 >> Svo kemur í ljós að M-O-M sviga núll, og allir tala 1037 00:46:19,030 --> 00:46:22,364 annarra strengi í minni eins og Zamila og Rob eða Andy eða aðrir, 1038 00:46:22,364 --> 00:46:24,280 eru að sjálfsögðu í okkar RAM tölvunnar eða minni. 1039 00:46:24,280 --> 00:46:27,760 Og RAM þinn hefur like-- þú a tónleikar RAM, tveir gigs af RAM, 1040 00:46:27,760 --> 00:46:30,860 eða milljarð eða tvo milljarða bytes, eða kannski jafnvel meira þessa dagana. 1041 00:46:30,860 --> 00:46:34,070 Svo skulum gera ráð fyrir, vegna í dag, að það skiptir ekki máli hvernig við telja 1042 00:46:34,070 --> 00:46:36,640 þá, en við getum tala hver þeirra milljarðar eða tvo milljarða 1043 00:46:36,640 --> 00:46:37,880 eða fjórum milljörðum bæti. 1044 00:46:37,880 --> 00:46:42,240 >> Og við skulum bara geðþótta segja að þetta er fyrsta bit, annað bit, 1045 00:46:42,240 --> 00:46:43,380 þriðja, fjórða. 1046 00:46:43,380 --> 00:46:46,570 Ég er vísvitandi ekki með núll í dag en við munum koma aftur til að. 1047 00:46:46,570 --> 00:46:49,570 Svo í öðrum orðum, ef þetta er fyrsta skipti sem ég er að nota forritið, 1048 00:46:49,570 --> 00:46:52,715 Ég ætla bara að fá heppinn og fyrsta bit er staðsetningu einn þá tveir 1049 00:46:52,715 --> 00:46:53,590 þá þrír en fjórir. 1050 00:46:53,590 --> 00:46:57,430 Og ef ég hélt að teikna, kassi númer tveir milljarðar væri leið hérna. 1051 00:46:57,430 --> 00:47:02,200 >> Svo hvað finnst þér þá GetString skilar í raun? 1052 00:47:02,200 --> 00:47:06,010 Það er ekki aftur M-O-M sviga núll í sjálfu vegna þess að greinilega 1053 00:47:06,010 --> 00:47:08,180 mun ekki passa í rammann sem ég hef dregið. 1054 00:47:08,180 --> 00:47:11,210 Svo hvað annað gæti getstring raun vera aftur öll þessi vikur? 1055 00:47:11,210 --> 00:47:14,410 1056 00:47:14,410 --> 00:47:16,820 Svarið er á borð hér einhvers staðar. 1057 00:47:16,820 --> 00:47:20,390 Þú getur ekki passa M-O-M sviga núll, svo hvað gæti skynsamleg staðinn? 1058 00:47:20,390 --> 00:47:23,424 Ef þú þurftir að vera frábær snjall, setja á svokölluðu verkfræði húfu, 1059 00:47:23,424 --> 00:47:24,340 Hvað getur þú aftur? 1060 00:47:24,340 --> 00:47:27,340 Hver er minnstur magn upplýsinga þú gætir farið aftur sem myndi enn 1061 00:47:27,340 --> 00:47:30,610 láta þig finna M-O-M í minni? 1062 00:47:30,610 --> 00:47:31,270 Já? 1063 00:47:31,270 --> 00:47:31,950 >> Áhorfendur: Einn. 1064 00:47:31,950 --> 00:47:32,200 >> DAVID J. Malan: One. 1065 00:47:32,200 --> 00:47:33,021 Og hvers vegna einn? 1066 00:47:33,021 --> 00:47:35,520 Áhorfendur: Vegna þess að það myndi segja þú hvar á að fara [inaudible]. 1067 00:47:35,520 --> 00:47:38,391 1068 00:47:38,391 --> 00:47:39,390 DAVID J. Malan: Einmitt. 1069 00:47:39,390 --> 00:47:44,300 Ég er bara að fara að skila á netfangið strengsins sem ég hef fengið. 1070 00:47:44,300 --> 00:47:46,570 Heimilisfangið á þessu Málið er staðsetning einn. 1071 00:47:46,570 --> 00:47:51,280 Svo hvað raunverulega er geymt í s-- og sérhver string breyta þannig far-- 1072 00:47:51,280 --> 00:47:53,430 hefur bara verið netfang strengsins. 1073 00:47:53,430 --> 00:47:57,840 >> Á sama tíma, ef ég kalla Getstring í annað sinn og ég 1074 00:47:57,840 --> 00:48:03,300 tegund í bókstaflega sama thing-- M-O-M með lowercase-- M-O-M 1075 00:48:03,300 --> 00:48:06,200 og annar sviga núll, og nú kannski er forritið mitt 1076 00:48:06,200 --> 00:48:09,820 verið í gangi um nokkurt skeið svo kannski þetta er 10, þetta er staðsetning 11, þetta er 12, 1077 00:48:09,820 --> 00:48:10,700 Þetta er 13. 1078 00:48:10,700 --> 00:48:13,590 Tölvur nota einhver önnur minni fyrir hvað sem ástæða. 1079 00:48:13,590 --> 00:48:18,172 Hvað nú fer í annað minni breyta í áætluninni t minn? 1080 00:48:18,172 --> 00:48:19,390 10. 1081 00:48:19,390 --> 00:48:20,050 Nákvæmlega. 1082 00:48:20,050 --> 00:48:23,910 >> Og svo þegar við skoðum kóðann á þessari áætlun 1083 00:48:23,910 --> 00:48:26,550 þar sem ég er einfaldlega að reyna að bera saman tvö gildi, 1084 00:48:26,550 --> 00:48:32,180 er s jafnt jafn t, hvað er augljóst manna svarið? 1085 00:48:32,180 --> 00:48:34,890 Bara ekki vegna þess að 1 ekki jafn 10. 1086 00:48:34,890 --> 00:48:36,861 Og svo er hér liggur að tækifæri fyrir okkur í raun 1087 00:48:36,861 --> 00:48:39,610 að fara bara aftur til, aftur, fyrst meginreglur og hugsa um, vel, 1088 00:48:39,610 --> 00:48:41,110 hvað er að gerast undir hetta? 1089 00:48:41,110 --> 00:48:43,240 Við höfum verið að tala um bitar og bæti og minni, 1090 00:48:43,240 --> 00:48:46,820 en það er í raun gagnlegt að skilja vegna þess að þegar þú hringir GetString, 1091 00:48:46,820 --> 00:48:50,280 jafnvel þó að við hugsum um það er aftur M-O-M eða band mömmu 1092 00:48:50,280 --> 00:48:53,120 eða Andy eða Zamila eða þess háttar, tæknilega 1093 00:48:53,120 --> 00:48:55,510 það er bara aftur heimilisfangið þess klumpur af minni. 1094 00:48:55,510 --> 00:48:56,910 >> En það er allt í lagi. 1095 00:48:56,910 --> 00:49:00,570 Vegna þess hvernig veit ég þar sem strengurinn endar? 1096 00:49:00,570 --> 00:49:03,840 Ef ég er bara að gefa í upphafi? 1097 00:49:03,840 --> 00:49:05,380 Jæja, sviga núll, ekki satt? 1098 00:49:05,380 --> 00:49:08,800 Bara í línulegum tíma ég get prenta út með letur def M-O-M. 1099 00:49:08,800 --> 00:49:11,820 Og um leið og ég sé sviga núll, ég hugsa ekki þar sem ég byrjaði, 1100 00:49:11,820 --> 00:49:14,950 Ég veit nú þegar óbeint þar sem ég þarf að enda. 1101 00:49:14,950 --> 00:49:18,700 >> En það markar dag á beginning-- og Leyfðu mér að gera þetta verulega vegna þess að við 1102 00:49:18,700 --> 00:49:21,800 fór í gegnum mikið af vandræðum að fá þessar hér þjálfun wheels-- 1103 00:49:21,800 --> 00:49:29,840 svo í dag að þjálfun hjól byrja að koma burt og við ljós á least-- 1104 00:49:29,840 --> 00:49:31,373 >> [Applause] 1105 00:49:31,373 --> 00:49:33,220 1106 00:49:33,220 --> 00:49:36,160 >> Það var vel þess virði að ferð að miða í morgun, já? 1107 00:49:36,160 --> 00:49:39,600 Svo now-- það er, það kemur í út, ekkert sem heitir band. 1108 00:49:39,600 --> 00:49:41,140 String er ekki til. 1109 00:49:41,140 --> 00:49:43,760 Það er samheiti sem við höfum haft inni í CS50 bókasafn. 1110 00:49:43,760 --> 00:49:48,660 Héðan í frá, við erum að fara að byrja að kalla s og t ekki strengir en bleikju stjörnur. 1111 00:49:48,660 --> 00:49:51,180 Og bleikju stjörnu munum við stríða í sundur áður en langur. 1112 00:49:51,180 --> 00:49:53,510 En þetta er að segja, að jafnvel ef við höldum áfram 1113 00:49:53,510 --> 00:49:56,180 nota GetString nú, tæknilega ég ætti 1114 00:49:56,180 --> 00:49:59,010 verið að segja bleikju stjörnu og bleikju stjörnu. 1115 00:49:59,010 --> 00:50:01,720 >> Og það kemur í ljós hvað það stjörnuna er að fara til að tákna er eitthvað 1116 00:50:01,720 --> 00:50:04,340 kallað bendi eða netfang. 1117 00:50:04,340 --> 00:50:06,110 Og í raun, stríðnispúki fyrir hvað er framundan 1118 00:50:06,110 --> 00:50:09,760 er þetta 20 annað myndband frá okkar vinur Nick Parlante í Stanford 1119 00:50:09,760 --> 00:50:12,927 sem, alveg sumir tími síðan, eyða fáránlegt magn af tíma, 1120 00:50:12,927 --> 00:50:15,010 sem best ég get sagt í hans eldhús eða kjallara hans, 1121 00:50:15,010 --> 00:50:17,140 gera claymation kynna heiminum 1122 00:50:17,140 --> 00:50:20,010 eðli heitir Binky sem við munum 1123 00:50:20,010 --> 00:50:22,010 kynnt næst ábendingum. 1124 00:50:22,010 --> 00:50:24,588 Svo hér er sýnishorn af hvað er að koma. 1125 00:50:24,588 --> 00:50:26,370 >> [Vídeó spilun] 1126 00:50:26,370 --> 00:50:27,510 >> -Hey, Binky. 1127 00:50:27,510 --> 00:50:28,260 Vaknaðu. 1128 00:50:28,260 --> 00:50:30,672 Það er kominn tími til bendillinn gaman. 1129 00:50:30,672 --> 00:50:31,616 >> -Hvað er þetta? 1130 00:50:31,616 --> 00:50:33,032 Lærðu um ábendingum? 1131 00:50:33,032 --> 00:50:34,450 Oh, Goody. 1132 00:50:34,450 --> 00:50:35,431 >> [END spilun] 1133 00:50:35,431 --> 00:50:38,055 DAVID J. Malan: Og á að huga, við munum sjá þig á miðvikudag. 1134 00:50:38,055 --> 00:50:47,590 1135 00:50:47,590 --> 00:50:48,090 Allt í lagi. 1136 00:50:48,090 --> 00:50:48,740 Hver er dans? 1137 00:50:48,740 --> 00:50:49,240 Láttu ekki svona. 1138 00:50:49,240 --> 00:50:50,330 Hver er dans? 1139 00:50:50,330 --> 00:50:51,820 Þú vilt að ég fá það byrjaði? 1140 00:50:51,820 --> 00:50:53,770 Ég fá það byrjaði. 1141 00:50:53,770 --> 00:50:54,270 Woooo! 1142 00:50:54,270 --> 00:51:04,070 1143 00:51:04,070 --> 00:51:07,580 >> LAUREN: Sweet ímynda Moses.