1 00:00:00,000 --> 00:00:11,960 2 00:00:11,960 --> 00:00:13,750 >> ROB BOWDEN: Здравейте, аз съм на Роб. 3 00:00:13,750 --> 00:00:17,360 И когато в Рим, нека програма като римляните. 4 00:00:17,360 --> 00:00:22,280 И така, първото нещо, което трябва да направите, е проверка да се уверите, че потребителят действително вписана 5 00:00:22,280 --> 00:00:26,670 номера, който ние искаме да се върти всеки характер, като в командния ред. 6 00:00:26,670 --> 00:00:27,740 >> Така че, ние проверяваме. 7 00:00:27,740 --> 00:00:30,180 Argc е равно на 2? 8 00:00:30,180 --> 00:00:34,190 Ако не е, това означава, че потребителят или не влезе в числото в 9 00:00:34,190 --> 00:00:37,770 команден ред или са влезли твърде много нещата в командния ред, в който 10 00:00:37,770 --> 00:00:40,560 случай, че не знам какво да правя с останалите неща. 11 00:00:40,560 --> 00:00:45,750 Така че, толкова дълго, колкото argc е два, можем продължи с останалата част от програмата. 12 00:00:45,750 --> 00:00:49,610 >> Сега, не забравяйте, че ARGV 1 е винаги низ. 13 00:00:49,610 --> 00:00:52,490 Но ние искаме да се отнасяме към него като цяло число. 14 00:00:52,490 --> 00:00:57,550 Така че, ние използваме функцията atoi, че е На горепосочения стр. набор спец. да конвертирате 15 00:00:57,550 --> 00:01:02,330 низ ARGV 1 до цяло число, и ние съхраняваме, че в ключ. 16 00:01:02,330 --> 00:01:06,050 Ние искаме да се уверите, че цялото число че е вписано не е отрицателно. 17 00:01:06,050 --> 00:01:09,490 И ако това е, което искаме да отпечатате, че да на потребителя, че те не са позволени 18 00:01:09,490 --> 00:01:11,980 да направи това, и да се върнете. 19 00:01:11,980 --> 00:01:15,100 >> Така че, сега имаме валиден брой от потребителя. 20 00:01:15,100 --> 00:01:19,780 Но ние трябва да получи низ от потребител, който ние искаме да се криптират. 21 00:01:19,780 --> 00:01:25,340 Така че ние използвахме да правя-линия, докато използвате и да получите низ, за ​​да получите този низ от 22 00:01:25,340 --> 00:01:29,190 потребител, и да продължи да се низ докато те всъщност 23 00:01:29,190 --> 00:01:31,270 въведете валиден низ. 24 00:01:31,270 --> 00:01:34,400 >> След като имаме низа, ние може да продължи да го криптирате. 25 00:01:34,400 --> 00:01:38,120 Така че, това за цикъл се прави че криптирането. 26 00:01:38,120 --> 00:01:43,250 Забележете, че ние сме итерации от I се равнява на 0 тона по целия път до I равни 27 00:01:43,250 --> 00:01:47,790 п, където п е определено като продължителността на нашето послание, когато съобщението е 28 00:01:47,790 --> 00:01:50,260 низ, който потребителят е въвел. 29 00:01:50,260 --> 00:01:54,330 >> Така че ние сме итерации над всички символи в низа. 30 00:01:54,330 --> 00:01:59,740 И ако един герой е главна буква, а след това ние ще го смени с помощта на този 31 00:01:59,740 --> 00:02:01,860 формула, която ние ще получите в секунда. 32 00:02:01,860 --> 00:02:05,260 И ако тя е с малки букви, а след това ние ще го смени с помощта на това е 33 00:02:05,260 --> 00:02:07,290 много подобна формула. 34 00:02:07,290 --> 00:02:10,850 И ако това не беше нито главна, нито малка буква - например, 35 00:02:10,850 --> 00:02:15,370 може да бъде число или символ - тогава ние няма да направи нищо, за да го. 36 00:02:15,370 --> 00:02:18,220 >> И така, какви са тези формули? 37 00:02:18,220 --> 00:02:22,090 Е, как да се смени характера А? 38 00:02:22,090 --> 00:02:27,250 Ние искаме да се лекува характер А, както е числото 0. 39 00:02:27,250 --> 00:02:30,710 И ние искаме да се лекува характер Б като номер 1, и така нататък. 40 00:02:30,710 --> 00:02:35,170 Това е нулев и първи герои от азбуката и така нататък. 41 00:02:35,170 --> 00:02:42,900 >> Така че тук, аз съобщение минус A е трябвало да ни даде цифров мястото на 42 00:02:42,900 --> 00:02:44,400 писмо в азбуката. 43 00:02:44,400 --> 00:02:48,080 Така че, ако аз съобщение е A, това ще ни даде 0. 44 00:02:48,080 --> 00:02:52,880 Сега искаме да добавим към това и номер, който потребителят желае да 45 00:02:52,880 --> 00:02:54,840 завъртете писмото от. 46 00:02:54,840 --> 00:03:03,280 Така че, ако те влязоха три, след това, ако съобщение Аз бях, това ще ни даде 0 и плюс 47 00:03:03,280 --> 00:03:05,400 ключ ще ни даде 3. 48 00:03:05,400 --> 00:03:09,450 >> Така че сега, ние се обмисля трето място в азбуката. 49 00:03:09,450 --> 00:03:12,810 Ще видим защо ние трябва да моден от бр писма в секунда. 50 00:03:12,810 --> 00:03:18,700 Но в крайна сметка, ние искаме да добавим към края A отново, за да ни прехвърли обратно в 51 00:03:18,700 --> 00:03:22,020 ASCII стойности за тези символи И вместо числовите места в 52 00:03:22,020 --> 00:03:24,260 азбука на тези герои. 53 00:03:24,260 --> 00:03:26,580 >> Така че, защо ние от Министерството на отбраната бр писма? 54 00:03:26,580 --> 00:03:29,960 Не забравяйте, че ние искаме да обгърне от края на азбуката на 55 00:03:29,960 --> 00:03:31,470 в началото на азбуката. 56 00:03:31,470 --> 00:03:38,530 Така че, ако потребителят е влязъл Z, след това изваждане от A, която ще 57 00:03:38,530 --> 00:03:40,520 ни даде 25. 58 00:03:40,520 --> 00:03:44,800 И ако ключът бяха 3, а след това ние ще имаме 28. 59 00:03:44,800 --> 00:03:53,000 Но Z трябва да обгърне с ABC, така че 28 Mod бр букви, които се определят хеш 60 00:03:53,000 --> 00:04:01,890 като 26 може да се очаква, ще даде ни 2, където C е второто писмо на 61 00:04:01,890 --> 00:04:05,880 азбуката, ако си спомняте, че A е нулевия буква от азбуката. 62 00:04:05,880 --> 00:04:09,210 >> Така че това е защо ние трябва да се Министерството на отбраната от бр букви. 63 00:04:09,210 --> 00:04:13,540 Сега, ние трябва да направим същото нещо точно за малки букви, с изключение на 64 00:04:13,540 --> 00:04:17,240 Спомням си, че когато си имаме работа с малки букви, те имат различни 65 00:04:17,240 --> 00:04:18,579 ASCII стойности. 66 00:04:18,579 --> 00:04:24,550 И така, ние трябва да се изважда и се добавят по да го премести надолу от малки букви 67 00:04:24,550 --> 00:04:30,020 ASCII стойности и след това обратно към оригинални малки стойности ASCII. 68 00:04:30,020 --> 00:04:33,140 >> И най-накрая, че ще ни даде нашия криптирана съобщение. 69 00:04:33,140 --> 00:04:37,780 И в края на краищата, ние просто разпечатате това съобщение, и това е всичко. 70 00:04:37,780 --> 00:04:39,875 Моето име е Роб, и е Цезар. 71 00:04:39,875 --> 00:04:49,856