[Powered by Google Translate] [Walkthrough - Set Problema 2]
[Zamyla Chan - Università ta 'Harvard]
[Dan huwa CS50. CS50.TV]
Kull dritt. Hello, kulħadd, u jilqgħu għall Walkthrough 2.
L-ewwel, nixtieq li nifraħ lilek għall-irfinar pset 1.
Naf li dan seta 'kien daqsxejn iebsa għal xi wħud minnkom,
seta 'kien ewwel kompjuter tiegħek programm li inti kiteb,
iżda biss ftakar li fl-aħħar ta 'dan, meta inti tħares lura fl-aħħar tas-semestru,
inti ser tħares lejn pset 1 u int ser jgħidu, "ħej, I seta 'jsir dan fil-5 minuti."
Allura taf u fiduċja li fl-aħħar ta 'dan inti ser issib definittivament pset 1 pjuttost sempliċi.
Iżda għal issa huwa tlestija enormi, u congratulations għal jkollna jsir.
Issa, wkoll nota ta 'malajr qabel nikbru fil-laħam ta' l-walkthrough.
I biss jixtiequ jagħmlu nota ta 'malajr li jien kultant mhux se jkollhom ħin biżżejjed
matul l-walkthroughs li jmorru permezz ta 'kull mod wieħed ta' kif isir is-sett problema
u pjuttost ftit forsi jiffoka fuq 1 jew 2 tip ta 'implimentazzjonijiet,
modi li inti tista 'tagħmel dan.
Iżda dan ma jfissirx li inti huma projbiti milli jagħmlu dan mod ieħor.
Spiss ikun hemm, kif ma 'xjenza tal-kompjuter, modi diversi ta' nagħmlu l-affarijiet,
u għalhekk definittivament tħossok liberu li juża tip differenti ta 'soluzzjoni minn I jista' jkollhom ppreżentati.
[Pset 2: kripto - Zamyla Chan - zamyla@cs50.net]
[Pset2 - 0. A Sezzjoni ta 'Mistoqsijiet - 1. Caesar - 2. Vigenere]
Kull dritt. Allura problema stabbiliti 2: kripto hija waħda gost.
Għal darb'oħra, ma 'kull pset inti ser tibda ma' taqsima tal-mistoqsijiet
li għaddej biex isiru taqsimiet tiegħek ma 'sħabi tiegħek tagħlim assenjati.
Aħna mhux se jmorru permezz ta 'dawn fuq il-walkthrough,
iżda huma definittivament se jgħinuk tlesti l-pset.
Allura l-ewwel parti tas-sett problema hija Caesar.
U hekk fil Caesar xi ħadd se jgħaddi għalik ewlieni ma 'numru sħiħ,
u int se kriptaġġ sekwenza ta 'test li huma jipprovdu inti
u tagħtihom lura ħaġa encrypted.
Jekk xi ħadd jarah A Story Milied, hemm eżempju ta 'dak hemm.
Imbagħad it-tieni parti tas-sett problema hija Vigenere,
li hija teknika ta 'encryption aktar avvanzati.
U hekk aħna qed tmur biex encipher biċċa tat-test,
ħlief minflok biss bi sħiħ wieħed, aħna qed fil-fatt se encode
bil-keyword li l-utent se tagħtina.
Okay, hekk l-ewwel għodda fil-toolbox llum huwa attwalment se tkun aġġornata l-appliance.
Fuq il-bord ta 'diskussjoni aħna se jaraw affarijiet simili, "Għaliex ma dan ix-xogħol?"
"Għaliex ma Issottometti 50 xogħol?"
u ħafna drabi s-soluzzjoni hija attwalment biss biex taġġorna appliance tiegħek.
U għalhekk jekk inti biss run fil-tieqa terminal fil sudo appliance tiegħek yum-y -
thats bandiera qal iva, jaġġornaw kollox - aġġornament,
allura appliance tiegħek se taġġorna tkun ħtieġa jekk.
U ma iweġġgħu jekk inti diġà huma fil-verżjoni l-aktar reċenti tal-apparat.
Imbagħad se biss jgħidu l-ebda aġġornamenti ġodda disponibbli u inti tista 'tkompli taħdem flimkien.
Iżda dan huwa tajjeb biex iwettaq anki kull darba li inti tiftaħ il-appliance
għaliex aħna qed għadhom ħafna -
kultant jekk aħna jidħlu fis bug - iffissar fl-appliance.
Sabiex tagħmel ċert li għandek l-aktar verżjoni reċenti tal-apparat
u run li taġġorna hemmhekk.
Kull dritt. Allura peress li aħna qed jittrattaw ma 'ittri u l-bdil, enciphering affarijiet,
aħna qed tmur biex verament tixtieq li jsiru ħbieb aħjar mal chart ASCII tagħna.
Hemm dawk numerużi online, jekk issib. Forsi anki tagħmel tiegħek.
Bażikament, ma 'kull ittra u kull numru u kull karattru
hemm numru assoċjati magħhom,
u għalhekk huwa tajjeb biex tara valuri ASCII tagħhom flimkien mal-ittra attwali.
Li definittivament se jgħinek fis-sett problema.
Ħaġa waħda li verament għenuni f'dan is-sett il-problema kienet li fil-fatt ipprintjaha,
u kif I kienet għaddejja, nixtieq attwalment tiġbed fuqha,
jikteb, "Jekk dan irid imur biex hemmhekk, allura ..."
Tip ta 'tiġbed fuqha u jimmarkaw it up, jsiru ħbieb aħjar mal-mejda ASCII tiegħek.
Imbagħad għandna għodod oħra ftit għad-dispożizzjoni tagħna.
Din id-darba minflok attwalment ġiegħlet lill-utent għal kulħadd ta 'l-input tagħhom
aħna qed tmur biex tagħmel kombinazzjoni.
Aħna ser twassalhom għal xi input,
imma aħna wkoll qed tmur għall-użu biss l-argumenti linja tal-kmand.
Allura meta tmexxi programm tagħhom, normalment inti tgħidli. / Bonjour, per eżempju,
jekk program tiegħek kien hello.c.
Iżda dan iż-żmien minflok sempliċiment tgħid li, dawn ikunu jistgħu jitqiegħdu kliem, l-argumenti wara.
U hekk aħna qed tmur għall-użu kollu li jgħaddu fil lilna bħala input tagħhom kif ukoll,
hekk superazzjoni biss suġġeriment għal numru sħiħ, iżda wkoll bl-użu argumenti kmand tal-linja.
U allura aħna ser imorru fis matriċi u kordi, li aħna ser tkun qed tuża ħafna ukoll.
Hawn biss eżempju ta '1 chart ASCII mini.
As I said, kull ittra tikkorrispondi għal numru,
u għalhekk tiffamiljarizza ruħek ma 'dak. Hija se jidħlu fil handy.
U aktar tard meta aħna tibda tagħmel xi ASCIIMath jittrattaw il-numri -
żieda, tnaqqis minnhom - imbagħad definittivament tajba biex jirreferi għal din it-tabella.
Allura hawnhekk eżempju ta 'cipher Caesar - xi ħaġa li jista' jkollok lagħbu.
Huwa biss rota. Essenzjalment, hemm alfabett barra u allura hemm alfabett ġewwa.
Allura dritt hawn huwa eżempju ta 'l-cipher Caesar iżda ma' ċavetta ta '0.
Essenzjalment, A huwa allinjat ma 'A, B huwa allinjat ma' B, it-triq kollha sa l-Z.
Iżda mbagħad jgħidu li ridna ewlieni ta '3, pereżempju.
Imbagħad aħna se dawwar il-rota ġewwa hekk li A issa tallinja ma 'D, eċċ
U hekk dan huwa essenzjalment dak li aħna qed tmur biex tagħmel.
Aħna ma jkollhom rota, imma dak li aħna qed tmur biex tagħmel hu li tagħmel programm tagħna
tip ta 'bidla l-alfabett flimkien magħna ċertu ammont ta' numri.
Allura kif għidt qabel, aħna qed tmur biex tkun jittrattaw argumenti kmand tal-linja
kif ukoll jkollna numru sħiħ.
Allura l-mod li l-utent se jimxu program Caesar tiegħek huwa billi qal. / Caesar
u mbagħad jidħlu numru wara dik.
U dak in-numru jirrappreżenta l-muftieħ, il-bidla,
kif ħafna drabi int se tkun li jdur tar-rota ta 'ġewwa tal cipher Caesar tiegħek.
U għalhekk inti tara hawn eżempju.
Jekk aħna daħal l-ittri minn A L fil cipher Caesar tagħna,
allura kieku input D permezz O għaliex dan huwa kull ittra qalbu minn 3 darbiet,
bħad-eżempju tar-rota li I wera inti.
Mela allura jekk inti daħal, per eżempju, Dan huwa CS50!
allura wkoll timxi kollha ta 'l-ittri.
U dan huwa ħaġa importanti kemm fil Caesar u Vigenere
huwa li aħna qed tmur biex skip fuq xi ittri mhux.
Allura xi spazji, karattri, eċċ, numri, aħna qed tmur biex jinżammu l-istess.
Aħna biss se ċċaqlaq l-ittri f'din il-kawża.
Allura kif tara fil-rota, aħna biss l-ittri disponibbli lilna,
hekk aħna biss trid li ċċaqlaq l-ittri u kriptaġġ l-ittri.
Allura l-ewwel ħaġa li tagħmel, inti raw li l-użu ta 'Caesar fil-problema sett 2
huwa jiddekorri Caesar u mbagħad tidħol numru meta inti run fis-terminal.
Allura dak li għandna bżonn tagħmel huwa li b'xi mod tikseb li ewlenin u jkollhom aċċess għaliha.
U hekk irridu b'xi mod jara li għaddej biex tkun l-tieni argument linja tal-kmand.
L-ewwel waħda se tkun. / Caesar, u dak li jmiss se jkun in-numru ċavetta.
Għalhekk qabel ma kellna int prinċipali (vojt) biex jibdew programmi Ċ tagħna.
Aħna ser qoxra lura saff ftit
u fil-fatt jaraw li minflok jgħaddu fil null għall-funzjoni prinċipali tagħna
aħna qed attwalment jittrattaw 2 parametri.
Għandna int jismu argc u mbagħad firxa ta 'spag imsejħa ARGV.
Allura argc huwa integer,
u dan jirrappreżenta n-numru ta 'argumenti li għaddew bi għall-programm tiegħek.
U allura ARGV effettivament hija l-lista ta 'l-argumenti għadda.
Kollha ta 'l-argumenti huma sensiliet, u għalhekk ARGV jirrappreżenta firxa, lista, ta' spag.
Ejja nitkellmu dwar arrays xi ftit.
Arrays huma essenzjalment struttura tad-data ġdida.
Aħna ints, għandna jirdoppja, għandna kordi, u issa għandna arrays.
Arrays huma strutturi ta 'dejta li tista' żżomm il-valuri multipli tal-istess tip,
hekk essenzjalment, lista ta 'kwalunkwe tip li trid.
Essenzjalment, jekk int riedu lista ta 'interi kollha fl-1 varjabbli,
allura inti toħloq varjabbli ġodda li kien ta 'firxa int tip.
Allura arrays huma żero indiċi, li jfisser li l-ewwel element ta 'l-array huwa fil indiċi 0.
Jekk l-firxa hija ta 'tul 4, kif f'dan l-eżempju, allura aħħar element tiegħek se tkun fi indiċi 3,
li huwa 4 - 1.
Allura biex joħolqu array, inti se tagħmel xi ħaġa bħal din.
Tgħid li inti riedu firxa doppja.
Dan imur għal kwalunkwe tip ta 'data tip, għalkemm.
Allura ngħidu li inti tixtieq firxa doppja. Tgħid li inti tixtieq li hija sejħa mailbox.
Eżatt bħal inti initialize kwalunkwe doppja ieħor,
inti ngħid doppja u allura l-isem, iżda din id-darba aħna tpoġġi l-parentesi kwadri,
u allura n-numru se jkun hemm it-tul tal-firxa.
Innota li fl-arrays aħna ma tista 'qatt tbiddel it-tul,
sabiex inti dejjem ikollhom biex jiddefinixxu u jagħżlu kemm kaxxi,
kemm il-valuri array tiegħek se jżommu.
Allura li jiġu stabbiliti valuri differenti fil array tiegħek, int ser tuża din sintassi li ġej,
kif tara fuq il-pjastra.
0 Inti għandek indiċi mailbox se jiġu ffissati għal 1.2,
indiċi mailbox 1 stabbilit sa 2.4, eċċ
Allura issa li aħna ve riveduti matriċi ftit, ejja mur lura għall argc u ARGV.
Aħna nafu li ARGV issa huwa firxa ta 'spag.
Allura meta utent jgħaddi fil - jgħidu li qed tmexxi programm -
jgħidu. / bonjour David Malan,
dak il-programm se jagħmel għalik diġà huwa attwalment toħroġ ma 'dak argc u ARGV huma.
Allura inti m'għandekx bżonn ninkwetaw dwar dan.
Argc f'dan il-każ ikun ta '3 għaliex jara 3 kliem distinti separati spazji.
U hekk imbagħad il-firxa f'dan il-każ, l-indiċi 1 tkun. / Hello,
il-li jmiss 1 David, dak li jmiss 1 Malan.
Hawn xi ħadd tara dritt bogħod dak ir-relazzjoni bejn ARGV,
il-firxa, u argc hu?
Yeah. Aħna ser jsibu rwieħhom li fl eżempju fil args.c.
Ejja naraw jekk nistgħu jieħdu vantaġġ tar-relazzjoni bejn il-2.
Hawnhekk inti tista 'ssib li fl-appliance-applikazzjoni default
biex tiftaħ. fajls ċ kultant huwa emacs.
Iżda rridu li jittrattaw ma gedit, sabiex x'tista 'tagħmel huwa inti tista' dritt ikklikkja fuq fajl tiegħek C,
mur Properties, Open Bil, u mbagħad jagħżlu gedit, Set bħala default,
u issa program tiegħek għandha tiftaħ fi gedit minflok emacs.
Perfect.
So here I jkollhom programm li nixtieq li jistampa kull argument linja tal-kmand.
Sabiex ikun x'ikun l-utent inputs, nixtieq li essenzjalment jirritornaw lura lilhom fuq linja ġdida.
Allura x'hemm struttura li nistgħu nużaw biex jtenni fuq xi ħaġa -
xi ħaġa li inti probabilment użati fil-1 pset tiegħek?
Jekk inti tixtieq li tmur permezz ta 'numru sett ta' affarijiet? >> [Student] Għall loop.
Għal loop. Eżattament. Mela ejja tibda bil-linja għal.
Aħna għall i int = 0. Ejja biss tibda bil-varjabbli inizjalizzazzjoni standard.
Jien ser iħallu l-kundizzjoni għal sett u mbagħad jgħidu i + +, se tagħmel affarijiet hemmhekk.
Kull dritt.
Allura taħseb lura għall ARGV, jekk ARGV hija l-lista ta 'argumenti mogħtija fl għall-programm
u argc huwa n-numru ta 'argumenti fil-programm,
allura dan ifisser li argc huwa essenzjalment l-tul ta 'ARGV, id-dritt,
minħabba li hemm ser jkun argumenti kemm il-valur ta argc.
Mela jekk irridu li jtenni fuq kull element ARGV,
aħna qed tmur jridu kull darba aċċess għall-varjabbli fir ARGV fil-indiċi speċifika.
Li jistgħu jkunu rappreżentati ma 'dan, id-dritt?
Din il-varjabbli hawn tirrappreżenta l-sekwenza partikolari f'dan il-każ
għaliex dan huwa firxa string - l-sekwenza partikolari f'dak indiċi speċifika.
Dak li rridu nagħmlu, f'dan il-każ irridu ipprintjaha, hekk ejja ngħidu printf.
U issa ARGV hija sekwenza, hekk aħna tixtieq li tqiegħed l placeholder hemmhekk.
Irridu linja ġdida biss biex jagħmluha ħarsa tajba.
Allura hawnhekk għandna loop għall. Aħna ma jkollhomx il-kundizzjoni s'issa.
Hekk i jibda fil 0, u mbagħad kull darba li għaddej biex jistampaw l-sekwenza mogħtija
f'dak indiċi partikolari fil-firxa.
Allura meta irridu li tieqaf istampar l-elementi fil-firxa?
Meta aħna ħadthom lest, id-dritt? Meta konna laħqu t-tmiem ta 'l-array.
Allura aħna ma rridux li jaqbeż passat it-tul ta 'l-array,
u aħna diġà jafu li ma kellniex bżonn li attwalment attiv issir taf liema t-tul ta ARGV huwa
għaliex dan huwa mogħtija lilna, u dak li? Argc. Eżattament.
Allura rridu nagħmlu dan in-numru argc proċess ta 'drabi.
M'inix fid-direttorju dritt.
Kull dritt.
Issa ejja jagħmlu args. Ebda żbalji, li hija kbira.
Mela ejja biss run args.
X'inhu dan se jirritornaw lilna? Huwa biss se jistampaw lura.
"Inti inputted args fil-programm; jien ser jagħti lura lilek."
Mela ejja ngħidu li rridu ngħidu args allura bar foo.
Mela allura prints out lura lilna. Kull dritt?
Għalhekk hemm eżempju ta 'kif tista' tuża argc u ARGV
jafu li argc jirrappreżenta t-tul ta 'ARGV.
Kun żgur li int ma qatt ma arrays aċċess 1 lil hinn mill-tul tal-firxa
għaliex C definittivament se shout fi inti.
Int ser tingħata xi ħaġa imsejħa tort segmentazzjoni,
li hija qatt gost, bażikament tgħid inti qed tipprova aċċess xi ħaġa
li ma teżistix, ma jappartjenix lilek.
Sabiex tagħmel ċert, u speċjalment mal-zero-indiċjar, aħna ma rridux li -
Bħal per eżempju, jekk ikollna firxa ta 'tul 4,
l-indiċi array 4 ma jeżistix għaliex nibdew f'0, żero indiċi.
Se jsiru tieni natura bħad għal linji meta nibdew ta '0.
Hekk biss iżommu dan f'moħħhom.
Inti ma tridx li qatt aċċess għall-indiċi ta 'firxa li l-hinn jilħqu tiegħek.
Allura nistgħu naraw issa kif nistgħu tip ta 'aċċess
l-argumenti kmand tal-linja li huma mgħoddija pulzieri
Imma kif inti raw-sekwenza, il-ARGV huwa attwalment firxa sekwenza.
Allura huwa attwalment mhux numru sħiħ s'issa, iżda fl Caesar irridu li jittrattaw interi.
Fortunatament, hemm funzjoni maħluqa għalina li jkunu jistgħu attwalment jikkonvertu string għal numru sħiħ.
Ukoll fil hawn aħna mhux qed jitratta ma jintuza mill-utent fejn aħna qed tħeġġeġ lilhom
għall-input hawn għall-ċavetta, hekk aħna ma tistax fil-fatt reprompt u jgħidu,
"Oh, jagħtu me ieħor numru sħiħ, jiġifieri, jekk mhuwiex validu."
Iżda aħna ma għad għandhom bżonn sabiex jikkontrolla għal użu korrett.
Fil Caesar huma permessi biss li jgħaddu numru 1,
u għalhekk huma jkollhom jiddekorri. / Caesar u allura dawn għandhom jagħtuk numru.
Allura argc għandu jkun hemm ċertu numru.
X'inhu n-numru li kieku jkun jekk ikollhom jgħaddu inti l-. / Caesar u mbagħad ewlieni?
X'inhu argc? >> [Student] 2. >> Żewġ. Eżattament.
Allura inti tixtieq li tagħmel ċert li argc huwa 2.
Inkella int bażikament tirrifjuta li tmexxi l-programm.
Fil ewlieni huwa funzjoni li tgħid int prinċipali,
hekk allura aħna dejjem fil-0-ritorn ta 'prattika tajba fl-aħħar ta' programm ta 'suċċess.
Mela jekk, per eżempju, huma jagħtuk l-argumenti kmand 3 linja minflok ta '2
jew jagħtuk 1, per eżempju, allura dak li inti ser tagħmel hu li tkun taf jridu check għal dak
u mbagħad jirritornaw 1 tgħid, l-ebda, I ma tistax tipproċedi ma 'dan il-programm.
[Student] Ma jistax ikun spazju fil-test tiegħek. >> Maħfra lili?
[Student] Ma jistax ikun spazju fit-test inti qed tipprova għall-kriptaġġ.
Ah!
F'termini tat-test li aħna qed jippruvaw jagħmlu encryption, li fil-fatt tiġi aktar tard
meta aħna nagħtu dak it-test.
Allura issa dritt aħna qed biss taċċetta l-argumenti kmand-numru attwali,
l-bidla attwali għall-encryption Caesar.
[Student] Għaliex għandek bżonn 2 għall-kuntrarju biss 1 argc? Hemm definittivament numru 1.
Dritt. Ir-raġuni għaliex għandna bżonn 2 għal argc minflok ta '1
għaliex meta inti tmexxi programm u jgħidu. / Caesar jew. / hello,
li attwalment jgħodd bħala argument linja tal-kmand.
Mela allura li diġà jieħu 1 u hekk allura aħna qed inputjar 1 extra.
Allura int inputjar attwalment string fil-argument linja tal-kmand.
Dak li trid tagħmel, għal Caesar irridu li jittrattaw ma 'numru sħiħ,
sabiex inti tista 'tuża din il-funzjoni atoi.
U bażikament, inti jgħaddi bi string u mbagħad se jirritornaw lura int integer
jekk huwa possibbli li jagħmlu dan string fis integer.
Issa ftakar meta aħna qed jittrattaw ma 'affarijiet printf jew GetString, bħal dik,
aħna jinkludu l-libreriji li huma speċifiċi lilna.
Allura fil-bidu nibdew ma 'hash tag standard I / O,. H, xi ħaġa bħal dik.
Ukoll, atoi mhuwiex taħt waħda minn dawn libreriji,
sabiex dak li għandna nagħmlu hija li għandna biex tinkludi l-librerija dritt għal dan.
Allura lura lura għall Walkthrough 1 fejn I diskuss il-funzjoni manwali.
Inti tip raġel fl terminal tiegħek u mbagħad segwit mill-isem ta 'funzjoni.
U hekk li se jtella 'lista sħiħa ta' l-użu tagħha,
iżda wkoll se jġib up li librerija li jappartjeni għal.
So I ser tħalli li lilek biex tuża l-funzjoni manwali ma atoi
u figura liema librerija għandek bżonn biex tinkludi li tkun tista 'tuża l-funzjoni atoi.
Allura konna ltqajna l-ewlenin u issa niġu biex jkollna l-test sempliċi,
u hekk li attwalment se tkun jintuza mill-utent fejn inti fil-pront.
Aħna ttrattati GetInt u GetFloat, u għalhekk fl-istess
aħna qed tmur biex tkun jittrattaw GetString.
Iżda f'dan il-każ aħna ma bżonn li tagħmel xi do waqt jew waqt loops biex jiċċekkjaw.
GetString definittivament se tagħtina string,
u aħna qed tmur għall-kriptaġġ ikun x'ikun l-utent tagħtina.
Allura inti jista 'jassumi li kollha ta' dawn kordi utent mdaħħlin huma korretti.
Great.
Mela allura ladarba inti stajt ltqajna l-ewlenin u ladarba inti stajt ltqajna-test,
Issa dak ix-xellug huwa inti għandek encipher l-plaintext.
Just biex malajr ikopru aktar minn Lingo, il plaintext huwa dak li l-utent jagħtik,
u l-ciphertext huwa dak li inti tirritorna lilhom.
Allura kordi, biex ikunu jistgħu jgħaddu fil-fatt l-ittra permezz ta 'ittra
għaliex għandna għall-bidla kull ittra,
aħna nifhmu li kordi, jekk aħna tip ta 'qoxra lura l-saff,
naraw li dawn qed biss verament lista ta 'karattri.
Wieħed jidħol wara l-oħra.
U hekk nistgħu jittrattaw kordi kif arrays għaliex huma arrays ta 'karattri.
Allura ngħid li għandek string jismu test,
u fi ħdan dak it-test varjabbli hija maħżuna Dan huwa CS50.
Imbagħad it-test fil-indiċi 0 tkun T kapitali, indiċi 1 ikun siegħa, eċċ
U mbagħad mal-arrays, fl-eżempju argc fil args.c,
rajna li kellna jtenni fuq firxa
u hekk kellna jtenni mill i = 0 sa i huwa inqas mit-tul.
Għalhekk għandna bżonn xi mod tal jidhru dak it-tul ta 'sekwenza tagħna huwa
jekk aħna qed tmur biex jtenni fuqha.
Fortunatament darb'oħra, hemm funzjoni hemm għalina, għalkemm aktar tard fil CS50
inti ser definittivament ikunu jistgħu jimplimentaw u jagħmlu funzjoni tiegħek
li jistgħu jikkalkolaw l-tul ta 'sekwenza.
Iżda għal issa aħna qed tmur għall-użu tul string, hekk strlen.
You jgħaddu fi string, u mbagħad se terġa 'lura inti int li tirrappreżenta t-tul ta' sekwenza tiegħek.
Ejja nħarsu lejn eżempju ta 'kif aħna jista' jkun kapaċi li jtenni fuq kull karattru fi string
u tagħmel xi ħaġa ma 'dak.
Dak li rridu nagħmlu huwa jtenni fuq kull karattru tas-sekwenza,
u dak li rridu nagħmlu huwa li aħna jistampaw lura kull karattru 1 ta '1
ħlief aħna żżid xi ħaġa li jmiss lilu.
Mela ejja tibda bil-linja għal. I int = 0.
Aħna ser iħallu spazju għall-kondizzjoni.
Aħna rridu li jtenni sakemm aħna jilħqu t-tmiem tas-sekwenza, id-dritt?
Mela allura dak funzjoni jagħtina t-tul tas-sekwenza?
[Rispons istudent inaudible]
Dik hija t-tul tal-argumenti linja tal-kmand.
Iżda għal string irridu li tuża l-funzjoni li jagħtina t-tul tas-sekwenza.
Allura dak it-tul sekwenza.
U hekk imbagħad inti għandek jgħaddu string lilha.
Jeħtieġ li tkun taf dak string li jeħtieġ li jikkalkula t-tul ta '.
Mela allura f'dan il-każ aħna qed jittrattaw ma 'sekwenza s.
Great.
Mela allura dak li rridu nagħmlu, ejja printf.
Issa, irridu li jittrattaw ma 'karattri. Aħna rridu li jistampa kull karattru individwali.
Meta inti tixtieq li jistampa float, inti tuża l-placeholder bħal f%.
Ma 'int għandek tuża d%.
U għalhekk simili, b'karattru tuża ċ% ngħid jien ser tkun l-istampar karattru
li l-maħżuna ġewwa varjabbli.
Allura aħna għandna dan, u ejja żid perjodu u spazju lilha.
Liema karattru aħna jużaw?
Aħna ser tkun qed tuża kwalunkwe karattru aħna qed fil tas-sekwenza.
Mela allura aħna qed tmur biex tkun qed tuża xi ħaġa ma string,
imma irridu li jkun aċċess għall-karattru ċert hemm.
Mela jekk string huwa biss firxa, allura kif nistgħu aċċess elementi ta 'arrays?
Għandna dawk parentesi kwadri, u allura aħna tpoġġi l-indiċi fil hemmhekk.
Allura aħna għandna parentesi kwadri. Indiċi tagħna f'dan il-każ nistgħu biss jużaw i. Eżattament.
Allura hawnhekk għandna qed tgħid li aħna qed tmur biex tkun l-istampar karattru segwita b'tikka u spazju,
u li l-karattru se tkun l-ittra ith fl-i string tagħna.
Jien biss se jiffrankaw dan. Okay.
Issa jien ser jimxu tul sekwenza.
Allura kellna sensiela imsejjaħ OMG, u issa huwa enfasizzat aktar.
Bl-istess mod, ejja ngħidu aħna fil-fatt tixtieq li tikseb string mill-utent.
Kif jista 'nagħmlu dan?
Qabel, kif aħna ma jiksbu int?
Aħna qal GetInt, id-dritt? Iżda dan mhux int, hekk ejja GetString.
Ejja jagħmlu tul sekwenza. Hawnhekk aħna ma jidħol fil-pront speċifiku.
So I do not know.
Jien ser tpoġġi l-isem tiegħi fil hawn u hekk allura I jistgħu jagħmlu waħda minn dawk l-affarijiet
fejn I tassenja kelma għal kull ittra jew xi ħaġa bħal dik. Kessaħ.
Allura dak it-tul sekwenza.
Allura aħna qed lura għall Caesar.
Għandna għodod ftit dwar kif aħna jtenni fuq string,
kif aħna aċċess kull element individwali.
Allura issa nistgħu jiksbu lura lill-programm.
Kif semmejt qabel, fit-tabella ASCII, l-aqwa ħabib tiegħek,
int ser tara l-numri li huma assoċjati ma 'kull ittra.
Allura hawnhekk ngħid plaintext tagħna huwa jien sturdut!
Imbagħad kull wieħed minn dawn il-karattri se jkollha numru u l-valur ASCII assoċjat miegħu,
anke l-apostrophe, anke l-ispazju, anki l-marka exclamation,
sabiex tkun taf tixtieq li iżommu dan f'moħħhom.
Allura ngħid ewlieni tagħna li l-utent inkluża fil argument tagħhom linja ta 'kmand hija 6.
Dan ifisser għall-ewwel ittra, li hija I, li huma rappreżentati permezz 73,
inti tixtieq li jirritornaw għall lilhom kwalunkwe ittra huwa rappreżentat mill-valur ASCII ta '73 + 6.
F'dan il-każ li jkun 79.
Issa rridu li jmorru għall-karattru li jmiss.
Allura l-li jmiss fl-indiċi 1 tal-plaintext tkun l-apostrophe.
Imma ftakar aħna biss jixtiequ encipher-ittri.
Allura aħna tixtieq li tagħmel ċert li l-apostrophe attwalment jibqa l-istess,
li aħna ma bidla minn 39 għal kwalunkwe 45 hija.
Aħna rridu li jinżamm bħala apostrophe.
Allura rridu niftakru li biss encipher-ittri
għaliex irridu kollha ta 'l-simboli l-oħra jibqgħu mhux mibdula fil-programm tagħna.
Ħaġa oħra li rridu huwa li tippreserva kapitalizzazzjoni.
Allura meta għandek ittra kapitali, għandu jibqa bħala uppercase.
Lowercases għandhom jibqgħu bħala zghar.
Allura xi funzjonijiet utli biex ikunu jistgħu jittrattaw ma 'ittri biss enciphering
u jżommu jippreserva l-kapitalizzazzjoni ta 'l-affarijiet
huwa l-funzjonijiet islower isalpha, isupper,.
U għalhekk dawn huma funzjonijiet li jirritornaw inti valur Boolean.
Bażikament, vera jew falza. Huwa dan uppercase? Huwa dan alfanumerika?
Huwa dan ta 'ittra, essenzjalment.
Allura hawnhekk huma 3 eżempji ta 'kif inti tuża dik il-funzjoni.
Bażikament, inti tista 'test jekk il-valur lura lilek minn dik il-funzjoni hija vera jew falza
ibbażata fuq dik l-input.
Jew tagħmel xi ħaġa ma encipher jew cipher dan jew jagħmlu ċert li huwa uppercase, eċċ
[Student] Tista 'biss tispjega dawk ftit aktar u kif tuzahom? >> Yeah, għall-żgur.
Mela jekk inħarsu lura, hawn għandna kapital I, id-dritt?
Allura aħna nafu li jien tmur sa O minħabba I + 6 huwa O.
Iżda aħna tixtieq li tagħmel ċert li din O se jkun O. kapital
Allura bażikament, dan huwa tip ta 'se jibdlu l-input tagħna.
Allura jekk huwa uppercase jew le se tip ta 'tibdel il-mod li aħna jittrattaw dan.
Mela allura jekk nużaw l-funzjoni isupper fuq l-indiċi partikolari,
hekk isupper ("I"), li jirritorna għalina veru, hekk aħna nafu li huwa fuq.
Allura mbagħad bbażat fuq din, wara aħna ser imorru ġo formula
li inti ser tkun qed tuża għal bidla affarijiet fil Caesar,
hekk allura bażikament, hemm għaddej li jkun formula kemmxejn differenti jekk huwa uppercase
għall-kuntrarju zghar. Jagħmel sens?
Yeah. Nru inkwiet.
I tkellmu ftit dwar żżid 6 għal ittra, li ma pjuttost tagħmel sens
ħlief meta aħna tip ta 'jifhmu li dawn il-karattri
huma tip ta 'interskambjabbli ma interi.
Dak li nagħmlu huwa li aħna tip ta 'ikkastjar użu impliċitu.
Aħna ser jmorru fil-ikkastjar daqsxejn aktar tard fejn inti tieħu valur u inti jibdluh tip differenti
milli oriġinarjament kien.
Iżda ma 'dan pset aħna ser ikunu jistgħu tip ta' xulxin tuża karattri
u l-Istati valuri numru sħiħ korrispondenti.
Mela jekk inti sempliċiment encase karattru ma 'biss il-kwotazzjonijiet wieħed,
allura inti ser tkun kapaċi taħdem magħha ma interi, li jittrattaw bħala numru sħiħ.
Allura l-kapital C tirrigwarda 67. F zghar tirrigwarda sa 102.
Għal darb'oħra, jekk inti trid tkun taf dawn il-valuri, tħares fuq il-mejda ASCII tiegħek.
Mela ejja jmorru fil xi eżempji ta 'kif inti tista' tkun kapaċi li naqqas u żid,
kif inti tista 'attwalment verament jaħdmu ma' dawn il-karattri, jużawhom minflok xulxin.
Jien ngħid li ASCIIMath se jikkalkulaw iż-żieda ta 'karattru li integer
u mbagħad juri l-karattru riżultanti kif ukoll il-valur ASCII riżultanti.
U hekk hawn jien tgħid - jittrattaw we'll ma 'din il-parti aktar tard -
imma bażikament, jien qal li l-utent għandha tgħid ASCIIMath jimxu flimkien ma 'ċavetta,
u jien qal li din muftieħ se jkun in-numru
li magħhom aħna qed tmur biex iżżid dan il-karattru.
Allura hawnhekk tinnota li peress li jien eżiġenti ewlieni,
peress li jien titlob li dawn qed jagħti lili 1 ħaġa,
I biss tixtieq li taċċetta. / Asciimath u ċavetta.
Allura jien ser titlob li argc huwa ugwali għal 2.
Jekk mhuwiex, allura jien ser jirritorna 1 u l-programm se ħruġ.
Allura jien qal il-muftieħ huwa mhux se tkun l-ewwel argument linja tal-kmand,
li għaddej biex tkun it-tieni waħda, u kif tara hawn,
Jien ser tibdel din in numru sħiħ.
Imbagħad jien ser jistabbilixxu karattru li jkun r.
Avviż li t-tip ta 'l-CHR varjabbli huwa attwalment integer.
Il-mod li jien kapaċi jużaw r bħala numru sħiħ huwa billi encasing ma dawn il-kwotazzjonijiet uniku.
Allura lura għall-istqarrija printf tagħna fejn għandna placeholder għal karattru
u mbagħad placeholder għal integer,
il-karattru huwa rappreżentat mill-CHR, u l-eqreb numru sħiħ hija ċ-ċavetta.
U hekk allura aħna qed tmur biex fil riżultat jżidu l-2 flimkien.
Allura aħna qed tmur biex iżżid r + x'ikun il-muftieħ huwa,
u allura aħna qed tmur biex jistampaw il-riżultat ta 'dak.
Mela ejja jagħmlu asciimath. Huwa aġġornata, so ejja biss run asciimath.
Oh, iżda tara, ma tagħmel xejn għaliex aħna ma attwalment tagħtiha a ċavetta.
Allura meta biss lura 1, il-funzjoni prinċipali tagħna, hija biss rritornati lura lilna.
Mela allura ejja jgħaddu fi ewlenin. Xi ħadd jagħti me numru. >> [Student] 4.
4. Okay.
Allura r żdiedet b'4 se tagħtina v, li jikkorrispondi għall-valur ASCII tal 118.
Mela allura tip ta 'jagħmel sens li -
Fil-fatt, jista Nitlobkom, x'taħseb l-valur ASCII tal r huwa jekk r + 4 huwa 118?
Imbagħad yeah, r huwa 114.
Mela jekk inti tħares fuq il-mejda ASCII allura, żgur biżżejjed, tkun taf tara li r huwa rappreżentat minn 114.
Allura issa li nafu li nistgħu żid interi għal karattri, dan jidher pjuttost sempliċi.
Aħna biss se jtenni fuq string simili rajna fil eżempju qabel.
Aħna ser jiċċekkja jekk huwa ittra.
Jekk huwa, allura aħna ser bidla lilu mill x'ikun il-muftieħ huwa.
Pretty sempliċi, ħlief meta ikollok bħal dan,
tara li z, irrappreżentata minn 122, allura se jagħtuk karattru differenti.
Aħna fil-fatt tixtieq li toqgħod ġewwa alfabett tagħna, id-dritt?
Allura għandna bżonn biex insemmu xi mod ta 'tip ta' kisi madwar.
Meta inti tilħaq zed u inti tixtieq li jiżdied minn ċertu numru,
inti ma tridx li jmorru fil hinn mill-taqsima alfabett ASCII;
inti tixtieq li nagħlaq lura fit-triq kollha sa A.
Iżda jżomm f'moħħu int xorta tippreserva l-każ.
Allura jafu li l-ittri ma tistax issir simboli
bħad simboli mhumiex ser jinbidlu wkoll.
Fl-aħħar pset inti definittivament ma kellhomx bżonn,
iżda għażla kienet li jimplimentaw pset greedy tiegħek billi tuża l-funzjoni modulu.
Imma issa aħna qed fil-fatt se jkollhom bżonn jużaw modulus,
hekk ejja biss jmorru fuq din id-daqsxejn ftit.
Essenzjalment, meta jkollok x modulo y, li jagħtik il-bqija ta 'x diviż bil y.
Dawn huma xi eżempji hawn. Għandna 27% 15.
Bażikament, meta inti naqqas 15 minn 27 kemm drabi possibbli mingħajr ma jkollna negattiv
imbagħad ikollok 12 mħollija.
Allura dak it-tip ta 'prodotti simili fil-kuntest matematika, imma kif nistgħu attwalment jużaw dan?
Huwa ser tkun utli għall wrapover tagħna.
Għal dan, ejja biss jgħidu inti tlabt kollha li jaqsam fi 3 gruppi.
Kultant inti tagħmel dan fi gruppi u xi ħaġa bħal dik.
Tgħid I said, "Okay, nixtieq lilkom kollha li tkun maqsuma fi 3."
Kif tista 'inti tagħmel dan?
[Rispons istudent inaudible] Yeah, eżattament. Count off. Okay.
Ejja fil-fatt jagħmlu dan. Tixtieq li tibda?
[Studenti għadd off] 1, 2, 3, 4.
Imma ftakar ... >> [Student] Oh, sorry.
Li l-punt verament tajba.
Inti qal 4, imma aħna fil-fatt li inti tgħid 1 għaliex aħna biss trid 3 gruppi.
Allura mbagħad, kif - Le, dak huwa eżempju verament tajba għaliex allura kif jista inti tgħidli 1?
X'hemm-relazzjoni bejn 4 u 1?
Ukoll, 4 mod 3 huwa 1.
Mela jekk inti tkompli, inti tkun 2.
Allura aħna għandna 1, 2, 3, 1, 2.
Għal darb'oħra, int fil-fatt il-persuna 5. Kif tkun taf li jgħidu 2 minflok ta '5?
You say 5 mod 3 huwa 2.
Irrid nara kemm gruppi ta '3 huma mħollija, allura li ordni am I.
U hekk allura jekk irridu kompla matul il-kamra kollha,
allura aħna se tara li aħna qed dejjem attwalment japplikaw l-funzjoni mod li lilna nfusna
għall tip ta 'għadd off.
Li l-aktar tip ta 'eżempju tanġibbli ta' kif inti tista 'tuża modulo
għaliex jien ċert ħafna minna probabbilment għaddew dak il-proċess
fejn aħna kellna biex jingħaddu off.
Kwalunkwe mistoqsijiet dwar modulo?
Se jkun pjuttost importanti li wieħed jifhem l-kunċetti ta 'dan,
so I tixtieq tagħmel żgur li inti guys jifhmu.
[Student] Jekk ma jkun hemm ebda bqija, ma jtik in-numru attwali?
Jekk waħda mill-ewwel 3 minnhom kienu għamlu dan, ikun taw lilhom dak li fil-fatt kienu,
jew kien ikun taw lilhom [inaudible] >> Li hija mistoqsija tajba.
Meta jkun hemm l-ebda bqija għall-modulo - sabiex jgħidu ikollok 6 mod 3 -
li attwalment jagħtik lura 0.
Aħna ser jitkellmu dwar li ftit aktar tard.
Oh yeah, per eżempju, il-persuna 3 - 3 mod 3 huwa attwalment 0 imma qalet 3.
Allura dak it-tip ta 'prodotti simili qabda ġewwa, per eżempju,
bħal okay, jekk il-mod ikun 0 mbagħad jien ser jkun il-persuna 3.
Iżda aħna ser jsibu rwieħhom tip ta 'kif aħna tista' tixtieq li jittrattaw ma 'dak 0 hija aktar tard.
Allura issa aħna b'xi mod għandhom mod ta 'mapping tal-zed l-ittra dritt.
Allura issa aħna ħadthom marret permezz dawn l-eżempji,
aħna tip ta 'tara kif Caesar jista' jaħdem.
You see-alfabett 2 u mbagħad tara minnhom ċaqliq.
Mela ejja jippruvaw u jesprimu li f'termini ta 'formula.
Din il-formula hija attwalment mogħtija lilek fil-spec,
iżda xorta ejja ta 'ħarsa permezz dak li kull varjabbli mezzi.
Riżultat aħħari tagħna se tkun l-ciphertext.
Allura dan jgħid li l-karattru ith tal-ciphertext
se jikkorrespondu mal-karattru ith tal-plaintext.
Dan jagħmel sens għaliex irridu li dejjem tkun lining dawn l-affarijiet up.
Allura li għaddej biex tkun il-karattru ith tal-k plus ciphertext, li hija essenzjali tagħna -
li jagħmel sens - u allura għandna dan il-mod 26.
Ftakar lura meta kellna l zed
aħna ma rridu nġibu fis-karattru, hekk ridna li mod li
u tip ta 'around l-alfabett.
Wara zed inti tmur a, b, c, d, sakemm inti ltqajna l-għadd dritt.
Allura aħna nafu li zed, jekk + 6, tagħtina f għax wara zed taqa a, b, c, d, e, f.
Mela ejja niftakru aħna nafu fiċ-ċert li zed + 6 se tagħtina f.
Fil-valuri ASCII, z huwa 122 uf hija 102.
Allura aħna għandna biex isibu xi mod ta 'kif issir formula Caesar tagħna tagħtina 102
wara li fil-122.
Allura jekk aħna biss japplikaw din il-formula, il-% ("z" + 6) 26, li attwalment jagħtik 24
għaliex 122 + 6 huwa 128; 128% 26 jagħtik 24 kumplament.
Iżda dan ma verament tfisser f. Li definittivament mhux 102.
Li wkoll mhux l-ittra 6 fi-alfabett.
Allura ovvjament, għandna bżonn li jkollhom xi mod ta 'tweaking din id-daqsxejn ftit.
F'termini ta 'l-alfabett regolari, nafu li z hija l-ittra 26 uf hija l-6.
Iżda aħna qed fl-xjenza tal-kompjuter, hekk aħna qed tmur biex indiċi ta '0.
Mela allura minflok z huwa n-numru 26, aħna qed tmur biex ngħid numru huwa 25
għaliex hija 0.
Allura issa ejja japplikaw din il-formula.
Għandna z rappreżentata minn 25 + 6, li tagħtik 31.
U 31 26 mod jagħtik 5 bħala kumplament.
Dak perfetta għax aħna nafu li f hija l-ittra 5 fil-alfabett.
Iżda xorta waħda mhuwiex f, id-dritt? Hija xorta mhix 102.
Allura mbagħad għal dan pset, sfida se tkun qed tipprova biex issir taf ir-relazzjoni
bejn konverżjoni bejn dawn il-valuri ASCII u l-indiċi alfabetiku.
Essenzjalment, dak li tixtieq tkun taf biex tagħmel, inti tixtieq li tibda mal-valuri ASCII,
iżda imbagħad inti tixtieq li b'xi mod tittraduċi dan in indiċi alfabetiku
imbagħad tikkalkula liema ittra għandu jkun - bażikament, liema indiċi alfabetiku tagħha huwa
tal-karattru cipher - imbagħad tittraduċi li lura għall-valuri ASCII.
Mela jekk inti Whip tabella ASCII tiegħek, allura jippruvaw isibu relazzjonijiet bejn, jiġifieri, 102 u 5
jew il-122 u 25.
Imxejna gotten ewlieni tagħna mill-argumenti kmand tal-linja, aħna ve gotten-plaintext,
konna enciphered dan.
Issa kollha għandna xellug tagħmel huwa jistampaw.
Stajna nagħmlu dan ftit ta 'modi differenti.
Dak li stajna nagħmlu huwa attwalment print kif aħna jmorru flimkien.
Kif aħna jtenni matul il-karattri fit-sekwenza,
nistgħu sempliċiment biss jistampaw id-dritt allura meta aħna kkalkulata.
Alternattivament, inti tista 'wkoll jaħżnu fil-firxa u jkollhom firxa ta' karattri
u fl-aħħar jtenni fuq dak firxa sħiħa u ipprintjaha.
Allura inti għandek koppja ta 'għażliet għal dak.
U ftakar li% c se tkun l-placeholder għall-istampar karattru.
Allura hemm aħna għandna Caesar, u issa aħna jimxu fuq Vigenere,
li hija simili ħafna għal Caesar imma biss ftit aktar kumplessi.
Allura essenzjalment ma Vigenere huwa int ser tkun tgħaddi fil-keyword.
Allura minflok ta 'numru, int ser ikollhom string,
u hekk li għaddej biex jaġixxu bħala keyword tiegħek.
Imbagħad, bħas-soltu, int ser tikseb fil-pront għal string mill-utent
u mbagħad encipher u mbagħad jagħtuhom id-dahar ciphertext.
Allura kif għidt, huwa simili ħafna għall Caesar, ħlief minflok ta 'ċaqliq minn ċertu numru,
in-numru huwa attwalment se jibdlu kull darba minn karattru karattru.
Biex jirrappreżenta dak in-numru attwali għall-bidla, huwa rappreżentat mill-ittri keyboard.
Mela jekk inti tidħol fil-bidla ta ', per eżempju, allura dan ikun jikkorrispondi għal ċaqliqa ta' 0.
Allura huwa jerġa 'lura għall-indiċi alfabetiku.
Liema jista 'jkun utli jekk int tara li aħna qed attwalment nittrattaw ma' valuri ASCII
kif ukoll l-ittri, kif ukoll l-indiċi alfabetiku,
forsi jsibu jew tagħmel tabella ASCII tiegħek stess li turi l-indiċi alfabetiku ta '0 sa 25,
a permezz z, u l-valuri ASCII sabiex inti tista 'tip ta' jara r-relazzjoni
u jfassal u jippruvaw isibu xi mudelli.
Bl-istess mod, jekk inti kienu ċaqliq fil-każ ċerti f -
u dan huwa jew f zghar jew uppercase - allura dan ikun jikkorrispondi għal 5.
Are we tajba s'issa?
Il-formula għall Vigenere huwa daqsxejn differenti.
Bażikament, inti tara li huwa biss bħal Caesar,
ħlief minflok sempliċiment k għandna k indiċi j.
Avviż li aħna ma tkunx qed tużah i, minħabba essenzjalment, it-tul ta 'l-keyword
mhux neċessarjament it-tul ta 'ciphertext tagħna.
Dan se jkun aktar ċara daqsxejn meta naraw eżempju li għandi daqsxejn aktar tard.
Bażikament, jekk inti tmexxi programm tiegħek ma 'keyword ta ohai,
allura dan ifisser li kull darba, ohai se tkun bidla tiegħek.
Allura jiddependi fuq dak il-pożizzjoni inti fil keyword tiegħek,
int ser jaqilbu karattru ċert tiegħek ciphertext b'dak l-ammont.
Għal darb'oħra, bħal Caesar, irridu niżguraw li aħna jippreservaw l-kapitalizzazzjoni ta 'l-affarijiet
u aħna biss ittri encipher, mhux karattri jew spazji.
Allura ħarsa lura lill Caesar fuq il-funzjonijiet li jista 'jkollok użati,
il-mod li inti iddeċidejt kif shift affarijiet, u japplikaw dak li programm tiegħek hawn.
Mela ejja Mappa dan.
Għandna plaintext li aħna ħadthom gotten mill-utent mill-GetString
qal Dan ... huwa CS50!
Imbagħad għandna keyword ta ohai.
L-ewwel 4 karattri huma pjuttost sempliċi.
Aħna nafu li T se jiġi mċaqlaq minn o,
allura h se jiġi mċaqlaq minn h, i se jiġi mċaqlaq minn.
Hawnhekk għandek tara li tirrappreżenta 0,
hekk allura l-valur finali huwa attwalment biss l-ittra istess bħal qabel.
Imbagħad i huwa mċaqlaq minn i.
Imma mbagħad għandek dawn il-perjodi hawn.
Aħna ma rridux li encipher li, hekk allura aħna ma jibdlu minn xejn
u biss jistampa l-perjodu l-istess.
[Student] Ma nifhimx kif inti taf li dan huwa mċaqlaq mill - Fejn ma inti - >> Oh, sorry.
Fil-quċċata hawn tara li l-kmand linja argument ohai hawn,
li għaddej biex tkun l-keyword.
U għalhekk bażikament, int ċikliżmu fuq il-karattri fit-keyword.
[Student] Mela o se jiġi trasferit l-istess -
Allura o jikkorrispondi għal ċertu numru fil-alfabett.
[Student] Dritt. Iżda fejn ma ikollok l-parti CS50 minn?
Oh. Li fil GetString fejn int simili, "Give me string li encode."
[Student] Huma qed tmur biex jagħtuk dan l-argument li bidla minn
u allura inti taf titlob għal string tiegħek ewwel. >> Yeah.
Allura meta tmexxi l-programm, dawn qed tmur biex tinkludi l-keyword
fl-argumenti tagħhom kmand tal-linja meta run.
Imbagħad ladarba inti stajt ċċekkjati li ħadthom attwalment tak 1 u mhux aktar, mhux inqas,
allura int ser twassalhom għal string, jgħidu, "Give me string."
Allura dak fejn f'dan il-każ li ħadthom tak Dan ... huwa CS50!
Mela allura int ser tuża din u l-użu ohai u jtenni fuq.
Avviż li hawnhekk aħna skipped fuq encrypting il-perjodi,
imma f'termini ta 'pożizzjoni tagħna għall ohai, dak li jmiss aħna użati o.
F'dan il-każ huwa daqsxejn aktar diffiċli biex tara għaliex dan huwa 4,
hekk ejja tkompli daqsxejn. Just stick miegħi hawn.
Imbagħad għandna i u s, li mbagħad tradotti minn o uh rispettivament.
Imbagħad għandna spazju, u hekk allura nafu li aħna mhux se encipher-ispazji.
Iżda l-avviż li minflok tmur lil f'dan il-post dritt hawn,
aħna qed encrypting minn - I do not know jekk inti tista 'tara li - dritt hawn.
Għalhekk mhuwiex simili inti fil-fatt predeterminat, jiġifieri, o tmur hawn, h tmur hawn,
a tmur hawn, i tmur hawn, o, h, a, i, o, h, a, i. Inti ma tagħmel dan.
Inti biss bidla pożizzjoni tiegħek fil-keyword
meta taf li int fil-fatt se jiġu kkodifikati ittra attwali.
Does li tip ta 'jagħmel sens?
Okay.
Allura biss xi tfakkiriet.
Inti tixtieq li tagħmel ċert li inti biss bil-quddiem għall-ittra li jmiss fil keyword tiegħek
jekk il-karattru fil plaintext tiegħek hija ittra.
Allura ngħid aħna qed fil-o.
Aħna avviż li l-karattru li jmiss, l-indiċi i ta 'l-plaintext, huwa numru, per eżempju.
Imbagħad aħna ma qabel j, l-indiċi għall-keyword tagħna, sakemm nilħqu ittra oħra.
Għal darb'oħra, inti wkoll tixtieq li tagħmel ċert li inti trembil għall-bidu tal-keyword
meta int fl-aħħar ta 'dan.
Jekk tara hawn aħna qed fil i, il-wieħed li jmiss għandu jkun o.
Allura inti tixtieq li ssib xi mod li tkun tista 'trembil għall-bidu ta' keyword tiegħek
kull darba li inti jilħqu t-tmiem.
U għalhekk għal darb'oħra, liema tip ta 'operatur huwa utli f'dak il-każ għall-kisi madwar?
Bħal fil-għadd off eżempju.
[Student] Is-sinjal fil-mija. >> Yeah, is-sinjal fil-mija, li hija modulo.
Allura modulo se jidħlu fil handy hawn meta inti tixtieq li nagħlaq fuq l-indiċi fil-ohai tiegħek.
U biss ħjiel ta 'malajr: Ipprova aħseb ta' tgeżwir fuq il-keyword qisu l-off-għadd,
fejn jekk ikun hemm 3 gruppi, il-persuna 4,
numru tagħhom li huma qalu kienet ta '4 mod 3, li kien 1.
Sabiex jippruvaw u think ta 'dan il-mod.
Kif inti raw fil-formula, fejn inti għandek ci u mbagħad pi imma mbagħad kj,
inti tixtieq li tagħmel ċert li inti żżomm rekord minn dawn.
Inti ma għandekx bżonn li hija sejħa i, inti m'għandekx bżonn li hija sejħa j,
iżda inti tixtieq li tagħmel ċert li inti żżomm rekord tal-pożizzjoni li int fid fil plaintext tiegħek
kif ukoll il-pożizzjoni li int fid fil keyword tiegħek
għaliex dawk mhumiex neċessarjament se jkunu l-istess.
Mhux biss il-keyword - jista 'jkun ta' tul kompletament differenti minn plaintext tiegħek.
Ukoll, plaintext tiegħek, hemm numri u l-karattri,
għalhekk mhuwiex ser perfettament jaqblu flimkien. Iva.
[Student] Hemm funzjoni għall-bidla każ?
Tista bidla għall-kapital A? >> Yeah, hemm definittivament.
Tista 'tiċċekkja - Nemmen toupper huwa, kollu kelma 1.
Imma meta inti qed tipprova cipher affarijiet u jippreservaw it-test,
huwa aħjar bażikament li jkollhom każijiet separati.
Jekk huwa ta 'uppercase, imbagħad inti tixtieq li bidla minn din
minħabba fil-formula tiegħek, meta inti tħares lura kif għandna tip ta 'go
minflok xulxin bejn il-mod ASCII ta jirrappreżentaw in-numri
u l-indiċi alfabetiku attwali, irridu li jagħmlu ċert
hemm għaddej li jkun hemm xi tip ta 'mudell li int ser tuża.
Ieħor nota dwar il-mudell, fil-fatt.
Inti ser definittivament jittrattaw numri.
Ipprova ma jużawx in-numri magic, li hija eżempju ta 'stil.
Allura ngħid li inti tixtieq li kull ħaġa time shift bil tixtieq -
Okay, hekk ħjiel, ieħor spoiler huwa meta int ser jiġi trasferit xi ħaġa
billi ċertu ammont, ipprova ma jirrappreżenta dak minn numru attwali
iżda ipprova u ara jekk inti tista 'tuża l-valur ASCII, li se tip ta' jagħmel aktar sens.
Ieħor nota: Għaliex aħna qed jittrattaw ma 'formuli,
anki jekk TF tiegħek se tip ta 'jafu liema mudell inti jista' jkun bl-użu,
aħjar fil-tip kummenti tiegħek tal jispjegaw il-loġika, bħal,
"Jien jużaw dan il-mudell għaliex ..." u tip ta 'tispjega l-mudell fil-qosor fil-kummenti tiegħek.
[Dan kien walkthrough 2] Jekk ma jkunx hemm xi mistoqsijiet oħra, imbagħad I ser biss jibqgħu hawn għal ftit.
Xorti tajba mal tiegħek pset 2: kripto u grazzi għall ġejjin.
[Student] Grazzi. Grazzi >>.
[Intro Media Offline]