[Musika jotzen] DAVID MALAN: Ondo da. Hau CS50 da, eta hau Aste 2 bukaera da. Beraz, sentitzen dut, ezin dut izan naiz ez duzu gaur guztiekin, baina Oraindik esku oso ona duzu. Baimendu aurkeztu me CS50 Rob Bowden izena. Rob Bowden: Eta noski, orduan Izan ere, barre egiteko aukera izan dugu gurekin bertikal bat bidaliko zuela bideo eta erakutsiko honetan. [Bideo-erreprodukzioa] [Musika jotzen] [Aztarnak] -Hau Bideoa ez zuen Horrela begiratu behar. It ekidin ahal izango ziren. Ezetz esan bideoak bertikala. -Vertical Bideoak gertatuko duzunean eduki kamera okerreko bidea. Zure bideo amaituko da eman kaka antza. - [Soila] Gero eta jende gehiagok adikzioa -ez dago egunero bideoak bertikalak eginez. Ez da crack edo ezer ez, baina oraindik ez da oso txarra da. Bi mota desberdin daude direnek VVS egondako jendea. Lehenengo taldea tratatzen Bideoak Argazkiak bezala tiro egin dute. Ez dute asmo txarrik. Ez dute ulertzen Argazki bat biratu bitartean, ezin benetan bideo bat piztu duzu. [CRASH] - [Tximinoa SOUNDS] Beste -Taldea pertsona da ez eman duten a [Bleep]. -Vertical Video sindromea arriskutsua da. Motion pictures dute Beti horizontal egon. Telebistak horizontal dira. Ordenagailu pantaila horizontal dira. Pertsona begiak horizontal dira. Ez gara eraiki bideo bertikala. -I Maite bideoak bertikala. Buruz zaintzen -Nobody. -Bada Arazo honen markatu gabe utzi, zuk ere lau bideoekin hasiko dira aldi berean besterik zabalera aurrezteko. Bideoak bertikala -Letterboxed litzateke frankeoa zigilua baten tamaina izan. -Eta Nonahi zabaldu egingo da. Movie pantailak dute Beti horizontal egon. Bideoak bertikal bihurtu bada onartu, zinemak altu eta skinny izan beharko dute. -Eta Zinemak guztia litzateke urratuta emateko behera eta berreraiki dute. Eta denbora berreraiki ari zirela, Mila Kunis zaharra eta itsusia litzateke. Horretan sartu beharko -Birds kraska eta hil. -We'll Guztiak gorpuak zaitez gora begira lepo. -Eta Inork ez eseri egingo lehen lerroan inoiz berriro. -George Lucas izango da berriro oharra Star Wars skinny edizioa, berriro. -I Zen inoiz benetan gai den kontatzeko istorioa kontatu nahi nuen. Honek aukera handi bat izan zen niretzat teknologia berri batekin esperimentatu. Astinduz -You're. Behin- denbora gailu mugikor bat erabiltzen da bideoa grabatu, tentazioa dago. Besterik esan gabe. Ezetz esan George Lucas izateko. Ezetz esan zaharra Mila Kunis izateko. Ezetz esan bideoak bertikala. -Eta Norbait egiten ikusten baduzu, esan, "Ez bazara eskuineko gezurrezko duten tiro!" [Musika jotzen] [END erreprodukzioa] [Txaloak] [Audio OUT] Rob Bowden: --simple kriptografia forma, hau da, funtsean enkriptazio eta mezu sekretuak deszifratzeko. Hortaz, hona hemen jostailu oso erraza dugu. Eta ideia kanpoko biribiletik da barruko eraztun inguruan biratzen. Eta ikusi ahal izango dituzu, I Handiagotzeko, agian, bada ere, horrelako zaila ikusten da. Baina, bezala, kopurua 1-- bai, mugitu. 1 zenbakia letra mapak X 2. zenbakian maps gutuna J. Izugarri zaila Ez aurrera albo batera utzi. Gutun 2 maps J. den Zenbakia 3 maps D. den So eraztun hau eman dezakezu Norbaitek mezu bat 1, 2, 3. Arrazoi batzuk zuretzat Nahi horiek XJD kontatzeko. Baina eman dezakezu zenbakien mezuaren batzuk, eta eraztun hau behar bezain luze jo dute, zer esan saiatzen ari zaren desenkriptatu ahal izateko. Beraz, ikusi ahal izango duzu hau kriptografia adibide partikular aurretik Gabonetan inguruan bada Gabonetako Story A Ikusi izan duzu. Nik inoiz ez baduzu ikusi aurretik, orduan besterik TBS piztu literalki at Gabon edonoiz, dute erakusten dutelako atzera itzuli Egun osoan zehar Itzuli atzera itzuli. Eta dagokion bideoa da hau. [Bideo-erreprodukzioa] Be ezagutzen eta Hainbat da Hori Ralph Parker egileak Little kide bat izendatu Umerzurtzak Annie Circle Secret eta hau da ohoreak guztiak jasotzeko eskubidea eta bertan agertutako gertatzen onurak. Sinatutako Little umerzurtzak Annie. Berretsiak Pierre Andre tinta! Ohore eta onurak Dagoeneko bederatzi urterekin! [Yelling Irratia] -Etorri. Dezagun berarekin. Ez dut behar duten jazz kontrabandistak eta piratak buruzko. -Entzun Bihar gauean Ondorioak abenturaren Black Pirate Ship of. Orain, garaia da Annie mezu sekretuaren Circle Secret kideak zuretzat. Gogoratu haurrek, bazkideek bakarrik Annie Circle Secret Annie sekretua mezua onar daiteke. Gogoratu, Annie arabera. Ezarri zure pin B2. Hona hemen mezua da. 12. 11. 2. Ni nire lehen bilera sekretu batean -I. -25. 14. 11. 18. 16. -Oh, Pierre ahots betean handia da. Esan izan dut Gauean duten mezua benetan garrantzitsua izan zen. -3. 25. Annie bere burua mezu bat da. Gogoratu, ez inori esan. -Bost Segundo geroago, naiz bakarrik parte etxeko gela non bederatzi mutiko bat pribatutasuna eta deskodetzea eseri. Ah! B! Hurrengo joan nintzen. E. lehen hitza da, "izan". S. orain errazagoa datozen zen. U. 25. Hori da, R. -Tira, Ralphie! Gotta Nik joan! -I'll Izango du, Ma! Gee whiz. T. O. "Ziurtatu" - Zer izan nahi duzu? Zein izan da Little umerzurtzak Annie esan nahian? Zer izan nahi duzu? -Randy Got to joan! Egingo Atera duzu? Guztiak eskubidea, ama! Izan dut eskuineko out! Hurbilago orain ari nintzen. Tentsioa ikaragarria zen. Zer izan da? Planetaren patua Baliteke oreka zintzilikatzeko! -Ralphie, Randy en got to joan! -I'll Out, izarrekin negarrez ozen! Ia ez! Nire behatzak hegan. Nire adimena altzairu tranpa bat izan zen. Poro guztietan dardarka. Ia argia izan da! Bai. Bai. Bai. Bai. Ziurtatu zure Ovaltine edan. Ovaltine? A crummy komertziala? Puta baten semea. [END erreprodukzioa] ROB BOWDEN: Beraz, nola Ovaltine erlazionatzen kriptografiari. Funtsean CS50 besterik iragarritako Ovaltine, beraz, ezin izan dugu Ovaltine komertzial crummy bat izan. Ados. Beraz, orain benetako informatikako. Gogoratu astelehenean utzi dugun urpean kateak sakontzera. Beraz, ez dugu ginen aurre katea "Zamyla." Eta aitortuz ari ginen Izan ere, tratatu ahal izango dugu "Zamyla" karaktere-sekuentzia bat bezala. Eta gogoratu ikasi dugun parentesi idazkera. Beraz, hau gordetzen ziren bada kate batean "s," gero esan badugu s tarte 0, que iba Hizki-kapitala Z. adierazi Eta esan genuen s tarte 1, hori bada Lehenengo xehez adierazten duenez, eta abar s tarte 5era arte, hau da, azken batean adierazi litzateke. Orain gogoratzen dela kate honen luzera 6 da, baina katea indizeak dira 0 5 bidez, Z horren baitan iraungo bat. Beraz, orain ikuspegi zabalago bat sartzen zure ordenagailuaren memorian, zure RAM. Beraz, nonbait, programa hau Zure ordenagailuan exekutatzen ari zaren Zamyla gogoratu beharra memoria nonbait. Beraz daiteke boluntario behar dut? Bai mesedez. Eta zein da zure izena? DEAN: Dean. Rob Bowden: Dean? Politak zu ezagutzeaz, Dean. Beraz, zatoz hona, eta marraztu dute goaz gure oroimenaren polita nifty diseinua. Orain gustatzen zait memoria pentsatzea byte-zerrenda luzea denez gero, baina besterik pantaila helburuetarako zaitugu besterik ez, eskuinera goitik behera utzi. ONDO DA? Beraz, ez dut bat erakusteko joan programa Getstrings.c. Eta beraz, programa hori guztia da egiten lau kateak da eskatzeko dituzten erabiltzaileak GetString eta, ondoren, inprimatzeko edozein dela lehen katean sartzen zen. Eta laugarren jaramonik egiten ari gara. ONDO DA. Beraz, hemen baino gehiago da gaur egun denean I lehen eskaera s1. Beraz, ordenagailua zara. Eta GetString ezartzen ari zara. Beraz, kate bat eskatu me, eta ni OK, Dean. Eman katea "Dean." Beraz, memoria nonbait duzu gogoratu behar "Dean." Beraz, idatzi memoria sartu da nonbait. Perfect. ONDO DA. Beraz, orain s2 ditugu. Eta s2 izango da GetString eskaera du. Beraz, ez dut testu bat sartu da. Sartzera noa "Hannah." Beraz, sartu "Hannah" nonbait memorian. Bai. A-H. Ados, beraz, orain s3. Eta nik beste izango da GetString eskatzeko. Eta, beraz, gaur egun, sartu "Maria". Ados. Eta gero, ez azken bat da GetString eskaera, S4. Beraz, ez dakit. Nola buruz joan ginen antidisestablishmentarianism. Beraz, sar memorian. Bai. Beraz, besterik ez "Rob". ONDO DA. Beraz, orain zergatik egin explain-- espazio horiek utzi duzu? Zergatik hau hutsik duzu Espazio hemen, hemen, eta hemen? Bai. Beraz, konturatu zenean joan nintzen beraz, bada s1-- inprimatu dugu Izan "Hannah" lasterketak eskubidea sortu den hurrengo "Dean," nola jakin nahi dugu denean kate "Dean" bukatzen? Beraz, katea s1 inprimatzen izan daiteke besterik inprimatutako "DeanHannahMariaRob" bada, ez du inolako ideiarik dute ren denean "Dean" benetan amaitzen. Ados. Beraz, memoria modu benetan kate baten amaieran honek adierazten backslash zero da. Beraz, espazio hau da, zehazki nahi duguna. Backslash zero izan behar da. Hau backslash zero izango da, eta hau, barra bat zero izango da. Eta primerako sari bat izan dezakezu boluntario perfektua izateagatik. Hartu estresa baloi bat! ONDO DA. Beraz, pertsonaia backslash honetan zero da kate baten amaieran nola adieraziko dugu. Da nola programa denean jakin ezazu kate bat inprimatu nahi du, da how-- gogoratzen dugu ikasi du strlen funtzio azken astean? Katea luzera? Da nola katea luzera gai da zehaztu kate bat zenbat denbora da. Mantentzen besterik ez da errepikatzean karaktere baino gehiago bertan topatzen arte backslash zero pertsonaia. Beraz, konturatzen garrantzitsuena backslash zero pertsonaia buruz da nik irudikatzen da bit zero guztiek. Beraz, hau dela desberdin zero pertsonaia from. Beraz, zero pertsonaia, gogoratzen baduzu Adibidez ere eman zuen bukaeran Hitzaldiaren non pertsonaiak mapa capital A maps 65era atsegin zaie. Maps bat minuskula 97ra. Lowercase b 98 izango litzateke. Beraz, zenbaki 0 ​​mapak zaie ez dut Badakizu nire burua goian. 44 edo 45. Eskualde horretan nonbait. Pertsonaia 0 Beraz, benetako kopurua da. Baina backslash zero zero bit guztiak mapak. Beraz, ez dago bereizketa bat da backslash zero artean, bertan null amaierako deitu dugu. Honako hauek bereizten da backslash zero eta pertsonaia zero. Ados. Beraz, pixka bat kateak buruz gehiago hitz egiten. Orduan hemen ikusten dugun hau da, nola ezarri beharko litzateke oroimenez. Beraz kateak sekuentzia gisa ideia hau karaktere arteko beraz ordenagailu ofiziala Sekuentzia termino sciency array bat da. Beraz, kate bat deitu genuke pertsonaiak ezagutuko ditu. Eta, egia esan, beste datuak mota hori arrayak egin ahal izango dugu daudelarik. Beraz, hau motibatzeko, adibide bat begiratu. Izango da ages0.c deitzen diogu dut kopiatu eta gure plantilla. ONDO DA. Beraz, programa honetan zer dugun da egin nahi har adina Ikasturtean zehar hiru ikasle. Beraz, badakigu int age-- eta orain ez dut 0 esateko. Beraz, agian age1 esan nahi duzu, baina helburuetarako dugu laster ikusiko, Esango dut int age0 berdinen GetInt. Beraz GetInt dei bera izan dugu I erabiliz ez gertatuko den galdetu esanez, "emadazu urterekin." Baina besterik ez da eskatzen. Eta age1 berdinen GetInt. Eta int age2 berdinen GetInt. Beraz, berriro ere, hiru ikasle, baina azken finean, aldakorra indizeak age0 age2 bidez. ONDO DA. Beraz, programa hau izango da edozein dela ere age0, age1, eta age2 egin nahi dugu, baina programa hau, azken finean, Hiru ikasleei erakusten. ONDO DA. Beraz, orain zer lau ikasle nahi badut? Beno, atzera egin behar noa Nire kodea sartu, aldatu iruzkina, eta orain int bat dugu age3 berdinen GetInt. ONDO DA. Beraz, arazoa ikusten duten hemen? Zer da arazoa konfigurazioa moduko hau? Bai. Bai. Beraz, bat sortzen ari gara ikasle bakoitzak aldakorra. Orain lan egiten duen, baina azken finean, zer nintzen orain bada esan, "urterekin hartu nahi dut Zortzi ikasleak edo 16 ikasle edo ezin zenbatu ikasleentzat ikasleak ehunka CS50 edo campusean ikasleak milaka edo milioika pertsonekin Munduko? Beraz, azken finean, hau ez da iraunkorra. Yourself kopiatzea ikusten duzun edozein unetan eta hau bezalako itsasteko kodea, Oro har, sentitu behar duzu ez dagoela modu hobea da. Beraz, hau da, non aurkeztu dugu array suposatuko duelarik. Beraz, array bat aldarrikatu duzu, hau zer formatu orokorra da da itxura. Motaren esan goaz. eta, ondoren, goazen joan izena eman array hori, besterik edozein aldagai jakin definitzen dugu. Eta gero, azkenik erabiltzen ari gara tarte idazkera hau berriro baina beste testuinguru batean nola erabiltzen ari ginen lehenago. Beraz, hemen hau normal baten itxura dela ikusten dugu, aldakorra adierazpenean. Beraz, aurretik ikusi dugu int x puntu. Beno, orain dugu agian zerbait ikusi int x parentesi 5 bezala. Eta ideia hori sartu jarriz GetInt programa horretan egun ditugun beraz ezartzeko ahal izango dugu hau modu berean. Demagun CS ere etxerako erabili ohi dugu n zerbait kopurua ere. Beraz, hemen goaz lau ikasle gordetzeko. Eta orain int adina esan dezakegu parentesi n-- ez nahiko dute lortu yet-- lau ikasle sorta bat aldarrikatu. Beraz, nola honetan begiratu beharko Memoria honen antzekoa izango da. Garbitu honetan. Eta ari gara nonbait izan joan memoria gordetzeko Jarri dut hau han. Beraz, memoria nonbait. Bat, bi, hiru, lau. Errenkadan lau zenbaki osoen daukagu lau zenbaki osoen array honetan. Beraz, gaur egun, zer da kutxak horietako baten tamaina? Bai. Lau byte da. 32 bit da. Beraz, gaur egun, hau da, hainbat Array dugun lehenago, pertsonaiak ezagutuko ditu ikusi. Kate bateko kutxa bakoitzak byte bakarra izan zen, pertsonaia bat byte bat baino ez delako. Baina zenbaki osoko sorta batekin, bakoitza koadro ditu lau byte ordena izango den zenbaki oso oso bat egokitzeko. Beraz, hau da, zer array bat lau ints itxura litzateke. Eta gero, kodea itzuli. Orain benetan gorde nahi dugu Array horretan sartu zenbaki osoko. Beraz, gaur egun, hau da, oso, oso, oso borondate eredu komun uneren muskulu memoria bihurtu. Beraz, int i berdin 0. i n baino gutxiago. i plus plus. Adin tarte berdin i GetInt. Beraz, hau loop, formatu hau, Oso ohitu behar duzu. Beraz, hau da, oro har, nola egingo dugu Batetik bestera joateko baino ia edozein array. Orain konturatu moduko honetan zergatik hasieratik bertatik ez genuen loops int for joan behar berdin i 1, baino i gutxiago edo 10 berdina. Arrazoia hasita izateaz zero lan hau ondo egiten hilarak. Beraz, multzo zero indexatuta daude. Array honen luzera 4 badago, indizeak 0 eta 3 bidez. Beraz, lehenengo bitartez hau iterazio begizta for adin ezartzeko goaz tarte 0 GetInt dei bat berdina. Beraz, edozein izanda ere I gertatu teklatua sartu. Bigarren mendatea ere, ez gara age1 GetInt berdintasuna ezartzeko. Hirugarren mendatea, age2. Final pass age3. Beraz, bada, begizta lehen mendatean 4 zenbakia idatzi dut teklatua, gero sartu dugu 4 a hemen. Bigarren mendatea sartu dut on bada 50, jarri dugu 50 bat hemen. Irugarren pass gerta daiteke Sar negatiboak 1, negatiboak 1, eta, azkenik, sartu nintzen 0-- bada eta orain gogoratzen, hori izan zen indizea hiru. Dugu begizta itzuli ondoren, i da joan 4ra izango da handituko. i jada ez da n, bertan 4 baino txikiagoa. Eta hautsi begizta dugu. Beraz, zer honekin okerra litzateke? [INAUDIBLE]? Ikusleak: [INAUDIBLE] Bai. Beraz, array lau besterik ez ditu, bertan indizeak 0 3 bidez esan nahi du. Beraz, hau balitz, nuke 4 balioa uneren batean hartu. Adin tarte 4 izango ezarriz egingo zer gerta ere hemen baino gehiago izango da zer esan behar dut, idatzi 6. Hori honetan zaizu ezarpena 6. Baina ez dakigu zer da hemen baino. Hau ez da memoria sarbidea izan garela. Beraz, gogoratzen bada aurreko hitzaldia, Zamyla balioak inprimatzeko ari zen eta uneren segmentazio hau hit zuen hutsegite. Beraz, ziurrenik, ikusten duzu segmentazio hutsegite asko ahala Arazo multzo batzuk ezartzea. Baina hau ez da modu bat, eta bertan segmentazio bat aurkituko duzu hutsegite, noiz sartzen hasten duzu Hori ez da behar duzu modutan memoria. Beraz, ez dugu sarbidea izan Kokapena hau eta honen akats bat dago. Beraz, hau da hobea. Orain ez da oraindik txiki bat Kode hori arazo. Eta hori da, funtsean ari garela oraindik lau ikasle itsatsita. Orain zortzi ikasle erabiltzeko, OK nahi badut. Ez da hori big Akordio bat. Ezin dut joan, aldatu komentatzeko, eta aldatu n. Orain zortzi ikasleekin du funtzionatuko. Bildu dut hau eta exekutatu bada honek, Niretzat erakutsiko ditu Osoko zenbaki eskatu beharko da zortzi ikasle eta funtzionatu egingo. Baina ezin hobea izateko behar baino txikiagoa da programa berkonpilatu aldi bakoitzean bakarra Ikasle kopurua aldatu nahi dut Adin sartzeko nahi dut. Beraz final hobekuntzarako honetan, ikusiko dugu hemen handiagoa dugu pertsonen kopurua eskatu du. Hemen zenbaki bat dugu geletan pertsona edo Gelan pertsona adin edozein. Baina ari gara zenbakia eskatzeko joan erabiltzaileari gelan pertsona. Beraz, hau zehatza berean do-bitartean Hori ikusi dugu aurretik amaitzen da. It zehatza bera da do-bitartean begizta duzula Arazoa multzoa ahalko gauzatzeko. Beraz, betiere Oraindik dute 1 baino n bat gutxiago sartuz, beraz, ez da lortu behar izango da gutxienez gela batean pertsona bat. Betiere Oraindik dute 1 baino n bat gutxiago sartuz, orduan ari gara berriro eskatuz jarraitzea. Mesedez, idatzi zenbakia Gelan pertsona. Orain, behin kopuru daukagu pertsonek gelan of beraz, sartu naiz agian, ez gela honetan 200 pertsona dira. Ari gara etortzen Gero hemen jaisterakoan eta deklaratzen tamaina 200 array bat. Array hori da deklaratzen ari gara big 200 adin nahikoa eduki. Datozen behera, da loop zuk oso erabiliko da ahal izateko. Beraz, array honen gainean errepikatzean, kokapena bakoitzari esleitzea Array horretan zenbaki oso bat, eta ondoren, azken finean, hemen gaude besterik errepikatzean adibide bat jarriz array horretan, ez balioak esleitzeko, baina balioak sartzeko. Beraz, hemen baino gehiago ikusiko dugu dugun , esaten ari urtebeteko epean, % pertsonaren i% i urte izango dituzte, non i lehen% i gehi 1 da. Beraz, i indizea aldagai hau da. Eta% bigarren i da izango da du adin sorta plus 1 gordetako balioa. Beraz, plus hau 1 da ari garelako bakarrik saying-- plus hau 1, adin i gehi 1. Plus hau 1 da ari garelako bakarrik , esanez urtebete orain pertsona batetik zahar hau izango da. Beraz, zergatik i honek plus 1 da? Zergatik plus bat 1 izan dugu bertan? Bai. Bai. Beraz, gogoratu Arrayak zero indexatuta. Beraz, bada, hau inprimatzen ari garen kanpo norbait besterik irteera irakurri, ondoren, ziurrenik, zerbait ikusi nahi dute Pertsona bat, pertsona bat zenbaki bezala, 20 urte beteko ditu. Pertsona bi zenbakia 15 urte beteko ditu. Dute litzaidake ez baizik eta pertsona ikusi zero zenbakia 15 urte ditu. Beraz, hau bildu eta besterik ikusten zer antzekoak espazio batzuk sortu badirudi. Egin adin biltzen. Adin exekutatzen. Pertsonen kopurua ikusi dugu gelan. Beraz, esango dut badira Gelan hiru pertsona. Pertsona bat zenbaki Aroa, demagun 15, 20, 25. Eta hemendik urte bat esango dizut orain 16, 21, 26 izango dira. Ea, bada, lan egiten duen Let Hori ez da 3 berdina n batekin. Beraz, bada, esan nuen pertsonen kopurua 5 da, bat, bi, hiru, bi, bat, hemendik urte bat bi, hiru izango dira, lau, hiru, bi urte. Hortaz, ezin izan dut Erraz dute n izan 10,000. Orain eserita izango dut hemen luzez Pixka bat adin sartuz, baina honek lan egiten du. Beraz, memoria orain nonbait dugu tamaina 10.000 array bat, beraz, azken finean, 40.000 byte, ez daudelako lau byte Osoko zenbaki horiek bakoitzeko. Beraz, ez da array bat tamaina 10.000 non ahal dugun 10.000 pertsona horiek urte gordetzeko. Ados. Honen edozein galdera? Bai. Zer zenbaki negatiboa eman baduzu? Ikusi dezagun zer gertatzen den. Beraz, kasu horretan kopuru zehatz honetan gela, bat negatiboa duten pertsonen. Hori baztertu egin zuen, Hemen eman gertatuko dugulako Izan ere, n bada manipulazioa ari gara berriro galdetu behar baino gutxiago doa. Deklaratzeko saiatzen bazara tamaina negatiboak sorta, da, oro har, ez du funtzionatzen. Hargatik saiatu. Dezagun ahaztu whatever balio idazteko n dute eta besterik esan int bat adin negatiboa. Ea are biltzen ditu bada. Ez nago ziur. No. Beraz, adin da gisa deklaratu tamaina negatiboa array. Beraz upfront array bat ezagutzen badu, ezin tamaina negatiboak izan eta arbuiatu. Orain, ez bagenu kudeatu do bitartean-begizta hau behar bezala, ez ginen egiaztatzen bada n 1 baino txikiagoa bada dezagun dugu esan besterik ez dute hori guztia eta ordez hartu besterik ez dugu zenbaki oso bat. Ez dio axola osokoa dela zer da, Tamaina horretako array bat aldarrikatzen dugu. Beraz, konpiladoreak ezin seguru kexatu orain. Halako bildu dut bada beraz, ezin da kexatu, Ezin da jakin naizela delako Zenbaki negatibo bat sartzen joan, bertan baliogabea izan daiteke. Guztientzat daki, agian Zenbaki positibo bat sartu, hau da, primeran baliozko. Gauza bera gertatzen negatiboa idazteko 1 badut Gelan pertsona, segmentazioa errua. Beraz, OK. Hargatik gehitu honek atzera besterik mantendu da jatorriz zen. Beraz, adin. Orain bat saiatu nahi dut negatiboa age-- beraz dezagun esan gelan bost pertsona daude. Pertsona bat zenbaki Aroa 4 negatiboa, pertsona hiru da zero, pertsona OK three--. Hortaz, hona hemen, urtebete barru, pertsona kopurua negatiboa 3 urte izango dituzte bat. Beraz, ziurrenik, ez du zentzurik. Hori, ordea, zeren bila Kodea at egiten ari garen guztia da GetInt eskatzeko. Orain, izan genuen bada GetPositiveInt funtzioa edo, besterik gabe, besterik ez zuen hori egin dugu bera, berriz, begizta moduko behera dago, ondoren, hau ezin hobeto ondo funtzionatu. Baina jakin honetan Kasu, ez dugu besterik ez gertatuko balio negatiboak manipulazioa izan. Array buruz beste edozein galdera? ONDO DA. Beraz, array-ak orain ikusten dugu. Eta ari gara erabili behar joan komando-lerroko argumentuak honetan. Beraz, arazo girotuta two-- Asko ezagutzen dut agian oraindik ere arazo multzo batean dihardu bat, baina arazo multzo bi da datozen. Arazo bi ezarri, joan zaren kateak, array dira aurre egin behar, eta, komando lerroko argumentuak. Beraz, zer dira komando lerroko argumentuak? Orain, hemen ikusi ahal izango duzu behera zehazki zer ekarriko duen aurkezpenik gutxi gertatzen unea iritsi da. Int nagusia, inc argc ikusi dugu, katea argv Parentesi. Beraz, lehenengo horrek interpretatzeko saiatu utzi zer dela esateko, dudarik gabe. Orain, OK. Beraz lerroan egon behar duzu Komando horietako batzuk ohitu orain, eta seguruenik exekutatzen baduzu terminal aurretik CD. Beraz cd pset1 esaten badugu, jakin behar duten duzula izan pset1 direktorioa sartu aldatuz. Orain konturatu dut inoiz duzula Horrelako programa bat aurretik idatzia. Programa bakoitza idatzi duzula, exekutatu litzateke duzu, adibidez, dot barra Mario, dot barra Greedy, eta, ondoren, duzun galde diezazuke sarrera. Orain, hori ez da zer aldaketa direktorioa ez. CD exekutatzen baduzu, ez du ondoren, esan, bertan direktorioa ez cd nahi duzun? Horren ordez, esan besterik ez duzu, cd pset1, eta pset1 direktorioa sartu besterik ez da doan. Beraz, beste adibide antzera ditugu. kaixo. Egiteko exekutatzen duzun, ez du ondoren, esan, zein programa litzateke egin nahi duzu? Esaten duzu, besterik gabe, hartu du Komando-lerroan egin kaixo. Mugi zaitez beste adibide bat da. Honek bat gara mugitzen ari artxibatzen mario.c direktorio bat sortu. Beraz, badakizue, adibide honekin dugu benetan bi argumentu ari gara pasatzen. Ez dago mario.c lehen argumentua da, eta dot dot bigarren argumentua da. Eta gero egiteko exekutatzen duzun, duzu ikusi komando benetan luzea duten lerroan komando benetan luzea duela komando lerroan inprimatutako. Beraz, hori luzea komando hau helburuen zati labur bat da, baina orain hiru daukagu komando-lerroko argumentuak. Dot etenaren zero, kaixo, eta hello.c. Beraz, hauek dira komando-lerro argumentuak, argumentuak at duzula pasatzen ari Komando-lerro bat, hauxe ez dute eskatuko den denean programa exekutatu beharko duzu. Frustrating izango litzateke, betiere bada zuena Clang duzu, esan du "OK, bertan programa bertan fitxategia ari zaren konpilatzean? Hello.c. Zer banderak egiten duzun Gustatzen sartzera? etenaren o. Zer gustatuko litzaizuke fitxategia deitu behar da? kaixo. Ez, besterik exekutatu Clang etenaren o kaixo hello.c. Beraz, hau atzera begiratu. Orain argc argc argumentu zenbatzen da. Komando-lerro kopurua da argumentuak komando lerroan sartu. Beno, argv-- teknikoki v bektore dago, horrek, funtsean, array esan nahi du. Baina hori alde batetara utzi dezakezu. Argv-- katea argv dugula, beraz, kate argv Parentesi. Beraz, hau beste modu bat da Ez baduzu ikusi aurretik parentesi. Beraz, ikusi dugu parentesi notazioa denean esan dugu, bezala, katea s berdinen Zamyla. s tarte 0 pertsonaia Z. sartzen Nik ere parentesi denean ikusi dugu esan dugun int adin tarte 5. Hori tamaina 5 array bat deklaratu. Hortaz, hona hemen beste bertsio bat da Parentesi ez dugu ikusi aurretik. Beraz, kate argv moduko hori Guztiz ezaguna izango litzateke besterik ez litzateke kate bat izan dela. Orain parentesi artean adieraziko hori array bat da. Beraz, kate argv parentesi bitartekoak argv duten kateen array bat da. Orain teknikoki kate bat karaktere array bat da. Beraz, hau da, orain array bat karaktere array baten. Baina askoz errazagoa da pentsatu pentsatzea besterik ez kateen array bat. Beraz, zergatik nahi du parentesi artean daude hutsik? Bezala, zergatik ezin esan dugu, parentesi 5, parentesi n? Bai. Bai. Ez dakigu zenbat Sarrerek ez dira izango. Beraz begiratzen dugu Clang adibide kontuan hartuz gero, clang esan dugu etenaren o kaixo hello.c. Kasu honetan, ez da gertatuko hiru komando-lerroko argumentuak izan. Eta beraz brackets-- ikusiko dugu Bigarren bat ere ez litzateke hiru izan. Teknikoki lau izango litzateke. Baina parentesi artean, ez genuke esan, badira hiru. Baina orain begiratu genuen mugimendu hartuz gero mario.c dot dot, parentesi artean bi jarri ahal ditzaten nahi genuke. Eta badira komando asko dagoela Komando-lerro kopurua aldagai bat argudioak. Beraz, zer bertsio honetan tarte idazkera adierazten ditu da argv duten kateen array bat da. Baina ez dakigu zenbat kateak array horretan daude. Eta nola ez, orduan badakizu nola dugu kateak asko array dira? Hori funtsezkoa argc da. argc kontatzen digu argv zenbat denbora da. Beraz mantendu den azken gauza mind da, teknikoki, komando bera bat bezala zenbatzen komando-lerroko argumentuak. Beraz cd pset1, bi daude komando-lerroko argumentuak. Berez programan, cd, eta, ondoren, Benetako da zati argudioa, pset1. Hori orain arte idatzi duzun edozein programa komando-lerroko argumentu bat dot izan du barra Mario. Hori da komando-lerroko argumentu bakarra da. Beraz, orain Clang begira etenaren o kaixo hello.c. Beraz, zer da argc? 4. Beraz argc 4 da. Clang, beraz, argv tarte 0 clang da. argv tarte 1 etenaren 0 da. argv parentesi 2 kaixo da, eta argv parentesi 3 hello.c da. Ados, beraz, honi buruzko galdera, eta gero dugu Adibide programazioko batzuk begiratu. ONDO DA. Beraz hello3.c begirada bat hartuko dugu. Beraz, hau ezaguna izan beharko luke Lehenengo c adibide bat besterik ez genuke esan izan dugu, kaixo Mundu, baina orain hau da orokorrago. Hortaz, hona hemen kaixo esaten ari gara % S backslash n argv tarte 1. Nabarituko puntu honetan arte beraz, hau da, Nire txantiloi batean nolakoak ziren ditu. Izan nuen int main (void), eta, ondoren, I litzateke funtzio nagusia zerbait egin. Orain ordez, behin aurre hasten dugu komando-lerroko argumentuak, a adierazi behar dugu nagusiak forma desberdinak. Beraz Hello3 begira Berriro, nagusia egingo da Bi argumentu hartu int argc da gaur egun, komando-lerroko argumentu kopurua, eta kate parentesi argv, benetako kateak lerroan sartu. Beraz, ez dut hori aldatzen joan nintzen template hain zuzen ere hori islatu nahi du. Orain, betiere, idatzi duzula programa bat, ez baduzu edozein komando-lerroko hartu behar argumentuak ondoren erabili int main (void). Baina orain, noiz idazten ari zaren komando-lerroko argumentu programak; ari zaren arazo beharreko eginez ezarri two-- orain, bada, exekutatzen ari zaren hartu behar duten programak komando-lerroko argumentuak, Formulario honen nagusia izan behar duzu. Beraz, hemen honen erabilera handia da komando-lerroko argumentu baten. Beraz, argv 1 inprimatzeko. OK beraz dezagun konpilatu eta programa hau exekutatu. Egin Hello3. Biltzen ditu. Dot barra Hello3. Eta demagun, "Rob". Kaixo Rob. «Kaixo Maria," kaixo Maria esaten badut. Kaixo Maria. Hannah oraindik dioenez, "kaixo Maria, "ez nagoelako gure argv 2 ezer egiten. Argv 2 now "Hannah." Izango litzateke Argc 3 izango litzateke. Zer egin dut bada? Beraz, kaixo nulua. Izan ere, laburki ukitu zuen hori, teknikoki, GetString null itzuli liteke, baina lortuko dugu asko gehiago zer null sartu benetan da. Baina hartu materia gisa Izan ere, ez da, oro har, txarra. Zerbait gaizki egin dugu bada "Hello nulua." inprimatzeko ezazu Eta arrazoia genuen zerbait gaizki is-- bai, denean dot barra Hello3 ran I, argc 1 zegoen. Beraz, horrek esan nahi du argv luzera 1 zegoen. Array baten luzera 1 baldin bada, Balio al indize bakarra zero da. Eta beraz, hemen argv 1 kanpo dago array honetan sorta. Denean saiatu naiz aurretik antzekoa izan da 6 gordetzeko array amaieran kanpo. Beraz, zerbait sartzeko saiatzen ari naiz argv zenbatzen kanpo, eta nulua ari gara. Beraz, hobe bertsio bat hau, hobekuntza bat, bada esplizituki argc egiaztatuz. Beraz argc berdinen 2, horrek esan nahi zuena dugu dot barra Hello3 Rob antzeko zerbait. Eta inprimatu egingo "kaixo Rob." Argc ez da berdina bada 2, orduan besterik ez da joan edozein dela ere jarri duzu alde batetara utzi komando-lerroko argumentu batean komando-lerroko argumentu gisa. Edo ez baduzu jarri duen guztietan, da Hori besterik ez baztertu eta esan behar da, "Kaixo duzu." Beraz, hau konpilatzean. Egin hello4. Eta hello4 martxan. Modu horretan, korrika, zer inprimatu behar? "Kaixo duzu." Kaixo duzu. Zer hello4 Rob buruz? "Kaixo Rob." Eta, azkenik, kaixo Rob Maria besterik ez da "kaixo duzu" berriro, duzu ez zuen benetan sartu delako zerbait dela espero. Izen gehiago sartutako duzu kudeatzeko izan da baino, beraz, besterik defaulted kaixo duzun portaera. Beraz, horri buruzko galderak? Edo komando-lerroko argumentuak? Ados, beraz, begirada bat hartu Bikote erabiliz adibide gehiago komando-lerroko argumenturik lehen etenaren 1 dot c argv ditugu. Beraz iruzkinak eman kanpoan zer Programa honetan egiten egon beharko. Baina konturatu hau da gaur egun begizta, honen eredu zehatza partiduak Aurretik esaten dut. Gertatuko dugu besterik behar izan ordez argc erabiliz n. Orain argc n da benetan. Argv array luzera da. Beraz, argv zehar errepikatzean array printf-tzeko argv balio bakoitza. Beraz, egin dut bada. Egin argv 1. Biltzen. Dot barra argv 1. Just hau abiarazi du, grabatuak dot slash argv 1 zela agindu-lerroa bakarrik geroztik programaren izena argumentu. Beti egongo da least-- egon argc ezin da bat baino gutxiago, Beti egongo da geroztik, gutxienez programaren izena dela exekutatu. Beraz, argv 1 Rob izango argv 1 inprimatu eta, ondoren, lerro berri on "Rob". Beraz, lehen iterazio batean begizta honen, 0 i da. Argv 0 programan izena da. Dot barra argv 1. Eta gero argv 1 nire lehen da komando-lerroko argumentu, hau da, Rob. Une honetan, berdintasunarekin argc gara. Begizta hautsi dugu, eta egiten gaude. Beraz arbitrarioa batentzat du funtzionatuko komando-lerroko argumentu kopurua. Iragarki argv 0, argv bistaratzen 1, argv 2, argv 3, argv 4. Eta han argv no 5 da. argc 5 berdina da. Beraz argc at i berdin 5, apurtu begizta dugu. ONDO DA. Beraz, horri buruzko galdera dugu aurretik Adibide zailago bat begiratu? Beraz, argv 2. Ados. Beraz, oraindik ari gara inprimatzeko komando lerroko argumentuak. Baina orain konturatu ginen dute begizta habiaratu. Beraz, zer egiten ari da hau? Beraz, lehen begizta egiten ari da zehazki zer aurretik egin da. Oraindik ari gara begizta komando-lerroko argumentu bakoitzeko, baina orain bigarren loop honetan dugu halaber, honen antzeko zerbait ikusi baino lehen. Noiz izan zuen baino gehiago errepikatzean Egindako Zamyla inprimatzeko Z-A-M-Y-L-A. Beraz, int j bigarren begizta hau berdinen 0, n argv tarte i strlen berdin. Hargatik uste lehen the-- Goazen bidez. Pentsa dezagun ordenagailua zer egingo zenuke Egin programa hau zuena besterik ez dut dot gisa bada barra-etenaren argv 2. Beraz, bada, kode hau eta exekutatu dut, eta gero argc da 1 berdina izango. Eta katea argv-- ez da bakarra indize bat izan nahi du argv joan, eta hori da berdina dot izango da barra argv 2-- programaren izena. Ados, beraz, orain berdin i 0 baino gutxiago i 1, i Plus int j berdinen 0, n berdin argv tarte 0 strlen, hain begizta honen lehenengo iterazio. argv tarte 0 dot barra argv 2 da. Beraz, katea luzera du zein den? Beno, dot barra A-R-G-V etenaren 2. Beraz, hori strlen 8 izango da. Beraz j funtzioak 0, n berdinen 8. Betiere j da 8, J ++ baino gutxiago. Eta horrekin goaz izan joan karaktere bakar bat, inprimatzeko bertan parentesi argv i parentesi j da. Beraz, i bakarra zero da. Oraindik ere bakarra izango dugu komando-lerroko argumentu. Lehen iterazio horretan loop, gaude inprimatzeko izango da argv tarte 0 tarte 0. Eta gero j da Kontatzailea joan. Eta inprimatzeko goaz argv tarte 0 tarte 1. Eta gero, argv tarte 0 parentesi 2. Beraz, hau da gure lehen topaketa multi-dimentsioko array. Gogoratu lehenago esan nuen argv dela teknikoki karaktere array array bat. Beraz, hemen zerbait bezala esan badut katea s argv tarte i berdin, eta, ondoren, esan s dut parentesi j, hau Gauza bera lortu beharko litzateke. Orain, ikusi aurretik s tarte j duzun. Hori besterik ez da j-garren sartzeko kate honen izaera. Beraz, honekin, lortzen ari gara j-garren i-garren argv du pertsonaia. Beraz, azken finean, irteera hau egin beharko lukete? Egin argv 2. Biltzen. Dot barra argv 2. "Rob Maria Hannah," eta ematen diguten gela batzuk. Beraz, ikusi dugu hori ez dela irteera dot bere lerro eta barra jarri kabuz lerro eta bere kabuz line on. Da bakoitzak inprimatzeko banakako izaera komando-lerroko argumentu bakoitzeko. Eta, ondoren, horien artean, delako linea berri hau Oraindik hemen behera inprimatzeko dugu, in haien arteko linea berri bat inprimatu izango da. Beraz, hau antzekoa da aurretiko argv etenaren 1, eta bakoitzak bere inprimatutako komando-lerroko argumentu, baina orain ari gara inprimatzeko komando lerroko argumentuak eta, ondoren, bakoitzak bidez errepikatzean komando-lerroko argumentu bakoitzaren izaera irteera hau lortzeko. ONDO DA? Beraz, horri buruzko galderak? Gauza bat kontuan izan dela komando-lerroko argumenturik espazio bezala beraz, banandu dira berez espero duzu izan zien. Beraz, kate bat da tarterik izan daiteke. Ez da super garrantzitsua da, baina badut irugarren komando-lerroko argumentu nahi espazio bat izan behar da, eta, ondoren, I honen antzeko zerbait esan genezake. ONDO DA? Beraz, orain, oraindik soilik hiru ditu komando-lerroko argumenturik ondo 4. Dot barra etenaren argv 2, Rob, Maria, eta Hannah Bloomberg. ONDO DA. Honetan galdera? Ez dago ezer berezirik espazioa izaerari buruz. Gertatzen besterik ez da hori izan zen komando-lerroko espazioa pertsonaia tratatzen Argumentu bakoitzak bereizteko nola bezala. Ados. Beraz, ondoren, arazo multzo two-- izan zaren joan sekretua kriptografia simetrikoaren begira. Beraz, adibide hori antzekoa ikusi Gabonetako Story A badugu, ezingo dituzu hainbat gauzatzeko ari algoritmo hori, jakin mezu bat, ahal izateko ari zaren joan Mezu hori enkriptatzeko Sekretu hori ematen ez duen norbait gakoa, eraztun deskodetzailea horrekin, desenkriptatzeko gai izan behar du. Beraz, hori estandarra edizioan da. Ezartzeko ari zara bi bertsio desberdinak. Begirada bat hartu gertatuko baduzu hacker edizioa: orain, eman goaz duzu hau bezalako kate bat, bertan pasahitza zifratu bat adierazten du. Beraz, zure helburua da irudikatu desenkriptatutako pasahitza zein den. Azken hau da, benetan nola pasahitzak dira ordenagailuak asko gordetzen dira, eta besterik gordetzen honetan ausazko karaktere katea. Irudikatu nola heldu behar duzun ausazko karaktere katea honetatik Jatorrizko pasahitza zer zen. Eta, azkenik, honen ondoren Arazo multzo, beharko izan honek zer esan nahi duen ulertzeko gai. Beraz, nola deszifratu ikasiko duzu ausazko kate moduko hau. Era berean, gogoratu behar dituzu astetik bada 0, URL honetan ikusi izan liteke. Eta gai izan behar duzu desenkriptatzeko honek azkenean. Baliteke pozik duzunean desenkriptatzeko, eta klikatu esteka. Ados. Hori da gaur egun. Beraz, ikusten duzu datorren astean! [ELECTRONIC Musika jotzen]