>> Rob: Hi, mimi nina Rob, na hebu decipher Vigenere mpango.
Kitu hivyo kwanza tunahitaji kufanya ni kufanya uhakika user aliingia kile sisi inatarajiwa
yao katika amri line.
Hivyo kama argc ni si 2 hiyo ina maana ama user hakuingia kamba sisi
wanataka kutumia kama encrypting wetu uzi, au wao
aliingia mambo mengi mno.
Na hatujui nini cha kufanya na yale mambo mengine.
>> Hivyo sisi kuwaambia yale wao wanapaswa kuwa aliingia.
Na sisi kurudi.
Sasa, kuchukua kwamba argc ilikuwa 2, tunaweza kuendelea na wengine wa mpango.
>> Sisi Alias ​​jina la argv [1]
ndani ya keyword kutofautiana.
Ili sisi hawana kutumia jina argv [1]
katika mapumziko ya mpango huo.
Na labda tutaweza kusahau kile hiyo ina maana na kadhalika.
Keyword ni jina gani nzuri.
Na tutaweza mara moja kunyakua urefu Keyword haki yetu hapa.
>> OK, hivyo sasa tunataka kuangalia kwamba keyword yetu ni kweli halali.
keyword sisi kutumia encrypt masharti lazima tu kuwa herufi
wahusika.
Kama mtumiaji aliingia mashirika yasiyo ya herufi wahusika, tunapaswa kusema, keyword
lazima iwe na tu kupitia Z na kisha kurudi.
Hivyo hii kwa kitanzi iterates juu ya yote wahusika wa keyword yetu, kuangalia
kwamba kama mtu yuko si herufi kisha tunahitaji magazeti onyo hilo.
>> Sasa, mara moja sisi kupata hatua hii, tunajua kwamba kamba lazima kuwa sahihi.
keyword lazima kuwa sahihi.
Na sasa tunahitaji kupata ujumbe kutoka user kwamba wanataka sisi kwa
fumbo na kwamba maneno muhimu.
Hivyo kupata ujumbe huo, tuna kufanya wakati kitanzi kwamba kwenda
kuendelea kupata kamba kutoka kwa mtumiaji mpaka waingie kamba halali.
>> Kuendelea, tunaona hapa variable hii, int nun_letters_seen.
Tutaweza kuona kwa nini tunahitaji kwamba katika pili.
Lakini hii kwa kitanzi ni kwenda iterate kutoka i sawa na 0 kwa njia yote hadi i
sawa na n, ambayo ina maana sisi ni iterating juu ya wote iwezekanavyo
wahusika katika ujumbe wetu.
Kwa sababu tunataka fumbo yote ya wahusika katika ujumbe wetu.
Hivyo taarifa sisi kufanya kama (isalphamessage [I], kwa sababu hatutaki encrypt
wahusika kuwa ni si herufi.
Kama kuna alama, nafasi, au namba, hatufanyi
wanataka fumbo hizo.
>> Sasa, kudhani kuwa ni herufi, sisi kwanza wanataka kufikiri nini sisi
kweli wanataka fumbo ujumbe kwa kutumia.
Basi je, mimi maana na kwamba?
>> Hebu kudhani kuwa maneno muhimu user aliingia mara abc.
Hiyo ni nini sisi ni kutumia kwa fumbo.
Sasa, naively, tunafikiri kwamba maana yake ni kwamba tunataka fumbo tabia ya kwanza
wa ujumbe wetu na 0, tangu njia kupokezana tabia kwa 0.
>> Tunataka fumbo tabia ya pili na 1, tabia tatu na 2,
tabia ya nne kwa 0, tano na 1, sita na 2, na kadhalika.
Lakini kumbuka, kwamba tunataka ruka nafasi na alama na namba.
Hii ina maana kwamba kama mtumiaji iliingia hujambo dunia kama ujumbe
kwamba wanataka fumbo, basi tunataka fumbo h na 0
sambamba na a, e na 1, l na 2, l na 0, o na 1.
Tunataka ruka nafasi, encrypted w na 2, o na 0, 1, 2, 0.
Hivyo taarifa, kama sisi alikuwa skipped nafasi, basi sisi ingekuwa encrypted
w na 0 na kuishia na sahihi kamba.
>> OK, hii ni nini tunahitaji variable num_letters_seen kwa.
Kama sisi tu kwenda fumbo kwa kutumia njia hii, ambayo haina ruka
alama, nafasi, na idadi, basi sisi inaweza tu kutumia variable i kama nini
kwa index katika maneno yetu muhimu na.
Tunahitaji kutumia num_letters_seen kuweka wimbo wa mahali halisi katika
maneno muhimu kwamba tunataka index.
Hivyo hapa, kama keyword tuna, kama num_letter_seen mod keyword_length, hivyo
kwa nini tunahitaji Mod na Keyword urefu?
>> Vizuri, hello dunia ilikuwa mfano mzuri.
Kama keyword mara abc, basi tunahitaji kuendelea fumbo na kisha b
kisha c, kisha wrap nyuma kote, a, b, c,, b, c.
Kwa hiyo, tunahitaji Mod na Keyword urefu ili kufuta nyuma kote.
>> Hivyo kama hii ni barua uppercase, kisha tunataka fumbo na
nafasi ya kwamba barua katika alfabeti, ambayo sisi kupata na tu
kutoa mapato nje ya mji mkuu A. Na vile vile, kwa barua lowercase, sisi
wanaweza kupata muhimu kwamba tunataka na kutoa mapato nje lowercase a.
Hivyo bila kujali kama barua katika maneno muhimu ilikuwa mji mkuu wa au
barua lowercase, tunakwenda fumbo kwa kiasi hicho.
>> Sasa kwamba tuna muhimu yetu, tunaona hapa, kwamba kama ujumbe i ni uppercase
tabia, kisha tunataka mahesabu ya nafasi katika alfabeti ya kwamba
tabia, kuongeza muhimu yetu kwa hiyo, kufuta nyuma karibu ili kwamba kama sisi akaenda nyuma
z sisi kurudi, b, c, na kadhalika.
Kisha, mwisho, kuongeza nyuma kwenye mji mkuu wa A. Hivyo sisi kuhama nyuma katika [? Kiwe]?
mbalimbali ya wahusika hawa badala ya nafasi numeric katika alfabeti
ya wahusika hawa.
>> Na sisi kufanya kitu kimoja kwa kesi wahusika chini.
Ila tunataka Ondoa nje lowercase a na kuongeza kuwa nyuma katika
mwisho, Herufi za chini.
Taarifa kwamba num_letter_seen ni tu incremented kama ujumbe i mara
herufi.
Hii ni jinsi gani sisi ruka nafasi, alama, na idadi katika maneno yetu muhimu, tangu
num_letter_seen ni nini sisi ni kutumia kwa index katika keyword yetu.
>> Hatimaye, katika mwisho, sasa ujumbe kwamba i imekuwa encrypted, sisi
magazeti ujumbe i.
Na hiyo ni yake.
Jina langu ni Rob.
Na hii ni Vigenere.
>> [Music kucheza]