1 00:00:00,000 --> 00:00:11,960 2 00:00:11,960 --> 00:00:13,750 >> ROB BOWDEN: Ola, eu son Rob. 3 00:00:13,750 --> 00:00:17,360 E cando, en Roma, imos programa como os romanos. 4 00:00:17,360 --> 00:00:22,280 Entón, o primeiro que temos que facer é comprobar para asegurarse de que o usuario realmente entrou 5 00:00:22,280 --> 00:00:26,670 o número que queremos xirar cada personaxe, na liña de comandos. 6 00:00:26,670 --> 00:00:27,740 >> Entón, imos comprobar. 7 00:00:27,740 --> 00:00:30,180 É argc igual a 2? 8 00:00:30,180 --> 00:00:34,190 Se non é, iso significa que o usuario quere non introduza o número no 9 00:00:34,190 --> 00:00:37,770 liña de comandos ou que entraron moitos as cousas na liña de comandos, no que 10 00:00:37,770 --> 00:00:40,560 se non sabemos o que facer co resto das cousas. 11 00:00:40,560 --> 00:00:45,750 Entón, sempre que argc tiña dous anos, o que pudermos continuar co resto do programa. 12 00:00:45,750 --> 00:00:49,610 >> Agora, lembre que argv 1 é sempre unha cadea. 13 00:00:49,610 --> 00:00:52,490 Pero queremos tratalo como un número enteiro. 14 00:00:52,490 --> 00:00:57,550 Entón, usamos a función atoi que é conxunto p citada especificación para converter o 15 00:00:57,550 --> 00:01:02,330 corda argv 1 ata un número enteiro, e nós gardados que en clave. 16 00:01:02,330 --> 00:01:06,050 Queremos estar seguro de que o número enteiro que se ingresaran non é negativo. 17 00:01:06,050 --> 00:01:09,490 E se fose, queremos que a imprimir o usuario que non ten permiso 18 00:01:09,490 --> 00:01:11,980 para facelo, e volver. 19 00:01:11,980 --> 00:01:15,100 >> Entón, agora temos un válido número do usuario. 20 00:01:15,100 --> 00:01:19,780 Pero necesitamos ter unha secuencia do usuario que quere cifrar. 21 00:01:19,780 --> 00:01:25,340 Entón, nós costumávamos facerse while e utilizar get cadea para obter esta cadea a partir do 22 00:01:25,340 --> 00:01:29,190 usuario, e continuar a recibir corda ata que realmente 23 00:01:29,190 --> 00:01:31,270 introduza unha secuencia válida. 24 00:01:31,270 --> 00:01:34,400 >> Así que temos esa cadea, nós pode ir criptografía-lo. 25 00:01:34,400 --> 00:01:38,120 Entón, ese loop está facendo que o cifrado. 26 00:01:38,120 --> 00:01:43,250 Teña en conta que estamos a repetir desde i é igual a 0 t todo o camiño ata a I coincide 27 00:01:43,250 --> 00:01:47,790 n, no que n é definido como a lonxitude de a mensaxe, que a mensaxe é o 28 00:01:47,790 --> 00:01:50,260 cadea que o usuario inseriu. 29 00:01:50,260 --> 00:01:54,330 >> Entón, nós estamos interactuar sobre todo caracteres na cadea. 30 00:01:54,330 --> 00:01:59,740 E se un personaxe é maiúscula, así imos transferir-lo a usar esta 31 00:01:59,740 --> 00:02:01,860 fórmula, o que nós imos chegar a un segundo. 32 00:02:01,860 --> 00:02:05,260 E se se minúsculas, así que imos transferir-lo a usar esta é 33 00:02:05,260 --> 00:02:07,290 fórmula moi similar. 34 00:02:07,290 --> 00:02:10,850 E se isto non era nin un nin maiúscula unha letra minúscula - por exemplo, 35 00:02:10,850 --> 00:02:15,370 pode ser un número ou un símbolo -, entón nós Non imos facer nada para iso. 36 00:02:15,370 --> 00:02:18,220 >> Entón, cales son esas fórmulas? 37 00:02:18,220 --> 00:02:22,090 Ben, como é que imos cambiar o carácter A? 38 00:02:22,090 --> 00:02:27,250 Queremos tratar o personaxe A medida que o número 0. 39 00:02:27,250 --> 00:02:30,710 E queremos tratar o personaxe B, como o número 1, e así por diante. 40 00:02:30,710 --> 00:02:35,170 Son os personaxes cero e primeiros do alfabeto e así por diante. 41 00:02:35,170 --> 00:02:42,900 >> Entón, aquí, mensaxe i menos un se quere para dar o sitio numérico do 42 00:02:42,900 --> 00:02:44,400 letra do alfabeto. 43 00:02:44,400 --> 00:02:48,080 Entón, se a mensaxe de I é un, este vai dar 0. 44 00:02:48,080 --> 00:02:52,880 Agora, queremos engadir a iso o número que o usuario desexa 45 00:02:52,880 --> 00:02:54,840 xirar a carta por. 46 00:02:54,840 --> 00:03:03,280 Entón, se eles entraron 3, entón se a mensaxe Eu era un, iso daranos 0 e máis 47 00:03:03,280 --> 00:03:05,400 clave daranos 3. 48 00:03:05,400 --> 00:03:09,450 >> Entón, agora, estamos considerando o o terceiro lugar no alfabeto. 49 00:03:09,450 --> 00:03:12,810 A ver por iso que necesitamos mod por letras Nume nun segundo. 50 00:03:12,810 --> 00:03:18,700 Pero, finalmente, queremos engadir sobre a A rematar de novo para mover-nos de volta para a 51 00:03:18,700 --> 00:03:22,020 Os valores ASCII para estes personaxes en vez dos lugares numéricos no 52 00:03:22,020 --> 00:03:24,260 alfabeto deses personaxes. 53 00:03:24,260 --> 00:03:26,580 >> Entón, por que nós mod por letras Nume? 54 00:03:26,580 --> 00:03:29,960 Lembre que queremos involucrar en torno a a partir da extremidade do alfabeto ao 55 00:03:29,960 --> 00:03:31,470 A principios do alfabeto. 56 00:03:31,470 --> 00:03:38,530 Entón Z se o usuario tivese entrado, entón A resta de que vai 57 00:03:38,530 --> 00:03:40,520 ofrécenos 25. 58 00:03:40,520 --> 00:03:44,800 E se a chave foron 3, logo nós imos ter 28. 59 00:03:44,800 --> 00:03:53,000 Pero Z debe implicar en torno a ABC, entón 28 letras Nume mod, que é de hash definidas 60 00:03:53,000 --> 00:04:01,890 26 como era de esperar, dará nos 2, onde C é a segunda carta de 61 00:04:01,890 --> 00:04:05,880 alfabeto, se lembrar que A é letra zeroth do alfabeto. 62 00:04:05,880 --> 00:04:09,210 >> Entón é por iso que necesitamos mod por cartas núm. 63 00:04:09,210 --> 00:04:13,540 Agora, o que necesitamos facer exactamente o mesmo por minúsculas, agás 64 00:04:13,540 --> 00:04:17,240 lembre que cando estamos lidando con minúsculas, teñen diferentes 65 00:04:17,240 --> 00:04:18,579 Os valores ASCII. 66 00:04:18,579 --> 00:04:24,550 E por iso debemos restar e engadir nunha para transferir-lo para abaixo do minúsculo 67 00:04:24,550 --> 00:04:30,020 Os valores ASCII e despois volver para o valores ASCII minúsculas orixinais. 68 00:04:30,020 --> 00:04:33,140 >> E, finalmente, que vai dar nosa mensaxe cifrada. 69 00:04:33,140 --> 00:04:37,780 E, ao final, só imprimir esa mensaxe, e é iso. 70 00:04:37,780 --> 00:04:39,875 O meu nome é Rob, e foi César. 71 00:04:39,875 --> 00:04:49,856