1 00:00:00,000 --> 00:00:02,270 [Powered by Google Translate] [Aste 2, ContinĂșa] 2 00:00:02,270 --> 00:00:04,220 [David J. Malan, Harvard Unibertsitatea] 3 00:00:04,220 --> 00:00:06,880 [Hau CS50 da. - CS50.TV] 4 00:00:06,880 --> 00:00:10,990 Guztiak eskubidea. Hau CS50 da, eta honetan 2 aste amaieran. 5 00:00:10,990 --> 00:00:14,410 Gose espero baduzu denbora honen inguruan bihar 6 00:00:14,410 --> 00:00:18,620 ezagutzen ari gara, talde txiki bihar, osteguna, 1:15 pm gisa deituko du. 7 00:00:18,620 --> 00:00:21,360 URL hau hemen RSVP nahi izanez gero. 8 00:00:21,360 --> 00:00:26,740 Espazioa mugatua da, beraz, mesedez, formulario hau bete du bete bada barkatzen. 9 00:00:26,740 --> 00:00:29,300 URL bat, nahiz eta, agian interesgarriak izan da. 10 00:00:29,300 --> 00:00:32,369 Hilabete bat denbora buruz, jakina da erabili ahal izango diren. 11 00:00:32,369 --> 00:00:36,890 gehiago zabal edX bidez, horren bidez Interneten folks zehar jarraitu ahal izango da, 12 00:00:36,890 --> 00:00:39,380 Ikastaroaren ihardun nahiko aktiboki, hain zuzen ere. 13 00:00:39,380 --> 00:00:42,270 Erabiliz egingo dute CS50 Appliance eta CS50 eztabaidatu 14 00:00:42,270 --> 00:00:45,490 eta software hainbat tresna ditugu dagoeneko seihileko hau erabiliz. 15 00:00:45,490 --> 00:00:48,710 Eta ekimen bat on esperimentu gisa hartu behar genuke aurten 16 00:00:48,710 --> 00:00:51,930 besterik ez zenbat edukia itzultzeko ikus dezakegu 17 00:00:51,930 --> 00:00:53,960 hitz egiten eta idatzizko beste hizkuntzetara. 18 00:00:53,960 --> 00:00:57,500 Beraz, bada, proiektu honetan parte hartzeko interesa izan dezaketen 19 00:00:57,500 --> 00:01:02,270 Horren bidez, transkripzioak eta azpitituluak English ikastaroa hitzaldiak emango dugu 20 00:01:02,270 --> 00:01:05,450 eta film laburrak, eta mintegiak eta atal eta antzekoak, 21 00:01:05,450 --> 00:01:08,200 erraz hitz egiten duzu edo erraz beste hizkuntza batzuk idatzi, 22 00:01:08,200 --> 00:01:12,290 maite duzun ihardun nahi dugu proiektu honetan Horren bidez, bideo bat edo gehiago hartu, 23 00:01:12,290 --> 00:01:15,200 itzultzeko hizkuntza bat nahiko ondo ezagutzen duzu. 24 00:01:15,200 --> 00:01:18,700 >> Interfazea zentzu bat emateko, web-oinarritutako erabiltzaile-interfazea 25 00:01:18,700 --> 00:01:22,090 dugun erabiliz egingo duten funtsean atsegin dute hau UI bat sortuko du. 26 00:01:22,090 --> 00:01:24,290 Hau irakasten Halloween duela zenbait me, 27 00:01:24,290 --> 00:01:27,390 eta eskuineko aldean dago, beltzez ordu-/data-zigilua hauen ondoan, 28 00:01:27,390 --> 00:01:31,210 hainbat gauza nire ahoan atera zen egun horretan ikusiko duzu, 29 00:01:31,210 --> 00:01:34,850 eta, ondoren, azpian beste hizkuntza batzuk itzuli ahal izango duzu 30 00:01:34,850 --> 00:01:38,690 zehazki zer mapaketaren artean, kasu honetan, ingelesa eta, esan, gaztelaniaz. 31 00:01:38,690 --> 00:01:40,440 Beraz, benetan da oso user-friendly tresna. 32 00:01:40,440 --> 00:01:43,370 Atzeratzeko eta ditzakezu Aurreratu Oso erraz teklatu-lasterbideak. 33 00:01:43,370 --> 00:01:47,490 Beraz, esperimentu honetan parte hartu ahal izateko, eta nahi duzun zure hitzak ikus eta irakurri 34 00:01:47,490 --> 00:01:51,850 potentzialki milaka daude folks, mesedez sentitzen free parte hartzeko. 35 00:01:51,850 --> 00:01:54,350 Buruz hitz astelehenetik kitten. 36 00:01:54,350 --> 00:02:00,350 Kausituko ditugu bidalitako oso scary mezu bat, ez dela konturatzen, bulego ordu iradokitzen 37 00:02:00,350 --> 00:02:03,300 eta atal gisa gomendatzen da, ikastaroaren diseinua oso 38 00:02:03,300 --> 00:02:07,360 ikasle eta laguntzaile lan hitz egitea arazo multzo bidez 39 00:02:07,360 --> 00:02:11,260 eta arazoak elkarrekin, eta benetan linea besterik ez dator behera, 40 00:02:11,260 --> 00:02:16,010 berriro ere, lana aurkezteko azken finean, duzu zeure izan behar du. 41 00:02:16,010 --> 00:02:18,860 Eta, beraz, nahiko zintzotasunez, bulego orduetan guztiz normala da, 42 00:02:18,860 --> 00:02:22,240 erabat espero dira, nahiz eta, lagun batzuk ondoan duzu txateatzen. 43 00:02:22,240 --> 00:02:24,370 >> Zuen gai batzuekin batera bada, eta borrokan ari den bezalako Oraindik, 44 00:02:24,370 --> 00:02:27,940 "Oh, ondo, utzi dizu me kode lerro batzuk idatzi dut antzematen," hori fina, 45 00:02:27,940 --> 00:02:31,250 gertatzen da, eta hori da, nire ustez, oso aproposa ikaskuntza prozesuan. 46 00:02:31,250 --> 00:02:36,750 Non lerroa erabat zeharkatu sort-burua da hemen baino gehiago tilted segundotan urrun gehiegi 47 00:02:36,750 --> 00:02:41,160 edo benetan minutu besterik ez desblokeatzean aukera bat da zure laguna. 48 00:02:41,160 --> 00:02:44,160 eta, zalantzarik gabe, e-posta eta Dropbox eta antzeko bidez gauzak trukatu, 49 00:02:44,160 --> 00:02:45,640 han ere, lerro da. 50 00:02:45,640 --> 00:02:48,620 Beraz, baliabide guztiak eroso sentitzen, eta animatu lagunekin berriketan 51 00:02:48,620 --> 00:02:52,810 eta ikaskideekin psets eta gehiago eta konturatzen zer esan aurkezteko azken finean 52 00:02:52,810 --> 00:02:57,340 benetan behar zure sorkuntza eta ez beste norbaiten produktua izango da. 53 00:02:57,340 --> 00:03:00,490 Domeinu-pset2 arazo zehatz bat, 54 00:03:00,490 --> 00:03:04,740 berandu Bihar gauean aterako da, kriptografia munduan murgildu da, 55 00:03:04,740 --> 00:03:08,970 informazioa edo enkriptatzeko scrambling artea da, 56 00:03:08,970 --> 00:03:12,600 eta hau, azken finean, munduko segurtasun dagokio. 57 00:03:12,600 --> 00:03:16,560 Orain, gurekin gehienak segurtasun mekanismoak nahiko eguneroko forma dator. 58 00:03:16,560 --> 00:03:19,050 Guztiok Erabiltzaile-izenak eta pasahitzak, 59 00:03:19,050 --> 00:03:23,450 eta guztiok oso txarra izan erabiltzaile-izenak eta pasahitzak, ziurrenik. 60 00:03:23,450 --> 00:03:28,240 >> Pasahitza bera da, hainbat web bada, ziurrenik ez da ideia onena, 61 00:03:28,240 --> 00:03:30,070 seihilekoa amaitu aldera eztabaidatu dugu. 62 00:03:30,070 --> 00:03:34,720 - Txantxa ez al duzu itsaskor ohar bat idatzi zure monitore, 63 00:03:34,720 --> 00:03:38,350 hori ere ez du zertan onena diseinua baina nahiko fenomeno arrunta. 64 00:03:38,350 --> 00:03:42,470 Eta ez bada ari zaren kriptografia erabiliz zure pasahitzak enkriptatzeko, 65 00:03:42,470 --> 00:03:44,210 bereziki zaurgarria dira. 66 00:03:44,210 --> 00:03:47,270 Beraz, bada super ari zaren izatea clever ezkutuko Word dokumentua izatea dela uste duzu 67 00:03:47,270 --> 00:03:49,910 nonbait zure disko gogorrean zure pasahitzak guztiak 68 00:03:49,910 --> 00:03:53,670 baina karpeta bat da, inork ez du begiratu, hori ere ez da oso segurua mekanismo bat. 69 00:03:53,670 --> 00:03:56,990 Eta beraz, zer pset2 egingo aurkeztu kriptografia artea 70 00:03:56,990 --> 00:04:02,010 eta, beraz, informazio scrambling pasahitzak bezalako gauzak dira guztiak segurua. 71 00:04:02,010 --> 00:04:05,790 Testuingurua hemen datuak insecure 72 00:04:05,790 --> 00:04:07,930 enkriptatzeko eta da Scramble aukera bat dator. 73 00:04:07,930 --> 00:04:11,470 Eta, beraz, hau, adibidez, enkriptatutako mezu baten adibide bat da. 74 00:04:11,470 --> 00:04:14,700 Honek ingelesez zerbait dio, baina argi eta garbi, ez da erabat bistako. 75 00:04:14,700 --> 00:04:18,279 Eta full circle etorri dugu gaur egun, zer da hau sekretua here gain tease. 76 00:04:18,279 --> 00:04:23,490 Baina ordenagailu mundu erreala, gauzak ez dira, nahiz eta itxura English esaldiak behar bezala agian. 77 00:04:23,490 --> 00:04:28,430 Esate baterako, hau da, estandar bat da, Linux edo Mac edo UNIX ordenagailu aurki ditzakezun 78 00:04:28,430 --> 00:04:32,070 fitxategi batean Garai batean pasahitzen fitxategia izeneko gainean. 79 00:04:32,070 --> 00:04:34,200 >> Gaur egun beste toki batzuetara mugitu. 80 00:04:34,200 --> 00:04:39,210 Baina sistema bat leku egokian begiratuz gero, ikusiko duzu, ez bakarrik zure erabiltzaile-izen 81 00:04:39,210 --> 00:04:43,400 edo sistemako beste pertsona batzuk, baina beren pasahitza enkriptatu bat ikusiko duzu. 82 00:04:43,400 --> 00:04:47,980 Izan ere, hitza kriptan hor hurrengo stuff enkriptatuta dago, 83 00:04:47,980 --> 00:04:52,680 eta letrak itxuraz ausazko eta pertsonaiak eta zenbakiak serieak eta abar 84 00:04:52,680 --> 00:04:56,480 bakarrik, oro har, sekretu batzuk ezagutu ahal izango desenkriptatu 85 00:04:56,480 --> 00:04:58,840 hitz sekretu bat, zenbaki bat sekretua - 86 00:04:58,840 --> 00:05:03,160 eta, beraz, hain zuzen ere, kriptografia, azken finean, irakiten behera artea Nolabaiteko fidatzen 87 00:05:03,160 --> 00:05:05,650 eta beste norbaitek zerbait ez jakitea. 88 00:05:05,650 --> 00:05:10,090 Beraz, hau esploratzen dugu gaur, eta pixka bat gehiago detail eta pset en etorri. 89 00:05:10,090 --> 00:05:12,200 Eta orain, pass / huts hitz bat. 90 00:05:12,200 --> 00:05:15,360 Batez ere batzuk pset1, Appliance sartu dived 91 00:05:15,360 --> 00:05:19,080 eta zeure burua mundu berri bat, frustrazio eta nahasmena konturatzen 92 00:05:19,080 --> 00:05:21,700 eta zailtasun tekniko besterik ez dira nahiko espero da, 93 00:05:21,700 --> 00:05:24,180 batez ere pset lehen, non ez da hainbeste berri, 94 00:05:24,180 --> 00:05:27,730 besterik ez ezagunak ls eta cd eta arcane komandoak horiek guztiak 95 00:05:27,730 --> 00:05:33,050 eta ingurune berri bat, eta hori da, material benetako eta bere burua Egitarauaz bereizita. 96 00:05:33,050 --> 00:05:36,940 Beraz, konturatu ere ez dira, zalantzarik gabe, bulegoko ordu laguntza egitura bat bezala existitzen. 97 00:05:36,940 --> 00:05:38,880 >> Sailak datozen igande honetan hasiko dira. 98 00:05:38,880 --> 00:05:42,960 Baina garrantzitsuena, ari zaren hori ez da munduko sentitzen bada, 99 00:05:42,960 --> 00:05:44,710 konturatzen benetan du denbora hartu. 100 00:05:44,710 --> 00:05:48,600 Eta aukera hau ez da urte ago me klase sakon bat hartu / huts egin. 101 00:05:48,600 --> 00:05:50,990 zintzotasunez, nahiz eta inoiz ez dut izango litzateke ezarri oinez ikasgelan. 102 00:05:50,990 --> 00:05:53,690 Eta hau aldatu ahal izango duzu, arte esan, ikastaroa astelehenetik bosgarrena, 103 00:05:53,690 --> 00:05:58,280 hala badagokio ertzean Oraindik orain, baizik eta konturatzen baino buru batzuen ur guztira, 104 00:05:58,280 --> 00:06:01,260 ez, zalantzarik gabe, kontuan hartu besterik ez gainditu / huts egin aldatuz. 105 00:06:01,260 --> 00:06:04,570 Berriz ere, ez da benetan kultura hemen Harvard gauzak hartzeko pasa / huts egin 106 00:06:04,570 --> 00:06:08,670 guztiontzat benetan nahi geroztik lortzeko edo overachieve, 107 00:06:08,670 --> 00:06:11,130 baina Egia, zerbait saiatzen izarrekin modu bikaina da 108 00:06:11,130 --> 00:06:16,720 agian ez duzu ezagutzen, eta, azkenean, duzu egiten, kasu gehienetan, oso fina, 109 00:06:16,720 --> 00:06:18,210 agian zure harridurarako askoz. 110 00:06:18,210 --> 00:06:20,980 Hormigoizko gehiago terminoak, zer uste dut, oro har, gainditu / huts egin du, 111 00:06:20,980 --> 00:06:22,940 batez ere pset0 baliteke bizi. 112 00:06:22,940 --> 00:06:26,560 10 ordu, 15 ordu, 25 ordu jarri pset batean 113 00:06:26,560 --> 00:06:29,920 eta besterik ez duzu zure burua banging hormaren kontra eta super lortzean berandu da gauez 114 00:06:29,920 --> 00:06:33,950 baina hartu duzun bidea pset% 90, eta ezin besterik ez duzu ez daki gauza bat, 115 00:06:33,950 --> 00:06:36,520 gainditu / benetan ertzean hartzen off hau atsegin klase bat huts egin, 116 00:06:36,520 --> 00:06:39,100 non ordenatzeko dezakezu zorionez esan, "Ongi da, ez da perfektua ezagutzen dut, 117 00:06:39,100 --> 00:06:42,350 baina nire ipurdian lan egin nuen off hau, non bukatu nahiko pozik nago " 118 00:06:42,350 --> 00:06:44,850 eta horrek itxaropenak bete egingo pass / huts egin. 119 00:06:44,850 --> 00:06:47,540 Beraz, kontuan mantentzeko ez. Guztiak eskubidea. 120 00:06:47,540 --> 00:06:50,520 >> Dutenei borrokatu Harvardeko Unibertsitateko Wi-Fi erabili Beraz, 121 00:06:50,520 --> 00:06:54,780 jakin bat dagoela CS50 SSID, Wi-Fi konexioa, inguruan flotatzen 122 00:06:54,780 --> 00:06:56,490 hobeto zorte izan dezake. 123 00:06:56,490 --> 00:07:00,130 Little ironiko bat da honentzako pasahitza, hau konektatzean saiatu nahi baduzu, gustatuko litzaiguke 124 00:07:00,130 --> 00:07:08,350 12345, modu guztiak eta utzi ez hobea badakizu - abiadura hobea da 8 125 00:07:08,350 --> 00:07:10,910 8 5 baino gehiago segurua delako. 126 00:07:10,910 --> 00:07:16,910 Beraz, behar duzun Wi-Fi pasahitza izanez gero, CS50 konektatu hari hemen, 12345678, 127 00:07:16,910 --> 00:07:20,380 CS50 post eta eztabaidatu aldizkako konektibitatea gaiak baduzu ere, 128 00:07:20,380 --> 00:07:25,420 eta eskumenak espazio honetan jakin dugu. Guztiak eskubidea. 129 00:07:25,420 --> 00:07:32,230 Beraz, azkar bat teaser, bereziki direnek gauzak Apple guztiak fan neska-mutilak edo. 130 00:07:32,230 --> 00:07:37,460 Zer sortu zulatu dut urte batzuk atzera fitxategi hau izan da hemen, iUnlock.c 131 00:07:37,460 --> 00:07:39,930 mota egin zehatzagoak eta konplexuagoak 132 00:07:39,930 --> 00:07:42,560 C oinarrizko programak dira idazten dugu batzuk. 133 00:07:42,560 --> 00:07:46,910 Beraz, fitxategi hau ireki nuen, iUnlock.c. Eskuragarri gaur egun orria Hitzaldiak on da. 134 00:07:46,910 --> 00:07:49,810 Ezkerraldean On funtzioen zerrenda luze bat ikusten duzu. 135 00:07:49,810 --> 00:07:53,230 Beraz, nork idatzi hau idatzi fellow funtzio asko, just nagusia baino gehiago. 136 00:07:53,230 --> 00:07:57,340 Liburutegi sorta osoa bat erabili zuen hemen, eta hasten badugu scrolling bidez, 137 00:07:57,340 --> 00:08:04,890 hau benetan da jatorrizko iPhone, nire ustez, oso crack lehen. 138 00:08:04,890 --> 00:08:09,830 >> Jatorrizko iPhone jailbreak nahi duzun untether AT & T esan nahi du, eta horrek 139 00:08:09,830 --> 00:08:13,710 eta benetan berezia software instalatu eta Apple ez duten pertsonek egin nahi gauzak egin, 140 00:08:13,710 --> 00:08:18,480 norbait izan denbora irudikatu zehazki nola software flaws ustiatu izan dute, 141 00:08:18,480 --> 00:08:22,690 akatsak, bugs, Apple software, eta, horrela, jaio zen iUnlock.c-- 142 00:08:22,690 --> 00:08:26,760 konpilatu baduzu, zure ordenagailuan eta iPhone bat gainean instalatu 143 00:08:26,760 --> 00:08:29,430 izan zen, adibidez, USB kable baten bidez zure ordenagailuan konektatuta 144 00:08:29,430 --> 00:08:32,450 luke administrazio edo zure iPhone root pribilegioak 145 00:08:32,450 --> 00:08:34,620 eta utzi pretty askoz ere nahi duzuna egin duzu. 146 00:08:34,620 --> 00:08:36,400 Eta beraz, ez da hau liluragarriak katua eta saguaren joko 147 00:08:36,400 --> 00:08:39,340 Apple eta munduko gainerako bereziki gisa artean, enpresa askok bezala, 148 00:08:39,340 --> 00:08:43,350 saiatu beren stuff blokeatu behera, beraz, besterik ez dezakezu egin dutena asmoa. 149 00:08:43,350 --> 00:08:47,360 Baina hau atsegin dute eta behe-mailako xehetasunak ulertzeko esker 150 00:08:47,360 --> 00:08:50,830 eta, kasu honetan C programazio eta asko ezagutzen eraikuntzen 151 00:08:50,830 --> 00:08:55,280 Behin hasi ginen jolasten, gai benetan hardware leverage 152 00:08:55,280 --> 00:08:59,250 modu egoki eta ez erakunde batzuk derrigorrez ikusiko duzu. 153 00:08:59,250 --> 00:09:01,600 Horrela, esate baterako, ideia ez daukat zer hori guztia egiten ari da, 154 00:09:01,600 --> 00:09:03,580 baina GetVersion nahiko erraza dirudi, 155 00:09:03,580 --> 00:09:05,710 eta funtzio bat pertsona hori idatzi dirudienez. 156 00:09:05,710 --> 00:09:09,250 Argumentu gisa osokoa mota batzuk behar izaten ditu, ez du ezer egin, 157 00:09:09,250 --> 00:09:13,710 baina begizta begizta hemen eta baldintza izanez gero, egoera break bada, agertzen 158 00:09:13,710 --> 00:09:16,770 eta, nolabait, bertsio zenbakiak behera joan gara, 159 00:09:16,770 --> 00:09:19,650 nahiz eta hitz hauetako asko berriak izango dira. 160 00:09:19,650 --> 00:09:22,590 Eta hemen funtzio asko ez dugu inoiz ikusi, eta agian ez du inoiz ikusi 161 00:09:22,590 --> 00:09:24,350 seihilekoan zehar. 162 00:09:24,350 --> 00:09:29,160 >> Egunaren amaieran, arauak eta logika berean jarraitzen du, izan ditudan dugu, beraz, orain arte jolasten. 163 00:09:29,160 --> 00:09:34,340 Beraz, hau da, orain arte zaharregia zure iPhone 4S edo laster 5s 3s edo egun hauetan crack, 164 00:09:34,340 --> 00:09:38,830 baina hori guztia mundu honetan oso eratorritako ditudan sartu dived. 165 00:09:38,830 --> 00:09:42,280 Ikus dezagun begirada apur bat gehiago adibide erraz bat: 166 00:09:42,280 --> 00:09:46,260 ko honetan, berotu ahal izateko sintaxia batzuekin batera, eta, gainera, beste zenbait datu-mota 167 00:09:46,260 --> 00:09:48,910 Nik ez dugu hitz egin, baina ez, benetan C. ikusi 168 00:09:48,910 --> 00:09:53,670 Izeneko fitxategi bat positive1.c da, eta goialdean iruzkinak bakoitzeko, 169 00:09:53,670 --> 00:09:56,070 hori eskatzen du, erabiltzaile bat ematen duten zenbaki positibo bat. 170 00:09:56,070 --> 00:09:59,910 Beraz, loop do-bitartean, hau da, erabiltzaileak programa interaktibo nice adibide bat da 171 00:09:59,910 --> 00:10:02,070 non erabiltzaileari esan behar duzu zerbait egin, 172 00:10:02,070 --> 00:10:05,530 eta ez badira ez kooperatu Yell horiek edo haien sarrera ukatzeko. 173 00:10:05,530 --> 00:10:10,480 Puntu Case: lerroak egiteko 19 24 bidez dut 174 00:10:10,480 --> 00:10:14,620 hain luze, erabiltzaileak ez du zenbaki positibo bat eman dit. 175 00:10:14,620 --> 00:10:21,340 Xehetasun hau hemen on line 18, zergatik n deklaratzeko I begizta honetan guztian eraikitzeko gainetik 176 00:10:21,340 --> 00:10:26,870 ondoan line 22 non benetan axola I n aurrean? Bai. 177 00:10:26,870 --> 00:10:29,330 [Ikasleak] Scope. >> Bai, eta, beraz, esparrua gai honetan. 178 00:10:29,330 --> 00:10:31,770 Eta layman bere terminoetan, zer ez esparrua ikus? 179 00:10:34,880 --> 00:10:41,560 Bai. >> [Inaudible ikaslearen erantzuna] >> apur bat ozenago hitz egiten duzu? 180 00:10:41,560 --> 00:10:45,440 [Ikasleak] Non aldagai hori eskuratu ahal izango duzu. >> Perfect. 181 00:10:45,440 --> 00:10:47,610 Non bereziki aldagai bat sartu ahal izango duzu. 182 00:10:47,610 --> 00:10:50,990 Eta, oro har, arau, beraz, orain arte izan da aldagai batzuen esparrua 183 00:10:50,990 --> 00:10:56,140 kizkur berrienak giltza duzula ikusi definitzen da. 184 00:10:56,140 --> 00:11:03,070 >> Eta, beraz, kasu honetan, n geratuko line 22 oker egin nuen bada, lerro horretan lan egiteko. 185 00:11:03,070 --> 00:11:10,840 Int bat lortu nahi dut, eta ipini nahi dut, hori aldakorra n sartu line 22 186 00:11:10,840 --> 00:11:17,060 baina kode-lerro izan ez daki zertaz ari naiz? >> [Ikasleak] 25. 187 00:11:17,060 --> 00:11:23,840 [Malan 25], eta bihurtzen da, 24 baita, kasu honetan, kizkur giltza kanpo delako. 188 00:11:23,840 --> 00:11:28,550 Beraz, apur bat gogaikarriak pixka bat, baina oso erraz, besterik gabe, aldakorra geratuko konpondu 189 00:11:28,550 --> 00:11:30,700 funtzioa bera kanpo. 190 00:11:30,700 --> 00:11:32,760 Geroago, gaur egun ikusi dugu pauso bat gehiago dezakezu 191 00:11:32,760 --> 00:11:34,940 eta apur bat alferrak ahal izango duzu ere. 192 00:11:34,940 --> 00:11:39,660 Eta hori ez da, oro har, gomendatzen da, baina ezin duzu alferrak 193 00:11:39,660 --> 00:11:44,150 eta aldagai bat jarri orokorrean, beraz, hitz egiten ez barruan funtzio bat, ez begizta barruan, 194 00:11:44,150 --> 00:11:49,800 baina fitxategia bera, funtzio guztiak kanpo idazten duzunean, egin nuen hemen 15 on line. 195 00:11:49,800 --> 00:11:55,220 Hau da, oro har, frowned gainean, baina konturatzen batzuetan arazoak beste irtenbide bat da, 196 00:11:55,220 --> 00:11:56,910 dugu azkenean ikusi. 197 00:11:56,910 --> 00:11:59,500 Beraz, orain utziko dugu hau atsegin dute, baina hau berridatzi bada ikus dezagun 198 00:11:59,500 --> 00:12:02,360 geure burua adierazteko apur bat ezberdina izan hasteko. 199 00:12:02,360 --> 00:12:05,550 Programa honek, besterik gabe, argi eta garbi, positive1 da. 200 00:12:05,550 --> 00:12:11,980 Dezagun aurrera me hemen, eta nire terminal-leiho batean positive1 egiteko, Sartu. 201 00:12:11,980 --> 00:12:15,080 Biltzen ados. Positive1 exekutatzeko, sakatu Sartu noa. 202 00:12:15,080 --> 00:12:19,250 Eman duzun zenbaki oso positibo bat eskatzen dut. Esan -1 dut. Hau ez da lan egiteko. 203 00:12:19,250 --> 00:12:22,340 0, 99. Badirudi lan egiteko. 204 00:12:22,340 --> 00:12:25,310 Agian ez test zorrotzak, baina, gutxienez, behatu check polit bat da 205 00:12:25,310 --> 00:12:27,100 eskuineko pista Oraindik dugu. 206 00:12:27,100 --> 00:12:29,570 >> Beraz, gaur egun utzi aurrera me eta 2 bertsioa ireki hau, 207 00:12:29,570 --> 00:12:32,800 eta zer desberdina da dagoeneko? 208 00:12:32,800 --> 00:12:39,030 Gauza bera inplementatzen ditu,, baina zer jauzi denbora argi eta garbi desberdina hau? 209 00:12:40,790 --> 00:12:47,090 Berdez boolearra. Berdea, bezala ezagutzen nuen, eta datu-mota bat da hitz hori nabarmentzen da. 210 00:12:47,090 --> 00:12:50,510 Etortzen ez C. bertsio guztiak eraiki 211 00:12:50,510 --> 00:12:52,650 Berariazko liburutegi bat sartu behar duzu. 212 00:12:52,650 --> 00:12:56,460 Gure kasuan, CS50 liburutegia barne dut, beraz, boolearra sarbidea dugu. 213 00:12:56,460 --> 00:12:59,860 Baina, 18 linea, balio bat Boolean deitzen eskertu izan dirudi dugu. 214 00:12:59,860 --> 00:13:02,190 Ezer deitu nuen, baina asko eskertzen izeneko I 215 00:13:02,190 --> 00:13:04,750 mota transmititzea semantikoa esanahia batzuk. 216 00:13:04,750 --> 00:13:07,700 Beraz, hasiera batean, on line 18, itxuraz naiz ez asko eskertzen 217 00:13:07,700 --> 00:13:12,230 boolear balioa asko eskertzen da hasieratu delako line 18 ezezkoan. 218 00:13:12,230 --> 00:13:16,500 Eta gero, zer egin dut hemen, lineak 21 23 bidez badirudi 219 00:13:16,500 --> 00:13:19,200 da, besterik gabe mota berridatzi dut nire logika. 220 00:13:19,200 --> 00:13:26,100 Ez funtzionalki desberdinak Beraz, baina line 22 int, erabiltzaileak emandako egiaztatzeko I 221 00:13:26,100 --> 00:13:31,360 0 baino handiagoa da, eta, ondoren, aldatu besterik ez dut, egia asko eskertzen du balio. 222 00:13:31,360 --> 00:13:35,590 Eta zergatik egin behar dut? Line 25 dela eta, itxuraz, baldintza bat ikusteko noa. 223 00:13:35,590 --> 00:13:39,760 Do begizta hau asko eskertzen faltsua bitartean. 224 00:13:39,760 --> 00:13:42,960 Beraz, version 1 alternatiba hau proposatu dut 225 00:13:42,960 --> 00:13:47,050 da gutxienez apur bat intuitiboago delako, agian, apur bat gehiago ingelesez oinarritutako da. 226 00:13:47,050 --> 00:13:51,980 Beraz, honako hauek egiten ari zaren bitartean asko eskertzen du edo eskertzen faltsua bitartean. 227 00:13:51,980 --> 00:13:56,220 Eta une honetan ere ez itxuraz ez dut axola zer Erabiltzaile idatzitako gogoratu 228 00:13:56,220 --> 00:14:00,050 oharra n aldakorra delako, ez dago, eta, beraz, benetan, zuri apur bat gezur han. 229 00:14:00,050 --> 00:14:03,290 >> Funtzionalki, programa pixka bat desberdina da beheko gara behin 230 00:14:03,290 --> 00:14:04,960 dut ez delako zer n gogoratzeko. 231 00:14:04,960 --> 00:14:09,120 Baina hemen erakusteko nahi dut ere, nahiz eta ikusi dugu GetInt 232 00:14:09,120 --> 00:14:13,780 eta GetString baten eskuinaldean erabili berdin ikurra, beraz, orain arte 233 00:14:13,780 --> 00:14:17,310 gogoratzen dugun balioa, teknikoki, hori ez da erabat beharrezkoa. 234 00:14:17,310 --> 00:14:20,290 Edozein arrazoi dela eta ez besterik ez duzu axola balioa gorde nahi baduzu, 235 00:14:20,290 --> 00:14:25,540 nahi besterik ez duzu balioa egiaztatzeko, nabarituko dugu, besterik gabe, idatzi hau GetInt gisa, 236 00:14:25,540 --> 00:14:27,320 irekita paren, paren itxi. 237 00:14:27,320 --> 00:14:30,570 Funtzioa balio bat itzuli behar dugu, bezala esaten. 238 00:14:30,570 --> 00:14:32,220 Itzuli int bat da. 239 00:14:32,220 --> 00:14:34,460 Eta, beraz, adimen-happening honen ustez, 240 00:14:34,460 --> 00:14:38,190 idatzi 99 I, GetInt kopurua 99 itzultzen du, 241 00:14:38,190 --> 00:14:41,840 eta, beraz, kontzeptu gisa, nahiz eta nire kode ziren benetan da. 242 00:14:41,840 --> 00:14:45,950 Beraz, bada 99 0 baino handiagoa da, hain zuzen, eta gero asko eskertzen du egia bihurtzen da, 243 00:14:45,950 --> 00:14:50,810 ondoren line 25 konturatuko ooh Bukatutakoan naiz orain delako asko eskertzen du, 244 00:14:50,810 --> 00:14:53,970 eta line 26, esan besterik ez dugu ", zenbaki oso positibo Eskerrik asko!" 245 00:14:53,970 --> 00:14:55,960 edozein dela ere gertatu da. 246 00:14:55,960 --> 00:14:59,140 Orain egin dezagun azukre apur sintaktikoak hemen, eta, beraz, hitz egiten. 247 00:14:59,140 --> 00:15:04,670 Ikus dezagun sortu dugu garbitzeko bada lerro hau 25 aldaera hau hirugarren eta azken positive3. 248 00:15:04,670 --> 00:15:13,600 >> Iragarki Ezberdintasun bakarra da kode line? >> [Ikasleak] 25. >> [Malan] Bai, 25. 249 00:15:13,600 --> 00:15:17,680 Eta ez dugu benetan trikimailu hau ikusi besterik ez oraindik, baina puntu astelehena harridura ikusten genuen, 250 00:15:17,680 --> 00:15:21,070 zein lu byte irakurtzerakoan zer? >> [Ikasleak] gabe. >> Not edo ukatzea. 251 00:15:21,070 --> 00:15:23,510 Beraz, boolearrak balio bat hartu, eta bere balioa irauli. 252 00:15:23,510 --> 00:15:25,810 True bihurtzen faltsuak, faltsua egia bihurtzen da. 253 00:15:25,810 --> 00:15:30,420 Hau Beraz, proposatuko nuke, eta, are gehiago, kodea idatzi apur bat gehiago intuizioz da 254 00:15:30,420 --> 00:15:33,430 oraindik I hasieratu delako faltsua asko eskertzen du, oraindik ez dut honako hau, 255 00:15:33,430 --> 00:15:36,010 Egia asko eskertzen ezarri dut denbora ateratzen denean, 256 00:15:36,010 --> 00:15:40,880 baina orain benetan dezakezu besterik ez itzultzeko kodea hitzez ezkerretik eskuinera, 257 00:15:40,880 --> 00:15:45,630 bitartean (asko eskertzen du!); delako bang edo harridura puntu ez ideia adierazten du, 258 00:15:45,630 --> 00:15:47,580 beraz, ez eskertzen bitartean. 259 00:15:47,580 --> 00:15:49,900 Beraz, berriro ere, ez dugu berez kontzeptu berriak sartu. 260 00:15:49,900 --> 00:15:53,730 Hitz Booleans gara itzuli jokatu Scratch dugu, 261 00:15:53,730 --> 00:15:56,720 baina gaur egun konturatzen bakarrik hasi ahal izango dugu gure kodea idaztea hainbat modutan. 262 00:15:56,720 --> 00:16:01,060 Beraz, batez ere, pset1 Oraindik programa batzuk idatzi irudikatu modu borrokan sort izanez gero, 263 00:16:01,060 --> 00:16:04,340 odds Oraindik zorte duzun irtenbideak kopurua edozein izan daitekeelako 264 00:16:04,340 --> 00:16:06,110 gainean gertatuko ditzakezun. 265 00:16:06,110 --> 00:16:10,500 Esate baterako, hori besterik ez da, are gehiago, programak errazena 3. Guztiak eskubidea. 266 00:16:10,500 --> 00:16:14,200 Eta orain gogoratzen, astelehena, utzi ohar hau dugu bueltan balio. 267 00:16:14,200 --> 00:16:18,450 Beraz, lehen aldiz, oso programa bat idatzi dugu, ez besterik ez nagusia; 268 00:16:18,450 --> 00:16:22,550 ere badu bere funtzioa idatzi dut hemen pertsonalizatua. 269 00:16:22,550 --> 00:16:26,810 Beraz line 31 34 bidez ezarri dut kubo funtzio bat. 270 00:16:26,810 --> 00:16:30,240 Ez da konplexua. Besterik ez da * a * a kasu honetan. 271 00:16:30,240 --> 00:16:34,750 Baina, zer buruzko informazio garrantzitsu sarrera naiz duten I forma hartzen 272 00:16:34,750 --> 00:16:39,180 eta irteerako dut itzuli * a * a. 273 00:16:39,180 --> 00:16:43,560 Beraz, gaur egun gaitasuna daukat, askoz ere erabili dut prinf bakarrik bezala, 274 00:16:43,560 --> 00:16:47,240 kubo funtzioa deitzen funtzio hau deitu. 275 00:16:47,240 --> 00:16:51,970 >> Eta kubo funtzioa sarrera bat hartzen du, eta irteera batzuk kubo funtzioa itzultzen du. 276 00:16:51,970 --> 00:16:56,960 Por el contrario, zerbait egin printf besterik ez. 277 00:16:56,960 --> 00:17:00,840 Ez da ezer itzuliko zaintzen dugula, nahiz eta bat alde batera utzita, balio bat itzuli du; 278 00:17:00,840 --> 00:17:03,110 oro har nahikoa da alde batetara utzi dezakezu. 279 00:17:03,110 --> 00:17:06,510 Printf besterik ez zerbait egin dute. Pantaila inprimatzeko albo efektu bat izan da. 280 00:17:06,510 --> 00:17:11,770 Kontrastea hemen, kubo funtzioa, benetan itzultzen du zerbait egin behar dugu. 281 00:17:11,770 --> 00:17:15,520 Beraz, hau ezagutzen, nahiko erraza da ideia bat da. 282 00:17:15,520 --> 00:17:19,640 Baina input pasatzen atzera eta irteerak lortzean ideia honekin ezagutzen gutxiago, 283 00:17:19,640 --> 00:17:21,950 dezagun saiatu zerbait super simple. 284 00:17:21,950 --> 00:17:25,490 Edozeinek erosoa da datozen etapa labur-labur? 285 00:17:25,490 --> 00:17:28,040 Kamera batekin eroso egon baita behar duzu. Bai? Ongi da. 286 00:17:28,040 --> 00:17:31,240 Zein da zure izena? >> [Ikasleen] Ken. >> Ken. Guztiak eskubidea. Ken, zatoz gora. 287 00:17:31,240 --> 00:17:35,050 Ken hemen era askotako funtzio bat izango du. 288 00:17:35,050 --> 00:17:38,720 Dezagun aurrera, eta hori egin. Gaitezen apur fancy bat. 289 00:17:38,720 --> 00:17:42,260 Niza zu ezagutzeaz. Ongi etorri zentro etapa. Guztiak eskubidea. 290 00:17:42,260 --> 00:17:46,640 Dezagun, sakatu botoi hau hemen. Guztiak eskubidea. 291 00:17:46,640 --> 00:17:49,820 Beraz, hemen Edukien moderno bat behar duzu, 292 00:17:49,820 --> 00:17:53,470 eta zer naiz funtzio nagusia da, esate baterako, 293 00:17:53,470 --> 00:17:56,460 eta nik ez dut nire eskua iPad bat. 294 00:17:56,460 --> 00:17:59,710 >> Ez dut gogoratzen nola - Beno, ezin dut esan. 295 00:17:59,710 --> 00:18:02,480 Ez dut benetan ona idazkera 296 00:18:02,480 --> 00:18:05,520 eta, beraz,, beraz niretzat pantaila zerbait inprimatu nahi dut. 297 00:18:05,520 --> 00:18:12,040 Programa nagusia naiz, batez ere, eta hau esan duzu noa 298 00:18:12,040 --> 00:18:16,720 nire oilasko hutsetik idazten, eta, ondoren, sarrera bat pasatuz. 299 00:18:16,720 --> 00:18:20,400 Beraz, silly ariketa hau da, nahiz eta, funtzio kontzeptua eta funtzio bat deituz 300 00:18:20,400 --> 00:18:22,400 eta funtzio bat benetan irakiten itzuli hau. 301 00:18:22,400 --> 00:18:26,260 Nagusia naiz, besterik ez dut printf, aurrekontu-unquote zerbait idatzi pantailan, 302 00:18:26,260 --> 00:18:29,110 Programa hau exekutatzen ari naiz, eta ahalik eta azkarren printf izeneko lortzen, 303 00:18:29,110 --> 00:18:32,880 argumentu bat hartzen du, edo parametro bat batzuetan komatxo artean. 304 00:18:32,880 --> 00:18:35,880 Hemen argumentua da. Pasatzen dut Ken. 305 00:18:35,880 --> 00:18:39,020 Zenbakia Duela zenbait urte idatzia kutxa beltza da 306 00:18:39,020 --> 00:18:41,510 itxuraz bakarrik daki nola inprimatu pantailan gauzak. 307 00:18:41,510 --> 00:18:43,150 Beraz, exekutatu. 308 00:18:49,280 --> 00:18:51,280 Hori ez da txarra. Oso ona. 309 00:18:51,280 --> 00:18:55,510 Beraz, gaur egun, Ken egiten da exekutatzen ari da. Ez du ezer didate itzuli behar zuen? 310 00:18:55,510 --> 00:18:57,470 Ez dela ikusten dugu, beraz, oso urrun. 311 00:18:57,470 --> 00:19:00,460 Berriz ere, printf ez benetan itzultzeko zenbaki bat, baina oraingoz hori alde batetara utzi dugu 312 00:19:00,460 --> 00:19:03,470 Nik ez dugulako inoiz erabili. Beraz, Ken da. 313 00:19:03,470 --> 00:19:08,580 , Eta, beraz, gaur egun nagusia, programaren kontrola hartzen du berriro 314 00:19:08,580 --> 00:19:11,060 kode-lerro horretan, printf delako, egiten da exekutatzen ari da. 315 00:19:11,060 --> 00:19:14,050 Eta gure bidean joan gara, beste edozein lerro daude exekutatzean. 316 00:19:14,050 --> 00:19:17,320 Beraz, gaur egun dezagun saiatu apur bat beste adibide bat. 317 00:19:17,320 --> 00:19:24,940 Oraingo honetan, hemen utzi lehen pantaila garbitu, eta une honetan cubing funtzioa egin dugu, 318 00:19:24,940 --> 00:19:27,080 baina oraingo honetan, irteera balio bat espero dut. 319 00:19:27,080 --> 00:19:29,180 >> Beraz, dezagun aurrera, eta hori egin. 320 00:19:29,180 --> 00:19:35,790 Orain, kode lerro dioen x x kubo lortzen daukat. 321 00:19:41,370 --> 00:19:46,370 The kodearen line, abisuaren, itxura hau du: x = kubo (x); 322 00:19:46,370 --> 00:19:50,930 Beraz, zer da hau? Dezagun aurrera eta pantaila bat emango dizu zuri berriro. 323 00:19:50,930 --> 00:19:54,070 Idazteko x balioa noa 324 00:19:54,070 --> 00:20:01,400 denbora une honetan gertatzen da izango, demagun, 2 simple mantentzeko. 325 00:20:01,400 --> 00:20:06,150 Idatzi dut paper 2 balioa, nire balioa x. 326 00:20:06,150 --> 00:20:10,920 Entregatu I Ken. >> Eta nik idatzi erantzuna? >> Bai, dezagun erantzuna idatzi. 327 00:20:12,760 --> 00:20:18,940 Ongi da. Eta orain me itzultzeko zerbait du. Perfect. Niza segue. 328 00:20:18,940 --> 00:20:23,120 Beraz, gaur egun me eskuak zuen atzera 8 balioa kasu honetan, eta zer egin dut? 329 00:20:23,120 --> 00:20:28,250 Egia esan dezagun ikusteko, eskubide hori lortzeko. Zer da egin behar dut? 330 00:20:28,250 --> 00:20:33,440 Orain balio hau hartu eta, benetan, gordetzeko memoria bera bit horietan noa. 331 00:20:33,440 --> 00:20:35,170 Baina hemen borrokan ari den mota konturatu naiz. 332 00:20:35,170 --> 00:20:38,210 Apur bat nahastu naiz non ez idazteko delako benetan I x balioa, 333 00:20:38,210 --> 00:20:43,150 zer fisikoki eskuko Ken 2 balioa izan duen paper bat besterik ez dut egin delako, 334 00:20:43,150 --> 00:20:46,590 den x izan zen, eta, hain zuzen ere, hori da, hain zuzen, zer gertatu zen. 335 00:20:46,590 --> 00:20:50,210 Beraz, izarrekin bihurtzen da, funtzioa deitu eta argumentu bat pasatzen duzu 336 00:20:50,210 --> 00:20:53,290 kaixo bezala, mundu edo argumentu bat pasatzen duzu 2 bezala, 337 00:20:53,290 --> 00:20:57,110 , oro har,, argumentu horren kopia bat pasatzen ari zaren. 338 00:20:57,110 --> 00:21:00,730 Eta, beraz, bezala idatzi nuen hemen kopurua 2 eta entregatu to Ken 339 00:21:00,730 --> 00:21:04,720 hori oraindik daukat balioa 2 kopia bat nonbait esan behar 340 00:21:04,720 --> 00:21:08,890 hain zuzen ere, gaur egun ahaztuak ditudan atzera balioa 8 izango delako, atzera joateko RAM behar dut 341 00:21:08,890 --> 00:21:12,130 eta benetan idatzi 8 I once kopurua 2. 342 00:21:12,130 --> 00:21:16,950 Beraz, ikusmen, gogoratu pasatuz, literalki, balioa kopia bat ideia hau. 343 00:21:16,950 --> 00:21:20,780 >> Ken du bere gauza, nirekin zerbait - Kasu honetan 8 bezalako balio bat 344 00:21:20,780 --> 00:21:24,980 eta, ondoren, balio duten zerbait egin behar dut eta nahi dut mantentzeko inguruan. 345 00:21:24,980 --> 00:21:29,650 Beraz, hori guztia atzera etorriko da luzeegia aurretik ezagutu behar dira. 346 00:21:29,650 --> 00:21:34,920 Eskerrik asko demo hau hemen, Ken. [Txalo] 347 00:21:34,920 --> 00:21:36,920 Oso ondo egiten da. 348 00:21:36,920 --> 00:21:42,690 Dezagun nola, azken finean, funtzio ditudan dugu hemen egiten deituz batzuk ikus-en. 349 00:21:42,690 --> 00:21:47,910 Dezagun aurrera eta gurekin eraman itzuli cubing adibidez hemen. 350 00:21:47,910 --> 00:21:53,300 Ohartu nahi dugu, benetan hasteko gehiago nahi izanez gero hau hartzen bada, 351 00:21:53,300 --> 00:21:57,570 Izan ere, kopurua x ari den hemen pasa mindful izan behar dugu 352 00:21:57,570 --> 00:22:01,530 zer benetan pasa ari funtzioa desberdina da. 353 00:22:01,530 --> 00:22:05,880 Beraz, berriro ere, kopia pass hau da, une bat besterik ez nahiko germane bihurtu. 354 00:22:05,880 --> 00:22:09,580 Dezagun begirada bat zerbait ez nahiko lan egiteko eskubidea oraindik. 355 00:22:09,580 --> 00:22:13,250 Aurretik joan eta hirugarren buggy Adibidez, izaera flawed ireki noa, 356 00:22:13,250 --> 00:22:18,550 eta deitzen buggy3 eta, aldaketa funtzio bat ezartzen du. 357 00:22:18,550 --> 00:22:25,110 Hona hemen funtzio nagusia dela x eta y arbitrarioki 1 eta 2 hasieratu, hurrenez hurren egin behar dugu. 358 00:22:25,110 --> 00:22:27,700 Erabili izan GetInt dugu,, baina simple ariketa bat besterik ez dugu behar, 359 00:22:27,700 --> 00:22:30,170 beraz, 1 eta 2 hard-kodetuak da. 360 00:22:30,170 --> 00:22:35,340 21 eta 22 lerro, inprimatu itxuraz dugu x eta y, lerro bakoitzeko 1. 361 00:22:35,340 --> 00:22:39,720 Gero, 23 on line, balio aldaketa horiek naiz, dot, dot, dot aldarrikatzen dut. 362 00:22:39,720 --> 00:22:44,170 24 izenekoa swap 2 argumentu lerro bat funtzioa deitzen dut, itxuraz. 363 00:22:44,170 --> 00:22:48,300 Erabat egiaztatzeko funtzioak 2 argumentu hartzeko. Printf egin du dagoeneko ikusi dugu. 364 00:22:48,300 --> 00:22:51,830 >> Beraz, swap itxuraz hartzen x eta y, eta bere izena dioen bezala, 365 00:22:51,830 --> 00:22:54,670 Espero duela 2 balio horiek swap egingo nuke. 366 00:22:54,670 --> 00:23:00,090 Orduan diotenez, on line I 25 "truka!" eta x eta y berriz ere inprima I 367 00:23:00,090 --> 00:23:03,070 hipotesi Nik, egia esan, truka pean. 368 00:23:03,070 --> 00:23:06,080 Baina, egia esan, I exekutatu programa hau ireki me terminal-leiho bat, 369 00:23:06,080 --> 00:23:09,860 utzi buggy3 egiteko me izen gisa iradokitzen du, hau da, ez dago ondo amaitzeko 370 00:23:09,860 --> 00:23:15,770 Sartu hit I, konturatu x 1, 2 y delako da, 371 00:23:15,770 --> 00:23:19,420 Programaren amaieran eta oraindik, oraindik dira, hain zuzen ere, gauza bera. 372 00:23:19,420 --> 00:23:22,960 Beraz, manifestazioaren oinarritzen oraintxe Ken, zer ari den benetan gertatzen ari da? 373 00:23:22,960 --> 00:23:28,710 Dezagun trukatzeko funtzio honetan sartu murgiltzeko. Super laburra da. Bakarrik da kodea luze lerro batzuk. 374 00:23:28,710 --> 00:23:34,520 Baina, zer esan hemen Ken istorioa simple oinarritutako funtsezko arazoa? 375 00:23:34,520 --> 00:23:36,670 Zergatik hautsi da swap? 376 00:23:36,670 --> 00:23:39,660 [Ikasleak] kopia bat, ez da aldagaia gordetzeko ari zara. 377 00:23:39,660 --> 00:23:43,980 Hain zuzen ere. Kopia bat ari gara, gordetzeko ez da aldagaia bera. 378 00:23:43,980 --> 00:23:47,170 Beste era batera esanda, swap itxuraz 2 argumentu, int, 379 00:23:47,170 --> 00:23:49,370 eta arbitrarioki eta b deitzen, 380 00:23:49,370 --> 00:23:54,420 eta hemen x eta y dira, hurrenez hurren, 1 eta 2. dut gainditu, 381 00:23:54,420 --> 00:23:58,770 baina ez dut literalki x igarotzean, ez dut literalki y pasatuz, 382 00:23:58,770 --> 00:24:01,450 X eta y kopia bat kopia pasatzen dut. 383 00:24:01,450 --> 00:24:04,510 Da ia, nahiz eta gisa eta kopiatu swap itsatsi 384 00:24:04,510 --> 00:24:07,810 balioak benetan manipulatu nahi duzun. 385 00:24:07,810 --> 00:24:14,480 Beraz, bada, kasu, line programa Irteeran I exekutatzean 35 ondoren, 36, 386 00:24:14,480 --> 00:24:18,650 line 37 I, istorioa Puntu honetan, zer baten balioa? 387 00:24:21,040 --> 00:24:25,050 Istorioa Puntu honetan, line 37, zer baten balioa puntu honetan da? >> [Ikasleak] 1. 388 00:24:25,050 --> 00:24:29,280 [Malan] besterik ez izan behar da 1, eskuinera, x lehen argumentua onartu zen delako, 389 00:24:29,280 --> 00:24:33,080 eta funtzio hau bere lehen argumentu bat besterik ez arbitrarioki deituz. 390 00:24:33,080 --> 00:24:38,200 Era berean, bigarren argumentua Y da, eta besterik ez da arbitrarioki, bigarren argumentua b deituz. 391 00:24:38,200 --> 00:24:40,990 >> Dikotomia hori benetan nahiko besterik gabe, azaldu du. Pentsatu. 392 00:24:40,990 --> 00:24:43,320 Gurekin ez nork idatzi printf pertsona bildu, 393 00:24:43,320 --> 00:24:50,770 beraz, ziur aski, berak ez daki zer gure aldagai 30 urte geroago deitzen zaie egingo du. 394 00:24:50,770 --> 00:24:56,650 Beraz, zer deitu funtzioak idazten ari zaren aldagai arteko bereizketa bat izan du 395 00:24:56,650 --> 00:25:02,080 eta zer funtzio edo deitzen ari zaren erabiliz aldagai deitu. 396 00:25:02,080 --> 00:25:05,340 Beraz, beste era batera esanda, idatzizko dut nire aldagai x eta y 397 00:25:05,340 --> 00:25:08,890 baina beste norbaitek idatzi zuen swap funtzioa zuen, zalantzarik gabe, ez luke jakin 398 00:25:08,890 --> 00:25:10,690 nire aldagaiak deitzen dira egingo, 399 00:25:10,690 --> 00:25:13,830 beraz, zergatik duzu izen dualtasun hori dela konturatzen. 400 00:25:13,830 --> 00:25:16,750 Teknikoki, hau egin izan nuen, kasualitatez, 401 00:25:16,750 --> 00:25:20,080 baina, hala ere kopia gisa pasa da. 402 00:25:20,080 --> 00:25:23,650 Besterik ez litzateke kasualitatea hutsa izan estetikoki idatzi duten swap 403 00:25:23,650 --> 00:25:26,150 zuen izen bera erabili. 404 00:25:26,150 --> 00:25:32,370 Beraz, istorioa Puntu honetan, line 37, 1, b 2 da, eta gaur egun horietako swap jarraitu dut. 405 00:25:32,370 --> 00:25:34,900 Lehenik eta behin, utzi benetan me hau askoz gehiago, besterik gabe. 406 00:25:34,900 --> 00:25:36,690 Ez dakit zer 3 kode lerro horiek egiten. 407 00:25:36,690 --> 00:25:41,210 Do me honetan: b = a, a = b; egiten da. 408 00:25:41,210 --> 00:25:44,690 Zergatik da hondatutako, logikoki? 409 00:25:46,490 --> 00:25:48,900 Intuitiboa gauza mota da, ezta? 410 00:25:48,900 --> 00:25:52,560 Horrela, bihurtzen da b eta b bihurtzen da bat, 411 00:25:52,560 --> 00:25:57,730 baina arazoa da, ahalik eta azkarren line 37 exekutatzen dela, eta b balio? 412 00:25:57,730 --> 00:26:03,410 Bera, 1, clobbered delako, eta, beraz, hitz egiten, aldatu dituzun b bat berdinak. 413 00:26:03,410 --> 00:26:08,890 Beraz, behin line 37 exekutatu du, handia da, gaur egun kopurua 1 2 kopia 414 00:26:08,890 --> 00:26:13,350 funtzio honen barruan, beraz, orduan, esan line 38 a = b, 415 00:26:13,350 --> 00:26:17,640 zu mota izorratu ari zaren besterik ez delako 1 esleituz 1. 416 00:26:17,640 --> 00:26:20,580 Mota duzu buruz zaintzen duzun balioa galdu. 417 00:26:20,580 --> 00:26:23,220 Beraz, honen jatorrizko bertsioa, eta, konturatu zer egin nuen. 418 00:26:23,220 --> 00:26:26,850 Kode-lerro izan ordez I hirugarren dirudi. 419 00:26:26,850 --> 00:26:28,580 Aldi baterako aldagai bat deklaratzen dut. 420 00:26:28,580 --> 00:26:32,170 >> Tmp aldi baterako aldagaiaren izena oso ohikoa da, eta int da 421 00:26:32,170 --> 00:26:34,580 ditu, kopia bat egin nahi dut dator delako. 422 00:26:34,580 --> 00:26:39,770 Tmp barruan kopia gordetzen dut, beraz, behin line 37 exekutatu 423 00:26:39,770 --> 00:26:45,860 baten balioa azkar behatu check - 1, b balioa 2 da, 424 00:26:45,860 --> 00:26:48,970 eta tmp balioa da, halaber, 1. 425 00:26:48,970 --> 00:26:52,060 Beraz, gaur egun line 38 exekutatu dut. 426 00:26:52,060 --> 00:27:00,540 Behin line 38 exekutatzen, b balioa hartzen du. Eta b 2 izan zen, beraz, bat da gaur egun 2. 427 00:27:00,540 --> 00:27:05,210 Istorioa Puntu honetan, 2, b 2 da, eta tmp 1 428 00:27:05,210 --> 00:27:11,060 beraz logikoki, besterik ez plop tmp balioa b sartu ahal dugu, eta egiten gaude. 429 00:27:11,060 --> 00:27:12,800 Beraz, arazo hori konpondu dugu. 430 00:27:12,800 --> 00:27:17,720 Zoritxarrez, programa hau exekutatzeko I inprimaki hau, ez du benetan trukatzeko balio. 431 00:27:17,720 --> 00:27:20,100 Baina argi eta garbi izan, zergatik? 432 00:27:23,660 --> 00:27:26,450 Logikoa arazoa konpondu dut, une bat besterik ez duela, 433 00:27:26,450 --> 00:27:31,020 baina berriro ere, programa hau exekutatu bada, x eta y gelditzen dira 434 00:27:31,020 --> 00:27:33,310 programaren exekuzio amaiera. 435 00:27:33,310 --> 00:27:37,220 [Inaudible ikaslea comment] >> itzuli ez dugu ezer, eta, beraz, hori egia da, beraz. 436 00:27:37,220 --> 00:27:39,670 Baina arazo bat apur bat hemendik, beraz, delako orain arte bihurtzen da, 437 00:27:39,670 --> 00:27:44,170 gauza bakarra itzultzeko gai izan gara, gauza bat da, eta C. murriztea da 438 00:27:44,170 --> 00:27:49,070 Itzultzeko balio bat benetan, horrelako mota itsatsita hemen nago 439 00:27:49,070 --> 00:27:53,310 x balio berria I itzuli delako edo y balio berria itzuli izan dut, 440 00:27:53,310 --> 00:27:55,190 baina atzera, bai nahi dut. 441 00:27:55,190 --> 00:27:58,650 Beraz, itzuli egin da eta ez da erraza irtenbide hemen. 442 00:27:58,650 --> 00:28:01,710 Baina arazoa, batez ere, zergatik da? Zer egin trukatuko dugu benetan? 443 00:28:01,710 --> 00:28:04,190 [Ikasleen] a eta b. >> A eta b. 444 00:28:04,190 --> 00:28:08,230 Baina eta b x eta y, horrek esan nahi du, egin dugu lan hau guztia kopiak dira, 445 00:28:08,230 --> 00:28:11,650 3 minutu igaro besterik ez dugu swap funtzioa eta 3 aldagai horiek guztiak buruz hitz egiten, 446 00:28:11,650 --> 00:28:15,420 eta hori handia da, erabat zuzena bakarka, 447 00:28:15,420 --> 00:28:20,740 baina a eta b-ren esparrua, lerro hauek hemen bakarrik da. 448 00:28:20,740 --> 00:28:24,790 >> Beraz, begizta bat bezala, deklaratzeko osokoa bada i begizta barruan, 449 00:28:24,790 --> 00:28:28,760 era berean, ari zaren bat eta b funtzio baten barruan duzula idatzi geratuko bada, 450 00:28:28,760 --> 00:28:33,320 funtzio hori bakarrik baliozko barrutik ari dira, horrek esan nahi du, ahalik eta azkarren swap egiten da exekutatzean 451 00:28:33,320 --> 00:28:38,470 eta joan line 24 line 25, x eta y ez da aldatu guztietan. 452 00:28:38,470 --> 00:28:42,790 Aldagai kopiak aldaketa bat denbora asko alferrik galtzen besterik ez duzu. 453 00:28:42,790 --> 00:28:47,010 Beraz, izarrekin bihurtzen da konponbidea dela, ez-bistako. 454 00:28:47,010 --> 00:28:50,670 Ez da nahiko nahikoa balio itzuli ahal izango dugu soilik 1 balioa itzultzeko, 455 00:28:50,670 --> 00:28:53,470 eta ez dut nahi bai x eta y trukatzeko, aldi berean, 456 00:28:53,470 --> 00:28:55,210 beraz, itzuli honetan izan dugu. 457 00:28:55,210 --> 00:29:01,020 Baina orain konturatzen arazoa funtsean Izan ere, a eta b dira kopiak eratorritako 458 00:29:01,020 --> 00:29:03,630 dira, eta beren esparrua propioa dute. 459 00:29:03,630 --> 00:29:05,050 Dezagun saiatu hau nolabait konpontzeko. 460 00:29:05,050 --> 00:29:11,250 Dezagun benetan joan me back hemen eta ireki,, demagun, laugarren aldaera, buggy4. 461 00:29:11,250 --> 00:29:13,370 Zer da hau? 462 00:29:13,370 --> 00:29:17,810 Stab bat hartuko dugu aurretik arazo horri irtenbidea bilatzeko arazoa antzekoa da, baina errazagoa da. 463 00:29:17,810 --> 00:29:24,190 Programa hau deitzen da gehikuntza, eta itxuraz initializes x zenbaki oso bat 1 line 18. 464 00:29:24,190 --> 00:29:28,150 Ondoren, diotenez, I x 1, diotenez, gero dut "... Incrementing" 465 00:29:28,150 --> 00:29:33,730 Deitu ondoren I gehikuntza, baina gero, 22 eta 23 lerro izan da, handitutako aldarrikatzen dut, 466 00:29:33,730 --> 00:29:40,220 2, zentzuzkoa - x da, edozein dela ere da aldarrikatzen dut, baina programa honen buggy. 467 00:29:40,220 --> 00:29:42,610 Zein da arazoa? 468 00:29:43,440 --> 00:29:50,160 Bai. >> [Inaudible ikaslearen erantzuna] >> Zehazki. 469 00:29:50,160 --> 00:29:52,490 Beraz, x izendatu, jakina, lerro 18. 470 00:29:52,490 --> 00:29:54,700 Nagusia giltza kizkur barruan dago. 471 00:29:54,700 --> 00:29:58,440 Beraz, erantzun sinplea hemen den bitartean, x existitzen da hemen, 472 00:29:58,440 --> 00:30:03,930 line 32 existitzen ez du, beraz, programa hau benetan ere ez konpilatu. 473 00:30:03,930 --> 00:30:07,940 Konpilatzailea kode hau konpilatzean saiatu I me at Yell 474 00:30:07,940 --> 00:30:14,100 identifikatzaile batzuk undeclared edo eragina duten zerbait buruz. Izan ere, dezagun saiatu. 475 00:30:14,100 --> 00:30:18,470 Hau da egin buggy4. Hor dago. 476 00:30:18,470 --> 00:30:22,110 Erabili line 32 undeclared identifikatzailea 'x'. 477 00:30:22,110 --> 00:30:25,580 Eta, benetan, dezagun esplizitua gehiago izateko hemen, gaur egun, beraz, hau oso erabilgarria da 478 00:30:25,580 --> 00:30:27,580 bulegoko ordu eta etxean. 479 00:30:27,580 --> 00:30:29,300 >> Oharra cryptically idatzi apur bat. 480 00:30:29,300 --> 00:30:37,270 Baina Clang duela gurekin yelled, buggy4.c esaten: 32:5, da, benetan erabilgarria. 481 00:30:37,270 --> 00:30:42,050 Errorea posizioa 5 karaktere at line 32 esan nahi du. 482 00:30:42,050 --> 00:30:46,700 Beraz, 1, 2, 3, 4, 5. Hori da, hain zuzen ere, non da arazoa. 483 00:30:46,700 --> 00:30:49,790 Eta gainera, ere, kontuan hartu, bulegoko ordu eta etxean, zortea dut hemen. 484 00:30:49,790 --> 00:30:52,990 Bat neurtu behar dut. Konpontzeko nahiko erraza izango da. 485 00:30:52,990 --> 00:30:55,990 Baina pantaila osoa error jasanezinak mezuak izanez gero, 486 00:30:55,990 --> 00:31:00,330 berriro konturatzen beheragoen bat izan nahiko luke agian lehenbiziko sintomatikoa. 487 00:31:00,330 --> 00:31:03,450 Beraz, beti Chase behera goiko behera zure bugs 488 00:31:03,450 --> 00:31:05,820 agian besterik ez delako daisy kate efektua 489 00:31:05,820 --> 00:31:09,240 hori modu arazoak benetan baino ez duzu proposatuz. 490 00:31:09,240 --> 00:31:15,150 Beraz, nola konpondu dugu, nire helburua da x Kontatzailea nahi izanez gero? >> [Ikasleak] x global. 491 00:31:15,150 --> 00:31:17,060 Ongi da, eta, beraz, x global egin ahal izango dugu. 492 00:31:17,060 --> 00:31:20,480 Dezagun duela ohartarazi dut lasterbide lehenago,, baina arraioa, quick fix bat besterik ez dugu behar, 493 00:31:20,480 --> 00:31:25,730 beraz, besterik gabe esan int x sortu hemen. Horregatik, x global. 494 00:31:25,730 --> 00:31:31,800 Beraz, gaur egun nagusia da sarbidea, eta gehikuntza sartzeko, 495 00:31:31,800 --> 00:31:34,110 eta beraz aurrera me eta konpilatu gaur egun. 496 00:31:34,110 --> 00:31:37,630 Egin buggy4, Sartu. Dirudienez, gaur egun biltzeko. 497 00:31:37,630 --> 00:31:41,230 Dezagun exekutatu buggy4. Eta benetan lan dirudi. 498 00:31:41,230 --> 00:31:45,150 Horiek egin nik esan bezala, gauza bat da, ez dut, 499 00:31:45,150 --> 00:31:47,010 Nik ez dut egin hemen, izan ere, oro har, 500 00:31:47,010 --> 00:31:50,440 gure programa askoz ere interesgarri eta hori baino askoz gehiago da, 501 00:31:50,440 --> 00:31:56,390 eta zure bizitzako arazoak konpontzeko jarri besterik ez bada zure koadernoan goialdean, aldagai guztiak 502 00:31:56,390 --> 00:31:59,690 Oso azkar ez programak lortu horrifically zaila kudeatzeko. 503 00:31:59,690 --> 00:32:02,190 Zailagoa daukala uste aldakorreko izen berriak, 504 00:32:02,190 --> 00:32:05,240 gogorragoa egingo du aldagaia da zer egiten ari ulertzeko, 505 00:32:05,240 --> 00:32:08,460 eta, beraz, oro har, hau da, ez da ona konponbide bat. 506 00:32:08,460 --> 00:32:10,030 Beraz, egin dezagun hobeto. 507 00:32:10,030 --> 00:32:12,160 Ez dugu nahi hemen aldagai global bat erabili. 508 00:32:12,160 --> 00:32:16,240 >> Nahi ez dut x Kontatzailea, eta, beraz, jakina, ezin izan dut - 509 00:32:16,240 --> 00:32:18,670 egunaren bukaeran, honetan silly istorioa mota besterik ez da hau egiten dugu delako 510 00:32:18,670 --> 00:32:24,450 baina ez nuen operadorea buruz jakin edo ez nintzen nagusia bera aldatzeko baimenik 511 00:32:24,450 --> 00:32:30,730 nola bestela ezin Ken ezartzeko dut hemen baino gehiago une honetan ez da kubo baina Kontatzailea? 512 00:32:31,380 --> 00:32:33,190 Nola gauza hau aldatu dut hemen? Bai. 513 00:32:33,190 --> 00:32:38,480 [Ikasleak] x Pass eta gero itzuli [inaudible] >> Ados, ona da. 514 00:32:38,480 --> 00:32:41,900 Beraz, zergatik ez pasatzeko x I eta ondoren baino itzultzeko 515 00:32:41,900 --> 00:32:44,870 zergatik ez x + 1 besterik ez dut itzuli ez. 516 00:32:44,870 --> 00:32:47,710 Pare bat gauza gehiago hemen aldatzeko. Eskuineko pista nago. 517 00:32:47,710 --> 00:32:49,770 Zer gehiago Tweak behar dut? Beste norbaitek. Bai. 518 00:32:49,770 --> 00:32:51,740 [Inaudible ikaslearen erantzuna] 519 00:32:51,740 --> 00:32:54,730 Ez duelako gal gehikuntza itzulera mota aldatu behar dut. 520 00:32:54,730 --> 00:32:57,780 Void bide ezer ez da itzuliko, baina argi eta garbi da, 521 00:32:57,780 --> 00:32:59,830 beraz, beharrak hau aldatzeko - >> [ikasleak] int. 522 00:32:59,830 --> 00:33:02,740 INT edozein izanda ere, benetan ari naiz itzultzen koherentea izan. 523 00:33:02,740 --> 00:33:05,180 Orain, beste zerbait da, oraindik ere buggy hemen. Bai. 524 00:33:05,180 --> 00:33:08,400 [Inaudible ikaslearen erantzuna] >> [Malan] x Kontatzailea Beraz, behar dut? 525 00:33:08,400 --> 00:33:12,080 [Inaudible ikaslearen erantzuna] >> [Malan] Ah, eta, beraz, x gainditu behar dut. 526 00:33:12,080 --> 00:33:16,660 Beraz, hau egin behar dut hemen. >> [Inaudible ikaslea comment] 527 00:33:16,660 --> 00:33:20,050 [Malan] Beraz, prototipoa, hau aldatzeko Hemen daukat. 528 00:33:20,050 --> 00:33:22,930 Hau int bat bihurtu da, beraz, hau da bihurtu 529 00:33:22,930 --> 00:33:25,620 hmm, I actually bug bat behera hemen. Dezagun konpondu hau lehen aldiz. 530 00:33:25,620 --> 00:33:29,590 Zer egin behar hau benetan? Handia lortu int zerbait bat izan nahi du. 531 00:33:29,590 --> 00:33:32,700 X izan daiteke, baina Egia, hasten zara zure aldagaiak x guztiak deitzen baduzu, 532 00:33:32,700 --> 00:33:35,390 gero eta gutxiago argia lortzeko, hau da, zein da. 533 00:33:35,390 --> 00:33:39,560 >> Hargatik arbitrarioki aukeratu izendatzeko hainbat hitzarmen bat nire helper funtzio, 534 00:33:39,560 --> 00:33:41,940 funtzioak idazten dut. Deitu dugu, edo deitu izan dugu 535 00:33:41,940 --> 00:33:45,010 Dezagun dei zenbaki are gehiago esplizitua izan. 536 00:33:45,010 --> 00:33:47,560 Orduan edozein zenbakia da plus 1 itzuli behar dut, 537 00:33:47,560 --> 00:33:50,740 eta, gaur egun, beste gauza 1 aldatzeko sortu behar dut hemen, eta beste gauza bat sortu hemen. 538 00:33:50,740 --> 00:33:54,350 Zer line 21 lehen aldatu behar dut? >> [Inaudible ikaslearen erantzuna] 539 00:33:54,350 --> 00:33:57,610 [Malan] esleitzeko x daukat. Ezin dut deitu-gehikuntza (x). 540 00:33:57,610 --> 00:34:01,960 X balioa aldatzen ezkerraldean erantzuna gogoratu behar dut. 541 00:34:01,960 --> 00:34:04,680 Eta nahiz eta x da gaur egun ezkerreko eta eskuineko, guztiz fina 542 00:34:04,680 --> 00:34:08,860 eskuinaldean denean exekutatu duelako lehenengo ondoren lortzen ezkerreko gauza sartu plopped 543 00:34:08,860 --> 00:34:10,600 Kasu honetan x. 544 00:34:10,600 --> 00:34:12,159 Eta gero, azkenik, hau erraza fix bat da gaur egun. 545 00:34:12,159 --> 00:34:17,230 Hau besterik ez datoz bat zer behera beheko, int kopurua. 546 00:34:17,230 --> 00:34:20,570 Benetan ergelak funtzio aldaketa sorta oso bat, beraz, 547 00:34:20,570 --> 00:34:24,420 baina gauza izango gara, gero eta gehiago nahi ez ordezkari. 548 00:34:24,420 --> 00:34:27,090 Beraz, egin buggy4. Izorratu dut nonbait. 549 00:34:27,090 --> 00:34:30,139 Oh, ene Jainkoa. Bost akatsak 6-line programa bat. 550 00:34:30,139 --> 00:34:35,690 Beraz, zer gertatzen da on line 18, pertsonaia 5? 551 00:34:35,690 --> 00:34:39,610 Beraz, int hau deklaratu behar dut. 552 00:34:39,610 --> 00:34:41,920 Ikus dezagun. Badira beste erroreak sorta oso bat. 553 00:34:41,920 --> 00:34:47,010 Oh, ene Jainkoa - 19, 18, 21, baina berriro ere, dezagun garbitu pantailan, Kontrol L, 554 00:34:47,010 --> 00:34:49,380 eta Clang berrabiarazi. 555 00:34:49,380 --> 00:34:51,340 Beraz, 5 arazoak besterik ez da 1 da, benetan. 556 00:34:51,340 --> 00:34:57,520 Beraz, gaur egun dezagun exekutatu buggy4, Sartu. Whew, x izan da handitutako zuzena. 557 00:34:57,520 --> 00:35:02,720 Guztiak eskubidea. Zenbakiak nola Kontatzailea edozein galdera? Bai. 558 00:35:02,720 --> 00:35:09,870 [Inaudible ikasleak galdera] >> Ona galdera. 559 00:35:09,870 --> 00:35:14,220 Nola da dut aldatu x kopurua eta programa ezagutzeko aukera izango berehala? 560 00:35:14,220 --> 00:35:16,200 >> Berriz ere, uste abstrakzioa hau. 561 00:35:16,200 --> 00:35:21,600 Beraz, I am nagusia bada, eta Ken gehikuntza da, Egia, ez zait zer Ken bere iPad deiak. 562 00:35:21,600 --> 00:35:26,570 Ez zait ezer bere funtzionalitate hau ezartzeko egin duen zer deiak zuen. 563 00:35:26,570 --> 00:35:33,340 Bat ezartzeko, I nagusiak, ez dute axola buruzko xehetasunak. 564 00:35:33,340 --> 00:35:38,250 Eta horrela, besterik gabe, aldatzen ondokoengatik funtzioaren barruan zenbaki hemen eta zenbaki hemen 565 00:35:38,250 --> 00:35:40,960 hain luze birkonpilatzeko dudan bezala hartzen du. 566 00:35:40,960 --> 00:35:44,180 Sort nahi da uste baduzu gutako askok, horiek gidatzeko lizentziak 567 00:35:44,180 --> 00:35:46,770 duten gidatzen duzun edo, nahiz eta auto bat gidatzen, 568 00:35:46,770 --> 00:35:50,950 gurekin gehienak ez daki nola auto bat kanpaia azpian lan egiten dute. 569 00:35:50,950 --> 00:35:54,970 Eta literalki, ireki baduzu kanpaia, gurekin gehienak neure burua barne - 570 00:35:54,970 --> 00:35:56,940 ez dira benetan jakin zer bilatzen ari gara, 571 00:35:56,940 --> 00:35:59,220 dezakezu eskubide hori atsegin stuff sentitzen mota. 572 00:35:59,220 --> 00:36:01,480 Baina ez dugu benetan autoa nola funtzionatzen duen zaintzeko, 573 00:36:01,480 --> 00:36:05,970 ez dugu axola zer hagaxkak eta pistoiak eta kableak autoaren barruan 574 00:36:05,970 --> 00:36:08,160 dira benetan ari. 575 00:36:08,160 --> 00:36:12,770 Pistoiak ez du axola hemen kasu honetan deitu antzeko zerbait, beraz. Same idea. 576 00:36:12,770 --> 00:36:25,300 Bai. >> [Inaudible ikasleak galdera] 577 00:36:25,300 --> 00:36:29,180 XA aldagaia une erabilera gehiago daude, duela 578 00:36:29,180 --> 00:36:32,150 duzu, programatzailea, horiek aldatzeko nonahi izango litzateke. 579 00:36:32,150 --> 00:36:36,600 Edo literalki izan duzu File, Menua, eta, ondoren, bilatu, ordeztu - horrelako zerbait 580 00:36:36,600 --> 00:36:39,170 baina aldaketa horiek eskuz egiteko zoaz. 581 00:36:39,170 --> 00:36:47,450 Koherentea izan behar duzu. >> [Ikasleak] hainbat aldagai bada [inaudible] 582 00:36:47,450 --> 00:36:53,100 Hemen bezala ordena jakin bat, hau izan zen INT beste zenbaki bat? >> [Ikasleak] zuzena. 583 00:36:53,100 --> 00:36:56,590 [Malan] Bai. Agindua axola funtzioa deitzen ari zaren. 584 00:36:56,590 --> 00:37:00,050 >> Beraz, bada gehikuntza ziren I deituz hemen zerbait koma zerbait, 585 00:37:00,050 --> 00:37:01,680 zuzeneko kartografia. 586 00:37:01,680 --> 00:37:05,690 Lehen aldagaia, edozein izenekoa, kopia bat egiten da hemen lehen argumentua. 587 00:37:05,690 --> 00:37:07,760 Sentitzen dugu. Honek ez luke parentesi bat izango da. 588 00:37:07,760 --> 00:37:11,490 Bigarren argumentua lerro bigarren bat. Ordena Beraz, bai, garrantzitsua da. Guztiak eskubidea. 589 00:37:11,490 --> 00:37:17,020 Sentitzen dugu. Iritsi bide luzea hartu nuen. Beste galdera? Guztiak eskubidea. 590 00:37:17,020 --> 00:37:20,610 Beraz, ikus dezagun, ezin dugu bada zer benetan hemen argazki bat margotzeko 591 00:37:20,610 --> 00:37:23,090 kanpaia azpian, eta, beraz, hitz egiten. 592 00:37:23,090 --> 00:37:26,640 Laukizuzen bat da, zure ordenagailuaren memorian irudikatu dezake. 593 00:37:26,640 --> 00:37:30,970 Nahiz eta ideia ez duzu nola funtzionatzen memoria edo nola RAM lanak, 594 00:37:30,970 --> 00:37:33,940 gutxienez bere gain hartzen duzula sortak da egun hauetan. 595 00:37:33,940 --> 00:37:36,280 Duzun got megabyte, baina dituzun gigabyte da, 596 00:37:36,280 --> 00:37:40,870 eta jakin dugu aste 0 byte bat besterik ez da, zer? >> [Ikasleak] 8 bit. 597 00:37:40,870 --> 00:37:42,950 8 bit, ezta? Beraz, 8 zero eta 1. 598 00:37:42,950 --> 00:37:45,880 Beraz, bada, zure ordenagailuan RAM emandako makrokontzertuak, 2 RAM kontzertuak egun hauetan, 599 00:37:45,880 --> 00:37:55,030 milioi edo 2 milioi memoria byte edo gutxi gorabehera 8 milioi edo 16 milioi bit behar duzu 600 00:37:55,030 --> 00:37:56,890 zure ordenagailuaren barruan. 601 00:37:56,890 --> 00:38:00,590 Little Wooly Willy adibidez ez bezala, ez da partikula magnetikoak normalean gehiago. 602 00:38:00,590 --> 00:38:04,450 Gero eta gehiago - eramangarrietan gutxienez egoera ona unitate, SSDs da, 603 00:38:04,450 --> 00:38:08,580 Atal higikorrak ez besterik ez. Elektronikoa da. Guztiak elektrizitate-oinarritutako. 604 00:38:08,580 --> 00:38:14,060 Beraz, laukizuzena pentsatzea besterik ez, 1 edo 2 gigabyte memoria duzula ordezkari gisa. 605 00:38:14,060 --> 00:38:16,020 >> Beraz, memoria zatia da. 606 00:38:16,020 --> 00:38:19,830 Informatika munduan du sort partizioak off 607 00:38:19,830 --> 00:38:22,950 memoria zatiak hainbat gauza egin. 608 00:38:22,950 --> 00:38:27,190 Esate baterako, zure ordenagailuaren RAM bada, bertan laukizuzen iradokitako 609 00:38:27,190 --> 00:38:31,130 bihurtzen da hitzarmen hori, zure RAM goialdean, nolabait esateko, 610 00:38:31,130 --> 00:38:33,660 da, oro har, zer izeneko testu-segmentu bat. 611 00:38:33,660 --> 00:38:36,740 Dutenek 0 s eta 1s duzula konpilatu dira. 612 00:38:36,740 --> 00:38:39,020 Beraz kanpaia azpian dugu begiratu zer a.out da, 613 00:38:39,020 --> 00:38:41,980 0 s eta horien 1s, programa bat exekutatzen baduzu, 614 00:38:41,980 --> 00:38:46,290 0 s eta 1s duten zure disko gogorrean, zerbait izeneko RAM kargatu sartu dira, 615 00:38:46,290 --> 00:38:49,320 eta RAM goialdean jarri dira. 616 00:38:49,320 --> 00:38:52,770 Bien bitartean, beste gauza batzuk duzu: hasieratu datuak, uninitialize datuak. 617 00:38:52,770 --> 00:38:57,510 2 memoria swaths dutenek aldagai global, ez duzu askotan erabili dira 618 00:38:57,510 --> 00:39:00,760 baina batzuetan egiten baduzu, azkenean han baita. 619 00:39:00,760 --> 00:39:04,260 Ingurune-aldagai, ez dugu pasatzeko denbora asko, Ondoren, beste zenbait gauza 620 00:39:04,260 --> 00:39:06,860 baina gero 2 gauza garrantzitsu bat atzera etorriko da seihilekoan zehar, 621 00:39:06,860 --> 00:39:08,550 pila eta zeure. 622 00:39:08,550 --> 00:39:12,210 Zure ordenagailuaren memoria gehien Beraz, programa bat exekutatzen erreserbatuta dago 623 00:39:12,210 --> 00:39:15,370 izeneko zerbait pila eta zerbait zeure deitu. 624 00:39:15,370 --> 00:39:18,840 Ez ari gara gaur egun zeure buruz hitz egingo, baina pila buruz hitz egingo dugu. 625 00:39:18,840 --> 00:39:24,600 Pila da ondorioz sortu conjure jantokia bazkari erretiluak ikus Mather House 626 00:39:24,600 --> 00:39:28,110 edo lekuan izango gertatuko duzu non jantokia langileek garbitu, egunero, 627 00:39:28,110 --> 00:39:30,180 pilatu dute solairuan gora, 628 00:39:30,180 --> 00:39:34,550 eta, era berean, memoria, pila bat jarriz zerbait ideia hau da, 629 00:39:34,550 --> 00:39:36,860 pila bat jarriz, zerbait zerbait pila bat jarriz. 630 00:39:36,860 --> 00:39:38,240 Eta zer esan nahi dugu? 631 00:39:38,240 --> 00:39:41,860 >> Dezagun zoom argazki honen erdia besterik ez, txikiagoa izango da, zure ordenagailuaren RAM, 632 00:39:41,860 --> 00:39:44,330 hauek proposatzen. 633 00:39:44,330 --> 00:39:48,170 Bihurtzen da a.out edo kaixo bezalako programa bat exekutatzen baduzu - 634 00:39:48,170 --> 00:39:50,100 edozein programa duzula idatzi 635 00:39:50,100 --> 00:39:54,020 berriro ere, 0 s eta 1s zure disko gogorrean, eta epe luzeko biltegiratze kargatu dira, 636 00:39:54,020 --> 00:39:57,230 egonaldiak ez denean ere plug tira, RAM kargatzen duzu. 637 00:39:57,230 --> 00:40:00,610 RAM disko gogorretan baino azkarrago, disko gogorretan baino txikiagoa da 638 00:40:00,610 --> 00:40:03,300 baina programa non bizi zaren exekutatzen ari da. 639 00:40:03,300 --> 00:40:08,230 Beraz, egin klik bikoitza Mac edo PC programa bat, RAM sartu disko gogorrean kargatu. 640 00:40:08,230 --> 00:40:11,520 Ahalik eta azkarren kargatzen dira RAM, modu goialdean go 0 s eta 1s 641 00:40:11,520 --> 00:40:16,610 deiturikoak testu-segmentua, baina, ondoren, bezain laster, zure programa benetan hasten da, 642 00:40:16,610 --> 00:40:21,360 funtzioa nagusia deitzen da, eta nagusiak, ikusi dugu, askotan aldagai lokalak ditu, 643 00:40:21,360 --> 00:40:24,870 ints eta kateak eta karakteretan eta atsegin du. 644 00:40:24,870 --> 00:40:29,180 Beraz, zure programa duzula idatzi edo programa bikoitza bertan klik egin duzula bada 645 00:40:29,180 --> 00:40:32,970 erabiltzen diren aldagai batzuk nagusiaren barruan, 646 00:40:32,970 --> 00:40:37,240 Zure memoria-pilaren beheko aldean amaituko dute, eta, beraz, hitz egiten. 647 00:40:37,240 --> 00:40:39,410 Zehazki, zer du horrek benetan esan nahi? 648 00:40:39,410 --> 00:40:48,450 Horrek, besterik gabe esan nahi du byte RAM ordenagailuan ginen bada, 649 00:40:48,450 --> 00:40:55,750 nabarituko byte zenbaki hori 0 izan daiteke, hau byte multzoko 1, 2, 3, 4, 5, 6 izan daiteke, 650 00:40:55,750 --> 00:41:01,480 2 milioi modu guztiak, han goialdean guztiak izango litzateke. 651 00:41:01,480 --> 00:41:05,880 Beraz, beste era batera esanda, RAM edo memoria buruz hitz bytes dagokionez, 652 00:41:05,880 --> 00:41:11,500 esan nahi du, besterik ez da norbaitek erabaki du zer memoria zatiak horietako bakoitzean kopurua. 653 00:41:11,500 --> 00:41:16,650 Beraz, int bat 32 bit behar duzu edo 8 char bat bit behar duzu, 654 00:41:16,650 --> 00:41:18,840 non amaituko dira memorian? 655 00:41:18,840 --> 00:41:22,350 >> Kontzeptualki, amaitzeko, besterik ez dute pila izeneko gauza hau, behealdean. 656 00:41:22,350 --> 00:41:25,870 Baina zer da interesgarria gaur egun funtzio nagusia deiak 657 00:41:25,870 --> 00:41:28,750 demagun izeneko funtzio bat foo, izen bat besterik ez arbitrarioa 658 00:41:28,750 --> 00:41:32,330 zer gertatzen da nagusia memoria pila honen behealdeko da; 659 00:41:32,330 --> 00:41:35,680 foo nagusiaren gainean jarri memorian. 660 00:41:35,680 --> 00:41:40,990 Edozein foo amaitzeko kontzeptualki nagusian goiko sort Beraz, aldagai lokalak. 661 00:41:40,990 --> 00:41:47,070 Foo bar izeneko funtzioa beste deiak bada, aldagai horiek, azkenean, hemen. 662 00:41:47,070 --> 00:41:50,120 Bar zerbait, hemen, hemen, hemen deitzen badu. 663 00:41:50,120 --> 00:41:53,830 Beraz, zer programa bat exekutatzen ari buruz interesgarria da funtzio deitu 664 00:41:53,830 --> 00:41:57,750 eta funtzio horiek funtzio deitzen eta funtzioak ere funtzio deitzen, 665 00:41:57,750 --> 00:42:01,470 funtzioak memorian pila hau eraikitzen. 666 00:42:01,470 --> 00:42:06,890 Eta bakarrik funtzioak behin dezaket memoria hori lortzean atzera hasten zara. 667 00:42:06,890 --> 00:42:10,860 Modurik errazena, programa informatiko bat exekutatu memoria bat, beraz, 668 00:42:10,860 --> 00:42:14,360 inoiz ez itzultzeko funtzioak idatzi. 669 00:42:14,360 --> 00:42:18,900 Horrela, esate baterako, erakusteko askoz buggy programa bat nahita utzi. 670 00:42:18,900 --> 00:42:22,230 Dezagun aurrera eta ez # 671 00:42:22,230 --> 00:42:25,000 int main (void), 672 00:42:25,000 --> 00:42:32,940 eta (2> 1), berriz, ziurrenik ez du inoiz gurekin aldatu egin dut, 673 00:42:32,940 --> 00:42:37,560 eta utzi aurrera me orain eta zer printf. 674 00:42:37,560 --> 00:42:40,700 Egia esan, hori gutxiago bisualki interesgarria izango da. Egin dezagun. 675 00:42:40,700 --> 00:42:50,240 Int i = 0; i> 0 - egin dezagun akats hau - i + +. 676 00:42:50,240 --> 00:42:52,720 Eta dezagun ez printf hemen. Dezagun landu zer predikatzen nintzen. 677 00:42:52,720 --> 00:43:00,190 Dezagun metodo bat hemen, void abesbatzak, eta esan int i dugu, 678 00:43:00,190 --> 00:43:06,830 eta, ondoren, printf esan dut - ez, dezagun hau interesgarriagoa. 679 00:43:06,830 --> 00:43:15,790 Dezagun benetan ez da ezer guztiak inprimatu at. Dezagun besterik ez egin: abesbatza (i). 680 00:43:15,790 --> 00:43:20,390 Guztiak eskubidea. Beraz, hau da buggy zergatik delako? 681 00:43:20,390 --> 00:43:23,380 Hau egiten dut joaten naiz programa ez delako benetan egiten interesgarriak ezer. 682 00:43:23,380 --> 00:43:25,320 >> Baina hori ez da helburua. 683 00:43:25,320 --> 00:43:29,630 Helburua da programa horren funtzio nagusia ez zer, itxuraz idazteko? 684 00:43:30,720 --> 00:43:32,860 Dei bera. Eta, izatez, ez dugu behar loop. 685 00:43:32,860 --> 00:43:37,200 Dezagun hau errazteko, nahiz eta beraz, ez da benetan oinarrizko bug ikusmena galtzen. 686 00:43:37,200 --> 00:43:39,640 Main deiak abesbatzak koru batzuk abestu, 687 00:43:39,640 --> 00:43:41,440 ondoren, zerbait ergelak nuen, koru eta abesbatzak dei izan nuen 688 00:43:41,440 --> 00:43:43,760 beste norbaitek bere gain hartu dut ezartzeko zen agian joan delako, 689 00:43:43,760 --> 00:43:47,210 eta, gaur egun, hau ez da oraindik biltzeko. Zer egin behar dut? 690 00:43:47,210 --> 00:43:49,970 Prototipoa behar dut gogoratzen. 691 00:43:49,970 --> 00:43:56,110 Beraz, hemen behar dut void abesbatza (int i); 692 00:43:56,110 --> 00:43:59,210 Beraz, gaur egun joaten naiz behera izanez gero hemen benetan, dezagun leihoa handiagoa erabili. 693 00:43:59,210 --> 00:44:01,980 Dezagun aurrera eta koruak egin. 694 00:44:01,980 --> 00:44:06,490 Dezagun aurrera eta koruak egin. 695 00:44:06,490 --> 00:44:08,370 Erabili identifikatzaile undeclared i. 696 00:44:08,370 --> 00:44:12,500 Oh, hori izan zen ergelak. Ez dugu behar argumentua. Dezagun besterik ez egin. 697 00:44:12,500 --> 00:44:16,370 Modu honetan hasi genuen nahi dut. Litzateke programa askoz errazago idazten. 698 00:44:16,370 --> 00:44:25,590 Dago. Orain joan nire terminal leihoa, Clang berrabiarazi, eta hemen dugu. 699 00:44:25,590 --> 00:44:28,460 Hori izan zen oso azkar. 700 00:44:28,460 --> 00:44:31,150 Zer da benetan gertatu da, baina? 701 00:44:31,150 --> 00:44:33,730 Beno, gaur egun inprimatu lerro gehitu dut ikusi ahal izango dugu, beraz. 702 00:44:33,730 --> 00:44:43,490 Printf esan me ("hemen nago") - aldagai ez. Horrela utziko dugu. 703 00:44:43,490 --> 00:44:47,480 Utzidazu berrabiarazi egin. Koru berrabiarazi me. 704 00:44:47,480 --> 00:44:57,380 Eta ... etorri. Jarrai joan. 705 00:44:57,380 --> 00:44:59,930 Bat alde batera utzita, zergatik kraskatu egin ez da oraindik? 706 00:44:59,930 --> 00:45:02,080 Segmentaziuo hutsegitea gertatu super azkar baino lehen. 707 00:45:02,080 --> 00:45:06,570 [Inaudible ikaslearen erantzuna] >> Zehazki. Beraz, denbora inprimatu hartzen du, ezta? 708 00:45:06,570 --> 00:45:08,610 Ordenagailua parte lan gehiago hartzen du, besterik ez da. 709 00:45:08,610 --> 00:45:10,620 Eta ez da: segmentazioa errua. 710 00:45:10,620 --> 00:45:12,340 >> Beraz, konturatu besterik ez nola azkar programak exekutatzeko. 711 00:45:12,340 --> 00:45:14,130 Ez bazara ezer, super azkar inprimatzean. 712 00:45:14,130 --> 00:45:18,770 Baina oraindik dugu zer gertatzen ari zen delako segmentaziuo hutsegitea hau? 713 00:45:18,770 --> 00:45:21,210 Buruzko uste baduzu zure ordenagailuaren memorian nola banatuta dago, 714 00:45:21,210 --> 00:45:28,740 hau gertatzen nagusia izango da, baina hemen dezagun deitu abesbatza hau, eta dezagun koru hau deitu. 715 00:45:28,740 --> 00:45:34,550 Eta orain egin behar dut nire estetika bada eskubidea, hau da, besterik gabe, koruak, abesbatzak, abesbatzak esan nahi joan, 716 00:45:34,550 --> 00:45:40,550 koruak, koru, abesbatzak, abesbatzak, ad nauseum, eta, azkenean, zer gertatuko? 717 00:45:40,550 --> 00:45:45,630 Big picture, literalki bada, hau da, zer besterik ez kontzeptualki gertatzen da? 718 00:45:46,520 --> 00:45:48,630 Pila overruns zeure. 719 00:45:48,630 --> 00:45:51,940 Edo, okerrago, inbaditu besterik ez duzu dena, testu-segmentu barne, 720 00:45:51,940 --> 00:45:54,590 0 s eta 1s ordezkatzen dituzten programa da. 721 00:45:54,590 --> 00:45:57,080 Azken finean, hau da, besterik gabe, super, super txarra. 722 00:45:57,080 --> 00:45:58,830 Zure programa spiraled kontrola. 723 00:45:58,830 --> 00:46:01,220 Modu memoria asmoa baino erabiltzen ari zara 724 00:46:01,220 --> 00:46:03,960 kasu honetan ergelak akats bat delako, guztiak 725 00:46:03,960 --> 00:46:08,040 edo kasu honetan oso nahita egin funtzio bat bera deituz. 726 00:46:08,040 --> 00:46:09,500 Orain, hau da, ez da txarra. 727 00:46:09,500 --> 00:46:13,800 Eginkizunak beren kabuz deituz benetan botere handia dauka, behar bezala erabiltzen duzun. 728 00:46:13,800 --> 00:46:15,800 Ez dut erabili behar bezala hemen. 729 00:46:15,800 --> 00:46:19,780 Beraz, hau da, ez da txarra, baina inoiz ez dut benetan gelditzeko Izan ere, neure buruari deituz 730 00:46:19,780 --> 00:46:23,520 Programa honen oinarrizko ahulezia hemen da. 731 00:46:23,520 --> 00:46:26,400 Beraz, non egingo dugu hori guztia? Zer da benetan gertatzen da? 732 00:46:26,400 --> 00:46:30,340 Noiz gehikuntza funtzioa deitzen genuen adibide horietan bezala egiten, 733 00:46:30,340 --> 00:46:33,420 1 pasatzen dut sartu bezala balio bat daukat 734 00:46:33,420 --> 00:46:37,570 Pasatzen 1 zenbakia kopia bat dut, beraz, honako hau gertatzen da. 735 00:46:37,570 --> 00:46:44,240 Dezagun joan gehikuntza Adibidez, hemen tipo hau. 736 00:46:44,240 --> 00:46:46,870 Hona hemen zer ari den benetan gertatzen ari dena. 737 00:46:46,870 --> 00:46:53,400 Noiz-gehikuntza deitu dut eta pasatzen x I, pictorially, zer gertatzen da hemen da hau. 738 00:46:53,400 --> 00:46:59,520 >> Daukat deitzen gordetako balioa 1 bada, eta benetan I gehikuntza, 739 00:46:59,520 --> 00:47:04,330 gaur egun deitzen den koru - iPad da me bota off hemen. 740 00:47:04,330 --> 00:47:09,760 Dezagun deitzen gehikuntza hau, eta ez dakigu zer hurrengo funtzioa hau izango da. 741 00:47:09,760 --> 00:47:14,840 Beraz, zer ari den benetan gertatzen ari da hemen nonbait nagusia zatia memoria bat dut 742 00:47:14,840 --> 00:47:17,000 1 zenbakia gordetzeko. 743 00:47:17,000 --> 00:47:19,380 Noiz gehikuntza deitzen diot nik, beste zatia memoria bat erabiltzen ari naiz, 744 00:47:19,380 --> 00:47:21,230 baina orain, 1 kopia daukat. 745 00:47:21,230 --> 00:47:26,660 Balio hori Kontatzailea I, 2 bilakatzen da, 746 00:47:26,660 --> 00:47:30,560 baina gero zer gertatzen den bezain laster gehikuntza itzultzen? 747 00:47:30,560 --> 00:47:33,630 Memoria hau lortzen entregatu back sistema eragilea, 748 00:47:33,630 --> 00:47:37,450 horrek esan nahi du egin duzun ezer erabilgarria da. 749 00:47:37,450 --> 00:47:43,120 1 jatorriz nagusia jasotako oraindik benetan. 750 00:47:43,120 --> 00:47:44,890 Beraz, non egingo dugu? 751 00:47:44,890 --> 00:47:49,770 Bihurtzen da memoria byte sekuentzia back-to-back hau 752 00:47:49,770 --> 00:47:53,050 stuff duzula jarri daiteke, eta bihurtzen da dut dagoeneko ikusi dugun zerbait 753 00:47:53,050 --> 00:47:55,390 lan egiten duten gauzak jarriz atzera Itzuli atzera. 754 00:47:55,390 --> 00:47:59,860 Zer astea 1 eta orain aste 2 oinarritutako kate bat da? 755 00:48:00,020 --> 00:48:01,980 Pertsonaia bilduma bat besterik ez da. 756 00:48:01,980 --> 00:48:04,310 Beraz, izarrekin bihurtzen da zenbakiak bezala jarri ahal izango duzu, memorian, 757 00:48:04,310 --> 00:48:06,990 era berean, pertsonaiak jarri memorian. 758 00:48:06,990 --> 00:48:10,530 Eta behin jarriz karaktere hasten gara memorian atzera itzuli Itzuli 759 00:48:10,530 --> 00:48:13,620 bihurtzen da gauza errazena bat bezala begizta edo, berriz, begizta bat erabiliz, 760 00:48:13,620 --> 00:48:17,170 ezkerretik eskuinera ahal izango dugu batetik bestera joateko, pertsonaiak baino gehiago kate batean 761 00:48:17,170 --> 00:48:20,600 eta hasi massaging pertsonaia, hainbat guztira 762 00:48:20,600 --> 00:48:23,370 b bihurtu dezake, b c bihur daiteke 763 00:48:23,370 --> 00:48:27,780 beraz, azken finean, ingelesez esaldia benetan zentzua hartu ahal izango dugu 764 00:48:27,780 --> 00:48:30,310 eta letrak horiek bat bihurtu bakoitza denbora batean 765 00:48:30,310 --> 00:48:34,400 gure ordenagailuaren memoria paseoan Ezkerretik eskuinera benetan enkriptatzeko. 766 00:48:34,400 --> 00:48:35,810 Beraz, dezagun gure bost minutuko break hemen, 767 00:48:35,810 --> 00:48:40,730 eta noiz itzuli gara, informazio scrambling prozesua hasiko dugu. 768 00:48:42,020 --> 00:48:43,520 >> Guztiak eskubidea. 769 00:48:43,520 --> 00:48:48,070 Kripto batean murgiltze dugu aurretik, eta gauza horiek izeneko array 770 00:48:48,070 --> 00:48:51,470 let me edozein galdera pausatu sentitzen dut benetan I mota muddled delako 771 00:48:51,470 --> 00:48:54,080 gai horietako batzuk. Hargatik konpondu ahal bada. 772 00:48:54,080 --> 00:48:58,700 Bueltan balioak buruz besterik ez dugu hitz egiten, argumentuak hitz egin dugu, 773 00:48:58,700 --> 00:49:03,250 eta hitz egin nozio honi buruz, itzuli gara eta datozen asteetan, 774 00:49:03,250 --> 00:49:08,720 memoria horiek pilatuta erretiluak sorta bat osoa ikusteko, eta, beraz, hitz egiten, 775 00:49:08,720 --> 00:49:12,660 sortu, besteak beste, behean, erretilu bakoitzean lortzen pilaketan jartzen 776 00:49:12,660 --> 00:49:16,530 ari izeneko funtzio bat adierazten du. 777 00:49:17,900 --> 00:49:20,260 Edozein galdera? 778 00:49:20,260 --> 00:49:22,640 Galdera hemen galdetu. 779 00:49:22,640 --> 00:49:27,890 Dezagun back hau errazteko me zer izan zen lehenago gure Q & A. batzuk aurretik 780 00:49:27,890 --> 00:49:35,570 Izan ere, gehikuntza irekita parentesi, int zenbakia, parentesia itxi 781 00:49:35,570 --> 00:49:39,110 zer int kopurua ordezkatzen du? 782 00:49:39,110 --> 00:49:42,790 [Ikasleen] argumentu bat. >> Argumentu bat. Ongi da. Baina zer gertatzen da argumentu bat behar du? 783 00:49:42,790 --> 00:49:46,370 [Inaudible ikaslearen erantzuna] >> Zer da hori? >> [Ikasleak] Zerbait pasatzen zaudela 784 00:49:46,370 --> 00:49:49,940 Ongi da, eta, beraz, zerbait pasatzen zaudela Eta, oro har, sarrera besterik ez da. 785 00:49:49,940 --> 00:49:52,450 Zinen bizitzan funtzio bat, eta funtzio horren helburua izanez gero idatziz 786 00:49:52,450 --> 00:49:55,770 zerbait egin denbora pixka bat desberdinak erabiltzen duzun bakoitzean, 787 00:49:55,770 --> 00:50:00,110 ondoren, hori benetan gertatuko modu bakarra izango badirudi sarrera 788 00:50:00,110 --> 00:50:03,510 beraz, zerbait desberdina egin ahal izango da, sarrera hori aldi bakoitzean. 789 00:50:03,510 --> 00:50:06,650 >> Beraz, bi gauza zehaztu behar den funtzio bat hartzen du sarrerako behar duzu. 790 00:50:06,650 --> 00:50:09,590 Sarrera horretan eman nahi duzun izena zehaztu behar duzu 791 00:50:09,590 --> 00:50:12,700 zure erosotasuna own hutsa dezakezu erreferentzia 792 00:50:12,700 --> 00:50:16,540 funtzioa duzu zeure burua, idatziz egin nuen hemen line 32. 793 00:50:16,540 --> 00:50:20,800 Baina, bere mota zehaztu behar duzu ere, C programazio-lengoaia bat delako 794 00:50:20,800 --> 00:50:25,940 bakarrik eskatzen nahi duzun aldagai bat izanez gero, ordenagailua esan duzu zer datu-mota da, 795 00:50:25,940 --> 00:50:30,200 neurri handi batean, beraz, zenbat bit aldagaia esleitu daki 796 00:50:30,200 --> 00:50:33,020 6 duelako izan daiteke - Barkatu, ezin izango da 6 izango da. 797 00:50:33,020 --> 00:50:37,080 Izan 16 izan daiteke, 8 daiteke, 32 izan daiteke, nahiz eta 64. 798 00:50:37,080 --> 00:50:39,130 baina ordenagailua jakin behar da. 799 00:50:39,130 --> 00:50:43,180 Orain, ezkerreko aldean int adierazten du zer, ordea? 800 00:50:46,350 --> 00:50:48,850 [Inaudible ikaslearen erantzuna] >> Zer da hori? >> [Ikasleak] funtzio-mota. 801 00:50:48,850 --> 00:50:53,610 Funtzio bat eta, zehatzago esanda, bere irteera mota. Eskuin. 802 00:50:53,610 --> 00:50:57,380 Beraz, parentesi gauza, berriz, bere sarrera adierazten du, edozein bada, 803 00:50:57,380 --> 00:50:59,660 ezkerrera gauza bere irteera adierazten du. 804 00:50:59,660 --> 00:51:03,530 Eta, kasu honetan, gehikuntza itxuraz int bat itzultzen du, 805 00:51:03,530 --> 00:51:07,690 eta, beraz, int mota funtzio honen bueltan da. 806 00:51:07,690 --> 00:51:09,340 Zer esan nahi du itzuli esan nahi du? 807 00:51:09,340 --> 00:51:15,090 Literalki, keyword itzulera erabili behar dituzu, eta, ondoren, zer ari zaren itzuli bada 808 00:51:15,090 --> 00:51:18,600 hitzarekin eskubidea oso bat da, 809 00:51:18,600 --> 00:51:21,660 Orduan, zer agindu dugu koherentea da, hain zuzen. 810 00:51:21,660 --> 00:51:26,410 Ezin duzu egin, honen antzeko zerbait - kaixo, mundu - kate bat delako. 811 00:51:26,410 --> 00:51:28,860 >> Jakina, ez da zenbaki oso bat. 812 00:51:28,860 --> 00:51:33,140 Beraz, azken finean, zama da benetan gurekin, programatzailea, zehatza izan 813 00:51:33,140 --> 00:51:37,770 zer itzultzen ari gara, eta gero benetan itzuli buruz joan. 814 00:51:37,770 --> 00:51:43,440 Testuinguru hemen orain zure ordenagailuaren memorian gigabyte, 2 gigabyte - 815 00:51:43,440 --> 00:51:45,920 edozein izanda ere - agian gehiago da, agian, gutxiago, 816 00:51:45,920 --> 00:51:49,050 baina ordenagailua views hainbat atal izatea. 817 00:51:49,050 --> 00:51:51,200 Zerbait jaitsi egiten da bertan, beste zerbait igotzen dago, 818 00:51:51,200 --> 00:51:54,290 stuff hainbat erdian doa, eta gaur hasiko dugu istorioa kontatzeko. 819 00:51:54,290 --> 00:51:56,340 baina itzuli gara baino gehiago une honetan. 820 00:51:56,340 --> 00:51:59,980 Oraingoz, memoria zati bakarra zaintzeko benetan gara testu segmentu 821 00:51:59,980 --> 00:52:03,360 0 s eta 1s Clang hori delako adierazten duen besterik ez du outputted. 822 00:52:03,360 --> 00:52:06,050 Beraz, komando bat exekutatu a.out bezalako teklatua 823 00:52:06,050 --> 00:52:09,110 edo egin klik bikoitza ikono bat Mac OS edo Windows, 824 00:52:09,110 --> 00:52:11,880 zure programa zure disko gogorrean RAM kargatzen 825 00:52:11,880 --> 00:52:16,330 eta zure ordenagailuaren RAM goialdean plopped, eta, beraz, hitz egiten. 826 00:52:16,330 --> 00:52:20,450 Bien bitartean, zure programa hasiko da martxan eta nagusiak lortzen izeneko 827 00:52:20,450 --> 00:52:23,640 programa edo idatzi duzun programa Microsoft edo Apple idatzi, 828 00:52:23,640 --> 00:52:27,860 bere aldagai tokiko edozein amaitzeko hor behera zure ordenagailuaren memoria, behealdean. 829 00:52:27,860 --> 00:52:33,230 Baina nagusiak dei funtzioa beste aldagai edo argumentuetan du bera bada, gainean amaituko dute. 830 00:52:33,230 --> 00:52:36,680 Eta funtzio hori deiak zerbait bada, azkenean dute batez ere, batez ere, batez ere. 831 00:52:36,680 --> 00:52:41,460 >> Eta behin bakarrik funtzioa exekutatzean bat egin erretiluak pila, beraz, ez du hitz egiten, 832 00:52:41,460 --> 00:52:43,240 hasiera txikiagoa eta beheko. 833 00:52:43,240 --> 00:52:48,250 Eta hau da, zer orduan, hitz batean, azaltzen du zergatik kubo deitu 834 00:52:48,250 --> 00:52:51,550 edo gehikuntza deitzen duzunean, balio kopia bat pasatzen ari zaren. 835 00:52:51,550 --> 00:52:55,520 Eta zer esan nahi duen pictorially zarela literalki 1 zenbakia idatzi 836 00:52:55,520 --> 00:53:00,460 memoria beste zati bat, aldatzen gehikuntza kasuan 1 eta 2 837 00:53:00,460 --> 00:53:04,820 kuboaren kasuan, 8 eta, ondoren, memoria hori bota 838 00:53:04,820 --> 00:53:09,140 bezain laster gehikuntza edo kubo funtzioak. Galdera. 839 00:53:09,140 --> 00:53:12,900 [Ikasleak] Non global aldagai gordetzen? 840 00:53:12,900 --> 00:53:18,100 Global aldagai zer gaur egun hasieratu datuak edo uninitialized datuak gordetzen dira, 841 00:53:18,100 --> 00:53:21,920 aldea global aldagai bat bada, eta esleitu ere balio bat berehala 842 00:53:21,920 --> 00:53:24,640 Berdintasun zeinua duen, eta ondorioz goiko bertan, 843 00:53:24,640 --> 00:53:29,200 eta besterik esaten ez bada int x; baliorik ez, eta ondorioz, pixka bat txikiagoa RAM hasi 844 00:53:29,200 --> 00:53:31,710 besterik gabe konbentzio. 845 00:53:31,710 --> 00:53:34,940 Beste galdera? Guztiak eskubidea. 846 00:53:34,940 --> 00:53:37,340 Beraz, argazki hau atzera etorriko da ahaltsuagoa 847 00:53:37,340 --> 00:53:39,170 ordenagailua zer egin ahal izango dugu, 848 00:53:39,170 --> 00:53:42,720 baina orain, egin ditzagun kriptografia intro labur bat, 849 00:53:42,720 --> 00:53:46,080 kriptografia mota jakin ez dela munduko arazo guztiak konpontzeko 850 00:53:46,080 --> 00:53:47,720 baina horietako batzuk konpondu ez. 851 00:53:47,720 --> 00:53:51,700 Hemen kasu honetan, sekretu-gakoa kriptografia izeneko zerbait egin behar dugu. 852 00:53:51,700 --> 00:53:56,410 Secret-gakoa kriptografia, izena dioen bezala, bere segurtasun sekretu bat dator. 853 00:53:56,410 --> 00:54:00,690 >> Esate baterako, eskola kalifikazioa itzuliz gero eta sekretu apur bat maitasun eskutitz zinen pasatzen 854 00:54:00,690 --> 00:54:04,850 mutil edo neska zinen birrintzeko, ohar hori gainditzeko, ikusleen bidez nahi duzun bada, 855 00:54:04,850 --> 00:54:08,380 seguruenik ez English ohar bat, hala nola, idatzi edo dena delakoa zure ama-hizkuntza da. 856 00:54:08,380 --> 00:54:13,340 Izan ere, enkriptatu dezakezu, edo, besterik gabe, dezakezu testu-mezu bat bidaltzeko egun hauetan. 857 00:54:13,340 --> 00:54:15,460 Baina benetan dezakezu gainditu ohar bat ikasgelan zehar. 858 00:54:15,460 --> 00:54:18,700 Eta hori egiteko modu bat, hala nola, zure lagun eta irakasle segurtasunez 859 00:54:18,700 --> 00:54:22,650 ez dakit zer idazten ari zaren, zatoz gora izan liteke nahiko simple algoritmoa 860 00:54:22,650 --> 00:54:25,920 gazte nahiz eta izan daiteke, besterik ez Scramble hitzak. 861 00:54:25,920 --> 00:54:28,130 Beraz, bat idaztea ordez b idatzi dezakezu, 862 00:54:28,130 --> 00:54:30,220 ordez b c idatz dezakezu, 863 00:54:30,220 --> 00:54:32,140 ordez c d idatzi dezakezu, eta abar. 864 00:54:32,140 --> 00:54:34,360 Edo zatoz gora izan sofistikatuagoa itzulpen 865 00:54:34,360 --> 00:54:36,720 desberdinak letrak gutunak. 866 00:54:36,720 --> 00:54:39,740 Baina harrapatzen mutil edo neska nori ari zaren ohar hau bidaltzen da 867 00:54:39,740 --> 00:54:45,020 beharrak zerbait, eta hori da, jakina jakin nahi duzu? >> [Ikasleen] Zer bidaltzen ari zara. 868 00:54:45,020 --> 00:54:49,720 Zein da zure sekretua da, zer dela eta b-ren eta c eta d's arteko kartografia bezala. 869 00:54:49,720 --> 00:54:54,650 1 besterik ez da gehitzen letrak bakoitzean batetik b, b c joateko? 870 00:54:54,650 --> 00:54:56,670 Da hori baino gehiago konplexua? 871 00:54:56,670 --> 00:55:01,540 >> Beraz, zuk eta zure bihurritu behar dute informazio hori sekretua, 872 00:55:01,540 --> 00:55:03,190 baina mota bat harrapaketa-22 hemen. 873 00:55:03,190 --> 00:55:06,830 Hau lehen aldiz bada maitasun eskutitz honen klase bitartez bidaltzen ari zaren, 874 00:55:06,830 --> 00:55:10,720 mutil edo neska bat dago sekretua, nahiz eta jakin nola? 875 00:55:10,720 --> 00:55:13,930 Beraz, sekretu-gakoa kripto ez munduko arazo guztiak konpontzeko, 876 00:55:13,930 --> 00:55:16,320 eta benetan harreman bat dago hemen atzera etorri egingo dugun seihilekoa amaitu bidean. 877 00:55:16,320 --> 00:55:25,110 Era berean ez gurekin gehienak ez du inor ezagutzen lan egiten duen, esate baterako, Amazon.com, 878 00:55:25,110 --> 00:55:28,190 eta oraindik gutako askok ziurrenik erosi stuff at Amazon.com 879 00:55:28,190 --> 00:55:31,990 eta irakasten dugu, e-merkataritza segurua horiek bereganatzeko. 880 00:55:31,990 --> 00:55:36,470 URL https dio ziurrenik, ez da agian pixka bat silly giltzarrapoaren ikonoa nonbait, 881 00:55:36,470 --> 00:55:39,930 zure kreditu txartelaren informazioa bermatzeko kriptografia mota batzuk 882 00:55:39,930 --> 00:55:42,160 duzu eta Amazon.com artean. 883 00:55:42,160 --> 00:55:45,430 Eta oraindik bada kriptografia dakar sekretu batzuk ezagutu 884 00:55:45,430 --> 00:55:48,620 eta oraindik ere, ez dakit Amazon at edonork eta zalantzarik gabe Nik ez sekretua edozein motatako antolatu 885 00:55:48,620 --> 00:55:52,710 Amazon at norbait, nola nire ordenagailuan edo nire nabigatzailea hau egiten ari da? 886 00:55:52,710 --> 00:55:55,720 Ez da beste kriptografia mota out guztiz konpontzeko arazo hori bihurtzen da. 887 00:55:55,720 --> 00:55:57,670 Baina gaur, sinple bat dugu arreta 888 00:55:57,670 --> 00:56:00,290 non aldez aurretik antolatu ahal izango duzu sekretu batzuk ezagutu 889 00:56:00,290 --> 00:56:03,760 +1 edo a eta b-ren arteko kartografia batzuk bezala. 890 00:56:03,760 --> 00:56:05,840 Kriptografia-prozesua, oro har, dakar. 891 00:56:05,840 --> 00:56:08,620 Testu arrunteko batzuk, hemen ezkerreko irudikatuta duzu, 892 00:56:08,620 --> 00:56:12,930 exekutatu enkriptatzeko algoritmo edo prozedura mota batzuetan zehar 893 00:56:12,930 --> 00:56:15,100 agian besterik bihurtzen da b, b c bihurtzen 894 00:56:15,100 --> 00:56:17,490 eta, ondoren, azkenean duzu ciphertext. 895 00:56:17,490 --> 00:56:20,380 Bien bitartean, behin zure bihurritu sekretu ohar honetan jasotzen 896 00:56:20,380 --> 00:56:24,200 zuen gero desenkriptatzeko, oro har, algoritmoa, alderantzikatzeko 897 00:56:24,200 --> 00:56:27,190 beraz, testu itzuli. 898 00:56:27,190 --> 00:56:28,960 Dira fisiko honen incarnations. 899 00:56:28,960 --> 00:56:31,680 >> Esate baterako, hau da sekretu apur bat deskodetzailea ring, 900 00:56:31,680 --> 00:56:35,110 eta hau ez da bi lasterrak hemen zentzu eraztun bat da. 901 00:56:35,110 --> 00:56:38,490 Gauza honen kanpo periferia On, ez dago hizkiak A Z bidez, 902 00:56:38,490 --> 00:56:40,340 ausazko ordenean Oraindik dute nahiz eta, 903 00:56:40,340 --> 00:56:42,880 eta barrutik, ez dago benetan zenbaki batzuk 904 00:56:42,880 --> 00:56:46,620 hala nola, eraztun hau mota horretako piztu kanpotik, baina ez da barrutik 905 00:56:46,620 --> 00:56:49,140 ordena lerro zenbakiak letrekin. 906 00:56:49,140 --> 00:56:53,020 Gabonetako Story A izeneko pelikula bat, apur Ralphie dela ikusiko duzu 907 00:56:53,020 --> 00:56:58,000 beraz irrikaz irudikatu zer Little umerzurtzak Annie mezu sekretuaren zion 908 00:56:58,000 --> 00:57:02,570 izan dira komunikatua, nire ustez, mezu zenbakizko Inprimaki zereal kutxa bat 909 00:57:02,570 --> 00:57:07,220 eta little karta guztiak zereal kutxa zen pilatu behar izan duzu, 910 00:57:07,220 --> 00:57:09,770 bidali nahi izan duzu, itzuli sekretua deskodetzailea ring 911 00:57:09,770 --> 00:57:13,910 beraz, azkenean dezakezu irudikatu zer mapaketaren hizkiak eta zenbakiak artean 912 00:57:13,910 --> 00:57:15,550 edo letrak eta letrak. 913 00:57:15,550 --> 00:57:19,520 Nola ordenagailu bat ezartzeko edo ordezkari hau atsegin gauza gara? 914 00:57:19,520 --> 00:57:22,560 Modu bat behar dugu geure burua adierazteko apur bat gehiago malgutasunez 915 00:57:22,560 --> 00:57:25,080 gure aldagai baino, beraz, orain arte onartzen. 916 00:57:25,080 --> 00:57:29,000 Izan dugu ints, izan dugu karakteretan, karroza eta bikoitzak eta beste batzuk izan dugu. 917 00:57:29,000 --> 00:57:34,200 baina horiek banakako memoria zuzenak dira benetan ez utzi gauzak adierazteko gurekin 918 00:57:34,200 --> 00:57:36,440 hitz eta esaldi eta esaldi atsegin dute. 919 00:57:36,440 --> 00:57:38,630 Izan ere, deitzen dugu hala nola gauzak kateak, 920 00:57:38,630 --> 00:57:42,660 baina hori CS50 liburutegia sinplifikazio bat besterik ez da, benetan agintzen dugu 921 00:57:42,660 --> 00:57:45,540 ari gara zuritu back asmorik. 922 00:57:45,540 --> 00:57:47,500 Eta beraz Horretarako hemen hasteko. 923 00:57:47,500 --> 00:57:49,840 Dezagun aurrera eta ireki fitxategi bat 924 00:57:49,840 --> 00:57:54,100 fitxategi hauek guztiak daude eskuragarri, ohiko, online izeneko array.c 925 00:57:54,100 --> 00:57:58,960 kateak zerikusirik ez arazoa konpontzeko baina horrek irudi bat margotzen hemen 926 00:57:58,960 --> 00:58:01,520 nola zerbait izeneko array bat erabil dezake. 927 00:58:01,520 --> 00:58:04,050 >> Array bat datu-mota bat da. 928 00:58:04,050 --> 00:58:10,730 Aldagai mota era askotako hainbat datu-mota txikiagoa barruan 929 00:58:10,730 --> 00:58:12,680 Atzera itzuli. 930 00:58:12,680 --> 00:58:16,980 Beraz, esate baterako, bada ematen dizu zure quiz batez beste programa txiki bat idatzi nahi dugu 931 00:58:16,980 --> 00:58:19,780 50 2 galdetegiek duen bezala ikastaro bat, 932 00:58:19,780 --> 00:58:23,450 Oso erraz idatzi izan duzu, are gehiago, azken astean material batzuk oinarritutako programa honen 933 00:58:23,450 --> 00:58:28,830 aldagai GetInt eta pare bat erabiliz: int quiz1, int quiz2. 934 00:58:28,830 --> 00:58:30,550 Eta nahiko erraza da. 935 00:58:30,550 --> 00:58:33,500 Agian da 10, 20 kodea max lerro programa bat ezartzeko 936 00:58:33,500 --> 00:58:38,940 2 quiz partiturak erabiltzaile eskatuko du, eta, ondoren, batez besteko computes 937 00:58:38,940 --> 00:58:42,020 gehituz batera, 2 by zatituz, eta, ondoren, emaitzak inprimatzeko. 938 00:58:42,020 --> 00:58:46,400 Lehenago egin izan dugu, nahiko erraz orain dela minutu batzuk ondoren. 939 00:58:46,400 --> 00:58:49,450 Baina arazoa suposatzen 50 zuela 3 galdetegiak edo 4. 940 00:58:49,450 --> 00:58:52,830 Demagun programa bera erabili zuela astero galdetegiek klase bat nahi duzula. 941 00:58:52,830 --> 00:58:55,100 Pentsatu klase bat du astero galdetegiak. 942 00:58:55,100 --> 00:58:58,840 Seihileko bat 16 edo, beraz, aste, 16 aldagai izan beharko da: 943 00:58:58,840 --> 00:59:03,030 int quiz1, int quiz2, int quiz3, int quiz4. 944 00:59:03,030 --> 00:59:06,870 Erredundantzia hau ikusi bezain laster hasten zara, kode hau kopiatu eta itsasteko, 945 00:59:06,870 --> 00:59:09,810 hasteko modu bat hobea izan ziren nahi duzun egin beharko luke. 946 00:59:09,810 --> 00:59:13,610 Eta zorionez, zeren array dago. Beraz, egin dezagun hau. 947 00:59:13,610 --> 00:59:16,700 Lehenik eta behin, gauza oso erraza da erabiltzen ez ditudan dugu, beraz, orain arte aurkeztu me utzi, 948 00:59:16,700 --> 00:59:18,820 , baina noizean behin, kodea ikusiko duzu. 949 00:59:18,820 --> 00:59:21,270 >> Hau da, zer ari den, oro har, konstante bat da deitzen. 950 00:59:21,270 --> 00:59:24,410 Beraz, balio hori inoiz aldatzen zentzu konstante bat da. 951 00:59:24,410 --> 00:59:26,450 Giza konbentzio konstante bat sortuz 952 00:59:26,450 --> 00:59:30,420 maiuskulaz guztiak erabili ahal izateko, beraz, oso dela nabarmentzen da zure kodea 953 00:59:30,420 --> 00:59:34,270 eta C erabiltzen duzun berezia keyword # define. 954 00:59:34,270 --> 00:59:39,970 Beraz, # define, eta ondoren espazio bat eta, ondoren, etengabeko izena erabili nahi duzun hitza esaten dugu 955 00:59:39,970 --> 00:59:41,730 eta, ondoren, etengabeko balio. 956 00:59:41,730 --> 00:59:44,710 Oharra aldagai bat zerbait esleitzea desberdina da. 957 00:59:44,710 --> 00:59:46,430 Ez dago berdin ikurraren, ez dago puntu eta koma. 958 00:59:46,430 --> 00:59:49,140 Hau da, oro har, preprocessor direktiba ezagutzen, 959 00:59:49,140 --> 00:59:50,840 baina horrek denbora bat gehiago. 960 00:59:50,840 --> 00:59:56,350 Orain, hau deitzen galdetegiak unchanging balio bat sortzen du 961 00:59:56,350 --> 00:59:58,290 horren benetako zenbakizko balioa 2 da. 962 00:59:58,290 --> 01:00:02,180 Beraz, edozein lekutan galdetegiek ikusten duzu, galdetegiek, galdetegiek fitxategi honetan zehar, 963 01:00:02,180 --> 01:00:04,230 besterik ez duen kopurua 2. 964 01:00:04,230 --> 01:00:06,550 Nagusian begiratuz gero, ikus dezagun nola obra honetan. 965 01:00:06,550 --> 01:00:09,770 Lehenik eta behin, apur bat crĂ­ptica badirudi, baina aste 1 stuff guztiak da. 966 01:00:09,770 --> 01:00:12,210 Galdetu kalifikazio erabiltzaileari. Nola egiten dugu hori? 967 01:00:12,210 --> 01:00:17,350 Line 22 - hau da, benetan parte mamitsuena mugikor bat deklaratzen dut 968 01:00:17,350 --> 01:00:23,240 baina ez bakarra mugikor bat. Deklaratzen dut, baizik, puntu mugikorreko-balioak array bat. 969 01:00:23,240 --> 01:00:27,700 Aldagaia da deitu behar kalifikazio engaiatuko hemen, 970 01:00:27,700 --> 01:00:31,420 , baina sintaxia berrien pieza bakarra karratu parentesi artean honako hauek dira. 971 01:00:31,420 --> 01:00:37,280 Izan ere, dudan karroza kalifikazio esan zuen eta, ondoren, parentesia eta gero, zenbaki bat 972 01:00:37,280 --> 01:00:40,980 nabarituko konstante bat da, hau da, bada besterik ez genuen bezalakoa da 973 01:00:40,980 --> 01:00:46,840 horrek esan nahi du, "Hey ordenagailua, emaidazu 2 karroza eta dezagun kolektiboki deitu kalifikazio". 974 01:00:46,840 --> 01:00:51,780 >> Hau atsegin prozesua askoz ere lapurtera kontrastea: karroza grade1; 975 01:00:51,780 --> 01:00:54,580 flotatzen grade2, eta abar. 976 01:00:54,580 --> 01:00:58,310 Beraz, array bat onartzen du ideia hau ezartzeko aukera ematen digu, baina askoz gutxiago messily 977 01:00:58,310 --> 01:01:04,560 1 kode lerro idatzi ahal izango dugun ordez, esan, 16 16 aste seihileko bat. 978 01:01:04,560 --> 01:01:09,060 Ez dut nahi gogor-kodea 2 honi buruz uste duzu gaur egun logikoki delako, 979 01:01:09,060 --> 01:01:12,560 demagun hurrengo urtean CS50 3 aldaketak galdetegiak ordez 980 01:01:12,560 --> 01:01:15,010 eta 2 hemen izan nuen, 2 zenbakia izan nuen hemen, 981 01:01:15,010 --> 01:01:17,210 2 zenbakia izan nuen hemen, zenbaki 2 hemen. 982 01:01:17,210 --> 01:01:19,890 Oso lapurtera eta oso erraza bihurtzen da sortu torlojua 983 01:01:19,890 --> 01:01:26,550 eta nahi gabe aldatu 1 balioa 3 eta 2 beste balio batzuk galdu. 984 01:01:26,550 --> 01:01:30,660 Beraz ordez abstraktua dut hau kanpoan, eta etengabe hau erabiltzeko, 985 01:01:30,660 --> 01:01:32,520 bere izena dioen bezala, ez da inoiz aldatzen dira. 986 01:01:32,520 --> 01:01:35,870 Eta, orain, ez du axola hainbat izan ala ez, aurten edo hurrengo galdetegiak, 987 01:01:35,870 --> 01:01:39,380 Dut aldatzeko leku bat sortu hemen goian. 988 01:01:39,380 --> 01:01:41,230 Beraz, konstante bat da. 989 01:01:41,230 --> 01:01:47,100 Bien bitartean, ezaugarri berri kontzeptuala array bat dela. 990 01:01:47,100 --> 01:01:55,030 Beraz, karratu parentesi artean ematen dit asko karroza hau, eta aukera ematen dizu deitu kolektiboki me kalifikazio hemen. 991 01:01:55,030 --> 01:01:56,720 Beraz, gaur egun, zer egin behar dut ikus-en. 992 01:01:56,720 --> 01:01:59,220 Line 24 begizta baten hasieran da. 993 01:01:59,220 --> 01:02:03,380 >> Hau da, benetan ezer ez fancy. Besterik ez da galdetegiak kodetuak hard-zenbaki bat erabiliz. 994 01:02:03,380 --> 01:02:06,740 Baina ez dago ezer intelektualki hainbat han astetik. 995 01:02:06,740 --> 01:02:11,650 Hau besterik ez da printf, eta, beraz, printf ("Quiz #% d% d:") 996 01:02:11,650 --> 01:02:16,670 besterik ez dut nahi duelako inprimatu eman 1 2 quiz me, eta ondoren, 2 2. 997 01:02:16,670 --> 01:02:18,480 Beraz, gauza estetiko hutsa da. 998 01:02:18,480 --> 01:02:21,000 Baina interesgarria parte line 27. 999 01:02:21,000 --> 01:02:27,840 Bi leku bat bete-puntu mugikorreko balio bat, 1000 01:02:27,840 --> 01:02:29,640 erabili berriro karratu parentesi artean. 1001 01:02:29,640 --> 01:02:35,170 Kasu honetan, i erabiltzen dut begizta hau lortzea zer balioa i hasi delako, itxuraz? 1002 01:02:35,170 --> 01:02:36,670 [Ikasleak] 0. >> [Malan] 0. 1003 01:02:36,670 --> 01:02:40,990 Beraz, begizta honen lehenengo iterazio, nahiz eta gisa honetan idatzi nuen kodea da, 1004 01:02:40,990 --> 01:02:46,310 baina begizta honen bigarren iterazio, nahiz eta gisa honetan idatzi nuen nire kodea da. 1005 01:02:46,310 --> 01:02:49,970 Baina naiz I aldagai bat erabiliz ezin hobea da, izan ere, izen gisa iradokitzen du, 1006 01:02:49,970 --> 01:02:52,600 bere balioa desberdinak iterazio bakoitzean, 1007 01:02:52,600 --> 01:02:55,900 array honetan toki betez naiz aldi berean. 1008 01:02:55,900 --> 01:02:57,380 Zer da array hau ez itxura? 1009 01:02:57,380 --> 01:03:01,570 Pantailan laukizuzen simple super marraztu dut hemen arrazoia Hori dela aurretik izan zen. 1010 01:03:01,570 --> 01:03:05,590 Array bat besterik ez da beste zatia memoria bat eta jarraian zatia memoria 1011 01:03:05,590 --> 01:03:08,570 beste zatia memoria eta abar. 1012 01:03:08,570 --> 01:03:13,120 Tamaina 2 da nire array Beraz, kasu honetan, guztiak ari dira nuke 1013 01:03:13,120 --> 01:03:20,200 nire quiz partiturak idaztea gustatzen hemen - 100 hau lortu nuen eta ondoren 99 dut hau - 1014 01:03:20,200 --> 01:03:24,970 ondoren, baliteke memoria honetan ere ez da erabili dut soilik ordenagailua eskatuko 1015 01:03:24,970 --> 01:03:26,840 tamaina array bat 2. 1016 01:03:26,840 --> 01:03:28,600 Karratu horiek oraindik ez dago, ezta? 1017 01:03:28,600 --> 01:03:32,670 Oraindik 2 RAM gigabyte nahiz eta soilik 2 karroza ari zaren galdetzen. 1018 01:03:32,670 --> 01:03:36,840 Beraz, array atzean dagoen ideia da ordenagailua zatia memoria bat hartzen du 1019 01:03:36,840 --> 01:03:41,340 eta, ondoren, apportions txikiagoa zuzenak Itzuli atzera. 1020 01:03:41,340 --> 01:03:43,310 Eta horrela, array bat da. 1021 01:03:43,310 --> 01:03:47,350 >> Zatia memoria barruan Alboko gauza jarri ahal izango duzu bat da. 1022 01:03:47,350 --> 01:03:50,700 Hau gertatzen da, ondoren egin besterik ez aspergarria aritmetika batzuk. 1023 01:03:50,700 --> 01:03:54,640 Joan I behera bada hemen, hau da, non array zehar gero batetik bestera joateko. 1024 01:03:54,640 --> 01:03:58,020 Sortu naiz array balio guztien summation 1025 01:03:58,020 --> 01:04:02,470 eta, ondoren, Kopako funtzioa erabiltzen dut hemen benetan egiten galdetegiek arabera banatzen batura. 1026 01:04:02,470 --> 01:04:06,320 Baina nire eskua olatuen me hori oraingoz nahikoa aritmetika sort gisa. 1027 01:04:06,320 --> 01:04:08,370 Baina guztiak egiten niretzat, azken finean, batez besteko bat da informatika. 1028 01:04:08,370 --> 01:04:13,580 Beraz, lehen quiz plus bigarren galdetegia 2 arabera banatzen da, eta, ondoren, inprimatzeko int gisa. 1029 01:04:13,580 --> 01:04:17,280 Baina gaur egun trantsizio deitzen katea1 beste adibide bat, 1030 01:04:17,280 --> 01:04:20,700 irudi antzeko, baina erabiliz kateak margotzen. 1031 01:04:20,700 --> 01:04:23,940 Dezagun aurrera, eta hori errazteko une bat besterik ez. 1032 01:04:23,940 --> 01:04:27,090 Barkatu bai orain koska. 1033 01:04:27,090 --> 01:04:30,870 Adibide honetan line 19 hasiera, erabiltzaileak kate bat lortuko dut. 1034 01:04:30,870 --> 01:04:34,640 Baina konturatu zer hurrengo naiz lerro 22 aurrera egiten. 1035 01:04:34,640 --> 01:04:41,250 Benetan ari naiz i from errepikatzean - eta trikimailu berri bat da - strlen, katea luzera. 1036 01:04:41,250 --> 01:04:44,880 C batekin dator funtzio bat pasatzen baduzu kate bat, 1037 01:04:44,880 --> 01:04:47,730 kontatzen du zenbat karaktere katea. Hori da dena. 1038 01:04:47,730 --> 01:04:51,550 Izan ere, hori strlen katea luzera ordez besterik ez delako gehiago succinct da. 1039 01:04:51,550 --> 01:04:55,100 Duela hogeita hamar urte, pertsonari gustatu gauzak idazteko succinctly ahalik 1040 01:04:55,100 --> 01:04:57,630 beraz, hitzarmen hori mantendu dugu hemen. 1041 01:04:57,630 --> 01:05:00,660 + besterik ez + i esan nahi du Kontatzailea i iterazio bakoitzerako. 1042 01:05:00,660 --> 01:05:02,990 Eta orain jakinarazteko, hau da, benetan interesgarria. 1043 01:05:02,990 --> 01:05:09,180 24 linea, esan dut, "Computer, eman dit pertsonaia bat, 8 bit, eta c deitu." 1044 01:05:09,180 --> 01:05:12,630 Baina, zer da hau eskuinaldean esaten? 1045 01:05:13,490 --> 01:05:16,530 Ingelesez, zer adierazten duten? 1046 01:05:16,530 --> 01:05:18,730 [Ikasleen] array aurreneko karaktereari. 1047 01:05:18,730 --> 01:05:20,790 Hain zuzen ere. Array en aurreneko karaktereari Give me. 1048 01:05:20,790 --> 01:05:24,090 Edo, oro har, emaidazu array pertsonaia Ith. 1049 01:05:24,090 --> 01:05:26,100 Eta konturatzen garrantzitsua da gaur egun ordenagailu zientzialari gisa, 1050 01:05:26,100 --> 01:05:27,890 benetan ari gara 0 hasita. 1051 01:05:27,890 --> 01:05:29,720 >> Ez daukazu diskrezioa orain hau egiten hasteko. 1052 01:05:29,720 --> 01:05:34,160 Orain ordenagailuaren itxaropenak arabera jokatu behar duzu, eta 0-tik zenbatzen 1053 01:05:34,160 --> 01:05:38,180 [0] delako lehen karaktere kate batean 1054 01:05:38,180 --> 01:05:42,150 [1] bigarren izango da, [2] da hirugarren, eta abar. 1055 01:05:42,150 --> 01:05:49,720 Beraz, programa hau, konpilatu bada, hau da, berriro katea1, eta, beraz, katea1 1056 01:05:49,720 --> 01:05:54,670 eta gaur egun exekutatu dut katea1 nire terminal-leiho batean. 1057 01:05:54,670 --> 01:05:58,330 Sarrera da, beraz, David idatzi, Sartu zain noa, 1058 01:05:58,330 --> 01:06:02,540 eta, gaur egun, David bistaratzen guztiak lerro desberdinetan oharra zer egiten ari delako ari naiz. 1059 01:06:02,540 --> 01:06:05,820 Karaktere bat naiz inprimatzeko aldi berean. 1060 01:06:05,820 --> 01:06:10,100 Ez dugu sakontzeko, gaur egun hau, baina une bat ezabatu dut egiaztapen hau ago hemen. 1061 01:06:10,100 --> 01:06:15,480 Bihurtzen da, erabiltzaileak gaizki portatzen da, adversarial, edo, besterik gabe, nahastu, 1062 01:06:15,480 --> 01:06:20,210 benetan dezakezu dejar luze kate bat emateko. 1063 01:06:20,210 --> 01:06:22,860 Okerreko tekla sakatzen duzun bada, teklatua, katerik eman dezakezu guztietan, 1064 01:06:22,860 --> 01:06:26,950 Oraindik duzun edo asmo txarreko izanez gero, saiatu gigabyte saiakera bat merezi itsatsi 1065 01:06:26,950 --> 01:06:29,290 kate hau bete, eta ordenagailua bada memoria agortu 1066 01:06:29,290 --> 01:06:32,710 bihurtzen da izeneko NULL balioa berezi hau itzuli egingo dugun. 1067 01:06:32,710 --> 01:06:35,580 Beraz, oraingoz, besterik ez daki ez dagoela izeneko NULL balioa berezi hau 1068 01:06:35,580 --> 01:06:39,580 gara memoria, besteak beste Gurekin egiaztatu ahal izango da. 1069 01:06:39,580 --> 01:06:45,630 Baina irekitzen badut up now katea2, nabarituko diferentzia hemen. 1070 01:06:45,630 --> 01:06:48,210 Oharra ko aldea hemen katea2. 1071 01:06:48,210 --> 01:06:51,340 Katea2, begizta hau apur bat desberdina da. 1072 01:06:51,340 --> 01:06:55,010 >> Baliogabeak, beraz, ezabatu me horiek denbora beste buruz hitz egin ahal izango dugu. 1073 01:06:55,010 --> 01:06:57,800 Zer da loop Une honetan buruz? 1074 01:06:59,620 --> 01:07:01,670 Atzera jo dezake, aurreko adibidea. 1075 01:07:01,670 --> 01:07:08,580 Beraz, 2 bertsioa, version 1. 1, 2. 1076 01:07:08,580 --> 01:07:11,980 1, 2. 1077 01:07:13,520 --> 01:07:16,660 Strlen deia da, non? 1078 01:07:16,660 --> 01:07:18,860 Loop lehen zati da. 1079 01:07:18,860 --> 01:07:21,830 Zergatik egiten ari naiz pentsamenduak Any? Bai. 1080 01:07:21,830 --> 01:07:24,560 [Ikasleak] Beraz, ez duzu deitu funtzioa aldi bakoitzean bakarra. 1081 01:07:24,560 --> 01:07:26,440 [Malan] Beraz, ez dugu deitu funtzioa aldi bakoitzean bakarra. Hain zuzen ere. 1082 01:07:26,440 --> 01:07:28,300 Gogoratu loops for super simple Oraindik dutela 1083 01:07:28,300 --> 01:07:31,770 behin ulertu sort hori hasieratzeko, baldintza, eta eguneratzea. 1084 01:07:31,770 --> 01:07:34,750 Arazoa da baldintza begizta-iterazio guztietan gertatzen den bezala. 1085 01:07:34,750 --> 01:07:40,010 Eta beraz, hemen adibide honetan, zer da Izan ere, hori da nire egoera buruz txarra? 1086 01:07:40,010 --> 01:07:41,830 [Ikasleen] strlen deitzen ari zara. 1087 01:07:41,830 --> 01:07:44,340 [Malan] strlen berriro deitzen ari zara, eta behin eta berriro. 1088 01:07:44,340 --> 01:07:47,410 Baina behin David idatzi dut, katea luzera 5 da, 1089 01:07:47,410 --> 01:07:49,650 eta ez da begizta-iterazio bakoitzean aldatu 1090 01:07:49,650 --> 01:07:51,670 katea da oraindik delako D-a-v-i-d. 1091 01:07:51,670 --> 01:07:55,320 Beraz, zer ideia gero eta garrantzitsuagoa bihurtu iradokizun bat da 1092 01:07:55,320 --> 01:08:00,410 diseinua erabaki non bakarrik ez egiteko ordenagailua alferrikako lana bezala ezagutzen. 1093 01:08:00,410 --> 01:08:03,920 >> Just pset2, pset2 Sneak preview estandarra edizioan 1094 01:08:03,920 --> 01:08:07,030 erronka benetan ezartzeko zifraketen zenbaki batzuk, 1095 01:08:07,030 --> 01:08:10,410 batzuk enkriptatze algoritmoak kopurua, eta, beraz, bai dezakezu enkriptatu 1096 01:08:10,410 --> 01:08:13,840 eta desenkriptatu sekretua mezuak askoz bat Ralphie bezala dekodetu. 1097 01:08:13,840 --> 01:08:16,810 Hacker pset2 edizioa, apur bat urrunago joan goaz. 1098 01:08:16,810 --> 01:08:19,649 Eskuz fitxategi batean ari gara, benetako sistema bat ordenagailu 1099 01:08:19,649 --> 01:08:23,479 izenak eta benetako enkriptatutako pasahitzak sorta osoa dauka, 1100 01:08:23,479 --> 01:08:26,939 eta hacker edizioan erronka pasahitzak horiek crack izango da 1101 01:08:26,939 --> 01:08:33,200 irudikatu eta zer kriptografia aurkituko duzu, edo zer sekretua pasahitzak horiek benetan sortzeko erabiltzen zen. 1102 01:08:33,200 --> 01:08:36,109 Eta hori egin ahal izateko, ezaugarri berri bat erabiliz hemen C goaz 1103 01:08:36,109 --> 01:08:40,630 duzula I moduzko komando-lerroko argumentu gisa ezagutzen demo bat. 1104 01:08:40,630 --> 01:08:44,229 Bihurtzen da, batzuk atalean edo testuliburu gisa ikus daiteke, 1105 01:08:44,229 --> 01:08:48,260 nagusia ez da beti izan parentesi void izan. 1106 01:08:48,260 --> 01:08:52,430 Bihurtzen da nagusiak atsegin dute hau idatzi ere egin daiteke, bi argumentuak, 1107 01:08:52,430 --> 01:08:56,870 argc eta argv, non argc hitz kopurua da 1108 01:08:56,870 --> 01:09:00,020 programaren izenaren ondoren idatzi zure komando-lerroan 1109 01:09:00,020 --> 01:09:03,420 eta argv benetako hitzak. 1110 01:09:03,420 --> 01:09:07,540 Eta plaza parentesi artean dago gisa gomendatzen da, argv array bat da itxuraz. 1111 01:09:07,540 --> 01:09:12,210 Kate baten ondoren memoria Kate ondoren kate bat izango da joan. 1112 01:09:12,210 --> 01:09:16,010 >> Beraz, zer pset 2 hasten egiteko gai izan behar dugu, honen antzeko zerbait da. 1113 01:09:16,010 --> 01:09:21,350 Argv1 egin dut, adibide bat itzuli dugu astelehenean, eta exekutatu bada, 1114 01:09:21,350 --> 01:09:23,370 nabarituko du ez duela dirudi ezer egin gabe. 1115 01:09:23,370 --> 01:09:25,490 Bistaratzen besterik ez da bere izena. 1116 01:09:25,490 --> 01:09:31,479 Baina esan dut agur klasea, aldez aurretik jakinarazi programa hori itxuraz iterates 1117 01:09:31,479 --> 01:09:35,479 gonbitan idatzi ziren hitzak besteen gainetik. 1118 01:09:35,479 --> 01:09:41,630 Eta bide horren bidez, hitzak sartzeko izango dugu erabiltzaileak idatzi gonbitan 1119 01:09:41,630 --> 01:09:49,160 nagusiak asteburu honetan aldatzen hasi eta int main (void) int main (argc, argv) 1120 01:09:49,160 --> 01:09:52,050 eta, horrela, jaio egingo da komando-lerroko argumentuak. 1121 01:09:52,050 --> 01:09:57,100 Eta behin, benetan sofistikatuak honetan, benetan trippy programak idatzi ahal izango duzu 1122 01:09:57,100 --> 01:09:59,610 esate baterako, hau hemen, doan eta batez ere haratago 1123 01:09:59,610 --> 01:10:03,940 funtzionalitatea batzuk egin ditugu, beraz, orain arte, baina nahiko indartsua. 1124 01:10:03,940 --> 01:10:08,950 >> Beraz, honetan utziko dugu pantailan, eta astelehena, ikusiko dugu. 1125 01:10:17,570 --> 01:10:20,000 >> [CS50.TV]