>> Rob: Hi, Ako Rob, at ng maintindihan ipaalam ang programa Vigenere.
Kaya unang bagay na kailangan naming gawin ay gumawa Tiyaking gumagamit ang nagpasok ng kung ano ang aming inaasahan
sa kanila na sa linya Command.
Kaya kung argc ay hindi 2 na nangangahulugan alinman sa ang gumagamit ay hindi ipasok ang string namin
gustong mai-paggamit ng aming encrypt string, o sila
ipinasok masyadong maraming mga bagay.
At hindi namin alam kung ano ang gagawin may mga iba pang mga bagay.
>> Kaya sabihin namin sa kanila kung ano ang kanilang Dapat ay ipinasok.
At bumalik namin.
Ngayon, ipagpalagay na argc ay 2, kaya namin magpatuloy sa natitirang bahagi ng programa.
>> Alias ​​namin ang pangalan ng argv [1]
papunta sa variable keyword.
Kaya na hindi namin kailangang mag- gamitin ang pangalan argv [1]
sa buong natitirang bahagi ng programa.
At siguro ay gagamitin namin kalimutan kung ano Nangangahulugan na at iba pa.
Keyword ay isang magkano nicer pangalan.
At kami kaagad grab ang haba sa aming mga keyword dito mismo.
>> OK, kaya ngayon ay nais namin na suriin na ang ang aming mga keyword ay talagang wasto.
Ang keyword na ginagamit namin upang i-encrypt ang mga string Dapat na alphabetical lamang
character.
Kung ipinasok ng gumagamit ang di-alpabetikong mga character, dapat naming sabihin, keyword
Dapat lamang maglaman ng sa pamamagitan ng Z at pagkatapos ay bumalik.
Kaya ito para sa loop iterates sa ibabaw ng lahat mga character ng aming keyword, pagsuri
na kung ang isa ay hindi alphabetical pagkatapos kailangan naming i-print ang babalang iyon.
>> Ngayon, sa sandaling makuha namin sa puntong ito, alam namin na ang string ay dapat na tama.
Dapat na tama Ang keyword.
At ngayon kailangan namin upang makuha ang mensahe mula sa ang gumagamit na nila gusto sa amin upang
i-encrypt na may na key parirala.
Kaya upang makakuha ng mensaheng iyon, mayroon kaming isang gawin habang loop na pupuntahan
patuloy na makakuha ng isang string mula sa gumagamit na ang hanggang sa magpasok sila ng wastong string.
>> Ang pagpapatuloy, makikita natin dito ang variable, int nun_letters_seen.
Susubukan naming makita kung bakit kailangan namin na sa isang segundo.
Ngunit ito para sa loop ay pagpunta upang umulit mula katumbas i 0 ang lahat ng mga paraan ng hanggang sa i
ay katumbas ng n, na nangangahulugang kami iterating sa paglipas ng lahat ng mga posibleng
character sa aming mensahe.
Dahil nais namin upang i-encrypt ang lahat ng ang mga character sa aming mensahe.
Kaya mapansin ang ginagawa namin kung (isalphamessage [ko], dahil hindi namin nais na i-encrypt
mga character na hindi alphabetical.
Kung mayroong mga simbolo, puwang, o mga numero, hindi namin
gusto upang i-encrypt ang mga iyon.
>> Ngayon, sa pag-aakala na ito ay alphabetical, kami gusto munang malaman kung ano ang aming
talagang gusto upang i-encrypt ang mensahe gamit.
Kaya ano ang gagawin ko ibig sabihin sa pamamagitan ng na?
>> Ipagpalagay nating Hayaan na ang susi parirala ang gumagamit ay ipinasok abc.
Iyon ay kung ano ang aming ginagamit upang i-encrypt.
Ngayon, naively, sa tingin namin ay nangangahulugan na na gusto naming upang i-encrypt ang unang character
ng aming mga mensahe sa pamamagitan ng 0, dahil ang isang paraan umiikot na mga karakter sa pamamagitan ng 0.
>> Gusto naming upang i-encrypt ang pangalawang ng character sa pamamagitan ng 1, ikatlong ng character sa pamamagitan ng 2,
ang ika-apat na character sa pamamagitan ng 0, ang ikalimang sa pamamagitan ng 1, ang ikaanim sa pamamagitan ng 2, at iba pa.
Ngunit tandaan, na gusto naming laktawan mga puwang at mga simbolo at numero.
Nangangahulugan ito na sa kung ipinasok ng gumagamit ang kumusta mundo bilang mensahe
na gusto nilang i-encrypt, pagkatapos ay gusto naming upang i-encrypt ang h sa pamamagitan ng 0
naaayon sa a, ang e ng 1, ang l sa pamamagitan ng 2, ang l sa pamamagitan ng 0, ang o sa pamamagitan ng 1.
Gusto naming laktawan ang puwang, naka-encrypt na ang w sa pamamagitan ng 2, ang o sa pamamagitan ng 0, 1, 2, 0.
Kaya't mapapansin, kung hindi kami ay nilaktawan ang espasyo, pagkatapos sana ay naka-encrypt namin
ang w sa pamamagitan ng 0 at natapos up gamit ang hindi tamang string.
>> OK, ito ay kung ano ang kailangan namin ang variable num_letters_seen para sa.
Kung tayo ay lamang pagpunta upang i-encrypt gamit ang ang pamamaraan na ito, na hindi laktawan
mga simbolo, puwang, at mga numero, pagkatapos namin maaari lamang gamitin ang mga variable na i bilang kung ano
i-index sa aming mga key parirala na may.
Kailangan naming gamitin num_letters_seen upang panatilihing subaybayan ang aktwal na lugar sa
susi parirala na nais naming i-index.
Kaya dito, kung ang keyword mayroon kami, kung num_letter_seen mod keyword_length, kaya
bakit kailangan naming i-mod sa pamamagitan ng haba ng keyword?
>> Well, kumusta mundo noon ay isang magandang halimbawa.
Kung ang keyword ay abc, pagkatapos kailangan namin upang patuloy na i-encrypt sa pamamagitan ng isang pagkatapos ay b
pagkatapos c, pagkatapos ay i-wrap pabalik sa paligid, a, b, c, a, b, c.
Kaya kailangan naming i-mod sa pamamagitan ng haba ng keyword upang balutin pabalik sa paligid.
>> Kaya kung ito ay isang uppercase na titik, pagkatapos ay nais naming upang i-encrypt sa pamamagitan ng
posisyon ng na titik sa alpabeto, na makuha namin sa pamamagitan lamang
pagbabawas out kabisera A. At katulad, para sa maliliit na mga titik, namin
Maaari makuha ang key na gusto namin sa pamamagitan ng pagbabawas out lowercase isang.
Kaya hindi alintana kung ang titik sa ang susi parirala ay may malaking titik o
lowercase na titik, kami ay pagpunta sa i-encrypt sa pamamagitan ng sa parehong halaga.
>> Ngayon na mayroon kami sa aming mga key, makikita natin dito, na kung mensaheng i ay isang uppercase
karakter, pagkatapos ay nais naming kalkulahin ang posisyon sa alpabeto ng na
karakter, magdagdag ng aming mga susi sa ito, balutin pabalik sa paligid upang kung nagpunta kami nakalipas na isang
z pumunta namin pabalik sa a, b, c, at iba pa.
Pagkatapos, sa wakas, idagdag pabalik sa kabisera A. Kaya shift namin pabalik sa [? Ascii?]
sa halip ng iba't-ibang mga character na ito ang numeric posisyon sa alpabeto
ng mga character na ito.
>> At gawin namin ang parehong bagay para sa lower case na mga character.
Maliban gusto naming ibawas out lowercase isang at idagdag ito muli ang
pagtatapos, lowercase isang.
Pansinin na num_letter_seen ay lamang incremented kung mensaheng i noon ay
alphabetical.
Ito ay kung paano namin laktawan ang mga puwang, mga simbolo, at mga numero sa aming mga key parirala, dahil
num_letter_seen ay kung ano ang aming ginagamit i-index sa aming mga keyword.
>> Sa wakas, sa dulo, ngayon mensahe na i ay naka-encrypt, namin
i-print ang mensaheng ito i.
At na ito.
Ang pangalan ko ay Rob.
At ito ay Vigenere.
>> [MUSIC nagpe-play]