1 00:00:00,000 --> 00:00:02,970 >> [Musika jotzen] 2 00:00:02,970 --> 00:00:14,355 3 00:00:14,355 --> 00:00:15,700 >> DAVID J. MALAN: Ondo da. 4 00:00:15,700 --> 00:00:18,832 Hau CS50 eta hau da, Astea 2 hasiera da. 5 00:00:18,832 --> 00:00:21,040 Eta hori baino gehiago gogoratzen dituzu iragan aste pare, 6 00:00:21,040 --> 00:00:24,490 Zuk dugu sartuz ordenagailua zientzia eta, aldi berean, programazioa. 7 00:00:24,490 --> 00:00:27,640 >> Eta istorioa hasi ginen bidez Scratch, hizkuntza grafikoa 8 00:00:27,640 --> 00:00:28,990 MIT Media Lab-tik. 9 00:00:28,990 --> 00:00:30,780 Eta gero, azken aldian, azken astean, egin dugu 10 00:00:30,780 --> 00:00:34,450 handiagoa egiteko bat aurkeztu behe-mailako hizkuntza ezagutzen 11 00:00:34,450 --> 00:00:36,770 C, zerbait hori guztiz textual bezala. 12 00:00:36,770 --> 00:00:39,440 Eta, hain zuzen ere, azken denbora dugu testuinguru hartan esploratu 13 00:00:39,440 --> 00:00:40,450 kontzeptu kopuru bat. 14 00:00:40,450 --> 00:00:43,010 >> Hau, oroitzapen, izan zen oso Lehenengo programa begiratu dugu. 15 00:00:43,010 --> 00:00:45,710 Eta programa hau, nahiko besterik gabe, inprimatzen, "kaixo, mundua." 16 00:00:45,710 --> 00:00:47,730 Baina ez da hainbeste seeming magia gertatzen. 17 00:00:47,730 --> 00:00:51,460 Ez dago #include hau da angelu parentesi hauekin. 18 00:00:51,460 --> 00:00:52,170 Ez dago int da. 19 00:00:52,170 --> 00:00:53,020 Ez dago (void). 20 00:00:53,020 --> 00:00:56,330 Ez dago parentesi, kizkur giltza, erdi-puntu bikoitza, eta, beraz, askoz gehiago. 21 00:00:56,330 --> 00:00:58,480 >> Eta beraz, gogora ekarri Scratch sartu dugu 22 00:00:58,480 --> 00:01:02,110 beraz, ezin izan dugu, haien, ikusi iragan sintaxia, material hori ez da benetan 23 00:01:02,110 --> 00:01:04,590 hori guztia intelektualki interesgarria baina goiz 24 00:01:04,590 --> 00:01:07,700 da, erabat, apur bat zaila zure burua inguruan biltzea da. 25 00:01:07,700 --> 00:01:10,860 Eta, hain zuzen ere, ohikoena bat Gauzak hasieratik programazio klase batean, 26 00:01:10,860 --> 00:01:13,443 batez ere gutxiago dutenentzat eroso, da zapuztu arabera 27 00:01:13,443 --> 00:01:17,460 eta erori zen zenbait sintaktikoaren arabera akatsak, ez logikoa akatsak aipatzearren. 28 00:01:17,460 --> 00:01:19,800 Eta, beraz, gure helburuak artean gaur, benetan, borondatea 29 00:01:19,800 --> 00:01:23,280 izan duzu hornitzea batzuk arazoen konponbideari nola teknikak 30 00:01:23,280 --> 00:01:26,705 hobeto konpondu arazoak beraiek arazketa formularioa. 31 00:01:26,705 --> 00:01:29,330 Eta gogoratzen duzu, gehiegi, hori ingurune horretan sartu dugu 32 00:01:29,330 --> 00:01:31,780 Azken aldiz deitzen zen CS50 IDE. 33 00:01:31,780 --> 00:01:34,850 Honek web-oinarritutako software da ahalbidetzen hodeia inolako programarik, 34 00:01:34,850 --> 00:01:38,450 nolabait esateko, berriz, guztiak mantenduz zure fitxategiak elkarrekin, jo dugu berriro izango da gaur. 35 00:01:38,450 --> 00:01:41,480 Eta gogoratzen dugun revisited gai hauek hemen, 36 00:01:41,480 --> 00:01:44,480 horien artean funtzioak, eta loops, eta aldagaiak, eta adierazpen boolearrak, 37 00:01:44,480 --> 00:01:45,110 eta baldintza. 38 00:01:45,110 --> 00:01:49,190 Eta egia esan gutxi gehiago dugun Scratch munduan itzulia 39 00:01:49,190 --> 00:01:50,800 C. munduan den 40 00:01:50,800 --> 00:01:53,220 >> Baina oinarrizko eraikina blokeak, nolabait esateko, 41 00:01:53,220 --> 00:01:55,150 ziren benetan oraindik berean, azken astean. 42 00:01:55,150 --> 00:01:57,900 Izan ere, benetan besterik ez dugu izan desberdinak puzzle pieza, izango bada. 43 00:01:57,900 --> 00:02:00,300 morea horren ordez gorde blokea, ordez 44 00:02:00,300 --> 00:02:02,940 printf zuen, hau da, C funtzio hori 45 00:02:02,940 --> 00:02:05,890 ematen du zerbait inprimatu behar dituzu eta formatua da pantailan. 46 00:02:05,890 --> 00:02:07,950 CS50 sartu dugu Liburutegia, non duzu 47 00:02:07,950 --> 00:02:11,420 orain zure eskura get_char at, eta get_int, eta get_string, 48 00:02:11,420 --> 00:02:14,610 eta beste zenbait funtzio gisa bai, eta horrek bidezko sarrera eskuratu ahal izango duzu 49 00:02:14,610 --> 00:02:16,260 erabiltzailearen teklatu propioa. 50 00:02:16,260 --> 00:02:20,640 Eta, gainera, gauzak begirada bat hartu genuen bool these-, eta char bezala, 51 00:02:20,640 --> 00:02:22,490 eta bikoitza, karroza, int, long_long katea. 52 00:02:22,490 --> 00:02:25,170 Eta ez da, nahiz eta beste datu C. motak 53 00:02:25,170 --> 00:02:28,560 >> Beste era batera esanda, aldarrikatu duzu In aldakorreko balio batzuk gordetzeko, 54 00:02:28,560 --> 00:02:32,600 edo funtzio bat ezartzeko duten balio batzuk itzultzen, 55 00:02:32,600 --> 00:02:35,290 zer zehaztu dezakezu balio hori da mota. 56 00:02:35,290 --> 00:02:37,310 Da kate bat, bat bezala karaktere-sekuentzia? 57 00:02:37,310 --> 00:02:39,490 Da zenbaki bat, oso bat bezala? 58 00:02:39,490 --> 00:02:41,390 Da hamarren bat balio, edo antzekoak? 59 00:02:41,390 --> 00:02:46,180 Beraz, C, Scratch bezala, benetan dugu zein datu mota zehazteko hasi 60 00:02:46,180 --> 00:02:48,330 itzuli edo erabiliz ginen. 61 00:02:48,330 --> 00:02:51,910 >> Baina, jakina, ere sartu zuena dugu informatika funtsezko muga batzuk. 62 00:02:51,910 --> 00:02:54,100 Eta, batez ere, hau hizkuntza C, abisuaren 63 00:02:54,100 --> 00:02:57,070 duten begirada bat hartu genuen at zenbaki oso gainezkatze, errealitatea 64 00:02:57,070 --> 00:03:00,460 Besterik baduzu izan duten memoria kopuru finitu 65 00:03:00,460 --> 00:03:04,600 edo, zehatzago esanda, kopuru mugatu batean bit baino ezin duzu zenbatu hain altua. 66 00:03:04,600 --> 00:03:08,460 Eta beraz, begiratu adibide honetan hemen Horren bidez, hegazkin bat counter bat, 67 00:03:08,460 --> 00:03:13,510 benetan, exekutatzen bada nahikoa luzea litzateke gainezkatzea eta software bat eragin 68 00:03:13,510 --> 00:03:15,560 benetako potentziala error fisiko bat. 69 00:03:15,560 --> 00:03:18,600 >> halaber flotatzen begiratu dugu Puntu zehaztugabetasunak, errealitatea 70 00:03:18,600 --> 00:03:22,280 Hori bakarrik kopuru mugatu batekin Bit, da ala ez da 32 edo 64, 71 00:03:22,280 --> 00:03:27,330 zenbakiak hainbeste bakarrik zehaztu dezakezu hamartar puntu bat, ondoren zein ondoren 72 00:03:27,330 --> 00:03:29,110 Hasteko zehazgabea lortzeko. 73 00:03:29,110 --> 00:03:32,360 Horrela, esate baterako, herena in the Mundu hemen, gure giza mundu batean, 74 00:03:32,360 --> 00:03:35,360 ezagutzen dugu infinitua zenbaki bat besterik ez da du dezimal ondoren 3s. 75 00:03:35,360 --> 00:03:38,820 Baina ordenagailu bat ezin nahitaez adierazten zenbakiak kopurua infinitua 76 00:03:38,820 --> 00:03:42,590 zuk bakarrik uzten badu batzuk Informazio kopuru finitu. 77 00:03:42,590 --> 00:03:45,900 >> Beraz, ez bakarrik zenuen hornitzea dugu dagokionez botere handiagoa duten 78 00:03:45,900 --> 00:03:49,280 nola zeure burua adierazteko dezakezu at programazioari dagokionez teklatu bat, 79 00:03:49,280 --> 00:03:51,430 ere mugatua dugu zer Benetan egin ahal izango duzu. 80 00:03:51,430 --> 00:03:55,790 Eta hain zuzen ere, arazoen eta akatsak ahal gai mota horiek sortzen. 81 00:03:55,790 --> 00:03:59,900 Eta hain zuzen ere, gai hauen artean gaur dira arazketa bezalako gaiak izango da 82 00:03:59,900 --> 00:04:03,699 eta benetan kanpaia azpian bila Gauzak nola sartu ziren joan den astean 83 00:04:03,699 --> 00:04:05,490 benetan burutzen dira zuk hobeto, beraz, 84 00:04:05,490 --> 00:04:10,530 gaitasunak ulertu bai eta C. bezalako hizkuntza baten muga 85 00:04:10,530 --> 00:04:14,770 >> Eta hain zuzen ere, zuritu dizkizugu atzera geruzak Datuen egitura errazena, 86 00:04:14,770 --> 00:04:17,756 zerbait izeneko array bat, eta horrek Scratch gertatzen bat deitzeko "zerrendan." 87 00:04:17,756 --> 00:04:19,589 Pixka bat da Testuinguru horretan hainbat. 88 00:04:19,589 --> 00:04:23,340 Eta gero ere nahi dugu bat aurkeztu gure domeinu-partida arazoak lehen 89 00:04:23,340 --> 00:04:26,790 CS50, munduan kriptografia, scrambling arte 90 00:04:26,790 --> 00:04:29,650 edo informazio aritmetika orain sekretua mezuak bidali ahal izango duzu 91 00:04:29,650 --> 00:04:34,520 eta mezu sekretua deskodetu bi pertsona, A eta B. artean 92 00:04:34,520 --> 00:04:37,490 >> Beraz, trantsizio aurretik mundu berri hori, 93 00:04:37,490 --> 00:04:42,059 dezagun saiatu duzu hornitzea batzuk teknika horrekin kentzeko dezakezu 94 00:04:42,059 --> 00:04:43,850 edo murrizteko, gutxienez batzuk frustrazio du 95 00:04:43,850 --> 00:04:46,630 izan duzula beharbada Iragan astean baino gehiago bakarrik. 96 00:04:46,630 --> 00:04:50,830 Izan ere, aurretik duzun dira batzuk such-- Zure C. Eta odds lehen arazoak dira, 97 00:04:50,830 --> 00:04:54,010 Ni bezalako ari bada, lehen aldiz out idatzi programa bat saiatu duzu, 98 00:04:54,010 --> 00:04:57,330 logikoki uste baduzu ere programa nahiko erraza da, 99 00:04:57,330 --> 00:05:01,200 Oso litekeena hit duzu harresi bat, eta konpiladoreak ez da lankidetzan aritzeko joan. 100 00:05:01,200 --> 00:05:03,940 Egin edo Clang ez da joango benetan egiten zure lizitazioak. 101 00:05:03,940 --> 00:05:05,450 >> Eta zergatik izan liteke? 102 00:05:05,450 --> 00:05:07,950 Beno, dezagun begirada bat, agian, programa sinple bat. 103 00:05:07,950 --> 00:05:11,190 Aurrera joan eta gorde honetan noa Fitxategi bat nahita izeneko buggy0.c, 104 00:05:11,190 --> 00:05:13,590 nik badakit hori delako aldez aurretik flawed. 105 00:05:13,590 --> 00:05:17,400 Baina agian ez dut konturatzen hori bada lehen edo bigarren edo hirugarren programa da 106 00:05:17,400 --> 00:05:18,830 hori benetan ari naiz nire buruari egiten. 107 00:05:18,830 --> 00:05:23,820 Beraz, aurrera noa joan eta idatz out, int main (void). 108 00:05:23,820 --> 00:05:28,130 Eta gero nire giltza kizkur barruan, Oso ezaguna da ( "kaixo, mundu 109 00:05:28,130 --> 00:05:30,980 backslash, n ") - eta puntu bat. 110 00:05:30,980 --> 00:05:32,360 >> fitxategia gorde dut. 111 00:05:32,360 --> 00:05:34,850 Orain ez dut behera joan nire terminal leihoa 112 00:05:34,850 --> 00:05:40,340 eta idatzi egin buggy0, izan ere, berriro, gaur fitxategi baten izena buggy0.c da. 113 00:05:40,340 --> 00:05:43,660 Beraz buggy0 egiteko, Sartu idazten dut. 114 00:05:43,660 --> 00:05:48,200 >> Eta, oh, gosh, azken aldiz gogoratzen error mezurik ez egotea gauza ona da. 115 00:05:48,200 --> 00:05:49,740 Beraz, ez du irteerarik gauza ona da. 116 00:05:49,740 --> 00:05:52,920 Baina hemen, argi eta garbi daukat akatsak zenbaki batzuk. 117 00:05:52,920 --> 00:05:56,470 >> Beraz irteera lehen lerroan buggy0 ekiditeko ondoren, oroitzapen, 118 00:05:56,470 --> 00:05:59,540 Clang nahiko irteera luzea da. 119 00:05:59,540 --> 00:06:02,067 kanpaia azpian, CS50 IDE konfiguratuta dagoela 120 00:06:02,067 --> 00:06:04,150 sorta oso bat erabili Konpiladore honekin aukerak 121 00:06:04,150 --> 00:06:05,941 beraz, ez duzula dute haiei buruz pentsatzen. 122 00:06:05,941 --> 00:06:08,840 Eta hori lehen lerroan hori guztia bide hori Clang batekin hasten da. 123 00:06:08,840 --> 00:06:11,720 >> Baina, ondoren, arazo Hasteko bere itxura egiteko. 124 00:06:11,720 --> 00:06:17,390 Buggy0.c linea 3, pertsonaia on 5, han big, error gorri bat da. 125 00:06:17,390 --> 00:06:18,380 Zer da hori? 126 00:06:18,380 --> 00:06:23,562 Inplizituki liburutegi funtzioa geratuko mota int (char * batekin printf, 127 00:06:23,562 --> 00:06:26,050 ...) [Werror]. 128 00:06:26,050 --> 00:06:28,379 Esan nahi dut, oso azkar Oso urrutira lortzen. 129 00:06:28,379 --> 00:06:30,170 Eta, zalantzarik gabe, lehen begiratuan, ez genuke 130 00:06:30,170 --> 00:06:32,380 Espero ulertzen mezu hori osotasunean. 131 00:06:32,380 --> 00:06:34,213 Eta beraz, ikasgai bat gaur da joan 132 00:06:34,213 --> 00:06:36,919 nabarituko saiatu izan ereduak, edo antzeko gauzak, 133 00:06:36,919 --> 00:06:38,960 akatsak duzun izan iraganean topatu. 134 00:06:38,960 --> 00:06:41,335 Hargatik aurre gain bakarrik horiek begiratzen duten familiar hitzak. 135 00:06:41,335 --> 00:06:44,290 The big, error gorria da argi eta garbi, Zerbait sinbolikoa oker egotea. 136 00:06:44,290 --> 00:06:47,940 >> inplizituki liburutegi funtzioa printf. 137 00:06:47,940 --> 00:06:51,680 Beraz, ez dut ondo ulertzen, nahiz eta zer inplizituki liburutegi funtzioa geratuko 138 00:06:51,680 --> 00:06:54,900 bitartekoak, arazoa ziur aski erlazionatzen nolabait printf. 139 00:06:54,900 --> 00:06:59,130 Eta gai hori iturburu bertan geratuko egin du. 140 00:06:59,130 --> 00:07:02,440 >> Deklaratzea funtzioa da aipatu du lehen aldiz. 141 00:07:02,440 --> 00:07:06,210 Eta terminologia erabili dugu azken astean Funtzio baten prototipoa aitortzerakoan, 142 00:07:06,210 --> 00:07:11,860 bai goialdean lerro bat zure egin fitxategia edo goiburu fitxategi deiturikoak batean. 143 00:07:11,860 --> 00:07:15,300 Eta zer fitxategi egin esaten dugu azken astean printf dela aurrekontua, 144 00:07:15,300 --> 00:07:17,080 unquote, deklaratu? 145 00:07:17,080 --> 00:07:20,950 zer fitxategia bere prototipoa da? 146 00:07:20,950 --> 00:07:24,640 >> Beraz, bada, gogoratzen duzu lehen gauza dut Idatzitako, ia programa guztietan azken aldia 147 00:07:24,640 --> 00:07:30,790 eta ustekabean une bat duela hasi myself-- idazten inork hemen hau zen 148 00:07:30,790 --> 00:07:38,630 hash #include 00:07:41,860 orain I fitxategi hau gorde bada, banoa Aurrera joan eta garbitu nire pantailan, 150 00:07:41,860 --> 00:07:44,740 zein idatziz egin dezakezu Garbitu, edo Kontrol L eutsi ahal izango duzu, 151 00:07:44,740 --> 00:07:47,680 besterik zure terminal-leiho garbitzeko besterik gehiegi batzuk kentzeko. 152 00:07:47,680 --> 00:07:51,370 >> Aurrera joan noa eta re-mota egin buggy0, Sartu. 153 00:07:51,370 --> 00:07:53,790 Eta voila, oraindik ere ikusten dut Clang komando luze, 154 00:07:53,790 --> 00:07:55,470 baina ez error message une honetan ez da. 155 00:07:55,470 --> 00:07:58,800 Eta hain zuzen ere, ./buggy0 egiten badut, besterik gabe, azken denbora bezala, 156 00:07:58,800 --> 00:08:01,860 non dot esan hau direktorioa, barra besterik esan nahi, 157 00:08:01,860 --> 00:08:05,040 Hemen programa izenarekin dator eta Programaren izen hori buggy0 da, 158 00:08:05,040 --> 00:08:07,340 Sartu, "kaixo, mundua." 159 00:08:07,340 --> 00:08:09,440 >> Orain, nola izan duzun Gleaned irtenbide hau 160 00:08:09,440 --> 00:08:12,017 nahitaez gabe hitz asko bezala aitortuz 161 00:08:12,017 --> 00:08:14,350 Dudan bezala, zalantzarik gabe, beharrik Egin honetan hainbeste urtetan? 162 00:08:14,350 --> 00:08:18,720 Beno, lehenengo arazoa per konturatzen set, aurkeztu dugu agindu bat 163 00:08:18,720 --> 00:08:21,175 CS50 langileek egin duten idatzi zuen deitzen help50. 164 00:08:21,175 --> 00:08:24,300 Eta hain zuzen ere, C zehaztapen egiten da Arazoa hau nola erabili behar bezala ezarri. 165 00:08:24,300 --> 00:08:27,210 >> Baina help50 da, funtsean, programa bat da CS50 langileek 166 00:08:27,210 --> 00:08:30,850 ahalbidetzen duen idatzi zuen exekutatu duzu Komando bat edo programa bat exekutatu, 167 00:08:30,850 --> 00:08:36,169 eta ez baduzu ulertzen bere irteera, bere irteera gainditzeko help50 den, 168 00:08:36,169 --> 00:08:38,890 zein software seinalatu Ikastaro horrek langile idatzi duten 169 00:08:38,890 --> 00:08:42,429 zure programaren irteera begiratu lerroz lerro, karakterez karaktere. 170 00:08:42,429 --> 00:08:46,000 Eta badugu, langileek, aitortu du Errore mezu hori bizitzen ari zaren, 171 00:08:46,000 --> 00:08:50,580 eragiteko batzuekin saiatuko gara galdera erretorikoak, zenbait aholku batera, 172 00:08:50,580 --> 00:08:54,890 TF edo CA edo neu bezala askoz litzateke pertsona do bulego orduetan. 173 00:08:54,890 --> 00:08:58,320 >> Beraz help50 begiratzen ez baduzu nahitaez arazo bat ezagutzen. 174 00:08:58,320 --> 00:09:00,790 Baina ez fidatu too makulua bezainbeste. 175 00:09:00,790 --> 00:09:03,990 Zalantzarik saiatu ulertzen bere irteera eta gero bertatik ikasteko 176 00:09:03,990 --> 00:09:07,571 beraz, behin edo birritan bakarrik egin duzu inoiz exekutatu help50 error jakin bat 177 00:09:07,571 --> 00:09:08,070 mezua. 178 00:09:08,070 --> 00:09:10,660 Horren ondoren, izan behar duzu hobeto hornituak yourself 179 00:09:10,660 --> 00:09:13,180 Irudikatu zer da benetan. 180 00:09:13,180 --> 00:09:14,350 >> Egin dezagun beste bat hemen. 181 00:09:14,350 --> 00:09:20,410 Dezagun aurrera, eta bestean Fitxategi buggy1.c hau deitu dugu. 182 00:09:20,410 --> 00:09:23,110 Eta fitxategi horretan nago to deliberately-- joan 183 00:09:23,110 --> 00:09:26,330 baina asmoa ez dudala zer akats egin dut ulertzen. 184 00:09:26,330 --> 00:09:31,420 >> Aurrera joan eta hau egin noa #include, ez dut geroztik 185 00:09:31,420 --> 00:09:33,660 ikasi nire ikasgai duela une bat. 186 00:09:33,660 --> 00:09:36,220 Int main (void), lehen bezala. 187 00:09:36,220 --> 00:09:40,880 Eta gero, hemen noa katea s egin - get_string. 188 00:09:40,880 --> 00:09:43,770 Eta azken gogoratzen duten Bide honetatik, beno, ordenagailua, 189 00:09:43,770 --> 00:09:48,280 ematen dit aldagai bat, deitu s, eta aldagai hori kate bat mota egiteko 190 00:09:48,280 --> 00:09:50,150 beraz, hitz bat edo gehiago gorde ahal izango dut bertan. 191 00:09:50,150 --> 00:09:52,191 >> Eta gero, eskuineko eskuko on Berdintasun ikurraren alde 192 00:09:52,191 --> 00:09:54,980 get_string da, hau da, CS50 Liburutegian funtzioa 193 00:09:54,980 --> 00:09:55,980 zehazki egiten du hori. 194 00:09:55,980 --> 00:09:59,740 funtzio bat, eta gero lortzen da esku da eskuinetik ezkerrera. 195 00:09:59,740 --> 00:10:02,670 Beraz, berdin ikurra honek ez du esan nahi "Berdinen" matematika gintezke uste bezala. 196 00:10:02,670 --> 00:10:04,750 ezkerretik eskuinera esleitzeko esan nahi du. 197 00:10:04,750 --> 00:10:09,640 Beraz, horrek esan, hartu-tik katea erabiltzaileak eta gorde s barruan. 198 00:10:09,640 --> 00:10:10,460 >> Orain Erabil dezagun. 199 00:10:10,460 --> 00:10:13,820 Dezagun aurrera me now eta bigarren bat bezala lerroa, utzi aurrera me eta esan "kaixo" - 200 00:10:13,820 --> 00:10:19,330 ez "mundu", baina "kaixo,% s-- bertan gure leku-marka, koma s da, 201 00:10:19,330 --> 00:10:22,030 bertan gure aldakorra da, eta, ondoren, puntu eta. 202 00:10:22,030 --> 00:10:26,070 Beraz, ez nuen torlojua gehiegi Hemen, hau kodea zuzena itxura. 203 00:10:26,070 --> 00:10:28,090 >> Eta nire senak dira orain da biltzeko. 204 00:10:28,090 --> 00:10:30,400 Fitxategia buggy1.c deritzo. 205 00:10:30,400 --> 00:10:33,770 Beraz, ez dut buggy1 egiteko, Sartu egin da joan. 206 00:10:33,770 --> 00:10:36,377 Eta darn-da, ez badago nahiz eta lehen baino akats gehiago. 207 00:10:36,377 --> 00:10:38,210 Esan nahi dut, ez dago gehiago Errore mezuak litzateke 208 00:10:38,210 --> 00:10:40,400 Programa honen benetako lerro baino dirudi. 209 00:10:40,400 --> 00:10:42,730 >> Baina eramateko hemen, Oraindik larritu bada ere 210 00:10:42,730 --> 00:10:45,040 bi edo hiru edo batera lau akats mezu gehiago, 211 00:10:45,040 --> 00:10:48,340 dutelakoan beti oso on Mezu horiek lehen. 212 00:10:48,340 --> 00:10:52,220 top-gehienak bat begira, korritu back up gisa behar izango. 213 00:10:52,220 --> 00:10:53,930 Beraz, hemen egin buggy1 idatzi dut. 214 00:10:53,930 --> 00:10:55,700 Hemen Clang irteera dela espero bezala da. 215 00:10:55,700 --> 00:10:57,290 >> Eta hemen lehen error gorria da. 216 00:10:57,290 --> 00:11:02,370 identifikatzaile undeclared katea, zuen standard esan nahi dut? 217 00:11:02,370 --> 00:11:04,260 Beraz estandarra da benetan beste zerbait. 218 00:11:04,260 --> 00:11:06,240 aipatzen erabiltzaile to It teklatua, funtsean. 219 00:11:06,240 --> 00:11:08,080 >> Baina hori ez da zer esan nahi nuen. 220 00:11:08,080 --> 00:11:11,770 Katea esan nahi dut, eta get_string ekarri dut. 221 00:11:11,770 --> 00:11:16,200 Beraz, zer da hori I ahaztua denbora hori egiteko? 222 00:11:16,200 --> 00:11:20,230 Zer da denbora honetan falta? 223 00:11:20,230 --> 00:11:23,600 Nire #include daukat, beraz printf sarbidea izan dut. 224 00:11:23,600 --> 00:11:26,090 >> Baina, zer egin nuen, ez dute besterik gabe sartzeko? 225 00:11:26,090 --> 00:11:29,420 Tira, azken denbora bezala, konpiladoreak kontatu behar dut 226 00:11:29,420 --> 00:11:31,691 Clang zer funtzio horiek dira. 227 00:11:31,691 --> 00:11:33,940 Get_string ez da etorri C. Eta zehazki, 228 00:11:33,940 --> 00:11:38,160 ez da etorriko goiburua fitxategia,. 229 00:11:38,160 --> 00:11:40,770 en ordez dator Zerbait langileen idatzi, 230 00:11:40,770 --> 00:11:44,176 zein fitxategi ezberdin bat da izendatzeko baina egokiekin izendatzen. 231 00:11:44,176 --> 00:11:46,990 232 00:11:46,990 --> 00:11:50,861 >> Beraz, lerro bakarra dela gehituz azken aldiz, kode abisuaren 233 00:11:50,861 --> 00:11:53,610 Clang exekutatzen denean, egingo da nire goi begiratu behera, 234 00:11:53,610 --> 00:11:54,193 Ezkerretik eskuinera. 235 00:11:54,193 --> 00:11:57,200 Honez nabarituko joan, oh, nahi duzun. 236 00:11:57,200 --> 00:11:59,900 Let me joan eta aurkitu duten, lekuan zerbitzari on, 237 00:11:59,900 --> 00:12:03,090 kopiatu eta itsatsi, funtsean, Zure fitxategia goian sartu 238 00:12:03,090 --> 00:12:06,820 beraz, istorioa Puntu honetan, 1. linea, programaren gainerako 239 00:12:06,820 --> 00:12:11,651 daiteke, hain zuzen ere, erabili funtzioetako edozein bertan, horien artean get_string. 240 00:12:11,651 --> 00:12:13,650 Beraz, ez dut ignore joan akatsak horiek gainerako, 241 00:12:13,650 --> 00:12:17,190 I delako, hain zuzen ere, susmoa bakarrik lehenengoa benetan axola. 242 00:12:17,190 --> 00:12:20,780 Eta aurrera noa, eta berriro exekutatu joan, nire fitxategia gorde ondoren egin buggy1. 243 00:12:20,780 --> 00:12:22,580 Eta voila, lan egin zuen. 244 00:12:22,580 --> 00:12:29,200 Eta ./buggy1 egiten badut, eta idatzi ere, egiteko Adibidez, Zamyla, dut orain lortuko kaixo, 245 00:12:29,200 --> 00:12:32,000 Zamyla, horren ordez, kaixo, mundua. 246 00:12:32,000 --> 00:12:32,550 >> Ados. 247 00:12:32,550 --> 00:12:35,890 Beraz takeaways hemen orduan dira, bat, saiatu askoz dezakezu gisa glean 248 00:12:35,890 --> 00:12:39,140 error messages-bakarrik, bila ezaguna hitz batzuk. 249 00:12:39,140 --> 00:12:43,070 hori blokeatzeko, erabili per help50 Arazo ezarritako zehaztapen. 250 00:12:43,070 --> 00:12:46,500 Baina hori blokeatzea, too, beti itxura Goiko error at bakarrik, gutxienez, 251 00:12:46,500 --> 00:12:50,051 Hasieran, ikusi zer informazio agian benetan amore. 252 00:12:50,051 --> 00:12:52,300 Baina bihurtzen da ez da funtzionalitate are gehiago eraiki 253 00:12:52,300 --> 00:12:55,030 CS50 liburutegia laguntzen you goiz seihilekoan 254 00:12:55,030 --> 00:12:57,580 eta hasieran programazio on irudikatu zer oker joan. 255 00:12:57,580 --> 00:12:59,840 Beraz, egin beste adibide bat hemen utzi. 256 00:12:59,840 --> 00:13:04,350 buggy2 hau deitu, bertan noa, Berriro, ez da zuzena egon behar irten 257 00:13:04,350 --> 00:13:05,650 atea, diseinu arabera. 258 00:13:05,650 --> 00:13:09,980 >> Eta aurrera noa joan eta #include egin. 259 00:13:09,980 --> 00:13:12,580 Eta gero, int main (void) egin noa. 260 00:13:12,580 --> 00:13:14,840 Eta gero, bat egin behar begizta noa. 261 00:13:14,840 --> 00:13:16,690 For (int i _ 0. 262 00:13:16,690 --> 00:13:18,750 i baino gutxiago edo 10 berdina da. 263 00:13:18,750 --> 00:13:24,260 i ++, eta, ondoren, kizkur giltza, banoa inprimatzeko besterik hashtag ikurra hemen 264 00:13:24,260 --> 00:13:25,920 eta lerro pertsonaia berri bat. 265 00:13:25,920 --> 00:13:29,220 >> Beraz, nire asmo honekin Programa nahiko besterik gabe 266 00:13:29,220 --> 00:13:33,150 10 aldiz batetik bestera joateko eta iterazio bakoitzean 267 00:13:33,150 --> 00:13:35,260 begizta denbora bakoitzaren zikloaren bitartez, 268 00:13:35,260 --> 00:13:37,660 inprimatu hashtag bat, hashtag bat, hashtag bat. 269 00:13:37,660 --> 00:13:40,480 One per lerroa dudalako Linea berri dute han. 270 00:13:40,480 --> 00:13:42,787 Eta gogoratzen da hori begizta, azken astean per 271 00:13:42,787 --> 00:13:44,620 eta gehiago lortuko duzu sintaxia ezagutzen 272 00:13:44,620 --> 00:13:47,170 hura erabiliz praktika arabera long-- aurretik ematen dit 273 00:13:47,170 --> 00:13:49,740 izeneko i aldagai bat eta ezartzen du 0. 274 00:13:49,740 --> 00:13:52,650 >> Hau gehikuntzak i 1 eta iterazio bakoitzean. 275 00:13:52,650 --> 00:13:54,940 Beraz doa 1 i 2 3. 276 00:13:54,940 --> 00:13:57,690 Eta, ondoren, egoera honetan zehar erdi-puntu bikoitza arteko erdiko 277 00:13:57,690 --> 00:14:03,010 lortzen iterazio bakoitzean hautatuta egiteko Ziur oraindik tartean dugu. 278 00:14:03,010 --> 00:14:06,830 Beraz, 10 aldiz batetik bestera joateko nahi dut, beraz, sort oso intuitiboki besterik 279 00:14:06,830 --> 00:14:09,070 jarri 10 nire muga ez bezala. 280 00:14:09,070 --> 00:14:14,310 >> Eta, halere, hau exekutatu, ondoren konpila make buggy2-- 281 00:14:14,310 --> 00:14:15,440 eta konpilatu OK du. 282 00:14:15,440 --> 00:14:17,980 Beraz, ez daukat bat syntax error une honetan. 283 00:14:17,980 --> 00:14:20,940 Dezagun aurrera me now eta buggy2 exekutatu, Sartu. 284 00:14:20,940 --> 00:14:22,620 Eta orain, joan gora. 285 00:14:22,620 --> 00:14:24,890 Eta utzi me handitzeko Leihoaren tamaina. 286 00:14:24,890 --> 00:14:33,720 >> izan badirudi I 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11. 287 00:14:33,720 --> 00:14:38,891 Beraz, ez da 11 hashtags, nahiz argi eta garbi jarri dut 10 begizta honen barruan. 288 00:14:38,891 --> 00:14:42,140 Orain, batzuk berehala ikusi liteke zer error delako, hain zuzen ere, hau 289 00:14:42,140 --> 00:14:43,720 Ez dago error oso gogor bat egiteko. 290 00:14:43,720 --> 00:14:46,070 Baina oso normalean da egin oso goiz. 291 00:14:46,070 --> 00:14:49,820 >> Zer seinalatu nahi dut, nahiz eta, hau da, nola liteke hau irudikatu dut? 292 00:14:49,820 --> 00:14:52,300 Beno, bihurtzen da CS50 Library dator 293 00:14:52,300 --> 00:14:55,380 bakarra get_string eta get_int batera eta get_float eta beste funtzioak. 294 00:14:55,380 --> 00:14:59,980 halaber, funtzio berezi bat dator eprintf deitu, edo, error printf. 295 00:14:59,980 --> 00:15:03,270 Eta soilik existitzen da egin Pixka bat zuretzat errazagoa 296 00:15:03,270 --> 00:15:06,310 zure kodea arazketa besterik inprimatu errore-mezu bat pantailan 297 00:15:06,310 --> 00:15:07,850 eta jakin non zen. 298 00:15:07,850 --> 00:15:11,000 >> Horrela, esate baterako, gauza bat gerta daiteke egin hemen funtzio hau dute hau da 299 00:15:11,000 --> 00:15:20,230 eprintf, eta, ondoren, aurrera noa joan eta esaten da, orain% i, backslash, n. 300 00:15:20,230 --> 00:15:22,330 Eta ez dut nahi i balioa plug joan. 301 00:15:22,330 --> 00:15:25,400 Eta goian, hau delako CS50 liburutegia da, 302 00:15:25,400 --> 00:15:27,580 Aurrera joan noa eta besteak 303 00:15:27,580 --> 00:15:29,169 beraz, funtzio honek sarbidea izan dut. 304 00:15:29,169 --> 00:15:31,460 Baina ikus dezagun zer lerro 9 suposatzen da behar egiten. 305 00:15:31,460 --> 00:15:32,670 hau ezabatu azkenean noa. 306 00:15:32,670 --> 00:15:34,670 Hau ezer egin du Nire helburua Globalak batera. 307 00:15:34,670 --> 00:15:39,090 Baina eprintf, error printf, besterik ekarri da me diagnostiko informazio batzuk emateko. 308 00:15:39,090 --> 00:15:42,460 Noiz nire programa exekutatu dut, Nahi dut ikusi hau pantailan aldi baterako 309 00:15:42,460 --> 00:15:44,550 baita besterik ulertu Zer gertatzen ari da. 310 00:15:44,550 --> 00:15:47,330 >> Eta, hain zuzen ere, bata iterazio hemen lerro 9 311 00:15:47,330 --> 00:15:49,260 Ikusi nahi dut, zer i balioa da? 312 00:15:49,260 --> 00:15:50,290 Zer da i balioa? 313 00:15:50,290 --> 00:15:51,280 Zer da i balioa? 314 00:15:51,280 --> 00:15:55,650 Eta, zorionez, bakarrik behar dut Mezu hori, halaber, 10 aldiz. 315 00:15:55,650 --> 00:15:57,780 >> Beraz, aurrera eta berkonpilatu nire programa, 316 00:15:57,780 --> 00:15:59,905 edonoiz egin behar dut gisa Aldaketa bat egin dut. ./buggy2. 317 00:15:59,905 --> 00:16:02,680 318 00:16:02,680 --> 00:16:03,640 Eta orain OK. 319 00:16:03,640 --> 00:16:04,820 Ez dago askoz gehiago gertatzen ari da. 320 00:16:04,820 --> 00:16:07,610 Hargatik sortu korrituko me in are handiagoa leiho bat. 321 00:16:07,610 --> 00:16:10,190 >> Eta bakoitzak ikusiko duzu hashtag oraindik inprimatzen da. 322 00:16:10,190 --> 00:16:15,270 Baina artean ere horietako bakoitzean gaur egun honetan diagnostiko irteera honela formateatua. 323 00:16:15,270 --> 00:16:17,960 Nire programa hemen izena buggy2 da. 324 00:16:17,960 --> 00:16:20,432 Fitxategiaren izena buggy2.c da. 325 00:16:20,432 --> 00:16:24,080 lerro kopurua bertatik hau inprimatu zen linea 9 da. 326 00:16:24,080 --> 00:16:27,500 Eta gero, eskubidea da Errore mezu hori espero dut. 327 00:16:27,500 --> 00:16:30,701 >> Eta zer polita honi buruz da orain ez dut egin behar nahitaez zenbatu 328 00:16:30,701 --> 00:16:32,200 Nire buruan zer nire programa egiten ari da. 329 00:16:32,200 --> 00:16:34,240 Hori ikusten ahal dut lehen iterazio i 0 da, 330 00:16:34,240 --> 00:16:39,420 ondoren, 1, 2, ondoren, ondoren, 3, 4, ondoren, ondoren, 5 eta 6, ondoren, 7, 8, 9, ondoren, ondoren, 331 00:16:39,420 --> 00:16:40,980 10. 332 00:16:40,980 --> 00:16:42,050 Beraz, itxaron minutu bat. 333 00:16:42,050 --> 00:16:43,740 Zer gertatzen da hemen? 334 00:16:43,740 --> 00:16:48,190 badirudi oraindik I izango kontatzeaz izan nahi du ireki eta 10. 335 00:16:48,190 --> 00:16:50,550 >> Baina non hasten nuen? 336 00:16:50,550 --> 00:16:53,240 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. 337 00:16:53,240 --> 00:16:58,040 Beraz, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10-- 11an hatz 338 00:16:58,040 --> 00:16:59,990 Arazoa adierazgarri. 339 00:16:59,990 --> 00:17:02,850 zenbatuko egin dela dirudi I okerrean nire begizta batean. 340 00:17:02,850 --> 00:17:06,599 joan beharrean baino 10 iterazioak, 0 at hasten naiz, 341 00:17:06,599 --> 00:17:09,550 tan eta 10 bidez ari naiz bukatzen. 342 00:17:09,550 --> 00:17:12,030 Baina baita, ordenagailu bat bezala, zenbaketa hasten naiz 0 at, 343 00:17:12,030 --> 00:17:15,250 egon kontatuta behar dut ra, baina ez, 10. 344 00:17:15,250 --> 00:17:18,510 >> Eta orain fix, I azkenean Hemen konturatu, bi gauza bat da. 345 00:17:18,510 --> 00:17:22,430 Oso besterik ezin dut esan zenbatu arte 10 baino gutxiago. 346 00:17:22,430 --> 00:17:27,260 Beraz, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, eta hori da, hain zuzen ere, zuzena, 347 00:17:27,260 --> 00:17:28,900 are oker apur bat soinuak arren. 348 00:17:28,900 --> 00:17:35,070 Edo egin nezakeen baino txikiagoa edo berdina 9ra, beraz, luzea hasten naiz gisa 0 at. 349 00:17:35,070 --> 00:17:40,056 Edo baduzu benetan gustuko ez duten, zuk zenbatu arte 10 bidez baizik 1 etan hasiko da. 350 00:17:40,056 --> 00:17:41,680 Baina, berriro ere, hau ez da horren ohikoa. 351 00:17:41,680 --> 00:17:43,977 programazioa arren ere ez hainbeste hutsetik hasi 352 00:17:43,977 --> 00:17:45,810 baina programazioan ere C eta beste hizkuntzetan, 353 00:17:45,810 --> 00:17:47,670 Javascript eta antzekoak Python eta beste batzuk, da 354 00:17:47,670 --> 00:17:49,880 Besterik ez oso ohikoa da Gure binary eztabaida 355 00:17:49,880 --> 00:17:53,450 Nahikoa at kontatuta txikiena ahal duzun kopurua, hau da, 0. 356 00:17:53,450 --> 00:17:53,950 Ados. 357 00:17:53,950 --> 00:17:55,160 Beraz, hori eprintf da. 358 00:17:55,160 --> 00:17:58,600 Eta berriz, orain dela I hurrena ditudan out my Arazoa, eta naiz atzera joan 0 joan 359 00:17:58,600 --> 00:18:01,470 10 baino gutxiago bidez, banoa joan eta eprintf ezabatu. 360 00:18:01,470 --> 00:18:04,580 >> Ez luke hor egon naizenean ontziratu nire kodea edo aurkeztu nire kodea 361 00:18:04,580 --> 00:18:05,800 edo erakusteko beste inori. 362 00:18:05,800 --> 00:18:07,980 Honez benetan besterik ekarri aldi baterako erabili ahal izateko. 363 00:18:07,980 --> 00:18:11,650 Baina, orain konpondu dut hau arazo jakin baita. 364 00:18:11,650 --> 00:18:16,780 >> Beno, egin adibide bat gehiago hemen utzi ni naiz Látigo honela doa. 365 00:18:16,780 --> 00:18:22,850 Aurrera joan noa eta #include. $ 50 366 00:18:22,850 --> 00:18:25,580 Eta aurrera noa joan eta #include. 367 00:18:25,580 --> 00:18:29,030 >> Eta ez naiz gorde joan Fitxategi hau buggy3.c bezala. 368 00:18:29,030 --> 00:18:31,740 Eta aurrera noa joan eta deklaratzen int main (void). 369 00:18:31,740 --> 00:18:34,186 Eta gero, barruan ez int i egin noa _ - 370 00:18:34,186 --> 00:18:36,435 programa bat ezartzea nahi dut get_negative_int batekin. 371 00:18:36,435 --> 00:18:39,146 372 00:18:39,146 --> 00:18:40,770 Hau ez da existitzen dela oraindik funtzio bat. 373 00:18:40,770 --> 00:18:42,870 Beraz ezartzea joan da une batean. 374 00:18:42,870 --> 00:18:45,541 Baina zergatik ari gara ikusteko joan Lehenengo pass at buggy da. 375 00:18:45,541 --> 00:18:47,290 Eta ahaztuak ditudan behin Erabiltzaileak int, 376 00:18:47,290 --> 00:18:53,365 Besterik ez naiz% i inprimatu joan negatiboa da osokoa, backslash, n, koma, i. 377 00:18:53,365 --> 00:18:55,240 Beste era batera esanda, I guztiak Nahi programa hau egin 378 00:18:55,240 --> 00:18:58,000 int negatiboa lortu da erabiltzaileari eta, ondoren, inprimatu 379 00:18:58,000 --> 00:18:59,980 hala nola, eta besteak beste, int negatiboa da. 380 00:18:59,980 --> 00:19:02,080 >> Orain funtzio hau ezartzeko behar dut. 381 00:19:02,080 --> 00:19:05,740 Beraz, geroago nire fitxategia, joan noa Animatu eta deklaratzen izeneko funtzio bat 382 00:19:05,740 --> 00:19:10,670 get_negative_int (void) - eta guk egingo itzuli zer lerro horrek esan nahi du berriro 383 00:19:10,670 --> 00:19:18,790 a momentu int n ere; zuzen ere, egin do honako hau printf n da :. 384 00:19:18,790 --> 00:19:26,210 Eta gero n egin noa - get_int, eta egiten den bitartean n hau 0 baino handiagoa da. 385 00:19:26,210 --> 00:19:28,310 Eta gero itzuli n ;. 386 00:19:28,310 --> 00:19:31,730 >> Beraz, ez da asko gertatzen hasi da hau baina horietatik bat ere ez genuen 387 00:19:31,730 --> 00:19:33,710 azken astean begiratu, gutxienez, labur-labur. 388 00:19:33,710 --> 00:19:36,980 Beraz, on line 10 hemen deklaratu dut bat get_negative_int izeneko funtzioa, 389 00:19:36,980 --> 00:19:39,620 eta jarri dut (void), in parentesi, arrazoi hori izanik 390 00:19:39,620 --> 00:19:40,950 ez du sarrera bat hartu. 391 00:19:40,950 --> 00:19:42,910 Ez dut ezer pasatzen Funtzio honetarako. 392 00:19:42,910 --> 00:19:44,690 Besterik ez naiz zerbait atzera bertatik lortzean. 393 00:19:44,690 --> 00:19:47,270 >> Eta zer espero dut itzuli oso bat da. 394 00:19:47,270 --> 00:19:50,040 Ez dago datu-mota ez da C izeneko negative_int. 395 00:19:50,040 --> 00:19:52,880 Besterik int, beraz, joan da to gurekin ziur egiteko 396 00:19:52,880 --> 00:19:55,340 Hau da, hori da benetan itzuli da, ez bakarrik int bat 397 00:19:55,340 --> 00:19:56,380 baina negatiboa da, gainera. 398 00:19:56,380 --> 00:20:02,150 >> line 12 On I aldagai bat geratuko naiz izeneko n eta egiten int mota. 399 00:20:02,150 --> 00:20:07,500 Eta gero, line 13 18 bidez naiz zerbaitekin, berriz, egia da. 400 00:20:07,500 --> 00:20:11,040 Animatu eta inprimatzeko noa n da, puntu, eta ondoren espazio bat, 401 00:20:11,040 --> 00:20:12,800 erabiltzailearentzat gonbit bat bezala. 402 00:20:12,800 --> 00:20:16,410 >> Ondoren, naiz deituz get_int eta bere deiturikoak itzulera balioa gordetzeko 403 00:20:16,410 --> 00:20:18,130 aldagai n ere. 404 00:20:18,130 --> 00:20:22,600 Baina ez naiz egiten jarraitzea bitartean n hau 0 baino handiagoa da. 405 00:20:22,600 --> 00:20:27,960 Beste era batera esanda, erabiltzaileari ematen dit bat bada int eta zenbaki hori 0 baino handiagoa da, 406 00:20:27,960 --> 00:20:31,180 ergo, positiboa, noa joan besterik mantentzeko erabiltzaileak reprompting, 407 00:20:31,180 --> 00:20:37,160 mantentzeko reprompting, behartzen arabera lankidetzan aritzeko eta eman dit int negatiboa. 408 00:20:37,160 --> 00:20:41,640 >> Eta behin n da benetan negative-- demagun, azkenik, erabiltzaileak mota -50, 409 00:20:41,640 --> 00:20:46,710 gero, berriz, begizta hau jada ez da egia -50 Ez da 0 baino handiagoa delako. 410 00:20:46,710 --> 00:20:51,140 Beraz hausten dugun hori atera begizta logikoki eta itzultzeko n. 411 00:20:51,140 --> 00:20:53,520 >> Baina ez da beste bat gauza egin behar dut. 412 00:20:53,520 --> 00:20:56,190 Eta besterik ez dut egin dezakezu hau kopiatu eta itsatsi arabera 413 00:20:56,190 --> 00:20:58,540 kode lerro bat fitxategia goialdean. 414 00:20:58,540 --> 00:21:01,630 Clang irakasteko behar dut, edo agintzen Clang, 415 00:21:01,630 --> 00:21:04,630 esplizituki dut izango dela, Hain zuzen ere, joan eta ezartzeko 416 00:21:04,630 --> 00:21:06,020 Funtzio get_negative_int hau. 417 00:21:06,020 --> 00:21:07,674 agian da fitxategia txikiagoa izan. 418 00:21:07,674 --> 00:21:09,840 Berriz ere, gogora ekarri Clang Gauzak irakurtzen goitik behera, 419 00:21:09,840 --> 00:21:12,330 Ezkerretik eskuinera, beraz ezin duzu deitu funtzio bat Clang bada 420 00:21:12,330 --> 00:21:15,330 ez daki nik existitzen joan. 421 00:21:15,330 --> 00:21:18,430 >> Orain, zoritxarrez, programa honetan, batzuk bezala nabaritu dute agian, 422 00:21:18,430 --> 00:21:19,590 Dagoeneko buggy da. 423 00:21:19,590 --> 00:21:21,400 Dezagun aurrera eta buggy3 egiteko. 424 00:21:21,400 --> 00:21:26,904 biltzen du, beraz, nire arazoa orain ez da syntax error bat, textual error bat bezala, 425 00:21:26,904 --> 00:21:29,570 benetan da logikoa bat izango da error nahita dut I 426 00:21:29,570 --> 00:21:32,450 aukera gisa egin zer ari den gertatzen eta atzera egiteko. 427 00:21:32,450 --> 00:21:35,540 >> Aurrera joan noa orain eta exekutatu Buggy3. 428 00:21:35,540 --> 00:21:37,490 Eta naiz joango gara Animatu eta ez kooperatu. 429 00:21:37,490 --> 00:21:39,494 da 1 zenbakia eman noa. 430 00:21:39,494 --> 00:21:41,410 Ez zuen nahi du, beraz, Honez niri galdetu berriro. 431 00:21:41,410 --> 00:21:42,147 >> Nola 2 buruz? 432 00:21:42,147 --> 00:21:43,021 3? 433 00:21:43,021 --> 00:21:43,520 50? 434 00:21:43,520 --> 00:21:44,740 horiek ez dira lanean. 435 00:21:44,740 --> 00:21:46,890 Nola -50 buruz? 436 00:21:46,890 --> 00:21:48,560 Eta programa lan dirudi. 437 00:21:48,560 --> 00:21:49,970 >> Let it saiatu me behin gehiago. 438 00:21:49,970 --> 00:21:53,400 Let -1 saiatu me, lan dirudi. 439 00:21:53,400 --> 00:21:56,380 Let -2 saiatu me, lan dirudi. 440 00:21:56,380 --> 00:21:59,640 Let 0 saiatu me. 441 00:21:59,640 --> 00:22:01,684 Huh, hori okerra. 442 00:22:01,684 --> 00:22:03,350 Orain, zu pixka bat pedante izateaz irudirik. 443 00:22:03,350 --> 00:22:07,090 Baina da, hain zuzen ere, 0, hori horrela da ez positiboa ezta negatiboa. 444 00:22:07,090 --> 00:22:11,150 Eta orain ere, nire programa da 0 zenbaki oso negatiboa da esaten, 445 00:22:11,150 --> 00:22:12,820 hori ez da teknikoki zuzena. 446 00:22:12,820 --> 00:22:15,180 >> Orain, zergatik da hori egiten ari da? 447 00:22:15,180 --> 00:22:16,270 Beno, begi-bistakoa izango da agian. 448 00:22:16,270 --> 00:22:18,110 Eta, hain zuzen ere, programaren da ekarri nahiko erraza izan 449 00:22:18,110 --> 00:22:19,670 beraz, zerbait esploratzen dugu. 450 00:22:19,670 --> 00:22:25,870 >> Baina goazen hirugarren arazketa bat aurkeztu Teknika hemen izeneko debug50. 451 00:22:25,870 --> 00:22:27,750 Beraz, hau programa bat da Nik besterik ez dugu sortu 452 00:22:27,750 --> 00:22:30,770 Urte izeneko debug50 honetan horrek aukera emango 453 00:22:30,770 --> 00:22:34,130 zer izeneko bat eraiki-in erabili CS50 IDE in araztaileak grafikoa. 454 00:22:34,130 --> 00:22:38,400 Eta araztailea programa bat besterik ez da hori oro har, aukera ematen dizu zure programa exekutatzen baduzu 455 00:22:38,400 --> 00:22:44,050 baina urratsez urrats urrats, lerro arabera lineaz linea arabera, eten bat eginez, poking 456 00:22:44,050 --> 00:22:47,626 Inguruan, aldagai begira, beraz, programa ez da, besterik gabe, kolpe iragan 457 00:22:47,626 --> 00:22:49,750 eta azkar inprimatu zerbait edo ez zerbait inprimatu. 458 00:22:49,750 --> 00:22:53,250 duzu aukera bat ematen du, at giza abiadura, harekin elkarreragin. 459 00:22:53,250 --> 00:22:55,470 >> Eta hori egin ahal izateko, zuk besterik honako hau. 460 00:22:55,470 --> 00:22:58,479 zure kodea konpilatzean ondoren, eta dagoeneko egin dut, buggy3, 461 00:22:58,479 --> 00:23:00,020 joan aurretik eta ./buggy debug50 exekutatu. 462 00:23:00,020 --> 00:23:03,460 463 00:23:03,460 --> 00:23:06,760 Hainbeste help50 exekutatzen duzun bezala ditu help50 eta gero komandoa, 464 00:23:06,760 --> 00:23:10,120 debug50 ditu debug50 exekutatzen duzun eta ondoren, komando baten izena. 465 00:23:10,120 --> 00:23:14,440 >> Orain, ikusi nire pantailan zer gertatzen den, eskuineko bereziki aldean. 466 00:23:14,440 --> 00:23:19,400 Noiz Run, guztiak hit I Bat-batean eskuin eskuko hau panel 467 00:23:19,400 --> 00:23:20,419 irekitzen pantailan. 468 00:23:20,419 --> 00:23:22,210 Eta asko joan da Lehen begiratuan orrian. 469 00:23:22,210 --> 00:23:25,110 Baina ez da gehiegi Askoz oraindik kezkatu. 470 00:23:25,110 --> 00:23:28,570 >> Hau da niretzat dena erakusten Hori gertatzen da nire programaren barruan 471 00:23:28,570 --> 00:23:31,130 oraintxe eta horien bidez botoiak goiko sortu da ondoren 472 00:23:31,130 --> 00:23:35,910 nire kodea bidez urratsa ematen dit azken finean, urratsez urrats urrats. 473 00:23:35,910 --> 00:23:37,140 Baina ez, besterik gabe. 474 00:23:37,140 --> 00:23:38,060 Oharra zer gertatzen den. 475 00:23:38,060 --> 00:23:40,600 nire terminal-leiho batean ari naiz n galdetuko. 476 00:23:40,600 --> 00:23:44,560 Eta aurrera noa joan eta lankidetzan aritzeko denbora honetan eta mota -1. 477 00:23:44,560 --> 00:23:48,770 Eta nahiz eta pixka bat cryptically, -1 zenbaki oso negatiboa da, espero bezala. 478 00:23:48,770 --> 00:23:52,020 >> Eta gero, ume batekin amaitu da status 0 GDBserver irteten. 479 00:23:52,020 --> 00:23:55,180 GDB, GNU Debugger, izena da Azpiko software 480 00:23:55,180 --> 00:23:56,620 araztailea honetan burutuko du. 481 00:23:56,620 --> 00:24:00,500 Baina hau guztia benetan esan nahi, araztailea joan egin zen nire programa irten delako 482 00:24:00,500 --> 00:24:01,710 eta guztiak ondo. 483 00:24:01,710 --> 00:24:06,020 benetan arazteko nire programa nahi badut, preemptively esango debug50 daukat, 484 00:24:06,020 --> 00:24:08,920 non egiten hasi nahi dut Nire kode bidez zapaltzeko? 485 00:24:08,920 --> 00:24:11,750 >> Eta agian modurik errazena honela da egin. 486 00:24:11,750 --> 00:24:15,300 I pasatzean baino gehiago bada Nire editorearen gutter hemen, 487 00:24:15,300 --> 00:24:19,090 beraz, benetan besterik alboko barran hemen, lerro kopurua ezkerreko du, 488 00:24:19,090 --> 00:24:21,870 konturatu nintzen hori sakatu besterik ez bada behin, apur bat gorri dot jarri dut. 489 00:24:21,870 --> 00:24:24,460 Eta hori gorri txiki dot, stop seinale bat bezala, esan, beno, 490 00:24:24,460 --> 00:24:29,430 debug50, eteteko nire kodea exekuzioa bertan, programa hau exekutatu. 491 00:24:29,430 --> 00:24:30,260 >> Beraz, utzi egin dela. 492 00:24:30,260 --> 00:24:37,340 Dezagun aurrera me eta nire programa exekutatu debug50 ./buggy3 batera berriro, Sartu. 493 00:24:37,340 --> 00:24:40,110 Eta orain, oharra, zerbait desberdin bat gertatu da. 494 00:24:40,110 --> 00:24:42,440 Ez dut berriz galdetua oraindik nire terminal-leiho batean 495 00:24:42,440 --> 00:24:45,430 ezer egiteko, ez dudalako ahaztuak ez oraindik nire programan. 496 00:24:45,430 --> 00:24:47,950 Ohartu on line 8 hau da, orain nabarmenduta, 497 00:24:47,950 --> 00:24:51,720 eta ez gezi txiki bat da at ezker esaera, hemen pausatu zara. 498 00:24:51,720 --> 00:24:55,030 kodea, lerro-lerro honek 8, oraindik ez dela exekutatu. 499 00:24:55,030 --> 00:24:58,940 >> Eta zer da, bitxia, I begiratuz gero hemen baino eskuineko aldean, 500 00:24:58,940 --> 00:25:03,530 nabarituko i duten tokiko da aldakorra, zentzu honetan: tokiko 501 00:25:03,530 --> 00:25:05,450 dela uneko funtzioa barruan. 502 00:25:05,450 --> 00:25:08,920 Eta bere balioa, itxuraz lehenetsi, eta Ordena egokian, 0 da. 503 00:25:08,920 --> 00:25:10,260 Baina ez nuen 0 idazten. 504 00:25:10,260 --> 00:25:13,410 Hori besterik gertatzen da bere une balio lehenetsia. 505 00:25:13,410 --> 00:25:15,490 >> Beraz, aurrera eta hau egin orain. 506 00:25:15,490 --> 00:25:18,680 Dezagun aurrera me eta on goian hementxe, naiz 507 00:25:18,680 --> 00:25:20,970 aurrera joan eta klik lehenengo ikonoan honetan bertan 508 00:25:20,970 --> 00:25:25,360 esan nahi du horren gainean urrats esan nahi ez saltatzeko da baina kode lerro honen gainetik, 509 00:25:25,360 --> 00:25:27,770 exekutatzea bidean. 510 00:25:27,770 --> 00:25:30,710 >> Eta orain, nabarituko, nire gonbita besterik ez du aldatu. 511 00:25:30,710 --> 00:25:31,380 Zergatik da hori? 512 00:25:31,380 --> 00:25:33,639 Nik esan nion debug50, exekutatu kode lerro hau. 513 00:25:33,639 --> 00:25:34,930 Zer egiten du kode-lerro hau? 514 00:25:34,930 --> 00:25:35,960 Galdetzen dit int bat da. 515 00:25:35,960 --> 00:25:36,460 ONDO DA. 516 00:25:36,460 --> 00:25:37,400 Let me elkarlanean. 517 00:25:37,400 --> 00:25:41,340 Dezagun aurrera me now eta -1 idatzi, Sartu. 518 00:25:41,340 --> 00:25:42,920 Eta orain konturatzen zer aldatu. 519 00:25:42,920 --> 00:25:46,060 eskuineko aldean, Nire aldagai lokalak i 520 00:25:46,060 --> 00:25:48,200 baloia -1 orain bezala adierazten da. 521 00:25:48,200 --> 00:25:49,810 Eta oraindik ez da mota int. 522 00:25:49,810 --> 00:25:53,102 >> Eta oharra ere, nire deiturikoak deitu pila, nora pausatu dut? 523 00:25:53,102 --> 00:25:54,810 buruz gehiago hitz egingo dugu hau etorkizunean. 524 00:25:54,810 --> 00:25:58,620 Baina pilaketan dei besterik aipatzen zer funtzio Une mugimenduan. 525 00:25:58,620 --> 00:26:00,040 Oraintxe besterik nagusia da. 526 00:26:00,040 --> 00:26:03,590 Eta oraintxe bakarrik tokiko aldagai 1 balioa duten i da. 527 00:26:03,590 --> 00:26:09,840 >> Eta azkenik, lerro honen gainetik pasatzeko I Hemen, goiko eskuineko ikono hori bera, 528 00:26:09,840 --> 00:26:11,410 -1 Osokoa negatibo bat da. 529 00:26:11,410 --> 00:26:13,580 Orain kizkur giltza hori baino gehiago ari da gelditzea. 530 00:26:13,580 --> 00:26:14,740 Dezagun utzi bere gauza egin da. 531 00:26:14,740 --> 00:26:17,300 urratsa lerro hori, eta voila baino gehiago dut. 532 00:26:17,300 --> 00:26:20,240 >> Beraz, ez dela izugarri argigarria oraindik, 533 00:26:20,240 --> 00:26:23,550 baina utzi ninduen eteteko eta logikoki bidez uste 534 00:26:23,550 --> 00:26:24,870 Programa hau egiten ari da. 535 00:26:24,870 --> 00:26:26,890 Baina hori ez zen okerrak kasuan. 536 00:26:26,890 --> 00:26:28,510 Berriro egin dezagun honela. 537 00:26:28,510 --> 00:26:31,340 >> etendura hori utzi noa on line 8 Puntu gorri batekin. 538 00:26:31,340 --> 00:26:32,830 debug50 berrabiarazi noa. 539 00:26:32,830 --> 00:26:34,400 Automatikoki pausatu da hemen. 540 00:26:34,400 --> 00:26:37,660 Baina une honetan, ordez lerro hau baino gehiago zapaltzeko, 541 00:26:37,660 --> 00:26:42,290 utzi dit benetan barrutik joan get_negative_int eta irudikatu, 542 00:26:42,290 --> 00:26:45,530 zergatik da onartuz 0 baliozko erantzun gisa? 543 00:26:45,530 --> 00:26:47,990 >> Beraz ordez klikatzen Step ahala. 544 00:26:47,990 --> 00:26:50,630 Aurrera joan noa eta egin klik Step Into. 545 00:26:50,630 --> 00:26:54,030 Eta konturatu lerroan 8 kitto orain nabarmendu orain, bat-batean 546 00:26:54,030 --> 00:26:56,900 line 17 bihurtzen. 547 00:26:56,900 --> 00:26:59,947 >> Orain, ez da araztailea hori lerroak 14 eta 15 eta 16 Saltatutako ditu. 548 00:26:59,947 --> 00:27:01,780 Besterik ez da ezer zuk ez erakusteko. 549 00:27:01,780 --> 00:27:04,050 Horiek besterik aldagai geratuko dira, Eta orduan, hitza Do 550 00:27:04,050 --> 00:27:05,390 eta, ondoren, open kizkur giltza bat. 551 00:27:05,390 --> 00:27:09,227 Lerro bakarra funtzional hori da mamitsuena benetan hau hemen, 17 da. 552 00:27:09,227 --> 00:27:11,060 Eta hori da, non jarri dugu automatikoki pausatu. 553 00:27:11,060 --> 00:27:13,870 >> Beraz printf ( "n.is:") ;, beraz Hori ez da gertatu oraindik. 554 00:27:13,870 --> 00:27:18,250 Beraz, goazen aurrera eta egin klik Urratsera ahala. 555 00:27:18,250 --> 00:27:20,326 Orain nire gonbita, hain zuzen ere, ra aldatu ( "n da:"). 556 00:27:20,326 --> 00:27:22,450 Orain get_int, ez noa hurrats traba, 557 00:27:22,450 --> 00:27:24,750 delako funtzio hori izan zen Liburutegian CS50 egindako. 558 00:27:24,750 --> 00:27:25,750 It ustez zuzena da. 559 00:27:25,750 --> 00:27:28,440 >> Beraz, aurrera noa joan eta Sort kooperatu egiten emanez 560 00:27:28,440 --> 00:27:30,590 Int bat, baina ez int negatiboa. 561 00:27:30,590 --> 00:27:32,870 Hargatik aurrera me eta hit 0. 562 00:27:32,870 --> 00:27:39,460 Eta orain zer gertatzen den hemen lortuko dut behera 21 lerro? 563 00:27:39,460 --> 00:27:40,890 Ez dut berriro errepika. 564 00:27:40,890 --> 00:27:43,320 Ez dut badirudi begizta hori itsatsita. 565 00:27:43,320 --> 00:27:45,990 Beste era batera esanda, horia hau bar ez mantentzeko inguruan, 566 00:27:45,990 --> 00:27:47,130 eta inguruan, eta inguruan. 567 00:27:47,130 --> 00:27:48,340 >> Orain, zergatik da hori? 568 00:27:48,340 --> 00:27:49,920 Beno, n, zer da oraintxe n? 569 00:27:49,920 --> 00:27:53,280 tokiko at I begiratu dezakezu arazlean aldagaiak. 570 00:27:53,280 --> 00:27:53,816 n 0 da. 571 00:27:53,816 --> 00:27:55,190 Ondo da, zer izan zen nire egoera? 572 00:27:55,190 --> 00:27:58,700 >> , 20 lerro 20 da, bai, 0 0 baino handiagoa da. 573 00:27:58,700 --> 00:27:59,500 Hori ez da egia. 574 00:27:59,500 --> 00:28:01,020 0 da, ez da 0 baino handiagoa. 575 00:28:01,020 --> 00:28:02,820 Eta beraz, hautsi hau atera nuen. 576 00:28:02,820 --> 00:28:06,370 >> Eta, beraz, horregatik on line 21, I actually jarraitzen badu, 577 00:28:06,370 --> 00:28:10,370 0 itzuliko naiz, nahiz eta joan, baztertu behar dut nahiz eta 0 578 00:28:10,370 --> 00:28:12,484 bezala, ez benetan negatiboa izanik. 579 00:28:12,484 --> 00:28:14,650 Beraz, gaur egun, ez dut benetan are araztailea buruzko zaintzeko. 580 00:28:14,650 --> 00:28:16,900 Txartel da, ez dut behar den Badakizu zer gehiago gertatzen da. 581 00:28:16,900 --> 00:28:19,233 >> Beraz, aurrera noa joan eta besterik Play botoia sakatu, 582 00:28:19,233 --> 00:28:20,240 eta utzi akabera up hau. 583 00:28:20,240 --> 00:28:23,440 Orain, ez dut konturatu nire bug itxuraz da on line 20. 584 00:28:23,440 --> 00:28:25,160 Hori da nire error logikoa da. 585 00:28:25,160 --> 00:28:28,100 >> Eta orain zer egin nahi dut hau aldatu egin? 586 00:28:28,100 --> 00:28:32,500 Arazoa da, bada, ez dut 0 harrapatzeko, error logikoa besterik ez da. 587 00:28:32,500 --> 00:28:35,910 Eta esan dezaket n bitartean 0 edo handiagoa berdina, 588 00:28:35,910 --> 00:28:38,330 mantentzeko erabiltzaileak behin eta berriro galdetu. 589 00:28:38,330 --> 00:28:41,050 >> Beraz, berriro ere, erraz neurtu, agian nahiz eta begi-bistakoa denean me ikusi duzu 590 00:28:41,050 --> 00:28:42,410 idatzi egiten duela minutu batzuk besterik ez. 591 00:28:42,410 --> 00:28:44,570 Baina eramateko hemen da debug 50 duten, 592 00:28:44,570 --> 00:28:46,850 eta arazteko software orokorrago, 593 00:28:46,850 --> 00:28:51,370 aurkitutako power berri hau behar duzu zure kodea zehar oinez, begiratu 594 00:28:51,370 --> 00:28:55,590 Hori eskuin panel bidez zer Zure aldagaiak balioak dira. 595 00:28:55,590 --> 00:28:57,700 Beraz, ez duzu nahitaez zerbait erabili behar 596 00:28:57,700 --> 00:29:00,630 bezala balio horiek inprimatu behar eprintf duzu. 597 00:29:00,630 --> 00:29:04,430 benetan ikusiko duzu horiek ikusmen pantailan. 598 00:29:04,430 --> 00:29:08,920 >> Orain, hau haratago, nabarmendu behar da ez dagoela beste teknika hori da 599 00:29:08,920 --> 00:29:09,890 benetan super komuna. 600 00:29:09,890 --> 00:29:13,120 Eta zergatik txiki honetan galdetzen dezakezu Guy hemen izan da oholtza gainean eserita. 601 00:29:13,120 --> 00:29:16,490 Beraz, ez dago teknika hau da, oro har, gomazko ahate arazketa bezala ezagutzen, 602 00:29:16,490 --> 00:29:18,786 horrek benetan baino ez da Izan ere, testamentu 603 00:29:18,786 --> 00:29:20,660 Hori askotan denean programatzaile kodea idazten ari, 604 00:29:20,660 --> 00:29:22,650 Oraindik ez dute nahitaez beste batzuekin elkarlanean, 605 00:29:22,650 --> 00:29:24,030 edo partekatuak ingurune batean lan egin. 606 00:29:24,030 --> 00:29:25,050 >> sort Oraindik dute etxean. 607 00:29:25,050 --> 00:29:25,910 Agian, gauez berandu da. 608 00:29:25,910 --> 00:29:28,190 Kopuru saiatzen ari dira beren kodea bug batzuk. 609 00:29:28,190 --> 00:29:29,330 Eta ari dira, ez da ikusten. 610 00:29:29,330 --> 00:29:30,329 >> Eta han gelakide ez da. 611 00:29:30,329 --> 00:29:31,250 Ez dago TF ez da. 612 00:29:31,250 --> 00:29:32,680 Ez dago CA inguruan ez da. 613 00:29:32,680 --> 00:29:36,440 Guztiek dute beren apaletan dute txiki honetan gomazko ducky da. 614 00:29:36,440 --> 00:29:39,030 >> Eta beraz, gomazko ahate arazketa besterik gonbidapen hau da 615 00:29:39,030 --> 00:29:42,780 zerbait silly gisa pentsatzea hau benetako izaki gisa, 616 00:29:42,780 --> 00:29:46,940 eta benetan zure kodea zehar oinez hitzez objektu bizigabe honetarako. 617 00:29:46,940 --> 00:29:49,230 Horrela, esate baterako, bada hau nire adibidea da hemen 618 00:29:49,230 --> 00:29:52,470 eta gogoan hartu lehenagokoak arazoa hori zen, 619 00:29:52,470 --> 00:29:58,140 lehen lerroan kode hau ezabatu badut, eta aurrera joan nintzen eta buggy 0 berriro, 620 00:29:58,140 --> 00:30:01,220 Gogoratzen hauek izan nuen Errore mezuak hemen. 621 00:30:01,220 --> 00:30:05,997 Beraz, ideia hemen, barregarria nuen arren une sentitzen hau publikoki egiten, 622 00:30:05,997 --> 00:30:06,580 error dela. 623 00:30:06,580 --> 00:30:10,910 >> Ados, beraz, nire arazoa da ez dut hori inplizituki liburutegi funtzioa deklaratu. 624 00:30:10,910 --> 00:30:12,610 Eta liburutegi funtzioa duten printf da. 625 00:30:12,610 --> 00:30:15,290 Aldarrikatzen OK, deklaratzeko gogorarazten dit prototipoak. 626 00:30:15,290 --> 00:30:18,930 >> Horrek esan nahi du behar den benetan I Esango konpilatzailea aldez aurretik zer 627 00:30:18,930 --> 00:30:19,980 funtzioaren itxura. 628 00:30:19,980 --> 00:30:20,930 Itxaron minutu batez. 629 00:30:20,930 --> 00:30:23,580 Ez nuen io.h. 630 00:30:23,580 --> 00:30:24,530 Eskerrik asko. 631 00:30:24,530 --> 00:30:27,330 >> Beraz, besterik gabe, prozesu hau of-- behar ez dugun benetako ahate bat. 632 00:30:27,330 --> 00:30:29,819 Baina walking ideia hau zeuk zure kodea bitartez 633 00:30:29,819 --> 00:30:31,610 beraz, nahiz eta entzuten baduzu zeure burua, beraz, hori 634 00:30:31,610 --> 00:30:35,620 konturatzen norbera-egiteak nabarmentzea, ideia da, oro har. 635 00:30:35,620 --> 00:30:38,910 >> Eta, agian gehiago logikoki, ez hain hori baina gehiago parte hartzen du, askoz 636 00:30:38,910 --> 00:30:44,220 Adibidez besterik buggy 3.C egin genuen, yourself oinez dezakezu Bidez 637 00:30:44,220 --> 00:30:45,310 horrela. 638 00:30:45,310 --> 00:30:49,190 Beraz, guztiak eskuineko, gomazko ducky, DDB, izango bada. 639 00:30:49,190 --> 00:30:52,350 Hemen daukagu ​​nire eginkizun nagusia, int negatiboa deitzen naiz. 640 00:30:52,350 --> 00:30:54,660 >> Eta nago bueltan balioa lortzean dut. 641 00:30:54,660 --> 00:31:00,410 It dut gordetzeko ezkerreko aldean on line 8 aldagai batean izeneko i. 642 00:31:00,410 --> 00:31:02,380 Ados, baina itxaron, nola egin Hori balio hori lortzeko? 643 00:31:02,380 --> 00:31:04,130 Ikus dezagun funtzioa at me line 12. 644 00:31:04,130 --> 00:31:05,760 >> Linea 12, int negatiboa izan dugu. 645 00:31:05,760 --> 00:31:08,190 Ez du inolako Sarrerek hartu, itzuliko du int bat, OK. 646 00:31:08,190 --> 00:31:10,929 deklaratzeko on line 14 n aldagai bat naiz. 647 00:31:10,929 --> 00:31:12,220 Honez zenbaki oso bat gordetzeko. 648 00:31:12,220 --> 00:31:13,760 Horixe nahi dut. 649 00:31:13,760 --> 00:31:18,480 >> Horretarako, honako hau n bitartean is-- utzi zer fix dut dagoeneko eginda desegin dit. 650 00:31:18,480 --> 00:31:22,710 Beraz n baino handiagoa den bitartean 0, inprimatu n da, OK. 651 00:31:22,710 --> 00:31:25,170 Eta gero, deitu emateko int n gordeta. 652 00:31:25,170 --> 00:31:30,160 Eta, ondoren, egiaztatu bada n 0 da, n dago not-- ez da. 653 00:31:30,160 --> 00:31:31,910 Beraz, berriro ere, ez duzu benetako ahate behar. 654 00:31:31,910 --> 00:31:35,650 Baina besterik oinez zeuk bidez Zure kodea ariketa intelektual gisa 655 00:31:35,650 --> 00:31:37,720 egingo askotan lagunduko duzu konturatzen zer ari den gertatzen, 656 00:31:37,720 --> 00:31:41,170 aurka jokatu zerbait egiten Hau atsegin, pantailaren begira, 657 00:31:41,170 --> 00:31:43,720 eta ez zeure burua hizketan bidez da, eta horrek, egia esanda, ez da 658 00:31:43,720 --> 00:31:46,270 Ia teknika eraginkor bat bezala. 659 00:31:46,270 --> 00:31:48,620 Beraz, ez daukazu, a hainbat teknika 660 00:31:48,620 --> 00:31:52,102 benetan zure kodea arazteko eta reprehenditzen, horrek guztiak 661 00:31:52,102 --> 00:31:54,810 Tresna zure toolkit izan behar beraz, ez zara berandu gauez, 662 00:31:54,810 --> 00:31:57,660 batez ere, ari jangela duzu aretoetan, edo bulego orduetan, 663 00:31:57,660 --> 00:32:00,368 zure burua banging aurka horma, arazo batzuk konpondu nahian. 664 00:32:00,368 --> 00:32:02,020 Konturatzen ez direla software tresnak. 665 00:32:02,020 --> 00:32:03,720 Badira gomazko ahate tresnak. 666 00:32:03,720 --> 00:32:09,630 Eta ez dago langile oso bat onartzen esku bat uzten zain. 667 00:32:09,630 --> 00:32:13,120 >> Beraz, orain, arazoa hitz bat multzo, eta zer ari zaren itxaropena dugu on 668 00:32:13,120 --> 00:32:15,620 horiek atera, eta nola ebaluatzeko joan gara. 669 00:32:15,620 --> 00:32:17,680 Ikastaro horrek curriculumaren Per, CS50 arazo multzo 670 00:32:17,680 --> 00:32:22,320 Lehen lau ardatzetan ebaluatu dira, beraz, esparrua esateko den, zuzentasuna, diseinua, 671 00:32:22,320 --> 00:32:23,060 eta estiloa. 672 00:32:23,060 --> 00:32:25,910 Eta esparrua besterik zenbat aipatzen Pieza off hozka duzu? 673 00:32:25,910 --> 00:32:28,080 Nola arazo bat askoz duzu saiatu? 674 00:32:28,080 --> 00:32:30,110 Zer ahalegin-maila duzu manifiesta? 675 00:32:30,110 --> 00:32:35,750 >> Zehaztasuna, programa lana egiten du Honez CS50 zehaztapen bakoitzeko ustezko 676 00:32:35,750 --> 00:32:38,640 denean zenbait Sarrerek ematen duzu edo zenbait irteerak atzera datozen? 677 00:32:38,640 --> 00:32:41,130 Diseinu horietako gehienak subjektiboak da. 678 00:32:41,130 --> 00:32:43,360 Eta bat da izango dela luzeena hartu ikasteko 679 00:32:43,360 --> 00:32:47,220 eta luzeena, irakasteko orain arte behera irakiten bezala da, 680 00:32:47,220 --> 00:32:49,530 nola ondo idatzia da zure kodea? 681 00:32:49,530 --> 00:32:52,920 >> Gauza bat bakarrik inprimatzeko zuzena da irteerak edo itzultzeko eskuineko balioak. 682 00:32:52,920 --> 00:32:55,400 Baina ari da egiten duzun bezala ahalik eta modu eraginkorrean? 683 00:32:55,400 --> 00:32:58,210 Dira egiten duzu arraila eta konkistatzeko, edo bitar 684 00:32:58,210 --> 00:33:01,500 bilaketa egingo dugu laster ikusi genuen Duela bi aste telefono-liburua da? 685 00:33:01,500 --> 00:33:04,670 Badira modu hobeak konpontzeko Arazoa gaur egun baino behar duzu hemen? 686 00:33:04,670 --> 00:33:06,380 Hori diseinu hobea aukera bat da. 687 00:33:06,380 --> 00:33:08,530 >> Eta gero, estilo hau nola Nahiko zure kodea da? 688 00:33:08,530 --> 00:33:12,370 nabarituko duzu nahiko naiz I bereziki nire kodea koskatze buruz, 689 00:33:12,370 --> 00:33:15,300 eta ziur nire aldagai egiteko arrazoiz izendatzen dira. n, 690 00:33:15,300 --> 00:33:19,660 laburra, berriz, izen ona da zenbakia, zenbaketa osokoa bat i, 691 00:33:19,660 --> 00:33:20,727 katea s. 692 00:33:20,727 --> 00:33:22,560 Eta jada izan dezakegu aldagai izenak estiloa. 693 00:33:22,560 --> 00:33:25,500 Style da nola ona nahi zure kodea begiratu? 694 00:33:25,500 --> 00:33:26,600 Eta nola irakurgarria da? 695 00:33:26,600 --> 00:33:29,650 >> Eta denborarekin, zer zure ILak eta TFS izango da ikastaroa egiten 696 00:33:29,650 --> 00:33:31,870 ematen da, besterik gabe, feedback kualitatibo mota 697 00:33:31,870 --> 00:33:34,330 beraz, hobe duzu hainbat alderdi horiek. 698 00:33:34,330 --> 00:33:37,510 Eta zenbat garen dagokionez ebaluatzeko ardatz horiek bakoitzak, 699 00:33:37,510 --> 00:33:40,080 normalean oso gutxi kuboak duzu, beraz, oro har, 700 00:33:40,080 --> 00:33:41,680 zein ondo egiten ari zaren zentzu bat lortzeko. 701 00:33:41,680 --> 00:33:45,680 Eta, hain zuzen ere, puntuazio bat jasotzen bada horiek zuzentasun axes--, diseinua edozein 702 00:33:45,680 --> 00:33:49,659 eta estilo especially-- kopuru hori oro har, 1 eta 5 artekoa izan. 703 00:33:49,659 --> 00:33:52,450 Eta, literalki, zuk ari bada 3 en lauhilekoaren hasieran, 704 00:33:52,450 --> 00:33:53,977 hau oso gauza ona da. 705 00:33:53,977 --> 00:33:55,810 ez da oraindik ere esan nahi du hobekuntza gela, 706 00:33:55,810 --> 00:33:58,490 egiteko eta zuk espero litzateke klase bat hartu du lehen aldiz. 707 00:33:58,490 --> 00:34:01,820 Ez dago zorionez sabaia pixka batzuk bertan iritsi zaren aspirante. 708 00:34:01,820 --> 00:34:03,970 Eta orain dela 3 lortzean pieza goiztiarrena, 709 00:34:03,970 --> 00:34:06,550 ez bada batzuk 2 eta 4, da, hain zuzen ere, gauza ona da. 710 00:34:06,550 --> 00:34:08,880 da ondo gama barruan, ondo itxaropenak barruan. 711 00:34:08,880 --> 00:34:11,421 >> Eta zure burua lasterketa bada, itxaron Minutu bat, hiru, bost. 712 00:34:11,421 --> 00:34:12,620 Hori da benetan 6 10tik a. 713 00:34:12,620 --> 00:34:13,560 Hori% 60 da. 714 00:34:13,560 --> 00:34:14,830 Nire Jainkoa, hori F. bat da 715 00:34:14,830 --> 00:34:15,870 >> Ez da. 716 00:34:15,870 --> 00:34:17,600 Ez da, hain zuzen ere, hori. 717 00:34:17,600 --> 00:34:22,710 Izan ere, aukera bat hobetu da seihilekoan zehar. 718 00:34:22,710 --> 00:34:25,580 Eta baduzu batzuk lortzen ari Poors, horiek aukera ematen dute 719 00:34:25,580 --> 00:34:29,199 aprobetxatu bulegoko ordu, zalantzarik atal eta bestelako baliabideak. 720 00:34:29,199 --> 00:34:32,840 >> Best aukera bat da, benetan, noraino duzun harro egon 721 00:34:32,840 --> 00:34:34,520 seihilekoan zehar etortzen. 722 00:34:34,520 --> 00:34:38,199 Beraz, ez dira konturatzen, gero ezer bestela, hiru ona da. 723 00:34:38,199 --> 00:34:40,179 Eta denboran zehar hazteko aukera ematen du. 724 00:34:40,179 --> 00:34:43,090 >> ardatzak horiek nola diren bezala haztatua, errealistan bazara 725 00:34:43,090 --> 00:34:46,745 Zure denbora gehien pasatzeko lortzean joan lanera gauzak, bakarrik utzi behar bezala. 726 00:34:46,745 --> 00:34:49,120 Eta beraz, zuzentasun joera den gehien haztatuta, bezala 727 00:34:49,120 --> 00:34:51,360 biderkatzen hiru faktore hau. 728 00:34:51,360 --> 00:34:54,659 Diseinua ere garrantzitsua da, baina zerbait ez duzula nahitaez 729 00:34:54,659 --> 00:34:58,220 ordu horiek guztiak gastatzen on Gauzak besterik lanera lortu nahian. 730 00:34:58,220 --> 00:35:00,019 >> Eta hainbeste haztatua da Apur bat gehiago arinki. 731 00:35:00,019 --> 00:35:01,560 Eta gero, estilo gutxienez haztatuta. 732 00:35:01,560 --> 00:35:03,710 Nahiz eta ez gutxiago izan arren Garrantzitsua funtsean, 733 00:35:03,710 --> 00:35:05,990 besterik ez da, beharbada, errazena gauza egiteko eskubidea, 734 00:35:05,990 --> 00:35:08,440 adibideek dugu mimika hitzaldia eta atal egin, 735 00:35:08,440 --> 00:35:11,080 Gauzak ondo ekin koska, eta komentatu 736 00:35:11,080 --> 00:35:14,320 eta abar errazena artean dago gauzak egin eta lortu du. 737 00:35:14,320 --> 00:35:16,960 Beraz, hala nola, konturatzen horiek duten puntuak dira 738 00:35:16,960 --> 00:35:19,000 hori nahiko ulergaitza dira. 739 00:35:19,000 --> 00:35:22,360 >> Eta orain hitz baten gainean Halako zintzotasuna akademikoa. 740 00:35:22,360 --> 00:35:25,150 Beraz, ikastaro hamarkadan per ikasketa plana, ikusiko duzu 741 00:35:25,150 --> 00:35:27,630 Jakina hori du nahiko honen inguruan hizkuntza pixka. 742 00:35:27,630 --> 00:35:31,380 Eta noski alea hartzen zintzotasuna akademiko nahiko larri. 743 00:35:31,380 --> 00:35:33,450 >> bereizketa daukagu, onerako zein txarrerako, 744 00:35:33,450 --> 00:35:36,570 ren ondoren bidalitako urte bakoitzeko gehiago diziplina dagoen ikasle 745 00:35:36,570 --> 00:35:39,670 gehien, beste edozein baino Noski, jakitun naizela. 746 00:35:39,670 --> 00:35:42,580 Hau ez da, nahitaez, Izan ere, adierazgarri 747 00:35:42,580 --> 00:35:46,340 CS ikasleak, edo CS50 ikasle daudela Bat gutxiago zure ikaskideekin baino zintzoa. 748 00:35:46,340 --> 00:35:49,090 Baina errealitatea dela ere hau Mundu, elektronikoki, besterik ez dugu 749 00:35:49,090 --> 00:35:50,990 teknologikoa dute hau detektatzeko esan. 750 00:35:50,990 --> 00:35:53,360 >> Garrantzitsua da guretzat for Klase osoan zuzentasuna 751 00:35:53,360 --> 00:35:58,550 Hori egin dugu, detektatu hau, eta goratzeko alea denean gauzak ikusten dugu. 752 00:35:58,550 --> 00:36:01,980 Eta besterik gabe, irudi bat margotzeko, eta benetan Zerbait laguntzeko konketa hau bezalako, 753 00:36:01,980 --> 00:36:04,600 horiek dira zenbakiak azken 10 urteotan ikasle 754 00:36:04,600 --> 00:36:07,610 izan diren batzuk parte hartzen zintzotasuna akademikoa gaiak, hala nola, 755 00:36:07,610 --> 00:36:10,990 batzuk 32 ikaslerekin Jaitsiera 2015, batetik, zein 756 00:36:10,990 --> 00:36:13,760 da hori hartu ez dugu esateko Gaia oso serio. 757 00:36:13,760 --> 00:36:18,380 Eta, azken finean, zenbaki horiek konposatzen, azken aldian,% 3 inguru,% 4 edo hain 758 00:36:18,380 --> 00:36:19,120 klasearen. 759 00:36:19,120 --> 00:36:25,220 >> Beraz, ikasle gehienek super alde duten ildo argiak dira dirudienez. 760 00:36:25,220 --> 00:36:27,940 Baina mantendu ez honetan axola, batez ere berandu 761 00:36:27,940 --> 00:36:32,080 gauez denean batekin borrokan Arazo multzo bat irtenbide batzuk, 762 00:36:32,080 --> 00:36:34,830 badirela mekanismoak zeure burua hobeto ari da 763 00:36:34,830 --> 00:36:37,870 Zu baino onar ditzake uste, nahiz eta ordu hartan. 764 00:36:37,870 --> 00:36:40,514 Konturatzen denean jasoko dugu hori Ikasle bidalketak, zeharkatu dugu 765 00:36:40,514 --> 00:36:43,430 alderatu aurkezteko guztietan aurten aurkezteko guztietan iaz aurka, 766 00:36:43,430 --> 00:36:47,590 2007-tik aurkezteko ororen aurka, eta, geroztik begira, baita, 767 00:36:47,590 --> 00:36:49,931 kodea biltegiak online, eztabaida foroak, lan-guneak. 768 00:36:49,931 --> 00:36:51,806 Eta hau aipatu dugu, benetan, mesedetan guztiak 769 00:36:51,806 --> 00:36:56,040 Dibulgazioa osoa, hori bada beste norbaitek aurki daitezke online, 770 00:36:56,040 --> 00:36:57,880 zalantzarik, beraz, ezin dugu ikastaroa. 771 00:36:57,880 --> 00:37:00,100 Baina, benetan, espiritua Ikasturtean irakiten behera 772 00:37:00,100 --> 00:37:01,650 curriculumaren klausula honekin. 773 00:37:01,650 --> 00:37:03,670 Benetan, besterik gabe, izan zentzuzko da. 774 00:37:03,670 --> 00:37:06,680 >> Eta bagenu landu behar dela besterik hizkuntza bit gehiago batekin, 775 00:37:06,680 --> 00:37:09,770 konturatzen hori guztien esentzia hori aurkeztu ikastaro honetan duzu lan 776 00:37:09,770 --> 00:37:10,954 zeure izan behar du. 777 00:37:10,954 --> 00:37:13,870 Baina horren barruan, ez dira, zalantzarik aukera, eta animoak, 778 00:37:13,870 --> 00:37:17,300 eta pedagogikoak balio inflexio others-- neure burua, TFS, Eus-, 779 00:37:17,300 --> 00:37:20,760 IL du, eta beste batzuk klasean, laguntza, bakarrik utzi lagunak 780 00:37:20,760 --> 00:37:23,547 eta roommates duten ikertu dute CS eta programazioa aurretik. 781 00:37:23,547 --> 00:37:25,130 Eta, beraz, ez dagoela da hobari bat da. 782 00:37:25,130 --> 00:37:28,180 Eta Thumb arau orokorra da hau, laguntza eske, 783 00:37:28,180 --> 00:37:31,470 Zure kodea erakutsi ahal izango duzu besteei, baina ezin izango duzu ikusteko berea. 784 00:37:31,470 --> 00:37:34,880 Beraz, nahiz eta bulego orduetan, edo D hall, edo beste nonbait ere 785 00:37:34,880 --> 00:37:37,450 Pieza multzo lantzen ari gara, Lagun bat, batera lan horrek 786 00:37:37,450 --> 00:37:40,160 da guztiz fina, at Egun Zure lanaren amaieran 787 00:37:40,160 --> 00:37:43,034 behar, azken finean bakoitzean sartzen duzu, hurrenez hurren, eta ez 788 00:37:43,034 --> 00:37:45,700 elkarlanerako ahalegin batzuk izan, azken proiektua non ezik 789 00:37:45,700 --> 00:37:47,410 baimenduta dago eta animatu. 790 00:37:47,410 --> 00:37:49,830 >> Konturatzen bazaude Zerbait batekin borrokan 791 00:37:49,830 --> 00:37:52,520 eta zure laguna besterik gertatzen hau hobea izan orduan, 792 00:37:52,520 --> 00:37:55,130 edo arazoren duten baino hobeto, edo urrunago duzun baino aurretik, 793 00:37:55,130 --> 00:37:57,330 erabat arrazoizkoa da buelta Zure lagun eta esan, beno, 794 00:37:57,330 --> 00:38:00,480 ez duzu nire kodea begiratzeko axola hemen, laguntzen gelditzea zidan nire alea da? 795 00:38:00,480 --> 00:38:03,760 Eta, zorionez, in the balio pedagogikoa interes 796 00:38:03,760 --> 00:38:07,040 Lagun hori ez ezik, esan, oh, ez hau, baizik eta, 797 00:38:07,040 --> 00:38:09,917 zer falta dira, on line 6, edo horrelako zerbait? 798 00:38:09,917 --> 00:38:12,000 Baina irtenbidea ez da Lagun duzu ondoan dagoen 799 00:38:12,000 --> 00:38:15,617 Erraitea, oh, bai, hemen, let me tira hau eman, eta nire duzun irtenbide erakusteko. 800 00:38:15,617 --> 00:38:16,450 Beraz, lerro da. 801 00:38:16,450 --> 00:38:18,670 Zure kodea erakusten duzu beste batzuk, baina ezin duzu 802 00:38:18,670 --> 00:38:22,350 Ikusteko berea, beste menpe ikastaroa ikasketa planeko mugak. 803 00:38:22,350 --> 00:38:24,760 >> Beraz, kontuan horretan mantentzeko deiturikoak damua klausula 804 00:38:24,760 --> 00:38:27,560 ikastaroa ikasketa planeko baita, duten ekintza batzuk konpromisoa izanez gero 805 00:38:27,560 --> 00:38:30,476 Ez da arrazoizkoa, baina ekartzea da Ikastaroaren buruak arreta 806 00:38:30,476 --> 00:38:34,240 72 orduko epean, ikastaroa tokiko zigorrak jartzea dela 807 00:38:34,240 --> 00:38:37,380 unsatisfactory izan dezakeena edo Huts aurkeztutako lanaren kalifikazioa. 808 00:38:37,380 --> 00:38:41,410 Baina, jakina, ez duela aipatzeko gehiago diziplina axola, 809 00:38:41,410 --> 00:38:43,010 errepikatzen egintzak izan ezik. 810 00:38:43,010 --> 00:38:46,632 Beste era batera esanda, ez baduzu egin batzuk ergelak, batez ere, gauez berandu, erabakia 811 00:38:46,632 --> 00:38:49,340 hurrengo goizean edo bi egunetan geroago, esnatzen zara, eta konturatzen, 812 00:38:49,340 --> 00:38:50,870 zer zen pentsatzen dut? 813 00:38:50,870 --> 00:38:53,890 egiten CS50 zaude irteerarik arazo hori konpontzen 814 00:38:53,890 --> 00:38:57,170 eta sortu jabe da, beraz dugu duzu erdibidean bilduko dira eta aurre 815 00:38:57,170 --> 00:39:01,500 dela bai materia bat da hezkuntzaren eta zuretzat baliagarria, 816 00:39:01,500 --> 00:39:04,200 baina oraindik ere nolabait zigor. 817 00:39:04,200 --> 00:39:08,590 Eta orain, ertzean hartu off, hau. 818 00:39:08,590 --> 00:39:10,570 >> [Bideo-erreprodukzioa] 819 00:39:10,570 --> 00:39:13,540 >> [Musika jotzen] 820 00:39:13,540 --> 00:39:58,090 821 00:39:58,090 --> 00:39:58,866 >> [END erreprodukzioa] 822 00:39:58,866 --> 00:40:00,490 DAVID J. MALAN: Ondo da, itzuli gara. 823 00:40:00,490 --> 00:40:03,680 Eta orain, itxura batean dugu gure mundu errealean domeinuen lehen 824 00:40:03,680 --> 00:40:08,720 CS50, kriptografia artea, bidaltzeko eta jasotzeko artea 825 00:40:08,720 --> 00:40:11,840 mezu sekretuak, enkriptatutako mezuak izango bada, 826 00:40:11,840 --> 00:40:17,060 hori baino ezin dira ulertu baldin baduzu funtsezko osagai batzuk bidaltzailea duela 827 00:40:17,060 --> 00:40:18,030 baita. 828 00:40:18,030 --> 00:40:22,120 Beraz, hau motibatzeko hartu dugu bat gauza honetan begiratu hemen, 829 00:40:22,120 --> 00:40:26,750 zein baten adibidea da sekretua deskodetzailea ring dagoela 830 00:40:26,750 --> 00:40:34,042 Ordena irudikatu ere erabili ahal izango dira zer mezu sekretu bat benetan da. 831 00:40:34,042 --> 00:40:35,750 Izan ere, atzera kalifikazioa eskola egun, 832 00:40:35,750 --> 00:40:38,787 bidaltzen duzun inoiz bada mezuak sekretua Lagun batzuk edo klasean bihurritu batzuk, 833 00:40:38,787 --> 00:40:40,620 zuk pentsa zitekeen argia izateaz zinen 834 00:40:40,620 --> 00:40:46,530 ek zure paper aldakor pieza gainean, bezala, A, B, C eta B, eta C D to, 835 00:40:46,530 --> 00:40:47,590 eta abar. 836 00:40:47,590 --> 00:40:50,300 Baina benetan ari zaren enkriptazioan Zure informazio, are 837 00:40:50,300 --> 00:40:53,300 gutxi trivial bat bazen ere, ez zen gogorra, irakasleak konturatzen da, 838 00:40:53,300 --> 00:40:55,675 ondo, aldatu besterik ez bada A eta C B, B 839 00:40:55,675 --> 00:40:57,550 benetan irudikatu duzu mezua zer zen, 840 00:40:57,550 --> 00:40:59,700 baina informazio aritmetika zinen. 841 00:40:59,700 --> 00:41:03,420 >> besterik ari zara egiten Besterik gabe, Ralphie bezala askoz hemen 842 00:41:03,420 --> 00:41:07,934 ospetsua movie bat jotzen hasi pretty much ad nauseum neguan. 843 00:41:07,934 --> 00:41:08,600 [Bideo-erreprodukzioa] 844 00:41:08,600 --> 00:41:11,180 Be ezagutzen duten guztiei Ralph Parker da, egileak 845 00:41:11,180 --> 00:41:14,070 Little kide bat izendatu Umerzurtzak Annie Secret Circle 846 00:41:14,070 --> 00:41:17,700 da ohoreak guztiak jasotzeko eskubidea eta onurak gertatzen hauekiko. 847 00:41:17,700 --> 00:41:24,340 >> Sinatuta, Little umerzurtzak Annie, Kontraerasoan sinatu Pierre Andre, tinta ere. 848 00:41:24,340 --> 00:41:27,160 Ohore eta onurak, Dagoeneko bederatzi urterekin. 849 00:41:27,160 --> 00:41:30,490 850 00:41:30,490 --> 00:41:31,825 >> [Oihuka] 851 00:41:31,825 --> 00:41:33,750 852 00:41:33,750 --> 00:41:34,250 -Etorri. 853 00:41:34,250 --> 00:41:35,210 Dezagun berarekin. 854 00:41:35,210 --> 00:41:39,530 Ez dut behar duten jazz kontrabandistak eta piratak buruz. 855 00:41:39,530 --> 00:41:41,660 >> -Entzun Bihar gauean Ondorioak abentura 856 00:41:41,660 --> 00:41:43,880 Piraten beltza ontzia. 857 00:41:43,880 --> 00:41:46,650 Orain, garaia da Annie mezu sekretuaren 858 00:41:46,650 --> 00:41:49,840 Secret Circle kideen zuretzat. 859 00:41:49,840 --> 00:41:53,570 Gogoratu, haurrekin, bazkideek bakarrik Annie Circle Secret 860 00:41:53,570 --> 00:41:56,140 Annie sekretua mezua onar daiteke. 861 00:41:56,140 --> 00:42:00,340 >> Gogoratu, Annie duzun arabera. 862 00:42:00,340 --> 00:42:02,880 Ezarri zure pin B2. 863 00:42:02,880 --> 00:42:05,230 Hona hemen mezua da. 864 00:42:05,230 --> 00:42:06,090 12 11-- 865 00:42:06,090 --> 00:42:10,250 >> -I Am, nire lehen bilera sekretu. 866 00:42:10,250 --> 00:42:13,890 >> -14, 11, 18, 16. 867 00:42:13,890 --> 00:42:15,780 >> zen ahots gauean handia -Pierre. 868 00:42:15,780 --> 00:42:19,000 Gauean duten esan izan dut mezua benetan garrantzitsua izan zen. 869 00:42:19,000 --> 00:42:22,694 >> -3, 25, mezu bat da Annie burua. 870 00:42:22,694 --> 00:42:23,860 Gogoratu, ez inori esan. 871 00:42:23,860 --> 00:42:28,760 872 00:42:28,760 --> 00:42:32,930 >> -90 Segundo geroago, naiz bakarrik hasi Etxeko gela non bederatzi mutiko bat 873 00:42:32,930 --> 00:42:37,040 pribatutasuna eta deskodetzea eseri. 874 00:42:37,040 --> 00:42:39,730 Aha, B! 875 00:42:39,730 --> 00:42:42,360 Joan zen hurrengo, E. dut 876 00:42:42,360 --> 00:42:44,520 >> lehen hitza izango da. 877 00:42:44,520 --> 00:42:49,032 S, zen errazagoa datozen orain, U, 25-- 878 00:42:49,032 --> 00:42:51,733 >> -Oh, Goazen, Ralphie, joan beharra dut! 879 00:42:51,733 --> 00:42:53,688 >> -I'll Behera, Ma! 880 00:42:53,688 --> 00:42:54,188 Gee whiz! 881 00:42:54,188 --> 00:42:58,116 882 00:42:58,116 --> 00:43:04,060 >> -T, O, ziur zer den ziur egon zaie? 883 00:43:04,060 --> 00:43:05,970 Zein izan da Little umerzurtzak Annie esan nahian? 884 00:43:05,970 --> 00:43:07,264 Zer izan nahi duzu? 885 00:43:07,264 --> 00:43:09,634 >> -Ralphie, Andy du lortu joan, izango Atera duzu? 886 00:43:09,634 --> 00:43:10,480 >> Guztiak eskubidea, ma! 887 00:43:10,480 --> 00:43:12,880 Eskubidea izango naiz! 888 00:43:12,880 --> 00:43:14,550 >> -I Hurbiltzen lortzean orain. 889 00:43:14,550 --> 00:43:16,620 Tentsioa ikaragarria zen. 890 00:43:16,620 --> 00:43:17,720 Zer izan da? 891 00:43:17,720 --> 00:43:20,170 planetaren patua Baliteke oreka zintzilikatzeko. 892 00:43:20,170 --> 00:43:20,670 >> -Ralphie! 893 00:43:20,670 --> 00:43:23,170 Andy gotta joan! 894 00:43:23,170 --> 00:43:26,890 >> -I'll Out, out negar ozen! 895 00:43:26,890 --> 00:43:32,680 >> -Ia Ez dago, nire behatzak hegan, nire buruan altzairu tranpa bat izan zen, poro guztietan dardarka. 896 00:43:32,680 --> 00:43:37,198 Ia argia izan da, bai, bai, bai. 897 00:43:37,198 --> 00:43:43,091 >> -Ziurtatu Zure Ovaltine edan. 898 00:43:43,091 --> 00:43:43,590 Ovaltine? 899 00:43:43,590 --> 00:43:48,160 900 00:43:48,160 --> 00:43:49,430 crummy merkataritza A? 901 00:43:49,430 --> 00:43:53,046 902 00:43:53,046 --> 00:43:54,227 puta baten semea. 903 00:43:54,227 --> 00:43:54,810 [END erreprodukzioa] 904 00:43:54,810 --> 00:43:57,390 DAVID J. MALAN: Ados, beraz, Hori horrela, oso luzea izan zen 905 00:43:57,390 --> 00:44:00,660 kriptografia sartuz, eta, era berean, Ovaltine. 906 00:44:00,660 --> 00:44:04,470 Izan ere, iragarki zahar honetatik hemen, zergatik Ovaltine da hain ona? 907 00:44:04,470 --> 00:44:09,470 helduak erauzketa kontzentratua da garagar malta, pure krematsuarekin behi-esnea, 908 00:44:09,470 --> 00:44:14,360 eta bereziki prestatu kakaoa, elkarrekin phosphatides natural eta bitaminak. 909 00:44:14,360 --> 00:44:18,240 Da gehiago gotortu bitaminak osagarriak B eta D, yum. 910 00:44:18,240 --> 00:44:21,600 Eta oraindik eskuratu ahal izango da, itxuraz, Amazon on, hemen egin dugu. 911 00:44:21,600 --> 00:44:24,810 >> Baina motibazioa Hemen izan den aurkeztu kriptografia, zehazki, 912 00:44:24,810 --> 00:44:28,340 ezagutzen kriptografia mota bat gako sekretua kriptografia gisa. 913 00:44:28,340 --> 00:44:34,284 Eta izena dioen bezala, osotasunaren gako sekretua kripto sistema baten segurtasuna, 914 00:44:34,284 --> 00:44:36,200 izango bada, metodologia bat besterik scrambling 915 00:44:36,200 --> 00:44:40,960 Bi pertsonen arteko informazio, dela bidaltzaileak eta hartzaileak bakarrik 916 00:44:40,960 --> 00:44:46,980 Badakizu key-- sekretu bat balio batzuk, batzuk Esaldi sekretua, zenbaki sekretu batzuk, 917 00:44:46,980 --> 00:44:50,660 horiek esker, bai enkriptatzeko eta informazio desenkriptatzeko. 918 00:44:50,660 --> 00:44:53,470 Kriptografia, benetan, besterik aste honetan 0-ra dago. 919 00:44:53,470 --> 00:44:56,715 >> Arazo bat non ez da Sarrerek da, Ingelesez Mezuaren bezala 920 00:44:56,715 --> 00:44:59,340 edo edozein hizkuntza dela duzu Nahi norbaiti bidali klasean, 921 00:44:59,340 --> 00:45:00,580 edo internet zehar. 922 00:45:00,580 --> 00:45:03,840 Ez dago irteera batzuk, hau da, joan da nahaskia mezua izango duzula 923 00:45:03,840 --> 00:45:05,250 hartzaileak jaso nahi. 924 00:45:05,250 --> 00:45:07,405 Eta nahiz eta norbaitek erditik jaso du gehiegi, 925 00:45:07,405 --> 00:45:09,780 ez badituzu nahi zertan desenkriptatu, 926 00:45:09,780 --> 00:45:12,840 honen barruan delako kutxa beltza, edo algoritmoa, 927 00:45:12,840 --> 00:45:17,650 mekanismo batzuk, pauso batzuk urratsez da argibideak, sarrera hori hartu 928 00:45:17,650 --> 00:45:20,710 eta bihurtzeko sartu irteera, zorionez, era seguruan. 929 00:45:20,710 --> 00:45:23,640 >> Eta, hain zuzen ere, ez da batzuk Mundu honetan lexikoa honela. 930 00:45:23,640 --> 00:45:26,100 Testu laua hitz bat da ordenagailu zientzialari litzateke 931 00:45:26,100 --> 00:45:28,449 erabili sarrerako deskribatzeko mezua, ingelesek bezala 932 00:45:28,449 --> 00:45:31,240 edo edozein hizkuntza duzu benetan Nahi beste giza batzuk bidali. 933 00:45:31,240 --> 00:45:35,450 Eta gero ciphertext du scramble da enciphered izateko, edo enkriptatu, 934 00:45:35,450 --> 00:45:36,520 bertsioa ere. 935 00:45:36,520 --> 00:45:38,750 >> Baina bada beste osagai bat da hemen. 936 00:45:38,750 --> 00:45:43,200 Badira beste sarrera bat da gako sekretua kriptografia. 937 00:45:43,200 --> 00:45:45,200 Eta hori gakoa bera da, hau da, oro har, 938 00:45:45,200 --> 00:45:48,930 ikusiko dugun bezala, zenbaki bat, edo gutun, edo hitza, edozein dela 939 00:45:48,930 --> 00:45:51,980 algoritmoa da benetan espero du. 940 00:45:51,980 --> 00:45:53,870 >> Eta nola ez, informazioa desenkriptatzeko duzu? 941 00:45:53,870 --> 00:45:55,110 Zelan unscramble duzu? 942 00:45:55,110 --> 00:45:57,950 Beno, alderantzizko besterik ez duzu irteerak eta Sarrerek. 943 00:45:57,950 --> 00:46:00,900 >> Beste era batera esanda, norbaitek behin zure enkriptatutako mezu jasotzen, 944 00:46:00,900 --> 00:46:03,740 berak ditu, besterik gabe, Giltza hori bera ezagutu. 945 00:46:03,740 --> 00:46:05,700 ciphertext jaso dute. 946 00:46:05,700 --> 00:46:09,530 Eta bi horiek plugging Sarrerek crypto sisteman sartu, 947 00:46:09,530 --> 00:46:14,260 algoritmoa, kutxa beltza, out jatorrizko testu soilik etorri behar. 948 00:46:14,260 --> 00:46:17,830 Eta beraz, oso maila altua da zer kriptografia da benetan ikuspegia 949 00:46:17,830 --> 00:46:18,590 guztiei buruz. 950 00:46:18,590 --> 00:46:20,030 >> Hargatik ez. 951 00:46:20,030 --> 00:46:22,700 Dezagun orain begiratu azpian Zerbait kanpaia 952 00:46:22,700 --> 00:46:26,000 izan dugu emandako hartuz Iragan astean, eta saio honetan 953 00:46:26,000 --> 00:46:27,629 hemen katea. 954 00:46:27,629 --> 00:46:30,295 Egunaren amaieran katea, karaktere-sekuentzia bat besterik ez da. 955 00:46:30,295 --> 00:46:33,610 >> kaixo mundua izango da agian, edo kaixo Zamyla, edo dena delakoa. 956 00:46:33,610 --> 00:46:37,050 Baina zer esan nahi du behar karaktere-sekuentzia bat izan? 957 00:46:37,050 --> 00:46:41,520 Izan ere, CS50 liburutegia ematen Gurekin datu-mota katea deitu. 958 00:46:41,520 --> 00:46:45,140 >> Baina ez da benetan ez hala nola, C. Kate gisa gauza 959 00:46:45,140 --> 00:46:49,450 benetan sekuentzia bat besterik ez da pertsonaia, pertsonaia, pertsonaia, 960 00:46:49,450 --> 00:46:52,180 pertsonaia, atzera, atzera, nahi Atzera, atzera, barruan kopiak 961 00:46:52,180 --> 00:46:54,650 zure ordenagailuaren memorian, edo RAM. 962 00:46:54,650 --> 00:46:58,940 Eta itxura sakonagoa egingo dugu hori sartu etorkizuneko begiratzen memoria bera dugu, 963 00:46:58,940 --> 00:47:02,030 eta erabilera, eta inplikatutako mehatxuak. 964 00:47:02,030 --> 00:47:04,100 >> Baina kontuan hartu dezagun katea Zamyla. 965 00:47:04,100 --> 00:47:07,480 Beraz, besterik izenean Giza hemen, Zamyla, 966 00:47:07,480 --> 00:47:12,030 duten sekuentzia bat da pertsonaiak, Z-A-M-Y-L-A. 967 00:47:12,030 --> 00:47:16,020 Eta orain, demagun Zamyla izena da ordenagailu baten barruan gordetzen ari 968 00:47:16,020 --> 00:47:16,880 programa. 969 00:47:16,880 --> 00:47:20,830 >> Beno, arrazoitu behar dugu hori nabarmentzen da izan diren pertsonaia horiek begiratu ahal 970 00:47:20,830 --> 00:47:21,590 banaka. 971 00:47:21,590 --> 00:47:24,710 Naiz, beraz, apur bat marrazteko Zamyla izenaren inguruan box hemen. 972 00:47:24,710 --> 00:47:31,580 Eta C kasua da, noiz duzula kate bat izan, Zamyla-- eta agian atsegin 973 00:47:31,580 --> 00:47:34,940 Kate hori itzuli da bertatik katea bezalako funtzio bat, 974 00:47:34,940 --> 00:47:38,540 benetan dezakezu manipulatzen da karakterez karaktere. 975 00:47:38,540 --> 00:47:42,070 >> Orain, hau da egin germane Elkarrizketa eskutik, baita 976 00:47:42,070 --> 00:47:46,420 kriptografia ere aldatu nahi baduzu A, B, C eta B, eta C D to, 977 00:47:46,420 --> 00:47:49,650 eta abar, gai izan behar duzu banakako pertsonaiak begiratu 978 00:47:49,650 --> 00:47:50,190 kate batean. 979 00:47:50,190 --> 00:47:52,695 izango dira aldatu behar duzu beste zerbait, A to Z 980 00:47:52,695 --> 00:47:55,280 beste zerbait, M to bestela, eta abar zerbait. 981 00:47:55,280 --> 00:47:58,000 Eta beraz, modu bat behar dugu, programazioaren, beraz, 982 00:47:58,000 --> 00:48:03,020 Esateko, C ere izango dira aldatu behar eta letrak banakako begiratzen. 983 00:48:03,020 --> 00:48:05,690 Eta hori egin ahal izango dugu, honela. 984 00:48:05,690 --> 00:48:08,340 >> Burua atzera CS50 IDE joan me. 985 00:48:08,340 --> 00:48:11,130 Eta utzi aurrera me eta fitxategi berri bat sortzeko 986 00:48:11,130 --> 00:48:16,134 dudala denbora string0 hau deitu, Gure lehen esaterako, adibide gisa, dot c. 987 00:48:16,134 --> 00:48:18,300 Eta aurrera noa joan eta Greba honela. 988 00:48:18,300 --> 00:48:22,870 >> Beraz, besteak CS50.h, eta ondoren, besteak beste, io.h estandarra, 989 00:48:22,870 --> 00:48:25,990 bertan, naiz ia beti joan izan nire programetan erabiliz, gutxienez 990 00:48:25,990 --> 00:48:26,780 Hasieran. 991 00:48:26,780 --> 00:48:32,180 int hutsune nagusia, eta gero, hemen nago kateak egin da joan lortzen katea iritsi. 992 00:48:32,180 --> 00:48:35,260 Eta gero noa aurrera, eta hori egin. 993 00:48:35,260 --> 00:48:37,460 Aurrera joan nahi dut eta, behatu kontrol gisa, 994 00:48:37,460 --> 00:48:43,607 besterik esan, kaixo, ehuneko s, puntu, katea 0 egiten. 995 00:48:43,607 --> 00:48:44,690 Uh oh, zer egin behar dut hemen? 996 00:48:44,690 --> 00:48:45,930 Oh, ez nuen konektatu. 997 00:48:45,930 --> 00:48:48,120 Beraz, ikasgai ikasi, Ez zen nahita. 998 00:48:48,120 --> 00:48:52,480 >> Beraz, akats, ehuneko gehiago konbertsioak datuak argumentuak baino. 999 00:48:52,480 --> 00:48:54,940 Eta hau da, non, in lerroa, 7 Ados, beraz, I, 1000 00:48:54,940 --> 00:48:56,690 aurrekontua unquote, hori da Nire katea printf. 1001 00:48:56,690 --> 00:48:58,151 Nik portzentai-ikurra jaso nuen. 1002 00:48:58,151 --> 00:48:59,650 Baina bigarren argumentua falta naiz. 1003 00:48:59,650 --> 00:49:03,190 >> koma s, falta naiz bertan Ez nuen aurreko adibideetako dute. 1004 00:49:03,190 --> 00:49:06,650 Beraz, aukera ona izan du konpondu bat gehiago neurtu, ustekabean. 1005 00:49:06,650 --> 00:49:09,950 Eta orain, let me exekutatu string0, Zamyla mota. 1006 00:49:09,950 --> 00:49:10,970 Ados, kaixo Zamyla. 1007 00:49:10,970 --> 00:49:14,144 >> Beraz, exekutatu dugu mota honetako programa bukatzeko zenbait aldiz orain. 1008 00:49:14,144 --> 00:49:16,310 Baina egin dezagun zerbait bat utzi gutxi beste denbora honetan. 1009 00:49:16,310 --> 00:49:19,450 Horren ordez, besterik Zamyla inprimatzeko izen osoa printf atera, 1010 00:49:19,450 --> 00:49:21,350 Egin karakterez karaktere utzi. 1011 00:49:21,350 --> 00:49:22,700 >> bat erabili behar begizta noa. 1012 00:49:22,700 --> 00:49:26,160 Eta ez dut neure burua ematen joan zenbaketa aldagai bat, deitu i. 1013 00:49:26,160 --> 00:49:33,530 Eta ez dut errepikatzean jarraitzea, beraz, luze s luzera baino txikiagoa da i bezala. 1014 00:49:33,530 --> 00:49:35,930 >> Bihurtzen da, ez genuen ez azken denbora honetan, 1015 00:49:35,930 --> 00:49:39,100 c hori bat dator Funtzio Stirling deitu. 1016 00:49:39,100 --> 00:49:42,690 Itzuli egunean, eta, oro har, oraindik denean funtzioak gauzatzeko, 1017 00:49:42,690 --> 00:49:45,405 gizakiak egingo askotan aukeratu oso succinct izenak soinu-mota hori 1018 00:49:45,405 --> 00:49:48,280 zer nahi duzun da, nahiz bezalako gutxi batzuk bokal edo letrak falta. 1019 00:49:48,280 --> 00:49:50,660 Beraz Stirling da funtzio baten izena dela 1020 00:49:50,660 --> 00:49:53,880 arteko argumentu hartzen parentesi hori kate bat izan behar du. 1021 00:49:53,880 --> 00:49:56,910 Eta zenbaki oso bat itzultzen du, besterik ez da, katea luzera du. 1022 00:49:56,910 --> 00:50:00,580 >> Beraz, hau loop on line 7 da joan berdin i 0 kontatuta hasteko. 1023 00:50:00,580 --> 00:50:02,530 Honez Kontatzailea joan i iterazio bakoitzean 1024 00:50:02,530 --> 00:50:04,350 1-ek, izan dugu hainbat aldiz egiten den bezala. 1025 00:50:04,350 --> 00:50:06,780 Baina nik bakarrik egin da joan ireki honen puntua arte 1026 00:50:06,780 --> 00:50:09,660 denean i luzera da katea bera. 1027 00:50:09,660 --> 00:50:14,520 >> Beraz, hau egiteko modu bat da, azken finean, karaktere baino gehiago 1028 00:50:14,520 --> 00:50:17,430 katea bezala da honakoa. 1029 00:50:17,430 --> 00:50:20,670 out inprimitzeko ez noa kate osoan, baina ehuneko c, 1030 00:50:20,670 --> 00:50:22,860 karaktere bakar bat linea berri bat, eta jarraian. 1031 00:50:22,860 --> 00:50:24,880 Eta gero noa Anima zaitez, eta behar dut 1032 00:50:24,880 --> 00:50:29,080 inprimatu nahi dut esateko igarren s izaera. 1033 00:50:29,080 --> 00:50:33,450 >> Beraz, i aldagaia dela adierazten bada katea, non-indizea 1034 00:50:33,450 --> 00:50:37,230 duzun dira bertan, gai izan behar dut esan, ematen dit igarren s izaera. 1035 00:50:37,230 --> 00:50:40,390 Eta c egiteko modu bat du hau parentesi karratu. 1036 00:50:40,390 --> 00:50:43,679 esan besterik ez duzu izenean katea, eta kasu honetan s da. 1037 00:50:43,679 --> 00:50:46,970 Ondoren karratu parentesi dira, erabili duzu normalean zure Itzuli edo Sartu gainetik 1038 00:50:46,970 --> 00:50:48,110 tekla. 1039 00:50:48,110 --> 00:50:52,410 Eta gero Indizearen jarri pertsonaia inprimatu nahi duzun hori. 1040 00:50:52,410 --> 00:50:55,960 Beraz indizean dago bat izango da zenbaki 0 ​​edo 1 edo 2 edo 3 edo puntua, 1041 00:50:55,960 --> 00:50:57,590 dot, dot, beste zenbaki batzuk. 1042 00:50:57,590 --> 00:51:00,920 >> Eta hori da joan bermatuko dugu izan eskuineko zenbakia, I delako 1043 00:51:00,920 --> 00:51:02,360 hasteko 0 kontatuta. 1044 00:51:02,360 --> 00:51:07,020 Eta lehenetsiz, lehen karaktere kate batean konbentzio 0 da. 1045 00:51:07,020 --> 00:51:09,230 Eta bigarren pertsonaia tarte 1 da. 1046 00:51:09,230 --> 00:51:11,120 Eta hirugarren pertsonaia parentesi 2 da. 1047 00:51:11,120 --> 00:51:13,630 Eta ez duzu nahi gehiegi joan urrun, baina ez dugu ari garelako 1048 00:51:13,630 --> 00:51:17,780 Besterik Kontatzailea i da arte katearen luzera berdina da. 1049 00:51:17,780 --> 00:51:20,210 Eta zein puntutan, begizta gelditu egingo da. 1050 00:51:20,210 --> 00:51:25,550 >> Hargatik aurrera me eta hau gorde programa, eta korrika egiteko katea 0. 1051 00:51:25,550 --> 00:51:28,400 Baina dena izorratu nuen. 1052 00:51:28,400 --> 00:51:35,390 Inplizituki liburutegi funtzioa geratuko mota, hala nola, Stirling eta such-- orain, 1053 00:51:35,390 --> 00:51:36,430 horrek oso ezaguna. 1054 00:51:36,430 --> 00:51:37,440 Baina ez da printf. 1055 00:51:37,440 --> 00:51:38,540 Eta ez da katea lortu. 1056 00:51:38,540 --> 00:51:40,480 >> ez dut torlojua hasi Modu berean, denbora honetan. 1057 00:51:40,480 --> 00:51:45,100 Baina nabarituko behera hemen apur bat behera gehiago, besteak goiburua String.h du, 1058 00:51:45,100 --> 00:51:47,210 esplizituki ematen du Stirling deklarazioa. 1059 00:51:47,210 --> 00:51:48,820 Beraz, ez da benetan ez arrastoren bat. 1060 00:51:48,820 --> 00:51:51,670 >> Eta hain zuzen ere, bihurtzen da Goiburu-fitxategi bat da 1061 00:51:51,670 --> 00:51:53,970 Nik hori ez dugu erabili klasean oraindik, baina da 1062 00:51:53,970 --> 00:51:56,480 eskuragarri dutenen artean nahi, String.h deitu. 1063 00:51:56,480 --> 00:52:00,930 Eta fitxategi hori, String.h hasi da Stirling deklaratu. 1064 00:52:00,930 --> 00:52:05,220 Beraz, aurrera eta gorde hau, katea egin 1065 00:52:05,220 --> 00:52:08,040 0-- polita, ez akats mezuak une honetan. 1066 00:52:08,040 --> 00:52:12,290 >> ./string0 Zamyla, eta Sartu sakatu beharrean nago, 1067 00:52:12,290 --> 00:52:16,710 puntua Getstring va katea itzuliko da, jarri s ere. 1068 00:52:16,710 --> 00:52:21,890 Ondoren begizta da batetik bestera joateko joan baino S karaktere bat aldi berean, 1069 00:52:21,890 --> 00:52:28,420 eta horiek inprimatu lerro bakoitzeko, baita backslash amaieran n izan nuen. 1070 00:52:28,420 --> 00:52:34,530 Beraz backslash duten ezikusia ezin dut n, eta, ondoren, besterik inprimatu Zamyla guztiak 1071 00:52:34,530 --> 00:52:37,460 lerro berean, eraginkortasunez reimplementing 1072 00:52:37,460 --> 00:52:38,999 printf, eta hori ez da guztia baliagarria. 1073 00:52:38,999 --> 00:52:40,540 Baina kasu honetan, ez dut horrelakorik egin. 1074 00:52:40,540 --> 00:52:43,610 Benetan Nik inprimatutako bat aldi berean pertsonaia, lerro bakoitzeko, 1075 00:52:43,610 --> 00:52:45,400 beraz, benetan ikusten dugun efektua. 1076 00:52:45,400 --> 00:52:46,900 >> Baina gauza bat ohartarazi nahi nuke hemen. 1077 00:52:46,900 --> 00:52:48,930 Eta itzuli gara nahi hau etorkizuneko aste batean. 1078 00:52:48,930 --> 00:52:52,650 Bihurtzen hori da kodea potentzialki buggy da. 1079 00:52:52,650 --> 00:52:56,560 >> Bihurtzen da lortu duten kate eta bizitzaren beste funtzio batzuk 1080 00:52:56,560 --> 00:53:00,280 ez dute zertan beti itzultzeko zer ari zaren zain. 1081 00:53:00,280 --> 00:53:03,010 Badakizu class azken from dugu hau lortu duten denbora 1082 00:53:03,010 --> 00:53:04,960 kate suposatzen da kate bat itzuli. 1083 00:53:04,960 --> 00:53:09,900 Baina zer erabiltzaileak motak, hala nola kanpo Hitz bat luze, edo paragrafo, edo saiakera 1084 00:53:09,900 --> 00:53:13,010 ez dagoela besterik ez da nahikoa ordenagailuan memoria egokitzeko. 1085 00:53:13,010 --> 00:53:15,410 >> Like, zer bada zerbait doa kanpaia azpian gertatzen da? 1086 00:53:15,410 --> 00:53:18,400 Agian ez da gertatuko askotan, baina behin gerta zitekeela 1087 00:53:18,400 --> 00:53:21,520 pixka batean, oso gutxitan. 1088 00:53:21,520 --> 00:53:25,460 Eta beraz, bihurtzen da lortu duten kate eta hura bezalako funtzioak ez du zertan 1089 00:53:25,460 --> 00:53:26,380 beti itzultzeko kateak. 1090 00:53:26,380 --> 00:53:30,680 error balio batzuk itzuli dute agian, Sentinel balio batzuk nolabait esateko, 1091 00:53:30,680 --> 00:53:32,612 adierazten duen zerbait gaizki joan da. 1092 00:53:32,612 --> 00:53:35,320 Eta zuk bakarrik ezagutzen honetatik ikasi ondoren klasean orain, 1093 00:53:35,320 --> 00:53:37,700 izana, edo zenbait dokumentazio gehiago irakurri. 1094 00:53:37,700 --> 00:53:43,120 Bihurtzen da lortu duten kate izeneko null balio bat itzultzeko. 1095 00:53:43,120 --> 00:53:46,220 Null balio berezia dela zaitugu zatoz atzera etorkizunean aste batean. 1096 00:53:46,220 --> 00:53:50,420 Baina, oraingoz, besterik ezagutzen nahi badut benetan aurrera doala ere egokia izan behar 1097 00:53:50,420 --> 00:53:52,650 katea erabiliz, I behar ez deitu besterik ez da, 1098 00:53:52,650 --> 00:53:56,870 eta itsu-itsuan erabili bere itzulera balioa, fidatu kate bat dela. 1099 00:53:56,870 --> 00:53:59,420 >> lehen esan behar dut, beno, itxaron minutu bat, soilik 1100 00:53:59,420 --> 00:54:03,380 jarraitu s ez da berdina bada null, null non, berriro, 1101 00:54:03,380 --> 00:54:04,660 balio berezi batzuk besterik ez da. 1102 00:54:04,660 --> 00:54:07,770 Eta balio berezia bakarra da duzu Behar kezkatu lortu katea. 1103 00:54:07,770 --> 00:54:10,900 Talde esaldia da bai joan Kate bat edo null itzultzeko. 1104 00:54:10,900 --> 00:54:17,219 >> Eta harridura puntu honetan berdin zeinu agian, agian, matematika klasean badakizu 1105 00:54:17,219 --> 00:54:20,510 duten berdintasun-ikurra marraztu dezakezu batekin Bidez lerro bat ez da berdina adierazteko. 1106 00:54:20,510 --> 00:54:23,135 Hori ez da, oro har, pertsonaia bat zure teklatuan idatz dezakezu. 1107 00:54:23,135 --> 00:54:26,480 Eta beraz, programazio hizkuntza gehienetan, denean ez da berdina esan nahi duzu, 1108 00:54:26,480 --> 00:54:29,160 harridura puntu bat erabili duzu, bestela bang bezala ezagutzen. 1109 00:54:29,160 --> 00:54:33,180 Beraz bang berdinen, esan duzu bertan esan nahi du, ez da berdin, logikoki. 1110 00:54:33,180 --> 00:54:38,060 Da ez bezala besterik ez da handiagoa izan baino, edo berdin, edo baino gutxiago 1111 00:54:38,060 --> 00:54:41,270 edo berdin zure teklatua gakoa Hori ez dena sinbolo bat ere. 1112 00:54:41,270 --> 00:54:44,020 Beraz, horregatik, iraganeko adibideak ere, parentesia ireki bat egin duzu, eta, ondoren, 1113 00:54:44,020 --> 00:54:48,670 berdintasun-ikurra, ordenan egin handiago edo, esan, baino gutxiago. 1114 00:54:48,670 --> 00:54:49,910 >> Beraz, zer da eramateko hemen? 1115 00:54:49,910 --> 00:54:53,880 Hau da, besterik gabe, modu bat orain Sintaxia hau aurkezten den, eginbide honek, 1116 00:54:53,880 --> 00:54:57,390 Banakako errepikatzean karaktere kate batean. 1117 00:54:57,390 --> 00:55:00,260 Eta besterik plaza horiek bezalakoa Parentesi baimendu haiek lortuko duzu, 1118 00:55:00,260 --> 00:55:03,790 kontuan kortxeteen horiek bezala motatako azpiko honetan hinting 1119 00:55:03,790 --> 00:55:06,040 diseinua, zeinaren guztietan pertsonaia kate baten barruan 1120 00:55:06,040 --> 00:55:10,180 Mota da nonbait ere atxilotu azpian zure ordenagailuaren memorian kanpaia. 1121 00:55:10,180 --> 00:55:12,340 >> Baina dezagun hau aldaera bat. 1122 00:55:12,340 --> 00:55:14,880 Bihurtzen hori da Programa zuzena da. 1123 00:55:14,880 --> 00:55:18,810 Beraz CS50 ardatzak per ebaluatzeko kodea, hau zuzena da orain. 1124 00:55:18,810 --> 00:55:22,959 Batez ere orain ni naiz egiaztapena null, programa honetan inoiz hondatuko. 1125 00:55:22,959 --> 00:55:24,500 Eta ezagutzen dut esperientzia duten. 1126 00:55:24,500 --> 00:55:28,040 Baina, ez da beste ezer benetan joan ahal izango dugu, oker hemen. 1127 00:55:28,040 --> 00:55:31,860 Baina ez da oso ondo diseinatutako, goazen itzuli oinarriak delako. 1128 00:55:31,860 --> 00:55:34,450 >> Lehenengoa, principles-- zer begizta bat egin? 1129 00:55:34,450 --> 00:55:36,290 begizta baten hiru gauza. 1130 00:55:36,290 --> 00:55:39,340 batzuk initializes balio, eskatu egiten baduzu. 1131 00:55:39,340 --> 00:55:41,770 baldintza bat egiaztatzen du. 1132 00:55:41,770 --> 00:55:45,380 Eta gero, ondoren bakoitzak iterazio, ziklo bakoitzaren ondoren, 1133 00:55:45,380 --> 00:55:49,330 batzuk zatituko da balio, edo baloreak, hemen. 1134 00:55:49,330 --> 00:55:50,600 >> Beraz, zer esan nahi du horrek? 1135 00:55:50,600 --> 00:55:52,940 0 i hasieratzeko dugu. 1136 00:55:52,940 --> 00:55:58,610 egiaztatu dugu eta ziurtatu i baino txikiagoa da s luzera, horrek Z-A-M-Y-L-A da, 1137 00:55:58,610 --> 00:55:59,900 beraz, bertan 6 baino gutxiago. 1138 00:55:59,900 --> 00:56:02,590 Eta, hain zuzen ere, 0 eta 6 baino gutxiago. 1139 00:56:02,590 --> 00:56:05,580 >> inprimatzeko dugu Z Zamyla izenetik. 1140 00:56:05,580 --> 00:56:08,080 Ondoren i Kontatzailea dugu 0 eta 1 artekoa. 1141 00:56:08,080 --> 00:56:11,290 ondoren, egiaztatu dugu, da 1 gutxiago s luzera baino? 1142 00:56:11,290 --> 00:56:13,270 s luzera 6 da. 1143 00:56:13,270 --> 00:56:13,950 Bai hori da. 1144 00:56:13,950 --> 00:56:16,880 >> Beraz, bat inprimatu dugu Zamyla izena, ZA ere. 1145 00:56:16,880 --> 00:56:20,090 i Kontatzailea dugu 0tik, 1, 2. 1146 00:56:20,090 --> 00:56:23,720 ondoren, egiaztatu dugu, baino 2 gutxiago Zamyla izenaren iraupena. 1147 00:56:23,720 --> 00:56:25,380 6- orain 2 6 baino gutxiago. 1148 00:56:25,380 --> 00:56:30,460 Bai, dezagun inprimatu orain M-en Zamyla izena, hirugarren pertsonaia. 1149 00:56:30,460 --> 00:56:34,110 >> Gakoa hemen duten bakoitzean Istorioa iterazio, naiz egiaztapena, 1150 00:56:34,110 --> 00:56:37,810 da i Zamyla luzera baino gutxiago? 1151 00:56:37,810 --> 00:56:40,350 Baina harrapatzen dela Stirling ez da etxebizitza bat. 1152 00:56:40,350 --> 00:56:43,100 Nork programatu Duzun dutenek Java edo beste hizkuntzetan baino lehen 1153 00:56:43,100 --> 00:56:46,310 luzera jakin liteke kate bat da Jabetza bat, besterik gabe, zenbait balio bakarra irakurtzea. 1154 00:56:46,310 --> 00:56:50,220 >> Kasu honetan C ere, hau da, bada funtzio bat da, hitzez hitz 1155 00:56:50,220 --> 00:56:53,520 zenbatzeaz Zamyla pertsonaiak aldi bakoitzean 1156 00:56:53,520 --> 00:56:54,740 funtzio hori deitu dugu. 1157 00:56:54,740 --> 00:56:58,500 Denbora bakoitzak ordenagailu eskatu duzu erabili Stirling, begirada bat hartzen ari da Zamyla at, 1158 00:56:58,500 --> 00:57:01,960 eta esaten Z-A-M-Y-L-A, 6. 1159 00:57:01,960 --> 00:57:02,962 Eta 6 itzultzen da. 1160 00:57:02,962 --> 00:57:04,920 Hurrengo aldiz deitu begizta barruan da, 1161 00:57:04,920 --> 00:57:08,610 nik Zamyla begiratu joan berriro, esan Z-A-M-Y-L-A, 6. 1162 00:57:08,610 --> 00:57:10,320 Eta hori 6 itzuli egingo da. 1163 00:57:10,320 --> 00:57:12,980 Beraz, zer da diseinu honi buruz ergelak? 1164 00:57:12,980 --> 00:57:17,700 >> Zergatik nire kodea ez da 5 out of 5 diseinua egiteko oraintxe, beraz, hitz egiteko? 1165 00:57:17,700 --> 00:57:20,600 Beno, dut galdetuz bat Galdera alferrik. 1166 00:57:20,600 --> 00:57:23,030 lan gehiago egiten ari naiz behar baino nuen. 1167 00:57:23,030 --> 00:57:25,370 >> Beraz, nahiz eta Erantzun zuzena da, ni naiz 1168 00:57:25,370 --> 00:57:29,560 ordenagailuan galdetuz, zer da Zamyla luzera berriro, 1169 00:57:29,560 --> 00:57:31,380 eta berriro, eta berriro, eta berriro? 1170 00:57:31,380 --> 00:57:33,980 Eta erantzuna da inoiz aldatuko denik. 1171 00:57:33,980 --> 00:57:35,900 Beti da 6 izango da. 1172 00:57:35,900 --> 00:57:39,730 >> Beraz, hau baino irtenbide hobea hurrengo bertsio hau izango litzateke. 1173 00:57:39,730 --> 00:57:43,390 Dezagun aurrera me eta ipini batean aparteko fitxategi string1.c deitzen, 1174 00:57:43,390 --> 00:57:44,990 besterik ez da bereizita mantentzeko. 1175 00:57:44,990 --> 00:57:47,260 Eta bihurtzen da bat ere begizta, benetan ahal izango duzu 1176 00:57:47,260 --> 00:57:50,210 deklaratzeko aldagai bat baino gehiago aldi berean. 1177 00:57:50,210 --> 00:57:53,460 >> Beraz, ez dut i mantendu eta ezarri 0 joan. 1178 00:57:53,460 --> 00:57:56,190 Baina, halaber, naiz joan Koma bat gehitu, eta esan, 1179 00:57:56,190 --> 00:58:01,050 ematen dit izeneko n aldagai bat, zeinen balio katea s luzera berdin. 1180 00:58:01,050 --> 00:58:09,410 Eta orain, mesedez, nire egoera hain luze n baino txikiagoa da i bezala. 1181 00:58:09,410 --> 00:58:14,140 >> Beraz, modu honetan, logika da Egunaren amaieran, berdin-berdina. 1182 00:58:14,140 --> 00:58:18,280 Baina nago gogoratuz dut balio 6, kasu honetan. 1183 00:58:18,280 --> 00:58:19,780 Zer da Zamyla izenaren luzera? 1184 00:58:19,780 --> 00:58:20,860 Eta naiz jarriz at n. 1185 00:58:20,860 --> 00:58:23,050 >> Eta nik oraindik egiaztapena naiz baldintza aldi bakoitzean. 1186 00:58:23,050 --> 00:58:24,300 Da 0 6 baino gutxiago? 1187 00:58:24,300 --> 00:58:25,600 Is 1 6 baino gutxiago? 1188 00:58:25,600 --> 00:58:28,600 6 baino 2 gutxiago, eta abar? 1189 00:58:28,600 --> 00:58:31,914 >> Baina ez naiz ordenagailuan galdetuz berriro, eta berriro, zer da 1190 00:58:31,914 --> 00:58:33,080 Zamyla izenaren luzera? 1191 00:58:33,080 --> 00:58:34,320 Zer da Zamyla izenaren luzera? 1192 00:58:34,320 --> 00:58:35,986 Zer da hau Zamyla izenaren luzera? 1193 00:58:35,986 --> 00:58:40,440 naiz literalki gogoratuta lehen eta Besterik bigarren n aldagai honi erantzuteko. 1194 00:58:40,440 --> 00:58:45,280 Beraz, orain, ez bakarrik izango litzateke zuzena, baina baita ondo diseinatutako. 1195 00:58:45,280 --> 00:58:46,670 >> Orain, zer style buruz? 1196 00:58:46,670 --> 00:58:48,866 Nire aldagai izendatu dut Nahiko ondo, esango nuke. 1197 00:58:48,866 --> 00:58:50,240 super succinct ari dira oraintxe. 1198 00:58:50,240 --> 00:58:52,090 Eta guztiz fina. 1199 00:58:52,090 --> 00:58:55,120 >> eta besterik ez duzu bat bada programa batean katea, 1200 00:58:55,120 --> 00:58:56,860 baita dezakezu deitu s katea da. 1201 00:58:56,860 --> 00:58:59,370 Besterik duzu aldagai bat bada programa batean kontatuta, 1202 00:58:59,370 --> 00:59:00,710 baita dezakezu deitu dut. 1203 00:59:00,710 --> 00:59:03,500 luzera bat egin nahi izanez gero, n da super ohikoa baita. 1204 00:59:03,500 --> 00:59:05,800 Baina ez dut nire iruzkindu kodea edozein. 1205 00:59:05,800 --> 00:59:09,200 >> Ez dut informatuta reader-- du duten ala nire TF, edo TA da, 1206 00:59:09,200 --> 00:59:12,460 edo, besterik gabe, lankide zer suposatzen Be going on programa honetan. 1207 00:59:12,460 --> 00:59:15,760 Eta beraz, estilo ona lortzeko, zer egin nahi nuke 1208 00:59:15,760 --> 00:59:24,580 Zerbait dute hau da atsegin galdetu erabiltzaileari sarrera. 1209 00:59:24,580 --> 00:59:26,670 Eta berridatzi ezin dut hau edozein modutan kopurua. 1210 00:59:26,670 --> 00:59:35,630 >> Ziurtatu s-- Ziur get egiteko kate kate bat itzuli du. 1211 00:59:35,630 --> 00:59:40,280 Eta gero, hemen, eta hau da, agian, garrantzitsuena comment-- bestera joateko 1212 00:59:40,280 --> 00:59:44,450 s bateko pertsonaiak garai batean baino gehiago. 1213 00:59:44,450 --> 00:59:47,060 Eta edozein erabili izan dut English Hizkuntza aukeratu 1214 00:59:47,060 --> 00:59:49,650 Hemen bakoitza deskribatzeko kode zatiak hauen. 1215 00:59:49,650 --> 00:59:52,740 >> Ohartu ez dut jarri bat lerro bakoitzean komentatzeko, 1216 00:59:52,740 --> 00:59:55,690 Benetan, besterik interesgarri on direnak, direnak direla 1217 00:59:55,690 --> 00:59:59,460 esanahi batzuk izan duten I might Nahi super norbaitek argi egiteko 1218 00:59:59,460 --> 01:00:00,460 Nire kodea irakurriz. 1219 01:00:00,460 --> 01:00:02,920 Eta zergatik dira lortu deituz duzu katea eskatu erabiltzaileari sarrera? 1220 01:00:02,920 --> 01:00:05,450 Nahiz eta hori ez da nahitaez deskriptibo hori guztia. 1221 01:00:05,450 --> 01:00:09,340 Baina istorio bat kontatzen laguntzen du, ez duelako Istorioaren bigarren lerroa da, ziurtatu 1222 01:00:09,340 --> 01:00:10,740 katea iritsi kate bat itzuli du. 1223 01:00:10,740 --> 01:00:14,260 >> Eta istorioan hirugarrena da, s bateko pertsonaiak baino gehiago batetik bestera 1224 01:00:14,260 --> 01:00:15,380 aldi berean. 1225 01:00:15,380 --> 01:00:17,920 Eta orain, neurri ona, Aurrera joan eta gehitu noa 1226 01:00:17,920 --> 01:00:24,560 Beste iruzkin bat besterik ez dela dio inprimatzeko i-garren s pertsonaia. 1227 01:00:24,560 --> 01:00:26,520 Orain, zer egin dut nik Egunaren amaieran? 1228 01:00:26,520 --> 01:00:29,190 >> Gehitu dut ingelesez batzuk iruzkinak formularioa hitzak. 1229 01:00:29,190 --> 01:00:32,700 barra barra sinboloa esan, beno, ordenagailu honetan giza etorri da, 1230 01:00:32,700 --> 01:00:33,820 Ez duzu, ordenagailua. 1231 01:00:33,820 --> 01:00:35,119 Beraz, logikoki zaio jaramonik ari dira. 1232 01:00:35,119 --> 01:00:35,910 besterik ez dira. 1233 01:00:35,910 --> 01:00:39,830 >> Eta, hain zuzen ere, CS50 IDE erakusten horiek bezala grisa, erabilgarria, baina ez key izateaz 1234 01:00:39,830 --> 01:00:41,000 programan. 1235 01:00:41,000 --> 01:00:42,570 Ohartu zer egin dezakezu orain. 1236 01:00:42,570 --> 01:00:44,950 C ezagutzen dituzun ala ez programazio edo ez, zuk 1237 01:00:44,950 --> 01:00:47,722 daiteke hor honetan programa, eta gaingabetuak iruzkinak. 1238 01:00:47,722 --> 01:00:50,180 Eskatu erabiltzaileari sarrera, ziurtatu katea iritsi kate bat itzuli, 1239 01:00:50,180 --> 01:00:53,009 s pertsonaiak baino gehiago batetik bestera aldi berean, inprimatu pertsonaia 1240 01:00:53,009 --> 01:00:55,550 i-garren pertsonaia s-- ere ez duzu are izatea kodea begiratu 1241 01:00:55,550 --> 01:00:57,270 Programa honek ulertzeko. 1242 01:00:57,270 --> 01:01:00,280 Eta, are gehiago, zuk zeuk begiratu Aste bat edo bi programa honetan, 1243 01:01:00,280 --> 01:01:02,280 edo hilabete bat, edo urtean, ez gehiegi, ez duzu 1244 01:01:02,280 --> 01:01:04,420 Kodea begiradak, gogoratu nahian, 1245 01:01:04,420 --> 01:01:06,630 zer zen kodea honekin egin nahian dut? 1246 01:01:06,630 --> 01:01:07,770 >> Nik esan duzu zeure burua. 1247 01:01:07,770 --> 01:01:11,660 Nik deskribatu duzu zeure burua, edo lankide batzuk, edo TA, edo TF. 1248 01:01:11,660 --> 01:01:14,860 Eta, beraz, hau litzateke orain izan zuzena, eta ona diseinua, 1249 01:01:14,860 --> 01:01:18,210 eta, azken finean, ona style baita. 1250 01:01:18,210 --> 01:01:19,990 Beraz, ez mantentzea kontuan. 1251 01:01:19,990 --> 01:01:22,200 >> Beraz, ez da beste bat Gauza naiz hemen egin behar dugu 1252 01:01:22,200 --> 01:01:28,240 orain dela agerian daiteke zehazki zer da gertatzen kanpaia azpian. 1253 01:01:28,240 --> 01:01:30,390 Beraz, ez da ezaugarri hau C, eta beste hizkuntza batzuetan, 1254 01:01:30,390 --> 01:01:33,010 izeneko typecasting Hori bai inplizituki 1255 01:01:33,010 --> 01:01:37,250 edo esplizituki ahalbidetzen bihurtzeko datu-mota batetik bestera. 1256 01:01:37,250 --> 01:01:39,800 Dugu, beraz, aurre Zuk urrun kateak gaur. 1257 01:01:39,800 --> 01:01:41,250 >> Eta kateak pertsonaiak dira. 1258 01:01:41,250 --> 01:01:44,910 Baina aste batetik gogoratzen 0, zer dira pertsonaiak? 1259 01:01:44,910 --> 01:01:49,334 Pertsonaiak abstrakzio bat besterik ez dira hamartarrekin zenbakien zenbakien gainean, 1260 01:01:49,334 --> 01:01:52,500 eta zenbaki hamartarrak dira benetan besterik batekin abstrakzioa zenbakiak bitar gainean, 1261 01:01:52,500 --> 01:01:53,720 definitu dugun bezala. 1262 01:01:53,720 --> 01:01:55,540 >> Beraz, karaktere zenbakiak dira. 1263 01:01:55,540 --> 01:01:58,410 Eta zenbakiak pertsonaiak dira, besterik testuinguruaren arabera. 1264 01:01:58,410 --> 01:02:01,250 Eta bihurtzen da barruan Ordenagailu-programa bat, 1265 01:02:01,250 --> 01:02:06,830 daiteke nola begiratu nahi duzun hauta dezakezu Programa horren barruan bit at? 1266 01:02:06,830 --> 01:02:10,400 >> Aste 0 izan genuen Gogoratu Ascii, bertan kode hau besterik ez da 1267 01:02:10,400 --> 01:02:11,620 mapping zenbakiak letrak. 1268 01:02:11,620 --> 01:02:13,660 Eta, esan dugun kapital A 65 da. 1269 01:02:13,660 --> 01:02:15,860 Capital B 66 da, eta abar. 1270 01:02:15,860 --> 01:02:20,500 >> Eta, adi, funtsean dugu karakteretan on Goiko ilara hemen, C deitu litzateke, 1271 01:02:20,500 --> 01:02:23,400 pertsonaiak, eta, ondoren, bigarren ilaran ints. 1272 01:02:23,400 --> 01:02:28,180 Eta bihurtzen da bihur ditzakezu baitituzte bi, normalean artean. 1273 01:02:28,180 --> 01:02:30,042 Eta egin nahi badugu hau nahita, dugu 1274 01:02:30,042 --> 01:02:31,750 Landuko nahi izatea honen antzeko zerbait. 1275 01:02:31,750 --> 01:02:33,590 >> baliteke bihurtu nahi dugu maiuskulara jaistea 1276 01:02:33,590 --> 01:02:35,330 Kasu, edo txikiagoa maiuskulara kasuan. 1277 01:02:35,330 --> 01:02:38,000 Eta bihurtzen da ez da benetan hemen eredu bat 1278 01:02:38,000 --> 01:02:39,900 daiteke une bat besterik ez besarkatu dugu. 1279 01:02:39,900 --> 01:02:44,120 Baina ikus ditzagun lehenik batean hau esplizituki egiten adibide. 1280 01:02:44,120 --> 01:02:46,340 >> atzera joan CS50 IDE sartu noa. 1281 01:02:46,340 --> 01:02:50,640 bat sortzeko noa izeneko Ascii 0.c. fitxategia 1282 01:02:50,640 --> 01:02:55,960 Eta aurrera noa eta gehitzeko joan nire goialdean io.h estandarra, int hutsune nagusia 1283 01:02:55,960 --> 01:02:57,370 Nire funtzioa goialdean. 1284 01:02:57,370 --> 01:03:02,700 Eta gero, besterik ez naiz egin du, honako hau loop i berdin batetik, 1285 01:03:02,700 --> 01:03:04,610 demagun, 65. 1286 01:03:04,610 --> 01:03:10,460 >> Eta orduan baino gutxiago izan behar da i joan 65, 26 plus letrak alfabetoaren. 1287 01:03:10,460 --> 01:03:12,640 Beraz, ordenagailua utzi dut egin math niretzat ez. 1288 01:03:12,640 --> 01:03:15,100 Eta gero, begizta honen barruan, zer naiz argitaratzeko? 1289 01:03:15,100 --> 01:03:19,230 >> % C% i backslash n da. 1290 01:03:19,230 --> 01:03:21,290 Eta orain, bi balio konektatu nahi dut. 1291 01:03:21,290 --> 01:03:24,530 aldi baterako dut jarri Galdera markatzen ez galderari gonbidatzeko. 1292 01:03:24,530 --> 01:03:29,940 >> 65 tik aurrera batetik bestera joateko nahi dut 26 alfabetoaren letrak, 1293 01:03:29,940 --> 01:03:35,190 inprimatzeko iterazio bakoitzean duten Pertsonaia baliokidea integral. 1294 01:03:35,190 --> 01:03:38,299 Beste era batera esanda, Nahi dut Batetik bestera joateko zenbakiak 26 baino gehiago inprimatzeko 1295 01:03:38,299 --> 01:03:41,590 zer Ascii pertsonaia da, letra, eta zer dagokion zenbaki is-- 1296 01:03:41,590 --> 01:03:44,650 Benetan, besterik birsortzen diapositiba hartatik grafikoan. 1297 01:03:44,650 --> 01:03:47,010 Beraz, zer galdera marka hauek izan beharko luke? 1298 01:03:47,010 --> 01:03:51,760 >> Beno, bihurtzen da bigarrena, bakar aldakorreko i izan behar du. 1299 01:03:51,760 --> 01:03:53,860 hori da zenbakia gisa ikusi nahi dut. 1300 01:03:53,860 --> 01:03:58,920 Eta erdiko argumentu Hemen, ordenagailua esan ahal dut 1301 01:03:58,920 --> 01:04:03,470 osokoa dela tratatzeko i pertsonaia bat bezala, eta, beraz, 1302 01:04:03,470 --> 01:04:05,880 ordezka hemen ehuneko C. for 1303 01:04:05,880 --> 01:04:07,990 >> Bestela esanda, bada-ta, giza programatzaile, jakin 1304 01:04:07,990 --> 01:04:09,865 horiek dira zenbakiak besterik Egunaren amaieran. 1305 01:04:09,865 --> 01:04:12,500 Eta jakin beharko lukete 65 dudala pertsonaia batzuk mapan. 1306 01:04:12,500 --> 01:04:15,310 esplizitua Aktoreen honekin, parentesi bat, 1307 01:04:15,310 --> 01:04:18,840 datu mota nahi duzun izena bihurtzeko, eta parentesi bat itxia, 1308 01:04:18,840 --> 01:04:21,200 esan dezakezu ordenagailua, beno, ordenagailua, 1309 01:04:21,200 --> 01:04:24,130 bihurtzeko osokoa hau char bat. 1310 01:04:24,130 --> 01:04:26,250 >> Beraz, hau exekutatu programa konpilatzean ondoren, 1311 01:04:26,250 --> 01:04:29,740 Ea zer eta lortu Ascii 0 dut utzi. 1312 01:04:29,740 --> 01:04:33,020 Darn, zer oker egin nahi dut? 1313 01:04:33,020 --> 01:04:35,884 identifikatzaile undeclared, Ondo da, ez nahita, 1314 01:04:35,884 --> 01:04:37,800 baina ikus dezagun, ezin dugu bada Horregatik bidez. 1315 01:04:37,800 --> 01:04:41,220 >> Beraz, lerro five-- beraz, ez nuen lortu oso urrun kizkurtuz aurretik. 1316 01:04:41,220 --> 01:04:42,140 Ondo da. 1317 01:04:42,140 --> 01:04:46,560 Beraz, lerro 5 i itzultzen 65-- ikusten dut. 1318 01:04:46,560 --> 01:04:50,130 Beraz, gogoratu hori C, batzuetan ez bezala Hizkuntza eta aldez aurretik programazio baduzu 1319 01:04:50,130 --> 01:04:52,190 esperientzia, behar duzu ordenagailua dira, 1320 01:04:52,190 --> 01:04:55,040 Scratch bezala, zer aldagai mota da. 1321 01:04:55,040 --> 01:04:56,860 >> Eta esaldi gako bat ahaztu dut hemen. 1322 01:04:56,860 --> 01:04:59,200 lerro bost, i erabiltzen hasi naiz. 1323 01:04:59,200 --> 01:05:01,560 Baina ez dut esan C zer datu-mota da. 1324 01:05:01,560 --> 01:05:04,570 Beraz, ez dut hemen joan joan eta esan, ah, eta horregatik da zenbaki oso bat. 1325 01:05:04,570 --> 01:05:07,050 >> Orain, aurrera noa eta berkonpilatu joan. 1326 01:05:07,050 --> 01:05:08,080 Hori finkoa. 1327 01:05:08,080 --> 01:05:12,660 ./ascii0 Sartu, hori da mota cool. 1328 01:05:12,660 --> 01:05:15,360 Ez da bakarrik, super azkar Ordenagailua Galdera hau galdetu, 1329 01:05:15,360 --> 01:05:18,885 baizik begiratzen ez diapositiba bat baino, inprimatutako lerro bakoitzeko bat, A 65 da, 1330 01:05:18,885 --> 01:05:24,860 B 66, modu guztiak Behera I geroztik egin hau 26 aldiz, letrak z izateko, 1331 01:05:24,860 --> 01:05:25,630 hau da, 90. 1332 01:05:25,630 --> 01:05:27,790 Eta, hain zuzen ere, apur bat adimentsuagoa litzateke 1333 01:05:27,790 --> 01:05:31,030 izan da niretzat, ez fidatu ordenagailuaren aurrean gehitu 26. 1334 01:05:31,030 --> 01:05:34,060 besterik egin dut ezin 90 baita, hain luzea 1335 01:05:34,060 --> 01:05:37,390 Ez dut akats bera birritan gisa. 1336 01:05:37,390 --> 01:05:41,880 gora joan bidez nahi dut z, ez besterik y bidez eman. 1337 01:05:41,880 --> 01:05:44,000 >> Beraz, hori esplizitua cast bat da. 1338 01:05:44,000 --> 01:05:47,860 Bihurtzen hori da Ez da beharrezkoa ere. 1339 01:05:47,860 --> 01:05:52,480 Dezagun aurrera me eta berrabiarazi honetan konpiladorea, eta berrabiarazi Ascii 0. 1340 01:05:52,480 --> 01:05:54,940 Bihurtzen da C pretty smart. 1341 01:05:54,940 --> 01:05:57,150 >> Eta printf, bereziki, pretty smart. 1342 01:05:57,150 --> 01:06:01,260 pasatzeko besterik ez bada i bat bitan bi leku-markak, printf 1343 01:06:01,260 --> 01:06:04,510 konturatzen, oh, bai al dakizu I eman zidan zenbakia batzuk integer-- bat, 1344 01:06:04,510 --> 01:06:06,380 65, edo 90, edo dena bezalakoa. 1345 01:06:06,380 --> 01:06:10,170 Baina niretzat nahi duzula ikusten dut formatuan pertsonaia bat bezala kopuru hori. 1346 01:06:10,170 --> 01:06:16,460 Eta orain printf inplizituki bota dezake int zuretzat char bat baita. 1347 01:06:16,460 --> 01:06:19,360 Beraz, hori ez da arazo bat izan. 1348 01:06:19,360 --> 01:06:23,100 >> Baina nabarituko, baita baliokidetza hau Benetan egin ahal izango dugu, hau baita. 1349 01:06:23,100 --> 01:06:26,520 Dezagun aurrera eta bat egin beste Ascii 1.c. Halako bertsio 1350 01:06:26,520 --> 01:06:31,800 Eta ordez errepikatzean osokoak, benetan kolpe zure gogoan 1351 01:06:31,800 --> 01:06:33,610 karaktere baino gehiago errepikatzean arabera. 1352 01:06:33,610 --> 01:06:37,660 char c a capital bat lortzen bada, I Nahi aurrera joan eta hori egin, 1353 01:06:37,660 --> 01:06:41,740 hain luze C baino txikiagoa edo berdina den bezala kapital Z. Eta iterazio bakoitzean 1354 01:06:41,740 --> 01:06:45,690 C Kontatzailea nahi dut, ahal dudan orain nire printf lerroan hemen 1355 01:06:45,690 --> 01:06:51,320 esan, ehuneko C da Berea izan dut berriro, koma C. 1356 01:06:51,320 --> 01:06:57,200 >> Eta orain, beste norabide joan ahal izango dut, pertsonaia galdaketa esplizituki 1357 01:06:57,200 --> 01:06:58,500 zenbaki oso bat. 1358 01:06:58,500 --> 01:07:00,560 Beraz, berriro ere, zergatik egin nahi duzu? 1359 01:07:00,560 --> 01:07:03,830 Pixka bat arraroa ordenatzeko karaktere dagokionez zenbatu. 1360 01:07:03,830 --> 01:07:07,430 >> Baina zer da ulertzen baduzu gertatzen kanpaia azpian, 1361 01:07:07,430 --> 01:07:08,430 ez da benetan magikoa ez. 1362 01:07:08,430 --> 01:07:13,060 Ari zara, esanez hey, ordenagailua eman me C char mota aldakorra izeneko. 1363 01:07:13,060 --> 01:07:16,520 Hasieratu hiriburua A. Eta nabarituko Komatxo materia. 1364 01:07:16,520 --> 01:07:19,580 >> C pertsonaiak For, gogoratzen azken astean, komatxo bakar erabili duzu. 1365 01:07:19,580 --> 01:07:23,720 kateak, hitz egiteko, esaldiak, komatxo erabili duzu. 1366 01:07:23,720 --> 01:07:27,210 Ados, ordenagailua, mantendu egiten, beraz, pertsonaia betiere baino gutxiago 1367 01:07:27,210 --> 01:07:28,050 edo z berdina. 1368 01:07:28,050 --> 01:07:32,640 Eta jakin nire Ascii mahaitik dut hori guztia Ascii kodeak hauen Alboko dira. 1369 01:07:32,640 --> 01:07:33,400 >> Ez dago hutsuneak ez. 1370 01:07:33,400 --> 01:07:36,737 Beraz, ez da, besterik gabe, AZ, bakoitzak zenbaki bat bereiztuta. 1371 01:07:36,737 --> 01:07:38,820 Eta ondoren Kontatzailea ahal dut char bat bukatu, nahi izanez gero. 1372 01:07:38,820 --> 01:07:40,390 Egunaren amaieran, zenbaki bat besterik ez da. 1373 01:07:40,390 --> 01:07:41,030 Badakit hau. 1374 01:07:41,030 --> 01:07:43,670 Beraz, besterik ez dut presume daiteke 1 gehitzeko. 1375 01:07:43,670 --> 01:07:46,940 >> Eta gero, denbora honetan, c inprimatu dut, eta, ondoren, bere baliokidea integral. 1376 01:07:46,940 --> 01:07:50,170 Eta ez dut ere esplizituak Aktoreen behar. 1377 01:07:50,170 --> 01:07:52,680 printf eta utzi ahal izango dut ordenagailu figura gauzak, 1378 01:07:52,680 --> 01:07:57,300 beraz, gaur egun exekutatu bada egiteko Ascii1./ascii1, 1379 01:07:57,300 --> 01:08:01,520 Zehatza gauza bera lortu nuen, baita. 1380 01:08:01,520 --> 01:08:04,530 >> Useless programa, though-- inork ez da benetan idatzi software joan 1381 01:08:04,530 --> 01:08:07,549 Ordena irudikatu ere, zer izan zen Hori A mapak zenbakia, edo B edo Z? 1382 01:08:07,549 --> 01:08:10,340 Ari zara, Google-ra edo joan, itxura eman online, edo hura bilatu 1383 01:08:10,340 --> 01:08:11,650 diapositiba bat, edo antzeko. 1384 01:08:11,650 --> 01:08:13,520 Beraz, non ez hau benetan lortu baliagarria? 1385 01:08:13,520 --> 01:08:15,960 >> Beno, horretaz ari diapositiba, konturatu ez 1386 01:08:15,960 --> 01:08:20,890 benetako eredu bat hemen maiuskulaz artean eta minuskulak hori ez zen ustekabean. 1387 01:08:20,890 --> 01:08:23,760 Iragarki hiriburua A 65 da. 1388 01:08:23,760 --> 01:08:25,830 Minuskulaz bat 97 da. 1389 01:08:25,830 --> 01:08:29,649 Eta nola urrun dago minuskulak bat? 1390 01:08:29,649 --> 01:08:32,649 >> Beraz, 65 urrats zenbat urruntzen 97-tik? 1391 01:08:32,649 --> 01:08:36,210 Beraz, 97 minus 65 32 da. 1392 01:08:36,210 --> 01:08:37,910 Beraz, kapital bat 65 da. 1393 01:08:37,910 --> 01:08:39,939 32 gehitu ezkero dela, minuskula bat lortuko duzu. 1394 01:08:39,939 --> 01:08:43,729 Eta, bestela esan, kentzen duzu 32 bada, atzera hiriburua den A-- B gauza bera 1395 01:08:43,729 --> 01:08:46,380 b gutxi den, c gutxi to C big. 1396 01:08:46,380 --> 01:08:50,670 >> hutsuneak horiek guztiak dira 32 aparte. 1397 01:08:50,670 --> 01:08:54,450 Orain, hau gaitu omen ziren Zerbait egin Microsoft Word bezalako, 1398 01:08:54,450 --> 01:08:57,729 edo Google Docs ezaugarria, non duzu dena hautatu ahal izango du eta, ondoren, esan, 1399 01:08:57,729 --> 01:09:00,520 alda guztiak minuskulara, edo guztiak aldatu maiuskulara, 1400 01:09:00,520 --> 01:09:03,840 edo soilik lehen hitza aldatu maiuskulara esaldi baten. 1401 01:09:03,840 --> 01:09:07,390 Benetan egin ahal izango dugu zerbait geure horrelako. 1402 01:09:07,390 --> 01:09:12,645 >> Dezagun aurrera eta fitxategi batean gorde Hemen izeneko larriz 0.c. 1403 01:09:12,645 --> 01:09:15,770 Eta dezagun aurrera eta Greba programa bat zehazki egiten du hori honela. 1404 01:09:15,770 --> 01:09:18,460 Beraz, besteak beste CS50 liburutegia. 1405 01:09:18,460 --> 01:09:21,430 Eta, besteak beste, estandarra I / O. 1406 01:09:21,430 --> 01:09:22,787 >> Eta hau arida ezagutzen dut. 1407 01:09:22,787 --> 01:09:24,870 Beraz, ez dut jarri, izan ere joan Han dagoeneko, string.h, 1408 01:09:24,870 --> 01:09:26,960 beraz sarbidea daukat Stirling bezalako gauzak, 1409 01:09:26,960 --> 01:09:29,620 eta, ondoren, int hutsune nagusia, ohikoa den bezala. 1410 01:09:29,620 --> 01:09:33,420 Eta gero, aurrera noa eta egiten kateak lortzen katea iritsi, 1411 01:09:33,420 --> 01:09:35,032 besterik erabiltzaileak kate bat lortzeko. 1412 01:09:35,032 --> 01:09:36,740 Eta gero noa ez nire behatu egiaztatzeko. 1413 01:09:36,740 --> 01:09:40,510 katea ez da nulua berdina bada, orduan seguru jarraitu da. 1414 01:09:40,510 --> 01:09:42,000 Eta zer egin nahi dut? 1415 01:09:42,000 --> 01:09:48,700 berdin i 0-tik bestera joateko noa, eta n katea s luzera gehienez. 1416 01:09:48,700 --> 01:09:51,899 >> Eta ez dut hori egin ahal izateko, harik eta joan i baino gutxiago n da, eta i plus plus. 1417 01:09:51,899 --> 01:09:55,060 Orain arte, benetan besterik ez naiz ideia baterako hartu aurretik. 1418 01:09:55,060 --> 01:09:57,010 Eta orain, adar bat aurkeztu nahi dut. 1419 01:09:57,010 --> 01:09:59,635 >> Beraz, uste back Scratch, non Sardexka errepidea horiek izan genuen, 1420 01:09:59,635 --> 01:10:05,110 eta azken astean C. hasi naiz joan hau esan, bada i-garren s pertsonaia 1421 01:10:05,110 --> 01:10:09,250 hau baino handiagoa edo berdina kasu bat jaistea, 1422 01:10:09,250 --> 01:10:13,340 -Nik Scratch literalki egiten duzun esan eta, baina C ampersand esan duzu, 1423 01:10:13,340 --> 01:10:19,830 ampersand-- eta i-garren s pertsonaia txikiago edo berdin Kasu z jaistea da, 1424 01:10:19,830 --> 01:10:21,780 Egin dezagun zerbait interesgarria utzi. 1425 01:10:21,780 --> 01:10:27,020 Dezagun inprimatu benetan out bat newline ez duen pertsonaia 1426 01:10:27,020 --> 01:10:31,760 katea pertsonaia da, i-garren pertsonaia katean. 1427 01:10:31,760 --> 01:10:37,420 >> Baina goazen aurrera eta kenketak 32 bertatik. 1428 01:10:37,420 --> 01:10:42,120 Bestela bada ere pertsonaia kate hori bilatzen ari gara 1429 01:10:42,120 --> 01:10:45,950 Ez da bat gutxi arteko eta gutxi z, aurrera 1430 01:10:45,950 --> 01:10:48,610 eta besterik inprimatuta out aldatu gabe. 1431 01:10:48,610 --> 01:10:50,840 Beraz dugu sartu bracketed idazkera hau 1432 01:10:50,840 --> 01:10:53,560 gure kateak at lortu i-garren pertsonaia katean. 1433 01:10:53,560 --> 01:10:57,520 >> Nik baldintzapeko logika batzuk gehitu dut, atsegin Azken astean, aste bat, non ere Scratch 1434 01:10:57,520 --> 01:10:59,880 Besterik ez naiz nire oinarrizko erabiliz Zer da ulertzea 1435 01:10:59,880 --> 01:11:01,130 gertatzen kanpaia azpian. 1436 01:11:01,130 --> 01:11:04,190 i-garren ren pertsonaia da handiago edo berdin bat? 1437 01:11:04,190 --> 01:11:08,290 Bezala, dela 97 edo 98, edo 99, eta abar? 1438 01:11:08,290 --> 01:11:11,940 >> Baina da, halaber, berdina edo txikiagoa z minuskulaz balioa izateko? 1439 01:11:11,940 --> 01:11:16,210 Eta hala bada, zer esan nahi du lerro hau? 1440 01:11:16,210 --> 01:11:20,250 14, hau moduko da Ideia osoa ernamuina, 1441 01:11:20,250 --> 01:11:23,840 larriz gutuna, besterik kenduz 32 bertatik, 1442 01:11:23,840 --> 01:11:29,370 Kasu honetan, dakit zeren, hori per taula, nire zenbakiak nola irudikatzen dira. 1443 01:11:29,370 --> 01:11:33,925 Beraz, goazen aurrera eta exekutatu honetan, larriz 0.c konpilatzean ondoren, 1444 01:11:33,925 --> 01:11:36,210 eta run larriz 0. 1445 01:11:36,210 --> 01:11:40,300 >> Dezagun idatzi ere antzeko zerbait Zamyla minuskulaz guztietan sartzen. 1446 01:11:40,300 --> 01:11:42,780 Eta orain Zamyla dugu maiuskulaz. 1447 01:11:42,780 --> 01:11:45,050 Dezagun idatzi Rob minuskulaz guztietan. 1448 01:11:45,050 --> 01:11:46,674 Dezagun saiatu Jason minuskulaz guztietan. 1449 01:11:46,674 --> 01:11:48,590 Eta ekidin nahi dugu behartu kapitalizazioa. 1450 01:11:48,590 --> 01:11:50,960 Ez dago akatsen bat adin txikikoa dela I motatako ez aurreikusteko. 1451 01:11:50,960 --> 01:11:54,050 Iragarki nire gonbita berria da bukatzen beren izenak bezalako lerro berean, 1452 01:11:54,050 --> 01:11:55,520 bertan narratsa pixka bat sentitzen. 1453 01:11:55,520 --> 01:11:59,170 >> Beraz, ez dut hemen joan, eta Programa honetan benetan amaieran 1454 01:11:59,170 --> 01:12:02,110 inprimatu lerro bat. 1455 01:12:02,110 --> 01:12:03,160 Hori da dena. 1456 01:12:03,160 --> 01:12:06,120 printf batera, ez duzu nahi aldagai edo formatu kodea pasatzen. 1457 01:12:06,120 --> 01:12:08,460 literalki dezakezu besterik inprimatu newline baten antzeko zerbait. 1458 01:12:08,460 --> 01:12:13,529 >> Beraz, goazen aurrera eta egin larriz 0 berriro, berrabiarazi, Zamyla. 1459 01:12:13,529 --> 01:12:14,820 Eta orain prettier txiki bat da. 1460 01:12:14,820 --> 01:12:17,274 Orain, nire gonbita bere linea berria kabuz. 1461 01:12:17,274 --> 01:12:18,440 Beraz, hori guztia fina eta ona da. 1462 01:12:18,440 --> 01:12:19,910 Beraz, adibide ona da. 1463 01:12:19,910 --> 01:12:22,700 Baina ez dut ere nahitaez gogor kodea du 32 behar. 1464 01:12:22,700 --> 01:12:23,350 Ba al dakizu zer? 1465 01:12:23,350 --> 01:12:26,350 esatea izan dut ez dut inoiz gogoratzen zer diferentzia da. 1466 01:12:26,350 --> 01:12:29,330 >> Baina badakit hori bada I Kasu txikiagoa gutun bat dute, 1467 01:12:29,330 --> 01:12:34,430 funtsean nahi dut off kendu edozein dela distantzia apur artean dago 1468 01:12:34,430 --> 01:12:39,160 bat eta handi bat, baita bere gain hartzen dut hori bada Beste letra guztiak berdinak dira, 1469 01:12:39,160 --> 01:12:41,045 duten lana egin behar du. 1470 01:12:41,045 --> 01:12:42,670 Baina egin beharrean dagoela, badakizu zer? 1471 01:12:42,670 --> 01:12:44,240 Ez dago beste modurik oraindik. 1472 01:12:44,240 --> 01:12:48,090 >> Hori bada Honez larriz 1.c-- I balitz noiz jarri den fitxategi bat sartu. 1473 01:12:48,090 --> 01:12:51,030 utzi larriz 2.c ez en honela. 1474 01:12:51,030 --> 01:12:53,060 Benetan, hau garbitzeko hemen noa. 1475 01:12:53,060 --> 01:12:57,420 Eta horren ordez, nahiz eta beharrik Badakizu edo maila altua horiek zaintzeko 1476 01:12:57,420 --> 01:13:01,090 ezartzeko xehetasunak, ordez naiz besterik pertsonaia bat inprimatu, 1477 01:13:01,090 --> 01:13:04,610 aurrekontu unquote ehuneko C, eta gero deitu funtzio bat dela 1478 01:13:04,610 --> 01:13:09,950 existitzen dela argumentu bat hartzen du, bertan pertsonaia bat, hau bezalakoa da. 1479 01:13:09,950 --> 01:13:12,630 >> Bihurtzen da C ere, ez da funtzio deia beste 1480 01:13:12,630 --> 01:13:15,550 goiko, zein bere izen gisa iradokitzen pertsonaia bat hartzen 1481 01:13:15,550 --> 01:13:19,350 eta egiten du bere maiuskulara baliokidea, eta ondoren itzultzen du 1482 01:13:19,350 --> 01:13:21,410 beraz printf dela konektatu ahal ez izateko. 1483 01:13:21,410 --> 01:13:25,484 Eta beraz, hori egin ahal izateko, ordea, I behar beste fitxategi bat aurkeztera. 1484 01:13:25,484 --> 01:13:28,400 han fitxategi bat da bihurtzen da Hori bakarrik ez litzateke klase jakin batetik, 1485 01:13:28,400 --> 01:13:33,020 edo eskuliburu bat, edo online bat erreferentzia, izeneko C type.h. 1486 01:13:33,020 --> 01:13:38,570 >> Gehituko dut Beraz, bada, nire goiburua artean fitxategiak, eta orain berriro konpilatu programa hau, 1487 01:13:38,570 --> 01:13:43,040 capitalize2, ./capitalize2 Sartu. 1488 01:13:43,040 --> 01:13:46,690 Dezagun idatzi Zamyla guztietan minuskulaz, oraindik ere gauza bera egiten du lan. 1489 01:13:46,690 --> 01:13:48,040 Baina badakizu zer? 1490 01:13:48,040 --> 01:13:55,590 Bihurtzen da, goiko beste funtzionalitate batzuk eskaintzen ditu. 1491 01:13:55,590 --> 01:13:58,410 >> Eta utzi hau aurkeztera me aginteaz hemen, ordenatzeko baldarki 1492 01:13:58,410 --> 01:14:00,250 izendatu, baina manuala gizona. 1493 01:14:00,250 --> 01:14:03,960 Bihurtzen da Linux ordenagailuetan, Linux eragilearen hemen erabiltzen dugun bezala 1494 01:14:03,960 --> 01:14:06,270 sistema erabiliz komando bat dute man izeneko, horrek dio, 1495 01:14:06,270 --> 01:14:08,530 beno, ordenagailua, eman me ordenagailuaren eskuliburua. 1496 01:14:08,530 --> 01:14:10,680 Zer nahi duzu, itxura eman Eskuliburu horretan? 1497 01:14:10,680 --> 01:14:13,840 >> bilatuko funtzioa nahi dut goiko izeneko, Sartu. 1498 01:14:13,840 --> 01:14:16,070 Eta apur bat críptica da batzuetan irakurtzeko. 1499 01:14:16,070 --> 01:14:18,780 Baina konturatu ere ez gara Linux programatzaileentzako eskuliburu. 1500 01:14:18,780 --> 01:14:19,530 Eta testu guztiak da. 1501 01:14:19,530 --> 01:14:21,905 Eta ez dagoela ohartuko da etorri funtzioaren izena eman hemen. 1502 01:14:21,905 --> 01:14:25,030 Bihurtzen da izeneko lehengusu bat du , Jaistea zein kontrakoa egiten du. 1503 01:14:25,030 --> 01:14:29,710 Eta sinopsia pean oharra, hau erabili ahal izateko funtziona gizon orria, nolabait esateko, 1504 01:14:29,710 --> 01:14:32,220 da me esan diot ez Behar c type.h. besteak beste 1505 01:14:32,220 --> 01:14:33,630 Eta ezagutzen ditudala praktika. 1506 01:14:33,630 --> 01:14:36,210 >> Hemen, niri erakusten da bi funtzioa prototipoak, 1507 01:14:36,210 --> 01:14:39,070 beraz, inoiz dut hau erabili nahi izanez gero zer sarrera gisa hartu dute ezagutzen dut, 1508 01:14:39,070 --> 01:14:40,652 eta zer irteera gisa itzuliko dute. 1509 01:14:40,652 --> 01:14:42,360 Eta gero irakurri badut deskribapena, ikusi dut 1510 01:14:42,360 --> 01:14:44,820 xehetasun gehiago zer funtzio du. 1511 01:14:44,820 --> 01:14:48,100 Baina are garrantzitsuagoa dena, bada bueltan balioa azpian begiratu dut, 1512 01:14:48,100 --> 01:14:51,710 esaten du, balioa itzuliko da bihurtutako gutun, 1513 01:14:51,710 --> 01:14:57,880 edo C, jatorrizko sarrera, bada Bihurketa ez zen posible. 1514 01:14:57,880 --> 01:15:01,992 >> Beste era batera esanda, goi saiatuko da gutun bihurtzeko goiko kasuan. 1515 01:15:01,992 --> 01:15:03,450 Eta hala bada, itzuli egingo da. 1516 01:15:03,450 --> 01:15:07,010 Baina, ahal badu, ez arrazoia batzuentzat agian, dagoeneko maiuskulatan da, 1517 01:15:07,010 --> 01:15:09,550 agian, harridura puntu bat da edo beste batzuk punctuation-- 1518 01:15:09,550 --> 01:15:12,200 besterik ez da joan itzuli jatorrizko C, 1519 01:15:12,200 --> 01:15:17,340 horrek esan nahi du nire kodea egin ahal dut hobe honela diseinatuta. 1520 01:15:17,340 --> 01:15:20,580 >> Ez dut guztia behar darn kode lerro horiek. 1521 01:15:20,580 --> 01:15:22,610 lerroak dudan guztia besterik nabarmendu ahal 1522 01:15:22,610 --> 01:15:28,700 egon sinple bat besterik ez erori line, printf ehuneko Halako da 1523 01:15:28,700 --> 01:15:33,510 goiko S bracket i c. 1524 01:15:33,510 --> 01:15:36,090 Eta hau izanen litzateke diseinu hobea adibide. 1525 01:15:36,090 --> 01:15:40,040 >> Zergatik 7 edo 8 lerro ezartzea Kode-, edozein dela I izan zen, besterik gabe, 1526 01:15:40,040 --> 01:15:44,960 ezabatu da, betiere, ahal duzun ordez tolesteko Logika eta erabakiak hartzeko duten guztia 1527 01:15:44,960 --> 01:15:49,620 lerro bakar bat, 13 orain, sartu dela liburutegian oinarritzen da funtzio 1528 01:15:49,620 --> 01:15:53,430 funtzio bat C batekin dator, baina hori ez zehazki zer egin nahi duzu. 1529 01:15:53,430 --> 01:15:55,295 Eta, gero, Egia, nahiz eta ez zuen C etortzen, 1530 01:15:55,295 --> 01:15:58,880 ezartzea izan duzu zeure buruari, ikusi dugu, lortu dituzten int negatiboa 1531 01:15:58,880 --> 01:16:01,700 eta positiboa int azken astean baita. 1532 01:16:01,700 --> 01:16:03,470 >> Kode hau orain askoz gehiago irakurtzen da. 1533 01:16:03,470 --> 01:16:06,670 Eta, hain zuzen ere, sortu joan gara, begiratu zenbat trinkoagoak 1534 01:16:06,670 --> 01:16:08,360 Nire programa bertsio hau. 1535 01:16:08,360 --> 01:16:11,230 apur bat gora heavy da orain, horiek guztiak barne hartzen dituzten. 1536 01:16:11,230 --> 01:16:14,380 Baina hori Ados, orain zutik dut delako programatzaileak sorbaldak 1537 01:16:14,380 --> 01:16:15,300 me aurretik. 1538 01:16:15,300 --> 01:16:18,440 Eta diozula zen nor goiko abian benetan 1539 01:16:18,440 --> 01:16:21,470 egin arren, askoz ere atsegin duenarentzat inplementatu Stirling benetan 1540 01:16:21,470 --> 01:16:24,790 egin arren, duela zenbait urte. 1541 01:16:24,790 --> 01:16:26,970 Eta, beraz, gaur egun bat behar dugu hobeto diseinu programa 1542 01:16:26,970 --> 01:16:31,680 zehatza bera logika inplementatzen. 1543 01:16:31,680 --> 01:16:35,580 >> Stirling Mintzamena, utzi aurrera zidan eta hori egin. 1544 01:16:35,580 --> 01:16:38,320 Dezagun aurrera eta gorde Fitxategi hau stirling.c bezala. 1545 01:16:38,320 --> 01:16:43,255 Eta bihurtzen da, atzera zuritu dezakegu beste geruza bat nahiko besterik gabe, gaur egun. 1546 01:16:43,255 --> 01:16:45,630 Animatu eta Greba joan noa nagusian, beste programa bat sortu 1547 01:16:45,630 --> 01:16:49,759 Hemen, besterik gabe, berriro lanabesen katea honela luzera. 1548 01:16:49,759 --> 01:16:52,300 Hortaz, hona hemen kode lerro bat dela lortzen me erabiltzaileak kate bat. 1549 01:16:52,300 --> 01:16:53,910 hau behin eta berriro erabiliz mantendu dugu. 1550 01:16:53,910 --> 01:16:58,900 Neure burua ematen dit izeneko aldagai bat mota int zenbaki bat gordetzen duten n. 1551 01:16:58,900 --> 01:17:02,490 >> Eta utzi aurrera me eta Hurrengo logika egiten. 1552 01:17:02,490 --> 01:17:15,610 n-garren s pertsonaia egiten ari den bitartean ez da berdina backslash 0, aurrera 1553 01:17:15,610 --> 01:17:17,930 eta Kontatzailea n. 1554 01:17:17,930 --> 01:17:23,506 Eta ondoren, inprimatu printf ehuneko i n. 1555 01:17:23,506 --> 01:17:29,200 aldarrikatzen dut programa hau hemen, kate luzera gabe, 1556 01:17:29,200 --> 01:17:31,150 zifrak kate baten luzera. 1557 01:17:31,150 --> 01:17:34,600 >> Eta magia da erabat 8 line kapsulatuaren 1558 01:17:34,600 --> 01:17:39,830 Hemen zer berria sintaxia itxura, backslash honetan 0 komatxo bakar. 1559 01:17:39,830 --> 01:17:41,360 Baina zergatik da hori? 1560 01:17:41,360 --> 01:17:44,100 Beno, kontuan hartu zer iritzi denbora hori guztia gertatzen. 1561 01:17:44,100 --> 01:17:47,990 >> Eta bat alde batera utzita dut ahaztu aurretik, konturatzen gehiegi, agian man orrien gain 1562 01:17:47,990 --> 01:17:50,920 Hori tipikoa etortzen Linux CS50 IDE bezalako sistema, 1563 01:17:50,920 --> 01:17:53,770 konturatzen garela, etorri Jakina organigrama, izan ere 1564 01:17:53,770 --> 01:17:56,030 webgune bertsio bat egin izeneko ideia hori bera 1565 01:17:56,030 --> 01:17:59,940 reference.cs50.net, ditu horiek gizon bera orri guztiak, 1566 01:17:59,940 --> 01:18:02,020 bera duten guztia dokumentazioa, baita 1567 01:18:02,020 --> 01:18:05,730 Goiko ahalbidetzen at kaxa txiki batean du nahiko guztia bihurtzeko 1568 01:18:05,730 --> 01:18:09,025 arcane hizkuntza gutxiago eroso sartu modua, non dugu, irakasleen, 1569 01:18:09,025 --> 01:18:12,150 pasatu eta sinplifikatzen saiatu Hizkuntzaren gauzak mantentzeko batzuk 1570 01:18:12,150 --> 01:18:14,830 ideiak bideratuta, eta ez technicalities batzuk. 1571 01:18:14,830 --> 01:18:20,070 Beraz, kontuan hartu, reference.cs50.net beste baliabide bat bezala baita. 1572 01:18:20,070 --> 01:18:23,800 >> Baina zergatik ez du kate-luzera lan modu une bat duela proposatu dut? 1573 01:18:23,800 --> 01:18:25,160 Hemen Zamyla izena da berriro. 1574 01:18:25,160 --> 01:18:27,690 Eta hemen Zamyla izena da boxed ere, egiten jarraitu nuen bezala, 1575 01:18:27,690 --> 01:18:31,360 irudi bat margotzen da izatearen, benetan, karaktere-sekuentzia bat besterik ez. 1576 01:18:31,360 --> 01:18:34,260 Baina Zamyla ez da existitzen programa batean isolatuan. 1577 01:18:34,260 --> 01:18:37,420 >> Noiz idatzi duzu eta programa bat exekutatu, zure Mac edo PC erabiltzen ari zarela 1578 01:18:37,420 --> 01:18:40,010 memoria, edo RAM bezala, nolabait esateko. 1579 01:18:40,010 --> 01:18:42,620 Eta pentsa dezakezu Ordenagailuak gisa 1580 01:18:42,620 --> 01:18:44,730 memoria gigabyte egun hauetan asko. 1581 01:18:44,730 --> 01:18:47,700 Eta Kontzertu bat esan nahi du milaka milioi, beraz byte milioiak. 1582 01:18:47,700 --> 01:18:48,910 >> Baina dezagun atzeratzeko denboran. 1583 01:18:48,910 --> 01:18:51,530 Eta demagun erabiltzen ari gara ordenagailu benetan zaharra zela 1584 01:18:51,530 --> 01:18:55,150 32 byteko memoria besterik ez ditu. 1585 01:18:55,150 --> 01:18:59,310 Ahal izan nuen, nire ordenagailuaren pantailan, besterik marraztu out honela. 1586 01:18:59,310 --> 01:19:05,240 >> besterik ezin dut esan nire ordenagailuaren memoria hori guztia dauka. 1587 01:19:05,240 --> 01:19:08,830 Eta hau memoria makila bat bezalakoa da, bada Gure picture azken aldiz gogoratzen duzu. 1588 01:19:08,830 --> 01:19:11,670 Eta I zatitzea besterik ez bada hau nahikoa garaietan, 1589 01:19:11,670 --> 01:19:15,040 32 byte behar dudala aldarrikatzen dut pantailan oroimenaren. 1590 01:19:15,040 --> 01:19:18,239 >> Orain, egia esan, I can bakarrik marraztu orain arte pantaila honetan hemen. 1591 01:19:18,239 --> 01:19:20,280 Beraz, aurrera noa joan, eta zerbait konbentzio, 1592 01:19:20,280 --> 01:19:24,050 marraztu nire ordenagailuaren memoria gisa grid, ez lerro zuzen bat besterik ez da. 1593 01:19:24,050 --> 01:19:28,190 Hain zuzen ere, orain dela aldarrikatzen dut sare hau, hau 8 4 grid, 1594 01:19:28,190 --> 01:19:31,800 besterik adierazten 32 byte guztiak memoria nire Mac eskuragarri, 1595 01:19:31,800 --> 01:19:33,030 edo nire PC eskuragarri. 1596 01:19:33,030 --> 01:19:34,780 Eta biltzeko ari dira den bi lerro, besterik 1597 01:19:34,780 --> 01:19:38,030 pantailan gehiago egokitzen delako. 1598 01:19:38,030 --> 01:19:40,800 Baina hau lehen byte da. 1599 01:19:40,800 --> 01:19:41,990 Hau bigarren byte da. 1600 01:19:41,990 --> 01:19:43,300 Hirugarren byte da. 1601 01:19:43,300 --> 01:19:45,310 >> Eta hau 32. byte da. 1602 01:19:45,310 --> 01:19:52,910 Edo, ordenagailu bat bezala pentsatzen badugu zientzialari, hau 31 byte 0, 1, 2, 3, da. 1603 01:19:52,910 --> 01:19:55,950 Beraz 0 duzu 31ra, bada 0 kontatuta hasteko duzu. 1604 01:19:55,950 --> 01:19:59,830 >> Beraz, programa bat erabili badugu deiak hori lortzeko katea, 1605 01:19:59,830 --> 01:20:05,280 eta giza-kate bat lortuko dugu atsegin zuen Zamyla deitzen dut, Z-A-M-Y-L-A, 1606 01:20:05,280 --> 01:20:09,430 nola ere munduan egiten du ordenagailu Jarrai duen byte, 1607 01:20:09,430 --> 01:20:12,230 zein zatika oroimenaren, dagokio zein katea? 1608 01:20:12,230 --> 01:20:16,270 Beste era batera esanda, jarraitu badugu idatzi izen bestera ordenagailuan sartu, 1609 01:20:16,270 --> 01:20:19,890 Andi hau bezalako, deituz katea iritsi bigarren aldiz, 1610 01:20:19,890 --> 01:20:23,030 A-N-D-I sortu amaitzeko ditu ordenagailuaren memorian baita. 1611 01:20:23,030 --> 01:20:23,850 Baina nola? 1612 01:20:23,850 --> 01:20:29,700 >> Beno, bihurtzen da, azpian kanpaia, zer gertatzen denean C kateak gordetzeko 1613 01:20:29,700 --> 01:20:35,080 giza mota ere, edo hori eta beste bide batzuetatik etorriko da, 1614 01:20:35,080 --> 01:20:39,190 Horietako amaierarekin batera arakatzen character-- backslash berezi bat 1615 01:20:39,190 --> 01:20:44,750 0, modu berezi bat besterik ez da ren 80 bit ilara batean esanez. 1616 01:20:44,750 --> 01:20:47,950 >> Beraz A-- honetan zenbaki 97 abisuaren da. 1617 01:20:47,950 --> 01:20:51,770 Beraz, 8 bit patroi batzuk zenbaki hamartar 97 adierazten du. 1618 01:20:51,770 --> 01:20:58,070 backslash Hau 0 da hitzez hitz kopurua 0, a.k.a. nul, N-U-L, lehenago ez bezala, 1619 01:20:58,070 --> 01:20:59,630 N-U-L-L, bertan hitz egin dugu. 1620 01:20:59,630 --> 01:21:05,700 Baina, oraingoz, besterik ez dakizu hori backslash 0 errenkadan bit 80 besterik ez da. 1621 01:21:05,700 --> 01:21:09,810 >> Eta besterik lerro hau da harea ezer esaten duen ezkerrera 1622 01:21:09,810 --> 01:21:12,610 kate bat, edo datu-mota bat dagokio. 1623 01:21:12,610 --> 01:21:15,480 Eta ezer eskubidea beste zerbait dagokio. 1624 01:21:15,480 --> 01:21:17,440 Andi izena, bere aldetik, bertan besterik ikusmen 1625 01:21:17,440 --> 01:21:21,310 gertatzen biltzeko beste lerrora, baina xehetasun bat estetikoa, 1626 01:21:21,310 --> 01:21:23,990 era berean, ez dago nul amaitu. 1627 01:21:23,990 --> 01:21:29,290 >> a A-N-D-I karaktere kate bat da, plus bosgarren pertsonaia sekretu bat, 1628 01:21:29,290 --> 01:21:33,560 0 bit guztiak, hori besterik demarcates Andi izenaren amaieran baita. 1629 01:21:33,560 --> 01:21:37,120 Eta deitu badugu katea iritsi hirugarren aldiz Ordenagailua bezalako kate bat lortzeko 1630 01:21:37,120 --> 01:21:44,210 Maria, M-A-R-I-A, era berean, Maria da name nul backslash 0 amaitu da. 1631 01:21:44,210 --> 01:21:47,170 >> Hau da, funtsean, hainbat nola, ordenagailuak litzateke normalean 1632 01:21:47,170 --> 01:21:51,850 gordetzeko zenbaki oso bat, edo mugikor bat, edo beste Datu mota oraindik delako, gogoratzen 1633 01:21:51,850 --> 01:21:57,420 zenbaki oso bat izan ohi da, 32 bit, edo 4 byte, edo agian, 64 bit, 1634 01:21:57,420 --> 01:21:59,100 edo zortzi byte. 1635 01:21:59,100 --> 01:22:02,620 Baina ordenagailu batean primitiboak asko programazio hizkuntza batean 1636 01:22:02,620 --> 01:22:05,550 kopuru finko bat dute hood-- azpian byte 1637 01:22:05,550 --> 01:22:08,100 agian, 1, 2, agian, agian, 4, agian, 8. 1638 01:22:08,100 --> 01:22:13,250 >> Baina kateak, diseinua, behar bat karaktere kopurua dinamikoa. 1639 01:22:13,250 --> 01:22:16,980 Zuk ez duzu jakin, aldez aurretik, arte Z-A-M-Y-L-A giza motak, 1640 01:22:16,980 --> 01:22:21,400 edo M-A-R-I-A, edo A-N-D-I. Ez dakizu zenbat aldiz erabiltzailea hit joan 1641 01:22:21,400 --> 01:22:22,070 teklatuan. 1642 01:22:22,070 --> 01:22:26,490 Hori dela eta, ez dakizu nola pertsonaiak asko aldez aurretik 1643 01:22:26,490 --> 01:22:27,540 zu behar joan. 1644 01:22:27,540 --> 01:22:31,840 >> Eta beraz, C mota besterik bat bezala uzten kanpaia azpian breadcrumb sekretua 1645 01:22:31,840 --> 01:22:32,960 katearen amaieran. 1646 01:22:32,960 --> 01:22:39,280 Z-A-M-Y-L-A gordetzeko memoria ondoren, Halaber besterik baliokidea jartzen 1647 01:22:39,280 --> 01:22:40,210 garai baten. 1648 01:22:40,210 --> 01:22:45,060 esaldi baten amaieran, 80 bit jartzen du, eta, beraz, 1649 01:22:45,060 --> 01:22:49,120 gogoratzen non Zamyla hasten eta bukatzen da. 1650 01:22:49,120 --> 01:22:51,490 >> Beraz, zer da konexioa, ondoren, programa hau? 1651 01:22:51,490 --> 01:22:55,190 Programa hau hemen, Stirling, besterik ez da, mekanismo bat 1652 01:22:55,190 --> 01:22:57,970 kate bat lortzeko erabiltzaileari, linea 6. 1653 01:22:57,970 --> 01:23:01,160 Linea 7, aldagai bat deklaratzen dut izeneko n eta 0 berdinak ezarri da. 1654 01:23:01,160 --> 01:23:08,680 >> Eta gero, 8 line, besterik gabe, galdetu nion Galdera da, n-garren pertsonaia ez bitartean 1655 01:23:08,680 --> 01:23:12,120 ez berdinak 0 bit guztiak beste era batera esanda, ez du 1656 01:23:12,120 --> 01:23:14,500 berdinak berezi honetan pertsonaia, backslash 0, eta horrek 1657 01:23:14,500 --> 01:23:18,470 besterik nul character-- berezia zela joan aurretik eta Kontatzailea n. 1658 01:23:18,470 --> 01:23:21,460 >> Eta mantendu egiten da, eta mantendu egiten, eta mantendu egiten. 1659 01:23:21,460 --> 01:23:23,430 Eta, beraz, nahiz eta, nahiz iraganean erabili dut dugu, 1660 01:23:23,430 --> 01:23:25,181 primeran fina da semantikoki n erabili, 1661 01:23:25,181 --> 01:23:27,430 besterik ez duzu, saiatzen ari bada zenbatu denbora hau nahita, 1662 01:23:27,430 --> 01:23:28,720 eta besterik ez da n deitu nahi. 1663 01:23:28,720 --> 01:23:34,720 Beraz, hau da, besterik gabe mantentzen galdera eskatuz, n-garren ren 0 s guztiak pertsonaia da? 1664 01:23:34,720 --> 01:23:38,470 Hala ez bada, hurrengo begirada begiratu, hurrengo begiratu, hurrengo begiratu, 1665 01:23:38,470 --> 01:23:39,460 hurrengo begiratzeko. 1666 01:23:39,460 --> 01:23:45,540 >> Baina backslash 0 ikusi bezain laster, loop lerro hau 9 11-- bidez gelditzen. 1667 01:23:45,540 --> 01:23:49,640 apurtu bitartean begizta duzu, n aldagai horren barruan utziz 1668 01:23:49,640 --> 01:23:54,530 guztien kopuru osoa katea ikusi duzu pertsonaiak, 1669 01:23:54,530 --> 01:23:55,660 horrela, inprimatzeko. 1670 01:23:55,660 --> 01:23:56,760 Hargatik saiatu honekin. 1671 01:23:56,760 --> 01:23:59,500 >> Dezagun aurrera eta, gabe Stirling funtzioa erabiliz, 1672 01:23:59,500 --> 01:24:04,240 baina besterik ez nire komikien bertsio propioa erabiliz Hemen Stirling deitu, utzi aurrera me 1673 01:24:04,240 --> 01:24:07,700 eta run Stirling, zerbait mota Zamyla, ezagutzen dut aldez aurretik bezala 1674 01:24:07,700 --> 01:24:08,670 sei karaktere da. 1675 01:24:08,670 --> 01:24:10,080 Ikus dezagun lan egiten bada dezagun. 1676 01:24:10,080 --> 01:24:10,920 Izan ere, sei da. 1677 01:24:10,920 --> 01:24:15,257 Dezagun saiatu Rob batera, hiru pertsonaiak, Hiru pertsonaia baita, eta abar. 1678 01:24:15,257 --> 01:24:17,340 Beraz, hori da hori gertatzen guztiak kanpaia azpian on. 1679 01:24:17,340 --> 01:24:19,548 Eta konturatu konexioak, ondoren, lehen astean 1680 01:24:19,548 --> 01:24:22,370 klaseko, non buruz hitz egin dugu abstrakzioa antzeko zerbait, 1681 01:24:22,370 --> 01:24:26,960 bertan ideien layering hau besterik ez da, edo konplexutasuna, oinarrizko printzipioak gainean. 1682 01:24:26,960 --> 01:24:30,710 Hemen, sort gara bilatzen dugu stirling kanpaia azpian, 1683 01:24:30,710 --> 01:24:33,510 nolabait esateko, irudikatu, nola garatuko litzateke geldituko ote da? 1684 01:24:33,510 --> 01:24:35,232 >> Eta ezin dugu berriro ezartzea da geure buruari. 1685 01:24:35,232 --> 01:24:37,440 Baina ari gara inoiz berriro joan to berriro ezartzea Stirling. 1686 01:24:37,440 --> 01:24:39,780 Besterik ez gara joan Stirling erabili ahal izateko 1687 01:24:39,780 --> 01:24:42,100 benetan lortu kateak luzera batzuk. 1688 01:24:42,100 --> 01:24:44,200 >> Baina ez da magia ez kanpaia azpian. 1689 01:24:44,200 --> 01:24:46,716 Ezagutzen baduzu azpian kanpaia, kate bat 1690 01:24:46,716 --> 01:24:48,090 karaktere-sekuentzia bat besterik ez da. 1691 01:24:48,090 --> 01:24:51,090 Eta karaktere-sekuentzia hori guztiak zenbakiz zuzenduta egon daiteke 1692 01:24:51,090 --> 01:24:53,330 parentesia 0, batera 1, 2 parentesi, eta zuk 1693 01:24:53,330 --> 01:24:57,420 ezagutzen duten kate baten bukaeran a izaera berezia, irudikatu dezakezu 1694 01:24:57,420 --> 01:25:01,710 gehien batean ezer egin programa, behera irakiten guztiak delako 1695 01:25:01,710 --> 01:25:03,400 irakurtzen eta idazten memoria. 1696 01:25:03,400 --> 01:25:06,130 Hau da, aldatuz eta bila memoria, edo gauzak mugitzen 1697 01:25:06,130 --> 01:25:10,940 memorian inguruan, inprimatzeko gauzak pantailan, eta abarren gainean. 1698 01:25:10,940 --> 01:25:14,800 >> Hargatik newfound hau erabili izan da orain zer Kateak benetan ulertzeko 1699 01:25:14,800 --> 01:25:17,910 kanpaia azpian daude, eta atzera azala beste geruza bat 1700 01:25:17,910 --> 01:25:20,080 Orain arte izan ditugun dira batere kontuan. 1701 01:25:20,080 --> 01:25:22,650 bereziki, edozein unetan ere programa bat inplementatu dugu, 1702 01:25:22,650 --> 01:25:25,930 kode-lerro izan dugu, hau goiko gertu nagusiak geratuko. 1703 01:25:25,930 --> 01:25:27,810 Eta zehaztu dugu int hutsune nagusia. 1704 01:25:27,810 --> 01:25:31,240 >> Eta hutsune hori parentesi barruan hori nagusia izan da denbora honetan guztian esaten 1705 01:25:31,240 --> 01:25:33,440 berez, ez du argumenturik hartzen. 1706 01:25:33,440 --> 01:25:36,210 Edozein sarrera nagusia dela Erabiltzaile etik joan 1707 01:25:36,210 --> 01:25:39,020 beste batzuk etorriko da mekanismo, bezala lortu int, 1708 01:25:39,020 --> 01:25:42,040 edo iritsi karroza, edo kate lortu, edo beste funtzio batzuk. 1709 01:25:42,040 --> 01:25:44,710 Baina bihurtzen da programa bat idatzi duzun, 1710 01:25:44,710 --> 01:25:47,690 duzu benetan zehaztu dezakezu Programa honek ere hori 1711 01:25:47,690 --> 01:25:51,730 hartu Sarrerek giza-tik Komando-lerroan bertan. 1712 01:25:51,730 --> 01:25:56,310 >> Beste era batera esanda, nahiz eta orain arte dugu Nahikoa exekutatzen bada Hello kaixo 1713 01:25:56,310 --> 01:26:00,312 edo antzeko programak, guztia beste programen ditudan erabiliz izan dugu, 1714 01:26:00,312 --> 01:26:02,770 Gu ere, ez zuen idatzi hori, hartzen dira izan, dirudienez, 1715 01:26:02,770 --> 01:26:05,210 Komando-lerroan argumenturik make bezalako gauzak. 1716 01:26:05,210 --> 01:26:07,450 make antzeko zerbait esan duzu, eta, ondoren, bigarren hitz bat. 1717 01:26:07,450 --> 01:26:10,950 Edo Clang, Clang esan duzu, eta, ondoren, bigarren hitz bat, fitxategi baten izena. 1718 01:26:10,950 --> 01:26:14,410 >> Edo are RM edo CP, baitezakezu ikusi dute edo erabili dagoeneko 1719 01:26:14,410 --> 01:26:15,880 kendu edo kopiatzeko. 1720 01:26:15,880 --> 01:26:18,920 horiek guztiak hartu deiturikoak Komando-lerroan argumenturik 1721 01:26:18,920 --> 01:26:21,130 terminalean at hitz osagarriak. 1722 01:26:21,130 --> 01:26:23,260 Baina, orain arte, dugu geure ez dute izan 1723 01:26:23,260 --> 01:26:27,080 sarrera hartuta batetik luxua honetan Erabiltzaileak berak benetan exekutatzen denean 1724 01:26:27,080 --> 01:26:29,120 programak berak komando-lerroan. 1725 01:26:29,120 --> 01:26:33,710 >> Baina zer egin genezake ek berriro deklaratzen nagusiak aurrera, ez izatea gisa 1726 01:26:33,710 --> 01:26:36,750 parentesi void, baina bi argudio horiek 1727 01:26:36,750 --> 01:26:40,600 Lehenengo zenbaki oso bat Horren ordez, eta bigarrena, zerbait 1728 01:26:40,600 --> 01:26:44,170 berria, zerbait ari gara deitzera joan Array, espirituz antzeko zerbait 1729 01:26:44,170 --> 01:26:49,220 zer ikusi Scratch dugu zerrenda bat bezala, baina Kateak array bat, laster ikusi dugu. 1730 01:26:49,220 --> 01:26:51,790 Baina ikus dezagun arabera Adibide gisa, aurretik dugu 1731 01:26:51,790 --> 01:26:53,690 bereizteko zehazki zer esan nahi duen. 1732 01:26:53,690 --> 01:26:56,520 >> Beraz, joan nintzen CS50 IDE sartu bada Hemen, joan dut aurretik 1733 01:26:56,520 --> 01:27:01,840 izeneko fitxategi batean deklaratu argv0.c honako txantiloia. 1734 01:27:01,840 --> 01:27:04,120 Eta nabarituko gauza bakarra hori da desberdina orain arte 1735 01:27:04,120 --> 01:27:08,570 dago hori aldatu dut void int argc katea argv tarte irekia da, hurbil 1736 01:27:08,570 --> 01:27:09,070 bracket. 1737 01:27:09,070 --> 01:27:11,730 Eta orain, nabarituko, ez da Parentesi horiek ezer barruan. 1738 01:27:11,730 --> 01:27:12,620 >> Badira zenbakia ez da. 1739 01:27:12,620 --> 01:27:15,070 Eta ez da i no, edo n, edo beste edozein letra. 1740 01:27:15,070 --> 01:27:17,010 Besterik ez naiz erabiliz oraingoz kortxeteen, 1741 01:27:17,010 --> 01:27:19,510 arrazoiengatik etorri dugu atzera une bat besterik ez. 1742 01:27:19,510 --> 01:27:21,330 >> Eta orain zer egin behar dut da hau. 1743 01:27:21,330 --> 01:27:26,680 argc bada berdin berdin 2-- eta gogora ekarri du berdin berdin 1744 01:27:26,680 --> 01:27:30,040 berdintasun-operadorea alderatuz da ezkerreko eta eskuineko berdintasunaren alde. 1745 01:27:30,040 --> 01:27:31,790 Ez da esleipena It operadoreak, hau da, 1746 01:27:31,790 --> 01:27:36,510 Berdintasun ikurraren single, horrek esan nahi du, kopia eskuinetik egindako ezker balio batzuk. 1747 01:27:36,510 --> 01:27:42,840 >> argc bada berdin berdin 2, Nahi dut esan, printf, kaixo, ehunekotan, linea berria, 1748 01:27:42,840 --> 01:27:47,340 eta ondoren konektatu in-- eta hemen da berri du trikimailu argv parentesi 1, arrazoiengatik 1749 01:27:47,340 --> 01:27:48,840 hori atzera une batean etorri gara. 1750 01:27:48,840 --> 01:27:52,110 Bestela argc ez bada berdina 2, badakizu zer? 1751 01:27:52,110 --> 01:27:57,400 Goazen besterik Animatu eta, ohi bezala, inprimatu out kaixo ordezkapen gabe munduan. 1752 01:27:57,400 --> 01:28:02,710 >> Beraz, badirudi hori argc, eta horrek badu argumentu Aldaketa dago, berdin 2, 1753 01:28:02,710 --> 01:28:04,740 inprimatu noa kaixo zerbait edo beste. 1754 01:28:04,740 --> 01:28:07,560 Bestela, besterik ezean, naiz kaixo inprimatu mundu joan. 1755 01:28:07,560 --> 01:28:08,770 Beraz, zer esan nahi du horrek? 1756 01:28:08,770 --> 01:28:15,550 >> Beno, utzi aurrera me eta gorde Fitxategi honek, eta gero egin argv0 egiteko, 1757 01:28:15,550 --> 01:28:18,940 eta gero ./argv0, Sartu. 1758 01:28:18,940 --> 01:28:20,300 Eta kaixo esaten du mundu. 1759 01:28:20,300 --> 01:28:21,260 Orain, zergatik da hori? 1760 01:28:21,260 --> 01:28:24,730 >> Beno, bihurtzen da edonoiz duzu exekutatu programa bat komando-lerroan, 1761 01:28:24,730 --> 01:28:29,570 Ari zaren betez zer egingo dugu oro har, deitu argumentu bektore bat. 1762 01:28:29,570 --> 01:28:33,100 Beste era batera esanda, automatikoki batean ordenagailua, sistema eragilea, 1763 01:28:33,100 --> 01:28:38,340 da zure programa eskutik joan bera hitz guztien zerrenda bat 1764 01:28:38,340 --> 01:28:40,850 giza Badirudi idatzitako at gonbitan, kasu horretan, 1765 01:28:40,850 --> 01:28:43,790 programatzailea nahi egin Informazio hori duen zerbait. 1766 01:28:43,790 --> 01:28:48,540 Eta, kasu honetan, bakarrik hitza gonbitan I idatzitako ./argv0 da. 1767 01:28:48,540 --> 01:28:55,420 >> Eta beraz, argumentu kopurua dela ari nire programa gainditu besterik ez da. 1768 01:28:55,420 --> 01:28:58,880 Beste era batera esanda, argudioa zenbatu, bestela argc bezala ezagutzen 1769 01:28:58,880 --> 01:29:00,970 Hemen, zenbaki oso bat bezala, bat besterik ez da. 1770 01:29:00,970 --> 01:29:03,000 One, jakina, ez du berdina bi. 1771 01:29:03,000 --> 01:29:05,980 Eta, beraz, hau da, zer inprimatzen, kaixo mundua. 1772 01:29:05,980 --> 01:29:08,170 >> Baina utzi nonbait hau hartu me. 1773 01:29:08,170 --> 01:29:09,930 Let me esan, argv0. 1774 01:29:09,930 --> 01:29:12,740 Eta gero, nola Maria buruz? 1775 01:29:12,740 --> 01:29:14,990 Eta gero, sakatu Sartu. 1776 01:29:14,990 --> 01:29:18,020 >> Eta konturatu magikoki zer gertatzen den hemen. 1777 01:29:18,020 --> 01:29:22,640 Orain, kaixo mundua ordez, behar dut Programa honen portaera aldatu 1778 01:29:22,640 --> 01:29:26,310 sarrera ez hartzea, get arabera katea edo beste funtzio batzuk, 1779 01:29:26,310 --> 01:29:30,570 baina, itxuraz, nire komando berez, jatorriz idatzi dut. 1780 01:29:30,570 --> 01:29:35,720 Eta joko honetan berriro jolastu ahal dut arabera aldatzen Stelios, adibidez. 1781 01:29:35,720 --> 01:29:38,400 >> Eta orain beste izen bat ikusten dut oraindik. 1782 01:29:38,400 --> 01:29:40,540 Eta hemen, Andi esan liteke dut. 1783 01:29:40,540 --> 01:29:42,137 Eta Zamyla esan liteke dut. 1784 01:29:42,137 --> 01:29:45,220 Eta joko honetan jolastu ahal izango dugu egun osoan zehar, besterik balio ezberdinak plugging, 1785 01:29:45,220 --> 01:29:49,550 hain luze zehazki ematen dudan bezala bi gonbitan hitz, 1786 01:29:49,550 --> 01:29:52,260 hala nola, argc, nire argudio zenbatu, 2 da. 1787 01:29:52,260 --> 01:29:57,240 >> Ez da izen hori sartuta dagoela ikusi dut printf, baldintza hori hemen per? 1788 01:29:57,240 --> 01:30:00,550 Beraz, orain badirudi dugu adierazpen gaitasuna 1789 01:30:00,550 --> 01:30:04,410 sarrera hartuta beste mekanismo batetik, Komando-lerroan deiturikoak, 1790 01:30:04,410 --> 01:30:07,000 baizik eta itxaron beharrik baino Erabiltzaileak programa exekutatzen arte, 1791 01:30:07,000 --> 01:30:10,220 eta orduan galdetuko zion bere katea zerbait erabiliz. 1792 01:30:10,220 --> 01:30:11,230 >> Beraz, zer da hau? 1793 01:30:11,230 --> 01:30:15,010 Argc, berriro, zenbaki oso bat besterik ez da, words-- argumenturik kopurua 1794 01:30:15,010 --> 01:30:18,540 Hori emandako erabiltzaileak gonbita, terminal leiho ondoan, 1795 01:30:18,540 --> 01:30:20,110 programaren izena barne. 1796 01:30:20,110 --> 01:30:23,340 Beraz, gure ./argv0 da, modu eraginkorrean, programaren izena, 1797 01:30:23,340 --> 01:30:24,520 edo nola, programa exekutatu dut. 1798 01:30:24,520 --> 01:30:25,810 >> Hori hitza gisa zenbatzen. 1799 01:30:25,810 --> 01:30:27,080 Beraz argc 1 izango litzateke. 1800 01:30:27,080 --> 01:30:29,750 Baina I Stelios idatzi, edo Andi, edo Zamyla, edo Maria, 1801 01:30:29,750 --> 01:30:31,660 horrek esan nahi du argumentu Aldaketa bi da. 1802 01:30:31,660 --> 01:30:33,910 Eta, beraz, gaur egun ez da gainditu bi hitz egin. 1803 01:30:33,910 --> 01:30:36,070 >> Eta, adi, logika hau jarraitu ahal izango dugu. 1804 01:30:36,070 --> 01:30:39,050 Bada, egia esan, esan nuen Zamyla Chan bezalako zerbait, 1805 01:30:39,050 --> 01:30:42,200 izen bat, horrela pasatzen hiru argudio guztira, 1806 01:30:42,200 --> 01:30:47,410 orain lehenetsia dio berriro, zeren, jakina, 3 ez du berdina 2. 1807 01:30:47,410 --> 01:30:54,080 >> Eta beraz, modu honetan, ez daukat argv argumentu berri honen bidez sarbidea 1808 01:30:54,080 --> 01:30:56,080 Teknikoki genitzakeela dei egin nahi izan dugu. 1809 01:30:56,080 --> 01:30:58,940 Baina konbentzio, da, argv eta argc, hurrenez hurren. 1810 01:30:58,940 --> 01:31:04,470 Argv, argudio vector, mota da programazio bat sinonimo baten 1811 01:31:04,470 --> 01:31:07,140 C Ezaugarri izeneko array bat. 1812 01:31:07,140 --> 01:31:14,410 >> Array bat antzeko balio-zerrenda bat da Atzera, atzera, atzera, atzera. 1813 01:31:14,410 --> 01:31:17,810 Beste era batera esanda, inork bada da hementxe bertan RAM, hurrengo bat da eskubidea ondoan, 1814 01:31:17,810 --> 01:31:18,800 eta haren ondoan. 1815 01:31:18,800 --> 01:31:20,101 Oraindik ez dira leku guztietan zehar. 1816 01:31:20,101 --> 01:31:23,100 Eta bigarrenak, eszenatoki hori, non gauza guztiak memorian leku baino gehiago daude, 1817 01:31:23,100 --> 01:31:25,082 benetan indartsua ezaugarri bat izan daiteke. 1818 01:31:25,082 --> 01:31:28,040 Baina itzuli dugu hori denean dugu fancier datu egiturak buruz hitz egiteko. 1819 01:31:28,040 --> 01:31:32,260 Oraingoz, array bat besterik ez da Alboko memoria zatia, 1820 01:31:32,260 --> 01:31:36,520 bakoitza zeinen elementuak dira Atzera, atzera, atzera, atzera, 1821 01:31:36,520 --> 01:31:38,050 eta, oro har, mota bera. 1822 01:31:38,050 --> 01:31:42,630 >> Beraz, uste baduzu, batetik Une duela, zer kate bat da? 1823 01:31:42,630 --> 01:31:50,460 Beno, kate bat, Zamyla bezala, Z-A-M-Y-L-A, da, teknikoki, 1824 01:31:50,460 --> 01:31:51,400 besterik array bat. 1825 01:31:51,400 --> 01:31:53,700 karaktere array bat da. 1826 01:31:53,700 --> 01:31:59,250 >> Eta, beraz, benetan marrazteko bada hau, gisa I zuen lehenago, memoria zatia bezala, 1827 01:31:59,250 --> 01:32:04,510 bihurtzen da, horietako bakoitzak pertsonaiak hartzen byte bat. 1828 01:32:04,510 --> 01:32:07,630 Eta gero, ez da hori berezia Sentinel pertsonaia da, backslash 0, 1829 01:32:07,630 --> 01:32:12,360 edo zortzi 0 bit, hori kate horren amaieran demarcates. 1830 01:32:12,360 --> 01:32:15,090 Beraz, kate bat, hura bihurtzen out, aipatu unquote katea, 1831 01:32:15,090 --> 01:32:20,580 chara-- array bat besterik ez da char benetako datu-mota bat izateaz. 1832 01:32:20,580 --> 01:32:24,560 >> Eta orain, argv, meanwhile-- goazen programa atzera. 1833 01:32:24,560 --> 01:32:29,582 Argv, hitza ikusiko dugu, nahiz katea hemen, kate bat ez bera. 1834 01:32:29,582 --> 01:32:33,640 Argv, argudio vector, Kateak array bat da. 1835 01:32:33,640 --> 01:32:37,620 >> Beraz, besterik ez bezala array bat izan dezakezu pertsonaiak, maila altuago izan dezakezu, 1836 01:32:37,620 --> 01:32:46,279 strings-- array bat beraz, esate baterako, denean une bat idatzi dut duela ./argv0 1837 01:32:46,279 --> 01:33:00,150 argv0, espazio Z-A-M-Y-L-A, hori aldarrikatu dut argv it ./argv0 bi kateak izan, 1838 01:33:00,150 --> 01:33:03,185 eta Z-A-M-Y-L-A. In Beste era batera esanda, argc 2 izan zen. 1839 01:33:03,185 --> 01:33:03,980 Zergatik da hori? 1840 01:33:03,980 --> 01:33:08,370 >> Beno, eraginkortasunez, zer gertatzen da on da kateak horietako bakoitzak 1841 01:33:08,370 --> 01:33:13,990 da, noski, karaktere array bat lehen bezala, bakoitzak zeinen pertsonaiak 1842 01:33:13,990 --> 01:33:15,670 byte hartzen. 1843 01:33:15,670 --> 01:33:19,720 Eta ez nahastu benetako 0 programaren izena 0 batera ere, 1844 01:33:19,720 --> 01:33:22,040 bertan 80 bit guztiak esan nahi du. 1845 01:33:22,040 --> 01:33:27,140 Eta Zamyla, bestalde, ez da oraindik halaber, karaktere array bat. 1846 01:33:27,140 --> 01:33:31,450 >> Beraz, egunaren amaieran, benetan itxura hau kanpaia azpian. 1847 01:33:31,450 --> 01:33:38,800 Baina argv, naturak nola nagusien lanak, esker hori guztia biltzeko to me 1848 01:33:38,800 --> 01:33:44,810 , Izango bada, handiagoa array sartu sortu , Apur bat baino gehiago dugu errazteko 1849 01:33:44,810 --> 01:33:48,180 zer irudi itxura eta egiten ez nahiko marraztu eskalatzeko ez, 1850 01:33:48,180 --> 01:33:56,720 array honen tamaina 2 bakarra da, lehena elementu-kate bat dauka, 1851 01:33:56,720 --> 01:33:59,230 bigarren elementua Kate bat dauka. 1852 01:33:59,230 --> 01:34:01,687 Eta, era berean, baduzu motatako Handiagotzean bakoitzean 1853 01:34:01,687 --> 01:34:03,770 kate horiek, zer duzu kanpaia azpian ikusi 1854 01:34:03,770 --> 01:34:07,190 kate bakoitzak besterik ez da karaktere array bat. 1855 01:34:07,190 --> 01:34:11,680 >> Orain, besterik gabe kateak bezala, sarbidea lortzeko gai izan ginen 1856 01:34:11,680 --> 01:34:15,260 i-garren kate bateko pertsonaia ra Hori kortxetea notazioa erabiliz. 1857 01:34:15,260 --> 01:34:17,320 Era berean, array oro har, ezin dugu 1858 01:34:17,320 --> 01:34:22,700 erabili kortxetea notazioa lortu edozein kateak kopurua array bat at? 1859 01:34:22,700 --> 01:34:25,100 Esate baterako, let me aurrera, eta hori egin. 1860 01:34:25,100 --> 01:34:32,420 >> Dezagun aurrera eta argv1.c sortu, bertan desberdinak pixka bat, oraingo honetan. 1861 01:34:32,420 --> 01:34:35,635 Horren ordez argc2 egiaztatzeko, ordez egin hau noa. 1862 01:34:35,635 --> 01:34:41,270 For int lortu dut 0, txikiagoa da I argc baino, I plus plus, 1863 01:34:41,270 --> 01:34:47,920 eta, ondoren, inprimatu honen barruan, ehuneko s, lerro berria, eta, ondoren, 1864 01:34:47,920 --> 01:34:50,740 argv tarte i. 1865 01:34:50,740 --> 01:34:55,220 >> Beraz, beste era batera esanda, ez naiz hemen karaktere banakako une. 1866 01:34:55,220 --> 01:35:00,190 Argv inplikatzen plaza huts horiek bezala name argv du eskubidea giltza, 1867 01:35:00,190 --> 01:35:03,320 esan argv kateen array bat da. 1868 01:35:03,320 --> 01:35:04,870 Eta argc int bat besterik ez da. 1869 01:35:04,870 --> 01:35:08,800 >> Lerro hau hemen, 6, da set esaten berdintasuna 0. 1870 01:35:08,800 --> 01:35:11,980 Diruz bide guztiak arte, baina ez, barne argc. 1871 01:35:11,980 --> 01:35:14,010 Eta gero, iterazio bakoitzean, inprimatu kate bat. 1872 01:35:14,010 --> 01:35:14,800 Zer katea? 1873 01:35:14,800 --> 01:35:17,270 >> i-garren katea argv ere. 1874 01:35:17,270 --> 01:35:19,530 Han nengoen aurretik, berriz, du kortxetea erabiliz 1875 01:35:19,530 --> 01:35:22,180 notationekin igarren at lortu kate bateko pertsonaia, orain 1876 01:35:22,180 --> 01:35:27,240 kortxetea notazioa erabiltzen dut to igarren array bat kate batean jaso. 1877 01:35:27,240 --> 01:35:30,310 Beraz geruza mota da batez ere, kontzeptualki. 1878 01:35:30,310 --> 01:35:35,390 >> Eta beraz, zer da hau buruzko neat Programa orain, argv1 konpilatu badut, 1879 01:35:35,390 --> 01:35:42,067 eta gero egin ./argv1, eta ondoren idatzi foo bar baz antzeko zerbait, 1880 01:35:42,067 --> 01:35:45,400 bertan hiru hitz lehenetsia erabiltzen dira informatikariak edozein ordutan iristen 1881 01:35:45,400 --> 01:35:51,010 berak placeholder hitz bat behar duela, eta sakatu Sartu, hitz horietako bakoitzean, 1882 01:35:51,010 --> 01:35:54,980 programaren izena, besteak beste, bertan argv da lehen kokapenean, 1883 01:35:54,980 --> 01:35:58,320 bukatzen ari aldi berean bat inprimatuta. 1884 01:35:58,320 --> 01:36:05,290 Eta hau aldatu dut bada, eta esan nuen argv1 Zamyla Chan bezalako zerbait, 1885 01:36:05,290 --> 01:36:08,800 guztiak horietako hiru lortuko dugu hitzak, hau da argv0, 1886 01:36:08,800 --> 01:36:14,400 argv1, argv2, hau delako Kasu argc, Aldaketa, 3 da. 1887 01:36:14,400 --> 01:36:20,020 >> Baina zer da neat da ulertzen baduzu argv duten kateen array bat besterik ez da, 1888 01:36:20,020 --> 01:36:24,910 eta ulertzen duen katea karaktere array bat da, 1889 01:36:24,910 --> 01:36:29,470 benetan mota erabili ahal izango dugu hau kortxetea notazioa anitz aldiz 1890 01:36:29,470 --> 01:36:33,320 kate bat aukeratzeko, eta, ondoren, aukeratu katea barruan pertsonaia bat, 1891 01:36:33,320 --> 01:36:35,730 honela sakonago urpekaritza. 1892 01:36:35,730 --> 01:36:40,100 Adibide honetan, let me joan Animatu eta deitu argv2.c hau. 1893 01:36:40,100 --> 01:36:43,920 1894 01:36:43,920 --> 01:36:50,180 Eta adibide honetan, utzi aurrera me eta egin honako hau int i get 0, 1895 01:36:50,180 --> 01:36:53,286 i argc baino txikiagoa da, i plus plus, bezala aurretik. 1896 01:36:53,286 --> 01:36:55,910 Beraz, beste words-- eta orain honetan da nahikoa konplikatua lortzean. 1897 01:36:55,910 --> 01:36:59,940 Ondoren, naiz esateko joan argv kateak baino gehiago batetik bestera, 1898 01:36:59,940 --> 01:37:01,294 neure buruari iruzkin gisa. 1899 01:37:01,294 --> 01:37:03,960 Eta gero, bat izan naiz joan begizta habiaratuak, ziurrenik bertan duzu 1900 01:37:03,960 --> 01:37:06,290 egin dute, edo jotzen , Egiten Scratch, non 1901 01:37:06,290 --> 01:37:08,600 int naiz esaten noa i berriro erabili ez joan, 1902 01:37:08,600 --> 01:37:12,590 ez dudalako nahi itzal, edo Sort gainidatzi Dagoen i. 1903 01:37:12,590 --> 01:37:15,780 >> ordez, esan j noa, delako nire go da aldagaian i ondoren, 1904 01:37:15,780 --> 01:37:18,590 denean besterik ez dut saiatzen ari simple zenbakiak zenbatzea. 1905 01:37:18,590 --> 01:37:28,850 For j lortzen 0-- eta, gainera, n, da joan lortu popa argv tarte i luzera, 1906 01:37:28,850 --> 01:37:36,030 hain luze j m baino gutxiago, j plus plus, honako hau. 1907 01:37:36,030 --> 01:37:37,500 Eta hemen parte interesgarria da. 1908 01:37:37,500 --> 01:37:46,330 >> Inprimatu karaktere bat eta lerro berri bat, argv tarte i, j parentesi plugging. 1909 01:37:46,330 --> 01:37:47,940 Ados, beraz, utzi iruzkin batzuk gehitu me hemen. 1910 01:37:47,940 --> 01:37:54,820 Batetik bestera joateko baino karaktere Egungo katean, 1911 01:37:54,820 --> 01:38:02,290 inprimatu jgarren i-garren katean pertsonaia. 1912 01:38:02,290 --> 01:38:04,630 Beraz, gaur egun, kontuan hartu dezagun zer iruzkinak hauen esanahia. 1913 01:38:04,630 --> 01:38:06,750 >> kateak bestera joateko baino gehiago argv-- zenbat 1914 01:38:06,750 --> 01:38:09,300 kateak argv daude, eta horrek array bat da? 1915 01:38:09,300 --> 01:38:13,420 Argc asko, beraz errepikatzean naiz i berdinak 0 argc gehienez. 1916 01:38:13,420 --> 01:38:20,020 Bien bitartean, zenbat karaktere dira i-garren katea argv batean? 1917 01:38:20,020 --> 01:38:22,880 >> Beno, erantzun hori lortzeko, deitu besterik ez dut katea luzera 1918 01:38:22,880 --> 01:38:26,810 Egungo katea dut arreta buruz, eta horrek parentesi argv i da. 1919 01:38:26,810 --> 01:38:30,090 Eta ez dut aldi batean gordetzeko duten joan balio n ere, besterik katxeak helburuetarako, 1920 01:38:30,090 --> 01:38:31,590 gogoratzeko eraginkortasuna. 1921 01:38:31,590 --> 01:38:36,330 Eta gero hasieratu j 0 noa, mantentzeko hain luze joan j gisa n baino gutxiago, 1922 01:38:36,330 --> 01:38:38,430 eta bakoitzak iterazio increment j orrian. 1923 01:38:38,430 --> 01:38:41,030 >> Eta gero, hemen, per on line 12 nire iruzkina, 1924 01:38:41,030 --> 01:38:43,390 inprimatu karaktere bat, linea berri bat, eta jarraian, 1925 01:38:43,390 --> 01:38:48,140 zehazki, argv parentesi i ematen dit i-garren katea 1926 01:38:48,140 --> 01:38:51,690 argv-- beraz, lehen hitza ere, Bigarren hitza, hirugarren hitza, edozein dela ere. 1927 01:38:51,690 --> 01:38:57,370 Eta gero j sakonago murgilaldiak, eta lortzen me jgarren hitz horren pertsonaia. 1928 01:38:57,370 --> 01:39:02,200 Eta, beraz, indarrean, tratatzeko dezakezu argv bat multi-dimentsioko bezala, 1929 01:39:02,200 --> 01:39:06,050 bat bi dimentsioko, array bezala, Horren bidez, hitza begiradak mota guztietan 1930 01:39:06,050 --> 01:39:08,580 hau zure izpirituko bezala begi, eta pertsonaia bakoitzak 1931 01:39:08,580 --> 01:39:10,930 Mota da konposatutako zutabe bat, hori laguntzen badu. 1932 01:39:10,930 --> 01:39:13,260 >> Egia esan, noiz tease dugu hau ez ezik etorkizunean asteetan, 1933 01:39:13,260 --> 01:39:15,580 Honez txiki bat izango da hori baino landuagoa. 1934 01:39:15,580 --> 01:39:17,800 Baina benetan egin dezakezu hori uste, oraingoz, 1935 01:39:17,800 --> 01:39:22,110 besterik honetan bi dimentsioko gisa array, zeinaren da maila bat 1936 01:39:22,110 --> 01:39:23,260 da soka guztiak. 1937 01:39:23,260 --> 01:39:26,760 Eta, ondoren, murgiltze sakonago, zuk ere bada Banakako karaktere eskuratu ahal 1938 01:39:26,760 --> 01:39:29,600 izendapen hori hemen erabiliz hartaco. 1939 01:39:29,600 --> 01:39:31,620 >> Beraz, zer ondorio garbia da? 1940 01:39:31,620 --> 01:39:34,970 Dezagun aurrera eta egiteko argv2-- darn da. 1941 01:39:34,970 --> 01:39:36,210 akats bat egin nuen hemen. 1942 01:39:36,210 --> 01:39:40,160 Inplizituki du liburutegi funtzioa Stirling. 1943 01:39:40,160 --> 01:39:42,190 Beraz, denbora honetan guztian, da agian egokia 1944 01:39:42,190 --> 01:39:45,130 ari garela ordenatzeko akabera zehazki non hasi ginen. 1945 01:39:45,130 --> 01:39:48,160 >> izorratu nuen, inplizituki liburutegi funtzioa Stirling. 1946 01:39:48,160 --> 01:39:48,987 Ados, itxaron minutu bat. 1947 01:39:48,987 --> 01:39:51,070 Gogoratzen dut, batez ere, Hemen da geroztik. 1948 01:39:51,070 --> 01:39:54,490 String.h sartu behar dut Programaren bertsio honetan. 1949 01:39:54,490 --> 01:40:00,050 >> Dezagun aurrera eta besteak String.h, gorde duten, aurrera 1950 01:40:00,050 --> 01:40:04,460 eta berkonpilatu argv2. 1951 01:40:04,460 --> 01:40:08,390 Eta orain, hemen gara, egin argv2, Sartu. 1952 01:40:08,390 --> 01:40:10,590 Eta apur bat izan arren Lehen begiratuan críptica, 1953 01:40:10,590 --> 01:40:15,690 nabarituko, hain zuzen ere, zer moldiztegiratzen dot argv2 da. 1954 01:40:15,690 --> 01:40:19,970 >> Baina I zenbait hitzen ondoren idazten baduzu gonbita, argv2 Zamyla Chan bezala, 1955 01:40:19,970 --> 01:40:22,560 Idatzi, gainera, pixka bat Lehen begiratuan críptica. 1956 01:40:22,560 --> 01:40:30,540 Baina atzera joan gara sortu, ./argv2 Z-A-M-Y-L-A C-H-A-N. 1957 01:40:30,540 --> 01:40:32,190 Beraz, hitz bakoitzaren gainean iterated dugu. 1958 01:40:32,190 --> 01:40:37,770 Eta, era berean, nik errepika baino gehiago dugu Hitz baten barruan pertsonaia guztietan. 1959 01:40:37,770 --> 01:40:40,040 >> Orain, hori guztia egin ondoren, konturatzen ez da 1960 01:40:40,040 --> 01:40:43,120 beste xehetasun bat arrain mota izan dugu garai honetan osotasunean aintzat. 1961 01:40:43,120 --> 01:40:46,180 teased besterik ez dugu aparte zer nagusia inputak izan daiteke? 1962 01:40:46,180 --> 01:40:47,780 Zer nagusia irteera buruz? 1963 01:40:47,780 --> 01:40:50,540 >> denbora hori guztia, izan gara kopiatu eta itsasteko 1964 01:40:50,540 --> 01:40:53,870 hitza nagusiaren aurrean int du, nahiz eta online ikusi ahal izango duzu, 1965 01:40:53,870 --> 01:40:58,340 batzuetan bertsio zaharragoetan okerrean C eta konpiladoreen, hutsunea esan dute, 1966 01:40:58,340 --> 01:40:59,410 edo ezer guztiak. 1967 01:40:59,410 --> 01:41:01,580 Baina, hain zuzen ere, bertsioaren du C erabiltzen ari gara, 1968 01:41:01,580 --> 01:41:06,180 C 11, edo 2011, konturatzen int izan beharko litzateke. 1969 01:41:06,180 --> 01:41:09,300 Eta bai izan beharko luke hutsune edo argc eta argv hemen. 1970 01:41:09,300 --> 01:41:10,790 >> Baina zergatik int nagusia? 1971 01:41:10,790 --> 01:41:12,480 Zer da benetan itzuli da? 1972 01:41:12,480 --> 01:41:16,280 Beno, bihurtzen da denbora hori guztia, edonoiz programa bat idazten duzunean 1973 01:41:16,280 --> 01:41:18,440 dago beti zerbait itzuli. 1974 01:41:18,440 --> 01:41:19,960 Baina hain ezkutuka ari dira egiten. 1975 01:41:19,960 --> 01:41:23,350 >> Zerbait da bat int, lerro gisa 5 iradokitzen. 1976 01:41:23,350 --> 01:41:24,225 Baina zer int? 1977 01:41:24,225 --> 01:41:26,100 Beno, ez da hau programazio hitzarmena, 1978 01:41:26,100 --> 01:41:29,790 Horren bidez, ezer badu gaizki asi eta guztia ongi dago, 1979 01:41:29,790 --> 01:41:34,250 programak eta funtzio oro har itzuliko zertxobait counterintuitively-- 1980 01:41:34,250 --> 01:41:35,230 0. 1981 01:41:35,230 --> 01:41:38,070 0 orokorrean ondorioztatzen guztiak ongi dago. 1982 01:41:38,070 --> 01:41:40,610 uste duzu Beraz, nahiz eta faltsua testuinguru askotan bezala, 1983 01:41:40,610 --> 01:41:42,930 egia esan, oro har, gauza ona esan nahi du 1984 01:41:42,930 --> 01:41:49,560 >> Bien bitartean, programa bat 1 itzultzen bada, edo 1 negatiboa, 5 edo negatiboa 42, 1985 01:41:49,560 --> 01:41:52,941 edo ez-0 balioa, hori, oro har, ondorioztatzen 1986 01:41:52,941 --> 01:41:54,190 zerbait gaizki joan da. 1987 01:41:54,190 --> 01:41:56,700 Izan ere, zeure Mac edo PC, duzu benetan ikusi liteke 1988 01:41:56,700 --> 01:42:01,050 errore-mezu bat, zeinaren da dio zerbait edo beste, error 1989 01:42:01,050 --> 01:42:04,940 kodea negatiboa 42, edo errore kodea 23, edo horrelako zerbait. 1990 01:42:04,940 --> 01:42:08,980 kopuru hori, oro har iradokizun bat besterik ez programatzailea, edo enpresari 1991 01:42:08,980 --> 01:42:11,174 softwareak egin, gaizki zer eta zergatik joan zen, 1992 01:42:11,174 --> 01:42:13,590 beraz, begiratu ahal izango dute bidez bere dokumentazioa edo kodea, 1993 01:42:13,590 --> 01:42:15,465 bertan zer du error benetan esan nahi. 1994 01:42:15,465 --> 01:42:18,400 Oro har, ez gurekin erabilgarria amaituko erabiltzaileek. 1995 01:42:18,400 --> 01:42:20,550 >> Baina 0 itzulerak nagusia, guztiak ongi. 1996 01:42:20,550 --> 01:42:23,770 Eta ez baduzu zehaztu zer nagusiak itzuli behar, 1997 01:42:23,770 --> 01:42:26,950 besterik automatikoki geratuko da itzultzeko 0 zuretzat. 1998 01:42:26,950 --> 01:42:30,870 Baina zerbait itzuli bestela, benetan erabilgarria. 1999 01:42:30,870 --> 01:42:34,660 >> azken programa honetan, let me aurrera eta deitu exit.c honetan, 2000 01:42:34,660 --> 01:42:38,630 eta aurkeztu gaurko azkena gaiak, errore kodea ezagutzen. 2001 01:42:38,630 --> 01:42:42,930 Dezagun aurrera eta, besteak beste, gure familiar fitxategiak gora gora, ez int nagusia. 2002 01:42:42,930 --> 01:42:49,500 Eta oraingoan, egin dezagun int argc utzi, katea argv, eta nire parentesi 2003 01:42:49,500 --> 01:42:50,836 dela array esan nahi du. 2004 01:42:50,836 --> 01:42:52,460 Eta gero, egin besterik ez dit behatu check. 2005 01:42:52,460 --> 01:42:56,640 Oraingoan, argc ez bada berdina 2, orduan badakizu zer? 2006 01:42:56,640 --> 01:42:57,520 Ahaztu. 2007 01:42:57,520 --> 01:43:03,170 Hori esan behar diot, beno, erabiltzaileak, komando-lerroko argumentu ari zaren falta 2008 01:43:03,170 --> 01:43:04,210 backslash n. 2009 01:43:04,210 --> 01:43:05,230 >> Eta gero, hori da. 2010 01:43:05,230 --> 01:43:06,130 Irten nahi dut. 2011 01:43:06,130 --> 01:43:11,030 preemptively noa den, eta behar baino lehenago benetan, bueltan 2012 01:43:11,030 --> 01:43:12,810 Zerbait 1 zenbakia ez den beste. 2013 01:43:12,810 --> 01:43:15,360 balio go lehen egin du Errore hori gerta daiteke 1 da. 2014 01:43:15,360 --> 01:43:17,860 beste batzuk okerrak badaukazu Gerta liteke egoera, 2015 01:43:17,860 --> 01:43:21,390 bueltan 2 esan dezakezue edo itzultzeko 3, edo agian, are negatiboa 1 edo 2 negatiboa. 2016 01:43:21,390 --> 01:43:23,750 >> Hauek dira, irteera kodeak direla, oro har, 2017 01:43:23,750 --> 01:43:27,770 bakarrik programatzailea baliagarria, edo enpresa hori software bidalketa. 2018 01:43:27,770 --> 01:43:30,500 Baina, hain zuzen, hori da Ez 0 da zer da garrantzitsua. 2019 01:43:30,500 --> 01:43:34,310 Beraz, programa honetan bada, Nahi dut bermatzen duten programa honetan bakarrik 2020 01:43:34,310 --> 01:43:38,190 lan egiten du, erabiltzaileari eskaintzen dit bada argumentu bi kondea batekin, 2021 01:43:38,190 --> 01:43:42,880 programaren izenarekin, eta beste batzuk hitza, honela bezainbeste betearazi ahal izango dut, 2022 01:43:42,880 --> 01:43:46,110 printf esaera batera erabiltzaileak Yell, falta komando-lerroko argumentu, 2023 01:43:46,110 --> 01:43:46,970 itzultzeko 1. 2024 01:43:46,970 --> 01:43:49,940 Hori izango da, besterik gabe, berehala programatik irten. 2025 01:43:49,940 --> 01:43:55,840 >> argc berdin bada bakarrik 2 izango lortuko dugu behera hemen, eta amaitzen ari naiz esan nahi du, 2026 01:43:55,840 --> 01:44:00,410 kaixo ehuneko s, backslash n, argv1. 2027 01:44:00,410 --> 01:44:03,827 Beste era batera esanda, ez naiz Ez argv 0 joan ondoren, 2028 01:44:03,827 --> 01:44:05,410 bertan besterik programan izena da. 2029 01:44:05,410 --> 01:44:09,450 inprimatzeko kaixo, koma nahi dut, Bigarren hitza giza idatzitako dagoela. 2030 01:44:09,450 --> 01:44:12,580 Eta kasu honetan ere 13 linea, guztiak ongi. 2031 01:44:12,580 --> 01:44:15,920 >> Ezagutzen dut argc dela 2 logikoki programa honek. 2032 01:44:15,920 --> 01:44:17,770 Aurrera joan eta itzultzeko 0 noa. 2033 01:44:17,770 --> 01:44:21,230 Bat alde batera utzita, kontuan hartu hau da Scratch egia baita. 2034 01:44:21,230 --> 01:44:24,760 >> Logikoa denez, hori egin izan dut eta lerro hauen enkapsulatu 2035 01:44:24,760 --> 01:44:27,020 beste klausula honetan hemen kodearen. 2036 01:44:27,020 --> 01:44:29,420 Baina hori sort alferrik nire kodea koska. 2037 01:44:29,420 --> 01:44:31,800 Eta super egin nahi dut argi ez zer egiten duten, 2038 01:44:31,800 --> 01:44:34,670 lehenetsiz, kaixo Zerbait inprimatutako egingo dira, 2039 01:44:34,670 --> 01:44:36,050 hain luze erabiltzaileak Coopera bezala. 2040 01:44:36,050 --> 01:44:39,360 >> Beraz, oso ohikoa da erabili baldintza bat, besterik ez bada bat, 2041 01:44:39,360 --> 01:44:41,870 okerrak batzuk harrapatzeko egoera, eta gero irten. 2042 01:44:41,870 --> 01:44:45,690 Eta gero, hain luze guztia bai, ez dute beste, 2043 01:44:45,690 --> 01:44:48,060 baina besterik ez dute kode du kanpo, delako bada 2044 01:44:48,060 --> 01:44:51,060 honen baliokidea Kasu zehatz, logikoki. 2045 01:44:51,060 --> 01:44:54,480 Beraz dut itzuli 0, besterik gabe, esplizituki adierazteko guztiak ongi dago. 2046 01:44:54,480 --> 01:44:58,480 >> itzulera 0 zehazten ez dut bada, litzateke automatikoki niretzat onartu. 2047 01:44:58,480 --> 01:45:00,890 Baina orain dela dut itzuli gutxienez, kasu honetan, bat, 2048 01:45:00,890 --> 01:45:04,940 Noa, neurri ona eta argitasuna, itzultzeko 0 kasu honetan. 2049 01:45:04,940 --> 01:45:09,690 Beraz, orain utzi aurrera me eta irteera egiteko, bertan perfektua segue besterik uztea da. 2050 01:45:09,690 --> 01:45:14,401 >> Baina irteera egiteko, eta utzi me joan Animatu eta egin ./exit, Sartu. 2051 01:45:14,401 --> 01:45:16,900 Eta programa me at oihu, komando-lerroko argumentu falta. 2052 01:45:16,900 --> 01:45:18,120 Ados, let me elkarlanean. 2053 01:45:18,120 --> 01:45:23,810 >> Utzi egin ordez me ./exit, David, Sartu. 2054 01:45:23,810 --> 01:45:25,190 Eta orain dio, kaixo David. 2055 01:45:25,190 --> 01:45:27,300 Eta ez duzu normalean ikusten hau. 2056 01:45:27,300 --> 01:45:30,650 >> Baina bihurtzen da, ez dagoela bat Linux-en modu berezia da, benetan ikusi 2057 01:45:30,650 --> 01:45:34,470 zer irteera-programa bat amaitu da. 2058 01:45:34,470 --> 01:45:37,184 Batzuetan grafiko batean Mac OS edo Windows bezala munduan, 2059 01:45:37,184 --> 01:45:40,100 bakarrik ikusten duzun zenbaki horiek denean bat Errore mezua azalduko da pantailan 2060 01:45:40,100 --> 01:45:41,940 eta programatzailea kopuru hori erakutsiko dizu. 2061 01:45:41,940 --> 01:45:44,773 Baina zer error ikusi nahi badugu mezua da, egin dezakegu hemen 2062 01:45:44,773 --> 01:45:48,100 beraz ./exit, Sartu, inprimatu komando-lerroko argumentu falta. 2063 01:45:48,100 --> 01:45:54,590 >> orain ez dut echo $ ?, bada, zein da ridiculously críptica begira. 2064 01:45:54,590 --> 01:45:56,590 Baina $? 2065 01:45:56,590 --> 01:45:59,220 magikoa sorgin-hitza da Hori dio, beno, ordenagailua, 2066 01:45:59,220 --> 01:46:01,900 esaidazu zer aurreko programaren irteera izan zen. 2067 01:46:01,900 --> 01:46:03,410 Eta sakatu dut. 2068 01:46:03,410 --> 01:46:07,520 1 ikusten dut, hori delako zer I nire funtzio nagusia itzultzeko esan. 2069 01:46:07,520 --> 01:46:12,310 >> Bien bitartean, ./exit David egiten badut, eta sakatu Sartu, ikusi nuen, kaixo David. 2070 01:46:12,310 --> 01:46:16,800 Eta orain ez dut bada echo $ ?, kaixo ikusten dut 0. 2071 01:46:16,800 --> 01:46:19,080 Eta, beraz, hori benetan informazio baliagarria izan 2072 01:46:19,080 --> 01:46:23,420 araztailea testuinguruan, ez hain in Askoz duzun hori, giza, zaintzeko litzateke. 2073 01:46:23,420 --> 01:46:26,060 Baina araztailea eta beste programak seihilekoa hau erabiliko dugu 2074 01:46:26,060 --> 01:46:29,420 egingo askotan kopuru hori begiratu, nahiz eta oso Sort ezkutuan 2075 01:46:29,420 --> 01:46:32,780 horretarako, begiratzen baduzu behintzat zehazteko programa bat da, ala ez 2076 01:46:32,780 --> 01:46:37,050 exekuzio zuzena edo okerra izan zen. 2077 01:46:37,050 --> 01:46:40,450 >> Eta beraz, horrek garamatza to hau, egunaren amaieran. 2078 01:46:40,450 --> 01:46:43,917 Gaur hasi gara begira arabera arazketa, eta ikastaroa at txanda 2079 01:46:43,917 --> 01:46:46,750 bera, eta, ondoren, are interesgarriagoa da, teknikoki kanpaia azpian 2080 01:46:46,750 --> 01:46:49,490 zer at kateak dira, eta horrek iraun Aste hartu besterik ez dugu ematen, 2081 01:46:49,490 --> 01:46:51,900 eta, zalantzarik gabe, horiek hartu for Scratch ematen. 2082 01:46:51,900 --> 01:46:56,040 >> ondoren, nola sartu ahal izango dugu begiratu egin dugu karaktere kate batean, 2083 01:46:56,040 --> 01:47:00,310 eta, ondoren, berriro hartu maila altuago bat gauzak begiratu, nola at well-- bila 2084 01:47:00,310 --> 01:47:04,226 banakako at lortu nahi badugu egitura bezalako zerrenda bateko elementu, 2085 01:47:04,226 --> 01:47:05,850 ezin dela egin dugu kateak batengan? 2086 01:47:05,850 --> 01:47:08,050 Eta ezin komando lerroko argumentuak dugu. 2087 01:47:08,050 --> 01:47:12,800 Baina hemen argazki hau besterik kutxak da ideia orokor horren erakusgarri 2088 01:47:12,800 --> 01:47:14,451 array bat, edo zerrenda bat, edo bektore baten. 2089 01:47:14,451 --> 01:47:16,450 Eta arabera Testuinguru, hitz horiek guztiak 2090 01:47:16,450 --> 01:47:17,880 esan nahi gauzak apur bat desberdinak. 2091 01:47:17,880 --> 01:47:20,060 Beraz, C, bakarrik goaz array buruz hitz egiteko. 2092 01:47:20,060 --> 01:47:23,840 Sorta bat zatia da oroimenaren, bakoitzak horietatik da 2093 01:47:23,840 --> 01:47:27,720 elementu Alboko dira, atzera, Atzera, atzera, atzera. 2094 01:47:27,720 --> 01:47:31,970 >> Eta elementu horiek dira, oro har, datu mota bereko, pertsonaia, 2095 01:47:31,970 --> 01:47:35,966 pertsonaia, pertsonaia, pertsonaia, edo kate, kate, kate, katea, edo int, 2096 01:47:35,966 --> 01:47:38,600 int, int, edozein da denda saiatzen ari gara. 2097 01:47:38,600 --> 01:47:42,540 Baina egunaren amaieran, hau da Zer itxura kontzeptualki bezala. 2098 01:47:42,540 --> 01:47:44,530 hartzen ari zara zure ordenagailuaren memorian edo RAM. 2099 01:47:44,530 --> 01:47:48,590 Eta taila ari zaren sartu berdinean tamainako kaxak, horrek guztiak 2100 01:47:48,590 --> 01:47:50,920 dira atzera, atzera, nahi back, modu horretan atzera. 2101 01:47:50,920 --> 01:47:53,200 >> Eta zer da buruz nice Ideia hau, eta hain zuzen, 2102 01:47:53,200 --> 01:47:58,580 Modu horretan balioak adierazteko aukera izango dugu Gure datu-egituren lehen batera 2103 01:47:58,580 --> 01:48:02,520 klasean, bide eta hasi gaitezke kodea dituen arazoak konpontzeko 2104 01:48:02,520 --> 01:48:04,079 hori izan zen hain intuitiboki aste 0. 2105 01:48:04,079 --> 01:48:05,870 telefonoz Gogoratzen duzu book adibidez, non 2106 01:48:05,870 --> 01:48:09,110 arrail bat erabiliko dugu eta konkistatzeko, edo bilaketa algoritmo bitar bat, 2107 01:48:09,110 --> 01:48:13,220 osotasun baten bidez sift Izenak eta zenbakiak sorta. 2108 01:48:13,220 --> 01:48:18,220 Baina, bere gain hartu dugu, oroitzapen, hori dela telefono book dagoeneko horrela antolatu, 2109 01:48:18,220 --> 01:48:21,630 beste norbait dagoela jada Hurrena out-- emandako izenen zerrenda 2110 01:48:21,630 --> 01:48:24,430 eta zenbakien nola alphabetize izateko. 2111 01:48:24,430 --> 01:48:26,950 Eta orain, C dugu, gehiegi, gaitasuna dute 2112 01:48:26,950 --> 01:48:30,290 gauzak finkatzeko out, ez fisikoki telefono-liburu batean 2113 01:48:30,290 --> 01:48:34,220 baina ia ordenagailuaren batean memoria, egingo duela datorren astean izango dugu 2114 01:48:34,220 --> 01:48:38,470 Berriro aurkeztu lehena Halako gure array batean datu-egituren 2115 01:48:38,470 --> 01:48:43,530 baina are garrantzitsuagoa dena, benetako ordenagailuak zientzia algoritmoak inplementatu 2116 01:48:43,530 --> 01:48:47,720 kodea, eta horrela gorde ahal izango dugu hau bezalako egituretan datuak, 2117 01:48:47,720 --> 01:48:50,730 eta ondoren hasiko da manipulatzeko, eta benetan konpondu arazo hori ere, 2118 01:48:50,730 --> 01:48:53,570 eta horren gainean eraiki, azken finean, C programak, 2119 01:48:53,570 --> 01:48:56,730 Python ere, JavaScript, SQL datu-baseak kontsultatzeko? 2120 01:48:56,730 --> 01:48:59,980 >> Eta horien guztien ikusiko dugu ideia ezberdinak nahasirik. 2121 01:48:59,980 --> 01:49:04,100 Baina, oraingoz, gogoratzen duten domeinu horrek gaur aurkeztu dugu 2122 01:49:04,100 --> 01:49:06,920 Gauza hau izan zen hemen, eta kriptografia munduan. 2123 01:49:06,920 --> 01:49:11,200 Eta hurrengo arazoak duzu zeure burua artean kriptografia artea da konpon, 2124 01:49:11,200 --> 01:49:13,630 scrambling eta de-scrambling Informazio eta aritmetika 2125 01:49:13,630 --> 01:49:15,930 eta testu argitzen, eta, azken finean, suposatuz 2126 01:49:15,930 --> 01:49:18,970 Hori orain badakizu zer kanpaia azpian da 2127 01:49:18,970 --> 01:49:21,860 beraz, orduan ikusi edo jasoko duzu honelako mezu bat, zuk 2128 01:49:21,860 --> 01:49:24,060 argitu ahal yourself. 2129 01:49:24,060 --> 01:49:26,740 hau, eta gehiago hurrengo denbora guztia. 2130 01:49:26,740 --> 01:49:29,890 2131 01:49:29,890 --> 01:49:30,790 >> [Bideo-erreprodukzioa] 2132 01:49:30,790 --> 01:49:32,970 >> heldu -Mover. 2133 01:49:32,970 --> 01:49:35,146 bisita joan noa bere unibertsitateko irakaslea. 2134 01:49:35,146 --> 01:49:37,611 Yep. 2135 01:49:37,611 --> 01:49:40,080 Hi. 2136 01:49:40,080 --> 01:49:40,660 Zu zara. 2137 01:49:40,660 --> 01:49:44,125 2138 01:49:44,125 --> 01:49:45,110 Itxaron! 2139 01:49:45,110 --> 01:49:45,610 David. 2140 01:49:45,610 --> 01:49:53,936 2141 01:49:53,936 --> 01:49:56,060 to irudikatu besterik ez dut saiatzen ari zer gertatu out. 2142 01:49:56,060 --> 01:49:58,130 Mesedez, ezer laguntzeko. 2143 01:49:58,130 --> 01:50:05,020 2144 01:50:05,020 --> 01:50:08,354 bere college zinen gelakide, ez zinen? 2145 01:50:08,354 --> 01:50:10,770 ez zinen zion denean batekin CS50 proiektua amaitu zuen? 2146 01:50:10,770 --> 01:50:13,770 2147 01:50:13,770 --> 01:50:15,765 >> [Musika jotzen] 2148 01:50:15,765 --> 01:50:32,110 2149 01:50:32,110 --> 01:50:33,150 >> -Hori CS50 zen. 2150 01:50:33,150 --> 01:50:42,690 2151 01:50:42,690 --> 01:50:44,770 >> leku hau maite dut. 2152 01:50:44,770 --> 01:50:45,854 >> -Eat Eman. 2153 01:50:45,854 --> 01:50:47,020 negozio goaz. 2154 01:50:47,020 --> 01:50:52,120 2155 01:50:52,120 --> 01:50:53,970 >> [END erreprodukzioa]