1 00:00:00,000 --> 00:00:09,572 2 00:00:09,572 --> 00:00:12,030 ROB BOWDEN: Kaixo, nago Rob Bowden, eta dezagun hitz quiz0 buruz. 3 00:00:12,030 --> 00:00:13,280 4 00:00:13,280 --> 00:00:14,545 >> Beraz, lehenengo galdera. 5 00:00:14,545 --> 00:00:17,750 Galdera hau non dagoen kopuruaren kode behar duzu 6 00:00:17,750 --> 00:00:21,270 Bonbillak bitarretan 127. 7 00:00:21,270 --> 00:00:23,550 Nahi baduzu, ezin duzu erregularra bihurketa egin 8 00:00:23,550 --> 00:00:25,950 bi-- edo, hamartar bitarraren from. 9 00:00:25,950 --> 00:00:28,300 Baina hori ziurrenik joan denbora asko hartu. 10 00:00:28,300 --> 00:00:31,750 Esan nahi dut, irudikatu ezin duzula, Ados, 1 dago eta 2 ez dago, 11 00:00:31,750 --> 00:00:33,650 4 dago, 8 ez da. 12 00:00:33,650 --> 00:00:39,280 Modu errazagoa da, 127 128 ken bat da. 13 00:00:39,280 --> 00:00:42,013 Ezkerreko bonbilla Hori da 128 biteko da. 14 00:00:42,013 --> 00:00:43,490 15 00:00:43,490 --> 00:00:47,860 Beraz, 127 da benetan guztiak Beste bonbillak argi, 16 00:00:47,860 --> 00:00:51,420 geroztik ezkerreko da bonbilla ken 1. 17 00:00:51,420 --> 00:00:52,800 Hori da galdera hori da. 18 00:00:52,800 --> 00:00:54,060 >> Bat-galdera. 19 00:00:54,060 --> 00:00:56,710 Beraz, 3 bit ahal duzun 8 balio desberdin irudikatzen dituzte. 20 00:00:56,710 --> 00:01:01,000 Zergatik, orduan, ez-negatibo handiena 7 da Zenbaki hamartar irudikatu ahal izango duzu? 21 00:01:01,000 --> 00:01:04,050 Beno, ezin dugu besterik ez bada, 8 balio desberdin ordezkatzen, 22 00:01:04,050 --> 00:01:07,430 orduan zer izan goaz ordezkari 0 7 bidez. 23 00:01:07,430 --> 00:01:08,745 0 hartzen baloreetako bat. 24 00:01:08,745 --> 00:01:09,980 25 00:01:09,980 --> 00:01:11,190 >> Bi galdera. 26 00:01:11,190 --> 00:01:14,610 N bit, zenbat desberdin balioak dezakezu ordezkatzen? 27 00:01:14,610 --> 00:01:19,080 Beraz, n bit, egun 2 bit bakoitzerako balio posibleak. 28 00:01:19,080 --> 00:01:22,300 Beraz, 2 balio posible daukagu lehen bit, 2 balio posible 29 00:01:22,300 --> 00:01:24,450 bigarren, 2 hirugarrenean posible. 30 00:01:24,450 --> 00:01:28,730 Eta, beraz, 2 aldiz 2 aldiz 2, eta azken finean, erantzuna 2 n da. 31 00:01:28,730 --> 00:01:30,010 32 00:01:30,010 --> 00:01:31,100 >> Hiru galdera. 33 00:01:31,100 --> 00:01:33,450 Zein da binary 0x50? 34 00:01:33,450 --> 00:01:39,490 Beraz, gogoratu hamaseitarrean duela oso bat erraza binary bihurtzeko. 35 00:01:39,490 --> 00:01:43,180 Beraz, hemen, besterik gabe, begiratu behar dugu 5 eta 0 independentean. 36 00:01:43,180 --> 00:01:45,110 Beraz, zer da 5 bitarretan? 37 00:01:45,110 --> 00:01:48,400 0101, duten 1 bit eta 4 bit da. 38 00:01:48,400 --> 00:01:49,900 Zer da 0 bitarretan? 39 00:01:49,900 --> 00:01:50,520 Ez da delikatua. 40 00:01:50,520 --> 00:01:52,180 0000. 41 00:01:52,180 --> 00:01:54,970 Beraz, besterik jarri elkarrekin, eta duten binary zenbaki osoa. 42 00:01:54,970 --> 00:01:57,640 01010000. 43 00:01:57,640 --> 00:02:00,439 Eta nahi izanez gero ezin duzu aireratzen duten zero ezkerreko. 44 00:02:00,439 --> 00:02:01,105 It garrantzirik. 45 00:02:01,105 --> 00:02:02,920 46 00:02:02,920 --> 00:02:05,733 >> Orduan, bestela, zer da hamartarrean 0x50? 47 00:02:05,733 --> 00:02:08,649 Nahi izan ezkero, could-- duzun bazaude gehiago binary eroso, 48 00:02:08,649 --> 00:02:11,340 Erantzun bitarra dela har dezakegu, eta bihurtu dela hamartarra sartu. 49 00:02:11,340 --> 00:02:13,870 Edo, besterik gabe gogoan izan dugu hamaseitar duten. 50 00:02:13,870 --> 00:02:21,140 Beraz, 0 eta 0-garren postuan dago, eta 5, 16, lehen lekua da. 51 00:02:21,140 --> 00:02:25,990 Beraz, hemen, 5 aldiz 16 behar dugu Lehenengo, plus 0 16 zero da, 52 00:02:25,990 --> 00:02:27,520 80 da. 53 00:02:27,520 --> 00:02:29,710 Eta begiratu ezkero at galderaren izenburua, 54 00:02:29,710 --> 00:02:32,920 CS 80, izan zen moduko bat izan zen Arazo honi erantzun Hint. 55 00:02:32,920 --> 00:02:34,460 56 00:02:34,460 --> 00:02:35,420 >> Bost galdera. 57 00:02:35,420 --> 00:02:40,320 Scratch script hau dugu, hau da, 4 aldiz kakahuete gurina gozoki errepikatuz. 58 00:02:40,320 --> 00:02:42,800 Beraz, nola egiten dugu gaur egun kodea duten C? 59 00:02:42,800 --> 00:02:47,730 Beno, hemen dugun lodiz zatia ezartzea izan duzun zati bakarra da. 60 00:02:47,730 --> 00:02:51,950 Beraz 4 begizta bat den begizta 4 daukagu aldiz, printf-ing kakahuete gurina gozoki, 61 00:02:51,950 --> 00:02:53,910 linea berri arazoa eskatzen dute. 62 00:02:53,910 --> 00:02:55,250 63 00:02:55,250 --> 00:02:57,490 >> Sei Galdera, Scratch beste arazo bat. 64 00:02:57,490 --> 00:03:00,210 Garela betiko begizta batean ikusten dugu. 65 00:03:00,210 --> 00:03:05,000 I aldagai esaten ari gara eta ondoren i incrementing 1 eginez. 66 00:03:05,000 --> 00:03:09,580 Orain C. daude egin nahi dugu modu bat baino gehiago dugu hau egin izan da. 67 00:03:09,580 --> 00:03:12,840 Hemen kode gertatu dugu betiko begizta, berriz, (egia) gisa. 68 00:03:12,840 --> 00:03:16,600 Beraz, aldagai adierazi dugu i, besterik ez atsegin Scratch i aldagai izan genuen. 69 00:03:16,600 --> 00:03:21,950 Deklaratu i aldakorra, eta betiko while (true), aldagaiak i esaten dugu. 70 00:03:21,950 --> 00:03:25,260 Beraz printf% i edo% d erabili izan daiteke. 71 00:03:25,260 --> 00:03:27,985 Aldagai hori esaten dugu, eta ondoren Kontatzailea da, i ++. 72 00:03:27,985 --> 00:03:29,560 73 00:03:29,560 --> 00:03:30,830 >> Zazpi galdera. 74 00:03:30,830 --> 00:03:35,560 Orain oso antzeko zerbait egin nahi dugu Mario dot c arazo bat ezarri. 75 00:03:35,560 --> 00:03:39,110 Hashtags hauek inprimatu nahi dugu, bost bat inprimatu nahi dugu 76 00:03:39,110 --> 00:03:40,700 hiru egiaztapenekin horiek rectangle arabera. 77 00:03:40,700 --> 00:03:41,770 78 00:03:41,770 --> 00:03:43,162 Beraz, nola ari garen, zer egin? 79 00:03:43,162 --> 00:03:45,370 Beno, zuk ematen dugu osotasunean kodea sorta, eta ezin besterik 80 00:03:45,370 --> 00:03:47,560 inprimatu Sareta funtzioa bete behar izango. 81 00:03:47,560 --> 00:03:49,540 >> Beraz, zer ez itxura PrintGrid? 82 00:03:49,540 --> 00:03:51,480 Beno Oraindik iraganeko duzu zabalera eta altuera. 83 00:03:51,480 --> 00:03:53,520 Beraz, kanpoko bat dugu 4 begizta, den begizta 84 00:03:53,520 --> 00:03:57,650 honek ilara osoan du sareta hori inprimatu nahi dugu. 85 00:03:57,650 --> 00:04:01,250 Ondoren, urte arteko habiaratua 4 begizta dugu, Zutabe bakoitzaren gainetik inprimatzeko hori. 86 00:04:01,250 --> 00:04:06,210 Beraz, ilara bakoitzean, inprimatu dugu zutabe bakoitzean, hash bat bakarra. 87 00:04:06,210 --> 00:04:10,045 Ondoren, errenkadan amaieran inprimatu lerro berri bakar hurrengo errenkadan joan. 88 00:04:10,045 --> 00:04:11,420 Eta hori da lauki-sare osoan. 89 00:04:11,420 --> 00:04:12,810 90 00:04:12,810 --> 00:04:13,675 >> Zortzi galdera. 91 00:04:13,675 --> 00:04:17,170 PrintGrid bezalako funtzio bat da, esan zion Albo-efektu bat buelta bat egin behar du, baina ez 92 00:04:17,170 --> 00:04:17,670 balio. 93 00:04:17,670 --> 00:04:19,209 Azaldu bereizketa. 94 00:04:19,209 --> 00:04:23,080 Beraz, hau gogoratzeko oinarritzen zer albo efektu bat da. 95 00:04:23,080 --> 00:04:25,180 Beno, itzulera baten balioa badakigu PrintGrid ez du 96 00:04:25,180 --> 00:04:28,180 itzultzeko balio dute, zeren hementxe void dio. 97 00:04:28,180 --> 00:04:31,150 Duten hutsunea itzultzen Beraz, ezer ez du benetan ezer. 98 00:04:31,150 --> 00:04:32,200 99 00:04:32,200 --> 00:04:33,620 Beraz, zer da albo-efektua? 100 00:04:33,620 --> 00:04:36,620 Beno, alboko efektu bat da Ordena jarraitzen duela ezer 101 00:04:36,620 --> 00:04:39,500 funtzioaren muturrak ondoren hori ez zen, besterik gabe itzuli zen, 102 00:04:39,500 --> 00:04:41,340 eta ez zen besterik input from. 103 00:04:41,340 --> 00:04:44,970 >> Beraz, adibidez, eginen lukeen aldagai global bat aldatu. 104 00:04:44,970 --> 00:04:46,590 Hori albo-efektu bat izango litzateke. 105 00:04:46,590 --> 00:04:49,000 Kasu honetan, bat Albo-efektu oso garrantzitsua 106 00:04:49,000 --> 00:04:51,070 pantailaren inprimatzean. 107 00:04:51,070 --> 00:04:53,110 Beraz, albo efektu bat da PrintGrid ditu. 108 00:04:53,110 --> 00:04:54,980 Gauza horiek inprimatu dugu pantailan. 109 00:04:54,980 --> 00:04:56,370 Eta pentsa dezakezu Bigarren mailako efektu gisa, 110 00:04:56,370 --> 00:04:58,690 geroztik zerbait dela jarraitzen funtzio hori amaitu ondoren. 111 00:04:58,690 --> 00:05:01,481 Hori esparrutik kanpo zerbait funtzio honen azken finean 112 00:05:01,481 --> 00:05:03,380 aldatu jaso, pantailaren edukia. 113 00:05:03,380 --> 00:05:05,200 114 00:05:05,200 --> 00:05:05,839 >> Bederatzi galdera. 115 00:05:05,839 --> 00:05:07,880 Aztertu hurrengo programan, lerro zenbakitara 116 00:05:07,880 --> 00:05:09,740 dute gehitu eztabaidak eztabaida. 117 00:05:09,740 --> 00:05:13,480 Beraz, programa honetan besterik ez dira dugu GetString deituz, gorde 118 00:05:13,480 --> 00:05:16,220 hau s aldagai batean, eta, ondoren, aldagai s inprimatzeko. 119 00:05:16,220 --> 00:05:16,720 OK. 120 00:05:16,720 --> 00:05:19,090 Beraz, azaldu zergatik lerro bat da gaur egun. 121 00:05:19,090 --> 00:05:20,920 #include cs50 dot h. 122 00:05:20,920 --> 00:05:23,820 Zergatik cs50 dot h # Include behar dugu? 123 00:05:23,820 --> 00:05:26,180 Beno deitzen ari gara, GetString funtzioa, 124 00:05:26,180 --> 00:05:28,840 eta GetString definitzen da cs50 liburutegia. 125 00:05:28,840 --> 00:05:31,600 Beraz, ez badugu dute #include cs50 dot h, 126 00:05:31,600 --> 00:05:35,760 adierazpen inplizitua duten lortuko genuke GetString funtzioa errorearen 127 00:05:35,760 --> 00:05:36,840 konpiladoreak from. 128 00:05:36,840 --> 00:05:40,110 Beraz, liburutegia, besteak beste behar dugu Goiburu-fitxategia gehitzea behar dugu, 129 00:05:40,110 --> 00:05:42,870 edo, bestela konpilatzailea will not aitortu GetString badagoela. 130 00:05:42,870 --> 00:05:44,380 131 00:05:44,380 --> 00:05:46,140 >> Azaldu zergatik bi lerro presente. 132 00:05:46,140 --> 00:05:47,890 Io dot h Beraz estandarra. 133 00:05:47,890 --> 00:05:50,430 Zehazki gauza bera aurreko arazo gisa, 134 00:05:50,430 --> 00:05:53,310 ordez aurre egiteko izan ezik GetString, printf buruz hitz egiten ari gara. 135 00:05:53,310 --> 00:05:56,654 Beraz, bada ez genuen esan behar dugu io dot h estandarra besteak beste, 136 00:05:56,654 --> 00:05:58,820 orduan ez genuke gai printf funtzioa erabiltzeko, 137 00:05:58,820 --> 00:06:00,653 konpiladoreak delako ez luke ezagutu. 138 00:06:00,653 --> 00:06:01,750 139 00:06:01,750 --> 00:06:05,260 >> Why-- zer esanahi da of gal lau lerroan? 140 00:06:05,260 --> 00:06:08,010 Beraz, hemen dugu int main (void). 141 00:06:08,010 --> 00:06:10,600 Hori besterik ez garela esaten Ez zara komando-lerroko edozein lortzean 142 00:06:10,600 --> 00:06:12,280 nagusiak argumentuak. 143 00:06:12,280 --> 00:06:17,390 Gogoratu int esan genezake nagusia int argc katea argv parentesi. 144 00:06:17,390 --> 00:06:20,400 Beraz, hemen esan besterik ez dugu void dugula esan komando lerroko argumentuak jaramonik egin gabe. 145 00:06:20,400 --> 00:06:21,840 146 00:06:21,840 --> 00:06:25,225 >> Azaldu, memoria aldean, zehazki zer GetString lerroan sei itzultzen. 147 00:06:25,225 --> 00:06:27,040 148 00:06:27,040 --> 00:06:31,640 GetString bloke bat itzuli egin da memoria, pertsonaiak ezagutuko ditu. 149 00:06:31,640 --> 00:06:34,870 Benetan bat itzuli Lehen karaktere erakuslea. 150 00:06:34,870 --> 00:06:37,170 Gogoratu kate bat char izar bat da. 151 00:06:37,170 --> 00:06:41,360 Beraz, lehenengo erakuslea da izaera edozein dela ere katea da 152 00:06:41,360 --> 00:06:43,510 , erabiltzaileak teklatua sartu. 153 00:06:43,510 --> 00:06:47,070 Eta memoria hori gertatzen malloced behar da, beraz, memoria hori zeure da. 154 00:06:47,070 --> 00:06:49,080 155 00:06:49,080 --> 00:06:50,450 >> 13. galdera. 156 00:06:50,450 --> 00:06:51,960 Demagun programa azpian. 157 00:06:51,960 --> 00:06:55,579 Beraz, programa hau, egiten ari da printf-ing 1 10 banatuta. 158 00:06:55,579 --> 00:06:57,370 Beraz, bildu eta exekutatu, programa honetan 159 00:06:57,370 --> 00:07:01,170 irteerak 0,0, nahiz eta 1 10 arabera banatzen 0,1 da. 160 00:07:01,170 --> 00:07:02,970 Beraz, zergatik da 0.0? 161 00:07:02,970 --> 00:07:05,510 Beno, horregatik da Zatiketa baten. 162 00:07:05,510 --> 00:07:08,580 Beraz, 1 zenbaki oso bat da, 10 oso bat da. 163 00:07:08,580 --> 00:07:11,980 Beraz, 1, 10, dena zatituta da osokoak bezala tratatzen, 164 00:07:11,980 --> 00:07:16,380 eta C, noiz Zatiketa egiten dugu, Bat hamartar puntu moztu dugu. 165 00:07:16,380 --> 00:07:19,590 Beraz, 1 10 arabera banatzen da 0, eta gero saiatzen ari gara 166 00:07:19,590 --> 00:07:24,410 duten mugikor bat bezala inprimatzeko, beraz, zero mugikor bat inprimatuta 0,0 da. 167 00:07:24,410 --> 00:07:27,400 Eta horregatik lortu dugu 0.0. 168 00:07:27,400 --> 00:07:28,940 >> Demagun programa azpian. 169 00:07:28,940 --> 00:07:31,280 Orain inprimatzeko ari gara 0,1. 170 00:07:31,280 --> 00:07:34,280 Beraz, zatiketa osoa ez, ari gara inprimatzeko 0,1, 171 00:07:34,280 --> 00:07:37,100 baina ari da inprimatzeko dugu 28 hamartarrekin. 172 00:07:37,100 --> 00:07:41,810 Eta 0,1000 hau, sorta oso bat lortuko dugu zero, 5 5 5, blah blah blah. 173 00:07:41,810 --> 00:07:45,495 Beraz, galdera da hemen zergatik egiten du inprimatu beharrean, zehazki 0,1? 174 00:07:45,495 --> 00:07:46,620 175 00:07:46,620 --> 00:07:49,640 >> Beraz, arrazoia da hemen orain puntu mugikorreko imprecision. 176 00:07:49,640 --> 00:07:53,410 Gogoratu mugikor bat duten bit 32 baino ez da. 177 00:07:53,410 --> 00:07:57,540 Beraz, bakarrik kopuru mugatu batean irudikatu ahal ren puntu mugikorreko-balioak 32 horiekin 178 00:07:57,540 --> 00:07:58,560 bit. 179 00:07:58,560 --> 00:08:01,760 Beno, ez da, azken finean, infinituki puntu balio flotatzen asko, 180 00:08:01,760 --> 00:08:04,940 eta ez da, infinituki asko flotatzen Puntu 0 eta 1 arteko balioak, 181 00:08:04,940 --> 00:08:07,860 eta, jakina, gai gara Hori baino balioak are gehiago ordezkatzen. 182 00:08:07,860 --> 00:08:13,230 Beraz, sakrifizio egiteko aukera izan dugu izan baliorik ordezkatzen gai. 183 00:08:13,230 --> 00:08:16,960 >> Beraz, 0.1 bezalako balioa, itxuraz ezin dugu ordezkatzen duten zehatz-mehatz. 184 00:08:16,960 --> 00:08:22,500 Beraz ordez 0.1 ordezkaritza horrek egiten dugu best ordezkatzen dugu 0.100000 5 5 honi 185 00:08:22,500 --> 00:08:23,260 5. 186 00:08:23,260 --> 00:08:26,306 Eta hori nahiko hurbil, baina aplikazio asko egiteko 187 00:08:26,306 --> 00:08:28,430 kezkatu behar duzu koma mugikorreko imprecision, 188 00:08:28,430 --> 00:08:30,930 ere, ezin dugu adierazten duelako puntu zehazki flotatzen. 189 00:08:30,930 --> 00:08:32,500 190 00:08:32,500 --> 00:08:33,380 >> 15. galdera. 191 00:08:33,380 --> 00:08:34,679 Demagun ondorengo kodea. 192 00:08:34,679 --> 00:08:36,630 Zu besterik ez inprimatzeko dugu 1 plus 1. 193 00:08:36,630 --> 00:08:38,289 Beraz, ez dago trikimailu ez da hemen. 194 00:08:38,289 --> 00:08:41,780 1 gehi 1 eta 2 ebaluatzen du, eta ondoren, hori ari gara inprimatzeko. 195 00:08:41,780 --> 00:08:42,789 Hau besterik ez da bistaratzen 2. 196 00:08:42,789 --> 00:08:43,850 197 00:08:43,850 --> 00:08:44,700 >> 16. galdera. 198 00:08:44,700 --> 00:08:49,450 Orain pertsonaia inprimatzeko ari gara 1 plus pertsonaia 1. 199 00:08:49,450 --> 00:08:52,110 Beraz, zergatik ez du ez Gauza bera inprimatzeko? 200 00:08:52,110 --> 00:08:57,680 Beno pertsonaia 1 plus pertsonaia 1, pertsonaia 1 ASCII balioa 49 dauka. 201 00:08:57,680 --> 00:09:04,840 Beraz, hau benetan esaten da 49 gehi 49, eta azken finean, hori da 98 inprimatzeko. 202 00:09:04,840 --> 00:09:06,130 Beraz, ez du hau inprimatu 2. 203 00:09:06,130 --> 00:09:08,070 204 00:09:08,070 --> 00:09:09,271 >> 17 galdera. 205 00:09:09,271 --> 00:09:11,520 Ezartzeko osatu azpiko bakoitiak dira, kasuan 206 00:09:11,520 --> 00:09:14,615 duten funtzioaren egia bada itzultzen n bakoitia eta faltsu n bikoitia bada. 207 00:09:14,615 --> 00:09:16,710 208 00:09:16,710 --> 00:09:19,330 Honen bidez, helburu handi bat da Mod eragilea da. 209 00:09:19,330 --> 00:09:24,530 Beraz, gure argudio n hartuko dugu, n mod 2 berdin 1, ondo badago 210 00:09:24,530 --> 00:09:28,030 horrek esan nahi du n banatuta 2 eta gainerakoa izan gaurko hau. 211 00:09:28,030 --> 00:09:33,270 Bada n 2 arabera banatzen hondarra izan zuen, eta, esan nahi du, n bakoitia da, beraz, egia itzuliko gara. 212 00:09:33,270 --> 00:09:34,910 Bestela faltsua itzuliko gara. 213 00:09:34,910 --> 00:09:39,070 Ere egin ahal izango duzu n mod 2 berdinen zero, itzultzeko faltsua, bestela egia itzuliko. 214 00:09:39,070 --> 00:09:41,600 215 00:09:41,600 --> 00:09:43,640 >> Demagun funtzioa errekurtsiboa azpian. 216 00:09:43,640 --> 00:09:46,920 Beraz, bada n baino txikiagoa edo 1 balioa, itzuli 1, 217 00:09:46,920 --> 00:09:50,430 Bueltan n aldiz beste n ken 1 f. 218 00:09:50,430 --> 00:09:52,556 Beraz, zer funtzio hau? 219 00:09:52,556 --> 00:09:54,305 Beno, hau da, besterik gabe, funtzioa faktore. 220 00:09:54,305 --> 00:09:55,410 221 00:09:55,410 --> 00:09:57,405 Hau nicely irudikatzen da n faktore gisa. 222 00:09:57,405 --> 00:09:58,720 223 00:09:58,720 --> 00:10:02,310 >> Beraz, zalantzan 19 orain, nahi dugu Funtzio errekurtsiboak hau hartzeko. 224 00:10:02,310 --> 00:10:04,530 Etorriko egiteko nahi dugu. 225 00:10:04,530 --> 00:10:05,874 Beraz, zer egin dugu? 226 00:10:05,874 --> 00:10:07,790 Beno langileek konponbidea, eta, berriro ere, ez da 227 00:10:07,790 --> 00:10:11,090 modu bat baino gehiago egin izan duzu hori, hasteko int produktu honekin dugu 228 00:10:11,090 --> 00:10:11,812 berdin 1. 229 00:10:11,812 --> 00:10:13,520 Eta honetan zehar begizta, goazen 230 00:10:13,520 --> 00:10:17,590 produktu azken finean biderkatzailea izateko azkenean, faktore osoz. 231 00:10:17,590 --> 00:10:21,870 Beraz, int i berdin 2, i da txikiago edo n, i ++. 232 00:10:21,870 --> 00:10:24,130 >> Galdetzen beharko zenuke zergatik berdin i 2. 233 00:10:24,130 --> 00:10:28,380 Beno, gogoan hemen, izan dugu ziurtatu gure kasuan ez da zuzena. 234 00:10:28,380 --> 00:10:32,180 Beraz, n baino txikiagoa edo berdina bada 1, zu besterik ez itzuli dugu 1. 235 00:10:32,180 --> 00:10:34,830 Beraz, hemen baino gehiago, hasten baita berdin i 2. 236 00:10:34,830 --> 00:10:39,090 Beno i ziren 1, bada orduan edo the-- n ziren 1 eta, ondoren, bada begizta 237 00:10:39,090 --> 00:10:40,600 ez litzateke exekutatu guztiak. 238 00:10:40,600 --> 00:10:43,190 Eta, beraz, besterik ez genuke Bueltan produktua, hau da, 1. 239 00:10:43,190 --> 00:10:45,920 Era berean, n ziren baino ezer gutxiago 1-- 240 00:10:45,920 --> 00:10:49,290 0, balitz negatiboak 1, dena delakoa nahiko nuke oraindik ere itzuli dugu 1, 241 00:10:49,290 --> 00:10:52,260 hau da, zehazki zer egin errekurtsiboa bertsioa egiten ari da. 242 00:10:52,260 --> 00:10:54,660 >> Orain, N handiagoa bada 1 baino, orduan goazen 243 00:10:54,660 --> 00:10:56,550 gutxienez bat egin begizta honen iterazio. 244 00:10:56,550 --> 00:11:00,630 Beraz, demagun N 5 da, eta gero gara Produktu aldiz egin behar dugu berdin 2. 245 00:11:00,630 --> 00:11:02,165 Beraz, gaur egun produktu 2a da. 246 00:11:02,165 --> 00:11:04,040 Orain egin behar Produktu aldiz berdinen 3. 247 00:11:04,040 --> 00:11:04,690 Orain 6 da. 248 00:11:04,690 --> 00:11:07,500 Produktuen aldiz berdinen 4, Orain bat, 24. 249 00:11:07,500 --> 00:11:10,420 Produktuen aldiz berdin 5, Orain bat, 120. 250 00:11:10,420 --> 00:11:16,730 Beraz, azken batean, itzultzen ari gara 120, eta hori behar bezala 5 faktore. 251 00:11:16,730 --> 00:11:17,510 >> 20 galdera. 252 00:11:17,510 --> 00:11:22,480 Hau da, non bete behar duzun algoritmoa ematen dituen taula honetan, 253 00:11:22,480 --> 00:11:25,735 Nik ez dugu ikusten ezer, hori horiek algoritmikoak run egokitzen 254 00:11:25,735 --> 00:11:28,060 Nondik asintotikoak run garai hauetan. 255 00:11:28,060 --> 00:11:33,270 Beraz, zer algoritmo bat da, 1 omega, baina big n O da? 256 00:11:33,270 --> 00:11:35,970 Beraz, ez infinituki izan daiteke askoren erantzunak hemen. 257 00:11:35,970 --> 00:11:39,790 Seguruenik duten ikusi dugu, Bat maiz bilaketa lineala baino ez da. 258 00:11:39,790 --> 00:11:42,050 >> Beraz, kasu horretan, onena Egoera, elementua gara 259 00:11:42,050 --> 00:11:44,050 bila at da Zerrendaren hasita 260 00:11:44,050 --> 00:11:47,400 eta, beraz, 1 urratsen omega-en, egiaztatu dugu lehen gauza, 261 00:11:47,400 --> 00:11:49,740 besterik ez, berehala itzuliko gara elementua aurkitu dugun. 262 00:11:49,740 --> 00:11:52,189 Kasu txarrena eszenatoki, elementua amaieran da, 263 00:11:52,189 --> 00:11:53,730 edo elementua zerrendan ez dagoen guztietan. 264 00:11:53,730 --> 00:11:56,700 Beraz, bilatu behar dugu du zerrenda osoa, n guztia 265 00:11:56,700 --> 00:11:58,480 elementuak, eta horregatik da n o da. 266 00:11:58,480 --> 00:11:59,670 267 00:11:59,670 --> 00:12:04,880 >> Beraz, orain, hori bai zerbait n log n omega, eta n log n O big. 268 00:12:04,880 --> 00:12:08,650 Beno garrantzitsuenak gauza Hemen ikusten duguna da batu, ordenatu. 269 00:12:08,650 --> 00:12:12,950 Beraz, batu, ordenatu, gogoratu, azken finean theta 270 00:12:12,950 --> 00:12:16,920 n log n, non theta definitzen da bai omega eta big O bera baldin badira. 271 00:12:16,920 --> 00:12:17,580 Biak nn saioa. 272 00:12:17,580 --> 00:12:18,690 273 00:12:18,690 --> 00:12:21,970 >> Zer da hori omega zerbait n, eta, n karratu O? 274 00:12:21,970 --> 00:12:23,990 Beno, berriro ere ez da Posible bat baino gehiago erantzun. 275 00:12:23,990 --> 00:12:26,440 Hemen burbuila ordenatu esaten gertatuko dugu. 276 00:12:26,440 --> 00:12:28,840 Txertatzeko sort hemen ere funtzionatuko luke. 277 00:12:28,840 --> 00:12:31,400 Gogoratu burbuila moduko hori optimizazioa non ditu, 278 00:12:31,400 --> 00:12:34,630 zara iritsi ahal bada Zerrenda osoa bitartez 279 00:12:34,630 --> 00:12:37,402 egin beharrik gabe trukeak edozein, orduan, bai, 280 00:12:37,402 --> 00:12:40,110 berehala itzuli ahal izango duten zerrenda zen horrela antolatu hasteko. 281 00:12:40,110 --> 00:12:43,185 Kasurik onenean Beraz, besterik n omega da. 282 00:12:43,185 --> 00:12:45,960 Ez bada besterik nicely bat sailkatuko da zerrenda hasteko, 283 00:12:45,960 --> 00:12:48,270 orduan, n karratu O trukeak ditugu. 284 00:12:48,270 --> 00:12:49,330 285 00:12:49,330 --> 00:12:55,610 Eta, azkenik, hautaketa ordena daukagu n karratu, bai omega eta big O. 286 00:12:55,610 --> 00:12:56,850 >> 21 galdera. 287 00:12:56,850 --> 00:12:58,870 Zein da zenbaki oso gainezkatze? 288 00:12:58,870 --> 00:13:02,160 Beno, berriro ere, lehenago antzekoa, bit finituki askok besterik ez dugu 289 00:13:02,160 --> 00:13:04,255 zenbaki oso bat irudikatzeko, beraz, agian, 32 bit. 290 00:13:04,255 --> 00:13:06,300 291 00:13:06,300 --> 00:13:09,180 Demagun sinatu osokoa bat behar dugu. 292 00:13:09,180 --> 00:13:12,800 Altuena Ondoren, azken finean, Zenbaki positiboak adierazteko aukera izango dugu 293 00:13:12,800 --> 00:13:15,910 31 da 2 ken 1. 294 00:13:15,910 --> 00:13:19,370 Beraz, zer gertatzen saiatu izanez dugu ondoren Kontatzailea osokoa dela? 295 00:13:19,370 --> 00:13:25,320 Beno, 2tik 31ra joan goaz ken 1, modu guztiak, 2 negatibo behera 296 00:13:25,320 --> 00:13:26,490 31 izateko. 297 00:13:26,490 --> 00:13:29,470 Beraz, zenbaki oso gainezkatze hau da denean incrementing mantendu, 298 00:13:29,470 --> 00:13:32,330 eta, azken finean, ezin duzu lortzeko edozein handiagoa da, eta besterik 299 00:13:32,330 --> 00:13:34,520 modu guztiak atzera biltzen balio negatiboa inguruan. 300 00:13:34,520 --> 00:13:35,850 301 00:13:35,850 --> 00:13:37,779 >> Buffer gainezkatzea bati buruz? 302 00:13:37,779 --> 00:13:39,820 Beraz, buffer bat overflow-- gogoratu buffer bat zer den. 303 00:13:39,820 --> 00:13:41,000 Zatia memoria bat da. 304 00:13:41,000 --> 00:13:43,350 Array bat antzeko zerbait buffer bat da. 305 00:13:43,350 --> 00:13:46,120 Beraz, buffer gainezkatzea bat denean memoria sartzen saiatzen zara 306 00:13:46,120 --> 00:13:47,880 array horren amaieran haratago. 307 00:13:47,880 --> 00:13:50,410 Beraz, bat duzunean 5 tamaina eta zuk sorta 308 00:13:50,410 --> 00:13:53,700 saiatu array bracket sartzeko 5 edo 6 edo bracket bracket 7 309 00:13:53,700 --> 00:13:56,610 edo haratago ezer amaieran, edo nahiz eta ezer 310 00:13:56,610 --> 00:14:00,790 below-- array bracket negatiboa 1-- horiek guztiak buffer gainezkatzerik dira. 311 00:14:00,790 --> 00:14:02,810 Memoria ari zaren ukitzen modu txarrean. 312 00:14:02,810 --> 00:14:04,090 313 00:14:04,090 --> 00:14:04,730 >> 23 galdera. 314 00:14:04,730 --> 00:14:05,760 315 00:14:05,760 --> 00:14:09,100 Beraz, hau behar duzu strlen ezartzeko. 316 00:14:09,100 --> 00:14:11,630 Eta esango dugu, ahal duzun bere gain hartzen ez du s izan null, 317 00:14:11,630 --> 00:14:13,790 beraz, ez duzu behar null inolako kontrol egin. 318 00:14:13,790 --> 00:14:16,190 Eta badira modu askotara zuk hau egin izan da. 319 00:14:16,190 --> 00:14:18,440 Hemen hartuko dugu besterik zuzenean. 320 00:14:18,440 --> 00:14:21,780 Hasteko kontagailu bat egiten dugu, n. n dago zenbat karaktere daude kontatuta. 321 00:14:21,780 --> 00:14:25,560 Beraz, hasi ginen 0 eta orduan guk Batetik bestera joateko baino gehiago zerrenda osoa. 322 00:14:25,560 --> 00:14:29,092 >> S tarte 0 berdina da null amaierako pertsonaia? 323 00:14:29,092 --> 00:14:31,425 Gogoratu bilatzen ari gara null amaierako pertsonaia 324 00:14:31,425 --> 00:14:33,360 gure katea zenbat denbora zehazteko. 325 00:14:33,360 --> 00:14:35,890 Hori da amaitutzat joan kate garrantzitsuak edozein. 326 00:14:35,890 --> 00:14:39,400 Beraz, s tarte 0 berdina da null amaierako nahi? 327 00:14:39,400 --> 00:14:42,850 Ez bada, orduan ari gara joan s tarte 1, s tarte 2 begiratzen. 328 00:14:42,850 --> 00:14:45,050 Genuen arte jarraitzea dugu null amaierako aurkitu. 329 00:14:45,050 --> 00:14:48,580 Aurkitu dugu behin, eta ondoren n dauka Guztira, katearen luzera du, 330 00:14:48,580 --> 00:14:49,942 eta besterik ezin dugu itzultzeko. 331 00:14:49,942 --> 00:14:51,180 332 00:14:51,180 --> 00:14:51,865 >> 24 galdera. 333 00:14:51,865 --> 00:14:53,010 334 00:14:53,010 --> 00:14:56,050 Beraz, hau bat da, non merkataritza egiteko off izan. 335 00:14:56,050 --> 00:14:59,810 Beraz, gauza bat da bat ere ona horrela, baina, zer modu da txarra? 336 00:14:59,810 --> 00:15:02,980 Beraz, hemen, batu, ordenatu joera burbuila sort baino azkarragoa izan. 337 00:15:02,980 --> 00:15:06,530 Behin ongi esan Egia, badaude Erantzun bat baino gehiago daude hemen. 338 00:15:06,530 --> 00:15:12,930 Baina nagusia burbuila ordenatu dela n omega antolatu zerrenda bat da. 339 00:15:12,930 --> 00:15:14,950 >> Gogoratu taula lehenago ikusi besterik ez dugu. 340 00:15:14,950 --> 00:15:17,600 Beraz, burbuila ordenatzen omega n, kasu onena agertokia 341 00:15:17,600 --> 00:15:20,010 da gai Joan besterik ez da Zerrendako behin, zehaztu 342 00:15:20,010 --> 00:15:22,270 beno gauza hau da jadanik ordenatuta, eta itzulera. 343 00:15:22,270 --> 00:15:25,960 Batu, ordenatu, ez zer egin duzu, n log n omega da. 344 00:15:25,960 --> 00:15:29,200 Beraz horrela antolatu zerrenda egiteko, burbuila sort da azkarragoa izango da. 345 00:15:29,200 --> 00:15:30,870 346 00:15:30,870 --> 00:15:32,430 >> Orain zertaz zerrendak lotuta? 347 00:15:32,430 --> 00:15:36,070 Beraz lotutako zerrenda bat hazten eta txikitu dezake elementu asko bezala egokitzeko, behar bezala. 348 00:15:36,070 --> 00:15:38,489 Behin beraz Egia esan normalean zuzeneko konparazioa 349 00:15:38,489 --> 00:15:40,280 dago lotuta izango array bat zerrendara. 350 00:15:40,280 --> 00:15:41,600 351 00:15:41,600 --> 00:15:44,050 Beraz, nahiz eta matrizeak ezin arren Erraz hazten eta txikitu 352 00:15:44,050 --> 00:15:47,130 elementu asko bezala egokitzeko behar bezala, lotuta zerrenda 353 00:15:47,130 --> 00:15:49,600 aldean array batekin batera array ausazko sarbidea du. 354 00:15:49,600 --> 00:15:52,960 Edozein sartu indizea ahal dugun array elementu bereziki. 355 00:15:52,960 --> 00:15:56,430 >> Beraz lotutako zerrenda bat, ezin dugu besterik bosgarren elementu batera joateko, 356 00:15:56,430 --> 00:16:00,260 hasieratik zeharkatuko dugun bosgarren elementu iritsi arte. 357 00:16:00,260 --> 00:16:03,990 Eta hori gurekin saihesteko batetik joan bilaketa bitarra antzeko zerbait egiten. 358 00:16:03,990 --> 00:16:08,150 Bilaketa bitarra hitz, bilaketa bitarra bilaketa lineala baino azkarragoa izan ohi da. 359 00:16:08,150 --> 00:16:11,120 Hori esanda -bere beraz, gauza bat posible 360 00:16:11,120 --> 00:16:13,380 da ezin duzula egin bitar bilatu lotutako zerrendak eta, 361 00:16:13,380 --> 00:16:14,730 bakarrik egin ahal izango da array. 362 00:16:14,730 --> 00:16:18,030 Baina, ziurrenik, are garrantzitsuagoa dena, ezin duzu bilaketa bitarra 363 00:16:18,030 --> 00:16:20,690 Hori ez da horrela antolatu array batean. 364 00:16:20,690 --> 00:16:23,990 Upfront liteke ordenatzeko behar duzu array, eta soilik ondoren, ahal 365 00:16:23,990 --> 00:16:25,370 bilaketa bitarra egin duzu. 366 00:16:25,370 --> 00:16:27,660 Beraz, zure gauza ez baldin bada ordenatuko hasteko, 367 00:16:27,660 --> 00:16:29,250 ondoren, bilaketa lineala azkarragoa izan daiteke. 368 00:16:29,250 --> 00:16:30,620 369 00:16:30,620 --> 00:16:31,740 >> 27 galdera. 370 00:16:31,740 --> 00:16:34,770 Horretarako, programa kontuan azpitik, hau da, hurrengo diapositiba izango da. 371 00:16:34,770 --> 00:16:37,790 Eta hau da, non gaude da to esplizituki nahi joan 372 00:16:37,790 --> 00:16:39,980 zenbait aldagai balioak. 373 00:16:39,980 --> 00:16:41,990 Hargatik begiratu hartan. 374 00:16:41,990 --> 00:16:43,160 >> Beraz, lerro bat. 375 00:16:43,160 --> 00:16:45,457 Int x berdinen 1 daukagu. 376 00:16:45,457 --> 00:16:47,040 Hori dela gertatu gauza bakarra. 377 00:16:47,040 --> 00:16:50,440 Beraz, lerro bat, ikusiko dugu gure mahaia, y que, a, b, eta tmp dira guztiak 378 00:16:50,440 --> 00:16:51,540 blacked. 379 00:16:51,540 --> 00:16:52,280 Beraz, zer da x? 380 00:16:52,280 --> 00:16:53,860 Beno ezarri besterik ez dugu 1 balioa. 381 00:16:53,860 --> 00:16:55,020 382 00:16:55,020 --> 00:16:58,770 Eta gero, bi lerro, bai, y hori 2 ez ikusiko dugu, 383 00:16:58,770 --> 00:17:00,550 eta mahaia da dagoeneko betetako Gurekin. 384 00:17:00,550 --> 00:17:03,040 Beraz, x 1 eta y 2. 385 00:17:03,040 --> 00:17:05,890 >> Orain, hiru lerro, orain gaude swap funtzioa barruan. 386 00:17:05,890 --> 00:17:07,560 Zer trukatu pasatzen dugu? 387 00:17:07,560 --> 00:17:11,609 Ampersand x gainditu dugu bat, eta ampersand y b da. 388 00:17:11,609 --> 00:17:15,160 Non arazoa lehenago adierazi duenez, x helbidea 389 00:17:15,160 --> 00:17:17,520 0x10 da, eta y helbidea 0x14 da. 390 00:17:17,520 --> 00:17:18,970 391 00:17:18,970 --> 00:17:21,909 Beraz, A eta B berdinak dira 0x10 eta 0x14, hurrenez hurren. 392 00:17:21,909 --> 00:17:23,670 393 00:17:23,670 --> 00:17:26,250 >> Orain hiru lerroan, zer dira x eta y? 394 00:17:26,250 --> 00:17:28,554 Beno, ez da ezer aldatu x eta y puntu honetan buruz. 395 00:17:28,554 --> 00:17:30,470 Nahiz Oraindik dute nahiz pila nagusiak marko baten barruan, 396 00:17:30,470 --> 00:17:32,469 oraindik ere berdina dute balioak baino lehen egin zuten. 397 00:17:32,469 --> 00:17:34,030 Ez dugu memoria aldatu. 398 00:17:34,030 --> 00:17:35,710 Beraz, x 1, 2 y da. 399 00:17:35,710 --> 00:17:36,550 400 00:17:36,550 --> 00:17:37,050 Guztiak eskubidea. 401 00:17:37,050 --> 00:17:40,300 Beraz, orain int berdintasuna protagonista tmp esan genuen. 402 00:17:40,300 --> 00:17:44,410 Beraz, lerro lau, dena bera tmp izan ezik. 403 00:17:44,410 --> 00:17:47,130 Ez dugu aldatu baliorik ezer tmp ezik. 404 00:17:47,130 --> 00:17:49,230 Tmp berdinak izar bat izateko ari gara. 405 00:17:49,230 --> 00:17:50,620 Zer da izar bat? 406 00:17:50,620 --> 00:17:56,240 Beno, puntu bat x, Beraz, izar bat da x berdina da, hau da 1 to joan. 407 00:17:56,240 --> 00:18:00,080 Beraz, dena kopiatu behera, eta tmp 1 ezarrita. 408 00:18:00,080 --> 00:18:01,110 >> Orain hurrengo lerroan. 409 00:18:01,110 --> 00:18:03,380 Star izar b berdin. 410 00:18:03,380 --> 00:18:10,000 Beraz lerroz five-- ondo berriro, dena bera dena delakoa izar bat da salbu. 411 00:18:10,000 --> 00:18:10,830 Zer da izar bat? 412 00:18:10,830 --> 00:18:13,720 Beno, esan besterik ez dugu izar bat x da. 413 00:18:13,720 --> 00:18:16,400 Beraz, x aldatzen ari gara izar berdinak b. 414 00:18:16,400 --> 00:18:18,960 Zer da izar b? y. b y puntu. 415 00:18:18,960 --> 00:18:21,030 Beraz, izar b y da. 416 00:18:21,030 --> 00:18:25,140 Beraz, x y-berdintasuna ari gara, eta beste guztia berdina da. 417 00:18:25,140 --> 00:18:29,130 Beraz, hurrengo lerroan ikusiko dugu x da gaur egun 2, eta gainontzekoak dira kopiatu besterik ez behera. 418 00:18:29,130 --> 00:18:31,120 >> Orain, hurrengo lerroan, star b berdin tmp. 419 00:18:31,120 --> 00:18:34,740 Beno, esan besterik ez dugu izar b y da, beraz, y tmp-berdintasuna ari gara. 420 00:18:34,740 --> 00:18:37,450 Beste guztia berdina da, beraz, dena kopiatzen lortzen behera. 421 00:18:37,450 --> 00:18:42,050 Y berdintasuna ari gara, gordetzean hau da, bat, eta beste guztia berdina da. 422 00:18:42,050 --> 00:18:43,210 >> Orain, azkenik, zazpi line. 423 00:18:43,210 --> 00:18:44,700 Funtzio nagusia itzuli gara. 424 00:18:44,700 --> 00:18:46,350 Swap amaitu ondoren gaude. 425 00:18:46,350 --> 00:18:48,972 A, b galdu egin dugu, eta tmp, baina, azken finean, guk 426 00:18:48,972 --> 00:18:51,180 Ez zara baliorik aldatzen Puntu honetan ezer, 427 00:18:51,180 --> 00:18:52,800 x eta y behera kopiatu besterik ez dugu. 428 00:18:52,800 --> 00:18:56,490 Eta x eta y direla ikusten dugu gaur egun, 2 eta 1 ordez 1 eta 2. 429 00:18:56,490 --> 00:18:58,160 Swap arrakastaz exekutatu. 430 00:18:58,160 --> 00:18:59,500 431 00:18:59,500 --> 00:19:00,105 >> 28 galdera. 432 00:19:00,105 --> 00:19:01,226 433 00:19:01,226 --> 00:19:03,100 Demagun topo duzula akats mezuak 434 00:19:03,100 --> 00:19:06,790 bulego orduetan azpitik hurrengo urtean CA edo TF gisa. 435 00:19:06,790 --> 00:19:08,930 Akats horien bakoitza nola konpondu aholkatzeko. 436 00:19:08,930 --> 00:19:11,160 Beraz GetString undefined erreferentzia. 437 00:19:11,160 --> 00:19:12,540 Zergatik izan liteke hori ikusten duzu? 438 00:19:12,540 --> 00:19:15,380 Beno, ikasle bat erabiltzen ari bada Bere kodea da GetString, 439 00:19:15,380 --> 00:19:20,310 dute behar bezala hash sartua cs50 dot h cs50 liburutegia, besteak beste. 440 00:19:20,310 --> 00:19:22,380 >> Beno, zer egiten dute errore hau konpondu behar? 441 00:19:22,380 --> 00:19:26,810 Etenaren aldean dituen lcs50 bat egin behar dute, komando lerroko konpilatzean ari dira. 442 00:19:26,810 --> 00:19:29,501 Beraz, ez dute pasatzen clang etenaren dituen lcs50, ari dira 443 00:19:29,501 --> 00:19:32,000 Ez da benetako izan joan GetString inplementatzen kodea. 444 00:19:32,000 --> 00:19:33,190 445 00:19:33,190 --> 00:19:34,170 >> 29 galdera. 446 00:19:34,170 --> 00:19:36,190 Inplizituki deklaratzen liburutegi funtzioa strlen. 447 00:19:36,190 --> 00:19:37,550 448 00:19:37,550 --> 00:19:40,360 Beno, hau, gaur egun, ez dute besteak beste, egoki hash egin. 449 00:19:40,360 --> 00:19:41,440 450 00:19:41,440 --> 00:19:45,410 Kasu honetan, goiburu-fitxategia kate dot h da, besteak beste behar dute, 451 00:19:45,410 --> 00:19:48,710 eta barne kate dot h, orain student-- orain konpilatzailea 452 00:19:48,710 --> 00:19:51,750 sarbidea du strlen deklarazioak, 453 00:19:51,750 --> 00:19:54,120 eta badaki zure kodea duten da strlen egokian erabiliz. 454 00:19:54,120 --> 00:19:55,380 455 00:19:55,380 --> 00:19:56,580 >> 30 galdera. 456 00:19:56,580 --> 00:20:00,240 Ehuneko bihurketa gehiago Datu argudioak baino. 457 00:20:00,240 --> 00:20:01,540 Beraz, zer da hau? 458 00:20:01,540 --> 00:20:06,470 Ondo gogoan ehuneko horiek signs-- nola garrantzitsua printf ari dira. 459 00:20:06,470 --> 00:20:08,890 Beraz printf agian percent-- dugu zerbait inprimatu dugu 460 00:20:08,890 --> 00:20:11,380 berea bezalako i backslash n. 461 00:20:11,380 --> 00:20:15,310 Edo agian ehuneko i like inprimatu dugu, espazioa, ehuneko i, espazioa, ehuneko i. 462 00:20:15,310 --> 00:20:18,950 Beraz, horietako bakoitzerako ehuneko seinaleak, behar dugu 463 00:20:18,950 --> 00:20:21,560 aldagai bat pasatzeko printf amaieran. 464 00:20:21,560 --> 00:20:26,980 >> Beraz, esan badugu printf paren ehuneko i backslash n itxi paren, 465 00:20:26,980 --> 00:20:30,270 bai, ari gara esaten dugu zenbaki oso bat inprimatzeko, 466 00:20:30,270 --> 00:20:33,970 baina gero ez dugu gainditu printf zenbaki oso bat benetan inprimatu. 467 00:20:33,970 --> 00:20:37,182 Hortaz, hona hemen ehuneko gehiago Datu argumentuak baino bihurketa? 468 00:20:37,182 --> 00:20:39,390 Hori dugula esaten portzentaiak sorta oso bat, 469 00:20:39,390 --> 00:20:42,445 eta ez dugu aldagai nahikoa portzentaiak horietan benetan bete. 470 00:20:42,445 --> 00:20:44,850 471 00:20:44,850 --> 00:20:50,010 >> Eta, ondoren, behin betiko, galdera 31, 40 byte behin betiko galdu bloke batean. 472 00:20:50,010 --> 00:20:52,350 Beraz, hau Valgrind error da. 473 00:20:52,350 --> 00:20:54,720 Hori dela esanez Zure kodea, nonbait, 474 00:20:54,720 --> 00:20:59,010 40 da esleipen bat behar duzu byte handiak beraz, 40 byte malloced duzu, 475 00:20:59,010 --> 00:21:00,515 eta inoiz ez da libratuko da. 476 00:21:00,515 --> 00:21:02,480 477 00:21:02,480 --> 00:21:05,140 Seguruenik, besterik ez duzu Memoria leak batzuk aurkitu, 478 00:21:05,140 --> 00:21:07,650 eta jakin non behar duzun memoria bloke hau libre. 479 00:21:07,650 --> 00:21:08,780 480 00:21:08,780 --> 00:21:11,910 >> Eta 32 zalantzan, tamaina 4 idazteko baliogabea. 481 00:21:11,910 --> 00:21:13,250 Again hau Valgrind error da. 482 00:21:13,250 --> 00:21:15,440 Honek ez du egin memoria filtrazioak orain. 483 00:21:15,440 --> 00:21:20,750 Hau da, gehien likely-- esan nahi dut, hori da memoria eskubide baliogabea nolabaiteko. 484 00:21:20,750 --> 00:21:23,270 Eta ziurrenik hori da zenbait buffer gainezkatzea moduko. 485 00:21:23,270 --> 00:21:26,560 Non array bat duzu, agian zenbaki oso array bat, eta dezagun 486 00:21:26,560 --> 00:21:30,115 esatea tamaina 5, eta zuek saiatu array bracket 5 ukitzeko. 487 00:21:30,115 --> 00:21:34,150 Beraz hori idatzi saiatu baduzu balioa, hori ez da memoria zati bat 488 00:21:34,150 --> 00:21:37,440 benetan behar duzu sartzeko, eta beraz, errore hau lortzeko ari zaren, 489 00:21:37,440 --> 00:21:39,272 tamaina 4 idazteko baliogabea esaten. 490 00:21:39,272 --> 00:21:42,480 Valgrind da Oraindik ezagutzen joan memoria inappropriately ukitu nahian. 491 00:21:42,480 --> 00:21:43,980 >> Eta hori da quiz0 da. 492 00:21:43,980 --> 00:21:47,065 Nago Rob Bowden da, eta hau da CS50. 493 00:21:47,065 --> 00:21:51,104