1 00:00:00,000 --> 00:00:11,960 2 00:00:11,960 --> 00:00:13,750 >> ROB BOWDEN: Hola, soy Rob. 3 00:00:13,750 --> 00:00:17,360 Y cuando en Roma, vamos a programa lo que vieres. 4 00:00:17,360 --> 00:00:22,280 Por lo tanto, lo primero que tenemos que hacer es comprobar para asegurarse de que el usuario realmente entró 5 00:00:22,280 --> 00:00:26,670 el número que queremos rotar cada personaje en la línea de comandos. 6 00:00:26,670 --> 00:00:27,740 >> Así, comprobamos. 7 00:00:27,740 --> 00:00:30,180 Es argc igual a 2? 8 00:00:30,180 --> 00:00:34,190 Si no es así, eso significa que el usuario sea no introduzca el número en el 9 00:00:34,190 --> 00:00:37,770 línea de comandos o entraron demasiados cosas en la línea de comandos, en la que 10 00:00:37,770 --> 00:00:40,560 caso no sabemos qué hacer con el resto de las cosas. 11 00:00:40,560 --> 00:00:45,750 Así, siempre que argc tenía dos años, podemos continuar con el resto del programa. 12 00:00:45,750 --> 00:00:49,610 >> Ahora, recuerde que argv 1 siempre es una cadena. 13 00:00:49,610 --> 00:00:52,490 Pero queremos tratarlo como un entero. 14 00:00:52,490 --> 00:00:57,550 Por lo tanto, utilizamos la función atoi eso es set p mencionada especificación para convertir el 15 00:00:57,550 --> 00:01:02,330 cadena argv 1 en un entero, y que almacenamos en clave. 16 00:01:02,330 --> 00:01:06,050 Queremos asegurarnos de que el número entero que se ha introducido no es negativo. 17 00:01:06,050 --> 00:01:09,490 Y si lo fuera, queremos publicar que a al usuario de que no se les permite 18 00:01:09,490 --> 00:01:11,980 para hacer eso, y regresar. 19 00:01:11,980 --> 00:01:15,100 >> Por lo tanto, ahora tenemos una válida número del usuario. 20 00:01:15,100 --> 00:01:19,780 Pero tenemos que conseguir una cadena de la usuario que queremos cifrar. 21 00:01:19,780 --> 00:01:25,340 Así que solíamos hacer-while y utilice llegar cadena para obtener esta cadena desde el 22 00:01:25,340 --> 00:01:29,190 usuario, y continuar recibiendo la cadena hasta que realmente 23 00:01:29,190 --> 00:01:31,270 ingrese una cadena válida. 24 00:01:31,270 --> 00:01:34,400 >> Una vez que tengamos esa cadena, que puede pasar a cifrarlo. 25 00:01:34,400 --> 00:01:38,120 Así, este bucle está haciendo que el cifrado. 26 00:01:38,120 --> 00:01:43,250 Nótese que estamos iterando desde i es igual a 0 t hasta el final hasta que i es igual a 27 00:01:43,250 --> 00:01:47,790 n, donde n se define como la longitud de nuestro mensaje, donde el mensaje es el 28 00:01:47,790 --> 00:01:50,260 cadena que el usuario ha introducido. 29 00:01:50,260 --> 00:01:54,330 >> Así que estamos interactuando sobre todo caracteres de la cadena. 30 00:01:54,330 --> 00:01:59,740 Y si un personaje está en mayúsculas, a continuación, vamos a cambiar usando esta 31 00:01:59,740 --> 00:02:01,860 fórmula, que vamos a llegar en un segundo. 32 00:02:01,860 --> 00:02:05,260 Y si estaba en minúsculas, a continuación, vamos a cambiarlo usando este es 33 00:02:05,260 --> 00:02:07,290 fórmula muy similar. 34 00:02:07,290 --> 00:02:10,850 Y si no era ni una mayúscula ni una letra minúscula - por ejemplo, 35 00:02:10,850 --> 00:02:15,370 podría ser un número o un símbolo - entonces no van a hacer nada para ello. 36 00:02:15,370 --> 00:02:18,220 >> Así que, ¿cuáles son estas fórmulas? 37 00:02:18,220 --> 00:02:22,090 Bueno, ¿Cómo podemos cambiar el carácter A? 38 00:02:22,090 --> 00:02:27,250 Queremos tratar el carácter A medida que el número 0. 39 00:02:27,250 --> 00:02:30,710 Y queremos tratar el carácter B como el número 1, y así sucesivamente. 40 00:02:30,710 --> 00:02:35,170 Son los personajes de orden cero y del alfabeto y así sucesivamente. 41 00:02:35,170 --> 00:02:42,900 >> Así que aquí, el mensaje i menos A se supone para darnos el lugar numérico del 42 00:02:42,900 --> 00:02:44,400 letra del alfabeto. 43 00:02:44,400 --> 00:02:48,080 Así que si el mensaje i es A, esta nos va a dar 0. 44 00:02:48,080 --> 00:02:52,880 Ahora, queremos añadir que el número que el usuario desea 45 00:02:52,880 --> 00:02:54,840 girar la carta. 46 00:02:54,840 --> 00:03:03,280 Así que, si entraban 3, entonces si el mensaje Yo era una, esto nos da 0 y más 47 00:03:03,280 --> 00:03:05,400 clave nos dará 3. 48 00:03:05,400 --> 00:03:09,450 >> Así que ahora, estamos considerando la el tercer lugar en el alfabeto. 49 00:03:09,450 --> 00:03:12,810 Ya veremos por qué necesitamos de mod por letras números en un segundo. 50 00:03:12,810 --> 00:03:18,700 Pero, finalmente, queremos añadir a la A terminar de nuevo a nosotros cambiar de nuevo en el 51 00:03:18,700 --> 00:03:22,020 Valores ASCII de estos personajes en lugar de los lugares numéricos en la 52 00:03:22,020 --> 00:03:24,260 alfabeto de estos personajes. 53 00:03:24,260 --> 00:03:26,580 >> Así que, ¿por qué mod por letras números? 54 00:03:26,580 --> 00:03:29,960 Recuerde que queremos para envolver desde el final del alfabeto a la 55 00:03:29,960 --> 00:03:31,470 a partir del alfabeto. 56 00:03:31,470 --> 00:03:38,530 Así Z si el usuario había entrado, a continuación, Un restar de que se va a 57 00:03:38,530 --> 00:03:40,520 nos dan 25. 58 00:03:40,520 --> 00:03:44,800 Y si la clave no son 3, entonces vamos a tener 28. 59 00:03:44,800 --> 00:03:53,000 Pero Z debe envolver a la ABC, por lo que 28 letras num mod, que se define de hash 60 00:03:53,000 --> 00:04:01,890 como 26 que es de esperar, va a dar nosotros 2, donde C es la segunda letra del 61 00:04:01,890 --> 00:04:05,880 el alfabeto, si usted recuerda que A es la carta cero del alfabeto. 62 00:04:05,880 --> 00:04:09,210 >> Así que por eso tenemos que mod por letras num. 63 00:04:09,210 --> 00:04:13,540 Ahora, tenemos que hacer exactamente lo mismo para las letras minúsculas, excepto 64 00:04:13,540 --> 00:04:17,240 recordar que cuando estamos tratando con letras minúsculas, tienen diferente 65 00:04:17,240 --> 00:04:18,579 Valores ASCII. 66 00:04:18,579 --> 00:04:24,550 Y así tenemos que restar y añadir un para desplazarla hacia abajo desde la minúscula 67 00:04:24,550 --> 00:04:30,020 Valores ASCII y luego de vuelta a la valores ASCII minúsculas originales. 68 00:04:30,020 --> 00:04:33,140 >> Y, por último, que nos dará nuestro mensaje cifrado. 69 00:04:33,140 --> 00:04:37,780 Y al final, acabamos imprimimos ese mensaje, y eso es todo. 70 00:04:37,780 --> 00:04:39,875 Mi nombre es Rob, y era César. 71 00:04:39,875 --> 00:04:49,856