1 00:00:00,000 --> 00:00:11,960 2 00:00:11,960 --> 00:00:13,750 >> ROB BOWDEN: Ahoj, ja som Rob. 3 00:00:13,750 --> 00:00:17,360 A keď sa v Ríme, poďme programu ako Rimania. 4 00:00:17,360 --> 00:00:22,280 Takže, prvá vec, ktorú musíme urobiť, je kontrola uistite sa, že používateľ skutočne vstúpil 5 00:00:22,280 --> 00:00:26,670 číslo, ktoré chceme otočiť každý charakter by na príkazovom riadku. 6 00:00:26,670 --> 00:00:27,740 >> Takže sme skontrolovať. 7 00:00:27,740 --> 00:00:30,180 Je argc rovná 2? 8 00:00:30,180 --> 00:00:34,190 Ak to tak nie je, to znamená, že užívateľ buď nezadali číslo na 9 00:00:34,190 --> 00:00:37,770 príkazového riadku, alebo vošli príliš veľa veci na príkazovom riadku, v ktorom 10 00:00:37,770 --> 00:00:40,560 prípade nevieme, čo robiť so zvyškom vecí. 11 00:00:40,560 --> 00:00:45,750 Takže, ak sa dvaja argc, môžeme pokračovať so zvyškom programu. 12 00:00:45,750 --> 00:00:49,610 >> Teraz si uvedomte, že argv 1 je vždy reťazec. 13 00:00:49,610 --> 00:00:52,490 Ale my chceme, aby to liečiť ako celé číslo. 14 00:00:52,490 --> 00:00:57,550 Tak sme sa použiť atoi funkciu, ktorá je vyššie uvedených p set spec previesť 15 00:00:57,550 --> 00:01:02,330 string argv 1 na celé číslo, a uložíme, že v kľúči. 16 00:01:02,330 --> 00:01:06,050 Chceme, aby sa ubezpečil, že číslo ktorá bola zapísaná nie je negatívna. 17 00:01:06,050 --> 00:01:09,490 A keby to bolo, chceme tlačiť, ktoré sa užívateľ, ktorý oni nie sú povolené 18 00:01:09,490 --> 00:01:11,980 k tomu, že, a vrátiť sa. 19 00:01:11,980 --> 00:01:15,100 >> Tak, teraz máme platný Číslo od užívateľa. 20 00:01:15,100 --> 00:01:19,780 Ale musíme získať reťazec od užívateľ, ktorý chceme zašifrovať. 21 00:01:19,780 --> 00:01:25,340 Tak sme sa do-while a použitie získate string stiahni reťazec od 22 00:01:25,340 --> 00:01:29,190 užívateľa, a pokračovať v získavaní reťazec kým sa skutočne 23 00:01:29,190 --> 00:01:31,270 zadajte platný reťazec. 24 00:01:31,270 --> 00:01:34,400 >> Akonáhle budeme mať tento reťazec, sme môžete ísť na to šifrovanie. 25 00:01:34,400 --> 00:01:38,120 Takže, toto slučka robí ktoré šifrovanie. 26 00:01:38,120 --> 00:01:43,250 Všimnite si, že sme iterácie od i rovná 0 t celú cestu až aj rovnými 27 00:01:43,250 --> 00:01:47,790 n, kde n je definovaný ako dĺžka naše správy, kde správa je 28 00:01:47,790 --> 00:01:50,260 Reťazec, ktorý užívateľ zadal. 29 00:01:50,260 --> 00:01:54,330 >> Takže sme iterácia cez všetky znaky v reťazci. 30 00:01:54,330 --> 00:01:59,740 A ak znak je veľké písmeno, potom budeme posúvať ho pomocou tejto 31 00:01:59,740 --> 00:02:01,860 Vzorec, ktorý sme si dostať sa do druhého. 32 00:02:01,860 --> 00:02:05,260 A či to bola malá, potom budeme posúvať ho pomocou je 33 00:02:05,260 --> 00:02:07,290 veľmi podobné zloženie. 34 00:02:07,290 --> 00:02:10,850 A ak to nebolo ani veľká, ani malé písmeno - napríklad, že 35 00:02:10,850 --> 00:02:15,370 môže byť číslo alebo symbol - a potom sme sa nebude robiť nič k tomu. 36 00:02:15,370 --> 00:02:18,220 >> Takže, aké sú tieto vzorce? 37 00:02:18,220 --> 00:02:22,090 Tak, ako sme sa presunúť postavu? 38 00:02:22,090 --> 00:02:27,250 Chceme liečiť znak Ako číslo 0.. 39 00:02:27,250 --> 00:02:30,710 A chceme liečiť znak B ako číslo 1, a tak ďalej. 40 00:02:30,710 --> 00:02:35,170 Je to nultý a prvé znaky abecedy a tak ďalej. 41 00:02:35,170 --> 00:02:42,900 >> Tak tu, správu i mínus má aby nám číselnú miesto 42 00:02:42,900 --> 00:02:44,400 písmeno v abecede. 43 00:02:44,400 --> 00:02:48,080 Takže ak je správa aj, to bude nám 0.. 44 00:02:48,080 --> 00:02:52,880 Teraz chceme pridať k tomu, že číslo, ktoré používateľ chce 45 00:02:52,880 --> 00:02:54,840 otáčať list,. 46 00:02:54,840 --> 00:03:03,280 Takže, ak vošli tri, potom sa v prípade hlásenia som bol, bude to nám 0 a navyše 47 00:03:03,280 --> 00:03:05,400 Kľúčovým nám dá 3. 48 00:03:05,400 --> 00:03:09,450 >> Takže teraz, uvažujeme tretie miesto v abecede. 49 00:03:09,450 --> 00:03:12,810 Uvidíme, prečo musíme mod num písmenami sekundu. 50 00:03:12,810 --> 00:03:18,700 Ale nakoniec sme sa chcete pridať k končí opäť na nás posunúť späť do 51 00:03:18,700 --> 00:03:22,020 Hodnoty ASCII pre tieto znaky namiesto číselných miest 52 00:03:22,020 --> 00:03:24,260 abeceda z týchto znakov. 53 00:03:24,260 --> 00:03:26,580 >> Takže, prečo mod by num listy? 54 00:03:26,580 --> 00:03:29,960 Pamätajte si, že chceme, aby sa zalomiť okolo z konca abecedy 55 00:03:29,960 --> 00:03:31,470 začiatku abecedy. 56 00:03:31,470 --> 00:03:38,530 Takže keby vstúpil užívateľ Z, potom odpočítaním z toho bude 57 00:03:38,530 --> 00:03:40,520 nám 25. 58 00:03:40,520 --> 00:03:44,800 A v prípade, že kľúč bol 3, potom budeme mať 28. 59 00:03:44,800 --> 00:03:53,000 Ale Z by mal obtekať okolo ABC, tak 28 mod num listy, ktoré sú definované hash 60 00:03:53,000 --> 00:04:01,890 ako 26 možno očakávať, sa chystá dať us 2, kde C je druhé písmeno 61 00:04:01,890 --> 00:04:05,880 abeceda, ak si spomeniete, že je nultý písmeno abecedy. 62 00:04:05,880 --> 00:04:09,210 >> Takže to je dôvod, prečo musíme mod by num písmenami. 63 00:04:09,210 --> 00:04:13,540 Teraz musíme urobiť presne rovnakú vec na malé písmená, s výnimkou 64 00:04:13,540 --> 00:04:17,240 si uvedomiť, že keď máme čo do činenia s malé písmená, oni majú rôzne 65 00:04:17,240 --> 00:04:18,579 Hodnoty ASCII. 66 00:04:18,579 --> 00:04:24,550 A tak musíme odpočítať a pridať na posunúť dole z malých písmen 67 00:04:24,550 --> 00:04:30,020 Hodnoty ASCII a potom späť na Pôvodné malá hodnoty ASCII. 68 00:04:30,020 --> 00:04:33,140 >> A konečne, že dám nám naše zašifrovaná správa. 69 00:04:33,140 --> 00:04:37,780 A nakoniec, sme len vytlačiť táto správa, a je to. 70 00:04:37,780 --> 00:04:39,875 Volám sa Rob a bol Caesar. 71 00:04:39,875 --> 00:04:49,856