1 00:00:00,000 --> 00:00:06,180 2 00:00:06,180 --> 00:00:07,820 >> JASON Hirschhorn: Ongi etorri A5, guztiontzat. 3 00:00:07,820 --> 00:00:11,270 Zirraragarria aste bat dugu gurekin aurretik, Han batez ere delako berria hainbeste dira 4 00:00:11,270 --> 00:00:12,350 gela honetan aurpegiak. 5 00:00:12,350 --> 00:00:12,920 Zoragarria da. 6 00:00:12,920 --> 00:00:15,740 Duzu asko daude hemen istripuak, hau da, are hobea. 7 00:00:15,740 --> 00:00:18,220 Beraz, espero mantendu dituzu sartu dira. 8 00:00:18,220 --> 00:00:20,220 >> Aste honetan ari gara gastatzen joan ataleko gehienak 9 00:00:20,220 --> 00:00:21,870 galdetegia prestatzen. 10 00:00:21,870 --> 00:00:26,580 Beraz, gure agenda per, hitz egin dugu klasea baliabide buruz pixka bat, 11 00:00:26,580 --> 00:00:30,350 baina, halaber, galdetegia, eta, ondoren, berriz ere, pasatzeko klase hitz gehienak 12 00:00:30,350 --> 00:00:31,390 galderei buruz. 13 00:00:31,390 --> 00:00:33,900 Bukatutakoan behin dugu erantzunez zure galderak, edo bada zure galderak 14 00:00:33,900 --> 00:00:39,010 naturalean gaituzte kodifikazioa batzuk, I midterms lagin arazoak 15 00:00:39,010 --> 00:00:43,180 iragan duten zuzeneko kode jarriko gara atalean elkarrekin ere ekarri beste batzuk 16 00:00:43,180 --> 00:00:45,420 Gai ona estaltzeko. 17 00:00:45,420 --> 00:00:48,280 >> Beraz, lehenik eta behin, joan gisa dugun bidez egiteko iragan aste pare gogorarazteko 18 00:00:48,280 --> 00:00:51,700 Guys, ez dago baliabide tona bat Ikastaro honetan eskuragarri. 19 00:00:51,700 --> 00:00:55,020 Horietako asko oso lagungarria izango da aurrera jarraitu behar duzu 20 00:00:55,020 --> 00:00:57,280 galdetegi 0 ikastera, zeren Astearte arratsaldean da. 21 00:00:57,280 --> 00:00:59,630 Beraz, guztiak izan dira pixka bat ikasten. 22 00:00:59,630 --> 00:01:02,640 >> Badira hitzaldia oharrak eta iturri kodea duten behar duzu 23 00:01:02,640 --> 00:01:04,050 behin betiko begiratu. 24 00:01:04,050 --> 00:01:05,019 Watch film laburrak. 25 00:01:05,019 --> 00:01:07,470 Begiratu study.cs50.net. 26 00:01:07,470 --> 00:01:11,770 Eta, ondoren, jarraian aipatzen diren, zenbaki bat beste baliabide. 27 00:01:11,770 --> 00:01:14,020 >> Berriz ere, galdetegi 0 bihar da 1 goizeko. 28 00:01:14,020 --> 00:01:18,230 Egin ez baduzu, hala bada dagoeneko, begiratu buruz Quiz 0 Dokumentuan on atera 29 00:01:18,230 --> 00:01:21,370 ikastaroa homepage irudikatu non galdetegia hartzen ari zaren. 30 00:01:21,370 --> 00:01:25,770 Galdetegia 1:10 etan hasiko da eta bukatzen da 70 minutu beranduago. 31 00:01:25,770 --> 00:01:29,610 Beraz erakusteko baduzu 1:10 ondoren, zauden duten askok minutu gutxiago lortzeko ari 32 00:01:29,610 --> 00:01:30,940 70 baino galdetegi hartzeko. 33 00:01:30,940 --> 00:01:33,570 Beraz, ziurtatu Oraindik garaiz han. 34 00:01:33,570 --> 00:01:38,690 Oraindik luzapena ikaslea bada edo izan beste azterketa gogoetak batzuk, hura 35 00:01:38,690 --> 00:01:40,400 agian ez 1 goizeko bihar izango da. 36 00:01:40,400 --> 00:01:43,540 Baina, berriro ere, egiazta buruz Quiz 0 dokumentatzeko ziur duzu jakin noiz 37 00:01:43,540 --> 00:01:44,760 galdetegia hartzen ari zaren. 38 00:01:44,760 --> 00:01:46,440 75 minutuan idatzi nuen hemen. 39 00:01:46,440 --> 00:01:48,580 Nik uste dut, hori da, ez 70. 40 00:01:48,580 --> 00:01:53,420 >> Material guztia estaltzen astean 0tik da azken astean asteazkenean hitzaldia emateko. 41 00:01:53,420 --> 00:01:59,350 Eta berriro ere, galdetegi hau, duten per Dokumentuan, lortuko duzu bat, bi aldetako eta 8 42 00:01:59,350 --> 00:02:03,770 1/2 11 paper eskuratu duzun arabera ohar gisa erabili galdetegi zehar. 43 00:02:03,770 --> 00:02:08,570 Jende askok, ez bada jende gehienak, izan aurkitu duten gehien lagungarria modu bakar 44 00:02:08,570 --> 00:02:11,970 galdetegi egiteko aztertzea da azterketa orri bat, bat egiteko 45 00:02:11,970 --> 00:02:13,730 bat-sider, beren. 46 00:02:13,730 --> 00:02:17,710 Beraz, lehengo begiratu iragan direnak ikusi duzun. 47 00:02:17,710 --> 00:02:19,960 Iristea, lagunak ikustea zer berea ari dira jarriz. 48 00:02:19,960 --> 00:02:23,610 >> Baina esku-behera, ahal duzun modurik onena azterketa da guztia bidez joan eta 49 00:02:23,610 --> 00:02:26,530 whittle behera zer egin beharko lukete edo hori behar den ez orri horretan sartzen dira 50 00:02:26,530 --> 00:02:30,570 papera, hori besterik ez da benetan bat delako ziur zuretzako modu lagungarria 51 00:02:30,570 --> 00:02:33,620 guztia zeharkatzen ari zaren eta da ezagutza batzuk izan. 52 00:02:33,620 --> 00:02:36,690 , Jende gehienak, aurkituko dugu nahiz eta dute paper eskuineko eserita 53 00:02:36,690 --> 00:02:39,840 haien ondoan galdetegi oinarrituta, ez piztu da, izan ere, berriro ere, oso 54 00:02:39,840 --> 00:02:43,290 Informazio igaro prozesua lagundu egiten ikasten. 55 00:02:43,290 --> 00:02:45,370 >> Du inor edozein zalantza galdetegi 0 buruz? 56 00:02:45,370 --> 00:02:50,120 57 00:02:50,120 --> 00:02:51,450 Denek du - 58 00:02:51,450 --> 00:02:53,230 Ez dut esku hutsezko egin. 59 00:02:53,230 --> 00:02:53,550 Never mind. 60 00:02:53,550 --> 00:02:54,790 I zen nork eskatu joan ikasten hasi zen. 61 00:02:54,790 --> 00:02:58,360 Baina ez dut nahi duzuna egiteko guztiak ez zure eskuak goratzeko. 62 00:02:58,360 --> 00:03:01,290 Esan dudan bezala, beraz, - bai, Avi, aurrera. 63 00:03:01,290 --> 00:03:04,205 >> AVI: Zer gauza erabilgarria izango litzateke hemen bat-pager jarri? 64 00:03:04,205 --> 00:03:05,875 >> STUDENT: Hori da, sortu nahi duzun. 65 00:03:05,875 --> 00:03:08,210 >> JASON Hirschhorn: You get zure epaia erabili. 66 00:03:08,210 --> 00:03:13,220 Erabilgarria gauza hemen bat-pager jarri, you O big buruz nahastu badira 67 00:03:13,220 --> 00:03:17,510 bilaketak mota desberdinen exekuzio eta ordenatzen, jarri duten batean han 68 00:03:17,510 --> 00:03:18,760 handy dandy diagrama. 69 00:03:18,760 --> 00:03:22,250 Horrela, bada galdetu ari da galdetegi, ez duzu eta saiatu figura 70 00:03:22,250 --> 00:03:23,560 it out edo arrazoia exekuzio bidez. 71 00:03:23,560 --> 00:03:24,730 Besterik ez dezakezu kopiatu behera. 72 00:03:24,730 --> 00:03:28,320 Begiratuz gero galdetegiak iragana, asko at aldiz, denbora galderak bertan exekutatzen da. 73 00:03:28,320 --> 00:03:34,150 Beraz, ona adibide bat izango litzateke Gauza zure bat-pager jarri. 74 00:03:34,150 --> 00:03:37,450 >> Beste gauza onak jarri, Oraindik baduzu nola deklaratzen buruz nahastu bat 75 00:03:37,450 --> 00:03:40,570 funtzio edo zer zati desberdinak funtzioaren adierazpena dira, idazten 76 00:03:40,570 --> 00:03:43,400 han zela, bertsio generiko eta, gero, agian, adibide bat. 77 00:03:43,400 --> 00:03:47,290 Oraindik erakusleak buruz nahasten dira, erakusleak lana nola den diagrama bat 78 00:03:47,290 --> 00:03:48,660 Ziurrenik benetan lagungarria. 79 00:03:48,660 --> 00:03:52,440 Oraindik errekurtsibitate, bat buruz nahasten dira funtzioa errekurtsiboa dastatzeko han on 80 00:03:52,440 --> 00:03:54,980 izan ere frogatu benetan lagungarria izan nahi du. 81 00:03:54,980 --> 00:03:57,290 Du horrek emango dizu ideia batzuk? 82 00:03:57,290 --> 00:04:01,820 >> AVI: ulertu behar duzu osoa konpilazioaren prozesua, bezalako 83 00:04:01,820 --> 00:04:03,220 obra guztiak nola hori? 84 00:04:03,220 --> 00:04:06,620 >> JASON Hirschhorn: Everything que ha sido estalita Could 85 00:04:06,620 --> 00:04:08,060 erakusteko sortu galdetegi da. 86 00:04:08,060 --> 00:04:08,930 Galderak - 87 00:04:08,930 --> 00:04:11,300 baina berriro ere, gauza batzuk izango ugari haztatuta besteak baino. 88 00:04:11,300 --> 00:04:14,330 Gauza batzuk berriro etorri eta berriro klasean, in 89 00:04:14,330 --> 00:04:15,590 hitzaldia, eta atala. 90 00:04:15,590 --> 00:04:17,220 Beste gauza ez izan zatoz gora askotan. 91 00:04:17,220 --> 00:04:22,900 >> Asko hitz egin dugu about # include eta -L zerbait eta zer horiek esan nahi 92 00:04:22,900 --> 00:04:24,390 konpilazio prozesuak. 93 00:04:24,390 --> 00:04:29,120 Asko hitz egin dugu GDB buruz, txirrindularitza, erabiltzen ditugun desberdinetako banderak horiek denean 94 00:04:29,120 --> 00:04:33,100 zerbait konpilatu dugu, eta zer make15, adibidez, benetan 95 00:04:33,100 --> 00:04:34,510 esan nahi du, eta benetan ez. 96 00:04:34,510 --> 00:04:38,110 Ez dugu hitz egin bezala buruz askoz urrats bakoitzean bakarra 97 00:04:38,110 --> 00:04:39,240 konpilazio prozesuak. 98 00:04:39,240 --> 00:04:40,410 Dugu oraindik ere, horri buruz hitz egin zuen. 99 00:04:40,410 --> 00:04:42,550 Beraz, oraindik ere, zerbait duzula ezagutzea izan behar du. 100 00:04:42,550 --> 00:04:44,610 Baina, berriro ere, ez gara izango da - 101 00:04:44,610 --> 00:04:49,140 etortzen diren sarriago klasean sortu gauzak gehiago egongo dira gehiago etortzen 102 00:04:49,140 --> 00:04:52,495 sarri eta ugari galdetegiaren haztatuta. 103 00:04:52,495 --> 00:04:53,280 >> Cool. 104 00:04:53,280 --> 00:04:54,580 Galdetegi 0 buruzko beste edozein galdera? 105 00:04:54,580 --> 00:04:57,660 106 00:04:57,660 --> 00:05:00,050 >> Ados, beraz, zerrenda bat jarri dut taula gainean gaiak. 107 00:05:00,050 --> 00:05:01,550 Curriculumaren bidez joan nintzen. 108 00:05:01,550 --> 00:05:07,340 Berrikuspena etatik atalaren bitartez joan nintzen bart eta diapositibak horiek etorri 109 00:05:07,340 --> 00:05:13,710 Gai zerrenda ez zehatza batekin beraz, orain arte estaltzen dugu CS50 110 00:05:13,710 --> 00:05:16,800 eta gauzak agian galdetegi agertuko. 111 00:05:16,800 --> 00:05:19,900 Beraz, ez naiz joan deneko joan horietako bat bakoitza. 112 00:05:19,900 --> 00:05:22,370 Askoz gehiago hartuko luke Denbora orain dugu baino. 113 00:05:22,370 --> 00:05:26,880 Baina hau jarri dut hemen, zorionez jog izateko Zure memoria gauza gisa duten may 114 00:05:26,880 --> 00:05:28,420 edo agian ez duzu ezagutzen. 115 00:05:28,420 --> 00:05:32,850 >> Eta maite nuen gehiena pasatzeko Sekzio buruzko zure galderak erantzuten 116 00:05:32,850 --> 00:05:35,130 gai hauek, gaiak duen hemen ez dira estalita. 117 00:05:35,130 --> 00:05:36,130 Sasi-kodea idatzi ahal izango dugu. 118 00:05:36,130 --> 00:05:40,010 Benetako kodea idatzi ahal izango dugu bermatzeko duzula - 119 00:05:40,010 --> 00:05:44,280 Zure galdera erantzun ahal izango dut eta laguntza denek funtsean ulertu bat 120 00:05:44,280 --> 00:05:48,330 Gai horiek asko sentitzen duzu beraz prestatuago eta eroso joan sartu 121 00:05:48,330 --> 00:05:50,150 galdetegia bihar. 122 00:05:50,150 --> 00:05:52,300 Beraz, irakurri baino gehiago zerrendan. 123 00:05:52,300 --> 00:05:54,780 Duzu espero dute atal etorri baita galdera batzuk. 124 00:05:54,780 --> 00:05:58,480 Prest zaudenean, goratzeko zure esku eta lehen urratsak egingo ditugu. 125 00:05:58,480 --> 00:06:01,590 126 00:06:01,590 --> 00:06:05,200 >> Gogoan izan, galdera duzu, izan daude galdera ergelak ez. 127 00:06:05,200 --> 00:06:06,250 Asko entzun dugu. 128 00:06:06,250 --> 00:06:09,490 Eta galdera batzuk egin behar duzu, prest nago , beste hainbat pertsona apustu egitea, bai 129 00:06:09,490 --> 00:06:11,740 hemen eserita eta behaketa konektatuta izan baita. 130 00:06:11,740 --> 00:06:13,770 Beraz, pertsona bakarra zaitzake galderak eginez. 131 00:06:13,770 --> 00:06:15,070 Marcus. 132 00:06:15,070 --> 00:06:18,040 >> MARCUS: pila eta Between the zeure, ez dago bat aurrez esleitu 133 00:06:18,040 --> 00:06:22,880 hori bezala definitzen memoriaren ehunekoa hau da pila edo zeure egiteko? 134 00:06:22,880 --> 00:06:25,010 Edo nola lan egiten duten, zehazki ez? 135 00:06:25,010 --> 00:06:26,230 >> JASON Hirschhorn: Great galdera. 136 00:06:26,230 --> 00:06:28,640 Pixka bat traza atzera noa. 137 00:06:28,640 --> 00:06:30,910 Denek ez - 138 00:06:30,910 --> 00:06:31,660 mesedez izan zintzoa. 139 00:06:31,660 --> 00:06:34,130 Duzun galdetzen dut goratzeko ezagutzen dut zure Zure ikaskideek aurrean eskua. 140 00:06:34,130 --> 00:06:38,510 Baina hor daude sentitzen duten pertsonek pila eta zeure deseroso 141 00:06:38,510 --> 00:06:42,980 eta gehiago joan behar duten nahi eta esan nahi horiek zer? 142 00:06:42,980 --> 00:06:43,880 Goratu zure eskua bada - 143 00:06:43,880 --> 00:06:44,420 Ados. 144 00:06:44,420 --> 00:06:45,120 Eskerrik asko. 145 00:06:45,120 --> 00:06:48,420 Beraz, pila baino gehiago joan eta joan zeure benetan azkar eta gero 146 00:06:48,420 --> 00:06:50,370 Zure galderari erantzunez mugitu. 147 00:06:50,370 --> 00:06:58,250 >> Marrazteko dugu irudikatzeko kutxa bat, hala bada memoria ordenagailuan, zer hemen batzuk 148 00:06:58,250 --> 00:07:02,160 duten kutxa horretara joanez gauzak? 149 00:07:02,160 --> 00:07:03,630 Nagusia. 150 00:07:03,630 --> 00:07:04,020 Funtzio nagusi bat. 151 00:07:04,020 --> 00:07:05,890 Nora doa nagusia? 152 00:07:05,890 --> 00:07:08,090 >> STUDENT: [INAUDIBLE]. 153 00:07:08,090 --> 00:07:09,390 >> JASON Hirschhorn: Beraz zaitugu jarri nagusian behera hemen. 154 00:07:09,390 --> 00:07:12,180 155 00:07:12,180 --> 00:07:13,430 Zer gehiago koadro honetan doa? 156 00:07:13,430 --> 00:07:16,000 157 00:07:16,000 --> 00:07:18,140 >> STUDENT: deitu duten funtzioak. 158 00:07:18,140 --> 00:07:19,020 >> JASON Hirschhorn: funtzioak dugu deitu duten. 159 00:07:19,020 --> 00:07:20,440 Eta, zertara bideratzen dira? 160 00:07:20,440 --> 00:07:21,300 >> STUDENT: pila batean. 161 00:07:21,300 --> 00:07:22,380 >> JASON Hirschhorn: dute pila joan. 162 00:07:22,380 --> 00:07:27,350 Beraz, hau deitzen da joan Gauza behera hemen pila. 163 00:07:27,350 --> 00:07:31,880 Eta goian, zeure dugu. 164 00:07:31,880 --> 00:07:35,450 Beraz, memoria ez da besterik hau bezalako koadro bat. 165 00:07:35,450 --> 00:07:37,330 Baina nahiko antzekoa da, benetan. 166 00:07:37,330 --> 00:07:40,840 Honez kutxak asko izan pasa eta gehiagoko, arabera nola big zure 167 00:07:40,840 --> 00:07:43,730 ordenagailua da edo memorian nola big da. 168 00:07:43,730 --> 00:07:46,950 >> Du aurrekontu-unquote "behean" at pila da. 169 00:07:46,950 --> 00:07:50,880 Eta ez dira gauza anitz pila joan. 170 00:07:50,880 --> 00:07:53,840 Eta horiek funtzioen araberakoak Zure kodea behar duzu. 171 00:07:53,840 --> 00:07:57,780 Duzu beti funtzio bat erabiliz kodea izeneko nagusia, beraz, ez da beti bat 172 00:07:57,780 --> 00:08:00,480 Hemen behera atalean pilatu ardatz. 173 00:08:00,480 --> 00:08:03,980 >> Pila atal horietako pila markoak deitzen dira. 174 00:08:03,980 --> 00:08:09,580 Noiz deitu funtzioa beste, esan nagusiak bitarra bilatzeko funtzio bat dei egiten du, 175 00:08:09,580 --> 00:08:11,075 markoa beste bat jarri dugu pilan. 176 00:08:11,075 --> 00:08:13,830 177 00:08:13,830 --> 00:08:17,320 Zehatzago, joan ari gara dohaintzan memoria zatia batean gure 178 00:08:17,320 --> 00:08:22,960 ordenagailuan gordetzeko bitar bilaketa tokiko aldagai eta bitarra exekutatu 179 00:08:22,960 --> 00:08:24,150 bilaketa kodea. 180 00:08:24,150 --> 00:08:26,810 >> Beraz, bilaketa bitarra deitzen diogu. 181 00:08:26,810 --> 00:08:30,440 182 00:08:30,440 --> 00:08:33,340 Memoria zatia honetan, goazen bere aldagai lokalak gordetzeko. 183 00:08:33,340 --> 00:08:35,270 Bere printf deiak gordetzeko goaz. 184 00:08:35,270 --> 00:08:38,159 Zer gerta ere, funtzio hori da bertan gordeko da joan. 185 00:08:38,159 --> 00:08:40,350 Binary bilaketa da exekutatu behar. 186 00:08:40,350 --> 00:08:42,210 Da exekuzioa osatzeko egingo. 187 00:08:42,210 --> 00:08:47,450 Zer da C hitza dela ondorioztatzen funtzio bat egin beharko lukete horretan 188 00:08:47,450 --> 00:08:49,306 bere exekuzioa osatzeko? 189 00:08:49,306 --> 00:08:50,040 >> STUDENT: Sartu. 190 00:08:50,040 --> 00:08:50,870 >> JASON Hirschhorn: itzuli. 191 00:08:50,870 --> 00:08:53,230 Beraz, betiere bueltan adierazpen bat ikusten duzu, funtzioaren muturrak 192 00:08:53,230 --> 00:08:54,350 duten hits. 193 00:08:54,350 --> 00:08:56,740 Bilaketa beraz bitarra bere itzulera kolpatu du. 194 00:08:56,740 --> 00:09:01,360 Memoria zati hau izango da, funtsean, be hori askatzea. 195 00:09:01,360 --> 00:09:03,510 Eta nagusia exekuzioa itzuli egingo. 196 00:09:03,510 --> 00:09:07,240 Lekuan zegoen, beraz dei nagusia pausatu egingo bilaketa bitarra, bueltan balio batzuk eskuratu, 197 00:09:07,240 --> 00:09:08,700 eta exekuzioa jarraitu. 198 00:09:08,700 --> 00:09:10,840 Pila markoak urrun joan dira. 199 00:09:10,840 --> 00:09:14,810 >> Funtzioa errekurtsiboa bat, deitu badugu horrek deiak bere gainera funtzioa da 200 00:09:14,810 --> 00:09:18,480 eta baino gehiago, agian lortuko dugu - esaten dugu Egin bilaketa bitarra errekurtsiboki. 201 00:09:18,480 --> 00:09:21,520 Agian bitar bilaketa bat bertsio lortuko dugu, bilaketa bitarra bi, bilaketa bitarra 202 00:09:21,520 --> 00:09:24,090 hiru, bilaketa bitarra lau, bilaketa bitarra bost. 203 00:09:24,090 --> 00:09:27,950 Eta ondoren, hau final bilaketa bitarra bost oinarri kasuan, eta pila kolpatu du 204 00:09:27,950 --> 00:09:31,010 markoak atzera egingo eta itxiera mantentzeko nagusira itzuli arte. 205 00:09:31,010 --> 00:09:32,530 Errekurtsibitate baino gehiago ezin dugu pixka bat joan. 206 00:09:32,530 --> 00:09:35,530 Baina hori guztia da, Oraindik baduzu funtzio bat baino gehiago deituz aldi berean, 207 00:09:35,530 --> 00:09:39,250 Han pila bat baino gehiago izango pila markoak. 208 00:09:39,250 --> 00:09:42,900 >> Zeure, bestetik, sortu Hemen, ez da funtzio, 209 00:09:42,900 --> 00:09:44,380 Ez aldagai lokalak egiteko. 210 00:09:44,380 --> 00:09:48,920 Da dinamikoki esleitu It aldagaiak. 211 00:09:48,920 --> 00:09:57,210 Beraz, horiek izan daitezke aldagaiak dira bai nagusiak edo batean hasieratu 212 00:09:57,210 --> 00:09:58,640 funtziona deiak nagusia. 213 00:09:58,640 --> 00:10:00,790 Edonon zure kodea, dute hasieratu daitezke. 214 00:10:00,790 --> 00:10:04,360 Eta dinamikoki a hasieratzean esleitu aldakorra. 215 00:10:04,360 --> 00:10:06,970 Zer funtzio C erabiltzen dugu? 216 00:10:06,970 --> 00:10:07,600 >> STUDENT: Malloc. 217 00:10:07,600 --> 00:10:09,240 >> JASON Hirschhorn: Malloc. 218 00:10:09,240 --> 00:10:10,800 Malloc deitu. 219 00:10:10,800 --> 00:10:12,260 Oroimenaren espazio bat lortzen duzu. 220 00:10:12,260 --> 00:10:15,020 Eta oroimenaren espazio hori zeure gainean. 221 00:10:15,020 --> 00:10:18,840 Eta oroimenaren espazio hori egonaldiak there free deitu arte. 222 00:10:18,840 --> 00:10:22,670 >> Beraz dinamikoki esleitu aldagai zeure egingo betiere existitzen duzun bezala 223 00:10:22,670 --> 00:10:25,250 nahi existitzen horiek, eta ez dute irteteko esplizituki arte 224 00:10:25,250 --> 00:10:26,760 kontatu urrun joan. 225 00:10:26,760 --> 00:10:29,670 Horiek sor dezakezu funtzio bakar batean. 226 00:10:29,670 --> 00:10:31,930 Funtzio horren pila markoa urrun joan dira. 227 00:10:31,930 --> 00:10:35,490 Baina aldagai hori oraindik existitzen egingo zeure, hura askatu arte, 228 00:10:35,490 --> 00:10:39,650 izeneko funtzioaren bidez potentzialki bilaketa bitarra edo dena delakoa. 229 00:10:39,650 --> 00:10:42,580 >> Beraz zeure aldagai horiek han egoten betiere nahi duzun bezala 230 00:10:42,580 --> 00:10:43,490 bertan geratuko horiek. 231 00:10:43,490 --> 00:10:46,090 Eta hemen jarri dute get. 232 00:10:46,090 --> 00:10:47,450 Eta, ondoren, hurrengo bat jarri lortzen. 233 00:10:47,450 --> 00:10:50,210 Ohitu bete hartu dute, eta dute han egoten free deitu arte. 234 00:10:50,210 --> 00:10:52,870 >> Eta, funtsean, zeure, eta pila, Marcus galdera lortzean, 235 00:10:52,870 --> 00:10:54,500 bata bestearen bidean hazten. 236 00:10:54,500 --> 00:10:57,730 Eta exekutatu dute beste bat sartu bada, duzun Erabilitako memoria guztietan zure 237 00:10:57,730 --> 00:11:01,330 ordenagailua, eta zure programa egingo irten ez duzulako edozein memoria gehiago dute 238 00:11:01,330 --> 00:11:02,420 utzi da erabiltzeko. 239 00:11:02,420 --> 00:11:07,290 Haien artean, badira Beste gauza batzuen potentzialki. 240 00:11:07,290 --> 00:11:10,980 Baina noski honen esparrutik, zuretzat behar ez kezkatu. 241 00:11:10,980 --> 00:11:12,020 >> Beraz, hori izan zen erantzuna Zure galderari. 242 00:11:12,020 --> 00:11:13,520 Ez kezkatu. 243 00:11:13,520 --> 00:11:15,550 Baina horrek erantzun luzea zen. 244 00:11:15,550 --> 00:11:17,800 Guztiak jakin behar duzun da zeure eta pila izango - 245 00:11:17,800 --> 00:11:18,900 hasten da, behealdean bat. 246 00:11:18,900 --> 00:11:19,570 Pila egiten du. 247 00:11:19,570 --> 00:11:20,790 Zeure da han. 248 00:11:20,790 --> 00:11:21,990 Beste bat hurbilago hazten dute. 249 00:11:21,990 --> 00:11:23,110 >> Eta ukitu izanez gero, hori arazo bat da. 250 00:11:23,110 --> 00:11:24,500 Memoria agortu duzu. 251 00:11:24,500 --> 00:11:28,760 Baina, aldi berean, jakinda gainera non dira, zer da bai gordeta 252 00:11:28,760 --> 00:11:30,512 pila eta zeure. 253 00:11:30,512 --> 00:11:31,410 Curtis. 254 00:11:31,410 --> 00:11:33,570 >> CURTIS: Noiz dute talka, pila duten gainezkatzea bat da? 255 00:11:33,570 --> 00:11:35,670 >> JASON Hirschhorn: Noiz dute talka, hori ez da pilaren gainezkatzea. 256 00:11:35,670 --> 00:11:38,340 Pilaren gainezkatzea bat hainbat eremu bat da dugun baino gehiago joan daiteke nahi izanez gero. 257 00:11:38,340 --> 00:11:40,020 Ados, etorri egingo dugu atzera pixka batean. 258 00:11:40,020 --> 00:11:42,730 >> STUDENT: Zer da izeneko hitza denean elkarrengandik hit dute, 259 00:11:42,730 --> 00:11:44,450 pilatu eta zeure? 260 00:11:44,450 --> 00:11:46,640 >> JASON Hirschhorn: Oraingoz, ez kezkatu. 261 00:11:46,640 --> 00:11:47,750 Besterik ezagutzen - 262 00:11:47,750 --> 00:11:50,530 Galdera horri erantzun egingo dut klase ondoren. 263 00:11:50,530 --> 00:11:52,680 Exekutatu dute elkarrengandik sartu bada, agortu duzu ez da, oroimenaren, delako gehiago ez 264 00:11:52,680 --> 00:11:53,330 espazioan bertan. 265 00:11:53,330 --> 00:11:55,450 >> STUDENT: Barkatu, zer seg matxura bat? 266 00:11:55,450 --> 00:11:58,710 >> JASON Hirschhorn: segmentu batek errua daiteke izeneko - 267 00:11:58,710 --> 00:12:02,240 zergatik errua seg en izeneko araberakoa da. 268 00:12:02,240 --> 00:12:06,260 Batzuetan, zure pilaren gainezkatzea, bertan egingo esan seg errua error gisa. 269 00:12:06,260 --> 00:12:08,180 >> STUDENT: Zer dereferencing buruz null aldagai bat? 270 00:12:08,180 --> 00:12:10,040 Seg errua da? 271 00:12:10,040 --> 00:12:11,480 >> JASON Hirschhorn: Dereferencing null erakuslea - 272 00:12:11,480 --> 00:12:17,850 Ados, beraz erakuslea duzula duzu bada ezarri berdinak null, erakusleak, abisuaren, 273 00:12:17,850 --> 00:12:20,270 denda memoria helbideak beren balore gisa. 274 00:12:20,270 --> 00:12:23,660 Eta null erakuslea da, funtsean 0 gehiagorik, 0-garren 275 00:12:23,660 --> 00:12:26,670 aldagai horretan aurre. 276 00:12:26,670 --> 00:12:30,010 Beraz 0x, 0, 0, 0, 0, et cetera. 277 00:12:30,010 --> 00:12:35,030 Hori ez da memorian Helbidea 0-garren duten gure argazki batean, hori da han 278 00:12:35,030 --> 00:12:38,800 nonbait, hori gordeak ordenagailua da. 279 00:12:38,800 --> 00:12:40,130 Ez dugu onartuko ukitzeko. 280 00:12:40,130 --> 00:12:44,680 >> Beraz, zure programa exekutatzen denean, bada zerbait memoria joan nahian 281 00:12:44,680 --> 00:12:48,990 Helbidea 0, badaki dela duten Balio huts bat da. 282 00:12:48,990 --> 00:12:50,820 Deus ez, behar daki. 283 00:12:50,820 --> 00:12:53,420 Beraz, ez saiatu eta erabiltzen baduzu zerbait eta tratatzeko zerbait bezala edo 284 00:12:53,420 --> 00:12:58,355 kokaleku horretara joan nahian, zaren seg matxura bat edo erroreren bat iritsi. 285 00:12:58,355 --> 00:13:00,520 Du horrek zure galderari erantzuteko? 286 00:13:00,520 --> 00:13:03,170 >> Eta orain atzera egin dugu gainezkatzea pilatu. 287 00:13:03,170 --> 00:13:09,560 Pila gauza, you guys gisa ikusi aurretik, in - dezagun marrazteko estua 288 00:13:09,560 --> 00:13:11,966 pila marko bat sortu. 289 00:13:11,966 --> 00:13:15,050 Ikusten denek? 290 00:13:15,050 --> 00:13:16,650 Beraz, gure pila markoa dugu. 291 00:13:16,650 --> 00:13:23,260 Array bat aurrezten ari gara tokiko gisa funtzio honetan aldagai. 292 00:13:23,260 --> 00:13:29,510 Beraz, esan gure array bost lekuak ditu. 293 00:13:29,510 --> 00:13:33,230 Horietako bost guztiak bilduko dituen pila marko horretan. 294 00:13:33,230 --> 00:13:37,540 >> Harago dugu idazten hasi egiten bada array honen mugetatik - 295 00:13:37,540 --> 00:13:43,990 beraz sartu idazten hasteko badugu, demagun hori da 0. 296 00:13:43,990 --> 00:13:46,800 Horiek dira bost indizeak gure array. 297 00:13:46,800 --> 00:13:50,980 Indizea 5, sartu hasten gara idazten bada eta horrek ez dugu denean bat dugu 298 00:13:50,980 --> 00:13:55,900 tamaina 5 array, hasten sartu idazten dugu Indize 6, 7, 8, 9, Stack bat eskuratu ahal izango dugu 299 00:13:55,900 --> 00:13:57,960 Gainezkatzea error. 300 00:13:57,960 --> 00:14:00,510 >> Oro har, ez da - 301 00:14:00,510 --> 00:14:04,910 ziurrenik arazoak sartu baino gehiago joan behar izanez gero banan. 302 00:14:04,910 --> 00:14:08,640 Baina, oro har, ez duzu sartu arazoak gehienetan baino gehiago duzu joan asko bada 303 00:14:08,640 --> 00:14:12,770 eta orain arte baino gehiago idatzi duzula joan duzun itzulera horren helbidea gorako 304 00:14:12,770 --> 00:14:16,080 funtzioa, hau da, kokatuta dago pila marko behealdean. 305 00:14:16,080 --> 00:14:16,520 >> , Izan ere, ezta? 306 00:14:16,520 --> 00:14:17,670 In the - - zuk barkatu. 307 00:14:17,670 --> 00:14:18,550 Ez "eskubidea delako". 308 00:14:18,550 --> 00:14:20,470 >> Pila markoan, duzu Zure aldagai lokalak. 309 00:14:20,470 --> 00:14:27,090 Pilaren Oso behealdean marko itzulera helbidea da. 310 00:14:27,090 --> 00:14:28,790 Hori da funtzioa non joaten denean baino gehiago da. 311 00:14:28,790 --> 00:14:33,750 Eta bueltan gainidatzi baduzu helbidea, orduan pila markoak denean, 312 00:14:33,750 --> 00:14:36,680 duzunean pila igarotzen ari marko eta lerro bakoitzean exekutatzean, zaren 313 00:14:36,680 --> 00:14:40,350 zure itzulera helbidea berrietara joan bertan idatzita izan beharrean du 314 00:14:40,350 --> 00:14:40,910 Bat benetako. 315 00:14:40,910 --> 00:14:45,050 Eta hori, nola ikusi dugu segurtasun Arau-hauste batzuk 316 00:14:45,050 --> 00:14:46,780 ordenagailuekin gertatuko. 317 00:14:46,780 --> 00:14:52,760 >> Beraz, pila gainezkatzea, azken batean, da noiz zatia gainidatzi duzu pila 318 00:14:52,760 --> 00:14:55,440 zauden ustezko, erabili tokiko joan aldagai zauden ustezko erabili, eta 319 00:14:55,440 --> 00:14:58,070 bereziki denean gainidatziz hasten zara bezalako gauza garrantzitsu 320 00:14:58,070 --> 00:14:59,100 itzultzeko helbidea. 321 00:14:59,100 --> 00:15:00,090 Eta hor errore bat jasoko duzu. 322 00:15:00,090 --> 00:15:03,980 Edo agian hasiko gara are sartu idazten - 323 00:15:03,980 --> 00:15:05,370 esan bilaketa bitarra zen eskubidea nagusiaren gainetik. 324 00:15:05,370 --> 00:15:07,790 Asko gainidatzi duzu bada, zuk zezakeen nagusitan idatzi. 325 00:15:07,790 --> 00:15:10,230 Baina, oro har, akats bat lortuko duzu aurretik ordenagailua daki gero, delako 326 00:15:10,230 --> 00:15:12,270 zerbait egiten ari zarenean behar ez den egiten. 327 00:15:12,270 --> 00:15:12,560 Bai. 328 00:15:12,560 --> 00:15:13,910 >> STUDENT: Zein da diferentzia pilaren gainezkatzea baten arteko 329 00:15:13,910 --> 00:15:16,940 eta buffer gainezkatzea bat? 330 00:15:16,940 --> 00:15:19,420 >> JASON Hirschhorn: Buffer gainezkatzea mota generiko bat da 331 00:15:19,420 --> 00:15:20,395 zer besterik ez dut deskribatu. 332 00:15:20,395 --> 00:15:22,610 >> STUDENT: Beraz, pila gainezkatzea bat da bufferraren gainezkatzea bat adibide. 333 00:15:22,610 --> 00:15:23,420 >> JASON Hirschhorn: Zehazki. 334 00:15:23,420 --> 00:15:28,700 Hau array bat bezala gara daitekeela uste da buffer, sartu joan gauzak egiteko espazioa 335 00:15:28,700 --> 00:15:30,600 Hau bat pila bufferraren gainezkatzea da. 336 00:15:30,600 --> 00:15:33,210 Zeure bufferraren gainezkatzea bat izan dugu. 337 00:15:33,210 --> 00:15:36,870 Han buffer bat, hau ez da, askotan izan zen bada array bat zeure da, eta guk 338 00:15:36,870 --> 00:15:40,600 mugetatik horiek gainidatzi, orduan ez genuke zeure bufferraren gainezkatzea bat. 339 00:15:40,600 --> 00:15:44,870 >> Eta ikastaro honen esparrutik haratago, pixka bat ezberdinean ari dira detektatu. 340 00:15:44,870 --> 00:15:48,040 Konpiladore berezia dauka bakoitza detektatzeko moduak. 341 00:15:48,040 --> 00:15:50,660 Baina bufferraren gainezkatzea da generiko bat dudana deskribatu mota, 342 00:15:50,660 --> 00:15:54,090 horietatik bat pila bufferraren gainezkatzea zen. 343 00:15:54,090 --> 00:15:56,240 Duten zure galdera erantzun zuen? 344 00:15:56,240 --> 00:15:57,910 Gozoa. 345 00:15:57,910 --> 00:16:01,850 >> Han beste edozein galdera erlazionatutako ziren pila edo zeure egiteko? 346 00:16:01,850 --> 00:16:04,920 347 00:16:04,920 --> 00:16:05,510 Bai. 348 00:16:05,510 --> 00:16:08,220 >> STUDENT: Badakit izan kateak free nahi duzu Oraindik dute zeure delako 349 00:16:08,220 --> 00:16:09,305 eta ez duzu nahi memoria Leak. 350 00:16:09,305 --> 00:16:12,240 Baina aldagai global askatzea duzu eta horrelako gauzak? 351 00:16:12,240 --> 00:16:14,335 Edo automatikoki libratuko dute? 352 00:16:14,335 --> 00:16:15,700 >> JASON Hirschhorn: Ona galdera. 353 00:16:15,700 --> 00:16:22,340 Cs50.h, gauza hau sortu dugu kate bat deitzen duzu. 354 00:16:22,340 --> 00:16:23,800 Kate bat da, benetan zer? 355 00:16:23,800 --> 00:16:24,810 >> STUDENT: Char izarra. 356 00:16:24,810 --> 00:16:29,180 >> JASON Hirschhorn: char izar bat, erakuslea pertsonaia bat, erakusle bat 357 00:16:29,180 --> 00:16:30,650 pertsonaiak ezagutuko ditu. 358 00:16:30,650 --> 00:16:32,210 Hori da katea zein den. 359 00:16:32,210 --> 00:16:36,050 Beraz, askatu behar dugu, zeren GetString, eta horrek asko erabiltzen dugu - 360 00:16:36,050 --> 00:16:38,370 izena katea GetString berdin - 361 00:16:38,370 --> 00:16:43,560 Gurekin buruzko memoria batzuk mallocs zeure eta ondoren erakuslea itzultzen da 362 00:16:43,560 --> 00:16:47,230 duen lehen pertsonaia katea, char izar bat. 363 00:16:47,230 --> 00:16:52,760 >> Beraz, itxuraz, ez baduzu izan dira zure kateak edozein free idazten 364 00:16:52,760 --> 00:16:55,600 beraz, orain arte deitzen duzun, duzu sido memoria batzuk leaking. 365 00:16:55,600 --> 00:16:57,430 Jakina ez dugu hitz egin eta, beraz, inork ez in ahaztuak 366 00:16:57,430 --> 00:16:58,520 egiten arazoak. 367 00:16:58,520 --> 00:16:59,980 Baina aurrera joan, bai. 368 00:16:59,980 --> 00:17:03,990 Noiz GetString deitu, zauden zeure gainean espazio batzuk mallocing. 369 00:17:03,990 --> 00:17:07,640 Eta ez baduzu, deitu doako geroago horretan katea, memoria leak duzu. 370 00:17:07,640 --> 00:17:09,440 Duten zure galderari erantzuteko? 371 00:17:09,440 --> 00:17:10,606 >> Yeah 372 00:17:10,606 --> 00:17:15,020 >> STUDENT: Beraz, ez da egin behar, ez dugu erabili itzulera aurretik eskuinera doan? 373 00:17:15,020 --> 00:17:18,510 Bezala, esparruan, asmatzen badut , esan dugun bezala, int nagusia, barruko 374 00:17:18,510 --> 00:17:24,410 kodearen duten horiek barruan da esparrua kizkur, eskuineko aurretik - 375 00:17:24,410 --> 00:17:26,140 dakizu non duzu litzaidake Normalean jarri bueltan. 376 00:17:26,140 --> 00:17:27,950 Ez librea jarri duzu horren aurretik? 377 00:17:27,950 --> 00:17:31,000 >> JASON Hirschhorn: Beraz libre jarri ahal izango duzu lekuan doan jarri nahi duzun. 378 00:17:31,000 --> 00:17:33,810 Horiek dinamikoki esleitu delako aldagaiak, ezin dutelako 379 00:17:33,810 --> 00:17:39,170 zehatz baten esparrutik kanpo bizi funtzioa, malloc deitu bada batean 380 00:17:39,170 --> 00:17:44,140 funtzioa bereizi, adibidez, GetString, doan deitu ahal duzu nagusian. 381 00:17:44,140 --> 00:17:46,050 Zuk ez duzu deitu funtzio zehatzetan 382 00:17:46,050 --> 00:17:47,570 non malloc deritzo. 383 00:17:47,570 --> 00:17:50,340 Baina agian ez duzu deitu itzultzen nagusia aurretik. 384 00:17:50,340 --> 00:17:51,120 >> Eta benetan araberakoa da. 385 00:17:51,120 --> 00:17:54,960 Araberakoa zergatik malloced duzula on da Lehenik eta espazioa. 386 00:17:54,960 --> 00:17:57,320 Batzuek deituko libratzeko nahiko azkar. 387 00:17:57,320 --> 00:17:59,220 Pertsona batzuek ez deitu doan arte Euren programaren bukaeran. 388 00:17:59,220 --> 00:18:00,660 Eta ikusiko orduan dituzten eta doakoa dena. 389 00:18:00,660 --> 00:18:03,597 Zergatik malloc deitzen duzun araberakoa da. 390 00:18:03,597 --> 00:18:11,270 >> STUDENT: Eta zer esango zenuke deitzen duzunean erabilera GetString bada? 391 00:18:11,270 --> 00:18:13,320 Zer free esan nahi duzuna? 392 00:18:13,320 --> 00:18:20,040 >> JASON Hirschhorn: Beraz, sintaxia free besterik gabe, doan, paren, itxi da 393 00:18:20,040 --> 00:18:22,130 paren, eta erakuslea izenarekin. 394 00:18:22,130 --> 00:18:26,410 Beraz, izena katea berdinen idazten baduzu GetString, jarri duzun izena hemen. 395 00:18:26,410 --> 00:18:27,760 Duten erakuslea izenaren da. 396 00:18:27,760 --> 00:18:30,570 Eta memoria hori libratzeko daki. 397 00:18:30,570 --> 00:18:33,920 >> STUDENT: Beraz, memoria hori askatzen da, erakuslea oraindik ere leku horretan seinalatzen 398 00:18:33,920 --> 00:18:34,970 memorian? 399 00:18:34,970 --> 00:18:39,020 Edo erakuslea ere hustu da Helbide puntu hori da. 400 00:18:39,020 --> 00:18:40,290 >> JASON Hirschhorn: horretan saiatu beharko dugu. 401 00:18:40,290 --> 00:18:41,430 Kode behar dugu. 402 00:18:41,430 --> 00:18:43,880 Dezagun itzuli denean lortuko dugu programazioan, eta bere kodea duten utzi. 403 00:18:43,880 --> 00:18:46,000 Eta irudikatu erantzuna nahi baduzu hori, zuk ere kode dezake horrek 404 00:18:46,000 --> 00:18:46,690 Bitartean. 405 00:18:46,690 --> 00:18:49,100 Baina horrek galdera bat da. 406 00:18:49,100 --> 00:18:53,480 >> STUDENT: Posible al da doan zerbait goizegi? 407 00:18:53,480 --> 00:18:58,530 Beraz, oraindik behar duzu zure programa, eta libratuko duzu memoria espazio hori? 408 00:18:58,530 --> 00:18:59,200 >> JASON Hirschhorn: Bai. 409 00:18:59,200 --> 00:19:03,020 Posible da, baduzu doan zerbait eta, ondoren, berriro erabiltzen duzu, izango duzu 410 00:19:03,020 --> 00:19:06,890 Errore bat sartu exekutatu. 411 00:19:06,890 --> 00:19:10,810 Baina zuk on da, libratuko duzulako zerbait eta gero deitu zion. 412 00:19:10,810 --> 00:19:13,940 Beraz, programatzaile baten akatsa izan zen. 413 00:19:13,940 --> 00:19:14,780 Baina bai. 414 00:19:14,780 --> 00:19:17,760 Duten idatzi izan duzu. 415 00:19:17,760 --> 00:19:19,240 >> Galdera gehiago - 416 00:19:19,240 --> 00:19:19,760 bai. 417 00:19:19,760 --> 00:19:22,820 >> STUDENT: Beraz, ustezko badira besterik askatzea da, oro har, aurretik 418 00:19:22,820 --> 00:19:25,490 programa bukatzen da, ez duela esan nahi du bada programa bukatzen da eta ez duzu askatzea da, 419 00:19:25,490 --> 00:19:27,580 memoria hori esleitu da oraindik? 420 00:19:27,580 --> 00:19:31,330 >> JASON Hirschhorn: zure programa amaitzen bada eta ahaztu duzun zerbait askatzea, gero 421 00:19:31,330 --> 00:19:34,390 memoria hori zehar esleitu zen Zure programaren iraupenari eragingo. 422 00:19:34,390 --> 00:19:37,670 Zure programa guztiz ixten denean, memoria hori ez da gertatzen 423 00:19:37,670 --> 00:19:39,490 bertan geratuko da betiko. 424 00:19:39,490 --> 00:19:42,080 Ordenagailua da smart nahikoa ezagutzen duten programa ixten denean, hura 425 00:19:42,080 --> 00:19:46,440 behar memoria guztia kentzeko duten zen programa hori lotuta. 426 00:19:46,440 --> 00:19:51,240 >> Hala ere, badira exekutatu dezakezu tresna antzemateko programa bat, bada orduan 427 00:19:51,240 --> 00:19:54,720 programa amaitu, ahaztu duzu memoria batzuk libratzeko. 428 00:19:54,720 --> 00:19:57,960 Eta zure hurrengo arazoa ezarri non egon malloc erabiliz dituzu eta erabiliz 429 00:19:57,960 --> 00:20:02,610 erakusleak, behar hau abiarazi beharko duzu Zure programa on programatu bada ikusteko, 430 00:20:02,610 --> 00:20:06,530 denean itzultzen nagusia, batzuk izan duzu gauzak unfreed gelditu ziren. 431 00:20:06,530 --> 00:20:09,130 >> Beraz ari ez malloced lo egingo betiko zure ordenadorean. 432 00:20:09,130 --> 00:20:11,720 Duten hondakin-ekoizpena izango litzateke, zeren Oso azkar, ordenagailuak 433 00:20:11,720 --> 00:20:12,960 memoria agortu litzateke. 434 00:20:12,960 --> 00:20:16,450 Baina exekutatu dute zure amaiera arte bada programatu eta ez dute askatu eta zure 435 00:20:16,450 --> 00:20:20,260 programaren irteerak, hori da oraindik arazo bat duten tresna hau lagungarria izango da aurre duzu. 436 00:20:20,260 --> 00:20:21,520 >> STUDENT: Is Valgrind hori? 437 00:20:21,520 --> 00:20:22,910 >> JASON Hirschhorn: Da Valgrind izeneko. 438 00:20:22,910 --> 00:20:23,520 Eta izango duzu - 439 00:20:23,520 --> 00:20:25,780 >> STUDENT: Baina ez dugu jakin duten galdetegia egiteko, nahiz eta? 440 00:20:25,780 --> 00:20:27,600 Esan nahi dut, hitz egin zen hitzaldia pixka bat. 441 00:20:27,600 --> 00:20:33,600 >> JASON Hirschhorn: Beraz Valgrind tresna duten izena da. 442 00:20:33,600 --> 00:20:37,180 Zer egiten duen jakitea da galdetegia nahikoa. 443 00:20:37,180 --> 00:20:40,200 Baina Oraindik ez baduzu erabil ezazu zure Arazoa ezarri dugu, ez delako izan bat 444 00:20:40,200 --> 00:20:43,520 Arazo multzo dela esplizituki tratatzen malloc edo malloc erabiliz duzu. 445 00:20:43,520 --> 00:20:45,330 Beraz duzu Valgrind oraindik ez erabili. 446 00:20:45,330 --> 00:20:47,760 Baina lehenago erabili ahal izango duzu baino beranduago. 447 00:20:47,760 --> 00:20:48,710 >> STUDENT: Ezin duzu errepikatu zer Valgrind da? 448 00:20:48,710 --> 00:20:49,190 >> JASON Hirschhorn: Barkatu? 449 00:20:49,190 --> 00:20:51,240 >> STUDENT: zer errepikatu duzu Valgring da helburua? 450 00:20:51,240 --> 00:20:53,100 >> JASON Hirschhorn: Valgrind izena da - 451 00:20:53,100 --> 00:20:59,890 GDB bezala zure programa arazteko laguntzen dizu Valgrind laguntzen irudikatu duzu bada 452 00:20:59,890 --> 00:21:03,210 gauzak ez dira libratuko Zure programa ixten denean. 453 00:21:03,210 --> 00:21:05,110 Beraz, exekutatu duzu zure programa da. 454 00:21:05,110 --> 00:21:09,230 Eta zure programaren irteerak, eta esango da malloc deitu zure programa askok honetan 455 00:21:09,230 --> 00:21:13,670 byte asko honetarako aldiz, eta zuk free bakarrik izeneko hau, hainbat aldiz. 456 00:21:13,670 --> 00:21:16,520 Eta beraz byte askotan horiek utzi duzu ari askatu gabe. 457 00:21:16,520 --> 00:21:18,050 Edo esango da duzun guztia askatuko. 458 00:21:18,050 --> 00:21:19,070 Lan ona. 459 00:21:19,070 --> 00:21:19,480 >> STUDENT: Ados. 460 00:21:19,480 --> 00:21:21,060 Eta deitzen Valgring? 461 00:21:21,060 --> 00:21:24,940 >> JASON Hirschhorn: V-A-L-G-N-I-N-D. 462 00:21:24,940 --> 00:21:25,970 >> STUDENT: erakusleak buruzko galdera bat. 463 00:21:25,970 --> 00:21:30,080 Beraz, esan dute n izarra duzu x zerbait berdin. 464 00:21:30,080 --> 00:21:33,330 Duten berdin, edozein ari zara jartzen Han, zer da hori barruan jarri ari 465 00:21:33,330 --> 00:21:36,120 zer x da seinalatuz, edo x erakuslea? 466 00:21:36,120 --> 00:21:37,690 >> JASON Hirschhorn: Can you galdera errepikatu? 467 00:21:37,690 --> 00:21:39,340 Daiteke esan duzun bitartean marraztu dugu? 468 00:21:39,340 --> 00:21:42,710 >> STUDENT: galdetegi batean, egia esan, da inork guri bidali dizu, izan zen, char bezala 469 00:21:42,710 --> 00:21:46,520 izar egia berdinen CS50 arroka, ezta? 470 00:21:46,520 --> 00:21:52,190 Beraz, esan nahi du horrek arroka CS50 duten zer da egia apuntatzen da? 471 00:21:52,190 --> 00:21:55,810 >> JASON Hirschhorn: Beraz, hitz egiten ari zaren char katea izar bati buruz, nola 472 00:21:55,810 --> 00:21:56,460 lan egiten duen? 473 00:21:56,460 --> 00:21:56,890 Bai. 474 00:21:56,890 --> 00:21:57,700 Ados. 475 00:21:57,700 --> 00:21:59,140 Dezagun hemen baino gehiago marraztu honetan. 476 00:21:59,140 --> 00:22:07,100 >> [SIDE SOLASEAN] 477 00:22:07,100 --> 00:22:11,130 >> JASON Hirschhorn: Beraz, aldagai hau da mota char izarra izango da. 478 00:22:11,130 --> 00:22:14,580 Zein handia aldagai bat da mota char star? 479 00:22:14,580 --> 00:22:15,510 Zenbat byte? 480 00:22:15,510 --> 00:22:16,450 >> IKASLEAK: Lau. 481 00:22:16,450 --> 00:22:18,210 >> JASON Hirschhorn: lau byte da. 482 00:22:18,210 --> 00:22:21,420 Zenbat Eskubide aldagai bat da mota int star? 483 00:22:21,420 --> 00:22:22,210 >> IKASLEAK: Lau. 484 00:22:22,210 --> 00:22:24,910 >> JASON Hirschhorn: Lau byte. 485 00:22:24,910 --> 00:22:28,280 Erakuslea bat izanez gero, orduan ez da beti lau byte, erakusleak delako, bere 486 00:22:28,280 --> 00:22:30,070 balioa memoria-helbide bat da. 487 00:22:30,070 --> 00:22:35,160 Eta memoria helbideak CS50 on tresnaren dira lau byte luzea. 488 00:22:35,160 --> 00:22:42,900 Beraz, GetString, edo dugunean deitzen dugun esan, stringname berdin, eta gero in 489 00:22:42,900 --> 00:22:46,140 komatxo kate bat jarri, ari gara - 490 00:22:46,140 --> 00:22:46,920 bai, hori pixka bat hainbat. 491 00:22:46,920 --> 00:22:48,630 Dugu GetString dezaket adibide gisa. 492 00:22:48,630 --> 00:22:52,150 Edo char izar zerbait katea izango dira. 493 00:22:52,150 --> 00:22:54,360 Sentitzen dut, emaidazu adibidea irakurri? 494 00:22:54,360 --> 00:22:57,590 >> STUDENT: char izar egia berdinen "Cs50 arroka" komatxo. 495 00:22:57,590 --> 00:23:02,260 >> JASON Hirschhorn: Beraz, izar honek, hau aldakorra x hau deitu dugu gure 496 00:23:02,260 --> 00:23:04,060 helburu generikoak. 497 00:23:04,060 --> 00:23:05,970 X izeneko aldagai bat sortu dugu. 498 00:23:05,970 --> 00:23:07,610 Mota char izarra da. 499 00:23:07,610 --> 00:23:10,950 Serie baten erakuslea da karaktere. 500 00:23:10,950 --> 00:23:12,200 Beraz, hemen behera - 501 00:23:12,200 --> 00:23:23,710 502 00:23:23,710 --> 00:23:25,890 >> Beraz, hau da nola litzateke hau memoria batean lan egiteko. 503 00:23:25,890 --> 00:23:27,410 Hau memoria-helbide bat gordeko luke. 504 00:23:27,410 --> 00:23:31,770 Memorian gorde helbidea litzateke matrizeko lehen karakterea. 505 00:23:31,770 --> 00:23:33,830 Eta orduan, jarraitu duzun erakuslea, duzun 506 00:23:33,830 --> 00:23:35,200 lehen karaktere lortzeko. 507 00:23:35,200 --> 00:23:38,780 >> Eta gauza hau irakurtzen ari zaren bezala Kate bat, zure ordenagailua ez da smart 508 00:23:38,780 --> 00:23:42,930 Nahikoa da jakitea, irakurtzeko gauza hau osoa daukala arte erreakzio bat 0. 509 00:23:42,930 --> 00:23:45,530 Baina zuk irakurtzen ari bada pertsonaia bat Garai batean, hain bitartez errepikatzean zaren 510 00:23:45,530 --> 00:23:49,910 kate hau, gero, besterik irakurri bat aldi berean izaera lortu arte behar 511 00:23:49,910 --> 00:23:50,850 backslash 0. 512 00:23:50,850 --> 00:23:52,335 Agian ez erantzun zure galdera, baina. 513 00:23:52,335 --> 00:23:55,610 >> STUDENT: Bai, baina ez duzu malloced espazio hori 514 00:23:55,610 --> 00:23:58,400 oraindik erakuslea da. 515 00:23:58,400 --> 00:24:02,510 >> JASON Hirschhorn: Beraz, ez nago oso ziur zehazki zer bilatzen ari zaren, 516 00:24:02,510 --> 00:24:03,640 Ez nuen galdetegi hori egin duelako. 517 00:24:03,640 --> 00:24:06,370 Duten ustezko lagungarria izan nahi du TF beste baliabide. 518 00:24:06,370 --> 00:24:11,380 You buruzko kate bat sortzen ari bazara pilatu edo tokiko aldagai gisa, bertan egingo 519 00:24:11,380 --> 00:24:16,920 nahiko luke karguak sorta baino oro har, char izar bat seinalatuz 520 00:24:16,920 --> 00:24:18,600 katea beste. 521 00:24:18,600 --> 00:24:20,550 Baina ez dakit. 522 00:24:20,550 --> 00:24:25,065 Duten beste erakuslea izan daiteke kate pila baita. 523 00:24:25,065 --> 00:24:27,240 Bai. 524 00:24:27,240 --> 00:24:31,116 >> STUDENT: Badakit behar duzula esleitu memoria erakuslea da agertzen 525 00:24:31,116 --> 00:24:33,360 ohitu barruan deklaratu Funtzio beste. 526 00:24:33,360 --> 00:24:36,740 Ez da gauza bera egin behar da bada behar duzun ari nagusiaren barruan deklaratu, 527 00:24:36,740 --> 00:24:39,570 erabiltzen ari zaren nagusien barruan? 528 00:24:39,570 --> 00:24:43,590 >> JASON Hirschhorn: Beraz, bai. 529 00:24:43,590 --> 00:24:46,670 Erakuslea deklaratzeko edozein dezakezu memoria memoria helbidea. 530 00:24:46,670 --> 00:24:51,440 Memoria lokal baten helbidea izan daitekeela aldakorra, oftentimes ordea, 531 00:24:51,440 --> 00:24:55,760 jendeak ez deklaratzeko memoria helbideak dute joan delako aldagai lokalak izateko 532 00:24:55,760 --> 00:24:59,890 behin kanpoan funtzio hori ematen du, eta horrek Horregatik, oro har, gauzak malloc dugu. 533 00:24:59,890 --> 00:25:04,630 Baina bai, erakuslea deklaratzeko izan duzu beste tokiko aldagai izateko. 534 00:25:04,630 --> 00:25:06,360 Besterik ez da, oro har, ez da egin. 535 00:25:06,360 --> 00:25:09,480 Baina hori begirada bat hartu ahal izango dut Gauza zehatz klase ondoren. 536 00:25:09,480 --> 00:25:10,650 Bai. 537 00:25:10,650 --> 00:25:12,350 >> STUDENT: Nik uste dut, hau da, nolako zer gertatzen ari den galdetu du. 538 00:25:12,350 --> 00:25:16,930 Badirudi arraroa du egon behar hasieratzean ez bezala erakuslea 539 00:25:16,930 --> 00:25:20,760 helbidea, baina baita zer balio bat dirudi. 540 00:25:20,760 --> 00:25:25,970 Badirudi bezalako CS50 da zer barruan gauza diren adierazi eta 541 00:25:25,970 --> 00:25:28,820 Ez da benetako helbidea, ezta? 542 00:25:28,820 --> 00:25:30,520 >> JASON Hirschhorn: Beraz, ez da kasua, baina. 543 00:25:30,520 --> 00:25:32,470 Hori ez da zer gertatzen ari den. 544 00:25:32,470 --> 00:25:35,910 Noiz char izar bat aldarrikatu duzu, memoriaren helbide bat da. 545 00:25:35,910 --> 00:25:38,860 Erakusleak memoria helbideak guztiak dira beste zerbait seinalatuz. 546 00:25:38,860 --> 00:25:41,480 Zerbait, bestela ezin da izan pila, baina ia beti piztuta 547 00:25:41,480 --> 00:25:43,440 Bide egiterako ikusiko dugu zeure. 548 00:25:43,440 --> 00:25:46,860 549 00:25:46,860 --> 00:25:53,500 Baina stringname bikoitzeko aurrekontua berdinen ", GetString" duten ikusi ahal izango dugu eta guk 550 00:25:53,500 --> 00:25:55,010 horren bidez begiratu eta duten kodea. 551 00:25:55,010 --> 00:26:01,190 GetString kate ari ez atalean gordetako aldagai hori, edo dena katea 552 00:26:01,190 --> 00:26:04,580 izen da ari ez duten atalean gordetako aldakorra, ez delako nola 553 00:26:04,580 --> 00:26:06,070 erakusleak lan. 554 00:26:06,070 --> 00:26:06,770 Ez duela zentzurik? 555 00:26:06,770 --> 00:26:07,170 >> STUDENT: Bai. 556 00:26:07,170 --> 00:26:08,570 >> JASON Hirschhorn: Ados. 557 00:26:08,570 --> 00:26:11,690 Zorionez, ez zen inori nahasia. 558 00:26:11,690 --> 00:26:15,732 Baina izan bada, dugu begiratu ahal izango da berriro pixka batean, zeren benetan goaz 559 00:26:15,732 --> 00:26:19,240 izango dela espero zerbait kode kateak lan eta sentitzen duzu laguntzeko 560 00:26:19,240 --> 00:26:22,170 gehiago haiekin eroso. 561 00:26:22,170 --> 00:26:24,869 >> Horiekin lotura duten beste edozein galdera gaiak edo beste gai horretan 562 00:26:24,869 --> 00:26:26,119 Jarri dut atzera? 563 00:26:26,119 --> 00:26:32,280 564 00:26:32,280 --> 00:26:34,840 Eta - 565 00:26:34,840 --> 00:26:36,310 oraintxe. 566 00:26:36,310 --> 00:26:37,630 Bai, Alden. 567 00:26:37,630 --> 00:26:39,860 >> ALDEN: Beraz, hau da erabat zerikusirik, baina ezin besterik joan baino gehiago dugu 568 00:26:39,860 --> 00:26:42,760 benetan azkar zer jakin behar dugu 32 eta arteko ezberdintasuna 569 00:26:42,760 --> 00:26:46,345 64-bit makina? 570 00:26:46,345 --> 00:26:47,740 >> JASON Hirschhorn: Bai. 571 00:26:47,740 --> 00:26:52,111 Beraz, 32 bit zenbat byte? 572 00:26:52,111 --> 00:26:53,060 >> ALDEN: lau byte da. 573 00:26:53,060 --> 00:26:54,360 >> JASON Hirschhorn: lau byte da. 574 00:26:54,360 --> 00:26:58,420 Eta 64 bit da zenbat byte? 575 00:26:58,420 --> 00:26:59,112 >> STUDENT: Zortzi. 576 00:26:59,112 --> 00:27:00,610 >> JASON Hirschhorn: Zortzi byte. 577 00:27:00,610 --> 00:27:03,980 Beraz, berriro ere, zortzi bit, byte bat da. 578 00:27:03,980 --> 00:27:08,340 Zure CS50 tresnaren da 32-bit makina bat. 579 00:27:08,340 --> 00:27:13,650 Beraz, memoria-helbideak lau byte luzea. 580 00:27:13,650 --> 00:27:17,460 Badira 2 dira 32 arte memoria helbideak. 581 00:27:17,460 --> 00:27:21,310 0 eta 2 32 ken 1. 582 00:27:21,310 --> 00:27:27,630 Eta ez naiz positiboa, baina hori da seguruenik zer behar duzun esparrua 583 00:27:27,630 --> 00:27:35,230 32-bit makina bat dakit, hori memoria helbideak dira, berriro ere, lau byte luze, 584 00:27:35,230 --> 00:27:39,620 eta gehienezko zenbatekoa da memoria helbideak. 585 00:27:39,620 --> 00:27:41,680 >> Halaber, datu motak - 586 00:27:41,680 --> 00:27:45,020 honek zerbait izan liteke bai hori da nabarmendu behar. 587 00:27:45,020 --> 00:27:49,610 Datu mota baten tamaina araberakoa on makina lanean ari zaren. 588 00:27:49,610 --> 00:27:56,760 Beraz char bat, pertsonaia bakar bat, nola gure CS50 tresnaren on byte asko? 589 00:27:56,760 --> 00:27:57,980 Byte bat. 590 00:27:57,980 --> 00:28:02,310 Eta, egia esan, byte bat bezala bai 64-bit makina batetan. 591 00:28:02,310 --> 00:28:05,920 >> Eta datu-mota gehienak dira kopuru bera bi makina bytes. 592 00:28:05,920 --> 00:28:11,620 Baina datu-mota batzuk desberdina izango da bai makinak. 593 00:28:11,620 --> 00:28:14,590 Beraz, potentzialki izango litzateke Jakin behar duzun gauza bakarra. 594 00:28:14,590 --> 00:28:16,710 >> Hala ere, hori, uste dut, mugetatik kanpo dago - 595 00:28:16,710 --> 00:28:20,990 Ia positiboa naiz, atzera begiratuz gero galdetegiak zaharra at, dio, bere gain hartzen 596 00:28:20,990 --> 00:28:24,090 arazoak erabiltzen ari zaren kodifikazioa 32-bit makina bat. 597 00:28:24,090 --> 00:28:26,620 598 00:28:26,620 --> 00:28:30,620 Baina badira, batera joan zela eta hona Kasu interesa Oraindik ere, badira 599 00:28:30,620 --> 00:28:35,920 Datu mota berdinak dira tamaina makinak guztietan. 600 00:28:35,920 --> 00:28:42,670 >> Duzu antzeko zerbait ikusi dut bada uint32_t, edo may you may 601 00:28:42,670 --> 00:28:43,260 ez ikusi ahal izan duten. 602 00:28:43,260 --> 00:28:44,290 Duten datu-mota bat da. 603 00:28:44,290 --> 00:28:47,570 Duten, esaten be 32 bit axola zaio hau zer da makina da. 604 00:28:47,570 --> 00:28:50,350 Beraz, jendea eramangarri idazten kodea, dute ziurrenik ez ints erabili. 605 00:28:50,350 --> 00:28:53,260 Ordez erabili beharko dute beste datu hauek dakite duten mota bera izango da 606 00:28:53,260 --> 00:28:54,780 tamaina makina bakoitzean bakarra da. 607 00:28:54,780 --> 00:28:58,080 608 00:28:58,080 --> 00:28:58,250 Madhu. 609 00:28:58,250 --> 00:29:00,150 >> Madhu: inguruko galdera bat izan nuen konpilazio prozesuak. 610 00:29:00,150 --> 00:29:04,110 Beraz, zuk erabiltzen duen programa bat idazten ari bada CS50 edo antzeko zerbait liburutegi bat 611 00:29:04,110 --> 00:29:06,840 duten bezala, badakit duten Liburutegian ditu, eta, uneren batean, izan 612 00:29:06,840 --> 00:29:08,590 bildu eta lotuta sartu 613 00:29:08,590 --> 00:29:13,380 Baina zenbat dira A gertatuta Zure programa batzeko? 614 00:29:13,380 --> 00:29:15,880 Zer liburutegi prozesu horren zati gertatzen denean Oraindik 615 00:29:15,880 --> 00:29:18,560 zure programa propioa konpilatzean? 616 00:29:18,560 --> 00:29:24,020 >> JASON Hirschhorn: Beraz, goazen baino gehiago oro har, prozesu honen urratsak. 617 00:29:24,020 --> 00:29:26,280 Zure. C fitxategia idatzi duzu. 618 00:29:26,280 --> 00:29:33,530 Zure. C fitxategian, besteak beste, zuk # ​​zure goiburua liburutegiek, adibidez, cs50.h. 619 00:29:33,530 --> 00:29:39,480 Zer esan nahi du, besteak zorrotz lerroa zure programa egin? 620 00:29:39,480 --> 00:29:40,525 Akchar. 621 00:29:40,525 --> 00:29:43,350 >> AKCHAR: prototipoak gehitzen da goiburuarekin egindako funtzioak 622 00:29:43,350 --> 00:29:45,120 liburutegietan fitxategiak. 623 00:29:45,120 --> 00:29:45,600 >> JASON Hirschhorn: Zehazki. 624 00:29:45,600 --> 00:29:49,870 Funtzioa prototipoak horiek gehitzen Zure kodea da. 625 00:29:49,870 --> 00:29:55,230 Beraz, zure kodea konpilatu ari da Hastapenak, konpiladore daki 626 00:29:55,230 --> 00:29:59,250 funtzio horiek benetan existitzen, eta nonbait definitu dute. 627 00:29:59,250 --> 00:30:02,460 . H fitxategiak ez dituzte barnean hartzen du funtzio hauen definizioak edo nola 628 00:30:02,460 --> 00:30:03,950 benetan lan egiten dute. 629 00:30:03,950 --> 00:30:07,960 Cs50.h zerbait esaten duen barne hartzen GetString benetako gauza bat dela 630 00:30:07,960 --> 00:30:09,270 gerta daiteke. 631 00:30:09,270 --> 00:30:14,240 Eta standardio.h dio printf da Gauza erreal bat gerta litekeen. 632 00:30:14,240 --> 00:30:23,190 >> Beraz, zure c honekin hizkuntza. Goiburua fitxategia lortzen batzuk bihurtu 633 00:30:23,190 --> 00:30:27,750 makinak irakurgai kodea; azkenean lortzen bitar bihurtu 634 00:30:27,750 --> 00:30:30,030 kodea, 0 eta 1. 635 00:30:30,030 --> 00:30:33,590 Eta hori kodearen da, azken finean, lortzen exekutatu. 636 00:30:33,590 --> 00:30:38,550 -L cs50 line - adibidez, denean Clang idazten ari zaren - 637 00:30:38,550 --> 00:30:41,830 eta ondoren, besteak beste,-l duzu cs50, duten idaztean sartu 638 00:30:41,830 --> 00:30:42,180 Eta hori ikusten duzu. 639 00:30:42,180 --> 00:30:43,890 Noiz egin idazten duzun, duzu ikusi lerroa sortu hemen. 640 00:30:43,890 --> 00:30:47,740 Eta hori, ikusiko dugu bigarren bat denean kode dugu edo ondorengo dugunean kodea da. 641 00:30:47,740 --> 00:30:50,390 >> Baina hori-l cs50 lerroko zerbait egiten baino pixka bat desberdina 642 00:30:50,390 --> 00:30:52,440 # besteak beste cs50.h. 643 00:30:52,440 --> 00:30:56,300 Zer egiten du hori l cs50 line? 644 00:30:56,300 --> 00:30:56,820 Avi? 645 00:30:56,820 --> 00:31:00,310 >> AVI: hura lotzen duen esan nahi dut funtzioa liburutegian 646 00:31:00,310 --> 00:31:02,710 deitu du. o fitxategiak bezala. 647 00:31:02,710 --> 00:31:08,200 >> JASON Hirschhorn: Beraz, oso itxi, ez bada gelditzea-on. 648 00:31:08,200 --> 00:31:16,220 -L cs50 fitxategi bitar hartu eta konbinatzen ditu zure fitxategi bitarra. 649 00:31:16,220 --> 00:31:21,410 Beraz cs50.h, ez da inflexio puntua ez C hizkuntzatik cs50.h behin bitarra egiteko 650 00:31:21,410 --> 00:31:23,130 denbora bakar erabiltzen ari da. 651 00:31:23,130 --> 00:31:26,650 Silly izango litzateke, hori delako denbora asko alferrik litzateke. 652 00:31:26,650 --> 00:31:30,420 Beraz, dagoeneko konpilatu da sido eta exekutagarria bihurtu zen. 653 00:31:30,420 --> 00:31:35,430 Eta orain da batu egingo Zure amaieran agiriarekin. 654 00:31:35,430 --> 00:31:38,370 Beraz, horiek 1 eta 0 dira joan Zure direnak batu 655 00:31:38,370 --> 00:31:39,150 eta 0-ren amaieran. 656 00:31:39,150 --> 00:31:43,670 Beraz, gaur egun, benetan izango duzu benetako 1 eta 0 nola GetString definitzen duten, 657 00:31:43,670 --> 00:31:47,890 adibidez, lan egiten du, edo nola printf, adibidez, lan egiten du. 658 00:31:47,890 --> 00:31:52,750 >> Eta informazio gehiagorako, ez da bat duten Nate ematen Konpilatzaileak laburrak 659 00:31:52,750 --> 00:31:55,410 check out behar duzu doan urrats hauek bidez. 660 00:31:55,410 --> 00:31:56,050 Baina - 661 00:31:56,050 --> 00:31:56,560 bai. 662 00:31:56,560 --> 00:32:01,700 >> STUDENT: al dira beti in o fitxategiak. Oraindik liburutegi formularioa dute, 663 00:32:01,700 --> 00:32:06,764 lotuta batu prest, - bezala Oraindik dute bitar kodean? 664 00:32:06,764 --> 00:32:07,600 >> JASON Hirschhorn: Ados. 665 00:32:07,600 --> 00:32:08,420 Zer - 666 00:32:08,420 --> 00:32:11,780 >> STUDENT: Dela beti kasua liburutegiak denean horiek lotzen duzu? 667 00:32:11,780 --> 00:32:12,500 >> JASON Hirschhorn: Bai. 668 00:32:12,500 --> 00:32:17,300 Beraz, ez da. S fitxategiak, zein izango da makina kodea; ere izango dira 669 00:32:17,300 --> 00:32:17,975 Zuri bat zailago. 670 00:32:17,975 --> 00:32:19,410 Zuk ez duzu nahi dutenek kezkatu. 671 00:32:19,410 --> 00:32:24,930 Baina, oro har, bai, egingo dute izango dira. o prest joan fitxategiak. 672 00:32:24,930 --> 00:32:27,170 >> STUDENT: Beraz, noiz ontziratu duzu liburutegi bat, ez bakarrik ontziratu duzu 673 00:32:27,170 --> 00:32:28,880 ditu. h eta. o? 674 00:32:28,880 --> 00:32:32,210 Ez duzu ere. C edo. Z ontziratu. 675 00:32:32,210 --> 00:32:33,070 >> JASON Hirschhorn: So - 676 00:32:33,070 --> 00:32:36,260 eta hau labur honetan dago baita, bada Informazio hau dela dirudi, bat datozen 677 00:32:36,260 --> 00:32:36,700 Apur azkar. 678 00:32:36,700 --> 00:32:39,870 Baina Konpilatzaileak laburrak honi buruz hitz egiten baita. 679 00:32:39,870 --> 00:32:43,290 Denean liburutegi bat zenezakete, ontziratu baduzu ditu. h, goiburu-fitxategia, horiek 680 00:32:43,290 --> 00:32:46,290 funtzioa prototipoak, eta 1-en eta 0-ren, hori da eman behar duzun guztia. 681 00:32:46,290 --> 00:32:50,640 Zuk ez duzu eman nola funtzioa egiten du lan,. C fitxategia. 682 00:32:50,640 --> 00:32:56,360 Delako abstrakzioa puntua, edo APIak seinalatu, SPL honetan puntua, 683 00:32:56,360 --> 00:32:59,650 Stanford liburutegia eramangarri, hura da zuretzat ez kezkatu nola berria 684 00:32:59,650 --> 00:33:04,220 GRect lan egiten du, edo nola mugitzeko lanak, edo nola gehitu lanak. 685 00:33:04,220 --> 00:33:06,520 Guztiak jakin behar duzun da Gehigarrien duten funtzio hori ahal duzun da 686 00:33:06,520 --> 00:33:08,880 erabili, eta hau ez da. 687 00:33:08,880 --> 00:33:12,760 Beraz, benetan behar ez daki nola Da C. You idatzitako besterik behar 688 00:33:12,760 --> 00:33:15,460 Badakizu, hemen funtzioak, zer egin, eta hona hemen 1 eta 0 689 00:33:15,460 --> 00:33:18,870 denean benetan horiek erabili nahi duzun. 690 00:33:18,870 --> 00:33:19,530 >> Cool. 691 00:33:19,530 --> 00:33:26,980 Konpiladoreak galdera gehiago edo taula gainean bestelako gaiak? 692 00:33:26,980 --> 00:33:30,300 >> STUDENT: galdera bat daukat funtzio errekurtsiboa ezartzeko. 693 00:33:30,300 --> 00:33:31,170 Errekurtsibitate buruzko galdera bat. 694 00:33:31,170 --> 00:33:33,030 Etorriko litzateke sentsazioa izan nuen. 695 00:33:33,030 --> 00:33:38,310 Hargatik azkar bidez joan jakin batekin errekurtsibitate 696 00:33:38,310 --> 00:33:40,690 Adibidez, funtzioa faktore bat. 697 00:33:40,690 --> 00:33:44,920 Honen adibide bat da delako askotan sortu dator edo erabiltzen da 698 00:33:44,920 --> 00:33:46,170 errekurtsibitate ilustratzeko. 699 00:33:46,170 --> 00:33:52,390 700 00:33:52,390 --> 00:33:56,410 >> Beraz, "4!" 4 faktore bezala irakurri. 701 00:33:56,410 --> 00:33:59,120 Eta zer esan nahi du 4 faktore? 702 00:33:59,120 --> 00:34:00,696 Zer ari da hori egiten? 703 00:34:00,696 --> 00:34:02,235 Nola ez 4 faktoriala kalkulatzeko duzu? 704 00:34:02,235 --> 00:34:05,250 705 00:34:05,250 --> 00:34:07,960 4 aldiz 3 aldiz 2 aldiz 1. 706 00:34:07,960 --> 00:34:11,889 >> Beraz, beste 4 faktore idazteko modu da hau idazteko. 707 00:34:11,889 --> 00:34:16,780 708 00:34:16,780 --> 00:34:19,022 4 aldiz 3 faktore. 709 00:34:19,022 --> 00:34:22,080 3 faktore delako 3 aldiz 2 aldiz 1. 710 00:34:22,080 --> 00:34:27,580 Beraz, 4 aldiz 3 faktorial 4 da aldiz 3 aldiz 2 aldiz 1. 711 00:34:27,580 --> 00:34:32,679 Horregatik faktoriala da handia errekurtsibitate hautagai, delako 712 00:34:32,679 --> 00:34:36,630 han argi duten zerbait da gertatzen eta gehiagoko eta gehiagoko batean 713 00:34:36,630 --> 00:34:39,820 arte gauza kopuru txikiagoak amaierara iritsi. 714 00:34:39,820 --> 00:34:42,570 Noiz iritsiko gara 1, 1 faktore 1 da. 715 00:34:42,570 --> 00:34:43,719 Ezin duzu askoz urrunago joan. 716 00:34:43,719 --> 00:34:47,219 0 faktore ere 1 bezala definitzen da. 717 00:34:47,219 --> 00:34:50,679 Beraz, noiz lortuko 1 edo 0, zu amaieran, eta ahal duzun 718 00:34:50,679 --> 00:34:53,219 hasteko atzera gora. 719 00:34:53,219 --> 00:34:59,540 Recursive bat idatzi nahi, beraz, badugu funtzioa faktore bat kalkulatu ahal izateko, 720 00:34:59,540 --> 00:35:02,170 batzuk idatzi goaz hori orain pseudocode. 721 00:35:02,170 --> 00:35:03,300 Pseudocode hori idatzi aurretik dugu - 722 00:35:03,300 --> 00:35:05,660 Emango dizut mutil minutu pare bat sasi-kodea idazteko edo, besterik gabe, uste 723 00:35:05,660 --> 00:35:09,600 Horri buruz - Bi gauza guztietan daude Funtzio errekurtsiboak behar. 724 00:35:09,600 --> 00:35:12,530 Zer dira bi gauza horiek? 725 00:35:12,530 --> 00:35:13,220 >> JACK: berez deitu ditu. 726 00:35:13,220 --> 00:35:13,680 >> JASON Hirschhorn: Noah? 727 00:35:13,680 --> 00:35:14,460 Oh, Jack. 728 00:35:14,460 --> 00:35:15,100 Anima zaitez. 729 00:35:15,100 --> 00:35:16,640 >> JACK: berez deitu ditu. 730 00:35:16,640 --> 00:35:19,220 >> JASON Hirschhorn: Beraz errekurtsiboa funtzioa dei errekurtsiboa bat behar du, bat 731 00:35:19,220 --> 00:35:20,220 berak deitu. 732 00:35:20,220 --> 00:35:20,770 Hori da bat. 733 00:35:20,770 --> 00:35:21,510 Eta zer beste gauzarik? 734 00:35:21,510 --> 00:35:22,250 >> JACK: base kasu bat. 735 00:35:22,250 --> 00:35:23,780 >> JASON Hirschhorn: base kasu bat. 736 00:35:23,780 --> 00:35:26,940 Base kasu bat da, hemen denean geldituko gara. 737 00:35:26,940 --> 00:35:29,510 Beraz, zure funtzioa lortzen izeneko. 738 00:35:29,510 --> 00:35:31,410 Base kasuan lehen dator. 739 00:35:31,410 --> 00:35:33,710 Oraindik amaieran bada jakin nahi duzu. 740 00:35:33,710 --> 00:35:37,110 Eta ez bazaude amaieran, zuk zure dei errekurtsiboa egin. 741 00:35:37,110 --> 00:35:39,880 Eta funtzio honen bidez berriro joan beharko duzu, begiratu berriro zure oinarria kasuan. 742 00:35:39,880 --> 00:35:42,575 Oraindik amaieran ez bada, egiten dituzun beste dei errekurtsiboa, 743 00:35:42,575 --> 00:35:44,130 et cetera, et cetera. 744 00:35:44,130 --> 00:35:47,110 >> Horregatik funtzio errekurtsiboa beti oinarri horiek kasu eta horiek behar 745 00:35:47,110 --> 00:35:48,210 dei errekurtsiboak. 746 00:35:48,210 --> 00:35:51,280 Ez baduzu, dei errekurtsiboa bat izan, hura ez litzateke funtzio errekurtsiboa izango. 747 00:35:51,280 --> 00:35:53,210 Ez baduzu dute oinarri kasu bat, betiko joan nahi duzun eta 748 00:35:53,210 --> 00:35:54,780 han amaiera ez litzateke. 749 00:35:54,780 --> 00:35:57,870 Eta base kasuan beti dator lehen, Beti izango duzu begiratu nahi duelako 750 00:35:57,870 --> 00:36:00,420 Lehenengo bazaude amaieran. 751 00:36:00,420 --> 00:36:04,770 Pseudocode batzuk egiten dugu, beraz, aurretik, zergatik ez minutu bat eman beharko duzu pentsatu 752 00:36:04,770 --> 00:36:09,360 nola recursive funtzioa faktore bat idatzi behar litzateke? 753 00:36:09,360 --> 00:36:23,340 754 00:36:23,340 --> 00:36:26,010 >> Halaber, asko egiten ari zaren bezala, idatziz it out paper orri baten gainean dago 755 00:36:26,010 --> 00:36:27,960 zer ari zaren behar joan galdetegiaren egin bihar. 756 00:36:27,960 --> 00:36:32,160 Praktikan, beraz, seguruenik ona egiteko ziur kodearen idazten ari zaren 757 00:36:32,160 --> 00:36:34,420 paper on behera - 758 00:36:34,420 --> 00:36:35,160 edo hori egin ahal izango duzu. 759 00:36:35,160 --> 00:36:36,710 Badakizu non puntu dira. 760 00:36:36,710 --> 00:36:37,660 Sintaxia gogoratzen duzu. 761 00:36:37,660 --> 00:36:40,400 Zu ez egon behar gai delako bat konpiladore esango akatsik egon zaren. 762 00:36:40,400 --> 00:37:02,356 763 00:37:02,356 --> 00:37:07,240 >> Ere, lerro horiek, bihar, batera denean arazoak kodifikazioa zuk, zuk 764 00:37:07,240 --> 00:37:11,490 daude aldiz oldartu, edo Oraindik oso balitz nola zauden ustezko gisa nahastu 765 00:37:11,490 --> 00:37:16,030 gauza zehatz idaztea c, hara sasi-kodea idazten duzun zilegi litzateke 766 00:37:16,030 --> 00:37:18,160 edo iruzkinak idazteko baita. 767 00:37:18,160 --> 00:37:21,940 Han bat kreditu partziala delako galdetegiaren galdera asko. 768 00:37:21,940 --> 00:37:24,840 Beraz duzu rushed liteke, edo zuk agian besterik nahastu behar. 769 00:37:24,840 --> 00:37:28,030 Iruzkinak edo sasi-kodea idazten modu askotan zarela 770 00:37:28,030 --> 00:37:29,360 kreditu partziala lor daiteke. 771 00:37:29,360 --> 00:37:31,440 >> Beraz, ez zerbait utzi hutsik quiz da. 772 00:37:31,440 --> 00:37:33,490 Ez dago zigorrak gauzak jarriz sartu 773 00:37:33,490 --> 00:37:37,650 Izan ere, sasi-kodean edota jarriz iruzkinak da kalifikatzailearen laguntzeko joan 774 00:37:37,650 --> 00:37:40,410 irudikatu benetan badakizu zer saria aipatzen dituzu, eta agian 775 00:37:40,410 --> 00:37:42,030 duzu horretarako kreditu partzial batzuk. 776 00:37:42,030 --> 00:37:44,510 >> Lerro horiek ere batera, idatzi argi eta garbi. 777 00:37:44,510 --> 00:37:47,650 Ezin dugu benetan zer, idazten ari bazara Ez ari gara zuri deitzeko joan 778 00:37:47,650 --> 00:37:49,900 gauerditik bihar figura at zer idatzi duzu. 779 00:37:49,900 --> 00:37:51,520 Besterik ez gara off hartzeko puntuak egingo. 780 00:37:51,520 --> 00:37:56,570 Idazteko, argi eta garbi, beraz, entzun ahal izango dugu, edo, hobeto esanda, irakurri ahal izango dugu zer idatzi duzu. 781 00:37:56,570 --> 00:38:00,230 >> Eta bi esaldi dio bada, ez paragrafo bat idazteko. 782 00:38:00,230 --> 00:38:02,280 Jarraitu argibideak. 783 00:38:02,280 --> 00:38:03,500 Idazteko, argi eta garbi. 784 00:38:03,500 --> 00:38:07,720 Eta iruzkinak horietan idatzi edo galdera pseudocode duten Could 785 00:38:07,720 --> 00:38:10,270 Sari kreditu partziala. 786 00:38:10,270 --> 00:38:12,520 >> OK, goazen faktore. 787 00:38:12,520 --> 00:38:15,000 Beraz funtzioa faktore bat dugu. 788 00:38:15,000 --> 00:38:18,400 789 00:38:18,400 --> 00:38:21,550 Benetan idatzi C banintz, zer izenaren aurretik jarri behar dut 790 00:38:21,550 --> 00:38:22,800 funtzioaren? 791 00:38:22,800 --> 00:38:24,880 792 00:38:24,880 --> 00:38:30,060 Itzulerako mota, izan ere, honetan Kasu, eman int dugu. 793 00:38:30,060 --> 00:38:35,450 Eta gero, kizkur giltza barruan, da kizkur giltza barruan zer doa 794 00:38:35,450 --> 00:38:36,850 funtzio bat? 795 00:38:36,850 --> 00:38:37,950 >> IKASLEAK: argumentu mota. 796 00:38:37,950 --> 00:38:39,150 >> JASON Hirschhorn: Bere argumentuak. 797 00:38:39,150 --> 00:38:42,680 Beraz, faktore izango da seguruenik argumentu bat hartzen. 798 00:38:42,680 --> 00:38:44,500 Da ziurrenik: argumentu bat bakarrik hartzen. 799 00:38:44,500 --> 00:38:49,450 Eta esaten dugu hartuko da x izeneko zenbaki oso bat. 800 00:38:49,450 --> 00:38:52,770 Eta berriro ere, prototipoa idazterakoan funtzio bat edo funtzioa idatziz 801 00:38:52,770 --> 00:38:57,110 Zure kodea da definitzeko, aurretik dauden datu-mota eta izena idatzi 802 00:38:57,110 --> 00:39:01,370 funtzio hori baino ez dugu aldagai hori. 803 00:39:01,370 --> 00:39:06,350 Beraz, zenbaki batzuk pasatzeko dezakezu hau sartu funtzioa, hura egingo aipatzen x gisa 804 00:39:06,350 --> 00:39:07,340 barrutik. 805 00:39:07,340 --> 00:39:08,755 >> Gure funtzioa faktore dugu. 806 00:39:08,755 --> 00:39:12,030 807 00:39:12,030 --> 00:39:15,850 Bi gauza, oinarri kasu bat behar dugu eta dei errekurtsiboa bat. 808 00:39:15,850 --> 00:39:20,900 Zein da faktore oinarri kasuan? 809 00:39:20,900 --> 00:39:24,850 Norbait idatzi ezazu eta nork ez ditu Oraindik hitz egiten, zer oinarria da 810 00:39:24,850 --> 00:39:26,100 faktorial kasua? 811 00:39:26,100 --> 00:39:28,400 812 00:39:28,400 --> 00:39:30,930 >> STUDENT: n da gutxiago bada 2 baino, itzuliko 1. 813 00:39:30,930 --> 00:39:33,520 >> JASON Hirschhorn: n badago 2 baino gutxiago, itzuliko 1. 814 00:39:33,520 --> 00:39:37,216 Zait gustatzen, zeren horrek bere gain hartuko ditu, 0 eta 1. 815 00:39:37,216 --> 00:39:45,290 Beraz, egin dugu x <2, itzuliko 1. 816 00:39:45,290 --> 00:39:47,870 Dugu pasatu bada get 0, lortuko badugu gainditu 1, funtzio hau izango 817 00:39:47,870 --> 00:39:49,790 berehala itzuliko 1. 818 00:39:49,790 --> 00:39:54,020 Kopuru handiagoa batzuk pasa dugu gero edo baino 2 berdina, goazela 819 00:39:54,020 --> 00:39:55,370 Gure dei errekurtsiboa izan. 820 00:39:55,370 --> 00:39:57,855 >> Eta beraz, nola duten lanera joan da? 821 00:39:57,855 --> 00:40:01,070 Can norbaitek nor honetan lan egin nork ez du oraindik hitz egiten ematen dit 822 00:40:01,070 --> 00:40:07,380 dei errekurtsiboa funtzio horretarako pseudocode? 823 00:40:07,380 --> 00:40:10,770 Kopurua x batean ezagutu genuen gainditu bada eta 2 baino handiagoa da, zer 824 00:40:10,770 --> 00:40:13,370 egin nahi dugu? 825 00:40:13,370 --> 00:40:17,930 Guk ere izan Adibide on idatzizko duzula aholku bat eman dezake alboko. 826 00:40:17,930 --> 00:40:20,770 >> STUDENT: Dei x aldiz faktorial x ken 1 of? 827 00:40:20,770 --> 00:40:22,020 >> JASON Hirschhorn: Zehazki eskubidea. 828 00:40:22,020 --> 00:40:24,610 829 00:40:24,610 --> 00:40:37,750 X aldiz itzuli goaz x ken 1 faktoriala. 830 00:40:37,750 --> 00:40:41,810 Eta, hori idatzi nuen, nahiz eta, Funtsean, zer ingelesez esan dizu, 831 00:40:41,810 --> 00:40:44,580 funtzioa faktore hau berriro deitu egingo dira. 832 00:40:44,580 --> 00:40:46,320 Egingo x ken 1 abiaraziko da. 833 00:40:46,320 --> 00:40:49,320 Osoko zenbaki batzuk itzultzeko aukera izango da, eta gero biderkatu egingo bi hauek 834 00:40:49,320 --> 00:40:52,050 elkarrekin, eta balio hori izango da edozein dela ere, honek deitzen itzuli 835 00:40:52,050 --> 00:40:55,010 funtzioa faktore, eta horrek agian instantzia bat izango 836 00:40:55,010 --> 00:40:58,420 funtzioa faktore hau. 837 00:40:58,420 --> 00:41:01,360 >> Beraz recursive baten adibidea da funtzioa, oso bat 838 00:41:01,360 --> 00:41:02,530 recursive funtzio sinpleak. 839 00:41:02,530 --> 00:41:04,530 Baina gehienak horrela izango. 840 00:41:04,530 --> 00:41:11,170 Duzu recursive on bat egin nahi baduzu galdetegia erronka, saiatu coding 841 00:41:11,170 --> 00:41:13,230 bitarra bilatu errekurtsiboki. 842 00:41:13,230 --> 00:41:18,950 Delako bilaketa bitarra egin baduzu Arazo multzo hiru, seguruenik ez duzu 843 00:41:18,950 --> 00:41:21,730 iteratively berriz, begizta batean. 844 00:41:21,730 --> 00:41:23,700 >> Baina era berean idatzi behar da errekurtsiboki. 845 00:41:23,700 --> 00:41:26,310 Zeure idatzi behar joan zaren duten batzuk hartzen aparteko funtzioa 846 00:41:26,310 --> 00:41:29,020 komando lerroko argumentuak desberdinak - edo ez komando lerroko argumentuak, zenbait 847 00:41:29,020 --> 00:41:30,910 dituen argumentuak besterik erregularra. 848 00:41:30,910 --> 00:41:33,870 Baina bilaketa bitarra idatzi izan duzu errekurtsiboki baita. 849 00:41:33,870 --> 00:41:36,190 >> STUDENT: Beraz, gainera, ezin duzu idatzi dute, ordez x ken 1, duzun 850 00:41:36,190 --> 00:41:39,502 ere idatzi zitekeen x ken ken, edo izan duzu 851 00:41:39,502 --> 00:41:40,830 idatzizko ken ken x. 852 00:41:40,830 --> 00:41:44,740 Ezin azaldu besterik benetan azkar zergatik horiek gauza desberdinak izango litzateke, 853 00:41:44,740 --> 00:41:49,510 arteko aldea zein den bezala x ken ken eta ken ken x? 854 00:41:49,510 --> 00:41:51,320 >> JASON Hirschhorn: Ez, ez naiz , horretan joango gara. 855 00:41:51,320 --> 00:41:55,500 Baina zurekin hitz egingo dut horri buruz ondoren klase. x ken ken, ken ken x 856 00:41:55,500 --> 00:41:57,780 decrement x 1 eta. 857 00:41:57,780 --> 00:41:59,090 Baina egin dute pixka bat ezberdinean. 858 00:41:59,090 --> 00:42:00,340 Baina ez dut horretan sartu nahi. 859 00:42:00,340 --> 00:42:04,330 860 00:42:04,330 --> 00:42:09,090 Errekurtsibitate buruzko beste galdera edo funtzio hori? 861 00:42:09,090 --> 00:42:10,140 Hori ez da benetan, nahiz pseudocode. 862 00:42:10,140 --> 00:42:15,060 Hori da, funtsean in kodearen C honetan zuk idazten litzateke. 863 00:42:15,060 --> 00:42:19,393 >> Ados, beste edozein galdera gaiak hemen inguruan? 864 00:42:19,393 --> 00:42:19,864 Bai. 865 00:42:19,864 --> 00:42:23,130 >> STUDENT: rundown azkar bat daukat Puntu eta doitasun flotatzen. 866 00:42:23,130 --> 00:42:24,260 >> JASON Hirschhorn: askea Puntu eta doitasun. 867 00:42:24,260 --> 00:42:26,920 Can norbait benetan azkar emaidazu rundown 868 00:42:26,920 --> 00:42:28,210 Puntu eta doitasun flotatzen? 869 00:42:28,210 --> 00:42:30,420 Horretarako zure izan duzun guztia Arazo multzo, beraz Oraindik guztiak 870 00:42:30,420 --> 00:42:31,700 hura ezagutzen. 871 00:42:31,700 --> 00:42:35,090 Edo agian duzun guztia ez. 872 00:42:35,090 --> 00:42:36,602 Edozeinek? 873 00:42:36,602 --> 00:42:39,530 Give me hasi spot bat. 874 00:42:39,530 --> 00:42:40,750 Puntu eta doitasun flotatzen. 875 00:42:40,750 --> 00:42:42,380 Zein da arazoa? 876 00:42:42,380 --> 00:42:42,960 Bai. 877 00:42:42,960 --> 00:42:43,680 Victoria? 878 00:42:43,680 --> 00:42:44,480 >> VANESSA: Vanessa. 879 00:42:44,480 --> 00:42:45,285 >> JASON Hirschhorn: Vanessa. 880 00:42:45,285 --> 00:42:45,680 Barkatu. 881 00:42:45,680 --> 00:42:51,550 >> VANESSA: Badira kopuru mugatu bat besterik ez ordezka daitekeen zenbakien 882 00:42:51,550 --> 00:42:57,930 Oraindik on bat, delako gure kasuan, 32 bit-sistema bat. 883 00:42:57,930 --> 00:43:03,080 Beraz duzu motatako behar zenbaki batzuk osatzen. 884 00:43:03,080 --> 00:43:03,910 >> JASON Hirschhorn: Beraz, zehazki eskubidea. 885 00:43:03,910 --> 00:43:08,110 Badira soilik kopuru jakin bat ordezka daitekeen zenbakiak. 886 00:43:08,110 --> 00:43:11,770 Bi zenbaki oso handiak biderkatu baduzu, zenbatekoa gainezkatzea zitekeen 887 00:43:11,770 --> 00:43:13,950 espazioak irudikatu behar duzu zenbaki oso bat. 888 00:43:13,950 --> 00:43:17,930 Horregatik, batzuetan erabiltzen dugu bat luze luze ordez int bat. 889 00:43:17,930 --> 00:43:19,210 Duten espazioak gehiago ditu. 890 00:43:19,210 --> 00:43:21,210 Duten kopuru handiago bat eduki dezakete. 891 00:43:21,210 --> 00:43:24,310 >> Puntu mugikorreko doitasun zerikusia du , duten baina baita ere hemen egin behar du 892 00:43:24,310 --> 00:43:29,300 Izan ere zenbakiak hamartar daudela ez beti irudikatzen. 893 00:43:29,300 --> 00:43:29,540 Barkatu. 894 00:43:29,540 --> 00:43:31,280 Dezagun jarri me back up hau. 895 00:43:31,280 --> 00:43:36,610 Zenbakia hamartar 1.0 ez da beti Zu bezalako irudikatzen espero, 896 00:43:36,610 --> 00:43:40,770 1,000000000. 897 00:43:40,770 --> 00:43:50,360 Da batzuetan gisa irudikatzen 1,000000001 edo 0,999999999. 898 00:43:50,360 --> 00:43:52,780 Litekeena da, nahiz eta 89 bota behar nonbait han. 899 00:43:52,780 --> 00:43:56,560 Zenbakiek hamartar horiek ez dira zehazki egiten duzun bezala irudikatzen 900 00:43:56,560 --> 00:43:58,430 espero ordezkaritza izan dezaten. 901 00:43:58,430 --> 00:44:00,010 >> Beraz, arazo girotuta - 902 00:44:00,010 --> 00:44:00,860 izan zen bi? - 903 00:44:00,860 --> 00:44:05,290 Arazo bi, non tratatzen dugu ezarri puntu mugikorreko zenbakiekin, noiz nahi izan dugu 904 00:44:05,290 --> 00:44:08,690 zehazki nahi duguna adierazteko haiek irudikatu horiek, kopuruari 905 00:44:08,690 --> 00:44:12,860 pennies, edo zentimo kopurua, horiek biderkatu dugu 100. 906 00:44:12,860 --> 00:44:14,750 Horietako biribilduko dugu. 907 00:44:14,750 --> 00:44:18,660 Eta, ondoren, moztu dugun guztia du dezimal atzean. 908 00:44:18,660 --> 00:44:22,020 Zela bermatzeko dutela litzateke benetan berdinak zehazki nahi duguna 909 00:44:22,020 --> 00:44:22,410 berdinak haiek. 910 00:44:22,410 --> 00:44:26,870 >> Zerbait hartu duzu hori delako bat flotatzen eta piztu int bat sartu, zuk 911 00:44:26,870 --> 00:44:29,860 moztu eskubidea dena du dezimal. 912 00:44:29,860 --> 00:44:33,900 Puntu mugikorreko zenbait delako imprecision, 100.000 izan liteke 913 00:44:33,900 --> 00:44:37,440 99,999999999 gisa irudikatzen. 914 00:44:37,440 --> 00:44:40,350 Eta zuk ebaki besterik off guztia bada eskuinetik berehala, zu joan behar 915 00:44:40,350 --> 00:44:41,600 okerreko zenbakia lortzeko. 916 00:44:41,600 --> 00:44:44,050 917 00:44:44,050 --> 00:44:44,180 Bai. 918 00:44:44,180 --> 00:44:45,290 >> STUDENT: dut galdera bat izan galdaketa buruz. 919 00:44:45,290 --> 00:44:47,500 Zer ordena gertatzeko in da? 920 00:44:47,500 --> 00:44:54,480 Duzun karroza egin litzaidake bada, parentesi artean, 1 banatuta 10, du ez 1 10 banatzen da, 921 00:44:54,480 --> 00:44:58,910 ondoren lortu 0,1, gero buelta mugikor bat sartu? 922 00:44:58,910 --> 00:45:01,470 >> JASON Hirschhorn: Ez baduzu flotatzen 1 10 arabera banatzen da - 923 00:45:01,470 --> 00:45:02,550 >> STUDENT: Bai, eta orduan berdin - 924 00:45:02,550 --> 00:45:04,240 Ondo, beti egin ohi da berdinetan egiten dute - 925 00:45:04,240 --> 00:45:04,690 Bai. 926 00:45:04,690 --> 00:45:06,760 Mugikor bat egin nahi duzu, ezta? 927 00:45:06,760 --> 00:45:12,790 >> JASON Hirschhorn: Ados, beraz ari gara joan erabili dela kalkulatzen sartu segue 928 00:45:12,790 --> 00:45:15,390 galdera hauen erantzunak coding bidez. 929 00:45:15,390 --> 00:45:18,180 Baliteke zuk asko izan delako minutuko galdera horiek, eta modu ona 930 00:45:18,180 --> 00:45:19,100 horiek konpontzeko coding bidez. 931 00:45:19,100 --> 00:45:21,320 Beraz, eskubide hori kode orain joan, eta orduan ari gara atzera joan eta joan 932 00:45:21,320 --> 00:45:24,020 galdera izan duzu kodea. 933 00:45:24,020 --> 00:45:24,950 >> Beraz, lehen lerroan - 934 00:45:24,950 --> 00:45:29,390 Ez behar dut idatzia da - zer da lehenengo gauza egin nahi dugunean 935 00:45:29,390 --> 00:45:32,250 ireki gedit fitxategi berri bat? 936 00:45:32,250 --> 00:45:34,190 >> STUDENT: Include. 937 00:45:34,190 --> 00:45:35,920 >> JASON Hirschhorn: Include zer? 938 00:45:35,920 --> 00:45:37,952 >> STUDENT: CS50 liburutegian. 939 00:45:37,952 --> 00:45:39,920 >> JASON Hirschhorn: Ados. 940 00:45:39,920 --> 00:45:42,590 Zer gehiago sartu behar dugu? 941 00:45:42,590 --> 00:45:46,820 Besterik ari gara zer gertatzen den ikusteko joan zerbait bota duzu mugikor bat da. 942 00:45:46,820 --> 00:45:48,605 Baina zer egiten ari bagara, besteak behar dugu C programa bat idazteko joan? 943 00:45:48,605 --> 00:45:49,300 >> STUDENT: Standard I / O. 944 00:45:49,300 --> 00:45:50,625 >> JASON Hirschhorn: stdio.h. 945 00:45:50,625 --> 00:45:54,880 Egia esan, ez dugu behar, horretarako programa, cs50.h, horri nahiz 946 00:45:54,880 --> 00:45:55,920 beti lagungarria da, besteak beste. 947 00:45:55,920 --> 00:45:58,260 Baina beti stdio.h behar dugu. 948 00:45:58,260 --> 00:45:59,660 >> STUDENT: C coding Noiz? 949 00:45:59,660 --> 00:46:15,770 >> JASON Hirschhorn: C. coding When 950 00:46:15,770 --> 00:46:17,090 >> Beraz. C fitxategi hau gorde dut. 951 00:46:17,090 --> 00:46:18,590 Batzuk polita sintaxiaren nabarmentzea lortu dut. 952 00:46:18,590 --> 00:46:22,890 Nagusiaren barruan void idatzi nuen. 953 00:46:22,890 --> 00:46:24,792 Zer esan nahi du hutsunea? 954 00:46:24,792 --> 00:46:26,740 >> STUDENT: Ez du inongo hartu komando lerroko argumentuak. 955 00:46:26,740 --> 00:46:28,900 >> JASON Hirschhorn: Void bitartez, honetan kasuan, nagusiak ez du inolako hartu 956 00:46:28,900 --> 00:46:29,700 komando lerroko argumentuak. 957 00:46:29,700 --> 00:46:32,720 Beste kasu batzuetan, funtzioa esan nahi du ez du komando-lerroko argumentuak hartu. 958 00:46:32,720 --> 00:46:36,560 Edo funtzioa, void idatzi beharko banu izateko main (void), duten nagusiaren esango lukeen 959 00:46:36,560 --> 00:46:38,460 ezer ez itzuliz. 960 00:46:38,460 --> 00:46:39,960 Beraz, hutsunea besterik ez du ezer esan nahi. 961 00:46:39,960 --> 00:46:42,510 Zer idatziko nuke ziren I nahi izanez komando lerroko argumentuak hartu? 962 00:46:42,510 --> 00:46:45,250 963 00:46:45,250 --> 00:46:47,150 >> STUDENT: int arku c katea arku v 964 00:46:47,150 --> 00:46:49,055 >> JASON Hirschhorn: int argc katea argv. 965 00:46:49,055 --> 00:46:54,050 966 00:46:54,050 --> 00:46:55,572 Eskubidea dela? 967 00:46:55,572 --> 00:46:58,720 >> STUDENT: char izar argv parentesi bat da. 968 00:46:58,720 --> 00:47:01,730 >> JASON Hirschhorn: Beraz, idatzi ahal izango duzu katea argv parentesi edo char izar argv 969 00:47:01,730 --> 00:47:03,710 parentesi artean, baina parentesi beharrezkoa da. 970 00:47:03,710 --> 00:47:06,290 Delako argv array bat da kateen, gogoratu. 971 00:47:06,290 --> 00:47:07,360 Ez da kate bakar bat. 972 00:47:07,360 --> 00:47:10,350 Beraz, katea argv da, hemen argv izeneko kate bat. 973 00:47:10,350 --> 00:47:13,630 Katea argv Parentesi da, hemen kateak array bat. 974 00:47:13,630 --> 00:47:17,865 Beraz, int argc katea argv parentesi zerbait izango litzateke duten I 975 00:47:17,865 --> 00:47:18,810 seguruenik idatziko litzateke. 976 00:47:18,810 --> 00:47:23,050 >> Beraz, zenbaki oso bat gorde nahi duzu? 977 00:47:23,050 --> 00:47:24,285 >> STUDENT: Bai, zenbaki oso. 978 00:47:24,285 --> 00:47:25,840 Edo karroza batean. 979 00:47:25,840 --> 00:47:26,710 >> JASON Hirschhorn: karroza batean? 980 00:47:26,710 --> 00:47:30,790 Bezala, x karroza berdinen 1 10 arabera banatuta. 981 00:47:30,790 --> 00:47:32,040 >> JASON Hirschhorn: Ados. 982 00:47:32,040 --> 00:47:40,160 983 00:47:40,160 --> 00:47:42,240 Nola ez mugikor bat atera dut inprimatu printf in? 984 00:47:42,240 --> 00:47:45,100 985 00:47:45,100 --> 00:47:46,714 Zer? 986 00:47:46,714 --> 00:47:47,560 >> STUDENT:% f. 987 00:47:47,560 --> 00:47:48,300 >> JASON Hirschhorn:% f. 988 00:47:48,300 --> 00:47:50,810 Zer da zenbaki oso bat? 989 00:47:50,810 --> 00:47:52,110 d o i. 990 00:47:52,110 --> 00:47:53,000 Zer da kate bat? 991 00:47:53,000 --> 00:47:54,240 >> STUDENT: s. 992 00:47:54,240 --> 00:47:56,140 >> JASON Hirschhorn: s. 993 00:47:56,140 --> 00:47:57,550 Nola ez, lerro berri bat lortu dut? 994 00:47:57,550 --> 00:47:58,800 >> STUDENT: Alderantzizko barra n. 995 00:47:58,800 --> 00:48:04,610 996 00:48:04,610 --> 00:48:07,100 >> JASON Hirschhorn: Zer egin behar dut itzultzeko eskailerak nagusia behar bezala bada? 997 00:48:07,100 --> 00:48:08,360 >> STUDENT: 0. 998 00:48:08,360 --> 00:48:09,430 Ez lerro hori idazten, nahiz eta behar dut? 999 00:48:09,430 --> 00:48:10,170 >> STUDENT: N º 1000 00:48:10,170 --> 00:48:11,513 Ados, ez dugu idazten, eta gero. 1001 00:48:11,513 --> 00:48:16,450 1002 00:48:16,450 --> 00:48:17,190 Daiteke denek irakurri? 1003 00:48:17,190 --> 00:48:18,485 Apur bat txiki ikusten da. 1004 00:48:18,485 --> 00:48:20,160 Daiteke mundu guztiak ikusteko, edo egin beharko lukete Handiago egiteko I? 1005 00:48:20,160 --> 00:48:23,480 1006 00:48:23,480 --> 00:48:25,100 Uste dut kamera, egin dugu pixka bat handiagoa da, baina. 1007 00:48:25,100 --> 00:48:35,750 1008 00:48:35,750 --> 00:48:38,410 >> JASON Hirschhorn: honi buelta eman nahi badut . C exekutagarria sartu fitxategia, zer 1009 00:48:38,410 --> 00:48:39,260 ez idazten dut? 1010 00:48:39,260 --> 00:48:41,610 >> STUDENT: Egin proba. 1011 00:48:41,610 --> 00:48:42,080 >> JASON Hirschhorn: Barkatu? 1012 00:48:42,080 --> 00:48:42,790 >> STUDENT: Egin proba. 1013 00:48:42,790 --> 00:48:44,040 >> JASON Hirschhorn: Egin proba. 1014 00:48:44,040 --> 00:48:46,700 1015 00:48:46,700 --> 00:48:48,410 Buruz hitz egiten ari ginen lerro hau lehenago. 1016 00:48:48,410 --> 00:48:49,140 Clang. 1017 00:48:49,140 --> 00:48:51,270 Zer da clang? 1018 00:48:51,270 --> 00:48:52,200 Konpiladore baten izena. 1019 00:48:52,200 --> 00:48:53,920 Zer da lerro hau? 1020 00:48:53,920 --> 00:48:55,580 >> STUDENT: ezartzen du gora GDB erabiltzeko. 1021 00:48:55,580 --> 00:48:59,230 >> JASON Hirschhorn: Sets GDB erabiltzeko sortu da. 1022 00:48:59,230 --> 00:49:02,338 Lerro hau, zer da hori? 1023 00:49:02,338 --> 00:49:03,290 >> STUDENT: Iturburu kodea. 1024 00:49:03,290 --> 00:49:06,010 >> JASON Hirschhorn: Hori da iturburu fitxategia,. C fitxategia. 1025 00:49:06,010 --> 00:49:08,150 Zer egin bi lerro hauek? 1026 00:49:08,150 --> 00:49:10,245 Edo bi ez lerro hauek. 1027 00:49:10,245 --> 00:49:12,300 >> STUDENT: izen da probatzeko. 1028 00:49:12,300 --> 00:49:15,410 >> JASON Hirschhorn: Beraz etenaren o dio, izendatzeko zerbait ezberdina izan. 1029 00:49:15,410 --> 00:49:16,790 Eta hemen da proba deitzen ari zaren. 1030 00:49:16,790 --> 00:49:18,900 Ez dut ez bada dute horretan, zer hau izendatzeko litzateke? 1031 00:49:18,900 --> 00:49:20,260 >> STUDENT: A.out. 1032 00:49:20,260 --> 00:49:22,340 >> JASON Hirschhorn: A.out. 1033 00:49:22,340 --> 00:49:25,366 Zer egin? 1034 00:49:25,366 --> 00:49:27,670 >> STUDENT: Loturak matematika liburutegian. 1035 00:49:27,670 --> 00:49:29,550 >> JASON Hirschhorn: It lotzen matematika liburutegian. 1036 00:49:29,550 --> 00:49:32,880 Ez genuen besteak beste, matematika liburutegian, baina hori da hain ohikoa geroztik, dut dute 1037 00:49:32,880 --> 00:49:35,780 idatzizko marka beti sartzea matematika liburutegian. 1038 00:49:35,780 --> 00:49:39,050 Eta, orobat, horretan sartzen dira CS50 liburutegian. 1039 00:49:39,050 --> 00:49:43,010 >> Ados, beraz, dugu zerrendatu bada, orain dugu test izeneko exekutagarria. 1040 00:49:43,010 --> 00:49:45,150 Hura exekutatzeko, proba idazten dut. 1041 00:49:45,150 --> 00:49:48,330 Nire puntu mugikorreko dela ikusten dut, espero bezala, funtzioak 0 itzultzen du. 1042 00:49:48,330 --> 00:49:50,890 1043 00:49:50,890 --> 00:49:51,590 Horrek - 1044 00:49:51,590 --> 00:49:52,060 beraz - 1045 00:49:52,060 --> 00:49:55,210 >> STUDENT: Ondoren jarri baduzu flotatzen, orain, bezala karroza bota duzu - 1046 00:49:55,210 --> 00:49:56,870 >> JASON Hirschhorn: Cast 1 mugikor bat hemen? 1047 00:49:56,870 --> 00:49:59,180 >> STUDENT: Ez, bota du gauza osoa - 1048 00:49:59,180 --> 00:49:59,500 bai. 1049 00:49:59,500 --> 00:50:02,460 Zenuen besterik ez bada ere, ez litzateke horregatik da 0.1? 1050 00:50:02,460 --> 00:50:07,170 >> JASON Hirschhorn: Ados, beraz, oso azkar, 1 10 arabera banatzen da, horiek dira 1051 00:50:07,170 --> 00:50:08,690 ari banatuta osokoak. 1052 00:50:08,690 --> 00:50:13,580 Beraz, osoko zenbakiak zatitzea duzu, Oraindik dute 0, eta aurrezten ari zaren 0 batean 1053 00:50:13,580 --> 00:50:17,170 flotatzen, barra delako besterik zatiketa osoa. 1054 00:50:17,170 --> 00:50:19,180 Beraz, gaur egun zerbait inflexio ari gara karroza batean. 1055 00:50:19,180 --> 00:50:21,650 >> Ikusi dezagun zer gertatzen den. 1056 00:50:21,650 --> 00:50:22,900 Proba egin dugu. 1057 00:50:22,900 --> 00:50:25,870 1058 00:50:25,870 --> 00:50:31,090 Beraz, gaur egun ikusten dugun barra hori ez zen Zatiketa, flotatzen zuten 1059 00:50:31,090 --> 00:50:32,640 Puntu banaketa. 1060 00:50:32,640 --> 00:50:35,700 Delako bere argumentuak bat izan dira mugikor bat bota. 1061 00:50:35,700 --> 00:50:38,380 Beraz, gaur egun, esaten zen hau tratatzeko zatiketa bezala aurre ari gara 1062 00:50:38,380 --> 00:50:40,140 puntu mugikorreko, ez osokoak ere. 1063 00:50:40,140 --> 00:50:42,760 Eta beraz, erantzuna espero dugu lortuko dugu. 1064 00:50:42,760 --> 00:50:44,620 >> Ikusi dezagun zer gertatzen den - 1065 00:50:44,620 --> 00:50:47,103 trabatzen. 1066 00:50:47,103 --> 00:50:51,646 Gehiago hamartar inprimatu nahiko banu lekuak, nola izan behar dut? 1067 00:50:51,646 --> 00:50:55,550 >> STUDENT: Point dot f, edo asko bezala hamarrenekin nahi duzun bezala. 1068 00:50:55,550 --> 00:51:02,280 1069 00:51:02,280 --> 00:51:04,440 >> JASON Hirschhorn: So I inprimatu 10 lekuak hamartar. 1070 00:51:04,440 --> 00:51:06,610 Eta orain ikusten dugun ari gara stuff bitxi batzuk. 1071 00:51:06,610 --> 00:51:09,650 Eta hori zure galderaren atzera egingo buruzko puntu mugikorreko imprecision. 1072 00:51:09,650 --> 00:51:10,950 Han hemen gordetzen dira gauza arraroa da. 1073 00:51:10,950 --> 00:51:13,650 1074 00:51:13,650 --> 00:51:15,275 >> Ados, zure galderari erantzun du? 1075 00:51:15,275 --> 00:51:18,550 1076 00:51:18,550 --> 00:51:20,200 Zer gehiago nahi zenuten azkar kode? 1077 00:51:20,200 --> 00:51:25,470 >> STUDENT: nahi dut ala ikusten ez, gora libratuko duzu erakuslea batzuk izanez gero, 1078 00:51:25,470 --> 00:51:30,410 erakuslea duten oraindik ere izan gordetako ala zer izan da helbidearen 1079 00:51:30,410 --> 00:51:32,170 Aurretik seinalatuz. 1080 00:51:32,170 --> 00:51:34,100 >> JASON Hirschhorn: Ados, beraz, utzi egin dela. 1081 00:51:34,100 --> 00:51:38,030 Char izar ptr, hau aldagai bat sortzen mota char star ptr deritzo. 1082 00:51:38,030 --> 00:51:39,280 Nola ez idazten dut malloc? 1083 00:51:39,280 --> 00:51:40,550 Alden? 1084 00:51:40,550 --> 00:51:41,800 >> ALDEN: Just malloc. 1085 00:51:41,800 --> 00:51:44,820 1086 00:51:44,820 --> 00:51:51,040 Baina gero tamaina izan behar du, eta Kasu honetan, uste dut zuk litzaidake 1087 00:51:51,040 --> 00:51:52,465 egon seinalatuz char. 1088 00:51:52,465 --> 00:51:54,450 Beraz char litzaidake. 1089 00:51:54,450 --> 00:51:57,520 >> JASON Hirschhorn: Ados, beraz, gehiago generikoki, Inside - 1090 00:51:57,520 --> 00:51:58,770 dezagun editatzeko. 1091 00:51:58,770 --> 00:52:05,100 1092 00:52:05,100 --> 00:52:09,260 Malloc barruan, kopurua nahi duzun zeure on bytes. 1093 00:52:09,260 --> 00:52:12,320 Oro har, zer ikusi dugu gaudela egiten da malloc goaz 1094 00:52:12,320 --> 00:52:14,940 kateak, adibidez, edo zenbaki osoen array. 1095 00:52:14,940 --> 00:52:21,600 Beraz, 10 zenbaki osoko, edo 10 nahi badugu karakteretan, 10 emango digu 10. 1096 00:52:21,600 --> 00:52:24,370 Eta gero chars tamaina luke gurekin chars tamaina duen, eta bertan, 1097 00:52:24,370 --> 00:52:25,120 Kasu honetan 1 byte da. 1098 00:52:25,120 --> 00:52:26,250 10 byte lortuko dugu. 1099 00:52:26,250 --> 00:52:28,540 Int tamaina idatzi egin behar izanez gero, hori ezagutzera emango litzateke 40 byte. 1100 00:52:28,540 --> 00:52:31,520 >> Beraz oro, malloc barruan Nahi duzun byte kopurua da. 1101 00:52:31,520 --> 00:52:34,620 Kasu honetan, ari 1 byte lortzean dugu. 1102 00:52:34,620 --> 00:52:36,900 Zein erabilera bitxi bat dirudi malloc, baina gure 1103 00:52:36,900 --> 00:52:38,470 helburu zentzurik. 1104 00:52:38,470 --> 00:52:40,420 Beraz, ez da hori. 1105 00:52:40,420 --> 00:52:43,420 >> Free deitu goaz. 1106 00:52:43,420 --> 00:52:47,040 Ditugun kentzeko eta ptr erabiltzen dugu berriro. 1107 00:52:47,040 --> 00:52:48,750 Eta zer ez zuen begiratu nahi duzun? 1108 00:52:48,750 --> 00:52:50,550 >> STUDENT: nahi dut behar den ala ez egiaztatzeko edo ez, ez zen ezer 1109 00:52:50,550 --> 00:52:51,900 barruan. 1110 00:52:51,900 --> 00:52:53,050 >> JASON Hirschhorn: Beraz, ala Adierazi ezer nahi du? 1111 00:52:53,050 --> 00:52:57,740 >> STUDENT: Bai, hain zuzen, ea oraindik ere memoria-helbide bat izan zuen. 1112 00:52:57,740 --> 00:53:02,220 >> JASON Hirschhorn: Beraz, nahi duzun ptr balioa egiaztatzeko? 1113 00:53:02,220 --> 00:53:03,470 >> STUDENT: Bai, hain zuzen. 1114 00:53:03,470 --> 00:53:07,940 1115 00:53:07,940 --> 00:53:10,160 >> JASON Hirschhorn: Zer egin, hemen idazten dut balioari begiratu nahi badut 1116 00:53:10,160 --> 00:53:11,880 puntua - zer da, Jordan esan zuen, balioa? 1117 00:53:11,880 --> 00:53:13,720 Edo zer da ptr barruan gordetzen? 1118 00:53:13,720 --> 00:53:14,620 >> STUDENT: memoria-helbide bat. 1119 00:53:14,620 --> 00:53:16,330 >> JASON Hirschhorn: memoria-helbide bat. 1120 00:53:16,330 --> 00:53:20,520 Beraz idazten dut, besterik gabe, hau bada, egingo emaidazu ptr balioa. 1121 00:53:20,520 --> 00:53:22,800 Eta nola ez dut inprimatu memoria-helbide bat? 1122 00:53:22,800 --> 00:53:26,470 Zer da formatu katea memoria-helbide bat? 1123 00:53:26,470 --> 00:53:27,430 >> STUDENT:% p. 1124 00:53:27,430 --> 00:53:28,050 >> JASON Hirschhorn:% p. 1125 00:53:28,050 --> 00:53:29,500 % S katea da. 1126 00:53:29,500 --> 00:53:30,750 % Erakuslea for p. 1127 00:53:30,750 --> 00:53:40,820 1128 00:53:40,820 --> 00:53:43,540 Eskubidea dela? 1129 00:53:43,540 --> 00:53:44,790 Duten eskubidea da. 1130 00:53:44,790 --> 00:53:49,450 1131 00:53:49,450 --> 00:53:51,040 Beraz ptr berdin - 1132 00:53:51,040 --> 00:53:53,350 hala ere, zerbait dauka. 1133 00:53:53,350 --> 00:53:56,110 1134 00:53:56,110 --> 00:53:57,645 Hau da, ziurrenik gehiago bat Galdera interesgarria. 1135 00:53:57,645 --> 00:53:59,198 Zer egiten du lerro hori? 1136 00:53:59,198 --> 00:54:00,830 >> STUDENT: Seg matxurak. 1137 00:54:00,830 --> 00:54:01,310 >> JASON Hirschhorn: Zer? 1138 00:54:01,310 --> 00:54:02,678 >> STUDENT: uste dut matxurak seg da. 1139 00:54:02,678 --> 00:54:03,574 >> JASON Hirschhorn: Hm? 1140 00:54:03,574 --> 00:54:04,920 >> STUDENT: uste dut seg izango da errua. 1141 00:54:04,920 --> 00:54:08,265 >> JASON Hirschhorn: Beraz, lerro hau kodea, izar ptr du, zer 1142 00:54:08,265 --> 00:54:10,152 esan nahi du izarraren? 1143 00:54:10,152 --> 00:54:11,240 >> STUDENT: edukia. 1144 00:54:11,240 --> 00:54:11,560 >> JASON Hirschhorn: Bai. 1145 00:54:11,560 --> 00:54:13,910 Joan edukiari lortzeko. 1146 00:54:13,910 --> 00:54:16,830 Beraz, hau da memoria joan aurre han eta eman zidan. 1147 00:54:16,830 --> 00:54:21,030 % C erabiltzen dut hementxe delako han han gordetzen diren pertsonaiak. 1148 00:54:21,030 --> 00:54:23,390 Beraz, joan helbide dugula joango gara besterik ikusi - edo ziurrenik izango da izan 1149 00:54:23,390 --> 00:54:25,190 Pixka hau desberdina denbora programa exekutatu dugu. 1150 00:54:25,190 --> 00:54:28,010 Baina joan beharko dugu helbide horretara eta badakigu oraindik badago 1151 00:54:28,010 --> 00:54:29,260 eta ikusi zer han. 1152 00:54:29,260 --> 00:54:35,640 1153 00:54:35,640 --> 00:54:37,110 >> Beraz, ez zuen seg errua. 1154 00:54:37,110 --> 00:54:38,970 Ez bakarrik ez ematen diguten ezer. 1155 00:54:38,970 --> 00:54:43,350 Izan liteke, benetan eman digu zerbait, ezin dugu ikusi. 1156 00:54:43,350 --> 00:54:45,110 Eta hori ideia hori atzera doa - 1157 00:54:45,110 --> 00:54:47,270 eta ez gara gehiegi sartu lortzeko ari hau, hori baino haratago delako 1158 00:54:47,270 --> 00:54:48,460 Ikastaro honen esparrua. 1159 00:54:48,460 --> 00:54:51,260 Baina hitz egin dugu hemen, badugu array mugetatik haratago joan by 1160 00:54:51,260 --> 00:54:54,890 1, agian ez dugu arazorik izango. 1161 00:54:54,890 --> 00:54:58,550 >> Batzuetan, joan off besterik ez duzu 1, zerbait gaizki egiten ari zaren, eta zuk 1162 00:54:58,550 --> 00:54:59,220 liteke arazoak lortu. 1163 00:54:59,220 --> 00:55:00,820 Baina ez duzu beti arazoak lortu. 1164 00:55:00,820 --> 00:55:05,170 Araberakoa zenbat gauza txar bat duzu dezaket, arazoak lortu bazoazela. 1165 00:55:05,170 --> 00:55:07,790 Eta hori ez da, esateko izan sloppy zure kodea. 1166 00:55:07,790 --> 00:55:12,080 Baina esan da, programa ez beti irten, nonbait, joan nahiz 1167 00:55:12,080 --> 00:55:14,130 zu ez luke joan. 1168 00:55:14,130 --> 00:55:18,170 >> Horren adibide ona da, asko Beren arazoa pertsona ezarri 3, zein 1169 00:55:18,170 --> 00:55:22,350 zen 15, ez konprobatu taula mugetatik. 1170 00:55:22,350 --> 00:55:25,860 Beraz, begiratu ezkerrera duzunean, begiratu eskuin, goitik begiratu, begiratu 1171 00:55:25,860 --> 00:55:27,000 beheraino. 1172 00:55:27,000 --> 00:55:31,540 Baina ez duzu egiaztatu bada ikusteko goiko zen benetan taula gainean izango da. 1173 00:55:31,540 --> 00:55:35,220 Eta nork egin duen jende asko eta aktibatuta horretan, euren programan lan egin 1174 00:55:35,220 --> 00:55:38,960 primeran, non taula zela delako memorian gordetzen dira, banan joan ezkero 1175 00:55:38,960 --> 00:55:42,300 gainetik edo egiaztatuko duen memoria helbidea, han ez zen ezer 1176 00:55:42,300 --> 00:55:44,870 bereziki horri buruz izugarria, horrela, programa ez zen 1177 00:55:44,870 --> 00:55:45,970 nahi duzun Yell. 1178 00:55:45,970 --> 00:55:48,870 >> Baina oraindik dugu hartuko luke off puntuak bada ez duzu egiaztatu, duzulako 1179 00:55:48,870 --> 00:55:50,850 ziren zerbait ez zinen egiten ustezko egin, eta izan dezakezu 1180 00:55:50,850 --> 00:55:51,860 arazoak ahaztuak. 1181 00:55:51,860 --> 00:55:54,040 Aurka daude, nahiz eta, seguruenik ez duzu. 1182 00:55:54,040 --> 00:55:57,790 Beraz, hau da duela erakusteko, bai, da oraindik gaude joan daiteke. 1183 00:55:57,790 --> 00:55:59,010 Eta ez ari gara lortzean kasu honetan arazoak. 1184 00:55:59,010 --> 00:56:04,000 Irakurri egiten saiatu ginen bada hurrengo 100 karaktere, genuke 1185 00:56:04,000 --> 00:56:06,000 Ziurrenik arazoak lortu. 1186 00:56:06,000 --> 00:56:09,400 Eta hurrengo 100 irakurketa moldatu daitezke karaktere batzuk eginez nahi baduzu 1187 00:56:09,400 --> 00:56:10,110 Sort begizta. 1188 00:56:10,110 --> 00:56:10,850 Bai. 1189 00:56:10,850 --> 00:56:16,250 >> STUDENT: esleitutako ziren geroztik dugu espazioaren benetako balioa bat, ez genuke 1190 00:56:16,250 --> 00:56:17,050 benetan ezer ikusteko gai. 1191 00:56:17,050 --> 00:56:21,740 Egiten saiatu beharko dugu ezarpena dela c berdinak edo zerbait gustatzen? 1192 00:56:21,740 --> 00:56:22,640 >> JASON Hirschhorn: Great galdera. 1193 00:56:22,640 --> 00:56:25,340 Nola ez, balio hori ezarri dut - 1194 00:56:25,340 --> 00:56:28,980 zer lerro kode do idazten dut on line zer esan dizu zazpi egin? 1195 00:56:28,980 --> 00:56:34,040 >> STUDENT: Star ptr berdinen bakar aurrekontua barra arrunta amaituko c. 1196 00:56:34,040 --> 00:56:36,970 >> JASON Hirschhorn: Beraz jarriz pertsonaia bat, c, kokaleku horretan, 1197 00:56:36,970 --> 00:56:40,200 delako berriro, izarra duten esan nahi du ez joan. 1198 00:56:40,200 --> 00:56:43,320 Eta ezkerreko eskua bestaldean erabiltzen denean zeregin eragile bat, dela berdin 1199 00:56:43,320 --> 00:56:47,270 sinatzeko, ez dugu iritsi dela balioa hainbeste balio hori ezarri bezala. 1200 00:56:47,270 --> 00:56:48,520 Ikus dezagun orain zer gertatzen den. 1201 00:56:48,520 --> 00:56:54,700 1202 00:56:54,700 --> 00:56:56,770 >> Zerbait han jarri genituen eta han izan zen. 1203 00:56:56,770 --> 00:56:58,000 Free deitzen dugu. 1204 00:56:58,000 --> 00:57:00,100 Gauza batzuk ziurrenik gertatu zeure gainean. 1205 00:57:00,100 --> 00:57:01,890 Beraz, ez da, ez da jada. 1206 00:57:01,890 --> 00:57:07,440 Baina, berriro ere, ez dugu lortzean Hara joan egiteko arazoak. 1207 00:57:07,440 --> 00:57:10,260 >> Hau egiten ari naiz ateratzen kodean ilustratzeko duten horiek asko 1208 00:57:10,260 --> 00:57:12,410 duzula galdera, ari dira benetan interesgarria 1209 00:57:12,410 --> 00:57:13,650 Denbora asko erantzuten. 1210 00:57:13,650 --> 00:57:15,260 Eta galdera benetan onak dira. 1211 00:57:15,260 --> 00:57:19,010 Eta horiek irudikatu dezakezu on Zeure bada, adibidez, 1212 00:57:19,010 --> 00:57:19,990 ez gara atalean. 1213 00:57:19,990 --> 00:57:20,940 Bai. 1214 00:57:20,940 --> 00:57:24,430 >> STUDENT: delako ari zaren bidaliz erakuslea edonon, egin behar duzun 1215 00:57:24,430 --> 00:57:26,530 malloc erabili? 1216 00:57:26,530 --> 00:57:28,400 >> JASON Hirschhorn: Beraz, hau atzera egingo Zure hasierako galderara. 1217 00:57:28,400 --> 00:57:28,620 [? ?] 1218 00:57:28,620 --> 00:57:29,980 Da tokiko aldagai bat besterik ez? 1219 00:57:29,980 --> 00:57:32,280 Malloc hemen ez dela sinesgarria. 1220 00:57:32,280 --> 00:57:35,260 Malloc erabilera hemen ez da duten sinesgarria delako 1221 00:57:35,260 --> 00:57:36,500 tokiko aldagai bat besterik ez. 1222 00:57:36,500 --> 00:57:40,970 >> STUDENT: Beraz ezin char egiten duzu izar ptr berdinen kaixo? 1223 00:57:40,970 --> 00:57:41,400 >> JASON Hirschhorn: Oh. 1224 00:57:41,400 --> 00:57:43,300 Beraz, atzera, orain joan Zure hasierako galderara. 1225 00:57:43,300 --> 00:57:46,885 Ez ziren bete uste dut nire erantzuna ere. 1226 00:57:46,885 --> 00:57:48,220 OK? 1227 00:57:48,220 --> 00:57:49,226 Horrela? 1228 00:57:49,226 --> 00:57:49,682 >> STUDENT: Bai. 1229 00:57:49,682 --> 00:57:50,932 Itxaron. 1230 00:57:50,932 --> 00:57:54,090 1231 00:57:54,090 --> 00:57:57,850 >> JASON Hirschhorn: Eta non ez inprimatu nahi dituzu? 1232 00:57:57,850 --> 00:58:00,026 Beraz dugu inprimatu egingo horrelako kate bat? 1233 00:58:00,026 --> 00:58:06,380 1234 00:58:06,380 --> 00:58:07,630 >> STUDENT: interesgarriak. 1235 00:58:07,630 --> 00:58:09,900 1236 00:58:09,900 --> 00:58:14,285 >> JASON Hirschhorn: Beraz, hau dio honi Argumentu pertsonaia bat mota ditu. 1237 00:58:14,285 --> 00:58:17,200 1238 00:58:17,200 --> 00:58:18,620 Beraz, hau pertsonaia bat izan behar du. 1239 00:58:18,620 --> 00:58:25,170 1240 00:58:25,170 --> 00:58:26,280 >> STUDENT: Just lehenengoa hartzen. 1241 00:58:26,280 --> 00:58:28,610 >> JASON Hirschhorn: Beraz, hau da, zer esan dudan. 1242 00:58:28,610 --> 00:58:34,240 Atsegin dut, esan nuen, ez da gordetzeko duen erakuslea aldagai barruan katea. 1243 00:58:34,240 --> 00:58:35,120 Honez gordetzeko - 1244 00:58:35,120 --> 00:58:36,350 >> STUDENT: Aurreneko balioak katea. 1245 00:58:36,350 --> 00:58:40,810 >> JASON Hirschhorn: helbide Katearen lehen balioa. 1246 00:58:40,810 --> 00:58:46,940 Inprimatu hau bagenu, gaude erakuslea barruan balioa lortzean. 1247 00:58:46,940 --> 00:58:51,005 Eta ikusten da, hain zuzen ere, dugu, memoria-helbide bat. 1248 00:58:51,005 --> 00:58:53,595 1249 00:58:53,595 --> 00:58:56,440 >> Ez duela zentzurik? 1250 00:58:56,440 --> 00:58:56,940 Barkatu. 1251 00:58:56,940 --> 00:58:58,996 Itxaron, ez dela zure erantzun Galdera, ordea? 1252 00:58:58,996 --> 00:58:59,790 >> STUDENT: Bai. 1253 00:58:59,790 --> 00:59:05,830 >> JASON Hirschhorn: kode-lerro hau da Kate bat eta gero beste bat sortzeko 1254 00:59:05,830 --> 00:59:09,115 erakuslea aldagai hori seinalatuz kate hori, array duten. 1255 00:59:09,115 --> 00:59:14,320 1256 00:59:14,320 --> 00:59:14,980 Bai. 1257 00:59:14,980 --> 00:59:19,200 >> Memoria bat joan Beraz badugu: STUDENT aurre gehiago, litzateke h lortuko dugu? 1258 00:59:19,200 --> 00:59:21,990 1259 00:59:21,990 --> 00:59:23,150 Du izan kate gisa gordetzen dira? 1260 00:59:23,150 --> 00:59:24,400 >> JASON Hirschhorn: Like, egin genuen - 1261 00:59:24,400 --> 00:59:28,540 1262 00:59:28,540 --> 00:59:30,790 beraz, hau baliotsua da egin. 1263 00:59:30,790 --> 00:59:33,780 Puntu honetan aritmetika, eta horrek you guys da dute ikusi aurretik eta behar izan 1264 00:59:33,780 --> 00:59:35,550 nahiko eroso. 1265 00:59:35,550 --> 00:59:36,905 Hau da idazten Akin - 1266 00:59:36,905 --> 00:59:41,980 1267 00:59:41,980 --> 00:59:46,350 kode-lerro hau idatzi izan dugu, bada, aurretik ikusi dugu array idazkera. 1268 00:59:46,350 --> 00:59:55,900 Hau gurekin eman behar bigarrenean array honetan, h balio. 1269 00:59:55,900 --> 01:00:05,010 >> Hau egin badugu, hau ere eman beharko gurekin Array horretan bigarren balioa. 1270 01:00:05,010 --> 01:00:08,320 Ez da joan delako memoria lehenengo gauza baten helbidea, baina 1271 01:00:08,320 --> 01:00:10,530 memoria gauza bat biztanle baino gehiagoren helbidea. 1272 01:00:10,530 --> 01:00:14,360 Eta, ondoren, izar operadorea dereferences du erakuslea. 1273 01:00:14,360 --> 01:00:16,940 Eta berriro ere, ikus dezagun. 1274 01:00:16,940 --> 01:00:18,664 H berriro lortuko dugu. 1275 01:00:18,664 --> 01:00:20,980 >> STUDENT: Zer da zehazki egiten du erreferentzia kenduta esan nahi? 1276 01:00:20,980 --> 01:00:23,650 >> JASON Hirschhorn: Dereference joan Fancy hitz bat da. 1277 01:00:23,650 --> 01:00:26,390 Horretara joan eta lortzeko zer han dereference erakuslea da. 1278 01:00:26,390 --> 01:00:28,240 Besterik fancy horrentzat hitz bat da. 1279 01:00:28,240 --> 01:00:29,986 >> Nahi izanez gero, inprimatu nahi dugu: STUDENT kate osoan, ezin izan dugu 1280 01:00:29,986 --> 01:00:31,930 egin erakuslea ampersand? 1281 01:00:31,930 --> 01:00:33,490 >> JASON Hirschhorn: Ados, gaude Hemen eteteko joan. 1282 01:00:33,490 --> 01:00:35,480 Hor bukatzen ditugu. 1283 01:00:35,480 --> 01:00:41,760 Ampersand ematen dizu baten helbidea kokapena, beraz, noiz of ampersand egiten duzu 1284 01:00:41,760 --> 01:00:44,080 aldagai bat, ematen du helbide non aldagai hori gordetzen da. 1285 01:00:44,080 --> 01:00:48,580 Ampersand erakuslea dizu emango ptr non ptr memoria da helbidea. 1286 01:00:48,580 --> 01:00:50,140 >> Ez gara joan da joan Adibide honetan. 1287 01:00:50,140 --> 01:00:52,640 Irudikatu dezakezu horiek zeure gauzak. 1288 01:00:52,640 --> 01:00:55,740 Baina, berriro ere, hori ere izan daiteke bat verging zer jakin behar duzun haratago pixka 1289 01:00:55,740 --> 01:00:58,000 epe ertainean honen esparrutik - 1290 01:00:58,000 --> 01:00:59,070 edo galdetegi hau, baizik. 1291 01:00:59,070 --> 01:01:00,270 Barkatu. 1292 01:01:00,270 --> 01:01:03,770 >> Mugitu ditugu, I delako litzateke one coding arazo egin nahi 1293 01:01:03,770 --> 01:01:05,100 aurretik denbora da eman. 1294 01:01:05,100 --> 01:01:09,340 Eta ari gara zer uste dut kode joan da gehienetan horien sinesgarria 1295 01:01:09,340 --> 01:01:11,020 adibideak, atoi. 1296 01:01:11,020 --> 01:01:14,520 Beraz, honi buruzko galdera bat izan zen galdetegi bat, duela bi urte. 1297 01:01:14,520 --> 01:01:17,810 Eta izan dut taula gainean hemen. 1298 01:01:17,810 --> 01:01:20,680 >> Jende galdetegiaren eskatu ziren - 1299 01:01:20,680 --> 01:01:23,640 ziren tesxt apur bat gehiago eman galdera, baina kendu dut 1300 01:01:23,640 --> 01:01:26,640 beharrezkoak ez zen testua delako orain gure helburuetarako. 1301 01:01:26,640 --> 01:01:29,180 Besterik atzeko batzuk izan zen zer atoi egin da. 1302 01:01:29,180 --> 01:01:31,425 Baina badakizu, eta oso atoi ezagutzen. 1303 01:01:31,425 --> 01:01:35,620 >> Honek kode gomendatzen dut paper orri baten gainean. 1304 01:01:35,620 --> 01:01:39,310 Ere estrategia erabiltzea gomendatzen dut desagertu baino gehiago dugu 1305 01:01:39,310 --> 01:01:41,040 gure atalean asko. 1306 01:01:41,040 --> 01:01:44,130 Lehen, ziurtatu ulertzen duzu zer atoi en egiten. 1307 01:01:44,130 --> 01:01:47,580 Irudi bat marraztu edo etorri batzuekin da irudi mental zure buruan. 1308 01:01:47,580 --> 01:01:51,120 Ondoren, idatzi pseudocode honetarako. 1309 01:01:51,120 --> 01:01:53,120 Galdetegi oinarrituta, lortzen duzun guztia bada pseudocode, gutxienez duzu 1310 01:01:53,120 --> 01:01:54,550 zerbait jarri. 1311 01:01:54,550 --> 01:02:00,070 Eta ondoren, mapa pseudocode duten kalera C. txeke bat baduzu zure 1312 01:02:00,070 --> 01:02:03,760 pseudocode, atsegin check bada zerbait 1 da, hori kalera bada bat mapak 1313 01:02:03,760 --> 01:02:05,750 Baldintza eta abarren arabera. 1314 01:02:05,750 --> 01:02:07,850 Eta, azkenik, kode C. programa 1315 01:02:07,850 --> 01:02:15,000 >> Beraz atoi atzera jo eta bost minutu iraun hau kode-orri baten gainean 1316 01:02:15,000 --> 01:02:19,480 papera, hau da, ziurrenik inguruko zenbat denbora duzun bat hartuko luke 1317 01:02:19,480 --> 01:02:21,260 kodea atoi galdetegia. 1318 01:02:21,260 --> 01:02:27,060 Bost eta 15 minutu, bost eta 12, eta bost 10 minutuan, zenbatekoa ingurukoa da 1319 01:02:27,060 --> 01:02:30,150 Denbora honetan litzaidake pasatzeko galdetegi batean galdera. 1320 01:02:30,150 --> 01:02:31,670 Beraz, bost minutu hartu, mesedez. 1321 01:02:31,670 --> 01:02:35,957 Eta edozein zalantza izanez gero, goratzen eskua eta ni etorri egingo inguruan. 1322 01:02:35,957 --> 01:06:39,570 1323 01:06:39,570 --> 01:06:41,066 >> [SIDE CONVERSATIONS] 1324 01:06:41,066 --> 01:08:35,279 1325 01:08:35,279 --> 01:08:37,580 >> JASON Hirschhorn: Ados, beraz, duten bost minutu izan zen. 1326 01:08:37,580 --> 01:08:39,880 Hori izan zen, ziurrenik zenbatekoa buruz Garai hartan litzaidake pasatzeko galdetegi baten gainean, 1327 01:08:39,880 --> 01:08:42,120 agian, denbora hori baxua amaieran. 1328 01:08:42,120 --> 01:08:44,010 Apur bat aurkituko duzu hemen laburpena dugu. 1329 01:08:44,010 --> 01:08:45,740 Kodeketa hau has gaitezen. 1330 01:08:45,740 --> 01:08:49,479 Eta ez badugu modu guztiak gainditu beharko dituzte, horri emandako erantzuna eta honen 1331 01:08:49,479 --> 01:08:54,189 galdetegi galdera daude eskuragarri, berriz ere, Fall 2011 galdera hau denean da 1332 01:08:54,189 --> 01:08:54,913 galdetegi agertu. 1333 01:08:54,913 --> 01:08:57,830 >> Eta zortzi puntu merezi izan du ondoren galdetegi da. 1334 01:08:57,830 --> 01:09:01,140 Zortzi puntu amaieran altua dago puntu zerbait zenbatekoa merezi. 1335 01:09:01,140 --> 01:09:04,790 Galdera gehienak barruti dira bat sei puntu. 1336 01:09:04,790 --> 01:09:08,500 Beraz, hau da gehiago Challenging bat Galdera, ziur. 1337 01:09:08,500 --> 01:09:09,750 Daiteke inor Hasteko me? 1338 01:09:09,750 --> 01:09:13,260 1339 01:09:13,260 --> 01:09:15,380 >> Oro har, zer ari gara honekin nahi 1340 01:09:15,380 --> 01:09:17,550 atoi funtzionatu, logikoki? 1341 01:09:17,550 --> 01:09:19,569 Zer egin nahi dugu? 1342 01:09:19,569 --> 01:09:22,279 Beraz, idatzi joan pseudocode batzuk. 1343 01:09:22,279 --> 01:09:24,090 >> STUDENT: pertsonaiak Bihurtu osokoak sartu. 1344 01:09:24,090 --> 01:09:26,700 >> JASON Hirschhorn: pertsonaiak Bihurtu osokoak sartu. 1345 01:09:26,700 --> 01:09:27,479 Ados. 1346 01:09:27,479 --> 01:09:30,870 Beraz, zenbat karaktere gara bidez joan behar du? 1347 01:09:30,870 --> 01:09:32,295 >> STUDENT: Horiek guztiak. 1348 01:09:32,295 --> 01:09:34,100 >> STUDENT: karaktere guztiak katean. 1349 01:09:34,100 --> 01:09:35,540 >> JASON Hirschhorn: du guztiak katea karaktere. 1350 01:09:35,540 --> 01:09:42,180 Den guztietan zehar joan nahi beraz badugu kate bateko pertsonaia, zer gauza bat da 1351 01:09:42,180 --> 01:09:44,560 C que ha permitido ikusi dugu Gurekin guztietan zehar joan 1352 01:09:44,560 --> 01:09:45,939 kate batean pertsonaia? 1353 01:09:45,939 --> 01:09:46,819 >> IKASLEAK: loop bat. 1354 01:09:46,819 --> 01:09:48,069 >> JASON Hirschhorn: loop bat. 1355 01:09:48,069 --> 01:09:52,020 1356 01:09:52,020 --> 01:09:55,330 Beraz, begizta igaro s karaktere guztiak. 1357 01:09:55,330 --> 01:10:00,940 >> Orduan, zer ari gara egin nahi joan denean karaktere zehatz batera lortuko dugu? 1358 01:10:00,940 --> 01:10:02,480 Esaten ohitu gara gainditu 90 bat. 1359 01:10:02,480 --> 01:10:03,460 9 lortuko dugu. 1360 01:10:03,460 --> 01:10:04,240 Pertsonaia bat da. 1361 01:10:04,240 --> 01:10:07,440 Zer egin nahi dugu izaera duten 9? 1362 01:10:07,440 --> 01:10:10,082 >> STUDENT: Kendu ezazu pertsonaia 0tik? 1363 01:10:10,082 --> 01:10:11,860 >> STUDENT: Gehitu 0? 1364 01:10:11,860 --> 01:10:13,350 >> JASON Hirschhorn: Kendu pertsonaia 0tik da? 1365 01:10:13,350 --> 01:10:13,800 >> STUDENT: Bai. 1366 01:10:13,800 --> 01:10:15,573 >> JASON Hirschhorn: Zergatik hori egin nahi duzula? 1367 01:10:15,573 --> 01:10:16,560 >> STUDENT: [INAUDIBLE] 1368 01:10:16,560 --> 01:10:17,010 balioa. 1369 01:10:17,010 --> 01:10:18,380 Bere int balioa. 1370 01:10:18,380 --> 01:10:21,580 >> JASON Hirschhorn: Ados, beraz, hartuko dugu pertsonaia 9, kendu bertatik 1371 01:10:21,580 --> 01:10:25,820 pertsonaia 0 bat lortzeko Benetako integer 9. 1372 01:10:25,820 --> 01:10:27,070 Gozoa. 1373 01:10:27,070 --> 01:10:31,255 1374 01:10:31,255 --> 01:10:37,000 Eta nola ez, pertsonaia zenekien 9 ken 0 pertsonaia da 9? 1375 01:10:37,000 --> 01:10:39,222 Zer diagrama begiratzen zenuen at? 1376 01:10:39,222 --> 01:10:43,130 >> STUDENT: Badira logikoki bederatzi 9 eta 0 arteko lekuak. 1377 01:10:43,130 --> 01:10:44,620 Edo ASCII taulan begiratu ahal izango duzu. 1378 01:10:44,620 --> 01:10:45,120 >> JASON Hirschhorn: ASCII taula. 1379 01:10:45,120 --> 01:10:46,490 Baina bai, zuzena baita zaudenean. 1380 01:10:46,490 --> 01:10:47,780 Beraz kentzen dugu 0. 1381 01:10:47,780 --> 01:10:49,010 Beraz, gaur egun osokoa 9 dugu. 1382 01:10:49,010 --> 01:10:49,970 Eta zer ez duten egin nahi dugu? 1383 01:10:49,970 --> 01:10:54,970 90 dugu bada, lehenengo osoko zenbakia da dute, zer egin nahi dugu? 1384 01:10:54,970 --> 01:10:58,180 >> STUDENT: nuke aldi baterako osoko zenbaki bat jarri array, ondoren, egin math da 1385 01:10:58,180 --> 01:11:02,088 gerora izan dadin amaiera bat sartu. 1386 01:11:02,088 --> 01:11:03,020 >> JASON Hirschhorn: Ados. 1387 01:11:03,020 --> 01:11:06,990 >> STUDENT: amaieran hasi zaitezke matrizearen eta ondoren aurrera beraz 1388 01:11:06,990 --> 01:11:10,350 duten aurrera duzun bakoitzean, , biderkatu 10. 1389 01:11:10,350 --> 01:11:10,830 >> JASON Hirschhorn: Ados. 1390 01:11:10,830 --> 01:11:12,250 Hori nahiko bat bezala soinuak sinesgarria ideia. 1391 01:11:12,250 --> 01:11:16,040 Gure array amaieran hasi ahal izango dugu, eta strleng erabili ahal izango dugu. 1392 01:11:16,040 --> 01:11:17,030 Strleng erabili ahal izango dugu hemen. 1393 01:11:17,030 --> 01:11:18,870 Gure katea luzera lortu dugu. 1394 01:11:18,870 --> 01:11:20,100 Hasteko amaieran dugu. 1395 01:11:20,100 --> 01:11:29,170 Eta + lehenengoa, hartzen dugu besterik ez Zenbaki oso, eta, agian, bat bezala sortzen dugu 1396 01:11:29,170 --> 01:11:32,270 osoko aldagai berria sortu top non guztia gordetzeko ari gara. 1397 01:11:32,270 --> 01:11:37,340 Beraz, begizta dugu s char guztietatik bidez aurrean atzera, kentzen dugu 0, eta 1398 01:11:37,340 --> 01:11:42,790 gero hartuko dugu, eta arabera non da, bertan biderkatu dugu 1399 01:11:42,790 --> 01:11:45,860 10 boterea batek. 1400 01:11:45,860 --> 01:11:50,644 Delako lehena, zer egiten dugu biderkatu eskuinekoa pertsonaia by? 1401 01:11:50,644 --> 01:11:51,440 >> STUDENT: 10 0 da. 1402 01:11:51,440 --> 01:11:53,170 >> JASON Hirschhorn: 10 0 da. 1403 01:11:53,170 --> 01:11:56,010 Zer bigarrenean biderkatu dugu eskuinekoa by pertsonaia? 1404 01:11:56,010 --> 01:11:57,450 >> STUDENT: [INAUDIBLE]. 1405 01:11:57,450 --> 01:11:57,960 >> JASON Hirschhorn: Zer? 1406 01:11:57,960 --> 01:11:59,150 >> STUDENT: 10 1 arte. 1407 01:11:59,150 --> 01:12:00,420 >> JASON Hirschhorn: 10 1 arte. 1408 01:12:00,420 --> 01:12:03,754 Hirugarren-eskuinekoa pertsonaia? 1409 01:12:03,754 --> 01:12:04,580 >> STUDENT: 10 2 arte. 1410 01:12:04,580 --> 01:12:05,350 >> JASON Hirschhorn: 10 2 arte. 1411 01:12:05,350 --> 01:12:07,200 >> STUDENT: Barkatu, ez dut ulertu hemen zer egiten ari garen. 1412 01:12:07,200 --> 01:12:08,640 >> JASON Hirschhorn: Ados, goazen atzera, gero. 1413 01:12:08,640 --> 01:12:12,500 Beraz, iritsi kate batean pasatu. 1414 01:12:12,500 --> 01:12:14,470 Dugu atoi idazten ari delako. 1415 01:12:14,470 --> 01:12:15,260 Beraz, kate batean ezagutu genuen gainditu. 1416 01:12:15,260 --> 01:12:17,640 Esaten ohitu gara gainditu katea du 90. 1417 01:12:17,640 --> 01:12:19,930 >> Lehenengo gauza egin goaz ezartzen da osoko aldagai berri bat gara 1418 01:12:19,930 --> 01:12:22,150 besterik sortzen joan gure osokoa berri gisa. 1419 01:12:22,150 --> 01:12:24,630 Hori da, zer ari gara amaieran itzuliko. 1420 01:12:24,630 --> 01:12:30,110 Den pertsonaia bakoitzaren bidez joan behar dugu katea erabaki dugu zeren 1421 01:12:30,110 --> 01:12:34,430 bakoitzak ukitzeko behar ditugu eta gero gehitu ezazu gure osokoa berrira. 1422 01:12:34,430 --> 01:12:36,330 >> Baina guk ezin gehitu zenbaki gisa. 1423 01:12:36,330 --> 01:12:38,270 Ezin dugu besterik hartu 9 eta gehitu 9 gure osokoa. 1424 01:12:38,270 --> 01:12:40,560 Araberakoa zer leku on da den katea da. 1425 01:12:40,560 --> 01:12:42,960 Biderkatu behar dugu 10 potentzia bat da. 1426 01:12:42,960 --> 01:12:45,580 Hori delako nola base 10 lanak. 1427 01:12:45,580 --> 01:12:49,050 >> Beraz, benetako lortzeko ari pertsonaia, edo benetako osokoa 1428 01:12:49,050 --> 01:12:53,860 zenbakia, pertsonaia 0 kenduz pertsonaia 9 egin genuen bezala bitarte 1429 01:12:53,860 --> 01:12:57,560 pertsonaia capital bat kenduz edozein dela ere pertsonaia izan batean dugu 1430 01:12:57,560 --> 01:12:58,120 arazo horiek. 1431 01:12:58,120 --> 01:13:04,190 Beraz, benetan egingo zenbaki bat lortuko 0 tik 9 zenbaki erreal bat bezala gorde, eta guk egingo 1432 01:13:04,190 --> 01:13:07,590 biderkatu 10 potentzia arabera non daude katea dugu. 1433 01:13:07,590 --> 01:13:19,430 1434 01:13:19,430 --> 01:13:22,575 Eta gero ari gara gehitu atzera joan gure osoko aldagai berriak sartu. 1435 01:13:22,575 --> 01:13:32,840 1436 01:13:32,840 --> 01:13:37,890 >> Beraz, zer litzateke lukeen itxura egon - hemen marraztu egingo dugu gainetik. 1437 01:13:37,890 --> 01:13:40,086 Katea 90 urtean ezagutu genuen gainditu bada - 1438 01:13:40,086 --> 01:13:41,336 >> STUDENT: [INAUDIBLE]. 1439 01:13:41,336 --> 01:13:43,190 1440 01:13:43,190 --> 01:13:45,540 >> JASON Hirschhorn: Baina atoi kate bat hartzen du. 1441 01:13:45,540 --> 01:13:46,350 Beraz, bidez joan da joan deiaren. 1442 01:13:46,350 --> 01:13:49,900 90 dugu gainditu ezagutu. 1443 01:13:49,900 --> 01:13:51,540 Bizkarrean frontera joan ginen. 1444 01:13:51,540 --> 01:13:53,920 0 hartuko dugu. 1445 01:13:53,920 --> 01:13:55,080 >> STUDENT: Sentitzen dut. 1446 01:13:55,080 --> 01:13:55,880 Agian hau ergela da. 1447 01:13:55,880 --> 01:13:59,440 Ari gara ohitu kate bat aurrera ateratzen bada, zergatik da 90 zer gara 1448 01:13:59,440 --> 01:14:00,260 ohitu gainditu? 1449 01:14:00,260 --> 01:14:03,160 Delako 90 oso bat da. 1450 01:14:03,160 --> 01:14:06,820 >> JASON Hirschhorn: atoi hartzen delako bat katea eta bihurtzen da osokoa sartu 1451 01:14:06,820 --> 01:14:08,320 katea duten ordezkaritza. 1452 01:14:08,320 --> 01:14:13,650 Baina katea 90 ez da osokoa 90 edo 90 zenbakia. 1453 01:14:13,650 --> 01:14:17,920 Katea 90 bi array bat, edo da hiru pertsonaiak, baizik eta, 9 1454 01:14:17,920 --> 01:14:22,740 pertsonaia, 0 pertsonaia, eta backslash 0 karakterea. 1455 01:14:22,740 --> 01:14:26,260 >> Eta atoi idazten ari garelako, aldeko Adibidez, noiz komandoa hartu duzu 1456 01:14:26,260 --> 01:14:30,230 lerroko argumentu, eta nik atalean gordetako argv, kate gisa da gorde. 1457 01:14:30,230 --> 01:14:32,940 Baina zenbaki gisa tratatu nahi izanez gero, bihurtzeko bat behar duzu 1458 01:14:32,940 --> 01:14:34,700 Benetako zenbaki oso. 1459 01:14:34,700 --> 01:14:37,210 Gure arazo multzo bat egin genuen. 1460 01:14:37,210 --> 01:14:38,800 Zein zenbaki bat egin genuen gure arazo multzo. 1461 01:14:38,800 --> 01:14:41,690 Denek zenbaki oso bat hartu komando lerroko argumentu gisa. 1462 01:14:41,690 --> 01:14:46,490 Beraz, horregatik gure atoi funtzioa kate bat hartzen du. 1463 01:14:46,490 --> 01:14:51,910 >> Beraz, berriro ere, gure Adibidez hemen, gaude azkena hartu du. 1464 01:14:51,910 --> 01:14:55,050 Pertsonaiaren kenketak goaz 0 bertatik, zeren pertsonaiak 0 1465 01:14:55,050 --> 01:14:58,810 pertsonaiaren 0 arabera kentzea ematen dizu benetako 0 zenbakia, arabera 1466 01:14:58,810 --> 01:15:00,950 ASCII matematika egiten dugun. 1467 01:15:00,950 --> 01:15:04,870 >> Pertsonaiak dira gisa irudikatzen duelako beren benetako baino ezberdinak - du 1468 01:15:04,870 --> 01:15:08,830 pertsonaia bat, adibidez, minuskulaz 97 da. 1469 01:15:08,830 --> 01:15:10,260 Ez da - trabatzen! 1470 01:15:10,260 --> 01:15:13,290 Ez da edozein dela espero duzun , izango da 0, adibidez. 1471 01:15:13,290 --> 01:15:16,200 Beraz, kendu duzu pertsonaia bat 0 lortzeko. 1472 01:15:16,200 --> 01:15:18,950 >> Beraz, esaten ari gara hemen egin behar joan benetako kopurua lortzeko. 1473 01:15:18,950 --> 01:15:22,560 Eta gero biderkatu by goaz 10 potentzia non arabera 1474 01:15:22,560 --> 01:15:27,030 katea da, eta gero hartuko duten eta gehitu gure leku titularra den 1475 01:15:27,030 --> 01:15:32,520 aldakorra beraz etorri ahal dugun gure azken osoko zenbaki berria. 1476 01:15:32,520 --> 01:15:35,080 Du zentzua guztiontzat? 1477 01:15:35,080 --> 01:15:37,730 >> Beraz, ez gabiltza honek kode joan oraintxe, Oraindik dugulako 1478 01:15:37,730 --> 01:15:38,830 denbora labur lortzean. 1479 01:15:38,830 --> 01:15:40,860 Duten denbora Barkatu. 1480 01:15:40,860 --> 01:15:44,620 Baina hau da, zer, zorionez, duzun izateko galdetegi on egin ahal - at 1481 01:15:44,620 --> 01:15:47,710 Oso gutxienez, get pseudocode honetan idatzita daudelarik. 1482 01:15:47,710 --> 01:15:50,840 >> Eta, ondoren, idatzi bagenitu du pseudocode, benetan, hau egin ahal izan genuen 1483 01:15:50,840 --> 01:15:51,490 nahiko azkar. 1484 01:15:51,490 --> 01:15:55,230 Iruzkinak lerro bakoitzean idatzi dugu dugu hemen buruz itzultzen 1485 01:15:55,230 --> 01:15:56,970 C kode lerro bat. 1486 01:15:56,970 --> 01:16:01,780 Aldakorra, idazketa berri bat deklaratzen begizta bat, kenketa batzuk, batzuk 1487 01:16:01,780 --> 01:16:07,070 biderketa, eta esleipen batzuk. 1488 01:16:07,070 --> 01:16:09,020 Genuke seguruenik ere nahi bueltan lerro bat idazteko. 1489 01:16:09,020 --> 01:16:12,040 Baliteke dugu jarri nahi hemen egiaztapen batzuk. 1490 01:16:12,040 --> 01:16:12,655 Bai. 1491 01:16:12,655 --> 01:16:15,720 >> STUDENT: Beraz dezake tratatzen dugu s benetako katea gisa? 1492 01:16:15,720 --> 01:16:18,730 Dakit zeren besterik helbide bat da. 1493 01:16:18,730 --> 01:16:22,090 Bezala, nola litzateke luzera lortuko duzu pasatzen ari katea? 1494 01:16:22,090 --> 01:16:25,310 >> JASON Hirschhorn: Beraz, nola egin kate baten luzera? 1495 01:16:25,310 --> 01:16:25,830 Strlen. 1496 01:16:25,830 --> 01:16:26,660 >> STUDENT: strlen, bai. 1497 01:16:26,660 --> 01:16:30,550 Baina ahal bezain s jarri duzu argudio hori? 1498 01:16:30,550 --> 01:16:34,620 >> JASON Hirschhorn: Beraz strlen char izar bat hartzen du. 1499 01:16:34,620 --> 01:16:38,090 Eta char star jarraitzen du, eta hura lortzen den arte kontatuta mantentzen 1500 01:16:38,090 --> 01:16:41,865 backslash 0. strlen zen benetan Beste programa bat dugu 1501 01:16:41,865 --> 01:16:42,850 ziren kodearen joan. 1502 01:16:42,850 --> 01:16:44,560 Duten kodeari beste bat oso ona da. 1503 01:16:44,560 --> 01:16:47,270 Alde hori da pixka bat errazagoa, bada delako nahi duten pentsatzen ari zaren 1504 01:16:47,270 --> 01:16:47,830 kontzeptualki - 1505 01:16:47,830 --> 01:16:51,620 Esan dut ozen - strlen honela erakuslea eta bizirik mantentzen eta 1506 01:16:51,620 --> 01:16:54,210 kontatuta eta jarraipena arte backslash bat 0 helduko zara. 1507 01:16:54,210 --> 01:16:56,530 >> STUDENT: Ados, lortu du. 1508 01:16:56,530 --> 01:17:00,200 >> JASON Hirschhorn: Beraz, hoberena Zorte galdetegi 0 bihar. 1509 01:17:00,200 --> 01:17:03,170 Edozein zalantza baduzu, ez dut izan kanpotik honen ondoren. 1510 01:17:03,170 --> 01:17:05,610 Sentitzen me email doan. 1511 01:17:05,610 --> 01:17:08,480 Iristea propioak TF Oraindik baduzu Ez nire sailean, edo nire 1512 01:17:08,480 --> 01:17:10,005 email, nahi izanez gero. 1513 01:17:10,005 --> 01:17:13,140 >> Freak nahi baduzu eta besterik bidali niri email bat, FreakOut email bat, ez dut 1514 01:17:13,140 --> 01:17:16,710 atzera bidali duzu, bezala, aurpegi alai bat, edo, nahi, txantxa bat edo zerbait. 1515 01:17:16,710 --> 01:17:18,190 Beraz, sentitzen free horretarako baita. 1516 01:17:18,190 --> 01:17:20,750 Zorte on berriro, eta nik egingo ikusten duzu hurrengo aste osoan. 1517 01:17:20,750 --> 01:17:23,435