[MIZIK jwe] DAVID Malan: Tout dwa. Sa a se CS50, e sa se nan fen semèn 2. Mwen se konsa regrèt mwen pa ta ka la ansanm ak nou tout jodi a, men w ap nan trè bon men. Pèmèt mwen prezante CS50 nan pwòp Rob Bowden. ROB BOWDEN: Ak nan kou, Lè sa a, nou dwe fè plezi nan lefèt ke li voye nou yon vètikal videyo ak montre sa a. [VIDEO lèktur] [MIZIK jwe] [Mak pye] Videyo -Sa a pa t ' gen gade fason sa a. Li te kapab yo te anpeche. Di pa gen okenn videyo vètikal. Videyo -Vertical rive lè ou kenbe kamera ou wout la sa ki mal. Videyo ou pral fini leve je l 'tankou krap. - [Groyeur] -Pa Gen plis ak plis moun dejwe nan fè videyo vètikal chak jou. Li pa nan krak oswa pa gen anyen, men li la toujou reyèlman move. Gen de diferan kalite moun ki ap pini ak VVS. Gwoup la premye trete nan videyo yo tire tankou foto yo. Yo pa vle di nenpòt ki mal. Yo jis pa konprann ke pandan y ap ou ka vire yon foto, ou pa ka vrèman vire yon videyo. [Aksidan] - [Makak son] -La Lòt gwoup se moun ki pa bay yon [top]. -Vertical Sendwòm Videyo se danjere. Foto Mouvman gen te toujou orizontal. Televizyon yo orizontal. Ekran òdinatè yo orizontal. Je Pèp la yo se orizontal. Nou pa bati yo gade videyo vètikal. -Mwen Renmen videyo vètikal. -Nobody Gen sousi pou ou. -Si Pwoblèm sa a nan kite san limit, ou twò ap kòmanse ki montre kat videyo nan yon fwa jis pou konsève pou Pleasant. -Letterboxed Videyo vètikal ta gen gwosè a nan yon koupon pou achte tenm. -epi Li pral gaye toupatou. Ekran fim gen te toujou orizontal. Si videyo vètikal vin aksepte, sal sinema ap gen yo dwe wotè ak mens. -epi Tout nan teyat yo fim ta gen jwenn kraze nèt vide atè ak rebati. E pa lè ke yo te rebati, Mila Kunis ta dwe fin vye granmoun ak lèd. -Birds Pral aksidan nan yo, li mouri. -We'll Tout jwenn rèd kou soti nan leve je l '. -epi Pa gen moun ap chita nan ranje devan an tout tan tout tan ankò. -George Lucas pral re-lage Star Lagè again-- edisyon an mens. -Mwen Te pa janm reyèlman kapab di istwa a ke mwen te vle di. Sa a te yon chans gwo pou mwen pou m eksperyans ak yon nouvo teknoloji. -You're Yon embesil. -Every Tan se yon aparèy mobil itilize yo videyo dosye, anba tantasyon an ki gen la. Jis di pa gen okenn. Di pa gen okenn George Lucas. Di pa gen okenn fin vye granmoun Mila Kunis. Di pa gen okenn videyo vètikal. -epi Si ou wè yon moun fè li, di, "ou pa ap tire ki egare dwat!" [MIZIK jwe] [END lèktur] [Aplodisman] [AUDIO OUT] ROB BOWDEN: --simple fòm chifreman, ki se fondamantalman chifreman a ak dekripte nan mesaj sekrè. Se konsa, isit la nou gen yon jwèt trè senp. Apre sa, lide a se bag la deyò wotasyon alantou bag la enteryè. Epi ou ka wè, petèt si mwen rale nan, that-- li difisil yo wè. Men, tankou, nimewo a 1-- byen, ki brannen l '. Nimewo a 1 kat nan lèt la X, nimewo 2 kat nan lèt la J. ekstrèmman difisil pa sote pi devan. Lèt 2 kat J. Nimewo 3 kat D. Se konsa, ak sa a bag ou kapab bay yon moun yon mesaj 1, 2, 3. Pou kèk rezon ou vle di yo XJD. Men, ou ka ba yo kèk mesaj nan nimewo, ak osi lontan ke yo gen sa a bag yo, yo ka dechifre ki sa w ap ap eseye di. Se konsa, ou ka te wè sa a egzanp patikilye nan chifreman anvan si alantou sezon an Nwèl ou te ap gade Yon Istwa Nwèl la. Si ou pa janm te wè l 'devan, lè sa a jis vire sou kwiyre a literalman nenpòt ki lè sou Nwèl Èv, paske yo jis montre l 'tounen nan do nan do nan do nan do tout jounen an. Ak videyo a ki enpòtan se sa a. [VIDEO lèktur] -Fè Li te ye nan tout ak diverses ki Ralph Parker se Avèk prezant sa mwen nonmen yon manm nan Little nan Òfelen Annie sekrè Fè yon ti wonn epi li gen dwa nan tout onè yo ak benefis ki rive kite yo pase. Siyen Little Òfelen Annie. Kontresiye Pierre Andre nan lank! Honors ak benefis deja a laj de nèf! [Tap rele ke soti nan radyo] -Come Sou. Se pou yo jwenn sou ak li. Mwen pa bezwen tout sa ki jazz sou kontrebandye ak pirat. Demen -Listen mitan lannwit ak avanti a conclure a pirat bato Nwa a. Koulye a, li lè pou Sekrè mesaj Annie a pou ou manm nan Sèk la Sekrè. Sonje timoun, se sèlman manm a sekrè Fè yon ti wonn nan Annie ka dekode sekrè mesaj Annie a. Sonje byen, Annie se depann sou ou. Mete Pins ou nan B2. Isit la se mesaj la. 12. 11. 2. -Mwen Menm mwen nan premye rankont sekrè m 'yo. -25. 14. 11. 18. 16. -Oh, Pierre se nan gwo aswè a vwa. Mwen te kapab di aswè a ki mesaj te vrèman enpòtan. -3. 25. Sa se yon mesaj soti nan Annie tèt li. Sonje byen, pa di nenpòt ki moun. Segonn -Five pita, mwen se nan sèlman nan chanm nan kay la kote yon ti gason nan nèf te kapab chita nan sou vi prive ak decode. Aha! B! Mwen te ale nan pwochen an. E. mo an premye se "dwe." S. Li te vini pi fasil kounye a. Etazini 25. Sa a R. -Come Sou li a, Ralphie! Mwen te oblije ale! -I'll Dwe gen dwa desann, Ma! Gee sifleman. T. O. "Asire ou ke ou" - asire w ke ou ki sa? Ki sa ki te Little Òfelen Annie ap eseye di nou fè? Asire ou ke ou ki sa? -Randy Te gen yo ale! Èske w ap tanpri ye konsa? -Tout Dwa, manman! Mwen pral dwe gen dwa soti! Mwen te resevwa pi pre kounye a. Tansyon an te terib. Ki sa ki te li? Sò a nan planèt la ka pann nan balans lan! -Ralphie, Randy a te rive nan ale! -I'll Dwe gen dwa soti, pou nonm k'ap rele byen fò! Prèske la! Dwèt mwen te pran vòl. Lide m 'te yon pèlen an asye. Chak pò vibre. Li te prèske klè! Wi. Wi. Wi. Wi. Asire ou ke ou bwè Ovaltine ou yo. Ovaltine? Yon komèsyal crummy? Pitit yon femèl chen. [END lèktur] ROB BOWDEN: Se konsa, sa a, se ki jan Ovaltine gen rapò ak chifreman. Fondamantalman CS50 jis pibliye Ovaltine, se konsa nou te kapab gen yon komèsyal crummy pou Ovaltine. Tout dwa. Se konsa, kounye aktyèl syans òdinatè. Sonje nan Lendi nou te kite koupe plonje pi fon nan strings. Se konsa, nou te fè fas ak fisèl la "Zamyla." Apre sa, nou te rekonèt lefèt ke nou ka trete "Zamyla" kòm yon sekans nan karaktè. Epi sonje ke nou te aprann notasyon a bracket. Se konsa, si sa a yo te ki estoke nan yon fisèl "s," Lè sa a, si nou di nan bracket 0, ki ta endike Z. nan kapital lèt Men, si nou di nan bracket 1, ki ta kapab endike miniskil premye yon an, ak sou sa jiska la bracket 5, ki ta kapab endike yon dènye a. Koulye a, sonje ke nan longè nan fisèl sa a se 6, men endis yo nan fisèl la yo se 0 a 5, Z nan ki dire yon. Se konsa, sa a kounye a adapte nan yon foto pi gwo nan memwa òdinatè w lan an, RAM ou yo. Se konsa, yon kote pwogram nan ki w ap kouri òdinatè w lan bezwen sonje Zamyla yon kote nan memwa. Se konsa, mwen ka gen yon volontè? Wi, tanpri. Ak sa ki jan ou rele? DEAN: Dean. ROB BOWDEN: Dean? Nice al kontre ou, Dean. Se konsa, vin sou isit la, ak nou ap ale nan gen ou trase sou nou an bèl Layout debouya nan memwa. Koulye a, mwen renmen panse nan memwa kòm youn teren long nan bytes, men jis pou rezon ekspozisyon nou pral jis gòch a dwat, anwo jouk anba. OK? Se konsa, mwen pral montre yon program-- Getstrings.c. Se konsa, tout pwogram sa a se fè se mande kat strings soti nan itilizatè a ak GetString ak Lè sa a enprime tou sa ki premye fisèl antre te ye a. Nou ap inyore de a kat. OK. Se konsa, sou isit la now-- lè M 'premye demann S1. Se konsa, ou yo se òdinatè a. Epi w ap mete ann aplikasyon GetString. Se konsa, ou mande yon fisèl soti nan mwen, mwen di: OK, Dean. Bay fisèl la "Dean." Se konsa, yon kote nan memwa ou bezwen sonje "Dean." Se konsa, ekri l 'nan memwa yon kote. Pafè. OK. Se konsa, kounye a nou gen S2. Apre sa, S2 a pwal yon demann yo voye GetString. Se konsa, mwen pral antre nan yon fisèl. Mwen pral antre nan "Hannah." Se konsa, antre nan "Hannah" yon kote nan memwa. Yeah. A-H. OK, se konsa kounye a s3. Epi, se k ap pase yo dwe yon lòt mande GetString. Se konsa, kounye a antre nan "Maria." Tout dwa. Lè sa a, gen nan yon dènye demann yo voye GetString, S4. Se konsa, mwen pa konnen. Kouman sou nou ale ak Antidisestablishmentarianism. Se konsa, antre nan ki nan memwa. Yeah. Se konsa, jis fè "Rob." OK. Se konsa, kounye explain-- poukisa te fè ou kite espas sa yo? Poukisa ou gen sa a vid espas isit la, isit la, ak moute isit la? Wi. Se konsa, remake lè m 'ale ekri ak lèt ​​detache s1-- Se konsa, si nou te gen "Hannah" kouri dwa moute pwochen nan "Dean," ki jan nou konnen ki lè fisèl "Dean a" fini? Se konsa, enprime S1 nan fisèl ka gen jis enprime "DeanHannahMariaRob" si li gen nenpòt siy pa a lè "Dean" aktyèlman fini. Tout dwa. Se konsa, nan memwa wout la nou aktyèlman reprezante sa ka fèt nan yon fisèl se ak antislach zewo. Se konsa, espas sa a se ekzakteman ki sa nou te vle. Li ta dwe yon antislach zewo. Sa a pral yon antislach zewo, ak sa a pral gen yon antislach zewo. Epi ou ka gen yon pri Fabulous pou yo te yon volontè pafè. Pran yon boul estrès! OK. Se konsa, sa antislach pèsonaj zewo se ki jan nou endike nan fen yon kòd. Li nan ki jan lè nenpòt pwogram bay vle enprime yon fisèl, li nan how-- sonje nou te aprann fonksyon an strlèn semèn pase a? Fisèl longè? Li nan ki jan fisèl longè se kapab detèmine konbyen tan yon afè se. Li jis kenbe iteration sou karaktè yo jouk li jwenn nan antislach zewo karaktè. Se konsa, bagay la enpòtan reyalize sou karaktè nan antislach zewo se li nan reprezante pa tout zewo nan miyèt moso. Se konsa, remake ke sa a se distenk soti nan pèsonaj la zewo. Se konsa, pèsonaj la zewo, si ou sonje nan egzanp lan ke li te bay nan fen nan konferans kote karaktè kat jeyografik to-- tankou kapital Yon kat a 65. Miniskil yon kat 97. Miniskil b ta dwe 98. Se konsa, nimewo 0 kat yo to-- mwen pa fè sa konnen nan tèt la nan tèt mwen. 44 oswa 45. Yon kote nan rejyon sa. Se konsa, pèsonaj la 0 se yon nimewo vrè. Men, antislach zewo kat nan tout zewo miyèt moso. Se konsa, gen nan yon distenksyon ant antislach zewo, ki nou pral rele Terminator a nil. Genyen yon diferans ant antislach zewo ak pèsonaj la zewo. Tout dwa. Se konsa, pale yon ti jan plis sou strings. Se konsa, Lè sa a, nou wè isit la sa a se ki jan li ta mete deyò nan memwa. Se konsa, ide sa a nan strings kòm yon sekans a characters-- konsa òdinatè a ofisyèl sciency tèm pou sekans se yon etalaj. Se konsa, nou ta ka rele yon afè yon etalaj de karaktè. Apre sa, yo aktyèlman lòt done kalite ke nou ka fè ranje soti nan. Se konsa, yo motive sa a, gade nan yon egzanp. Nou pral rele li ages0.c mwen pral kopye epi kole modèl nou an. OK. Se konsa, nan pwogram sa a ki sa nou vle fè se gen tan pwan laj la nan twa elèv ki nan kou a. Se konsa, nou konnen int age-- nan e kounye a, mwen pral di 0. Se konsa, ou ta ka vle di age1, men pou rezon nou pral wè trè yon ti tan, Mwen pral di Int age0 egal GetInt. Se konsa, rele nan menm yo GetInt ke nou ve yo te lè l sèvi avèk mwen pa rive yo dwe pouse di, "ban m 'laj la." Men, jis mande li. Apre sa, age1 egal GetInt. Apre sa, int age2 egal GetInt. Se konsa, ankò, twa elèv, men finalman endis yo varyab se age0 a age2. OK. Se konsa, pwogram sa a ap fè tout sa nou vle ak age0, age1, ak age2, men pwogram sa a finalman ap travay pou twa elèv yo. OK. Se konsa, kounye sa ki si mwen vle kat elèv? Oke, mwen pral gen yo ale tounen nan kòd m 'yo, chanje kòmantè a, e kounye a, nou gen yon int age3 egal GetInt. OK. Se konsa, ki wè pwoblèm nan isit la? Ki sa ki se pwoblèm nan ak sa a sòt de konfigirasyon? Yeah. Yeah. Se konsa, nou ap kreye yon varyab pou chak elèv. Koulye a, ki travay, men finalman, sa ki si mwen kounye a di, "Mwen vle gen tan pwan laj la nan uit elèv oswa 16 elèv oswa elèv yo sepandan anpil nan santèn de elèv ki nan CS50 oswa dè milye de elèv yo sou lakou lekòl la oswa dè milya yo nan moun nan mond lan? Se konsa, finalman sa a se pa dirab. Nenpòt ki lè ou wè tèt ou kopye ak kole Kòd tankou sa a, ou ta dwe santi jeneralman ki di ke gen yon fason pi bon. Se konsa, sa a se kote nou entwodui yon deklarasyon etalaj. Se konsa, lè ou deklare yon etalaj, sa a se sa fòma a jeneral ki pral sanble. Nou pral di kalite a. ak Lè sa a nou ap ale nan bay non sa a nan etalaj, menm jan nou defini nenpòt varyab bay yo. Lè sa a, finalman nou ap itilize notasyon bracket sa a ankò men nan yon kontèks diferan de ki jan nou te itilize li pi bonè. Se konsa, isit la sa a sanble yon nòmal varyab deklarasyon ke nou te wè. Se konsa, nou te wè Int x semi-kolon anvan. Oke kounye a nou ta ka wè yon bagay tankou int x parantèz 5. Apre sa, mete lide sa a nan la Pwogram GetInt ke nou en- pou nou ka aplike sa a nan menm jan an. Se pou nou di nan CS nou gen tandans yo sèvi ak N kòm nimewo a nan yon bagay. Se konsa, isit nou ap ale nan magazen kat elèv yo. Epi, koulye a nou ka di laj Int bracket pa n-- byen jwenn li yet-- deklare yon etalaj de kat elèv yo. Se konsa, kouman sa a pral gade nan memwa yo pral menm jan ak sa a. Debarase m de sa a. Epi nou ap ale nan gen yon kote nan memory-- mwen pral mete sa a moute a. Se konsa, yon kote nan memwa. Youn, de, twa, kat. Nou gen kat nonm antye relatif nan yon ranje pou sa a etalaj nan kat nonm antye relatif. Se konsa, kounye a, ki sa ki la gwosè nan youn nan bwat sa yo? Yeah. Li nan kat bytes. Li nan 32 miyèt moso. Se konsa, kounye sa a se diferan soti nan etalaj la ke nou wè pi bonè, etalaj la nan karaktè. Nan yon fisèl chak bwat te sèlman yon sèl multiple, paske yon karaktè yon sèl multiple. Men, avèk yon etalaj de nonm antye relatif, chak bwat gen yo dwe kat bytes yo nan lòd nan anfòm yon nonb antye relatif tout antye. Se konsa, sa a se sa yon etalaj de kat antye ta sanble. Lè sa a, tounen nan kòd. Koulye a, nou vle aktyèlman magazen nonm antye relatif nan ki etalaj. Se konsa, kounye a se yon trè, trè, trè modèl komen ki pral nan kèk pwen vin nan misk memwa. Se konsa, int mwen egal 0. m pi piti pase n. mwen plis plis. Bracket Laj mwen egal GetInt. Se konsa, sa a pou riban, fòma sa a, ou ta dwe jwenn yon bagay ki itilize yo. Se konsa, sa a se jeneralman ki jan nou pral repekte sou prèske nenpòt etalaj. Koulye a, remake sa a sòt de eksplike rezon ki fè depi nan konmansman an nou pa t 'gen pou pasan pral pou int mwen egal 1, mwen mwens pase oswa egal a 10. Rezon ki fè la ke yo te ke kòmanse nan zewo fè travay sa a byen ak ranje. Se konsa, ranje yo se zewo Catalogue. Si etalaj sa a se nan longè 4, endis yo se 0 a 3. Se konsa, nan premye a iterasyon nan sa a pou riban nou ap ale nan dwe mete laj bracket 0 egal a yon rele nan GetInt. Se konsa, tou sa ki te pase mwen a antre nan la nan klavye a. Nan pas, dezyèm lan, nou ap mete age1 egal a GetInt. Twazyèm pas, age2. Final age3 pas. Se konsa, si nan pas la premye nan bouk la Mwen antre nan nimewo a 4 nan klavye a, Lè sa a, nou pral insert yon 4 isit la. Si sou pas nan dezyèm mwen antre 50, nou pral mete yon 50 isit la. Sou twazyèm pas an mwen ta ka antre nan negatif 1, negatif 1, Lè sa a, finalman si ak mwen antre nan 0-- ak kounye a sonje ke sa a te endèks twa. Apre nou riban tounen, mwen se ale nan dwe enkremante a 4. mwen se pa mwens pase n, ki se 4. Apre sa, nou kraze soti nan riban an. Se konsa, sa ta dwe mal ak sa a? [Fèbl]? ODYANS: [fèbl] Wi. Se konsa, etalaj la sèlman gen kat kote, ki vle di kòm endis 0 a 3. Se konsa, si sa a été ka a, mwen ta pran sou valè a 4 nan kèk pwen. pral gen laj bracket 4 dwe mete tou sa k ap pase yo sou isit la nan sa mwen te vle di, antre nan 6. Sa pral mete sa a nan 6. Men, nou pa konnen sa ki nan sou isit la. Sa a se pa memwa ke nou te gen aksè a. Se konsa, si ou sonje soti nan konferans anvan-an, li te enprime soti valè nan Zamyla ak nan kèk pwen li frape sa a segmentation fòt. Se konsa, ou pral pwobableman ap wè fot segmentation anpil jan ou aplike kèk nan pwoblèm ansanm sa yo,. Men, sa a se youn nan fason yo ki nan ki ou ka rankontre yon segmentation fòt, lè ou kòmanse gen aksè nan memwa nan fason ke ou pa ta dwe. Se konsa, nou pa t 'gen aksè a kote sa a epi sa a se yon ensèk. Se konsa, sa a se pi bon. Koulye a, gen se toujou yon ti pwoblèm ak kòd sa a. Epi sa a, fondamantalman ke nou ap toujou kole nan kat elèv yo. Koulye a, si mwen vle sèvi ak uit elèv yo, OK. Li pa ki gwo yon kontra. Mwen ka ale nan, chanje an kòmantè, ak chanje n. Koulye a, sa a ap travay ak wit elèv yo. Si m 'konpile sa a epi kouri sa a, li pral montre mele l li pral mande nonm antye relatif pou uit elèv yo epi li pral jis travay. Men, li la pi piti pase ideyal yo bezwen compile pwogram nan chak fwa yon sèl Mwen vle chanje kantite elèv ke mwen vle antre nan laj yo pou. Se konsa, amelyorasyon nan final sou sa a, kòm nou pral wè isit lan-- nou ap ale nan mande ki kantite moun. Isit la nou gen yon nimewo nan moun ki nan chanm yo oswa nenpòt ki gen laj nan moun ki nan sal la. Men, nou ap ale nan mande nimewo a nan moun ki nan sal la soti nan itilizatè a. Se konsa, sa a se egzak menm fè-pandan y ap nan bouk ke nou te wè anvan. Li nan menm bagay la tou egzak fè-pandan y ap riban ke ou ka mete ann aplikasyon sou pwoblèm mete nan. Se konsa, osi lontan ke yo ap k ap antre nan yon n mwens pase 1, Se konsa, gen nan te resevwa yo dwe nan pi piti yon sèl moun nan sal la. Osi lontan ke yo ap k ap antre nan yon n mwens pase 1, Lè sa a, nou ap ale nan kontinye mande ankò. Tanpri antre nimewo a nan moun ki nan sal la. Koulye a, yon fwa nou gen nimewo a nan moun ki nan room-- nan Se konsa, mwen ta ka antre nan ke gen se 200 moun nan sal sa a. Lè sa a, desann isit la nou ap ale nan vini ak deklare yon etalaj de gwosè 200. Nou ap deklare etalaj sa a, se gwo ase yo kenbe 200 laj. Desann, li nan la pou riban ke ou pral jwenn yon bagay ki itilize yo. Se konsa, iteration sou sa a etalaj, plase a chak kote nan ki etalaj yon nonb antye relatif, ak Lè sa a, finalman isit la nou ap jis ap resevwa yon egzanp sou iteration sou ki etalaj, nou pa bay valè, men jwenn aksè nan valè. Se konsa, sou isit la nou wè ke nou ap di, yon ane nan kounye a, moun% m pral% m ane fin vye granmoun, kote premye% nan mwen se mwen plis 1. Se konsa, mwen se varyab endèks sa a. Apre sa, mwen% nan dezyèm a pwal nan valè ki estoke nan etalaj la ki gen laj plis 1. Se konsa, plis sa a 1 se jis paske nou ap saying-- plis sa a 1, laj mwen plis 1. Sa a plis 1 se jis paske nou ap di, yon ane soti nan kounye a moun nan yo pral sa a fin vye granmoun. Se konsa, poukisa se mwen sa a plis 1? Poukisa nou gen yon plis 1 a? Yeah. Wi. Se konsa, sonje ranje yo zewo Catalogue. Se konsa, si nou ap enprime sa a soti pou yon moun yo jis li pwodiksyon an, Lè sa a, pwobableman yo vle wè yon bagay tankou moun yon sèl, nimewo yon sèl moun, yo pral 20 ane fin vye granmoun. Nimewo Chèche de yo pral 15 ane fin vye granmoun. Yo ta pito pa wè moun Nimewo zewo se 15 zan. Se konsa, konpile sa a ak jis wè sa li sanble like-- Kreye kèk espas. Fè laj compiles. Kouri laj. Nou wè kantite moun ki nan sal la. Se konsa, mwen pral di gen twa moun nan sal la. Laj ki gen nimewo yon sèl moun, kite a di 15, 20, 25. Epi, koulye a mwen pral di yon ane soti nan kounye a yo yo pral 16, 21, 26. Se pou nou wè ke sa a travay ak yon n ki pa egal a 3. Se konsa, si mwen di kantite moun ki se 5, yon sèl, de, twa, de, yon sèl, yon ane soti nan kounye a yo pral de, twa, kat, twa, de ane fin vye granmoun. Se konsa, mwen te kapab menm jan byen rive n gen 10,000. Koulye a, mwen pral chita isit la pou byen yon ti tan k ap antre nan laj, men sa a ap travay. Se konsa, kounye nan memwa yon kote nou gen yon etalaj de gwosè 10,000, se konsa finalman 40,000 bytes, paske gen kat bytes pou chak nan sa yo nonm antye relatif. Se konsa, gen nan yon etalaj de gwosè 10,000 kote nou kapab magazen ki gen laj yo nan sa yo 10,000 moun. Tout dwa. Kesyon sou nenpòt nan sa a? Yeah. E si ou te bay yon nimewo negatif? Ann wè sa ki rive. Se konsa, nan sa a nimewo case-- patikilye nan moun ki nan sal la, yon sèl negatif. Li rejte sa, paske isit la nou rive moute yo dwe manyen lefèt ke si n se mwens pase yon nou ap ale nan mande ankò. Si ou eseye deklare yon etalaj de gwosè negatif, li jeneralman pa travay. Se konsa nou eseye. Se pou nou inyore tou sa valè yo D 'pou n ak jis di laj Int youn negatif. Ann wè si li menm compiles. Mwen pa si. No Se konsa, ki gen laj se te deklare kòm yon etalaj ak yon gwosè negatif. Se konsa, inicio li rekonèt yon etalaj pa ka gen nan gwosè negatif ak rejte li. Koulye a, si nou pa t 'okipe sa a riban fè-pandan y ap kòrèkteman, si nou pa te tcheke si n se mwens pase 1-- kite a di nou jis pa t 'gen sa a nan tout ak olye nou jis gen tan pwan yon nonb antye relatif. Pa gen pwoblèm sa ki nonb antye ki pè se, nou deklare yon etalaj de ki gwosè. Se konsa, du a pa kapab pètèt pote plent kounye a. Si m 'konpile sa a men se konsa li pa ka pote plent, paske li pa ka konnen ke mwen se ale nan antre nan yon nimewo negatif, ki ta dwe valab. Pou tout li konnen, mwen ta ka antre nan yon nimewo pozitif, ki se parfe ki valid. Se konsa, mwen imajine si mwen antre nan negatif 1 moun ki nan chanm nan, segmentation fay. Se konsa, OK. Se konsa, kite a ajoute sa a tounen jis kenbe l 'ki sa li orijinal te ye a. Se konsa, asire laj. Koulye a, si mwen vle eseye yon negatif age-- kidonk kite a di gen senk moun nan sal la. Laj ki gen nimewo yon sèl moun se negatif 4, moun twa se zewo, moun three-- OK. Se konsa, isit la, nan yon ane soti nan kounye a, nimewo moun yon sèl yo pral negatif 3 zan. Se konsa, pwobableman pa fè sans. Men, sa a jis paske kap a kòd a tout sa nou ap fè se mande GetInt. Koulye a, si nou te te gen nan GetPositiveInt fonksyon oswa nou te jis tou senpleman fè sa sòt de menm riban pandan y ap desann a, Lè sa a, sa a ta travay parfe amann. Men, nan sa a an patikilye ka, nou jis pa fè sa rive yo dwe manyen valè negatif. Nenpòt lòt kesyon sou ranje? OK. Se konsa, nou te kounye a wè ranje. Epi nou ap ale nan bezwen sèvi ak sa a pou lòd-liy agiman. Se konsa, nan pwoblèm mete two-- Mwen konnen anpil nan nou ta ka toujou dwe ap travay sou pwoblèm seri yon sèl, men pwoblèm mete de la ap vini yo. Nan pwoblèm mete de, w ap ale nan bezwen yo dwe fè fas ak strings, ranje, ak lòd-liy agiman. Se konsa, sa yo se liy lòd agiman? Koulye a, ou ka wè isit la yon desann ti kras kol pou egzakteman sa ki nan ale nan dwe pase. Nou wè int prensipal yo, inc arg, fisèl argv parantèz. Se konsa, premye kite a eseye ka esplike nou rèv sa ki nan ap eseye di. Koulye a, OK. Se konsa, nan liy la bay lòd ou ta dwe ap resevwa itilize nan kèk nan kòmandman sa yo kounye a, ak ou te pwobableman kouri cd nan tèminal la anvan. Se konsa, si nou di CD pset1, ou konnen ke ki ta dwe gen chanje nan anyè a pset1. Koulye a, remake ke ou te pa janm ekri yon pwogram tankou sa a anvan. Chak pwogram ke ou te ekri nan Liv la ou ta kouri, di, dot koupe Mario, dot koupe visye, ak Lè sa a li ta ka fè w pou D '. Koulye a, sa a, se pa sa chanjman anyè fè. Lè ou kouri CD, li pa Lè sa a, di, ki anyè ou vle CD an? Olye de sa, ou jis di, CD pset1, ak li jis ale nan anyè a pset1. Se konsa, Menm jan an tou nou gen lòt egzanp. fè hello. Lè ou kouri fè, li pa Lè sa a, di, ki pwogram ou ta renmen fè? Ou jis di, nan la liy lòd fè hello. Deplase a se yon lòt egzanp. Yon sèl sa a nou yo ap deplase nan mario.c ranpli moute yon sèl anyè. Se konsa, kounye a nou konnen ak egzanp sa a nou ap reyèlman pase de agiman. Genyen mario.c kòm agiman an premye, ak dot dot se agiman, dezyèm lan. Lè sa a, lè ou kouri fè, ou wè ke lòd reyèlman long line-- ki lòd reyèlman long enprime nan liy lan lòd. Se konsa, ki long command-- sa a se jis yon pati kout nan li, men kounye a nou gen twa lòd-liy agiman. Dot priz zewo, hello, ak hello.c. Se konsa, sa yo, se lòd-liy agiman, agiman ke w ap pase nan la liy lòd konsa ke li pa gen yo dwe pouse lè ou kouri pwogram nan. Li ta fwistre si lè ou kouri sonnen li te di, "OK, ki program-- ki dosye yo ou konpile? Hello.c. Ki sa ki drapo ou ta renmen a antre nan? o priz. Kisa ou ta renmen dosye a yo dwe rele? hello. Non, ou jis kouri rezone kase o alo hello.c. Se konsa, gade dèyè nan sa a. Koulye a, argc-- arg se agiman konte yo. Li nan ki kantite lòd-liy agiman antre nan liy lan lòd. Oke, argv-- teknikman v la kanpe pou vektè, ki fondamantalman vle di etalaj. Men, ou ka inyore sa. Argv-- nou gen fisèl argv, se konsa fisèl argv parantèz. Se konsa, sa a se yon lòt fòm parantèz nou pa te wè anvan. Se konsa, nou te wè bracket notasyon lè nou te di: tankou, fisèl la egal Zamyla. nan bracket 0 jwenn aksè Z. la N. Nou te tou wè parantèz lè nou te di Int laj bracket 5. Sa te deklare yon etalaj de gwosè 5. Se konsa, isit la se yon vèsyon nan la parantèz nou pa te wè anvan. Se konsa, sa a sòt de fisèl argv ki ta dwe konplètman abitye ke li ta jis pou yon fisèl. Koulye a, parantèz yo endike ke sa a se yon etalaj. Se konsa, parantèz fisèl argv vle di ki argv se yon etalaj de strings. Koulye a, teknikman yon afè se yon etalaj de karaktè. Se konsa, sa se kounye a yon etalaj nan yon etalaj de karaktè. Men, li la pi fasil yo reflechi sou sa a kòm jis yon etalaj de strings. Se konsa, poukisa ta ka parantèz yo rete vid? Tankou, poukisa pa nou ka di, bracket 5, bracket n? Yeah. Yeah. Nou pa konnen ki jan anpil entrain gen yo ale nan dwe. Se konsa, si nou gade nan egzanp lan sonnen, nou di sonnen priz o alo hello.c. Nan ka sa a an patikilye, gen rive yo dwe twa agiman lòd-liy. Se konsa, brackets-- a nou pral wè nan yon dezyèm li pa ta dwe twa. Li teknikman ta dwe kat. Men, parantèz yo, nou ta di, gen twa. Men koulye a, si nou gade mouvman mario.c dot dot, parantèz yo nou ta vle mete de nan yo. E gen yon anpil nan kòmandman ki gen yon nimewo varyab nan liy lòd agiman. Se konsa, sa sa a vèsyon an nan notasyon bracket endike se ke argv se yon etalaj de strings. Men, nou pa konnen konbyen strings yo nan ki etalaj. Ak ki jan nou Lè sa a konnen ki jan anpil strings yo nan etalaj la? Sa a pwen an antye arg an. arg di nou konbyen tan argv se. Se konsa, bagay la pase kenbe nan lide se ke, teknikman, lòd nan tèt li konte kòm youn a lòd-liy agiman yo. Se konsa, cd pset1, gen de lòd-liy agiman. Pwogram nan nan tèt li, CD, ak Lè sa aktyèl agiman pati a nan li, pset1. Nenpòt pwogram ke ou te ekri konsa byen lwen te gen yon sèl lòd-liy argument-- dot koupe Mario. Sa se sèlman lòd-liy agiman an. Se konsa, kounye a sonnen kap kase o alo hello.c. Se konsa, ki sa ki arg? 4. Se konsa, arg se 4. Rezone, se konsa argv bracket 0 se sonnen. argv bracket 1 se priz 0. argv bracket 2 se hello, ak argv bracket 3 se hello.c. OK, se konsa kesyon sou sa a, ak Lè sa a nou pral gade nan kèk egzanp pwogramatik. OK. Se konsa, nou pral pran yon gade nan hello3.c. Se konsa, sa a ta dwe abitye soti nan youn nan egzanp yo c premye nou te gen kote nou ta jis di, alo mond, men kounye a sa a se pi plis jeneral. Se konsa, isit la nou ap di alo % s antislach n argv bracket 1. Notice-- konsa moute jouk pwen sa a, sa a se sa dosye modèl mwen te te sanble ak. Mwen te gen int prensipal (san valè), ak Lè sa a mwen ta fè yon bagay nan fonksyon prensipal la. Koulye a, olye de sa, yon fwa nou kòmanse fè fas ak lòd-liy agiman, nou bezwen deklare yon diferan fòm prensipal la. Se konsa, gade nan hello3 ankò, prensipal la ki pral pran de agiman now-- int arg, ki kantite lòd-liy agiman, ak fisèl argv parantèz, aktyèl la strings antre nan liy lan lòd. Se konsa, mwen pral chanje sa modèl a reflete ki reyalite. Koulye a, chak fwa ou ekri yon pwogram, si ou pa fè sa bezwen pran okenn lòd-liy agiman, lè sa a jis itilize int prensipal (san valè). Men koulye a, lè w ap ekri lòd-liy agiman pwogram, ki w ap ale nan dwe ap fè pou pwoblèm mete two-- konsa kounye a ke w ap kouri pwogram ki bezwen pran agiman lòd-liy, ou bezwen gen prensipal la fòm sa a. Se konsa, isit lan-- sa a se l 'nan gwo nan agiman nan lòd-liy. Se konsa, enprime argv 1. OK kidonk kite a konpile epi kouri pwogram sa a. Fè hello3. Compiles. Dot koupe hello3. Li kite yo di, "Rob." Alo Rob. Si m 'di, "alo Maria," alo Maria. Bonjou Maria. Hannah toujou di, "alo Maria, "paske mwen pa fè anyen ak argv nou an 2. Argv 2 kounye a ta ka "Hannah." Arg ta dwe 3. E si m 'te fè sa a? Se konsa, alo nil. Li yon ti tan manyen sou lefèt sa, teknikman, GetString ta ka retounen nil, men nou pral jwenn yon anpil plis nan sa ki nil aktyèlman se. Men, pran li kòm yon kesyon de reyalite ke pa gen okenn se jeneralman move. Nou te fè yon bagay mal, si li nan enprime "alo nil." Ak rezon an nou te fè yon bagay mal is-- byen, lè m 'kouri dot hello3 koupe, arg te 1. Se konsa, sa vle di longè a nan argv te 1. Si yon etalaj se nan longè 1, sèlman endèks la ki valab se zewo. Se konsa, isit la argv 1 se deyò seri a nan etalaj sa a. Li te menm jan ak anvan lè m 'te eseye nan magazen 6 deyò nan fen etalaj la. Se konsa, mwen ap eseye jwenn aksè nan yon bagay deyò nan konte yo argv, epi nou ap vin nil. Se konsa, yon vèsyon pi bon nan sa a, yon amelyorasyon, se klèman tcheke arg. Se konsa, si arg egal 2, sa vle di nou kouri yon bagay tankou koupe dot hello3 Rob. Epi li pral enprime "alo Rob." Si arg pa fè sa egal 2, Lè sa a, li nan jis ale ki inyore tou sa ou mete a agiman an lòd-liy kòm lòd-liy agiman. Oswa si ou pa t 'mete nenpòt nan tout, li nan jis ale nan inyore sa ki epi jis di, "alo ou." Se konsa, konpile sa a. Fè hello4. Ak kouri hello4. Kouri li fason sa a, sa ki ta dwe enprime? "Alo ou." Bonjou ou. Ki sa ki sou hello4 Rob? "Alo Rob." E finalman, alo Rob Maria se jis "alo ou" ankò, paske ou pa t 'reyèlman antre nan yon bagay ke li espere. Ou te antre nan plis non pase sa li te kapab okipe, se konsa li jis remet alo ou konpòtman an. Se konsa, kesyon sou sa a? Ou lòd-liy agiman? OK, se konsa pran yon gade nan yon koup plis egzanp sou lè l sèvi avèk lòd-liy arguments-- premye nou te argv priz 1 dot c. Se konsa, kòmantè sa yo bay lwen sa pwogram sa a yo ta dwe fè. Men, remake now-- sa a pou riban, sa a matche ak modèl la egzak Mwen te di anvan. Nou jis rive yo dwe lè l sèvi avèk arg olye pou yo n. Koulye a, arg se reyèlman n nan. Li nan longè a nan etalaj la argv. Se konsa, yo iteration sou argv nan etalaj printf-ing chak valè argv. Se konsa, si mwen fè sa a. Fè argv 1. Li compiles. Dot koupe argv 1. Jis kouri sa a, li simagri dot koupe argv 1 depi lè sa te sèlman lòd-liy lan argument-- non an pwogram lan. Ap toujou gen nan least-- arg pa ka mwens pase yon sèl, depi pral gen toujou omwen gen non nan pwogram nan kouri. Se konsa, argv 1 Rob pral enprime argv 1 ak Lè sa a sou liy lan nouvo "Rob." Se konsa, nan iterasyon an premye nan sa a riban, mwen se 0. Argv 0 se non an pwogram lan. Dot koupe argv 1. Lè sa a, argv 1 se premye fwa mwen lòd-liy agiman, ki se Rob. Nan pwen sa a, nou se egal a arg. Nou kraze soti nan riban an epi nou ap fè. Se konsa, sa a ap travay pou yon abitrè kantite lòd-liy agiman. Avi li simagri argv 0, argv 1, argv 2, argv 3, argv 4. Li pa gen okenn argv 5. arg ki egal a 5. Se konsa, nan argc-- a mwen egal 5, nou kraze soti nan riban an. OK. Se konsa, kesyon sou sa anvan nou gade nan yon egzanp plis konplèks? Se konsa, argv 2. Tout dwa. Se konsa, nou ap toujou enprime lòd-liy agiman yo. Men koulye a, remake nou gen yon pare solèy pou riban. Se konsa, sa sa a se fè la a? Se konsa, premye riban an ap fè ekzakteman ki sa li te fè anvan an. Nou ap toujou loupin sou chak agiman lòd-liy, Men, koulye a dezyèm loop-- sa a nou te tou wè yon bagay tankou sa a anvan. Lè l 'te iteration sou Zamyla enprime soti Z-A-M-Y-L-A. Se konsa, sa a dezyèm bouk pou int j egal 0, n egal strlèn nan argv bracket mwen. Se konsa nou panse ke pou premye the-- kite nan mache nan. Se pou nou panse sa ta òdinatè a fè si mwen kouri pwogram sa a kòm jis dot koupe argv priz 2. Se konsa, si mwen kouri sa a kòd, lè sa a arg a pwal egal a 1. Apre sa, fisèl argv-- gen nan sèlman ale nan fè yon sèl endèks nan argv, e ke k ap pase yo dwe egal a dot koupe argv 2-- non an pwogram lan. OK, se konsa koulye a, mwen egal 0, mwen mwens pase 1, mwen plis plis pou int j egal 0, N egal strlèn nan argv bracket 0, se konsa nan iterasyon an premye nan sa a riban. argv bracket 0 se dot koupe argv 2. Se konsa, ki sa ki longè a nan ki fisèl? Oke, dot koupe A-R-G-V priz 2. Se konsa, strlèn nan ki pral 8. Se konsa, j egal 0, n egal 8. Osi lontan ke j se mwens pase 8, j ++. Se avèk ke nou ap pral fè enprime yon karaktè sèl, ki se argv bracket mwen bracket j. Se konsa, mwen la sèlman se zewo. Nou toujou sèlman gen yon sèl lòd-liy agiman. Nan ki premye iterasyon de la pou riban, nou ap pral fè enprime argv bracket 0 bracket 0. Lè sa a, j ki pral kantite. Epi nou ap ale nan enprime argv bracket 0 bracket 1. Lè sa a, argv bracket 0 bracket 2. Se konsa, sa a se premye rankontre nou an nan ranje milti-dimansyon. Sonje pi bonè ke mwen te di ki argv se teknikman yon etalaj de ranje nan karaktè. Se konsa, isit la si m 'te di yon bagay tankou fisèl la egal argv bracket mwen, ak Lè sa a mwen te di, nan j bracket, sa a ta dwe reyalize menm bagay la. Koulye a, ou te wè nan bracket j anvan. Se jis aksè-th nan j karaktè nan fisèl sa a. Se konsa, avèk sa a, nou ap resevwa nan pèsonaj J-th nan argv nan m-th. Se konsa, sa yo ta dwe sa a finalman pwodiksyon? Fè argv 2. Li compiles. Dot koupe argv 2. "Rob Maria Ana," epi bay nou kèk chanm. Se konsa, nou wè ke sa a se sorti dot sou liy pwòp li yo ak koupe sou liy pwòp li yo ak yon sou liy pwòp li yo. Li nan enprime soti chak pèsonaj endividyèl nan chak agiman lòd-liy. Lè sa a, nan ant yo, paske nan jwèt sa a nouvo nou ap enprime desann isit la, nan ant yo li pral enprime yon liy nouvo. Se konsa, sa se menm jan ak priz la argv anvan 1, ki enprime chak lòd-liy agiman, men kounye a nou ap enprime lòd-liy agiman yo ak Lè sa a iteration nan chak karaktè nan chak agiman lòd-liy yo ka resevwa pwodiksyon sa a. OK? Se konsa, kesyon sou sa a? Youn nan bagay sonje se ke lòd-liy arguments-- Se konsa, yo yo separe pa espas kòm ou ta natirèlman atann yo yo dwe. Se konsa, yon fisèl ka gen espas nan li. Li pa super enpòtan, men si mwen te vle twazyèm lòd-liy agiman an gen yon espas nan li, lè sa a mwen te kapab di yon bagay tankou sa a. OK? Se konsa, sa a kounye a toujou sèlman gen twa lòd-liy arguments-- byen 4. Dot koupe argv priz 2, Rob, Maria, ak Hannah Bloomberg. OK. Kesyon sou sa a? Pa gen anyen espesyal sou karaktè nan espas. Li jis k ap pase yo ki nan lòd-liy trete pèsonaj la espas kòm ki jan ou separe chak agiman. Tout dwa. Se sak fè pwoblèm seri two-- w ap ale nan gen gade nan sekrè-kle chifreman. Se konsa, menm jan ak sa egzanp nou te wè ki sòti nan yon istwa Nwèl la, w ap ale nan dwe mete ann aplikasyon kèk algoritm ke, yo bay yon mesaj, w ap ale nan kapab ankripte ke mesaj ke se sèlman yon moun ki gen ke sekrè kle, ak sa bag dekodaj, ta dwe kapab dechifre. Se konsa, se sa ki edisyon an estanda. W ap ale nan dwe mete ann aplikasyon de diferan vèsyon. Si ou rive pran yon gade a HACKER la edition-- kounye a, nou ap ale nan bay ou yon fisèl tankou sa a, ki reprezante yon modpas chiffres. Se konsa, objektif ou se figi konnen sa modpas la dechifre se. Koulye a, sa a se aktyèlman ki jan modpas yo estoke nan yon anpil nan òdinatè, epi li jis estoke sa a fisèl o aza nan karaktè. Ou gen figi konnen kouman yo ka resevwa soti nan fisèl sa a o aza nan karaktè nan sa modpas orijinal la te ye a. E finalman, apre sa a pwoblèm mete, ou ta dwe kapab konprann ki sa sa a vle di. Se konsa, ou pral aprann kouman yo dechifre sa a sòt de fisèl o aza. Menm jan tou, si ou sonje soti nan semèn 0, ou ta ka gen pou wè URL sa a. Epi ou ta dwe kapab dechifre sa a evantyèlman. Ou pa ta ka gen kè kontan lè ou dechifre li, epi klike sou lyen an. Tout dwa. Sa a li pou jodi a. Se konsa, wè ou semèn pwochèn! [ELEKTWONIK MIZIK jwe]