>> ROB Bowden: Saluton, mi estas Rob.
Kiam en Romo, ni programo kiel la romanoj fari.
Do, unue ni devas fari estas ĉeko certigi la uzanto efektive eniris
la numero kiun ni volas turni ĉiu karaktero de la komandlinio.
>> Do, ni kontrolu.
Ĉu argc egala al 2?
Se ĝi ne estas, kiu signifas la uzanton ĉu ne eniris la nombro je la
komandlinio aŭ ili eniris tro multaj aferojn en la komandlinio, en kiu
kazo ni ne scias kion fari kun la resto de la diritajxo.
Do, tiel longe kiel argc Estis du, ni povas daŭrigi kun la resto de la programo.
>> Nu, memoru, ke argv 1 estas ĉiam ĉenon.
Sed ni volas trakti ĝin kiel entjero.
Do, ni uzu la atoi funkcio kiu estas menciita p aro spec konverti la
kordo argv 1 al entjero, kaj ni stoki ke en klavo.
Ni volas certigi ke la entjero kiu eniris ne estas negativa.
Kaj se li estis, ni deziras presi ke la uzanton ke ili ne permesis
por fari tion, kaj reveni.
>> Do, nun ni havas validan numeron de la uzanto.
Sed ni bezonas por akiri kordo de la uzanton, ke ni volas kodi.
Do ni kutimis fari-dum loop kaj uzu akiri kordo akiri tiun ĉenon de la
uzanto, kaj daŭre ricevas kordo ĝis ili reale
entajpi validan kordo.
>> Iam ni havi tiun ĉenon, ni povas iri al ĉifri ĝin.
Do, ĉi por buklo estas faranta ke ĉifrado.
Rimarku ke ni ripetanta de i egalas 0 t tuta vojo supren al mi egalaj
n, kie n estas difinita kiel la longeco de nian mesaĝon, kie la mesaĝo estas la
kordo, ke la uzanto eniris.
>> Do ni estas ripetanta super ĉiuj signoj en la ĉeno.
Kaj se karaktero estas majuskla, do Ni tuj ŝanĝi ĝin uzante ĉi
formulo, kiun ni atingi en sekundo.
Kaj se ĝi minuskle, tiam ni devos ŝanĝi ĝin uzante ĉi estas
tre similan formulon.
Kaj se ĝi estis nek an majuskle nek minuskla litero - por ekzemplo, tio
povus esti nombro aŭ simbolo - tiam ni Ne tuj fari ion al ŝi.
>> Do, kion signifas tiuj formuloj?
Nu, kial ni ŝanĝos la karakteron A?
Ni volas trakti la karaktero A kiel la nombro 0.
Kaj ni volas trakti la karaktero B kiel la numeron 1, kaj tiel plu.
Ĝi estas la nula kaj unua karakteroj de la alfabeto kaj tiel plu.
>> Do jen, mesaĝo i minus A estas supozata doni al ni la nombran lokon de la
litero en la alfabeto.
Do se mesaĝon i estas A, tiu tuj donu al ni 0.
Nun, ni volas aldoni ke la nombro, ke la uzanto volas
turni la leteron per.
Do, se ili eniris 3, tiam se mesaĝon Mi estis, tio donos al ni 0 kaj pli
ŝlosilaj donos al ni 3.
>> Do nun, ni konsideras la trian lokon en la alfabeto.
Ni vidos, kial ni bezonas mod per num literojn en sekundo.
Sed fine, ni volas aldoni al la fini A denove ŝanĝi ni denove en la
Askio valoroj por tiuj karakteroj anstataŭ la nombraj lokoj en la
Alfabeto de tiuj signoj.
>> Do, kial ni mod per num literojn?
Memoru, ke ni volas enpaki ĉirkaŭe de la fino de la alfabeto al la
komencante de la alfabeto.
Do, se la uzanto jam eniris Z, tiam subtrahanta A el kiu tuj
donu al ni 25.
Kaj se la ŝlosilo estis 3, tiam Ni tuj havas 28.
Sed Z devus ĉirkaŭfermi ĉirkaŭe al ABC, do 28 mod num literoj, kiuj estas hash difinita
kiel 26 al atendi, tuj donu ni 2, kie C estas la dua letero de
la alfabeto, se vi memoras, ke A estas la nula litero de la alfabeto.
>> Do jen kial ni bezonas mod per num literoj.
Nun, ni devas fari la saman ĝusta afero por minusklaj literoj, escepte
memoru, ke kiam ni pritraktas minusklaj literoj, ili havas malsamajn
Askio valoroj.
Kaj tial ni devas subtrahi kaj aldonu sur por ŝanĝi ĝin malsupren de la minuskla
Askio valoroj kaj reen sur la originalaj minusklaj ASCII valoroj.
>> Kaj laste, kiu donos al ni nia ĉifrita mesaĝo.
Kaj en la fino, ni simple printi tiun mesaĝon, kaj tio estas ĝi.
Mia nomo estas Rob, kaj estis Cezaro.