>> ZAMYLA CHAN: Til hamingju að klára þinni
Fyrsta par af C forrit.
Ég veit að fyrsta skyndiárás inn C setningafræði hægt að draga kjark.
En ég fullvissa þig, í lok Auðvitað, youll 'vera fær til að líta á
Fyrsta par af verkefnum og ljúka þeim á augabragði.
>> Nú þegar þú ert að fá fleiri kunnugleg með setningafræði, við skulum fá til keisarans.
Í keisaranum sem notandinn verður að leggja fram heiltala lykill sem stjórn lína
rök, svo inn a látlaus texti skilaboð á the hvetja.
The program vilja þá encipher texta og prenta
þeirra ciphertext skilaboð.
>> The enciphering fyrir keisaranum er alveg einfalt.
Shift hvert bréf, í þeirra látlaus texti, með takkanum.
Þess vegna er það líka nokkuð óörugg.
En innleiða Caesar mun kynna okkur að ASCIIMath og array gögn
mannvirki.
Við munum fá til flóknari dulmál síðar.
Með Caesar lykill af 2, stafinn A í látlaus texti yrði fulltrúi
bréf C í ciphertext vegna C er tveir stafir eftir A. B myndi vera
fulltrúa af D og C eftir E. Undir í lok stafrófinu, W er
táknað með Y, og X með Z. en Y ekki hafa tvo stafi eftir það, svo
the dulmál hula kringum stafrófinu.
Y í látlaus texti er þannig táknuð með A í ciphertext, og Z af B. Það kann að
hjálpa til að skoða Caesar Cypher eins samfellt stafrófið hjól.
>> Til encipher texta þeirra, notandi verður að slá tvær röksemdir
í skipanalínunni -
. / Caesar eftir takka.
Eins og alltaf, við getum ekki treyst notanda alveg að slá inntak sem gera
vit fyrir áætlun okkar.
Þannig að við verðum að staðfesta þeirra stjórn lína inntak.
>> Stað þess að nota int helstu tóm, erum við nota int helstu, int argc, band argv.
The heiltölubreytu argc táknar fjölda rök liðin í
stjórn lína.
Og argv er fylki, eða hugsa um það sem listi, af rök liðin inn
>> Svo fyrir keisaranum, hvernig sannreyna við notandans inntak?
Jæja, ættu þeir aðeins að slá tveir stjórn lína rifrildi -
. / Caesar og lykill.
Svo ef argc er ekki 2, sem þýðir að þeir gleymdu annaðhvort takkann og bara
slegið. / Caesar, eða þeir slegið margar lykla.
>> Ef þetta er raunin, þá munt þú langar að prenta leiðbeiningar
og hætta forritið.
Þeir þurfa að reyna aftur frá the stjórn lína.
En jafnvel þótt argc er 2, munt þú þarf að athuga hvort þeir
gefa þér gilt takkann.
Fyrir keisaranum, þú þarft heiltölu.
En argv er fylki af strengjum.
Hvernig fæ ég aðgang að þessi lykill?
>> A fljótur líta á fylki -
gögn uppbygging sem eiga marga gildi sömu gögn tegund.
Færslur eru núll verðtryggingar, sem þýðir að Fyrsti þátturinn er vísitalan núll
og síðasti þátturinn er á stærð efnisyfirlit mínus 1, þar sem stærð er fjöldi
þættir í array.
>> Ef ég lýsti nýja band array pósthólf af lengd 3, sjónrænt, það
lítur svona út.
Þrjár ílát fyrir strengi , Hlið við hlið.
Til aðgangur allir frumefni, þú slærð inn nafnið í fylkinu og þá benda
vísitalan í hornklofum.
Hér er ég að gefa gildi á hverjum þáttur, rétt eins og ég myndi gera með einhverju
annað band breytu.
>> Svo til að fá aðgang stjórn lína rifrildi okkar, allt sem við þurfum að gera er að opna
rétt þáttur í argv array.
Ef notandinn slær inn. / BlastOff Team Rocket í flugstöðinni, argv 0 myndi
vera. / BlastOff.
argv væri Team og arg2 væri flugeldur.
>> Nú þegar við getum nálgast lykilinn okkar, við þurfum samt að gera
viss um að það er rétt.
Við þurfum að umbreyta það inn í heiltölu.
En við getum ekki bara kastað eins og við höfum gert áður.
Til allrar hamingju, A til Y virka tekur standa þetta fyrir okkur og jafnvel skilar 0
ef strengur er ekki hægt að breyta í heiltala.
Það er komið að þér, þó að segja notandi af hverju þú munt ekki
láta forritið halda áfram.
Geymið niðurstöðu A til Y in an heiltala, og þar hafið þið lykil.
Í næsta hluta er einföld.
Hvetja notandann til texta þeirra, sem verður af gögnum tegund band.
Sem betur fer fyrir okkur, allir notandi inputted strengir eru í gildi.
>> Nú þegar við höfum allar nauðsynlegar inntak frá notandanum, er kominn tími fyrir okkur að
encipher skilaboðum þeirra.
Hugmyndin um keisarans er einfalt nóg að skilja.
En hvernig er tölvan þín vita hver bréf koma á eftir öðrum?
>> Hér er þar sem ASCII töflunni kemur inn
Sérhver persóna hefur heiltölu númer í tengslum við það.
Capital A er 65.
Capital B er 66.
Lágstafir a er 97.
Lágstafir b er 98.
En stafir eru ekki takmörkuð að bara stafrófsröð númer.
Til dæmis, the @ tákn er ASCII númer 64.
>> Áður takast á við allt band, skulum þykjast að við verðum bara að skipta
einn staf.
Jæja, við viljum bara að skipta raunveruleg bréf í látlaus texti, ekki
stafir eða tölur.
Svo það fyrsta sem við munum vilja til athuga hvort eðli er
stafrófið.
>> Fallið isalpha gerir þetta fyrir okkur og skilar Boole -
satt ef persónurnar er bréf, rangar ef annað.
Tvær aðrar gagnlegar aðgerðir eru isupper og islower með
sjálf-útskýringar nöfn.
Þeir aftur satt ef gefið eðli er hástafi eða lágstafir,
hver um sig.
Þar sem þeir eru Booleans, þá eru þeir gagnlegt til að nota sem skilyrði.
>> Ef isalpha skilar satt, þú þarft til að skipta þessi karakter með takkanum.
Svo skulum opin ASCIIMath og gera sumir ASCII stærðfræði.
Notkun er mjög svipuð við notkun fyrir keisaranum og tekur í takkann í
stjórn lína.
>> Ef ég keyrt ASCIIMath 5, virðist það að bæta 5 til a, að gefa mér stafinn f og
sýna ASCII gildi.
Þannig að við skulum taka a líta á the program.
>> Þú gætir furða, hérna, hvers vegna bréf er heiltala, þegar það er
greinilega vel, bréf.
Það kemur í ljós að stafir og heiltölur eru víxlanlegur.
Með því að setja stafinn A í einu gæsalöppum, talan getur geymt
ASCII gildi fjármagns A. Verið varkár, þó.
Þú þarft að einstaklings föt.
Án einn skytta vitna, að þýðanda myndi leita breytu
heitir A, og ekki eðli.
>> Þá vil ég bæta bréf og lykill, geyma Summa í int breytur niðurstöðu.
Jafnvel þó niðurstaða er af gerðinni gögn heiltala, printf yfirlýsingu mína notar
% C-tákn fyrir stafi.
Svo prentar forritið eðli í tengslum við heiltölu niðurstöðu.
Og þar sem við prenta á heiltölu mynd eins vel með% d, sjáum við
fjöldi eins vel.
Svo nú er hægt að sjá að við meðhöndla stafi og
heiltölur, og öfugt.
>> Skulum prófa ASCIIMath sé nefnt fleiri sinnum með 25 sem lykill.
Við fáum stafnum Z.
Nú erum við að reyna 26.
Við viljum fá bréf a, en staðinn fáum við vinstri krappi.
Svo augljóslega, bara að bæta við lykillinn að bréf mun ekki gera.
Við þurfum að reikna út formúlu til að vefja um stafrófið, eins okkar
Dæmið í upphafi gerði.
>> A uppskrift fyrir keisarans breyting er eins og hér segir.
C jafngildir bls plús k modulo 26.
Mundu að modulo er gagnlegt aðgerð sem gefur okkur afganginn
að deila eitt númer af öðrum.
Skulum beita þessari formúlu í dalinn texti bréf með lykli í 2.
The ASCII gildi y er 89, sem gefur okkur 91 modulo 26,
sem jafngildir 13 -
örugglega ekki ASCII gildi af a, sem er 67.
>> Húmor mig núna og fara burt frá ASCII gildi til stafrófsröð
þar sem A er núll og Z er 25, sem þýðir að Y er 24.
24 plús 2, modulo 6, gefur okkur 26, modulo 26, 0, sem er
stafrófsröð um a.
Svo virðist þessi formúla að gilda um stafrófsröð af bréfinu og
ekki þess ASCII gildi.
>> En þú byrjar með ASCII gildi.
Og til að prenta ciphertext staf, þú þarft ASCII gildi sínu eins og heilbrigður.
Það er komið að þér, þá að reikna út hvernig á að skipta fram og til baka.
>> Þegar þú reikna út rétt uppskrift fyrir einn staf, þurfum öll að gera
er beita sömu formúlu til að hvert bréf í látlaus texti -
ef þessi bréf er stafrófsröð, auðvitað.
Og mundu að þú þarft að varðveita að ræða, efri eða neðri, það er þar
The isUpper og isLower aðgerðir fyrr mun koma sér vel.
Þú gætir hafa tvær formúlur -
einn fyrir hástafi bréf og einn fyrir lágstafir.
Svo isUpper að isLower mun hjálpa þér ákvarða hvaða uppskrift að sækja.
>> Hvernig sækir maður um formúlu til sérhver einn staf í streng?
Jæja, band er bara array af stöfum.
Svo þú getur fengið aðgang hvern staf með því hópar yfir hvern staf í
band í fyrir lykkja.
Eins og fyrir the ástand af þinn fyrir lykkju, virka strlen, fyrir band
lengd, mun koma sér vel.
Það tekur í streng sem inntak og skilar lengd strengsins.
Gakktu úr skugga um að rétt bókasafn til að nota lengd strengur.
>> Og þar hafið þið ciphertext þinn.
Mitt nafn er Zamyla.
Og [Talandi CODE].