1 00:00:00,000 --> 00:00:10,550 2 00:00:10,550 --> 00:00:14,050 >> DAVID J. MALAN: Hau CS50 da, eta aste honetan lau hasiera da. 3 00:00:14,050 --> 00:00:18,630 Eta, mutila, Volkswagen da aurkitu Arazo guztien software delako. 4 00:00:18,630 --> 00:00:20,264 Dezagun begirada bat eramango gaituzte. 5 00:00:20,264 --> 00:00:20,930 [Bideo-erreprodukzioa] 6 00:00:20,930 --> 00:00:25,560 -Cars, Pertsonaiak smartest Azkar eta amorruz filmak. 7 00:00:25,560 --> 00:00:29,100 Aste Alemaniako automaker hau Volkswagen aurkitu bera 8 00:00:29,100 --> 00:00:32,490 eskandalu baten erdian proportzio penala potentzialki. 9 00:00:32,490 --> 00:00:36,060 >> -Volkswagen Da milaka milioi bracing isunak, ahalik eta zigor-gastuak 10 00:00:36,060 --> 00:00:38,560 bere exekutiboak, gisa Enpresan apologizes 11 00:00:38,560 --> 00:00:41,840 11 milioi auto rigging hasi da lagundu isuriak probak beat. 12 00:00:41,840 --> 00:00:44,950 >> -Certain Diesel eredu izan ziren software sofistikatuak diseinatu 13 00:00:44,950 --> 00:00:48,440 erabilitako informazioa barne gidari eta ibilgailu posizioa 14 00:00:48,440 --> 00:00:51,870 azkartzeko autoa izan zen zehazteko emisioak probak jasaten. 15 00:00:51,870 --> 00:00:55,650 Egoera horren pean, motorra isuriak toxikoak murriztea litzateke. 16 00:00:55,650 --> 00:00:59,070 Baina autoa saihesbidea nahi zutela zen Hori zenean bultzatuta ari. 17 00:00:59,070 --> 00:01:03,320 Emisioak handitu 10 40 aldiz onargarria EPA mailatik. 18 00:01:03,320 --> 00:01:04,280 >> [END erreprodukzioa] 19 00:01:04,280 --> 00:01:05,220 >> DAVID J. MALAN: Hargatik honetan begirada bat hartu 20 00:01:05,220 --> 00:01:07,250 eta ikusi nola hau inplementatu liteke 21 00:01:07,250 --> 00:01:09,680 eta hori nola liteke eraginik hau bezalako autoak hainbeste. 22 00:01:09,680 --> 00:01:12,840 Beraz, nire eskua hona hemen prentsa oharra EPA-- emana zen 23 00:01:12,840 --> 00:01:14,620 Ingurumen Babesteko Agentziak bertan 24 00:01:14,620 --> 00:01:18,032 AEBetako arautzaile agentzia da ingurumen kezkak maneiatzen, 25 00:01:18,032 --> 00:01:19,740 eta, ondoren, benetako Legezko abisua zela 26 00:01:19,740 --> 00:01:22,420 Volkswagen bidali egun gutxi batzuk besterik ez duela. 27 00:01:22,420 --> 00:01:26,530 >> Beraz EPA idazten, eta discloses orain publikoki, software sofistikatu bat 28 00:01:26,530 --> 00:01:29,390 Algoritmo batzurekin Volkswagen ibilgailu detektatzen 29 00:01:29,390 --> 00:01:32,630 autoa murgilduta dago igorpen ofizialak probak 30 00:01:32,630 --> 00:01:36,505 eta emisio osoa bihurtzen kontrolatzen proba bakarra zehar. 31 00:01:36,505 --> 00:01:38,380 Eraginkortasuna ibilgailuen kutsadura horiek 32 00:01:38,380 --> 00:01:43,260 isurien kontrol gailu da hein handi batean Gidatze normal guztian zehar murriztu 33 00:01:43,260 --> 00:01:44,320 egoerak. 34 00:01:44,320 --> 00:01:48,190 Hau betetzen duten autoak emaitzak laborategian edo probetan estandarrak 35 00:01:48,190 --> 00:01:52,790 geltokia, baina ohiko funtzionamenduan zehar igortzen nitrogeno oxides-- edo NOx-- 36 00:01:52,790 --> 00:01:54,950 gehienez 40 aldiz estandarra. 37 00:01:54,950 --> 00:01:58,220 Volkswagen sortutako software The aurrekontu unquote porrota gailu bat da, 38 00:01:58,220 --> 00:02:00,650 definitu Clean-ek Air Act AEBetan. 39 00:02:00,650 --> 00:02:03,410 >> Joan dira mutilzahar EPA eta beste bide 40 00:02:03,410 --> 00:02:07,020 agerian porrota gailua analisi independentea ondoren software 41 00:02:07,020 --> 00:02:09,660 West ikertzaileek Virginia University. 42 00:02:09,660 --> 00:02:14,160 NOx kutsadura laguntzen du nitrogeno dioxidoa, lurraren mailan ozonoa, 43 00:02:14,160 --> 00:02:15,700 eta partikula finak materia. 44 00:02:15,700 --> 00:02:18,090 Horien eraginpean kutsatzaile izan lotuta 45 00:02:18,090 --> 00:02:20,870 sorta zabal batekin osasun-ondorioak larriak, 46 00:02:20,870 --> 00:02:23,637 asma handitu barne erasoak eta beste arnas 47 00:02:23,637 --> 00:02:26,470 larria izan daiteke nahikoa gaixotasun Jende bidaltzeko ospitalera. 48 00:02:26,470 --> 00:02:28,660 Ozonoaren eraginpean eta partikulak ditu, halaber, 49 00:02:28,660 --> 00:02:31,960 izan goiztiarra lotutako heriotza arnas aparatuko ondorioz 50 00:02:31,960 --> 00:02:35,690 edo erlazionatutako kardiobaskularrak ondorioak. 51 00:02:35,690 --> 00:02:38,940 Haurrak, adinekoak, dituzten pertsonak lehengo arnas gaixotasun 52 00:02:38,940 --> 00:02:42,840 bereziki arriskuan daude osasun kutsatzaile horien ondorioak. 53 00:02:42,840 --> 00:02:45,056 >> Aski da esateko, nahiko larria da. 54 00:02:45,056 --> 00:02:46,930 Eta goazen on irakurtzeko Puska bat gehiago 55 00:02:46,930 --> 00:02:49,370 eta, ondoren, begirada bat hartuko dugu oinarrian dauden inplikazioak 56 00:02:49,370 --> 00:02:50,920 hau auto baten testuinguruan. 57 00:02:50,920 --> 00:02:53,730 Hain zuzen ere, Volkswagen fabrikatu eta instalatu 58 00:02:53,730 --> 00:02:56,210 deiturikoak ere software kontrol elektronikoa 59 00:02:56,210 --> 00:02:59,320 module-- edo ECM-- ibilgailu horiek sumatzen 60 00:02:59,320 --> 00:03:03,580 ibilgailuak probatu ari zela EPA igorpen estandarrak betetzen. 61 00:03:03,580 --> 00:03:07,510 Oinarritutako hainbat sarrera barne bolantea posizio, ibilgailu 62 00:03:07,510 --> 00:03:11,280 Abiadura, motorraren iraupena Eragiketa eta barometric presio, 63 00:03:11,280 --> 00:03:13,720 hain zuzen, sarrera horiek parametroak arloak 64 00:03:13,720 --> 00:03:17,600 egiteko erabilitako federal proba prozedura- isuriaren EPA ziurtagiria lortzeko probak 65 00:03:17,600 --> 00:03:18,400 helburuetarako. 66 00:03:18,400 --> 00:03:21,850 >> EPA-ren isuriaren Probetan ibilgailu ECM softwarea 67 00:03:21,850 --> 00:03:25,060 bertan ekoiztu software ran betetzen isuriak emaitzak. 68 00:03:25,060 --> 00:03:28,340 Beste une oro, eta Ibilgailua ECM software 69 00:03:28,340 --> 00:03:31,090 Aparteko errepide bat zuena calibration horrek murriztu 70 00:03:31,090 --> 00:03:34,360 eraginkortasuna igorpen oro har, kontrol-sistema, 71 00:03:34,360 --> 00:03:37,864 Zehazki selektiboa katalitikoa Lean NOx murriztea trap-- 72 00:03:37,864 --> 00:03:39,280 Hauei buruzko ikusiko dugu une batean. 73 00:03:39,280 --> 00:03:43,040 Ondorioz, NOx 10 eta 40 aldiz aldiz handitzen du 74 00:03:43,040 --> 00:03:47,450 EPA betetzen mailatik Pase zikloaren motaren arabera. 75 00:03:47,450 --> 00:03:50,800 >> Beraz, zer esan nahi du benetan, eta source software exekutatzen den kodea 76 00:03:50,800 --> 00:03:53,190 Volkswagen on ez dauka oraino publikoki kontuetarako, 77 00:03:53,190 --> 00:03:56,460 dela, bai, hori baliokidea han nonbait barruan 78 00:03:56,460 --> 00:03:57,830 Volkswagen kodearen. 79 00:03:57,830 --> 00:04:02,200 Zuk probatu ari bazara, eta autoa bada ingurumen faktore batzuk detektatzen 80 00:04:02,200 --> 00:04:04,330 bolantea bezala Posizio edo mugimendua 81 00:04:04,330 --> 00:04:06,710 edo falta autoaren kontratuan edo Edozein beste faktore batzuk 82 00:04:06,710 --> 00:04:09,940 Une horretan hipotesi daude formula honen parte izan nahi du, 83 00:04:09,940 --> 00:04:12,370 piztu dute, besterik gabe, emisioak osoa kontrolatzeko. 84 00:04:12,370 --> 00:04:15,670 Beste era batera esanda, hasten dira kutsatzaile gutxiago igortzen. 85 00:04:15,670 --> 00:04:18,769 >> Bestela, beste egoera guztietan denean, ez da ari, antzemandako 86 00:04:18,769 --> 00:04:20,790 laborategian, egin besterik ez dute. 87 00:04:20,790 --> 00:04:24,320 Eta, beraz, hau errazteko daiteke gehiago sartu zerbait pseudocode hormigoia 88 00:04:24,320 --> 00:04:24,820 horrela. 89 00:04:24,820 --> 00:04:27,810 Gurpilak inflexio baina bada bolantea ez da, iradokitzailea 90 00:04:27,810 --> 00:04:30,060 autoan batzuk abian da biratzen zilindro moduko 91 00:04:30,060 --> 00:04:32,550 baina nolabaiteko probatzen ari biltegia, 92 00:04:32,550 --> 00:04:36,070 orduan jokatzen duten bezala EPA duzu nahi. 93 00:04:36,070 --> 00:04:37,960 Bestela, ez. 94 00:04:37,960 --> 00:04:40,420 Beraz, dezagun begirada bat bideo labur batean dagoela 95 00:04:40,420 --> 00:04:45,391 zer inplikazio errepasatzen du Hori, egia esan, mekanikoki. 96 00:04:45,391 --> 00:04:48,620 >> [Bideo-erreprodukzioa] 97 00:04:48,620 --> 00:04:52,800 >> -Azken Ostiralean EPA iragarri batzuk Volkswagen Audi autoak 2009 artean egina 98 00:04:52,800 --> 00:04:55,840 eta aurten erabiliz Porrot gailu deiturikoak 99 00:04:55,840 --> 00:04:59,060 emisioak legeak mugitu airea garbi mantentzeko diseinatuta. 100 00:04:59,060 --> 00:05:01,700 Baina zer esan nahi du zehazki? 101 00:05:01,700 --> 00:05:04,666 >> Beno, auto moderno dute dozenaka horien barruan ordenagailuak. 102 00:05:04,666 --> 00:05:07,040 Eta ordenagailuak horietako batzuk funtzioak koordinatzeko laguntzeko 103 00:05:07,040 --> 00:05:09,590 ahalik eta motorraren performance bitartean ziur 104 00:05:09,590 --> 00:05:12,340 ez dagoela ez da gehiegi zabor ihes kanalizazio irteten. 105 00:05:12,340 --> 00:05:15,170 Nik, egia esan, lanean izan dute zenbait hamarkada oraingoz modu hau. 106 00:05:15,170 --> 00:05:17,380 Funtsean, zati bakoitza a auto moderno motorraren 107 00:05:17,380 --> 00:05:20,080 sentsore bat edo controller ditu da, eta ordenagailu horiek on 108 00:05:20,080 --> 00:05:23,460 dira irakurtzen datuak mila aldiz segundoko making doikuntzek 109 00:05:23,460 --> 00:05:26,220 erregai ratioa airea bezalakoa hori zilindro sartu. 110 00:05:26,220 --> 00:05:28,730 >> Iruzurra Volkswagen hauek eta Audi modeloak gasolioen dira, 111 00:05:28,730 --> 00:05:30,890 eta gasolioen bat gehiago ordenagailu benetan garrantzitsua 112 00:05:30,890 --> 00:05:34,030 parametroak kontrolatu, hau da, Erre gabeko erregai zenbatekoa joan 113 00:05:34,030 --> 00:05:35,200 ihes egin ondoren. 114 00:05:35,200 --> 00:05:36,310 Orain dela soinuak txarra. 115 00:05:36,310 --> 00:05:39,642 Ez du ematen, nahi duzun bezala litzateke Erre gabeko erregaia agortzen sartu. 116 00:05:39,642 --> 00:05:41,600 Baina baten kasuan ere diesel, zerbait egin behar duzu 117 00:05:41,600 --> 00:05:46,110 NOx tranpa bat gailu bat da deitzen duten xurgatu eta nitrogeno oxidoak tranpak 118 00:05:46,110 --> 00:05:48,880 kutsatzaile daude que iba bestela, atmosferara joaten. 119 00:05:48,880 --> 00:05:53,040 Eta NOx tranpa duten eragina da erre ez erregai indartu. 120 00:05:53,040 --> 00:05:56,650 Beraz porrota gailu bat programazio berezia da ordenagailu hauen barruan egin daiteke 121 00:05:56,650 --> 00:05:59,527 itxura auto betetzen ditu igorpen estandarrak ez ditu denean ere. 122 00:05:59,527 --> 00:06:01,110 Volkswagen arazo bat izan zuen bere eskuetan. 123 00:06:01,110 --> 00:06:04,050 Bere diesel motorren ziren ezagunak erregai ekonomia handia lortzeko, 124 00:06:04,050 --> 00:06:07,510 baina NOx tranpan bakarrik ondo funtzionatzen denean erregai gehiago erabiltzen ari da. 125 00:06:07,510 --> 00:06:10,460 Beraz, auto detektatzeko litzateke, Porrot Telefonoa erabiltzeko, 126 00:06:10,460 --> 00:06:13,870 denean isuriak bat zen lortzean Proba, erregai gehiago behar luke, 127 00:06:13,870 --> 00:06:16,830 the NOx tranpa lana ondo egiteko, isuriak, ondo egongo litzateke. 128 00:06:16,830 --> 00:06:21,130 Baina gero, errepidean, telefonoak itzaltzen, erregai gutxiago erretzea zu 129 00:06:21,130 --> 00:06:24,256 baina bezain 40 aldiz ari zara atmosferara kutsatzaile gehiago. 130 00:06:24,256 --> 00:06:26,130 Baina nola demontre egin Autoan jakin izan zela 131 00:06:26,130 --> 00:06:27,720 ari isuriak betetzeko probatu? 132 00:06:27,720 --> 00:06:30,590 EPA dioenez sofistikatu bat izan zen sistema gauza hautatuta dagoela 133 00:06:30,590 --> 00:06:34,090 bolantea posizio bezala, abiadura, zenbat denbora motorra izan zen, 134 00:06:34,090 --> 00:06:35,507 eta nahiz eta presio atmosferikoa. 135 00:06:35,507 --> 00:06:37,673 Beste era batera esanda, ez zen no modu hau zen ezustekoa 136 00:06:37,673 --> 00:06:40,260 software zegoelako diseinatu kontu handiz detektatzeko 137 00:06:40,260 --> 00:06:41,630 emisioak proba ofizial batean. 138 00:06:41,630 --> 00:06:43,588 Hori da, batzuk nahiko larriak iruzur eta hori da 139 00:06:43,588 --> 00:06:45,420 zergatik Volkswagen da hala nola arazoak larriak. 140 00:06:45,420 --> 00:06:48,600 Izan ere, bere zuzendari nagusia, Martin Winterkorn, urratsez urrats behera. 141 00:06:48,600 --> 00:06:49,820 >> Beraz, zer gertatzen da gero? 142 00:06:49,820 --> 00:06:53,900 Beno, milioi erdi bat bada diesel Jettas, Beatles, Golfs, Passats, 143 00:06:53,900 --> 00:06:56,220 edo Audi A3s gauzatu da, Berri ona da, da 144 00:06:56,220 --> 00:06:57,886 zure autoa gidatzeko segurua da oraindik. 145 00:06:57,886 --> 00:07:00,510 Ez daukazu vtzitera Volkswagen abisuaren bat egiten duen arte. 146 00:07:00,510 --> 00:07:02,509 Baina uneren batean ari dira ziurrenik behar joan 147 00:07:02,509 --> 00:07:04,230 Zure autoa barruan softwarea eguneratzeko. 148 00:07:04,230 --> 00:07:06,927 Hori gertatzen denean dituzun mila gutxiago depositua per lortu. 149 00:07:06,927 --> 00:07:09,260 Abokatuak dagoeneko engranaje demanda sortu 150 00:07:09,260 --> 00:07:12,500 beraz, jabeek ordaindu egin daitezke Etorkizunean uneren batean. 151 00:07:12,500 --> 00:07:15,832 Baina hori ez da joan gertatuko edonoiz laster. 152 00:07:15,832 --> 00:07:16,711 >> [END erreprodukzioa] 153 00:07:16,711 --> 00:07:19,960 DAVID J. MALAN: Beraz, hau benetan altxatzen Irudian question handiagoa interesgarri bat 154 00:07:19,960 --> 00:07:20,660 fidatu bezala. 155 00:07:20,660 --> 00:07:21,160 Eskuin? 156 00:07:21,160 --> 00:07:24,300 Guztiok iPhones edo Androids dute edo gure poltsikoetan zerbait ziurrenik 157 00:07:24,300 --> 00:07:26,500 egun hauetan, edo eramangarriak gure itzulietan diren on 158 00:07:26,500 --> 00:07:28,510 egin korrika software Apple eta Microsoft-ek 159 00:07:28,510 --> 00:07:30,710 eta beste enpresa-sortak. 160 00:07:30,710 --> 00:07:34,240 Baina nola dakigu zer software produktu hauek egiten ari 161 00:07:34,240 --> 00:07:37,680 benetan zer horiek Enpresak esan egiten ari dira? 162 00:07:37,680 --> 00:07:39,610 >> Esate baterako, nor den esaten duten aldi bakoitzean duzu 163 00:07:39,610 --> 00:07:42,200 Telefono dei bat zure iPhone egin edo Android telefono edo antzekoak, 164 00:07:42,200 --> 00:07:45,650 Telefono zenbaki hori, era berean, ez da ari konpainia batzuek en zerbitzari igotako 165 00:07:45,650 --> 00:07:48,399 programa batzuen dut duzulako idatzia, eragilea ote den 166 00:07:48,399 --> 00:07:51,070 sistema bera iOS edo Android bezalakoak, edo deskargatu delako 167 00:07:51,070 --> 00:07:53,880 Zenbait hirugarren batzuen aplikazioa nolabait entzuten ari dela 168 00:07:53,880 --> 00:07:57,120 Dena den zuk idazten ari edo guztia benetan esaten ari zaren. 169 00:07:57,120 --> 00:07:59,500 Nola dakizu hori, betiere you guys Clang exekutatzen ari 170 00:07:59,500 --> 00:08:02,590 edo Egin konpilatu zure CS50, nola, software propioa 171 00:08:02,590 --> 00:08:06,080 Egin duzu CS50 horren langileak, CS50 liburutegia bidez, 172 00:08:06,080 --> 00:08:08,690 Ez ditu behin saioa amaitzeko katea inoiz ahaztuak 173 00:08:08,690 --> 00:08:10,276 edo behin inoiz ahaztuak hazbeteko? 174 00:08:10,276 --> 00:08:12,900 Beno, zalantzarik gabe, ezin duzu begiratu source zerbait kodea at 175 00:08:12,900 --> 00:08:15,233 CS50 liburutegia bezala, zuk zitekeen jatorrizko kodean begiratzeko 176 00:08:15,233 --> 00:08:18,170 Linux sistema eragilea CS50 IDE exekutatzen. 177 00:08:18,170 --> 00:08:23,090 Baina aurkezpen bat harrigarria eman zitzaion atzera 1984. urtean 178 00:08:23,090 --> 00:08:26,730 Turing saria jaso batek ere ezagutzen ordenagailu oso ezaguna zientzialari 179 00:08:26,730 --> 00:08:29,750 as-- izeneko Ken Thompson nor Turing saria jaso duen 180 00:08:29,750 --> 00:08:33,500 informatikako en moduko da Nobel Saria, izango bada, 181 00:08:33,500 --> 00:08:35,309 Bere baten lanagatik izeneko sistema eragile 182 00:08:35,309 --> 00:08:39,039 Unix, eta bertan oso antzekoa da zer erabiltzen dugun espirituz Linux da. 183 00:08:39,039 --> 00:08:41,960 Eta galdera eskatu zion bere onarpen hitzaldian, funtsean 184 00:08:41,960 --> 00:08:44,910 esparrua finkatzen dituena urte eta eztabaidarako urte 185 00:08:44,910 --> 00:08:46,970 konfiantza eta segurtasuna buruz, hau izan zen. 186 00:08:46,970 --> 00:08:50,410 Zein neurritan beharko lukete konfiantza bat izan du adierazpena pieza bat programa bat 187 00:08:50,410 --> 00:08:53,010 ren software-- da Troiako zaldiak, doan? 188 00:08:53,010 --> 00:08:56,500 Agian gehiago garrantzitsua da fio duten pertsonen software idatzi zuen. 189 00:08:56,500 --> 00:08:58,650 >> Eta hain zuzen ere, lotuta izan dugu hitzaldia izango zuela 190 00:08:58,650 --> 00:09:02,400 Eman denean sari hau onartuz 'CS50 webgunean 80ko hamarkadan 191 00:09:02,400 --> 00:09:04,030 gaur egun orria Hitzaldiak azpian. 192 00:09:04,030 --> 00:09:06,071 Zer ikusiko duzu delako Benetan hori ematen zuen 193 00:09:06,071 --> 00:09:09,430 nola, nahiz eta adibide nahiko simple Clang edo dena bezalakoa konpilatzailea 194 00:09:09,430 --> 00:09:13,950 konpiladoreak beste batzuk iragan erabili behar izan zituzten, zer konpilatzailea dugu barneratua bada 195 00:09:13,950 --> 00:09:18,190 geure erabiltzen ari da pixka bat bada Egoera hori, funtsean, dio, 196 00:09:18,190 --> 00:09:22,360 kode hori erabiltzen ari da nabarituko duzu GetString funtzioa edo GetInt du 197 00:09:22,360 --> 00:09:26,600 funtzioa, aurrera eta txertatu atzeko ate bat edo Troiako zaldi bat 198 00:09:26,600 --> 00:09:29,340 besteak beste, programa hori orain zeroz batzuk 199 00:09:29,340 --> 00:09:30,930 eta zerbait maltzurren egiten direnak. 200 00:09:30,930 --> 00:09:33,080 Guztia hasten zure zanpatze, datu horiek igotzean 201 00:09:33,080 --> 00:09:35,100 zerbitzari batzuk, edo benetan ezer. 202 00:09:35,100 --> 00:09:37,290 >> Eta zer Ken Thompson Aurrera doa bere hitzaldia egin 203 00:09:37,290 --> 00:09:40,580 dela frogatzeko, nahiz iturburu sarbidea izango duzu 204 00:09:40,580 --> 00:09:43,794 Konpiladore baten Código maltzurki hori egiten liteke, 205 00:09:43,794 --> 00:09:46,210 Ez du axola duelako Han oilasko hau eta arrautza da 206 00:09:46,210 --> 00:09:49,500 Iraganean askoren errealitatea urte zeinaren konpiladoreak 207 00:09:49,500 --> 00:09:51,960 beraiek biltzeko erabilitako dira. 208 00:09:51,960 --> 00:09:55,440 Beste era batera esanda, modu back, norbaitek du lehen konpilatzailea idatzitako dute. 209 00:09:55,440 --> 00:09:59,060 Eta hortik aurrera, edozein momentutan eguneratu dute Bere kodea aldatuta konpilatzailea, 210 00:09:59,060 --> 00:10:02,020 ezaugarriak gehituz eta berriro konpilatu Gu bezalako jendeak erabili ahal izateko, bai eta, 211 00:10:02,020 --> 00:10:04,270 Oraindik zaharra erabiliz dute konpilatzailea bertsio 212 00:10:04,270 --> 00:10:06,370 berria biltzeko konpilatzailea bertsioa. 213 00:10:06,370 --> 00:10:08,370 Eta begirada bat hartu baduzu hitzaldia izango zuela eman zuen, 214 00:10:08,370 --> 00:10:10,970 egingo ikusten duelako zirkulartasunik hori, 215 00:10:10,970 --> 00:10:14,330 benetan ahal izango duzu bugs edo Troiako zaldiak software murgildurik 216 00:10:14,330 --> 00:10:14,990 erabiltzen ari gara. 217 00:10:14,990 --> 00:10:18,010 Eta begiratuz gero, are at source programa horiek kodea, 218 00:10:18,010 --> 00:10:21,550 Agian ez, nahiz agerikoa izan iruzurrak da benetan delako 219 00:10:21,550 --> 00:10:24,710 a bertsio zaharrago batzuetan Konpiladore duten geroztik 220 00:10:24,710 --> 00:10:27,340 Gure software sartu mehatxua injektatzen. 221 00:10:27,340 --> 00:10:29,740 >> Zein da bakarrik, esan nahi dugu Benetan ez eta behar ez 222 00:10:29,740 --> 00:10:32,939 Konfiantza software gure eramangarriak exekutatzen edo telefono edo edozein plaza kopurua. 223 00:10:32,939 --> 00:10:36,230 Eta hain zuzen ere, geroago seihileko honetan denean web programazioari buruz hitz egiten hasten garen 224 00:10:36,230 --> 00:10:38,521 eta benetan hasteko eraikitzeko web aplikazioen geure, 225 00:10:38,521 --> 00:10:40,285 horiei buruz hitz egingo dugu mehatxuak eta beste batzuk. 226 00:10:40,285 --> 00:10:43,410 Orain, zuk galdetu izan liteke, eta nabaritu Ez zela apur Darth txiki-txiki bat 227 00:10:43,410 --> 00:10:45,842 Klipak ere Vader dagoela Zorian ez zen erakusten 228 00:10:45,842 --> 00:10:47,550 Volkswagen buruz. Bada Nik inoiz ikusi, I 229 00:10:47,550 --> 00:10:49,190 pentsatu argitu behar dugu umore hori guztia delako 230 00:10:49,190 --> 00:10:50,780 Oso triste eta beldurgarria. 231 00:10:50,780 --> 00:10:52,910 Atzera begiratu noa Super Bowl 2011 232 00:10:52,910 --> 00:10:55,300 denean by merkataritza Volkswagen-- eta honek 233 00:10:55,300 --> 00:10:59,620 ia egiten likable, berriro horiek Telebistan, lehen aldiz aired. 234 00:10:59,620 --> 00:11:04,039 Da 60 bigarren clip It gozatu ahal izango duzu uste dut. 235 00:11:04,039 --> 00:11:04,705 [Bideo-erreprodukzioa] 236 00:11:04,705 --> 00:11:08,198 [MUSIKA - gaitik "Star Wars"] 237 00:11:08,198 --> 00:11:35,643 238 00:11:35,643 --> 00:11:38,138 [Txakur zaunka] 239 00:11:38,138 --> 00:11:50,114 240 00:11:50,114 --> 00:11:53,607 [CAR hasten] 241 00:11:53,607 --> 00:12:04,086 242 00:12:04,086 --> 00:12:05,955 [END erreprodukzioa] 243 00:12:05,955 --> 00:12:06,830 DAVID J. MALAN: Bai. 244 00:12:06,830 --> 00:12:07,663 I besterik ez egiaztatzea zen. 245 00:12:07,663 --> 00:12:11,360 Kotxe hori urratzeak zerrendan dago. 246 00:12:11,360 --> 00:12:12,000 Ados. 247 00:12:12,000 --> 00:12:14,040 Beraz, begiratu batzuk ditugu pseudocode une bat duela. 248 00:12:14,040 --> 00:12:15,380 Eta hemen handiago batean pseudocode kode 249 00:12:15,380 --> 00:12:16,921 Hori ikusi dugu hainbat aldiz, orain arte. 250 00:12:16,921 --> 00:12:19,970 Eta ez dezagun erabili hau aukera bat da orain programazioa aurkeztu berri 251 00:12:19,970 --> 00:12:23,776 Teknika hori egin genuen ikusi algorithmically 252 00:12:23,776 --> 00:12:25,400 azken astean, begiratu sort batu ginen. 253 00:12:25,400 --> 00:12:28,270 Baina dezagun formalizatzeko eta ikusi nola Baliteke erabiltzen dugun benetako kodea ere, 254 00:12:28,270 --> 00:12:30,350 eta, ondoren, goazen hau erabili joan Teknika errepidean behera gehien 255 00:12:30,350 --> 00:12:32,000 seguru asko, beste zenbait arazo konpontzeko. 256 00:12:32,000 --> 00:12:35,790 >> Beraz, hau izan zen lehen programa bat dugu inoiz idatzi zuen, pseudocode kodea bada ere. 257 00:12:35,790 --> 00:12:37,790 Eta zer Programaren baimenik ikastaroan egin gurekin 258 00:12:37,790 --> 00:12:41,510 Mike Smith aurkitu telefono-liburu bat izan zen. 259 00:12:41,510 --> 00:12:46,216 Eta lerro bereziki zortzi nabarituko eta 11 bertan Go To adierazpen hau izan. 260 00:12:46,216 --> 00:12:48,090 Eta hain zuzen ere, zenbait hizkuntzetan, C haien artean, 261 00:12:48,090 --> 00:12:50,006 Egia esan, ez dute adierazpen hori da, hitzez 262 00:12:50,006 --> 00:12:52,710 joan den aukera ematen dizu lerro jakin batera joateko. 263 00:12:52,710 --> 00:12:55,470 Honez oro har, baita frowned da, oso erraz neurriz dezake 264 00:12:55,470 --> 00:12:58,490 eta saltoka hasteko dezakezu zure programa guztiak leku baino ez bezala 265 00:12:58,490 --> 00:13:00,690 mota erabiliz Logika eta kontrol fluxua 266 00:13:00,690 --> 00:13:04,000 hori erabili dugu, orain arte baino ez dituzten loops eta egoerak eta antzekoak. 267 00:13:04,000 --> 00:13:08,660 >> Baina algoritmo hau errazteko dezakegu pseudocode kodea ere honela. 268 00:13:08,660 --> 00:13:11,250 Etorriko horren ordez edo begizta hurbilketa 269 00:13:11,250 --> 00:13:14,160 non ezkutatzen ditugu eta atzera eta atzera, hiru lerro, 270 00:13:14,160 --> 00:13:18,300 zergatik ez motatako punt dugu eta gehiago Oro har, zazpi eta 10 lerro esan, 271 00:13:18,300 --> 00:13:20,570 besterik ordezkatu bi horiek lerroak bikote, 272 00:13:20,570 --> 00:13:22,810 bestela Smith lehenago bada liburuan zaitugu 273 00:13:22,810 --> 00:13:25,110 bilatu Mike for the in ezker liburuaren erdia. 274 00:13:25,110 --> 00:13:28,560 Smith da geroago ez bada ere liburu, bilatu Mike egiteko eskubidea ere 275 00:13:28,560 --> 00:13:29,540 liburu seihilekoan. 276 00:13:29,540 --> 00:13:31,180 Eta konturatu dagoeneko zirkulartasunik du. 277 00:13:31,180 --> 00:13:31,680 Eskuin? 278 00:13:31,680 --> 00:13:34,250 Naiz bilatzen Mike batean telefono-liburua eta gero 279 00:13:34,250 --> 00:13:37,090 Hit azkenean dut, agian, Zazpi edo lerro agian linea 10 280 00:13:37,090 --> 00:13:41,089 eta nire neure buruari instrukzioa bilaketa da Mike telefono liburuaren erdia. 281 00:13:41,089 --> 00:13:42,380 Beno, nola ez bilatu dut Mike egiteko? 282 00:13:42,380 --> 00:13:44,213 Naiz erdian Mike, zergatik bilatuz 283 00:13:44,213 --> 00:13:45,860 diren moduko bidaltzea duzu me biribilean? 284 00:13:45,860 --> 00:13:49,590 Baina hori OK zer dagoelako Arazoaren tamaina gertatzen, 285 00:13:49,590 --> 00:13:52,630 idatzitako gisa linea 7 eta 10 urtean? 286 00:13:52,630 --> 00:13:54,989 Ez gara besterik bilaketa esanez Mike, bilatu Mike da. 287 00:13:54,989 --> 00:13:56,280 Zehazki, esaten ari gara zer? 288 00:13:56,280 --> 00:13:58,694 289 00:13:58,694 --> 00:14:01,610 Zion bilatzea ezkerreko erdia eskuineko erdia eta hori eraginkortasunez 290 00:14:01,610 --> 00:14:03,440 Arazoaren tamaina erdia. 291 00:14:03,440 --> 00:14:07,170 Beraz ondo dago garela motatako zirkulartasunik honetan parte, 292 00:14:07,170 --> 00:14:09,180 Argumentu zirkular honek, gutxienez garelako 293 00:14:09,180 --> 00:14:11,090 arazoa gero eta txikiagoa egiteko. 294 00:14:11,090 --> 00:14:14,220 Eta azkenean goaz iristeko joan oinarri hori kasu deiturikoak non 295 00:14:14,220 --> 00:14:16,780 orrialde bakar bat behar dugu ezker aldean gure boluntario joan den astean bezala 296 00:14:16,780 --> 00:14:18,684 did-- izan genuen orri bat utzi eta gero, ez dugu 297 00:14:18,684 --> 00:14:21,600 Mike Smith bila mantendu behar bai zuen orrialde horretan dagoelako 298 00:14:21,600 --> 00:14:23,080 edo ez da. 299 00:14:23,080 --> 00:14:27,480 >> Beraz, nola ideia hori, hau martxan jarri dugu Benetako kodea biribilkeriarik moduko? 300 00:14:27,480 --> 00:14:31,030 Beno, teknika bat leverage dugu hori, oro har, errekurtsio bezala ezagutzen. 301 00:14:31,030 --> 00:14:33,960 Eta ikusi dugu hau ere merge sort pseudocode joan den astean. 302 00:14:33,960 --> 00:14:37,190 Gogoratu hau zela merge sort pseudocode. 303 00:14:37,190 --> 00:14:40,560 Dudarik gabe, nahiz baino errazagoa burbuila edo hautaketa edo txertatzeko ordenatu 304 00:14:40,560 --> 00:14:43,310 besterik soiltasun dagokionez eta horrela izan, adierazi ahal izango duzu. 305 00:14:43,310 --> 00:14:46,750 >> Baina hori delako zirkularki moduko gaude 306 00:14:46,750 --> 00:14:51,350 , esanez bilatu zerbait egiteko horretarako berriro bilatuz. 307 00:14:51,350 --> 00:14:53,960 Baina ari banatan bilatzen dugu ezkerreko erdian edo eskuineko erdia 308 00:14:53,960 --> 00:14:56,070 eta gero, azkenean, ez gara Kasu honetan batuz. 309 00:14:56,070 --> 00:14:58,520 Baina hemen ere, batera horiek bi moduko lerroak, 310 00:14:58,520 --> 00:15:01,320 zuen berriro honetako dugu errekurtsio ideia. 311 00:15:01,320 --> 00:15:05,350 Eta zehazkiago, zer esan nahi, Algoritmo baten testuinguruan, 312 00:15:05,350 --> 00:15:10,880 da algoritmo hori errekurtsiboak da erabiltzen bada edo deiak bera. 313 00:15:10,880 --> 00:15:14,330 >> Edo C dagokionez, funtzio bat da izeneko funtzio bat recursive 314 00:15:14,330 --> 00:15:18,510 foo errekurtsiboak foo bada, nonbait bere iturburu-kodea ere, 315 00:15:18,510 --> 00:15:21,250 funtzio foo bera deiak. 316 00:15:21,250 --> 00:15:25,790 Eta hori txarra foo guztiak inoiz ez badu da behin eta berriro deitu bera. 317 00:15:25,790 --> 00:15:30,600 OK da foo azkenean gelditzen bada, egiten duen bezala batu, ordenatu, esanez, minutu bat itxaron, 318 00:15:30,600 --> 00:15:32,980 Arazo hau da super bada txikiak, adibidez, 319 00:15:32,980 --> 00:15:35,840 edo aurkitu nuen harekin naiz bila, besterik gabe. 320 00:15:35,840 --> 00:15:41,000 Ez errekurtsiboki, ez ziklikoki deitzen neure burua berriro. 321 00:15:41,000 --> 00:15:44,200 >> Eta beraz dezagun begirada bat Hau nola benetan lan egin dezake. 322 00:15:44,200 --> 00:15:48,430 Beraz, ez dut aurrera, eta irekia joan joan bi iturburu kodea adibide hemen. 323 00:15:48,430 --> 00:15:50,321 Horietako bat sigma 0 deritzo. 324 00:15:50,321 --> 00:15:52,320 Eta hori ez da batere errekurtsiboak, baina dezagun 325 00:15:52,320 --> 00:15:53,694 Programa honek egiten duenari begiratu. 326 00:15:53,694 --> 00:15:55,737 I biluztu Nik egindako guztiak da, baina guztietatik iruzkinak 327 00:15:55,737 --> 00:15:58,070 source CS50 on kodearen Webgune iruzkinak baduzu ditu 328 00:15:58,070 --> 00:15:59,570 bidez irakurri berriro beranduago nahi. 329 00:15:59,570 --> 00:16:02,010 Eta egin dezagun pare bat utzi behatu egiaztatzen hemen. 330 00:16:02,010 --> 00:16:06,640 >> Kode honen goialdean beraz, besteak beste cs50.h. 331 00:16:06,640 --> 00:16:07,650 Zer egin? 332 00:16:07,650 --> 00:16:08,990 Zergatik da hemen? 333 00:16:08,990 --> 00:16:11,740 Arrazoizkoa Layman en dagokionez. 334 00:16:11,740 --> 00:16:12,424 Zer egiten du? 335 00:16:12,424 --> 00:16:12,858 Bai. 336 00:16:12,858 --> 00:16:14,160 >> Ikusleak: GetInt funtzioa egiten du lan Beraz. 337 00:16:14,160 --> 00:16:16,243 >> DAVID J. MALAN: Beraz, GetInt funtzioa egiten du lan. 338 00:16:16,243 --> 00:16:18,115 Honen barruan duelako fitxategia, CS50.h, bertan 339 00:16:18,115 --> 00:16:20,950 luze baino lehen ikusiko dugu bere iturburu kodea dagokionez, 340 00:16:20,950 --> 00:16:23,270 funtzio sorta bat du declared-- GetInt, GetString, 341 00:16:23,270 --> 00:16:26,950 eta others-- eta ezean mordo bat Egia esan, ez dugu Besteak beste, hori line, 342 00:16:26,950 --> 00:16:29,320 Konpiladore Clang ez da existitzen dela jakin behar da. 343 00:16:29,320 --> 00:16:32,400 Eta bera lerroan doa Bi non int definitzen da 344 00:16:32,400 --> 00:16:35,101 printf, horrek funtzio bat da Pixka bat nahiko erabiltzen jarraitu genuen. 345 00:16:35,101 --> 00:16:37,850 Orain, lau lerro funky apur bat badirudi Bat liner bat besterik ez delako. 346 00:16:37,850 --> 00:16:41,570 Honez lortu, puntu eta koma, ez kizkur giltza, horren barruan kodea ez. 347 00:16:41,570 --> 00:16:44,640 Baina zer egin dugu deitu aste iragan kontu hau? 348 00:16:44,640 --> 00:16:45,140 Bai. 349 00:16:45,140 --> 00:16:46,060 Beraz prototipoa bat. 350 00:16:46,060 --> 00:16:48,390 Eta zergatik bat egin behar dugu prototipoa dela dirudien 351 00:16:48,390 --> 00:16:51,050 redundant apur bat izango da normalean dugulako normalean 352 00:16:51,050 --> 00:16:53,474 ikusi funtzioa berriro fitxategia beranduago, ezta? 353 00:16:53,474 --> 00:16:56,390 Beraz, zergatik ez zauden besterik ditugun Zure burua hazka baina hartu dut. 354 00:16:56,390 --> 00:16:57,302 Bai. 355 00:16:57,302 --> 00:17:00,000 >> Ikusleak: [INAUDIBLE] Funtzio nagusia ondoren. 356 00:17:00,000 --> 00:17:01,000 DAVID J. MALAN: Zehazki. 357 00:17:01,000 --> 00:17:04,089 Beraz, konpiladore daki Azkenean definitzeko edo ezarriko ditu 358 00:17:04,089 --> 00:17:06,579 Funtzio hori nagusien ondoren, ustez. 359 00:17:06,579 --> 00:17:08,462 Beraz Clang eta gehien konpiladoreak mota daude muda 360 00:17:08,462 --> 00:17:10,510 eta bakarrik egingo dute ezagutzen zer kontatu. 361 00:17:10,510 --> 00:17:12,569 Eta erabili nahi izanez gero Sigma izeneko funtzio bat, 362 00:17:12,569 --> 00:17:15,710 hobeto irakasteko konpilatzailea existitzen dela, aldez aurretik. 363 00:17:15,710 --> 00:17:17,970 >> Orain, bera nagusia, nahiz eta lerro sorta da, nahiz eta, 364 00:17:17,970 --> 00:17:19,839 da nahiko ezagunak Zorionez orain. 365 00:17:19,839 --> 00:17:21,942 Honez do begizta bitartean lortu horren helburua bizitzan 366 00:17:21,942 --> 00:17:24,400 Hemen da itxuraz bat lortzeko erabiltzaileari zenbaki positiboak. 367 00:17:24,400 --> 00:17:27,349 Eta besterik gabe, gorde zion pestering edo bere dute lankidetzan aritzea arte. 368 00:17:27,349 --> 00:17:30,670 Ondoren line 16 hasi nintzen dute deiaren interesgarri bat. 369 00:17:30,670 --> 00:17:31,570 IntAnswer. 370 00:17:31,570 --> 00:17:33,710 Zein ezquerrecoy Bigarren mailako ematen dit Int bat 371 00:17:33,710 --> 00:17:36,650 ezin diren store-- Answer-- izeneko hau da, gordetzeko, itxuraz, 372 00:17:36,650 --> 00:17:39,090 bueltan sigma balioa. 373 00:17:39,090 --> 00:17:41,840 Beraz sigma bat besterik ez da izen arbitrario baina esanguratsuak 374 00:17:41,840 --> 00:17:44,500 Dudan funtzio bat eman horren helburua bizitzan 375 00:17:44,500 --> 00:17:47,680 da argumentu bat hartu egiten zaitugu N deitu Beraz Kasu honetan 376 00:17:47,680 --> 00:17:52,280 eta besterik zenbaki hori batuketa hartu plus kopurua positiboren hori da 377 00:17:52,280 --> 00:17:53,200 hura baino txikiagoa. 378 00:17:53,200 --> 00:17:58,140 >> Beraz pasatzen dut 2 zenbakia ere bada sigma, gehitu nahi dut 2 plus 1 379 00:17:58,140 --> 00:18:00,240 plus 0-- ez 0-- beraz, ematen dit 3. 380 00:18:00,240 --> 00:18:05,320 Pasatzen dut 3 sigma nahi izanez gero, nahi dut 3 gehi 2 plus 1, horrek ematen dit 6. 381 00:18:05,320 --> 00:18:05,900 Eta abar. 382 00:18:05,900 --> 00:18:09,750 Beraz, besterik gabe, gehitzen zuen beste guztien zenbakiak baino txikiagoa edo berdina da. 383 00:18:09,750 --> 00:18:12,040 >> Orain, behera hemen I besterik ez noa Erantzuna inprimatu. 384 00:18:12,040 --> 00:18:17,330 Azkar behatu txeke bat da, beraz, dezagun sigma 0-- dot barra sigma egin 0-- 385 00:18:17,330 --> 00:18:18,690 eta let me mota 2. 386 00:18:18,690 --> 00:18:19,960 Eta hain zuzen ere, lortu dut 3. 387 00:18:19,960 --> 00:18:21,240 Demagun idatzi 3 me. 388 00:18:21,240 --> 00:18:22,860 Hain zuzen ere, lortu dut 6. 389 00:18:22,860 --> 00:18:27,636 Eta edonork math azkar egin ahal izanez gero, egin nuen 50 zer naiz zerbait egiten badut? 390 00:18:27,636 --> 00:18:29,839 >> Ikusleak: [INAUDIBLE]. 391 00:18:29,839 --> 00:18:30,880 DAVID J. MALAN: Beno, ez. 392 00:18:30,880 --> 00:18:33,340 Baina 1.275 horrek nahiko hurbil. 393 00:18:33,340 --> 00:18:38,850 Beraz, hau 50 egitearen emaitza da plus 49 gehi 48 gehi 47 gehi 46 394 00:18:38,850 --> 00:18:40,349 1 behera modu guztiak. 395 00:18:40,349 --> 00:18:41,390 Beraz, hori da sigma guztia egiten du. 396 00:18:41,390 --> 00:18:43,350 Baina ikus dezagun nola dugu orain martxan. 397 00:18:43,350 --> 00:18:45,790 Beraz, behera hemen funtzioa bera da. 398 00:18:45,790 --> 00:18:49,000 Eta hau ez dirudi dute ezer oraindik errekurtsio egin. 399 00:18:49,000 --> 00:18:51,070 Izan ere, bat erabiltzen ari gara Eskola teknika zaharra. 400 00:18:51,070 --> 00:18:56,680 Batura aldakorra izeneko bat naiz hasieratzean zero, gero foreloop bat daukat hemen, 401 00:18:56,680 --> 00:19:00,790 eta deitzen Int bat geratuko naiz I, ezartzean lortzen 1-- berdintasuna 402 00:19:00,790 --> 00:19:04,080 berdin da ezarri nezakeen arren zero, baina horrez gain, egiten ari naiz geroztik, 403 00:19:04,080 --> 00:19:05,340 Nork zaintzen da zero edo bat bada. 404 00:19:05,340 --> 00:19:06,660 Honez ez du eraginik izan behar. 405 00:19:06,660 --> 00:19:10,110 >> Beraz errepikatzean naiz hain luze jo i txikiago edo m, berdina bertan 406 00:19:10,110 --> 00:19:11,671 argudioa izan zen pasa da. 407 00:19:11,671 --> 00:19:13,670 Eta gero, mantendu besterik ez dut I. eta ikuspegi Incrementing 408 00:19:13,670 --> 00:19:20,010 Begizta guztiak egiten ari naiz batura egiten ari da plus berdintzen I. Eta hori da, nahita. 409 00:19:20,010 --> 00:19:22,326 Ez dut nahi ez, honetan Kasu, batuketa gehi plus bezala. 410 00:19:22,326 --> 00:19:24,790 Benetan gehitu nahi dut oraingoa dut balioa 411 00:19:24,790 --> 00:19:28,190 horrek mantentzen handiagoa eta handiagoa eta lasterka Tally handiagoa. 412 00:19:28,190 --> 00:19:30,210 >> Eta gero, batura itzuli nintzen. 413 00:19:30,210 --> 00:19:33,850 Eta beraz, erantzuna balio batura lortuko. 414 00:19:33,850 --> 00:19:35,282 Eta, ondoren, inprimatu egin nintzen. 415 00:19:35,282 --> 00:19:37,740 Beraz, ez dago aukera bat da hemen, nahiz eta, mota horretako sinplifikatzen 416 00:19:37,740 --> 00:19:41,260 Kode hori kontzeptualki eta kolpe mota bat da 417 00:19:41,260 --> 00:19:43,250 egiteari dagokionez axola soiltasun are arren 418 00:19:43,250 --> 00:19:45,700 ordenatzeko pixka bat hartzen eskertzen zergatik honetan 419 00:19:45,700 --> 00:19:47,330 Adibide txiki horiek ere indartsua da. 420 00:19:47,330 --> 00:19:50,380 Hemen sigma beraz one-- da Kode hori bigarren bertsioa. 421 00:19:50,380 --> 00:19:55,290 Dena eman goi-berdina da, beraz, istorioa bera baino lehenago aplikatzen. 422 00:19:55,290 --> 00:19:59,220 Baina, gaur egun dezagun at sigma ezartzeko bertan 423 00:19:59,220 --> 00:20:05,040 Whittled behera Nik besterik horiei lerroak lau kode lerro, benetan, 424 00:20:05,040 --> 00:20:06,980 plus batzuk kizkur giltza eta espazio zuria. 425 00:20:06,980 --> 00:20:07,930 >> Baina, zer egiten ari naiz? 426 00:20:07,930 --> 00:20:11,050 M baino txikiagoa edo berdina bada zero, mota horretako kudeatu behar dut 427 00:20:11,050 --> 00:20:12,490 Kasu super erraza. 428 00:20:12,490 --> 00:20:15,450 Eta entregatu me bada zero edo ezer negatiboa besterik ez da arraroa, 429 00:20:15,450 --> 00:20:17,909 Besterik ez naiz arbitrarioki joan baina koherentziaz itzuli zero. 430 00:20:17,909 --> 00:20:20,200 Ez dut gauza hori nahi infinitua bitxi batzuk sartu 431 00:20:20,200 --> 00:20:21,810 begizta delako balio negatiboa. 432 00:20:21,810 --> 00:20:25,070 Beraz, ez dut besterik gabe, esaten dut me ematen bada zero edo gutxiago, dut itzuli zero. 433 00:20:25,070 --> 00:20:28,220 >> Baina hori ona da hori delako Telefono Liburuaren orrialde bakar batean, 434 00:20:28,220 --> 00:20:28,790 Hori geratzen. 435 00:20:28,790 --> 00:20:32,660 Oso arazo jakin bati ziztada naiz off eta ez zerbait deituz errekurtsiboki. 436 00:20:32,660 --> 00:20:36,580 Baina line 31, zer ez da egiten, badirudi I? 437 00:20:36,580 --> 00:20:39,780 Parentesi besterik mantenduz Gauzak, zorionez, apur bat argiagoa. 438 00:20:39,780 --> 00:20:42,110 Baina guztiak egiten ari naiz da naiz m-- itzultzean edozein dela 439 00:20:42,110 --> 00:20:45,790 Niretzat gehi entregatu m-- Sentitzen balioa, 440 00:20:45,790 --> 00:20:49,052 plus m ken 1 sigma balioa. 441 00:20:49,052 --> 00:20:50,010 Beraz, zer esan nahi du horrek? 442 00:20:50,010 --> 00:20:53,965 3 zenbakia ematen badidazu sarrera gisa, erantzuna, azken finean, lortu nahi dut 443 00:20:53,965 --> 00:20:57,307 6 da 3 gehi 2 gehi 1 ematen dit 6 delako. 444 00:20:57,307 --> 00:20:59,390 Baina, nola egin pentsatu nuen nola kodea hau egiten ari da? 445 00:20:59,390 --> 00:21:03,070 Sigma deitu nuen lehen aldiz eta pasa 3 balioa dut, 446 00:21:03,070 --> 00:21:07,960 hori zati batean esaten duena bezalakoa da paper, hona hemen 3 balioa 447 00:21:07,960 --> 00:21:09,920 eta izan dut gainditu hau sigma bezala. 448 00:21:09,920 --> 00:21:13,090 3 da, jakina, 0 baino gutxiago, beraz, ez IF baldintza ez aplikatzeko. 449 00:21:13,090 --> 00:21:14,020 Bestela ez. 450 00:21:14,020 --> 00:21:14,990 Beraz, zer egin dezaket? 451 00:21:14,990 --> 00:21:19,902 M itzuliko da, hau da, nahi dut 3, plus m ken 1 sigma. 452 00:21:19,902 --> 00:21:21,110 Hargatik honen segimendua me. 453 00:21:21,110 --> 00:21:22,710 Hau jarri noa paper behera pieza. 454 00:21:22,710 --> 00:21:24,668 Eta zer balio du, eta izan argi eta garbi, preso pasatzen dut joan 455 00:21:24,668 --> 00:21:26,540 Istorioa Puntu honetan sigma sartu? 456 00:21:26,540 --> 00:21:28,080 Zer kopurua? 457 00:21:28,080 --> 00:21:28,610 2, ezta? 458 00:21:28,610 --> 00:21:29,670 3 ken 1 2 da. 459 00:21:29,670 --> 00:21:32,000 Beraz, behar besterik ez dut pixka bat paper pusketa hemen. 460 00:21:32,000 --> 00:21:33,931 Beraz, orain sigma ohitu da berriro deitu. 461 00:21:33,931 --> 00:21:35,930 Eta nahita jarri dut behera hau da, zeren 462 00:21:35,930 --> 00:21:38,070 motatako gelditzea bezala ipuinaren bertsio hori 463 00:21:38,070 --> 00:21:40,720 nabilela nagoelako m ken 1 seinale on. 464 00:21:40,720 --> 00:21:42,660 Beraz m 3 m zen ken 1 2 da. 465 00:21:42,660 --> 00:21:45,110 Hortaz, hona 2 dudan gainditu da. 466 00:21:45,110 --> 00:21:48,510 2 jakina da ez baino gutxiago 0, beraz, kasu horretan ez da aplikatu. 467 00:21:48,510 --> 00:21:53,445 Bestela m itzuliko naiz, eta hori da hau Gauza, plus zer balio-sigma? 468 00:21:53,445 --> 00:21:56,160 469 00:21:56,160 --> 00:21:59,650 Beraz, bada Sigma 1-- delako m da oraintxe 2 orain 2 ken 1 1 da. 470 00:21:59,650 --> 00:22:01,950 Beraz, gaur egun besterik balioa 1 daukat. 471 00:22:01,950 --> 00:22:04,810 Besterik kopuruaren pasatzen ari naiz 1 funtzio sigma-- izateko 472 00:22:04,810 --> 00:22:09,120 edo neure burua hemen hain 1 jakina da, ez zero baino txikiagoa da, oraindik ere ez du aplikatzen. 473 00:22:09,120 --> 00:22:12,970 >> Ordainetan, bestela, 1 plus zer sigma? 474 00:22:12,970 --> 00:22:13,470 0. 475 00:22:13,470 --> 00:22:14,678 Hargatik gogoratu besterik ez dit hori. 476 00:22:14,678 --> 00:22:15,920 Horretara itzuli dut geroago. 477 00:22:15,920 --> 00:22:18,060 Orain aurrera eta jot joan joan 0 kopuruak behera hori delako 478 00:22:18,060 --> 00:22:19,470 Nire argumentu edo parametro. 479 00:22:19,470 --> 00:22:22,400 0 zenbakiaren I gainditu nabil eta prozesu hori azkenik 480 00:22:22,400 --> 00:22:25,760 besterik ez neure buruari errepikatuz ad nauseum du utziko zer duelako 481 00:22:25,760 --> 00:22:28,820 Zer egin behar dut berehala behin ikusi nuen 0 honek? 482 00:22:28,820 --> 00:22:29,790 Zero itzuliko naiz. 483 00:22:29,790 --> 00:22:31,790 Beraz, orain istorio atzeratzeko aukera izango duzu. 484 00:22:31,790 --> 00:22:34,430 >> Orain badut atzeraka bada denboran, zer zen berrienak gauza 485 00:22:34,430 --> 00:22:36,670 Literalki ez bazina egin nuen Bideo bat errebobinagarriaren? 486 00:22:36,670 --> 00:22:41,630 Recoger berrienetakoa noa 1 eta ematen dit 1 plus 0 1 da. 487 00:22:41,630 --> 00:22:44,100 The errebobinagarriaren jarraitzen badut Istorioa, hori niri emateko 488 00:22:44,100 --> 00:22:46,880 2 plus hau martxan balio, hau da, 1. 489 00:22:46,880 --> 00:22:47,789 Beraz, hori da 3. 490 00:22:47,789 --> 00:22:49,330 Eta gero noa errebobinagarriaren jarraitzea. 491 00:22:49,330 --> 00:22:54,220 Noiz jarri nuen behera kopuruaren Izango da 3 beraz 3 plus 3 ematen dit 6. 492 00:22:54,220 --> 00:22:57,272 >> Eta orain, zuk berrasiera bada Bideo ireki du puntu honetan arte, 493 00:22:57,272 --> 00:22:58,980 Hau izan zen oso Lehenengo galdera galdetu nion. 494 00:22:58,980 --> 00:23:01,450 Igaro zenean 3, zer da 3ko sigma? 495 00:23:01,450 --> 00:23:04,204 Hain zuzen ere, 6, guztien batuketa paper pieza horiek guztiak. 496 00:23:04,204 --> 00:23:07,120 Beraz, hori pixka bat hartzen badu, berriz, your mind inguruan biltzea, hori da isuna. 497 00:23:07,120 --> 00:23:10,700 Baina kontuan hartu bat izan zen hura pixka Oso nahita pilatuta nuen 498 00:23:10,700 --> 00:23:12,990 bata bestearen gainean zenbaki horiek. 499 00:23:12,990 --> 00:23:17,440 Mota da bat izatea bezala erregistro bat, memoria denboran, 500 00:23:17,440 --> 00:23:19,940 bideo batean scrubber bat bezala, dudala, hain zuzen ere atzeratzeko ere. 501 00:23:19,940 --> 00:23:24,350 Eta ari gara itzultzea joan Pixka bat besterik metafora hori. 502 00:23:24,350 --> 00:23:28,240 >> Baina lehen, bihurtzen da, ez dagoela Geeks eta dibertigarria pertsona asko, 503 00:23:28,240 --> 00:23:29,614 Pentsatzen dut nik, Google at. 504 00:23:29,614 --> 00:23:31,530 Litzateke norbait da oso Googling kontuan onak 505 00:23:31,530 --> 00:23:34,270 Datozen une bat besterik ez da, eta lagundu bilatu zerbait da niretzat? 506 00:23:34,270 --> 00:23:35,650 Oso, oso baxua gakoa. 507 00:23:35,650 --> 00:23:37,870 Norbait da inoiz zatoz gora aurretik, agian. 508 00:23:37,870 --> 00:23:38,370 ONDO DA. 509 00:23:38,370 --> 00:23:39,030 Bai? 510 00:23:39,030 --> 00:23:39,530 Etorri. 511 00:23:39,530 --> 00:23:41,410 Goazen behera. 512 00:23:41,410 --> 00:23:42,183 Nola deitzen zara? 513 00:23:42,183 --> 00:23:42,870 >> SAM: Sam. 514 00:23:42,870 --> 00:23:44,290 >> DAVID J. MALAN: Sam, behera etorri dira. 515 00:23:44,290 --> 00:23:45,320 Hori bera da. 516 00:23:45,320 --> 00:23:46,280 Urte askotarako. 517 00:23:46,280 --> 00:23:46,780 Hey. 518 00:23:46,780 --> 00:23:47,580 Goazen gainetik. 519 00:23:47,580 --> 00:23:51,290 Beraz, guztiak, bada, ez duzu behar dut dezakegu, Sam, hemen da Google. 520 00:23:51,290 --> 00:23:53,240 Ahal izango dituzu bilatzeko zerbait errekurtsibitateko egiteko? 521 00:23:53,240 --> 00:23:55,770 522 00:23:55,770 --> 00:23:56,270 Ez hondatu. 523 00:23:56,270 --> 00:23:59,940 524 00:23:59,940 --> 00:24:00,970 >> Eta orain let's-- bai. 525 00:24:00,970 --> 00:24:03,380 OK klik egin. 526 00:24:03,380 --> 00:24:04,315 Hobeto egin klik. 527 00:24:04,315 --> 00:24:07,020 528 00:24:07,020 --> 00:24:08,020 Ahh, lortuko da. 529 00:24:08,020 --> 00:24:08,520 No? 530 00:24:08,520 --> 00:24:09,050 ONDO DA. 531 00:24:09,050 --> 00:24:10,430 Beraz, egin besteei pare bat utzi. 532 00:24:10,430 --> 00:24:12,830 Ez hainbeste erlazionatutako akademiko hemen, baina egin behar duzu 533 00:24:12,830 --> 00:24:14,520 inoiz bilatuko Google anagrama egiteko? 534 00:24:14,520 --> 00:24:15,280 >> SAM: No. 535 00:24:15,280 --> 00:24:15,520 >> DAVID J. MALAN: OK. 536 00:24:15,520 --> 00:24:17,186 Search anagrama errekurtsio ordez. 537 00:24:17,186 --> 00:24:22,540 538 00:24:22,540 --> 00:24:23,790 Nola okertu buruz. 539 00:24:23,790 --> 00:24:25,515 Inoiz bilatu duzu okertu egiteko? 540 00:24:25,515 --> 00:24:29,260 541 00:24:29,260 --> 00:24:32,692 Orain, hau da, pixka bat gogorra ikusi baina zorionez everything's-- OK. 542 00:24:32,692 --> 00:24:34,150 Besterik ez da zu eta ni honetan gozatuz. 543 00:24:34,150 --> 00:24:34,690 ONDO DA. 544 00:24:34,690 --> 00:24:38,950 >> Beraz, azkenean, one's-- honetan okertu txiki bat da. 545 00:24:38,950 --> 00:24:40,810 Orain egiten kanoi roll. 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 Ados. 549 00:24:45,910 --> 00:24:47,110 Big eskerrak Sam nahi duzu. 550 00:24:47,110 --> 00:24:49,416 Hemen duzu joan. 551 00:24:49,416 --> 00:24:50,400 Eskerrik asko. 552 00:24:50,400 --> 00:24:52,807 >> Beraz, zer gertatzen den guztietan Adibide txoro horiek? 553 00:24:52,807 --> 00:24:55,640 Beraz, benetan, kanpaia azpian Google-ren kode lerro milioika 554 00:24:55,640 --> 00:24:58,860 Nonbait, gutxi silly bat IF direla funtsean baldintza 555 00:24:58,860 --> 00:25:01,160 erabiltzaileari badu egiaztapena Esaldi hau idatzi, 556 00:25:01,160 --> 00:25:03,760 hori ziurrenik hartu zuen zerbait egin Denbora kopuru nontrivial bat 557 00:25:03,760 --> 00:25:06,080 besterik ezartzea modu horretan, dibertigarria izan. 558 00:25:06,080 --> 00:25:08,430 Baina hori guztia da irakiten kanpaia azpian behera. 559 00:25:08,430 --> 00:25:11,570 Baina, jakina, errekurtsio da geekier gehiago 560 00:25:11,570 --> 00:25:13,880 trikimailu berezia dutenen artean adibidez. 561 00:25:13,880 --> 00:25:16,880 Eta ziur aski ez da beste batzuk han baita agian ez dugu, nahiz eta 562 00:25:16,880 --> 00:25:18,230 besterik oraindik aurkitu. 563 00:25:18,230 --> 00:25:22,830 >> Beraz, itxura bat hartu, edo kontuan hartu orain honako programazioa, 564 00:25:22,830 --> 00:25:24,830 eta, zalantzarik gabe hartu duen horiek your way out of. 565 00:25:24,830 --> 00:25:28,820 Aurrera joan noa eta ireki, hori da programa bat 566 00:25:28,820 --> 00:25:30,920 Bi trukatzeko balio saiatuko da. 567 00:25:30,920 --> 00:25:33,210 Baina ez gara joan aurretik, eta egin dezagun. 568 00:25:33,210 --> 00:25:38,500 Ezin izan bat gehiago lortuko dugu boluntario, uste dut? 569 00:25:38,500 --> 00:25:40,480 Hala ere, boluntarioak nahi duzu? 570 00:25:40,480 --> 00:25:40,980 No? 571 00:25:40,980 --> 00:25:41,890 Goazen sortu. 572 00:25:41,890 --> 00:25:42,390 Goazen sortu. 573 00:25:42,390 --> 00:25:42,890 Ados. 574 00:25:42,890 --> 00:25:44,136 Beraz, zure izen-abizenak, zer da? 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 Goazen sortu, Lauren. 578 00:25:46,890 --> 00:25:50,140 Beraz, Lauren ari Hemen desafioa honela. 579 00:25:50,140 --> 00:25:52,310 Urte askotarako. 580 00:25:52,310 --> 00:25:55,730 Beraz, Lauren hemen aurrean dauzka Bere bi katilu hutsak dira. 581 00:25:55,730 --> 00:25:57,570 Eta laranja batzuk ditugu zukua eta esnea batzuk 582 00:25:57,570 --> 00:26:00,301 eta horretan ari gara joango Animatu eta honako hau. 583 00:26:00,301 --> 00:26:01,550 Ari gara hau bete beharko. 584 00:26:01,550 --> 00:26:07,840 Esnea ounces gutxira daude, bai eta goazen bete gutxi laranja zuku bat hemen baino. 585 00:26:07,840 --> 00:26:11,475 >> Eta guztien aurrean ikusle horiek, 586 00:26:11,475 --> 00:26:13,550 bi katilu horien balioak trukatzeko. 587 00:26:13,550 --> 00:26:16,970 Jarri laranja zukua esnea kopan eta laranja zukua kopa esnea. 588 00:26:16,970 --> 00:26:22,380 589 00:26:22,380 --> 00:26:26,150 Nola egin nahi duzu hau bazeunde at etxeko eta gaurko beste izateko aukera? 590 00:26:26,150 --> 00:26:27,400 LAUREN: Jarri kopa bestean. 591 00:26:27,400 --> 00:26:28,191 DAVID J. MALAN: OK. 592 00:26:28,191 --> 00:26:31,940 Hargatik aldi baterako aldakorra, izango bagenu. 593 00:26:31,940 --> 00:26:35,871 Eta aurrera orain, eta martxan jarri bera aldaketa prozedura hori. 594 00:26:35,871 --> 00:26:36,370 Beraz, ona. 595 00:26:36,370 --> 00:26:41,490 Jarri dugu AO aldi baterako sartu aldakorra, AO aldagai sartu esnea, 596 00:26:41,490 --> 00:26:44,481 eta orain aldi baterako aldagai du esne aldagai sartu. 597 00:26:44,481 --> 00:26:44,980 ONDO DA. 598 00:26:44,980 --> 00:26:48,740 Beraz, oso ondo egin orain arte. 599 00:26:48,740 --> 00:26:50,990 Beraz out-- duten eduki bihurtzen da une bat besterik ez pentsatu. 600 00:26:50,990 --> 00:26:54,479 Hemen, besterik geek pixka bat, hau Dagokion C kodea izango litzateke 601 00:26:54,479 --> 00:26:55,520 hori aplikatu besterik ez dugu. 602 00:26:55,520 --> 00:26:58,650 Bi sarrera, a eta b, bai izan dugu bertan, besterik ez dugu esango sinpletasunagatik dira 603 00:26:58,650 --> 00:26:59,260 int en. 604 00:26:59,260 --> 00:27:02,780 Eta konturatu hemen, trukatu nahi badut bi aldagai, a eta b-ren balioak, 605 00:27:02,780 --> 00:27:06,890 Hain zuzen ere, middleman bat behar dugu, bat Aldi baterako aldagai, aldi baterako kopa, 606 00:27:06,890 --> 00:27:10,830 bertan sartu du balio hauetako bat bota Horrela, biltegia daukagu. 607 00:27:10,830 --> 00:27:13,480 Baina orduan kodea da zehazki Hemen abian jarritako Lauren bezala. 608 00:27:13,480 --> 00:27:15,500 >> Orain, besterik bat lortzeko eroago gutxi, bihurtzen 609 00:27:15,500 --> 00:27:20,930 Hau egiteko zu gabe Aldi baterako aldagai bat. 610 00:27:20,930 --> 00:27:24,870 Horretarako behar bezala, hala ere, goazen kimika batzuk iruzur dute. 611 00:27:24,870 --> 00:27:26,380 Edalontziak estra batzuk ditugu hemen. 612 00:27:26,380 --> 00:27:29,600 Beraz, gauza hurbilena itxura esnea eta ura, agian atsegin 613 00:27:29,600 --> 00:27:34,090 edo esne eta OJ-- da batzuk ditugu ura, beraz, hau bete beharko dugu sortu 614 00:27:34,090 --> 00:27:36,486 argi ura ontza gutxi batzuekin. 615 00:27:36,486 --> 00:27:38,332 Hori da, ziurrenik, gehiegi. 616 00:27:38,332 --> 00:27:38,832 Bai. 617 00:27:38,832 --> 00:27:39,934 Hori da, zalantzarik gabe, gehiegi. 618 00:27:39,934 --> 00:27:40,600 Sec bat askatu. 619 00:27:40,600 --> 00:27:43,520 620 00:27:43,520 --> 00:27:48,420 >> Eta orain, olioa, eta horrek, gogoratzen dut daukagu erdiko eskola kimika klase batetik, 621 00:27:48,420 --> 00:27:49,990 zorionez, ez du ura nahasten. 622 00:27:49,990 --> 00:27:53,650 Baina mota Sort esnea eta AO itxura. 623 00:27:53,650 --> 00:27:55,760 Beraz, orain, erabili gabe Aldi baterako aldagai bat, 624 00:27:55,760 --> 00:27:59,260 daiteke bi balio horiek trukatu duzu? 625 00:27:59,260 --> 00:28:03,884 Beraz olioak ur kopa sartzen da, ura olio kopa sartzen da. 626 00:28:03,884 --> 00:28:04,800 LAUREN: No beste edalontziak? 627 00:28:04,800 --> 00:28:05,940 DAVID J. MALAN: No beste edalontziak. 628 00:28:05,940 --> 00:28:07,860 Eta ez dut dut benetan probatu hau aurten aurretik 629 00:28:07,860 --> 00:28:10,110 beraz, ez dut egingo hau bada jakin benetan kimikoki lan. 630 00:28:10,110 --> 00:28:16,130 631 00:28:16,130 --> 00:28:18,650 Hori ez zen luke gertatu. 632 00:28:18,650 --> 00:28:19,761 Da lanean? 633 00:28:19,761 --> 00:28:20,260 Ados. 634 00:28:20,260 --> 00:28:20,990 Beraz, banantzen? 635 00:28:20,990 --> 00:28:21,490 Ona. 636 00:28:21,490 --> 00:28:24,714 Orain lortu genuen ur beste kopa sartu. 637 00:28:24,714 --> 00:28:27,630 Kimika kontzentratzaileak Smarter Could ziurrenik hau egin baino hobea. 638 00:28:27,630 --> 00:28:28,510 >> LAUREN: Ura behean da. 639 00:28:28,510 --> 00:28:31,910 >> DAVID J. MALAN: water-- hori izan zen Zer da gakoa azken denbora honetan egin dugu. 640 00:28:31,910 --> 00:28:33,950 Egin behar den ordena egokian egin behar duzu. 641 00:28:33,950 --> 00:28:34,450 Bai. 642 00:28:34,450 --> 00:28:35,270 Ondo da. 643 00:28:35,270 --> 00:28:37,290 Beraz, orain bi olio edalontziak ditugu. 644 00:28:37,290 --> 00:28:37,790 ONDO DA. 645 00:28:37,790 --> 00:28:38,510 Ondo da. 646 00:28:38,510 --> 00:28:40,110 Baina nola landu kimikoki bada nik baino 647 00:28:40,110 --> 00:28:41,200 >> LAUREN: Hau ura da. 648 00:28:41,200 --> 00:28:41,930 >> DAVID J. MALAN: Hori da, batez ere, ura. 649 00:28:41,930 --> 00:28:42,430 Ados. 650 00:28:42,430 --> 00:28:44,210 Baina hori kopa aurretik bera da oraindik. 651 00:28:44,210 --> 00:28:47,570 Beraz pour saiatu it han. 652 00:28:47,570 --> 00:28:49,300 ONDO DA. 653 00:28:49,300 --> 00:28:51,010 Klase denbora erabilera ona da gaur egun. 654 00:28:51,010 --> 00:28:51,510 ONDO DA. 655 00:28:51,510 --> 00:28:53,890 Beraz, gaur egun badugu polita. 656 00:28:53,890 --> 00:28:55,460 Gutxi gorabehera. 657 00:28:55,460 --> 00:28:55,960 Ados. 658 00:28:55,960 --> 00:28:56,690 Beraz, oso ona. 659 00:28:56,690 --> 00:29:00,006 Eskerrik asko Lauren izateko. 660 00:29:00,006 --> 00:29:01,950 Oso ondo egiten. 661 00:29:01,950 --> 00:29:04,570 >> Beraz, besterik gabe, zure adimenak kolpe, eta hori da, beharbada zerbait 662 00:29:04,570 --> 00:29:08,660 CS50 ID ere, nahi izanez gero, jolasteko, daiteke, hain zuzen ere, trukatu duzu bi aldagai 663 00:29:08,660 --> 00:29:11,470 aldi baterako, zenbaki oso bat erabili gabe. 664 00:29:11,470 --> 00:29:13,060 Eta hori, dagokien C kodea da. 665 00:29:13,060 --> 00:29:16,110 Eta gogoratzen duzu azken balitz , Asteazkena, sartu dugu laburki, 666 00:29:16,110 --> 00:29:19,720 C. Eta duela operadoreen berri batzuk Edozeinek gogoratzen zer azenarioa gutxi 667 00:29:19,720 --> 00:29:23,660 sinboloa da, triangular gutxi dagoela adierazten teklatuaren sinbolo? 668 00:29:23,660 --> 00:29:26,003 Zer bitekin operadorea? 669 00:29:26,003 --> 00:29:26,770 >> Ikusleak: EXOR. 670 00:29:26,770 --> 00:29:27,645 >> DAVID J. MALAN: EXOR. 671 00:29:27,645 --> 00:29:28,560 Esklusiboa edo. 672 00:29:28,560 --> 00:29:32,920 Beraz, nahi izanez gero, besterik gabe, ondo pasatzeko etxean, a eta b bi arbitrarioa emateko 673 00:29:32,920 --> 00:29:36,072 Edozein eight-- eta I like balioak zortzi bit balio bat aukeratuko luke. 674 00:29:36,072 --> 00:29:38,530 Hori eginez gero, 32 bit-ekin, Oso azkar duzu aspertuko. 675 00:29:38,530 --> 00:29:42,150 Baina besterik eman bat zortzi bit bat balio hori edozein dela ere, bat edo bi, 676 00:29:42,150 --> 00:29:43,790 eta eman antzeko balio bat b. 677 00:29:43,790 --> 00:29:46,810 Eta gero, definizioa erabiliz XOR joan den asteazkenean hasita, 678 00:29:46,810 --> 00:29:52,560 bit hori aplikatu pixka arabera, bakoitzari a eta b bakoitzean zortzi bit horiek, 679 00:29:52,560 --> 00:29:54,980 eta gero egin du zehazki kode hau per. 680 00:29:54,980 --> 00:29:58,170 Eta ez da okerra zer pantailan hemen ikusten duzu. 681 00:29:58,170 --> 00:30:02,100 Hain zuzen ere, irakiten behera It Hiru XOR operazioak izateko 682 00:30:02,100 --> 00:30:05,910 eta nolabait magikoki eta bat b posizioak trukatuko 683 00:30:05,910 --> 00:30:08,010 Edozein informazio galdu gabe. 684 00:30:08,010 --> 00:30:11,580 >> Beraz, olioa eta ura Trick da gertuen dagoen mundu errealean Enkarnazio 685 00:30:11,580 --> 00:30:12,980 Dut hori imitatzen uste. 686 00:30:12,980 --> 00:30:15,950 Baina da, ziur aski, errazagoa Aldi baterako aldagai bat erabili, 687 00:30:15,950 --> 00:30:16,920 Kasu honetan, hemen bezala. 688 00:30:16,920 --> 00:30:21,190 Eta hori ere ez dago aukera bat esan, gehiegi, mikro optimizazioa mota hau, 689 00:30:21,190 --> 00:30:23,590 ordenagailu zientzialari gisa esango, berriz, fun-mota 690 00:30:23,590 --> 00:30:27,060 Hau nola egin zu gabe brag Aparteko aldakorreko batekin trukea bezala, 691 00:30:27,060 --> 00:30:28,640 Ez da hori guztia sinesgarria. 692 00:30:28,640 --> 00:30:31,619 32 bit, gisa gorde nahi duelako Benetako int baten kasuan, berriz, 693 00:30:31,619 --> 00:30:33,410 ez da hori guztia sinesgarria sistema bat non on 694 00:30:33,410 --> 00:30:36,722 den megabyte hamarnaka erabiliz dezakezu edo egun hauetan, besteak beste, memoria, are gehiago. 695 00:30:36,722 --> 00:30:38,680 Eta hain zuzen ere, noiz lortuko dugu geroago arazo multzo bati 696 00:30:38,680 --> 00:30:41,010 eta sorginkeria ezartzeko checker eta ikusiko duzu 697 00:30:41,010 --> 00:30:43,550 Zalantzan jarri dituzten hacerlo egon hau RAM gutxi bezala, eta txiki gisa 698 00:30:43,550 --> 00:30:46,820 denbora buruzko ahalik eta ordenagailu dituzu oraindik 699 00:30:46,820 --> 00:30:50,160 aste bat ezartzea it have-- izango dituzu dituzu 700 00:30:50,160 --> 00:30:51,799 Zalantzan jarri baliabide horiek gutxitzeko. 701 00:30:51,799 --> 00:30:53,840 Eta hori da benetan bakarrak seihileko honetan kausatu 702 00:30:53,840 --> 00:30:57,940 non bizarra bultzatu beharko dituzu nahiz eta performance onenetako off 703 00:30:57,940 --> 00:30:59,340 kostatzen bestela. 704 00:30:59,340 --> 00:31:02,200 >> Beraz what-- nola dezakegu ikusi honen benetako kodea ere? 705 00:31:02,200 --> 00:31:04,530 Dezagun aurrera me now eta ireki adibide bat 706 00:31:04,530 --> 00:31:07,700 nahita deritzo Ez Swap ez duelako 707 00:31:07,700 --> 00:31:10,670 Izan ere aldagai aldatu benetan espero liteke. 708 00:31:10,670 --> 00:31:12,260 Beraz, dezagun begirada bat. 709 00:31:12,260 --> 00:31:17,050 Hemen ez duela CS50 ditu programa bat da liburutegia gertatzen, I / O besterik estandarra. 710 00:31:17,050 --> 00:31:19,560 Orain prototipoa bat dugu swap gora goitik zein besterik 711 00:31:19,560 --> 00:31:21,540 esan nahi izan dadila geroago hautatu behar dela. 712 00:31:21,540 --> 00:31:22,550 Eta hemen nagusia. 713 00:31:22,550 --> 00:31:26,000 >> Arbitrarioki x eta y esleitutako dut, hurrenez hurren, baloreak eta bi 714 00:31:26,000 --> 00:31:28,590 besterik txiki Oraindik dutelako eta erraza pentsatzen. 715 00:31:28,590 --> 00:31:32,280 Eta gero, besterik ez dut printfs mordo bat non behatu kontrol bat daukat. x 1 716 00:31:32,280 --> 00:31:35,110 eta y 2 ustez da zer printfs horiek esango du. 717 00:31:35,110 --> 00:31:36,530 Beraz, magia ez orain arte. 718 00:31:36,530 --> 00:31:40,100 >> Ondoren, naiz aldarrikatuko joan inprimatu def, dot dot dot aldaketa. 719 00:31:40,100 --> 00:31:43,730 Swap deitzen noa funtzioa, x eta y pasatuz. 720 00:31:43,730 --> 00:31:47,350 Eta demagun orain dela swap zehazki inplementatu 721 00:31:47,350 --> 00:31:49,930 duela une bat izan zen bezala Aldi baterako aldagai batekin. 722 00:31:49,930 --> 00:31:52,670 Eta beraz, boldly erreklamatzeko dut, trukatu. 723 00:31:52,670 --> 00:31:55,429 x da, hau eta y da orain. 724 00:31:55,429 --> 00:31:57,220 Baina fitxategiak orduan, noski, deritzo No Swap. 725 00:31:57,220 --> 00:31:58,678 Beraz, benetan ikusi zer gertatzen den. 726 00:31:58,678 --> 00:32:04,450 Bildu dut swap ez eta orduan bada egiten ./noswap, x 1, 2 y da. 727 00:32:04,450 --> 00:32:05,770 Aldaketa trukatu. 728 00:32:05,770 --> 00:32:07,200 x 1, y da 2. 729 00:32:07,200 --> 00:32:11,980 Beraz, egia esan, badirudi, nahiz eta zuzena egon behar da nahiz swap-- dezagun scroll down da gaur egun 730 00:32:11,980 --> 00:32:16,542 zehazki abian jarri den per kodea une bat duela proposatu dut. 731 00:32:16,542 --> 00:32:19,000 Beraz, ez gara gauza ederrak lor joan XOR oraingoz gauzak batera. 732 00:32:19,000 --> 00:32:21,890 Hau ere, funtzionatu beharko luke esnea eta AO bezala, 733 00:32:21,890 --> 00:32:25,820 baina ez dirudi lanean. 734 00:32:25,820 --> 00:32:27,180 >> Beraz Berriro egin dezagun. 735 00:32:27,180 --> 00:32:29,310 Agian dut besterik ez zen hura eskubidea martxan. 736 00:32:29,310 --> 00:32:32,010 Hargatik berriro exekutatu No Swap. 737 00:32:32,010 --> 00:32:32,900 Agian nik ez. 738 00:32:32,900 --> 00:32:34,400 Beraz, hau ez dabil. 739 00:32:34,400 --> 00:32:36,060 Beraz, egin apur bat behatu kontrol utzi. 740 00:32:36,060 --> 00:32:39,690 Dezagun aurrera me hemen Swap ere eta besterik gehitu, minutu bat itxaron, 741 00:32:39,690 --> 00:32:43,856 a% i da / n eta dezagun plug-in baten balioa. 742 00:32:43,856 --> 00:32:45,730 Benetan nahi dudalako zer gertatzen den ikusteko. 743 00:32:45,730 --> 00:32:47,570 Eta hain zuzen ere, hau da, arazketa-teknika bat 744 00:32:47,570 --> 00:32:50,028 izango duzula erabiliz agian bulego orduetan edo etxean dagoeneko, 745 00:32:50,028 --> 00:32:53,560 Dan lehen erdian Akin Armendarizen PSET3 bideoa 746 00:32:53,560 --> 00:32:56,870 dua inprimatu sartu dugu def gisa gomendatutako teknika bat, gutxienez 747 00:32:56,870 --> 00:32:58,080 kasu errazak egiteko. 748 00:32:58,080 --> 00:33:01,720 Dezagun aurrera me eta make swap no berriro, ./noswap. 749 00:33:01,720 --> 00:33:04,370 750 00:33:04,370 --> 00:33:05,840 >> Interesgarria da. 751 00:33:05,840 --> 00:33:11,670 Beraz, konturatu zer badirudi egia izan. x da 1, 2 y da, baina bat da 2 denean b da 1. 752 00:33:11,670 --> 00:33:16,790 Beraz, bi horiek nolabait got trukatu baina x eta y ez dira ohitu trukatu. 753 00:33:16,790 --> 00:33:21,090 Beraz, argi izan, zer gertatzen ari hau da, hemen x eta y daukat 754 00:33:21,090 --> 00:33:25,380 eta horiek aldagai tokiko dira nagusia esparrua, x eta y pasatzen ari naiz 755 00:33:25,380 --> 00:33:26,170 trukatzeko. 756 00:33:26,170 --> 00:33:29,080 Orain, swap, beste funtzio gisa, da free bere argudioak deitzeko 757 00:33:29,080 --> 00:33:30,590 edo nahi duen bere parametro ezer. 758 00:33:30,590 --> 00:33:33,280 Foo edo taberna edo x edo y edo edo b. 759 00:33:33,280 --> 00:33:36,870 Just argi utzi zuten zarela Ez x berdin-berdina eta y per se, 760 00:33:36,870 --> 00:33:38,020 Nik esan nion eta b. 761 00:33:38,020 --> 00:33:40,040 Baina horiek ezer nahi dugu deitu genezake. 762 00:33:40,040 --> 00:33:43,960 >> Eta beraz, itxura swap ari gainditu da 763 00:33:43,960 --> 00:33:48,980 x-- Unzurrunzaga a-- eta hori da gainditu y-- Unzurrunzaga b ari. 764 00:33:48,980 --> 00:33:51,900 Nolabait hiru lerro hauek dira balio horiek zehazki aldaketa 765 00:33:51,900 --> 00:33:53,510 Lauren esnea eta AO egin zuen bezala. 766 00:33:53,510 --> 00:33:56,010 Baina duzunean inprimatu dugu balioak, a eta b 767 00:33:56,010 --> 00:34:01,340 dira, hain zuzen ere trukatu baina x eta y dute horiek aldatu gabe. 768 00:34:01,340 --> 00:34:03,150 Gogoratzen x eta y dira hemen. 769 00:34:03,150 --> 00:34:05,320 >> Beraz bidez ikusi ahal izango dugu beste teknika bat baita. 770 00:34:05,320 --> 00:34:08,110 Eta hori ere teknika da Arazoa murgildurik ezarri hiru. 771 00:34:08,110 --> 00:34:10,780 Goazen aurrera, eta hori ere CS50 NAN ez badaukazu Dagoeneko. 772 00:34:10,780 --> 00:34:13,730 Eskuin hegalean dugu buruzko Debugger fitxa hau eduki. 773 00:34:13,730 --> 00:34:16,159 Eta hau ireki nahi izanez gero, bada, han urrutira informazio batzuk 774 00:34:16,159 --> 00:34:17,530 hori bota duzu, hasiera batean. 775 00:34:17,530 --> 00:34:19,310 Baina dezagun aurre gain hau benetako azkar. 776 00:34:19,310 --> 00:34:21,620 >> Bat, beraz, aldagai lokalak ikusten duzu. 777 00:34:21,620 --> 00:34:26,230 Turns CS50 IDE sartu eraikiko dela, eta programazio inguruneak askoz gehiago 778 00:34:26,230 --> 00:34:28,060 oro har, araztailea da. 779 00:34:28,060 --> 00:34:31,340 Duten ikusmen ikusteko aukera ematen du tresna A zer gertatzen den zure programaren barruan 780 00:34:31,340 --> 00:34:34,380 gehituz jo beharrik gabe printfs eta bildu eta martxan 781 00:34:34,380 --> 00:34:37,588 eta printf en gehituz eta bilduz eta , martxan eta dagoeneko, bulego orduetan 782 00:34:37,588 --> 00:34:40,070 edo etxean, da seguruenik nahiko lapurtera lortzean. 783 00:34:40,070 --> 00:34:43,090 >> Beraz, hemen, une bat besterik ez, ez gara den denbora errealean ikusteko joan 784 00:34:43,090 --> 00:34:44,760 Gure tokiko aldagaien balioak. 785 00:34:44,760 --> 00:34:47,880 Ari gara, halaber ezarri ahal izango da zer dira eten izeneko 786 00:34:47,880 --> 00:34:52,570 aukerak dira nire programa eteteko ere Kode-lerro jakin batean exekuzioa 787 00:34:52,570 --> 00:34:53,710 Oso bitxia naiz. 788 00:34:53,710 --> 00:34:54,210 Eskuin? 789 00:34:54,210 --> 00:34:55,969 Programa horiek zatitu batean abiaraziko da bigarren. 790 00:34:55,969 --> 00:35:00,450 Mota polita egiten digu gizakiak motelagoa gelditzeko, une bat hartu ahal izateko, ikusi 791 00:35:00,450 --> 00:35:02,380 Zer ari den inguruan Kode-lerro jakin bat 792 00:35:02,380 --> 00:35:05,050 programa plowing gabe horren bidez, eta oso-osorik, amaitu du. 793 00:35:05,050 --> 00:35:08,510 Beraz, eten bat gaitu joan apurtu eta puntu jakin batean gelditu. 794 00:35:08,510 --> 00:35:12,990 >> Deia pila modu dotore bat da zer funtzio Une esanez 795 00:35:12,990 --> 00:35:14,140 ari da une honetan deitzen. 796 00:35:14,140 --> 00:35:15,370 Main beti deitzen da lehenengo. 797 00:35:15,370 --> 00:35:17,230 Baina Main deiak bada bat funtzioa aldatu deitu, 798 00:35:17,230 --> 00:35:20,470 benetan ari gara hau ikusteko joan funtzio dorrea izan diren 799 00:35:20,470 --> 00:35:22,400 kronologikoa alderantzizko ordena deitzen. 800 00:35:22,400 --> 00:35:23,310 Beraz, ikus dezagun hori. 801 00:35:23,310 --> 00:35:24,327 >> Urruntzeko noa. 802 00:35:24,327 --> 00:35:25,660 Atzera joan my kodea noa. 803 00:35:25,660 --> 00:35:27,540 Eta besterik nahi dudalako pedantekeriazko izan hemen, 804 00:35:27,540 --> 00:35:31,100 Aurrera joan eta egin klik noa besterik linea bost ezkerreko. 805 00:35:31,100 --> 00:35:32,830 Eta hori puntu gorri bat sortzen du. 806 00:35:32,830 --> 00:35:36,200 Eta eskuinaldean nabarituko araztailea dela badaki, beno, 807 00:35:36,200 --> 00:35:41,020 Esan dut at etendura bat Noswap.c linea bost, zehazki, 808 00:35:41,020 --> 00:35:42,480 kode-lerro honetan. 809 00:35:42,480 --> 00:35:45,090 Beraz araztailea daki dut eskatu duten hurrengo aldian 810 00:35:45,090 --> 00:35:48,530 Nire programa da pausatu exekutatu dut exekuzioa ez besterik beharrean 811 00:35:48,530 --> 00:35:50,390 gauza osoa super azkar korrika. 812 00:35:50,390 --> 00:35:53,889 >> Beraz, orain ez dut Debug klikatzen joan IDE oso goialdean botoi 813 00:35:53,889 --> 00:35:55,430 eta hori honako hau egin behar da joan. 814 00:35:55,430 --> 00:36:00,680 Honez bat irekitzeko, hasieran zertxobait joan scary begira bigarren terminal leiho 815 00:36:00,680 --> 00:36:02,679 urruneko arazketa antolatzailea, besteak beste, eta such-- 816 00:36:02,679 --> 00:36:04,970 eta egingo da itzuli dugu zer Hori guztia baino askoz lehenago esan. 817 00:36:04,970 --> 00:36:09,020 Baina zer da garrantzitsua oraingoz da puntu gorri hori jo zuten, 818 00:36:09,020 --> 00:36:11,735 araztailea ditu nahita pausatuta execution-- 819 00:36:11,735 --> 00:36:15,560 Ez se bakoitzeko lerro hori, baina lehen egunean benetako funtzioa duten kode lerro. 820 00:36:15,560 --> 00:36:18,040 Eta horregatik zazpi linea da orain horiz nabarmenduta. 821 00:36:18,040 --> 00:36:20,550 >> Eta orain dezagun begirada bat Eskuinean at. 822 00:36:20,550 --> 00:36:27,300 Dirudienez, besterik ezean, nicely nahikoa, x zer balio du? 823 00:36:27,300 --> 00:36:27,860 0. 824 00:36:27,860 --> 00:36:29,750 Eta y dauka zer balio? 825 00:36:29,750 --> 00:36:30,410 Zero. 826 00:36:30,410 --> 00:36:35,540 Eta hori da, zentzu batean espero izatekoa x dela eta y-- lerroan horia duela 827 00:36:35,540 --> 00:36:36,770 oraindik ez exekutatu. 828 00:36:36,770 --> 00:36:38,510 Beraz, x ez luke balioa 1 izan. 829 00:36:38,510 --> 00:36:41,470 Baliteke beste edozein balio izan du, Zabor balio deiturikoak. 830 00:36:41,470 --> 00:36:44,320 Eta hori da ere zortea ginen puntu honetan zero, funtsean. 831 00:36:44,320 --> 00:36:46,400 >> Beraz, gaur egun gutxi batzuk bakarrik botoiak arreta behar dugu 832 00:36:46,400 --> 00:36:48,100 modu horretan, arazketa denean buruz. 833 00:36:48,100 --> 00:36:49,970 Iragarki hemen, Play botoi bat dugu. 834 00:36:49,970 --> 00:36:51,877 Eta jokatuko badugu edo hit berrekiteko, hori besterik 835 00:36:51,877 --> 00:36:53,710 to bidez exekutatu joan Programaren gainerako 836 00:36:53,710 --> 00:36:55,300 edo hits etendura beste arte. 837 00:36:55,300 --> 00:36:56,910 Baina ez dut beste edozein ezarri eten, beraz, besterik ez da 838 00:36:56,910 --> 00:36:58,118 to amaieran bidez exekutatu. 839 00:36:58,118 --> 00:37:00,280 Porrot egin mota horretako kuxkuxean aritzea du helburu. 840 00:37:00,280 --> 00:37:03,290 >> Beraz, horren ordez, zaintzen dut eskubidea ikono hauek. 841 00:37:03,290 --> 00:37:05,360 Eta gainean pasatzean badut horiek ere behar bezala, 842 00:37:05,360 --> 00:37:07,450 Ikusiko duzu pixka tips-- tresna aholkuak. 843 00:37:07,450 --> 00:37:09,020 Honek bat zapaldu baino gehiago da. 844 00:37:09,020 --> 00:37:11,290 Orain dela ez du esan nahi, skip Honakoa kode lerro. 845 00:37:11,290 --> 00:37:14,840 Bakarrik esan nahi exekutatu eta hurrengo mugitzeko, hurrengo mugitzeko, 846 00:37:14,840 --> 00:37:15,580 hurrengo mugitu. 847 00:37:15,580 --> 00:37:17,610 Beste era batera esanda, bidez botoia, ezin dut oinez 848 00:37:17,610 --> 00:37:20,390 Nire aldi berean urrats kode baten bidez. 849 00:37:20,390 --> 00:37:21,914 Lerroz lerro, hitzez hitz. 850 00:37:21,914 --> 00:37:23,830 Orain, eskubidea han beste bat 851 00:37:23,830 --> 00:37:25,163 egingo dugun une bat besterik ez ikusi. 852 00:37:25,163 --> 00:37:27,820 Hau da, llamado Into ikono hori Urratsera 853 00:37:27,820 --> 00:37:30,300 me baimendu murgiltze joan funtzio beste. 854 00:37:30,300 --> 00:37:31,800 Baina ikus dezagun une bat besterik ez. 855 00:37:31,800 --> 00:37:33,280 Beraz, ez dut Ezkutatu bat gaindituta. 856 00:37:33,280 --> 00:37:35,820 Eta orain konturatzen, I sakatu gisa botoia goiko eskuineko honetan, 857 00:37:35,820 --> 00:37:41,260 your eyes gutxi gorabehera mantendu Local azpian Aldagaiak eta ikusi zer x gertatzen. 858 00:37:41,260 --> 00:37:44,115 x da orain 1 delako lerro horiak orain abiarazi izan 859 00:37:44,115 --> 00:37:45,840 eta lerro 8 ikusi dugu mugitu. 860 00:37:45,840 --> 00:37:49,840 Eta besterik gabe, une y batean zorionez bihurtu behar 2. 861 00:37:49,840 --> 00:37:52,330 >> Orain, ezer ez dela interesgarria Pixka bat gertatzen da. 862 00:37:52,330 --> 00:37:53,390 Guztiak hau da printf da. 863 00:37:53,390 --> 00:37:58,010 Eta nabarituko, nire bigarren mailako terminal batean leiho, inprimatu def irteera ikusten dut. 864 00:37:58,010 --> 00:38:01,080 Eta orain, bat egin nahi izan dut Erabaki programatzaile gisa. 865 00:38:01,080 --> 00:38:04,360 Ezin dut lerro honen gainetik pasatzeko kodea exekutatzea baina ez 866 00:38:04,360 --> 00:38:06,220 zer barruan bitxi buruz lortzean. 867 00:38:06,220 --> 00:38:11,130 Edo Ezin dut egia esan, hori bide eta Swap beraren barruan joan. 868 00:38:11,130 --> 00:38:12,340 Beraz, azken hori egiten utzi. 869 00:38:12,340 --> 00:38:15,550 >> Dezagun aurrera me eta egin klik Ez Urratsera baino gehiago, baina urrats sartu. 870 00:38:15,550 --> 00:38:17,300 Oharra, bat-batean leiho aldaketak 871 00:38:17,300 --> 00:38:19,330 Lehenengo nabarmentzeko Swap in kode lerro. 872 00:38:19,330 --> 00:38:20,710 Hori line 21 da. 873 00:38:20,710 --> 00:38:25,220 Eta orain, zer da funky mota da hori, zuk baino gehiago hemen begiratuz gero, espero bezala, 874 00:38:25,220 --> 00:38:29,720 comma b a 1 eta 2, hurrenez hurren. 875 00:38:29,720 --> 00:38:33,840 Zergatik da temp 32.767? 876 00:38:33,840 --> 00:38:36,560 Temp hau gogora, askoz ere atsegin du hutsik kopa une bat lehenago, 877 00:38:36,560 --> 00:38:38,980 Hemen deklaratu on line 21. 878 00:38:38,980 --> 00:38:43,390 Zergatik 32,000- esan nahi dut, zergatik da Balio bitxi batzuk besterik ez? 879 00:38:43,390 --> 00:38:43,890 Bai? 880 00:38:43,890 --> 00:38:45,190 >> Ikusleak: Ez da hasieratu. 881 00:38:45,190 --> 00:38:46,940 >> DAVID J. MALAN: hasieratu egin dira. 882 00:38:46,940 --> 00:38:49,370 Beraz, gure ordenagailua beti memoria fisiko ditu. 883 00:38:49,370 --> 00:38:50,544 Beti RAM fisikoak ditu. 884 00:38:50,544 --> 00:38:52,710 Eta ez da beti zero da eta han inork, ezta? 885 00:38:52,710 --> 00:38:54,626 Erabiltzen ari garelako gure ordenagailu egun osoan zehar, 886 00:38:54,626 --> 00:38:57,210 CS50 IDE erabiltzen ari zarela edo zerbitzarietan egun osoan zehar. 887 00:38:57,210 --> 00:39:01,159 Beraz RAM hori bai zeroz batzuk edo bakarren baten edo zero batzuk. 888 00:39:01,159 --> 00:39:02,950 Ez dio axola ala Ez horiek erabiltzen ari zara. 889 00:39:02,950 --> 00:39:05,270 Ezin duzu besterik ez dute hutsik espazio bit nahi duzun. 890 00:39:05,270 --> 00:39:06,850 Zeroen eta bai Oraindik dute. 891 00:39:06,850 --> 00:39:09,610 >> Eta gertatu da aldi baterako, zeren ez dugu oraindik hasieratu da, 892 00:39:09,610 --> 00:39:14,580 32 bit horiek izan dugu, baina ez dut dute izan balioak ezagutzen duen hasieratu. 893 00:39:14,580 --> 00:39:18,110 Beraz, edozein izanda ere izan ziren gehien Duela gutxi erabilitako For 32 horiek bit 894 00:39:18,110 --> 00:39:23,000 besterik zenbait objektu ikusten ari gara 32 partikular horien erabilera aurreko 895 00:39:23,000 --> 00:39:23,500 bit. 896 00:39:23,500 --> 00:39:27,780 Bezain laster urratsa egin ahala ordea klik dudan bezala, Phew, tenporala da balioa 1 iritsiko. 897 00:39:27,780 --> 00:39:31,600 Eta berriro egiten badut, bat da joan, eman behar da 2 balioa 898 00:39:31,600 --> 00:39:33,830 eta, ondoren, b dago joan da emandako balioa 1. 899 00:39:33,830 --> 00:39:36,390 >> Eta orain zer polita at Istorioa puntu honetan 900 00:39:36,390 --> 00:39:39,750 da araztailea dela me erakutsiz, super astiro 901 00:39:39,750 --> 00:39:42,640 nire erritmoan, zer Swap egoera da. 902 00:39:42,640 --> 00:39:47,490 Baina goian hemen, oharra nabarituko dei pila benetan 903 00:39:47,490 --> 00:39:49,180 bertan, bi mailetan ditu. 904 00:39:49,180 --> 00:39:53,240 Orain hori bezala nabarmenduta bat Swap, sakatu dut Main ordez, 905 00:39:53,240 --> 00:39:57,100 nabarituko aldagai lokalak nola aldatu delako sustatzailearen besterik hop 906 00:39:57,100 --> 00:39:59,740 inguruan eta edozein desberdinak esparrua sartu. 907 00:39:59,740 --> 00:40:04,070 Hori guztia gara egiten ditut, nahiz lan eta bat eta b behar bezala aldaketa, 908 00:40:04,070 --> 00:40:09,080 atzera eta aurrera joaten naiz Swap artean bada non a 2 da eta b da 1 eta Main, 909 00:40:09,080 --> 00:40:11,851 ditu Main kaltetutako guztietan? 910 00:40:11,851 --> 00:40:12,350 No. 911 00:40:12,350 --> 00:40:13,930 Beraz, zein da eramateko hemen? 912 00:40:13,930 --> 00:40:18,200 Beno, bihurtzen da, edozein dela Swap bezalako funtzio bat deitu, 913 00:40:18,200 --> 00:40:21,600 eta, argumentuak, pasatzen duzu zer Swap funtzioa nahi duzun pasatzen ari 914 00:40:21,600 --> 00:40:24,730 Kasu honetan, kopia bat da argumentuak horietako. 915 00:40:24,730 --> 00:40:28,620 Beraz, x eta y bakoitzak badira hurrenez hurren 32 bit, zer Swap ari da 916 00:40:28,620 --> 00:40:30,760 da bertako bi berria aldagai edo argumentuak, 917 00:40:30,760 --> 00:40:34,380 izeneko bat eta kentzea b baina horiek arbitrarioak dira names-- baina zero patroia 918 00:40:34,380 --> 00:40:39,520 eta bai barrutik eta b dira lerrokatuak x eta y berdina izan 919 00:40:39,520 --> 00:40:42,610 baina ez dira x eta y gauza bera. 920 00:40:42,610 --> 00:40:46,880 >> Da nagusia bere pieza ditu, nahiz eta gisa paper 2 x eta y zenbakia 1 eta, 921 00:40:46,880 --> 00:40:49,260 eta, ondoren, eskuak dela paper zati, swap 922 00:40:49,260 --> 00:40:51,970 Swap oso azkar lortzen bere luma propioa, idazten du behera 923 00:40:51,970 --> 00:40:56,240 1 eta 2 bere paper orri kabuz, esku jatorrizko xy kopiak Main 924 00:40:56,240 --> 00:40:58,790 eta orduan ez du bere kabuz a eta b gauza. 925 00:40:58,790 --> 00:41:01,940 Eta hau da orain super garrantzitsua delako hau nontrivial inplikazio ditu 926 00:41:01,940 --> 00:41:06,260 benetan zuzena kodea idazteko badirudi lukeelako ezin ditugu trukatzeko 927 00:41:06,260 --> 00:41:07,500 bi aldagai. 928 00:41:07,500 --> 00:41:09,150 >> Swap funtzioa egoki bat idatzi dut. 929 00:41:09,150 --> 00:41:12,770 Nik inplementatu dugun Lauren batera jo swap errealitatean funtzio zuzena da, 930 00:41:12,770 --> 00:41:16,700 baina, antza denez, hori ere ez Ez benetan gaietan baduzu 931 00:41:16,700 --> 00:41:19,530 Bi trukatzeko balio betirako. 932 00:41:19,530 --> 00:41:21,970 Beraz, beste era bat behar dugu benetan honetan lortu, 933 00:41:21,970 --> 00:41:24,472 eta gai izan behar dugu benetan konpondu arazo hau. 934 00:41:24,472 --> 00:41:27,180 Eta bihurtzen da, eta etorri egingo dugu argazki hau, bereziki bizkarrean 935 00:41:27,180 --> 00:41:30,500 long-- aurretik modu bat da hori zure ordenagailuaren memorian marraztu dezakezu. 936 00:41:30,500 --> 00:41:31,460 Laukizuzen bat besterik ez da. 937 00:41:31,460 --> 00:41:32,960 Inolako marraztu izan duzu Modu baina da kopurua 938 00:41:32,960 --> 00:41:35,740 komenigarria da gisa marrazteko honako arrazoia dela eta laukizuzen. 939 00:41:35,740 --> 00:41:40,040 >> Gaur hasiko den eta haratago goaz pila deiturikoak buruz hitz egiten. 940 00:41:40,040 --> 00:41:43,870 Eta pila pusketa bat besterik ez da of RAM memoria zatia 941 00:41:43,870 --> 00:41:47,100 funtzio hori eskuratzeko aukera dute direnean, deitzen ari den. 942 00:41:47,100 --> 00:41:49,800 Eta horrela bihurtzen da aldi berean pila honen bukaerara 943 00:41:49,800 --> 00:41:53,590 Hor Main en tokiko aldagaiak eta org C eta org V eta guzti 944 00:41:53,590 --> 00:41:56,950 dira lehenetsita joango gara. Eta nagusia bada beste zenbait funtzio deiak Swap bezala, 945 00:41:56,950 --> 00:42:00,330 bai, Swap da beste lortzeko joan haren gainetik memoria up geruza. 946 00:42:00,330 --> 00:42:04,490 >> Eta horrela lortzen azaletik azkar bat emateko honen irudi baino gehiago, joan badut hemen 947 00:42:04,490 --> 00:42:09,450 eta utzi ispilu me honi buruzko overhead well-- gisa benetan zer daukat, 948 00:42:09,450 --> 00:42:12,100 buruzko bakarrik zaintzen badugu Argazki hau beheko oraingoz, 949 00:42:12,100 --> 00:42:15,070 dela programa bat exekutatzen I eta Main izeneko lortzen, 950 00:42:15,070 --> 00:42:18,330 Main zatia ematen da Nire ordenagailuan RAM dela 951 00:42:18,330 --> 00:42:20,060 deiturikoak pila honen behealdean. 952 00:42:20,060 --> 00:42:22,143 Eta ez dut marraztuko ditu nahita plaza gisa. 953 00:42:22,143 --> 00:42:24,540 Beraz, 32 bit edo lau byte bezala. 954 00:42:24,540 --> 00:42:28,790 Eta funtzio nagusiak honek badu bat aldakorra izeneko 1 balioa duten x 955 00:42:28,790 --> 00:42:32,626 eta aldakorra izeneko ditu 2 balio batera y, hori da 956 00:42:32,626 --> 00:42:35,750 memoria sliver hau hartuta bezala dagoela Main ha dado eragileak 957 00:42:35,750 --> 00:42:38,850 sistema eta zatituko da, beraz, lehen tokiko aldagai hemen doa, 958 00:42:38,850 --> 00:42:40,930 bigarren bat, hemen doa, eta hori da. 959 00:42:40,930 --> 00:42:45,590 >> Main deiak Swap, Swap bere memoria xerra lortzen 960 00:42:45,590 --> 00:42:48,280 egingo dugun Horrela marraztu sistema eragilearen, 961 00:42:48,280 --> 00:42:50,820 eta nik behar joan bere egin aldagai lokalak oinarritutako 962 00:42:50,820 --> 00:42:53,825 Gure ezartzeko lehenago tokiko aldagai bat 963 00:42:53,825 --> 00:42:58,010 eta b hasieran balioak 1 eta 2. 964 00:42:58,010 --> 00:43:00,450 Baina, ondoren, bezain laster Swap kodea exekutatzen, 965 00:43:00,450 --> 00:43:03,760 eta Lauren benetan trukeak du AO eta esnea, zer gertatzen da? 966 00:43:03,760 --> 00:43:09,030 Beno, 2 hau bihurtzen ari da 1 bat, hau 1 bihurtzen ari da 2 bat, eta, bide batez, 967 00:43:09,030 --> 00:43:13,360 ez temp aldagai bat hori izanik Denbora guztian hori erabiliko dela, azkenean 968 00:43:13,360 --> 00:43:14,470 ihes doa. 969 00:43:14,470 --> 00:43:16,720 Baina ez du axola lan zenbat ez duzu 970 00:43:16,720 --> 00:43:22,160 lerro honen memoria espazio honetan of--, x eta y erabat bereganatzea dira. 971 00:43:22,160 --> 00:43:26,320 >> Beraz emanez modu bat behar dugu Swap eta funtzioak Gustatu 972 00:43:26,320 --> 00:43:32,640 sarbide sekretua, izango bada, to funtzio x eta y bezalako oroimenari antzekoak. 973 00:43:32,640 --> 00:43:35,110 Beraz, dezagun begirada bat Adibide bat laguntzen duen 974 00:43:35,110 --> 00:43:38,220 zehazki zer egin digu ikusi denbora honetan guztian gertatzen. 975 00:43:38,220 --> 00:43:40,284 Aurrera joan noa eta ireki Tarifa Zero. 976 00:43:40,284 --> 00:43:42,200 Eta ez dut nahi itxi joan Gure araztaileak, noa 977 00:43:42,200 --> 00:43:44,360 bila-mezu beldurgarriak hau ixteko besterik ez dio, itxaron minutu bat, 978 00:43:44,360 --> 00:43:45,800 Oraindik erdialdera arazketa duzun. 979 00:43:45,800 --> 00:43:48,383 Fitxa hau ezkutatzeko hemen noa besterik soiltasun itzuli nahi. 980 00:43:48,383 --> 00:43:50,160 Beraz, ez kezkatu GDB hil bada. 981 00:43:50,160 --> 00:43:53,910 Bakarrik esan nahi duen programa ditu irten dira, nahita, kasu honetan, 982 00:43:53,910 --> 00:43:54,820 me arabera. 983 00:43:54,820 --> 00:43:57,700 >> Eta orain Tarifa Zero du honek. 984 00:43:57,700 --> 00:44:00,110 CS50 erabiltzen dut I / O standard liburutegia. 985 00:44:00,110 --> 00:44:04,319 Dut funtzio nagusia dela lehen dio, esan zerbait, eta kate bat lortzen. 986 00:44:04,319 --> 00:44:06,110 Gero, esaten du behin eta katea beste lortzen. 987 00:44:06,110 --> 00:44:09,910 Eta hori bi kateak nabarituko dira s eta t deitzen dira, hurrenez hurren. 988 00:44:09,910 --> 00:44:12,910 Eta, orain, programa honetan, Konparatu Zero, bere bizitza helburua, 989 00:44:12,910 --> 00:44:15,470 ustezko me kontatzeko, idatzi nuen gauza bera? 990 00:44:15,470 --> 00:44:16,910 Eta orain naiz atzera joan nintzen aste bat. 991 00:44:16,910 --> 00:44:19,950 Nire berdinak operadorea berdina erabiltzen dut kalitate operadorea da. 992 00:44:19,950 --> 00:44:22,220 Ez esleitzeko operadorea, berdintasun-operadorea. 993 00:44:22,220 --> 00:44:23,890 Besterik s eta t naiz alderatuz. 994 00:44:23,890 --> 00:44:27,470 >> Beraz, goazen benetan aurrera, eta hori. 995 00:44:27,470 --> 00:44:32,680 Eta aurrera noa joan eta alderatu zero. 996 00:44:32,680 --> 00:44:35,110 ./comparezero Ez noa. 997 00:44:35,110 --> 00:44:37,150 Eta naiz joango Animatu eta zerbait esaten 998 00:44:37,150 --> 00:44:43,450 bezala, egin dezagun ama minuskulaz utzi eta maiuskulaz ama buruz nola. 999 00:44:43,450 --> 00:44:45,034 Eta, jakina, idazten dudanean gauza desberdinak. 1000 00:44:45,034 --> 00:44:45,533 Ados. 1001 00:44:45,533 --> 00:44:46,570 Hori da, espero da. 1002 00:44:46,570 --> 00:44:47,640 >> Dezagun exekutatu berriro. 1003 00:44:47,640 --> 00:44:49,740 Biak aldiz egin minuskula, minuskulaz. 1004 00:44:49,740 --> 00:44:51,490 Itxura super me berdina. 1005 00:44:51,490 --> 00:44:52,930 Sartu. 1006 00:44:52,930 --> 00:44:53,430 ONDO DA. 1007 00:44:53,430 --> 00:44:55,804 Agian, bitxia delako Ez da nire gramatika gustuko. 1008 00:44:55,804 --> 00:44:59,930 Beraz, egin capital ama bat utzi, capital Ama, berdin-berdina. 1009 00:44:59,930 --> 00:45:01,490 Gauza ezberdinak. 1010 00:45:01,490 --> 00:45:03,907 >> Beraz, zergatik da hori? 1011 00:45:03,907 --> 00:45:06,240 Beno, zer benetan joan kanpaia Hemen azpian? 1012 00:45:06,240 --> 00:45:08,180 Beraz, goazen atzera baino gehiago Hemen une bat besterik ez 1013 00:45:08,180 --> 00:45:10,910 eta kontuan hartu zer GetString Benetan egiten. 1014 00:45:10,910 --> 00:45:13,385 GetString deitu, duten funtzioa dugu bat 1015 00:45:13,385 --> 00:45:16,510 idatzi zuen geure eta nolabait daukala bat erabiltzaileari karaktere adierazteko. 1016 00:45:16,510 --> 00:45:20,280 Eta utzi du bere gain hartzen lehena, egungo denbora GetString deitu dut, ematen dit 1017 00:45:20,280 --> 00:45:21,930 memoria zatia itxura hau. 1018 00:45:21,930 --> 00:45:26,990 Eta idatzi dut minuskulaz guztietan bada m-o-m-- eta horren ondoren zer gertatzen den? 1019 00:45:26,990 --> 00:45:28,840 Just azkar behatu kontrol bat. 1020 00:45:28,840 --> 00:45:29,780 >> Backslash zero. 1021 00:45:29,780 --> 00:45:30,510 Hori badakigu. 1022 00:45:30,510 --> 00:45:32,784 Eta gogoratzen jokatu dugun Inguruan Zamila izen 1023 00:45:32,784 --> 00:45:34,950 eta beste izen mordo bat denean Rob hemen ari zela 1024 00:45:34,950 --> 00:45:36,280 Zer gertatzen ari den memoriaren barruan at. 1025 00:45:36,280 --> 00:45:37,780 Beraz, istorio hori zehazki gauza bera da. 1026 00:45:37,780 --> 00:45:40,160 Hau da, zer GetString niri itzuli. 1027 00:45:40,160 --> 00:45:44,780 Orain, nire kodea une bat duela gordeta bueltan GetString balioa 1028 00:45:44,780 --> 00:45:47,510 aldagai batean s izeneko. 1029 00:45:47,510 --> 00:45:51,390 Eta gero, bigarren aldiz, deitzen dut, gordetzen da t aldakorra izeneko batean. 1030 00:45:51,390 --> 00:45:55,070 >> Beraz, hemen baino gehiago joan badut, behar dut tokiko aldagai hau marrazteko 1031 00:45:55,070 --> 00:45:59,610 eta, oro har, ez dut joan Kate bat just zaitugu marrazten 1032 00:45:59,610 --> 00:46:02,360 deitu s-- plaza txiki bat hemen bezala. 1033 00:46:02,360 --> 00:46:09,760 Eta orain, nolabait, nola egiten du ama s aldagai horren barruan joan? 1034 00:46:09,760 --> 00:46:12,010 Beno, atzera egin behar dugu Hemen printzipioei. 1035 00:46:12,010 --> 00:46:15,660 Zer da GetString benetan itzuli? 1036 00:46:15,660 --> 00:46:19,030 >> Beraz, izarrekin bihurtzen da M-O-M backslash zero, eta edozein zenbaki 1037 00:46:19,030 --> 00:46:22,364 beste bezalako memorian kateak Zamila eta Rob edo Andy edo beste edozein, 1038 00:46:22,364 --> 00:46:24,280 Ikastaro dira gure ordenagailuaren RAM memoria. 1039 00:46:24,280 --> 00:46:27,760 Eta zure RAM ditu antzekoak duzu RAM kontzertuan, bi RAM kontzertuak, 1040 00:46:27,760 --> 00:46:30,860 edo milioi edo bi milioi byte, edo, agian, are gehiago egun hauetan. 1041 00:46:30,860 --> 00:46:34,070 Hargatik bere gain, gaur egungo helburuetarako, Hori ez du axola nola ematen dugun 1042 00:46:34,070 --> 00:46:36,640 horiek, baina bakoitzak zenbaki dezakegu horiek milioi edo bi milioi 1043 00:46:36,640 --> 00:46:37,880 edo lau milioi byte. 1044 00:46:37,880 --> 00:46:42,240 >> Eta dezagun arbitrarioki esan duten hau lehen ziztadak, bigarren ziztadak da, 1045 00:46:42,240 --> 00:46:43,380 Hirugarren, laugarren. 1046 00:46:43,380 --> 00:46:46,570 Nahita dut, ez zero erabiliz gaur egun, baina etorriko atzera egingo dugu. 1047 00:46:46,570 --> 00:46:49,570 Beraz, beste era batera esanda, hau da baldin Lehen aldiz programa erabiltzen ari naiz, 1048 00:46:49,570 --> 00:46:52,715 Besterik ez naiz zortea eta lehenengo hartzean mokadu kokapen bat da, ondoren, bi 1049 00:46:52,715 --> 00:46:53,590 ondoren, hiru, lau baino. 1050 00:46:53,590 --> 00:46:57,430 Eta marrazketa mantendu badut, kutxa zenbakia bi milioi baino gehiago modu hemen izango litzateke. 1051 00:46:57,430 --> 00:47:02,200 >> Beraz, zer uste duzu, ondoren, GetString benetan itzultzen? 1052 00:47:02,200 --> 00:47:06,010 Ez da M-O-M backslash itzuli zero per se, argi eta garbi duelako 1053 00:47:06,010 --> 00:47:08,180 Ezin izango moldatzen direla idatzi dut herri koadroan. 1054 00:47:08,180 --> 00:47:11,210 Beraz, zer gehiago GetString agian benetan egon itzuli aste horiek guztiak? 1055 00:47:11,210 --> 00:47:14,410 1056 00:47:14,410 --> 00:47:16,820 Erantzuna piztuta board hemen nonbait. 1057 00:47:16,820 --> 00:47:20,390 Ezin dituzu M-O-M backslash zero, beraz, zer zentzurik dezake ordez? 1058 00:47:20,390 --> 00:47:23,424 Super azkarra izan da, jarriz bazenu ingeniaritza-hat deiturikoak, 1059 00:47:23,424 --> 00:47:24,340 zer duzu itzultzeko daiteke? 1060 00:47:24,340 --> 00:47:27,340 Zer da informazio gutxien hori oraindik itzuli ezin duzu litzateke 1061 00:47:27,340 --> 00:47:30,610 M-O-M aurkituko dituzu oroimenean utzi? 1062 00:47:30,610 --> 00:47:31,270 Bai? 1063 00:47:31,270 --> 00:47:31,950 >> Ikusleak: One. 1064 00:47:31,950 --> 00:47:32,200 >> DAVID J. MALAN: One. 1065 00:47:32,200 --> 00:47:33,021 Eta zergatik? 1066 00:47:33,021 --> 00:47:35,520 Ikusleak: esango luke delako duzu nora joan [INAUDIBLE]. 1067 00:47:35,520 --> 00:47:38,391 1068 00:47:38,391 --> 00:47:39,390 DAVID J. MALAN: Zehazki. 1069 00:47:39,390 --> 00:47:44,300 Besterik ez naiz helbidea itzuli egingo da ahaztuak nuen katea. 1070 00:47:44,300 --> 00:47:46,570 Honen helbidea Kasu bat kokapena da. 1071 00:47:46,570 --> 00:47:51,280 Beraz, zer da s-- gordetzen ari den eta katea aldagai beraz, orain arte 1072 00:47:51,280 --> 00:47:53,430 besterik ez ditu izan da kate horren helbidea. 1073 00:47:53,430 --> 00:47:57,840 >> Bien bitartean, I deitu izanez Bigarren aldiz eta I GetString 1074 00:47:57,840 --> 00:48:03,300 idatz literalki gauza bera Minuskulaz M-O-M M-O-M 1075 00:48:03,300 --> 00:48:06,200 eta backslash beste zero, eta orain agian nire programa 1076 00:48:06,200 --> 00:48:09,820 dira, beraz, agian hau exekutatzen denbora pixka 10 da, hau kokapena 11 da, hau da, 12 1077 00:48:09,820 --> 00:48:10,700 hau 13 da. 1078 00:48:10,700 --> 00:48:13,590 Ordenagailuak beste batzuk erabiliz edozein arrazoigatik memoria. 1079 00:48:13,590 --> 00:48:18,172 Zer orain nire bigarren doa Nire programa t aldagaia? 1080 00:48:18,172 --> 00:48:19,390 10. 1081 00:48:19,390 --> 00:48:20,050 Hain zuzen ere. 1082 00:48:20,050 --> 00:48:23,910 >> Eta beraz, begiratu at dugu programa honen iturburu-kodea 1083 00:48:23,910 --> 00:48:26,550 non I besterik saiatzen naiz Bi balio konparatzeko, 1084 00:48:26,550 --> 00:48:32,180 S berdinak berdina t, zer da bistako giza erantzuna? 1085 00:48:32,180 --> 00:48:34,890 1 lukeen ez delako ez da berdina 10. 1086 00:48:34,890 --> 00:48:36,861 Eta beraz, hortxe dago bat Gurekin aukera benetan 1087 00:48:36,861 --> 00:48:39,610 besterik gabe, joan, itzuli, berriz ere, lehenengo printzipioak eta, buruz ondo pentsatzeko, 1088 00:48:39,610 --> 00:48:41,110 zer ari den gertatzen kanpaia azpian? 1089 00:48:41,110 --> 00:48:43,240 Izan gara buruz hitz egiten bit eta byte eta memoria, 1090 00:48:43,240 --> 00:48:46,820 baina benetan erabilgarria da ulertzen GetString deitu duzulako, 1091 00:48:46,820 --> 00:48:50,280 uste dugu, nahiz eta ez da M-O-M edo kate ama itzuli 1092 00:48:50,280 --> 00:48:53,120 edo Andy edo Zamila edo bezala, teknikoki 1093 00:48:53,120 --> 00:48:55,510 besterik ez da helbide itzuli memoria zatia dela. 1094 00:48:55,510 --> 00:48:56,910 >> Baina hori OK. 1095 00:48:56,910 --> 00:49:00,570 Nola ez dakit zeren non katea amaitu? 1096 00:49:00,570 --> 00:49:03,840 Naiz bakarrik eman hasieran bada? 1097 00:49:03,840 --> 00:49:05,380 Beno, backslash zero, ezta? 1098 00:49:05,380 --> 00:49:08,800 Just denbora lineala I can batean inprimatu inprimatu def M-O-M. 1099 00:49:08,800 --> 00:49:11,820 Eta backslash ikusi bezain laster zero, ez zait axola non hasi nintzen, 1100 00:49:11,820 --> 00:49:14,950 Dagoeneko ezagutzen dut inplizituki non amaituko behar dut. 1101 00:49:14,950 --> 00:49:18,700 >> Eta, beraz, gaur egun, hasieran du markatzen eta Horretarako me nabarmen dugulako 1102 00:49:18,700 --> 00:49:21,800 arazoak asko bidez joan eskuratu hemen horiek entrenatzen wheels-- 1103 00:49:21,800 --> 00:49:29,840 beraz, gaur egun, prestakuntza gurpilak hasteko alde batera utzi eta agerian egon ginen least-- 1104 00:49:29,840 --> 00:49:31,373 >> [Txaloak] 1105 00:49:31,373 --> 00:49:33,220 1106 00:49:33,220 --> 00:49:36,160 >> Hori izan zen, ondo bidaia merezi Gaur goizean helburu, bai? 1107 00:49:36,160 --> 00:49:39,600 Beraz, orain ez dago, hura bihurtzen out, katea gauza, hala nola. 1108 00:49:39,600 --> 00:49:41,140 Esaldia ez da existitzen. 1109 00:49:41,140 --> 00:49:43,760 Hori izan dugu sinonimo da CS50 liburutegiaren barruan. 1110 00:49:43,760 --> 00:49:48,660 Hemendik aurrera, deituz hasteko goaz s eta t ez kateak baina char izarrak. 1111 00:49:48,660 --> 00:49:51,180 Eta char izar zaitugu aurre gain luze baino lehen. 1112 00:49:51,180 --> 00:49:53,510 Baina honek esan nahi baita, jarraitzeko, nahiz eta dugun 1113 00:49:53,510 --> 00:49:56,180 GetString oraingoz, teknikoki behar dut 1114 00:49:56,180 --> 00:49:59,010 izan char izar eta char izar esanez. 1115 00:49:59,010 --> 00:50:01,720 >> Eta bihurtzen da zer Izarrak den adierazteko joan da zerbait 1116 00:50:01,720 --> 00:50:04,340 erakuslea edo helbide izenekoa. 1117 00:50:04,340 --> 00:50:06,110 Eta hain zuzen ere, aurkezpenik bat zer datza aurretik 1118 00:50:06,110 --> 00:50:09,760 20 segundoko bideo hau da gure Lagun Nick Parlante Stanford 1119 00:50:09,760 --> 00:50:12,927 izan ere, orain dela nahiko denbora pixka bat pasatzeko Denbora kopuru barregarria, 1120 00:50:12,927 --> 00:50:15,010 onena bezala ezin dut esango bere sukaldea edo bere sotoan, 1121 00:50:15,010 --> 00:50:17,140 claymation egiteko Mundu sartuz 1122 00:50:17,140 --> 00:50:20,010 izeneko pertsonaia bat Hegazti harekin egingo dugu 1123 00:50:20,010 --> 00:50:22,010 izango da sartu hurrengo aldian erakusleak. 1124 00:50:22,010 --> 00:50:24,588 Hortaz, hona hemen zer etorriko aurrebista bat da. 1125 00:50:24,588 --> 00:50:26,370 >> [Bideo-erreprodukzioa] 1126 00:50:26,370 --> 00:50:27,510 >> -Aizu, Hegazti. 1127 00:50:27,510 --> 00:50:28,260 Esnatu. 1128 00:50:28,260 --> 00:50:30,672 Erakuslea pasatzeko garaia da. 1129 00:50:30,672 --> 00:50:31,616 >> -Zer da hori? 1130 00:50:31,616 --> 00:50:33,032 Erakusleak buruz ikasi? 1131 00:50:33,032 --> 00:50:34,450 Oh, Goody. 1132 00:50:34,450 --> 00:50:35,431 >> [END erreprodukzioa] 1133 00:50:35,431 --> 00:50:38,055 DAVID J. MALAN: Eta ohar horretan, Asteazkenean ikusiko dugu. 1134 00:50:38,055 --> 00:50:47,590 1135 00:50:47,590 --> 00:50:48,090 Ados. 1136 00:50:48,090 --> 00:50:48,740 Nor dago dantzan? 1137 00:50:48,740 --> 00:50:49,240 Etorri. 1138 00:50:49,240 --> 00:50:50,330 Nor dago dantzan? 1139 00:50:50,330 --> 00:50:51,820 Nahi izanez me get hasi zen? 1140 00:50:51,820 --> 00:50:53,770 Lortuko dut hasi zen. 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 fancy Moises.