1 00:00:00,000 --> 00:00:11,960 2 00:00:11,960 --> 00:00:13,750 >> ROB BOWDEN: Hoi, ik ben Rob. 3 00:00:13,750 --> 00:00:17,360 En wanneer je in Rome, laten we het programma zoals de Romeinen doen. 4 00:00:17,360 --> 00:00:22,280 Dus, het eerste wat we moeten doen is controleren om te controleren of de gebruiker daadwerkelijk ingevoerd 5 00:00:22,280 --> 00:00:26,670 het nummer dat we willen elke draaien karakter door op de commandoregel. 6 00:00:26,670 --> 00:00:27,740 >> Dus, we controleren. 7 00:00:27,740 --> 00:00:30,180 Is argc gelijk aan 2? 8 00:00:30,180 --> 00:00:34,190 Als het niet, dat betekent dat de gebruiker ofwel niet het nummer op de 9 00:00:34,190 --> 00:00:37,770 opdrachtregel of gingen ze te veel dingen op de opdrachtregel, waarbij 10 00:00:37,770 --> 00:00:40,560 geval dat we niet weten wat te doen de rest van de dingen. 11 00:00:40,560 --> 00:00:45,750 Dus, zolang argc was twee, we kunnen verder met de rest van het programma. 12 00:00:45,750 --> 00:00:49,610 >> Nu, bedenk dan dat argv 1 is altijd een string. 13 00:00:49,610 --> 00:00:52,490 Maar we willen om het te behandelen als een geheel getal. 14 00:00:52,490 --> 00:00:57,550 Dus gebruiken we de atoi functie die is genoemde p set spec om te zetten de 15 00:00:57,550 --> 00:01:02,330 koord argv 1 een geheel getal, en slaan we dat in de belangrijkste. 16 00:01:02,330 --> 00:01:06,050 We willen ervoor zorgen dat de integer die werd ingevoerd is niet negatief. 17 00:01:06,050 --> 00:01:09,490 En als het was, we willen drukken dat naar de gebruiker dat ze niet toegelaten 18 00:01:09,490 --> 00:01:11,980 om dat te doen, en terug. 19 00:01:11,980 --> 00:01:15,100 >> Zo, nu hebben we een geldige nummer van de gebruiker. 20 00:01:15,100 --> 00:01:19,780 Maar we moeten een string te krijgen van de gebruiker die we willen versleutelen. 21 00:01:19,780 --> 00:01:25,340 Dus we vroeger do-while lus en gebruiken krijgen string naar deze string te krijgen van de 22 00:01:25,340 --> 00:01:29,190 gebruiker, en verder krijgen snaar totdat ze daadwerkelijk 23 00:01:29,190 --> 00:01:31,270 Voer een geldige string. 24 00:01:31,270 --> 00:01:34,400 >> Zodra we die string, we kan gaan om het te versleutelen. 25 00:01:34,400 --> 00:01:38,120 Dus, is deze for-lus te doen dat encryptie. 26 00:01:38,120 --> 00:01:43,250 Merk op dat we itereren van i gelijk is aan 0 t helemaal tot i gelijken 27 00:01:43,250 --> 00:01:47,790 n, waarbij n wordt gedefinieerd als de lengte van onze boodschap, waar het bericht is de 28 00:01:47,790 --> 00:01:50,260 tekenreeks die de gebruiker heeft ingevoerd. 29 00:01:50,260 --> 00:01:54,330 >> Dus we itereren over alle tekens in de tekenreeks. 30 00:01:54,330 --> 00:01:59,740 En als er een karakter wordt in een hoofdletter, dan we gaan het verschuiven met behulp van deze 31 00:01:59,740 --> 00:02:01,860 formule, die we zullen krijgen om in een tweede. 32 00:02:01,860 --> 00:02:05,260 En als het werd in kleine letters, dan we zullen het verschuiven met behulp van dit 33 00:02:05,260 --> 00:02:07,290 vergelijkbaar formule. 34 00:02:07,290 --> 00:02:10,850 En als het was noch een hoofdletter noch een kleine letter - bijvoorbeeld het 35 00:02:10,850 --> 00:02:15,370 een getal of een symbool zou kunnen zijn - dan kunnen we zijn niet van plan om iets te doen aan het. 36 00:02:15,370 --> 00:02:18,220 >> Dus, wat zijn deze formules? 37 00:02:18,220 --> 00:02:22,090 Nou ja, hoe kunnen we verschuiven het teken A? 38 00:02:22,090 --> 00:02:27,250 We willen het karakter te behandelen A als het getal 0. 39 00:02:27,250 --> 00:02:30,710 En we willen het karakter te behandelen B als het nummer 1, enzovoorts. 40 00:02:30,710 --> 00:02:35,170 Het is de nulde en eerste tekens van het alfabet enzovoorts. 41 00:02:35,170 --> 00:02:42,900 >> Dus hier wordt bericht i minus een veronderstelde om ons de numerieke plaats van het geven 42 00:02:42,900 --> 00:02:44,400 letter in het alfabet. 43 00:02:44,400 --> 00:02:48,080 Dus als boodschap I is een, deze gaat om ons 0. 44 00:02:48,080 --> 00:02:52,880 Nu willen we toevoegen aan dat de nummer dat de gebruiker wil 45 00:02:52,880 --> 00:02:54,840 draai de brief door. 46 00:02:54,840 --> 00:03:03,280 Dus, als zij traden 3, dan als boodschap Ik was een, zal dit ons 0 geven en plus 47 00:03:03,280 --> 00:03:05,400 sleutel zal ons 3 geven. 48 00:03:05,400 --> 00:03:09,450 >> Dus nu zijn we gezien de derde plaats in het alfabet. 49 00:03:09,450 --> 00:03:12,810 We zullen zien waarom we moeten mod door num letters in een tweede. 50 00:03:12,810 --> 00:03:18,700 Maar uiteindelijk willen we op toe te voegen aan de end A weer om ons terug te verschuiven naar de 51 00:03:18,700 --> 00:03:22,020 ASCII-waarden voor deze karakters in plaats van de numerieke plaatsen in de 52 00:03:22,020 --> 00:03:24,260 alfabet van deze tekens. 53 00:03:24,260 --> 00:03:26,580 >> Dus, waarom hebben we mod door num brieven? 54 00:03:26,580 --> 00:03:29,960 Vergeet niet dat we willen wikkelen vanaf het einde van het alfabet de 55 00:03:29,960 --> 00:03:31,470 het begin van het alfabet. 56 00:03:31,470 --> 00:03:38,530 Dus als de gebruiker was binnengekomen Z, dan aftrekken van een van die gaat 57 00:03:38,530 --> 00:03:40,520 geven ons 25. 58 00:03:40,520 --> 00:03:44,800 Als de sleutel waren 3, dan we gaan moeten 28. 59 00:03:44,800 --> 00:03:53,000 Maar Z moet wikkelen ABC, dus 28 mod num brieven, die hash wordt gedefinieerd 60 00:03:53,000 --> 00:04:01,890 26 als te verwachten, gaat geven ons 2, waarbij C de tweede brief van 61 00:04:01,890 --> 00:04:05,880 het alfabet, als je je herinnert dat A de nulde letter van het alfabet. 62 00:04:05,880 --> 00:04:09,210 >> Dus dat is de reden waarom we nodig hebben om mod door num brieven. 63 00:04:09,210 --> 00:04:13,540 Nu moeten we precies dezelfde dingen doen voor kleine letters, behalve 64 00:04:13,540 --> 00:04:17,240 vergeet niet dat wanneer we te maken hebben met kleine letters, ze verschillende 65 00:04:17,240 --> 00:04:18,579 ASCII-waarden. 66 00:04:18,579 --> 00:04:24,550 En dus moeten we aftrekken en voeg op een om het te verschuiven van de kleine letters 67 00:04:24,550 --> 00:04:30,020 ASCII-waarden en dan terug naar de originele kleine ASCII-waarden. 68 00:04:30,020 --> 00:04:33,140 >> En ten slotte, dat zal ons geven onze gecodeerd bericht. 69 00:04:33,140 --> 00:04:37,780 En op het einde, we gewoon uitprinten die boodschap, en dat is het. 70 00:04:37,780 --> 00:04:39,875 Mijn naam is Rob, en was Caesar. 71 00:04:39,875 --> 00:04:49,856