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