>> ZAMYLA Chan: Congratulations fuq irfinar tiegħek
ewwel koppja ta 'programmi Ċ.
Naf li l-ewwel foray tiegħek fis Sintassi C jistgħu jkunu kbar.
Imma jiena nassigurakom, fl-aħħar tal- Naturalment, inti ser tkun kapaċi li tħares lejn il-
ewwel koppja ta 'assenjazzjonijiet u jwettaqhom fil-minuti.
>> Issa li int jkollna aktar familjari ma sintassi, ejja nikseb biex Caesar.
Fil Caesar, l-utent se jissottometti ewlieni integer bħala linja ta 'kmand
argument, imbagħad tidħol plain messaġġ ta 'test fil-prompt.
Il-programm imbagħad encipher it-test u l-istampar
messaġġ ciphertext tagħhom.
>> Il enciphering għall Caesar huwa pjuttost sempliċi.
Shift kull ittra, fl tagħhom test sempliċi, mill-ċavetta.
Bħala riżultat, huwa wkoll pretty sikur.
Iżda li timplimenta Caesar se jintroduċi ahna data ASCIIMath u firxa
istrutturi.
Aħna ser tingħata biex aktar kumplessi ciphers wara.
B'ċavetta Caesar ta '2, l-ittra A fil- test sempliċi tkun rappreżentata minn
l-ittra C fi ciphertext għaliex C huwa ta 'żewġ ittri wara A. B tkunx
irrappreżentata minn D u C minn E. Lejn l-aħħar ta 'l-alfabett, W hija
irrappreżentata minn Y, u X minn Z. Iżda Y ma jkollhom żewġ ittri wara dan, sabiex
l ciphers garżi madwar l-alfabett.
Y fi kliem sempliċi huwa għalhekk rappreżentat minn A fl ciphertext, u Z minn B. Hija tista '
jgħinu biex tara l-Ċifra Caesar simili rota alfabett kontinwu.
>> Biex encipher test tagħhom, l-utent se jidħlu żewġ argumenti
fil-linja tal-kmand -
. / Caesar segwit minn ċavetta.
Bħal dejjem, aħna ma tistax fiduċja l-utent kompletament jidħlu input li jagħmlu
sens għall-programm tagħna.
Allura aħna ser ikollhom biex jivvalida tagħhom linja input kmand.
>> Minflok tuża null prinċipali int, aħna qed użu int prinċipali, argc int, string ARGV.
Il argc varjabbli numru sħiħ jirrappreżenta in-numru ta 'argumenti mgħoddija fis
kmand tal-linja.
U ARGV huwa array, jew jaħsbu li bħala lista, tal-argumenti għadda pulzieri
>> Allura għal Caesar, kif nistgħu jivvalida input l-utent?
Ukoll, dawn għandhom ikunu jidħlu biss żewġ linja argumenti kmand -
. / Caesar u ewlieni.
Hekk jekk argc mhuwiex 2, dan ifisser li huma jew nesa ewlieni u biss
daħal. / Caesar, jew daħal ċwievet multipli.
>> Jekk dan huwa l-każ, allura inti ser tixtieq li jistampaw istruzzjonijiet
u nieqaf-programm.
Huma bzonn li erġa 'pprova mill-linja tal-kmand.
Iżda anke jekk argc huwa 2, inti ser bżonn li jiċċekkja jekk
jagħtuk ewlieni valida.
Għal Caesar, għandek bżonn ta 'numru sħiħ.
Iżda ARGV huwa firxa ta 'kordi.
Kif inti aċċess li ċavetta?
>> A quick tħares lejn arrays -
strutturi ta 'dejta li jżommu multipli valuri ta 'l-istess tip ta' data.
Entries huma zero-indiċi, li jfisser li l-ewwel element huwa l-żero indiċi
u l-aħħar element huwa fil-daqs indiċi minus 1, fejn id-daqs huwa n-numru ta '
elementi fil-firxa.
>> Jekk I iddikjarat mailbox ġdid firxa string ta 'tul ta' 3, viżwalment, huwa
tidher bħal dan.
Tliet kontenituri għall kordi , Ħdejn xulxin.
Biex ikollok aċċess għal kwalunkwe element, inti tip l-isem tal-firxa u mbagħad tindika
l-indiċi fil-parentesi kwadri.
Hawnhekk, jien assenjazzjoni ta 'valur għal kull element, eżatt kif nixtieq nagħmel ma 'kwalunkwe
varjabbli oħra string.
>> Allura biex jaċċessaw argumenti tagħna linja tal-kmand, kollha għandna nagħmlu huwa aċċess
l-element dritt ta 'l-array ARGV.
Jekk l-utent daħal Tim. / Blastoff Rocket fil-terminal, ARGV 0 kieku
jkun. / blastoff.
ARGV ikun Team, u arg2 ikun rokit.
>> Issa li nistgħu aċċess ewlieni tagħna, għad għandna bżonn biex jagħmlu
ċert li huwa korrett.
Għandna bżonn sabiex jissarfu fi integer.
Iżda aħna ma tistax sempliċement jitfa bħal aħna ghamilt qabel.
Fortunatament, il-A għall-funzjoni Y jieħu ħsieb ta 'dan għalina u anke prospetti 0
jekk il-string ma tistax tiġi konvertita fis integer.
Huwa sa inti, għalkemm, li tgħid l-utent għaliex inti mhux se
ħalli l-programm jipproċedi.
Aħżen ir-riżultat ta 'A għal Y fi numru sħiħ, u hemm ikollok prinċipali tiegħek.
Il-parti li jmiss huwa sempliċi.
Prompt l-utent għall-test sempliċi tagħhom, li tkun ta 'tip string data.
Fortunatament għalina, kollha utent inputted kordi huma validi.
>> Issa li għandna input kollha meħtieġa mill-utent, wasal iż-żmien għalina biex
encipher messaġġ tagħhom.
Il-kunċett ta 'Caesar huwa sempliċi biżżejjed biex jifhmu.
Imma kif ma kompjuter tiegħek jafu liema ittri jiġu wara xulxin?
>> Hawn fejn il-mejda ASCII taqa pulzieri
Kull karattru għandu integer Numru assoċjati magħha.
Kapital A huwa 65.
Kapital B huwa 66.
Zghar a huwa 97.
B zghar huwa 98.
Iżda karattri mhumiex limitati għal ftit numri alfabetiċi.
Per eżempju, is-simbolu @ huwa 64 numru ASCII.
>> Qabel jittrattaw il-string kollu, ejja nippretendu aħna biss għandhom shift
karattru wieħed.
Well, aħna biss tixtieq li bidla attwali ittri fit-test sempliċi, mhux
karattri jew numri.
Allura l-ewwel ħaġa li aħna inneħħu jridu jivverifika hu jekk il-karattru huwa fil
l-alfabett.
>> Il isalpha funzjoni ma dan għal magħna u jirritorna Boolean -
minnu jekk l-karattri hija ittra, falza jekk mod ieħor.
Żewġ funzjonijiet utli oħra huma isupper u islower, ma
ismijiet ta 'spjegazzjoni.
Huma jirritornaw lura minnu jekk il-karattru partikolari huwa uppercase jew zghar,
rispettivament.
Peress li dawn huma Booleans, dawn qed utli li tintuża bħala kundizzjoni.
>> Jekk isalpha prospetti vera, ikollok bzonn li ċċaqlaq dan il-karattru mill-ċavetta.
Mela ejja miftuħa għall ASCIIMath u jagħmlu xi matematika ASCII.
L-użu huwa simili ħafna għall-użu għall Caesar u tieħu fi ewlenin fil-
kmand linja.
>> Jekk I run ASCIIMath 5, jidher li żżid 5 lejn, tajtu lili l-ittra f, u
juri l-valur ASCII.
Mela ejja tagħti ħarsa lejn il-programm.
>> Inti tista wonder, dritt hawn, għaliex ittra huwa integer, meta huwa
b'mod ċar, ukoll, ittra.
Jirriżulta li l-karattri u interi huma interkambjabbli.
Billi titnieda l-ittra A fil-wieħed virgoletti, n-numru sħiħ jista 'jaħżen
il-valur ASCII tal-kapital A. Oqgħod attent, għalkemm.
Għandek bżonn l-ħwejjeġ waħda.
Mingħajr il-marki kwotazzjoni waħda, l- kompilatur se tfittex għal varjabbli
jismu A, u mhux il-karattru.
>> Imbagħad I żid ittra u ewlieni, ħażna tal- somma fil-varjabbli riżultat int.
Anki jekk ir-riżultat huwa ta 'tip ta' dejta numru sħiħ, dikjarazzjoni printf tiegħi juża l-
% Placeholder c għall-karattri.
Allura l-programm prints-karattru assoċjat mar-riżultat numru sħiħ.
U peress li aħna stampati-eqreb numru sħiħ forma kif ukoll jużaw% d, naraw
in-numru kif ukoll.
Allura issa tista 'tara li aħna jittrattaw karattri u
interi, u viċe versa.
>> Ejja test out ASCIIMath ftit darbiet aktar bl-użu ta 25 bħala ċ-ċavetta.
Irridu jiksbu l-ittra z.
Issa nippruvaw 26.
Aħna rridu nġibu l-ittra a, imma minflok irridu jiksbu bracket xellug.
Allura ovvjament, sempliċement tiżdied il- ewlieni għall-ittra mhux se tagħmel.
Għandna bżonn biex insemmu formula biex nagħlaq madwar l-alfabett, bħal tagħna
eżempju fil-bidu għamlet.
>> A formula għall-Caesar shift hija kif ġej.
c ugwali p plus k modulo 26.
Ftakar li modulo hija utli operazzjoni li jagħtina l-bqija
ta 'diviżjoni numru wieħed mill-ieħor.
Ejja japplikaw din il-formula għall-pjanura ittra test ma 'ċavetta ta' 2.
Il-valur ASCII tal y hija l 89, li tagħtina 91 modulo 26,
li jkun ugwali għal 13 -
definittivament mhux il-valur ASCII ta ', li huwa 67.
>> Humer lili issa u jwarrab mill- Valuri ASCII għal indiċi alfabetiku
fejn A huwa żero u Z hija 25, li jfisser li Y huwa ta '24.
24 flimkien ma '2, modulo 6, jagħtina 26, modulo 26, 0, li hija l-
Indiċi alfabetiku ta '.
Allura din il-formula tidher li tapplika għall- Indiċi alfabetiku tal-ittra u
mhux il-valur ASCII tagħha.
>> Imma inti tibda bil-valuri ASCII.
U li jistampaw il-karattru ciphertext, ikollok bzonn valur ASCII tagħha kif ukoll.
Huwa sa inti, allura, biex insemmu kif wieħed jaqleb quddiem u lura.
>> Ladarba inti figura l-formula dritt għall-karattru wieħed, kull ma għandek bżonn tagħmel
hija tapplika l-istess formula li kull ittra fit-test sempliċi -
biss jekk l-imsemmija ittra alfabetika, tal-kors.
U ftakar li inti jeħtieġ li jippreservaw il-każ, fuq jew t'isfel, li fejn
l isUpper u l-funzjonijiet isLower issemma qabel se jidħlu fil handy.
Inti jista 'jkollok żewġ formuli li -
wieħed għall-ittri majjuskoli ta 'kulur u waħda għall zghar.
Allura isUpper l isLower tgħinek jiddeterminaw liema formula japplikaw.
>> Kif inti tapplika formula tiegħek għal kull karattru wieħed fi string?
Well, string huwa biss firxa ta 'karattri.
Allura inti tista 'aċċess kull karattru minn grupp fuq kull karattru fil-
string fil għal loop.
Fir-rigward tal-kundizzjoni ta 'tiegħek għall-loop, il-funzjoni strlen, għal string
tul, se jidħlu fil handy.
Huwa jieħu fil string bħala input u jirritorna l-tul ta 'dak string.
Kun żgur li jinkludi l-librerija dritt li tuża l-funzjoni tul string.
>> U hemm ikollok ciphertext tiegħek.
Jisimni l Zamyla.
U [KODIĊI TITKELLEM].