1 00:00:00,000 --> 00:00:12,040 >> [Daqq ta mużika] 2 00:00:12,040 --> 00:00:16,460 >> SPEAKER 1: Kull dritt, dan huwa CS50, u dan huwa l-bidu ta 'erba' ġimgħat, 3 00:00:16,460 --> 00:00:20,420 u kif inti tista smajt jew aqra, id-dinja kienet jispiċċa. 4 00:00:20,420 --> 00:00:23,520 Going kollha madwar l-internet għandha Kien għarfien u l-kuxjenza 5 00:00:23,520 --> 00:00:27,100 ta 'bug fi programm, a lingwa ta 'programmar imsejħa Bash. 6 00:00:27,100 --> 00:00:32,729 Dan ġie wonderfully marka bħala Shellshock, jew il-bieb Bash, 7 00:00:32,729 --> 00:00:35,485 imma artikoli bħal dawn ma ġewx komuni. 8 00:00:35,485 --> 00:00:38,807 U fil-fatt, ħafna minnhom iġġib memorji lura ta Heartbleed, 9 00:00:38,807 --> 00:00:41,640 li jista 'jkollok ndunat fil- agħfas lura din ir-rebbiegħa passat, li 10 00:00:41,640 --> 00:00:43,980 kien similarment pjuttost drammatika. 11 00:00:43,980 --> 00:00:47,110 Issa ta 'dawk minnkom hawn illum, kemm għandek, 12 00:00:47,110 --> 00:00:50,330 anki jekk inti ma jifhmux dak dan kollu dwar, semgħu Shellshock? 13 00:00:50,330 --> 00:00:51,370 14 00:00:51,370 --> 00:00:54,245 Kull dritt, u kif ħafna minnkom jkollhom kompjuters li huma vulnerabbli? 15 00:00:54,245 --> 00:00:55,680 16 00:00:55,680 --> 00:01:00,250 OK, għandu jkun hemm ħafna, ferm aktar hands up dritt issa, għal raġunijiet ser naraw. 17 00:01:00,250 --> 00:01:02,580 >> Ejja tagħti ħarsa lejn x'hemm ilu għaddej fil-midja 18 00:01:02,580 --> 00:01:05,304 u mbagħad jispjegaw daqsxejn hawn għalina teknikament. 19 00:01:05,304 --> 00:01:07,670 20 00:01:07,670 --> 00:01:11,250 >> SPEAKER 2: Esperti tas-Sigurtà ikollhom wissa li difett serju jkunu jistgħu 21 00:01:11,250 --> 00:01:15,650 jkun ta 'madwar li jaffettwaw mijiet ta' miljuni ta 'utenti tal-web-dinja. 22 00:01:15,650 --> 00:01:20,600 Allura x'inhi eżattament l-bug li kien iddabbjati Shellshock, u dak ma tagħmel? 23 00:01:20,600 --> 00:01:23,720 24 00:01:23,720 --> 00:01:28,910 Ukoll, Shellshock hija magħrufa wkoll bħala l- Bug Bash, is-software li hu jisfrutta. 25 00:01:28,910 --> 00:01:33,230 Hackers jużaw il-virus li scan vulnerabbli sistemi running Linux u Unix 26 00:01:33,230 --> 00:01:36,300 sistemi operattivi u mbagħad jinfettaw lilhom. 27 00:01:36,300 --> 00:01:38,730 Bash huwa qoxra kmand tal-linja. 28 00:01:38,730 --> 00:01:43,460 Dan tikri utenti kwistjoni jikkmanda biex tniedi programmi u l-karatteristiċi fi ħdan software 29 00:01:43,460 --> 00:01:45,250 billi tittajpja test. 30 00:01:45,250 --> 00:01:49,980 Huwa tipikament użati mill-programmers, u m'għandhiex tkun miftuħa għal dinja usa ', 31 00:01:49,980 --> 00:01:51,590 għalkemm Shellshock bidliet li. 32 00:01:51,590 --> 00:01:54,160 33 00:01:54,160 --> 00:01:57,910 >> Ukoll, worringly, xi analisti twissi din tista 'tkun ta' theddida akbar, 34 00:01:57,910 --> 00:02:01,580 minħabba Shellshock tippermetti kompluta kontroll ta 'magna infettati, 35 00:02:01,580 --> 00:02:06,030 billi Heartbleed permess biss hackers biex spy fuq il-kompjuters. 36 00:02:06,030 --> 00:02:09,130 Huwa tant serja, huwa ġiet stmata għal 10 minn 10 37 00:02:09,130 --> 00:02:11,900 għas-severità mill-Awtorità Nazzjonali Database Vulnerabbiltà. 38 00:02:11,900 --> 00:02:15,530 39 00:02:15,530 --> 00:02:20,015 2/3 ta 'servers kollha web huma fi riskju, inklużi xi kompjuters Mac. 40 00:02:20,015 --> 00:02:22,760 41 00:02:22,760 --> 00:02:25,600 Ukoll, aċċerta ruħek li garża sistemi tiegħek issa. 42 00:02:25,600 --> 00:02:29,330 Kulħadd tospita websajt running is-sistemi operattivi affettwati 43 00:02:29,330 --> 00:02:31,800 għandha tieħu azzjoni kemm jista 'jkun malajr. 44 00:02:31,800 --> 00:02:35,390 Kulħadd li jistgħu jaffordjaw li għandu look għall-monitoraġġ u l-web-applikazzjoni tagħhom 45 00:02:35,390 --> 00:02:37,355 firewalls li għandek toqgħod attent għal xi attakki. 46 00:02:37,355 --> 00:02:39,979 47 00:02:39,979 --> 00:02:41,770 SPEAKER 3: ħaġa Agħar li jista 'jiġri huwa 48 00:02:41,770 --> 00:02:45,080 li xi ħadd se jikteb kodiċi li awtomatikament imorru u scan 49 00:02:45,080 --> 00:02:48,280 l-internet u jaffettwa b'mod kollha ta 'dawn il-kompjuters. 50 00:02:48,280 --> 00:02:50,710 U ladarba dawn jagħmlu dan, ukoll, l-agħar ħaġa li tista 'tagħmel 51 00:02:50,710 --> 00:02:53,300 huwa biss ħassar kollox, jew shut-siti isfel. 52 00:02:53,300 --> 00:02:55,360 Allura nistgħu naraw ħsara minn dak il-lat, 53 00:02:55,360 --> 00:02:58,300 fejn aħna se jkollu nies malizzjużi li sempliċiment jiddeċiedu li jikkawżaw havoc 54 00:02:58,300 --> 00:03:02,534 minn sistemi jġibu isfel jew tħassir fajls, u affarijiet bħal dik. 55 00:03:02,534 --> 00:03:05,200 SPEAKER 2: Xi wħud jgħidu li dan huwa wieħed mill-aktar diffiċli biex jitkejjel 56 00:03:05,200 --> 00:03:08,080 bugs fis-snin, u dan jista 'jieħu ġimgħat jew saħansitra 57 00:03:08,080 --> 00:03:10,820 xhur biex tiddetermina l-impatt aħħari tagħha. 58 00:03:10,820 --> 00:03:12,180 59 00:03:12,180 --> 00:03:15,560 >> SPEAKER 1: Allura kollha ta 'dan huwa veru, imma l-ħaġa umoristiċi hija, kważi kollha 60 00:03:15,560 --> 00:03:18,330 tal-xbihat inti biss raw, ħlief għall forsi l-keyboard, 61 00:03:18,330 --> 00:03:20,930 għandha x'taqsam xejn mal- l-bug tkun xi tkun. 62 00:03:20,930 --> 00:03:23,960 Servers u wajers u ibqa 'sejjer hekk, huwa relatat tip ta tanġenzjali, 63 00:03:23,960 --> 00:03:27,410 iżda fil-qalba huwa attwalment pretty familjari x'inhu għaddej hawn. 64 00:03:27,410 --> 00:03:30,050 Fil-fatt, let me go fis appliance CS50 tagħna. 65 00:03:30,050 --> 00:03:32,910 Let me imorru quddiem u timmassimizza -tieqa terminal hawn. 66 00:03:32,910 --> 00:03:36,020 U inti guys kienu qegħdin jużaw dan, jew il-verżjoni integrati tiegħu, 67 00:03:36,020 --> 00:03:39,460 fil gedit sabiex jiktbu programmi, tip jikkmanda, u oħrajn, 68 00:03:39,460 --> 00:03:43,690 u dan huwa fil-fatt, u għandu ilha għal ġimgħat, Bash, B-A-S-H. 69 00:03:43,690 --> 00:03:46,890 Dan huwa l-Bourne-ġdid qoxra, li huwa biss mod fancy ta 'tgħid, 70 00:03:46,890 --> 00:03:50,220 dan huwa programm li għandu Teptip fil-pront, b'mod effettiv, 71 00:03:50,220 --> 00:03:51,970 li tpoġġi hemm stennija għal input għalik. 72 00:03:51,970 --> 00:03:53,920 U huwa l-kmand interface on-line permezz tagħhom 73 00:03:53,920 --> 00:03:57,650 inti guys ġew running jikkmanda u finalment kompilazzjoni u mbagħad running 74 00:03:57,650 --> 00:03:58,400 programmi. 75 00:03:58,400 --> 00:04:01,320 >> Iżda Bash huwa wkoll l-ipprogrammar lingwa fis-sens li ġejja. 76 00:04:01,320 --> 00:04:05,460 Inti taf li hemm jikkmanda bħal cd u ls u wkoll clang u oħrajn, 77 00:04:05,460 --> 00:04:09,580 imma int tista 'tiddefinixxi jikkmanda tiegħek stess billi l-implimentazzjoni tagħhom fl Bash. 78 00:04:09,580 --> 00:04:11,420 Issa aħna mhux qed tmur biex mur fid-dettal ħafna 79 00:04:11,420 --> 00:04:16,089 bħala li bash l-lingwa ta 'programmar, iżda taf, per eżempju, li fil-mument, 80 00:04:16,089 --> 00:04:17,607 hemm l-ebda kmand imsejħa "bonjour." 81 00:04:17,607 --> 00:04:19,440 Allura li jista 'jinstab fil- wieħed minn dawn il-pakketti. 82 00:04:19,440 --> 00:04:20,856 Mhuwiex installat fil-kompjuter tiegħi. 83 00:04:20,856 --> 00:04:21,870 Staqsi amministratur tiegħek. 84 00:04:21,870 --> 00:04:26,030 Imma jekk jien tixtieq li jkun hemm programm imsejħa "bonjour" fil Bash jew fuq pront tiegħi, 85 00:04:26,030 --> 00:04:30,810 I jistgħu attwalment jużaw sintassi thats pjuttost simili C. Huwa pjuttost mhux l-istess, 86 00:04:30,810 --> 00:04:35,020 iżda jistenna pretty simili għal funzjoni, għalkemm nieqsa xi dettalji. 87 00:04:35,020 --> 00:04:38,090 Xejn jidher li jiġri, imma issa jekk I tip "hello," 88 00:04:38,090 --> 00:04:40,960 inti tista 'attwalment jiktbu programm, mhux fis-C, mhux fl Java, 89 00:04:40,960 --> 00:04:44,280 mhux fl-ipprogrammar ieħor lingwa, iżda Bash innifsu. 90 00:04:44,280 --> 00:04:47,630 >> Issa l-prinċipali hawnhekk hija li I kiteb l- isem I riedu jagħtu dan il-kmand ġdid, 91 00:04:47,630 --> 00:04:50,820 u l-parentesi huma wkoll simboliku ta 'dan huwa funzjoni. 92 00:04:50,820 --> 00:04:54,010 Bħala twarrib, inti tista 'ukoll tagħmel gost affarijiet, u fil-fatt, anke fuq OS Mac, 93 00:04:54,010 --> 00:04:55,620 dan huwa programm imsejjaħ Terminal. 94 00:04:55,620 --> 00:04:58,800 Jidħol mibnija fis tal ħadd kompjuter li għandu Mac f'din il-kamra, 95 00:04:58,800 --> 00:05:03,640 u inti tista 'tagħmel affarijiet simili fl Mac OS, imma int tista 'tmur aktar lil hinn minn dak. 96 00:05:03,640 --> 00:05:07,110 U dan huwa ftit tanġenzjali, imma hija tip ta 'gost. 97 00:05:07,110 --> 00:05:09,715 I kien fakkar dalgħodu, meta ħsieb dan permezz, 98 00:05:09,715 --> 00:05:13,279 ta 'logħba ftit I użati biex jilagħbu ma 'waħda mill TFS preċedenti CS50 tal 99 00:05:13,279 --> 00:05:16,570 li bih kwalunkwe żmien li kien ikun walk away minn keyboard tiegħu bl-iskrin tiegħu jinfetaħ, 100 00:05:16,570 --> 00:05:23,611 Nixtieq tesegwixxi kmand bħal this-- "jgħidu bonjour." 101 00:05:23,611 --> 00:05:26,610 U issa xi darba hu daħal lura tiegħu keyboard wara I kklerjat l-iskrin 102 00:05:26,610 --> 00:05:27,985 u li kieku joqogħdu bilqegħda, jipprova jagħmel xi xogħol, 103 00:05:27,985 --> 00:05:29,250 lista tal-kontenut ta 'directory-- tiegħu 104 00:05:29,250 --> 00:05:29,510 >> [AUDIO Daqq] 105 00:05:29,510 --> 00:05:30,010 >> -Hello. 106 00:05:30,010 --> 00:05:31,621 107 00:05:31,621 --> 00:05:32,120 Hello. 108 00:05:32,120 --> 00:05:35,030 >> SPEAKER 1: Allura, fl-ekwità, ma kienx fil-fatt "bonjour." 109 00:05:35,030 --> 00:05:36,894 Kien normalment xi ħaġa aktar viċin għall that-- 110 00:05:36,894 --> 00:05:37,560 [AUDIO Daqq] 111 00:05:37,560 --> 00:05:37,750 -Beep. 112 00:05:37,750 --> 00:05:39,320 SPEAKER 1: --that I would-- hekk kompjuter tiegħu kieku 113 00:05:39,320 --> 00:05:42,170 naħlef fi lilu kwalunkwe ħin hu attwalment sib stabbiliti fuq tastiera tiegħu. 114 00:05:42,170 --> 00:05:46,265 U malajr ħafna hu dehret ma jħallu l-iskrin tiegħu jinfetaħ. 115 00:05:46,265 --> 00:05:48,730 Iżda dan jissuġġerixxi t-tip ta 'gost stupid li inti 116 00:05:48,730 --> 00:05:50,210 jista 'jkollha ma' xi ħaġa bħal Bash. 117 00:05:50,210 --> 00:05:52,770 Iżda huwa ftit aktar serja, biex tkun ċert, minn dak. 118 00:05:52,770 --> 00:05:57,235 U fil-fatt, dan huwa wieħed mill- aktar bugs perikolużi u fit-tul 119 00:05:57,235 --> 00:05:58,860 li tkun verament laqat il-dinja globalment. 120 00:05:58,860 --> 00:06:02,060 Dan bug kien madwar għal xi 20 sena, 121 00:06:02,060 --> 00:06:05,780 u tkun taf tkun laqat fi ftit mument mill-sempliċità relattiva tiegħu. 122 00:06:05,780 --> 00:06:07,990 >> Allura dan huwa rappreżentattiv kmand li jekk inti 123 00:06:07,990 --> 00:06:10,448 stess a Mac, litteralment dritt issa meta jkollok għatu tiegħek miftuħa, 124 00:06:10,448 --> 00:06:12,940 inti tista 'tipprova ittajpjar f'dak programm imsejjaħ Terminal. 125 00:06:12,940 --> 00:06:15,410 Terminal huwa taħt Applikazzjonijiet Utilities-- 126 00:06:15,410 --> 00:06:18,790 għal darba, Windows utenti ma jkollhom joqogħdu jinkwetaw dwar dan threat-- partikolari 127 00:06:18,790 --> 00:06:22,310 iżda dawk tal inti ma MACs tista tip dan fi tieqa bħal I ser nagħmlu hawnhekk, 128 00:06:22,310 --> 00:06:24,210 u jekk inti tip li fis dan il-programm 129 00:06:24,210 --> 00:06:28,830 imsejħa Terminal, bħal I ser tagħmel issa, jekk tara l-kelma "vulnerabbli," 130 00:06:28,830 --> 00:06:32,200 kompjuter tiegħek huwa vulnerabbli għall-isfruttament. 131 00:06:32,200 --> 00:06:33,850 >> Issa dak li ma attwalment jfisser? 132 00:06:33,850 --> 00:06:35,870 U dan huwa ċertament xi sintassi pretty crazy, 133 00:06:35,870 --> 00:06:39,050 imma ejja mill-inqas jiġbed out xi wħud mill-aspetti interessanti. 134 00:06:39,050 --> 00:06:42,567 Allura hemm xi sintassi li jistenna ftit familjari, mill-inqas minn C 135 00:06:42,567 --> 00:06:43,950 u l-ipprogrammar aktar ġenerali. 136 00:06:43,950 --> 00:06:47,550 I tara xi parentesi, semicolons, braces kaboċċi, u bħal dawn, 137 00:06:47,550 --> 00:06:50,820 iżda jirriżulta li dan Ħaġa stupid hawn isfar 138 00:06:50,820 --> 00:06:53,580 huwa essenzjalment funzjoni li ma xejn. 139 00:06:53,580 --> 00:06:57,840 Il-mezzi kolon ma tagħmel xejn, u l- virgola ifisser tieqaf tagħmel xejn. 140 00:06:57,840 --> 00:07:00,250 Allura ġewwa minn dawn braces kaboċċi, il-fatt 141 00:07:00,250 --> 00:07:02,440 li għandi ugwali jiffirmaw għall-xellug, din 142 00:07:02,440 --> 00:07:05,500 huwa essenzjalment ħolqien kmand, jew varjabbli, 143 00:07:05,500 --> 00:07:09,520 imsejħa x, u assenjazzjoni tiegħu li ftit isfar tal-kodiċi hemmhekk. 144 00:07:09,520 --> 00:07:14,040 Dan jista 'jkun xi ħaġa bħal "eku bonjour "jew" jgħidu ħoss "jew xi ħaġa 145 00:07:14,040 --> 00:07:15,120 simili għal dak. 146 00:07:15,120 --> 00:07:17,780 Iżda avviż jekk l-għajnejn tiegħek wander aktar lejn il-lemin, 147 00:07:17,780 --> 00:07:22,150 hemm aktar din il-linja minn biss it-tmiem ta 'dak il virgola. 148 00:07:22,150 --> 00:07:25,160 "Echo vulnerabbli," u mbagħad lil hinn minn dak hemm anke aktar. 149 00:07:25,160 --> 00:07:26,530 Punto virgola, -C Ieħor bash :. 150 00:07:26,530 --> 00:07:28,120 151 00:07:28,120 --> 00:07:34,050 >> Allura qasir storja twila, din il-linja tal-kodiċi hija 152 00:07:34,050 --> 00:07:36,660 biżżejjed għall konvinċenti kompjuter li l- 153 00:07:36,660 --> 00:07:39,830 vulnerabbli li jagħmlu xi ħaġa li inti tixtieq li tagħmel, 154 00:07:39,830 --> 00:07:44,290 għaliex hemm bug fil biha Bash anki jekk Bash kien suppost biex tieqaf 155 00:07:44,290 --> 00:07:48,980 linji qari ta 'dritt kmand hemm wara t-test isfar, 156 00:07:48,980 --> 00:07:52,520 għal sena 20-plus bug qodma, Bash ikun attwalment ġie qari 157 00:07:52,520 --> 00:07:56,780 lil hinn minn dik virgola u pretty ħafna jagħmlu dak li huwa qal. 158 00:07:56,780 --> 00:07:59,070 >> Allura x'inhu l-implikazzjoni ta 'dik finalment? 159 00:07:59,070 --> 00:08:01,340 I biss qal "eku bonjour" jew "eku vulnerabbli," 160 00:08:01,340 --> 00:08:05,449 imma dak jekk inti għamilt xi ħaġa attwalment malizzjużi, bħal rm -rf *, 161 00:08:05,449 --> 00:08:07,240 li inti tista 'ma qatt ittajpjat qabel, 162 00:08:07,240 --> 00:08:08,920 u franchement inti probabilment m'għandhomx wisq malajr, 163 00:08:08,920 --> 00:08:10,700 għaliex inti tista 'tagħmel ħafna ħsara magħha. 164 00:08:10,700 --> 00:08:11,210 Għaliex? 165 00:08:11,210 --> 00:08:12,990 rm ma dak, tal-kors? 166 00:08:12,990 --> 00:08:14,270 Ineħħi. 167 00:08:14,270 --> 00:08:15,930 * Ifisser liema? 168 00:08:15,930 --> 00:08:16,430 Kollha. 169 00:08:16,430 --> 00:08:18,180 Allura huwa l-hekk imsejħa wild card, hekk dan ifisser 170 00:08:18,180 --> 00:08:20,410 ħassar kollox fil l-direttorju kurrenti. 171 00:08:20,410 --> 00:08:23,379 -r jiġri li jfisser rikursivi, li jfisser li jekk dak li qed jitħassru 172 00:08:23,379 --> 00:08:26,420 huwa direttorju, u ġewwa ta 'hemmhekk hija fajls oħra u direttorji oħra, 173 00:08:26,420 --> 00:08:28,950 recursively adsa fis hemmhekk u ħassar kollha ta 'dak. 174 00:08:28,950 --> 00:08:31,040 U -f huwa l-agħar minnhom kollha. 175 00:08:31,040 --> 00:08:32,580 Xi ħadd jaf liema -f jfisser hawn? 176 00:08:32,580 --> 00:08:33,690 177 00:08:33,690 --> 00:08:34,360 Forza. 178 00:08:34,360 --> 00:08:37,830 Allura seħħ tfisser, anke jekk din hija idea ħażina, 179 00:08:37,830 --> 00:08:40,939 tagħmel dan mingħajr suġġeriment me Għal konferma aktar. 180 00:08:40,939 --> 00:08:43,230 Allura, inti taf, aħna tidħaq dan, imma franchement, I probabbilment 181 00:08:43,230 --> 00:08:44,972 din it-tip ħinijiet multipli kuljum, għaliex ir-realtà 182 00:08:44,972 --> 00:08:47,210 huwa huwa l-aktar mod li tħassar mazz sħiħ ta 'għalf. 183 00:08:47,210 --> 00:08:48,590 Iżda anke I għamlu xi ħsara. 184 00:08:48,590 --> 00:08:53,100 >> Imma jekk ġejt biex trick kompjuter fis tiddefinixxi xi varjabbli stupid 185 00:08:53,100 --> 00:08:56,810 jew funzjoni msejħa x, iżda mbagħad tricking l-kompjuter fis eżekuzzjoni 186 00:08:56,810 --> 00:09:00,030 lil hinn mill-konfini ta 'dik funzjoni, lil hinn minn dak virgola, 187 00:09:00,030 --> 00:09:04,430 inti tista 'tabilħaqq trick kompjuter fis eżekuzzjoni xi ħaġa bħal rm -rf 188 00:09:04,430 --> 00:09:07,810 jew l-kmand Email jew l-kmand Kopja. 189 00:09:07,810 --> 00:09:11,400 Xejn litteralment inti tista 'tagħmel ma' l- kompjuter, kemm jekk huwa tħassar files, 190 00:09:11,400 --> 00:09:15,350 ħolqien ta 'fajls, spamming ħadd, jattakkaw xi server remot, 191 00:09:15,350 --> 00:09:17,190 jekk inti tista 'tesprimi lilha bi kmand, inti 192 00:09:17,190 --> 00:09:19,120 jista trick kompjuter fis tagħmel dan. 193 00:09:19,120 --> 00:09:21,510 >> Issa x'hemm eżempju ta ' kif inti tista 'tagħmel dan? 194 00:09:21,510 --> 00:09:24,300 Ukoll, hemm ħafna ta 'kompjuters fuq l-Bash internet running. 195 00:09:24,300 --> 00:09:26,390 Kollha ta 'l-utenti minna Mac huma bejniethom. 196 00:09:26,390 --> 00:09:30,390 A lott ta 'servers Linux huma fost lilhom ukoll, u servers Unix. 197 00:09:30,390 --> 00:09:32,630 Windows darb'oħra gets relattivament off-ganċ 198 00:09:32,630 --> 00:09:34,590 sakemm inti ħadthom installati software speċjali. 199 00:09:34,590 --> 00:09:37,130 Issa ħafna ta 'servers, għal Pereżempju, servers mill-web run, 200 00:09:37,130 --> 00:09:39,840 u fil-fatt Linux hija forsi l- aktar sistema operattiva popolari 201 00:09:39,840 --> 00:09:43,060 li jimxu fuq kompjuters fuq l-internet li huma jservu up paġni web. 202 00:09:43,060 --> 00:09:44,910 Issa kif Ser naraw aktar tard fil-semestru, meta 203 00:09:44,910 --> 00:09:48,470 inti tibgħat talba minn Chrome browser-- tiegħek, 204 00:09:48,470 --> 00:09:50,790 Internet Explorer, whatever-- ma 'server remot, 205 00:09:50,790 --> 00:09:53,730 jirriżulta li anki jekk inti biss ittajpjat www.example.com, 206 00:09:53,730 --> 00:09:59,590 browser tiegħek hija li jibgħat messaġġ thats ftit aktar arcane, bħal dan. 207 00:09:59,590 --> 00:10:01,239 >> Imma tinnota ftit xi ħaġa stramba. 208 00:10:01,239 --> 00:10:03,030 L-ewwel żewġ linji Stajt qatt qabel, 209 00:10:03,030 --> 00:10:04,904 iżda dawn ma tfittex partikolarment theddida. 210 00:10:04,904 --> 00:10:08,030 Imma avviż dak li stajt misruqa għat-tielet linja hawnhekk. 211 00:10:08,030 --> 00:10:13,390 Jekk Guy ħażina kienu li jibgħat messaġġ bħal din mill-kompjuter tiegħu jew tagħha 212 00:10:13,390 --> 00:10:17,270 għal Mac vulnerabbli jew server Linux vulnerabbli, 213 00:10:17,270 --> 00:10:21,580 il-ħaġa umoristiċi hija li Bash, li sempliċi kmand ftit pront, 214 00:10:21,580 --> 00:10:27,450 huwa omnipreżenti u huwa spiss użati biex tesegwixxi essenzjalment 215 00:10:27,450 --> 00:10:30,020 il-kontenut ta ' messaġġ li hija tirċievi. 216 00:10:30,020 --> 00:10:33,490 U billi li l-loġika, inti tista ' trick web server, għalhekk, 217 00:10:33,490 --> 00:10:36,370 billi jibgħat xi ħaġa simili User-aġent, li normalment 218 00:10:36,370 --> 00:10:38,300 huwa suppost li jgħidu l- isem tal-browser tiegħek. 219 00:10:38,300 --> 00:10:42,420 User-aġent Chrome, User-aġent Internet Explorer, User-aġent Firefox, dan 220 00:10:42,420 --> 00:10:44,590 huwa biss browser tiegħek mod ta 'identifikazzjoni ta innifsu. 221 00:10:44,590 --> 00:10:46,605 Imma jekk Guy ħażina ħafna cleverly jgħid, mm mm, jien 222 00:10:46,605 --> 00:10:47,930 mhux ser jgħidlek dak browser tiegħi huwa, 223 00:10:47,930 --> 00:10:50,888 Jien minflok ser inti tibgħat dan cryptic li tħares ħaġa ma '-rf rm 224 00:10:50,888 --> 00:10:55,840 * Fiha, inti tista litteralment trick web server vulnerabbli fuq l-internet 225 00:10:55,840 --> 00:10:59,055 fis eżekuzzjoni eżattament dak fl hemm għal tħassir kollha tal-fajls. 226 00:10:59,055 --> 00:11:00,930 U franchement, li mhux anke l-agħar ta 'dan. 227 00:11:00,930 --> 00:11:01,763 Tista 'tagħmel xejn. 228 00:11:01,763 --> 00:11:04,480 Inti tista 'tibda mqassma ċaħda ta 'attakk servizz 229 00:11:04,480 --> 00:11:07,030 jekk inti mibgħut dan il-messaġġ lil għenieqed sħaħ ta 'servers mill-web 230 00:11:07,030 --> 00:11:10,256 u mbagħad kellhom lilhom kollha jinżlu, għal Pereżempju, fuq servers Harvard.edu, 231 00:11:10,256 --> 00:11:12,130 u inti tista sort ta bang l-Heck barra minnhom 232 00:11:12,130 --> 00:11:15,490 minn netwerk tat-traffiku li kien triggered mod ieħor minn dan Guy ħażina. 233 00:11:15,490 --> 00:11:18,760 >> Allura, storja twila fil-qosor, kważi kulħadd f'din il-kamra li tipposjedi Mac 234 00:11:18,760 --> 00:11:20,240 hija vulnerabbli għal dan. 235 00:11:20,240 --> 00:11:24,100 Il-kisja tal-fidda huwa li sakemm int tmexxija ta 'web server fuq laptop tiegħek, 236 00:11:24,100 --> 00:11:27,780 u sakemm inti ħadthom attwalment konfigurati biex jippermetti li xi ħaġa bħal SSH fis dan, 237 00:11:27,780 --> 00:11:28,670 int attwalment sikur. 238 00:11:28,670 --> 00:11:31,710 Huwa vulnerabbli, iżda hemm ebda wieħed tipprova tikseb fis-laptop tiegħek, 239 00:11:31,710 --> 00:11:33,290 sabiex inti tista 'tip ta' mistrieħ assigurat. 240 00:11:33,290 --> 00:11:36,210 Madankollu, Apple dalwaqt jkun aġġornament jiffissaw għal dan. 241 00:11:36,210 --> 00:11:39,660 Id-dinja tal-Linux diġà rilaxxati numru ta 'jiffissa għall Fedora u Ubuntu 242 00:11:39,660 --> 00:11:43,790 u verżjonijiet l-oħra tal-Linux, u tabilħaqq jekk inti tmexxi aġġornament 50 fl-appliance, 243 00:11:43,790 --> 00:11:45,930 anki li wisq se tkun aġġornati u korretti. 244 00:11:45,930 --> 00:11:47,764 Iżda li wisq ma jkunx ġie verament vulnerabbli, 245 00:11:47,764 --> 00:11:49,804 għaliex sakemm inti stajt tinkered mal-appliance 246 00:11:49,804 --> 00:11:52,770 u magħmula laptop tiegħek pubblikament aċċessibbli fuq l-internet, li mhuwiex 247 00:11:52,770 --> 00:11:54,910 kontumaċja, inti stajt attwalment ġiet multa minħabba 248 00:11:54,910 --> 00:11:56,890 ta firewalling u tekniki oħra. 249 00:11:56,890 --> 00:12:01,000 >> Imma hija eżempju estrem ta 'bug li aħna ve għexet għal ta litteralment 20 250 00:12:01,000 --> 00:12:04,050 snin, u li jaf jekk xi ħadd dan il-ħin ikun magħruf dwar dan? 251 00:12:04,050 --> 00:12:06,300 U fil-fatt, dan huwa wieħed ta ' l-isfidi fundamentali 252 00:12:06,300 --> 00:12:08,690 li aħna ser tara aktar tard fil- semestru dwar is-sigurtà, 253 00:12:08,690 --> 00:12:13,020 li huwa biss bħal fid-dinja reali, l-guys tajba huma fil-iżvantaġġ. 254 00:12:13,020 --> 00:12:16,500 Biex iżommu l-guys ħżiena out, għandna biex kun żgur li kull bieb ikun imsakkar, 255 00:12:16,500 --> 00:12:20,340 li kull tieqa hija sigura, li kull punt ta 'dħul fis-dar 256 00:12:20,340 --> 00:12:21,980 huwa sikur biex iżommu l-guys ħżiena out. 257 00:12:21,980 --> 00:12:26,870 Imma dak ma l-Guy ħażina jkollu tagħmel biex attwalment kompromess dar tiegħek 258 00:12:26,870 --> 00:12:28,200 u steal mill inti? 259 00:12:28,200 --> 00:12:32,574 Hu jew hi biss trid li ssib wieħed imsakkar bieb, tieqa waħda miksur, jew xi ħaġa 260 00:12:32,574 --> 00:12:35,240 flimkien dawk il-linji, u huwa l- istess ħaġa fil sigurtà tal-kompjuter. 261 00:12:35,240 --> 00:12:37,660 Nistgħu jiktbu miljuni ta ' linji ta 'kodiċi ta' programmazzjoni 262 00:12:37,660 --> 00:12:40,570 u jonfqu mijiet jew eluf ta 'sigħat tipprova tikseb dan korretta, 263 00:12:40,570 --> 00:12:43,370 imma jekk inti tagħmel wieħed biss żball fl korrettezza, 264 00:12:43,370 --> 00:12:47,030 inti tista 'tpoġġi s-sistema kollha u tabilħaqq f'dan il-każ, l-internet kollu 265 00:12:47,030 --> 00:12:48,660 u fid-dinja f'riskju. 266 00:12:48,660 --> 00:12:51,950 >> Mela jekk inti tixtieq titgħallem aktar dwar dan, mur dan il-URL hawn. 267 00:12:51,950 --> 00:12:54,450 M'hemm l-ebda ħtieġa għal azzjoni tonight sakemm int 268 00:12:54,450 --> 00:12:57,116 fost dawk aktar komdu li ġew running web tiegħek stess 269 00:12:57,116 --> 00:12:59,810 server, f'liema każ inti għandek, fil-fatt, taġġorna software tiegħek. 270 00:12:59,810 --> 00:13:03,244 >> U dan ukoll huwa t-titlu ta ' diskors, u issa karta, 271 00:13:03,244 --> 00:13:05,410 li konna marbuta fuq il- websajt kors għall-lum. 272 00:13:05,410 --> 00:13:07,600 Kien minn sħabi jismu Ken Thompson, li 273 00:13:07,600 --> 00:13:10,120 kien jaċċetta famużi ħafna għoti fix-xjenza tal-kompjuter, 274 00:13:10,120 --> 00:13:13,495 u hu taw dan id-diskors xi snin ilu, essenzjalment fuq dan l-istess suġġett. 275 00:13:13,495 --> 00:13:18,250 276 00:13:18,250 --> 00:13:20,520 Tistaqsi folks il-kwistjoni, Jekk You verament 277 00:13:20,520 --> 00:13:23,480 fiduċja, finalment, il- software inti ħadthom ġiet mogħtija? 278 00:13:23,480 --> 00:13:26,100 Per eżempju, ilkoll għandna ġie kitba programmi, 279 00:13:26,100 --> 00:13:27,820 u konna qegħdin jiġbru bl Clang. 280 00:13:27,820 --> 00:13:31,830 U biex l-għarfien tiegħek, qatt bil-miktub xi programmi għall CS50 fejn hemm l- 281 00:13:31,830 --> 00:13:35,310 bieb lura ta 'tipi, hemm mod li Guy ħażina, jekk running program tiegħek, 282 00:13:35,310 --> 00:13:37,410 setgħet tieħu f'idejha l-kompjuter tiegħek? 283 00:13:37,410 --> 00:13:38,310 Probabbilment le, id-dritt? 284 00:13:38,310 --> 00:13:40,180 Mario, u greedy, u Credit. 285 00:13:40,180 --> 00:13:41,680 Dawn huma programmi kollha pretty żgħar. 286 00:13:41,680 --> 00:13:43,910 Youd għandek tkun pretty ħażina jekk inti fil-fatt 287 00:13:43,910 --> 00:13:47,310 magħmula sħiħa tal-kompjuter tiegħek vulnerabbli wara bil-miktub 10 jew 20 linji ta 'kodiċi, 288 00:13:47,310 --> 00:13:49,690 jew għall-inqas konxji ta 'xi wħud ta 'l-implikazzjonijiet ta' sigurtà. 289 00:13:49,690 --> 00:13:52,023 Now I ngħid li facetiously, imma aħna qed tmur biex tara llum 290 00:13:52,023 --> 00:13:54,600 u din il-ġimgħa huwa attwalment tassew, tassew faċli 291 00:13:54,600 --> 00:13:57,980 li jkun ħażin u tagħmel anke programmi qosra vulnerabbli. 292 00:13:57,980 --> 00:14:02,880 >> Iżda għal issa, mill-inqas, tirrealizza li l-kwistjoni qed jintalbu hawn 293 00:14:02,880 --> 00:14:04,850 huwa dwar Clang fil kompilatur. 294 00:14:04,850 --> 00:14:08,360 Għaliex aħna ġew fidu Clang għall-aħħar żewġ jew tliet ġimgħat? 295 00:14:08,360 --> 00:14:12,650 Min hu ngħid li kull min kiteb Clang ma kellux "jekk" kundizzjoni fil hemm 296 00:14:12,650 --> 00:14:17,680 li essenzjalment injettat xi żerijiet u dawk fis-kull programm jikkompila 297 00:14:17,680 --> 00:14:21,180 li let lilu jew lilha aċċess kompjuter tiegħek meta int rieqed 298 00:14:21,180 --> 00:14:23,580 u għatu laptop tiegħek hija miftuħa u l-kompjuter tiegħek tkun qed taħdem? 299 00:14:23,580 --> 00:14:24,080 Right? 300 00:14:24,080 --> 00:14:28,350 Għandna din it-tip tad-dritt sistema unur issa fejn aħna fiduċja li Clang huwa leġittimu. 301 00:14:28,350 --> 00:14:30,000 Inti fiduċja li l-appliance huwa leġittimu. 302 00:14:30,000 --> 00:14:34,430 Inti fiduċja li litteralment kull programm fuq Mac tiegħek jew PC hija affidabbli. 303 00:14:34,430 --> 00:14:37,510 U kif tissuġġerixxi din bug sempliċi, anki jekk mhuwiex malizzjużi, 304 00:14:37,510 --> 00:14:40,580 li assolutament ma probabbli li jkun il-każ. 305 00:14:40,580 --> 00:14:42,350 >> Allura inti għandek tkun jibża bħala infern. 306 00:14:42,350 --> 00:14:45,560 Franchement, hemm ebda sempliċi soluzzjoni għal din ieħor 307 00:14:45,560 --> 00:14:48,185 minn tip ta 'kuxjenza tas-soċjetà tal-kumplessità dejjem tiżdied 308 00:14:48,185 --> 00:14:50,310 li aħna qed tibni fuq nett ta 'sistemi tal-kompjuter tagħna, 309 00:14:50,310 --> 00:14:53,740 u kif dejjem aktar vulnerabbli nistgħu tajjeb ħafna 'jkun. 310 00:14:53,740 --> 00:14:55,570 >> Issa ma 'dak imsemmi, tbegħid. 311 00:14:55,570 --> 00:14:59,889 Allura tbegħid huwa problema stabbiliti tlieta, u Tbegħid hija logħba mill-imgħoddi 312 00:14:59,889 --> 00:15:02,180 li inti tista 'recall, iżda għalina fil-problema sett tlieta, 313 00:15:02,180 --> 00:15:04,450 dan jippermetti li tieħu affarijiet back up a talja 314 00:15:04,450 --> 00:15:08,880 b'tali mod li meta aħna bil-miktub programmi, anki fil-tieqa Terminal bħal dan, 315 00:15:08,880 --> 00:15:14,670 nistgħu tmexxi effettivament, finalment, programmi grafika mhux 316 00:15:14,670 --> 00:15:17,800 b'differenza ta 'dawk kellna aċċess fil Scratch. 317 00:15:17,800 --> 00:15:20,910 Allura dan huwa l-tal-persunal implimentazzjoni ta 'tbegħid, 318 00:15:20,910 --> 00:15:23,930 li huwa biss dan l-briks-tkissir logħba, li inti timxi jaqdfu tiegħek lura 319 00:15:23,930 --> 00:15:27,590 u lura, u inti laqat il-ballun kontra dawk briks kkulurita top up. 320 00:15:27,590 --> 00:15:30,020 Allura dan huwa li jġibu us tip ta 'lura lejn fejn 321 00:15:30,020 --> 00:15:33,180 konna kapaċi li jkunu malajr ħafna ma Scratch, u issa ma 'C, 322 00:15:33,180 --> 00:15:35,800 implimentazzjoni tagħna stess interfaces għall-utenti grafika. 323 00:15:35,800 --> 00:15:38,960 >> Iżda aktar minn dan, din sett problema tirrappreżenta l-ewwel 324 00:15:38,960 --> 00:15:41,000 li aħna qed tagħti inti mazz ta 'kodiċi. 325 00:15:41,000 --> 00:15:43,940 U fil-fatt, I iġibu espliċita attenzjoni għal dan, għaliex speċjalment 326 00:15:43,940 --> 00:15:47,090 għal dawk inqas komdi, dan problema stabbiliti, mill-inqas fl-ewwel daqqa t'għajn, 327 00:15:47,090 --> 00:15:49,170 huwa se jħossu bħal aħna ħadt it up a talja. 328 00:15:49,170 --> 00:15:51,540 Għaliex aħna ve tak, għal xi wħud mill-tfittxija 329 00:15:51,540 --> 00:15:54,930 u l-għażla l-problemi fil-pset, mazz ta 'kodiċi li aħna kiteb, 330 00:15:54,930 --> 00:15:56,680 u l-koppja ta 'kummenti li jgħidu "li tagħmel," 331 00:15:56,680 --> 00:15:58,221 fejn inti għandek timla l-vojt. 332 00:15:58,221 --> 00:16:00,020 Allura mhux wisq scary, iżda huwa l-ewwel darba 333 00:16:00,020 --> 00:16:03,370 aħna qed għoti inti kodiċi li għandek bżonn biex ewwel taqra, tifhem, u mbagħad żid sa 334 00:16:03,370 --> 00:16:04,290 u titlesta. 335 00:16:04,290 --> 00:16:05,940 >> U mbagħad mal tbegħid, aħna qed tmur biex jagħmlu l-istess, 336 00:16:05,940 --> 00:16:08,740 giving you tużżana ftit aktar linji tal-kodiċi li, franchement, jagħtik 337 00:16:08,740 --> 00:16:11,490 lott tal-qafas għall- il-logħba imma waqfa qasira 338 00:16:11,490 --> 00:16:14,304 tal-implimentazzjoni tal-briks u l-ballun u l-jaqdfu, 339 00:16:14,304 --> 00:16:15,970 iżda nagħmlu jimplimentaw xi karatteristiċi oħra. 340 00:16:15,970 --> 00:16:18,280 U anki li ewwel daqqa t'għajn, għal darb'oħra, speċjalment jekk inqas komdi, 341 00:16:18,280 --> 00:16:21,480 jista 'jidher partikolarment kbar u taħseb li hemm funzjonijiet ġodda tant 342 00:16:21,480 --> 00:16:24,070 għandek bżonn biex nagħlaq moħħ tiegħek madwar, u dan huwa veru. 343 00:16:24,070 --> 00:16:26,281 Iżda jżomm f'moħħu, huwa pjuttost simili Scratch. 344 00:16:26,281 --> 00:16:28,780 Odds huma inti ma tuża kollha ta ' il-biċċiet puzzle fil Scratch. 345 00:16:28,780 --> 00:16:31,120 Odds huma inti ma 'kura biex nagħlaq moħħok madwar kull wieħed minnhom 346 00:16:31,120 --> 00:16:33,617 minħabba li kull ma ħadet kien t'għajn malajr biex jifhmu, oh, 347 00:16:33,617 --> 00:16:35,450 dan huwa dak I tista 'tagħmel ma dik il-biċċa puzzle. 348 00:16:35,450 --> 00:16:38,260 U fil-fatt, fil-problema sett 3 spec, aħna ser punt inti 349 00:16:38,260 --> 00:16:41,370 fil-dokumentazzjoni li se jintroduċu inti għal xi funzjonijiet ġodda, 350 00:16:41,370 --> 00:16:43,570 u finalment l-ipprogrammar constructs tuża. 351 00:16:43,570 --> 00:16:47,610 Kundizzjonijiet, loops, varjabbli, u funzjonijiet 352 00:16:47,610 --> 00:16:50,720 se jkun identiku għal dak li aħna stajt tidher s'issa. 353 00:16:50,720 --> 00:16:53,560 >> Allura fil-fatt, dak li aħna ser jagħtuk inti xi kodiċi tal-kampjun li 354 00:16:53,560 --> 00:16:56,110 ihallik toħloq tieqa li jistenna ma b'differenza dan, 355 00:16:56,110 --> 00:16:59,540 u finalment jibdluh xi ħaġa pjuttost bħal dan. 356 00:16:59,540 --> 00:17:02,250 Sabiex jieħdu vantaġġ ta 'CS50, jiddiskutu ħinijiet tal-uffiċċju u aktar, 357 00:17:02,250 --> 00:17:05,290 u jieħdu l-kumdità fil-fatt li l-ammont tal-kodiċi inti ghandek tikteb 358 00:17:05,290 --> 00:17:06,760 huwa attwalment mhux kollha li ħafna. 359 00:17:06,760 --> 00:17:10,359 L-ewwel sfida hija biss biex aklimatizza lilek innifsek biex xi kodiċi konna bil-miktub. 360 00:17:10,359 --> 00:17:11,450 361 00:17:11,450 --> 00:17:15,810 >> Kwalunkwe mistoqsijiet dwar pset3, Shellshock, jew inkella? 362 00:17:15,810 --> 00:17:19,226 >> UDJENZA: Huwa dehret qisha għaddejjin ma tbegħid 363 00:17:19,226 --> 00:17:22,154 li l-kodiċi huwa kważi stil oġġett orjentati lejn, 364 00:17:22,154 --> 00:17:24,675 imma ħsibt C kien programm oġġett orjentati lejn. 365 00:17:24,675 --> 00:17:26,050 SPEAKER 1: An kwistjoni eċċellenti. 366 00:17:26,050 --> 00:17:28,258 Allura meta tħares permezz tal- kodiċi ta 'distribuzzjoni, il-kodiċi 367 00:17:28,258 --> 00:17:30,180 aħna kiteb għall pset3, għal dawk familjari, huwa 368 00:17:30,180 --> 00:17:32,230 qisu huwa ftit oġġett orjentati lejn. 369 00:17:32,230 --> 00:17:33,800 Risposta qasira hija, huwa. 370 00:17:33,800 --> 00:17:38,130 Huwa ta 'approssimazzjoni ta' kif inti tista 'tagħmel kodiċi oġġett orjentati lejn użu 371 00:17:38,130 --> 00:17:41,850 lingwa bħal C, iżda huwa xorta finalment proċedurali. 372 00:17:41,850 --> 00:17:44,900 M'hemm l-ebda metodi ġewwa ta il-varjabbli, kif tkun taf tara. 373 00:17:44,900 --> 00:17:46,180 Iżda huwa reminixxenti ta 'dak. 374 00:17:46,180 --> 00:17:48,780 U aħna ser tara li karatteristika darb'oħra meta nikbru biex PHP u JavaScript 375 00:17:48,780 --> 00:17:49,946 lejn l-aħħar tal-semestru. 376 00:17:49,946 --> 00:17:53,667 Iżda għal issa, jaħsbu li bħala ħjiel ta 'dak li ġejjin. 377 00:17:53,667 --> 00:17:54,250 Mistoqsija tajba. 378 00:17:54,250 --> 00:17:56,051 379 00:17:56,051 --> 00:17:56,550 Kull dritt. 380 00:17:56,550 --> 00:17:59,730 Allura jingħaqdu sort kien kif aħna affarijiet xellug aħħar darba. 381 00:17:59,730 --> 00:18:03,250 U jingħaqdu sort kien jibred fil- sens li kien tant ħafna aktar mgħaġġla, 382 00:18:03,250 --> 00:18:07,100 mill-inqas ibbażat fuq it-testijiet ta 'malajr għamilna aħħar ġimgħa, minn, ngħidu aħna, bubble 383 00:18:07,100 --> 00:18:08,710 sort, sort għażla, sort inserzjoni. 384 00:18:08,710 --> 00:18:11,780 U dak kien pulita wisq huwa biss kif konċiż u nadif 385 00:18:11,780 --> 00:18:12,810 inti tista 'tesprimi lilha. 386 00:18:12,810 --> 00:18:15,840 U dak ma ngħidu li kien ta 'fuq marbuta fuq il-running time ta jingħaqdu 387 00:18:15,840 --> 00:18:16,340 sort? 388 00:18:16,340 --> 00:18:17,633 389 00:18:17,633 --> 00:18:18,495 Yeah? 390 00:18:18,495 --> 00:18:19,360 >> UDJENZA: n log n? 391 00:18:19,360 --> 00:18:20,819 >> SPEAKER 1: n log n, id-dritt. n log n. 392 00:18:20,819 --> 00:18:23,776 U aħna ser terga 'lura għal dak li verament ifisser jew fejn dik ġejja minn, 393 00:18:23,776 --> 00:18:25,570 iżda dan kien aħjar minn dak iż-żmien running 394 00:18:25,570 --> 00:18:28,440 li rajna għal bubble għażla u sort inserzjoni? 395 00:18:28,440 --> 00:18:30,610 Allura n kwadrat. n kwadrat hija akbar minn dan, 396 00:18:30,610 --> 00:18:34,650 u anki jekk mhuwiex pjuttost ovvju, jafu li log n huwa iżgħar minn n, 397 00:18:34,650 --> 00:18:36,910 hekk jekk inti tagħmel n darbiet xi ħaġa iżgħar minn n, 398 00:18:36,910 --> 00:18:38,680 li għaddej biex tkun inqas minn n kwadrat. 399 00:18:38,680 --> 00:18:40,130 Huwa daqsxejn ta intwizzjoni hemmhekk. 400 00:18:40,130 --> 00:18:42,190 Iżda aħna mħallsa prezz għal dan. 401 00:18:42,190 --> 00:18:47,000 Kien aktar mgħaġġel, iżda tema li beda jitfaċċaw aħħar ġimgħa kien dan tradeoff. 402 00:18:47,000 --> 00:18:49,804 I ltqajna prestazzjoni aħjar ħin għaqli, imma dak 403 00:18:49,804 --> 00:18:52,470 ma I jkollu jonfoq fuq l-oħra idejn, sabiex jintlaħaq dak? 404 00:18:52,470 --> 00:18:53,591 >> UDJENZA: Memorja. 405 00:18:53,591 --> 00:18:54,465 SPEAKER 1: Say mill-ġdid? 406 00:18:54,465 --> 00:18:55,173 UDJENZA: Memorja. 407 00:18:55,173 --> 00:18:57,040 SPEAKER 1: Memorja, jew spazju aktar ġenerali. 408 00:18:57,040 --> 00:18:59,040 U ma kienx super ovvja mal-bnedmin tagħna, 409 00:18:59,040 --> 00:19:02,240 iżda tfakkar li l-voluntiera tagħna kienu żżid l quddiem u t-tisħiħ 410 00:19:02,240 --> 00:19:04,780 lura bħallikieku hemm firxa hawn, u bħala għalkemm hemm 411 00:19:04,780 --> 00:19:07,130 tieni firxa hawnhekk li huma jistgħu jużaw, għaliex aħna 412 00:19:07,130 --> 00:19:09,080 someplace meħtieġa li jingħaqdu dawk folks. 413 00:19:09,080 --> 00:19:11,480 Aħna ma setgħux biss tpartit lilhom fil-post. 414 00:19:11,480 --> 00:19:13,800 Allura jingħaqdu leverage sort huwa aktar spazju, li 415 00:19:13,800 --> 00:19:15,620 aħna ma bżonn ma l-algoritmi oħra, 416 00:19:15,620 --> 00:19:17,410 iżda l-rasu hija li huwa ħafna aktar mgħaġġla. 417 00:19:17,410 --> 00:19:20,780 U franchement, fl-ispazju dinja reali dawn RAM days--, disk hard space-- 418 00:19:20,780 --> 00:19:25,030 huwa relattivament irħis, u b'tali mod li mhux bilfors ħaġa ħażina. 419 00:19:25,030 --> 00:19:28,320 >> Mela ejja tagħti ħarsa, ftit aktar metodiku, fuq dak li għamilna 420 00:19:28,320 --> 00:19:30,220 u għaliex aħna qal li kien n log n. 421 00:19:30,220 --> 00:19:33,260 Allura hawn huma l-tmien numri u l- tmien voluntiera kellna aħħar darba. 422 00:19:33,260 --> 00:19:35,718 U l-ewwel ħaġa li Merge Sort qalulna li tagħmel kien dak? 423 00:19:35,718 --> 00:19:37,010 424 00:19:37,010 --> 00:19:38,010 UDJENZA: Divide fi tnejn. 425 00:19:38,010 --> 00:19:38,663 SPEAKER 1: Say mill-ġdid? 426 00:19:38,663 --> 00:19:39,650 UDJENZA: Divide fi tnejn. 427 00:19:39,650 --> 00:19:40,610 SPEAKER 1: Iddividi fi tnejn, id-dritt. 428 00:19:40,610 --> 00:19:42,818 Dan huwa ħafna reminixxenti ta ' il-ktieb tat-telefon, tal-firda 429 00:19:42,818 --> 00:19:44,220 u conquer aktar ġenerali. 430 00:19:44,220 --> 00:19:45,640 Allura ħarisna lejn in-nofs xellugi. 431 00:19:45,640 --> 00:19:48,700 U mbagħad darba għidna, sort in-nofs xellugi tal-elementi, 432 00:19:48,700 --> 00:19:49,690 dak li aħna ma jmiss ngħidu? 433 00:19:49,690 --> 00:19:51,210 434 00:19:51,210 --> 00:19:54,860 Sort in-nofs xellugi tal-xellug nofs, li ħallietna nsiru, 435 00:19:54,860 --> 00:19:57,570 wara diviż fi tnejn, tiffoka fuq erba 'u tnejn. 436 00:19:57,570 --> 00:20:01,280 >> Kif inti sort lista issa, fl isfar, ta 'daqs tnejn, uża Jingħaqdu Sort? 437 00:20:01,280 --> 00:20:02,330 438 00:20:02,330 --> 00:20:04,580 Ukoll jaqsam min-nofs, u sort l-nofs tax-xellug. 439 00:20:04,580 --> 00:20:07,100 U dan kien fejn l-affarijiet ltqajna qosor stupid ftit. 440 00:20:07,100 --> 00:20:10,720 Kif inti sort lista li l-ta daqs wieħed, bħal dan in-numru erbgħa hawn? 441 00:20:10,720 --> 00:20:12,330 442 00:20:12,330 --> 00:20:13,210 Huwa magħżula. 443 00:20:13,210 --> 00:20:14,200 Inti qed isir. 444 00:20:14,200 --> 00:20:17,300 >> Imma allura kif taħseb sort lista ta ' daqs wieħed meta huwa n-numru tnejn? 445 00:20:17,300 --> 00:20:21,640 Ukoll, l-istess ħaġa, iżda issa dak li kien l- tielet u l-pass ewlieni fil Sort Merge? 446 00:20:21,640 --> 00:20:24,020 You kellhom jingħaqdu ix-xellug nofs u l-nofs tal-lemin. 447 00:20:24,020 --> 00:20:26,580 U ladarba għamilna li, ħarisna għal erbgħa, ħarisna lejn tnejn. 448 00:20:26,580 --> 00:20:28,750 Aħna iddeċieda id-dritt, ovvjament tnejn jiġi l-ewwel, 449 00:20:28,750 --> 00:20:31,840 hekk aħna tpoġġi tnejn fil tagħha post, segwit minn erbgħa. 450 00:20:31,840 --> 00:20:35,010 U issa inti għandek tip ta 'kontrina, u dan huwa tip ta 'karatteristika 451 00:20:35,010 --> 00:20:37,570 ta 'algoriżmu bħal Merge Sort, kontrina fil-memorja. 452 00:20:37,570 --> 00:20:40,240 Liema kienet l-linja li jmiss tal-istorja? 453 00:20:40,240 --> 00:20:41,780 X'għandi I jkun qed jiffoka fuq li jmiss? 454 00:20:41,780 --> 00:20:43,110 455 00:20:43,110 --> 00:20:47,350 Id-nofs tal-lemin tal-xellug nofs, Liema hija sitta u tmienja. 456 00:20:47,350 --> 00:20:50,320 >> So let me biss pass permezz ta 'dan mingħajr belaboring il-punt wisq. 457 00:20:50,320 --> 00:20:53,330 Sitta u tmienja, allura sitta hija magħżula, tmienja huwa magħżul. 458 00:20:53,330 --> 00:20:57,190 Jingħaqdu flimkien bħal dik, u issa l-pass kbir li jmiss 459 00:20:57,190 --> 00:21:00,990 huwa, naturalment, isolvi l-nofs tal-lemin minn l-ewwel pass ta 'din algoritmu. 460 00:21:00,990 --> 00:21:02,870 Allura aħna niffukaw fuq waħda, tlieta, seba ', ħamsa. 461 00:21:02,870 --> 00:21:04,540 Aħna mbagħad tiffoka fuq in-nofs xellugi. 462 00:21:04,540 --> 00:21:09,400 Il-half-xellug ta 'dik, l-nofs tal-lemin tal- li, u mbagħad jingħaqdu f'waħda u tlieta. 463 00:21:09,400 --> 00:21:13,100 Imbagħad il-nofs tal-lemin, mbagħad titħalla nofs ta 'dan, allura l-nofs tal-lemin ta' dan. 464 00:21:13,100 --> 00:21:15,985 Jingħaqdu fil, u issa liema pass jibqa? 465 00:21:15,985 --> 00:21:18,040 466 00:21:18,040 --> 00:21:22,460 Jingħaqdu in-nofs xellugi kbar u l-big nofs tal-lemin, sabiex wieħed jinżel hemmhekk, 467 00:21:22,460 --> 00:21:27,330 imbagħad tnejn, imbagħad tlieta, imbagħad erba, allura ħames, allura sitta, allura seba ', imbagħad tmienja. 468 00:21:27,330 --> 00:21:31,990 >> Allura issa għaliex dan huwa finalment tiżvela, speċjalment jekk nu logaritmi aktar 469 00:21:31,990 --> 00:21:35,487 ġeneralment pjuttost jaħarbu inti, inqas fil-memorja riċenti? 470 00:21:35,487 --> 00:21:37,070 Ukoll, avviż l-għoli ta 'dan il-ħaġa. 471 00:21:37,070 --> 00:21:41,230 Kellna tmien elementi, u aħna maqsuma lilha mill tnejn, minn tnejn, bi tnejn. 472 00:21:41,230 --> 00:21:44,590 Allura log bażi tnejn tmienja tagħtina tlieta. 473 00:21:44,590 --> 00:21:45,640 474 00:21:45,640 --> 00:21:48,540 U trust me fuq li jekk a imċajpra ftit fuq dak. 475 00:21:48,540 --> 00:21:54,710 Iżda log bażi tnejn ta 'tmienja hija tlieta, hekk aħna ghamilt tliet saffi ta 'amalgamazzjoni. 476 00:21:54,710 --> 00:21:57,170 U meta aħna magħquda elementi, kif ħafna elementi 477 00:21:57,170 --> 00:21:58,950 ma nħarsu lejn fuq kull waħda minn dawk il-ringieli? 478 00:21:58,950 --> 00:22:00,212 479 00:22:00,212 --> 00:22:01,437 A total ta n, id-dritt? 480 00:22:01,437 --> 00:22:04,020 Minħabba li jingħaqdu l-filliera ta 'fuq, anke jekk aħna ma kien frammentat, 481 00:22:04,020 --> 00:22:05,990 aħna finalment mimsus kull numru darba. 482 00:22:05,990 --> 00:22:09,054 U fit-tieni ringiela, biex jingħaqdu dawn il-listi ta 'daqs tnejn, 483 00:22:09,054 --> 00:22:10,470 kellna tmissx kull element darba. 484 00:22:10,470 --> 00:22:12,690 U allura hawnhekk verament b'mod ċar fl-aħħar ringiela, 485 00:22:12,690 --> 00:22:15,430 kellna tmissx kull wieħed minn dawk Elementi darba, imma darba biss, 486 00:22:15,430 --> 00:22:18,400 hekk hawnhekk tinsab, allura, log n tagħna n. 487 00:22:18,400 --> 00:22:21,780 >> U issa biss biex jagħmlu l-affarijiet ftit aktar formali għal ftit mument, jekk inti 488 00:22:21,780 --> 00:22:24,260 kellhom issa tanalizza din fuq tip ta 'livell ogħla 489 00:22:24,260 --> 00:22:28,340 u jippruvaw biex jiddeċiedu, sew kif jista inti tmur dwar jesprimu 490 00:22:28,340 --> 00:22:31,780 l-running time ta 'dan algoritmu biss billi tħares lejn dan u mhux 491 00:22:31,780 --> 00:22:33,590 bl-użu ta 'eżempju artifiċjali? 492 00:22:33,590 --> 00:22:36,590 Well, kemm ħin inti tgħid a pass bħal dan bl-isfar se tieħu, 493 00:22:36,590 --> 00:22:37,173 jekk n <2 ritorn? 494 00:22:37,173 --> 00:22:38,840 495 00:22:38,840 --> 00:22:39,830 Li l-O kbira ta 'dak? 496 00:22:39,830 --> 00:22:41,450 497 00:22:41,450 --> 00:22:44,540 So jien jaraw wieħed, hekk pass wieħed, forsi żewġ passi għaliex dan huwa jekk 498 00:22:44,540 --> 00:22:47,110 u mbagħad jirritornaw, imma hija ħin kostanti, id-dritt? 499 00:22:47,110 --> 00:22:49,960 Allura aħna qal O (1), u li l- kif I ser jesprimu dan. 500 00:22:49,960 --> 00:22:51,480 T, jkun biss running time. 501 00:22:51,480 --> 00:22:54,150 n huwa d-daqs ta 'l-input, hekk T (n), biss mod fancy 502 00:22:54,150 --> 00:22:56,330 ta 'tgħid it-tmexxija ħin input mogħti d-daqs n 503 00:22:56,330 --> 00:23:00,220 se tkun fuq l-ordni ta 'żmien kostanti, fil O (1). 504 00:23:00,220 --> 00:23:01,970 >> Iżda altrimenti, dak dwar dan? 505 00:23:01,970 --> 00:23:05,660 Kif inti tesprimi l- żmien ta 'din il-linja isfar running? 506 00:23:05,660 --> 00:23:06,250 T ta 'dak? 507 00:23:06,250 --> 00:23:09,440 508 00:23:09,440 --> 00:23:12,665 Tista 'tip ta' iqarrqu hawn u iwieġeb il-mistoqsija tiegħi ċiklikament. 509 00:23:12,665 --> 00:23:14,770 510 00:23:14,770 --> 00:23:17,900 Allura jekk il-ħin jibda fil ġenerali aħna biss ngħid huwa T (n). 511 00:23:17,900 --> 00:23:18,950 512 00:23:18,950 --> 00:23:22,490 U issa int tip ta 'punting hawn u qal, ukoll, biss issolvi in-nofs xellugi, 513 00:23:22,490 --> 00:23:23,920 u mbagħad issolvi l-nofs tal-lemin. 514 00:23:23,920 --> 00:23:27,520 Kif tista aħna simbolikament jirrappreżentaw l-running time ta 'din il-linja isfar? 515 00:23:27,520 --> 00:23:28,020 T ta 'dak? 516 00:23:28,020 --> 00:23:29,360 X'hemm-daqs tal-input? 517 00:23:29,360 --> 00:23:30,510 518 00:23:30,510 --> 00:23:31,057 n matul tnejn. 519 00:23:31,057 --> 00:23:32,140 Għaliex ma I biss jgħidu li? 520 00:23:32,140 --> 00:23:36,449 U allura dan hu T ieħor (n / 2) u mbagħad darb'oħra, jekk I jingħaqdu żewġ nofsijiet magħżula, 521 00:23:36,449 --> 00:23:38,615 kemm elementi ħafna jien ser li jkollhom tmissx total? 522 00:23:38,615 --> 00:23:39,780 523 00:23:39,780 --> 00:23:40,320 n. 524 00:23:40,320 --> 00:23:42,790 So I tista 'tesprimi dan, biss sabiex ikunu tip ta 'fancy, 525 00:23:42,790 --> 00:23:44,430 bħala l-running time b'mod ġenerali. 526 00:23:44,430 --> 00:23:51,140 T (n) huwa biss il-ħin running ta 'T (n / 2), plus T (n / 2), ħalla nofs u nofs tal-lemin, 527 00:23:51,140 --> 00:23:55,360 plus O (n), li huwa probabbilment n passi, imma forsi, jekk jien jużaw żewġ swaba, 528 00:23:55,360 --> 00:23:57,960 huwa darbtejn daqs passi, imma hija lineari. 529 00:23:57,960 --> 00:24:00,440 Huwa xi numru ta 'passi li l-fattur ta 'n, 530 00:24:00,440 --> 00:24:02,270 hekk aħna jistgħu jifformulaw dan bħala dan. 531 00:24:02,270 --> 00:24:05,550 U dan huwa fejn issa aħna ser Punt għall- lura l-iskola għolja matematika textbook tagħna 532 00:24:05,550 --> 00:24:10,290 aħna qed li rikorrenza finalment jispiċċa daqs dan, n drabi log n, 533 00:24:10,290 --> 00:24:12,530 jekk inti fil-fatt tagħmel out l-matematika b'mod aktar formali. 534 00:24:12,530 --> 00:24:13,950 >> Allura dak biss żewġ perspettivi. 535 00:24:13,950 --> 00:24:17,500 Wieħed numerikament bi hard-kodifikati eżempju rappreżentattiv 536 00:24:17,500 --> 00:24:21,140 jużaw tmien numri, u aktar ħarsa ġenerali lejn kif sirna hemmhekk. 537 00:24:21,140 --> 00:24:25,670 Imma x'hemm verament interessanti hawn hija, għal darb'oħra, dan il-kunċett ta 'ċikliżmu. 538 00:24:25,670 --> 00:24:26,900 Jien ma jużaw għall loops. 539 00:24:26,900 --> 00:24:29,860 Jien tip ta 'tiddefinixxi xi ħaġa f'termini ta nnifisha, 540 00:24:29,860 --> 00:24:31,950 mhux biss ma 'dan funzjoni matematika, 541 00:24:31,950 --> 00:24:34,860 iżda wkoll f'termini ta 'dan il-kodiċi psewdo. 542 00:24:34,860 --> 00:24:38,260 Dan il-kodiċi psewdo huwa rikursivi f'dak tnejn ta 'linji tagħha 543 00:24:38,260 --> 00:24:42,310 huwa essenzjalment javżak li tmur jużaw ruħha li ssolvi iżgħar 544 00:24:42,310 --> 00:24:45,400 problema ta 'daqs iżgħar, u mbagħad għal darb'oħra u għal darb'oħra 545 00:24:45,400 --> 00:24:48,820 u għal darb'oħra sakemm aħna Whittle dan stabbiliti għal din l-hekk imsejħa każ bażi. 546 00:24:48,820 --> 00:24:52,810 >> Mela ejja attwalment jiġbed aktar konvinċenti take-away minn dan kif ġej. 547 00:24:52,810 --> 00:24:58,420 Let me go fis gedit u tieħu nħarsu lejn uħud mill-kodiċi sors tal-lum, 548 00:24:58,420 --> 00:24:59,930 b'mod partikolari f'dan l-eżempju hawn. 549 00:24:59,930 --> 00:25:03,709 Sigma 0, li apparentement żżid in-numri wieħed permezz n. 550 00:25:03,709 --> 00:25:05,750 Mela ejja ara x'hemm familjari u mhux familjari hawn. 551 00:25:05,750 --> 00:25:08,690 L-ewwel għandna koppja ta ' jinkludi, b'hekk m'hemm xejn ġdid. 552 00:25:08,690 --> 00:25:09,190 Prototip. 553 00:25:09,190 --> 00:25:11,370 Jien imċajpra ftit fuq dan wara ftit jiem, 554 00:25:11,370 --> 00:25:13,790 imma dak li ma aħna ngħidu prototip ta 'funzjoni hu? 555 00:25:13,790 --> 00:25:15,099 556 00:25:15,099 --> 00:25:16,015 UDJENZA: [inaudible]. 557 00:25:16,015 --> 00:25:16,905 SPEAKER 1: X'hemm li? 558 00:25:16,905 --> 00:25:17,800 UDJENZA: Aħna jħabbar dan. 559 00:25:17,800 --> 00:25:18,883 SPEAKER 1: Aħna jħabbar dan. 560 00:25:18,883 --> 00:25:22,290 Allura inti qed jgħallmu Clang, ħej, mhux attwalment timplimenta dan għadu, 561 00:25:22,290 --> 00:25:25,740 iżda x'imkien fil dan il-fajl, preżumibbilment, se tkun funzjoni msejħa liema? 562 00:25:25,740 --> 00:25:26,930 563 00:25:26,930 --> 00:25:27,540 Sigma. 564 00:25:27,540 --> 00:25:30,540 U dan huwa biss wegħda li li għaddej biex teżamina bħal dan. 565 00:25:30,540 --> 00:25:33,720 Huwa ser jieħu integer bħala input-- u I tista 'tkun aktar espliċita 566 00:25:33,720 --> 00:25:36,570 u jgħidu int n --and huwa ser jirritorna l int, 567 00:25:36,570 --> 00:25:39,900 iżda mezzi punto virgola, mm, jien ser tikseb madwar biex jiġi implimentat dan ftit aktar tard. 568 00:25:39,900 --> 00:25:40,989 Għal darb'oħra, Clang huwa dumb. 569 00:25:40,989 --> 00:25:43,280 Huwa biss ser tkun taf liema inti tgħid li fuq għal isfel, 570 00:25:43,280 --> 00:25:45,765 għalhekk għandna bżonn biex tagħti mill-inqas huwa ħjiel ta 'dak li ġejjin. 571 00:25:45,765 --> 00:25:47,330 >> Issa ejja nħarsu lejn prinċipali hawnhekk. 572 00:25:47,330 --> 00:25:50,040 Ejja iscroll hawn u ara dak prinċipali qed tagħmel. 573 00:25:50,040 --> 00:25:53,780 Mhuwiex dak twil ta 'funzjoni, u fil-fatt il tibni hawnhekk huwa familjari. 574 00:25:53,780 --> 00:25:57,590 Niddikjara n varjabbli, u mbagħad I jiffittaw bis-utent mill-ġdid u għal darb'oħra 575 00:25:57,590 --> 00:26:01,880 għal numru sħiħ pożittiv jużaw getInt, u biss ħruġ minn dan loop 576 00:26:01,880 --> 00:26:03,280 ladarba l-utent ikun ikkonforma. 577 00:26:03,280 --> 00:26:05,670 Do Filwaqt, konna użati biex jiffittaw bis-utent b'dan il-mod. 578 00:26:05,670 --> 00:26:06,670 Issa dan huwa interessanti. 579 00:26:06,670 --> 00:26:08,510 Niddikjara li int imsejħa "risposta." 580 00:26:08,510 --> 00:26:11,420 I tassenja din il-valur tar-ritorn ta 'funzjoni msejħa "sigma." 581 00:26:11,420 --> 00:26:15,200 I do not know dak li ma s'issa, iżda I remember tiddikjarah mument ilu. 582 00:26:15,200 --> 00:26:18,310 U mbagħad jien tgħaddi fil- valur li l-utent ittajpjat fil, n, 583 00:26:18,310 --> 00:26:20,420 u mbagħad I tirrapporta l-risposta. 584 00:26:20,420 --> 00:26:22,260 Well ejja iscroll lura għal ftit mument. 585 00:26:22,260 --> 00:26:28,620 Ejja imorru quddiem fis dan id-direttorju, jagħmlu sigma 0, u fil-fatt imexxu dan il-programm 586 00:26:28,620 --> 00:26:30,490 u tara x'jiġri. 587 00:26:30,490 --> 00:26:35,930 Mela jekk jien aqbad u run dan il-programm, ./sigma-0, 588 00:26:35,930 --> 00:26:40,139 u I tip fil pożittiva integer bħall tnejn, Sigma, 589 00:26:40,139 --> 00:26:43,180 bħala s-simbolu Grieg jimplika, huwa biss ser jammontaw-numri kollha mill- 590 00:26:43,180 --> 00:26:44,320 żero fuq sa tnejn. 591 00:26:44,320 --> 00:26:46,560 Allura 0 plus 1 plus 2. 592 00:26:46,560 --> 00:26:48,830 Allura dan għandu nisperaw tagħti me 3. 593 00:26:48,830 --> 00:26:49,750 Li kollox huwa qed jagħmel. 594 00:26:49,750 --> 00:26:52,690 U bl-istess mod, jekk I run dan jerġa u I tagħtiha n-numru tlieta, 595 00:26:52,690 --> 00:26:56,721 li għamilhom 3 plus 2, b'tali mod li 5, flimkien ma '1 għandu jagħti me 6. 596 00:26:56,721 --> 00:26:59,470 U mbagħad jekk niġi verament crazy u tibda ittajpjar f'numri akbar, 597 00:26:59,470 --> 00:27:01,290 hija għandha tagħti me somom akbar u akbar. 598 00:27:01,290 --> 00:27:02,250 Allura li kollox. 599 00:27:02,250 --> 00:27:04,010 >> Allura dak li ma sigma look like? 600 00:27:04,010 --> 00:27:05,430 Ukoll, huwa pjuttost sempliċi. 601 00:27:05,430 --> 00:27:08,940 Huwa mod kif aħna jista 'jkollha implimentati dan għall-aħħar ftit ġimgħat. 602 00:27:08,940 --> 00:27:11,120 "Int" se jkun it-tip ta 'ritorn. 603 00:27:11,120 --> 00:27:14,330 Sigma huwa l-isem, u li tieħu m varjabbli minflok n. 604 00:27:14,330 --> 00:27:15,940 I ser bidla li top up. 605 00:27:15,940 --> 00:27:17,340 Imbagħad din hija biss check sanità. 606 00:27:17,340 --> 00:27:18,430 607 00:27:18,430 --> 00:27:19,950 Aħna ser tara għaliex fil-mument. 608 00:27:19,950 --> 00:27:24,220 Issa Niddikjara varjabbli ieħor, somma, initialize għal żero. 609 00:27:24,220 --> 00:27:28,140 Imbagħad I jkollhom din Għal loop mtennija, apparentement għaċ-ċarezza, 610 00:27:28,140 --> 00:27:33,810 mill-i = 1 fuq sa = m, li huwa ikun x'ikun l-utent ittajpjat fil, u mbagħad I 611 00:27:33,810 --> 00:27:35,690 inkrement-somma bħal dan. 612 00:27:35,690 --> 00:27:37,360 U mbagħad jirritornaw is-somma. 613 00:27:37,360 --> 00:27:38,440 >> Allura koppja ta 'mistoqsijiet. 614 00:27:38,440 --> 00:27:42,370 Wieħed, I jitolbu fil-kummenti tiegħi li dan jevita riskju ta 'loop infinita. 615 00:27:42,370 --> 00:27:45,620 Għaliex kieku tgħaddi f'numru negattiv jinduċu, potenzjalment, loop infinita? 616 00:27:45,620 --> 00:27:49,396 617 00:27:49,396 --> 00:27:51,290 >> UDJENZA: Inti qatt ma ser ikollok jilħqu m. 618 00:27:51,290 --> 00:27:52,880 >> SPEAKER 1: Qatt jilħqu m. 619 00:27:52,880 --> 00:27:55,880 Iżda m huwa mgħoddi fil, so ejja jikkunsidraw eżempju sempliċi. 620 00:27:55,880 --> 00:27:58,510 Jekk m huwa mgħoddi fil mill- utent bħala wieħed negattiv. 621 00:27:58,510 --> 00:28:00,059 Irrispettivament ta 'prinċipali. 622 00:28:00,059 --> 00:28:01,850 Main jipproteġi lilna minn dan ukoll, hekk jien biss 623 00:28:01,850 --> 00:28:04,680 tkun verament anali ma ' sigma li wkoll tagħmel żgur 624 00:28:04,680 --> 00:28:06,540 li l-input ma tistax tkun negattiva. 625 00:28:06,540 --> 00:28:10,130 Mela jekk m huwa negattiv, xi ħaġa bħal waħda negattiva. 626 00:28:10,130 --> 00:28:11,930 X'hemm jiġri? 627 00:28:11,930 --> 00:28:14,390 Well, I se nikseb initialized għal wieħed, 628 00:28:14,390 --> 00:28:19,060 u mbagħad i se tkun inqas minn jew ugwali għal m? 629 00:28:19,060 --> 00:28:24,130 630 00:28:24,130 --> 00:28:24,765 >> Stand by. 631 00:28:24,765 --> 00:28:26,930 632 00:28:26,930 --> 00:28:29,370 Li was-- ejja ma, ejja nix din l-istorja. 633 00:28:29,370 --> 00:28:32,780 I ma jistaqsu din il-kwistjoni, minħabba ir-riskju li jiena jalludi għal 634 00:28:32,780 --> 00:28:38,360 huwa ma jiġri għaliex i huwa dejjem se jkun OK than-- akbar, 635 00:28:38,360 --> 00:28:39,871 I tinġibed din id-domanda. 636 00:28:39,871 --> 00:28:40,370 OK. 637 00:28:40,370 --> 00:28:42,030 Ejja tiffoka biss fuq din il-parti hawn. 638 00:28:42,030 --> 00:28:44,210 639 00:28:44,210 --> 00:28:48,830 Għaliex ma Niddikjara xi barra tal-linja? 640 00:28:48,830 --> 00:28:52,010 Avviż fuq il-linja 49 stajt ddikjarat i ġewwa tal-loop, 641 00:28:52,010 --> 00:28:54,950 imma online 48 stajt ddikjaraw madwar barra. 642 00:28:54,950 --> 00:28:55,695 Yeah. 643 00:28:55,695 --> 00:28:56,611 UDJENZA: [inaudible]. 644 00:28:56,611 --> 00:28:58,734 645 00:28:58,734 --> 00:28:59,400 SPEAKER 1: Sure. 646 00:28:59,400 --> 00:29:03,360 Allura l-ewwel u qabel kollox I ċertament ma tixtieq li tiddikjara u initialize somma 647 00:29:03,360 --> 00:29:06,130 għal żero ġewwa tal- loop fuq kull iterazzjoni, 648 00:29:06,130 --> 00:29:09,370 minħabba li dan itellef b'mod ċar l- għan tal jingħaddu up-numri. 649 00:29:09,370 --> 00:29:11,770 Nixtieq iżommu jinbidlu il-valur lura għal żero. 650 00:29:11,770 --> 00:29:17,992 U wkoll, x'hemm ieħor aktar arcane raġuni għal dik l-istess deċiżjoni disinn? 651 00:29:17,992 --> 00:29:18,954 Yeah. 652 00:29:18,954 --> 00:29:20,279 >> UDJENZA: [inaudible]. 653 00:29:20,279 --> 00:29:21,070 SPEAKER 1: Eżattament. 654 00:29:21,070 --> 00:29:24,060 Irrid li jkollhom aċċess għaliha barra tal-linja wisq fuq dak line? 655 00:29:24,060 --> 00:29:25,390 656 00:29:25,390 --> 00:29:26,400 Fuq 53. 657 00:29:26,400 --> 00:29:29,910 U bbażat fuq ir-regola tagħna ta 'thumb minn koppja ta 'lectures ilu, 658 00:29:29,910 --> 00:29:33,680 varjabbli huma scoped, verament, l- braces kaboċċi li jinkludu lilhom. 659 00:29:33,680 --> 00:29:38,190 Mela jekk jien ma jiddikjarawx somma ġewwa ta 'dawn ċingi kaboċċi ta' barra, 660 00:29:38,190 --> 00:29:40,250 I ma tistax tużah fil-linja 53. 661 00:29:40,250 --> 00:29:43,160 Fi kliem ieħor, jekk I ddikjarat somma hawn, jew saħansitra fi ħdan il- 662 00:29:43,160 --> 00:29:45,410 Għal loop, I ma setax aċċess għaliha fi 53. 663 00:29:45,410 --> 00:29:47,150 Il-varjabbli tkun marret effettiv. 664 00:29:47,150 --> 00:29:48,579 Allura ftit ta 'raġunijiet hemmhekk. 665 00:29:48,579 --> 00:29:50,370 Imma issa ejja mmorru lura u tara x'jiġri. 666 00:29:50,370 --> 00:29:51,730 Allura sigma gets imsejħa. 667 00:29:51,730 --> 00:29:55,640 Hija żżid up 1 plus 2, jew 1 plus 2 plus 3, u mbagħad lura l-valur, 668 00:29:55,640 --> 00:29:59,660 taħżnu fil-tweġiba, u printf hawn huwa għaliex jien jaraw fuq l-iskrin. 669 00:29:59,660 --> 00:30:03,079 Allura dan huwa dak li aħna ser sejħa ta 'iterattiv approċċ, fejn iterazzjoni biss 670 00:30:03,079 --> 00:30:03,870 tfisser li tuża loop. 671 00:30:03,870 --> 00:30:06,900 A Għal loop, linja Filwaqt, Do Filwaqt loop, biss tagħmel xi ħaġa mill-ġdid 672 00:30:06,900 --> 00:30:08,380 u għal darb'oħra u għal darb'oħra. 673 00:30:08,380 --> 00:30:13,505 >> Iżda sigma huwa tip ta 'funzjoni pulita fil li I jista 'jimplimenta b'mod differenti. 674 00:30:13,505 --> 00:30:14,620 675 00:30:14,620 --> 00:30:19,120 What dwar dan, li biss sabiex ikunu tip ta 'kessaħ, 676 00:30:19,120 --> 00:30:21,880 let me verament jeħles ta 'lott ta' distrazzjoni 677 00:30:21,880 --> 00:30:24,380 għaliex din il-funzjoni huwa verament pjuttost sempliċi. 678 00:30:24,380 --> 00:30:27,780 Ejja Whittle l-isfel biss għal-linji ewlenin tagħha erba 679 00:30:27,780 --> 00:30:30,410 u jeħles l- kummenti u braces kaboċċi. 680 00:30:30,410 --> 00:30:34,334 Dan huwa tip ta 'mind-blowing implimentazzjoni alternattiva. 681 00:30:34,334 --> 00:30:37,250 Kull dritt, forsi mhux nfiħ mind-, imma hija tip ta 'sexier, id-dritt, 682 00:30:37,250 --> 00:30:39,920 li tħares lejn dan tant aktar konċiż. 683 00:30:39,920 --> 00:30:43,120 Bil biss erba 'linji ta' kodiċi, I l-ewwel ikollhom dan il-kontroll sanità. 684 00:30:43,120 --> 00:30:45,732 Jekk m hija inqas minn jew ugwali għal żero, sigma jagħmel ebda sens. 685 00:30:45,732 --> 00:30:48,190 Huwa biss suppost li jkun F'dan il-każ għal numri pożittivi, 686 00:30:48,190 --> 00:30:50,340 hekk jien biss se ritorn żero arbitrarjament 687 00:30:50,340 --> 00:30:53,210 sabiex inkunu inqas ikollhom xi hekk imsejħa każ bażi. 688 00:30:53,210 --> 00:30:54,430 >> Iżda hawn l-sbuħija. 689 00:30:54,430 --> 00:30:59,930 Il-intier ta 'din l-idea, li żżid l- b'numri minn 1 sa n, jew m f'dan il-każ, 690 00:30:59,930 --> 00:31:02,630 jista 'jsir billi tip ta' tgħaddi l-Buck. 691 00:31:02,630 --> 00:31:04,947 Ukoll, dak li huwa s-somma ta '1 sa m? 692 00:31:04,947 --> 00:31:05,780 Well, inti taf liema? 693 00:31:05,780 --> 00:31:11,949 Huwa l-istess bħala s-somma ta 'm flimkien mat-total ta '1 sa m minus 1. 694 00:31:11,949 --> 00:31:12,740 Well inti taf liema? 695 00:31:12,740 --> 00:31:13,940 X'hemm sigma ta m minus 1? 696 00:31:13,940 --> 00:31:17,860 Ukoll, jekk inti tip ta 'ssegwi dan loġikament, huwa l-istess bħal m minus 1 697 00:31:17,860 --> 00:31:21,415 plus sigma tat m minus 2. 698 00:31:21,415 --> 00:31:22,480 699 00:31:22,480 --> 00:31:26,012 Allura inti tista 'tip ta' just-- dan huwa simili, jekk int biss 700 00:31:26,012 --> 00:31:28,220 jippruvaw idejqu xi ħabib u dawn nistaqsik mistoqsija, 701 00:31:28,220 --> 00:31:31,344 inti tip ta jirrispondu bil-kwistjoni, inti tista 'tip ta' jżomm tgħaddi l-Buck. 702 00:31:31,344 --> 00:31:34,560 Imma x'hemm importanti hu li jekk inti żżomm jagħmlu l-kwistjoni iżgħar 703 00:31:34,560 --> 00:31:36,910 u iżgħar, int ma tistaqsi x'hemm sigma 704 00:31:36,910 --> 00:31:39,116 ta n, x'hemm sigma ta n, x'hemm sigma ta n? 705 00:31:39,116 --> 00:31:40,990 Inti qed tistaqsi x'inhu sigma ta n, x'hemm sigma 706 00:31:40,990 --> 00:31:42,839 ta n minus 1, x'hemm sigma tal minus 2 n? 707 00:31:42,839 --> 00:31:44,880 Eventwalment mistoqsija tiegħek se ssir liema? 708 00:31:44,880 --> 00:31:50,250 X'inhu sigma ta 'wieħed jew żero, xi valur żgħir ħafna, 709 00:31:50,250 --> 00:31:52,220 u hekk kif inti nikseb li, ħabib tiegħek, 710 00:31:52,220 --> 00:31:54,350 inti mhux ser jistaqsu l-istess kwistjoni mill-ġdid, 711 00:31:54,350 --> 00:31:55,975 int biss se ngħid, oh huwa żero. 712 00:31:55,975 --> 00:31:58,490 We qed isir playing dan it-tip ta 'logħba ċiklika stupid. 713 00:31:58,490 --> 00:32:02,950 >> Allura recursion huwa l-att fil-programmazzjoni ta 'funzjoni ssejjaħ lilha nnifisha. 714 00:32:02,950 --> 00:32:06,630 Dan il-programm, meta miġbura u run, huwa ser jaġixxu eżattament l-istess mod, 715 00:32:06,630 --> 00:32:09,620 imma x'hemm importanti hija li fi ħdan ta 'funzjoni msejħa sigma, 716 00:32:09,620 --> 00:32:13,150 hemm linja ta 'kodiċi wherein aħna qed ssejjaħ lilna nfusna, 717 00:32:13,150 --> 00:32:14,980 li normalment jkun ħażin. 718 00:32:14,980 --> 00:32:21,160 Per eżempju, jekk dak I-ewwel kkompilata dan, sabiex tagħmel sigma-- 719 00:32:21,160 --> 00:32:22,710 jagħmlu sigma 1 ./sigma-1. 720 00:32:22,710 --> 00:32:25,050 721 00:32:25,050 --> 00:32:27,690 Numru sħiħ pożittiv, jekk jogħġbok, 50 1275. 722 00:32:27,690 --> 00:32:30,810 Allura dak li l-funzjoni jidher li jkun, ibbażata fuq test wieħed, korretta. 723 00:32:30,810 --> 00:32:34,917 Imma x'jiġri jekk I jiksbu ftit perikolużi u ħassar l-hekk imsejħa każ bażi, 724 00:32:34,917 --> 00:32:37,750 u biss jgħidu, ukoll jien biss tagħmel dan aktar ikkumplikat milli hi. 725 00:32:37,750 --> 00:32:42,450 Ejja biss kkalkulata l-sigma billi mu mbagħad jiżdied 726 00:32:42,450 --> 00:32:44,564 fil sigma ta 'wieħed m nieqes? 727 00:32:44,564 --> 00:32:45,980 Ukoll, dak li jiġri hawn? 728 00:32:45,980 --> 00:32:47,140 Ejja zoom out. 729 00:32:47,140 --> 00:32:52,920 Ejja recompile-programm, isalvawh, recompile-programm, 730 00:32:52,920 --> 00:33:00,450 u mbagħad lesti ./sigma 1 zooming, jidħol numru sħiħ pożittiv jekk jogħġbok, 50. 731 00:33:00,450 --> 00:33:02,180 732 00:33:02,180 --> 00:33:04,430 Kemm inti lest li fess li jaraw li? 733 00:33:04,430 --> 00:33:04,950 >> OK. 734 00:33:04,950 --> 00:33:06,690 Allura dan jista 'jiġri għal numru ta 'raġunijiet, 735 00:33:06,690 --> 00:33:09,148 u franchement din il-ġimgħa aħna qed waslet biex jagħtuk aktar minnhom. 736 00:33:09,148 --> 00:33:11,780 Iżda f'dan il-każ, ipprova għal raġuni lura 737 00:33:11,780 --> 00:33:14,430 x'seta 'ġara hawn? 738 00:33:14,430 --> 00:33:17,400 Tort Segmentazzjoni, għidna aħħar żmien, jirreferi għal segment ta 'memorja. 739 00:33:17,400 --> 00:33:18,690 Xi ħaġa ħażina ġara. 740 00:33:18,690 --> 00:33:21,550 Imma dak ma kien mekkanikament li marru awry 741 00:33:21,550 --> 00:33:25,000 hawnhekk għaliex ta 'tneħħija tiegħi ta 'dik hekk imsejħa każ bażi, 742 00:33:25,000 --> 00:33:26,870 fejn I lura valur hard-coded? 743 00:33:26,870 --> 00:33:28,970 744 00:33:28,970 --> 00:33:30,460 What do you think marret ħażin? 745 00:33:30,460 --> 00:33:31,219 Yeah. 746 00:33:31,219 --> 00:33:32,135 >> UDJENZA: [inaudible]. 747 00:33:32,135 --> 00:33:36,387 748 00:33:36,387 --> 00:33:36,970 SPEAKER 1: Ah. 749 00:33:36,970 --> 00:33:37,550 Mistoqsija tajba. 750 00:33:37,550 --> 00:33:39,508 Allura l-daqs tan-numru li kien I jingħaddu up 751 00:33:39,508 --> 00:33:41,920 ltqajna daqshekk kbira li jinqabeż id-daqs tal-ispazju memorja. 752 00:33:41,920 --> 00:33:44,640 Idea tajba, iżda mhux fundamentalment se jikkawżaw crash. 753 00:33:44,640 --> 00:33:48,230 Li jista 'jikkawża overflow numru sħiħ, fejn il-bits ftit flip fuq 754 00:33:48,230 --> 00:33:51,760 u allura aħna żball verament kbir numru simili għal numru negattiv, 755 00:33:51,760 --> 00:33:53,260 iżda li hi stess mhux se jikkawża crash. 756 00:33:53,260 --> 00:33:55,509 Minħabba fl-aħħar tal- jum ta int għadu 32 bits. 757 00:33:55,509 --> 00:33:57,640 Int mhux ser aċċidentalment steal daqsxejn 33. 758 00:33:57,640 --> 00:33:58,431 Iżda riflessjoni tajba. 759 00:33:58,431 --> 00:33:58,984 Yeah. 760 00:33:58,984 --> 00:33:59,900 >> UDJENZA: [inaudible]. 761 00:33:59,900 --> 00:34:00,551 762 00:34:00,551 --> 00:34:02,300 SPEAKER 1: Il-metodu qatt tieqaf taħdem, 763 00:34:02,300 --> 00:34:06,658 u tabilħaqq hija ssejjaħ lilha nnifisha mill-ġdid u għal darb'oħra u għal darb'oħra u għal darb'oħra 764 00:34:06,658 --> 00:34:08,449 u għal darb'oħra, u ħadd minn dawk il-funzjonijiet qatt 765 00:34:08,449 --> 00:34:13,310 finitura minħabba linja unika tagħhom ta ' kodiċi jitlob themself ġdid u għal darb'oħra 766 00:34:13,310 --> 00:34:14,219 u għal darb'oħra. 767 00:34:14,219 --> 00:34:16,080 U x'hemm verament jiġri hawn, u issa aħna 768 00:34:16,080 --> 00:34:18,100 tista tip ta 'tiġbed dan pictorially. 769 00:34:18,100 --> 00:34:20,899 Let me go fuq għal stampa għal ftit mument. 770 00:34:20,899 --> 00:34:22,940 Din hija stampa, li eventwalment se tlaħħam 771 00:34:22,940 --> 00:34:26,336 f'aktar dettall, ta 'x'inhu għaddej ġewwa tal-memorja tal-kompjuter tiegħek. 772 00:34:26,336 --> 00:34:28,460 U jirriżulta li fuq il-qiegħ ta 'din l-istampa 773 00:34:28,460 --> 00:34:29,709 hija xi ħaġa imsejjaħ il-munzell. 774 00:34:29,709 --> 00:34:31,920 Din hija blokki ta ' memorja, blokki ta 'RAM, 775 00:34:31,920 --> 00:34:33,920 li jinsab biss jintuża kwalunkwe ħin funzjoni huwa msejjaħ. 776 00:34:33,920 --> 00:34:36,239 Kwalunkwe ħin li inti, programmer, sejħa funzjoni, 777 00:34:36,239 --> 00:34:38,860 is-sistema operattiva, bħal Mac OS, Windows, jew Linux, 778 00:34:38,860 --> 00:34:41,920 grabs mazz ta 'bytes, forsi ftit kilobytes, forsi ftit megabytes 779 00:34:41,920 --> 00:34:44,590 tal-memorja, idejn minnhom lilek, u mbagħad tikri 780 00:34:44,590 --> 00:34:47,650 inti tmexxi funzjoni tiegħek billi tuża kwalunkwe varjabbli għandek bżonn. 781 00:34:47,650 --> 00:34:50,699 U jekk inti mbagħad sejħa ieħor funzjoni u funzjoni oħra, 782 00:34:50,699 --> 00:34:53,590 ikollok porzjon ieħor ta 'memorja u porzjon ieħor ta 'memorja. 783 00:34:53,590 --> 00:34:57,090 >> U tabilħaqq, jekk dawn trejs aħdar minn Annenberg jirrappreżentaw li l-memorja, 784 00:34:57,090 --> 00:34:59,870 hawn hu dak li jiġri l-ewwel ħin inti sejħa sigma funzjoni. 785 00:34:59,870 --> 00:35:04,510 Huwa simili tqegħid trej bħal dan fuq x'hemm inizjalment munzell vojta. 786 00:35:04,510 --> 00:35:07,142 Iżda mbagħad jekk dik trej jitlob huwa stess, biex ngħidu hekk, 787 00:35:07,142 --> 00:35:08,850 ssejjaħ eżempju ieħor ta sigma, li l- 788 00:35:08,850 --> 00:35:11,640 simili tistaqsi s-sistema operattiva, ooh, jeħtieġ memorja ftit aktar, 789 00:35:11,640 --> 00:35:12,520 jagħtu me li. 790 00:35:12,520 --> 00:35:14,840 U allura jiġrilha piled fuq fuq nett. 791 00:35:14,840 --> 00:35:18,030 Imma x'hemm prinċipali hawnhekk hija li l-ewwel trej għadha hemm, 792 00:35:18,030 --> 00:35:20,620 minħabba li hu invokat din it-tieni trej. 793 00:35:20,620 --> 00:35:23,500 Issa sadanittant, sigma sejħa sigma, thats simili tistaqsi għall-memorja aktar. 794 00:35:23,500 --> 00:35:25,830 Gets piled fuq matul hawn. 795 00:35:25,830 --> 00:35:29,350 sigma sejħa sigma, li l-ieħor trej li gets piled fuq hawn. 796 00:35:29,350 --> 00:35:32,942 U jekk inti żżomm tagħmel dan, eventwalment, it-tip ta 'Mappa Dan viżwali 797 00:35:32,942 --> 00:35:35,525 għal dak chart, dak li għaddej biex jiġri bil-munzell ta 'dixxijiet? 798 00:35:35,525 --> 00:35:37,480 799 00:35:37,480 --> 00:35:41,160 Huwa ser jaqbeż l-ammont tal-memorja tal-kompjuter tiegħek. 800 00:35:41,160 --> 00:35:45,790 U hekk kif dan trej aħdar jaqbeż il-linja orizzontali 801 00:35:45,790 --> 00:35:49,410 hawn fuq munzell u fuq din il-kelma borġ, li aħna ser terga 'lura għal fil-futur, 802 00:35:49,410 --> 00:35:50,410 li hija ħaġa ħażina. 803 00:35:50,410 --> 00:35:52,810 Il borġ huwa differenti segment ta 'memorja, 804 00:35:52,810 --> 00:35:55,190 u jekk inti let dawn trejs pile u pile fuq, 805 00:35:55,190 --> 00:35:57,800 int ser taqbeż segment tiegħek stess ta 'memorja, 806 00:35:57,800 --> 00:36:00,420 u programm huwa tabilħaqq se crash. 807 00:36:00,420 --> 00:36:02,930 >> Issa bħala twarrib, din l-idea ta recursion, għalhekk, 808 00:36:02,930 --> 00:36:06,500 b'mod ċar jista 'jwassal għal problemi, iżda mhuwiex neċessarjament ħaġa ħażina. 809 00:36:06,500 --> 00:36:08,840 Minħabba tikkunsidra, wara kollha, how-- u forsi 810 00:36:08,840 --> 00:36:11,700 dan jieħu xi jkollna użati li --how eleganti jew kif sempliċi 811 00:36:11,700 --> 00:36:14,890 li l-implimentazzjoni tal sigma kien. 812 00:36:14,890 --> 00:36:17,440 U aħna ma tkunx qed tmur għall-użu recursion kollha li ħafna fl CS50, 813 00:36:17,440 --> 00:36:20,780 iżda fil CS51, u verament xi klassi fejn inti jimmanipulaw data strutturi 814 00:36:20,780 --> 00:36:23,640 bħal siġar, jew siġar tal-familja, li għandhom xi ġerarkija, 815 00:36:23,640 --> 00:36:26,000 huwa super, super utli. 816 00:36:26,000 --> 00:36:29,750 Issa, bħala twarrib, sabiex inti bħala jaspiraw xjenzjati tal-kompjuter 817 00:36:29,750 --> 00:36:33,180 huma familjari ma 'wħud mill-Google ċajt ġewwa, jekk inti tmur biex Google 818 00:36:33,180 --> 00:36:36,345 u inti tfittex up dak huwa l- definizzjoni ta ', ngħidu aħna, recursion, jidħol. 819 00:36:36,345 --> 00:36:40,208 820 00:36:40,208 --> 00:36:41,110 Uh-huh. 821 00:36:41,110 --> 00:36:42,670 Bħala twarrib, I jinġibed up ftit. 822 00:36:42,670 --> 00:36:45,470 Dan kien simili 10 minuta ta ' procrastination dalgħodu. 823 00:36:45,470 --> 00:36:52,890 Jekk inti wkoll Google "askew," avviż bl-inklinar ras tiegħek slightly-- 824 00:36:52,890 --> 00:36:55,120 u allura dan huwa wieħed forsi aktar atroċi ta 'kulħadd 825 00:36:55,120 --> 00:36:57,286 peress xi ħadd jintefqu bħal ġurnata tagħhom jimplimentaw din 826 00:36:57,286 --> 00:36:59,880 xi snin ago-- come fuq. 827 00:36:59,880 --> 00:37:01,140 828 00:37:01,140 --> 00:37:04,540 Oh, wait-- thats bug. 829 00:37:04,540 --> 00:37:08,410 830 00:37:08,410 --> 00:37:11,410 >> Allura taħdem fuq waħda mill- websajts akbar fid-dinja 831 00:37:11,410 --> 00:37:13,510 huma dawn il-bajd tal-Għid stupid ftit. 832 00:37:13,510 --> 00:37:16,690 Huma probabbilment jikkunsmaw numru nontrivial ta 'linji ta' kodiċi 833 00:37:16,690 --> 00:37:19,280 biss hekk li jista 'jkollna affarijiet gost ftit bħal dik. 834 00:37:19,280 --> 00:37:22,140 Imma l-anqas issa ikollok xi wħud minn dawk ċajt ġewwa. 835 00:37:22,140 --> 00:37:28,330 >> Issa ejja tagħti ħarsa lejn uħud mill- abjad tinsab konna kienu javżak ta tard, 836 00:37:28,330 --> 00:37:30,707 u tibda titqaxxar lura wħud mis-saffi teknikament 837 00:37:30,707 --> 00:37:32,790 sabiex inti verament jifhmu dak li kien għaddej 838 00:37:32,790 --> 00:37:34,860 u inti tista 'tifhem xi wħud mill-theddidiet, 839 00:37:34,860 --> 00:37:38,060 bħal Shellshock, li issa bdew isiru 840 00:37:38,060 --> 00:37:41,110 fuq quddiemnett ta 'l kulħadd attenzjoni, għall-inqas fil-midja. 841 00:37:41,110 --> 00:37:45,810 Allura hawnhekk hija funzjoni sempliċi ħafna li jirritorna xejn, bla effett. 842 00:37:45,810 --> 00:37:46,790 Isem tagħha huwa swap. 843 00:37:46,790 --> 00:37:50,880 Huwa jieħu f'żewġ varjabbli u dan jirritorna xejn. 844 00:37:50,880 --> 00:37:52,260 Jieħu fil au b. 845 00:37:52,260 --> 00:37:53,337 Allura dimostrazzjoni ta 'malajr. 846 00:37:53,337 --> 00:37:54,170 Aħna miġjuba dawn il-up. 847 00:37:54,170 --> 00:37:56,100 Aħna tista 'ukoll tieħu ftit break hawn għal ftit mument 848 00:37:56,100 --> 00:37:57,250 u jkollhom ftit xi ħaġa li tixrob. 849 00:37:57,250 --> 00:38:00,120 Jekk xi ħadd ma mind tgħaqqad me up hawn għal ftit mument. 850 00:38:00,120 --> 00:38:01,830 Kif dwarek fil-shirt maroon? 851 00:38:01,830 --> 00:38:02,335 Come fuq up. 852 00:38:02,335 --> 00:38:04,060 853 00:38:04,060 --> 00:38:05,260 Just l-waħda llum. 854 00:38:05,260 --> 00:38:06,251 Grazzi, għalkemm. 855 00:38:06,251 --> 00:38:08,000 Kull dritt, u għandna ġejjin up li hawn? 856 00:38:08,000 --> 00:38:08,660 X'hemm isem tiegħek? 857 00:38:08,660 --> 00:38:09,360 >> SPEAKER 4: Laura. 858 00:38:09,360 --> 00:38:09,740 >> SPEAKER 1: Laura. 859 00:38:09,740 --> 00:38:10,370 Come fuq up. 860 00:38:10,370 --> 00:38:11,460 861 00:38:11,460 --> 00:38:13,850 Allura Laura, sfida sempliċi ħafna llum. 862 00:38:13,850 --> 00:38:14,704 863 00:38:14,704 --> 00:38:15,370 Nizza li jissodisfaw yo. 864 00:38:15,370 --> 00:38:16,410 865 00:38:16,410 --> 00:38:16,910 Kull dritt. 866 00:38:16,910 --> 00:38:21,179 Allura aħna għandna xi ħalib matul hawn u għandna xi meraq tal-larinġ hawn fuq 867 00:38:21,179 --> 00:38:23,345 u xi tazzi li aħna misluf mill Annenberg llum. 868 00:38:23,345 --> 00:38:24,178 >> SPEAKER 4: Mislufa. 869 00:38:24,178 --> 00:38:27,240 SPEAKER 1: U se jimxi 'l quddiem u jagħtuk nofs tazza ta 'dan. 870 00:38:27,240 --> 00:38:28,250 871 00:38:28,250 --> 00:38:28,800 Kull dritt. 872 00:38:28,800 --> 00:38:30,750 U aħna ser jagħtuk nofs ħġieġ tal-ħalib. 873 00:38:30,750 --> 00:38:31,905 874 00:38:31,905 --> 00:38:35,890 Oh, u biss sabiex inti tista ' ftakar dak li dan kien simili, 875 00:38:35,890 --> 00:38:38,860 I mfakkar li jġibu dan up u fuq llum. 876 00:38:38,860 --> 00:38:42,030 877 00:38:42,030 --> 00:38:42,530 Okay. 878 00:38:42,530 --> 00:38:45,470 Jekk inti ma mind, ejja ara, irridu tista 'tpoġġihom fuq nuċċalijiet tiegħek stess 879 00:38:45,470 --> 00:38:46,560 jekk inti tixtieq. 880 00:38:46,560 --> 00:38:48,710 Dan ser ikun id-dinja mill-għajnejn Laura. 881 00:38:48,710 --> 00:38:49,210 Kull dritt. 882 00:38:49,210 --> 00:38:53,820 Allura mira tiegħek, jingħataw żewġ tazzi tal- likwidu hawn, ħalib u meraq tal-larinġ, 883 00:38:53,820 --> 00:38:58,370 hija tpartit iż-żewġ kontenuti hekk li l- meraq tal-larinġ tmur fil-tazza tal-ħalib 884 00:38:58,370 --> 00:39:00,710 u l-ħalib tmur fis l-tazza meraq tal-larinġ. 885 00:39:00,710 --> 00:39:02,359 >> SPEAKER 4: Do I nikseb tazza ieħor? 886 00:39:02,359 --> 00:39:05,650 SPEAKER 1: Jien ferħan inti tlabt, għalkemm kien ikun footage ħafna aħjar 887 00:39:05,650 --> 00:39:06,710 jekk inti ma kinux mitluba. 888 00:39:06,710 --> 00:39:10,620 Iżda iva, nistgħu noffrulek terz tazza li l-vojta, tal-kors. 889 00:39:10,620 --> 00:39:11,120 Kull dritt. 890 00:39:11,120 --> 00:39:12,300 Allura tpartit l-kontenut hemmhekk. 891 00:39:12,300 --> 00:39:16,100 892 00:39:16,100 --> 00:39:17,050 Sbieħ ħafna. 893 00:39:17,050 --> 00:39:20,390 894 00:39:20,390 --> 00:39:21,305 Tajjeb ħafna. 895 00:39:21,305 --> 00:39:23,121 896 00:39:23,121 --> 00:39:24,745 Inti qed tagħmel dan rimarkabbilment b'attenzjoni. 897 00:39:24,745 --> 00:39:26,970 898 00:39:26,970 --> 00:39:28,655 U pass tlieta. 899 00:39:28,655 --> 00:39:30,390 900 00:39:30,390 --> 00:39:31,350 Kull dritt. 901 00:39:31,350 --> 00:39:31,930 Eċċellenti. 902 00:39:31,930 --> 00:39:33,930 A round kbir ta 'applause ikun tajjeb għall Laura. 903 00:39:33,930 --> 00:39:36,500 904 00:39:36,500 --> 00:39:37,000 Kull dritt. 905 00:39:37,000 --> 00:39:40,790 Għandna rigal firda ftit għalik, iżda let me jieħdu dawn. 906 00:39:40,790 --> 00:39:42,620 Grazzi tant. 907 00:39:42,620 --> 00:39:46,170 Allura eżempju sempliċi, għalkemm, biex turi li jekk inti tagħmel 908 00:39:46,170 --> 00:39:48,300 tixtieq li tpartit l-kontenut ta 'żewġ kontenituri, 909 00:39:48,300 --> 00:39:52,360 jew ejja jsejħulhom varjabbli, għandek bżonn xi ħażna temporanja 910 00:39:52,360 --> 00:39:56,710 għal stadju wieħed tal-kontenuti fil-każ li inti tista 'attwalment jagħmlu l-swap. 911 00:39:56,710 --> 00:40:01,790 Allura fil-fatt, dan is-sors kodiċi up here fl C huwa rappreżentattiv tal eżattament dak. 912 00:40:01,790 --> 00:40:06,340 Jekk il-meraq tal-larinġ kien u l-ħalib kien b, u ridna li tpartit it-tnejn, 913 00:40:06,340 --> 00:40:08,990 inti tista 'tipprova xi ħaġa kreattiva billi tferra wieħed fil-oħra, 914 00:40:08,990 --> 00:40:11,031 iżda li probabbilment ma jispiċċaw partikolarment tajjeb. 915 00:40:11,031 --> 00:40:15,260 U hekk aħna jużaw tazza terz, call dan TMP, T-M-P b'konvenzjoni, 916 00:40:15,260 --> 00:40:19,370 u tpoġġi l-kontenut tal- ĠU f'dak, allura tpartit tazza waħda, 917 00:40:19,370 --> 00:40:22,610 allura tpoġġi l-ĠU fil- tazza oriġinali, b'hekk 918 00:40:22,610 --> 00:40:25,320 kisba, eżattament kif Laura għamlet, l-swap. 919 00:40:25,320 --> 00:40:26,850 >> Mela ejja do eżattament dan. 920 00:40:26,850 --> 00:40:30,110 Let me imorru quddiem u tiftaħ up eżempju li l- 921 00:40:30,110 --> 00:40:32,720 attwalment imsejħa "l-ebda tpartit, "għaliex din m'hijiex 922 00:40:32,720 --> 00:40:36,180 kif sempliċement isir kif inti tista 'taħseb. 923 00:40:36,180 --> 00:40:41,190 Allura f'dan il-programm, avviż li Jien jużaw stdio.h, ħabib antik tagħna. 924 00:40:41,190 --> 00:40:43,130 Għandi l-prototip għall swap up hemm, li 925 00:40:43,130 --> 00:40:45,450 tfisser l-implimentazzjoni tagħha probabbilment stabbiliti hawn taħt, 926 00:40:45,450 --> 00:40:48,050 u ejja ara dak dan prinċipali programm għaddej biex tagħmel għalija. 927 00:40:48,050 --> 00:40:52,020 I ewwel niddikjara int x gets wieħed, u int y gets tnejn. 928 00:40:52,020 --> 00:40:54,930 Allura taħseb ta 'dawk bħala ĠU u ħalib, rispettivament. 929 00:40:54,930 --> 00:40:57,100 U mbagħad I biss ikollhom printf qal x hija din 930 00:40:57,100 --> 00:41:00,120 u y huwa dan, biss hekk I tista ' viżwalment tara x'inhu għaddej. 931 00:41:00,120 --> 00:41:03,810 Imbagħad I printf titlob li jien iskambji it-tnejn, 932 00:41:03,810 --> 00:41:07,100 u mbagħad I jistampa jsostnu li dawn qed biddlu, 933 00:41:07,100 --> 00:41:09,300 u I jistampa xuy darb'oħra. 934 00:41:09,300 --> 00:41:13,010 Allura stabbiliti hawn fl swap hija eżattament dak Laura għamlet, 935 00:41:13,010 --> 00:41:16,240 u eżattament dak li rajna fuq l-iskrin mument ilu. 936 00:41:16,240 --> 00:41:19,380 >> Mela ejja imorru quddiem u jkun sorely diżappuntat. 937 00:41:19,380 --> 00:41:24,690 Jagħmlu l-ebda tpartit, u run ebda swap, zooming fl fuq l-output hawn. 938 00:41:24,690 --> 00:41:28,320 Ikteb x hija l-1, y huwa 2, jagħmlu skambju skambjat. 939 00:41:28,320 --> 00:41:32,700 x għadu 1, u y għadu 2. 940 00:41:32,700 --> 00:41:37,630 Allura anke jekk, franchement, dan jistenna eżattament simili, għalkemm aktar teknikament, 941 00:41:37,630 --> 00:41:40,730 dak Laura għamilt, ma jidhirx li jaħdmu. 942 00:41:40,730 --> 00:41:42,130 Allura għaliex huwa li? 943 00:41:42,130 --> 00:41:46,630 Ukoll, jirriżulta li meta aħna tikteb programm bħal dan 944 00:41:46,630 --> 00:41:51,590 li tkun kemm prinċipali, enfasizzat hawnhekk, u mbagħad funzjoni oħra, bħal tpartit, 945 00:41:51,590 --> 00:41:54,230 enfasizzat hawnhekk, li jitlob, id-dinja 946 00:41:54,230 --> 00:41:57,030 jistenna ftit xi ħaġa bħal dawn trejs mument ilu. 947 00:41:57,030 --> 00:42:00,440 Meta prinċipali ewwel gets imsejħa, thats simili tistaqsi sistema operattiva 948 00:42:00,440 --> 00:42:04,030 għal daqsxejn ta 'memorja għal kwalunkwe lokali varjabbli bħall x u y li għandu prinċipali, 949 00:42:04,030 --> 00:42:05,660 u jispiċċaw hemm dritt. 950 00:42:05,660 --> 00:42:10,920 Imma jekk jitlob ewlenin tpartit, u prinċipali jgħaddi tpartit żewġ argumenti, A u B, 951 00:42:10,920 --> 00:42:16,410 meraq tal-larinġ u l-ħalib, mhuwiex simili għoti-meraq tal-larinġ u l-ħalib 952 00:42:16,410 --> 00:42:17,500 għall Laura. 953 00:42:17,500 --> 00:42:21,300 What a kompjuter ma, huwa tgħaddi kopji tal-meraq tal-larinġ 954 00:42:21,300 --> 00:42:27,110 u kopji tal-ħalib li Laura, b'tali mod li x'hemm finalment ġewwa ta 'dan trej 955 00:42:27,110 --> 00:42:32,510 huwa l-waħda valur u tnejn, jew ĀU u tal-ħalib, iżda kopji tagħhom, 956 00:42:32,510 --> 00:42:34,790 hekk li f'dan il-punt fl-istorja, hemm 957 00:42:34,790 --> 00:42:36,930 huwa ĠU u ħalib f'kull wieħed minn dawn dixxijiet. 958 00:42:36,930 --> 00:42:39,260 Hemm wieħed u tnejn f'kull wieħed minn dawn dixxijiet, 959 00:42:39,260 --> 00:42:41,720 u l-funzjoni tpartit tabilħaqq taħdem. 960 00:42:41,720 --> 00:42:46,090 Huwa iskambji minnhom ġewwa tat-trej tieni topmost, 961 00:42:46,090 --> 00:42:48,147 iżda li iskambji m'għandha l-ebda impatt. 962 00:42:48,147 --> 00:42:49,980 U bbażata fuq ftit biss prinċipju bażiku konna 963 00:42:49,980 --> 00:42:52,970 tkellmu dwar qabel, u tabilħaqq ftit minuti ilu, liema 964 00:42:52,970 --> 00:42:58,770 jista 'jispjega għaliex qed jinbidlu au b ġewwa ta 'swap 965 00:42:58,770 --> 00:43:05,560 m'għandha l-ebda effett fuq xu y, anki jekk I għadda xuy għall-funzjoni tpartit. 966 00:43:05,560 --> 00:43:08,750 X'hemm-kelma ewlenija hawnhekk li jista simplistikament jispjegaw? 967 00:43:08,750 --> 00:43:11,250 968 00:43:11,250 --> 00:43:12,627 I think I smajt li hawn? 969 00:43:12,627 --> 00:43:13,335 UDJENZA: Ritorn. 970 00:43:13,335 --> 00:43:14,085 SPEAKER 1: Ritorn? 971 00:43:14,085 --> 00:43:14,590 Mhux ritorn. 972 00:43:14,590 --> 00:43:15,895 Ejja jmorru ma waħda oħra. 973 00:43:15,895 --> 00:43:16,395 X'hemm li? 974 00:43:16,395 --> 00:43:17,080 >> UDJENZA: [inaudible]. 975 00:43:17,080 --> 00:43:20,000 >> SPEAKER 1: OK, hekk return-- nistgħu jagħmlu x-xogħol tar-ritorn fl-istorja, 976 00:43:20,000 --> 00:43:21,914 iżda hemm spjegazzjoni saħansitra aktar sempliċi. 977 00:43:21,914 --> 00:43:22,580 UDJENZA: Ambitu. 978 00:43:22,580 --> 00:43:23,288 SPEAKER 1: Ambitu. 979 00:43:23,288 --> 00:43:24,300 I ser tieħu ambitu. 980 00:43:24,300 --> 00:43:27,290 Allura ambitu, ftakar fejn x tagħna uy iddikjarat. 981 00:43:27,290 --> 00:43:30,840 Huma qed iddikjarata ġewwa tad ewlenija dritt up here. 982 00:43:30,840 --> 00:43:33,200 au b, sadanittant, huma ddikjarat b'mod effettiv 983 00:43:33,200 --> 00:43:35,930 ġewwa tal tpartit, pjuttost mhux fil l-braces kaboċċi iżda xorta 984 00:43:35,930 --> 00:43:37,690 fil-qasam ġenerali ta 'swap. 985 00:43:37,690 --> 00:43:40,560 U għalhekk tabilħaqq, au b jeżistu biss fi ħdan dan trej 986 00:43:40,560 --> 00:43:44,850 minn Annenberg, dan tieni blokki ta 'kodiċi. 987 00:43:44,850 --> 00:43:49,500 Allura aħna qed tabilħaqq jinbidlu l-kopja, iżda li mhux verament dak kollu li utli. 988 00:43:49,500 --> 00:43:52,190 >> Mela ejja tagħti ħarsa lejn dan il-livell ftit iktar baxx. 989 00:43:52,190 --> 00:43:55,430 Jien se jmorru lura fis il Sors Directory, 990 00:43:55,430 --> 00:43:58,330 u jien ser ewwel zoom fil hawn, u biss 991 00:43:58,330 --> 00:44:02,290 biex tikkonferma li jien f'dan tieqa terminal akbar, 992 00:44:02,290 --> 00:44:04,430 il-programm għadu iġib ruħu bħal dik. 993 00:44:04,430 --> 00:44:06,840 Ejja ngħidu issa li din mhuwiex intenzjonat. 994 00:44:06,840 --> 00:44:10,090 Ovvjament jien ridt swap biex xogħol, u għalhekk iħoss bħal bug. 995 00:44:10,090 --> 00:44:12,780 Now I tista 'tibda żżid lott ta 'printf lejn kodiċi tiegħi, 996 00:44:12,780 --> 00:44:16,010 stampar x hawn fuq, y fuq Hawnhekk, hawn, b hawn fuq. 997 00:44:16,010 --> 00:44:18,220 Iżda franchement, dan huwa probabbilment dak inti kont qed tagħmel għal ftit ġimgħat 998 00:44:18,220 --> 00:44:20,190 issa, fil-ħinijiet tal-uffiċċju u fid-dar meta jkunu qed jaħdmu 999 00:44:20,190 --> 00:44:22,150 fuq psets jippruvaw isibu xi bugs. 1000 00:44:22,150 --> 00:44:25,560 Imma int ser tara, jekk inti ma jkunux diġà, dik il-problema sett tlieta tintroduċi inti 1001 00:44:25,560 --> 00:44:31,630 għal kmand imsejħa GDB, fejn GDB, debugger GNU, 1002 00:44:31,630 --> 00:44:34,040 nnifisha jkollha mazz sħiħ ta ' karatteristiċi li jistgħu attwalment 1003 00:44:34,040 --> 00:44:38,160 ejjew nifhmu sitwazzjonijiet bħal dan, iżda aktar compellingly, 1004 00:44:38,160 --> 00:44:39,940 isolvu problemi u jsibu bugs. 1005 00:44:39,940 --> 00:44:40,940 So jien ser jagħmlu dan. 1006 00:44:40,940 --> 00:44:44,770 Minflok ./noswap, jien minflok tmur jiddekorri ./noswap GDB. 1007 00:44:44,770 --> 00:44:47,410 1008 00:44:47,410 --> 00:44:51,200 Fi kliem ieħor, jien ser jimxu tiegħi programm mhux Bash, ħabib ġdid tagħna 1009 00:44:51,200 --> 00:44:51,850 llum. 1010 00:44:51,850 --> 00:44:53,970 Jien ser jimxu tiegħi noswap programm ġewwa 1011 00:44:53,970 --> 00:44:56,900 ta 'dan il-programm l-oħra msejħa GDB, li huwa debugger, li 1012 00:44:56,900 --> 00:45:01,035 huwa programm li, imfassla biex tgħin inti bnedmin isibu u neħħi bugs. 1013 00:45:01,035 --> 00:45:03,410 Mela jekk jien hit Run hawn, hemm ammont atroċi tat-test 1014 00:45:03,410 --> 00:45:04,868 li int verament qatt ma għandek taqra. 1015 00:45:04,868 --> 00:45:07,290 Huwa essenzjalment distrazzjoni mill-pront, li 1016 00:45:07,290 --> 00:45:10,030 Jien ser hit Control-L biex tikseb up fil-quċċata hemmhekk. 1017 00:45:10,030 --> 00:45:11,800 Dan huwa l-GDB pront. 1018 00:45:11,800 --> 00:45:15,550 Jekk I tixtieq li tmexxi dan il-programm issa, kif dan iqarrqu folja ftit fuq illum 1019 00:45:15,550 --> 00:45:21,860 slide jissuġġerixxi, Run hija l-ewwel jikkmanda li aħna fisser li tintroduċi. 1020 00:45:21,860 --> 00:45:25,150 U jien biss ser tip run up here ġewwa tal GDB, 1021 00:45:25,150 --> 00:45:26,811 u tabilħaqq dam programm tiegħi. 1022 00:45:26,811 --> 00:45:29,310 Issa hemm xi addizzjonali riżultati tal-iskrin bħal dan, 1023 00:45:29,310 --> 00:45:31,910 iżda li GDB sempliċement anali u tgħidilna x'inhu għaddej. 1024 00:45:31,910 --> 00:45:34,451 Inti ma verament ikollhom għalfejn tinkwieta dwar dawn id-dettalji dritt issa. 1025 00:45:34,451 --> 00:45:36,890 Imma x'hemm verament jibred dwar GDB, jekk nagħmel dan again-- 1026 00:45:36,890 --> 00:45:42,100 Kontroll-L ikklerja l screen-- let me go quddiem u tip "break prinċipali," u b'hekk, 1027 00:45:42,100 --> 00:45:45,743 meta I hit Ikteb, iffissar x'hemm tissejjaħ punt tal-qasma fil noswap.c, 1028 00:45:45,743 --> 00:45:51,270 linja 16, li huwa fejn GDB dehret-programm tiegħi attwalment 1029 00:45:51,270 --> 00:45:53,070 huwa, funzjoni tiegħi fil-fatt hu. 1030 00:45:53,070 --> 00:45:55,070 Dan aħna ser ninjoraw għal issa iżda li l-indirizz 1031 00:45:55,070 --> 00:45:57,310 fil-memorja speċifikament ta 'din il-funzjoni. 1032 00:45:57,310 --> 00:46:00,240 Allura issa meta I tip run, Avviż x'hemm jibred hawn. 1033 00:46:00,240 --> 00:46:05,650 Programm My waqfiet fil-linja I qal GDB li nieqaf eżekuzzjoni fi. 1034 00:46:05,650 --> 00:46:09,850 So I ma jkollhomx biex issa bidla kodiċi tiegħi, żid xi tal printf, recompile dan, terġa 'ssir 1035 00:46:09,850 --> 00:46:13,300 dan, bidla, żid ftit tal printf, isalvawh, recompile dan, run. 1036 00:46:13,300 --> 00:46:18,100 I tista 'biss walk permezz tal-programm tiegħi pass pass pass fil-veloċità tal-bniedem, 1037 00:46:18,100 --> 00:46:20,880 mhux fil-tip Intel-ġewwa ta 'veloċità. 1038 00:46:20,880 --> 00:46:24,580 >> Allura issa avviż din il-linja jidher hawn, u jekk immur lura 1039 00:46:24,580 --> 00:46:27,800 program tiegħi fil gedit, avviż li dan huwa attwalment 1040 00:46:27,800 --> 00:46:29,280 l-ewwel linja tal-kodiċi. 1041 00:46:29,280 --> 00:46:31,240 Hemm linja 16 gedit. 1042 00:46:31,240 --> 00:46:34,610 Hemm linja 16 fi ħdan GDB, u anki għalkemm dan interface iswed u abjad 1043 00:46:34,610 --> 00:46:37,760 mhuwiex kważi bħala utent friendly, dan ifisser 1044 00:46:37,760 --> 00:46:41,680 dik il-linja 16 ma tkunx ġiet esegwita s'issa, iżda huwa dwar li jkun. 1045 00:46:41,680 --> 00:46:46,220 So tabilħaqq jekk I tip print x, mhux printf, biss print x, 1046 00:46:46,220 --> 00:46:50,730 I nikseb xi valur fittizji hemmhekk ta 'żero, minħabba x ma ġiex initialized s'issa. 1047 00:46:50,730 --> 00:46:54,760 So jien ser tip li jmiss, jew, jekk inti tixtieq li tkun fancy, biss N għal li jmiss. 1048 00:46:54,760 --> 00:46:59,090 Imma meta I tip li jmiss tidħol, issa Avviż timxi fuq linja 17. 1049 00:46:59,090 --> 00:47:02,840 Allura loġikament, jekk stajt esegwiti linja 16 u I issa tip print x, 1050 00:47:02,840 --> 00:47:03,640 x'għandi tara I? 1051 00:47:03,640 --> 00:47:04,970 1052 00:47:04,970 --> 00:47:05,520 Wieħed. 1053 00:47:05,520 --> 00:47:07,820 >> U issa dan huwa ċertament konfuża. 1054 00:47:07,820 --> 00:47:11,260 $ 2 huwa biss mod fancy ta ', jekk inti tixtieq li jirreferu għal dak il-valur aktar tard, 1055 00:47:11,260 --> 00:47:12,510 inti tista 'tgħid "dollaru sinjal tnejn." 1056 00:47:12,510 --> 00:47:13,480 Huwa simili referenza lura. 1057 00:47:13,480 --> 00:47:14,570 Iżda għal issa, biss jinjoraha. 1058 00:47:14,570 --> 00:47:17,070 X'hemm interessanti hija x'hemm dwar id-dritt tas-sinjal ugwali. 1059 00:47:17,070 --> 00:47:21,000 U issa jekk jien tip li jmiss darb'oħra u y print, I għandha tara 2. 1060 00:47:21,000 --> 00:47:23,870 I tista 'wkoll issa jistampaw x darb'oħra, u franchement, 1061 00:47:23,870 --> 00:47:27,130 jekk jien jkollna ftit konfuż dwar fejn I am, I tista 'tip-lista għall-lista 1062 00:47:27,130 --> 00:47:30,590 u biss tara xi kuntest madwar il-punt jien attwalment fi. 1063 00:47:30,590 --> 00:47:35,180 U issa I tista tip jmiss, u hemm x hija l-1. 1064 00:47:35,180 --> 00:47:36,300 Now I tip li jmiss. 1065 00:47:36,300 --> 00:47:37,710 Oh, y hija 2. 1066 00:47:37,710 --> 00:47:40,750 U għal darb'oħra, huwa konfużjoni, minħabba output GDB tal 1067 00:47:40,750 --> 00:47:43,044 qed jiġi mħalltin ma output tiegħi stess. 1068 00:47:43,044 --> 00:47:45,710 Imma jekk inti żżomm f'moħħu, billi glancing quddiem u lura fil-kodiċi tiegħek 1069 00:47:45,710 --> 00:47:47,740 jew li out ġenb ġenb forsi, inti ser 1070 00:47:47,740 --> 00:47:51,020 tara li verament jien biss titjib permezz tal-programm tiegħi. 1071 00:47:51,020 --> 00:47:54,620 >> Imma avviż x'jiġri li jmiss, litteralment. 1072 00:47:54,620 --> 00:47:56,380 Hawn linja 22. 1073 00:47:56,380 --> 00:48:01,315 Let me go fuqha, u b'hekk miexja fuq sa 23, u jekk I jistampaw x issa, xorta waħda. 1074 00:48:01,315 --> 00:48:03,890 U jekk I jistampaw y issa, xorta waħda. 1075 00:48:03,890 --> 00:48:05,820 Allura din mhix eżerċizzju utli. 1076 00:48:05,820 --> 00:48:07,450 Mela ejja jerġa 'jagħmel dan. 1077 00:48:07,450 --> 00:48:10,069 Let me jmorru lura sa l- top u t-tip run darb'oħra. 1078 00:48:10,069 --> 00:48:12,110 U huwa qal il-programm thats qed debugged 1079 00:48:12,110 --> 00:48:14,109 bdiet diġà, beda mill-bidu. 1080 00:48:14,109 --> 00:48:15,420 Iva, ejja tagħmel dan mill-ġdid. 1081 00:48:15,420 --> 00:48:22,000 U din id-darba ejja do jmiss, jmiss, li jmiss, li jmiss, li jmiss, 1082 00:48:22,000 --> 00:48:24,180 iżda issa l-affarijiet nikseb interessanti. 1083 00:48:24,180 --> 00:48:27,760 Issa nixtieq li pass lejn tpartit, so I ma tip li jmiss. 1084 00:48:27,760 --> 00:48:34,380 I tip pass, u issa jindunax bih qabża me għal-linja noswap.c 33. 1085 00:48:34,380 --> 00:48:37,240 Jekk immur lura għal gedit, x'hemm linja 33? 1086 00:48:37,240 --> 00:48:40,500 Dik hija l-ewwel reali linja tal-kodiċi ġewwa ta 'swap. 1087 00:48:40,500 --> 00:48:44,150 Liema huwa sbieħ, għaliex issa nista tip ta 'poke madwar u nikseb kurjużi 1088 00:48:44,150 --> 00:48:46,052 dwar x'inhu għaddej verament fil hemmhekk. 1089 00:48:46,052 --> 00:48:46,760 Let me jistampaw TMP. 1090 00:48:46,760 --> 00:48:47,770 1091 00:48:47,770 --> 00:48:48,800 Whoa. 1092 00:48:48,800 --> 00:48:51,438 Għaliex ma TMP għandhom xi crazy, valur żibel fittizji? 1093 00:48:51,438 --> 00:48:54,579 1094 00:48:54,579 --> 00:48:56,120 UDJENZA: Ma ġiex initialized. 1095 00:48:56,120 --> 00:48:57,150 SPEAKER 1: Ma ġiex initialized. 1096 00:48:57,150 --> 00:49:00,270 U fil-fatt, meta inti tmexxi programm, int tingħata mazz sħiħ ta 'memorja 1097 00:49:00,270 --> 00:49:03,392 mis-sistema operattiva, imma int ma initialized xi valuri, 1098 00:49:03,392 --> 00:49:05,600 sabiex ikun x'ikun bits int jaraw hawn, anke jekk huwa 1099 00:49:05,600 --> 00:49:07,770 dan negattiv big crazy numru, ifisser biss 1100 00:49:07,770 --> 00:49:10,750 li dawk huma l-fdalijiet mill- xi użu qabel ta 'dak RAM, 1101 00:49:10,750 --> 00:49:13,050 anki jekk I ma jkunux myself meħtieġa encore. 1102 00:49:13,050 --> 00:49:17,086 Allura issa jien ser jimxi 'l quddiem u t-tip jmiss, u jekk I issa tip TMP print, 1103 00:49:17,086 --> 00:49:17,835 x'għandi tara I? 1104 00:49:17,835 --> 00:49:19,570 1105 00:49:19,570 --> 00:49:23,360 Tkun xi tkun il-valur ta 'kien, a huwa l-ewwel argument, biss 1106 00:49:23,360 --> 00:49:25,550 bħall x kienet l-ewwel Ħaġa jiġu mgħoddija fi, 1107 00:49:25,550 --> 00:49:30,450 hekk u x għandu jkun l-istess, hekk jistampaw TMP għandhom jistampaw me wieħed. 1108 00:49:30,450 --> 00:49:36,360 >> Allura dak li inti ser tara fil sett problema tliet huwa tutorja ta 'tipi fuq GDB, 1109 00:49:36,360 --> 00:49:40,020 iżda jirrealizzaw li dan huwa l-bidu ta ħarsa lejn għodda li se attwalment 1110 00:49:40,020 --> 00:49:42,774 jgħinuk issolvi l-problemi għalhekk ħafna aktar effettiv. 1111 00:49:42,774 --> 00:49:44,690 Dak li aħna qed finalment se jagħmlu l-Erbgħa 1112 00:49:44,690 --> 00:49:48,180 hija tibda titqaxxar lura ftit saffi u neħħi xi roti ta 'taħriġ. 1113 00:49:48,180 --> 00:49:50,496 Li ħaġa imsejħa string li konna użati għal xi żmien, 1114 00:49:50,496 --> 00:49:53,370 aħna qed tmur biex bil-mod jieħdu dik l bogħod minn int u jibda jitkellem dwar 1115 00:49:53,370 --> 00:49:55,725 xi ħaġa aktar esoterically magħrufa bħala char *, 1116 00:49:55,725 --> 00:49:59,550 imma aħna qed tmur biex tagħmel dan sbieħ u b'ġentilezza fl-ewwel, anke jekk pointers, 1117 00:49:59,550 --> 00:50:02,730 kif dawn qed jissejjaħ, tista 'tagħmel xi affarijiet ħżiena ħafna jekk abbużati, 1118 00:50:02,730 --> 00:50:06,040 billi tħares lejn claymation ftit minn ħabib tagħna Nick Parlante minn Stanford 1119 00:50:06,040 --> 00:50:09,670 University, professur fil-kompjuter xjenza li tpoġġi flimkien dan preview 1120 00:50:09,670 --> 00:50:11,075 ta dak li ġejjin dan l-Erbgħa. 1121 00:50:11,075 --> 00:50:12,196 1122 00:50:12,196 --> 00:50:13,400 >> [Daqq ta 'video] 1123 00:50:13,400 --> 00:50:13,900 -Hey, Binky. 1124 00:50:13,900 --> 00:50:14,930 1125 00:50:14,930 --> 00:50:15,780 Wake up. 1126 00:50:15,780 --> 00:50:17,240 Wasal iż-żmien għall-gost pointer. 1127 00:50:17,240 --> 00:50:18,260 1128 00:50:18,260 --> 00:50:19,350 >> Liema-li? 1129 00:50:19,350 --> 00:50:21,150 Tgħallem dwar pointers? 1130 00:50:21,150 --> 00:50:22,050 Oh, Goody! 1131 00:50:22,050 --> 00:50:22,897 1132 00:50:22,897 --> 00:50:23,730 [END daqq ta 'video] 1133 00:50:23,730 --> 00:50:25,396 SPEAKER 1: Li jistenna inti nhar l-Erbgħa. 1134 00:50:25,396 --> 00:50:26,440 Aħna ser tara int imbagħad. 1135 00:50:26,440 --> 00:50:27,106 [Daqq ta 'video] 1136 00:50:27,106 --> 00:50:30,420 -U Issa, Ħsibijiet Deep, billi Daven Farnham. 1137 00:50:30,420 --> 00:50:33,980 1138 00:50:33,980 --> 00:50:35,900 >> -Għaliex Aħna jitgħallmu C? 1139 00:50:35,900 --> 00:50:36,785 Għaliex ma A +? 1140 00:50:36,785 --> 00:50:38,550 1141 00:50:38,550 --> 00:50:40,910 >> [Rires] 1142 00:50:40,910 --> 00:50:42,160 >> [END daqq ta 'video]