1 00:00:00,000 --> 00:00:11,960 2 00:00:11,960 --> 00:00:13,750 >> ROB BOWDEN: Salut, je suis Rob. 3 00:00:13,750 --> 00:00:17,360 Et quand à Rome, nous allons programme comme les Romains. 4 00:00:17,360 --> 00:00:22,280 Donc, la première chose que nous devons faire est de vérifier pour s'assurer que l'utilisateur fait entré 5 00:00:22,280 --> 00:00:26,670 le nombre que nous voulons faire tourner chaque caractère par la ligne de commande. 6 00:00:26,670 --> 00:00:27,740 >> Donc, nous vérifions. 7 00:00:27,740 --> 00:00:30,180 Est argc égal à 2? 8 00:00:30,180 --> 00:00:34,190 Si ce n'est pas, cela signifie que l'utilisateur soit ne pas saisir le numéro à l' 9 00:00:34,190 --> 00:00:37,770 ligne de commande ou ils sont entrés trop choses à la ligne de commande, dans lequel 10 00:00:37,770 --> 00:00:40,560 cas, nous ne savons pas quoi faire avec le reste des choses. 11 00:00:40,560 --> 00:00:45,750 Donc, tant que argc avait deux ans, nous pouvons continuer avec le reste du programme. 12 00:00:45,750 --> 00:00:49,610 >> Maintenant, rappelez-vous que argv 1 est toujours une chaîne. 13 00:00:49,610 --> 00:00:52,490 Mais nous voulons le traiter comme un entier. 14 00:00:52,490 --> 00:00:57,550 Ainsi, nous utilisons la fonction atoi c'est susmentionné ensemble de p spec pour convertir le 15 00:00:57,550 --> 00:01:02,330 chaîne argv 1 à un nombre entier, et que nous stockons dans la clé. 16 00:01:02,330 --> 00:01:06,050 Nous voulons faire en sorte que l'entier qui a été conclue n'est pas négatif. 17 00:01:06,050 --> 00:01:09,490 Et s'il l'était, nous voulons imprimer que pour l'utilisateur qu'ils ne sont pas autorisés 18 00:01:09,490 --> 00:01:11,980 pour ce faire, et revenir. 19 00:01:11,980 --> 00:01:15,100 >> Donc, maintenant nous avons un valide numéro de l'utilisateur. 20 00:01:15,100 --> 00:01:19,780 Mais nous avons besoin pour obtenir une chaîne de la utilisateur que nous voulons chiffrer. 21 00:01:19,780 --> 00:01:25,340 Nous avons donc l'habitude de faire-while et utiliser obtenir chaîne pour obtenir cette chaîne à partir de la 22 00:01:25,340 --> 00:01:29,190 utilisateur, et continuer à obtenir chaîne jusqu'à ce qu'ils effectivement 23 00:01:29,190 --> 00:01:31,270 entrez une chaîne valide. 24 00:01:31,270 --> 00:01:34,400 >> Une fois que nous avons cette chaîne, nous peut passer à chiffrer. 25 00:01:34,400 --> 00:01:38,120 Donc, cette boucle de fait que le chiffrement. 26 00:01:38,120 --> 00:01:43,250 Notez que nous n'avons itération de i t est égal à 0 tout le chemin jusqu'à i égaux 27 00:01:43,250 --> 00:01:47,790 n, où n est défini comme étant la longueur d' notre message, où le message est le 28 00:01:47,790 --> 00:01:50,260 chaîne saisie par l'utilisateur. 29 00:01:50,260 --> 00:01:54,330 >> Nous sommes donc itérer sur tous caractères de la chaîne. 30 00:01:54,330 --> 00:01:59,740 Et si un caractère est en majuscule, alors nous allons passer à l'aide de ce 31 00:01:59,740 --> 00:02:01,860 formule, que nous obtenir à une seconde. 32 00:02:01,860 --> 00:02:05,260 Et si elle a été en minuscules, puis nous changeons il utilise ce n'est 33 00:02:05,260 --> 00:02:07,290 formule très similaire. 34 00:02:07,290 --> 00:02:10,850 Et si ce n'était ni une ni majuscule une lettre minuscule - par exemple, il 35 00:02:10,850 --> 00:02:15,370 pourrait être un chiffre ou un symbole - nous ne vont pas à faire quoi que ce soit. 36 00:02:15,370 --> 00:02:18,220 >> Alors, quelles sont ces formules? 37 00:02:18,220 --> 00:02:22,090 Eh bien, comment pouvons-nous changeons le caractère A? 38 00:02:22,090 --> 00:02:27,250 Nous voulons traiter le caractère A mesure que le nombre 0. 39 00:02:27,250 --> 00:02:30,710 Et nous voulons traiter le caractère B comme le numéro 1, et ainsi de suite. 40 00:02:30,710 --> 00:02:35,170 Ce sont les caractères de zéro et les premiers de l'alphabet, et ainsi de suite. 41 00:02:35,170 --> 00:02:42,900 >> Donc ici, le message i moins A est censé pour nous donner la place numérique de la 42 00:02:42,900 --> 00:02:44,400 lettre de l'alphabet. 43 00:02:44,400 --> 00:02:48,080 Donc, si un message est un i, ce va nous donner 0. 44 00:02:48,080 --> 00:02:52,880 Maintenant, nous voulons ajouter à ce que le numéro que l'utilisateur souhaite 45 00:02:52,880 --> 00:02:54,840 tourner la lettre. 46 00:02:54,840 --> 00:03:03,280 Donc, si ils sont entrés 3, alors si le message J'étais un, cela nous donne 0 et, plus 47 00:03:03,280 --> 00:03:05,400 clé va nous donner 3. 48 00:03:05,400 --> 00:03:09,450 >> Alors maintenant, nous envisageons l' la troisième place dans l'alphabet. 49 00:03:09,450 --> 00:03:12,810 Nous verrons pourquoi nous avons besoin de mod par des lettres de numéros dans un second. 50 00:03:12,810 --> 00:03:18,700 Mais enfin, nous voulons ajouter à la A la fin de nouveau à nous déplacer de nouveau dans le 51 00:03:18,700 --> 00:03:22,020 valeurs ASCII de ces caractères à la place des adresses numériques dans l' 52 00:03:22,020 --> 00:03:24,260 alphabet de ces caractères. 53 00:03:24,260 --> 00:03:26,580 >> Alors, pourquoi ne nous MOD par lettres num? 54 00:03:26,580 --> 00:03:29,960 N'oubliez pas que nous voulons pour envelopper à partir de la fin de l'alphabet à la 55 00:03:29,960 --> 00:03:31,470 au début de l'alphabet. 56 00:03:31,470 --> 00:03:38,530 Donc Z si l'utilisateur avait saisi, puis Une soustraction de ce qui se passe à 57 00:03:38,530 --> 00:03:40,520 nous donner 25. 58 00:03:40,520 --> 00:03:44,800 Et si la clé était de 3, puis nous allons avoir 28. 59 00:03:44,800 --> 00:03:53,000 Mais Z doit envelopper ABC, si 28 lettres num mod, qui est hachage définis 60 00:03:53,000 --> 00:04:01,890 que 26 à attendre, va donner nous 2, où C est la deuxième lettre de 61 00:04:01,890 --> 00:04:05,880 l'alphabet, si vous vous souvenez que A est la lettre de l'alphabet de zéro. 62 00:04:05,880 --> 00:04:09,210 >> Voilà pourquoi nous devons mod par lettres num. 63 00:04:09,210 --> 00:04:13,540 Maintenant, nous devons faire exactement la même chose pour les lettres minuscules, sauf 64 00:04:13,540 --> 00:04:17,240 rappeler que lorsque nous avons affaire à lettres minuscules, ils ont différents 65 00:04:17,240 --> 00:04:18,579 valeurs ASCII. 66 00:04:18,579 --> 00:04:24,550 Et si nous devons soustraire et ajouter un pour le déplacer vers le bas de la minuscule 67 00:04:24,550 --> 00:04:30,020 valeurs ASCII et puis retour à la originaux valeurs ASCII minuscules. 68 00:04:30,020 --> 00:04:33,140 >> Et finalement, ça va nous faire notre message chiffré. 69 00:04:33,140 --> 00:04:37,780 Et à la fin, nous suffit d'imprimer ce message, et c'est tout. 70 00:04:37,780 --> 00:04:39,875 Mon nom est Rob, et était César. 71 00:04:39,875 --> 00:04:49,856