1 00:00:00,000 --> 00:00:11,960 2 00:00:11,960 --> 00:00:13,750 >> ROB BOWDEN: Ahoj, já jsem Rob. 3 00:00:13,750 --> 00:00:17,360 A když se v Římě, pojďme programu jako Římané. 4 00:00:17,360 --> 00:00:22,280 Takže, první věc, kterou musíme udělat, je kontrola ujistěte se, že uživatel skutečně vstoupil 5 00:00:22,280 --> 00:00:26,670 číslo, které chceme otočit každý charakter by na příkazovém řádku. 6 00:00:26,670 --> 00:00:27,740 >> Takže jsme zkontrolovat. 7 00:00:27,740 --> 00:00:30,180 Je argc rovná 2? 8 00:00:30,180 --> 00:00:34,190 Pokud to tak není, to znamená, že uživatel buď nezadali číslo na 9 00:00:34,190 --> 00:00:37,770 příkazového řádku, nebo vešli příliš mnoho věci na příkazovém řádku, ve kterém 10 00:00:37,770 --> 00:00:40,560 případě nevíme, co dělat se zbytkem věcí. 11 00:00:40,560 --> 00:00:45,750 Takže, pokud se dva argc, můžeme pokračovat se zbytkem programu. 12 00:00:45,750 --> 00:00:49,610 >> Teď si uvědomte, že argv 1 je vždy řetězec. 13 00:00:49,610 --> 00:00:52,490 Ale my chceme, aby to léčit jako celé číslo. 14 00:00:52,490 --> 00:00:57,550 Tak jsme se použít atoi funkci, která je výše uvedených p set spec převést 15 00:00:57,550 --> 00:01:02,330 string argv 1 na celé číslo, a uložíme, že v klíči. 16 00:01:02,330 --> 00:01:06,050 Chceme, aby se ujistil, že číslo která byla zapsána není negativní. 17 00:01:06,050 --> 00:01:09,490 A kdyby to bylo, chceme tisknout, které se uživatel, který oni nejsou povoleny 18 00:01:09,490 --> 00:01:11,980 k tomu, že, a vrátit se. 19 00:01:11,980 --> 00:01:15,100 >> Tak, teď máme platný Číslo od uživatele. 20 00:01:15,100 --> 00:01:19,780 Ale musíme získat řetězec od uživatel, který chceme zašifrovat. 21 00:01:19,780 --> 00:01:25,340 Tak jsme se do-while a použití získáte string stáhni řetězec od 22 00:01:25,340 --> 00:01:29,190 uživatele, a pokračovat v získávání řetězec dokud se skutečně 23 00:01:29,190 --> 00:01:31,270 zadejte platný řetězec. 24 00:01:31,270 --> 00:01:34,400 >> Jakmile budeme mít tento řetězec, jsme můžete jít na to šifrování. 25 00:01:34,400 --> 00:01:38,120 Takže, tohle smyčka dělá které šifrování. 26 00:01:38,120 --> 00:01:43,250 Všimněte si, že jsme iterace od i rovná 0 t celou cestu až i rovnými 27 00:01:43,250 --> 00:01:47,790 n, kde n je definován jako délka naše zprávy, kde zpráva je 28 00:01:47,790 --> 00:01:50,260 Řetězec, který uživatel zadal. 29 00:01:50,260 --> 00:01:54,330 >> Takže jsme iterace přes všechny znaky v řetězci. 30 00:01:54,330 --> 00:01:59,740 A jestliže znak je velké písmeno, pak budeme posouvat jej pomocí této 31 00:01:59,740 --> 00:02:01,860 Vzorec, který jsme si dostat se do druhého. 32 00:02:01,860 --> 00:02:05,260 A jestli to byla malá, pak budeme posouvat jej pomocí je 33 00:02:05,260 --> 00:02:07,290 velmi podobné složení. 34 00:02:07,290 --> 00:02:10,850 A pokud to nebylo ani velká, ani malé písmeno - například, že 35 00:02:10,850 --> 00:02:15,370 může být číslo nebo symbol - a pak jsme se nebude dělat nic k tomu. 36 00:02:15,370 --> 00:02:18,220 >> Takže, jaké jsou tyto vzorce? 37 00:02:18,220 --> 00:02:22,090 Tak, jak jsme se přesunout postavu? 38 00:02:22,090 --> 00:02:27,250 Chceme léčit znak Jako číslo 0.. 39 00:02:27,250 --> 00:02:30,710 A chceme léčit znak B jako číslo 1, a tak dále. 40 00:02:30,710 --> 00:02:35,170 Je to nultý a první znaky abecedy a tak dále. 41 00:02:35,170 --> 00:02:42,900 >> Tak tady, zprávu i minus má aby nám číselnou místo 42 00:02:42,900 --> 00:02:44,400 písmeno v abecedě. 43 00:02:44,400 --> 00:02:48,080 Takže pokud je zpráva i, to bude nám 0.. 44 00:02:48,080 --> 00:02:52,880 Nyní chceme přidat k tomu, že číslo, které uživatel chce 45 00:02:52,880 --> 00:02:54,840 otáčet dopis,. 46 00:02:54,840 --> 00:03:03,280 Takže, pokud vešli tři, pak se v případě hlášení jsem byl, bude to nám 0 a navíc 47 00:03:03,280 --> 00:03:05,400 Klíčovým nám dá 3. 48 00:03:05,400 --> 00:03:09,450 >> Takže teď, uvažujeme třetí místo v abecedě. 49 00:03:09,450 --> 00:03:12,810 Uvidíme, proč musíme mod num písmeny sekundu. 50 00:03:12,810 --> 00:03:18,700 Ale nakonec jsme se chcete přidat k končí opět na nás posunout zpět do 51 00:03:18,700 --> 00:03:22,020 Hodnoty ASCII pro tyto znaky namísto číselných míst 52 00:03:22,020 --> 00:03:24,260 abeceda z těchto znaků. 53 00:03:24,260 --> 00:03:26,580 >> Takže, proč mod by num dopisy? 54 00:03:26,580 --> 00:03:29,960 Pamatujte si, že chceme, aby se zalomit kolem z konce abecedy 55 00:03:29,960 --> 00:03:31,470 začátku abecedy. 56 00:03:31,470 --> 00:03:38,530 Takže kdyby vstoupil uživatel Z, pak odečtení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 případě, že klíč byl 3, pak budeme mít 28. 59 00:03:44,800 --> 00:03:53,000 Ale Z by měl obtékat kolem ABC, tak 28 mod num dopisy, které jsou definovány hash 60 00:03:53,000 --> 00:04:01,890 jako 26 lze očekávat, se chystá dát us 2, kde C je druhé písmeno 61 00:04:01,890 --> 00:04:05,880 abeceda, pokud si vzpomenete, že je nultý písmeno abecedy. 62 00:04:05,880 --> 00:04:09,210 >> Takže to je důvod, proč musíme mod by num písmeny. 63 00:04:09,210 --> 00:04:13,540 Nyní musíme udělat přesně stejnou věc na malá písmena, s výjimkou 64 00:04:13,540 --> 00:04:17,240 si uvědomit, že když máme co do činění s malá písmena, oni mají různé 65 00:04:17,240 --> 00:04:18,579 Hodnoty ASCII. 66 00:04:18,579 --> 00:04:24,550 A tak musíme odečíst a přidat na posunout dolů z malých písmen 67 00:04:24,550 --> 00:04:30,020 Hodnoty ASCII a pak zpět na Původní malá hodnoty ASCII. 68 00:04:30,020 --> 00:04:33,140 >> A konečně, že dám nám naše zašifrovaná zpráva. 69 00:04:33,140 --> 00:04:37,780 A nakonec, jsme jen vytisknout tato zpráva, a je to. 70 00:04:37,780 --> 00:04:39,875 Jmenuji se Rob a byl Caesar. 71 00:04:39,875 --> 00:04:49,856