1 00:00:00,000 --> 00:00:11,960 2 00:00:11,960 --> 00:00:13,750 >> Rob BOWDEN: Hi, Ako Rob. 3 00:00:13,750 --> 00:00:17,360 At kapag sa Rome, sabihin programa tulad ng ginagawa ng mga Romano. 4 00:00:17,360 --> 00:00:22,280 Kaya, ang unang bagay na kailangan naming gawin ay check upang tiyakin na aktwal na ipinasok ng gumagamit ang 5 00:00:22,280 --> 00:00:26,670 ang bilang na gusto naming i-rotate ang bawat ng character sa pamamagitan ng sa command line. 6 00:00:26,670 --> 00:00:27,740 >> Kaya, suriin namin. 7 00:00:27,740 --> 00:00:30,180 Argc katumbas ng 2 ba? 8 00:00:30,180 --> 00:00:34,190 Kung ito ay hindi, ibig sabihin gumagamit ang alinman sa ay hindi ipasok ang numero sa 9 00:00:34,190 --> 00:00:37,770 command line o ipinasok nila masyadong maraming bagay sa command line, kung saan 10 00:00:37,770 --> 00:00:40,560 kaso hindi namin alam kung ano ang gagawin may natitirang bahagi ng mga bagay. 11 00:00:40,560 --> 00:00:45,750 Kaya, hangga't argc ay dalawa, kaya namin magpatuloy sa natitirang bahagi ng programa. 12 00:00:45,750 --> 00:00:49,610 >> Ngayon, tandaan na argv 1 ay palaging isang string. 13 00:00:49,610 --> 00:00:52,490 Pero gusto naming ituring ito bilang isang integer. 14 00:00:52,490 --> 00:00:57,550 Kaya, ginagamit namin ang atoi pag-andar na Binanggit p hanay spec i-convert ang 15 00:00:57,550 --> 00:01:02,330 string argv 1 sa isang integer, at iniimbak namin na sa key. 16 00:01:02,330 --> 00:01:06,050 Gusto naming siguraduhin na ang integer na pinasok ay hindi negatibo. 17 00:01:06,050 --> 00:01:09,490 At kung ito ay, gusto naming i-print na sa ang gumagamit na hindi nila pinapayagan ka 18 00:01:09,490 --> 00:01:11,980 upang gawin iyon, at ibalik. 19 00:01:11,980 --> 00:01:15,100 >> Kaya, ngayon may isang wastong namin numero mula sa user. 20 00:01:15,100 --> 00:01:19,780 Ngunit kailangan namin upang makakuha ng isang string mula sa ng gumagamit na nais naming i-encrypt. 21 00:01:19,780 --> 00:01:25,340 Kaya ginamit namin upang gawin-habang loop at gamitin makakuha ng string upang makuha ang string na ito mula sa 22 00:01:25,340 --> 00:01:29,190 gumagamit, at magpatuloy sa pagkuha ng string hanggang sa sila talaga 23 00:01:29,190 --> 00:01:31,270 magpasok ng wastong string. 24 00:01:31,270 --> 00:01:34,400 >> Sa sandaling mayroon kaming na string, namin maaaring pumunta sa upang i-encrypt ito. 25 00:01:34,400 --> 00:01:38,120 Kaya, ito para sa loop ay ang magawa na-encrypt. 26 00:01:38,120 --> 00:01:43,250 Pansinin na aming iterating mula sa i ay katumbas ng 0 t ang lahat ng mga paraan ng hanggang sa i Kapantay 27 00:01:43,250 --> 00:01:47,790 n, kung saan n ay tinukoy bilang ang haba ng ang aming mensahe, kung saan ang mensahe ay ang 28 00:01:47,790 --> 00:01:50,260 string na ipinasok ng user. 29 00:01:50,260 --> 00:01:54,330 >> Kaya kami iterating sa ibabaw ng lahat character sa string. 30 00:01:54,330 --> 00:01:59,740 At kung ang isang karakter ay uppercase, pagkatapos ay kami ay pagpunta sa shift ito gamit na ito 31 00:01:59,740 --> 00:02:01,860 formula, na kung saan kami ay makapunta sa sa isang segundo. 32 00:02:01,860 --> 00:02:05,260 At kung ito ay lowercase, at pagkatapos ay ipapakita namin shift ito gamit ito ay 33 00:02:05,260 --> 00:02:07,290 halos katulad na formula. 34 00:02:07,290 --> 00:02:10,850 At kung ito ay hindi rin isang uppercase o isang maliit na mga titik - halimbawa, ito 35 00:02:10,850 --> 00:02:15,370 ay maaaring isang numero o simbolo - pagkatapos namin ay hindi pagpunta sa gumawa ng kahit ano dito. 36 00:02:15,370 --> 00:02:18,220 >> Kaya, ano ang mga formula? 37 00:02:18,220 --> 00:02:22,090 Well, paano ko shift namin ang mga character na A? 38 00:02:22,090 --> 00:02:27,250 Gusto naming ituring ang karakter Ang isang bilang ng bilang 0. 39 00:02:27,250 --> 00:02:30,710 At gusto naming ituring ang karakter B bilang mga numero 1, at iba pa. 40 00:02:30,710 --> 00:02:35,170 Ito ay ang 0 at unang character ng alpabeto at iba pa. 41 00:02:35,170 --> 00:02:42,900 >> Kaya dito, mensahe i minus A ay dapat upang bigyan kami ng mga lugar na pang numero ng 42 00:02:42,900 --> 00:02:44,400 sulat sa alpabeto. 43 00:02:44,400 --> 00:02:48,080 Kaya kung mensaheng i ay A, ito ay pagpunta sa bigyan kami ng 0. 44 00:02:48,080 --> 00:02:52,880 Ngayon, gusto naming idagdag sa na ang numero na gustong gumagamit na i- 45 00:02:52,880 --> 00:02:54,840 ikutin ang sulat sa pamamagitan ng. 46 00:02:54,840 --> 00:03:03,280 Kaya, kung ipinasok nila 3, pagkatapos kung mensahe i noon ay A, ito ay magbibigay sa amin ng 0 at plus 47 00:03:03,280 --> 00:03:05,400 key ay magbibigay sa amin 3. 48 00:03:05,400 --> 00:03:09,450 >> Kaya ngayon, kami ay isinasaalang-alang ang ikatlong lugar sa alpabeto. 49 00:03:09,450 --> 00:03:12,810 Susubukan naming makita kung bakit kailangan naming i-mod sa pamamagitan ng num titik sa isang segundo. 50 00:03:12,810 --> 00:03:18,700 Ngunit sa wakas, gusto naming idagdag sa sa magtapos A muli upang ilipat sa amin pabalik sa 51 00:03:18,700 --> 00:03:22,020 Mga halaga ng ASCII para sa mga character na ito sa halip ng mga de-numerong mga lugar sa 52 00:03:22,020 --> 00:03:24,260 alpabeto ng mga character na ito. 53 00:03:24,260 --> 00:03:26,580 >> Kaya, bakit namin mod sa pamamagitan ng num titik? 54 00:03:26,580 --> 00:03:29,960 Alalahanin na gusto naming balutin sa paligid mula sa dulo ng alpabeto sa 55 00:03:29,960 --> 00:03:31,470 simula ng alpabeto. 56 00:03:31,470 --> 00:03:38,530 Kaya sa kung ipinasok ng gumagamit ang Z, pagkatapos ay pagbabawas A mula sa na pagpunta sa 57 00:03:38,530 --> 00:03:40,520 bigyan kami ng 25. 58 00:03:40,520 --> 00:03:44,800 At kung ang susi ay 3, pagkatapos kami ay pagpunta sa may 28. 59 00:03:44,800 --> 00:03:53,000 Ngunit Z dapat balutin sa paligid sa ABC, kaya 28 mod num titik, na kung saan ay natukoy ng hash 60 00:03:53,000 --> 00:04:01,890 bilang 26 na inaasahan, ay pagpunta upang bigyan sa amin 2, kung saan C ay ang pangalawang titik ng 61 00:04:01,890 --> 00:04:05,880 ang alpabeto, kung tandaan mo na A ay ang 0 katinig. 62 00:04:05,880 --> 00:04:09,210 >> Kaya na ang dahilan kung bakit kailangan namin upang mod sa pamamagitan ng num titik. 63 00:04:09,210 --> 00:04:13,540 Ngayon, kailangan naming gawin ang parehong eksaktong bagay para sa maliliit na mga titik, maliban 64 00:04:13,540 --> 00:04:17,240 tandaan na kapag kami ay pagharap sa maliliit na mga titik, mayroong iba't ibang mga nila 65 00:04:17,240 --> 00:04:18,579 Mga halaga ng ASCII. 66 00:04:18,579 --> 00:04:24,550 At kaya kailangan naming ibawas at idagdag sa isang upang ilipat ito pababa mula sa maliliit na titik 67 00:04:24,550 --> 00:04:30,020 Mga halaga ng ASCII at pagkatapos ay bumalik sa orihinal na halaga lowercase na ASCII. 68 00:04:30,020 --> 00:04:33,140 >> At sa wakas, na makikita magbibigay sa amin ang aming naka-encrypt mensahe. 69 00:04:33,140 --> 00:04:37,780 At sa dulo, i-print pa lang namin out mensaheng iyon, at iyon ito. 70 00:04:37,780 --> 00:04:39,875 Ang pangalan ko ay Rob, at noon ay Caesar. 71 00:04:39,875 --> 00:04:49,856