[Powered by Google Translate] [Walkthrough - Problema rinkinys 2] [Zamyla Chan - Harvardo universiteto] [Tai CS50. CS50.TV] Gerai. Sveiki, visi, ir sveiki atvykę Walkthrough 2. Pirma, aš noriu pasveikinti jus apdailos pset 1. Aš žinau, kad jis galėjo būti šiek tiek sunku, kai kurie iš jūsų, galėjo būti jūsų pirmasis kompiuterinė programa, kuri jums parašė, bet tik nepamirškite, kad šį tikslą, kai jūs atsigręžti semestro pabaigoje, jums pažvelgti pset 1 ir jūs galėsite pasakyti: "Ei, aš galėjo padaryti, kad per 5 minutes." Taigi, žinote ir kuriais pasitikite, kad tai pabaigoje jums tikrai rasti 1 pset gana paprasta. Bet dabar ji yra didžiulis pasiekimas, ir sveikinimai gauti padaryti. Dabar, taip pat trumpa pastaba, kol mes gauti į rankos mėsos. Aš tik noriu, kad greitai dėmesį, kad aš kartais neturite pakankamai laiko per walkthroughs eiti per kiekvieną problemą, daro taip, ir gana galbūt kaip tik sutelkti dėmesį į 1 arba 2 rūšių diegimas, būdai, kad galima tai padaryti. Bet tai nėra pasakyti, kad jums yra draudžiamas daro jį kitu būdu. Yra dažnai, kaip su kompiuterių mokslo, daug būdų, kaip daryti dalykus, ir tai tikrai jaučiasi laisvai naudoti kito tipo tirpalo, nei aš gali būti pateiktos. [2 pset: Crypto - Zamyla Chan - zamyla@cs50.net] [Pset2 - 0. Klausimų skyrius - 1. Cezaris - 2. Vigenere] Gerai. Taigi problema nustatyti 2: Crypto yra įdomus vienas. Vėlgi, su kiekvienu pset jūs pradėsite su klausimų skyriuje kad manimi vyksta jūsų sekcijose turi būti atliekamas su savo paskirtiems mokymo kolegos. Mes neketiname eiti per tai per rankos, tačiau jie tikrai padės baigsite pset. Taigi, pirmoji dalis problemos rinkinį Cezaris. Ir taip, Cezaris kas bus perduoti jums su sveikojo skaičiaus klavišą, ir jums bus užšifruoti teksto eilutę, kad jie suteiks jums ir suteikti jiems šifruotą dalykas. Jei kas nors stebėjo Kalėdų istorija, yra pavyzdys, kad. Tada antroji dalis problemos komplekto yra Vigenere kuris yra daugiau pažangių šifravimo metodas. Ir taip mes ketiname šifruoti teksto fragmentą, išskyrus tuos atvejus, o ne tik su vienu sveikojo skaičiaus, mes iš tikrųjų ketiname koduoti su raktiniu žodžiu, kad vartotojas bus pateikti mums. Gerai, kad pirmasis įrankis, įrankinės šiandien yra iš tikrųjų bus atnaujinti prietaisą. Dėl diskusijų lentoje būtų pamatyti dalykų, pavyzdžiui, "Kodėl tai veikia?" "Kodėl nepateikia 50?" ir dažnai sprendimas iš tikrųjų yra tik atnaujinti savo prietaisą. Ir todėl, jei jūs tiesiog paleisti terminalo lange jūsų prietaiso sudo yum-y - tai vėliava sakydamas taip, atnaujinti viską - atnaujinta tada jūsų įrenginys bus atnaujinti, jei reikia. Ir ji negadina, jei jūs jau yra naujausios versijos prietaiso. Tada jis bus tik pasakyti, jokių naujų atnaujinimų, ir jūs galite toliau dirbti kartu. Bet tai yra gerai, net vykdyti kiekvieną kartą, kai atidarote prietaiso nes mes dar labai daug - kartais, jei mes einame į Klaidos - Tvirtinimo jį į prietaisą. Todėl įsitikinkite, įsitikinkite, kad turite naujausią versiją su prietaiso ir paleisti, kad atnaujinti yra. Gerai. Taigi, kadangi mes susiduriame su raidėmis ir keičiasi, šifravimo dalykų, mes ketiname tikrai norite tapti geriausiais draugais su mūsų ASCII diagramos. Yra daug tie internete, jei jums rasti. Gal net padaryti savo. Iš esmės, nurodant kiekvienos raidės ir kiekvienas skaičius ir Kiekvienas personažas yra numeris su jais susiję, ir todėl gerai matyti savo ASCII reikšmes kartu su faktinio laišku. Kad tikrai padės jums į problemą, rinkinį. Vienas dalykas, kad tikrai padėjo man šią problemą, buvo iš tikrųjų jį atspausdinti, ir kaip buvau išgyvena, aš iš tikrųjų atkreipti į jį, rašo: "Jei tai turi eiti ten, tada ..." Rūšies remtis pažymėkite ją, tapo geriausi draugai su savo ASCII lentelę. Tada mes turime kelias kitas priemones, mūsų žinioje. Šį kartą, o ne iš tikrųjų paskatino vartotoją visiems jų indėlį mes ketiname padaryti derinys. Mes ketiname greitai juos kai įėjimo, bet mes taip pat ketiname tiesiog naudoti komandinės eilutės argumentai. Taigi, kai jie paleisti savo programą, paprastai jūs pasakyti. / Hello, pavyzdžiui, jei jūsų programa hello.c. Bet šį kartą, o ne tiesiog pasakyti, kad jie gali įdėti žodžius, argumentai vėliau. Ir taip mes ketiname naudoti bet jie pereina į mus, kaip jų indėlį, taip pat, taip peržengiant tiesiog stebinčių sveikojo skaičiaus, bet ir naudojant komandinės eilutės argumentai. Ir tada mes eiti į masyvų ir styginiams, kuriuos mes naudoti taip pat daug. Štai tik 1 mini ASCII diagramos pavyzdys. Kaip sakiau, kiekviena raidė atitinka prie numerio ir taip susipažinti su tuo. Ji bus naudinga. Ir vėliau, kai mes pradėti daryti šiek tiek ASCIIMath, susijusius su numerių pridurdamas, atimant jas - tada tikrai gerai, kad kreiptis į šios diagramos. Taigi čia Cezario šifravimo pavyzdys - kažkas, kad jums gali būti žaidžiamas su. Jis yra tik ratų. Iš esmės, yra išorinis abėcėlė ir ten yra vidinė abėcėlė. Taigi, čia yra Cezario šifras, bet su 0 rakto pavyzdys. Iš esmės, yra suderintas su A, B, būtų suderinta su B, visą kelią iki Z. Bet tada sako, kad mes norėjome iš 3 raktą, pvz. Tada mes turėtume pasukti vidinį ratą taip, kad sutaptų su D ir tt Ir todėl tai iš esmės yra tai, ką mes ketiname daryti. Mes neturime rato, bet tai, ką mes ketiname daryti, kad mūsų programą rūšies perkelti abėcėlė, kartu su mumis, tam tikrą skaičių. Taigi, kaip jau minėjau anksčiau, mes ketiname būti susijusios su komandinės eilutės argumentai taip pat gauti sveikąjį skaičių. Taigi, taip, kad vartotojas bus paleisti Caesar programą yra suprantama. / Caesar ir tada įvesti numerį, po to. Ir šis skaičius sudaro raktą, perjungimo, kiek kartų jūs ketinate, sukasi vidinį ratą savo Cezario šifras. Ir taip pamatysite čia pavyzdys. Jei mes įrašyti raides nuo A iki L mūsų Cezario šifras Tada ji būtų įvesties D per O, nes tai kiekvienas laiškas perėjo daugiau nei 3 kartus, kaip ir rato, kad aš parodžiau jums pavyzdys. , Pavyzdžiui, tada, jei įvedėte Tai CS50! tada ji taip pat perkelti visas raides. Ir tai yra svarbus dalykas, Cezario ir Vigenere yra tai, kad mes ketiname praleisti bet ne raides. Taigi jokių tarpų, simbolių ir tt, skaičiai, mes ketiname išlaikyti juos tas pats. Mes tik ketina perkelti laiškus šiuo atveju. Taigi, kaip matote rato, turime tik raides, mums, taip, mes tik norime perkelti laiškus ir šifruoti laiškus. Taigi pirmas dalykas, kurį reikia padaryti, kad matėte,, kad naudojimas Cezario problema nustatyti 2 yra paleisti Cezaris, ir tada įveskite numerį, kai jį paleisti terminale. Taigi, ką mes turime padaryti, tai kažkaip gauti tą raktą ir patekti į jį. Ir todėl mes norime kažkaip tai bus antrasis komandinės eilutės argumentas. Pirmasis bus. / Cezario, o kitą bus raktų numerį. Taigi, kol mes turėjo int main (void) pradėti savo C programas. Mes ketiname žievelės atgal į sluoksnį, šiek tiek ir realiai pamatyti, kad vietoj einančios tuštumos į mūsų pagrindinė funkcija mes iš tikrųjų susiduriame su 2 parametrų. Mes turime int, pavadintą argc ir tada eilučių masyve argv. Taigi argc yra sveikasis skaičius, ir ji yra perduotus argumentus, kad jūsų programa. Ir tada argv iš tiesų yra perduotus argumentus sąrašas. Visi argumentai yra eilutės, ir taip argv atstovauja masyvą, sąrašą, stygų. Pakalbėkime apie masyvų šiek tiek. Matricos yra iš esmės nauja duomenų struktūra. Mes turime int, mes dviviečiai, mes turime eilutes, ir dabar mes turime masyvų. Matricos yra duomenų struktūros, kurie gali turėti keletą reikšmių tos pačios rūšies, taip iš esmės, neatsižvelgiant į jų rūšį norite sąrašą. Iš esmės, jei jūs norėjote 1 kintamojo sveikųjų skaičių sąrašą, tada jums reikės sukurti naują kintamąjį, tipo int masyvas. Taigi matricos yra nulinės indeksuota, tai reiškia, kad pirmasis elementas masyve yra indeksuoti kaip 0. Jei masyvas yra 4 ilgio, kaip šiame pavyzdyje, tai jūsų paskutinis elementas būtų indeksuoti 3 kuris yra 4-1. Taigi, norint sukurti masyvą, galėtumėte padaryti kažką panašaus į tai. Pasakykite, kad norėjo dvigubo masyvo. Tai pasakytina ir apie bet kokio tipo duomenų tipo, nors. Taigi pasakyti norite dvigubo masyvo. Tarkime, jūs norite jį pavadinti paštas. Tiesiog kaip galėtumėte inicijuoti bet kokią kitą dvigubai, dvigubai ir tada sakykite vardą, bet šį kartą mes įdėti į skliaustus, ir tada numeris bus masyvo ilgis. Masyvuose mes galime bet kada pakeisti ilgis, todėl jūs visada turite nustatyti ir pasirinkti, kiek dėžės, kiek reikšmės jūsų masyvas ketina surengti. Taigi, norint nustatyti skirtingas vertybes savo masyvas, jūs ketinate naudoti tokią sintaksę, kaip matote skaidrėje. Jūs turite paštas puslapis 0 bus nustatyti iki 1,2, paštas indeksas 1 rinkinys 2,4, ir tt Taigi dabar, kad mes peržiūrėsime rinkiniai + šiek tiek grįžkime argc ir argv. Mes žinome,, kad argv dabar eilučių masyvas. Taigi, kai vartotojas pereina - pasakyti, kad jie buvo paleista programa - jie sako. / Apie Davidas Malan tai, ką programa darys, jūs jau iš tikrųjų yra sugalvoti su tuo, ką argc ir argv. Taigi jums nereikia nerimauti, kad. Argc šiuo atveju bus 3, nes jis mato 3 skirtingus žodžius, atskirtus tarpais. Ir taip, tada šiuo atveju masyvas, pirmasis puslapis būtų. / Sveiki, kitą Dovydas, kitą Malan. Ar kas nors pamatyti iš karto, ką santykiai tarp argv  masyvas, ir argc yra? Taip. Mes į, kad, pavyzdžiui args.c. Leiskite pamatyti, jei mes galime pasinaudoti santykius tarp 2. Čia galite rasti, kad į prietaisą Programa pagal nutylėjimą atidaryti C failus kartais Emacs. Bet mes norime susidoroti su gedit, kad tai, ką jūs galite padaryti, galite dešiniuoju pelės klavišu ant jūsų C failą, eiti į Properties Atidaryti naudojant, tada pasirinkite gedit, Nustatyti kaip numatytąjį, ir dabar jūsų programa turėtų būti atidaryta gedit vietoj Emacs. Tobula. Taigi čia aš turiu programą, kurią norite spausdinti kiekvieną komandinės eilutės argumentas. Taigi nepriklausomai vartotojo įėjimai, aš noriu grąžinti jį atgal į juos iš esmės naują eilutę. Taigi, kas yra struktūra, kad mes galime naudoti, kad keistumėte ką nors - kažkas, kad jūs tikriausiai naudojamas jūsų pset 1? Jei norite eiti per nustatytą skaičių dalykų? >> [Studentas] kilpa. Už linijos. Tiksliai. Taigi pradėkime už linijos. Mes turime int i = 0. Tegul tik pradėti su standartiniu iniciacijos kintamojo. Aš ruošiuosi palikti už nustatytą sąlygą ir tada sako i + +, ketinate daryti dalykų ten. Gerai. Taip galvoti atgal argv, jei argv yra argumentų, priimtas į programą, sąrašas ir argc programoje yra daug argumentų, tada tai reiškia, kad argc iš esmės yra argv ilgis, tiesa, nes ten bus kaip daugelio argumentų kaip argc vertės. Taigi, jei mes norime kartoti per kiekvieną elementą argv, mes ketiname norite kiekvieną kartą naudoti kintamąjį argv prie tikro indekso. Tai galima pavaizduoti tai, tiesa? Šis kintamasis čia atstovauja šiuo atveju ypatingą eilutę , nes jis styginių masyvas - tuo tikro indekso pirma eilutė. Ką mes norime daryti, šiuo atveju mes norime spausdinti jį, todėl tarkim printf. Ir dabar argv yra eilutė, todėl mes norime, kad vietos rezervavimo ženklą. Mes norime, kad naują eilutę, tik, kad ji atrodo gerai. Taigi čia mes turime už linijos. Mes neturime būklę. Taigi, aš prasideda nuo 0, ir tada kiekvieną kartą jis ketina spausdinti nurodytą eilutę tuo konkrečiu indeksą masyve. Taigi, kai mes norime nustoti spausdinti masyvo elementus? Kai baigsite, tiesa? Kai mes pasiekėme masyvo pabaigos. Taigi mes nenorime viršyti praeityje masyvo ilgį, ir mes jau žinome, mums nereikia, kad iš tikrųjų aktyviai išsiaiškinti, kas argv ilgis yra , nes jis mums duota, ir kas tai? Argc. Tiksliai. Taigi, mes norime padaryti šį procesą argc skaičių kartų. Nesu teisinga kataloge. Gerai. Dabar padarykime args. Jokių klaidų, kuris yra puikus. Todėl galime tik paleisti args. Kas yra tai grįžti į mus? Tai tiesiog ketinate spausdinti jį atgal. "Jūs įvestas args į programą; aš ruošiuosi duoti jį su Jumis." Tarkime, mes norime pasakyti args foo juostą. Taip, tada jis spausdina jį atgal į mus. Viskas gerai? Taigi yra pavyzdys, kaip jūs galite naudoti argc ir argv argc žinant, kad atstovauja argv ilgis. Padaryti, įsitikinkite, kad jūs ne kada nors su matricos atidaryti vieną už masyvo ilgį nes C tikrai šaukti į jus. Jūs gausite kažką vadinama segmentavimo kaltės, kuris niekada įdomus, iš esmės sakydamas, jūs bandote pasiekti kažką kad neegzistuoja, nepriklauso jums. Todėl įsitikinkite, kad, o ypač su nuline indeksavimo, mes nenorime - Kaip, pavyzdžiui, jei mes turime 4 ilgio masyvą, kad masyvas 4 puslapis neegzistuoja, nes mes pradedame nuo 0, ne nulinis indeksas. Jis taps savaime kaip ir kilpos, kai mes prasideda nuo 0. Tad tiesiog keep that in mind. Jūs nenorite, kad kada nors pasiekti indeksą masyvo, kad po ranka. Taigi matome dabar, kaip mes galime tipo priėjimą perduoti komandinės eilutės argumentai, perduodamos. Tačiau, kaip matėme eilutę argv yra iš tikrųjų styginių masyvas. Taigi tikrai nėra sveikasis skaičius dar, bet Cezario mes norime susidoroti su sveikaisiais skaičiais. Laimei, yra funkcija, sukurta mums, kad iš tiesų gali konvertuoti eilutę iki sveikojo skaičiaus. Taip pat čia nėra susijusios su naudotojo įvesties kur mes paskatinti juos įvesties čia raktą, todėl mes galime ne iš tikrųjų reprompt ir pasakyti, "O, duok man kitą sveikasis skaičius, tarkim, jei tai negalioja." , Tačiau mes vis dar reikia patikrinti, ar teisingai naudojimo. Cezario jie yra leidžiami tik važiuoti, numeris 1, ir todėl jie turi paleisti / Cezaris ir tada jie turi duoti jums numerį. Taigi argc turi būti tam tikras skaičius. Kokiu numeriu tai būtų, jei jie turi perduoti jums. / Cezario ir tada raktu? Kas yra argc? >> [Studentas] 2. >> Du. Tiksliai. Taigi, jūs norite įsitikinti, kad argc yra 2. Priešingu atveju jūs iš esmės atsisako paleisti programą. Pagrindinis tai funkcija, kuri sako int main taip, tada mes visada geros praktikos return 0 prie sėkmingo programos pabaigos. Taigi, jei, tarkim, jie suteikia jums 3 komandinės eilutės argumentai, o ne 2 ar jums 1, pavyzdžiui, tada, ką jums daryti, jūs norite patikrinti, ar ir tada grįžti 1 sakydamas: ne, aš negali tęsti su šia programa. [Studentas] Negali būti savo tekstą erdvė. >> Atsiprašau? [Studentas] Negali būti vietos tekste, kurį bandote užšifruoti. Ah! Kalbant apie tekstą, kurį mes bandome šifruoti, kad iš tikrųjų ateina vėliau kai mes šį tekstą. Taigi dabar mes tiesiog priimti kaip komandų argumentuose tikrasis skaičius, tikrasis perėjimas Cezario šifravimo. [Studentas] Kodėl jums reikia 2, o ne tik 1 argc? Yra tikrai numeris 1. Į dešinę. Priežastis, kodėl mes turime 2 už argc vietoj 1 yra todėl, kad, kai paleidžiate programą ir pasakyti. / caesar arba / Sveiki, kad iš tikrųjų skaičiuoja kaip komandinės eilutės argumentu. Taip, tada, kad jau užima 1 ir taip, tada mes įvedusi 1 papildoma. Taigi jūs įvedusi tikrai komandinės eilutės argumentas eilutę. Tai, ką norite daryti, Cezario mes norime susidoroti su sveikojo skaičiaus, , todėl jūs galite naudoti šią funkciją atoi. Ir iš esmės, jums perduoti jį į eilutę ir tada ji sugrįš jums atgal sveikasis skaičius jei tai įmanoma padaryti, kad eilutę į sveikojo skaičiaus. Dabar prisimenu, kai mes susiduriame su printf arba GetString, dalykų, pavyzdžiui, kad, mes įtraukiame bibliotekų, kurias specialiai mums. Taigi pradžioje mes pradedame su maišos žymės Standartinio I / O, h, kažką panašaus, kad. Na, atoi nėra vienoje iš šių bibliotekų, todėl tai, ką mes turime padaryti, yra už tai mes turime tinkamą biblioteką. Taigi prisiminti Walkthrough 1, kur aš aptarė vadovą funkciją. Jūs parašykite man savo terminalą, o po to funkcijos pavadinimą. Ir kad duos visą eilę jo naudojimo, , bet taip pat jis bus parodytas, kuriuos biblioteka, kuri priklauso. Taigi aš palikti, kad jums naudoti rankinio valdymo funkciją su atoi ir išsiaiškinti, kuriuos biblioteka reikia įtraukti, kad būtų galima naudoti atoi funkciją. Taigi, mes turime raktą ir dabar jis yra gauti paprastą tekstą, ir kad iš tikrųjų bus naudotojo įvesties, kur jūs greitai. Mes nagrinėjami GetInt ir GetFloat ir tt Lygiai taip pat mes ketiname būti susijusios su GetString. Bet šiuo atveju mes nereikia daryti jokių DO arba o kontūrus patikrinti. GetString tikrai suteiks mums eilutę, ir mes ketiname užšifruoti viską, vartotojas suteikia mums. Todėl jūs galite manyti, kad visi iš šių naudotojų gauto stygos yra teisingi. Didysis. Taip, tada, kai jūs turite raktą ir kai jūs turite tekstą, dabar kas liko turite šifruoti paprastojo. Tiesiog greitai padengti per žargonas, paprastasis yra tai, ką vartotojas suteikia jums, ciphertext yra tai, ką jums grįžti į juos. Taigi, stygos, kad būtų galima eiti per faktiškai laiške laišku nes mes turime pereiti kiekvieną laišką, mes suprantame, kad eilutės, jei mes tipo žievelės atgal sluoksnio, matome, kad jie tiesiog tikrai simbolių sąrašas. Vienas ateina po kito. Ir taip mes galime traktuoti kaip masyvai, nes jie yra matricos simbolių eilutes. Taigi, tarkime, jūs turite eilutę, pavadintą tekstas, ir per tą kintamąjį tekstą saugomas Tai CS50. Tik paskui tekstas 0 indeksuoti būti didžioji T, indeksas 1 h, ir tt Ir tada su matricomis, args.c argc pavyzdžiui, pamatėme, kad mes turėjome pakartoti per masyvą ir todėl mes turėjome kartoti nuo i = 0, kol i mažiau nei ilgio. Taigi, mes turime šiek tiek suprasti, ką mūsų eilutę ilgis jei mes ketiname pakartoti per jį. Laimei, vėl, yra funkcija yra už mus, nors vėliau CS50 jums tikrai galės įgyvendinti ir atlikti savo funkciją kad gali apskaičiuoti eilutės ilgis. Bet dabar mes ketiname naudoti eilutės ilgis, todėl strlen. Jums pereiti į eilutę, ir tada ji sugrįš jums int, kuri atstovauja eilutės ilgį. Pažvelkime, kaip galėtume pakartoti per kiekvieną simbolį į eilutę, pavyzdžiui ir kažką daryti su tuo. Ką mes norime padaryti, tai kartoti per kiekvieną eilutę simbolį, ir tai, ką mes norime padaryti, tai mes spausdinti kiekvieną simbolį 1 iš 1 išskyrus mes pridėti kažką šalia jo. Taigi pradėkime už linijos. Int i = 0. Mes ketiname palikti vietos sąlyga. Mes norime kartoti, kol mes pasiekti eilutės pabaigos, tiesa? Taip, tada kokia funkcija suteikia mums eilutės ilgis? [Nesigirdi studentas atsakas] Štai ilgis iš komandinės eilutės argumentai. Bet eilutę mes norite naudoti funkciją, kuri suteikia mums eilutės ilgį. Taip, kad eilutės ilgis. Ir taip, tada jūs turite pereiti eilutę. Jis turi žinoti, ką eilutė turi apskaičiuoti ilgį. Tada šiuo atveju mes susiduriame su virvele s. Didysis. Taip, tada tai, ką mes norime padaryti, tegul printf. Dabar mes norime susidoroti su raidėmis. Mes norime spausdinti kiekvieną individualų charakterį. , Kai norite jį atsispausdinti plūdę, jums reikės naudoti vietos rezervavimo ženklą kaip% f. Su int galėtumėte naudoti% d. Ir panašiai, raide naudojate% c pasakyti, kad aš ruošiuosi būti, kad spausdinate simbolį kad saugomas viduje kintamasis. Taigi, mes turime tai, ir Pridėkime laikotarpis ir Space. Kuris personažas yra naudojate? Mes ketinate naudoti kokia pobūdis mes eilutę. Taigi tada mes ketiname naudoti kažką su virvele, bet mes norime, kad patekti į tam tikrą charakterį. Taigi, jei eilutė yra tik matrica, tai kaip mes masyvų elementus? Mes turime tuos skliaustus, ir tada mes ten įdėti indeksą. Taigi, mes turime skliaustus. Mūsų puslapis šiuo atveju, mes galime tiesiog naudokite i. Tiksliai. Taigi čia mes sakome mes ketiname būti, kad spausdinate simbolį po taško ir erdvės, ir kad charakteris bus i mūsų styginių s raidė. Aš tiesiog ketina sutaupyti. Gerai. Dabar aš ruošiuosi paleisti eilutės ilgis. Taigi mes turėjome eilutę, pavadintą OMG, ir dabar jis pabrėžė, dar labiau. Be to, galime pasakyti, kad mes iš tikrųjų nori gauti eilutę iš vartotojo. Kaip galėtume tai padaryti? Anksčiau, kaip mes gauti int? Mes sakėme GetInt, tiesa? Bet tai nėra INT, todėl galime GetString. Kurkime eilutės ilgis. Čia mes ne įvesti tam tikrą eilutę. Taigi, aš nežinau. Aš ruošiuosi įdėti savo vardą čia, ir taip, tada aš galiu padaryti, vienas iš tų dalykų kur aš priskirti žodį Kiekvienas laiškas ar kažką panašaus, kad. Cool. Taip, kad eilutės ilgis. Taigi mes grįžome į Cezario. Mes turime keletą įrankių, kaip galime pakartoti per eilutę, kaip mes pasiekti kiekvieną atskirą elementą. Taigi dabar mes galime grįžti į programą. Kaip jau minėjau anksčiau, ASCII lentelę, jūsų geriausias draugas, jūs ketinate pamatyti numerius, kurie yra susiję su kiekvienos raidės. Taigi čia pasakyti, mūsų paprastasis tai aš apsvaigęs! Tada kiekvienas iš šių simbolių ketina turėti numerį ir ASCII reikšmė, su juo susijusios, netgi apostrofas, net erdvė, net šauktukas, todėl jūs norite keep that in mind. Taigi sako mūsų raktas, kad vartotojas, įtrauktas į savo komandinės eilutės argumentas yra 6. Tai reiškia, kad už pirmąją raidę, kuri yra i, kuriai atstovauja 73, norite grįžti į juos, kokia raidė atstovauja ASCII vertės 73 + 6. , Kad šiuo atveju būtų 79. Dabar mes norime eiti prie kito simbolio. Taigi sekantis indeksas 1 iš paprastojo būtų apostrofas. Bet atsiminkite, mes tik norime šifruoti raides. Taigi, mes norime įsitikinti, kad, apostrofas tikrųjų lieka ta pati, kad mes negalime pakeisti nuo 39 iki 45 whatever. Mes norime laikyti jį kaip kabutes. Taigi, mes norime prisiminti tik šifruoti raides nes mes norime visų kitų simbolių nesikeis mūsų programoje. Kitas dalykas, kad mes norime išsaugoti didžiąsias raides. Taigi, kai turite didžiąsias raides, jis turėtų likti kaip didžiosiomis raidėmis. Mažosios raidės turi likti kaip mažosiomis raidėmis. Taigi keletas naudingų funkcijų, kad būtų galima spręsti tik šifravimo laiškų ir išlaikyti išsaugoti kapitalizuoti dalykų yra IsAlpha, isupper, IsLower funkcijos. Ir todėl tai yra funkcijos, kurios grąžina Būlio vertė. Iš esmės, true arba false. Ar tai didžiosiomis raidėmis? Ar tai raidinis skaitmeninis? Ar tai laiškas, iš esmės. Taigi, čia yra 3 pavyzdžiai, kaip galėtumėte naudoti šią funkciją. Iš esmės, jūs galėtų patikrinti, ar šios funkcijos jums grąžinta reikšmė yra true arba false remiantis, kad pirkimo. Arba daryti ką nors ar ne šifruoti Šifro arba įsitikinkite, kad tai didžiosiomis raidėmis ir tt [Studentas] Gal galėtum paaiškinti šiek tiek daugiau ir kaip jūs juos naudoti? >> Taip, tikrai. Taigi, jei mes žiūrime atgal, čia mes turime papildomą kapitalą I, tiesa? Taigi mes žinome, kad man vyksta O, nes aš + 6 O. Bet mes norime įsitikinti,, kad O bus kapitalo O. Taigi, iš esmės, tai yra rūšies ketina keisti savo indėlį. Tad ar tai būtų didžiąsias arba ne natūra pakeisti taip, kad mes su ja kovojame. Taip, tada, jei mes naudojame isupper apie tą konkrečią indekso funkcija, taip isupper ("aš"), kuri grąžina mus tikrosios, todėl mes žinome, kad tai viršutinis. Taip, tada remiantis, kad vėliau mes pereiti į formulę , kad jūs naudojate perkelti dalykų Cezaris, taip, tada iš esmės, ten bus šiek tiek kitoks formulė, jei jis didžiąsias , o ne į mažąsias. Prasminga? Taip. Jokių rūpesčių. Aš kalbėjau šiek tiek apie laiške, kuris ne visai prasmės pridedant 6 išskyrus atvejus, kai mes tipo suprasti, kad šie simboliai yra natūra sukeisti su sveikaisiais skaičiais. Tai, ką mes darome, yra rūšies naudojimo numanomo liejimo. Mes eiti į liejimo šiek tiek vėliau, kur jūs imtis vertę ir jūs jį į kitos rūšies nei jis iš pradžių buvo. Tačiau su šiuo pset galėsime rūšies pakaitomis naudoti simbolius ir jų atitinkami skaičiai. Taigi, jei jūs tiesiog aptaisyti tik su viengubomis kabutėmis simbolį, tada galėsite su juo dirbti su sveikaisiais skaičiais, susijusios su juo, kaip sveikasis skaičius. Taigi kapitalo C iki 67. Mažosios raidės f iki 102. Vėlgi, jei jūs norite žinoti šias vertybes, pažvelgti į savo ASCII lentelę. Taigi eikime į keletą pavyzdžių, kaip jums gali būti suteikta atimti ir pridėti, , kaip jūs iš tikrųjų galite tikrai veikia su šių simbolių, naudokite juos pakaitomis. Aš sakau, kad ASCIIMath ketina apskaičiuoti simbolį be sveikasis skaičius ir tada parodo gautą pobūdį, taip pat gautą ASCII reikšmė. Ir taip čia aš noriu pasakyti - we'll susiję su šios dalies vėliau - bet iš esmės, aš noriu pasakyti, kad vartotojas turi pasakyti paleisti ASCIIMath kartu su raktu, ir aš sakau, kad svarbiausia bus numeris , su kuria mes ketiname pridėti šį simbolį. Taigi čia pastebėti, kad, nes aš reiklus raktą, nes aš reikalauja, kad jie suteikia man 1 dalykas, Aš tik noriu priimti / asciimath ir raktas. Taigi, aš ketina reikalauti, kad argc lygus 2. Jei ne, tada aš nesiruošia grįžti 1 ir programa bus išeiti. Taigi aš sakau, svarbiausia yra nesiruošia būti pirmasis komandinės eilutės argumentas, tai bus antrasis, ir, kaip matote čia, Aš ruošiuosi kreiptis, kad į sveikasis skaičius. Tada aš ketina nustatyti simbolį r. Atkreipkite dėmesį, kad kintamojo Chr tipas yra sveikasis skaičius. Klojinius jį su šiomis viengubomis kabutėmis būdas, kad aš galėtų naudoti kaip sveikasis skaičius r. Taigi atgal į mūsų printf, kur turime simbolį rezervavimo ir tada vietos rezervavimo ženklas sveikasis skaičius, simbolių atstovauja "Chr" ir sveikasis skaičius yra raktas. Ir taip, tada mes ketiname dvikovė pridėti 2 kartu. Taigi, mes ketiname pridėti r + bet raktas, ir tada mes ketiname spausdinti, kad rezultatą. Taigi padarykime asciimath. Tai iki šiol, tad tiesiog paleisti asciimath. Oh, bet pamatyti, nėra nieko daryti, nes mes ne iš tikrųjų duoti raktą. Taigi, kai ji ką tik grįžo 1, Mūsų pagrindinė funkcija, ji ką tik grįžo atgal į mus. Taigi, galime perduoti raktą. Kas nors duoti man numerį. >> [Studentas] 4. 4. Gerai. Taigi r padidėjo 4 ketina duoti mums v, kuris atitinka ASCII vertės 118. Taip, tada tai tipo prasminga, kad - Tiesą sakant, aš galiu paprašyti jus, ką jūs manote, ASCII reikšmė r jei r + 4 yra 118? Tada taip, kad r yra 114. Taigi, jei ieškote ASCII lentelę, tada, tikrai pakankamai, jūs pamatysite, kad r yra atstovaujama 114. Taigi dabar, kad mes žinome, kad mes galime pridėti sveikieji skaičiai iki simbolių, tai atrodo gana paprasta. Mes tik ketina pakartoti per eilutę, kaip matėme, pavyzdžiui, prieš. Mes patikrinti, jei tai laiškas. Jei taip yra, tada mes jį perkelti, bet raktas. Gana paprasta, išskyrus tuos atvejus, kai jūs gaunate patinka šis, pamatysite, kad, atstovaujamos 122 z, tada duos jums kitą simbolį. Mes iš tikrųjų nori gyventi per mūsų abėcėle, tiesa? Taigi, mums reikia išsiaiškinti tam tikros rūšies vyniojimo aplink kelią. Kai jūs pasieksite Zed ir norite padidinti tam tikro skaičiaus, nenorite eiti į už ASCII abėcėlės skyriuje; norite wrap visą kelią atgal į A. Tačiau reikia nepamiršti, jūs vis dar išsaugoti bylą. Taigi, žinant, kad raidės negali tapti simboliai tik kaip simboliai nebus taip pat keičiasi. Per pastarąjį pset jūs tikrai nereikėjo, tačiau galimybė įgyvendinti savo gobšus pset naudojant modulis funkciją. Bet dabar mes iš tikrųjų ketiname reikia naudoti modulius, tad tiesiog eiti per šį šiek tiek. Iš esmės, kai jūs turite x Modulo y, kad suteikia jums x padalintas Y likusią. Štai keletas pavyzdžių čia. Mes turime 27% 15. Iš esmės, kai jūs atimti 15 iš 27 tiek kartų, kiek įmanoma be getting neigiamas tada jums 12, likusių. Taigi, tai tipo kaip ir matematikos kontekste, bet kaip mes galime iš tikrųjų naudoti? Ji ketina būtų naudinga mūsų wrapover. Už tai, tegul tiesiog pasakyti, aš paprašiau, kad tu visiems padalinti į 3 grupes. Kartais tai padaryti grupių ir kažkas panašaus. Pasakykite, aš pasakiau: "Gerai, Noriu, kad visi turi būti suskirstyta į 3." Kaip galite tai padaryti? [Nesigirdi studentas atsakas] Taip, būtent. Atsiskaityti. Gerai. Tegul iš tikrųjų, kad. Ar norite pradėti? [Studentai, skaičiuojant] 1, 2, 3, 4. Bet atsiminkite, ... >> [Studentas] Oi, atsiprašau. Tai yra tikrai geras dalykas. Jūs sakėte, 4, bet mes iš tikrųjų norime jums pasakyti 1, nes mes tik norime 3 grupes. Taigi, kaip - Ne, tai tikrai geras pavyzdys, nes tada, kaip gali jums pasakyti, 1? Kas yra santykiai tarp 4 ir 1? Na, 4 mod 3 1. Taigi, jei norite tęsti, būtų 2. Taigi, mes turime 1, 2, 3, 1, 2. Dar kartą, jūs iš tikrųjų 5-asis asmuo. Kaip žinote, pasakyti 2 vietoj 5? Jūs sakote, 5 mod 3 2. Aš noriu pamatyti, kiek yra likę grupės 3, tada kokia tvarka aš Ir taip, tada, jei mes ir toliau palei visą kambarį, tada mes norėtume matyti, kad mes visada iš tikrųjų taikant mod funkciją į save rūšies atskaityti. Štai daugiau natūra materialiuoju pavyzdžiui, apie tai, kaip galite naudoti modulo , nes aš tikiu, kad dauguma iš mūsų tikriausiai išgyveno šio proceso kur mes turėjome atskaityti. Bet kokie klausimai dėl pagal modulį? Tai bus labai svarbu suprasti šios sąvokos, todėl aš noriu, įsitikinkite, kad jums, vaikinai supranta. [Studentas] Jei nėra likusi, ji suteiks jums faktinį skaičių? Jei viena iš pirmųjų 3 iš jų tai padarė, tai davė jiems, ką jie iš tikrųjų buvo, ar tai jiems davė [nesigirdi] >> Tai geras klausimas. Kai nėra Likusi pagal modulį - taip, tarkime, jūs turite 6 mod 3 - , kuris faktiškai suteikia jums atgal 0. Mes kalbame apie tai šiek tiek vėliau. Oh yeah, pavyzdžiui, 3-iasis asmuo - 3 mod 3 yra iš tikrųjų 0, bet ji sakė, 3. Taigi, kad koks kaip vidinės laimikis, pavyzdžiui, kaip gerai, jei mod yra 0, tada aš ruošiuosi būti 3-iasis asmuo. Bet mes susisieksime į natūra, kaip mes norime susidoroti su 0 yra vėliau. Taigi dabar mes kažkaip būdas fiksuoti Zed dešinėje laiško. Taigi dabar mes išgyveno šių pavyzdžių, mes rūšies pamatyti, kaip Cezaris gali dirbti. Pamatysite 2 abėcėles, ir tada pamatysite juos perkeliant. Taigi, pabandykime ir pareikšti, kad pagal formulę. Ši formulė yra iš tikrųjų jums duota spec, bet gal rūšies atrodo per tai, ką kiekvienas kintamasis reiškia. Mūsų galutinis rezultatas bus ciphertext. Taigi tai sako, kad-osios iš ciphertext pobūdis vyksta atitinka-ajai paprastojo pobūdžio. Tai turi prasmę, nes mes norime visada būti pamušalas šiuos dalykus. Taigi tai bus ciphertext plius k, kuris yra pagrindinis mūsų osios pobūdis - , kad prasminga ir tada mes turime šio mod 26. Prisiminti atgal, kai mes turėjome Zed mes nenorėjome gauti į simbolį, todėl norėjome Mod IT ir rūšis apgaubiamojo abėcėlės. Po Zed jums būtų eiti į, b, c, d, kol jūs turite su šiuo numeriu. Taigi mes žinome, kad Zed, jei + 6, būtų suteikti mums f, nes po Zed ateina a, b, c, d, e, g. Taigi galime prisiminti, mes tikrai žinome, kad Zed + 6 ketina duoti mums f. ASCII vertybių, z yra 122 ir f yra 102. Taigi, mes turime rasti tam tikrą kelią, kad mūsų Caesar formulę, suteikia mums 102 atsižvelgiant į 122. Taigi, jei mes tiesiog taikyti šią formulę ("z" + 6) 26%, kuris faktiškai suteikia jums 24 nes 122 + 6 128; suteikia jums 128% 26 24 likutį. Bet tai nereiškia, iš tikrųjų reiškia, f. Tai tikrai ne 102. Tai taip pat ne 6 abėcėlės raidė. Taigi akivaizdu, kad mes turime turėti šiek tiek truputį keisdami tai šiek tiek kelią. Kalbant reguliariai abėcėlės, mes žinome, kad z yra 26 raidė ir f yra 6. Bet mes informatikos, todėl mes ketiname rodiklį esant 0. Taigi tada vietoj Z yra numeris 26, mes pasakyti, kad tai numeris 25 nes yra 0. Taigi dabar galime taikyti šią formulę. Mes turime Z atstovavo 25 + 6, kuri suteikia jums 31. Ir 31 mod 26 suteikia jums 5 kaip likusios. Tai puiku, nes mes žinome, kad f yra 5 abėcėlės raidė. Tačiau ji vis dar ne f, tiesa? Jis vis dar nėra 102. Taip, tada šios pset iššūkis bus bando išsiaiškinti santykius tarp konvertuoti tarp šių ASCII vertybių ir abėcėlinė rodyklė. Iš esmės, ką jūs norite daryti, jūs norite pradėti ASCII vertes, bet tada jūs norite kažkaip išversti, kad į abėcėlinė rodyklė tada apskaičiuoti, ką raidė ji turėtų būti - iš esmės, ką jos abėcėlinė rodyklė Cipher pobūdžio - tada išversti, kad atgal į ASCII reikšmes. Taigi, jei jums ištraukti savo ASCII lentelę, tada pabandykite ir rasti ryšius tarp, tarkim, 102 ir 5 arba 122 ir 25. Mes Dotarłeś mūsų raktas iš komandinės eilutės argumentai, mes Dotarłeś paprastojo mes užšifruota. Dabar viskas, ką liko padaryti, tai spausdinti. Galėtume tai padaryti keletą įvairių būdų. Ką mes galime padaryti yra iš tikrųjų, spausdinti, kaip mes einame kartu. Kaip mes pakartoti per simbolių į eilutę, mes galime tiesiog spausdinti tada, kai mes jį apskaičiuoti. Arba, jūs taip pat galėtų laikyti jį masyvo ir simbolių masyvo ir pabaigoje pakartoti per tą visą masyvą ir atspausdinti jį. Todėl jūs turite daug galimybių, kad pora. Ir atminkite, kad% c bus vietos rezervavimo ženklų spausdinimo simbolį. Taigi mes turime Cezaris, ir dabar mes pereiti prie Vigenere kuris yra labai panašus į Cezario bet tik šiek tiek sudėtingesnis. Taigi iš esmės Vigenere jūs ketinate būti perduoti reikšminį žodį. Taigi vietoj skaičių, jūs ketinate turėti eilutę, ir kad ketina veikti kaip raktažodžio. Tada, kaip įprasta, jūs ketinate gauti eilutę eilutę iš vartotojo ir tada šifruoti, ir tada suteikti jiems ciphertext atgal. Taigi, kaip ir sakiau, jis labai panašus į Cezario, išskyrus tuos atvejus, o ne perkelia tam tikro skaičiaus, skaičius iš tikrųjų vyksta keisti kiekvieną kartą, nuo charakterio pobūdžio. , Tą skaičių, perkelti, jis atstovauja klaviatūros raidžių. Taigi, jei jūs įvesti pamainos, pavyzdžiui, tada, kad atitiktų poslinkį nuo 0. Todėl vėl atgal į abėcėlinė rodyklė. , Kas gali būti naudinga, jei jūs matote, kad mes iš tikrųjų susiduriame su ASCII vertybių taip pat raidės, taip pat abėcėlinė rodyklė, galbūt rasti arba padaryti savo ASCII lentelę, kuri rodo abėcėlinė rodyklė nuo 0 iki 25, nuo a iki z, ir ASCII reikšmes, kad būtų galima rūšies santykius ir eskizas ir išbandyti ir rasti keletą modelių. Panašiai, jei jūs pereiti prie tam tikros instancijos f ir tai yra arba mažosiomis arba didžiosiomis raidėmis f - tada, kad atitiktų 5. Ar mes gerai iki šiol? , Formulė Vigenere yra šiek tiek kitoks. Iš esmės, jūs pamatysite, kad tai tiesiog kaip Cezaris, išskyrus tuos atvejus, o ne tik k mes turime k indekso j. Atkreipkite dėmesį, kad mes ne naudoti, nes iš esmės, raktinio žodžio ilgį nebūtinai mūsų ciphertext ilgį. Tai bus šiek tiek aiškiau, kai mes matome pavyzdį, kad turiu šiek tiek vėliau. Iš esmės, jei jūs naudojate savo programą su raktinį žodį ohai, tada tai reiškia, kad kiekvieną kartą, ohai bus jūsų perėjimas. Taigi, priklausomai nuo to, kokią poziciją jūs esate raktiniu žodžiu, jūs ketinate perkelti savo tikrą ciphertext pobūdį ta suma. Vėl, kaip Cezaris, mes norime įsitikinti, kad išsaugotume kapitalizuoti dalykų ir mes tik šifruoti raidės, o ne simbolių ar tarpų. Taigi atsigręžti į Cezario funkcijas, kad jums gali tekti naudoti, taip, kad jūs nusprendė, kaip pereiti dalykų, ir taikyti tą, kad jūsų programa čia. Taigi leiskite Map this out. Mes turime paprastojo, kad mes Dotarłeś iš vartotojo GetString sakydamas ... yra CS50! Tada mes turime iš ohai raktinį žodį. Pirmieji 4 simboliai yra gana paprasta. Mes žinome, kad T yra atitraukiama o, tada h vyksta atitraukiama h, i atitraukiama. Čia jūs matote, kad 0, taip, tada galutinis vertė iš tikrųjų yra tik tas pats laiškas, kaip ir anksčiau. Tada s perkeliama i. Bet tada jūs turite šiuos laikotarpius. Mes nenorime, šifruoti, kad taip, tada mes ne pakeisti jį nieko ir tiesiog atsispausdinti laikotarpį nepakeičiant. [Studentas] Aš nesuprantu, kaip jūs žinote, kad tai yra atitraukiama - kur tu - >> Oi, atsiprašau. Viršuje čia matote, kad komandinės eilutės argumentas ohai čia, kad bus raktinį žodį. Ir todėl iš esmės, jūs važiuoti dviračiu per raktinį žodį simbolių. [Studentas] Taigi "o" ketina būti perkelti tas pats - Tt o atitinka tam tikrą skaičių abėcėlės. [Studentas] Teisė. Bet kur tu gauti CS50 dalis? Oh. Štai GetString, kur jūs esate, pavyzdžiui, "Duok man eilutę koduoti. [Studentas] Jie ketina duoti jums šį argumentą perkelti iki ir tada jums paprašyti jūsų pirmą eilutę. >> Taip. Taigi, kai jie paleisti programą, jie ketina įtraukti raktinį žodį komandinės eilutės argumentai, kai jie paleisti. Tada, kai jūs Įsitikinę, kad jie iš tikrųjų davė jums 1 ir ne daugiau, ne mažiau, tada jūs ketinate tai paskatins juos eilutę, tarkim, "Duok man eilutę." , Kad šiuo atveju jie jums duoda šitą ... yra CS50! Taip, tada jūs ketinate naudoti, kad ir naudoti ohai ir pakartoti per. Atkreipkite dėmesį, kad čia mes praleista daugiau šifravimo laikotarpius, , bet mūsų poziciją, už ohai, kitą mes naudojome o. Šiuo atveju tai šiek tiek sunkiau pamatyti, nes tai 4, todėl tegul toliau šiek tiek. Tiesiog klijuoti su manimi čia. Tada mes turime i ir S, kurie vėliau yra išverstas atitinkamai o ir h. Tada mes turime erdvę, ir taip, tada mes žinome, kad esate nesiruošia šifruoti tuos skyrius,. Tačiau atkreipkite dėmesį, kad vietoj vyksta šioje vietoje čia, mes šifravimo - Aš nežinau, jei jūs galite pamatyti, kad čia. Todėl nėra, kaip jūs iš tikrųjų iš anksto, tarkim, o važiuoja čia, h eina čia, goes here, i eina čia, o, h, i, o, h, a, i. Jūs neturite daryti. Jūs tik perkelti savo poziciją pagal raktinį žodį kai jūs žinote, kad jūs iš tikrųjų bus šifravimo faktinė laišką. Ar, kad šios rūšies prasmės? Gerai. Taigi, tik kai kurie priminimai. Jūs norite įsitikinti, kad jūs tik iš anksto į kitą raktinio žodžio raidę jei savo paprastojo simbolis yra raidė. Taigi sako, mes ne o. Pastebime, kad kito simbolio, i paprastojo indeksas yra numeris, pavyzdžiui. Tai mes ne iš anksto J, mūsų raktinį žodį indekso, kol pasieksite kitą raidę. Vėlgi, jūs taip pat norite įsitikinti, kad jūs vaikjuostės nuo raktinio žodžio pradžioje , kai esate ne jo pabaigoje. Jei matote, čia mes ne i kitą turi būti Ö. Taigi, jūs norite rasti tam tikrą kelią, kad galėtų vaikjuostės raktinio žodžio pradžioje kiekvieną kartą, kai jums pasiekti pabaigos. Ir tokiu būdu vėlgi, kokios operatoriaus naudinga toje vyniojimo aplink? Kaip išjungimo pavyzdžiui skaičiavimo. [Studentas] procento ženklas. >> Taip, procento ženklas, kuris yra modulį. Taigi modulį bus naudinga čia, jei norite, į kuriuos vyniojami indeksą savo ohai. Ir tiesiog greitas patarimas: pabandykite galvoti apie vyniojimo per raktažodžiu šiek tiek, kaip skaičiuoti išjungti, kur, jei yra 3 grupės, 4-oji asmenų, jų skaičius, kad jie pasakė buvo 4 mod 3, kuri buvo 1. Taigi pabandykite ir galvoti apie tai, kad taip. Kaip matėte formulę, kur jūs turite CI ir tada pi bet tada kj, norite įsitikinkite, kad jums sekti iš tų. Jums nereikia skambinti Tai aš, jums nereikia ją vadina j, , bet jūs norite įsitikinkite, kad jums sekti pozicijos, kad jūs savo paprastojo taip pat pozicijos, kad esate ne savo žodį nes tie, nebūtinai bus tas pats. Ne tik raktinis žodis - tai gali būti visiškai kitokia nei jūsų paprastojo ilgis. Be to, jūsų paprastas tekstas, yra skaičiai ir simboliai, todėl ji nesiruošia puikiai dera kartu. Taip. [Studentas] Ar yra funkcija, jei norite pakeisti raidžių? Galite pakeisti į sostinę? >> Taip, ten tikrai yra. Galite patikrinti - Aš manau, kad toupper, visi 1 žodį. Bet kai jūs bandote Šifro dalykų ir išsaugoti tekstą, tai geriausia, iš esmės turi atskirus atvejus. , Jei ji didžiąsias, tada jūs norite pereiti nes savo formulę, kai jūs atsigręžti kaip mes turi tipo kelyje pakaitomis tarp ASCII būdu atstovauti skaičius ir faktinis abėcėlinė rodyklė, mes norime įsitikinti, kad ten bus kai kurie iš modelio natūra, kad jūs ketinate naudoti. Kita pastaba modelio, iš tikrųjų. Jūs ketinate būti susijusios su skaičiais. Stenkitės nenaudoti magiškus skaičius, kuris yra stiliaus pavyzdys. Taigi sako, norite kiekvienai laiko poslinkio ko nors patinka - Gerai, kad užuomina, kitas spoileris yra, kai jūs ketinate būti perkelti kažką tam tikra suma, pabandykite negali atstovauti, kad faktinis skaičius , o pabandyti ir pamatyti, jei jūs galite naudoti ASCII reikšmė, kuri rūšies padaryti daugiau prasmės. Dar viena pastaba: Kadangi mes susiduriame su formulėmis, net jei jūsų TF rūšies žinoti, ką modelis gali būti naudojamas, geriausiai jūsų komentarų rūšies paaiškinti logiką, kaip ir, "Aš naudoju šį modelį, nes ..." rūšis ir trumpai paaiškinti modelio jūsų komentarų. [Tai buvo žingsnis po žingsnio 2] Jei nėra kitų klausimų, tada aš tiesiog likti čia šiek tiek. Sėkmės su jūsų pset 2: Crypto ir Ačiū, kad atvykote. [Studentas] Ačiū. >> Ačiū. [Media Atsijungęs intro]