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 Является агдс равно 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 Так, пока агдс было два года, мы можем продолжить остальной части программы. 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 Строка агду 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 т весь путь до Я равных 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 И мы хотим, чтобы рассматривать характер B как число 1, и так далее. 40 00:02:30,710 --> 00:02:35,170 Это нулевого и первого символов алфавита и так далее. 41 00:02:35,170 --> 00:02:42,900 >> Так вот, сообщение я минус предполагается дать нам численное место 42 00:02:42,900 --> 00:02:44,400 буква в алфавите. 43 00:02:44,400 --> 00:02:48,080 Так что, если сообщение я это, это собирается дать нам 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 Так что, если они вошли 3, а затем, если сообщение я был, это даст нам 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 Но в конце концов, мы хотим добавить к конец еще раз, чтобы переместить нас обратно в 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 >> Так почему же мы мод на NUM букв? 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, то вычитания из который собирается 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 следует обернуть вокруг в АВС, так 28 мод пит письма, которое хэш определенные 60 00:03:53,000 --> 00:04:01,890 как 26 и следовало ожидать, собирается дать нам 2, где С-вторая буква 61 00:04:01,890 --> 00:04:05,880 алфавит, если вспомнить, что это нулевая буква алфавита. 62 00:04:05,880 --> 00:04:09,210 >> Так вот почему мы должны мод на NUM буквами. 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