[Daqq tal-mużika] DAVID Malan: Kull dritt. Dan huwa CS50, u dan hija t-tmiem tal-ġimgħa 2. Jien so sorry I ma setax jiġi hemm miegħek kollha llum, imma int tinsab f'idejn tajba ħafna. Ippermettuli li jintroduċu Stess Rob Bowden CS50 s. ROB Bowden: U ovvjament, allura irridu nkunu gost bil-fatt li hu bagħat lilna vertikali video u uri dan. [Daqq video] [Daqq tal-mużika] [Passi] Video -Dan ma jkollha tħares b'dan il-mod. Hija setgħu jiġu evitati. Tgħid le videos vertikali. Videos -Vertical jiġri meta inti żomm kamera tiegħek il-mod żbaljat. Video tiegħek se jispiċċaw ifittxu bħal ħażin. - [Grunt] -Hemm Aktar u aktar nies dipendenti li jagħmlu videos vertikali kuljum. Mhuwiex xquq jew xejn, iżda huwa għadu tassew ħżiena. Hemm żewġ tipi differenti ta ' nies li qed jimirdu bl VVS. L-ewwel grupp tittratta l videos ma rimja bħal stampi. Huma ma jfissirx xi ħsara. Huma biss ma jifhmu li filwaqt li inti tista 'ddawar stampa, inti ma tistax verament dawran video. [Crash] - [Xadina Ħsejjes] -Il Grupp l-ieħor huwa n-nies li ma jagħtux [bleep]. -Vertical Video Syndrome hija perikoluża. Stampi mozzjoni jkollhom dejjem kienet orizzontali. Televiżjonijiet huma orizzontali. Iskrins tal-kompjuter huma orizzontali. Għajnejn in-nies huma orizzontali. Aħna mhux mibnija biex watch videos vertikali. -I Imħabba videos vertikali. -Nobody Cares dwarek. -Jekk Din il-problema ta jibqgħu mhux ivverifikati, inti wisq se tibda turi erba videos f'daqqa biss biex jiffrankaw bandwidth. Videos vertikali -Letterboxed kieku jkun id-daqs ta 'bolla. -u Ser jifrex kullimkien. Iskrins movie jkollhom dejjem kienet orizzontali. Jekk videos vertikali issir aċċettati, teatri movie se jkollhom jiġu tall u skinny. -u Kollha tal-teatri movie kieku għandek tikseb mqatta 'u inbniet. U mill-ħin li kienu mibnija mill-ġdid, Mila Kunis ikun qodma u ikrah. -Birds Se tiġrifa ġo fihom u jmutu. -We'll Kollha jiksbu iebes għenuq minn tfittex up. -u Ebda waħda se tiltaqa l filliera ta 'quddiem qatt darb'oħra. -George Lucas se terġa 'rilaxx Star Gwerer again---edizzjoni skinny. -I Qatt kien verament kapaċi li tgħid l-istorja li ridt li tgħid. Dan kien opportunità kbira għalija li esperiment ma 'teknoloġija ġdida. -You're Jerk. -Every Ħin mezzi mobbli huwa użat biex video rekord, it-tentazzjoni hi hemm. Just say no. Tgħid le George Lucas. Jgħidu le għall Mila Kunis qodma. Tgħid le videos vertikali. -u Jekk inti tara xi ħadd tagħmel dan, jgħidu, "int ma isparar li finta dritt!" [Daqq tal-mużika] [END Daqq] [Applause] [AUDIO OUT] ROB Bowden: --simple forma ta 'kriptografija, li hi bażikament l-encryption u decryption ta 'messaġġi sigrieti. Allura hawnhekk għandna ġugarell sempliċi ħafna. U l-idea hija l-ċirku ta 'barra idur madwar iċ-ċirku ta 'ġewwa. U tista 'tara, forsi jekk I zoom fil, that-- huwa diffiċli li wieħed jara. Imma, bħal, in-numru 1-- sew, li mċaqalqa. In-numru 1 mapep għall-ittra X, numru 2 mapep għall-ittra J. Oerhört diffiċli li ma skip quddiem. Ittra 2 mapep li J. Numru 3 mapep għall D. So ma 'dan ring inti tista' tagħti xi ħadd messaġġ 1, 2, 3. Għal xi raġuni tixtieq li jgħidulhom XJD. Iżda int tista 'tagħtihom xi messaġġ ta 'numri, u sakemm dawn ikollhom din ring, huma jista 'jiddekripta dak li qed nipprova ngħid. Allura inti tista raw dan Eżempju partikolari ta 'kriptografija qabel jekk madwar il-istaġun tal-Milied inti stajt jarah A Story Milied. Jekk inti stajt qatt qabel, allura biss imbagħad fuq TBS fil litteralment kwalunkwe ħin Lejliet il-Milied, għaliex biss juru lura lura biex lura biex lura biex lura l-jum kollu. U l-video rilevanti hija din. [Daqq video] -Kun Magħruf għal kulħadd u varji li Ralph Parker huwa b'dan maħtur membru tal-Little Orfni Annie Secret Circle u huwa intitolat li l-unuri u l-benefiċċji li jseħħu għalihom. Iffirmat Little Orfni Annie. Iffirmata wkoll Pierre Andre bil-linka! Honors u l-benefiċċji diġà fl-età ta 'disa! [Yelling MILL RADJU] -Come Fuq. Ejja nneħħu fuq magħha. I m'għandhomx bżonn dak kollu li jazz dwar kuntrabandisti u pirati. Għada bil-lejl -Listen ma l-avventura tikkonkludi tal-vapur pirata Iswed. Issa, wasal iż-żmien għall Messaġġ sigriet Annie tal għalik membri tal-Ċirku Sigriet. Ftakar gidjien, membri ta Secret Circle Annie tal jista jiddekowdja messaġġ sigriet Annie tal. Ftakar, Annie jiddependi fuq int. Set labar tiegħek lil B2. Hawn hu l-messaġġ. 12. 11. 2. -I Am fl-ewwel laqgħa sigrieta tiegħi. -25. 14. 11. 18. 16. -OH, Pierre huwa tonight vuċi kbira. I setax jgħid li s tonight messaġġ kien verament importanti. -3. 25. Li l-messaġġ mill Annie ruħha. Ftakar, ma tgħid xi ħadd. Sekondi -Five wara, jien fl-uniku kamra fid-dar fejn tifel ta 'disa' tista 'tiltaqa fil-privatezza u jiddekowdja. Ah! B! I marru għall-ieħor. E. L-ewwel kelma hija "jkun." S. Hija kien ġejjin faċli issa. U. 25. Li R. -Come Fuq, Ralphie! Stajt gotta go! -I'll Jkun dritt isfel, Ma! Whiz GEE. T. O. "Kun żgur li" - kun żgur li dak? Liema kienet Little Orfni Annie nipprova ngħid? Kun żgur li dak? -Randy S'est li tmur! Gaat jekk jogħġbok toħroġ? Dritt -kull, mom! I ser tkun fl-dritt! I kien jersqu qrib issa. It-tensjoni kien terribbli. Liema kienet? Il-destin tal-pjaneta jista hang fil-bilanċ! -Ralphie, S Randy ltqajna biex tmur! -I'll Jkun tajjeb, għal biki out loud! Kważi hemm! Swaba tiegħi taru. Fehma tiegħi kien nassa azzar. Kull pori ivvibrat. Kien kważi ċar! Iva. Iva. Iva. Iva. Kun żgur li tixrob Ovaltine tiegħek. Ovaltine? A kummerċjali crummy? Iben ta 'kelba. [END Daqq] ROB Bowden: Allura li kif Ovaltine tirrigwarda kriptografija. Bażikament CS50 biss reklamati Ovaltine, hekk nistgħu tkun kummerċjali crummy għal Ovaltine. Kull dritt. Allura issa xjenza tal-kompjuter attwali. Ftakar nhar it-Tnejn aħna jitħalla 'off għadis fil-fond fil kordi. Allura konna jittrattaw l-sekwenza "Zamyla." U konna tirrikonoxxi il-fatt li aħna jista 'jikkura "Zamyla" bħala sekwenza ta 'karattri. U ftakar li aħna tgħallimna in-notazzjoni parentesi. Mela jekk dan kienu maħżuna fi string "i," imbagħad jekk għidna s bracket 0, li kieku jindika l-Z. kapital ittra U jekk aħna qal parentesi s 1, li tkun tindika l-ewwel zghar a, u hekk sa parentesi s 5, li jindika l-aħħar a. Issa ftakar li l- tul ta 'din is-sekwenza huwa 6, iżda l-indiċi fil-string huma 0 sa 5, Z permezz ta 'dak jdum. Allura dan issa joqgħod fi stampa ikbar tal-memorja tal-kompjuter tiegħek, RAM tiegħek. Allura x'imkien programm li int taħdem kompjuter tiegħek jeħtieġ li tiftakar Zamyla x'imkien fil-memorja. So jista 'jkolli voluntier? Iva, jekk jogħġbok. U dak huwa l-isem tiegħek? DEAN: Dean. ROB Bowden: Dean? Nizza biex jissodisfaw inti, Dekan. Allura ġejjin fuq hawn, u aħna qed tmur biex ikollhom inti tiġbed fuq it-tqassim nifty tagħna sbieħ ta 'memorja. Issa Inħobb naħseb tal-memorja bħala wieħed strixxa twila ta 'bytes, iżda biss għal skopijiet ta 'wiri aħna ser biss ma xellug għal-lemin, fuq s'isfel. KOLLOX SEW? Hekk jien ser juru program-- Getstrings.c. U hekk dan kollu il-programm huwa jagħmlu qed titlob erba kordi mill-utent ma ' GetString u mbagħad istampar tkun xi tkun li l-ewwel sekwenza mdaħħla kien. Aħna qed jinjora tnejn permezz erbgħa. KOLLOX SEW. Allura minn hawn now-- meta I ewwel talba s1. Allura inti l-kompjuter. U inti qed jimplimentaw GetString. Allura inti titlob string minn me, u jien ngħidlek, OK, Dekan. Agħti l-sekwenza "Dean." Allura x'imkien fil-memorja inti bżonn li wieħed jiftakar "Dean." Allura tikteb fil-memorja x'imkien. Perfect. KOLLOX SEW. Allura issa għandna s2. U s2 se tkun talba lill GetString. So I m ser jidħol string. Jien ser jidħlu "Hannah." Allura jidħol "Hannah" x'imkien fil-memorja. Yeah. A-H. OK, hekk issa s3. U li għaddej biex tkun ieħor jitlob lill GetString. U hekk issa daħħal "Maria." Kull dritt. U allura hemm aħħar wieħed talba lill GetString, s4. So, I do not know. Kif dwar aħna jmorru ma antidisestablishmentarianism. Allura jidħol dan in-memorja. Yeah. Hekk biss do "Rob." KOLLOX SEW. Allura issa explain-- għaliex ma titlaq dawn l-ispazji? Għaliex għandek din vojt ispazju hawn, hawn, u hawn? Iva. So Avviż meta mmur li jistampaw s1-- hekk jekk aħna kienet "Hannah" running dritt sa jmiss "Dean," kif nafu meta l-sekwenza "Dean" truf? Allura istampar l s1 string jista 'jkollhom kemm stampati "DeanHannahMariaRob" jekk ma jkollu ebda clue ta 'meta "Dean" fil-fatt jintemm. Kull dritt. Allura fil-memorja tal-mod kif aħna attwalment jirrappreżentaw dan il-għan ta 'sekwenza huwa ma backslash żero. Allura dan l-ispazju huwa eżattament dak li ridna. Għandu jkun backslash żero. Dan se jkun backslash żero, u dan se jkun backslash żero. U inti tista 'jkollha premju fabulous talli voluntier perfett. Ħu ballun stress! KOLLOX SEW. Allura dan il-karattru backslash żero hija kif aħna jindikaw tmiem ta 'sekwenza. Huwa mod kif meta xi programm partikolari trid stampar ta 'spag, huwa how-- remember aħna tgħallimna il-funzjoni strlen aħħar ġimgħa? Tul String? Huwa mod kif tul string huwa kapaċi li jiddetermina kemm string hu. Hija biss iżomm mtennija matul il-karattri sakemm isib l- backslash karattru żero. Allura l-ħaġa importanti li tirrealizza dwar il-karattru backslash żero huwa huwa rappreżentat billi żerijiet kollha bits. Allura avviż li din hija distinta mill-karattru żero. Allura l-karattru żero, jekk tiftakar fl-eżempju li taw fl-aħħar ta lecture fejn karattri mappa to-- bħal mapep kapital A sa 65. Zghar a mapep sa 97. Zghar b tkun 98. Allura l-mapep numru 0 to-- I ma jafu l-quċċata tar-ras tiegħi. 44 jew 45. X'imkien f'dak ir-reġjun. Allura l-karattru 0 huwa numru attwali. Iżda żero backslash mapep għall bits kollha żero. Hekk hemm distinzjoni bejn backslash żero, li aħna ser sejħa-terminatur null. Hemm distinzjoni bejn backslash żero u l-karattru żero. Kull dritt. Allura tkellem ftit aktar dwar kordi. Mela allura naraw hawn dan huwa kif ikun stabbiliti fil-memorja. Allura din l-idea ta 'spag bħala sekwenza tal characters-- hekk il-kompjuter uffiċjali tul sciency għal sekwenza huwa firxa. Allura aħna kieku ssejjaħ għal string firxa ta 'karattri. U hemm attwalment data oħra tipi li nistgħu nagħmlu arrays minn. Allura biex jimmotivaw din, tħares lejn eżempju. Aħna ser sejħa hija ages0.c I ser kopja u paste template tagħna. KOLLOX SEW. Allura f'dan il-programm dak li aħna trid tagħmel hu li grab-età ta 'tliet studenti fil-kors. Allura nafu l-int age-- u issa jien ser ngħid 0. Allura inti tista 'tixtieq li ngħid age1, iżda għal skopijiet Ser naraw ftit żmien, I ser jgħidu age0 int ugwali GetInt. Allura l-istess sejħa għal GetInt li aħna kont qed tuża I ma jiġri li jkun wassal lill qal, "agħtini l-età." Iżda biss jitlobha. U age1 ugwali GetInt. U age2 int ugwali GetInt. Allura, għal darb'oħra, tliet studenti, iżda finalment l-indiċi varjabbli huma age0 permezz age2. KOLLOX SEW. Allura dan il-programm se tagħmel dak kollu irridu ma age0, age1, u age2, iżda dan il-programm fl-aħħar xogħlijiet għal tliet studenti. KOLLOX SEW. Allura issa dak jekk irrid erba 'studenti? Well, jien ser ikollhom imorru lura f'Kodiċi tiegħi, jibdlu l-kumment, u issa għandna int age3 ugwali GetInt. KOLLOX SEW. Hekk li jara l-problema hawn? X'inhi l-problema ma 'dan it-tip ta' setup? Yeah. Yeah. Allura aħna qed joħolqu varjabbli għal kull student. Issa li x-xogħlijiet, iżda finalment jekk dak I issa jgħidu, "Irrid li grab l-età ta ' tmien studenti jew studenti 16 jew il madankollu ħafna studenti ta l-mijiet ta 'studenti fil CS50 jew l-eluf ta 'studenti fuq il-kampus jew il-biljuni ta 'nies fid-dinja? Allura finalment dan mhux sostenibbli. Kwalunkwe ħin li inti tara lilek innifsek ikkupjar u kodiċi pasta bħal dan, inti għandek ġeneralment iħossuhom li hemm mod aħjar. Allura dan huwa fejn aħna nintroduċu dikjarazzjoni firxa. Allura meta inti tiddikjara firxa, dan huwa dak li l-format ġenerali se look like. Aħna ser ngħid-tip. u allura aħna qed tmur biex tagħti l-isem ta 'dik array, eżatt kif niddefinixxu kwalunkwe varjabbli partikolari. U mbagħad finalment aħna qed jużaw dan notazzjoni parentesi mill-ġdid iżda f'kuntest differenti minn kif aħna kienu qed jużaw qabel. Allura hawnhekk dan qisu normali dikjarazzjoni varjabbli li aħna stajt tidher. Allura aħna stajt tidher int x semi-colon qabel. Ukoll issa nistgħu tara xi ħaġa bħal Int x parentesi 5. U t-tqegħid din l-idea fil- Programm GetInt li aħna have-- hekk aħna tista 'timplimenta dan bl-istess mod. Ejja ngħidu f'CS għandna t-tendenza li jużaw n bħala n-numru ta 'xi ħaġa. Allura hawnhekk aħna qed tmur biex jaħżnu erba 'studenti. U issa nistgħu ngħidu età int bracket ma n-- pjuttost ġġibu yet-- li jiddikjara firxa ta 'erba' studenti. Allura kif dan se tħares fil memorja se jkunu simili għal dan. Tagħti permess għal din. U aħna qed tmur biex ikollhom x'imkien fil memory-- I ser jitqiegħdu dan up hemm. Allura x'imkien fil-memorja. Wieħed, tnejn, tlieta, erbgħa. Għandna erba 'numri interi konsekuttivi għal dan firxa ta 'erba' numri interi. Allura, bħalissa, x'inhu l- daqs ta 'waħda minn dawn kaxxi? Yeah. Huwa erba 'bytes. Huwa 32 bits. Allura issa dan huwa differenti mill-firxa li aħna raw qabel, il-firxa ta 'karattri. Fi string kull kaxxa kienet byte wieħed biss, minħabba karattru huwa byte wieħed biss. Iżda ma 'firxa ta' numri interi, kull kaxxa għandha jkun ta 'erba bytes sabiex li jitwaħħal numru sħiħ kollu. Allura dan huwa dak firxa ta ' erba ints look like. U mbagħad lura għall-kodiċi. Issa rridu li attwalment jaħżnu interi f'dak firxa. Allura issa dan huwa ħafna, ħafna, ħafna mudell komuni li ser f'xi punt jsiru memorja tal-muskoli. Allura int i ugwali 0. i inqas minn n. i plus plus. Kategorija ta 'età i huwa ugwali GetInt. Allura dan għal loop, dan il-format, inti għandek tikseb ħafna użati biex. Allura dan huwa ġeneralment kif aħna se jtenni fuq kważi kull firxa. Issa Avviż dan it-tip ta ' jispjega għaliex mill-bidu aħna ma kellhiex għal-linji tmur għal int i huwa ugwali 1, i inqas minn jew ugwali għal 10. Ir-raġuni hija li jibdew minn żero jagħmel dan ix-xogħol tajjeb mal arrays. Allura arrays huma żero indiċjati. Jekk dan huwa firxa ta 'tul 4, l-indiċi huma 0 sa 3. Dan permezz l-ewwel iterazzjoni ta 'dan loop għall aħna qed tmur biex jiġu iffissar età parentesi 0 ugwali għal sejħa għal GetInt. Sabiex ikun x'ikun I ġara li jidħlu fil-keyboard. Fit-tieni pass, aħna qed iffissar age1 ugwali għal GetInt. It-tielet pass, age2. Age3 pass finali. Mela jekk fl-ewwel pass tal-linja I daħħal in-numru 4 meta l-tastiera, allura aħna ser tiddaħħal 4 hawn. Jekk fit-tieni pass I jidħlu 50, aħna ser ipoġġi 50 hawn. Fit-tielet pass I jista jidħol negattiva 1, negattiv 1, u mbagħad finalment jekk I tidħol 0-- u issa ftakar li dan kien indiċi tlieta. Wara aħna loop lura, i huwa ser ikun inkrementat sa 4. i m'għadux inqas minn n, li huwa ta '4. U aħna break out tal-linja. Allura dak li jkun ħażin ma 'dan? [Inaudible]? UDJENZA: [inaudible] Iva. Allura l-array biss għandha erba 'postijiet, li jfisser kif l-indiċijiet 0 permezz 3. Mela jekk dan kien il-każ, nixtieq jieħdu fuq il-valur 4 f'xi punt. kategorija ta 'età 4 se jkunu twaqqif jiġri x'jiġri li jkun aktar hawn li dak li għandi ngħid, jidħlu 6. Li ser ikunu iffissar dan sa 6. Imma ma nafux x'hemm fuq hawn. Dan mhux memorja li kellna aċċess għall. Mela jekk inti tiftakar minn l-lecture qabel, kien stampar ta 'valuri ta' Zamyla u f'xi punt huwa laqat dan segmentazzjoni tort. Allura inti probabilment se tkun qed tara ħafna difetti segmentazzjoni kif inti timplimenta wħud mid-settijiet problema. Iżda dan huwa wieħed mill-modi li bihom inti tista 'tiltaqa' ma 'segmentazzjoni tort, meta tibda aċċess memorja b'modi li inti m'għandekx tkun. Allura aħna ma kellhiex aċċess għall dan il-post u dan huwa bug. Allura dan huwa aħjar. Issa għad hemm żgħir kwistjoni ma 'dan il-kodiċi. U li bażikament li aħna qed xorta staġnati għal erba 'studenti. Issa jekk I jridu jużaw tmien studenti, OK. Mhuwiex li big ftehim. I tista 'tmur fi, jibdlu l- tikkummenta, u l-bidla n. Issa dan se taħdem ma 'tmien studenti. Jekk I jiġbor dan u run dan, ser juru me-- se titlob interi għal tmienja studenti u se biss xogħol. Imma hija inqas minn ideali għall-ħtieġa li recompile-programm kull wieħed ħin Irrid li jibdlu l-għadd ta 'studenti li nixtieq li jidħlu l-etajiet għall. Allura t-titjib finali dwar dan, kif Ser naraw here-- aħna qed ser titlob lill-numru ta 'nies. Hawnhekk għandna numru ta 'nies fil-kmamar jew xi etajiet ta 'nies fil-kamra. Iżda aħna qed tmur biex jitolbu l-għadd ta 'nies fil-kamra mill-utent. Allura dan huwa l-istess eżatt do-waqt loop li konna rajna qabel. Huwa l-istess eżatt do-waqt li loop li inti jistgħu jiġu implimentazzjoni fuq is-sett problema. Dan sakemm dawn qed dħul ta 'n' inqas minn 1, għalhekk hemm ltqajna biex tkun fil inqas persuna waħda fil-kamra. Sakemm dawn qed dħul ta 'n' inqas minn 1, allura aħna qed tmur biex iżommu tistaqsi ġdid. Jekk jogħġbok daħħal in-numru ta 'nies fil-kamra. Issa, ladarba għandna l-għadd ta 'nies fil-room-- so I jista 'jidħol li hemm 200 nies f'dan kamra. Imbagħad stabbiliti hawn aħna qed tmur biex jiġu u tiddikjara firxa ta 'daqs 200. Aħna qed tiddikjara li l-firxa kbir biżżejjed biex iżomm 200 etajiet. Jinżlu, huwa l-linja ta li inti se tikseb ħafna użati biex. Allura mtennija fuq dan array, tagħti lil kull post f'dak array integer, u allura finalment hawn aħna qed biss jkollna eżempju ta mtennija matul dak array, biex ma jassenjawx il-valuri, iżda għall-aċċess valuri. Allura hawn naraw li aħna qed jgħidu, sena minn issa, persuna% i se jkun% i sena, fejn l-ewwel% i huwa i plus 1. Hekk i hija din il-varjabbli indiċi. U t-tieni% i se tkun l- ħlas joħroġ valur maħżun fil-etajiet firxa plus 1. Allura dan flimkien ma '1 huwa biss għaliex aħna qed saying-- dan flimkien ma '1, etajiet i plus 1. Dan flimkien ma '1 huwa biss għaliex aħna qed qal, sena minn issa l-persuna se jkun dan qodma. Allura għaliex huwa dan i plus 1? Għaliex għandna plus 1 hemmhekk? Yeah. Iva. Mela ftakar arrays huma żero indiċjati. Mela jekk irridu istampar dan out għal xi ħadd li biss taqra l-output, allura probabbilment li jridu jaraw xi ħaġa bħal persuna waħda, persuna numru wieħed, se jkun 20 sena. Numru persuna tnejn se jkun 15-il sena qodma. Theyd pjuttost ma tara persuna Numru żero huwa 15-il sena qodma. Allura kompilazzjoni dan u biss jaraw dak jidher like-- Oħloq xi spazju. Jagħmlu jikkompila etajiet. Running età. Naraw numru ta 'nies fil-kamra. So I ser jgħidu li hemm tliet persuni fil-kamra. Età tal-persuna numru wieħed, ejja ngħidu 15, 20, 25. U issa jien ser ngħid sena minn issa dawn se jkunu 16, 21, 26. Ejja naraw li dan jaħdem bil l n li ma jkunx daqs 3. Mela jekk jien ngħid numru ta 'nies huwa 5, wieħed, tnejn, tlieta, tnejn, waħda, sena minn issa dawn ser ikunu tnejn, tlieta, erba, tlieta, ta 'sentejn. So I tista 'biss bħala faċilment n jkun 10,000. Issa I se tkun seduta hawn għal pjuttost a filwaqt li jidħlu età, iżda dan xogħlijiet. Allura issa fil-memorja x'imkien aħna jkollhom firxa ta 'daqs 10,000, hekk finalment 40000 bytes, minħabba li hemm erba 'bytes għal kull wieħed minn dawk interi. Allura hemm firxa ta ' daqs 10,000 fejn nistgħu jaħżnu l-etajiet ta 'dawk 10,000 ruħ. Kull dritt. Mistoqsijiet dwar xi parti minn din? Yeah. X'jiġri jekk int tajt numru negattiv? Ejja naraw x'jiġri. Allura f'dan il-numru case-- partikolari ta 'nies fil-kamra, wieħed negattiv. Hija ċaħdet din, għaliex up here we jiġri li jiġu timmaniġġja l-fatt li jekk n hija inqas minn wieħed aħna qed tmur biex tagħmel talba oħra. Jekk inti tipprova jiddikjaraw firxa ta 'daqs negattiv, ġeneralment ma taħdimx. Mela ejja tipprova. Ejja jinjora dak kollu valur li input għall n u biss jgħidu etajiet Int wieħed negattiv. Ejja naraw jekk anki jikkompila. Miniex ċert. No Allura etajiet huwa ddikjarat bħala array b'daqs negattiv. Allura bil-quddiem huwa jirrikonoxxi firxa tistax ikunu ta 'daqs negattiva u tiċħdu. Issa, jekk aħna ma ttrattatx dan loop do-waqt korrett, jekk aħna ma kinux iċċekkjar jekk n hija inqas minn 1-- ejja ngħidu aħna biss ma kellhomx din livelli kollha u minflok aħna biss grab integer. Ma jimpurtax f'liema li integer huwa, aħna niddikjaraw firxa ta 'dak id-daqs. Allura l-kumpilatur ma tistax possibilment jilmentaw issa. Jekk I jikkompilaw this-- għalhekk ma tistax tilmenta, minħabba li ma tistax tkun taf li jien ser jidħol numru negattiv, li jista 'jkun invalidu. Għal kulħadd jaf, I jista jidħol numru pożittiv, li huwa perfettament valida. So I immaġina jekk I tidħol negattiv 1 nies fil-kamra, segmentazzjoni tort. Allura, OK. Mela ejja żid din lura biss jżommha dak li oriġinarjament kien. Sabiex tagħmel età. Issa jekk irrid li jipprova negattiv age-- so ejja jgħidu hemm ħames persuni fil-kamra. Età tal-persuna numru wieħed huwa negattiv 4, persuna tlieta huwa żero, persuna three-- OK. Allura hawnhekk, sena minn issa, numru persuna wieħed se jkun negattiv 3 snin. Allura probabbilment ma jagħmilx sens. Iżda li biss minħabba tfittex lejn il-kodiċi kollha li aħna qed tagħmel qed titlob GetInt. Issa, jekk aħna kellu l- Funzjoni GetPositiveInt jew kellna biss sempliċement għamlu dan tip ta 'istess linja filwaqt li hemm isfel, allura din għandha taħdem perfettament multa. Iżda f'dan il-partikolari każ, aħna biss ma jiġri li jkun immaniġġjar valuri negattivi. Kwalunkwe mistoqsijiet oħra dwar arrays? KOLLOX SEW. Allura konna issa tidher arrays. U aħna qed tmur biex bżonn tuża dan għal argumenti kmand tal-linja. Għalhekk fl problema stabbiliti two-- Naf ħafna minnkom xorta tista 'tkun qed taħdem fuq sett problema wieħed, iżda problema jistabbilixxu tnejn huwa ġejjin up. Fil problema sett tnejn, int ser jeħtieġ li jkunu jittrattaw kordi, arrays, u argumenti kmand tal-linja. Allura x'inhuma l-argumenti kmand linja? Issa, inti tista 'tara l hawn ftit teaser għal eżattament x'hemm se jiġri. Naraw prinċipali, argc inc int, parentesi ARGV string. Allura l-ewwel ejja tipprova tinterpreta dak li l-nipprova ngħid. Issa, OK. Allura fil-linja tal-kmand inti għandek tkun jkollna użati għal xi wħud dawn il-kmandijiet issa, u inti probabilment ħadthom run cd fit-terminal qabel. Allura jekk aħna ngħidu pset1 cd, inti taf li dan għandu jkun qed jinbidlu fil-direttorju pset1. Issa avviż li inti stajt qatt miktub ta 'programm bħal dan qabel. Kull programm li inti stajt bil-miktub, inti run, ngħidu aħna, dot mmejla Mario, dot mmejla greedy, u allura jista inti fil-pront għall-input. Issa, li mhux dak direttorju bidla ma. Meta inti tmexxi cd, ma allura jgħidu, li direttorju tridu cd fis? Minflok, inti biss jgħidu, pset1 cd, u hija biss tmur fil-direttorju pset1. Allura bl-istess mod għandna eżempji oħra. jagħmlu bonjour. Meta inti tmexxi tagħmel, ma allura jgħidu, liema programm kieku inti tixtieq li tagħmel? Inti biss jgħidu, fil- kmand tal-linja jagħmlu bonjour. Nimxu huwa eżempju ieħor. Dan wieħed ninsabu mexjin il mario.c fajl up direttorju wieħed. Allura issa nafu b'dan l-eżempju aħna qed verament tgħaddi żewġ argumenti. Hemm mario.c bħala l-ewwel argument, u dot dot hija t-tieni argument. U allura meta inti run tagħmel, inti tara dak il-kmand verament twila line-- dak il-kmand verament twila stampati fil-linja tal-kmand. Allura dak twil command-- dan hija biss parti qasira ta 'dan, iżda issa għandna tliet argumenti kmand tal-linja. Dot sing żero, hello, u hello.c. Allura dawn huma kmand tal-linja argumenti, argumenti li int tgħaddi fil- linja ta 'kmand sabiex ikun ma għandhom tkun imħeġġa meta inti tmexxi l-programm. Ikun frustranti jekk meta inti dam clang huwa qal, "OK, li program-- li fajl int kompilazzjoni? Hello.c. What bnadar kieku inti jixtiequ jidħlu? o sing. What would you tixtieq il-fajl li għandu jissejjaħ? Bongu. Le, inti biss run clang sing o bonjour hello.c. Allura tħares lura lejn dan. Issa argc argc-- huwa l-għadd argument. Hu l-għadd ta 'kmand tal-linja argumenti daħlu fil-linja tal-kmand. Ukoll, argv-- teknikament l v stands għall vector, li bażikament ifisser firxa. Iżda int tista 'tinjora dan. Argv-- għandna ARGV string, hekk parentesi ARGV string. Allura dan huwa forma oħra ta ' parentesi inti ma bbenefikawx qabel. Bracket Allura aħna stajt tidher notazzjoni meta konna qal, bħal, spag s ugwali Zamyla. s parentesi 0 aċċessi il-karattru Z. Imxejna wkoll meqjus parentesi meta għidna etajiet Int parentesi 5. Li ddikjarat firxa ta 'daqs 5. Allura hawnhekk huwa verżjoni tal- parentesi ma rajniex qabel. Allura dan it-tip ta 'ARGV sekwenza li Ikun kompletament familjari li jkun biss string. Issa l-parentezi juru li dan huwa firxa. Allura brazzi ARGV string mezzi li ARGV huwa firxa ta 'kordi. Issa teknikament string firxa ta 'karattri. Allura issa dan huwa firxa ta 'firxa ta' karattri. Iżda huwa ħafna aktar faċli li wieħed jaħseb dwar dan biss bħala firxa ta 'kordi. Allura għaliex jista s-saljaturi tat ikunu vojta? Simili, għaliex ma nistgħu ngħidu, parentesi 5, parentesi n? Yeah. Yeah. Ma nafux kemm inputs hemm ser ikunu. Mela jekk inħarsu lejn l-eżempju clang, ngħidu clang sing o bonjour hello.c. F'dan il-każ partikolari, jiġri hemmhekk li jkun ta 'tliet argumenti kmand tal-linja. U għalhekk l-brackets-- Ser naraw fit-tieni ma jkunx tlieta. Dan teknikament Ikun erbgħa. Iżda l-parentesi, nixtiequ jiġifieri, hemm tlieta. Imma issa jekk ħarisna lejn move mario.c dot dot, il-parentesi aħna tixtieq li tqiegħed żewġ fihom. U hemm ħafna ta 'kmandi li għandhom numru varjabbli ta 'linja tal-kmand argumenti. Allura dak li din il-verżjoni tal- notazzjoni parentesi jindika hija li ARGV huwa firxa ta 'kordi. Imma ma nafux kemm kordi huma f'dik firxa. U kif nistgħu mbagħad jafu kif ħafna kordi huma fil-firxa? Dik hija l-punt argc kollu. argc tgħidilna kemm żmien ARGV huwa. Allura l-aħħar ħaġa li wieħed iżomm f'moħħu huwa li, teknikament, il-kmand innifsu jgħodd bħala wieħed mill-argumenti kmand tal-linja. Allura pset1 cd, hemm żewġ argumenti kmand tal-linja. Il-programm fih innifsu, cd, u mbagħad l-argument parti attwali ta 'dan, pset1. Kwalunkwe programm li inti stajt bil-miktub s'issa kellu-linja tal-kmand wieħed argument-- dot mmejla Mario. Dan huwa l-uniku argument kmand tal-linja. Allura issa tħares lejn clang sing o bonjour hello.c. Allura x'inhi l argc? 4. Allura argc huwa ta '4. Clang, parentesi hekk ARGV 0 huwa clang. bracket ARGV 1 huwa sing 0. ARGV bracket 2 huwa hello, u bracket ARGV 3 huwa hello.c. OK, hekk mistoqsijiet dwar dan, u allura aħna ser tħares lejn xi eżempji programmatiċi. KOLLOX SEW. Allura aħna ser tagħti ħarsa lejn hello3.c. Għalhekk dan għandu jkun familjari minn wieħed mill-ewwel eżempji c kellna fejn aħna biss jgħidu, bonjour dinja, iżda issa dan huwa aktar ġenerali. Allura aħna qegħdin hawn qal bonjour % s backslash n ARGV bracket 1. Notice-- hekk sa dan il-punt, dan huwa dak template fajl tiegħi dehru qishom. Kelli int prinċipali (vojt), u mbagħad nixtieq jagħmel xi ħaġa fil-funzjoni prinċipali. Issa minflok, ladarba nibdew jittrattaw b'argumenti kmand tal-linja, għandna bżonn li tingħata forma differenti ta 'prinċipali. Allura tħares lejn hello3 għal darb'oħra, il-prinċipali li qed jiġri li jieħdu żewġ argumenti now-- argc int, in-numru ta 'argumenti kmand tal-linja, u string ARGV parentesi, l-attwali kordi daħlu fil-linja tal-kmand. Hekk jien se jibdlu dik template biex jirriflettu dan il-fatt. Issa kull meta tikteb programm, jekk inti ma bżonn tieħu kwalunkwe linja tal-kmand argumenti, allura biss użu int prinċipali (vojt). Imma issa meta int bil-miktub programmi argument kmand tal-linja, li int se tkun qed twettaq għall-problema sett two-- hekk issa li int taħdem programmi li jeħtieġ li tieħu argumenti kmand tal-linja, ikollok bżonn li jkollhom prinċipali ta 'din il-formola. Allura here-- dan huwa l-użu big tal-argument kmand tal-linja. Allura istampar ARGV 1. OK so ejja jikkompilaw u tmexxi dan il-programm. Jagħmlu hello3. Jikkompila. Dot mmejla hello3. U ejja ngħidu, "Rob." Hello Rob. Jekk I say, "Hello Maria," Hello Maria. Hello Maria. Hannah xorta jgħid, "bonjour Maria, "għaliex jien ma tagħmel xejn ma 'ARGV tagħna 2. ARGV 2 issa se jkun "Hannah." Argc tkun 3. X'jiġri jekk I ma 'dan? Allura bonjour null. Huwa mimsus qosor fuq il-fatt li, teknikament, GetString jista 'ritorn null, imma aħna ser tingħata ħafna aktar lejn dak null fatt hu. Iżda teħodha bħala kwistjoni ta ' fatt li l-ebda huwa ġeneralment ħażin. Għamilna xi ħaġa ħażina jekk huwa istampar "Hello null." U r-raġuni għamilna xi ħaġa ħażina is-- ukoll, meta I dam hello3 dot mmejla, argc kien 1. Allura dan ifisser it-tul ta 'ARGV kien 1. Jekk firxa hija ta 'tul 1, l-unika indiċi validu huwa żero. U hekk hawn ARGV 1 huwa barra il-firxa ta 'din array. Kien simili għal qabel meta I ppruvaw li jaħżen 6 barra t-tmiem tal-firxa. Hekk jien jippruvaw jiksbu aċċess għas xi ħaġa barra mill-għadd ARGV, u aħna qed jkollna null. Allura verżjoni aħjar ta ' dan, titjib, qed jiċċekkja b'mod espliċitu argc. Mela jekk argc ugwali 2, li jfisser li għandna dam xi ħaġa bħal hello3 dot slash Rob. U se print "Hello Rob." Jekk argc mhux daqs 2, allura huwa biss se li jinjoraw kwalunkwe inti tpoġġi fil-argument kmand tal-linja kif argumenti kmand tal-linja. Jew jekk inti ma jagħmlu l-ebda livelli kollha, huwa biss se jinjora dan u biss jgħidu, "Hello int." Allura kompilazzjoni dan. Jagħmlu hello4. U hello4 running. Running dan il-mod, dak li għandu jiġi stampat? "Hello int." Hello inti. What about hello4 Rob? "Hello Rob." U fl-aħħarnett, bonjour Rob Maria huwa biss "bonjour You" mill-ġdid, għaliex inti ma verament jidħol xi ħaġa li mistennija. Li tkun daħħalt aktar ismijiet milli tkun tista 'timmaniġġja, għalhekk biss naqas li l bonjour inti imġieba. Allura mistoqsijiet dwar dan? Jew argumenti kmand tal-linja? OK, so tieħu ħarsa lejn koppja aktar eżempji ta 'użu kmand tal-linja arguments-- ewwel aħna ARGV sing 1 dot c. Allura l-kummenti tagħti l bogħod dak dan il-programm għandha tkun qiegħda tagħmel. Iżda avviż now-- dan għal loop, dan jaqbel mal-mudell eżatta I kien qal qabel. Aħna biss jiġri li jkun użu argc minflok n. Issa argc huwa verament il-n. Hu l-tul tal-firxa ARGV. Allura huma mtennija fuq l-ARGV firxa-printf Ing kull valur ARGV. Mela jekk jien tagħmel dan. Jagħmlu ARGV 1. Hija jikkompila. Dot mmejla ARGV 1. Biss running dan, prints dot slash ARGV 1 peress li kienet l-unika linja ta 'kmand argument-- l-isem programm. Dejjem se jkun hemm fil least-- argc ma jistax ikun anqas minn wieħed, peress dejjem se jkun hemm għall-inqas jkun l-isem tal-programm jiddekorri. Allura ARGV 1 Rob se print ARGV 1 u mbagħad fuq il-linja l-ġdida "Rob." Għalhekk fl-ewwel iterazzjoni ta 'dan loop, i huwa 0. ARGV 0 huwa l-isem tal-programm. Dot mmejla ARGV 1. U mbagħad ARGV 1 huwa l-ewwel tiegħi argument kmand tal-linja, li huwa Rob. Wara dan, aħna huma ugwali għal argc. Aħna break out tal-linja u aħna qed isir. Allura dan ser jaħdmu għal arbitrarja numru ta 'argumenti kmand tal-linja. Avviż prints ARGV 0, ARGV 1, ARGV 2, ARGV 3, ARGV 4. U ma hemm ebda ARGV 5. argc huwa ugwali għal 5. Allura fil argc-- fil i ugwali 5, aħna break out tal-linja. KOLLOX SEW. Allura mistoqsijiet dwar li qabel we tħares lejn eżempju aktar kumpless? Allura ARGV 2. Kull dritt. Allura aħna qed għadhom istampar l-argumenti kmand tal-linja. Imma issa avviż għandna a nested għall loop. Allura dak li huwa dan isir? Allura l-ewwel linja qed tagħmel eżattament dak li għamlet qabel. Aħna xorta looping fuq kull argument kmand tal-linja, iżda issa dan it-tieni loop-- konna wkoll meqjus xi ħaġa bħal din qabel. Meta kien mtennija fuq Zamyla stampar ta Z-A-M-Y-L-A. Allura dan it-tieni linja għat int j ugwali 0, n ugwali strlen ta ARGV parentesi i. Mela ejja ewwel jaħsbu għalihom the-- ejja jimxu permezz. Ejja jaħsbu dak l-kompjuter se tagħmel jekk I dam dan il-programm biss bħala dot slash ARGV sing 2. Mela jekk I dam dan il-kodiċi, allura argc se tkun ugwali għal 1. U string argv-- hemm biss se tkun indiċi wieħed fil ARGV, u li għaddej biex jkun ugwali għal dot slash ARGV 2-- l-isem programm. OK, hekk issa i ikun egwali għal 0, i inqas minn 1, i plus plus għall int j ugwali 0, n huwa daqs strlen ta ARGV parentesi 0, hekk l-ewwel iterazzjoni ta 'dan loop. ARGV bracket 0 hija dot slash ARGV 2. Allura dak li huwa t-tul ta 'dak string? Ukoll, dot mmejla A-R-G-V sing 2. Allura strlen ta li se jkun ta '8. Allura j ugwali 0, n ugwali 8. Sakemm j hija anqas minn 8, ++ j. U ma 'li aħna qed tmur biex tkun istampar karattru wieħed, li huwa ARGV bracket i parentesi j. Allura l-unika i huwa żero. Aħna xorta biss għandek wieħed argument kmand tal-linja. F'dak ewwel iterazzjoni tal-għal loop, aħna qed se tkun l-istampar ARGV bracket 0 bracket 0. U mbagħad j se inkrement. U aħna qed tmur biex istampar ARGV bracket 0 bracket 1. U mbagħad ARGV bracket 0 bracket 2. Allura dan huwa l-ewwel jiltaqgħu tagħna tal arrays multi-dimensjonali. Ftakar qabel li għidt li ARGV huwa teknikament firxa ta 'arrays ta' karattri. So here jekk I qal xi ħaġa simili string s ugwali ARGV parentesi i, u mbagħad I said, s parentesi j, dan Ikun twettiq l-istess ħaġa. Issa, inti stajt tidher s parentesi j qabel. Li jinsab biss aċċess għall-j-th karattru ta 'din is-sekwenza. Allura ma 'dan, aħna jkollna l- karattru j th tal-ARGV numru i. Allura dak li jekk dan finalment output? Jagħmlu ARGV 2. Hija jikkompila. Dot mmejla ARGV 2. "Rob Maria Hannah," u tagħtina xi kamra. Allura naraw li dan huwa outputting dot fuq il-linja tagħha stess u slash fuq il-linja tagħha stess u fuq il-linja tagħha stess. Huwa stampar ta 'kull karattru individwali ta 'kull argument kmand tal-linja. U mbagħad fl bejniethom, minħabba din il-linja l-ġdida aħna qed printing down hawn, fil bejniethom li ser jistampaw linja ġdida. Allura dan huwa simili għal il-sing ARGV qabel 1, li stampata kull argument kmand tal-linja, iżda issa aħna qed istampar l-argumenti kmand tal-linja u mbagħad mtennija permezz ta 'kull karattru ta 'kull argument kmand tal-linja biex tikseb dan l-output. KOLLOX SEW? Allura mistoqsijiet dwar dan? Ħaġa waħda li wieħed jinnota li kmand tal-linja arguments-- hekk huma isseparat bi spazji bħala inti naturalment jistennew li jkunu. Allura string jista 'jkollhom spazji fiha. Mhuwiex super importanti, imma jekk jien riedu tat-tielet argument kmand tal-linja li jkollhom spazju fiha, allura I jista 'jgħid xi ħaġa bħal din. KOLLOX SEW? Allura dan issa għadha biss għandha tliet -linja ta 'kmand arguments-- ukoll 4. Dot mmejla ARGV sing 2, Rob, Maria, u Hannah Bloomberg. KOLLOX SEW. Mistoqsijiet dwar dan? M'hemm xejn speċjali dwar il-karattru ispazju. Hija biss jiġri li jkun li l- kmand tal-linja tittratta l-karattru ispazju kif kif inti separati kull argument. Kull dritt. Mela allura sett Problema two-- int ser tkun tħares lejn kriptografija sigriet ewlenin. Allura, simili għal dik eżempju rajna minn A Story Milied, int se tkun jittieħdu xi wħud algoritmi li, minħabba messaġġ, int ser tkun tista ' għall-kriptaġġ dak il-messaġġ li biss xi ħadd ma 'dak sigrieti ewlenin, ma 'dak ring decoder, għandhom ikunu jistgħu decrypt. Allura dan huwa l-edizzjoni standard. Int ser tkun implimentattivi żewġ verżjonijiet differenti. Jekk jiġri li tagħti ħarsa fil-Hacker edition-- issa, aħna qed tmur biex jagħtu inti string bħal dan, li jirrappreżenta password encrypted. Allura mira tiegħek huwa biex insemmu dak l-password decrypted hu. Issa dan huwa effettivament kif passwords huma maħżuna fil-lott ta 'kompjuters, u hija biss stores dan sekwenza każwali ta 'karattri. Inti għandek biex insemmu kif tikseb minn din is-sekwenza ta 'karattri każwali għal dak il-password oriġinali kienet. U fl-aħħarnett, wara dan sett problema, għandek ikunu kapaċi jifhmu dak li dan ifisser. Allura inti ser jitgħallmu kif decrypt dan it-tip ta 'sekwenza każwali. Bl-istess mod, jekk inti tiftakar minn ġimgħa 0, inti tista raw dan il-URL. U inti għandek tkun tista ' decrypt dan eventwalment. Inti tista 'ma tkunx kuntenti meta inti decrypt dan u kklikkja fuq il-link. Kull dritt. Li dan għal-lum. Allura tara int ġimgħa d-dieħla! [Daqq tal-mużika ELETTRONIKA]