1 00:00:00,000 --> 00:00:10,550 2 00:00:10,550 --> 00:00:14,050 >> DAVID J. Malan: Dan huwa CS50 u dan huwa l-bidu ta 'erba' ġimgħat. 3 00:00:14,050 --> 00:00:18,630 U, boy, huwa Volkswagen fil trouble kollha minħabba software. 4 00:00:18,630 --> 00:00:20,264 Let us tagħti ħarsa. 5 00:00:20,264 --> 00:00:20,930 [Daqq video] 6 00:00:20,930 --> 00:00:25,560 -Cars, Il-karattri smartest fil-films Fast u Furious. 7 00:00:25,560 --> 00:00:29,100 Din il-ġimgħa automaker Ġermaniż Volkswagen sabet ruħha 8 00:00:29,100 --> 00:00:32,490 fin-nofs ta 'skandlu ta proporzjonijiet potenzjalment kriminali. 9 00:00:32,490 --> 00:00:36,060 >> -Volkswagen Huwa bracing għal biljuni fil-multi, ħlasijiet kriminali possibbli 10 00:00:36,060 --> 00:00:38,560 għall-uffiċjali eżekuttivi tagħha, kif il-kumpanija apologizes 11 00:00:38,560 --> 00:00:41,840 għall armar 11 miljun karozza li jgħinuha taħbit testijiet ta 'emissjoni. 12 00:00:41,840 --> 00:00:44,950 >> Mudelli tad-diżil -Certain kienu mfassla ma 'softwer sofistikati 13 00:00:44,950 --> 00:00:48,440 dik l-informazzjoni użata inkluż il- pożizzjoni tal-istering u l-vettura 14 00:00:48,440 --> 00:00:51,870 veloċità li jiddetermina l-karozza kienet għaddejjin minn ittestjar tal-emissjonijiet. 15 00:00:51,870 --> 00:00:55,650 Taħt din iċ-ċirkustanza, il-magna inaqqas l-emissjonijiet tossiċi. 16 00:00:55,650 --> 00:00:59,070 Iżda l-karozza kienet armati li bypass li meta kien qed tiġi misjuqa. 17 00:00:59,070 --> 00:01:03,320 Emissjonijiet żdiedu 10 sa 40 ħinijiet ogħla mil-livelli EPA aċċettabbli. 18 00:01:03,320 --> 00:01:04,280 >> [END Daqq] 19 00:01:04,280 --> 00:01:05,220 >> DAVID J. Malan: Mela ejja tagħti ħarsa lejn din 20 00:01:05,220 --> 00:01:07,250 u jara eżattament kif dan jista 'jiġi implimentat 21 00:01:07,250 --> 00:01:09,680 u kif dan jista 'jaffettwa karozzi tant bħal dan. 22 00:01:09,680 --> 00:01:12,840 Allura fl-idejn tiegħi hawn huma l-istampa rilaxx li nħarġet mill-EPA-- 23 00:01:12,840 --> 00:01:14,620 l Ambjentali Aġenzija għall-Protezzjoni li 24 00:01:14,620 --> 00:01:18,032 huwa l-aġenzija regolatorja Istati Uniti li mankijiet tħassib ambjentali, 25 00:01:18,032 --> 00:01:19,740 u mbagħad l-attwali Avviż Legali li kien 26 00:01:19,740 --> 00:01:22,420 jibagħtu lill Volkswagen ftit jiem ilu. 27 00:01:22,420 --> 00:01:26,530 >> Allura l-EPA jikteb, u tiżvela issa pubblikament, softwer sofistikati 28 00:01:26,530 --> 00:01:29,390 algoritmu fuq ċerti Vetturi Volkswagen jiskopri 29 00:01:29,390 --> 00:01:32,630 meta l-karozza għaddejja ittestjar tal-emissjonijiet uffiċjali 30 00:01:32,630 --> 00:01:36,505 u dawriet emissjonijiet sħiħa kontrolli fuq biss waqt it-test. 31 00:01:36,505 --> 00:01:38,380 L-effettività ta ' dawn it-tniġġis vetturi 32 00:01:38,380 --> 00:01:43,260 mezzi ta 'kontroll emissjonijiet huwa ferm mnaqqas matul kull sewqan normali 33 00:01:43,260 --> 00:01:44,320 sitwazzjonijiet. 34 00:01:44,320 --> 00:01:48,190 Dan jirriżulta fil-karozzi li jilħqu l- istandards fil-laboratorju jew l-ittestjar 35 00:01:48,190 --> 00:01:52,790 istazzjon, iżda matul l-operazzjoni normali jarmu oxides-- nitroġenu jew NOx-- 36 00:01:52,790 --> 00:01:54,950 fuq sa 40 darba l-istandard. 37 00:01:54,950 --> 00:01:58,220 Is-software prodott mill Volkswagen huwa mezz unquote kwotazzjoni, telfa, 38 00:01:58,220 --> 00:02:00,650 kif definit mill-Nadif Air Act fl-Istati Uniti. 39 00:02:00,650 --> 00:02:03,410 >> Jitilgħu jgħid li l-EPA u l-aġenzija oħra 40 00:02:03,410 --> 00:02:07,020 mikxufa l-mekkaniżmu ta 'telf softwer wara analiżi indipendenti 41 00:02:07,020 --> 00:02:09,660 mir-riċerkaturi fl West Virginia Università. 42 00:02:09,660 --> 00:02:14,160 Tniġġis NOx tikkontribwixxi għall dijossidu tan-nitroġenu, l-ożonu troposferiku, 43 00:02:14,160 --> 00:02:15,700 u partiċelli fini. 44 00:02:15,700 --> 00:02:18,090 Espożizzjoni għal dawn pollutanti ġiet marbuta 45 00:02:18,090 --> 00:02:20,870 ma 'firxa wiesgħa ta' effetti serji ta 'saħħa, 46 00:02:20,870 --> 00:02:23,637 fosthom aktar ażżma attakki u respiratorju ieħor 47 00:02:23,637 --> 00:02:26,470 mard li jistgħu jkunu serji biżżejjed li tibgħat lin-nies l-isptar. 48 00:02:26,470 --> 00:02:28,660 Espożizzjoni għall-ożonu u materja partikulata għandha wkoll 49 00:02:28,660 --> 00:02:31,960 kien assoċjat ma 'prematur mewt minħabba respiratorja relatati 50 00:02:31,960 --> 00:02:35,690 jew kardjovaskulari effetti relatati. 51 00:02:35,690 --> 00:02:38,940 It-tfal, l-anzjani, persuni mard respiratorju preexisting 52 00:02:38,940 --> 00:02:42,840 huma partikolarment f'riskju għall effetti tas-saħħa ta 'dawn l-inkwinanti. 53 00:02:42,840 --> 00:02:45,056 >> Huwa biżżejjed li jingħad, huwa pjuttost serji. 54 00:02:45,056 --> 00:02:46,930 U ejja jmorru biex taqra wieħed biss silta aktar 55 00:02:46,930 --> 00:02:49,370 u mbagħad aħna ser tagħti ħarsa lejn l-implikazzjonijiet sottostanti 56 00:02:49,370 --> 00:02:50,920 ta 'dan fil-kuntest ta' karozza. 57 00:02:50,920 --> 00:02:53,730 Speċifikament, Volkswagen immanifatturata u installata 58 00:02:53,730 --> 00:02:56,210 softwer fl-hekk imsejħa kontroll elettroniku 59 00:02:56,210 --> 00:02:59,320 module-- jew ECM-- ta dawn il-vetturi li nħassu 60 00:02:59,320 --> 00:03:03,580 meta l-vettura kienet qed tiġi ttestjata għall konformità ma 'standards ta' emissjoni EPA. 61 00:03:03,580 --> 00:03:07,510 Ibbażat fuq inputs varji inkluż il- pożizzjoni tal-isteering wheel, tal-vettura 62 00:03:07,510 --> 00:03:11,280 veloċità, it-tul tal-magna tal operazzjoni, u l-pressjoni barometrika, 63 00:03:11,280 --> 00:03:13,720 dawn l-inputs preċiżament tracked-parametri 64 00:03:13,720 --> 00:03:17,600 tal-proċedura tat-test federali użata għall ittestjar ta 'emissjoni għal ċertifikazzjoni EPA 65 00:03:17,600 --> 00:03:18,400 skopijiet. 66 00:03:18,400 --> 00:03:21,850 >> Matul l-ittestjar ta 'emissjoni EPA, is-softwer vetturi ECM 67 00:03:21,850 --> 00:03:25,060 dam software li pproduċiet riżultati emissjonijiet konformi. 68 00:03:25,060 --> 00:03:28,340 F'kull żmien ieħor, l softwer ECM vettura 69 00:03:28,340 --> 00:03:31,090 dam triq separata kalibrazzjoni li naqqset 70 00:03:31,090 --> 00:03:34,360 l-effettività tal- sistema ġenerali ta 'kontroll ta' emissjoni, 71 00:03:34,360 --> 00:03:37,864 speċifikament l katalitiku selettiv tnaqqis tal-NOx Lean trap-- 72 00:03:37,864 --> 00:03:39,280 li aħna ser tara dwar fil-mument. 73 00:03:39,280 --> 00:03:43,040 Bħala riżultat, l-emissjonijiet ta 'NOx miżjuda b'fattur ta '10 sa 40 darba 74 00:03:43,040 --> 00:03:47,450 fuq mil-livelli konformi EPA skond it-tip ta 'ċiklu drive. 75 00:03:47,450 --> 00:03:50,800 >> Allura dak li dan verament ifisser, u l kodiċi tas-sors għall-software running 76 00:03:50,800 --> 00:03:53,190 DWAR L-Volkswagen ma jkunx ġewx żvelati b'mod pubbliku, 77 00:03:53,190 --> 00:03:56,460 hija li, effettivament, dan ekwivalenti hemm x'imkien ġewwa 78 00:03:56,460 --> 00:03:57,830 tal-kodiċi Volkswagen. 79 00:03:57,830 --> 00:04:02,200 Jekk inti qed jiġu ttestjati, u jekk il-karozza jiskopri ċerti fatturi ambjentali 80 00:04:02,200 --> 00:04:04,330 bħall-isteering wheel pożizzjoni jew il-moviment 81 00:04:04,330 --> 00:04:06,710 jew in-nuqqas tiegħu tal-karozza jew kwalunkwe numru ta 'fatturi oħra 82 00:04:06,710 --> 00:04:09,940 li bħalissa qed hypothesized li jkun parti minn din il-formula, 83 00:04:09,940 --> 00:04:12,370 huma sempliċiment dawwar fuq tikkontrolla l-emissjonijiet sħiħa. 84 00:04:12,370 --> 00:04:15,670 Fi kliem ieħor, dawn jibdew li jarmu inqas tal-pollutanti. 85 00:04:15,670 --> 00:04:18,769 >> Else, f'kull sitwazzjoni oħra meta huwa ma jinstabux bħala 86 00:04:18,769 --> 00:04:20,790 fil-laboratorju, huma biss ma. 87 00:04:20,790 --> 00:04:24,320 U għalhekk inti tista 'tissimplifika dan in aktar pseudocode konkreta ma 'xi ħaġa 88 00:04:24,320 --> 00:04:24,820 bħal dan. 89 00:04:24,820 --> 00:04:27,810 Jekk ir-roti qed iduru iżda l- isteering wheel hija le, suġġestivi 90 00:04:27,810 --> 00:04:30,060 li l-karozza hija fuq xi tip ta 'ċilindru li jdur 91 00:04:30,060 --> 00:04:32,550 iżda f'xi tip ta ' maħżen qed jiġi ttestjat, 92 00:04:32,550 --> 00:04:36,070 imbagħad jaġixxu bħala l- EPA tixtieq inti. 93 00:04:36,070 --> 00:04:37,960 Inkella ma. 94 00:04:37,960 --> 00:04:40,420 Mela ejja tagħti ħarsa fi video qasir li 95 00:04:40,420 --> 00:04:45,391 jagħti ħarsa lejn dak li l-implikazzjonijiet huma ta 'dan fil-fatt mekkaniku. 96 00:04:45,391 --> 00:04:48,620 >> [Daqq video] 97 00:04:48,620 --> 00:04:52,800 >> -Last Ġimgħa l-EPA ħabbret li xi Karozzi Volkswagen Audi magħmula bejn l-2009 98 00:04:52,800 --> 00:04:55,840 u din is-sena kienu qed jużaw hekk imsejħa strumenti ta 'riduzzjoni 99 00:04:55,840 --> 00:04:59,060 li tikseb madwar liġijiet emissjonijiet maħsuba biex iżommu l-arja nadifa. 100 00:04:59,060 --> 00:05:01,700 Imma xi jfisser eżattament? 101 00:05:01,700 --> 00:05:04,666 >> Ukoll, karozzi moderni għexieren ta 'kompjuters ġo fihom. 102 00:05:04,666 --> 00:05:07,040 U xi wħud minn dawn il-kompjuters jgħin jikkoordina l-funzjonijiet 103 00:05:07,040 --> 00:05:09,590 tal-magna għal aħjar prestazzjoni filwaqt li niżguraw 104 00:05:09,590 --> 00:05:12,340 li ma jkunx hemm wisq żibel ġejjin mill-pajp. 105 00:05:12,340 --> 00:05:15,170 Huma ħadthom attwalment qegħdin jaħdmu B'dan il-mod għal diversi għexieren ta 'snin issa. 106 00:05:15,170 --> 00:05:17,380 Bażikament, kull parti ta 'magna ta' karozza moderna 107 00:05:17,380 --> 00:05:20,080 għandha sensor jew kontrollur fuqha, u dawn il-kompjuters 108 00:05:20,080 --> 00:05:23,460 qari fid-dejta eluf ta darba kull sekonda aġġustamenti teħid 109 00:05:23,460 --> 00:05:26,220 bħall-proporzjon ta 'fjuwil fl-arja li għaddej fis-ċilindri. 110 00:05:26,220 --> 00:05:28,730 >> Dawn Volkswagen qerq u mudelli Audi huma Bijodiżils, 111 00:05:28,730 --> 00:05:30,890 u Bijodiżils jkollhom waħda aktar kompjuter verament importanti 112 00:05:30,890 --> 00:05:34,030 parametri kkontrollati, li huwa l-ammont ta 'fjuwil mhux maħruq għaddej 113 00:05:34,030 --> 00:05:35,200 fil-exhaust. 114 00:05:35,200 --> 00:05:36,310 Issa li l-ħsejjes ħażina. 115 00:05:36,310 --> 00:05:39,642 Ma ħoss bħal inti tixtieq fjuwil mhux maħruq jmorru fil-exhaust. 116 00:05:39,642 --> 00:05:41,600 Iżda fil-każ ta ' diesel, għandek xi ħaġa 117 00:05:41,600 --> 00:05:46,110 imsejħa nassa NOx li huwa mezz li jassorbi u nases għall-ossidi tan-nitroġenu 118 00:05:46,110 --> 00:05:48,880 li huma pollutanti li kieku inkella jmorru fl-atmosfera. 119 00:05:48,880 --> 00:05:53,040 U l-effett ta 'dik nassa NOx hija msaħħa bil-karburant mhux maħruq. 120 00:05:53,040 --> 00:05:56,650 Allura apparat manipulattiv huwa programm speċjali ġewwa dawn il-kompjuters li jista 'jagħmilha 121 00:05:56,650 --> 00:05:59,527 jidhru bħall-karozza jissodisfa emissjoni standards anki meta ma. 122 00:05:59,527 --> 00:06:01,110 Volkswagen kellhom problema fuq idejh. 123 00:06:01,110 --> 00:06:04,050 Magni diesel tagħha kienu magħrufa biex jinkiseb ekonomija tal-karburant kbir, 124 00:06:04,050 --> 00:06:07,510 iżda l-nassa NOx biss jaħdem tajjeb meta jkun qed jintuża aktar fjuwil. 125 00:06:07,510 --> 00:06:10,460 Allura l-karozza jagħrfux, jużaw dan il-mezz telfa, 126 00:06:10,460 --> 00:06:13,870 meta kien jkollna emissjonijiet test, għandha tuża aktar fjuwil, 127 00:06:13,870 --> 00:06:16,830 jagħmel ix-xogħol nassa NOx sew, emissjonijiet tkun multa. 128 00:06:16,830 --> 00:06:21,130 Imma mbagħad ikollok fuq it-triq, l-apparat tintefa, int ħruq inqas fjuwil 129 00:06:21,130 --> 00:06:24,256 imma int tqegħid kemm 40 darba aktar inkwinanti fl-atmosfera. 130 00:06:24,256 --> 00:06:26,130 Imma kif l-Heck ma il-karozza jafu li kien 131 00:06:26,130 --> 00:06:27,720 qed jiġi ttestjat għall-konformità emissjonijiet? 132 00:06:27,720 --> 00:06:30,590 L-EPA jgħid li kien sofistikat sistema li iċċekkjata affarijiet 133 00:06:30,590 --> 00:06:34,090 bħal pożizzjoni isteering wheel, veloċità, kemm żmien il-magna kienet fuq, 134 00:06:34,090 --> 00:06:35,507 u anki l-pressjoni atmosferika. 135 00:06:35,507 --> 00:06:37,673 Fi kliem ieħor, kien hemm ebda mod dan kien aċċidentali 136 00:06:37,673 --> 00:06:40,260 minħabba li l-software kien mfassla b'attenzjoni kbira biex jikxfu 137 00:06:40,260 --> 00:06:41,630 test emissjonijiet uffiċjali. 138 00:06:41,630 --> 00:06:43,588 Li xi pretty serji qerq u li 139 00:06:43,588 --> 00:06:45,420 għaliex Volkswagen hija bħal problemi serji. 140 00:06:45,420 --> 00:06:48,600 Fil-fatt, CEO tagħhom, Martin Winterkorn, biss irriżenja. 141 00:06:48,600 --> 00:06:49,820 >> Allura x'jiġri li jmiss? 142 00:06:49,820 --> 00:06:53,900 Ukoll, jekk int wieħed mill-nofs miljun jettas diesel, Beatles, golfs, Passats, 143 00:06:53,900 --> 00:06:56,220 jew Audi A3s effettwata, l-aħbar tajba hija hija 144 00:06:56,220 --> 00:06:57,886 li l-karozza tiegħek għadu sikur biex issuq. 145 00:06:57,886 --> 00:07:00,510 Inti ma għandekx li tqiegħed lilha bogħod sakemm Volkswagen joħroġ recall. 146 00:07:00,510 --> 00:07:02,509 Iżda f'xi punt dawn qed probabbilment se jkollhom 147 00:07:02,509 --> 00:07:04,230 li taġġorna s-software ġewwa karozza tiegħek. 148 00:07:04,230 --> 00:07:06,927 Meta dan iseħħ inti tista jiksbu inqas mil fis tank. 149 00:07:06,927 --> 00:07:09,260 L-avukati huma diġà gearing up għall kawżi ta 'azzjoni klassi 150 00:07:09,260 --> 00:07:12,500 hekk sidien tista 'tikseb kkumpensati f'xi punt fil-futur. 151 00:07:12,500 --> 00:07:15,832 Iżda dan mhux se jiġri kwalunkwe ħin hekk. 152 00:07:15,832 --> 00:07:16,711 >> [END Daqq] 153 00:07:16,711 --> 00:07:19,960 DAVID J. Malan: Allura dan fil-fatt iqajjem interessanti akbar mistoqsija istampa 154 00:07:19,960 --> 00:07:20,660 kif l-fiduċja. 155 00:07:20,660 --> 00:07:21,160 Dritt? 156 00:07:21,160 --> 00:07:24,300 Lkoll iPhones jew Androids jew xi ħaġa fil-bwiet tagħna aktar probabbli 157 00:07:24,300 --> 00:07:26,500 f'dawn il-jiem, jew laptops fuq dawriet tagħna li huma 158 00:07:26,500 --> 00:07:28,510 softwer li jaħdem magħmula minn Apple u Microsoft 159 00:07:28,510 --> 00:07:30,710 u għenieqed ta 'kumpanniji oħra. 160 00:07:30,710 --> 00:07:34,240 Imma kif nafu li dak li dawn il-prodotti ta 'softwer qed jagħmlu 161 00:07:34,240 --> 00:07:37,680 huwa attwalment liema dawn kumpaniji jgħidu li qed jagħmlu? 162 00:07:37,680 --> 00:07:39,610 >> Per eżempju, li li jgħidu li kull darba li inti 163 00:07:39,610 --> 00:07:42,200 jagħmlu telefonata fuq iPhone tiegħek jew telefon Android jew bħalhom, 164 00:07:42,200 --> 00:07:45,650 li dak in-numru tat-telefon huwa wkoll mhux qed tittella server xi kumpanija 165 00:07:45,650 --> 00:07:48,399 minħabba xi program inti stajt bil-miktub, jekk huwa l-operattiva 166 00:07:48,399 --> 00:07:51,070 sistema nnifisha bħal IOS jew Android, jew għaliex inti ħadthom jitniżżel 167 00:07:51,070 --> 00:07:53,880 xi app parti terza li b'xi mod huwa smigħ 168 00:07:53,880 --> 00:07:57,120 li kollox int ittajpjar fi jew kollox int tgħid attwalment. 169 00:07:57,120 --> 00:07:59,500 Kif tkun taf li, meta inti guys qed jitħaddmu Clang 170 00:07:59,500 --> 00:08:02,590 jew Agħmel biex jikkompilaw tiegħek software stess fl CS50, kif 171 00:08:02,590 --> 00:08:06,080 do inti persunal li CS50 stess, permezz tal-librerija CS50, 172 00:08:06,080 --> 00:08:08,690 ma kienx qtugħ kull string inti stajt qatt gotten 173 00:08:08,690 --> 00:08:10,276 jew kull pulzier inti stajt qatt gotten? 174 00:08:10,276 --> 00:08:12,900 Well, inti tista 'ċertament tfittex fil-kodiċi tas-sors għal xi ħaġa 175 00:08:12,900 --> 00:08:15,233 bħall-librerija CS50, inti tista 'tħares lejn il-kodiċi tas-sors 176 00:08:15,233 --> 00:08:18,170 għas-sistema operattiva Linux taħdem fuq IDE CS50. 177 00:08:18,170 --> 00:08:23,090 Iżda preżentazzjoni aqwa ingħata lura fl-1984 178 00:08:23,090 --> 00:08:26,730 jirċievi l-Premju Turing minn xjentist kompjuter famużi ħafna magħruf 179 00:08:26,730 --> 00:08:29,750 as-- jismu Ken Thompson li irċieva l-Premju Turing li 180 00:08:29,750 --> 00:08:33,500 huwa tip ta 'xjenza tal-kompjuter Premju Nobel, jekk inti se, 181 00:08:33,500 --> 00:08:35,309 għall-ħidma tiegħu fuq sistema operattiva imsejħa 182 00:08:35,309 --> 00:08:39,039 Unix, li hija simili ħafna fl ispirtu li dak li nużaw li huwa Linux. 183 00:08:39,039 --> 00:08:41,960 U l-kwistjoni huwa talab fil tiegħu diskors aċċettazzjoni, essenzjalment 184 00:08:41,960 --> 00:08:44,910 li jippreskrivi l-qafas għall snin u snin ta 'diskussjoni 185 00:08:44,910 --> 00:08:46,970 dwar il-fiduċja u s-sigurtà, kien dan. 186 00:08:46,970 --> 00:08:50,410 Safejn għandha fiduċja waħda minn dikjarazzjoni li program-- biċċa 187 00:08:50,410 --> 00:08:53,010 tal software-- huwa mingħajr Trojan horses? 188 00:08:53,010 --> 00:08:56,500 Forsi huwa aktar importanti li l-fiduċja il-persuni li kiteb l-software. 189 00:08:56,500 --> 00:08:58,650 >> U fil-fatt, konna marbuta għall-talk li hu 190 00:08:58,650 --> 00:09:02,400 taw meta jaċċettaw dan il-premju fis-snin 80 fuq il-websajt CS50 s 191 00:09:02,400 --> 00:09:04,030 taħt il-paġna Lectures għal-lum. 192 00:09:04,030 --> 00:09:06,071 Minħabba dak li int ser tara hu li fil-fatt jagħti 193 00:09:06,071 --> 00:09:09,430 eżempju pjuttost sempliċi ta 'kif anke kompilatur bħal Clang jew kwalunkwe 194 00:09:09,430 --> 00:09:13,950 kompilaturi oħrajn użati fil-passat, X'jiġri jekk inkorporati fil-kompilatur aħna 195 00:09:13,950 --> 00:09:18,190 lilna nfusna qed tuża huwa xi ftit jekk kundizzjoni li essenzjalment jgħid, 196 00:09:18,190 --> 00:09:22,360 jekk tinnota li dan il-kodiċi qed tuża il-funzjoni GetString jew l GetInt 197 00:09:22,360 --> 00:09:26,600 , il-funzjoni imorru quddiem u daħħal a bieb ta 'wara jew Trojan horse 198 00:09:26,600 --> 00:09:29,340 b'tali mod li dak il-programm issa għandha xi żerijiet 199 00:09:29,340 --> 00:09:30,930 u dawk li jagħmlu xi ħaġa malizzjużi. 200 00:09:30,930 --> 00:09:33,080 Qtugħ kollha ta 'tiegħek keystrokes, uploading li d-data 201 00:09:33,080 --> 00:09:35,100 għal xi server, jew verament xi ħaġa. 202 00:09:35,100 --> 00:09:37,290 >> U dak Ken Thompson tmur fuq li jagħmlu fil talk tiegħu 203 00:09:37,290 --> 00:09:40,580 huwa li turi li anke jekk ikollok aċċess għall-sors 204 00:09:40,580 --> 00:09:43,794 kodiċi ta kompilatur li malizzjuż jista 'jkun tagħmel dan, 205 00:09:43,794 --> 00:09:46,210 ma jimpurtax għax hemm dan tiġieġ u l-bajd 206 00:09:46,210 --> 00:09:49,500 realtà mill-ħafna passat snin li biha kompilaturi 207 00:09:49,500 --> 00:09:51,960 huma użati biex jikkompilaw infushom. 208 00:09:51,960 --> 00:09:55,440 Fi kliem ieħor, mod lura meta xi ħadd kellhom kitbu l-ewwel kompilatur. 209 00:09:55,440 --> 00:09:59,060 U wara, kull darba li ħadthom aġġornati kompilatur billi jbiddlu kodiċi sors tagħha, 210 00:09:59,060 --> 00:10:02,020 jżid karatteristiċi u recompiling dan għall-persuni bħalna għall-użu, ukoll, 211 00:10:02,020 --> 00:10:04,270 li qed jużaw l-qodma Verżjoni tal-kompilatur 212 00:10:04,270 --> 00:10:06,370 biex jikkompilaw l-ġdida Verżjoni tal-kompilatur. 213 00:10:06,370 --> 00:10:08,370 U jekk inti tagħti ħarsa fil-taħdita li taw, 214 00:10:08,370 --> 00:10:10,970 tkun taf tara li minħabba ta 'dak ċirkolarità, 215 00:10:10,970 --> 00:10:14,330 inti tista 'attwalment jkollhom bugs jew Trojan horses inkorporati fis-software 216 00:10:14,330 --> 00:10:14,990 aħna qed jużaw. 217 00:10:14,990 --> 00:10:18,010 U anki jekk inti tħares lejn l- kodiċi tas-sors għall dawk il-programmi, 218 00:10:18,010 --> 00:10:21,550 ma jista 'anke jkun evidenti minħabba li l-trickery huwa attwalment 219 00:10:21,550 --> 00:10:24,710 f'xi verżjoni anzjani ta ' kompilatur li peress li qatt kien 220 00:10:24,710 --> 00:10:27,340 tinjetta t-theddida fis-softwer tagħna. 221 00:10:27,340 --> 00:10:29,740 >> Liema hija biss jgħidu, aħna verament ma tistax u m'għandhiex 222 00:10:29,740 --> 00:10:32,939 software fiduċja li jaħdem fuq laptops tagħna jew tat-telefons jew kwalunkwe numru ta 'postijiet. 223 00:10:32,939 --> 00:10:36,230 U fil-fatt, aktar tard f'dan semestru meta nibdew nitkellmu dwar l-ipprogrammar tal-web 224 00:10:36,230 --> 00:10:38,521 u fil-fatt jibda jinbena applikazzjonijiet web nfusna, 225 00:10:38,521 --> 00:10:40,285 aħna ser nitkellmu dwar dawn theddid u oħrajn. 226 00:10:40,285 --> 00:10:43,410 Issa, inti jista 'jkollok staqsiet u ndunat li kien hemm ftit Darth żgħira 227 00:10:43,410 --> 00:10:45,842 Vader fil-clips li Il-ponta kien juri hemmhekk 228 00:10:45,842 --> 00:10:47,550 dwar Volkswagen. Jekk inti stajt qatt rat, I 229 00:10:47,550 --> 00:10:49,190 ħsibt aħna għandu jħaffef l-burdata għaliex dan huwa kollu 230 00:10:49,190 --> 00:10:50,780 ħafna deprimenti u biża. 231 00:10:50,780 --> 00:10:52,910 Jien ser inħarsu lura fil Super Bowl 2011 232 00:10:52,910 --> 00:10:55,300 meta kummerċjali mill Volkswagen-- u dan 233 00:10:55,300 --> 00:10:59,620 kważi jagħmilhom likable again-- imxandra għall-ewwel darba fuq it-TV. 234 00:10:59,620 --> 00:11:04,039 Hu l-tieni clip 60 li naħseb li inti ser igawdu. 235 00:11:04,039 --> 00:11:04,705 [Daqq video] 236 00:11:04,705 --> 00:11:08,198 [MUSIC - TEMA minn "Star Wars"] 237 00:11:08,198 --> 00:11:35,643 238 00:11:35,643 --> 00:11:38,138 [Barks kelb] 239 00:11:38,138 --> 00:11:50,114 240 00:11:50,114 --> 00:11:53,607 [CAR Tibda] 241 00:11:53,607 --> 00:12:04,086 242 00:12:04,086 --> 00:12:05,955 [END Daqq] 243 00:12:05,955 --> 00:12:06,830 DAVID J. Malan: Yeah. 244 00:12:06,830 --> 00:12:07,663 I kien biss verifika. 245 00:12:07,663 --> 00:12:11,360 Dik il-karozza hija fuq il-lista ta 'vjolazzjonijiet. 246 00:12:11,360 --> 00:12:12,000 Kull dritt. 247 00:12:12,000 --> 00:12:14,040 Allura aħna nħarsu lejn uħud pseudocode mument ilu. 248 00:12:14,040 --> 00:12:15,380 U hawnhekk akbar snippet ta 'kodiċi pseudocode 249 00:12:15,380 --> 00:12:16,921 li Rajna xi ftit drabi s'issa. 250 00:12:16,921 --> 00:12:19,970 U ejja jużaw din hija opportunità issa li tintroduċi pprogrammar ġdid 251 00:12:19,970 --> 00:12:23,776 teknika li għamilna tara algorithmically 252 00:12:23,776 --> 00:12:25,400 ġimgħa li għaddiet meta ħarisna lejn sort jingħaqdu. 253 00:12:25,400 --> 00:12:28,270 Imma ejja jifformalizzaw u tara kif nistgħu jużawha fil-kodiċi attwali, 254 00:12:28,270 --> 00:12:30,350 u allura aħna qed tmur biex jużaw dan teknika fl-triq l-aktar 255 00:12:30,350 --> 00:12:32,000 probabbli li jiġu solvuti ċerti problemi oħra. 256 00:12:32,000 --> 00:12:35,790 >> Allura dan kien wieħed mill-ewwel programmi we qatt kiteb, għalkemm kodiċi pseudocode. 257 00:12:35,790 --> 00:12:37,790 U dak dan il-programm ħallietna nsiru biex jagħmlu kors 258 00:12:37,790 --> 00:12:41,510 kienet li jsibu Mike Smith fil-ktieb tat-telefon. 259 00:12:41,510 --> 00:12:46,216 U avviż f'xi linji ta 'tmien u 11 li kellhom din l-istqarrija Go To. 260 00:12:46,216 --> 00:12:48,090 U fil-fatt, ċerti lingwi, C fosthom, 261 00:12:48,090 --> 00:12:50,006 fil-fatt do jkollhom dikjarazzjoni li hu litteralment 262 00:12:50,006 --> 00:12:52,710 mur li jippermettilek li tiżdied għal linja speċifika. 263 00:12:52,710 --> 00:12:55,470 Huwa ġeneralment frowned fuq għaliex jista 'jiġi faċilment abbużati 264 00:12:55,470 --> 00:12:58,490 u inti tista 'tibda jaqbeż tiegħek programm kollu fuq il-post għall-kuntrarju 265 00:12:58,490 --> 00:13:00,690 għall-użu it-tip ta ' loġika u l-fluss kontroll 266 00:13:00,690 --> 00:13:04,000 li konna użati s'issa ma biss loops u kondizzjonijiet u simili. 267 00:13:04,000 --> 00:13:08,660 >> Iżda nistgħu jissimplifika dan algoritmu fil-kodiċi pseudocode kif ġej. 268 00:13:08,660 --> 00:13:11,250 Minflok dan iterattiv jew looping approċċ 269 00:13:11,250 --> 00:13:14,160 fejn inżommu tmur lura u lura u lura għal-linja tlieta, 270 00:13:14,160 --> 00:13:18,300 għaliex ma we biss tip ta 'Punt u aktar ġeneralment jgħidu konformi seba u 10, 271 00:13:18,300 --> 00:13:20,570 biss jissostitwixxu dawn iż-żewġ pari ta 'linji, 272 00:13:20,570 --> 00:13:22,810 inkella jekk Smith tiġi qabel fil-ktieb aħna ser 273 00:13:22,810 --> 00:13:25,110 tfittxija għall Mike fil- nofs tax-xellug tal-ktieb. 274 00:13:25,110 --> 00:13:28,560 Else jekk Smith tkun iktar tard fil- ktieb, tfittxija għal Mike fid-dritt 275 00:13:28,560 --> 00:13:29,540 nofs il-ktieb. 276 00:13:29,540 --> 00:13:31,180 U avviż diġà l-ċirkolarità. 277 00:13:31,180 --> 00:13:31,680 Dritt? 278 00:13:31,680 --> 00:13:34,250 Jien tiftix għal Mike fil il-ktieb tat-telefon u mbagħad 279 00:13:34,250 --> 00:13:37,090 I eventwalment hit forsi line seba 'jew forsi linja 10 280 00:13:37,090 --> 00:13:41,089 u l-istruzzjoni tiegħi li myself huwa tfittxija għall Mike fil nofs il-ktieb tat-telefon. 281 00:13:41,089 --> 00:13:42,380 Ukoll, kif nista tfittxija għal Mike? 282 00:13:42,380 --> 00:13:44,213 Jien fin-nofs ta tiftix għal Mike, għaliex 283 00:13:44,213 --> 00:13:45,860 huma inti tip ta 'jibghatni f'ċirku? 284 00:13:45,860 --> 00:13:49,590 Imma dak li OK għaliex dak li hu jiġri għad-daqs tal-problema, 285 00:13:49,590 --> 00:13:52,630 kif miktun fid linja 7 u 10? 286 00:13:52,630 --> 00:13:54,989 Aħna mhux biss qal tfittxija għall Mike, tfittxija għal Mike. 287 00:13:54,989 --> 00:13:56,280 Aħna qed tgħid speċifikament liema? 288 00:13:56,280 --> 00:13:58,694 289 00:13:58,694 --> 00:14:01,610 Fittex għalih fl-ewwel nofs tax-xellug tal in-nofs dritt li huwa effettivament 290 00:14:01,610 --> 00:14:03,440 nofs id-daqs tal-problema. 291 00:14:03,440 --> 00:14:07,170 Allura huwa OK li aħna qed tip ta ' involviment f'dan ċirkolarità, 292 00:14:07,170 --> 00:14:09,180 dan l-argument ċirkolari, għaliex mill-inqas aħna qed 293 00:14:09,180 --> 00:14:11,090 jagħmlu l-problema iżgħar. 294 00:14:11,090 --> 00:14:14,220 U eventwalment aħna qed tmur biex jilħqu li l-hekk imsejħa każ bażi fejn 295 00:14:14,220 --> 00:14:16,780 għadna kemm paġna waħda left-- kif voluntier tagħna aħħar ġimgħa 296 00:14:16,780 --> 00:14:18,684 did-- kellna paġna waħda xellug u mbagħad aħna ma 297 00:14:18,684 --> 00:14:21,600 għandhom iżommu tiftix għal Mike Smith għaliex huwa jew fuq dik il-paġna 298 00:14:21,600 --> 00:14:23,080 jew huwa ma jkunx. 299 00:14:23,080 --> 00:14:27,480 >> Allura kif nistgħu nimplimentaw din l-idea, dan tip ta 'ċirkolarità fil-kodiċi attwali? 300 00:14:27,480 --> 00:14:31,030 Well, nistgħu lieva teknika thats ġeneralment magħrufa bħala recursion. 301 00:14:31,030 --> 00:14:33,960 U Rajna dan fil- pseudocode għall tip jingħaqdu ġimgħa li għaddiet. 302 00:14:33,960 --> 00:14:37,190 Ifakkar li dan kien il- pseudocode għall tip jingħaqdu. 303 00:14:37,190 --> 00:14:40,560 Huwa probabbli ħafna aktar sempliċi milli bużżieqa jew għażla jew inserzjoni tip 304 00:14:40,560 --> 00:14:43,310 biss f'termini tal-sempliċità li magħhom inti tista 'tesprimi lilha. 305 00:14:43,310 --> 00:14:46,750 >> Iżda dan għaliex aħna qed tip ta 'circularly 306 00:14:46,750 --> 00:14:51,350 qal, tfittex xi ħaġa minn tiftix għal darb'oħra. 307 00:14:51,350 --> 00:14:53,960 Iżda aħna qed tfittex jew fuq in-nofs tax-xellug jew il-nofs tal-lemin 308 00:14:53,960 --> 00:14:56,070 u mbagħad eventwalment aħna qed jingħaqdu f'dan il-każ. 309 00:14:56,070 --> 00:14:58,520 Iżda hawnhekk, wisq, ma dawn iż-żewġ linji sort, 310 00:14:58,520 --> 00:15:01,320 aħna ma jerġa 'jkollhom dan idea ta 'recursion. 311 00:15:01,320 --> 00:15:05,350 U konkret dak li dan ifisser, fil-kuntest ta 'algoritmu, 312 00:15:05,350 --> 00:15:10,880 hija li algoriżmu huwa rikursivi jekk hija tuża jew sejħiet innifsu. 313 00:15:10,880 --> 00:15:14,330 >> Jew f'termini ta C, funzjoni hija recursive-- funzjoni msejħa 314 00:15:14,330 --> 00:15:18,510 foo huwa rikursivi jekk foo, x'imkien fil-kodiċi sors tagħha, 315 00:15:18,510 --> 00:15:21,250 jitlob l-foo funzjoni hija stess. 316 00:15:21,250 --> 00:15:25,790 U li ħażina jekk kollox foo qatt ma huwa sejħa nnifisha mill-ġdid u għal darb'oħra. 317 00:15:25,790 --> 00:15:30,600 Huwa OK jekk foo eventwalment waqfiet, bħal ma jingħaqdu sort, billi qal, stenna minuta, 318 00:15:30,600 --> 00:15:32,980 jekk din il-problema huwa super żgħar, per eżempju, 319 00:15:32,980 --> 00:15:35,840 jew I sabuh min jien tfittex, biss jirritorna. 320 00:15:35,840 --> 00:15:41,000 Ma recursively, ma ċiklikament sejħa myself darb'oħra. 321 00:15:41,000 --> 00:15:44,200 >> U hekk ejja tagħti ħarsa lejn kif dan jista 'attwalment jaħdmu. 322 00:15:44,200 --> 00:15:48,430 Hekk jien ser jimxi 'l quddiem u miftuħa żewġ eżempji source code hawn. 323 00:15:48,430 --> 00:15:50,321 Li waħda minnhom huwa msejjaħ sigma 0. 324 00:15:50,321 --> 00:15:52,320 U dan mhuwiex f'kull rikursivi, imma ejja tieħu 325 00:15:52,320 --> 00:15:53,694 ħarsa lejn dak il-programm ma. 326 00:15:53,694 --> 00:15:55,737 Stajt imqaxxar barra kollha kummenti minnha iżda kollha 327 00:15:55,737 --> 00:15:58,070 tas-source code fuq l CS50 websajt kummenti jekk inti 328 00:15:58,070 --> 00:15:59,570 trid taqra permezz ta 'dan again later. 329 00:15:59,570 --> 00:16:02,010 U ejja jagħmlu koppja tal sanità kontrolli hawn. 330 00:16:02,010 --> 00:16:06,640 >> Allura fil-quċċata ta 'dan il-kodiċi, għandna jinkludu CS50.h. 331 00:16:06,640 --> 00:16:07,650 Xi jfisser dan do? 332 00:16:07,650 --> 00:16:08,990 Għaliex huwa hawnhekk? 333 00:16:08,990 --> 00:16:11,740 F'termini layman raġonevoli tal. 334 00:16:11,740 --> 00:16:12,424 X'tikkontrolla do? 335 00:16:12,424 --> 00:16:12,858 Yeah. 336 00:16:12,858 --> 00:16:14,160 >> UDJENZA: Allura dik il-funzjoni GetInt jaħdem. 337 00:16:14,160 --> 00:16:16,243 >> DAVID J. Malan: Allura li il-funzjoni GetInt xogħlijiet. 338 00:16:16,243 --> 00:16:18,115 Minħabba ġewwa ta 'dan fajl, CS50.h, li 339 00:16:18,115 --> 00:16:20,950 Ser naraw qabel twil fil termini tal-kodiċi sors tagħha, 340 00:16:20,950 --> 00:16:23,270 għandha mazz ta 'funzjonijiet declared-- GetInt, GetString, 341 00:16:23,270 --> 00:16:26,950 u mazz ta 'others-- u sakemm għandna attwalment ikollhom li Inkludi linja, 342 00:16:26,950 --> 00:16:29,320 l Clang kompilatur mhuwiex ser tkun taf li jeżisti. 343 00:16:29,320 --> 00:16:32,400 U istess jgħodd għal-linja tnejn fejn int huwa definit 344 00:16:32,400 --> 00:16:35,101 printf, li huwa funzjoni inżommu użu pjuttost ftit. 345 00:16:35,101 --> 00:16:37,850 Issa, linja erbgħa jidher funky ftit għaliex huwa biss inforra wieħed. 346 00:16:37,850 --> 00:16:41,570 Huwa ltqajna punto virgola, l-ebda kaboċċi ċingi, l-ebda kodiċi ġewwa ta 'dan. 347 00:16:41,570 --> 00:16:44,640 Imma dak li għamilt li nsejħu dan ħaġa fil-ġimgħat passat? 348 00:16:44,640 --> 00:16:45,140 Yeah. 349 00:16:45,140 --> 00:16:46,060 Allura prototip. 350 00:16:46,060 --> 00:16:48,390 U għaliex għandna prototip li jidher 351 00:16:48,390 --> 00:16:51,050 li jkun żejjed ftit tipikament għaliex aħna normalment 352 00:16:51,050 --> 00:16:53,474 tara l-funzjoni mill-ġdid aktar tard fil-fajl, id-dritt? 353 00:16:53,474 --> 00:16:56,390 Allura għaliex għandna have-- int biss grif ras tiegħek imma jien ser teħodha. 354 00:16:56,390 --> 00:16:57,302 Yeah. 355 00:16:57,302 --> 00:17:00,000 >> UDJENZA: [inaudible] funzjoni wara l-prinċipali. 356 00:17:00,000 --> 00:17:01,000 DAVID J. Malan: Eżattament. 357 00:17:01,000 --> 00:17:04,089 Sabiex il-kompilatur jaf int eventwalment se tiddefinixxi jew timplimenta 358 00:17:04,089 --> 00:17:06,579 dik il-funzjoni wara ewlenija, preżumibbilment. 359 00:17:06,579 --> 00:17:08,462 Allura Clang u aktar kompilaturi huma tip ta 'dumb 360 00:17:08,462 --> 00:17:10,510 u dawn ser jafu biss dak li jgħidulhom. 361 00:17:10,510 --> 00:17:12,569 U jekk inti tixtieq li tuża funzjoni msejħa sigma, 362 00:17:12,569 --> 00:17:15,710 inti aħjar jgħallmu l-kumpilatur li jeżisti minn qabel. 363 00:17:15,710 --> 00:17:17,970 >> Issa, hija stess prinċipali, anki għalkemm huwa mazz ta 'linji, 364 00:17:17,970 --> 00:17:19,839 huwa pjuttost familjari nisperaw minn issa. 365 00:17:19,839 --> 00:17:21,942 Huwa ltqajna do filwaqt loop iskop li fil-ħajja 366 00:17:21,942 --> 00:17:24,400 hawn apparentement huwa li tikseb numru sħiħ pożittiv mill-utent. 367 00:17:24,400 --> 00:17:27,349 U biss iżommu pestering lilu jew tagħha sakemm jikkooperaw. 368 00:17:27,349 --> 00:17:30,670 Imbagħad konformi 16 I jkollhom sejħa interessanti. 369 00:17:30,670 --> 00:17:31,570 IntAnswer. 370 00:17:31,570 --> 00:17:33,710 Li min-naħa tax-xellug naħa tagħti me Int 371 00:17:33,710 --> 00:17:36,650 li jistgħu store-- imsejħa Answer-- li se taħżen, apparentement, 372 00:17:36,650 --> 00:17:39,090 il-valur ritorn ta 'sigma. 373 00:17:39,090 --> 00:17:41,840 Allura sigma huwa biss isem arbitrarja iżda sinifikanti 374 00:17:41,840 --> 00:17:44,500 li stajt mogħtija għal funzjoni iskop li fil-ħajja 375 00:17:44,500 --> 00:17:47,680 huwa li jieħdu argument-- wieħed aħna ser sejħa hija N f'din case-- 376 00:17:47,680 --> 00:17:52,280 u biss biex jieħdu s-somma ta 'dak in-numru plus kull numru pożittiv li l- 377 00:17:52,280 --> 00:17:53,200 iżgħar minn dan. 378 00:17:53,200 --> 00:17:58,140 >> Mela jekk jien jgħaddu fin-numru 2 li sigma, I tixtieq iżżid 2 flimkien ma '1 379 00:17:58,140 --> 00:18:00,240 plus 0-- mhux 0-- sabiex tagħti me 3. 380 00:18:00,240 --> 00:18:05,320 Jekk I jgħaddu fi 3 sa sigma, nixtieq li jkollhom 3 flimkien ma '2 flimkien ma' 1, li tagħti me 6. 381 00:18:05,320 --> 00:18:05,900 U oħrajn. 382 00:18:05,900 --> 00:18:09,750 Allura hija biss iżid up kollha l- numri inqas minn jew ugwali għal dan. 383 00:18:09,750 --> 00:18:12,040 >> Issa, stabbiliti hawn jien biss se li jistampa l-risposta. 384 00:18:12,040 --> 00:18:17,330 Allura bħala kontroll sanità malajr, ejja jagħmlu sigma 0-- sigma dot slash 0-- 385 00:18:17,330 --> 00:18:18,690 u let me tip fil 2. 386 00:18:18,690 --> 00:18:19,960 U jien tassew nikseb 3. 387 00:18:19,960 --> 00:18:21,240 Let me tip fi 3. 388 00:18:21,240 --> 00:18:22,860 I tabilħaqq nikseb 6. 389 00:18:22,860 --> 00:18:27,636 U jekk kulħadd jista 'jagħmel l-matematika malajr, jekk nagħmel 50 dak li jien ser nikseb? 390 00:18:27,636 --> 00:18:29,839 >> UDJENZA: [inaudible]. 391 00:18:29,839 --> 00:18:30,880 DAVID J. Malan: Well, no. 392 00:18:30,880 --> 00:18:33,340 Iżda 1,275 li huwa pjuttost qrib. 393 00:18:33,340 --> 00:18:38,850 Allura dan huwa r-riżultat ta 'kif isir 50 plus 49 plus 48 plus 47 plus 46 394 00:18:38,850 --> 00:18:40,349 it-triq kollha sa 1. 395 00:18:40,349 --> 00:18:41,390 Allura li kollox sigma ma. 396 00:18:41,390 --> 00:18:43,350 Imma ejja naraw kif konna implimentat dan issa. 397 00:18:43,350 --> 00:18:45,790 Allura stabbiliti hawn hija l-funzjoni nnifisha. 398 00:18:45,790 --> 00:18:49,000 U dan ma jidhirx li xejn x'jaqsmu ma 'recursion s'issa. 399 00:18:49,000 --> 00:18:51,070 Fil-fatt, aħna qed jużaw teknika iskola antika. 400 00:18:51,070 --> 00:18:56,680 Jien initializing varjabbli imsejjaħ somma għal żero, imbagħad I jkollhom foreloop hawn, 401 00:18:56,680 --> 00:19:00,790 u jien ddikjarata Int imsejħa I, dan ikun iffissat ugwali għal 1-- 402 00:19:00,790 --> 00:19:04,080 għalkemm I jistgħu jistabbilixxu li egwali għal żero, imma peress li jien qed nagħmel minn hekk, 403 00:19:04,080 --> 00:19:05,340 quién jekk huwa żero jew wieħed. 404 00:19:05,340 --> 00:19:06,660 Huwa ser ikollha effett. 405 00:19:06,660 --> 00:19:10,110 >> Hekk jien mtennija sakemm I huwa inqas minn jew ugwali għal m, li 406 00:19:10,110 --> 00:19:11,671 huwa l-argument li kienet għaddiet. 407 00:19:11,671 --> 00:19:13,670 U mbagħad I biss iżommu inkrementazzjoni I. U ħarsa 408 00:19:13,670 --> 00:19:20,010 tal-linja kollha li qed nagħmel qed tagħmel somma plus ugwali I. U li intenzjonat. 409 00:19:20,010 --> 00:19:22,326 Ma rridx li tagħmel, f'dan każ, bħal somma plus plus. 410 00:19:22,326 --> 00:19:24,790 Irrid li attwalment iżidu il-valur kurrenti ta 'I 411 00:19:24,790 --> 00:19:28,190 li jżomm dejjem akbar u akbar u akbar għall-jaqblu running. 412 00:19:28,190 --> 00:19:30,210 >> U mbagħad I jirritornaw somma. 413 00:19:30,210 --> 00:19:33,850 U għalhekk tweġiba gets-somma valur. 414 00:19:33,850 --> 00:19:35,282 U mbagħad I ipprintjaha. 415 00:19:35,282 --> 00:19:37,740 Allura hemm opportunità hawn, għalkemm, li tip ta 'jissimplifikaw 416 00:19:37,740 --> 00:19:41,260 dan il-kodiċi kunċettwalment u t-tip ta 'blow wieħed huwa 417 00:19:41,260 --> 00:19:43,250 mind f'termini tal- sempliċità anki jekk 418 00:19:43,250 --> 00:19:45,700 tieħu filwaqt li sort ta japprezzaw għaliex dan 419 00:19:45,700 --> 00:19:47,330 hija qawwija f'dawn l-eżempji żgħar. 420 00:19:47,330 --> 00:19:50,380 Hawnhekk huwa sigma one-- hekk il- tieni verżjoni ta 'din il-kodiċi. 421 00:19:50,380 --> 00:19:55,290 Kollox top up huwa identiku hekk l-istess storja tapplika qabel. 422 00:19:55,290 --> 00:19:59,220 Imma issa ejja nħarsu lejn il- implimentazzjoni ta 'sigma li 423 00:19:59,220 --> 00:20:05,040 Stajt fadal biss dawn lines-- erba 'linji ta' kodiċi, verament, 424 00:20:05,040 --> 00:20:06,980 flimkien ma 'xi braces kaboċċi u l-ispazju abjad. 425 00:20:06,980 --> 00:20:07,930 >> Imma dak am I tagħmel? 426 00:20:07,930 --> 00:20:11,050 Jekk m hija inqas minn jew ugwali għal żero, I-ħtieġa li tip ta 'jimmaniġġjaw 427 00:20:11,050 --> 00:20:12,490 F'dak il-każ super sempliċi. 428 00:20:12,490 --> 00:20:15,450 U jekk inti idejn lili żero jew xejn negattiva li huwa biss stramb, 429 00:20:15,450 --> 00:20:17,909 Jien biss ser arbitrarjament imma dejjem jirritorna żero. 430 00:20:17,909 --> 00:20:20,200 Ma rridx dan ħaġa li jsibu rwieħhom xi infinita stramb 431 00:20:20,200 --> 00:20:21,810 loop minħabba valur negattiv. 432 00:20:21,810 --> 00:20:25,070 Hekk jien biss qal, jekk inti tagħti me żero jew inqas, jien jirritornaw żero. 433 00:20:25,070 --> 00:20:28,220 >> Imma dak li tajba għaliex dan huwa dik il-paġna waħda tal-ktieb tat-telefon 434 00:20:28,220 --> 00:20:28,790 li ħalla. 435 00:20:28,790 --> 00:20:32,660 Jien gdim off problema speċifika ħafna u mhux ssejjaħ xi ħaġa recursively. 436 00:20:32,660 --> 00:20:36,580 Iżda fil-linja 31, dak do I jidhru li tkun qiegħda tagħmel? 437 00:20:36,580 --> 00:20:39,780 Il-parentesi huma biss iż-żamma affarijiet, wieħed jittama, ftit aktar ċara. 438 00:20:39,780 --> 00:20:42,110 Imma kollha li qed nagħmel huwa jien jirritornaw m-- x'ikun 439 00:20:42,110 --> 00:20:45,790 inti naħa me-- flimkien mal- valur tal sorry m--, 440 00:20:45,790 --> 00:20:49,052 flimkien mal-valur tal sigma tal m minus 1. 441 00:20:49,052 --> 00:20:50,010 Allura dak li jfisser dan? 442 00:20:50,010 --> 00:20:53,965 Jekk inti tagħti me-numru 3 bħala input, ir-risposta I rridu nġibu finalment 443 00:20:53,965 --> 00:20:57,307 hija ta '6 għaliex 3 u 2 flimkien ma' 1 tagħti me 6. 444 00:20:57,307 --> 00:20:59,390 Imma kif nista jaħsbu dwar kif din il-kodiċi tkun qed taħdem? 445 00:20:59,390 --> 00:21:03,070 L-ewwel darba I call sigma u I jgħaddu fil-valur 3, 446 00:21:03,070 --> 00:21:07,960 dan huwa simili qal fuq biċċa tal-karta, hawn l-valur 3 447 00:21:07,960 --> 00:21:09,920 u stajt ġiet mgħoddija dan bħala sigma. 448 00:21:09,920 --> 00:21:13,090 3 hija ovvjament mhux inqas minn 0 hekk il-kundizzjoni IF ma japplikax. 449 00:21:13,090 --> 00:21:14,020 Il ieħor ma. 450 00:21:14,020 --> 00:21:14,990 Mela xi do I do? 451 00:21:14,990 --> 00:21:19,902 I jridu jirritornaw m, li huwa 3, flimkien ma sigma ta m minus 1. 452 00:21:19,902 --> 00:21:21,110 So let me jżommu rekord ta 'dan. 453 00:21:21,110 --> 00:21:22,710 Jien ser tpoġġi din biċċa karta isfel. 454 00:21:22,710 --> 00:21:24,668 U liema valur, li tkun ċara, am I se jgħaddu 455 00:21:24,668 --> 00:21:26,540 fis sigma f'dan il-punt fl-istorja? 456 00:21:26,540 --> 00:21:28,080 Liema numru? 457 00:21:28,080 --> 00:21:28,610 2, id-dritt? 458 00:21:28,610 --> 00:21:29,670 3 minus 1 hija ta '2. 459 00:21:29,670 --> 00:21:32,000 So I biss bżonn ftit Ruttam ta 'karti hawn. 460 00:21:32,000 --> 00:21:33,931 Allura issa sigma huwa jkollna msejjaħ mill-ġdid. 461 00:21:33,931 --> 00:21:35,930 U stajt deliberatament tqiegħed din stabbiliti għaliex dan huwa 462 00:21:35,930 --> 00:21:38,070 tip simili espressjonijiet fit dik il-verżjoni tal-istorja 463 00:21:38,070 --> 00:21:40,720 għaliex issa jien iffukat fuq sinjal ta 'm minus 1. 464 00:21:40,720 --> 00:21:42,660 Allura m kien 3, m minus 1 hija ta '2. 465 00:21:42,660 --> 00:21:45,110 Allura hawnhekk huwa 2 li stajt ġiet mgħoddija. 466 00:21:45,110 --> 00:21:48,510 2 hija ovvjament mhux inqas minn 0 hekk il-każ ma japplikax. 467 00:21:48,510 --> 00:21:53,445 Inkella I ritorn m, li huwa dan ħaġa, flimkien ma sigma ta 'dak il-valur? 468 00:21:53,445 --> 00:21:56,160 469 00:21:56,160 --> 00:21:59,650 Mela jekk sigma tal 1-- minħabba m hija dritt issa 2 hekk 2 minus 1 huwa 1. 470 00:21:59,650 --> 00:22:01,950 Allura issa I jkollhom biss il-valur 1. 471 00:22:01,950 --> 00:22:04,810 Jien tgħaddi biss in-numru 1 għall-sigma-- funzjoni 472 00:22:04,810 --> 00:22:09,120 jew myself here-- hekk 1 hija ovvjament mhux inqas minn żero, xorta ma japplikax. 473 00:22:09,120 --> 00:22:12,970 >> Ritorn Else 1 plus sigma ta 'dak? 474 00:22:12,970 --> 00:22:13,470 0. 475 00:22:13,470 --> 00:22:14,678 So let me biss ftakar li. 476 00:22:14,678 --> 00:22:15,920 I ser terġa 'lura li aktar tard. 477 00:22:15,920 --> 00:22:18,060 Issa jien ser jimxi 'l quddiem u LOGHOME l-għadd 0 minħabba li l 478 00:22:18,060 --> 00:22:19,470 argument tiegħi jew parametru. 479 00:22:19,470 --> 00:22:22,400 Jien għadda n-numru 0 u finalment dan il-proċess 480 00:22:22,400 --> 00:22:25,760 ta 'ftit tirrepeti myself ad nauseum ma jieqfu għaliex dak 481 00:22:25,760 --> 00:22:28,820 do I immedjatament tagħmel darba nara dan 0? 482 00:22:28,820 --> 00:22:29,790 I-ritorn żero. 483 00:22:29,790 --> 00:22:31,790 Allura issa inti għandek kontrina l-istorja. 484 00:22:31,790 --> 00:22:34,430 >> Jekk I issa jmorru lura fil-ħin, dak li kien il-ħaġa aktar riċenti 485 00:22:34,430 --> 00:22:36,670 Jien għamilt jekk inti kienu litteralment rewinding video? 486 00:22:36,670 --> 00:22:41,630 Jien ser jittellgħu l-aktar reċenti 1 u li tagħti me 1 plus 0 hija l-1. 487 00:22:41,630 --> 00:22:44,100 Jekk I iżommu rewinding l istorja, li għaddej biex jagħti me 488 00:22:44,100 --> 00:22:46,880 2 flimkien ma 'dan il-valur running, li hija l-1. 489 00:22:46,880 --> 00:22:47,789 Allura li għamilhom 3. 490 00:22:47,789 --> 00:22:49,330 U allura jien ser iżommu rewinding. 491 00:22:49,330 --> 00:22:54,220 Meta I-ewwel darba l-għadd 3-- hekk 3 miżjuda bi 3 tagħti me 6. 492 00:22:54,220 --> 00:22:57,272 >> U issa, jekk inti ħadthom rewound l-video sa dan il-punt, 493 00:22:57,272 --> 00:22:58,980 dan kien il-ħafna ewwel domanda staqsejt. 494 00:22:58,980 --> 00:23:01,450 Meta għadda 3, dak li huwa sigma tat-3? 495 00:23:01,450 --> 00:23:04,204 Huwa tabilħaqq 6, is-somma ta ' dawn il-biċċiet kollha ta 'karti. 496 00:23:04,204 --> 00:23:07,120 Hekk jekk li tieħu ftit filwaqt li wrap moħħok madwar, li l-multa. 497 00:23:07,120 --> 00:23:10,700 Iżda jikkunsidraw kien little-- it kien intenzjonat ħafna li I f'munzelli 498 00:23:10,700 --> 00:23:12,990 dawn in-numri fuq quċċata ta 'xulxin. 499 00:23:12,990 --> 00:23:17,440 Huwa tip ta 'prodotti simili li jkollhom memory-- rekord fil-ħin, 500 00:23:17,440 --> 00:23:19,940 bħal scrubber fil-video, li I tista 'tabilħaqq kontrina fil. 501 00:23:19,940 --> 00:23:24,350 U aħna qed tmur biex terga 'lura għal li metafora fi ftit ftit. 502 00:23:24,350 --> 00:23:28,240 >> Iżda l-ewwel, jirriżulta li hemm ħafna geeks u nies umoristiċi, 503 00:23:28,240 --> 00:23:29,614 I raden, fuq Google. 504 00:23:29,614 --> 00:23:31,530 Would xi ħadd li ħafna tajba fil Googling mind 505 00:23:31,530 --> 00:23:34,270 ġejjin għal ftit mument u għinni tfittex xi ħaġa? 506 00:23:34,270 --> 00:23:35,650 Ħafna, ta 'ċavetta baxx ħafna. 507 00:23:35,650 --> 00:23:37,870 Xi ħadd li qatt toħroġ qabel, forsi. 508 00:23:37,870 --> 00:23:38,370 KOLLOX SEW. 509 00:23:38,370 --> 00:23:39,030 Yeah? 510 00:23:39,030 --> 00:23:39,530 Come fuq. 511 00:23:39,530 --> 00:23:41,410 Come fuq l isfel. 512 00:23:41,410 --> 00:23:42,183 X'hemm isem tiegħek? 513 00:23:42,183 --> 00:23:42,870 >> SAM: Sam. 514 00:23:42,870 --> 00:23:44,290 >> DAVID J. Malan: Sam, jaqgħu fuq l isfel. 515 00:23:44,290 --> 00:23:45,320 Dan huwa Istess. 516 00:23:45,320 --> 00:23:46,280 Għandi pjaċir. 517 00:23:46,280 --> 00:23:46,780 Ħej. 518 00:23:46,780 --> 00:23:47,580 Come fuq matul. 519 00:23:47,580 --> 00:23:51,290 So I kollha bżonn li inti tagħmel, jekk inti tista ', Sam, hawn Google. 520 00:23:51,290 --> 00:23:53,240 Inti tista 'tfittex għall-recursion tul? 521 00:23:53,240 --> 00:23:55,770 522 00:23:55,770 --> 00:23:56,270 Ma jħassru. 523 00:23:56,270 --> 00:23:59,940 524 00:23:59,940 --> 00:24:00,970 >> U issa let's-- yeah. 525 00:24:00,970 --> 00:24:03,380 OK Ikklikkja dik. 526 00:24:03,380 --> 00:24:04,315 Aħjar ikklikkja dan. 527 00:24:04,315 --> 00:24:07,020 528 00:24:07,020 --> 00:24:08,020 Ahh, ġġibu. 529 00:24:08,020 --> 00:24:08,520 Nru? 530 00:24:08,520 --> 00:24:09,050 KOLLOX SEW. 531 00:24:09,050 --> 00:24:10,430 Mela ejja do a oħrajn koppja. 532 00:24:10,430 --> 00:24:12,830 Mhux tant relatati akkademikament hawn, iżda jkunu inti 533 00:24:12,830 --> 00:24:14,520 qatt mfittxija Google għall anagram? 534 00:24:14,520 --> 00:24:15,280 >> SAM: Le 535 00:24:15,280 --> 00:24:15,520 >> DAVID J. Malan: OK. 536 00:24:15,520 --> 00:24:17,186 Tiftix għal anagram minflok recursion. 537 00:24:17,186 --> 00:24:22,540 538 00:24:22,540 --> 00:24:23,790 Kif dwar askew. 539 00:24:23,790 --> 00:24:25,515 Inti qatt mfittxija għall askew? 540 00:24:25,515 --> 00:24:29,260 541 00:24:29,260 --> 00:24:32,692 Issa, dan wieħed huwa ftit diffiċli biex tara iżda nisperaw everything's-- OK. 542 00:24:32,692 --> 00:24:34,150 Huwa biss int u jien jgawdu dan. 543 00:24:34,150 --> 00:24:34,690 KOLLOX SEW. 544 00:24:34,690 --> 00:24:38,950 >> Allura finalment, dan one's-- huwa askew ftit. 545 00:24:38,950 --> 00:24:40,810 Issa do a roll barmil. 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 Kull dritt. 549 00:24:45,910 --> 00:24:47,110 Big nirringrazzjak għall Sam. 550 00:24:47,110 --> 00:24:49,416 Hawnhekk inti tmur. 551 00:24:49,416 --> 00:24:50,400 Grazzi. 552 00:24:50,400 --> 00:24:52,807 >> Allura x'inhu għaddej fl- ta 'dawn l-eżempji iblah? 553 00:24:52,807 --> 00:24:55,640 Allura verament, taħt il-barnuża ta Miljuni Google ta 'linji ta' kodiċi 554 00:24:55,640 --> 00:24:58,860 apparentement huwa iblah ftit IF kondizzjonijiet li huma essenzjalment 555 00:24:58,860 --> 00:25:01,160 verifika jekk l-utent ikollu ittajpjat fil din il-frażi, 556 00:25:01,160 --> 00:25:03,760 tagħmel xi ħaġa li probabbilment ħa ammont nontrivial ta 'żmien 557 00:25:03,760 --> 00:25:06,080 biex jimplimentaw biss biex tkun divertenti b'dan il-mod. 558 00:25:06,080 --> 00:25:08,430 Imma li kollox tagħli u ddur ma 'hood. 559 00:25:08,430 --> 00:25:11,570 Imma, naturalment, recursion huwa aktar ta 'l-geekier 560 00:25:11,570 --> 00:25:13,880 Eżempju fost dawk tricks speċjali. 561 00:25:13,880 --> 00:25:16,880 U żgur hemm oħrajn hemmhekk kif ukoll li aħna forsi lanqas biss 562 00:25:16,880 --> 00:25:18,230 skoperti għadha biss. 563 00:25:18,230 --> 00:25:22,830 >> Allura tagħti ħarsa, jew jikkunsidra issa l-programm li ġej, 564 00:25:22,830 --> 00:25:24,830 u ċertament grab xi minn dawn fuq tiegħek mod out. 565 00:25:24,830 --> 00:25:28,820 Jien ser jimxi 'l quddiem u jiftħu programm li s 566 00:25:28,820 --> 00:25:30,920 ser jippruvaw li tpartit żewġ valuri. 567 00:25:30,920 --> 00:25:33,210 Iżda qabel immorru hemm, ejja tagħmel dan. 568 00:25:33,210 --> 00:25:38,500 Nistgħu tikseb wieħed aktar voluntier, I think? 569 00:25:38,500 --> 00:25:40,480 Tixtieq li voluntier? 570 00:25:40,480 --> 00:25:40,980 Nru? 571 00:25:40,980 --> 00:25:41,890 Come fuq up. 572 00:25:41,890 --> 00:25:42,390 Come fuq up. 573 00:25:42,390 --> 00:25:42,890 Kull dritt. 574 00:25:42,890 --> 00:25:44,136 Allura isem tiegħek huwa dak? 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 Come on up, Lauren. 578 00:25:46,890 --> 00:25:50,140 Allura Lauren qed kkontestat hawnhekk kif ġej. 579 00:25:50,140 --> 00:25:52,310 Għandi pjaċir. 580 00:25:52,310 --> 00:25:55,730 Allura Lauren hawn kellha għad ta 'żewġ tazzi vojta tagħha. 581 00:25:55,730 --> 00:25:57,570 U aħna għandna xi oranġjo meraq u xi ħalib 582 00:25:57,570 --> 00:26:00,301 u aħna qed tmur biex tmur quddiem u tagħmel dan li ġej. 583 00:26:00,301 --> 00:26:01,550 Aħna biss ser timla din. 584 00:26:01,550 --> 00:26:07,840 Ftit uqija ta 'ħalib minn hawn u ejja timla meraq tal-larinġ ftit hawn. 585 00:26:07,840 --> 00:26:11,475 >> U quddiem kollha dawn membri tal-udjenza, 586 00:26:11,475 --> 00:26:13,550 tpartit iż-żewġ valuri ta 'dawn tazzi. 587 00:26:13,550 --> 00:26:16,970 Poġġi l-meraq tal-larinġ fil-tazza ħalib u l-ħalib fit-tazza meraq tal-larinġ. 588 00:26:16,970 --> 00:26:22,380 589 00:26:22,380 --> 00:26:26,150 Kif inti tagħmel dan jekk inti kienu fil dar u kellhom aċċess għal provvisti oħra? 590 00:26:26,150 --> 00:26:27,400 Lauren: Poġġi dan fil-tazza ieħor. 591 00:26:27,400 --> 00:26:28,191 DAVID J. Malan: OK. 592 00:26:28,191 --> 00:26:31,940 Mela ejja jkollhom temporanju varjabbli, jekk aħna se. 593 00:26:31,940 --> 00:26:35,871 U jimxi 'l quddiem issa u jimplimentaw l-istess proċedura iskambji. 594 00:26:35,871 --> 00:26:36,370 Allura, tajba. 595 00:26:36,370 --> 00:26:41,490 Imxejna tpoġġi ĠU fil-temporanju varjabbli, ħalib fil-ĠU varjabbli, 596 00:26:41,490 --> 00:26:44,481 u issa l-varjabbli temporanju fil-varjabbli ħalib. 597 00:26:44,481 --> 00:26:44,980 KOLLOX SEW. 598 00:26:44,980 --> 00:26:48,740 Hekk ukoll ħafna sar s'issa. 599 00:26:48,740 --> 00:26:50,990 Għalhekk jirriżulta out-- tiddeċiedi li maħsub għal ftit mument. 600 00:26:50,990 --> 00:26:54,479 Hawnhekk, għal ftit geek it up a bit, dan ikun l-kodiċi C li jikkorrispondi 601 00:26:54,479 --> 00:26:55,520 li aħna biss implimentati. 602 00:26:55,520 --> 00:26:58,650 Kellna żewġ inputs, au b, it-tnejn li aħna ser ngħidu biss għall-sempliċità huma 603 00:26:58,650 --> 00:26:59,260 s int. 604 00:26:59,260 --> 00:27:02,780 U avviż hawn, jekk irrid li tpartit il-valuri ta 'żewġ varjabbli, A u B, 605 00:27:02,780 --> 00:27:06,890 aħna tabilħaqq bżonn middleman, a varjabbli temporanju, tazza temporanju, 606 00:27:06,890 --> 00:27:10,830 li fih l-pour wieħed mill-valuri hekk li għandna placeholder għal dan. 607 00:27:10,830 --> 00:27:13,480 Imma mbagħad il-kodiċi huwa eżattament kif Lauren hawn implimentati. 608 00:27:13,480 --> 00:27:15,500 >> Issa, biss li tikseb ftit crazier, jirriżulta 609 00:27:15,500 --> 00:27:20,930 li inti tista 'tagħmel dan mingħajr varjabbli temporanju. 610 00:27:20,930 --> 00:27:24,870 Biex tagħmel dan b'mod xieraq, għalkemm, aħna qed tmur li jkollhom iqarrqu ma 'xi kimika. 611 00:27:24,870 --> 00:27:26,380 Għandna xi tazzi żejda hawn. 612 00:27:26,380 --> 00:27:29,600 Allura l-eqreb ħaġa li jistenna bħall-ħalib u l-ilma perhaps-- 613 00:27:29,600 --> 00:27:34,090 jew ħalib u OJ-- hija li għandna xi ilma, hekk aħna ser jimlew dan wieħed up 614 00:27:34,090 --> 00:27:36,486 bi ftit uqija ta 'ilma ċar. 615 00:27:36,486 --> 00:27:38,332 Li probabbilment wisq. 616 00:27:38,332 --> 00:27:38,832 Yeah. 617 00:27:38,832 --> 00:27:39,934 Li definittivament wisq. 618 00:27:39,934 --> 00:27:40,600 Żomm fuq waħda taqs. 619 00:27:40,600 --> 00:27:43,520 620 00:27:43,520 --> 00:27:48,420 >> U issa għandna żejt, li, kif niftakar minn nofs klassi kimika iskola, 621 00:27:48,420 --> 00:27:49,990 nisperaw li ma jitħallatx mas-ilma. 622 00:27:49,990 --> 00:27:53,650 Iżda huwa tip ta 'tip ta' Dehra ħalib u ĠU. 623 00:27:53,650 --> 00:27:55,760 Allura issa, mingħajr l-użu varjabbli temporanju, 624 00:27:55,760 --> 00:27:59,260 inti tista 'tpartit dawn iż-żewġ valuri? 625 00:27:59,260 --> 00:28:03,884 Allura żjut tmur fil-tazza ilma, ilma tmur fil-tazza żejt. 626 00:28:03,884 --> 00:28:04,800 Lauren: L-ebda tazzi oħra? 627 00:28:04,800 --> 00:28:05,940 DAVID J. Malan: L-ebda tazzi oħra. 628 00:28:05,940 --> 00:28:07,860 U stajt ma attwalment ttestjati dan qabel din is-sena 629 00:28:07,860 --> 00:28:10,110 so I do not know jekk dan se attwalment jaħdmu kimikament. 630 00:28:10,110 --> 00:28:16,130 631 00:28:16,130 --> 00:28:18,650 Li ma kienx suppost li jiġri. 632 00:28:18,650 --> 00:28:19,761 Huwa jaħdem? 633 00:28:19,761 --> 00:28:20,260 Kull dritt. 634 00:28:20,260 --> 00:28:20,990 So separazzjoni? 635 00:28:20,990 --> 00:28:21,490 Tajba. 636 00:28:21,490 --> 00:28:24,714 Issa aħna ltqajna biex jiksbu l- ilma fil-tazza oħra. 637 00:28:24,714 --> 00:28:27,630 Konċentraturi kimika Smarter tista probabbilment jagħmlu dan aħjar minn lili. 638 00:28:27,630 --> 00:28:28,510 >> Lauren: L-ilma huwa fuq il-qiegħ. 639 00:28:28,510 --> 00:28:31,910 >> DAVID J. Malan: Il-water-- li kienet x'hemm ewlenin l-aħħar darba għamilna dan. 640 00:28:31,910 --> 00:28:33,950 Inti għandek tagħmel dan fl-ordni dritt. 641 00:28:33,950 --> 00:28:34,450 Yeah. 642 00:28:34,450 --> 00:28:35,270 OK That's--. 643 00:28:35,270 --> 00:28:37,290 Allura issa għandna żewġ tazzi ta 'żejt. 644 00:28:37,290 --> 00:28:37,790 KOLLOX SEW. 645 00:28:37,790 --> 00:28:38,510 Li OK. 646 00:28:38,510 --> 00:28:40,110 Imma kimikament jekk dan maħduma milli I-- 647 00:28:40,110 --> 00:28:41,200 >> Lauren: Dan huwa l-ilma. 648 00:28:41,200 --> 00:28:41,930 >> DAVID J. Malan: Li l-aktar ilma. 649 00:28:41,930 --> 00:28:42,430 Kull dritt. 650 00:28:42,430 --> 00:28:44,210 Imma dak li għadu l-istess tazza bħal qabel. 651 00:28:44,210 --> 00:28:47,570 Allura pour it-- jippruvaw dan hemmhekk. 652 00:28:47,570 --> 00:28:49,300 KOLLOX SEW. 653 00:28:49,300 --> 00:28:51,010 Dan huwa użu tajjeb ta 'żmien tal-klassi llum. 654 00:28:51,010 --> 00:28:51,510 KOLLOX SEW. 655 00:28:51,510 --> 00:28:53,890 Allura issa we-- sbieħ. 656 00:28:53,890 --> 00:28:55,460 Tip ta '. 657 00:28:55,460 --> 00:28:55,960 Kull dritt. 658 00:28:55,960 --> 00:28:56,690 Hekk tajjeb ħafna. 659 00:28:56,690 --> 00:29:00,006 Grazzi għall Lauren. 660 00:29:00,006 --> 00:29:01,950 Isir ħafna tajjeb. 661 00:29:01,950 --> 00:29:04,570 >> Hekk biss blow imħuħ tiegħek, u din hija forsi xi ħaġa 662 00:29:04,570 --> 00:29:08,660 jilagħbu ma jekk inti tixtieq fil CS50 ID, inti tista ', fil-fatt, tpartit żewġ varjabbli 663 00:29:08,660 --> 00:29:11,470 mingħajr l-użu ta 'numru sħiħ temporanju. 664 00:29:11,470 --> 00:29:13,060 U dan huwa l-kodiċi C korrispondenti. 665 00:29:13,060 --> 00:29:16,110 U jekk inti recall mill-aħħar L-Erbgħa, aħna introdotti, jekk fil-qosor, 666 00:29:16,110 --> 00:29:19,720 xi operaturi ġodda fis C. U ma xi ħadd jiftakar dak il-karrotta ftit 667 00:29:19,720 --> 00:29:23,660 simbolu hija, li trijangolari ftit simbolu mill-keyboard jirrappreżenta? 668 00:29:23,660 --> 00:29:26,003 Liema bitwise operatur? 669 00:29:26,003 --> 00:29:26,770 >> UDJENZA: Exor. 670 00:29:26,770 --> 00:29:27,645 >> DAVID J. Malan: Exor. 671 00:29:27,645 --> 00:29:28,560 Esklussiva Or. 672 00:29:28,560 --> 00:29:32,920 Mela jekk inti tixtieq, biss għall-gost fil dar, li tagħti u b 'żewġ arbitrarja 673 00:29:32,920 --> 00:29:36,072 Valuri bħal kull eight-- u I se jagħżlu valur ta 'tmien bit. 674 00:29:36,072 --> 00:29:38,530 Jekk inti tagħmel dan ma '32 bit, inti ser malajr ħafna niddejjaq. 675 00:29:38,530 --> 00:29:42,150 Iżda biss jagħtu l tmien bits valur li l-x'ikun, wieħed jew tnejn, 676 00:29:42,150 --> 00:29:43,790 u jagħtu b valur simili. 677 00:29:43,790 --> 00:29:46,810 U mbagħad tuża d-definizzjoni tal XOR minn l-Erbgħa li għadda, 678 00:29:46,810 --> 00:29:52,560 tapplika din ftit ftit, kull wieħed dawk it-tmien bits f'kull wieħed mill au b, 679 00:29:52,560 --> 00:29:54,980 u mbagħad jagħmluh eżattament per dan il-kodiċi. 680 00:29:54,980 --> 00:29:58,170 U m'humiex korretti dak tara hawn fuq l-iskrin. 681 00:29:58,170 --> 00:30:02,100 Hija tabilħaqq jeħodna tliet operazzjonijiet XOR 682 00:30:02,100 --> 00:30:05,910 u b'xi mod magically au b ser jiskambjaw pożizzjonijiet 683 00:30:05,910 --> 00:30:08,010 mingħajr ma jitilfu ebda informazzjoni. 684 00:30:08,010 --> 00:30:11,580 >> Allura l-żejt u l-ilma trick huwa l- eqreb Inkarnazzjoni dinja reali 685 00:30:11,580 --> 00:30:12,980 I jista 'jaħseb biex jimitaw dak. 686 00:30:12,980 --> 00:30:15,950 Iżda huwa żgur aktar faċli li użu ta 'varjabbli temporanju, 687 00:30:15,950 --> 00:30:16,920 bħal f'dan il-każ hawnhekk. 688 00:30:16,920 --> 00:30:21,190 U din ukoll opportunità jgħidu, wisq, dan it-tip ta 'ottimizzazzjoni mikro, 689 00:30:21,190 --> 00:30:23,590 bħala xjenzat kompjuter ngħid, filwaqt tip ta 'gost 690 00:30:23,590 --> 00:30:27,060 li brag dwar kif għamilt dan mingħajr bħal iskambji ma 'varjabbli żejda, 691 00:30:27,060 --> 00:30:28,640 huwa mhux kollha li konvinċenti. 692 00:30:28,640 --> 00:30:31,619 Minħabba li jiffranka 32 bits, kif fil-każ ta 'int attwali, 693 00:30:31,619 --> 00:30:33,410 mhux kollha li konvinċenti fuq sistema fejn 694 00:30:33,410 --> 00:30:36,722 inti tista 'tuża għexieren ta' megabytes jew saħansitra aktar memorja bħal dawn il-jiem. 695 00:30:36,722 --> 00:30:38,680 U fil-fatt, meta nikbru għal sett problema aktar tard 696 00:30:38,680 --> 00:30:41,010 u inti jimplimentaw jespliċitaw kontrollur u tkun taf 697 00:30:41,010 --> 00:30:43,550 jiġu kkontestati li jagħmlu dan mal dan RAM inqas u inqas 698 00:30:43,550 --> 00:30:46,820 żmien possibbli fuq il- computer-- inti xorta 699 00:30:46,820 --> 00:30:50,160 jkollhom ġimgħa biex jimplimentaw it-- inti ser have-- inti ser tkun 700 00:30:50,160 --> 00:30:51,799 isfida li jimminimizzaw dawn ir-riżorsi. 701 00:30:51,799 --> 00:30:53,840 U li tassew l-uniku okkażjoni dan is-semestru 702 00:30:53,840 --> 00:30:57,940 fejn inti ser ikunu mħeġġa biex tqaxxar off anki l-prestazzjoni ifjen 703 00:30:57,940 --> 00:30:59,340 ispejjeż mod ieħor. 704 00:30:59,340 --> 00:31:02,200 >> Allura what-- kif nistgħu tara dan fil-kodiċi attwali? 705 00:31:02,200 --> 00:31:04,530 Let me imorru quddiem issa u jiftħu eżempju 706 00:31:04,530 --> 00:31:07,700 li deliberatament tissejjaħ Nru Swap minħabba li ma 707 00:31:07,700 --> 00:31:10,670 fil-fatt tpartit-varjabbli kif int attwalment tista 'tistenna. 708 00:31:10,670 --> 00:31:12,260 Mela ejja tagħti ħarsa. 709 00:31:12,260 --> 00:31:17,050 Hawn programm li m'għandha l-ebda CS50 librerija għaddejjin, I biss standard / O. 710 00:31:17,050 --> 00:31:19,560 Issa għandna prototip għall swap up top li ftit 711 00:31:19,560 --> 00:31:21,540 ifisser huwa ltqajna biex jiġu ddefiniti aktar tard. 712 00:31:21,540 --> 00:31:22,550 U hawnhekk prinċipali. 713 00:31:22,550 --> 00:31:26,000 >> I arbitrarju assenjat xuy, rispettivament, il-wieħed valuri u tnejn 714 00:31:26,000 --> 00:31:28,590 sempliċiment minħabba li qed żgħar u faċli li wieħed jaħseb dwar. 715 00:31:28,590 --> 00:31:32,280 U mbagħad I biss mazz ta printfs fejn I jkollhom kontroll sanità. x hija l-1 716 00:31:32,280 --> 00:31:35,110 u y hija 2 huwa preżumibbilment x'inhuma dawn printfs se ngħid. 717 00:31:35,110 --> 00:31:36,530 Allura l-ebda magic s'issa. 718 00:31:36,530 --> 00:31:40,100 >> Imbagħad jien ser titlob bil jistampa def, jagħmlu skambju dot dot dot. 719 00:31:40,100 --> 00:31:43,730 Jien ser sejħa-tpartit funzjoni, li jgħaddi fil x uy. 720 00:31:43,730 --> 00:31:47,350 U ejja nassumu għal issa li tpartit huwa implimentat eżattament 721 00:31:47,350 --> 00:31:49,930 kif kien mument ilu ma 'varjabbli temporanju. 722 00:31:49,930 --> 00:31:52,670 U so I jallegaw boldly, skambjati. 723 00:31:52,670 --> 00:31:55,429 x issa huwa issa dan u y hija dik. 724 00:31:55,429 --> 00:31:57,220 Iżda l-fajl, naturalment, huwa msejjaħ Nru Swap. 725 00:31:57,220 --> 00:31:58,678 Mela ejja attwalment tara x'jiġri. 726 00:31:58,678 --> 00:32:04,450 Jekk I jikkompilaw l-ebda swap u mbagħad do ./noswap, x hija l-1, y hija 2. 727 00:32:04,450 --> 00:32:05,770 Iskambji biddlu. 728 00:32:05,770 --> 00:32:07,200 x hija l-1, y hija 2. 729 00:32:07,200 --> 00:32:11,980 Allura fil-fatt jidher li jkun żbaljat anke għalkemm swap-- ejja iscroll down now-- 730 00:32:11,980 --> 00:32:16,542 hija implimentata eżattament kull l- kodiċi I propost mument ilu. 731 00:32:16,542 --> 00:32:19,000 Allura aħna ma tkunx qed tmur biex tikseb fancy mal-għalf XOR għal issa. 732 00:32:19,000 --> 00:32:21,890 Dan, ukoll, għandhom jaħdmu biss bħal ma l-ħalib u l ĠU 733 00:32:21,890 --> 00:32:25,820 iżda ma jidhirx li tkun qed taħdem. 734 00:32:25,820 --> 00:32:27,180 >> Mela ejja tagħmel dan mill-ġdid. 735 00:32:27,180 --> 00:32:29,310 Forsi I biss ma kien għaddej dan id-dritt. 736 00:32:29,310 --> 00:32:32,010 Mela ejja jimxu Nru Swap mill-ġdid. 737 00:32:32,010 --> 00:32:32,900 Forsi I-- ebda. 738 00:32:32,900 --> 00:32:34,400 Allura huwa biss mhux qed jaħdem. 739 00:32:34,400 --> 00:32:36,060 Mela ejja tagħmel verifika sanità ftit. 740 00:32:36,060 --> 00:32:39,690 Let me imorru quddiem hawn fil Swap u biss żid, stenna minuta, 741 00:32:39,690 --> 00:32:43,856 a huwa% i / nu ejja plug-in-valur ta '. 742 00:32:43,856 --> 00:32:45,730 Minħabba I verament irridu biex tara x'inhu għaddej. 743 00:32:45,730 --> 00:32:47,570 U fil-fatt, dan huwa teknika debugging 744 00:32:47,570 --> 00:32:50,028 li tista 'tkun tuża fil ħinijiet tal-uffiċċju jew fid-dar diġà, 745 00:32:50,028 --> 00:32:53,560 simili għall-ewwel nofs ta 'Dan Video Armendáriz fil PSET3 746 00:32:53,560 --> 00:32:56,870 fejn aħna introdotti print def bħala a teknika rakkomandata, mill-inqas 747 00:32:56,870 --> 00:32:58,080 għall-każijiet sempliċi. 748 00:32:58,080 --> 00:33:01,720 Let me imorru quddiem u run jagħmlu ebda tpartit darb'oħra, ./noswap. 749 00:33:01,720 --> 00:33:04,370 750 00:33:04,370 --> 00:33:05,840 >> Interessanti. 751 00:33:05,840 --> 00:33:11,670 Allura avviż dak li jidher li jkun veru. x huwa 1, y hija 2, iżda huwa 2 meta b hija l-1. 752 00:33:11,670 --> 00:33:16,790 Allura dawn iż-żewġ b'xi ltqajna biddlu iżda xuy mhux qed skambjati. 753 00:33:16,790 --> 00:33:21,090 Allura biex tkun ċara, dak li qed jiġri huwa, up here I jkollhom xuy 754 00:33:21,090 --> 00:33:25,380 u dawk huma varjabbli lokali fil- ambitu ta 'prinċipali, jien tgħaddi fil xuy 755 00:33:25,380 --> 00:33:26,170 li tpartit. 756 00:33:26,170 --> 00:33:29,080 Issa, tpartit, bħala funzjoni separata, huwa liberu li call argumenti tagħha 757 00:33:29,080 --> 00:33:30,590 jew parametri xejn tagħha trid. 758 00:33:30,590 --> 00:33:33,280 Foo jew bar jew x jew y jew jew b. 759 00:33:33,280 --> 00:33:36,870 Just biex tagħmilha ċara li dawn qed mhux identiku għal xuy per se, 760 00:33:36,870 --> 00:33:38,020 Stajt qal aub. 761 00:33:38,020 --> 00:33:40,040 Iżda nistgħu jsejħulhom xejn li rridu. 762 00:33:40,040 --> 00:33:43,960 >> U hekk jidher qisu tpartit qed jiġi mgħoddi 763 00:33:43,960 --> 00:33:48,980 x-- AKA a-- u huwa li jiġu mgħoddija y-- AKA b. 764 00:33:48,980 --> 00:33:51,900 B'xi dawn it-tliet linji huma iskambji dawk il-valuri eżattament 765 00:33:51,900 --> 00:33:53,510 kif Lauren għamlet mal-ħalib u ĠU. 766 00:33:53,510 --> 00:33:56,010 Iżda meta aħna jistampa il-valuri, au b 767 00:33:56,010 --> 00:34:01,340 huma tabilħaqq tpartit iżda x u y jkollhom l-ebda bidla lilhom. 768 00:34:01,340 --> 00:34:03,150 Ifakkar li x uy huma up here. 769 00:34:03,150 --> 00:34:05,320 >> Allura nistgħu naraw dan permezz teknika oħra kif ukoll. 770 00:34:05,320 --> 00:34:08,110 U dan ukoll hija teknika inkorporati fl problema stabbiliti tlieta. 771 00:34:08,110 --> 00:34:10,780 Ejja imorru quddiem u tagħmel dan fi CS50 ID jekk inti ma jkunux diġà. 772 00:34:10,780 --> 00:34:13,730 Fuq in-naħa tal-lemin aħna jkollhom din tab Debugger. 773 00:34:13,730 --> 00:34:16,159 U jekk inti tiftaħ dan up, hemm xi informazzjoni arcane 774 00:34:16,159 --> 00:34:17,530 li l-jintefgħu fil int inizjalment. 775 00:34:17,530 --> 00:34:19,310 Imma ejja tease dan apparti reali fast. 776 00:34:19,310 --> 00:34:21,620 >> Allura wieħed, tara varjabbli lokali. 777 00:34:21,620 --> 00:34:26,230 Jirriżulta li jibnu fis IDE CS50, u ħafna ta 'ambjenti ta' programmazzjoni aktar 778 00:34:26,230 --> 00:34:28,060 ġeneralment, huwa debugger. 779 00:34:28,060 --> 00:34:31,340 A għodda li tippermetti li inti tara viżwalment x'inhu għaddej ġewwa tal-programm tiegħek 780 00:34:31,340 --> 00:34:34,380 mingħajr ma jkollhom jirrikorru għal żieda printfs u kompilazzjoni u t-tmexxija 781 00:34:34,380 --> 00:34:37,588 u żżid l printf u l-kumpilazzjoni u tmexxija, li diġà, fil-ħinijiet uffiċċju 782 00:34:37,588 --> 00:34:40,070 jew dar, huwa probabbilment jkollna pretty tedious. 783 00:34:40,070 --> 00:34:43,090 >> Allura hawnhekk, fi ftit mument, aħna qed ser tara fil-ħin reali 784 00:34:43,090 --> 00:34:44,760 il-valuri ta 'varjabbli lokali tagħna. 785 00:34:44,760 --> 00:34:47,880 Aħna wkoll qed tmur biex ikunu jistgħu jistabbilixxu liema huma msejħa breakpoints li 786 00:34:47,880 --> 00:34:52,570 opportunitajiet fil-programm tiegħi biex nieqaf eżekuzzjoni fi linja speċifika tal-kodiċi 787 00:34:52,570 --> 00:34:53,710 li jien kurjużi dwar. 788 00:34:53,710 --> 00:34:54,210 Dritt? 789 00:34:54,210 --> 00:34:55,969 Dawn il-programmi mmexxija fit-tieni qasma. 790 00:34:55,969 --> 00:35:00,450 Huwa tip ta 'sbieħ għalina l-bnedmin kajman li tkun tista 'nieqaf, tieħu mument, ara 791 00:35:00,450 --> 00:35:02,380 x'inhu għaddej madwar linja partikolari ta 'kodiċi 792 00:35:02,380 --> 00:35:05,050 mingħajr il-ħrit programm permezz ta 'dan u l-irfinar kompletament. 793 00:35:05,050 --> 00:35:08,510 Allura breakpoints se jippermettilna naslu biex tinkiser u nieqaf f'ċertu punt. 794 00:35:08,510 --> 00:35:12,990 >> Sejħa munzell huwa mod fancy ta qal liema funzjonijiet huma bħalissa 795 00:35:12,990 --> 00:35:14,140 qed jissejjaħ fil-mument. 796 00:35:14,140 --> 00:35:15,370 Main huwa dejjem jissejjaħ ewwel. 797 00:35:15,370 --> 00:35:17,230 Imma jekk Main sejħiet funzjoni msejħa Swap, 798 00:35:17,230 --> 00:35:20,470 aħna qed attwalment għaddejjin biex tara dan torri ta 'funzjonijiet li jkunu ġew 799 00:35:20,470 --> 00:35:22,400 jissejħu f'ordni kronoloġika reverse. 800 00:35:22,400 --> 00:35:23,310 Mela ejja ara dak. 801 00:35:23,310 --> 00:35:24,327 >> Jien ser zoom out. 802 00:35:24,327 --> 00:35:25,660 Jien se jmorru lura għall-kodiċi tiegħi. 803 00:35:25,660 --> 00:35:27,540 U biss għaliex nixtieq li jkun pedantic hawn, 804 00:35:27,540 --> 00:35:31,100 Jien ser jimxi 'l quddiem u kklikkja biss għall-xellug tal-linja ħamsa. 805 00:35:31,100 --> 00:35:32,830 U li toħloq tikka ħamra. 806 00:35:32,830 --> 00:35:36,200 U avviż fuq il-lemin li l-debugger jaf, ħej, 807 00:35:36,200 --> 00:35:41,020 I biss qal breakpoint fil linja noswap.c ħames, speċifikament 808 00:35:41,020 --> 00:35:42,480 fil din il-linja tal-kodiċi. 809 00:35:42,480 --> 00:35:45,090 Allura l-debugger jaf li I talbu li l-ħin li jmiss 810 00:35:45,090 --> 00:35:48,530 I run tiegħi program pause eżekuzzjoni hemm aktar milli biss 811 00:35:48,530 --> 00:35:50,390 jmexxu l-ħaġa sħiħa super fast. 812 00:35:50,390 --> 00:35:53,889 >> Allura issa jien ser ikklikkja l-debug buttuna fil-quċċata nett tal-IDE 813 00:35:53,889 --> 00:35:55,430 u li għaddej biex jagħmlu dan li ġej. 814 00:35:55,430 --> 00:36:00,680 Huwa ser tiftaħ inizjalment kemmxejn scary tieni terminal tfittex window-- 815 00:36:00,680 --> 00:36:02,679 debugging bogħod mill ospitanti tali u such-- 816 00:36:02,679 --> 00:36:04,970 u aħna ser terga 'lura għal dak dak kollu li jfisser qabel twil. 817 00:36:04,970 --> 00:36:09,020 Imma x'inhu importanti għal issa huwa li dan dot aħmar ntlaqtet, 818 00:36:09,020 --> 00:36:11,735 l debugger ikun deliberatament waqfa qasira execution-- 819 00:36:11,735 --> 00:36:15,560 mhux fuq dik il-linja per se imma fuq l-ewwel linja ta 'kodiċi attwali f'dik il-funzjoni. 820 00:36:15,560 --> 00:36:18,040 U hu għalhekk line seba hija issa enfasizzati bl-isfar. 821 00:36:18,040 --> 00:36:20,550 >> U issa ejja tagħti ħarsa fuq in-naħa tal-lemin. 822 00:36:20,550 --> 00:36:27,300 Jidher qisu, awtomatikament, nicely biżżejjed, x ikollu liema valur? 823 00:36:27,300 --> 00:36:27,860 0. 824 00:36:27,860 --> 00:36:29,750 U y għandu liema valur? 825 00:36:29,750 --> 00:36:30,410 Zero. 826 00:36:30,410 --> 00:36:35,540 U li jkun mistenni fis-sens li x u y-- li line-- isfar għandu 827 00:36:35,540 --> 00:36:36,770 mhux esegwiti s'issa. 828 00:36:36,770 --> 00:36:38,510 Allura x m'għandhomx ikollhom l-valur 1. 829 00:36:38,510 --> 00:36:41,470 Jista 'jkollhom kwalunkwe valur ieħor, valur żibel hekk imsejħa. 830 00:36:41,470 --> 00:36:44,320 U aħna ltqajna xxurtjati f'dak li huwa żero f'dan il-punt, essenzjalment. 831 00:36:44,320 --> 00:36:46,400 >> Allura issa hemm biss ftit buttuni għandna bżonn kura 832 00:36:46,400 --> 00:36:48,100 dwar meta debugging b'dan il-mod. 833 00:36:48,100 --> 00:36:49,970 Avviż hawnhekk, għandna buttuna Play. 834 00:36:49,970 --> 00:36:51,877 U jekk aħna play jew jolqtu jerġa, li jinsab biss 835 00:36:51,877 --> 00:36:53,710 ser tgħaddi minn ġos il-bqija tal-programm 836 00:36:53,710 --> 00:36:55,300 jew sakemm hits breakpoint ieħor. 837 00:36:55,300 --> 00:36:56,910 Imma stajt ma jistabbilixxi l-ebda oħra breakpoints dan huwa biss 838 00:36:56,910 --> 00:36:58,118 ser jgħaddi mill-aħħar. 839 00:36:58,118 --> 00:37:00,280 Dak it-tip ta 'telfiet l iskop ta 'poking madwar. 840 00:37:00,280 --> 00:37:03,290 >> Allura minflok, I care about dawn ikoni fuq il-lemin. 841 00:37:03,290 --> 00:37:05,360 U jekk I imbagħad jerġgħu jsiru fuq minnhom, kif inti għandek wisq, 842 00:37:05,360 --> 00:37:07,450 tkun taf tara ftit tips għodda tips--. 843 00:37:07,450 --> 00:37:09,020 Dan huwa wieħed pass fuq. 844 00:37:09,020 --> 00:37:11,290 Issa dan ma jfissirx skip il-linja tal-kodiċi ta 'wara. 845 00:37:11,290 --> 00:37:14,840 Li sempliċiment ifisser esegwit u jimxu għall-ieħor, jimxu għall-ieħor, 846 00:37:14,840 --> 00:37:15,580 jimxu għall-ieħor. 847 00:37:15,580 --> 00:37:17,610 Fi kliem ieħor, permezz li buttuna, jista I walk 848 00:37:17,610 --> 00:37:20,390 permezz my pass kodiċi wieħed kull darba. 849 00:37:20,390 --> 00:37:21,914 Linja b'linja, litteralment. 850 00:37:21,914 --> 00:37:23,830 Issa, id-dritt ta li, hemm ieħor 851 00:37:23,830 --> 00:37:25,163 li aħna ser tara fi ftit mument. 852 00:37:25,163 --> 00:37:27,820 Dan huwa l-hekk imsejħa Pass Into ikona li l- 853 00:37:27,820 --> 00:37:30,300 ser ippermettuli adsa fil-funzjoni ieħor. 854 00:37:30,300 --> 00:37:31,800 Imma ejja naraw dan fi ftit mument. 855 00:37:31,800 --> 00:37:33,280 Hekk jien ser ikklikkja pass fuq. 856 00:37:33,280 --> 00:37:35,820 U issa avviż, kif I ikklikkja din il-buttuna fil kantuniera, 857 00:37:35,820 --> 00:37:41,260 żżomm għajnejk bejn wieħed u ieħor taħt Lokali Varjabbli u tara x'jiġri lill x. 858 00:37:41,260 --> 00:37:44,115 x issa huwa 1 minħabba l- linja isfar issa esegwita 859 00:37:44,115 --> 00:37:45,840 u konna ċċaqalqu sal-linja 8. 860 00:37:45,840 --> 00:37:49,840 U fi ftit mument y għandhom nisperaw isiru 2. 861 00:37:49,840 --> 00:37:52,330 >> Issa, xejn li interessanti jiġri għal bit. 862 00:37:52,330 --> 00:37:53,390 Dan kollu huwa huwa printf. 863 00:37:53,390 --> 00:37:58,010 U avviż, fl terminal sekondarja tiegħi tieqa, nara l-output ta 'def print. 864 00:37:58,010 --> 00:38:01,080 U issa I għandhom jagħmlu deċiżjoni dwar l-programmer. 865 00:38:01,080 --> 00:38:04,360 I tista 'pass fuq din il-linja ta' kodiċi, eżekuzzjoni iżda mhux 866 00:38:04,360 --> 00:38:06,220 jkollna kurjużi dwar x'hemm ġewwa. 867 00:38:06,220 --> 00:38:11,130 Jew I jistgħu attwalment pass lejn it u jmorru ġewwa ta 'Swap innifsu. 868 00:38:11,130 --> 00:38:12,340 Mela ejja jagħmlu l-aħħar. 869 00:38:12,340 --> 00:38:15,550 >> Let me imorru quddiem u kklikkja mhux Pass Over iżda Pass Into. 870 00:38:15,550 --> 00:38:17,300 Avviż, kollha f'daqqa il-bidliet tieqa 871 00:38:17,300 --> 00:38:19,330 li tenfasizza l-ewwel linja tal-kodiċi fil-Swap. 872 00:38:19,330 --> 00:38:20,710 C'est linja 21. 873 00:38:20,710 --> 00:38:25,220 U issa, liema tip ta 'funky hija li, jekk inti tħares fuq hawn, kif mistenni, 874 00:38:25,220 --> 00:38:29,720 comma b hija l-1 u 2, rispettivament. 875 00:38:29,720 --> 00:38:33,840 Għaliex hija temperatura 32767? 876 00:38:33,840 --> 00:38:36,560 Waqt li jfakkar li temperatura, simili ħafna l-tazza vojta mument ilu, 877 00:38:36,560 --> 00:38:38,980 hija dikjarata hawn fuq il-linja 21. 878 00:38:38,980 --> 00:38:43,390 Għaliex 32,000- I mean, għaliex hija hija biss xi valur stramb? 879 00:38:43,390 --> 00:38:43,890 Yeah? 880 00:38:43,890 --> 00:38:45,190 >> UDJENZA: Mhuwiex initialized. 881 00:38:45,190 --> 00:38:46,940 >> DAVID J. Malan: Huwa ma ġewx initialized. 882 00:38:46,940 --> 00:38:49,370 Allura kompjuter tagħna dejjem memorja fiżika. 883 00:38:49,370 --> 00:38:50,544 Hija dejjem għandha RAM fiżiku. 884 00:38:50,544 --> 00:38:52,710 U dejjem hemm żero ta u wieħed fil hemm, id-dritt? 885 00:38:52,710 --> 00:38:54,626 Għaliex aħna qed tuża tagħna kompjuter il-ġurnata kollha, 886 00:38:54,626 --> 00:38:57,210 inti qed tuża l-IDE CS50 jew l-servers kollha jum twil. 887 00:38:57,210 --> 00:39:01,159 Allura li RAM jew għandha xi żerijiet jew xi s membru jew iktar żerijiet u dawk. 888 00:39:01,159 --> 00:39:02,950 Ma jimpurtax jekk jew Ma inti qed jużawhom. 889 00:39:02,950 --> 00:39:05,270 Inti ma tistax sempliċiment għandek vojt spazji fejn inti tixtieq bits. 890 00:39:05,270 --> 00:39:06,850 Huma qed kemm żerijiet u dawk. 891 00:39:06,850 --> 00:39:09,610 >> Għalhekk jirriżulta li temperatura, minħabba konna ma initialized encore, 892 00:39:09,610 --> 00:39:14,580 għandna dawk 32 bits iżda li ħadthom mhux ġew initialized għal kwalunkwe valuri magħrufa. 893 00:39:14,580 --> 00:39:18,110 Allura kull ma kienu l-aktar użat reċentement for-- dawk 32 bits-- 894 00:39:18,110 --> 00:39:23,000 aħna qed biss tara l-artifacts ta 'xi użu preċedenti ta 'dawk partikolari 32 895 00:39:23,000 --> 00:39:23,500 bits. 896 00:39:23,500 --> 00:39:27,780 Hekk kif I ikklikkja pass fuq għalkemm, Phew, temperatura hija se tikseb l-valur 1. 897 00:39:27,780 --> 00:39:31,600 U jekk jien tagħmel dan mill-ġdid, a huwa se tkun minħabba l-valur 2 898 00:39:31,600 --> 00:39:33,830 u mbagħad b se jingħataw il-valur 1. 899 00:39:33,830 --> 00:39:36,390 >> U hekk x'hemm sbieħ issa fil dan il-punt fl-istorja 900 00:39:36,390 --> 00:39:39,750 huwa li l-debugger hija juru lili, super bil-mod 901 00:39:39,750 --> 00:39:42,640 fil-pass tiegħi stess, liema l-istat ta 'Swap huwa. 902 00:39:42,640 --> 00:39:47,490 Iżda avviż fil-quċċata hawn, avviż li l-munzell sejħa attwalment 903 00:39:47,490 --> 00:39:49,180 għandha żewġ saffi lilha. 904 00:39:49,180 --> 00:39:53,240 Issa l-wieħed li enfasizzati bħala Swap, jekk I ikklikkja fuq Main minflok, 905 00:39:53,240 --> 00:39:57,100 avviż kif il-varjabbli lokali bidla minħabba li l-iżviluppatur jista ħops biss 906 00:39:57,100 --> 00:39:59,740 madwar u jmorru fi kwalunkwe ambitu differenti. 907 00:39:59,740 --> 00:40:04,070 Allura anke jekk aħna qed tagħmel dan kollu xogħol u iskambji korrett u b, 908 00:40:04,070 --> 00:40:09,080 jekk immur quddiem u lura bejn Swap fejn a hija 2 u b hija l-1 u Main, 909 00:40:09,080 --> 00:40:11,851 tkun Main ġie affettwat xejn? 910 00:40:11,851 --> 00:40:12,350 No 911 00:40:12,350 --> 00:40:13,930 Allura x'inhu l-takeaway hawn? 912 00:40:13,930 --> 00:40:18,200 Ukoll, jirriżulta li kull ħin inti sejħa funzjoni bħal Swap, 913 00:40:18,200 --> 00:40:21,600 u inti tgħaddi l-argumenti it, dak int tgħaddi għall-funzjoni Swap 914 00:40:21,600 --> 00:40:24,730 f'dan il-każ hija kopja ta 'dawn l-argumenti. 915 00:40:24,730 --> 00:40:28,620 Mela jekk x uy huma kull rispettivament 32 bits, dak Swap huwa jkollna 916 00:40:28,620 --> 00:40:30,760 huwa lokali żewġ ġdida varjabbli, jew argumenti, 917 00:40:30,760 --> 00:40:34,380 jissejjaħ u b-- iżda dawk huma arbitrarji names-- iżda l-mudell ta 'żerijiet 918 00:40:34,380 --> 00:40:39,520 u dawk ġewwa ta aub huma ħejjew biex tkun identika għall xuy 919 00:40:39,520 --> 00:40:42,610 iżda mhumiex l- istess ħaġa bħat xuy. 920 00:40:42,610 --> 00:40:46,880 >> Huwa bħallikieku Main għandha fuq biċċa tagħha ta karta in-numru 1 u 2 għall xuy, 921 00:40:46,880 --> 00:40:49,260 u mbagħad meta idejn li biċċa karta li tpartit, 922 00:40:49,260 --> 00:40:51,970 Swap malajr ħafna gets pinna tiegħu stess, jikteb isfel 923 00:40:51,970 --> 00:40:56,240 1 u 2 fuq folja tal-karta tagħha stess, idejn lura l xy oriġinali Main 924 00:40:56,240 --> 00:40:58,790 u mbagħad ma tagħha stess ħaġa ma aub. 925 00:40:58,790 --> 00:41:01,940 U issa dan huwa super importanti għaliex dan għandu implikazzjonijiet nontrivial 926 00:41:01,940 --> 00:41:06,260 għall-fatt kitba kodiċi korrett għaliex jidher ma nistgħux tpartit 927 00:41:06,260 --> 00:41:07,500 żewġ varjabbli. 928 00:41:07,500 --> 00:41:09,150 >> Ktibtu funzjoni Swap korretta. 929 00:41:09,150 --> 00:41:12,770 Imxejna implimentati bl Lauren bħala funzjoni tpartit korretta fir-realtà, 930 00:41:12,770 --> 00:41:16,700 imma apparentement ebda wieħed li kwistjonijiet jekk inti ma tistax attwalment 931 00:41:16,700 --> 00:41:19,530 tpartit żewġ valuri permanenti. 932 00:41:19,530 --> 00:41:21,970 Allura għandna bżonn mod ieħor li fil-fatt tikseb fuq dan, 933 00:41:21,970 --> 00:41:24,472 u għandna bżonn biex ikunu jistgħu attwalment issolvi din il-problema. 934 00:41:24,472 --> 00:41:27,180 U jirriżulta out-- u aħna ser jiġu lura għall din l-istampa partikolari 935 00:41:27,180 --> 00:41:30,500 qabel long-- dan huwa mod wieħed li inti tista 'tiġbed memorja tal-kompjuter tiegħek. 936 00:41:30,500 --> 00:41:31,460 Huwa biss rettangolu. 937 00:41:31,460 --> 00:41:32,960 Inti tista 'tiġbed xi numru ta 'modi iżda huwa 938 00:41:32,960 --> 00:41:35,740 konvenjenti biex tiġbed bħala rettangolu għar-raġuni li ġejja. 939 00:41:35,740 --> 00:41:40,040 >> Aħna qed tmur biex tibda llum u lil hinn jitkellem dwar l-hekk imsejħa munzell. 940 00:41:40,040 --> 00:41:43,870 U l-munzell huwa biss blokki ta RAM-- blokki ta 'memory-- 941 00:41:43,870 --> 00:41:47,100 li l-funzjonijiet jkollhom aċċess li meta jkunu qed jissejjaħ. 942 00:41:47,100 --> 00:41:49,800 U għalhekk jirriżulta li fl -qiegħ nett ta 'dan munzell 943 00:41:49,800 --> 00:41:53,590 huwa fejn kollha ta 'varjabbli lokali ewlenin tal u org C u V org u dak kollu li Jittieħed 944 00:41:53,590 --> 00:41:56,950 se jmorru awtomatikament. U jekk Main jitlob xi funzjoni oħra bħal Swap, 945 00:41:56,950 --> 00:42:00,330 ukoll, Swap hija se tikseb ieħor saff ta 'memorja up hawn fuq. 946 00:42:00,330 --> 00:42:04,490 >> U hekk biss biex jagħtuk sommarju ta 'malajr stampa ta 'dan, jekk immur fuq here-- 947 00:42:04,490 --> 00:42:09,450 u let me mera dan fuq il- overhead kif well-- dak li verament jien, 948 00:42:09,450 --> 00:42:12,100 jekk aħna kura biss dwar il- qiegħ ta 'din l-istampa għal issa, 949 00:42:12,100 --> 00:42:15,070 hija li meta I run program u Main gets imsejħa, 950 00:42:15,070 --> 00:42:18,330 Main jingħata blokki ta ' RAM fil-kompjuter tiegħi li hija 951 00:42:18,330 --> 00:42:20,060 fil-qiegħ ta 'din l-hekk imsejħa munzell. 952 00:42:20,060 --> 00:42:22,143 U jien ser tiġbed deliberatament bħala kwadru. 953 00:42:22,143 --> 00:42:24,540 Allura huwa simili 32 bits jew erba bytes. 954 00:42:24,540 --> 00:42:28,790 U jekk din il-funzjoni prinċipali għandha varjabbli imsejħa x b'valur ta 1 955 00:42:28,790 --> 00:42:32,626 u għandu varjabbli imsejjaħ y mal-valur ta '2, li l- 956 00:42:32,626 --> 00:42:35,750 bħal li jieħdu din sliver ta 'memorja li Main tkun ingħatat mill-makkinarju tal- 957 00:42:35,750 --> 00:42:38,850 sistema u jaqsmuh, b'tali mod li l-ewwel varjabbli lokali tmur hawn, 958 00:42:38,850 --> 00:42:40,930 it-tieni wieħed imur hawn, u li hu. 959 00:42:40,930 --> 00:42:45,590 >> Meta Main jitlob Swap, Swap gets porzjon tagħha stess ta 'memorja 960 00:42:45,590 --> 00:42:48,280 li aħna ser jiġbed bħal dan mis-sistema operattiva, 961 00:42:48,280 --> 00:42:50,820 u li għaddej biex ikollhom tiegħu varjabbli lokali stess ibbażati 962 00:42:50,820 --> 00:42:53,825 dwar l-implimentazzjoni tagħna aktar kmieni bil varjabbli lokali ta ' 963 00:42:53,825 --> 00:42:58,010 u b li inizjalment jiksbu l-valuri 1 u 2. 964 00:42:58,010 --> 00:43:00,450 Iżda mbagħad, hekk kif il-kodiċi Swap tesegwixxi, 965 00:43:00,450 --> 00:43:03,760 u Lauren attwalment swaps l ĠU u ħalib, dak li qed jiġri? 966 00:43:03,760 --> 00:43:09,030 Ukoll, dan 2 qed isir 1, dan 1 qed issir 2, u, mill-mod, 967 00:43:09,030 --> 00:43:13,360 hemm varjabbli temperatura li l-jiġu użati dak iż-żmien kollu li eventwalment 968 00:43:13,360 --> 00:43:14,470 tmur bogħod. 969 00:43:14,470 --> 00:43:16,720 Iżda dan ma jimpurtax kemm ix-xogħol li tagħmel 970 00:43:16,720 --> 00:43:22,160 f'dan il-linja of-- f'dan l-ispazju memorja, x uy huma kompletament mhux mittiefsa. 971 00:43:22,160 --> 00:43:26,320 >> Allura għandna bżonn xi mod kif tingħata Swap u funzjonijiet bhalu 972 00:43:26,320 --> 00:43:32,640 aċċess sigriet, jekk inti se, biex funzjonijiet like-- memorja bħal xuy. 973 00:43:32,640 --> 00:43:35,110 Mela ejja tagħti ħarsa lejn eżempju li jgħin 974 00:43:35,110 --> 00:43:38,220 naraw eżattament dak kien għaddej dan iż-żmien kollu. 975 00:43:38,220 --> 00:43:40,284 Jien ser jimxi 'l quddiem u jiftħu Qabbel Zero. 976 00:43:40,284 --> 00:43:42,200 U jien ser tagħlaq debugger tagħna, jien ser 977 00:43:42,200 --> 00:43:44,360 li tagħlaq dan scary tfittex messaġġ l-ftit jgħid, stenna minuta, 978 00:43:44,360 --> 00:43:45,800 int fil-debugging nofs. 979 00:43:45,800 --> 00:43:48,383 Jien ser jaħbu dan tab hawn biss li jmorru lura għall-sempliċità. 980 00:43:48,383 --> 00:43:50,160 Għalhekk tinkwetax jekk GDB jinqatel. 981 00:43:50,160 --> 00:43:53,910 Li biss ifisser li l-programm ġew nieqaf, deliberatament f'dan il-każ, 982 00:43:53,910 --> 00:43:54,820 minni. 983 00:43:54,820 --> 00:43:57,700 >> U issa Qabbel Zero ma dan. 984 00:43:57,700 --> 00:44:00,110 Jien bl-użu CS50 librerija fl-I standard / O. 985 00:44:00,110 --> 00:44:04,319 Stajt ltqajna funzjoni ewlenija li l-ewwel jgħid, jgħidu xi ħaġa, u gets string. 986 00:44:04,319 --> 00:44:06,110 Imbagħad jgħid mill-ġdid u gets string ieħor. 987 00:44:06,110 --> 00:44:09,910 U Avviż li dawn iż-żewġ kordi huma msejħa iu t, rispettivament. 988 00:44:09,910 --> 00:44:12,910 U issa dan il-programm, Qabbel Żero, l-iskop tagħha fil-ħajja, 989 00:44:12,910 --> 00:44:15,470 huwa suppost li tell me, ma I tip l-istess ħaġa? 990 00:44:15,470 --> 00:44:16,910 U hekk jien ser lura għal ġimgħa. 991 00:44:16,910 --> 00:44:19,950 Jien jużaw operatur ugwali tiegħi ugwali li hija l-operatur kwalità. 992 00:44:19,950 --> 00:44:22,220 Mhux l-operatur assenjazzjoni, l-operatur ugwaljanza. 993 00:44:22,220 --> 00:44:23,890 Jien biss jqabbel iu t. 994 00:44:23,890 --> 00:44:27,470 >> Mela ejja fil-fatt imorru quddiem u tagħmel dan. 995 00:44:27,470 --> 00:44:32,680 U jien ser jimxi 'l quddiem u jagħmlu Qabbel Zero. 996 00:44:32,680 --> 00:44:35,110 Jien ser tagħmel ./comparezero. 997 00:44:35,110 --> 00:44:37,150 U jien se jmorru quddiem u ngħid xi ħaġa 998 00:44:37,150 --> 00:44:43,450 simili, ejja jagħmlu mom fil lowercase u kif madwar mom fil uppercase. 999 00:44:43,450 --> 00:44:45,034 U ovvjament I tip affarijiet differenti. 1000 00:44:45,034 --> 00:44:45,533 Kull dritt. 1001 00:44:45,533 --> 00:44:46,570 Dak li jkun mistenni. 1002 00:44:46,570 --> 00:44:47,640 >> Ejja run mill-ġdid. 1003 00:44:47,640 --> 00:44:49,740 Iż-żewġ ħinijiet do zghar, zghar. 1004 00:44:49,740 --> 00:44:51,490 Li tidher super identiċi lili. 1005 00:44:51,490 --> 00:44:52,930 Ikteb. 1006 00:44:52,930 --> 00:44:53,430 KOLLOX SEW. 1007 00:44:53,430 --> 00:44:55,804 Forsi huwa biss stramb għaliex mhuwiex Predisposizzjoni grammatika tiegħi. 1008 00:44:55,804 --> 00:44:59,930 Mela ejja do a MOM kapital, kapital MOM, identiċi. 1009 00:44:59,930 --> 00:45:01,490 Affarijiet differenti. 1010 00:45:01,490 --> 00:45:03,907 >> Allura għaliex huwa li? 1011 00:45:03,907 --> 00:45:06,240 Ukoll, dak li attwalment għaddejjin fuq minn taħt il-barnuża hawn? 1012 00:45:06,240 --> 00:45:08,180 Mela ejja jmorru lura fuq hawn għal ftit mument 1013 00:45:08,180 --> 00:45:10,910 u jikkunsidraw liema GetString huwa fil-fatt jagħmlu. 1014 00:45:10,910 --> 00:45:13,385 Meta inti sejħa GetString, li l-funzjoni aħna 1015 00:45:13,385 --> 00:45:16,510 nfusna kiteb u qualche gets sekwenza ta 'karattri mill-utent. 1016 00:45:16,510 --> 00:45:20,280 U ejja nassumu li l-ewwel darba I call GetString, li tagħti me 1017 00:45:20,280 --> 00:45:21,930 blokki ta 'memorja li tidher bħal dan. 1018 00:45:21,930 --> 00:45:26,990 U jekk I ittajpjat fil kollha lowercase m-o-m-- u dak li jmur wara dan? 1019 00:45:26,990 --> 00:45:28,840 Just verifika sanità malajr. 1020 00:45:28,840 --> 00:45:29,780 >> Żero backslash. 1021 00:45:29,780 --> 00:45:30,510 Aħna nafu li. 1022 00:45:30,510 --> 00:45:32,784 U tfakkar li aħna lagħbu madwar bl-isem Zamila tal 1023 00:45:32,784 --> 00:45:34,950 u mazz ta 'ismijiet oħra meta Rob hawn kien qed ifittex 1024 00:45:34,950 --> 00:45:36,280 lejn dak li jiġri ġewwa tal-memorja. 1025 00:45:36,280 --> 00:45:37,780 Allura li l-istorja eżattament l-istess. 1026 00:45:37,780 --> 00:45:40,160 Dan huwa dak GetString huwa jirritorna lili. 1027 00:45:40,160 --> 00:45:44,780 Issa, il-kodiċi tiegħi mument ilu maħżun il-valur ritorn ta GetString 1028 00:45:44,780 --> 00:45:47,510 fil-varjabbli imsejħa s. 1029 00:45:47,510 --> 00:45:51,390 U mbagħad it-tieni darba I sejħitilha, dan maħżuna dan fil-varjabbli imsejjaħ t. 1030 00:45:51,390 --> 00:45:55,070 >> Mela jekk jien jmorru fuq hawn, I bżonn tiġbed dan variable-- lokali 1031 00:45:55,070 --> 00:45:59,610 u jien ġeneralment ser jiġbed string kif just-- aħna ser 1032 00:45:59,610 --> 00:46:02,360 sejħa hija s-- bħala kwadru ftit hawn. 1033 00:46:02,360 --> 00:46:09,760 U issa, somehow-- kif ma mom mur ġewwa ta 'dan il-varjabbli i? 1034 00:46:09,760 --> 00:46:12,010 Well, għandna bżonn immorru lura li ewwel prinċipji hawn. 1035 00:46:12,010 --> 00:46:15,660 X'inhu GetString attwalment jirritornaw? 1036 00:46:15,660 --> 00:46:19,030 >> Għalhekk jirriżulta li M-O-M backslash żero, u kull numru 1037 00:46:19,030 --> 00:46:22,364 ta 'spag oħra fil-memorja bħall Zamila u Rob jew Andy jew xi oħrajn, 1038 00:46:22,364 --> 00:46:24,280 huma ta 'kors fil tagħna RAM kompjuter jew memorja. 1039 00:46:24,280 --> 00:46:27,760 U RAM tiegħek għandu like-- għandek GIG ta 'RAM, żewġ gigs ta' RAM, 1040 00:46:27,760 --> 00:46:30,860 jew biljun jew tnejn biljun bytes, jew forsi saħansitra aktar dawn il-jiem. 1041 00:46:30,860 --> 00:46:34,070 Mela ejja nassumu, għal skopijiet tal-lum, li ma jimpurtax kif aħna numru 1042 00:46:34,070 --> 00:46:36,640 minnhom, iżda nistgħu tagħti numru lil kull ta 'dawk biljun jew tnejn biljun 1043 00:46:36,640 --> 00:46:37,880 jew erba 'biljun bytes. 1044 00:46:37,880 --> 00:46:42,240 >> U ejja biss jgħidu li b'mod arbitrarju dan huwa l-ewwel gidma, it-tieni gidma, 1045 00:46:42,240 --> 00:46:43,380 tielet, ir-raba. 1046 00:46:43,380 --> 00:46:46,570 Jien deliberatament ma jużawx żero għall lum, iżda aħna ser terga 'lura għal dan. 1047 00:46:46,570 --> 00:46:49,570 Allura fi kliem ieħor, jekk dan huwa l- ewwel darba jien jużaw il-programm, 1048 00:46:49,570 --> 00:46:52,715 Jien biss jkollna xortik tajba u l-ewwel gidma huwa fil waħda lokazzjoni imbagħad tnejn 1049 00:46:52,715 --> 00:46:53,590 imbagħad tlieta minn erba '. 1050 00:46:53,590 --> 00:46:57,430 U jekk I tinżamm tpinġija, numru Kaxxa żewġ biljun ikun mod minn hawn. 1051 00:46:57,430 --> 00:47:02,200 >> Allura dak li taħseb, imbagħad, GetString attwalment prospetti? 1052 00:47:02,200 --> 00:47:06,010 Mhuwiex jirritornaw backslash M-O-M żero nnifisha għaliex li b'mod ċar 1053 00:47:06,010 --> 00:47:08,180 mhux se jaqbel fil-kaxxa li stajt mfassla. 1054 00:47:08,180 --> 00:47:11,210 Allura dak li inkella jista GetString attwalment jirritorna kollha dawn il-ġimgħat? 1055 00:47:11,210 --> 00:47:14,410 1056 00:47:14,410 --> 00:47:16,820 It-tweġiba hija fuq il- board hawn x'imkien. 1057 00:47:16,820 --> 00:47:20,390 Inti ma jistgħux jitwaħħlu backslash M-O-M żero, hekk dak li jista 'jagħmel sens minflok? 1058 00:47:20,390 --> 00:47:23,424 Jekk kellek li tkun super għaqlija, it-tqegħid fuq l-hekk imsejħa hat inġinerija, 1059 00:47:23,424 --> 00:47:24,340 dak li jista inti tirritorna? 1060 00:47:24,340 --> 00:47:27,340 X'inhu l-inqas ammont ta 'informazzjoni inti tista 'ritorn li xorta 1061 00:47:27,340 --> 00:47:30,610 let issib M-O-M fil-memorja? 1062 00:47:30,610 --> 00:47:31,270 Yeah? 1063 00:47:31,270 --> 00:47:31,950 >> UDJENZA: One. 1064 00:47:31,950 --> 00:47:32,200 >> DAVID J. Malan: One. 1065 00:47:32,200 --> 00:47:33,021 U għaliex wieħed? 1066 00:47:33,021 --> 00:47:35,520 UDJENZA: Minħabba li se tell inti fejn imorru [inaudible]. 1067 00:47:35,520 --> 00:47:38,391 1068 00:47:38,391 --> 00:47:39,390 DAVID J. Malan: Eżattament. 1069 00:47:39,390 --> 00:47:44,300 I am biss ser jirritorna l-indirizz tas-sekwenza li jien gotten. 1070 00:47:44,300 --> 00:47:46,570 L-indirizz f'dan każ huwa post wieħed. 1071 00:47:46,570 --> 00:47:51,280 Allura dak li verament qed jiġi maħżun fil s-- u kull varjabbli string b'hekk far-- 1072 00:47:51,280 --> 00:47:53,430 għadu kif ġie l- indirizz ta 'dak string. 1073 00:47:53,430 --> 00:47:57,840 >> Sadanittant, jekk I call GetString tieni darba u I 1074 00:47:57,840 --> 00:48:03,300 tip fil litteralment l-istess thing-- M-O-M ma lowercase-- M-O-M 1075 00:48:03,300 --> 00:48:06,200 u backslash ieħor żero, u issa forsi l-programm tiegħi 1076 00:48:06,200 --> 00:48:09,820 ilu għaddej għal xi żmien hekk forsi din huwa 10, dan huwa post 11, dan huwa 12, 1077 00:48:09,820 --> 00:48:10,700 dan huwa 13. 1078 00:48:10,700 --> 00:48:13,590 Il-kompjuters li jużaw xi oħra memorja għal kwalunkwe raġuni. 1079 00:48:13,590 --> 00:48:18,172 Dak li issa tmur fit-tieni tiegħi varjabbli f't programm tiegħi? 1080 00:48:18,172 --> 00:48:19,390 10. 1081 00:48:19,390 --> 00:48:20,050 Eżattament. 1082 00:48:20,050 --> 00:48:23,910 >> U hekk meta nħarsu lejn l- kodiċi tas-sors ta 'dan il-programm 1083 00:48:23,910 --> 00:48:26,550 fejn jien sempliċiment jippruvaw li jitqabblu ż-żewġ valuri, 1084 00:48:26,550 --> 00:48:32,180 huwa s ugwali daqs ta 't, x'hemm ir-risposta tal-bniedem ovvja? 1085 00:48:32,180 --> 00:48:34,890 Biss l-ebda għax 1 mhuwiex ugwali għal 10. 1086 00:48:34,890 --> 00:48:36,861 U hekk hawnhekk tinsab l opportunità għalina verament 1087 00:48:36,861 --> 00:48:39,610 li jmorru biss lura għall-, għal darb'oħra, l-ewwel prinċipji u jaħsbu dwar, sew, 1088 00:48:39,610 --> 00:48:41,110 x'inhu għaddej taħt il-barnuża? 1089 00:48:41,110 --> 00:48:43,240 Imxejna ġiet jitkellem dwar bits u bytes u l-memorja, 1090 00:48:43,240 --> 00:48:46,820 iżda huwa attwalment utli li wieħed jifhem għaliex meta inti sejħa GetString, 1091 00:48:46,820 --> 00:48:50,280 anke jekk aħna jaħsbu li huwa jirritornaw M-O-M jew string mom 1092 00:48:50,280 --> 00:48:53,120 jew Andy jew Zamila jew bħalhom, teknikament 1093 00:48:53,120 --> 00:48:55,510 huwa biss jirritorna l-indirizz ta 'dak blokki ta' memorja. 1094 00:48:55,510 --> 00:48:56,910 >> Imma dak li OK. 1095 00:48:56,910 --> 00:49:00,570 Minħabba kif inkun naf fejn il-sekwenza jispiċċa? 1096 00:49:00,570 --> 00:49:03,840 Jekk jien biss minħabba l-bidu? 1097 00:49:03,840 --> 00:49:05,380 Ukoll, il-backslash żero, id-dritt? 1098 00:49:05,380 --> 00:49:08,800 Just fil-ħin lineari nista ' jistampa mal def print M-O-M. 1099 00:49:08,800 --> 00:49:11,820 U hekk kif nara backslash żero, I do not care fejn bdejt, 1100 00:49:11,820 --> 00:49:14,950 I diġà jafu impliċitament I fejn jeħtieġ biex tintemm. 1101 00:49:14,950 --> 00:49:18,700 >> U hekk illum jimmarka l-beginning-- u let me tagħmel dan b'mod drammatiku għaliex aħna 1102 00:49:18,700 --> 00:49:21,800 għaddiet minn ħafna problemi li tikseb dawn taħriġ wheels-- hawn 1103 00:49:21,800 --> 00:49:29,840 hekk illum ir-roti ta 'taħriġ jibdew li ġejjin off u aħna jiżvelaw fi least-- 1104 00:49:29,840 --> 00:49:31,373 >> [Applause] 1105 00:49:31,373 --> 00:49:33,220 1106 00:49:33,220 --> 00:49:36,160 >> Dan kien ukoll jiswa l-vjaġġ ma 'Target dalgħodu, iva? 1107 00:49:36,160 --> 00:49:39,600 Allura now-- hemm, jirriżulta out, l-ebda ħaġa bħal string. 1108 00:49:39,600 --> 00:49:41,140 String ma teżistix. 1109 00:49:41,140 --> 00:49:43,760 Huwa sinonimu li aħna kellna ġewwa tal-librerija CS50. 1110 00:49:43,760 --> 00:49:48,660 Minn issa, aħna qed tmur biex tibda sejħa iu t mhux kordi iżda istilel char. 1111 00:49:48,660 --> 00:49:51,180 U l-istilla char Aħna ser tease apparti qabel fit-tul. 1112 00:49:51,180 --> 00:49:53,510 Iżda dan fi kliem ieħor, li anke jekk aħna nkomplu 1113 00:49:53,510 --> 00:49:56,180 użu GetString għal issa, teknikament I għandu 1114 00:49:56,180 --> 00:49:59,010 tkun tgħid star char u stilla char. 1115 00:49:59,010 --> 00:50:01,720 >> U jirriżulta liema dik star se juri hija xi ħaġa 1116 00:50:01,720 --> 00:50:04,340 imsejħa pointer jew indirizz. 1117 00:50:04,340 --> 00:50:06,110 U fil-fatt, teaser għall dak li jinsab quddiem 1118 00:50:06,110 --> 00:50:09,760 hija din 20 sekonda clip minn tagħna ħabib Nick Parlante fil Stanford 1119 00:50:09,760 --> 00:50:12,927 li, pjuttost xi żmien ilu, iqattgħu redikoli ammont ta 'żmien, 1120 00:50:12,927 --> 00:50:15,010 bħala l-aħjar I tista 'tgħid fil tiegħu kċina jew kantina tiegħu, 1121 00:50:15,010 --> 00:50:17,140 jagħmlu claymation introduzzjoni għad-dinja 1122 00:50:17,140 --> 00:50:20,010 karattru jismu Binky li magħhom aħna se 1123 00:50:20,010 --> 00:50:22,010 jiġu introdotti ħin li jmiss biex pointers. 1124 00:50:22,010 --> 00:50:24,588 Allura hawnhekk hija preview tal dak li ġejjin. 1125 00:50:24,588 --> 00:50:26,370 >> [Daqq video] 1126 00:50:26,370 --> 00:50:27,510 >> -Hey, Binky. 1127 00:50:27,510 --> 00:50:28,260 Wake up. 1128 00:50:28,260 --> 00:50:30,672 Wasal iż-żmien għall-gost pointer. 1129 00:50:30,672 --> 00:50:31,616 >> -Dak X'inhu? 1130 00:50:31,616 --> 00:50:33,032 Tgħallem dwar pointers? 1131 00:50:33,032 --> 00:50:34,450 Oh, Goody. 1132 00:50:34,450 --> 00:50:35,431 >> [END Daqq] 1133 00:50:35,431 --> 00:50:38,055 DAVID J. Malan: U fuq din in-nota, aħna se tara int nhar l-Erbgħa. 1134 00:50:38,055 --> 00:50:47,590 1135 00:50:47,590 --> 00:50:48,090 Kull dritt. 1136 00:50:48,090 --> 00:50:48,740 Min hu żfin? 1137 00:50:48,740 --> 00:50:49,240 Come fuq. 1138 00:50:49,240 --> 00:50:50,330 Min hu żfin? 1139 00:50:50,330 --> 00:50:51,820 Inti trid lili biex tikseb dan beda? 1140 00:50:51,820 --> 00:50:53,770 I ser tingħata dan beda. 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: fancy Sweet Mosè.