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