1 00:00:00,000 --> 00:00:12,040 >> [Musika jotzen] 2 00:00:12,040 --> 00:00:16,460 >> HIZLARIA: 1 Ondo da, hau CS50 da, eta aste honetan lau hasiera da, 3 00:00:16,460 --> 00:00:20,420 eta entzun duzu edo irakurtzen, mundua bukatzen dira. 4 00:00:20,420 --> 00:00:23,520 Interneten inguruan guztiak joatean Izan ezagutza eta kontzientzia ditu 5 00:00:23,520 --> 00:00:27,100 bat programa, batean akatsen bat Bash izeneko programazio hizkuntza. 6 00:00:27,100 --> 00:00:32,729 Hau izan da wonderfully markako Shellshock, edo Bash atea gisa, 7 00:00:32,729 --> 00:00:35,485 baina horrelako artikuluak Ez al da arraroa izan da. 8 00:00:35,485 --> 00:00:38,807 Eta hain zuzen ere, horietako asko ekarri atzera Heartbleed oroitzapenak, 9 00:00:38,807 --> 00:00:41,640 eta horrek ere izango duzu konturatuko sakatu atzera iragan udaberri honetan, eta horrek 10 00:00:41,640 --> 00:00:43,980 era berean, nahiko dramatikoa izan zen. 11 00:00:43,980 --> 00:00:47,110 Duten of Orain hemen gaur egun, zenbat duzu behar, 12 00:00:47,110 --> 00:00:50,330 ez duzu ulertzen bada ere, zer guztiak buruz, Shellshock entzun? 13 00:00:50,330 --> 00:00:51,370 14 00:00:51,370 --> 00:00:54,245 Guztiak eskubidea, eta zuetako zenbatek duten zaurgarria ordenagailuak dute? 15 00:00:54,245 --> 00:00:55,680 16 00:00:55,680 --> 00:01:00,250 Ados, eskuak urrun, askoz hor egon behar du oraintxe sortu, arrazoiak direla ikusiko dugunez. 17 00:01:00,250 --> 00:01:02,580 >> Ikus dezagun zer da begirada bat gertatzen da komunikabideetan 18 00:01:02,580 --> 00:01:05,304 eta, ondoren, azaldu du pixka bat Hemen guretzat teknikoki. 19 00:01:05,304 --> 00:01:07,670 20 00:01:07,670 --> 00:01:11,250 >> SPEAKER 2: Segurtasun adituek ohartarazi akats larria izan dela 21 00:01:11,250 --> 00:01:15,650 ehunka eraginik zorian egon munduko web milioika erabiltzaileei. 22 00:01:15,650 --> 00:01:20,600 Beraz, zer zehazki hori izan da akatsen da bikoiztutako Shellshock, eta zer egin? 23 00:01:20,600 --> 00:01:23,720 24 00:01:23,720 --> 00:01:28,910 Beno, Shellshock da ere gisa ezaguna Bash bug, software da ustiatzen. 25 00:01:28,910 --> 00:01:33,230 Hackers birusa erabili vulnerable eskaneatzeko sistemen Linux eta Unix exekutatzen 26 00:01:33,230 --> 00:01:36,300 Sistema eragile eta orduan kutsatzen ditu. 27 00:01:36,300 --> 00:01:38,730 Bash komando lerroa da. 28 00:01:38,730 --> 00:01:43,460 Honen bitartez erabiltzaileak alea komandoak abiarazteko programak eta eginbideak software barruan 29 00:01:43,460 --> 00:01:45,250 testu idatziz. 30 00:01:45,250 --> 00:01:49,980 Honez normalean programatzaileek erabiltzen dituzten, eta ez luke open mundu zabalagoa izateko, 31 00:01:49,980 --> 00:01:51,590 Shellshock aldatzen den arren. 32 00:01:51,590 --> 00:01:54,160 33 00:01:54,160 --> 00:01:57,910 >> Beno, worringly, analista batzuek abisatu mehatxua handiagoa izan zitekeen, 34 00:01:57,910 --> 00:02:01,580 Shellshock ahalbidetzen osoa duelako makina kutsatutako baten kontrola, 35 00:02:01,580 --> 00:02:06,030 Heartbleed berriz, soilik onartzen hacker ordenagailuak zelatatzeko. 36 00:02:06,030 --> 00:02:09,130 Ez da hain larria, oso dira oraindik 10 kanpo 10 37 00:02:09,130 --> 00:02:11,900 Nazionalak larritasuna for Vulnerabilidad Database. 38 00:02:11,900 --> 00:02:15,530 39 00:02:15,530 --> 00:02:20,015 Web zerbitzari guztiak 2/3 daude arriskua, Mac ordenagailuak batzuk barne. 40 00:02:20,015 --> 00:02:22,760 41 00:02:22,760 --> 00:02:25,600 Beno, ziurtatu duzula Zure sistemen adabakia orain. 42 00:02:25,600 --> 00:02:29,330 Edonork hosting web entzierro bat Kaltetutako sistema eragileak 43 00:02:29,330 --> 00:02:31,800 ekintza hartu behar da ahalik eta azkarren. 44 00:02:31,800 --> 00:02:35,390 Edonork ordaindu ahal begiratu behar da haien jarraipena eta web aplikazio to 45 00:02:35,390 --> 00:02:37,355 suebakien bilatzeko edozein hegaletatik. 46 00:02:37,355 --> 00:02:39,979 47 00:02:39,979 --> 00:02:41,770 HIZLARIA: 3 Okerrena izan gertatuko da 48 00:02:41,770 --> 00:02:45,080 norbaiti kodea idatzi nahi duen automatikoki joango litzateke eta eskaneatzeko 49 00:02:45,080 --> 00:02:48,280 internet eta eragingo luke ordenagailuak horiek guztiak. 50 00:02:48,280 --> 00:02:50,710 Eta behin, ez, hori ondo egiten dute, gauzarik txarrena egin izan dute 51 00:02:50,710 --> 00:02:53,300 besterik ez da ezabatu guztia, edo itzali guneak. 52 00:02:53,300 --> 00:02:55,360 Beraz, kalteak ikusi ahal izan genuen Ikuspegi horretatik abiatuta, 53 00:02:55,360 --> 00:02:58,300 non asmo txarreko pertsona izango genuke nor besterik erabakitzen hondamena eragin 54 00:02:58,300 --> 00:03:02,534 jarriz sistemen behera edo ezabatu fitxategiak, eta horrelako gauzak. 55 00:03:02,534 --> 00:03:05,200 SPEAKER 2: Batzuek diote hau da, inork zailenetako neurtzeko 56 00:03:05,200 --> 00:03:08,080 urteetan bugs, eta horri asteak iraun ditzake, edo are 57 00:03:08,080 --> 00:03:10,820 hilabeteetan bere azken inpaktua zehazteko. 58 00:03:10,820 --> 00:03:12,180 59 00:03:12,180 --> 00:03:15,560 >> HIZLARIA: 1 Beraz, hori guztia egia da, baina gauza dibertigarria da, ia guztiak 60 00:03:15,560 --> 00:03:18,330 irudiak ikusi besterik ez duzu, beharbada, teklatua izan ezik, 61 00:03:18,330 --> 00:03:20,930 ezer egin ditu bug inolako. 62 00:03:20,930 --> 00:03:23,960 Zerbitzariak eta hariak eta abar, nik Ordena zeharka erlazionatuta, 63 00:03:23,960 --> 00:03:27,410 baina muina, egia esan, nahiko ezagutzen zer gertatzen da hemen. 64 00:03:27,410 --> 00:03:30,050 Izan ere, let me go sartu gure CS50 tresna. 65 00:03:30,050 --> 00:03:32,910 Dezagun aurrera eta maximizatzeko terminal-leihoa hemen. 66 00:03:32,910 --> 00:03:36,020 Eta duzu guys dute hau erabiliz, edo kapsulatutako bertsioa kontratuan, 67 00:03:36,020 --> 00:03:39,460 gedit ordena programak idazteko, komando idatzi, eta abar, 68 00:03:39,460 --> 00:03:43,690 eta hori da, benetan, eta ditu asteetan, Bash, B-A-S-H izan da. 69 00:03:43,690 --> 00:03:46,890 Hau da, Bourne-shell berriro, bertan esaten modu fancy bat besterik ez da, 70 00:03:46,890 --> 00:03:50,220 honek dituen programa bat da, gonbita keinukariak, eraginkortasunez, 71 00:03:50,220 --> 00:03:51,970 han esertzen zain zuretzat sarrera. 72 00:03:51,970 --> 00:03:53,920 Eta komandoa da line interface que bidez 73 00:03:53,920 --> 00:03:57,650 you guys komandoak exekutatzen dira eta azken batean bildu eta gero exekutatzen 74 00:03:57,650 --> 00:03:58,400 programak. 75 00:03:58,400 --> 00:04:01,320 >> Baina Bash ere bada programazio bat honako zentzuan hizkuntza. 76 00:04:01,320 --> 00:04:05,460 Badakizu badirela bezalako komandoak cd eta ls eta ere astintzen, eta beste batzuek, 77 00:04:05,460 --> 00:04:09,580 baina zeure komandoak defini dezakezu horiek gauzatzeko Bash-ek. 78 00:04:09,580 --> 00:04:11,420 Orain ez gara joan zehaztasun handiz sartu 79 00:04:11,420 --> 00:04:16,089 programazio lengoaia Bash den bezala, baina jakin, esate baterako, une honetan, 80 00:04:16,089 --> 00:04:17,607 ez dago komandoa deitzen da "kaixo". 81 00:04:17,607 --> 00:04:19,440 Beraz, aurki daiteke paketeak horietako bat. 82 00:04:19,440 --> 00:04:20,856 Ez da nire ordenagailuan instalatu. 83 00:04:20,856 --> 00:04:21,870 Galdetu zure administratzailearekin. 84 00:04:21,870 --> 00:04:26,030 Baina ez nahi badut programa bat izan behar du "kaixo" Bash edo nire gonbita at deitzen, 85 00:04:26,030 --> 00:04:30,810 Benetan I sintaxia erabili ahal izango da Nahiko C. bezala, ez da gauza bera nahiko, 86 00:04:30,810 --> 00:04:35,020 baina nahiko baten antzeko itxura du funtzioa, xehetasun batzuk falta izan arren. 87 00:04:35,020 --> 00:04:38,090 Ezer gutxi gertatzen, baina orain badut idatzi "kaixo" 88 00:04:38,090 --> 00:04:40,960 benetan idatzi dezakezu programa, ez C, ez Java, 89 00:04:40,960 --> 00:04:44,280 Ez programazio bestean hizkuntza, baina Bash berez. 90 00:04:44,280 --> 00:04:47,630 >> Orain gakoa da hemen dela idatzi nuen izendatzeko komando berri hau eman nahi izan dut, 91 00:04:47,630 --> 00:04:50,820 eta parentesi ere gaude horren sinboliko funtzioa izateaz. 92 00:04:50,820 --> 00:04:54,010 Bat alde batera utzita, ere egin dezakezu fun , eta hain zuzen ere, nahiz eta Mac OS gauzak, 93 00:04:54,010 --> 00:04:55,620 hau Terminal izeneko programa bat da. 94 00:04:55,620 --> 00:04:58,800 Dator inoren txertatutako Mac bat du gela honetan ordenagailu, 95 00:04:58,800 --> 00:05:03,640 eta Mac-en antzerako gauza egin dezakezu OS, baina haratago joan gehiago dezakezu. 96 00:05:03,640 --> 00:05:07,110 Eta hau da, pixka bat tangentzial, baina fun-mota da. 97 00:05:07,110 --> 00:05:09,715 Gaur goizean gogorarazi nintzen, denean bitartez honetan pentsatzen, 98 00:05:09,715 --> 00:05:13,279 Joko apur bat jolasteko erabiltzen dut CS50 ohia TFS bat batera 99 00:05:13,279 --> 00:05:16,570 Horren bidez noiznahi urruntzen oinez egingo zuen bere bere pantailako teklatua desblokeatu, 100 00:05:16,570 --> 00:05:23,611 Exekutatu komando bat nuke "esan kaixo." hau bezalako 101 00:05:23,611 --> 00:05:26,610 Eta orain edonoiz itzuli zen bere teklatua pantaila garbitu dut ondoren 102 00:05:26,610 --> 00:05:27,985 eta eseri zuen, saiatu lan batzuk egin, 103 00:05:27,985 --> 00:05:29,250 bere, direktorioa edukiak zerrendatu 104 00:05:29,250 --> 00:05:29,510 >> [AUDIO erreprodukzioa] 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 >> HIZLARIA: 1 Beraz, zuzentasuna, egia esan ez zen "kaixo". 109 00:05:35,030 --> 00:05:36,894 Zerbait izan ohi izan zen gehiago betean horrelako 110 00:05:36,894 --> 00:05:37,560 [AUDIO erreprodukzioa] 111 00:05:37,560 --> 00:05:37,750 -Beep. 112 00:05:37,750 --> 00:05:39,320 HIZLARIA: 1 --that I would-- beraz, bere ordenagailu litzateke 113 00:05:39,320 --> 00:05:42,170 zion zin edonoiz zen benetan esertzen zen, teklatua at. 114 00:05:42,170 --> 00:05:46,265 Eta oso azkar hurrena zuen ez du bere pantaila desblokeatu uztea. 115 00:05:46,265 --> 00:05:48,730 Baina hau sort dioen ergelak fun duzula 116 00:05:48,730 --> 00:05:50,210 Bash antzeko zerbait izan daiteke. 117 00:05:50,210 --> 00:05:52,770 Baina pixka bat gehiago da larriak, ziur, hori baino. 118 00:05:52,770 --> 00:05:57,235 Eta hain zuzen ere, hau da, bat arriskutsu eta iraupen luzeko bugs gehien 119 00:05:57,235 --> 00:05:58,860 benetan hit mundu globalean. 120 00:05:58,860 --> 00:06:02,060 Inguruan bug Hau izan da 20 urtez, 121 00:06:02,060 --> 00:06:05,780 eta zuk justu batean zaizu deigarria Bere sinpletasun erlatiboa unea. 122 00:06:05,780 --> 00:06:07,990 >> Beraz, honen ordezkari bat da errac baduzu 123 00:06:07,990 --> 00:06:10,448 jabea Mac bat, literalki, oraintxe zure tapa irekita dituzunean, 124 00:06:10,448 --> 00:06:12,940 horretan idazten saiatu dezakezu programa Terminal izeneko. 125 00:06:12,940 --> 00:06:15,410 Terminal azpian dagoen Eskaerak Utilities-- 126 00:06:15,410 --> 00:06:18,790 behin, Windows erabiltzaileek ez dute threat-- zehatz honetan kezkatu 127 00:06:18,790 --> 00:06:22,310 baina zuk horiek Macs batera idatz dezakezu hau leiho batean bezala egin dut hemen, 128 00:06:22,310 --> 00:06:24,210 eta zuk idatzi ez bada Programa honetan sartu duen 129 00:06:24,210 --> 00:06:28,830 Terminal deitzen, bezalako egin dut, gaur egun, hitza ikusten baduzu, "ahul" 130 00:06:28,830 --> 00:06:32,200 Zure ordenagailua da esplotazioa zaurgarria. 131 00:06:32,200 --> 00:06:33,850 >> Orain zer benetan esan nahi du? 132 00:06:33,850 --> 00:06:35,870 Eta hau da admittedly batzuk nahiko zoroa sintaxia, 133 00:06:35,870 --> 00:06:39,050 baina dezagun gutxienez marrazteko alderdi interesgarri batzuk. 134 00:06:39,050 --> 00:06:42,567 Beraz, ez dagoela itxura sintaxia batzuk Pixka bat ezagutzen, gutxienez C-tik 135 00:06:42,567 --> 00:06:43,950 eta, oro har programazioa. 136 00:06:43,950 --> 00:06:47,550 Parentesi batzuk ikusten ditut, puntu, kizkur giltza, eta, besteak beste, 137 00:06:47,550 --> 00:06:50,820 baina bihurtzen da hori ergelak gauza hemen horiz 138 00:06:50,820 --> 00:06:53,580 funtzioa da, funtsean, dagoela ezer ez. 139 00:06:53,580 --> 00:06:57,840 Colon bitartekoak ez dute ezer egiten, eta koma esan nahi gelditu, ezer egin gabe. 140 00:06:57,840 --> 00:07:00,250 Beraz, horien barruan kizkur giltza, hain zuzen, 141 00:07:00,250 --> 00:07:02,440 berdina izango duten I utzi, hau sinatzeko 142 00:07:02,440 --> 00:07:05,500 funtsean sortzeko komando bat, edo aldagai bat, 143 00:07:05,500 --> 00:07:09,520 x deitu, eta hura esleitzea Kode bit horia dagoela. 144 00:07:09,520 --> 00:07:14,040 Hori "oihartzun antzeko zerbait izan liteke kaixo "edo" esan bip "edo zerbait 145 00:07:14,040 --> 00:07:15,120 duten betean. 146 00:07:15,120 --> 00:07:17,780 Baina zure begiak bada nabarituko aurrerago ibiltzeko eskubidea, 147 00:07:17,780 --> 00:07:22,150 ez da lerro hori baino gehiago besterik ez koma horren amaieran. 148 00:07:22,150 --> 00:07:25,160 "Echo zaurgarria", eta, ondoren, Haratago ez, are gehiago. 149 00:07:25,160 --> 00:07:26,530 Beste puntu eta koma, bash -c :. 150 00:07:26,530 --> 00:07:28,120 151 00:07:28,120 --> 00:07:34,050 >> Beraz, ipuin luze, kode-lerro hau da, 152 00:07:34,050 --> 00:07:36,660 sinesgarria nahikoa hori da ordenagailu bat 153 00:07:36,660 --> 00:07:39,830 zerbait egiten zaurgarria egin nahi duzula, 154 00:07:39,830 --> 00:07:44,290 ez Bash Horren bidez, akats bat delako Bash nahiz gelditu zen ustezko 155 00:07:44,290 --> 00:07:48,980 irakurtzen komando eskuin-ildoak ez du testu horia ondoren, 156 00:07:48,980 --> 00:07:52,520 20-plus urteko bug zahar bat, Bash benetan izan du irakurtzen 157 00:07:52,520 --> 00:07:56,780 koma hori baino haratago, eta nahiko zer den kontatzen da askoz ere egiten. 158 00:07:56,780 --> 00:07:59,070 >> Beraz, zer inplikazio dela, azken finean? 159 00:07:59,070 --> 00:08:01,340 Esan besterik ez dut "echo kaixo" edo "echo zaurgarria" 160 00:08:01,340 --> 00:08:05,449 baina zer zerbait egin baduzu benetan maltzurren, rm -rf * bezala, 161 00:08:05,449 --> 00:08:07,240 eta horrek agian ez duzu inoiz idatzi aurretik, 162 00:08:07,240 --> 00:08:08,920 eta Egia, seguruenik duzu beharko lukete, ez goizegi, 163 00:08:08,920 --> 00:08:10,700 duzu bat egin ahal izango delako Berarekin kalte asko. 164 00:08:10,700 --> 00:08:11,210 Zergatik? 165 00:08:11,210 --> 00:08:12,990 rm du zer, nola ez? 166 00:08:12,990 --> 00:08:14,270 Kentzen ditu. 167 00:08:14,270 --> 00:08:15,930 * Esan nahi du zer? 168 00:08:15,930 --> 00:08:16,430 Guztiak. 169 00:08:16,430 --> 00:08:18,180 Beraz, bat deiturikoak eta bietan, esan nahi du, beraz, 170 00:08:18,180 --> 00:08:20,410 Guztia ezabatu uneko direktorioa. 171 00:08:20,410 --> 00:08:23,379 recursive esan gertatzen -r, horrek esan nahi du zer ezabatzen ari bazara 172 00:08:23,379 --> 00:08:26,420 Direktorio bat da, eta hor barruan Beste fitxategi eta beste directories da, 173 00:08:26,420 --> 00:08:28,950 errekurtsiboki ez murgiltzea eta ezabatu hori guztia. 174 00:08:28,950 --> 00:08:31,040 Eta f denak txarrena da. 175 00:08:31,040 --> 00:08:32,580 Edonork ezagutzen hemen zer esan nahi du-f? 176 00:08:32,580 --> 00:08:33,690 177 00:08:33,690 --> 00:08:34,360 Force. 178 00:08:34,360 --> 00:08:37,830 Beraz behartzeko bide, are gehiago, hau ideia txarra bada, 179 00:08:37,830 --> 00:08:40,939 al zidan galdetu gabe berrespena gehiagorako. 180 00:08:40,939 --> 00:08:43,230 Beraz, badakizu, barre at dugu honetan, baina Egia, I seguruenik 181 00:08:43,230 --> 00:08:44,972 idatzi hau hainbat aldiz Egun batean, errealitatea delako 182 00:08:44,972 --> 00:08:47,210 da modurik azkarrena da stuff sorta osoa ezabatzeko. 183 00:08:47,210 --> 00:08:48,590 Baina, nahiz eta kalte batzuk egin ditut. 184 00:08:48,590 --> 00:08:53,100 >> Baina ordenagailu bat engainatu zinen ergelak aldagai batzuk definituz sartu 185 00:08:53,100 --> 00:08:56,810 edo x izeneko funtzioa du, baina gero ordenagailua tricking exekutatzean sartu 186 00:08:56,810 --> 00:09:00,030 duten mugak haratago funtzioa, koma hori baino haratago, 187 00:09:00,030 --> 00:09:04,430 hain zuzen ere, ezin duzu ordenagailu bat engainatu rm antzeko zerbait exekutatzean sartu -rf 188 00:09:04,430 --> 00:09:07,810 edo Email komandoa edo Kopiatu komandoa. 189 00:09:07,810 --> 00:09:11,400 Ezer literalki egin dezakezu ordenagailua, nik fitxategiak ezabatuz ala ez, 190 00:09:11,400 --> 00:09:15,350 fitxategiak sortzeko, norbaiten spamming, zerbitzari batzuk urrunetik erasotzen, 191 00:09:15,350 --> 00:09:17,190 duzun adierazi ahal bada komando batekin, zuk 192 00:09:17,190 --> 00:09:19,120 ordenagailu bat engainatu egiten duenean. 193 00:09:19,120 --> 00:09:21,510 >> Orain zer da adibide bat Hau nola egin dezakezu? 194 00:09:21,510 --> 00:09:24,300 Beno, ez ordenagailuak asko da internet lasterka Bash gainean. 195 00:09:24,300 --> 00:09:26,390 Gurekin Mac erabiltzaile guztiek haien artean daude. 196 00:09:26,390 --> 00:09:30,390 Linux zerbitzari asko dira, besteak beste baita, eta Unix zerbitzariak. 197 00:09:30,390 --> 00:09:32,630 Windows berriro lortzen kako nahiko off 198 00:09:32,630 --> 00:09:34,590 instalatu ezean software berezia. 199 00:09:34,590 --> 00:09:37,130 Orain bat zerbitzari asko, for Esate baterako, exekutatu web zerbitzariak, 200 00:09:37,130 --> 00:09:39,840 eta hain zuzen ere Linux da, beharbada, popular sistema eragilea gehien 201 00:09:39,840 --> 00:09:43,060 Interneten ordenagailuetan exekutatu diren web orriak sortu zerbitzatu. 202 00:09:43,060 --> 00:09:44,910 Orain dugun bezala, geroago ikusiko seihilekoan, noiz hasi 203 00:09:44,910 --> 00:09:48,470 eskaera bat bidali duzu Zure browser-- Chrome, 204 00:09:48,470 --> 00:09:50,790 Internet Explorer, dena delakoa urruneko zerbitzari batean, 205 00:09:50,790 --> 00:09:53,730 bihurtzen da, nahiz kurtsorea kokatuta www.example.com, 206 00:09:53,730 --> 00:09:59,590 Zure nabigatzaileak mezu bat bidaltzen hori da apur bat gehiago arcane, honela. 207 00:09:59,590 --> 00:10:01,239 >> Baina zerbait apur bat arraroa nabarituko. 208 00:10:01,239 --> 00:10:03,030 Lehen bi lerroak Ez dut inoiz ikusi aurretik, 209 00:10:03,030 --> 00:10:04,904 baina ez dute itxura bereziki arriskuan. 210 00:10:04,904 --> 00:10:08,030 Baina zer lapurtu dut nabarituko hirugarren lerroan hemen da. 211 00:10:08,030 --> 00:10:13,390 Tipo txarra balitz mezu bat bidali honek bere ordenagailutik bezala 212 00:10:13,390 --> 00:10:17,270 Mac edo zaurgarria bati vulnerable Linux zerbitzari, 213 00:10:17,270 --> 00:10:21,580 gauza dibertigarria Bash, hau da, komando gutxi simple gonbita dela, 214 00:10:21,580 --> 00:10:27,450 nonahikoa da eta askotan used to funtsean exekutatu 215 00:10:27,450 --> 00:10:30,020 baten edukia Mezu bitartean jasotzen dituen. 216 00:10:30,020 --> 00:10:33,490 Eta logika hori, ahal duzun web zerbitzari bat engainatu, beraz, 217 00:10:33,490 --> 00:10:36,370 antzeko zerbait bidalita Erabiltzaile-agentea, ohi 218 00:10:36,370 --> 00:10:38,300 esateko suposatzen da Zure nabigatzailean izena. 219 00:10:38,300 --> 00:10:42,420 Erabiltzaile-agentea Chrome, Erabiltzaile-agentea Internet Explorer, Erabiltzaile-agentea Firefox, hau 220 00:10:42,420 --> 00:10:44,590 besterik ez da zure nabigatzailean bera identifikatzeko bide. 221 00:10:44,590 --> 00:10:46,605 Baina bada tipo txarra oso cleverly dio, mm-mm, naiz 222 00:10:46,605 --> 00:10:47,930 Ez duzu esango zer nire nabigatzailea da, 223 00:10:47,930 --> 00:10:50,888 Naiz ordez bidal hau joan críptica begira rm -rf batekin gauza 224 00:10:50,888 --> 00:10:55,840 * Bertan, dezakezu literalki trick vulnerable Interneteko web-zerbitzari 225 00:10:55,840 --> 00:10:59,055 zehazki hori exekutatzean sartu han fitxategi guztiak ezabatzeko. 226 00:10:59,055 --> 00:11:00,930 Eta Egia, ez da hori nahiz eta txarrena. 227 00:11:00,930 --> 00:11:01,763 Ezer egin ahal izango duzu. 228 00:11:01,763 --> 00:11:04,480 Hasteko ezin duzu banatu bat zerbitzu erasoa ukatzea 229 00:11:04,480 --> 00:11:07,030 Mezu hau bidaltzen baduzu web zerbitzariak sortak osoa 230 00:11:07,030 --> 00:11:10,256 eta gero izan denak, jaitsi for Esate baterako, Harvard.edu zerbitzarietan, 231 00:11:10,256 --> 00:11:12,130 eta bang ordena ditzakezu Horietako out demontre 232 00:11:12,130 --> 00:11:15,490 sareko trafikoa bat zela arabera bestela txarra lasaia hau aktibatzen. 233 00:11:15,490 --> 00:11:18,760 >> Beraz, ipuin luze, ia Gela honetan Mac bat norenak guztiontzat 234 00:11:18,760 --> 00:11:20,240 honen aurrean. 235 00:11:20,240 --> 00:11:24,100 Zilarrezko estaldura da hori ez baduzu Oraindik Zure ordenagailu eramangarria web zerbitzari bat exekutatzen ari da, 236 00:11:24,100 --> 00:11:27,780 eta benetan duzun konfiguratuta ezean SSH antzeko zerbait egin ahal izateko bertan sartu, 237 00:11:27,780 --> 00:11:28,670 Oraindik benetan segurua. 238 00:11:28,670 --> 00:11:31,710 It zaurgarria da, baina ez dago Bat eramangarria lortu nahian, 239 00:11:31,710 --> 00:11:33,290 beraz ordenatzeko gainerako ziurtaturik duzu. 240 00:11:33,290 --> 00:11:36,210 Hala eta guztiz ere, Apple laster izan hau fix bat eguneratzeko. 241 00:11:36,210 --> 00:11:39,660 Linux munduan dagoeneko kaleratu du Fedora eta Ubuntu konponketak kopuru bat 242 00:11:39,660 --> 00:11:43,790 eta beste Linux bertsio, eta halaxe aparatuaren update 50 exekutatu baduzu, 243 00:11:43,790 --> 00:11:45,930 gehiegi, nahiz eta hori izango da eguneratu eta zuzendu. 244 00:11:45,930 --> 00:11:47,764 Baina hori ere ez dauka Benetan dira zaurgarria, 245 00:11:47,764 --> 00:11:49,804 duzun ezean delako aparatuaren tinkered 246 00:11:49,804 --> 00:11:52,770 eta eramangarria egiten publikoki Interneten, eta hori ez da eskuragarria 247 00:11:52,770 --> 00:11:54,910 lehenespenez, duzun benetan izan fina delako 248 00:11:54,910 --> 00:11:56,890 firewalling eta beste teknika. 249 00:11:56,890 --> 00:12:01,000 >> Baina muturreko bug baten adibidea da dugun bizi literalki 20 250 00:12:01,000 --> 00:12:04,050 urteetan, eta nork daki norbait bada Denbora horretan guztian du ezagutzen? 251 00:12:04,050 --> 00:12:06,300 Eta hain zuzen ere, hau da, bat dituen funtsezko erronkak 252 00:12:06,300 --> 00:12:08,690 geroago dugula ikusiko batean segurtasunaren inguruan seihilekoan, 253 00:12:08,690 --> 00:12:13,020 dela besterik ez mundu errealean bezala, zintzoak desabantaila daude. 254 00:12:13,020 --> 00:12:16,500 Txarra guys mantentzeko, behar dugu ziurtatu ate bakoitzean blokeatuta, hau da, 255 00:12:16,500 --> 00:12:20,340 leiho guztietan segurua dela, eta, sarrera-puntu guztietan hasiera batean 256 00:12:20,340 --> 00:12:21,980 seguru txarra guys mantentzeko da. 257 00:12:21,980 --> 00:12:26,870 Baina zer du txarra lasaia izateko Egin zure etxean benetan hondatu 258 00:12:26,870 --> 00:12:28,200 eta zuk lapurtu? 259 00:12:28,200 --> 00:12:32,574 Zuen besterik ez du bat desblokeatu aurkitu ate, leiho bat apurtuta, edo zerbait 260 00:12:32,574 --> 00:12:35,240 lerro horiek batera, eta da segurtasun informatikoa ere gauza bera. 261 00:12:35,240 --> 00:12:37,660 Milioika idatzi ahal dugu programazio kode lerro 262 00:12:37,660 --> 00:12:40,570 eta ehunka edo milaka pasatzeko da zuzena lortu nahian orduko, 263 00:12:40,570 --> 00:12:43,370 baina bakar bat egiten baduzu zuzentasun akats, 264 00:12:43,370 --> 00:12:47,030 sistema osoa jarri dezakezu eta hain zuzen ere, kasu honetan, internet osoa 265 00:12:47,030 --> 00:12:48,660 eta arriskuan dauden munduko. 266 00:12:48,660 --> 00:12:51,950 >> Beraz, gehiago ikasi nahi baduzu honi buruz, joan URL hau hemen. 267 00:12:51,950 --> 00:12:54,450 Ez dago ekintza beharra Gaur gauean Oraindik ezean 268 00:12:54,450 --> 00:12:57,116 erosoago duten etxeetan izan zeure web abian aldi 269 00:12:57,116 --> 00:12:59,810 zerbitzariak, eta kasu egin beharko lukete zuk ere, Izan ere, softwarea eguneratzeko. 270 00:12:59,810 --> 00:13:03,244 >> Eta hau ere izenburua da hitzaldi bat, eta gaur egun, paper bat, 271 00:13:03,244 --> 00:13:05,410 Nik dugula on lotuta Jakina da gaur egun webgunean. 272 00:13:05,410 --> 00:13:07,600 Ikaskide batek izan zen izeneko Ken Thompson, nor 273 00:13:07,600 --> 00:13:10,120 zen oso ospetsua onartuz informatikako saria, 274 00:13:10,120 --> 00:13:13,495 eta eman zuen hitzaldian, urte batzuk ago, funtsean gai honen beraren gainean. 275 00:13:13,495 --> 00:13:18,250 276 00:13:18,250 --> 00:13:20,520 Folks eskatuz galdera, behar duzu benetan 277 00:13:20,520 --> 00:13:23,480 konfiantza, azken finean, software Zuk eman? 278 00:13:23,480 --> 00:13:26,100 Esate baterako, denok daukagu dira programak idazteko, 279 00:13:26,100 --> 00:13:27,820 eta dira konpilatzen dugu Clang dituzten horiek. 280 00:13:27,820 --> 00:13:31,830 Eta zure ezagutza, idatzi duzue CS50 programak edozein non dago 281 00:13:31,830 --> 00:13:35,310 atzera ordenatzen ate bat, ez dago modu bat da tipo txarra dela, zure programa exekutatzen bada, 282 00:13:35,310 --> 00:13:37,410 Zure ordenagailuan baino gehiago hartu daiteke? 283 00:13:37,410 --> 00:13:38,310 Seguruenik, ez da, ezta? 284 00:13:38,310 --> 00:13:40,180 Mario eta Greedy, eta Kreditu. 285 00:13:40,180 --> 00:13:41,680 Hauek programak nahiko txikiak dira. 286 00:13:41,680 --> 00:13:43,910 Polita izan nahi duzu txarra izanez gero, egia esan, 287 00:13:43,910 --> 00:13:47,310 zure ordenagailu osoa vulnerable egin 10 edo 20 kode lerro idatzi ondoren, 288 00:13:47,310 --> 00:13:49,690 edo, gutxienez, zenbait ezjakin segurtasun inplikazio. 289 00:13:49,690 --> 00:13:52,023 Orain dela umorez esaten dut, baina ari gara, gaur egun ikusteko joan 290 00:13:52,023 --> 00:13:54,600 eta aste honetan, egia esan, benetan, oso erraza 291 00:13:54,600 --> 00:13:57,980 txarra izan eta nahiz eta egin programa laburrak zaurgarria. 292 00:13:57,980 --> 00:14:02,880 >> Baina, oraingoz, behintzat, konturatzen eskatzen ari hemen galdera 293 00:14:02,880 --> 00:14:04,850 Clang buruz konpiladore batean. 294 00:14:04,850 --> 00:14:08,360 Zergatik fidatu izan dugu Clang Azken bi edo hiru aste? 295 00:14:08,360 --> 00:14:12,650 Nor duenak idatzi Clang esateko ez dute "gero" ez diren baldintza bat 296 00:14:12,650 --> 00:14:17,680 funtsean zero batzuk injektatu eta programa guztietan sartu direnak biltzen 297 00:14:17,680 --> 00:14:21,180 noiz utzi zion edo bere sarbidea Zure ordenagailuan lo zara 298 00:14:21,180 --> 00:14:23,580 eta eramangarria tapa irekita dago eta ordenagailuan exekutatzen ari da? 299 00:14:23,580 --> 00:14:24,080 Eskuin? 300 00:14:24,080 --> 00:14:28,350 Ohore sistema eskuineko sort hau daukagu orain non fidatzen gara Clang dela egiaztatzeko. 301 00:14:28,350 --> 00:14:30,000 Fidagarriak aparatuaren dela egiaztatzeko. 302 00:14:30,000 --> 00:14:34,430 Konfiantzazko literalki programa guztietan zure Mac edo PC fidagarriak da. 303 00:14:34,430 --> 00:14:37,510 Eta bug sinple honek dioen bezala, Ez da asmo txarreko bada ere, 304 00:14:37,510 --> 00:14:40,580 hori erabat ez litekeena da kasua izan. 305 00:14:40,580 --> 00:14:42,350 >> Beraz, infernua bezala beldur izan behar duzu. 306 00:14:42,350 --> 00:14:45,560 Egia, ez da ez sinple beste honen konponbidea 307 00:14:45,560 --> 00:14:48,185 gizarte-sentsibilizazio moduko bat baino handituz konplexutasun 308 00:14:48,185 --> 00:14:50,310 ari garela gainean eraikitzen gure sistema informatikoak, 309 00:14:50,310 --> 00:14:53,740 nola zaurgarria, gero eta Oso ondo izango genuke. 310 00:14:53,740 --> 00:14:55,570 >> Orain esan, Breakout. 311 00:14:55,570 --> 00:14:59,889 Beraz Breakout arazoa da ezarritako hiru, eta Breakout antaño batetik joko bat da 312 00:14:59,889 --> 00:15:02,180 baliteke gogoratzen duzu, baina guretzat arazoa hiru ezarri, 313 00:15:02,180 --> 00:15:04,450 hartu digu gauzak atzera Notch bat sortu 314 00:15:04,450 --> 00:15:08,880 denean programak idazten ari gara, beraz, are gehiago hau bezalako Terminal leiho batean, 315 00:15:08,880 --> 00:15:14,670 benetan dugu exekutatu daiteke, azken finean, programak grafikoa ez 316 00:15:14,670 --> 00:15:17,800 horiek ez bezala, izan dugu Scratch sarbidea. 317 00:15:17,800 --> 00:15:20,910 Beraz, hau da langileak hamarkadan Breakout ezartzeko, 318 00:15:20,910 --> 00:15:23,930 besterik adreiluzko-haustura hau da Jokoan, zure pala atzera mugitu duzula 319 00:15:23,930 --> 00:15:27,590 eta aurrera, eta baloia hit duzu sortu top koloretako adreilu horiek aurka. 320 00:15:27,590 --> 00:15:30,020 Beraz, hau da gurekin harremanetan jarriz Ordena atzera nora 321 00:15:30,020 --> 00:15:33,180 Oso azkar izan ahal izan dugu Scratch-ekin, eta orain C-rekin, 322 00:15:33,180 --> 00:15:35,800 gure kabuz gauzatzeko interfaze grafiko. 323 00:15:35,800 --> 00:15:38,960 >> Baina hori baino gehiago, hau Arazo multzo bat irudikatzen lehenengoa 324 00:15:38,960 --> 00:15:41,000 bertan ematen ari gara you kodea sorta bat. 325 00:15:41,000 --> 00:15:43,940 Eta hain zuzen ere, esplizituak ekarri dut hau, bereziki, zeren 326 00:15:43,940 --> 00:15:47,090 gutxiago dutenentzat erosoa, hau arazo multzo, behintzat hasiera batean, 327 00:15:47,090 --> 00:15:49,170 da behar bezala sentitzen joan Nik hartu dugu sortu Notch. 328 00:15:49,170 --> 00:15:51,540 Eman dugu delako, bilaketa batzuk 329 00:15:51,540 --> 00:15:54,930 eta arazoak ordenatzeko pset batean, idatzi dugun kodea sorta bat, 330 00:15:54,930 --> 00:15:56,680 eta komentario pare bat dagoela esan "egin" 331 00:15:56,680 --> 00:15:58,221 nora hutsuneak bete behar duzu. 332 00:15:58,221 --> 00:16:00,020 Beraz, ez oso scary, baina lehen aldia da 333 00:16:00,020 --> 00:16:03,370 you kodea gozamenerako ari garela behar duzu Lehenengo irakurri, ulertu, eta, ondoren gehitzeko 334 00:16:03,370 --> 00:16:04,290 eta osatuko da. 335 00:16:04,290 --> 00:16:05,940 >> Eta gero Breakout batera, Gauza bera egin behar dugu, 336 00:16:05,940 --> 00:16:08,740 you batzuk dozena bat lerro gehiago emanez kodea duten, Egia, emango dizu 337 00:16:08,740 --> 00:16:11,490 esparrua asko Jokoaren baina gelditu labur 338 00:16:11,490 --> 00:16:14,304 adreilu gauzatzeko eta pilota eta pala, 339 00:16:14,304 --> 00:16:15,970 baina beste ezaugarri batzuk ezartzeko egiten dugu. 340 00:16:15,970 --> 00:16:18,280 Eta nahiz eta hasiera batean, berriz, batez ere gutxiago erosoa bada, 341 00:16:18,280 --> 00:16:21,480 bereziki Beraz, badirudi daiteke eta Uste duzu funtzio berria ez da hainbeste 342 00:16:21,480 --> 00:16:24,070 your mind itzulbiratu behar duzu inguruan, eta hori egia da. 343 00:16:24,070 --> 00:16:26,281 Baina kontuan hartu, hori Nahiko Scratch bezala. 344 00:16:26,281 --> 00:16:28,780 Odds dira, ez duzu guztia Scratch, puzzle pieza. 345 00:16:28,780 --> 00:16:31,120 Odds dira ez duzu axola biltzeko papera denak inguruan zure kontuan 346 00:16:31,120 --> 00:16:33,617 guztiak ere hartu zen delako bat begiratu azkar ulertzen, oi, 347 00:16:33,617 --> 00:16:35,450 hori da, zer egin ahal dut puzzle pieza horrekin. 348 00:16:35,450 --> 00:16:38,260 Eta hain zuzen ere, arazo ezarri 3 zehaztapenak, seinalatu egingo dugu 349 00:16:38,260 --> 00:16:41,370 dokumentazio ekarri duten borondatea aurkeztu funtzio berri batzuk behar duzu, 350 00:16:41,370 --> 00:16:43,570 eta, azken finean, programazioa erabiltzen duzun eraikitzen. 351 00:16:43,570 --> 00:16:47,610 Baldintzak, begiztak, aldagaiak eta funtzioak 352 00:16:47,610 --> 00:16:50,720 berdina izango da zer horrela ikusten dugu orain arte. 353 00:16:50,720 --> 00:16:53,560 >> Beraz, hain zuzen ere, zer eman dugu lagin kodea batzuk duzula 354 00:16:53,560 --> 00:16:56,110 aukera ematen dizu leiho bat sortzean hori ez itxura hau ez bezala, 355 00:16:56,110 --> 00:16:59,540 eta azken batean sartu zerbait nahiko honetan bezala. 356 00:16:59,540 --> 00:17:02,250 Beraz, aprobetxatu CS50, bulego orduetan eta gehiago eztabaidatu, 357 00:17:02,250 --> 00:17:05,290 eta erosotasuna hartu duela, hain zuzen ere kodea zenbatekoa idatzi behar duzu 358 00:17:05,290 --> 00:17:06,760 da, benetan ez da asko. 359 00:17:06,760 --> 00:17:10,359 Aurreneko erronka besterik acclimate da zeuk kodea batzuk idatzi dugu. 360 00:17:10,359 --> 00:17:11,450 361 00:17:11,450 --> 00:17:15,810 >> Pset3 edozein galdera, Shellshock, edo bestela? 362 00:17:15,810 --> 00:17:19,226 >> IKUSLEEN: zirudien bezalakoa da igaro Breakout batera 363 00:17:19,226 --> 00:17:22,154 kodea Ia objektuei zuzendutako estilo bat, 364 00:17:22,154 --> 00:17:24,675 baina pentsatu nuen C izan zen objektuei zuzendutako programa. 365 00:17:24,675 --> 00:17:26,050 HIZLARIA: 1 galdera bikaina. 366 00:17:26,050 --> 00:17:28,258 Beraz bitartez bilatzen hasi banaketa kodea, kodea 367 00:17:28,258 --> 00:17:30,180 pset3 idatzi dugu, ezagutzen dutenentzat, it 368 00:17:30,180 --> 00:17:32,230 itxura bat bezala objektuetara bideratutako gutxi. 369 00:17:32,230 --> 00:17:33,800 Erantzun laburra da, hau da. 370 00:17:33,800 --> 00:17:38,130 How you hurbilketa bat da objektuei zuzendutako kodea egin dezake erabiliz 371 00:17:38,130 --> 00:17:41,850 C bezalako hizkuntza bat, baina ez da Oraindik ere, azken finean, prozedurazkoa. 372 00:17:41,850 --> 00:17:44,900 Badira barruan metodoak ez aldagaiak, hala duzu ikusteko. 373 00:17:44,900 --> 00:17:46,180 Baina hori gogorarazten da. 374 00:17:46,180 --> 00:17:48,780 Eta berriro ikusiko dugu, eta ezaugarri hori denean lortu PHP eta JavaScript nahi dugu 375 00:17:48,780 --> 00:17:49,946 amaieran seihileko aldera. 376 00:17:49,946 --> 00:17:53,667 Baina orain, pentsatu bezala zer da iradokizun bat etorri. 377 00:17:53,667 --> 00:17:54,250 Ona galdera. 378 00:17:54,250 --> 00:17:56,051 379 00:17:56,051 --> 00:17:56,550 Guztiak eskubidea. 380 00:17:56,550 --> 00:17:59,730 Beraz, batu sort zen nola garen ezker gauzak azken aldiz. 381 00:17:59,730 --> 00:18:03,250 Eta batu sort zen cool Zentzu zela hainbeste azkarrago, 382 00:18:03,250 --> 00:18:07,100 Gutxienez oinarritutako cursory probak azken astean egin dugu, adibidez, baino burbuila 383 00:18:07,100 --> 00:18:08,710 ordenatu, ordenatu, txertatzeko sort. 384 00:18:08,710 --> 00:18:11,780 Eta zer neat zen oso besterik ez da nola succinctly eta garbi 385 00:18:11,780 --> 00:18:12,810 Adierazteko dezakezu. 386 00:18:12,810 --> 00:18:15,840 Goiko bat izan zen eta zer ez esaten dugu Merge denbora lotuak 387 00:18:15,840 --> 00:18:16,340 ordenatzeko? 388 00:18:16,340 --> 00:18:17,633 389 00:18:17,633 --> 00:18:18,495 Bai? 390 00:18:18,495 --> 00:18:19,360 >> IKUSLEEN: n log n? 391 00:18:19,360 --> 00:18:20,819 >> HIZLARIA: 1 n log n, eskuinera. n log n. 392 00:18:20,819 --> 00:18:23,776 Eta berriro itzuliko gara, zer esan nahi du Benetan esan nahi du, edo non den, 393 00:18:23,776 --> 00:18:25,570 baina hau hobea izan zen zer iraupena baino 394 00:18:25,570 --> 00:18:28,440 ikusi dugun burbuila for aukeraketa eta txertatzeko sort? 395 00:18:28,440 --> 00:18:30,610 Beraz, n karratu. n karratu hau baino handiagoa da, 396 00:18:30,610 --> 00:18:34,650 eta ez da, nahiko begi-bistakoa bada ere, jakin log n n baino txikiagoa da, 397 00:18:34,650 --> 00:18:36,910 beraz, n aldiz egiten baduzu Zerbait n baino txikiagoa, 398 00:18:36,910 --> 00:18:38,680 nik gutxiago n karratu baino izango. 399 00:18:38,680 --> 00:18:40,130 Intuizio pixka bat da han. 400 00:18:40,130 --> 00:18:42,190 Baina prezio bat ordaindu dugu horretarako. 401 00:18:42,190 --> 00:18:47,000 Azkarragoa izan zen, baina gai bat hasi azken astean azaleratzen denerako zen. 402 00:18:47,000 --> 00:18:49,804 Errendimendu hobea lortu nuen denbora jakintsua, baina zer 403 00:18:49,804 --> 00:18:52,470 zuen bestea pasatzeko daukat alde batetik, ordena hori lortzeko? 404 00:18:52,470 --> 00:18:53,591 >> IKUSLEEN: Memoria. 405 00:18:53,591 --> 00:18:54,465 HIZLARIA: 1 Esan berriro? 406 00:18:54,465 --> 00:18:55,173 IKUSLEEN: Memoria. 407 00:18:55,173 --> 00:18:57,040 HIZLARIA: 1 Memoria, edo Leku gehiago, oro har. 408 00:18:57,040 --> 00:18:59,040 Eta ez zen super Gure gizakiak bistako, 409 00:18:59,040 --> 00:19:02,240 baina gogoratzen gure boluntarioek ziren aurrera joatea eta zapaltzeko 410 00:19:02,240 --> 00:19:04,780 atzera bagina bezala ez array bat hemen, eta badirudi ez dago 411 00:19:04,780 --> 00:19:07,130 bigarren array bat hemen erabili izan dute, garelako 412 00:19:07,130 --> 00:19:09,080 beharrezko someplace Folks horiek batzeko. 413 00:19:09,080 --> 00:19:11,480 Ezin dugu besterik gabe trukatzeko horiek lekuan. 414 00:19:11,480 --> 00:19:13,800 Beraz batu sort leverage leku gehiago dago, eta horrek 415 00:19:13,800 --> 00:19:15,620 ez genuen behar Beste algoritmoak, 416 00:19:15,620 --> 00:19:17,410 baina hankaz da askoz azkarragoa dela. 417 00:19:17,410 --> 00:19:20,780 Eta Egia, benetako mundua espazioan RAM days-- horiek, disko gogorrean espazio 418 00:19:20,780 --> 00:19:25,030 nahiko merkea, eta, beraz, hori ez du zertan txarra. 419 00:19:25,030 --> 00:19:28,320 >> Beraz, dezagun begirada bat, apur bat gehiago metodikoki, zer egin genuen at 420 00:19:28,320 --> 00:19:30,220 eta zergatik izan zen n log n esan genuen. 421 00:19:30,220 --> 00:19:33,260 Hortaz, hona hemen zortzi zenbakiak eta zortzi boluntario azken aldiz izan genuen. 422 00:19:33,260 --> 00:19:35,718 Eta Batu duten lehenengo gauza Sort esan zigun zer zen? 423 00:19:35,718 --> 00:19:37,010 424 00:19:37,010 --> 00:19:38,010 IKUSLEEN: bitan zatituta. 425 00:19:38,010 --> 00:19:38,663 HIZLARIA: 1 Esan berriro? 426 00:19:38,663 --> 00:19:39,650 IKUSLEEN: bitan zatituta. 427 00:19:39,650 --> 00:19:40,610 HIZLARIA: 1 bitan zatituta, eskuinera. 428 00:19:40,610 --> 00:19:42,818 Hau oso gogorarazten telefono liburua, arrail of 429 00:19:42,818 --> 00:19:44,220 eta agindu gehiago, oro har. 430 00:19:44,220 --> 00:19:45,640 Beraz, begiratu ezkerreko erdia dugu. 431 00:19:45,640 --> 00:19:48,700 Eta gero berriro, esan dugun moduko elementuak ezkerreko erdia, 432 00:19:48,700 --> 00:19:49,690 zer datorren esan genezake? 433 00:19:49,690 --> 00:19:51,210 434 00:19:51,210 --> 00:19:54,860 Sort ezker ezker erdia erdia, eta horri esker, guretzat, 435 00:19:54,860 --> 00:19:57,570 bitan zatituz ondoren, lau eta bi ardatz. 436 00:19:57,570 --> 00:20:01,280 >> Zelan zerrenda ordenatzeko duzu orain, in horia, tamaina bi, batu sort erabiliz? 437 00:20:01,280 --> 00:20:02,330 438 00:20:02,330 --> 00:20:04,580 Beno zatitzeko erdia, eta ezkerreko erdia ordenatzeko. 439 00:20:04,580 --> 00:20:07,100 Eta hori izan zen, non gauzak ergelak laburki txiki bat lortu. 440 00:20:07,100 --> 00:20:10,720 Zelan zerrenda horren da ordenatzean tamaina bat, lau zenbaki hau hemen bezala? 441 00:20:10,720 --> 00:20:12,330 442 00:20:12,330 --> 00:20:13,210 Honez ordenatuta. 443 00:20:13,210 --> 00:20:14,200 Bukatutakoan. 444 00:20:14,200 --> 00:20:17,300 >> Baina orduan, nola ez, zerrenda ordenatzean tamaina bat denean bi zenbakia da? 445 00:20:17,300 --> 00:20:21,640 Beno, gauza bera, baina orain zer zen Hirugarren eta gako-batzea mota urratsa? 446 00:20:21,640 --> 00:20:24,020 Ezker batu behar izan duzu erdia eta eskuineko erdia. 447 00:20:24,020 --> 00:20:26,580 Eta behin egin duguna, begiratu dugu lauretan, begiratu bi at dugu. 448 00:20:26,580 --> 00:20:28,750 Guztiak ondo erabaki genuen, jakina bi dator lehen, 449 00:20:28,750 --> 00:20:31,840 beraz, bi jarri ditugu bere lekuan, lau jarraian. 450 00:20:31,840 --> 00:20:35,010 Eta orain, mota horretako atzeratzeko aukera izango duzu, eta honen ezaugarri sort da 451 00:20:35,010 --> 00:20:37,570 Batu bezalako algoritmo bat Sort, oroimenean atzera egiteko. 452 00:20:37,570 --> 00:20:40,240 Zein izan zen hurrengo istorioa lerroa? 453 00:20:40,240 --> 00:20:41,780 Zer behar da, hurrengo bideratua dut? 454 00:20:41,780 --> 00:20:43,110 455 00:20:43,110 --> 00:20:47,350 Eskuinetik ezkerrera erdia erdia, Zein da sei eta zortzi. 456 00:20:47,350 --> 00:20:50,320 >> Hargatik honen bidez urratsa besterik puntuan gehiegi belaboring gabe. 457 00:20:50,320 --> 00:20:53,330 Sei eta zortzi, gero sei dago ordenatuta, zortzi ordenatuko da. 458 00:20:53,330 --> 00:20:57,190 Batu itzazu elkarrekin duten bezala, eta orain hurrengo pausoa 459 00:20:57,190 --> 00:21:00,990 da, noski, eskuinera erdia ordenatzeko Algoritmo honen lehen urratsa. 460 00:21:00,990 --> 00:21:02,870 Beraz, bat, hiru, zazpi, bost ardatz dugu. 461 00:21:02,870 --> 00:21:04,540 Ondoren, ezkerreko erdia dugu aztergai. 462 00:21:04,540 --> 00:21:09,400 Ezker duten erdia, eskuineko erdia dela, eta, ondoren, bat eta hiru ere batu. 463 00:21:09,400 --> 00:21:13,100 Ondoren, eskuineko erdia, gero erdi utzi Da, ondoren, eskuineko erdia. 464 00:21:13,100 --> 00:21:15,985 Batu bertan, eta orain zer pauso geratzen da? 465 00:21:15,985 --> 00:21:18,040 466 00:21:18,040 --> 00:21:22,460 Batu the big ezkerreko erdia eta big eskuineko erdia, beraz, bat jaisten badira, 467 00:21:22,460 --> 00:21:27,330 ondoren, bi, hiru, lau, eta ondoren, bost, ondoren, sei, zazpi, ondoren, ondoren, zortzi. 468 00:21:27,330 --> 00:21:31,990 >> Beraz, gaur egun zergatik da hau, azken finean, agerian utziz, batez ere, n eta logaritmoak gehiago 469 00:21:31,990 --> 00:21:35,487 oro har, baizik eta ihes egiten duzu, gutxienez azken memoria? 470 00:21:35,487 --> 00:21:37,070 Beno, nabarituko gauza hau altuera. 471 00:21:37,070 --> 00:21:41,230 Zortzi elementu izan genuen, eta guk bi banatzen da, bi, bi. 472 00:21:41,230 --> 00:21:44,590 Zortzi bi ematen Beraz log base digu hiru. 473 00:21:44,590 --> 00:21:45,640 474 00:21:45,640 --> 00:21:48,540 Eta konfiantza me horretan bada Horretan hazy apur bat. 475 00:21:48,540 --> 00:21:54,710 Baina saioa base hiru zortzi bi, beraz, hiru batuz geruzak egin dugu. 476 00:21:54,710 --> 00:21:57,170 Eta noiz batu ditugu elementuak, elementu zenbat 477 00:21:57,170 --> 00:21:58,950 zuen itxura errenkada horietako bakoitzean at dugu? 478 00:21:58,950 --> 00:22:00,212 479 00:22:00,212 --> 00:22:01,437 N guztira, ezta? 480 00:22:01,437 --> 00:22:04,020 Goiko errenkadan batzea delako, it piecemeal egin dugu, nahiz eta, 481 00:22:04,020 --> 00:22:05,990 azken finean, ukitu kopurua behin dugu. 482 00:22:05,990 --> 00:22:09,054 Eta bigarren lerroan, to zerrendak horiek batu tamaina bi, 483 00:22:09,054 --> 00:22:10,470 elementu bakoitzaren ukitu behin izan genuen. 484 00:22:10,470 --> 00:22:12,690 Eta gero hemen benetan argi eta garbi, azken lerroan, 485 00:22:12,690 --> 00:22:15,430 horietako bakoitzak ukitzeko aukera izan genuen elementuen behin, baina behin bakarrik, 486 00:22:15,430 --> 00:22:18,400 beraz, dokumentu honetan gure n log n datza, ondoren,. 487 00:22:18,400 --> 00:22:21,780 >> Eta orain, besterik ez gauzak apur bat gehiago formal une bat besterik ez, nahi baduzue 488 00:22:21,780 --> 00:22:24,260 ziren, orain aztertuko honetan maila handiagoa moduko batean 489 00:22:24,260 --> 00:22:28,340 eta saiatu, erabaki behar baita nola Baliteke adierazteko buruz joan beharko duzu 490 00:22:28,340 --> 00:22:31,780 exekutatzen algoritmo honen denbora besterik ez da, eta ez begira 491 00:22:31,780 --> 00:22:33,590 Adibidez contrived bat erabiliz? 492 00:22:33,590 --> 00:22:36,590 Tira, zenbat denbora litzateke bat esan eta hau horiz hartuko luke bezala zapaldu, 493 00:22:36,590 --> 00:22:37,173 n <2 bueltan bada? 494 00:22:37,173 --> 00:22:38,840 495 00:22:38,840 --> 00:22:39,830 Hori zer O handi bat da? 496 00:22:39,830 --> 00:22:41,450 497 00:22:41,450 --> 00:22:44,540 Bat, beraz, beraz, urrats bat ikusten dut, agian, bi urrats egiten bada delako 498 00:22:44,540 --> 00:22:47,110 eta gero itzuli, baina hemen denbora etengabe, ezta? 499 00:22:47,110 --> 00:22:49,960 Beraz, esan dugu O (1), eta hori, hau nola adierazi dut. 500 00:22:49,960 --> 00:22:51,480 T, kontuz denbora exekutatzen. 501 00:22:51,480 --> 00:22:54,150 n sarrera-tamaina da, beraz, T (n), besterik ez fancy modu bat 502 00:22:54,150 --> 00:22:56,330 lasterka esaten Denbora-tamaina n sarrera eman 503 00:22:56,330 --> 00:23:00,220 da ordena, izango etengabeko denbora, O (1). 504 00:23:00,220 --> 00:23:01,970 >> Baina bestela, honi buruz, zer? 505 00:23:01,970 --> 00:23:05,660 Nola nahi den adierazteko lerro horiak honen iraupena? 506 00:23:05,660 --> 00:23:06,250 T zer? 507 00:23:06,250 --> 00:23:09,440 508 00:23:09,440 --> 00:23:12,665 Mota egin ahal hemen iruzur eta nire galdera ziklikoki erantzun. 509 00:23:12,665 --> 00:23:14,770 510 00:23:14,770 --> 00:23:17,900 Beraz, korrika denbora bada Oro esatea besterik ez dugu T (n) da. 511 00:23:17,900 --> 00:23:18,950 512 00:23:18,950 --> 00:23:22,490 Eta orain zu mota hemen punting duzu eta , esaten baita, besterik gabe, ezkerreko erdia ordenatzeko, 513 00:23:22,490 --> 00:23:23,920 eta, ondoren, eskuineko erdia ordenatzeko. 514 00:23:23,920 --> 00:23:27,520 Nola liteke sinbolikoki adierazten dugu exekutatzen lerro horiak honen denbora? 515 00:23:27,520 --> 00:23:28,020 T zer? 516 00:23:28,020 --> 00:23:29,360 Zer da sarrera tamaina? 517 00:23:29,360 --> 00:23:30,510 518 00:23:30,510 --> 00:23:31,057 n bi baino gehiago. 519 00:23:31,057 --> 00:23:32,140 Zergatik ez esan dut hori? 520 00:23:32,140 --> 00:23:36,449 Eta gero, hau da, beste T (n / 2) eta, ondoren, berriz ere, sailkatutako bi erdi batzea badut, 521 00:23:36,449 --> 00:23:38,615 zenbat elementu dut guztira ukitzeko izatea? 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 Beraz, hau adieraziko dut, Mota besterik ez fancy, 525 00:23:42,790 --> 00:23:44,430 exekutatzen orokorrean ordua. 526 00:23:44,430 --> 00:23:51,140 T (n) besterik ez exekutatzen T (n / 2) denbora da, plus T (n / 2), erdia eta eskuineko erdia utzi, 527 00:23:51,140 --> 00:23:55,360 plus O (n), hau da, ziurrenik n urratsak, baina agian, nik bi behatzak erabiltzen ari bada, 528 00:23:55,360 --> 00:23:57,960 bi aldiz da askotan bezala urratsak, baina lineala da. 529 00:23:57,960 --> 00:24:00,440 Urrats kopuru batzuk da Horren n faktore bat, 530 00:24:00,440 --> 00:24:02,270 beraz, hau adierazi dugu agian horixe. 531 00:24:02,270 --> 00:24:05,550 Eta hori da, non orain arte egingo dugu punt gure batxilergoko matematika testuliburua atzealdean 532 00:24:05,550 --> 00:24:10,290 Oraindik dugu errepikapena, azken finean, bukatzen hau lortzea, n aldiz log n, 533 00:24:10,290 --> 00:24:12,530 baduzu benetan egiten out matematika gehiago formalki. 534 00:24:12,530 --> 00:24:13,950 >> Beraz, perspektiba bi besterik ez. 535 00:24:13,950 --> 00:24:17,500 Zenbakiaren One batekin hard-kodetuak ordezkari adibidez 536 00:24:17,500 --> 00:24:21,140 zortzi zenbakiak, eta gehiago erabiliz nola iritsi garen begirada orokorra. 537 00:24:21,140 --> 00:24:25,670 Baina zer da benetan interesgarria hemen da, berriro ere, txirrindularitza nozioa. 538 00:24:25,670 --> 00:24:26,900 Ez dut loops erabiliz. 539 00:24:26,900 --> 00:24:29,860 Motatako naiz definituz beraren aldetik zerbait, 540 00:24:29,860 --> 00:24:31,950 Ez honekin bakarrik Funtzio matematiko, 541 00:24:31,950 --> 00:24:34,860 baina baita ere sasi kode hau dagokionez. 542 00:24:34,860 --> 00:24:38,260 Sasi Kode hau recursive Bere lerro bik horretan 543 00:24:38,260 --> 00:24:42,310 funtsean hura kontatzea joan bera erabili txikiago bat konpontzeko 544 00:24:42,310 --> 00:24:45,400 tamaina txikiagoa arazoa, eta, ondoren, behin eta berriro 545 00:24:45,400 --> 00:24:48,820 eta berriz arte whittle egiten dugu base kasuan deiturikoak honetan behera. 546 00:24:48,820 --> 00:24:52,810 >> Hargatik marraztu benetan gehiago sinesgarria hartu-urrun honetatik honela. 547 00:24:52,810 --> 00:24:58,420 Let me go gedit sartu eta bat hartu Gaur egungo iturburu-kodea batzuk begiratu, 548 00:24:58,420 --> 00:24:59,930 bereziki, hemen adibide honetan. 549 00:24:59,930 --> 00:25:03,709 Sigma 0, itxuraz gehitzen n bidez zenbakiak. 550 00:25:03,709 --> 00:25:05,750 Beraz, ikus dezagun zer da ezaguna eta ezagunenak hemen. 551 00:25:05,750 --> 00:25:08,690 Lehen pare bat behar dugu sartzen dira, beraz, ez da ezer berria. 552 00:25:08,690 --> 00:25:09,190 Prototype. 553 00:25:09,190 --> 00:25:11,370 On hazy apur bat naiz hau, egun batzuk ondoren, 554 00:25:11,370 --> 00:25:13,790 baina, zer egin dute bat esaten dugu Funtzio baten prototipoa da? 555 00:25:13,790 --> 00:25:15,099 556 00:25:15,099 --> 00:25:16,015 IKUSLEEN: [INAUDIBLE]. 557 00:25:16,015 --> 00:25:16,905 HIZLARIA: 1 Zer da hori? 558 00:25:16,905 --> 00:25:17,800 IKUSLEEN: iragarriko ditugu. 559 00:25:17,800 --> 00:25:18,883 HIZLARIA: 1 iragarriko ditugu. 560 00:25:18,883 --> 00:25:22,290 Beraz, irakasten ari zaren Clang, hey, Ez, egia esan, horretan ere gauzatzeko, 561 00:25:22,290 --> 00:25:25,740 baina, nonbait, fitxategi horretan, ustez, hau da, zer deitzen funtzio batera joan? 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 Eta hori besterik ez da promesa bat dela ez da eta hau itxura. 565 00:25:30,540 --> 00:25:33,720 Honez osoko bat hartu nahi bezala joan sarrera eta gehiago esplizitua izan daiteke I 566 00:25:33,720 --> 00:25:36,570 eta esan int n --eta da, int bat itzuli du, 567 00:25:36,570 --> 00:25:39,900 baina koma bitartez, mm, inguruan lortu dut hau pixka bat beranduago gauzatzeko. 568 00:25:39,900 --> 00:25:40,989 Berriz ere, Clang mutu da. 569 00:25:40,989 --> 00:25:43,280 Honez bakarrik, zer ezagutzen joan top esango dizu behera, 570 00:25:43,280 --> 00:25:45,765 beraz, gutxienez eman behar dugu hura zer da iradokizun bat etorri. 571 00:25:45,765 --> 00:25:47,330 >> Orain dezagun hemen nagusian. 572 00:25:47,330 --> 00:25:50,040 Dezagun behera joan Hemen eta ikusi zer nagusia egiten ari da. 573 00:25:50,040 --> 00:25:53,780 Ez da funtzio baten luzera du, eta Izan ere, eraikuntza hemen ezagutzen. 574 00:25:53,780 --> 00:25:57,590 Deklaratzen dut aldakorreko n bat, eta, ondoren, Erabiltzaileak pester dut behin eta berriro 575 00:25:57,590 --> 00:26:01,880 zenbaki oso bat getInt erabiliz, eta irteera bakarra begizta honen kanpo 576 00:26:01,880 --> 00:26:03,280 Behin erabiltzaileak bete du. 577 00:26:03,280 --> 00:26:05,670 Egin bitartean, gara erabiltzen ditudan horrela erabiltzaileak pester. 578 00:26:05,670 --> 00:26:06,670 Orain hau interesgarria da. 579 00:26:06,670 --> 00:26:08,510 Izeneko int bat deklaratzen dut "erantzun." 580 00:26:08,510 --> 00:26:11,420 Dut itzulera balioa esleitzea izeneko funtzio baten "sigma". 581 00:26:11,420 --> 00:26:15,200 Ez dakit zer egiten duen oraindik, baina Deklaratzen duela une bat gogoratzen dut. 582 00:26:15,200 --> 00:26:18,310 Eta gero pasatzen naiz balioa Erabiltzaile idatzitako ere, n, 583 00:26:18,310 --> 00:26:20,420 eta ondoren, erantzuna berri dut. 584 00:26:20,420 --> 00:26:22,260 Beno dezagun atzera korritu Momentu bat besterik ez da. 585 00:26:22,260 --> 00:26:28,620 Dezagun aurrera direktorio honetan sartu, egiteko sigma 0, eta egia esan, programa hau exekutatu 586 00:26:28,620 --> 00:26:30,490 eta ikusi zer gertatzen den. 587 00:26:30,490 --> 00:26:35,930 Beraz, aurrera joan nintzen eta korrika bada Programa honetan, ./sigma-0, 588 00:26:35,930 --> 00:26:40,139 eta idazten dudanean positiboa bi bezala osokoa, Sigma, 589 00:26:40,139 --> 00:26:43,180 Greziako sinbolo gisa dakar, besterik ez da gehitzeko zenbaki guztiak aurrera joan 590 00:26:43,180 --> 00:26:44,320 zero bi gehienez. 591 00:26:44,320 --> 00:26:46,560 Beraz, 0 plus 1 gehi 2. 592 00:26:46,560 --> 00:26:48,830 Beraz, hau, zorionez, eman behar dit 3. 593 00:26:48,830 --> 00:26:49,750 Hori guztia egiten ari da. 594 00:26:49,750 --> 00:26:52,690 Eta, era berean, korrika egin dut hau berriro bada eta hiru kopuruan dut eman, 595 00:26:52,690 --> 00:26:56,721 hori da 3 gehi 2, beraz, hori da 5, plus 1 eman behar dit 6. 596 00:26:56,721 --> 00:26:59,470 Eta benetan ero lortu dut gero eta hasteko handiagoa zenbakiak idazten, 597 00:26:59,470 --> 00:27:01,290 Niri eman behar da zenbateko handiagoa eta handiagoa da. 598 00:27:01,290 --> 00:27:02,250 Beraz, hori da dena. 599 00:27:02,250 --> 00:27:04,010 >> Beraz, zer sigma itxura? 600 00:27:04,010 --> 00:27:05,430 Beno, nahiko erraza da. 601 00:27:05,430 --> 00:27:08,940 It nola inplementatu dugu agian da iragan aste pare dagoen honetan. 602 00:27:08,940 --> 00:27:11,120 "Int" da bueltan mota izango da. 603 00:27:11,120 --> 00:27:14,330 Sigma izena da, eta bertan hartzen m aldagai baten n ordez. 604 00:27:14,330 --> 00:27:15,940 Top aldatu dut sortu. 605 00:27:15,940 --> 00:27:17,340 Ondoren, hori besterik ez behatu check da. 606 00:27:17,340 --> 00:27:18,430 607 00:27:18,430 --> 00:27:19,950 Ikusiko dugu zergatik une batean. 608 00:27:19,950 --> 00:27:24,220 Orain beste aldagai bat deklaratzen dut, batuketa, hasieratu zero. 609 00:27:24,220 --> 00:27:28,140 Orduan izan nuen hau loop For , errepikatzean itxuraz argitasuna, 610 00:27:28,140 --> 00:27:33,810 i = 1 on gehienez = m bat, hau da, edozein dela ere, erabiltzaileak idatzitako, eta, ondoren, I 611 00:27:33,810 --> 00:27:35,690 Kontatzailea hau atsegin batuketa. 612 00:27:35,690 --> 00:27:37,360 Eta gero itzuli batuketa. 613 00:27:37,360 --> 00:27:38,440 >> Beraz, galdera pare bat. 614 00:27:38,440 --> 00:27:42,370 One, aldarrikatzen dut nire iruzkin hau horretan begizta amaigabea arriskua saihesten du. 615 00:27:42,370 --> 00:27:45,620 Zergatik litzateke zenbaki negatiboa igaroz bultzatu, potentzialki, begizta amaigabea? 616 00:27:45,620 --> 00:27:49,396 617 00:27:49,396 --> 00:27:51,290 >> IKUSLEEN: Ez duzu inoiz iritsiko m. 618 00:27:51,290 --> 00:27:52,880 >> HIZLARIA: 1 Never iristeko m. 619 00:27:52,880 --> 00:27:55,880 Baina m pasatu da, eta, beraz dezagun kontuan hartu adibide erraz bat. 620 00:27:55,880 --> 00:27:58,510 M pasa bada ere berak Erabiltzaile bat negatibo gisa. 621 00:27:58,510 --> 00:28:00,059 Nagusiak kontuan hartu gabe. 622 00:28:00,059 --> 00:28:01,850 Babesten gaituen nagusitik too hau, beraz, besterik ez naiz 623 00:28:01,850 --> 00:28:04,680 Benetan batera anal izateaz sigma ere ziurtatu 624 00:28:04,680 --> 00:28:06,540 sarrera ezin dela negatiboa. 625 00:28:06,540 --> 00:28:10,130 Beraz, m negatiboa bada, Alde negatiboak antzeko zerbait. 626 00:28:10,130 --> 00:28:11,930 Zer gertatuko da? 627 00:28:11,930 --> 00:28:14,390 Beno, hau da i joan get bat hasieratu, 628 00:28:14,390 --> 00:28:19,060 eta, ondoren, i izan da joan baino gutxiago edo m berdina? 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 Hori dezagun was-- ez, dezagun nix istorio hau. 633 00:28:29,370 --> 00:28:32,780 Nik ez dut galdera hori, zeren naizela aipamenak arriskua 634 00:28:32,780 --> 00:28:38,360 ez da i delako gertatuko Beti than-- OK handiagoa izan joan, 635 00:28:38,360 --> 00:28:39,871 Galdera hori atzera botatzeko dut. 636 00:28:39,871 --> 00:28:40,370 Ados. 637 00:28:40,370 --> 00:28:42,030 Gatozen orain zati hau soilik hemen. 638 00:28:42,030 --> 00:28:44,210 639 00:28:44,210 --> 00:28:48,830 Zergatik batzuk deklaratzen dut Begizta kanpo? 640 00:28:48,830 --> 00:28:52,010 Oharra on line 49 dut Begizta barruan deklaratu i, 641 00:28:52,010 --> 00:28:54,950 baina online 48 dut kanpo batzuk izendatu. 642 00:28:54,950 --> 00:28:55,695 Bai. 643 00:28:55,695 --> 00:28:56,611 IKUSLEEN: [INAUDIBLE]. 644 00:28:56,611 --> 00:28:58,734 645 00:28:58,734 --> 00:28:59,400 HIZLARIA: 1 Noski. 646 00:28:59,400 --> 00:29:03,360 Beraz, lehenengo eta behin, zalantzarik ez dut aldarrikatu eta abiarazi batura nahi 647 00:29:03,360 --> 00:29:06,130 zero-barrutik to begizta iterazio bakoitzean, 648 00:29:06,130 --> 00:29:09,370 Argi eta garbi hau litzateke garaitzeko delako Zenbakiak gora summing helburua. 649 00:29:09,370 --> 00:29:11,770 Aldatzen jarraituko nuke balioa zero itzuli. 650 00:29:11,770 --> 00:29:17,992 Eta, gainera, zer da, beste bat gehiago arcane bera diseinua erabaki horren arrazoia? 651 00:29:17,992 --> 00:29:18,954 Bai. 652 00:29:18,954 --> 00:29:20,279 >> IKUSLEEN: [INAUDIBLE]. 653 00:29:20,279 --> 00:29:21,070 HIZLARIA: 1 Zehazki. 654 00:29:21,070 --> 00:29:24,060 Kanpo da sartu nahi dut Begizta too zer line on? 655 00:29:24,060 --> 00:29:25,390 656 00:29:25,390 --> 00:29:26,400 53 On. 657 00:29:26,400 --> 00:29:29,910 Eta gure thumb araua an Duela hitzaldiak pare bat, 658 00:29:29,910 --> 00:29:33,680 aldagai scoped dira, benetan, joan giltza kizkur biltzen duten horiek. 659 00:29:33,680 --> 00:29:38,190 Beraz ez badut batura deklaratzen barruan kanpoaldeko kizkur giltza horien, 660 00:29:38,190 --> 00:29:40,250 Ezin ditut lerro 53 urtean. 661 00:29:40,250 --> 00:29:43,160 Beste era batera esanda, I deklaratu bada batura hemen, edo, are barnean 662 00:29:43,160 --> 00:29:45,410 Begizta, ezin izan dut sartzeko 53 urtean. 663 00:29:45,410 --> 00:29:47,150 Aldagaia eraginkorrean desagertu egingo litzateke. 664 00:29:47,150 --> 00:29:48,579 Beraz, arrazoi han pare bat. 665 00:29:48,579 --> 00:29:50,370 Baina orain, goazen atzera eta ikusi zer gertatzen den. 666 00:29:50,370 --> 00:29:51,730 Beraz sigma lortzen izeneko. 667 00:29:51,730 --> 00:29:55,640 Gehitzen da 1 gehi 2, edo 1 gehi 2 plus 3, eta, ondoren, balioa itzuliko du, 668 00:29:55,640 --> 00:29:59,660 dendetan da erantzuna, eta printf hemen Horregatik dut pantailan ikusten ari naiz. 669 00:29:59,660 --> 00:30:03,079 Beraz, hau da iteratibo bat zer deitu dugu hurbilketa, non iterazio besterik 670 00:30:03,079 --> 00:30:03,870 esan nahi du, begizta bat erabiliz. 671 00:30:03,870 --> 00:30:06,900 A loop, berriz, begizta bat, Do a bitartean For begizta, zerbait berriro egiten 672 00:30:06,900 --> 00:30:08,380 eta behin eta berriro. 673 00:30:08,380 --> 00:30:13,505 >> Baina sigma ere funtzio neat mota da ezberdina ezartzeko izan dut. 674 00:30:13,505 --> 00:30:14,620 675 00:30:14,620 --> 00:30:19,120 Honi buruz, Zer, zein Mota besterik ez cool izan nahi du, 676 00:30:19,120 --> 00:30:21,880 let me benetan get rid distrakzio asko 677 00:30:21,880 --> 00:30:24,380 funtzio hori delako benetan oso erraza da. 678 00:30:24,380 --> 00:30:27,780 Dezagun whittle behera, besterik gabe, bere lau core lerroak 679 00:30:27,780 --> 00:30:30,410 eta kendu guztia iruzkinak eta kizkur giltza. 680 00:30:30,410 --> 00:30:34,334 Hau kontuan-Herrigintza baten antzeko zerbait da ezartzeko alternatiba. 681 00:30:34,334 --> 00:30:37,250 Ondo da, agian, ez da kontuan-Herrigintza, baina sexier, eskubidea mota da, 682 00:30:37,250 --> 00:30:39,920 beraz, askoz gehiago succinctly to honi begira. 683 00:30:39,920 --> 00:30:43,120 Kode lerro lau batera, Lehenengoa daukat behatu kontrol hau. 684 00:30:43,120 --> 00:30:45,732 M baino txikiagoa edo berdina bada zero, sigma ez du zentzurik. 685 00:30:45,732 --> 00:30:48,190 Honez soilik izango da ustezko Kasu honetan zenbaki positiboak egiteko, 686 00:30:48,190 --> 00:30:50,340 beraz, besterik ez dut joan itzultzeko zero arbitrarioki 687 00:30:50,340 --> 00:30:53,210 gutxienik behar dugu, beraz, Zenbait deiturikoak base kasuan. 688 00:30:53,210 --> 00:30:54,430 >> Baina hemen edertasuna. 689 00:30:54,430 --> 00:30:59,930 Ideia hau oso-osorik, gehituz 1etik n zenbakiak, edo kasu honetan, m, 690 00:30:59,930 --> 00:31:02,630 egon Buck igarotzean mota egin daiteke. 691 00:31:02,630 --> 00:31:04,947 Beno, zer 1 batuketa m da? 692 00:31:04,947 --> 00:31:05,780 Beno, zer ezagutzen duzu? 693 00:31:05,780 --> 00:31:11,949 It m batuketa berdina da plus 1 batuketa m minus 1era. 694 00:31:11,949 --> 00:31:12,740 Beno zer ezagutzen duzu? 695 00:31:12,740 --> 00:31:13,940 Zer da m ken 1 sigma? 696 00:31:13,940 --> 00:31:17,860 Beno, zuk motatako jarraitu bada hau logikoki, m ken 1 berdina da 697 00:31:17,860 --> 00:31:21,415 plus m minus 2ko sigma. 698 00:31:21,415 --> 00:31:22,480 699 00:31:22,480 --> 00:31:26,012 Beraz, mota horretako just ahal duzun hau bezalakoa da, zaren besterik ez bada 700 00:31:26,012 --> 00:31:28,220 Lagun bat amorrarazten eta zuk galdera bat egin dute, 701 00:31:28,220 --> 00:31:31,344 motatako galdera bat erantzuteko, mota egin ahal mantendu dezakezu Buck igarotzean. 702 00:31:31,344 --> 00:31:34,560 Baina zer da gakoa dela mantentzen baduzu galdera eta txikiago egiten 703 00:31:34,560 --> 00:31:36,910 eta txikiagoa, zaren Ez zer da sigma galdetuz 704 00:31:36,910 --> 00:31:39,116 n, zer da sigma n, zer da n sigma? 705 00:31:39,116 --> 00:31:40,990 Zer galdetzen ari zara n sigma, zer da sigma 706 00:31:40,990 --> 00:31:42,839 n ken 1, zer da n ken 2 sigma? 707 00:31:42,839 --> 00:31:44,880 Azkenean zure galdera zer bihurtu da? 708 00:31:44,880 --> 00:31:50,250 Zer da bat edo sigma zero, balio oso txiki batzuk, 709 00:31:50,250 --> 00:31:52,220 eta gisa laster duzun bezala duten, zure laguna lortzeko, 710 00:31:52,220 --> 00:31:54,350 ez zaren galdetu joan galdera bera berriz ere, 711 00:31:54,350 --> 00:31:55,975 Zu besterik esateko, joan oi da zero. 712 00:31:55,975 --> 00:31:58,490 Bukatutakoan moduko honetan jolasten ari gara ergelak Joko ziklikoa. 713 00:31:58,490 --> 00:32:02,950 >> Beraz errekurtsio programazioan ekintza da Funtzio bat bera deituz. 714 00:32:02,950 --> 00:32:06,630 Programa hau, noiz bildu eta korrika egin, da zehazki modu berean portatzen da joan, 715 00:32:06,630 --> 00:32:09,620 baina zer da gakoa da barruan duten sigma izeneko funtzio bat, 716 00:32:09,620 --> 00:32:13,150 Han kodea dua-lerro bat da geure buruari deitzen ari gara, 717 00:32:13,150 --> 00:32:14,980 horrek normalean txarra izan. 718 00:32:14,980 --> 00:32:21,160 Esate baterako, zer bada dut lehenengo konpilatu hau, beraz, sigma-- 719 00:32:21,160 --> 00:32:22,710 sigma 1 ./sigma-1 egin. 720 00:32:22,710 --> 00:32:25,050 721 00:32:25,050 --> 00:32:27,690 Zenbaki oso, mesedez, 50 1275. 722 00:32:27,690 --> 00:32:30,810 Beraz, zer funtzioaren badirudi izan, oinarritutako proba bat, zuzena. 723 00:32:30,810 --> 00:32:34,917 Baina zer gertatzen da pixka bat, arriskutsua izan banu eta oinarri-kasu deiturikoak ezabatu, 724 00:32:34,917 --> 00:32:37,750 eta besterik gabe, esan, ondo besterik ez dut egiten ari hau zailagoa da baino. 725 00:32:37,750 --> 00:32:42,450 Let kalkulatzeko, besterik gabe sigma m hartuz eta ondoren, gehituz 726 00:32:42,450 --> 00:32:44,564 m minus baten sigma batean? 727 00:32:44,564 --> 00:32:45,980 Beno, zer gertatuko da? 728 00:32:45,980 --> 00:32:47,140 Dezagun zooma. 729 00:32:47,140 --> 00:32:52,920 Dezagun konpilatu programa, gorde, programa konpilatu, 730 00:32:52,920 --> 00:33:00,450 eta, ondoren, prest ./sigma-1 zooma handitzea, idatzi zenbaki mesedez, 50. 731 00:33:00,450 --> 00:33:02,180 732 00:33:02,180 --> 00:33:04,430 Nola asko daude prest sortu Fess hori ikustea? 733 00:33:04,430 --> 00:33:04,950 >> Ados. 734 00:33:04,950 --> 00:33:06,690 Beraz, hau ezin gerta arrazoi zenbaki bat, 735 00:33:06,690 --> 00:33:09,148 eta Egia aste honetan gaude emateko horietako gehiago buruz. 736 00:33:09,148 --> 00:33:11,780 Baina kasu honetan, saiatu atzeraka arrazoia 737 00:33:11,780 --> 00:33:14,430 zer gertatuko zatekeen hemen? 738 00:33:14,430 --> 00:33:17,400 Segmentaziuo hutsegitea, azken esan genuen denbora, memoria segmentu bat aipatzen. 739 00:33:17,400 --> 00:33:18,690 Zerbait txarra gertatu. 740 00:33:18,690 --> 00:33:21,550 Baina, zer izan zen mekanikoki duten awry joan 741 00:33:21,550 --> 00:33:25,000 hemen ere, nire kentzea oinarri duten kasuan deiturikoak, 742 00:33:25,000 --> 00:33:26,870 non balio zatekeen bat itzuli dut? 743 00:33:26,870 --> 00:33:28,970 744 00:33:28,970 --> 00:33:30,460 Zer uste duzu oker joan? 745 00:33:30,460 --> 00:33:31,219 Bai. 746 00:33:31,219 --> 00:33:32,135 >> IKUSLEEN: [INAUDIBLE]. 747 00:33:32,135 --> 00:33:36,387 748 00:33:36,387 --> 00:33:36,970 HIZLARIA: 1 Ah. 749 00:33:36,970 --> 00:33:37,550 Ona galdera. 750 00:33:37,550 --> 00:33:39,508 Beraz kopurua tamainaren eta neu summing zen 751 00:33:39,508 --> 00:33:41,920 hain handia da gainditu duten lortu memoria espazioa tamaina. 752 00:33:41,920 --> 00:33:44,640 Ideia ona da, baina ez funtsean hutsegite bat eragin behar. 753 00:33:44,640 --> 00:33:48,230 Hori zenbaki oso gainezkatze eragin dezake, bit besterik ez irauli baino gehiago 754 00:33:48,230 --> 00:33:51,760 eta, ondoren, benetan big akatsa dugu Zenbaki negatibo baten antzera zenbakia, 755 00:33:51,760 --> 00:33:53,260 baina horrek ez du berez hutsegite bat eragin. 756 00:33:53,260 --> 00:33:55,509 The amaieran delako Egun int 32 bits da oraindik. 757 00:33:55,509 --> 00:33:57,640 Oraindik ez duzu joan ustekabean 33 bit bat lapurtzen. 758 00:33:57,640 --> 00:33:58,431 Baina pentsamendu onak. 759 00:33:58,431 --> 00:33:58,984 Bai. 760 00:33:58,984 --> 00:33:59,900 >> IKUSLEEN: [INAUDIBLE]. 761 00:33:59,900 --> 00:34:00,551 762 00:34:00,551 --> 00:34:02,300 HIZLARIA: 1 metodoa inoiz exekutatzen etengo dira, 763 00:34:02,300 --> 00:34:06,658 eta hain zuzen ere, bera deitzen da berriro eta, eta behin eta berriro 764 00:34:06,658 --> 00:34:08,449 eta, berriro ere, eta bakar bat ere ez inoiz funtzio horiek 765 00:34:08,449 --> 00:34:13,310 beren ildo bakartzat delako amaitzeko kodea, behin eta berriro deitzen themself 766 00:34:13,310 --> 00:34:14,219 eta berriro. 767 00:34:14,219 --> 00:34:16,080 Eta zer da benetan hemen gertatzen ari dena, eta, gaur egun dugun 768 00:34:16,080 --> 00:34:18,100 motatako marraztu daiteke hau pictorially. 769 00:34:18,100 --> 00:34:20,899 Let baino gehiago joan me bati une bat besterik ez irudi. 770 00:34:20,899 --> 00:34:22,940 Hau irudi bat da, hau azkenean haragia egingo 771 00:34:22,940 --> 00:34:26,336 xehetasun gehiago, zer ari den gertatzen zure ordenagailuaren memorian barruan. 772 00:34:26,336 --> 00:34:28,460 Eta bihurtzen da hori Argazki hau beheko 773 00:34:28,460 --> 00:34:29,709 pila izeneko zerbait da. 774 00:34:29,709 --> 00:34:31,920 Hau zatia da memoria, RAM zatia, 775 00:34:31,920 --> 00:34:33,920 hori besterik erabiltzen noiznahi funtzio bat deitzen da. 776 00:34:33,920 --> 00:34:36,239 Edonoiz zuk, programatzaile, funtzio bat deitu, 777 00:34:36,239 --> 00:34:38,860 sistema eragilea, atsegin Mac OS, Windows edo Linux, 778 00:34:38,860 --> 00:34:41,920 ase byte-sorta bat, agian, kilobyte gutxi, megabyte, agian batzuk 779 00:34:41,920 --> 00:34:44,590 memoriaren, eskuak duzu, eta gero aukera ematen dizu 780 00:34:44,590 --> 00:34:47,650 erabiliz, zure funtzioa exekutatzen baduzu edozein dela aldagai behar duzu. 781 00:34:47,650 --> 00:34:50,699 Eta zuk orduan deitzen badu beste funtzioa eta funtzio bat, 782 00:34:50,699 --> 00:34:53,590 memoria beste xerra lortuko duzu eta memoria xerra beste. 783 00:34:53,590 --> 00:34:57,090 >> Eta, hain zuzen, erretiluak berde horiek gero Annenberg memoria duela adierazten, 784 00:34:57,090 --> 00:34:59,870 hemen zer gertatzen den lehenengoa denboraren funtzio sigma deitu. 785 00:34:59,870 --> 00:35:04,510 Da bandeja bat jarriz hau atsegin bezalakoa da zer da hasiera batean, pila bat hutsik. 786 00:35:04,510 --> 00:35:07,142 Baina gero bada bandeja duten deiak bera, nolabait esateko, 787 00:35:07,142 --> 00:35:08,850 instantzia bat deituz sigma-ko, hori da 788 00:35:08,850 --> 00:35:11,640 sistema eragilearen eskatuz bezala, ooh, behar apur bat gehiago, memoria, 789 00:35:11,640 --> 00:35:12,520 ematen dit hori. 790 00:35:12,520 --> 00:35:14,840 Eta gero lortzen jarririk gainean gainean. 791 00:35:14,840 --> 00:35:18,030 Baina zer da gakoa hemen da, Lehenengo bandeja hantxe jarraitzen du, 792 00:35:18,030 --> 00:35:20,620 bigarren erretilu hau Deitua duelako. 793 00:35:20,620 --> 00:35:23,500 Orain berriz, sigma deitu sigma, duten memoria gehiago eskatuz bezala. 794 00:35:23,500 --> 00:35:25,830 Lortzen jarririk hona. 795 00:35:25,830 --> 00:35:29,350 sigma deitu sigma, hori beste lortzen jarririk hemen erretiluan. 796 00:35:29,350 --> 00:35:32,942 Eta hori egiten jarraitzen baduzu, azkenean, mapa mota entzunezko honetan 797 00:35:32,942 --> 00:35:35,525 taula horretan, zer ari den gertatzen erretiluak pila gertatuko da? 798 00:35:35,525 --> 00:35:37,480 799 00:35:37,480 --> 00:35:41,160 Da zenbatekoa gainditzen joan oroimenaren zure ordenagailua dauka. 800 00:35:41,160 --> 00:35:45,790 Eta ahalik eta azkarren bandeja berde hau bezalako lerro horizontal gainditzen 801 00:35:45,790 --> 00:35:49,410 pila batez eta hitza arazoak izaten ari dela, batez ere, bertan itzuli dugu etorkizunean ere, 802 00:35:49,410 --> 00:35:50,410 hori gauza txarra da. 803 00:35:50,410 --> 00:35:52,810 Zeure desberdina da memoria segmentu, 804 00:35:52,810 --> 00:35:55,190 eta horiek utzi baduzu erretiluak pila eta pila gainean, 805 00:35:55,190 --> 00:35:57,800 to gainditzen ari zaren joan Zure memoria segmentu egin, 806 00:35:57,800 --> 00:36:00,420 eta programa bat da, hain zuzen ere huts egingo. 807 00:36:00,420 --> 00:36:02,930 >> Orain bat alde batera utzita, ideia hau bezala errekurtsio, beraz, 808 00:36:02,930 --> 00:36:06,500 Duda arazoak ekarriko du, baina ez da nahitaez txarra. 809 00:36:06,500 --> 00:36:08,840 Delako kontuan, ondoren guztiak, nola eta, agian, 810 00:36:08,840 --> 00:36:11,700 hau hartzen du zenbait ohitu erabiltzen to Nola sortu zen dotore edo nola simple 811 00:36:11,700 --> 00:36:14,890 sigma ezartzeko zela. 812 00:36:14,890 --> 00:36:17,440 Eta ez gaude erabili joan errekurtsio guztiak CS50 askoz, 813 00:36:17,440 --> 00:36:20,780 baina CS51 da, eta benetan, edozein klase non datu-egitura manipulatzeko duzu 814 00:36:20,780 --> 00:36:23,640 zuhaitzak, edo familia zuhaitz bezala, duten hierarkia batzuk izan, 815 00:36:23,640 --> 00:36:26,000 super, super erabilgarria da. 816 00:36:26,000 --> 00:36:29,750 Orain, bat alde batera utzita, duzun bezala, beraz, informatikariak aspirante gisa 817 00:36:29,750 --> 00:36:33,180 daude Google-ren batzuk ezagutzen txiste barruan, bazoaz Google arte 818 00:36:33,180 --> 00:36:36,345 eta gora begiratzen duzu zer da ren, definizioa esan, errekurtsio, sartu. 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 Bat alde batera utzita, gutxi gora bota dut. 822 00:36:42,670 --> 00:36:45,470 Honek 10 minutu bezalakoa zen procrastination goizean. 823 00:36:45,470 --> 00:36:52,890 Halaber Google "askew," baduzu oharra Zure burua okertu slightly-- 824 00:36:52,890 --> 00:36:55,120 eta gero, hau da, beharbada, denetan atrocious 825 00:36:55,120 --> 00:36:57,286 Norbait atsegin igaro zenetik bere egun hau gauzatzeko 826 00:36:57,286 --> 00:36:59,880 urte batzuk ago-- goazen. 827 00:36:59,880 --> 00:37:01,140 828 00:37:01,140 --> 00:37:04,540 Oh, wait-- bug bat da. 829 00:37:04,540 --> 00:37:08,410 830 00:37:08,410 --> 00:37:11,410 >> Beraz, bat exekutatzen munduko webgune handiena 831 00:37:11,410 --> 00:37:13,510 ergelak gutxi Pazko arrautza hauek dira. 832 00:37:13,510 --> 00:37:16,690 Ziurrenik kontsumitzen dute bat nontrivial kode lerro kopurua 833 00:37:16,690 --> 00:37:19,280 besterik ez da izan dezakegu beraz little fun horrelako gauzak. 834 00:37:19,280 --> 00:37:22,140 Baina, gutxienez, orain lortu duzun barruan txiste horietako batzuk. 835 00:37:22,140 --> 00:37:28,330 >> Orain dezagun begirada bat batzuk zuri gezurrak izan dugu berandu kontatzea Nik, 836 00:37:28,330 --> 00:37:30,707 eta hasteko atzera zuritu geruza batzuk teknikoki 837 00:37:30,707 --> 00:37:32,790 benetan ulertzen duzu, beraz, zer gertatzen da 838 00:37:32,790 --> 00:37:34,860 eta ulertu ahal izango duzu mehatxuak batzuk, 839 00:37:34,860 --> 00:37:38,060 Shellshock bezala, jada hasi bihurtu 840 00:37:38,060 --> 00:37:41,110 Guztion abangoardian arreta, behintzat komunikabideetan. 841 00:37:41,110 --> 00:37:45,810 Beraz, hemen funtzioa oso erraza da dagoela ezer hutsune itzultzen,. 842 00:37:45,810 --> 00:37:46,790 Bere izena swap da. 843 00:37:46,790 --> 00:37:50,880 Hartzen du bi aldagai ditu eta ez da ezer itzultzen du. 844 00:37:50,880 --> 00:37:52,260 A eta b tartekatzen dira. 845 00:37:52,260 --> 00:37:53,337 Beraz manifestazio azkar bat. 846 00:37:53,337 --> 00:37:54,170 Horiek ekarri dugu sortu. 847 00:37:54,170 --> 00:37:56,100 Dugu agian baita hartu apur bat apurtu hemen une bat besterik ez 848 00:37:56,100 --> 00:37:57,250 eta edateko zerbait apur bat. 849 00:37:57,250 --> 00:38:00,120 Norbaitek axola ez balu batu me up hemen une bat besterik ez da. 850 00:38:00,120 --> 00:38:01,830 Nola buruz egin marroia kamiseta? 851 00:38:01,830 --> 00:38:02,335 Goazen sortu. 852 00:38:02,335 --> 00:38:04,060 853 00:38:04,060 --> 00:38:05,260 Gaur Just bat. 854 00:38:05,260 --> 00:38:06,251 Eskerrik asko, baina. 855 00:38:06,251 --> 00:38:08,000 Guztiak eskubidea, eta dugu datozen hemen nor? 856 00:38:08,000 --> 00:38:08,660 Zein da zure izena? 857 00:38:08,660 --> 00:38:09,360 >> HIZLARIA 4: Laura. 858 00:38:09,360 --> 00:38:09,740 >> HIZLARIA: 1 Laura. 859 00:38:09,740 --> 00:38:10,370 Goazen sortu. 860 00:38:10,370 --> 00:38:11,460 861 00:38:11,460 --> 00:38:13,850 Beraz, Laura, gaur erronka oso erraza. 862 00:38:13,850 --> 00:38:14,704 863 00:38:14,704 --> 00:38:15,370 Nice yo asetzeko. 864 00:38:15,370 --> 00:38:16,410 865 00:38:16,410 --> 00:38:16,910 Guztiak eskubidea. 866 00:38:16,910 --> 00:38:21,179 Beraz, esnea batzuk ditugu hemen baino gehiago eta laranja-zukua batzuk hemen baino gehiago behar dugu 867 00:38:21,179 --> 00:38:23,345 eta edalontziak batzuk garela Annenberg maileguan gaur. 868 00:38:23,345 --> 00:38:24,178 >> HIZLARIA: 4 Besteren. 869 00:38:24,178 --> 00:38:27,240 HIZLARIA: 1 Eta aurrera joan eta honek baso erdi bat emango dizu. 870 00:38:27,240 --> 00:38:28,250 871 00:38:28,250 --> 00:38:28,800 Guztiak eskubidea. 872 00:38:28,800 --> 00:38:30,750 Eta erdi ematen dizugu esne edalontzi bat. 873 00:38:30,750 --> 00:38:31,905 874 00:38:31,905 --> 00:38:35,890 Oh, eta, besterik gabe, ahal izango duzu, beraz gogoratu zer hau bezalakoa zen, 875 00:38:35,890 --> 00:38:38,860 Ekarri gogoratu dut hau sortu eta gaur egun on. 876 00:38:38,860 --> 00:38:42,030 877 00:38:42,030 --> 00:38:42,530 Ongi da. 878 00:38:42,530 --> 00:38:45,470 Litzateke ez baduzu axola, ikus dezagun, ditugun jar ditzakezu zure betaurrekoak egin baino gehiago 879 00:38:45,470 --> 00:38:46,560 Nahi izanez gero. 880 00:38:46,560 --> 00:38:48,710 Hau Laura begiak mundua izango. 881 00:38:48,710 --> 00:38:49,210 Guztiak eskubidea. 882 00:38:49,210 --> 00:38:53,820 Beraz, zure helburua, emandako bi katilu likido hemen, esnea eta laranja zukua, 883 00:38:53,820 --> 00:38:58,370 da trukatu bi edukietan, beraz, laranja zukua esnea Kopako doa 884 00:38:58,370 --> 00:39:00,710 eta esnea sartzen da laranja zukua kopa. 885 00:39:00,710 --> 00:39:02,359 >> HIZLARIA 4: Egin kopa beste lortu dut? 886 00:39:02,359 --> 00:39:05,650 HIZLARIA: 1 Beraz, pozik nago zuk eskatu, nahiz eta izan litzateke metrajea askoz hobeto 887 00:39:05,650 --> 00:39:06,710 izan ez bada galdetu. 888 00:39:06,710 --> 00:39:10,620 Baina bai, eskaintzen dizugu herena kopa duten hutsa da, noski. 889 00:39:10,620 --> 00:39:11,120 Guztiak eskubidea. 890 00:39:11,120 --> 00:39:12,300 Beraz, swap edukiak han. 891 00:39:12,300 --> 00:39:16,100 892 00:39:16,100 --> 00:39:17,050 Oso polita. 893 00:39:17,050 --> 00:39:20,390 894 00:39:20,390 --> 00:39:21,305 Oso ona. 895 00:39:21,305 --> 00:39:23,121 896 00:39:23,121 --> 00:39:24,745 Hau nabarmen arretaz egiten ari zara. 897 00:39:24,745 --> 00:39:26,970 898 00:39:26,970 --> 00:39:28,655 Eta hiru zapaldu. 899 00:39:28,655 --> 00:39:30,390 900 00:39:30,390 --> 00:39:31,350 Guztiak eskubidea. 901 00:39:31,350 --> 00:39:31,930 Bikain. 902 00:39:31,930 --> 00:39:33,930 Txalo bero bat Laura ona izango litzateke. 903 00:39:33,930 --> 00:39:36,500 904 00:39:36,500 --> 00:39:37,000 Guztiak eskubidea. 905 00:39:37,000 --> 00:39:40,790 Little parting opari bat daukagu zuretzat, baina utzi hartu me horiek. 906 00:39:40,790 --> 00:39:42,620 Eskerrik asko. 907 00:39:42,620 --> 00:39:46,170 Beraz, adibide erraz bat, nahiz eta, Hori egin ezkero erakusteko 908 00:39:46,170 --> 00:39:48,300 edukiak trukatu nahi bi edukiontziak, 909 00:39:48,300 --> 00:39:52,360 edo dezagun aldagai deitu, Aldi baterako biltegiratze batzuk behar duzu 910 00:39:52,360 --> 00:39:56,710 edukiekin bat eszenaratzeko beraz in Benetan egin ahal izango duzu duten swap. 911 00:39:56,710 --> 00:40:01,790 Beraz, hain zuzen ere, honen iturburu-kodea hemen C zehazki duen ordezkaria da. 912 00:40:01,790 --> 00:40:06,340 Laranja zukua eta esnea zen bada zen b, eta bi aldaketa bat izan dugu, 913 00:40:06,340 --> 00:40:08,990 zerbait sormen saiatu izan duzu elkarren artean botatzen, 914 00:40:08,990 --> 00:40:11,031 baina hori ziurrenik ez litzateke azkenean bereziki ondo. 915 00:40:11,031 --> 00:40:15,260 Eta, beraz, hirugarren kopa, dei bat erabiltzen dugu gordetzean da, T-M-P konbentzio, 916 00:40:15,260 --> 00:40:19,370 eta edukiak jarri AO horretan, ondoren trukatzeko kopa bat, 917 00:40:19,370 --> 00:40:22,610 orduan jarri AO du sartu irabazleari, horrela 918 00:40:22,610 --> 00:40:25,320 , lortzea bezalaxe Laura egin, swap. 919 00:40:25,320 --> 00:40:26,850 >> Beraz, egin zehazki hori utzi. 920 00:40:26,850 --> 00:40:30,110 Dezagun aurrera eta ireki Adibide hori sortu 921 00:40:30,110 --> 00:40:32,720 benetan izeneko "no trukatu, "hau ez delako 922 00:40:32,720 --> 00:40:36,180 gisa besterik egin pentsatzea. 923 00:40:36,180 --> 00:40:41,190 Beraz, programa honetan, nabarituko Stdio.h, gure lagun zaharra erabiltzen ari naiz. 924 00:40:41,190 --> 00:40:43,130 Prototipoa behar dut swap egiteko han, eta horrek 925 00:40:43,130 --> 00:40:45,450 bere ezarpena horrek esan nahi du ziurrenik behera beheko, 926 00:40:45,450 --> 00:40:48,050 eta ikus dezagun zer honek nagusia programa da niretzat egingo. 927 00:40:48,050 --> 00:40:52,020 Lehenengo deklaratzen dut int x lortzen bata, eta int y lortzen bi. 928 00:40:52,020 --> 00:40:54,930 Beraz AO gisa horiek uste eta esnea, hurrenez hurren. 929 00:40:54,930 --> 00:40:57,100 Eta gero, besterik ez dut bat printf x da hau esanez 930 00:40:57,100 --> 00:41:00,120 eta y da hau, besterik gabe, beraz, ezin dut begiz ikusi zer gertatzen den. 931 00:41:00,120 --> 00:41:03,810 Ondoren printf dut erreklamatzeko aldaketa naiz bi dela, 932 00:41:03,810 --> 00:41:07,100 eta, ondoren, inprimatu dut bat diotenez, trukatu ari, 933 00:41:07,100 --> 00:41:09,300 eta I out x eta y berriz ere inprima. 934 00:41:09,300 --> 00:41:13,010 Beraz, hemen behera swap da zehazki Laura zer egin, 935 00:41:13,010 --> 00:41:16,240 eta zehazki zer ikusi dugu pantailan une bat duela. 936 00:41:16,240 --> 00:41:19,380 >> Beraz, dezagun aurrera eta sorely etsita. 937 00:41:19,380 --> 00:41:24,690 Egin swap ez, eta exekutatu swap ez, zoom irteera hemen. 938 00:41:24,690 --> 00:41:28,320 Idatzi x 1, y 2 da, aldaketa trukatu. 939 00:41:28,320 --> 00:41:32,700 x dago oraindik 1 eta y oraindik 2. 940 00:41:32,700 --> 00:41:37,630 Beraz, nahiz eta, Egia, hau itxura zehazki gustatzen, teknikoki arren, 941 00:41:37,630 --> 00:41:40,730 Laura zer egin, ez dirudi lan egiteko. 942 00:41:40,730 --> 00:41:42,130 Beraz, zergatik da hori? 943 00:41:42,130 --> 00:41:46,630 Beno, bihurtzen da orduan; Horrelako programa bat idatzi dugu 944 00:41:46,630 --> 00:41:51,590 dela bai nagusia, hemen nabarmendu, eta, ondoren, funtzio bat, swap bezala, 945 00:41:51,590 --> 00:41:54,230 hemen nabarmendu egiten dira, deitzen da, munduko 946 00:41:54,230 --> 00:41:57,030 antzeko zerbait apur bat itxura erretiluak horiek duela une bat. 947 00:41:57,030 --> 00:42:00,440 Nagusiak Aurreneko lortzen izeneko, duten sistema eragilearen eskatuz bezala 948 00:42:00,440 --> 00:42:04,030 memoria pixka bat tokiko edozein egiteko x eta duela nagusia y bezalako aldagaiak, 949 00:42:04,030 --> 00:42:05,660 eta amaituko dute bertan. 950 00:42:05,660 --> 00:42:10,920 Baina nagusia deiak trukatu bada, eta nagusiak igarotzen da bi argumentu, a eta b trukatu, 951 00:42:10,920 --> 00:42:16,410 laranja zukua eta esnea, ez da izan bezala laranja zukua eta esnea ematea 952 00:42:16,410 --> 00:42:17,500 Laura da. 953 00:42:17,500 --> 00:42:21,300 Zer ordenagailu bat du, da laranja zukua kopiak pasatzen 954 00:42:21,300 --> 00:42:27,110 eta Laura esne kopiak, beraz, zer da, azken finean, bandeja honen barruan 955 00:42:27,110 --> 00:42:32,510 baliorik bat eta bi, edo AO da eta esnea, baina kopiak ere, 956 00:42:32,510 --> 00:42:34,790 beraz, puntu honetan Ipuinean, han 957 00:42:34,790 --> 00:42:36,930 AO eta esnea erretiluak horietako bakoitzean dagoen. 958 00:42:36,930 --> 00:42:39,260 Badira bat eta bi bat erretiluak horietako bakoitzean, 959 00:42:39,260 --> 00:42:41,720 eta swap funtzioa da, hain zuzen ere lan egiten du. 960 00:42:41,720 --> 00:42:46,090 Honez horien barruan aldaketa bandeja bigarren goreneko du, 961 00:42:46,090 --> 00:42:48,147 baina aldaketa duten eragina ez du. 962 00:42:48,147 --> 00:42:49,980 Eta oinarritutako besterik batzuk oinarrizko printzipioa dugu 963 00:42:49,980 --> 00:42:52,970 aurretik buruz hitz egin zuen, eta halaxe Duela minutu batzuk, zer 964 00:42:52,970 --> 00:42:58,770 zergatik aldatzen azaldu dezake a eta b swap barruan 965 00:42:58,770 --> 00:43:05,560 du x eta y ez du eraginik, nahiz eta X eta y gainditu dut swap funtzioa. 966 00:43:05,560 --> 00:43:08,750 Zer da gako-hitza hemen Simplistically azaldu dezake? 967 00:43:08,750 --> 00:43:11,250 968 00:43:11,250 --> 00:43:12,627 Uste dut entzun nuen hemen? 969 00:43:12,627 --> 00:43:13,335 IKUSLEEN: Return. 970 00:43:13,335 --> 00:43:14,085 HIZLARIA: 1 Return? 971 00:43:14,085 --> 00:43:14,590 Ez itzultzeko. 972 00:43:14,590 --> 00:43:15,895 Goazen bata bestearekin. 973 00:43:15,895 --> 00:43:16,395 Zer da hori? 974 00:43:16,395 --> 00:43:17,080 >> IKUSLEEN: [INAUDIBLE]. 975 00:43:17,080 --> 00:43:20,000 >> HIZLARIA: 1 OK, ezin izan dugu itzulkinaren beraz bueltan lan egin istorio batean, 976 00:43:20,000 --> 00:43:21,914 baina ez dago azalpen askoz sinpleagoa da. 977 00:43:21,914 --> 00:43:22,580 IKUSLEEN: Eremua. 978 00:43:22,580 --> 00:43:23,288 HIZLARIA: 1 Eremua. 979 00:43:23,288 --> 00:43:24,300 Esparrua hartuko dut. 980 00:43:24,300 --> 00:43:27,290 Beraz, esparrua, gogoratu non Gure x eta y deklaratu. 981 00:43:27,290 --> 00:43:30,840 Barruan deklaratu ari dira nagusiaren eskubidea sortu hemen. 982 00:43:30,840 --> 00:43:33,200 a eta b, bestalde, ez dira eraginkortasunez deklaratu 983 00:43:33,200 --> 00:43:35,930 swap barruan, ez da nahiko in kizkur giltza, baina oraindik 984 00:43:35,930 --> 00:43:37,690 swap arloan orokorrean ere. 985 00:43:37,690 --> 00:43:40,560 Eta hain zuzen ere, a eta b bakarrik bandeja honen barruan existitzen 986 00:43:40,560 --> 00:43:44,850 Annenberg aurrera, hau kodea bigarren zatia. 987 00:43:44,850 --> 00:43:49,500 Beraz, hain zuzen ere kopia aldatuz, baina ez da hori benetan hori guztia lagungarria. 988 00:43:49,500 --> 00:43:52,190 >> Beraz, dezagun begirada bat apur bat txikiagoa da maila honetan. 989 00:43:52,190 --> 00:43:55,430 Atzera joan sartu noa Iturburu direktorioa, 990 00:43:55,430 --> 00:43:58,330 eta noa lehenengo hemen gerturatzeko, eta, besterik gabe, 991 00:43:58,330 --> 00:44:02,290 naiz ez dut horretan berresteko handiagoa terminal leihoa, 992 00:44:02,290 --> 00:44:04,430 Programaren oraindik duten bezala Portaera. 993 00:44:04,430 --> 00:44:06,840 Demagun orain hori Ez da nahita. 994 00:44:06,840 --> 00:44:10,090 Bistan swap nahi dut lana, beraz, akatsen bat bezala sentitzen da. 995 00:44:10,090 --> 00:44:12,780 Orain bat gehituz hasteko izan nuen printf nire kodeari en asko, 996 00:44:12,780 --> 00:44:16,010 inprimatzeko x hona, y gorako hemen, bat baino gehiago hemen, hemen baino gehiago b. 997 00:44:16,010 --> 00:44:18,220 Baina, Egia, ziurrenik zer egin duzun aste pare bat 998 00:44:18,220 --> 00:44:20,190 orain, bulego orduetan eta etxean lan egiten denean 999 00:44:20,190 --> 00:44:22,150 psets zenbait akats aurkitu nahian. 1000 00:44:22,150 --> 00:44:25,560 Baina ikusiko duzu, ez baduzu dagoeneko, arazo hori ezar hiru aurkezten 1001 00:44:25,560 --> 00:44:31,630 GDB izeneko komando batera, non GDB, GNU araztaileak, 1002 00:44:31,630 --> 00:44:34,040 sorta oso bat du bere baitan eginbideak benetan 1003 00:44:34,040 --> 00:44:38,160 utzi egoerak ulertzeko Hau atsegin, baina gehiago egunkariak, 1004 00:44:38,160 --> 00:44:39,940 arazoak konpontzeko eta bugs aurkitu. 1005 00:44:39,940 --> 00:44:40,940 Beraz, ez dut hori egin behar. 1006 00:44:40,940 --> 00:44:44,770 ./noswap Ordez, beharrean nago GDB ./noswap exekutatu. 1007 00:44:44,770 --> 00:44:47,410 1008 00:44:47,410 --> 00:44:51,200 Bestela esanda, naiz korrika joan nintzen nire programa ez Bash ere, gure lagun berria 1009 00:44:51,200 --> 00:44:51,850 gaur. 1010 00:44:51,850 --> 00:44:53,970 Exekutatu noa nire programa noswap barruan 1011 00:44:53,970 --> 00:44:56,900 izeneko beste programa honen GDB, araztaile bat da, eta horrek 1012 00:44:56,900 --> 00:45:01,035 hori laguntzeko diseinatutako programa bat da gizakiak aurkituko duzu eta bugs kendu. 1013 00:45:01,035 --> 00:45:03,410 Beraz hit I Run hemen bada, ez da testu kopuru atrocious bat 1014 00:45:03,410 --> 00:45:04,868 Benetan inoiz ez dute irakurtzen. 1015 00:45:04,868 --> 00:45:07,290 Funtsean distrazio bat gonbitan, eta horrek 1016 00:45:07,290 --> 00:45:10,030 Kontrol-L sakatu noa jaiki goialdean dago. 1017 00:45:10,030 --> 00:45:11,800 Hau GDB gonbitean da. 1018 00:45:11,800 --> 00:45:15,550 Programa hau exekutatu orain nahi badut, little Cheat gaurko buruzko fitxa hau bezalako 1019 00:45:15,550 --> 00:45:21,860 diapositiba iradokitzen, Run da lehena komandoak aurkeztu nahi genuela. 1020 00:45:21,860 --> 00:45:25,150 Eta besterik ez dut idazten joan exekutatu sortu hemen GDB barruan, 1021 00:45:25,150 --> 00:45:26,811 eta hain zuzen ere, nire programa ran. 1022 00:45:26,811 --> 00:45:29,310 Gaur egun, gehigarri batzuk Hau atsegin pantailaren irteerak, 1023 00:45:29,310 --> 00:45:31,910 baina hori da GDB anal besterik ez izatea eta gurekin kontatzea zer gertatzen den. 1024 00:45:31,910 --> 00:45:34,451 Ez benetan ez duzu kezkatu datu horiek oraintxe buruz. 1025 00:45:34,451 --> 00:45:36,890 Baina zer da benetan cool GDB, ez dut hau berriro 1026 00:45:36,890 --> 00:45:42,100 Kontrol-L garbitu pantaila let me joan Animatu eta idatzi "apurtu nagusia," horrela, 1027 00:45:42,100 --> 00:45:45,743 Sartu hit I, ezarriz zer da break noswap.c at puntu bat deitu, 1028 00:45:45,743 --> 00:45:51,270 16 linea, hau da, non GDB hurrena nire programa benetan 1029 00:45:51,270 --> 00:45:53,070 da, nire funtzioa benetan da. 1030 00:45:53,070 --> 00:45:55,070 Honek alde batetara utzi dugu oraingoz baina hori helbidea da 1031 00:45:55,070 --> 00:45:57,310 zehazki, funtzio honen memorian. 1032 00:45:57,310 --> 00:46:00,240 Beraz, orain idazten exekutatu I, nabarituko zer cool hemen. 1033 00:46:00,240 --> 00:46:05,650 Nire programa linea dut at hausten GDB esan exekuzioa eteteko at. 1034 00:46:05,650 --> 00:46:09,850 Beraz, ez daukat nire kodeari orain aldatu, gehitu printf batzuk, konpilatu da, berrabiarazi 1035 00:46:09,850 --> 00:46:13,300 da, aldatu, printf batzuk gehitu, gorde, konpilatu da, exekutatu. 1036 00:46:13,300 --> 00:46:18,100 Nire programaren bidez besterik ez dut oinez dezakezu pausoz pausoz pauso giza abiaduran, 1037 00:46:18,100 --> 00:46:20,880 Ez abiadura moduko Intel-barrutik at. 1038 00:46:20,880 --> 00:46:24,580 >> Beraz, orain lerro hau nabarituko agertzen da hemen, eta atzera egin badut 1039 00:46:24,580 --> 00:46:27,800 gedit nire programa, nabarituko dela benetan 1040 00:46:27,800 --> 00:46:29,280 kodea oso lehen lerroan. 1041 00:46:29,280 --> 00:46:31,240 Badira 16 linea da gedit. 1042 00:46:31,240 --> 00:46:34,610 Ez da GDB barruan linea 16, eta are interface zuri-beltzeko honetan nahiz 1043 00:46:34,610 --> 00:46:37,760 ez da ia erabiltzaile gisa errespetatzen, horrek esan nahi du 1044 00:46:37,760 --> 00:46:41,680 16 linea ez dela exekutatu oraindik, baina nahi izan dugu gaurkoa. 1045 00:46:41,680 --> 00:46:46,220 Beraz, hain zuzen ere inprimatu idazten I x, ez printf, inprimatu besterik ez x, 1046 00:46:46,220 --> 00:46:50,730 Akastunak balio batzuk lortu nuen han zero, x ez da hasieratu oraindik delako. 1047 00:46:50,730 --> 00:46:54,760 Beraz, ez dut aurrera idazten joatea, edo, nahi baduzue fancy, besterik hurrengo n nahi. 1048 00:46:54,760 --> 00:46:59,090 Baina idatzi dut hurrengo sartu, orain nabarituko mugitzen line 17 da. 1049 00:46:59,090 --> 00:47:02,840 Beraz, logikoki, I exekutatu bada 16 lerro eta orain idazten dut inprimatu x, 1050 00:47:02,840 --> 00:47:03,640 zer ikusi behar dut? 1051 00:47:03,640 --> 00:47:04,970 1052 00:47:04,970 --> 00:47:05,520 One. 1053 00:47:05,520 --> 00:47:07,820 >> Eta orain, hau da admittedly nahasia. 1054 00:47:07,820 --> 00:47:11,260 $ 2 fancy modu bat besterik ez da, nahi baduzue geroago arte balio duten erreferentzia nahi, 1055 00:47:11,260 --> 00:47:12,510 esan dezakezu "dolarrak bi sinatzeko." 1056 00:47:12,510 --> 00:47:13,480 Itzuli da erreferentzia bat bezalakoa da. 1057 00:47:13,480 --> 00:47:14,570 Baina, oraingoz, besterik ez ikusi egingo dio. 1058 00:47:14,570 --> 00:47:17,070 Zer da interesgarria da, zer da berdin ikurra eskuinaldean. 1059 00:47:17,070 --> 00:47:21,000 Eta orain, hurrengo berriro idazten I eta inprimatu y, 2 ikusi beharko dut. 1060 00:47:21,000 --> 00:47:23,870 Era berean, ezin dut orain inprimatu x berriro, eta Egia, 1061 00:47:23,870 --> 00:47:27,130 I nahi bezala apur bat nahastu dut lortzean bada non nagoen, zerrenda zerrenda idatzi dut 1062 00:47:27,130 --> 00:47:30,590 eta besterik ez testuinguru batzuk ikusten inguruan puntuan nago at benetan. 1063 00:47:30,590 --> 00:47:35,180 Eta orain idatzi dut hurrengo, eta ez x 1 da. 1064 00:47:35,180 --> 00:47:36,300 Orain aurrera idazten dut. 1065 00:47:36,300 --> 00:47:37,710 Oh, y 2 da. 1066 00:47:37,710 --> 00:47:40,750 Eta berriro ere, nahasgarria da, GDB irteera delako 1067 00:47:40,750 --> 00:47:43,044 hau da nire irteera propioa commingled ari. 1068 00:47:43,044 --> 00:47:45,710 Baina kontuan hartu duzu bada, by atzera eta aurrera zure kodea glancing 1069 00:47:45,710 --> 00:47:47,740 edo bigarren mailako erruleen ezazu albo agian ek, duzu 1070 00:47:47,740 --> 00:47:51,020 Ikusten benetan besterik ez naiz nire programaren bidez hurrats. 1071 00:47:51,020 --> 00:47:54,620 >> Baina konturatu zer gertatzen den hurrengo, literalki. 1072 00:47:54,620 --> 00:47:56,380 Hona hemen line 22 da. 1073 00:47:56,380 --> 00:48:01,315 Let me go haren gainean, eta, horrela, mugitzen 23ra, eta inprima I x da gaur egun, oraindik ere bada. 1074 00:48:01,315 --> 00:48:03,890 Eta y inprimatu badut orain, oraindik inork. 1075 00:48:03,890 --> 00:48:05,820 Beraz, hau ez da ariketa erabilgarria. 1076 00:48:05,820 --> 00:48:07,450 Hargatik berregin hau. 1077 00:48:07,450 --> 00:48:10,069 Let me back igo izateko Gora eta mota run berriro. 1078 00:48:10,069 --> 00:48:12,110 Eta programa esaten da duten arazten ari 1079 00:48:12,110 --> 00:48:14,109 ditu dagoeneko hasi, hasieratik hasi. 1080 00:48:14,109 --> 00:48:15,420 Bai, Berriro egin dezagun. 1081 00:48:15,420 --> 00:48:22,000 Eta une honetan, egin hurrengo utzi, hurrengo, hurrengo, hurrengo, hurrengo, 1082 00:48:22,000 --> 00:48:24,180 baina orain gauzak interesgarri. 1083 00:48:24,180 --> 00:48:27,760 Orain arte urratsa egin nahi dut swap, beraz, ez dut idazten hurrengo. 1084 00:48:27,760 --> 00:48:34,380 Urratsa idatzi dut, eta orain konturatu da du salto me noswap.c line 33 arte. 1085 00:48:34,380 --> 00:48:37,240 Atzera egin dut gedit ez badu, zer da lerro 33? 1086 00:48:37,240 --> 00:48:40,500 Hori da lehenengo benetako Kode-lerro swap barruan. 1087 00:48:40,500 --> 00:48:44,150 Hau da, polita, orain ahal dudalako motatako Poke inguruan eta bitxi 1088 00:48:44,150 --> 00:48:46,052 gisa zer ari den benetan gertatzen ari badira ere. 1089 00:48:46,052 --> 00:48:46,760 Dezagun inprimatu me tmp. 1090 00:48:46,760 --> 00:48:47,770 1091 00:48:47,770 --> 00:48:48,800 Tira. 1092 00:48:48,800 --> 00:48:51,438 Zergatik ez dute tmp batzuk ero, akastunak zabor balioa? 1093 00:48:51,438 --> 00:48:54,579 1094 00:48:54,579 --> 00:48:56,120 IKUSLEEN: Ez da hasieratu. 1095 00:48:56,120 --> 00:48:57,150 HIZLARIA: 1 Ez da hasieratu egin dira. 1096 00:48:57,150 --> 00:49:00,270 Eta hain zuzen ere, programa bat exekutatzen baduzu, memoria sorta osoa eman zu 1097 00:49:00,270 --> 00:49:03,392 sistema eragilearen arabera, baina zuk ez dute inolako balioak hasieratu, 1098 00:49:03,392 --> 00:49:05,600 beraz, edozein bit Oraindik Hemen ikusten da, nahiz eta 1099 00:49:05,600 --> 00:49:07,770 crazy negatibo handi honetan zenbakia, besterik gabe esan nahi du 1100 00:49:07,770 --> 00:49:10,750 horiek aurrera aztarnak dira aurreko RAM duten erabilera batzuk, 1101 00:49:10,750 --> 00:49:13,050 Ez daukat nahiz hala ere, behar neure burua. 1102 00:49:13,050 --> 00:49:17,086 Beraz, orain aurrera eta mota joan hurrengo, eta orain idazten dut inprimatu tmp bada, 1103 00:49:17,086 --> 00:49:17,835 zer ikusi behar dut? 1104 00:49:17,835 --> 00:49:19,570 1105 00:49:19,570 --> 00:49:23,360 Whatever baten balioa izan zen, baten lehen argumentua da, besterik gabe, 1106 00:49:23,360 --> 00:49:25,550 x bezalakoa izan zen lehena Gauza ari gainditu zuen, 1107 00:49:25,550 --> 00:49:30,450 beraz, eta a x bera izan beharko luke, beraz, inprimatu tmp me inprimatu behar. 1108 00:49:30,450 --> 00:49:36,360 >> Beraz, zer arazo multzo ikusiko dituzu Hiru GDB buruzko era askotako tutorial bat da, 1109 00:49:36,360 --> 00:49:40,020 baina konturatzen hori ez da hasieratik tresna bat begirada bat izango dela benetan 1110 00:49:40,020 --> 00:49:42,774 lagundu arazoak konpontzeko beraz, askoz gehiago eraginkortasunez. 1111 00:49:42,774 --> 00:49:44,690 Zer azken batean gaude asteazkenean egingo 1112 00:49:44,690 --> 00:49:48,180 itzuli zuritu geruzak batzuk hasiko da eta prestakuntza-gurpil batzuk kendu. 1113 00:49:48,180 --> 00:49:50,496 Gauza izeneko kate hori denbora pixka bat dugu erabiltzen, 1114 00:49:50,496 --> 00:49:53,370 poliki-poliki hartu duten urruntzen goaz duzu eta hasi buruz hitz 1115 00:49:53,370 --> 00:49:55,725 zerbait gehiago Esoterikoki char * gisa ezagutzen, 1116 00:49:55,725 --> 00:49:59,550 baina ari gara polit hau egin nahi dugu eta lehenik poliki-poliki, nahiz eta erakusleak nahiz eta, 1117 00:49:59,550 --> 00:50:02,730 deitzen ari dira, batzuk egin ahal oso gauza txarrak neurriz bada, 1118 00:50:02,730 --> 00:50:06,040 tik claymation pixka bat begira gure lagun Nick Parlante Stanford 1119 00:50:06,040 --> 00:50:09,670 Unibertsitatea, informatika irakaslea zientzia nor Aurreikuspen honen bildu 1120 00:50:09,670 --> 00:50:11,075 zer da asteazken honetan, etorri da. 1121 00:50:11,075 --> 00:50:12,196 1122 00:50:12,196 --> 00:50:13,400 >> [Bideo-erreprodukzioa] 1123 00:50:13,400 --> 00:50:13,900 -Aizu, 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 Erakuslea fun denbora da. 1127 00:50:17,240 --> 00:50:18,260 1128 00:50:18,260 --> 00:50:19,350 >> -Zer da hori? 1129 00:50:19,350 --> 00:50:21,150 Erakusleak buruz ikasi? 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 bideo-erreprodukzioa] 1133 00:50:23,730 --> 00:50:25,396 HIZLARIA: 1 That zain dago asteazkenean. 1134 00:50:25,396 --> 00:50:26,440 Gero ikusiko dugu. 1135 00:50:26,440 --> 00:50:27,106 [Bideo-erreprodukzioa] 1136 00:50:27,106 --> 00:50:30,420 -Eta Orain, Deep pentsamenduak, Daven Farnham arabera. 1137 00:50:30,420 --> 00:50:33,980 1138 00:50:33,980 --> 00:50:35,900 >> Zergatik dira C ikasteko dugu? 1139 00:50:35,900 --> 00:50:36,785 Zergatik ez + A? 1140 00:50:36,785 --> 00:50:38,550 1141 00:50:38,550 --> 00:50:40,910 >> [Barreak] 1142 00:50:40,910 --> 00:50:42,160 >> [END bideo-erreprodukzioa]