1 00:00:00,000 --> 00:00:12,510 2 00:00:12,510 --> 00:00:13,870 >> ROB: Muy bien. 3 00:00:13,870 --> 00:00:16,770 Bienvenidos a la primera sección. 4 00:00:16,770 --> 00:00:17,480 Soy Rob. 5 00:00:17,480 --> 00:00:18,806 >> JOSÉ: Soy José. 6 00:00:18,806 --> 00:00:21,540 >> ROB: Entonces vamos a bucear a la derecha adentro 7 00:00:21,540 --> 00:00:23,420 A primera hora de hablar de es el aparato. 8 00:00:23,420 --> 00:00:27,150 Así que espero que la mayoría de ustedes tienen descargado ya. 9 00:00:27,150 --> 00:00:37,180 Pero puedes ver las instrucciones en cs50.net/appliance. 10 00:00:37,180 --> 00:00:38,430 Oh dios, ahora soy consciente de sí mismo. 11 00:00:38,430 --> 00:00:44,590 12 00:00:44,590 --> 00:00:45,430 Todavía oigo. 13 00:00:45,430 --> 00:00:47,232 >> JOSÉ: Wow, suena como es desorientado. 14 00:00:47,232 --> 00:00:52,460 >> ROB: Así que algunas personas han estado teniendo problemas con él, así que no espere hasta que 15 00:00:52,460 --> 00:00:54,940 el último minuto del problema establece en tratar de resolver el Appliance y 16 00:00:54,940 --> 00:00:56,320 descubrir que no está funcionando. 17 00:00:56,320 --> 00:00:59,010 >> JOSÉ: ¿Y si algo no está funcionando y usted necesita ayuda, usted puede ir a 18 00:00:59,010 --> 00:01:03,390 cs50.net/discussion donde tener un foro en el que 19 00:01:03,390 --> 00:01:04,110 puede enviar sus preguntas. 20 00:01:04,110 --> 00:01:06,655 Y vamos a llegar a ellos con el tiempo. 21 00:01:06,655 --> 00:01:07,490 >> ROB: Muy bien. 22 00:01:07,490 --> 00:01:12,180 Así que esto es lo que el aparato se parece. 23 00:01:12,180 --> 00:01:15,480 Una vez más, es sólo una forma completamente separada sistema operativo que se ejecuta dentro de 24 00:01:15,480 --> 00:01:19,440 cualquier sistema operativo que se están ejecutando en su computadora portátil. 25 00:01:19,440 --> 00:01:24,450 Y las cosas principales que usted lo va a hacer estar usando son gedit. 26 00:01:24,450 --> 00:01:28,050 Así que espero que esto ya tiene convertido en un sitio familiar. 27 00:01:28,050 --> 00:01:29,470 El terminal. 28 00:01:29,470 --> 00:01:31,890 >> Y también puede ejecutar Chrome dentro del aparato. 29 00:01:31,890 --> 00:01:33,860 Ha habido un par de personas que han informado de Internet 30 00:01:33,860 --> 00:01:35,390 No trabajar en el aparato. 31 00:01:35,390 --> 00:01:38,090 Y algunos de ellos sólo han asumido que no se supone que es 32 00:01:38,090 --> 00:01:39,190 Internet en el Appliance. 33 00:01:39,190 --> 00:01:40,750 Pero eso sí, se supone ser Internet. 34 00:01:40,750 --> 00:01:44,000 35 00:01:44,000 --> 00:01:46,410 >> Voy a decir ahora mismo, pero no es así realmente significa nada. 36 00:01:46,410 --> 00:01:50,680 Si el internet no funciona, esto es lo que tienden a necesitar 37 00:01:50,680 --> 00:01:52,180 correr a arreglarlo. 38 00:01:52,180 --> 00:01:55,602 Si usted está teniendo problemas de Internet, no se recordarlo, sólo publicarlo en 39 00:01:55,602 --> 00:01:57,560 Discutimos, y lo diremos, ejecute eso. 40 00:01:57,560 --> 00:02:00,420 Pero Internet debería estar trabajando. 41 00:02:00,420 --> 00:02:06,650 >> Así que la única otra cosa - sí, nada lo demás es realmente relevante. 42 00:02:06,650 --> 00:02:08,979 Pero yo sólo quería señalar que - 43 00:02:08,979 --> 00:02:13,290 ver en esta esquina inferior derecha. 44 00:02:13,290 --> 00:02:16,530 Así que cada uno de sus aparatos deben tener una dirección IP. 45 00:02:16,530 --> 00:02:22,350 Y más tarde en el semestre, esta IP dirección será más relevante cuando 46 00:02:22,350 --> 00:02:27,230 que está trabajando en la web p-set, porque usted será capaz de acceder a la 47 00:02:27,230 --> 00:02:32,310 sitio web que está trabajando desde su Chrome local utilizando esta dirección IP. 48 00:02:32,310 --> 00:02:35,400 >> Pero lo que me gusta utilizar la dirección IP - y usted no tiene que hacer esto, 49 00:02:35,400 --> 00:02:37,460 sólo quiero señalarlo - 50 00:02:37,460 --> 00:02:39,540 está aquí. 51 00:02:39,540 --> 00:02:42,910 Así que esta es una ventana de terminal en mi Mac, esto no es en el 52 00:02:42,910 --> 00:02:44,580 Appliance en absoluto. 53 00:02:44,580 --> 00:02:47,190 Y usted puede buscar lo que este comando hace. 54 00:02:47,190 --> 00:02:51,855 Pero voy directamente a SSH a mi Appliance. 55 00:02:51,855 --> 00:02:53,410 No sé lo que la IP es. 56 00:02:53,410 --> 00:02:54,300 >> JOSÉ: 168 - 57 00:02:54,300 --> 00:02:56,080 >> 168.224.1.0. 58 00:02:56,080 --> 00:02:59,950 >> ROB: Así que una vez que he terminado con esto, ingrese 59 00:02:59,950 --> 00:03:05,450 Ahora, básicamente, esto es idéntico a un ventana de terminal dentro de mi Appliance. 60 00:03:05,450 --> 00:03:10,280 Así que casi nunca funcionó realmente desde dentro del propio aparato. 61 00:03:10,280 --> 00:03:12,550 Acabo siempre he funcionando en el fondo minimizado 62 00:03:12,550 --> 00:03:15,890 y SSHed en ella. 63 00:03:15,890 --> 00:03:24,270 >> El problema con esto es que no se va para ser capaz de utilizar fácilmente gedit 64 00:03:24,270 --> 00:03:25,600 directamente desde esta. 65 00:03:25,600 --> 00:03:31,500 Pero si quieres ser un verdadero fresco hacker, entonces usted debe acostumbrarse a una 66 00:03:31,500 --> 00:03:34,220 comando de la línea de edición de texto de todos modos. 67 00:03:34,220 --> 00:03:39,620 Así Vim y Emacs y Nano, todos estos diferentes alternativas. 68 00:03:39,620 --> 00:03:41,560 Nano tiende a ser el más fácil. 69 00:03:41,560 --> 00:03:45,006 Y creo que no tiene resaltado de sintaxis. 70 00:03:45,006 --> 00:03:47,620 Oh, no, es totalmente hace. 71 00:03:47,620 --> 00:03:49,870 Así que usted puede utilizar Nano, porque que uno es bastante fácil. 72 00:03:49,870 --> 00:03:52,000 >> ¿Ves todos estos comandos en la parte inferior. 73 00:03:52,000 --> 00:03:54,750 Este pequeño símbolo zanahoria. 74 00:03:54,750 --> 00:03:57,620 Si usted no ha visto antes, se le Probablemente verlo mucho ahora. 75 00:03:57,620 --> 00:04:02,350 Por lo general, significa la zanahoria control, como la parte inferior izquierda de tu teclado 76 00:04:02,350 --> 00:04:04,130 carácter de control. 77 00:04:04,130 --> 00:04:07,260 Así que aquí me está diciendo aquí - 78 00:04:07,260 --> 00:04:08,710 oh, no está cortado si agrandar 79 00:04:08,710 --> 00:04:11,040 Así de control, X es cómo Voy a salir. 80 00:04:11,040 --> 00:04:14,710 Y dice que puede golpear Y para Sí, para el ahorro, N para No. 81 00:04:14,710 --> 00:04:17,190 Así que eso es Nano. 82 00:04:17,190 --> 00:04:22,860 >> Vim y Emacs tienden a ser ligeramente más complicado y abrumador. 83 00:04:22,860 --> 00:04:28,840 Pero usted puede acostumbrarse a él, y luego te va a encantar. 84 00:04:28,840 --> 00:04:30,590 Así que eso es todo. 85 00:04:30,590 --> 00:04:31,720 >> JOSÉ: No hay necesidad de hacer eso. 86 00:04:31,720 --> 00:04:31,840 >> ROB: Si. 87 00:04:31,840 --> 00:04:37,510 Usted es libre de usar gedit para la resto del semestre. 88 00:04:37,510 --> 00:04:40,630 Así que cualquier pregunta relacionada a aparatos domésticos? 89 00:04:40,630 --> 00:04:42,820 O usted tiene alguna idea sobre qué más necesita ser hablado acerca 90 00:04:42,820 --> 00:04:43,610 el aparato? 91 00:04:43,610 --> 00:04:43,996 Sí. 92 00:04:43,996 --> 00:04:47,720 >> ALTAVOZ 1: Cuando SSHed en su cosa, fue el carmesí contraseña? 93 00:04:47,720 --> 00:04:48,390 >> ROB: Si. 94 00:04:48,390 --> 00:04:50,170 La contraseña para casi todo en el aparato que está pasando 95 00:04:50,170 --> 00:04:52,473 ser carmesí. 96 00:04:52,473 --> 00:04:56,517 >> ALTAVOZ 2: Instalar como un verdadero IDE en el aparato, ¿funcionará? 97 00:04:56,517 --> 00:04:59,200 98 00:04:59,200 --> 00:05:07,290 >> ROB: Me imagino Eclipse tiene un Versión de Fedora, en cuyo caso, sí, 99 00:05:07,290 --> 00:05:08,420 usted puede hacer eso. 100 00:05:08,420 --> 00:05:10,875 Probablemente no es realmente vale la pena. 101 00:05:10,875 --> 00:05:11,742 >> ALTAVOZ 2: OK. 102 00:05:11,742 --> 00:05:15,924 Así que es probablemente más fácil si quería utilizar Eclipse, sólo tiene que utilizar el nativo y 103 00:05:15,924 --> 00:05:17,646 a continuación, subir a - 104 00:05:17,646 --> 00:05:21,090 >> ROB: Oh, eso también es probablemente más fácil. 105 00:05:21,090 --> 00:05:24,046 Pero usted puede conseguir que funcione dentro del aparato. 106 00:05:24,046 --> 00:05:27,740 >> JOSÉ: ¿Y para la cámara, la pregunta era, puede instalar otro 107 00:05:27,740 --> 00:05:29,490 IDE en el interior del aparato? 108 00:05:29,490 --> 00:05:31,520 >> ROB: Eclipse ser un ejemplo de una IDE. 109 00:05:31,520 --> 00:05:34,800 110 00:05:34,800 --> 00:05:36,050 ¿Alguna otra pregunta Appliance? 111 00:05:36,050 --> 00:05:38,250 112 00:05:38,250 --> 00:05:38,680 Está bien. 113 00:05:38,680 --> 00:05:44,920 >> Así que ahora vamos a pasar a la línea de comandos cosas relacionadas con la interfaz, de modo CLI. 114 00:05:44,920 --> 00:05:47,990 Y de nuevo, yo sólo voy a trabajar en aquí, porque este es idéntica a 115 00:05:47,990 --> 00:05:52,780 trabajando dentro de una ventana de terminal dentro del aparato. 116 00:05:52,780 --> 00:05:54,160 ¿Cómo está buscando esa fuente? 117 00:05:54,160 --> 00:05:55,970 ¿Eso es lo suficientemente grande? 118 00:05:55,970 --> 00:05:57,000 Está bien. 119 00:05:57,000 --> 00:06:02,480 >> Así que hay una gran cantidad de comandos que usted debe conseguir bastante utilizado para 120 00:06:02,480 --> 00:06:04,490 lo largo del semestre. 121 00:06:04,490 --> 00:06:09,480 Los dos grandes para navegar son ls, lista los archivos de este directorio, y 122 00:06:09,480 --> 00:06:11,380 cd, para cambiar de directorio. 123 00:06:11,380 --> 00:06:18,390 Así que puedo cambiar de escritorio y luego un patrón muy común es cd a un 124 00:06:18,390 --> 00:06:22,550 directorio e inmediatamente ls lo que está en el directorio. 125 00:06:22,550 --> 00:06:25,540 >> La gente también a veces no se dan cuenta que la finalización Tab es una cosa. 126 00:06:25,540 --> 00:06:28,370 Cd Así como, vh, y luego me golpeó Tab. 127 00:06:28,370 --> 00:06:30,790 Casi nunca escribo a cabo toda la cosa. 128 00:06:30,790 --> 00:06:32,920 Y luego si sigo golpeando Tab de nuevo, que va automáticamente 129 00:06:32,920 --> 00:06:33,670 Inicio Listado por mí. 130 00:06:33,670 --> 00:06:37,000 Así que puedo cd vhosts, host local. 131 00:06:37,000 --> 00:06:39,880 Y eso es sólo ir a - 132 00:06:39,880 --> 00:06:43,380 en caso de que usted no ha oído hablar del término antes, el directorio es sólo otra palabra 133 00:06:43,380 --> 00:06:45,170 para la carpeta. 134 00:06:45,170 --> 00:06:49,930 Así que ahora si que se ve - 135 00:06:49,930 --> 00:06:51,810 vamos a traer eso a la parte superior. 136 00:06:51,810 --> 00:06:55,380 >> Así que ahora si ves entre paréntesis, que ver la tilde poco, slash, vhost, 137 00:06:55,380 --> 00:06:56,810 recortar, host local. 138 00:06:56,810 --> 00:07:00,040 Así que la tilde, que se refiere a mi directorio personal. 139 00:07:00,040 --> 00:07:03,090 Es un directorio que está en cuando SSH pulg 140 00:07:03,090 --> 00:07:05,660 Es el directorio que está en cuando usted abre un terminal. 141 00:07:05,660 --> 00:07:08,650 Es el lugar donde empezar. 142 00:07:08,650 --> 00:07:13,110 Y así estoy dentro de mi directorio home, y yo estoy dentro del host virtual 143 00:07:13,110 --> 00:07:14,475 directorio dentro de mi directorio home. 144 00:07:14,475 --> 00:07:19,670 Y entonces yo estoy dentro de lo local sede de directorio dentro de eso. 145 00:07:19,670 --> 00:07:23,740 >> Por lo que algunas otras cosas útiles con cd - 146 00:07:23,740 --> 00:07:29,220 o bien, en general, por lo que siempre dot se refiere al directorio actual. 147 00:07:29,220 --> 00:07:31,130 Cd, de punto es un comando bastante inútil. 148 00:07:31,130 --> 00:07:35,150 Pero eso está cambiando a la directorio actual. 149 00:07:35,150 --> 00:07:38,230 Una más útil en términos de cd es punto, punto, que es 150 00:07:38,230 --> 00:07:40,220 sólo tiene que ir de un solo directorio. 151 00:07:40,220 --> 00:07:43,360 >> Y tenga en cuenta que estos - 152 00:07:43,360 --> 00:07:48,610 Quiero decir alias, pero estos símbolos, punto y punto, punto, los trabajos 153 00:07:48,610 --> 00:07:51,740 para casi cualquier comando que eres va a estar pensando en correr. 154 00:07:51,740 --> 00:07:55,370 Así como el cd es probablemente donde podrás el uso de la mayoría, pero estos no son 155 00:07:55,370 --> 00:07:56,780 cosas que simplemente cd entiende. 156 00:07:56,780 --> 00:07:59,980 Es más o menos algo que su totalidad línea de comandos entiende. 157 00:07:59,980 --> 00:08:01,932 Una gran cantidad de programas de comprender punto y punto, punto. 158 00:08:01,932 --> 00:08:04,830 159 00:08:04,830 --> 00:08:09,090 >> Así que los otros los útiles - cd, Dash. 160 00:08:09,090 --> 00:08:13,460 Así que eso me va a llevar a la último directorio que yo era pulg 161 00:08:13,460 --> 00:08:15,980 Así que a veces voy a hacer algo así, oh, estoy trabajando aquí. 162 00:08:15,980 --> 00:08:21,110 Y veo un error con algo, y Iré a investigar yendo a 163 00:08:21,110 --> 00:08:24,020 algún directorio aleatoria en alguna parte. 164 00:08:24,020 --> 00:08:25,260 Y yo no sé si va a déjame entrar allí. 165 00:08:25,260 --> 00:08:25,720 Lo hará. 166 00:08:25,720 --> 00:08:27,615 Así que hago lo que quiero en este directorio. 167 00:08:27,615 --> 00:08:28,950 Bla, bla, bla, bla, bla. 168 00:08:28,950 --> 00:08:31,770 Y yo estaba como, ¿sí, quiero para volver a donde estaba. 169 00:08:31,770 --> 00:08:34,490 cd, guiones y me trae de vuelta. 170 00:08:34,490 --> 00:08:39,970 >> Así que me voy a tirar un montón de estos en el día de hoy. 171 00:08:39,970 --> 00:08:43,730 No espero a memorizar todos ellos. 172 00:08:43,730 --> 00:08:46,170 Es una especie de sólo sé de que existen. 173 00:08:46,170 --> 00:08:48,690 Y luego, más adelante, cuando usted es como, hmm, quiero volver a la 174 00:08:48,690 --> 00:08:51,870 directorio que estaba justo en, oh, espera, existe algo así. 175 00:08:51,870 --> 00:08:53,980 Usted no tiene que sólo tiene que escribir en todo el directorio de nuevo. 176 00:08:53,980 --> 00:08:56,090 >> JOSÉ: ¿Y el tiempo se acaba utilizarlos una y otra vez, y 177 00:08:56,090 --> 00:08:57,830 se convertirá en la memoria muscular. 178 00:08:57,830 --> 00:09:00,090 >> ROB: Si. 179 00:09:00,090 --> 00:09:02,930 Entonces, ¿cómo he dicho antes, que tilde es su directorio personal. 180 00:09:02,930 --> 00:09:04,820 Así que puedo cd, tilde. 181 00:09:04,820 --> 00:09:07,280 Pero yo ni siquiera tengo que eso si sólo - 182 00:09:07,280 --> 00:09:09,760 Voy a volver al directorio de modo que no es un ejemplo de sentido. 183 00:09:09,760 --> 00:09:14,560 Pero si acabo de hacer cd, eso es también la mismo que, vaya a mi directorio home. 184 00:09:14,560 --> 00:09:18,380 185 00:09:18,380 --> 00:09:19,880 Hago Comando, K. 186 00:09:19,880 --> 00:09:24,015 >> JOSÉ: También puede escribir clara, la palabra, y se debe desactivarla. 187 00:09:24,015 --> 00:09:28,650 >> ROB: Y creo que también de control, L también lo hace. 188 00:09:28,650 --> 00:09:29,690 Así que un montón de diferentes maneras. 189 00:09:29,690 --> 00:09:34,070 Creo que hay algunas diferencias en el clara y Control, L se acaba 190 00:09:34,070 --> 00:09:37,280 realmente empujar a la parte superior e Todavía puedo retroceder. 191 00:09:37,280 --> 00:09:40,580 Comando, K destruye literalmente todo, y tú 192 00:09:40,580 --> 00:09:42,960 no puede moverse hacia arriba. 193 00:09:42,960 --> 00:09:45,530 Por lo menos, eso es cómo funciona en iTerm2. 194 00:09:45,530 --> 00:09:48,690 No sé cómo otras cosas - 195 00:09:48,690 --> 00:09:49,360 oh. 196 00:09:49,360 --> 00:09:55,450 >> Con sshing, así que si estás en Windows, vas a tener que descargar PuTTY 197 00:09:55,450 --> 00:10:02,360 con el fin de SSH, ya que Windows no lo hace tener como una herramienta integrada SSH. 198 00:10:02,360 --> 00:10:06,150 De Macs, puedes simplemente SSH directamente desde una ventana de terminal. 199 00:10:06,150 --> 00:10:08,755 200 00:10:08,755 --> 00:10:09,690 Aceptar. 201 00:10:09,690 --> 00:10:11,840 ¿Preguntas? 202 00:10:11,840 --> 00:10:19,260 >> Con ls, así que algo se acostumbre a con la mayoría de estos comandos es - 203 00:10:19,260 --> 00:10:20,060 bien, sólo voy a hacer una. 204 00:10:20,060 --> 00:10:21,310 Ls, tablero, l. 205 00:10:21,310 --> 00:10:26,330 Así tablero, l es lo que vamos para llamar a una bandera para ls. 206 00:10:26,330 --> 00:10:30,770 Y muchos de estos comandos tienen banderas que se puede pasar a ellos. 207 00:10:30,770 --> 00:10:35,020 Así que en este caso, guión, l es una bandera que dice que me dará una completa 208 00:10:35,020 --> 00:10:37,850 lista de toda la información de estos archivos. 209 00:10:37,850 --> 00:10:44,790 >> Así que vemos aquí que el escritorio era modificada el 30 de julio a las 12:54. 210 00:10:44,790 --> 00:10:47,160 Descargas se modificó al 6 de septiembre. 211 00:10:47,160 --> 00:10:52,350 Estos son el tamaño actual y bytes de estos directorios. 212 00:10:52,350 --> 00:10:54,412 Usted no tiene que entender todo esto. 213 00:10:54,412 --> 00:11:00,380 >> Esta cosa de la izquierda, estos de drwx, que se convertirá en mucho más relevante 214 00:11:00,380 --> 00:11:02,290 más tarde, cuando usted tiene que hacer frente - 215 00:11:02,290 --> 00:11:05,900 que tiene que ver con quién tiene permisos a ver estos archivos. 216 00:11:05,900 --> 00:11:09,880 Y por lo que si usted no era el único usuario en este equipo, usted sería capaz de 217 00:11:09,880 --> 00:11:13,345 por ejemplo, OK, yo debería ser el único permitió mirar a este archivo o estoy 218 00:11:13,345 --> 00:11:14,870 va a permitir a todos mirar este archivo. 219 00:11:14,870 --> 00:11:17,710 Así que otra persona en mi equipo puede leer este fichero. 220 00:11:17,710 --> 00:11:22,190 221 00:11:22,190 --> 00:11:25,600 Yo ni siquiera sé lo que esto - ¿Qué hace esto? 222 00:11:25,600 --> 00:11:26,840 >> JOSÉ: No estoy muy seguro, en realidad. 223 00:11:26,840 --> 00:11:27,705 >> ROB: No tengo idea. 224 00:11:27,705 --> 00:11:30,530 >> JOSÉ: Pero si usted no sabe, no hay un comando útil que puede utilizar 225 00:11:30,530 --> 00:11:31,680 para decirle lo que significa que la salida. 226 00:11:31,680 --> 00:11:33,780 Y si escribe en el hombre antes de la orden - 227 00:11:33,780 --> 00:11:35,000 por lo que M-A-N. ROB: Hombre. 228 00:11:35,000 --> 00:11:37,690 Así que el hombre es otro esto es muy útil. 229 00:11:37,690 --> 00:11:39,540 Y el hombre, ls. 230 00:11:39,540 --> 00:11:47,320 Así que las páginas de manual, que tienen tanto comandos que se va a utilizar 231 00:11:47,320 --> 00:11:50,330 en la línea de comandos, y también tienen funciones que serán relevantes 232 00:11:50,330 --> 00:11:52,530 con C. Así que usted puede el hombre - 233 00:11:52,530 --> 00:11:53,720 y no hice caso 3. 234 00:11:53,720 --> 00:11:57,410 Pero man 3 printf va a traer hasta la versión C de printf. 235 00:11:57,410 --> 00:12:01,030 Pero si acabo de hacer el hombre printf, esto es ir para que aparezca el comando printf 236 00:12:01,030 --> 00:12:03,540 eso ocurre en la línea de comandos. 237 00:12:03,540 --> 00:12:05,730 >> Así que el hombre, ls. 238 00:12:05,730 --> 00:12:09,030 Las páginas del manual pueden ser bastante abrumadora. 239 00:12:09,030 --> 00:12:12,770 Aquí, sin embargo, verá este listado de todas estas banderas que LS 240 00:12:12,770 --> 00:12:14,300 entiende. 241 00:12:14,300 --> 00:12:17,876 Así que si vamos a lanzarse, l, y - 242 00:12:17,876 --> 00:12:19,300 Yo sólo voy a tirar esto a usted. 243 00:12:19,300 --> 00:12:23,050 Pero con el fin de buscar, usted quiere para golpear primero la cuestión 244 00:12:23,050 --> 00:12:24,780 marca o botón de barra. 245 00:12:24,780 --> 00:12:26,040 Así que recortar. 246 00:12:26,040 --> 00:12:29,000 >> Y entonces puedo buscar para lo que quiera. 247 00:12:29,000 --> 00:12:33,780 Así que voy a recortar para el tablero, l. 248 00:12:33,780 --> 00:12:35,110 Y allí estaba. 249 00:12:35,110 --> 00:12:37,450 Así que utilice un formato de listado largo. 250 00:12:37,450 --> 00:12:40,060 Eso no ayuda a averiguar qué esa columna particular, quería decir, pero me 251 00:12:40,060 --> 00:12:44,480 asumir en algún lugar de aquí ello explicaría eso. 252 00:12:44,480 --> 00:12:48,740 Así que utilice las páginas del manual de cualquier comando que no entiende de inmediato. 253 00:12:48,740 --> 00:12:51,080 >> Estoy bastante seguro de que usted puede incluso hombre, hombre. 254 00:12:51,080 --> 00:12:53,070 Una interfaz para la línea manuales de referencia. 255 00:12:53,070 --> 00:12:57,700 256 00:12:57,700 --> 00:13:03,570 Ah, una última que es quizás un poco es LS pertinentes, tablero, a. 257 00:13:03,570 --> 00:13:08,490 Así cuenta si acabo de hacer ls, Consigo estos cinco archivos. 258 00:13:08,490 --> 00:13:11,480 Si hago ls, guión, a, I conseguir muchos más archivos. 259 00:13:11,480 --> 00:13:15,350 Así que la cosa en común entre todos estos nuevos archivos es el punto de antemano. 260 00:13:15,350 --> 00:13:21,220 >> Así que la convención es que un archivo que comienza con un punto está oculto. 261 00:13:21,220 --> 00:13:25,300 ¿Así que no quieres ver ese archivo, no quiero tener que meterse con 262 00:13:25,300 --> 00:13:26,750 tu lista de directorios. 263 00:13:26,750 --> 00:13:30,020 Es sólo cuando se pide de manera explícita, bien, ls, guión, una, mostrarme. 264 00:13:30,020 --> 00:13:32,830 La una es sinónimo de todos los archivos, incluyendo las ocultas. 265 00:13:32,830 --> 00:13:37,260 266 00:13:37,260 --> 00:13:39,270 Por lo que algunos otros comandos. 267 00:13:39,270 --> 00:13:41,323 Oh, las preguntas en ese momento? 268 00:13:41,323 --> 00:13:41,746 Sí. 269 00:13:41,746 --> 00:13:45,914 >> ALTAVOZ 3: Cuando usted hace un ls, a, ¿cuál es el punto, punto? 270 00:13:45,914 --> 00:13:46,870 >> ROB: Oh. 271 00:13:46,870 --> 00:13:48,780 Así que esto es lo que yo estaba hablando. 272 00:13:48,780 --> 00:13:50,890 Es lo mismo cuando Puedo gustaría cd, punto, punto. 273 00:13:50,890 --> 00:13:56,790 Así que, técnicamente, punto y punto, punto son archivos que existen en cada uno de 274 00:13:56,790 --> 00:14:03,620 guía donde el archivo de punto se refiere en el directorio actual. 275 00:14:03,620 --> 00:14:06,930 Así que si yo cd, punto, yo sólo voy permanecer en el directorio. 276 00:14:06,930 --> 00:14:10,870 Y punto, punto siempre se refiere a la anterior directorio de uno a nivel. 277 00:14:10,870 --> 00:14:18,200 Así que si entro en troncos y ls, guión, al, Veré punto, punto. cd a punto, punto 278 00:14:18,200 --> 00:14:20,390 me lleva al directorio anterior. 279 00:14:20,390 --> 00:14:24,530 280 00:14:24,530 --> 00:14:25,780 Sí. 281 00:14:25,780 --> 00:14:27,160 282 00:14:27,160 --> 00:14:28,110 Aceptar. 283 00:14:28,110 --> 00:14:33,070 >> Así que otra muy importante comando es rm. 284 00:14:33,070 --> 00:14:35,650 Así que eso es lo que vamos a utilizar para eliminar. 285 00:14:35,650 --> 00:14:38,100 Y déjame en realidad hago otra comando primero. 286 00:14:38,100 --> 00:14:39,610 Así mkdir. 287 00:14:39,610 --> 00:14:42,770 Mkdir es cómo se puede crear directorios. 288 00:14:42,770 --> 00:14:47,530 Y voy a crear un directorio temporal y entrar en ese directorio temporal. 289 00:14:47,530 --> 00:14:49,590 Y como era de esperar, está vacío. 290 00:14:49,590 --> 00:14:53,680 Pero si ls I, guión, una, todavía tienen puntos y punto, punto, porque se refiere a punto 291 00:14:53,680 --> 00:14:54,480 el directorio actual. 292 00:14:54,480 --> 00:14:56,170 Y punto, punto se refiere a la directorio anterior. 293 00:14:56,170 --> 00:14:58,700 Y los siempre existirá sin importar el directorio que se in 294 00:14:58,700 --> 00:15:01,910 295 00:15:01,910 --> 00:15:09,010 >> Y este es un completamente innecesario comando, pero el tacto. 296 00:15:09,010 --> 00:15:11,880 Yo sólo lo uso, porque es una manera fácil de crear archivos. 297 00:15:11,880 --> 00:15:16,180 Así que toque una, toque b, toque c es sólo va a crear tres archivos llamados a, 298 00:15:16,180 --> 00:15:17,845 b y c que son completamente vacía. 299 00:15:17,845 --> 00:15:20,450 300 00:15:20,450 --> 00:15:24,980 Así que el punto de crearme los de la primer lugar es sólo para que rm es 301 00:15:24,980 --> 00:15:26,250 cómo podemos eliminarlos. 302 00:15:26,250 --> 00:15:27,850 Así rm, a. 303 00:15:27,850 --> 00:15:30,960 Se va a preguntarme, retire fichero regular un vacío? 304 00:15:30,960 --> 00:15:33,170 Y luego voy a decir que sí. 305 00:15:33,170 --> 00:15:39,090 >> Por lo que si estoy seguro que quiero borrar ese archivo sin tener que estar 306 00:15:39,090 --> 00:15:44,500 solicite, retire archivo vacío regular?, a continuación, rm, guión, f va a ser el 307 00:15:44,500 --> 00:15:48,230 bandera que dice, forzar la quita sin incluso me llevó, oh, ¿estás 308 00:15:48,230 --> 00:15:49,710 Seguro que quiere eliminar el archivo? 309 00:15:49,710 --> 00:15:50,810 Sí, estoy seguro. 310 00:15:50,810 --> 00:15:56,050 Así rm, guión, fb se acaba hacerlo sin preguntar. 311 00:15:56,050 --> 00:15:57,950 >> Así que vamos a hacer algunas más directorios. 312 00:15:57,950 --> 00:16:03,670 mkdir, tmp2, cd, tmp2, tocar un toque b. 313 00:16:03,670 --> 00:16:04,300 Aceptar. 314 00:16:04,300 --> 00:16:08,180 Así que ahora me quiero quitar tmp2 como un directorio. 315 00:16:08,180 --> 00:16:10,316 Tmp2 Así rm. 316 00:16:10,316 --> 00:16:12,920 No se puede quitar tmp2, es un directorio. 317 00:16:12,920 --> 00:16:21,370 Así que la cuestión aquí es que no rm trabajar de inmediato en los directorios. 318 00:16:21,370 --> 00:16:26,530 Sólo ha significado para archivos como archivos que no son directorios. 319 00:16:26,530 --> 00:16:30,800 >> Y así, lo que podemos hacer aquí es rm, guión, r. 320 00:16:30,800 --> 00:16:35,160 Eso significa de forma recursiva, lo que podría no significa nada para ti todavía. 321 00:16:35,160 --> 00:16:38,280 Pero cuando se llega a la recursividad, que va a decir más. 322 00:16:38,280 --> 00:16:43,540 Así rm, guión, r, tmp2 va a recursivamente entrar en ese directorio. 323 00:16:43,540 --> 00:16:45,540 Así descenderá al directorio tmp2? 324 00:16:45,540 --> 00:16:47,330 Sí, vamos a entrar en eso. 325 00:16:47,330 --> 00:16:49,360 ¿Queremos eliminar tmp2 / a? 326 00:16:49,360 --> 00:16:49,745 Sí. 327 00:16:49,745 --> 00:16:51,830 ¿Queremos eliminar tmp2 / b? 328 00:16:51,830 --> 00:16:52,840 Sí. 329 00:16:52,840 --> 00:16:55,170 Ahora queremos eliminar la tmp2 directorio? 330 00:16:55,170 --> 00:16:56,040 Sí. 331 00:16:56,040 --> 00:16:58,410 Y por lo que ahora el directorio y todo dentro 332 00:16:58,410 --> 00:16:59,660 de que se ha eliminado. 333 00:16:59,660 --> 00:17:02,850 334 00:17:02,850 --> 00:17:07,250 >> No es técnicamente un comando rmdir que se puede utilizar para eliminar 335 00:17:07,250 --> 00:17:11,670 directorios, pero sólo funciona en los directorios vacíos de todos modos. 336 00:17:11,670 --> 00:17:14,109 Y al ver que, vamos a hacer mkdir, tmp2 nuevo. 337 00:17:14,109 --> 00:17:15,940 Tmp2, toque a. 338 00:17:15,940 --> 00:17:16,800 Aceptar. 339 00:17:16,800 --> 00:17:22,770 Así que si trato de quitar dirtmp2, que va a decir, el directorio no está vacío. 340 00:17:22,770 --> 00:17:29,540 Así que casi nunca uso el remove comando dir de todos modos, porque rm, guión, 341 00:17:29,540 --> 00:17:35,140 r funciona en los directorios vacíos y los directorios no vacíos. 342 00:17:35,140 --> 00:17:37,760 >> Y también, si yo no quiero tener que pasar por todo ese proceso de 343 00:17:37,760 --> 00:17:40,720 descender en el directorio y extraer cada archivo individual, rm, 344 00:17:40,720 --> 00:17:44,190 tablero, rf, tmp2. 345 00:17:44,190 --> 00:17:45,670 Y ahora se ha ido. 346 00:17:45,670 --> 00:17:51,220 >> Algo que tener cuidado aproximadamente es rm, guión, rf. 347 00:17:51,220 --> 00:17:53,660 Y hasta me da miedo que escribirla, porque si accidentalmente 348 00:17:53,660 --> 00:17:55,090 pulse Enter o algo así. 349 00:17:55,090 --> 00:18:02,735 Así rm, guión, rf, tilde haría, sin me llevó, el f no solicita 350 00:18:02,735 --> 00:18:05,670 me, eliminará automáticamente mi directorio entero y 351 00:18:05,670 --> 00:18:06,780 todo en él. 352 00:18:06,780 --> 00:18:11,460 Así que usted puede pensar que es una estupidez. 353 00:18:11,460 --> 00:18:12,830 Y bueno, lo es. 354 00:18:12,830 --> 00:18:18,600 >> Pero puede suceder muy fácilmente por accidente si, por ejemplo, quería eliminar 355 00:18:18,600 --> 00:18:21,640 mi barra, directorio vhost. 356 00:18:21,640 --> 00:18:26,610 Y justo en la tipificación rápida, Accidentalmente hacer esto. 357 00:18:26,610 --> 00:18:31,880 Eso eliminará de forma recursiva tanto mi directorio principal y el directorio vhost 358 00:18:31,880 --> 00:18:35,450 en este directorio particular que sólo pasa a no existir en estos momentos. 359 00:18:35,450 --> 00:18:39,520 Pero esto todavía eliminar mi directorio entero. 360 00:18:39,520 --> 00:18:43,090 Por lo menos al no tener un f, me incitaría a primera. 361 00:18:43,090 --> 00:18:45,670 Y me gustaría ser como, oh, no, no quiero hacer eso. 362 00:18:45,670 --> 00:18:50,570 Pero la gente, slash, incluyendo me inclino a entrar en el 363 00:18:50,570 --> 00:18:53,090 hábito de siempre-ing rf. 364 00:18:53,090 --> 00:18:58,713 Incluso los archivos regulares que sólo puede i rm, c, tiendo a sólo rm, guión, rf, c. 365 00:18:58,713 --> 00:19:01,330 Sólo ten cuidado cuando estés-ing rf. 366 00:19:01,330 --> 00:19:03,160 >> ALTAVOZ 4: ¿Qué hacer C? 367 00:19:03,160 --> 00:19:11,570 >> ROB: C es que estoy hablando de ese archivo C En este directorio, que rm, c. 368 00:19:11,570 --> 00:19:15,730 >> JOSÉ: ¿Y que es más peligroso, si utiliza una estrella, se refiere a todo en 369 00:19:15,730 --> 00:19:16,450 el directorio. 370 00:19:16,450 --> 00:19:20,040 Así que lo que comúnmente tienden a hacer es que lo haré Entro en un directorio y quiero 371 00:19:20,040 --> 00:19:21,510 eliminar todos los archivos allí. 372 00:19:21,510 --> 00:19:23,640 Así rm, guión, rf, estrella. 373 00:19:23,640 --> 00:19:25,700 >> ROB: Si. 374 00:19:25,700 --> 00:19:26,780 Rm, guión, rf, estrella. 375 00:19:26,780 --> 00:19:29,530 >> JOSÉ: ¿Y si usted no tiene cuidado lo que está en el directorio - 376 00:19:29,530 --> 00:19:33,340 Yo no estaba en la temperatura, pero yo estaba accidentalmente en mi directorio home, 377 00:19:33,340 --> 00:19:35,450 entonces voy a quitar todo en mi directorio home. 378 00:19:35,450 --> 00:19:39,095 Y realmente he hecho eso antes, y Creo que usted ha hecho esto antes o 379 00:19:39,095 --> 00:19:40,640 Jay ha hecho eso antes. 380 00:19:40,640 --> 00:19:42,480 >> ROB: He eliminado accidentalmente - 381 00:19:42,480 --> 00:19:44,480 así que ignore ese comando para un poco. 382 00:19:44,480 --> 00:19:45,800 >> JOSÉ: No es divertido. 383 00:19:45,800 --> 00:19:52,650 >> ROB: Así que en el directorio bin slash es un montón de archivos binarios, donde habrá 384 00:19:52,650 --> 00:19:54,840 ser los familiares como sonido metálico. 385 00:19:54,840 --> 00:20:00,740 Bueno, clang y, básicamente, todos ellos cosas que estoy corriendo en el comando 386 00:20:00,740 --> 00:20:02,060 línea están en este directorio bin slash. 387 00:20:02,060 --> 00:20:03,090 >> JOSÉ: Al igual que ls está aquí. 388 00:20:03,090 --> 00:20:06,285 >> ROB: Así punto, raya vertical, ls se listar este directorio. 389 00:20:06,285 --> 00:20:08,120 >> JOSÉ: Rm es también en este directorio. 390 00:20:08,120 --> 00:20:12,770 >> ROB: He rm accidentalmente, bin rf-ed, que eliminó cualquier comando que pude 391 00:20:12,770 --> 00:20:14,380 posiblemente desear. 392 00:20:14,380 --> 00:20:18,085 Que luego me reinstalación de un nuevo Appliance en ese punto. 393 00:20:18,085 --> 00:20:20,170 >> JOSÉ: Así que tener mucho cuidado al utiliza este comando. 394 00:20:20,170 --> 00:20:21,120 >> AUDIENCIA: [inaudible]? 395 00:20:21,120 --> 00:20:22,640 >> ROB: Si. 396 00:20:22,640 --> 00:20:24,135 Eso también es un mal hábito para entrar. 397 00:20:24,135 --> 00:20:27,920 398 00:20:27,920 --> 00:20:30,170 Si te fijas, ahora soy - 399 00:20:30,170 --> 00:20:33,580 así, no se puede notar, pero mi zoom-in quizá pueda. 400 00:20:33,580 --> 00:20:35,360 Así que ahora soy root @ electrodoméstico. 401 00:20:35,360 --> 00:20:39,790 Así jharvard es el usuario que queremos usted siempre esté utilizando. 402 00:20:39,790 --> 00:20:43,820 Root es el usuario que tiene permiso para no hacer absolutamente nada. 403 00:20:43,820 --> 00:20:50,260 >> Así notar cuando estoy jharvard, si trato de cd - 404 00:20:50,260 --> 00:20:52,461 lo que es un directorio que? 405 00:20:52,461 --> 00:20:53,980 Oh, la raíz es un buen ejemplo. 406 00:20:53,980 --> 00:20:54,950 Así cd, raíz. 407 00:20:54,950 --> 00:20:56,030 Permiso denegado. 408 00:20:56,030 --> 00:21:00,060 Porque si nos fijamos en este listado - 409 00:21:00,060 --> 00:21:02,410 y otra vez, usted no tiene que totalmente de entender esto. 410 00:21:02,410 --> 00:21:09,210 Sin embargo, estos tres guiones que opinan que no dejes que ningún otro 411 00:21:09,210 --> 00:21:11,120 usuario en este directorio. 412 00:21:11,120 --> 00:21:14,540 Y el directorio pasa a ser propiedad del usuario root. 413 00:21:14,540 --> 00:21:20,310 >> Así que el hecho de que soy jharvard y no uno que no es root es permitido en 414 00:21:20,310 --> 00:21:23,490 este directorio, eso significa que soy vas a obtener permiso denegado cuando 415 00:21:23,490 --> 00:21:25,160 tratar de cd en él. 416 00:21:25,160 --> 00:21:31,370 Así que cuando estoy raíz, tengo permiso para hacer absolutamente cualquier cosa, incluyendo 417 00:21:31,370 --> 00:21:34,660 borrar archivos esenciales para el aparato y 418 00:21:34,660 --> 00:21:36,640 destruir la cosa entera. 419 00:21:36,640 --> 00:21:41,240 >> Así que es un mal hábito para entrar simplemente pasear por su 420 00:21:41,240 --> 00:21:43,650 sistema operativo como root. 421 00:21:43,650 --> 00:21:46,520 Yo lo hago de todos modos. 422 00:21:46,520 --> 00:21:48,710 ¿Preguntas? 423 00:21:48,710 --> 00:21:52,230 Y me salgo de la raíz, quedo como jharvard. 424 00:21:52,230 --> 00:21:54,510 Aceptar. 425 00:21:54,510 --> 00:21:55,820 >> Comandos más relevantes. 426 00:21:55,820 --> 00:22:03,975 Así que volviendo a nuestra temperatura, la comando mv es sinónimo de movimiento. 427 00:22:03,975 --> 00:22:05,450 Usted puede mover un archivo. 428 00:22:05,450 --> 00:22:07,610 Ahora queremos llamarlo b, por lo que ahora se llama b. 429 00:22:07,610 --> 00:22:10,650 O tal vez queremos avanzar b de un solo directorio. 430 00:22:10,650 --> 00:22:12,730 Así que ahora vacíos de este directorio. 431 00:22:12,730 --> 00:22:15,410 Voy a volver a mi directorio personal, y vemos que b es aquí, porque el 432 00:22:15,410 --> 00:22:19,230 directorio personal era un directorio desde el directorio que b había estado adentro 433 00:22:19,230 --> 00:22:24,710 434 00:22:24,710 --> 00:22:26,580 >> También hay cp. 435 00:22:26,580 --> 00:22:33,210 Así cp es copiar súper sección, punto, el texto. 436 00:22:33,210 --> 00:22:35,750 Puedo llamarlo s, punto, texto. 437 00:22:35,750 --> 00:22:39,780 Ahora tenemos dos súper sección, punto, texto, y s, punto, texto. 438 00:22:39,780 --> 00:22:41,340 Esto también funciona en los directorios. 439 00:22:41,340 --> 00:22:44,040 440 00:22:44,040 --> 00:22:46,560 Me RF-ed un solo archivo. 441 00:22:46,560 --> 00:22:48,200 Así CP - 442 00:22:48,200 --> 00:22:51,710 Bueno, primero vamos a tratar de cp, tmp, tmp2. 443 00:22:51,710 --> 00:22:53,220 Así omitiendo directorio tmp. 444 00:22:53,220 --> 00:22:57,440 Así similares a RM, el comportamiento por defecto es que no funciona en los directorios. 445 00:22:57,440 --> 00:23:01,570 >> Y de nuevo, similar a RM, el valor por defecto comportamiento - así, conseguir que funcione 446 00:23:01,570 --> 00:23:04,230 con los directorios es un guión-r de distancia. 447 00:23:04,230 --> 00:23:09,240 Así que copiar de forma recursiva la temperatura directorio en tmp2. 448 00:23:09,240 --> 00:23:13,700 Y lo que ahora tenemos tanto tmp y tmp2, y que no es útil ya que tmp 449 00:23:13,700 --> 00:23:16,814 estaba vacía en el primer lugar. 450 00:23:16,814 --> 00:23:18,660 Tmp2. 451 00:23:18,660 --> 00:23:22,680 >> Ahora vamos a copiar tmp en tmp2. 452 00:23:22,680 --> 00:23:27,900 Y vemos que tmp2 también tiene el archivo una, porque el directorio y 453 00:23:27,900 --> 00:23:32,220 todo dentro de ese directorio fue copiado. 454 00:23:32,220 --> 00:23:36,000 Y eso puede ser un poco útil si, digamos que usted está trabajando 455 00:23:36,000 --> 00:23:38,860 el problema de establecer uno - 456 00:23:38,860 --> 00:23:41,320 o en realidad, los boletines de problemas posteriores son aún más importante, ya que 457 00:23:41,320 --> 00:23:43,660 será un manojo entero de archivos y las cosas. 458 00:23:43,660 --> 00:23:47,010 >> Pero lo que desea, por una fracción de en segundo lugar, usted es como, bien, estoy 459 00:23:47,010 --> 00:23:50,210 va a intentar algo diferente. 460 00:23:50,210 --> 00:23:57,860 Permítanme copio toda mi pset1 directorio en la copia de seguridad de modo que si pset1 461 00:23:57,860 --> 00:24:01,490 Me acaban arruinar las cosas, no puedo volver a mi directorio de copia de seguridad. 462 00:24:01,490 --> 00:24:07,340 Hay formas más apropiadas de versiones de copia de seguridad de su código, pero 463 00:24:07,340 --> 00:24:10,610 esto siempre es una forma rápida de hacer sólo Asegúrese de tener una copia de algo 464 00:24:10,610 --> 00:24:11,860 que está a punto de modificar. 465 00:24:11,860 --> 00:24:16,974 466 00:24:16,974 --> 00:24:27,090 >> Así que echo es también un comando de una sola vez que tipo de sillily se acaba de imprimir en la 467 00:24:27,090 --> 00:24:31,540 línea de comandos exactamente lo que quería hacer eco. 468 00:24:31,540 --> 00:24:32,680 Así que echo hola. 469 00:24:32,680 --> 00:24:35,420 Sólo vamos a imprimir hi. 470 00:24:35,420 --> 00:24:38,030 Echo hello world. 471 00:24:38,030 --> 00:24:39,800 Publicaremos hello world. 472 00:24:39,800 --> 00:24:44,350 Ahí entra en uso cuando iniciar la combinación de los comandos. 473 00:24:44,350 --> 00:24:48,300 >> Y de nuevo, no esperes a que en su totalidad entender esto todavía, pero es 474 00:24:48,300 --> 00:24:49,910 algo que ver. 475 00:24:49,910 --> 00:24:52,470 Y entonces, si usted está buscando en Google para ver ejemplos o te das cuenta de que quieres hacer 476 00:24:52,470 --> 00:24:55,030 algo, puede ser útil. 477 00:24:55,030 --> 00:24:59,020 Así que vamos, como un ejemplo, así que ls, tablero, l. 478 00:24:59,020 --> 00:25:01,160 Así que aquí veo la salida de ls, guión, l. 479 00:25:01,160 --> 00:25:06,560 Y yo digo, OK, quiero almacenar en un archivo que. 480 00:25:06,560 --> 00:25:11,620 Toda esta producción aquí, quiero poner en un archivo separado. 481 00:25:11,620 --> 00:25:16,080 >> Así que este pequeño símbolo mayor que es lo que vamos a llamar. 482 00:25:16,080 --> 00:25:18,570 Estamos reorientando la de salida en un archivo. 483 00:25:18,570 --> 00:25:21,680 Vamos a llamar a la bla archivo, porque eso es lo que yo suelo llamar siempre él. 484 00:25:21,680 --> 00:25:26,430 Así que ahora vemos que tenemos un presentar bla aquí. 485 00:25:26,430 --> 00:25:30,270 Y si lo abro, me encargaré de que es exactamente de la salida del comando 486 00:25:30,270 --> 00:25:31,990 que me acabo de encontrar. 487 00:25:31,990 --> 00:25:36,020 Y del mismo modo, se puede - 488 00:25:36,020 --> 00:25:41,260 si se trataba de la salida a un archivo, este es tomar la entrada de un archivo. 489 00:25:41,260 --> 00:25:45,790 490 00:25:45,790 --> 00:25:47,050 ¿Qué es una orden que yo - 491 00:25:47,050 --> 00:25:49,620 >> JOSÉ: Creo que se puede utilizar menos o más, probablemente. 492 00:25:49,620 --> 00:25:53,031 >> ROB: Pero ¿qué tal un poco menos bla? 493 00:25:53,031 --> 00:25:53,930 No se. 494 00:25:53,930 --> 00:25:57,870 Si usted entra en este escenario, al igual que hay conjuntos de procesadores que es útil para. 495 00:25:57,870 --> 00:25:59,950 >> JOSÉ: Se puede canalizar en eco. 496 00:25:59,950 --> 00:26:02,920 Pipe el archivo en eco para verlo. 497 00:26:02,920 --> 00:26:04,060 >> ROB: Es la tubería. 498 00:26:04,060 --> 00:26:04,860 >> JOSÉ: Lo siento. 499 00:26:04,860 --> 00:26:06,190 >> ROB: Muy bien. 500 00:26:06,190 --> 00:26:12,720 Así que esta es la salida a un archivo. 501 00:26:12,720 --> 00:26:18,700 Se trata de obtener el texto del archivo y se la entrega al programa. 502 00:26:18,700 --> 00:26:20,560 Y también se verá este tipo. 503 00:26:20,560 --> 00:26:24,410 Así que esto es una especie de hacer ambas cosas a la vez. 504 00:26:24,410 --> 00:26:28,310 Y, de hecho, voy a introducir dos nuevos comandos sólo para hacer uso de ella. 505 00:26:28,310 --> 00:26:33,060 >> La historia es un comando muy útil que es sólo va a imprimir una lista de 506 00:26:33,060 --> 00:26:34,940 nada nunca me he encontrado una línea de comandos. 507 00:26:34,940 --> 00:26:38,290 Así que aquí vemos todo lo que tengo estado funcionando todo este tiempo. 508 00:26:38,290 --> 00:26:39,540 Mucha de ls. 509 00:26:39,540 --> 00:26:41,570 510 00:26:41,570 --> 00:26:48,470 >> Y otro comando útil es grep que su propósito es buscar a través de 511 00:26:48,470 --> 00:26:52,060 texto en busca de patrones, así, en busca de cualquier cosa que 512 00:26:52,060 --> 00:26:53,310 quiero buscar. 513 00:26:53,310 --> 00:26:59,770 Y así un uso útil aquí es, digamos queremos aprovechar la historia. 514 00:26:59,770 --> 00:27:03,860 Y quiero que buscar los comandos donde I - ¿Qué es un 515 00:27:03,860 --> 00:27:05,000 una utilidad para buscar? 516 00:27:05,000 --> 00:27:06,898 >> JOSÉ: [inaudible]? 517 00:27:06,898 --> 00:27:09,710 >> ROB: ¿O vamos a ver para todos toca, por cualquier razón. 518 00:27:09,710 --> 00:27:13,850 Así que esto es lo que se verá así. 519 00:27:13,850 --> 00:27:15,560 Y usted no tiene que completamente entender eso. 520 00:27:15,560 --> 00:27:20,570 Pero la idea es que aquí, la historia está dando la misma salida que hizo aquí 521 00:27:20,570 --> 00:27:25,030 donde se imprima la totalidad historia de todo lo que siempre he corrido. 522 00:27:25,030 --> 00:27:27,030 Entonces estamos pasando eso - 523 00:27:27,030 --> 00:27:30,230 así que en lugar de imprimir a la pantalla, queremos transmitir que a la 524 00:27:30,230 --> 00:27:34,640 grep comando que está buscando todas las instancias de la palabra toque. 525 00:27:34,640 --> 00:27:40,280 >> Y así, el uso de esta combinación de la herramientas de la historia y grep, puedo ver, OK, 526 00:27:40,280 --> 00:27:44,820 he aquí todos los comandos que he correr, y aquí está un tanto común. 527 00:27:44,820 --> 00:27:45,510 Estamos en la parte inferior. 528 00:27:45,510 --> 00:27:47,930 Y también me ha de dar la orden Acabo de funcionar que tenía el 529 00:27:47,930 --> 00:27:51,240 palabra toque en ella. 530 00:27:51,240 --> 00:27:58,500 Sin embargo, la tubería es una cosa muy útil para combinar múltiples programas. 531 00:27:58,500 --> 00:28:04,670 Y, de hecho, es un acceso directo para alquiler me la historia salida de presentar bla, y 532 00:28:04,670 --> 00:28:10,190 déjame grep usando el bla archivo como lo que quiero para mirar por encima. 533 00:28:10,190 --> 00:28:13,460 Así que la tubería es sólo un atajo para esos dos comandos. 534 00:28:13,460 --> 00:28:13,950 Sí. 535 00:28:13,950 --> 00:28:15,306 >> ALTAVOZ 4: [inaudible]? 536 00:28:15,306 --> 00:28:16,556 >> ROB: Si. 537 00:28:16,556 --> 00:28:20,142 538 00:28:20,142 --> 00:28:21,110 ¿Qué es - 539 00:28:21,110 --> 00:28:21,858 Oh. 540 00:28:21,858 --> 00:28:24,820 Vamos a probar. 541 00:28:24,820 --> 00:28:29,170 Así gato, perro, pez. 542 00:28:29,170 --> 00:28:33,770 Así que quiero a grep. 543 00:28:33,770 --> 00:28:37,680 Dash, r, de nuevo, va a ser recursiva, por lo que quiero descender 544 00:28:37,680 --> 00:28:38,870 todos los directorios. 545 00:28:38,870 --> 00:28:43,210 Quiero grep recursivamente para todos - y vamos a ver si temporalmente 546 00:28:43,210 --> 00:28:44,460 esta fuera del camino. 547 00:28:44,460 --> 00:28:48,650 548 00:28:48,650 --> 00:28:50,740 Me haga caso. 549 00:28:50,740 --> 00:28:51,360 Aceptar. 550 00:28:51,360 --> 00:28:56,740 >> Así que quiero a grep temporalmente para todas las instancias de la palabra pescado. 551 00:28:56,740 --> 00:29:00,510 Así que aquí lo que estoy haciendo es grepping recursiva para la palabra pescado. 552 00:29:00,510 --> 00:29:05,410 Y la estrella significa sobre todo esto archivos de este directorio. 553 00:29:05,410 --> 00:29:08,930 Y por lo que me dio un permiso denegado, porque no se le permite leer que 554 00:29:08,930 --> 00:29:10,060 archivo en particular. 555 00:29:10,060 --> 00:29:14,040 Pero encontraron peces en el archivo, de prueba. 556 00:29:14,040 --> 00:29:18,450 >> Yo también podría decir que, en concreto, sólo que desee ver en el bla archivo, en 557 00:29:18,450 --> 00:29:19,580 cuyo caso no encontrará nada. 558 00:29:19,580 --> 00:29:20,990 Yo sólo quiero mirar en el archivo, de prueba. 559 00:29:20,990 --> 00:29:22,240 Encontrará los peces. 560 00:29:22,240 --> 00:29:25,980 561 00:29:25,980 --> 00:29:29,260 Es un comando muy útil a saber en general. 562 00:29:29,260 --> 00:29:31,640 Hay algunas alternativas a grep que se supone que son más 563 00:29:31,640 --> 00:29:36,780 Programador amable, pero tiendo todavía recurrir a grep. 564 00:29:36,780 --> 00:29:38,030 ¿Preguntas? 565 00:29:38,030 --> 00:29:39,965 566 00:29:39,965 --> 00:29:40,919 Aceptar. 567 00:29:40,919 --> 00:29:42,520 >> ¿Existen otros comandos? 568 00:29:42,520 --> 00:29:45,270 Oh. 569 00:29:45,270 --> 00:29:48,370 Sólo una sola vez una que siempre me encontrar a ser divertido es CAL. 570 00:29:48,370 --> 00:29:55,610 Así notar cuando estoy en esta hermosa modo de pantalla completa, no tengo ni superior como 571 00:29:55,610 --> 00:29:56,720 barra de herramientas o cualquier cosa. 572 00:29:56,720 --> 00:29:59,530 Así cal apenas me da un pequeño calendario que sea adecuado 573 00:29:59,530 --> 00:30:02,380 ahora cortada, supongo. 574 00:30:02,380 --> 00:30:04,770 Pero poco agradable de comandos. 575 00:30:04,770 --> 00:30:06,540 >> JOSÉ: Es [inaudible]. 576 00:30:06,540 --> 00:30:09,170 Otros comandos que pueda tener visto incluyen sonido metálico y crea. 577 00:30:09,170 --> 00:30:11,180 Vamos a ir sobre ellos en más detalle más adelante. 578 00:30:11,180 --> 00:30:13,400 Pero si usted ha estado trabajando en la PSET, usted debe ser 579 00:30:13,400 --> 00:30:15,160 familiarizados con los. 580 00:30:15,160 --> 00:30:16,640 >> ROB: Muy bien. 581 00:30:16,640 --> 00:30:18,520 Preguntas sobre la línea de comando cosas? 582 00:30:18,520 --> 00:30:22,450 583 00:30:22,450 --> 00:30:23,260 Está bien. 584 00:30:23,260 --> 00:30:27,416 Así que vamos a pasar a algunos Cosas relacionadas-C. 585 00:30:27,416 --> 00:30:28,666 Variables matemáticas. 586 00:30:28,666 --> 00:30:39,078 587 00:30:39,078 --> 00:30:40,060 Aceptar. 588 00:30:40,060 --> 00:30:45,230 Así que al igual que tuvimos matemáticas en Scratch, también puede utilizar las matemáticas en C. 589 00:30:45,230 --> 00:30:49,270 >> Antes de llegar a eso por completo, por lo variables. 590 00:30:49,270 --> 00:30:53,920 Recuerde que cada vez que se declara una variable, como int o float y x, que 591 00:30:53,920 --> 00:30:56,710 hay que darle el tipo antes el nombre de la variable. 592 00:30:56,710 --> 00:31:03,020 Así que los tipos que hemos visto hasta ahora son int, float, double, mucho, mucho, que me 593 00:31:03,020 --> 00:31:06,150 en realidad no sabemos si hemos visto que hasta ahora. 594 00:31:06,150 --> 00:31:07,700 >> Hay algunos otros. 595 00:31:07,700 --> 00:31:09,990 Hemos vemos caracteres. 596 00:31:09,990 --> 00:31:13,920 Hay pocas palabras, que es como si fuera el opuesto de largo a largo en donde está 597 00:31:13,920 --> 00:31:16,650 más pequeño que un número entero. 598 00:31:16,650 --> 00:31:18,580 También hemos visto cadena. 599 00:31:18,580 --> 00:31:23,070 Entonces, ¿qué hay de especial en la cadena? 600 00:31:23,070 --> 00:31:25,350 ¿Por qué iba yo a decir que es no es como int? 601 00:31:25,350 --> 00:31:27,030 >> ALTAVOZ 4: En realidad, no existe. 602 00:31:27,030 --> 00:31:27,990 >> ROB: Si. 603 00:31:27,990 --> 00:31:31,820 Así que la única razón por la que tenemos cadena es porque cuando lo haces 604 00:31:31,820 --> 00:31:33,215 hash, incluir cs50.h. 605 00:31:33,215 --> 00:31:36,530 606 00:31:36,530 --> 00:31:42,670 Y vamos a ver ejemplos de esto más tarde - oh, que no maneja tan bien - 607 00:31:42,670 --> 00:31:46,160 donde cs50.h está haciendo algo a lo largo de las líneas de texto 608 00:31:46,160 --> 00:31:49,230 def, estrella char, string. 609 00:31:49,230 --> 00:31:53,280 >> Así que eso es decir que ni siquiera sabe lo que es una estrella de carbón todavía. 610 00:31:53,280 --> 00:31:56,770 Pero esto está diciendo que queremos cadena. 611 00:31:56,770 --> 00:32:00,250 Cualquier lugar que ha estado usando cadena, podría haber estado utilizando estrella char, 612 00:32:00,250 --> 00:32:04,670 que en realidad es un tipo que existe en el lenguaje C. 613 00:32:04,670 --> 00:32:06,680 Pero ya llegaremos a eso. 614 00:32:06,680 --> 00:32:07,860 Ah, y que va a la derecha de nuevo. 615 00:32:07,860 --> 00:32:10,170 Neat. 616 00:32:10,170 --> 00:32:15,370 >> Así mismo con bool donde la verdadera y la falsa. 617 00:32:15,370 --> 00:32:22,510 Eso no es realmente un tipo incorporado en C. En su lugar, es solo, tiene esto que 618 00:32:22,510 --> 00:32:23,740 el valor cero? 619 00:32:23,740 --> 00:32:26,200 Luego sólo tendremos que consideramos que es falsa. 620 00:32:26,200 --> 00:32:27,350 ¿Esto tiene el valor - 621 00:32:27,350 --> 00:32:30,530 así, tiene esto que cualquier valor que no es cero? 622 00:32:30,530 --> 00:32:32,200 A continuación vamos a considerar que es verdad. 623 00:32:32,200 --> 00:32:35,940 Así que una es verdadera, dos es verdadera, nada distinto de cero es verdadero. 624 00:32:35,940 --> 00:32:38,710 625 00:32:38,710 --> 00:32:42,790 Así que estos son los que. 626 00:32:42,790 --> 00:32:47,624 Las preguntas sobre la declaración de variables y tipos de variables y todo eso? 627 00:32:47,624 --> 00:32:48,100 Sí. 628 00:32:48,100 --> 00:32:52,384 >> ALTAVOZ 4: Por largo tiempo, en el libro, que dijo que no tenía por qué ser largo long int. 629 00:32:52,384 --> 00:32:54,288 Pero funcionará igual de largo tiempo? 630 00:32:54,288 --> 00:32:58,210 631 00:32:58,210 --> 00:33:01,470 >> ROB: Así que estos modificadores de tipo. 632 00:33:01,470 --> 00:33:04,170 Así int x. 633 00:33:04,170 --> 00:33:07,710 Así también podemos decir unsigned int x. 634 00:33:07,710 --> 00:33:09,640 Podemos decir short int x. 635 00:33:09,640 --> 00:33:12,570 Podemos decir long long int x. 636 00:33:12,570 --> 00:33:17,250 Pero casi ninguna de esas cosas que me acaba de decir, unsigned int, short int, 637 00:33:17,250 --> 00:33:21,480 int largo plazo, usted puede deshacerse de el int y que sólo asumirá 638 00:33:21,480 --> 00:33:22,510 que te referías a int. 639 00:33:22,510 --> 00:33:26,045 X lo tanto sin firmar, que sólo significa - 640 00:33:26,045 --> 00:33:29,400 usted sabe cómo normalmente con un int, se puede decir x es igual a 3 negativo? 641 00:33:29,400 --> 00:33:31,636 Con un int sin firmar, no se puede. 642 00:33:31,636 --> 00:33:34,480 >> JOSÉ: Y de nuevo, para la cámara, el pregunta era, ¿cuál es la diferencia 643 00:33:34,480 --> 00:33:37,796 entre long long int y sólo el tiempo largo? 644 00:33:37,796 --> 00:33:38,410 >> ROB: Si. 645 00:33:38,410 --> 00:33:42,850 Así lo haré casi nunca escribir long long int. 646 00:33:42,850 --> 00:33:44,100 Voy a escribir mucho, mucho. 647 00:33:44,100 --> 00:33:47,770 648 00:33:47,770 --> 00:33:50,636 >> JOSÉ: ¿Alguna pregunta? 649 00:33:50,636 --> 00:33:51,886 >> ROB: OK. 650 00:33:51,886 --> 00:33:56,180 651 00:33:56,180 --> 00:34:02,390 Pequeño recordatorio Que tonto de que es como declaramos una variable y inicializamos 652 00:34:02,390 --> 00:34:04,450 la variable y declarar otro variables e inicializar 653 00:34:04,450 --> 00:34:05,870 todo en un solo paso. 654 00:34:05,870 --> 00:34:09,370 Así que la declaración de la variable y la variable de inicialización no tienen 655 00:34:09,370 --> 00:34:11,120 a, pero puede ser en la misma línea. 656 00:34:11,120 --> 00:34:15,409 657 00:34:15,409 --> 00:34:20,060 >> Así que tenemos los operadores matemáticos estándar que usted está acostumbrado a - 658 00:34:20,060 --> 00:34:22,199 más, menos, dividir el tiempo. 659 00:34:22,199 --> 00:34:24,389 También hay módulo, que ya veremos. 660 00:34:24,389 --> 00:34:29,060 No hay, por lo menos en C, un poder incorporado 661 00:34:29,060 --> 00:34:31,765 operador de exponenciación caret. 662 00:34:31,765 --> 00:34:33,770 Bueno, hay un operador de intercalación, pero no es el poder. 663 00:34:33,770 --> 00:34:34,239 >> JOSÉ: Pero no es la exponenciación, Sí. 664 00:34:34,239 --> 00:34:36,210 >> ROB: No utilice el símbolo de intercalación asumir que esto significa 665 00:34:36,210 --> 00:34:39,980 como cuadrado o lo que sea. 666 00:34:39,980 --> 00:34:42,289 Así que algunas cosas a tener en mente acerca de la división. 667 00:34:42,289 --> 00:34:46,282 668 00:34:46,282 --> 00:34:48,880 Voy a estar. 669 00:34:48,880 --> 00:34:51,315 Así declaró respuesta initialize. 670 00:34:51,315 --> 00:34:54,670 Así que estamos diciendo respuesta flotador es igual a 1 dividido por 10. 671 00:34:54,670 --> 00:34:57,500 Imprimir respuesta a dos decimales. 672 00:34:57,500 --> 00:35:02,180 >> Y este es el tipo de cosas que yo sería el hombre printf para darse cuenta que 673 00:35:02,180 --> 00:35:05,110 ¿Qué diablos significa%, punto, 2f significa? 674 00:35:05,110 --> 00:35:07,930 Y eso sólo significa que, bueno, ignorando el 0,2. 675 00:35:07,930 --> 00:35:10,420 Y%, f es el que usamos para imprimir a flotar. 676 00:35:10,420 --> 00:35:15,370 El 0.2 está diciendo, de impresión que flotar con dos decimales. 677 00:35:15,370 --> 00:35:19,600 Así que este programa tiene un error, y es posible que han visto esto antes en alguna 678 00:35:19,600 --> 00:35:20,870 Por supuesto CS previa. 679 00:35:20,870 --> 00:35:22,170 Pero, ¿qué es ese bicho? 680 00:35:22,170 --> 00:35:23,050 >> ALTAVOZ 5: Zero. 681 00:35:23,050 --> 00:35:24,130 >> ROB: Si. 682 00:35:24,130 --> 00:35:29,630 Así que cuando decimos, la respuesta es igual 1 dividido por 10, queremos que el 683 00:35:29,630 --> 00:35:31,610 responder que es 0,1. 684 00:35:31,610 --> 00:35:37,450 Pero 1 dividido por 10, 1 es un número entero, 10 es un número entero. 685 00:35:37,450 --> 00:35:41,060 Y así, cuando hacemos un entero dividido por un entero, que vamos a volver 686 00:35:41,060 --> 00:35:42,190 un número entero. 687 00:35:42,190 --> 00:35:43,660 Así que 1 dividido por 10 es 0,1. 688 00:35:43,660 --> 00:35:46,760 >> Ya que tiene que darnos un número entero, que sólo va a tirar que 689 00:35:46,760 --> 00:35:49,410 decimal y decir que la respuesta es 0. 690 00:35:49,410 --> 00:35:55,314 Y así, cuando imprimimos contestar aquí, que va a imprimir 0.00. 691 00:35:55,314 --> 00:35:58,430 >> JOSÉ: Y así como una nota, que en realidad tira a la basura lo que hay después de la 692 00:35:58,430 --> 00:35:59,390 punto decimal. 693 00:35:59,390 --> 00:36:03,180 Así que si en vez tenías 6 dividido por 10, se podría pensar que le daría 694 00:36:03,180 --> 00:36:05,200 0.6 y luego le redondear a 1. 695 00:36:05,200 --> 00:36:10,520 Pero en realidad, lo que sucede cuando se escriba tareas es que se cae por lo que es 696 00:36:10,520 --> 00:36:11,470 después del punto decimal. 697 00:36:11,470 --> 00:36:13,020 Así que 0.6 se convierte en 0. 698 00:36:13,020 --> 00:36:13,370 >> ROB: Si. 699 00:36:13,370 --> 00:36:15,160 Y vamos a decir truncado por eso. 700 00:36:15,160 --> 00:36:21,760 Así que cada vez que juegues a un int, el decimal se trunca. 701 00:36:21,760 --> 00:36:23,980 Así que la solución para que - no hay en realidad dos. 702 00:36:23,980 --> 00:36:27,890 Y yo voy a hacer ese segundo, porque ésta es una solución mucho más fácil. 703 00:36:27,890 --> 00:36:32,670 >> Así que una solución es utilizar flotadores en la división. 704 00:36:32,670 --> 00:36:34,720 Y realmente, es suficiente con hacer que uno de ellos un flotador. 705 00:36:34,720 --> 00:36:37,400 Pero es algo más clara justo para hacer los dos flotadores. 706 00:36:37,400 --> 00:36:41,170 Así 1,0 dividido por 10.0 es dividiendo dos flotadores. 707 00:36:41,170 --> 00:36:43,970 Así que la respuesta va a terminar siendo un flotador, y por lo que se 708 00:36:43,970 --> 00:36:48,050 correctamente imprimir 0.10 aquí. 709 00:36:48,050 --> 00:36:52,220 >> Algo que no funciona tan bien aproximadamente, es decir, bueno, claro, era fácil 710 00:36:52,220 --> 00:36:56,240 suficiente para convertir a un 1 flotar por lo que es 1,0. 711 00:36:56,240 --> 00:37:02,180 Pero ¿y si en lugar de eso tenía dos enteros como int x es igual a 1 y la int y 712 00:37:02,180 --> 00:37:05,660 es igual a 10, y luego queríamos hacer X dividido por Y? 713 00:37:05,660 --> 00:37:10,420 Así que no es fácil simplemente hacer x.0 o algo así. 714 00:37:10,420 --> 00:37:12,790 >> Así que la solución a la que está proyectando. 715 00:37:12,790 --> 00:37:19,780 Así que la fundición es una forma en C para convertir de un tipo variable a otra. 716 00:37:19,780 --> 00:37:22,320 Así que aquí, 1 es un número entero. 717 00:37:22,320 --> 00:37:27,050 Y al poner este flotador frente a ella, estamos lanzando 1 a un flotador. 718 00:37:27,050 --> 00:37:30,350 Y por lo que este se convertirá la 1 a un 1,0. 719 00:37:30,350 --> 00:37:33,380 Y esto va a convertir el 10 a un 10,0. 720 00:37:33,380 --> 00:37:36,790 >> Y luego las cosas se comportan de manera similar a la versión anterior sólo hemos visto 721 00:37:36,790 --> 00:37:42,190 donde, como era de esperar, se obtiene 0,10 y que va a imprimir eso. 722 00:37:42,190 --> 00:37:44,120 Y podemos hacer esto con variables, también. 723 00:37:44,120 --> 00:37:47,376 Así que podemos decir, float x dividido por flotador y. 724 00:37:47,376 --> 00:37:48,626 >> JOSÉ: ¿Alguna pregunta? 725 00:37:48,626 --> 00:37:54,182 726 00:37:54,182 --> 00:38:00,090 >> ROB: Así como en matemáticas regular, tenemos prioridad de los operadores. 727 00:38:00,090 --> 00:38:06,960 Así que en la clase de matemáticas, es más probable llamarlo orden de las operaciones. 728 00:38:06,960 --> 00:38:09,890 Aquí, el término oficial es prioridad de los operadores. 729 00:38:09,890 --> 00:38:15,230 Pero la prioridad de los operadores, o la mayoría operadores, es como se puede esperar. 730 00:38:15,230 --> 00:38:22,660 >> Así que al igual que en matemáticas, 2 veces 10 es va a ser agrupados más de cerca que 731 00:38:22,660 --> 00:38:25,410 este 10 dividido por 2 y luego 2. 732 00:38:25,410 --> 00:38:29,745 El orden de las operaciones, que va a hacer 2 tiempos de 10, 10 dividido por 2, y luego 733 00:38:29,745 --> 00:38:32,720 que va a hacer 20 más 5 más 2. 734 00:38:32,720 --> 00:38:37,020 Así que es como se esperaba, y se puede utilizar paréntesis para agrupar expresiones. 735 00:38:37,020 --> 00:38:41,063 No se puede utilizar corchetes para agrupar expresiones. 736 00:38:41,063 --> 00:38:41,544 ¿Sí? 737 00:38:41,544 --> 00:38:43,468 >> ALTAVOZ 5: ¿Podría realmente simplemente retroceder un segundo? 738 00:38:43,468 --> 00:38:47,316 ¿Puedes echar un int a una cadena? 739 00:38:47,316 --> 00:38:53,330 >> ROB: Así que en C, puede convertir cualquier cosa quiere lo que quieras. 740 00:38:53,330 --> 00:38:55,600 Eso no quiere decir que sea una buena cosa que hacer. 741 00:38:55,600 --> 00:38:59,760 Así que cuando lanzas un int a una cadena, que significa - 742 00:38:59,760 --> 00:39:03,240 y vamos a entrar en este mucho más a fondo - 743 00:39:03,240 --> 00:39:03,720 >> JOSÉ: Mucho más tarde. 744 00:39:03,720 --> 00:39:06,840 >> ROB: yo no quería decir mucho más tarde, así que traté de cambiar mi sentencia. 745 00:39:06,840 --> 00:39:13,370 Vamos a entrar en mucho más a fondo más tarde cuando realmente cuando se tiene un 746 00:39:13,370 --> 00:39:14,810 variable de cadena - 747 00:39:14,810 --> 00:39:17,160 por lo que una cadena puede ser arbitrariamente mucho, ¿verdad? 748 00:39:17,160 --> 00:39:21,850 Y hemos estado diciendo que es un int cuatro bytes y de largo tiempo es de ocho 749 00:39:21,850 --> 00:39:23,620 bytes y un flotador es de cuatro bytes. 750 00:39:23,620 --> 00:39:29,520 Así que una cadena, como un int, sólo tiene un cierto número de bytes a la misma. 751 00:39:29,520 --> 00:39:31,800 Y eso va a ser de cuatro bytes. 752 00:39:31,800 --> 00:39:34,750 >> Pero una cadena puede ser bastante arbitrariamente larga, ¿no? 753 00:39:34,750 --> 00:39:40,190 Así que hola mundo ya, si eso es 10 personajes o lo que sea, eso es ya 754 00:39:40,190 --> 00:39:42,670 va a ser durante los 4 bytes Puedo caber en una cadena. 755 00:39:42,670 --> 00:39:51,140 Y entonces, ¿cómo funcionan realmente las cuerdas es que que son lugar de la memoria esa cadena 756 00:39:51,140 --> 00:39:52,380 está siendo cuidada. 757 00:39:52,380 --> 00:39:57,290 >> Y así por aquí, cuando digo cadena x iguales hola mundo, en el interior de x es 758 00:39:57,290 --> 00:40:01,840 Sólo digo, oh, hola mundo se almacena en este lugar especial en la memoria. 759 00:40:01,840 --> 00:40:07,060 Así que si tratamos de echar un entero en un cadena, entonces estamos tratando de interpretar 760 00:40:07,060 --> 00:40:10,500 una parte aleatoria de la memoria como una cadena. 761 00:40:10,500 --> 00:40:14,465 Y que casi siempre rompe cosas. 762 00:40:14,465 --> 00:40:17,040 >> JOSÉ: Pero si eso confunde usted, vamos a estar cubriendo lo 763 00:40:17,040 --> 00:40:17,550 más en profundidad más adelante. 764 00:40:17,550 --> 00:40:17,850 >> ROB: Si. 765 00:40:17,850 --> 00:40:20,540 Aquí es donde usted va para entrar en punteros. 766 00:40:20,540 --> 00:40:25,485 Y eso es una parte significativa dos semanas de este curso. 767 00:40:25,485 --> 00:40:28,275 >> ALTAVOZ 6: ¿Funciona igual que los objetos en otros idiomas o no realmente? 768 00:40:28,275 --> 00:40:34,050 >> ROB: En otras lenguas, objetos se representaría el uso de punteros. 769 00:40:34,050 --> 00:40:37,070 770 00:40:37,070 --> 00:40:38,793 No es lo mismo, sin embargo. 771 00:40:38,793 --> 00:40:42,110 772 00:40:42,110 --> 00:40:42,910 ¿Alguna idea? 773 00:40:42,910 --> 00:40:43,760 >> JOSÉ: No. 774 00:40:43,760 --> 00:40:44,185 No hay pensamientos. 775 00:40:44,185 --> 00:40:44,980 >> ROB: OK. 776 00:40:44,980 --> 00:40:46,994 >> JOSÉ: Siguiente. 777 00:40:46,994 --> 00:40:48,255 >> ROB: Sólo tienes que ir con eso. 778 00:40:48,255 --> 00:40:48,670 Está bien. 779 00:40:48,670 --> 00:40:51,120 Así módulo. 780 00:40:51,120 --> 00:40:53,900 Al igual que tenemos más, menos, dividir y multiplicar. 781 00:40:53,900 --> 00:40:56,720 Así módulo es uno que usted puede no han visto antes. 782 00:40:56,720 --> 00:40:59,540 Y simplemente dice, dan me el resto. 783 00:40:59,540 --> 00:41:02,850 Así 55% 10. 784 00:41:02,850 --> 00:41:06,840 El resto de hacer 55 dividido por 10 sería 5. 785 00:41:06,840 --> 00:41:09,630 Así 55% 10 es 5. 786 00:41:09,630 --> 00:41:12,260 Y 3% 5 sería 3. 787 00:41:12,260 --> 00:41:14,180 8% 8 será 0. 788 00:41:14,180 --> 00:41:15,903 16% 15 será 1. 789 00:41:15,903 --> 00:41:20,670 >> JOSÉ: Una cosa a destacar con esto, también, es que puede que no funcione como se esperaba 790 00:41:20,670 --> 00:41:22,700 si se utiliza un número negativo. 791 00:41:22,700 --> 00:41:26,215 Así negativo 5% 4, algunas personas Podríamos pensar que es - 792 00:41:26,215 --> 00:41:28,890 793 00:41:28,890 --> 00:41:33,808 ¿qué le parece negativo 5% 4 sería? 794 00:41:33,808 --> 00:41:34,792 >> ALTAVOZ 5: Primero. 795 00:41:34,792 --> 00:41:37,920 >> JOSÉ: ¿Así que hay gente que dice uno, algunas personas dicen que uno negativo. 796 00:41:37,920 --> 00:41:38,450 Pero lo que - 797 00:41:38,450 --> 00:41:40,820 >> ROB: yo ni siquiera tienen , dijo uno de ellos. 798 00:41:40,820 --> 00:41:42,370 >> JOSÉ: Dos, lo siento. 799 00:41:42,370 --> 00:41:43,240 Hay gente que dice - 800 00:41:43,240 --> 00:41:43,450 >> ROB: Tres. 801 00:41:43,450 --> 00:41:43,800 >> JOSÉ: ¿Tres? 802 00:41:43,800 --> 00:41:44,890 >> ROB: Negativo - 803 00:41:44,890 --> 00:41:45,950 lo que fue el - negativo de cinco - 804 00:41:45,950 --> 00:41:47,100 >> JOSÉ: Tres, tres, tres. 805 00:41:47,100 --> 00:41:48,450 Lo siento. 806 00:41:48,450 --> 00:41:51,910 Debido modulo, por lo general, cuando has visto en otros lugares, por lo general significa 807 00:41:51,910 --> 00:41:54,000 devolver un número positivo, ¿no? 808 00:41:54,000 --> 00:42:01,160 >> ROB: Así que cuando decimos en matemáticas, del 10%, que tienden a querer darle - 809 00:42:01,160 --> 00:42:05,980 si mod 10, entonces esperamos obtener un número entre 0 y 9. 810 00:42:05,980 --> 00:42:09,860 Aquí, ese no es el caso que obtendrá los números negativos se devuelven. 811 00:42:09,860 --> 00:42:15,898 >> JOSÉ: ¿Así negativo 5% 4 sería negativo 1. 812 00:42:15,898 --> 00:42:19,325 >> ROB: Pero es raro que usted es-ing mod los números negativos, para empezar. 813 00:42:19,325 --> 00:42:25,490 814 00:42:25,490 --> 00:42:25,970 Omita este. 815 00:42:25,970 --> 00:42:27,314 >> JOSÉ: Sí. 816 00:42:27,314 --> 00:42:29,420 >> ROB: Meh. 817 00:42:29,420 --> 00:42:29,990 Aceptar. 818 00:42:29,990 --> 00:42:36,400 Así que una última cosa a destacar sobre carrozas es que es un comportamiento peligroso, 819 00:42:36,400 --> 00:42:39,850 pero los flotadores no son una exacta representación. 820 00:42:39,850 --> 00:42:46,190 Así que volviendo a bytes más, recuerde que un int es siempre cuatro bytes y un 821 00:42:46,190 --> 00:42:47,830 flotador es siempre cuatro bytes. 822 00:42:47,830 --> 00:42:51,340 Así que el ejemplo de Lucas es bastante bueno. 823 00:42:51,340 --> 00:42:55,730 >> Así que piensa en 1 dividido por 3. 824 00:42:55,730 --> 00:42:57,800 Así 0,3333333. 825 00:42:57,800 --> 00:43:03,540 Si sólo tengo 32 bits, ¿cómo puede Almaceno 0.33333 exactamente? 826 00:43:03,540 --> 00:43:07,250 Y tal vez, por alguna razón, usted dice, bien, bien, vamos a decir 827 00:43:07,250 --> 00:43:13,210 de que este particular 1011001, vamos a Basta con decir que debe haber 0.333333. 828 00:43:13,210 --> 00:43:16,960 Bueno, es suficiente con un número finito de esos bits, por lo que es imposible 829 00:43:16,960 --> 00:43:22,550 representar cada punto flotante valor dado sólo 32 bits. 830 00:43:22,550 --> 00:43:25,580 >> Bueno, es imposible representar cualquier valor de coma flotante da infinita - 831 00:43:25,580 --> 00:43:28,480 así, dado cualquier número finito de bits. 832 00:43:28,480 --> 00:43:38,265 Así que la cuestión aquí es, bueno, cuando se utilizó para imprimir a dos decimales, 833 00:43:38,265 --> 00:43:42,000 nos hicieron llegar la respuesta correcta 0.10. 834 00:43:42,000 --> 00:43:47,510 Pero debajo de la capucha, es realmente siendo almacenado lo más cerca posible a 835 00:43:47,510 --> 00:43:51,790 0.10 como esos bits puede representar. 836 00:43:51,790 --> 00:43:53,200 ¿Es esto en la siguiente diapositiva? 837 00:43:53,200 --> 00:43:53,830 ¿O no es así? 838 00:43:53,830 --> 00:43:54,660 >> JOSÉ: Sí, es eso. 839 00:43:54,660 --> 00:43:55,750 >> ROB: Blegh, blegh. 840 00:43:55,750 --> 00:43:57,760 >> JOSÉ: Sí, usted puede apenas tirar de las notas un poco. 841 00:43:57,760 --> 00:43:59,700 >> ROB: Yo sólo voy para ampliar en el último en eso. 842 00:43:59,700 --> 00:44:00,950 Oh, Dios mío, eso es [inaudible]. 843 00:44:00,950 --> 00:44:06,089 844 00:44:06,089 --> 00:44:08,300 Así que ese número. 845 00:44:08,300 --> 00:44:12,300 Eso es lo que se va a imprimir si nos encontramos con ese programa. 846 00:44:12,300 --> 00:44:20,340 Y observe que no es realmente un gran problema si sólo estamos cuidando sobre como 847 00:44:20,340 --> 00:44:21,920 dos y cincuenta y ocho decimales. 848 00:44:21,920 --> 00:44:26,700 Como sólo nos originalmente imprimimos 0.10, y es por eso que vimos nada malo. 849 00:44:26,700 --> 00:44:31,380 Pero una vez que empezamos a entrar en el exacta, el número exacto que es 850 00:44:31,380 --> 00:44:35,660 que representa, vemos que no puede exactamente representar 0.1. 851 00:44:35,660 --> 00:44:40,900 >> Y parte del problema aquí es como, bien, eso está bien, pero, bueno, 852 00:44:40,900 --> 00:44:46,120 en primer lugar, ¿qué pasa si tratamos de hacer, respuesta igual a igual a 0,1? 853 00:44:46,120 --> 00:44:49,200 ¿Es que va a devolver verdadero o falso? 854 00:44:49,200 --> 00:44:51,850 Y lo que es difícil de decir. 855 00:44:51,850 --> 00:44:53,330 Creo que en realidad podría devolver true. 856 00:44:53,330 --> 00:44:55,265 Lo hará primero - 857 00:44:55,265 --> 00:44:56,180 No se. 858 00:44:56,180 --> 00:45:00,090 La respuesta es una vez que empezar a tratar con valores de coma flotante, que prácticamente 859 00:45:00,090 --> 00:45:05,150 tanto no deberían usar la igualdad a causa de esta imprecisión. 860 00:45:05,150 --> 00:45:09,470 >> Y por todo lo que sabe, es la centésima decimal que el 861 00:45:09,470 --> 00:45:13,670 punto flotante no pudo para manejar correctamente. 862 00:45:13,670 --> 00:45:18,180 Y así la igualdad se acaba de fallar incluso aunque el número - si hubieras estado 863 00:45:18,180 --> 00:45:24,450 utilizando números exactos, los números deben han sido exactamente el mismo. 864 00:45:24,450 --> 00:45:27,790 Es en el transcurso de 50 como cálculos utilizando estos flotante 865 00:45:27,790 --> 00:45:30,270 valores de punto, el error puede construir y más y más, y 866 00:45:30,270 --> 00:45:31,125 cosas apenas consiguen mal. 867 00:45:31,125 --> 00:45:33,870 >> JOSÉ: Y ha sido realmente famosos ejemplos de que esto ocurra. 868 00:45:33,870 --> 00:45:37,190 Al igual que los ingenieros de la NASA han llegado a este equivocadas, cohetes causan a explotar en 869 00:45:37,190 --> 00:45:38,665 el aire después de que han sido lanzados. 870 00:45:38,665 --> 00:45:41,490 Y un montón de temas por el estilo. 871 00:45:41,490 --> 00:45:41,956 Así que sí. 872 00:45:41,956 --> 00:45:45,218 >> ALTAVOZ 6: Cuando usted dice 0.3 f, Qué se trunca el resto? 873 00:45:45,218 --> 00:45:46,468 ¿O se redondea hacia arriba o hacia abajo? 874 00:45:46,468 --> 00:45:48,800 875 00:45:48,800 --> 00:45:50,200 >> ROB: ¿Será printf alrededor de ella? 876 00:45:50,200 --> 00:45:52,180 >> JOSÉ: Creo que trunca printf. 877 00:45:52,180 --> 00:45:52,640 >> ROB: OK. 878 00:45:52,640 --> 00:45:59,890 Así que de manera similar podemos ir en la dirección opuesta dirección de este, donde, en este caso, 879 00:45:59,890 --> 00:46:03,320 lo más cerca que podría representar 0.1 fue con este número. 880 00:46:03,320 --> 00:46:06,820 El más cercano que podría ser capaz de representar 0.2 es en la dirección opuesta 881 00:46:06,820 --> 00:46:11,420 dirección, 0,199999996356 o algo así. 882 00:46:11,420 --> 00:46:17,480 Así que si nos fuimos en esa dirección de cosas, entonces printf 0.3 f regresarían 883 00:46:17,480 --> 00:46:20,866 1.99 en lugar de 2.00. 884 00:46:20,866 --> 00:46:22,960 >> JOSÉ: ¿Y no estoy del todo seguro de eso. 885 00:46:22,960 --> 00:46:25,430 Es posible que desee escribir un pequeño, pequeño programa para sólo comprobar eso. 886 00:46:25,430 --> 00:46:29,370 >> ROB: Sin embargo, lo que sí estamos seguros es que si se trató de echar eso a un 887 00:46:29,370 --> 00:46:33,660 int, y echando a un int va a hacer que se trunque el decimal, si 888 00:46:33,660 --> 00:46:38,140 intenta convertir 1.9999999 a un int, obtendrá 1. 889 00:46:38,140 --> 00:46:41,440 Y así, en general usted debe utilizar el función ronda en la biblioteca de matemáticas. 890 00:46:41,440 --> 00:46:44,190 891 00:46:44,190 --> 00:46:45,440 ¿Preguntas? 892 00:46:45,440 --> 00:46:47,660 893 00:46:47,660 --> 00:46:48,982 Aceptar. 894 00:46:48,982 --> 00:46:54,000 >> JOSÉ: Pasemos ahora a las condiciones y las expresiones booleanas. 895 00:46:54,000 --> 00:46:58,120 Por lo que han visto estos antes. 896 00:46:58,120 --> 00:47:07,420 Y en realidad, déjame asegurarme de que mi equipo está en el formato correcto aquí. 897 00:47:07,420 --> 00:47:08,670 Espacio. 898 00:47:08,670 --> 00:47:10,630 899 00:47:10,630 --> 00:47:13,870 Lo sentimos, pero vamos a tener que hacer frente a poco con punto de corte en los bordes. 900 00:47:13,870 --> 00:47:15,830 >> Pero sí, ustedes han visto esto antes de Scratch. 901 00:47:15,830 --> 00:47:19,930 Así que esto de aquí es una expresión que se utiliza en 902 00:47:19,930 --> 00:47:21,250 una sentencia condicional. 903 00:47:21,250 --> 00:47:23,930 Así que la respuesta mayor que cero voluntad decirle verdadero o falso. 904 00:47:23,930 --> 00:47:26,530 Y estos son muy importantes, porque que nos permiten introducir 905 00:47:26,530 --> 00:47:28,670 lógica en nuestro código. 906 00:47:28,670 --> 00:47:32,820 >> Así, por ejemplo, este es un programa escrito en scratch que pide al usuario 907 00:47:32,820 --> 00:47:36,980 para un entero y les dice si el entero que te daban era un 908 00:47:36,980 --> 00:47:38,690 número positivo o negativo. 909 00:47:38,690 --> 00:47:42,980 Y la conversión por aquí a ver es imprima primero la declaración, 910 00:47:42,980 --> 00:47:43,870 dame un entero. 911 00:47:43,870 --> 00:47:45,980 Y luego se les pregunta por un número entero. 912 00:47:45,980 --> 00:47:49,870 >> Y a continuación, utiliza la lógica condicional sobre aquí para comprobar si ese número 913 00:47:49,870 --> 00:47:52,030 era en realidad mayor que cero o no. 914 00:47:52,030 --> 00:47:58,960 Así que aquí tenemos una expresión booleana dentro de un condicional If. 915 00:47:58,960 --> 00:48:00,660 ¿Hay alguna pregunta? 916 00:48:00,660 --> 00:48:03,030 ¿Hay alguna pregunta acerca de eso? 917 00:48:03,030 --> 00:48:03,950 Aceptar. 918 00:48:03,950 --> 00:48:06,140 >> Así que hay algo más que mayor que, por supuesto. 919 00:48:06,140 --> 00:48:10,385 Puede construir expresiones booleanas utilizando la mayoría de los tipos de cosas que usted 920 00:48:10,385 --> 00:48:11,150 pensaría en matemáticas. 921 00:48:11,150 --> 00:48:12,370 Así mayor que. 922 00:48:12,370 --> 00:48:13,740 Eso debería ser un menor que. 923 00:48:13,740 --> 00:48:14,990 Lo siento. 924 00:48:14,990 --> 00:48:18,520 925 00:48:18,520 --> 00:48:19,760 Y la separación. 926 00:48:19,760 --> 00:48:22,971 >> ROB: Dios no lo quiera usted lo deja. 927 00:48:22,971 --> 00:48:23,620 >> JOSÉ: Bueno. 928 00:48:23,620 --> 00:48:25,950 Por lo tanto mayor que, menor que, mayor que, o igual a, menor 929 00:48:25,950 --> 00:48:27,070 que, o igual a. 930 00:48:27,070 --> 00:48:31,980 Utilizamos igual doble para comprobar si hay la igualdad, porque solo es igual a medios 931 00:48:31,980 --> 00:48:32,810 asignación, ¿verdad? 932 00:48:32,810 --> 00:48:33,140 Sí. 933 00:48:33,140 --> 00:48:37,130 Y entonces podemos también no es igual por utilizando el signo de exclamación, es igual. 934 00:48:37,130 --> 00:48:41,530 >> Y este símbolo de exclamación puede También se ampliará de modo que si usted quiere 935 00:48:41,530 --> 00:48:44,050 invertir cualquier tipo de Boole expresión, se puede hacer eso. 936 00:48:44,050 --> 00:48:48,530 Así que esto se evaluará como true Sólo si la respuesta es menos 937 00:48:48,530 --> 00:48:51,240 que o igual a cero. 938 00:48:51,240 --> 00:48:53,950 ¿Tiene preguntas sobre eso? 939 00:48:53,950 --> 00:48:55,180 Aceptar. 940 00:48:55,180 --> 00:48:58,840 >> Así también puede combinar estos expresiones usando lógica Y y 941 00:48:58,840 --> 00:48:59,790 lógico Or. 942 00:48:59,790 --> 00:49:03,530 Así que esto es sólo el símbolo de Y, que debe ser Shift, 7. 943 00:49:03,530 --> 00:49:07,720 Y este es el símbolo de canalización, que es No es un caso menor L. Es el que 944 00:49:07,720 --> 00:49:09,440 eso es justo encima de la tecla de Intro. 945 00:49:09,440 --> 00:49:12,870 Así que utiliza dos de estos para simbolizar lógica y la lógica Or. 946 00:49:12,870 --> 00:49:18,180 >> Así que esto sólo devolverá true si la respuesta es uno, dos, tres, o cuatro. 947 00:49:18,180 --> 00:49:23,030 Y esto sólo se devolverá true si la respuesta está más allá de que a cada lado. 948 00:49:23,030 --> 00:49:26,190 Así que no es de uno, dos, tres, o cuatro. 949 00:49:26,190 --> 00:49:28,385 Y la forma en que utilizaría que en una expresión - 950 00:49:28,385 --> 00:49:29,990 >> ROB: O un cero o un cinco. 951 00:49:29,990 --> 00:49:32,200 >> JOSÉ: Cero o un cinco. 952 00:49:32,200 --> 00:49:32,380 Lo siento. 953 00:49:32,380 --> 00:49:33,320 Sí, sí, sí. 954 00:49:33,320 --> 00:49:34,180 Aceptar. 955 00:49:34,180 --> 00:49:38,980 Y por aquí ahora, de la misma manera que utilizaría esa expresión, una más pequeña 956 00:49:38,980 --> 00:49:42,000 lado la expresión de un Si condicional declaración, también lo utilizaría la 957 00:49:42,000 --> 00:49:47,800 misma manera, con solo colocar en el interior de los paréntesis de la instrucción If. 958 00:49:47,800 --> 00:49:54,020 Así que este printf sólo se disparará si la respuesta es uno, dos, tres, o cuatro. 959 00:49:54,020 --> 00:49:56,002 ¿Tiene preguntas sobre la combinación expresiones? 960 00:49:56,002 --> 00:50:00,450 961 00:50:00,450 --> 00:50:04,240 >> Así que hay otra condicional Construimos que llamamos un If / Else. 962 00:50:04,240 --> 00:50:08,120 Así que, básicamente, esto significa ahora, OK, Si algo que yo quería ver no era 963 00:50:08,120 --> 00:50:11,600 verdadera, entonces ve al Else y realizar esa otra acción. 964 00:50:11,600 --> 00:50:15,570 Así que en este caso particular, me pregunté el usuario de un entero. 965 00:50:15,570 --> 00:50:17,790 Es el número entero mayor que cero? 966 00:50:17,790 --> 00:50:18,310 ¿Sí? 967 00:50:18,310 --> 00:50:20,100 Bueno, entonces escogieron un número positivo. 968 00:50:20,100 --> 00:50:22,320 Si no, entonces debe tener sido negativo o un cero. 969 00:50:22,320 --> 00:50:27,530 Así que eligió un número negativo o un cero en este caso. 970 00:50:27,530 --> 00:50:29,235 Sí. 971 00:50:29,235 --> 00:50:30,485 O un cero. 972 00:50:30,485 --> 00:50:36,320 973 00:50:36,320 --> 00:50:39,300 >> Y luego también tenemos If / Else, Si y Else. 974 00:50:39,300 --> 00:50:45,640 Así que esto nos permite ejecutar una secuencia de cosas sólo si los primeros fallan. 975 00:50:45,640 --> 00:50:49,540 Así que en este caso, ahora estamos haciendo el último que usted escoge cero. 976 00:50:49,540 --> 00:50:53,080 Así que si ellos no escogieron un positivo ni un número negativo, entonces deben 977 00:50:53,080 --> 00:50:53,640 han recogido cero. 978 00:50:53,640 --> 00:50:56,720 Por lo que sólo se va por el cadena como esta. 979 00:50:56,720 --> 00:50:59,960 >> Así un ejemplo de cómo una Si es distinto de - 980 00:50:59,960 --> 00:51:02,590 un if / else es diferente de sólo una secuencia de IFS. 981 00:51:02,590 --> 00:51:07,680 Y esta es una pregunta común que la gente se pregunta es, bueno, si te pones así un 982 00:51:07,680 --> 00:51:11,265 95 en CS50, ¿qué será este programa te lo dijo? 983 00:51:11,265 --> 00:51:12,600 >> ALTAVOZ 5: ¿Tienes una A. 984 00:51:12,600 --> 00:51:13,490 >> JOSÉ: Sí. 985 00:51:13,490 --> 00:51:14,960 Tienes todos los uno de esos derecha. 986 00:51:14,960 --> 00:51:17,130 ¿Tienes una A, que tienes una B, tengo una C y una D, ¿verdad? 987 00:51:17,130 --> 00:51:19,770 Así que todos estos se evaluaron en orden. 988 00:51:19,770 --> 00:51:23,570 Así, mientras que un 95 es mayor que 90, es también es mayor que 80, es también 989 00:51:23,570 --> 00:51:25,790 mayor que 70, y es también mayor que 60. 990 00:51:25,790 --> 00:51:27,620 Así que tienes todos esos grados. 991 00:51:27,620 --> 00:51:31,630 Y supongo que lo haría sólo quieren que el A. 992 00:51:31,630 --> 00:51:34,060 >> La manera de arreglar eso es reemplazar aquellos con Else / Si 's. 993 00:51:34,060 --> 00:51:37,540 Así que en este escenario, se ve que 95 es mayor que 90, y luego lo hace 994 00:51:37,540 --> 00:51:38,885 no evaluar el resto de los estados. 995 00:51:38,885 --> 00:51:41,900 996 00:51:41,900 --> 00:51:43,150 ¿Una pregunta sobre eso? 997 00:51:43,150 --> 00:51:48,580 998 00:51:48,580 --> 00:51:52,470 >> Así que hay otra clase condicional de estructura que tenemos aquí, que nos 999 00:51:52,470 --> 00:51:53,390 llame a una sentencia switch. 1000 00:51:53,390 --> 00:51:57,390 Así que esto le permite comprobar básicamente lo que el valor de un número se pone 1001 00:51:57,390 --> 00:51:59,000 en la sentencia switch es. 1002 00:51:59,000 --> 00:52:03,200 Así que en este escenario, estamos cambiando en n, y nosotros estamos diciendo, oh, si n es 1003 00:52:03,200 --> 00:52:04,710 uno, a continuación, imprimir esa declaración. 1004 00:52:04,710 --> 00:52:07,910 Y a continuación, romper, lo que significa que la salida salir de la sentencia switch. 1005 00:52:07,910 --> 00:52:12,670 >> Si no era uno, entonces, bueno, finalmente, comprobar todos los casos. 1006 00:52:12,670 --> 00:52:16,280 Y así se comprueba si es uno o dos o tres, y se imprime en consecuencia. 1007 00:52:16,280 --> 00:52:19,780 Y lo que aquí esta palabra clave por defecto medios es si ellos no entraron en ningún 1008 00:52:19,780 --> 00:52:21,690 de los que, a continuación, decir no válido. 1009 00:52:21,690 --> 00:52:25,910 Así que digamos que pido ny el usuario me da cuatro. 1010 00:52:25,910 --> 00:52:29,470 Bueno, no coincide con ninguno de esos casos, por lo que se imprimirá lo que está en el 1011 00:52:29,470 --> 00:52:30,540 sección default. 1012 00:52:30,540 --> 00:52:31,180 Sí, la pregunta? 1013 00:52:31,180 --> 00:52:32,614 >> ALTAVOZ 5: ¿Se puede utilizar Boolean expresiones en lugar de 1014 00:52:32,614 --> 00:52:33,570 uno, dos, o tres? 1015 00:52:33,570 --> 00:52:36,940 >> JOSÉ: Entonces la pregunta es ¿Se puede utilizar Expresiones booleanas en lugar de uno, 1016 00:52:36,940 --> 00:52:37,940 dos y tres? 1017 00:52:37,940 --> 00:52:40,520 Y en C, creo que No puede hacer eso. 1018 00:52:40,520 --> 00:52:44,320 Pero en otros idiomas, lo que le podría encontrarse al final de la 1019 00:52:44,320 --> 00:52:46,460 semestre como JavaScript, se puede. 1020 00:52:46,460 --> 00:52:50,050 Bueno, usted tendría que calcular primero ese valor y, a continuación, use en el 1021 00:52:50,050 --> 00:52:50,650 cambiar comunicado. 1022 00:52:50,650 --> 00:52:50,930 ¿Sí? 1023 00:52:50,930 --> 00:52:54,760 >> ROB: Así que parte de los beneficios del interruptor declaraciones se piensa de si lo hizo 1024 00:52:54,760 --> 00:52:58,680 como If / Else, así como si n es igual a es igual a uno o lo que sea. 1025 00:52:58,680 --> 00:53:00,300 Else / Si n es igual a es igual a dos, lo que sea. 1026 00:53:00,300 --> 00:53:01,960 Else / Si n es igual a es igual a tres. 1027 00:53:01,960 --> 00:53:05,930 Así que la forma en que el programa se ejecute es lo sería secuencialmente bajar esa lista 1028 00:53:05,930 --> 00:53:07,500 y comprobar, es n uno? 1029 00:53:07,500 --> 00:53:08,040 Nope. 1030 00:53:08,040 --> 00:53:09,070 Es n dos? 1031 00:53:09,070 --> 00:53:09,490 Nope. 1032 00:53:09,490 --> 00:53:10,940 Es n tres? 1033 00:53:10,940 --> 00:53:11,710 Sí. 1034 00:53:11,710 --> 00:53:12,610 Haga esto. 1035 00:53:12,610 --> 00:53:15,270 >> Mientras que con sentencias switch, es realmente capaz de compilar que sea 1036 00:53:15,270 --> 00:53:16,360 muy rápido. 1037 00:53:16,360 --> 00:53:19,550 Y tan pronto como lo dice interruptor, dice, está bien, n es dos, yo soy 1038 00:53:19,550 --> 00:53:23,060 inmediatamente va a saltar a donde Se supone que debo comenzar a ejecutar. 1039 00:53:23,060 --> 00:53:26,080 Yo no voy a comprobar en primer lugar, se n uno, es n dos? 1040 00:53:26,080 --> 00:53:28,860 Se puede comenzar de inmediato haciendo lo que se supone que debe hacer. 1041 00:53:28,860 --> 00:53:33,830 >> Y debido a eso, no se puede tener condiciones booleanas. 1042 00:53:33,830 --> 00:53:36,480 O de lo que tendría que hacer el secuencial, como, bien, es n 1043 00:53:36,480 --> 00:53:37,820 mayor que cero? 1044 00:53:37,820 --> 00:53:41,140 Else es n mayor de 10 o lo que sea. 1045 00:53:41,140 --> 00:53:44,780 >> JOSÉ: En este caso, si se ha utilizado Si / Si no, Si es así, entonces el interruptor haría 1046 00:53:44,780 --> 00:53:47,792 ejecutar aproximadamente tres veces más rápido que el If / Else If. 1047 00:53:47,792 --> 00:53:53,060 1048 00:53:53,060 --> 00:53:56,040 Podemos organizar el interruptor de tal de manera que no rompemos 1049 00:53:56,040 --> 00:53:57,520 después de cada uno de los casos. 1050 00:53:57,520 --> 00:54:00,960 Así que en este caso, estoy dividir el números que elegimos en uno y 1051 00:54:00,960 --> 00:54:04,250 dos no es un número elevado y tres que son un número alto. 1052 00:54:04,250 --> 00:54:08,290 >> Así pues, en este caso, si n es uno o dos, llegará el caso y luego lo hará 1053 00:54:08,290 --> 00:54:10,640 caen a través, porque no hay descanso. 1054 00:54:10,640 --> 00:54:11,610 Y que va a terminar aquí. 1055 00:54:11,610 --> 00:54:15,360 Así que si elegimos una, que va a hacer el printf y luego romper para que ninguno de 1056 00:54:15,360 --> 00:54:17,610 este se ejecuta. 1057 00:54:17,610 --> 00:54:21,870 Y por supuesto, si entran en tres o alguna otra cosa, entonces se saltará 1058 00:54:21,870 --> 00:54:25,320 esas y no ir allí, y se ejecutará en su lugar el 1059 00:54:25,320 --> 00:54:27,490 línea correspondiente. 1060 00:54:27,490 --> 00:54:29,390 ¿Hay alguna pregunta acerca de eso? 1061 00:54:29,390 --> 00:54:29,780 ¿Sí? 1062 00:54:29,780 --> 00:54:32,642 >> ALTAVOZ 4: ¿Quieres conseguir un error si se tenido un descanso después de un caso, pero 1063 00:54:32,642 --> 00:54:34,550 no tener algo para que lo haga? 1064 00:54:34,550 --> 00:54:37,820 >> JOSÉ: Entonces la pregunta es ¿le consigue un error si tiene un descanso después de 1065 00:54:37,820 --> 00:54:39,730 caso de que uno, pero no hay nada que hacer? 1066 00:54:39,730 --> 00:54:41,520 Y la respuesta es no. 1067 00:54:41,520 --> 00:54:43,172 Usted no va a conseguir realmente un error. 1068 00:54:43,172 --> 00:54:44,590 Sí, mm hmm. 1069 00:54:44,590 --> 00:54:54,540 >> Así como una especie de un pequeño cambio aquí, Voy a poner un printf aquí. 1070 00:54:54,540 --> 00:54:55,790 ¡Vaya. 1071 00:54:55,790 --> 00:55:00,994 1072 00:55:00,994 --> 00:55:04,880 Así que lo imprimiría esto si Puse uno en como entrada? 1073 00:55:04,880 --> 00:55:07,530 1074 00:55:07,530 --> 00:55:07,770 Sí. 1075 00:55:07,770 --> 00:55:10,360 Se diría que no pasó un alto número dos veces, ¿no? 1076 00:55:10,360 --> 00:55:13,500 Porque sería llegar a ese primer caso, no se rompería y caería 1077 00:55:13,500 --> 00:55:15,730 hasta el segundo caso. 1078 00:55:15,730 --> 00:55:16,950 ¿Una pregunta sobre eso? 1079 00:55:16,950 --> 00:55:18,280 >> ROB: ¿Alguna otra pregunta? 1080 00:55:18,280 --> 00:55:20,840 >> JOSÉ: OK, enfriar. 1081 00:55:20,840 --> 00:55:22,400 Está bien. 1082 00:55:22,400 --> 00:55:25,780 Así que no es otra cosa que llamamos un operador ternario, que es básicamente una 1083 00:55:25,780 --> 00:55:29,010 sintaxis alternativa para hacer Si y luego lo demás. 1084 00:55:29,010 --> 00:55:30,470 Y te permite hacerlo todo en una sola línea. 1085 00:55:30,470 --> 00:55:34,110 Así que en este programa en particular, Estoy preguntando al usuario para n. 1086 00:55:34,110 --> 00:55:37,190 Y si n es mayor de 100, le digo ellos escogieron un número alto. 1087 00:55:37,190 --> 00:55:39,560 Else les digo que elegido un número bajo. 1088 00:55:39,560 --> 00:55:43,030 >> Así que podemos usar esta sintaxis muy largo, cadena, S, y luego verifique si n es 1089 00:55:43,030 --> 00:55:45,260 superior a 100 y asignar en consecuencia. 1090 00:55:45,260 --> 00:55:49,450 Pero podemos hacer esto mucho más concisa mediante el uso de esta sintaxis operador ternario 1091 00:55:49,450 --> 00:55:52,090 que consiste en una pregunta marca y dos puntos. 1092 00:55:52,090 --> 00:55:55,070 Así que la interrogante es esencialmente hacer una pregunta, ¿no? 1093 00:55:55,070 --> 00:55:56,625 >> ROB: zoom Tal vez en eso. 1094 00:55:56,625 --> 00:55:57,372 >> JOSÉ: Sí. 1095 00:55:57,372 --> 00:56:00,210 Buen punto. 1096 00:56:00,210 --> 00:56:02,550 Así que este es el operador ternario. 1097 00:56:02,550 --> 00:56:06,100 La primera vez que hago la pregunta, n es mayor que 100? 1098 00:56:06,100 --> 00:56:09,770 Si lo es, entonces ejecuto el primer parte antes de los dos puntos. 1099 00:56:09,770 --> 00:56:13,360 Si no es así, entonces ejecuto el segunda parte después de los dos puntos. 1100 00:56:13,360 --> 00:56:16,640 Así que si n es mayor que 100, a continuación, se recoge alta y pone 1101 00:56:16,640 --> 00:56:18,360 que en la cadena s. 1102 00:56:18,360 --> 00:56:22,170 Si n es menor que 100, que recoge baja y luego pone eso en la cadena s. 1103 00:56:22,170 --> 00:56:30,186 Así que se condensará este pedazo grande hacia abajo en esa sola línea. 1104 00:56:30,186 --> 00:56:32,010 >> ALTAVOZ 5: ¿Eso es popular? 1105 00:56:32,010 --> 00:56:36,070 >> JOSÉ: Sí, es muy popular para los cosas en esencia lo que desea 1106 00:56:36,070 --> 00:56:38,700 do una asignación basada en algún tipo de condición. 1107 00:56:38,700 --> 00:56:43,110 Y en este caso, estábamos tratando de para asignar un valor a la cadena s. 1108 00:56:43,110 --> 00:56:44,840 No es tan - 1109 00:56:44,840 --> 00:56:47,670 Supongo que en realidad no prefiero en los demás casos. 1110 00:56:47,670 --> 00:56:49,390 Pero es especialmente útil para esta tarea. 1111 00:56:49,390 --> 00:56:54,490 >> ROB: Eso es un patrón bastante común donde se tiene una variable que 1112 00:56:54,490 --> 00:56:58,200 que vas a decir, si algo, ajuste esta variable a un valor; otra, establece 1113 00:56:58,200 --> 00:56:59,810 esta variable a otro valor. 1114 00:56:59,810 --> 00:57:03,360 Y ese es el escenario donde utilizar un ternario. 1115 00:57:03,360 --> 00:57:05,220 >> JOSÉ: ¿Y usted está ahorrando un montón de líneas, ¿no? 1116 00:57:05,220 --> 00:57:08,090 Y sólo hace que el código podría decirse que un poco más legible. 1117 00:57:08,090 --> 00:57:08,635 Sí, la pregunta? 1118 00:57:08,635 --> 00:57:12,384 >> ALTAVOZ 6: Para un ternario, ¿podrías ir, string s iguales seg, signo de interrogación? 1119 00:57:12,384 --> 00:57:15,280 Y entonces usted podría tener, por ejemplo, cinco opciones diferentes. 1120 00:57:15,280 --> 00:57:18,310 Y dependiendo de lo que el número de n fue, elegiría uno de esos? 1121 00:57:18,310 --> 00:57:22,210 >> JOSÉ: ¿Así que la pregunta es, ¿hay una especie de sintaxis donde se puede hacer la cadena 1122 00:57:22,210 --> 00:57:25,910 s es igual a N, y luego tener más de dos opciones después de que el signo de interrogación? 1123 00:57:25,910 --> 00:57:29,740 Y una respuesta simple es no, no hay realmente una buena manera de hacer eso a menos que 1124 00:57:29,740 --> 00:57:33,850 que desee anidar ternaria múltiple operadores dentro de la otra. 1125 00:57:33,850 --> 00:57:38,050 >> Usted podría hacer como n mayor que 100, signo de interrogación, y luego otro 1126 00:57:38,050 --> 00:57:41,850 operador ternario, n mayor que 50, signo de interrogación, y el nido de esa manera. 1127 00:57:41,850 --> 00:57:45,240 Pero en ese escenario, el código es haciendo un poco ilegible y desordenado, 1128 00:57:45,240 --> 00:57:47,920 y tal vez sería mejor ir sólo a una instrucción If / Else en ese punto. 1129 00:57:47,920 --> 00:57:54,530 >> ROB: Y también, como nota al margen, PHP implementa incorrectamente el ternario 1130 00:57:54,530 --> 00:57:58,053 operador de tal manera que ternarios anidados incluso no trabajan como deberían. 1131 00:57:58,053 --> 00:57:58,840 >> JOSÉ: Sí. 1132 00:57:58,840 --> 00:58:01,170 Así se pone un poco confuso, especialmente cuando vas 1133 00:58:01,170 --> 00:58:02,145 a diferentes idiomas. 1134 00:58:02,145 --> 00:58:04,810 >> ROB: Está bastante confuso que lenguas están equivocados al respecto. 1135 00:58:04,810 --> 00:58:08,030 1136 00:58:08,030 --> 00:58:11,510 >> JOSÉ: ¿Así que en realidad, sólo para aclarar, ¿todo el mundo sabe lo que 1137 00:58:11,510 --> 00:58:13,900 % S hace por aquí? 1138 00:58:13,900 --> 00:58:15,650 ¿Una pregunta sobre eso? 1139 00:58:15,650 --> 00:58:19,760 Supongo que sólo para la cámara, el% s básicamente nos permite poner un marcador de posición 1140 00:58:19,760 --> 00:58:20,790 para una cadena. 1141 00:58:20,790 --> 00:58:23,920 Y luego, al final, se especifica que el la variable que queremos poner en esta 1142 00:58:23,920 --> 00:58:25,500 marcador de posición es s. 1143 00:58:25,500 --> 00:58:27,730 Así que, básicamente, tiene s y se pone aquí. 1144 00:58:27,730 --> 00:58:32,130 Y luego se imprimirá, que eligió un alto o recogido un número bajo. 1145 00:58:32,130 --> 00:58:33,770 Aceptar. 1146 00:58:33,770 --> 00:58:36,970 >> Así bucles le permiten realizar cosas con movimientos circulares, ¿verdad? 1147 00:58:36,970 --> 00:58:40,300 Es posible que haya encontrado con esto en Arañazos en forma de bucles para siempre 1148 00:58:40,300 --> 00:58:45,650 o Repetir Hasta o Repetir una determinada número de veces. 1149 00:58:45,650 --> 00:58:47,540 ¿Por qué es tan bueno para nosotros? 1150 00:58:47,540 --> 00:58:51,500 Pues bien, en C, digamos que tenemos este canción implementado en scratch que 1151 00:58:51,500 --> 00:58:53,450 canta, esta es la canción que nunca termina. 1152 00:58:53,450 --> 00:58:55,710 Simplemente sigue y sigue y por siempre y para siempre. 1153 00:58:55,710 --> 00:58:59,395 Bueno, realmente no se puede hacer un programa que tiene un número infinito de printf 1154 00:58:59,395 --> 00:59:00,850 declaraciones en ella, ¿no? 1155 00:59:00,850 --> 00:59:04,900 >> Así que en este escenario en particular, de una manera que usted podría hacer este trabajo y 1156 00:59:04,900 --> 00:59:09,330 para hacer que imprima siempre es en lugar de utilizar un bucle While. 1157 00:59:09,330 --> 00:59:13,640 Así que un bucle while se ejecutará lo que hay en el cuerpo de los dos apoyos que 1158 00:59:13,640 --> 00:59:17,250 pertenece a la misma sobre la base de lo que es la condición. 1159 00:59:17,250 --> 00:59:21,170 Así, en este ejemplo particular antes, si queremos imprimir esto para siempre, lo que 1160 00:59:21,170 --> 00:59:23,590 Qué podemos hacer? 1161 00:59:23,590 --> 00:59:25,190 Bueno, claro, ¿no? 1162 00:59:25,190 --> 00:59:32,290 >> Así que este tipo de combina la idea de alguna expresión booleana 1163 00:59:32,290 --> 00:59:33,610 junto con un bucle. 1164 00:59:33,610 --> 00:59:35,780 Y nos enteramos de Boole expresiones anteriores. 1165 00:59:35,780 --> 00:59:39,650 Así que cada vez que la condición interior de Mientras que sigue siendo cierto, este bucle 1166 00:59:39,650 --> 00:59:41,480 ejecutará y sigue y sigue. 1167 00:59:41,480 --> 00:59:44,640 Y en este caso, si sólo suministramos con datos verdaderos, esto provoca un infinito 1168 00:59:44,640 --> 00:59:49,310 bucle que imprime la canción una y otra vez y en lo que deseábamos antes sin 1169 00:59:49,310 --> 00:59:52,410 tener un programa que tiene una infinita número de instrucciones printf, que es 1170 00:59:52,410 --> 00:59:55,220 no es posible. 1171 00:59:55,220 --> 00:59:57,810 >> Así que más convincente, sin embargo, usted puede utilizar esto con un 1172 00:59:57,810 --> 00:59:59,710 variable y una condición. 1173 00:59:59,710 --> 01:00:04,420 Así que digamos que queremos repetir la frase, totalmente descabellado, 10 veces. 1174 01:00:04,420 --> 01:00:08,380 Entonces, ¿qué se puede hacer con un bucle While es primero puede inicializar un contador 1175 01:00:08,380 --> 01:00:10,860 fuera variable de la Mientras bucle a 10. 1176 01:00:10,860 --> 01:00:14,360 Y entonces, básicamente, cada vez que se vaya a través del bucle While, imprima 1177 01:00:14,360 --> 01:00:19,090 la declaración y luego disminuye el variable contador hasta que al final, 1178 01:00:19,090 --> 01:00:23,020 en algún momento, una vez que se resta lo suficiente veces, 1 de I bastantes veces - 1179 01:00:23,020 --> 01:00:27,290 y sólo para aclarar, menos que menos significa que es igual a lo menos 1. 1180 01:00:27,290 --> 01:00:31,280 >> Eso básicamente me traen a la punto en el que una vez llegué a cero, 1181 01:00:31,280 --> 01:00:35,260 condición ya no es verdadera y por lo que sale fuera del bucle. 1182 01:00:35,260 --> 01:00:37,045 Así que totalmente descabellado sólo imprime 10 veces. 1183 01:00:37,045 --> 01:00:39,550 1184 01:00:39,550 --> 01:00:41,080 ¿Una pregunta sobre un bucle While? 1185 01:00:41,080 --> 01:00:44,580 1186 01:00:44,580 --> 01:00:46,790 Aceptar. 1187 01:00:46,790 --> 01:00:50,550 >> Así que hay una manera de hacer lo que acabamos de hizo de una manera más concisa con 1188 01:00:50,550 --> 01:00:51,715 lo que llamamos un bucle. 1189 01:00:51,715 --> 01:00:55,750 Por lo tanto un bucle Para consiste en un inicialización, una condición, y un 1190 01:00:55,750 --> 01:00:58,950 actualización, al igual que teníamos antes en este bucle While. 1191 01:00:58,950 --> 01:00:59,890 Así que vamos a echar un vistazo. 1192 01:00:59,890 --> 01:01:02,900 En este ciclo While, tuvimos una inicialización, entonces tenía un 1193 01:01:02,900 --> 01:01:04,260 condición de que nos registramos. 1194 01:01:04,260 --> 01:01:06,450 Y luego tuvimos una actualización paso en la parte superior. 1195 01:01:06,450 --> 01:01:10,060 >> Con un bucle For, esto básicamente toma estas tres cosas y lo condensa 1196 01:01:10,060 --> 01:01:11,370 hacia abajo en una línea. 1197 01:01:11,370 --> 01:01:15,130 Así que lo primero que se hace en el Para bucle es la inicialización. 1198 01:01:15,130 --> 01:01:19,090 Y entonces usted hace un punto y coma, y ​​luego lo hace el estado, que es lo 1199 01:01:19,090 --> 01:01:22,200 mayor que cero va por allá, y luego la etapa de actualización. 1200 01:01:22,200 --> 01:01:26,470 Así que esto se lleva a cabo en el final del cuerpo del bucle. 1201 01:01:26,470 --> 01:01:28,790 Así que estos dos programas son esencialmente equivalente. 1202 01:01:28,790 --> 01:01:31,960 1203 01:01:31,960 --> 01:01:33,870 >> ¿Alguna pregunta? 1204 01:01:33,870 --> 01:01:37,000 Entonces, ¿qué es una diferencia entre estos dos? 1205 01:01:37,000 --> 01:01:38,000 ¿Alguien puede señalarlo? 1206 01:01:38,000 --> 01:01:40,480 Podría ser un poco más sutil. 1207 01:01:40,480 --> 01:01:41,930 Es sólo una diferencia muy pequeña. 1208 01:01:41,930 --> 01:01:42,330 ¿Sí? 1209 01:01:42,330 --> 01:01:49,008 >> ALTAVOZ 5: Usted no sería capaz de utilizar la variable i fuera del bucle Para 1210 01:01:49,008 --> 01:01:49,962 [Inaudible]? 1211 01:01:49,962 --> 01:01:50,900 >> JOSÉ: Exactamente. 1212 01:01:50,900 --> 01:01:53,550 Así que esto es algo que vamos a llegar a más tarde llamado alcance variable. 1213 01:01:53,550 --> 01:01:56,610 Pero, en esencia, este int vidas I fuera de este bucle While. 1214 01:01:56,610 --> 01:01:59,800 Así que una vez este bucle Mientras se hace ejecución, voy a ser capaz de utilizar lo más tarde 1215 01:01:59,800 --> 01:02:00,880 en en el programa. 1216 01:02:00,880 --> 01:02:05,430 >> Mientras que con este bucle, esta int I está en el ámbito interior de este bucle. 1217 01:02:05,430 --> 01:02:10,240 Y debido a que está en el interior de esta porción del bucle Para, que comienza 1218 01:02:10,240 --> 01:02:13,200 en los paréntesis, y termina con la llave de allí. 1219 01:02:13,200 --> 01:02:16,120 Cualquier cosa que se declara dentro de aquí no se puede utilizar al aire libre. 1220 01:02:16,120 --> 01:02:20,420 Así que si trato de usar que fuera, que va a dime, símbolo declarado. 1221 01:02:20,420 --> 01:02:22,420 Y, esencialmente, no lo haría ser capaz de utilizarlo. 1222 01:02:22,420 --> 01:02:28,460 >> ROB: Y así, hace 10 años, en literalmente todos los casos, las llaves son 1223 01:02:28,460 --> 01:02:31,140 lo que se utiliza para determinar el alcance de una variable. 1224 01:02:31,140 --> 01:02:37,240 Así que ahí, int I es igual a 10 está declarada dentro de este 1225 01:02:37,240 --> 01:02:38,520 juego de llaves. 1226 01:02:38,520 --> 01:02:42,530 Y así, siempre y cuando se intenta utilizar I antes de que esta llave de cierre, está bien. 1227 01:02:42,530 --> 01:02:47,090 1228 01:02:47,090 --> 01:02:51,460 Es posible que aparezca al escribir hacer, usted ver guión, guión, std, iguales, c99. 1229 01:02:51,460 --> 01:02:57,100 >> Así que es una versión posterior de C que GCC ha implementado, que también da 1230 01:02:57,100 --> 01:02:58,740 este acceso directo. 1231 01:02:58,740 --> 01:03:03,505 Así que este utiliza para no ser permitido en C. Y se puede ver por qué, ya que este int 1232 01:03:03,505 --> 01:03:07,600 I es fuera de este corchete pero todavía está considerado como en el 1233 01:03:07,600 --> 01:03:09,750 alcance de estas llaves. 1234 01:03:09,750 --> 01:03:14,120 Pero esto es una cosa muy conveniente, y lo que es una buena extensión. 1235 01:03:14,120 --> 01:03:15,370 >> JOSÉ: ¿Alguna pregunta? 1236 01:03:15,370 --> 01:03:17,550 1237 01:03:17,550 --> 01:03:19,260 Aceptar. 1238 01:03:19,260 --> 01:03:22,820 Entonces, ¿qué es más útil es que a veces usted quiere una especie de dinamismo en 1239 01:03:22,820 --> 01:03:23,410 su bucle, ¿verdad? 1240 01:03:23,410 --> 01:03:26,350 Usted no quiere imprimir sólo necesariamente totalmente descabellado todo el tiempo, que 1241 01:03:26,350 --> 01:03:28,650 desee contar desde 10 o algo así. 1242 01:03:28,650 --> 01:03:32,010 Y lo que puede utilizar la variable de contador dentro de ese bucle también. 1243 01:03:32,010 --> 01:03:35,530 Y en este caso, este programa sólo una cuenta atrás de 10 todo el camino hacia abajo. 1244 01:03:35,530 --> 01:03:39,260 ¿Y qué se imprime? 1245 01:03:39,260 --> 01:03:42,790 No imprimir cero, bien, porque cuando - 1246 01:03:42,790 --> 01:03:45,460 Sí, también no se imprime 11. 1247 01:03:45,460 --> 01:03:49,200 >> Por lo tanto, no se imprime cero, porque cuando I es cero, recuerdo, evalúa 1248 01:03:49,200 --> 01:03:52,170 la condición antes de que entre en para ejecutar el cuerpo del bucle. 1249 01:03:52,170 --> 01:03:56,820 Y cuando I es cero, esto es falso, por lo que no imprimir la cuenta atrás 1250 01:03:56,820 --> 01:04:00,200 cero, sólo se imprime el recuento abajo 10 hasta el fondo a 1. 1251 01:04:00,200 --> 01:04:03,420 Si realmente queremos que se imprima a cero, entonces podríamos poner un signo igual 1252 01:04:03,420 --> 01:04:04,750 después de este signo mayor que. 1253 01:04:04,750 --> 01:04:09,400 1254 01:04:09,400 --> 01:04:10,130 Aceptar. 1255 01:04:10,130 --> 01:04:16,410 >> Así que una manera de hacer la validación de entrada, que es cuando usted le pide al usuario que hacer 1256 01:04:16,410 --> 01:04:18,620 algo, usted quiere asegurarse de que seguir sus instrucciones, es utilizar 1257 01:04:18,620 --> 01:04:19,400 el bucle While, ¿verdad? 1258 01:04:19,400 --> 01:04:22,990 Así que en este caso particular, estoy pidiendo para un número positivo y entonces estoy 1259 01:04:22,990 --> 01:04:23,810 la espera para la entrada. 1260 01:04:23,810 --> 01:04:28,210 >> Y luego he comprobado Aunque la entrada es menor que cero, siga preguntando. 1261 01:04:28,210 --> 01:04:32,100 Así que, mientras me dan un número eso no es positivo, sigue preguntando, 1262 01:04:32,100 --> 01:04:33,600 seguir pidiendo, seguir preguntando. 1263 01:04:33,600 --> 01:04:35,860 Pero lo que es una especie de extraño en esto? 1264 01:04:35,860 --> 01:04:38,570 O lo que no parece óptima sobre esta estructura aquí? 1265 01:04:38,570 --> 01:04:44,282 1266 01:04:44,282 --> 01:04:44,758 ¿Alguien? 1267 01:04:44,758 --> 01:04:45,234 ¿Sí? 1268 01:04:45,234 --> 01:04:47,614 >> ALTAVOZ 6: Te estás repitiendo la instrucción dos veces. 1269 01:04:47,614 --> 01:04:48,100 >> JOSÉ: Así es. 1270 01:04:48,100 --> 01:04:50,090 Así que tenemos dos instrucciones printf aquí, ¿verdad? 1271 01:04:50,090 --> 01:04:53,440 Así que hay una manera de que pudiéramos conseguir esto sólo a uno que haría nuestra 1272 01:04:53,440 --> 01:04:57,170 código más fácil de leer y un poco más limpio. 1273 01:04:57,170 --> 01:05:00,180 Y entonces no tendríamos que han Entra en el doble de bien. 1274 01:05:00,180 --> 01:05:03,740 Y una manera de que usted puede hacer esto es mediante el uso de un bucle Do-While. 1275 01:05:03,740 --> 01:05:07,670 >> Y un bucle do-while es básicamente un diferente forma de un bucle While, donde 1276 01:05:07,670 --> 01:05:11,460 lo que está dentro de las llaves será ejecutado al menos una vez. 1277 01:05:11,460 --> 01:05:14,840 Así que aquí, declaro, int de entrada, fuera primero. 1278 01:05:14,840 --> 01:05:18,100 Y entonces me acaba de decir, hacer esto mientras que la entrada de instrucciones 1279 01:05:18,100 --> 01:05:19,140 es menor que cero. 1280 01:05:19,140 --> 01:05:20,530 Así que golpea el Do primero. 1281 01:05:20,530 --> 01:05:24,190 Siempre va a ejecutar este por lo menos una vez, por lo que siempre le pedirá al usuario 1282 01:05:24,190 --> 01:05:25,960 para la entrada de al menos una vez. 1283 01:05:25,960 --> 01:05:29,390 Y a continuación, se evalúa que la entrada, y continúa en un círculo. 1284 01:05:29,390 --> 01:05:30,135 Sí, la pregunta? 1285 01:05:30,135 --> 01:05:32,602 >> ALTAVOZ 6: ¿Hay una manera de hacerlo [Inaudible] tipos, al igual que si usted dice, 1286 01:05:32,602 --> 01:05:34,268 GetString y alguien [inaudible] 1287 01:05:34,268 --> 01:05:35,220 ¿hay alguna manera de [inaudible] 1288 01:05:35,220 --> 01:05:40,060 >> JOSÉ: ¿Así que la pregunta es, ¿hay una manera de hacer la validación de entrada si el usuario 1289 01:05:40,060 --> 01:05:41,850 no pone en el derecho tipo de variable? 1290 01:05:41,850 --> 01:05:44,460 Así que si pedimos un int y darnos una cadena en lugar. 1291 01:05:44,460 --> 01:05:49,110 Y en las funciones que implementamos para usted, GetInt, GetString en todas 1292 01:05:49,110 --> 01:05:52,680 esas funciones, que en realidad ya hacer ese tipo de entrada de tipo básico 1293 01:05:52,680 --> 01:05:54,120 validación bajo el capó. 1294 01:05:54,120 --> 01:05:57,390 Así que si usted está utilizando las funciones que te dio, que en realidad no tiene que hacerlo. 1295 01:05:57,390 --> 01:06:01,380 >> Pero si usted quiere mirar más en cómo en realidad se puede hacer eso, usted puede mirar 1296 01:06:01,380 --> 01:06:03,360 bajo el capó en el archivo I/O-- 1297 01:06:03,360 --> 01:06:07,990 No presente, las funciones de E / S estándar como una lectura de la entrada estándar y 1298 01:06:07,990 --> 01:06:08,580 salida estándar. 1299 01:06:08,580 --> 01:06:10,630 Y usted puede tener una mejor idea de cómo puede hacer eso. 1300 01:06:10,630 --> 01:06:13,670 >> ROB: Un problema, sin embargo, es específicamente con el ejemplo que 1301 01:06:13,670 --> 01:06:17,070 dijo que espera una cadena y entro en un int. 1302 01:06:17,070 --> 01:06:20,110 ¿Cómo saber la diferencia entre querer intencionalmente la 1303 01:06:20,110 --> 01:06:23,130 cadena 123 frente querer el int 123? 1304 01:06:23,130 --> 01:06:29,230 Así cadena, es casi no hay validación, es sólo lo que 1305 01:06:29,230 --> 01:06:31,600 introducido usted interpretar como una cadena. 1306 01:06:31,600 --> 01:06:35,790 >> Int es más fácil, porque no importa la de entrada se toma por parte del usuario, que son 1307 01:06:35,790 --> 01:06:37,470 teniendo siempre una cadena. 1308 01:06:37,470 --> 01:06:40,650 Y para que la cadena se puede entonces comprobar, son todos ellos 1309 01:06:40,650 --> 01:06:44,218 los dígitos numéricos en realidad? 1310 01:06:44,218 --> 01:06:45,170 >> JOSÉ: OK. 1311 01:06:45,170 --> 01:06:46,420 ¿Una pregunta sobre un bucle Do-While? 1312 01:06:46,420 --> 01:06:49,170 >> ROB: Oh, y esto es también - 1313 01:06:49,170 --> 01:06:55,130 que se remonta a su alcance, un algo común error está tratando de utilizar algunos locales 1314 01:06:55,130 --> 01:06:59,540 variable a partir de dentro de este do-while bucle dentro de esta condición. 1315 01:06:59,540 --> 01:07:02,850 Y en realidad, si nos libramos de esto y dijo, equivale int entrada 1316 01:07:02,850 --> 01:07:06,990 GetInt, el compilador va a gritar nosotros, porque de entrada no existe 1317 01:07:06,990 --> 01:07:08,900 fuera del ámbito de aplicación de estas llaves. 1318 01:07:08,900 --> 01:07:10,792 >> JOSÉ: ¿Y es por eso que Necesitará esta línea aquí. 1319 01:07:10,792 --> 01:07:13,620 1320 01:07:13,620 --> 01:07:14,630 Aceptar. 1321 01:07:14,630 --> 01:07:17,530 Así también se puede salir de un lazo anticipadamente si usted quiere. 1322 01:07:17,530 --> 01:07:21,240 Así que esta es una forma diferente de la implementación de lo que acabamos de implementamos. 1323 01:07:21,240 --> 01:07:24,340 Y en lugar de utilizar la condición dentro de los paréntesis, estamos usando una 1324 01:07:24,340 --> 01:07:26,920 Si la declaración en el interior del cuerpo del bucle Do-While. 1325 01:07:26,920 --> 01:07:30,000 >> Y en el fondo, cuando la entrada es finalmente mayor que cero, lo haremos 1326 01:07:30,000 --> 01:07:31,000 romper el bucle. 1327 01:07:31,000 --> 01:07:33,420 Y así vamos a ir a por todas el camino hasta aquí. 1328 01:07:33,420 --> 01:07:37,920 Y se puede ver que esto haría probablemente será preferido en este 1329 01:07:37,920 --> 01:07:39,870 escenario, porque es un poco poco más limpio y un poco 1330 01:07:39,870 --> 01:07:41,380 poco más fácil de leer. 1331 01:07:41,380 --> 01:07:45,210 Considerando que la presente, que tipo de tener líneas adicionales en el mismo. 1332 01:07:45,210 --> 01:07:47,890 Es sólo un poco más feo, Supongo que, en cierto sentido. 1333 01:07:47,890 --> 01:07:48,530 Sí, la pregunta? 1334 01:07:48,530 --> 01:07:52,178 >> ALTAVOZ 4: Romperá sólo recibe a salir de un juego de llaves? 1335 01:07:52,178 --> 01:07:53,080 >> JOSÉ: Así es. 1336 01:07:53,080 --> 01:07:58,100 Así que la pregunta se romperá sólo a salir de un bucle? 1337 01:07:58,100 --> 01:07:59,280 Y la respuesta es sí. 1338 01:07:59,280 --> 01:08:04,290 Así que si usted ha anidado bucles For, para ejemplo, si tengo Para int i es igual a 0 1339 01:08:04,290 --> 01:08:09,040 hasta 10 y luego por int J es igual a 0 hasta 10, si rompo del interior 1340 01:08:09,040 --> 01:08:12,310 lazo, yo todavía ir al bucle exterior. 1341 01:08:12,310 --> 01:08:15,760 Así que va a mantener la realización de la operaciones en el exterior. 1342 01:08:15,760 --> 01:08:17,640 ¿Una pregunta sobre eso? 1343 01:08:17,640 --> 01:08:18,000 ¿Sí? 1344 01:08:18,000 --> 01:08:21,760 >> ALTAVOZ 5: Pero romper únicas funciones para llaves, no para otra 1345 01:08:21,760 --> 01:08:22,230 declaraciones? 1346 01:08:22,230 --> 01:08:22,700 [Inaudible] 1347 01:08:22,700 --> 01:08:27,620 >> JOSÉ: ¿Así que la pregunta es se romperá única función de los bucles en contraposición a 1348 01:08:27,620 --> 01:08:29,014 otras declaraciones como si? 1349 01:08:29,014 --> 01:08:32,950 Y sí, ese es el caso, porque que está rompiendo hacia fuera de un bucle, a la derecha, 1350 01:08:32,950 --> 01:08:33,630 en un sentido. 1351 01:08:33,630 --> 01:08:37,215 >> ROB: En la gran mayoría de los casos, es este es el tipo de Si algo, 1352 01:08:37,215 --> 01:08:37,660 a continuación, romper. 1353 01:08:37,660 --> 01:08:41,580 Así que usted no tiene que romper para aplicar a Si el que está envolviendo a su alrededor. 1354 01:08:41,580 --> 01:08:45,250 Y también, esto no es mucho de un bucle, pero recuerde que los interruptores son también 1355 01:08:45,250 --> 01:08:46,340 escapado de por descansos. 1356 01:08:46,340 --> 01:08:48,390 Vimos las pausas se utilizan con interruptores antes. 1357 01:08:48,390 --> 01:08:52,189 >> JOSÉ: ¿Y usted también puede usarlas en los bucles while y for bucles. 1358 01:08:52,189 --> 01:08:54,560 ¿Alguna pregunta? 1359 01:08:54,560 --> 01:08:55,830 Aceptar. 1360 01:08:55,830 --> 01:08:57,779 Así que la próxima es hasta funciones. 1361 01:08:57,779 --> 01:09:01,500 Así que se podría haber usado uno de estos BYOB bloques en su proyecto de Scratch. 1362 01:09:01,500 --> 01:09:04,569 Y esto permite, básicamente, definir un conjunto de 1363 01:09:04,569 --> 01:09:05,680 instrucciones que se deben seguir. 1364 01:09:05,680 --> 01:09:09,569 >> Y lo que quiero decir con esto es que vamos a pensar de vuelta a las matemáticas, a la derecha, el álgebra. 1365 01:09:09,569 --> 01:09:13,370 Usted tiene lo que se llama una función de x, alguna variable, y digamos que esta 1366 01:09:13,370 --> 01:09:16,080 función es f de x es igual a x más 5. 1367 01:09:16,080 --> 01:09:20,410 Así que usted puede pensar en f de x como este negro caja que lleva en 15 y luego 1368 01:09:20,410 --> 01:09:22,590 produce 20. 1369 01:09:22,590 --> 01:09:26,630 >> Así de forma más general, una función es algo que toma algunos insumos y 1370 01:09:26,630 --> 01:09:27,880 después produce algunas salidas. 1371 01:09:27,880 --> 01:09:31,920 1372 01:09:31,920 --> 01:09:32,960 ¿Y por qué son buenas funciones? 1373 01:09:32,960 --> 01:09:35,189 Son buenos para una serie de razones. 1374 01:09:35,189 --> 01:09:40,470 Así que, ¿alguien quiere tomar una puñalada a lo que la organización quiere decir? 1375 01:09:40,470 --> 01:09:42,630 En términos de qué funciones son útiles? 1376 01:09:42,630 --> 01:09:43,090 ¿Sí? 1377 01:09:43,090 --> 01:09:44,735 >> ALTAVOZ 4: Hace que su lectura del código. 1378 01:09:44,735 --> 01:09:45,399 >> JOSÉ: Así es. 1379 01:09:45,399 --> 01:09:47,670 Así que una de las cosas es que hace el código sea más fácil de leer, ¿verdad? 1380 01:09:47,670 --> 01:09:53,710 En lugar de tener como int x es igual a x veces x veces x, puedo tener el cubo de x, 1381 01:09:53,710 --> 01:09:57,190 que es más legible y más comprensible para un lector. 1382 01:09:57,190 --> 01:10:01,150 >> La organización es también en términos de dividir el código en manejable 1383 01:10:01,150 --> 01:10:05,610 porciones, de manera que en lugar de intentar poner en práctica todo esto en una larga sección 1384 01:10:05,610 --> 01:10:09,070 en principal, se puede ordenar de dividirlo en como, OK, vamos a escribir una función 1385 01:10:09,070 --> 01:10:11,910 al cubo algo, vamos a escribir una funcionar para cuadrar algo. 1386 01:10:11,910 --> 01:10:15,950 De esa manera usted puede dividirlo en minúscula, pequeñas piezas que se pueden abordar 1387 01:10:15,950 --> 01:10:18,944 en lugar de tratar de abordar un gran problema a la vez. 1388 01:10:18,944 --> 01:10:21,806 >> ROB: O incluso pequeñas, pequeñas piezas que usted y su pareja puede hacer frente. 1389 01:10:21,806 --> 01:10:22,283 >> JOSÉ: Sí. 1390 01:10:22,283 --> 01:10:23,855 >> ROB: Así que en lugar de dos usted tratando de implantar un 1391 01:10:23,855 --> 01:10:27,170 funcionar al mismo tiempo. 1392 01:10:27,170 --> 01:10:28,800 >> JOSÉ: Simplificación. 1393 01:10:28,800 --> 01:10:30,050 ¿Alguien quiere tomar una conjetura? 1394 01:10:30,050 --> 01:10:33,080 1395 01:10:33,080 --> 01:10:33,410 ¿Sí? 1396 01:10:33,410 --> 01:10:34,675 >> ALTAVOZ 5: Más repetición. 1397 01:10:34,675 --> 01:10:35,260 >> JOSÉ: Así es. 1398 01:10:35,260 --> 01:10:39,210 Así que una cosa que usted puede hacer con simplificación es que es una especie de sobre 1399 01:10:39,210 --> 01:10:42,520 la misma línea que la reutilización es que una vez que escribo una función de cubo, que pueda 1400 01:10:42,520 --> 01:10:45,410 sólo tiene que utilizar una y otra y otra vez de nuevo en mi programa en lugar de escribir 1401 01:10:45,410 --> 01:10:49,610 x veces x veces x más y una y otra vez. 1402 01:10:49,610 --> 01:10:52,980 Y aquí también la simplificación sólo significa que hace que su código de tipo de 1403 01:10:52,980 --> 01:10:55,900 más fácil de depurar una vez se divide esto en funciones. 1404 01:10:55,900 --> 01:10:58,250 Porque entonces usted puede localizar donde sus problemas de tipo de son. 1405 01:10:58,250 --> 01:11:00,910 1406 01:11:00,910 --> 01:11:02,160 ¿Alguna pregunta? 1407 01:11:02,160 --> 01:11:04,200 1408 01:11:04,200 --> 01:11:06,540 >> Así que otra idea es la abstracción, ¿verdad? 1409 01:11:06,540 --> 01:11:07,390 Este cuadro negro. 1410 01:11:07,390 --> 01:11:11,360 Como sabe usted lo que hace GetInt para recibir la entrada del usuario? 1411 01:11:11,360 --> 01:11:12,510 Realmente no hemos dicho a usted, ¿verdad? 1412 01:11:12,510 --> 01:11:15,670 Todo lo que hemos dicho es GetInt hace exactamente lo que dice que hace. 1413 01:11:15,670 --> 01:11:18,440 Así que incluso si no le decimos cómo funciona, todavía sabe. 1414 01:11:18,440 --> 01:11:21,670 >> Así que en este caso particular, se trata de una función cuádruple, que hace 1415 01:11:21,670 --> 01:11:24,520 diferentes cosas para una entrada para producir una salida. 1416 01:11:24,520 --> 01:11:28,050 Y usted puede cuadruplicar el número multiplicándolo por cuatro. 1417 01:11:28,050 --> 01:11:30,790 O puede que llamamos poco cambiar por dos. 1418 01:11:30,790 --> 01:11:32,960 Y vamos a cubrir este un poco más tarde. 1419 01:11:32,960 --> 01:11:36,570 Y no hay necesidad de saber cómo esta función realmente funciona, siempre y cuando 1420 01:11:36,570 --> 01:11:37,640 funciona como se indica. 1421 01:11:37,640 --> 01:11:40,740 >> Así que bajo el capó, que podría ser como, devuelva los tiempos de entrada 1422 01:11:40,740 --> 01:11:41,690 ocho dividido por dos. 1423 01:11:41,690 --> 01:11:42,510 Y no vas a saber, ¿verdad? 1424 01:11:42,510 --> 01:11:44,970 Todo lo que necesitas saber es hace lo que dice. 1425 01:11:44,970 --> 01:11:48,070 Así que eso es lo útil acerca de la abstracción. 1426 01:11:48,070 --> 01:11:52,910 >> Y otra cosa es una especie de esta idea de la localización de su código a uno 1427 01:11:52,910 --> 01:11:54,280 particular la sección. 1428 01:11:54,280 --> 01:11:57,450 Así que si usted tiene un problema, no lo hace tienes que ir por todo el código que intenta 1429 01:11:57,450 --> 01:11:58,730 para fijar dónde estaba el problema. 1430 01:11:58,730 --> 01:12:00,990 Así que en este caso, he implementado cubicar mal. 1431 01:12:00,990 --> 01:12:02,820 Pensé cubo estaba multiplicando por tres. 1432 01:12:02,820 --> 01:12:05,760 >> Así que en este caso, se trata de un programa que acaba de multiplicar por tres 1433 01:12:05,760 --> 01:12:06,750 en todas partes. 1434 01:12:06,750 --> 01:12:10,910 Y hay otro programa que tiene cubo factorizada fuera en una función. 1435 01:12:10,910 --> 01:12:14,040 Y ahora si quiero arreglar mi error aquí, tengo que arreglar cada línea 1436 01:12:14,040 --> 01:12:15,620 de código de este programa. 1437 01:12:15,620 --> 01:12:19,190 Mientras que, por otro lado, si uso el función, sólo tiene que cambiar 1438 01:12:19,190 --> 01:12:20,650 lo que estaba mal en un solo lugar. 1439 01:12:20,650 --> 01:12:25,330 1440 01:12:25,330 --> 01:12:28,730 >> Así, en ciencias de la computación, que llamar a las entradas y salidas. 1441 01:12:28,730 --> 01:12:31,640 Las entradas se denominan parámetros o argumentos y salidas se llaman 1442 01:12:31,640 --> 01:12:32,950 devolver valores. 1443 01:12:32,950 --> 01:12:39,000 Y vamos a ver cómo esto nos ayuda a clasificar de definir una función en un segundo. 1444 01:12:39,000 --> 01:12:41,430 Así que esta es una definición de función para la cubicación. 1445 01:12:41,430 --> 01:12:45,110 Así que toma una entrada, y luego devuelve ese número multiplicado 1446 01:12:45,110 --> 01:12:47,020 sí mismo tres veces. 1447 01:12:47,020 --> 01:12:48,020 Así que vamos a desglosar esta información. 1448 01:12:48,020 --> 01:12:53,090 >> Así que tenemos una cabecera de la función, que consiste básicamente en tres cosas. 1449 01:12:53,090 --> 01:12:56,050 Así que tenemos los parámetros, que son, como he dicho antes, la 1450 01:12:56,050 --> 01:12:57,680 insumos para esta función. 1451 01:12:57,680 --> 01:12:59,300 Y entonces le damos la función de un nombre. 1452 01:12:59,300 --> 01:13:00,740 En este caso, se llama cubo. 1453 01:13:00,740 --> 01:13:03,860 Y a continuación, especificamos lo que el tipo de del valor de retorno es. 1454 01:13:03,860 --> 01:13:06,760 >> Así que en este caso, mi función cubo toma en un entero y también 1455 01:13:06,760 --> 01:13:07,890 devuelve un entero. 1456 01:13:07,890 --> 01:13:11,510 Así que si paso en dos, dos es un número entero, devuelve ocho a mí, lo que 1457 01:13:11,510 --> 01:13:13,250 es un número entero. 1458 01:13:13,250 --> 01:13:15,420 Así devolver parámetros de nombre de tipo. 1459 01:13:15,420 --> 01:13:16,670 Preguntas acerca de eso? 1460 01:13:16,670 --> 01:13:19,440 1461 01:13:19,440 --> 01:13:24,230 >> Y a continuación, el valor de retorno es en realidad especificado al final diciendo retorno 1462 01:13:24,230 --> 01:13:27,540 y luego regresar lo contiene el valor devuelto. 1463 01:13:27,540 --> 01:13:30,940 Así que en este caso, si lo ponemos todo en conjunto, una función toma en 1464 01:13:30,940 --> 01:13:35,100 parámetros, se llama algo, y devuelve algo que es el tipo 1465 01:13:35,100 --> 01:13:36,350 que se dice que iba a ser. 1466 01:13:36,350 --> 01:13:39,830 1467 01:13:39,830 --> 01:13:41,080 ¿Alguna pregunta? 1468 01:13:41,080 --> 01:13:43,710 1469 01:13:43,710 --> 01:13:45,080 >> Entonces, ¿cómo se utiliza una función? 1470 01:13:45,080 --> 01:13:49,230 Bueno, escribimos una función y luego lo usamos en nuestro programa, ¿no? 1471 01:13:49,230 --> 01:13:51,565 Así que lo llamé cubo, y entonces puedo usar cubo. 1472 01:13:51,565 --> 01:13:54,200 >> Pero lo que es importante tener en cuenta es que el orden importa. 1473 01:13:54,200 --> 01:13:58,100 Si tengo cubo debajo principal, es va a ejecutar en el cubo. 1474 01:13:58,100 --> 01:14:00,360 Y en este punto, no hay nada llama cubo en el programa, y ​​es 1475 01:14:00,360 --> 01:14:02,550 sólo va a ser así, no tengo ni idea de lo que es el cubo. 1476 01:14:02,550 --> 01:14:05,060 >> Por lo tanto, le dirá, implícita declaración de la función. 1477 01:14:05,060 --> 01:14:06,690 Ese es el error que aparece. 1478 01:14:06,690 --> 01:14:10,230 Y así, en este caso, el cubo está por debajo principal, por lo que no va 1479 01:14:10,230 --> 01:14:12,006 a saber de él. 1480 01:14:12,006 --> 01:14:14,724 >> ALTAVOZ 5: Así principal es por lo general define la última función? 1481 01:14:14,724 --> 01:14:17,290 >> JOSÉ: ¿Así que la pregunta es, es el principal suele ser el último 1482 01:14:17,290 --> 01:14:18,170 Lo que a usted le define? 1483 01:14:18,170 --> 01:14:19,730 Y no. 1484 01:14:19,730 --> 01:14:22,280 Es porque normalmente como principal para estar en la cima, ¿verdad? 1485 01:14:22,280 --> 01:14:24,640 Porque eso es lo primero que quiere abrir el programador de la 1486 01:14:24,640 --> 01:14:25,640 programa para ver. 1487 01:14:25,640 --> 01:14:29,950 Y entonces, ¿cómo podemos resolver este problema de que quiero principal para estar en la cima, pero el 1488 01:14:29,950 --> 01:14:33,750 funciones que queremos, nos los quieren a estar por debajo principal sin embargo, ser capaz de utilizar 1489 01:14:33,750 --> 01:14:34,930 ellos dentro de la principal? 1490 01:14:34,930 --> 01:14:36,870 >> Bueno, utilizamos lo que llamamos un prototipo de función. 1491 01:14:36,870 --> 01:14:40,830 Así que lo que es un prototipo de la función esencialmente se está en primer lugar se lo 1492 01:14:40,830 --> 01:14:45,060 la firma o de la cabecera de la función de lo que queremos implementar abajo 1493 01:14:45,060 --> 01:14:47,420 aquí, y lo ponemos en la parte superior de un programa. 1494 01:14:47,420 --> 01:14:51,400 >> Así que en este caso, se dice que, bueno, más adelante en nuestro programa, vamos 1495 01:14:51,400 --> 01:14:55,010 hacer una promesa para implementar esta función llamada int cubo, que toma 1496 01:14:55,010 --> 01:14:56,260 entero de entrada. 1497 01:14:56,260 --> 01:15:00,870 Así que ahora, ya que está por encima de principal, principal, que va a decir, oh, bueno, 1498 01:15:00,870 --> 01:15:03,910 más adelante en el programa, que va a ser allí, así que puede hacer referencia a ella, así que voy a 1499 01:15:03,910 --> 01:15:05,230 sólo se esperará a que, por ahora. 1500 01:15:05,230 --> 01:15:07,660 >> Y a continuación, en la parte inferior, implementamos cubo. 1501 01:15:07,660 --> 01:15:11,180 Y entonces principal se acaba de decir, así, se ordenará de enlace 1502 01:15:11,180 --> 01:15:12,250 estos dos símbolos juntos. 1503 01:15:12,250 --> 01:15:14,320 Y vamos a cubrir lo que significa más tarde. 1504 01:15:14,320 --> 01:15:17,090 Y así sabrá que este es el función de cubo que se debe utilizar. 1505 01:15:17,090 --> 01:15:19,630 1506 01:15:19,630 --> 01:15:23,383 >> ROB: El [inaudible] de querer principal en la parte inferior o 1507 01:15:23,383 --> 01:15:24,880 superior, he visto tanto. 1508 01:15:24,880 --> 01:15:28,630 Hay cosas que simplemente les gusta poner principal en la parte inferior. 1509 01:15:28,630 --> 01:15:32,520 Pero una vez que un proyecto se pone particularmente grande, por lo general principal se encuentra en una 1510 01:15:32,520 --> 01:15:34,290 presentar todos los suyos. 1511 01:15:34,290 --> 01:15:38,170 Y en ese punto, al igual que el line cubo int haría - 1512 01:15:38,170 --> 01:15:42,460 dentro de stdio.h son un grupo de líneas al igual que int 1513 01:15:42,460 --> 01:15:44,010 línea de entrada de cubo int. 1514 01:15:44,010 --> 01:15:50,170 >> Y así los prototipos son cosas que tienden a poner en los archivos de cabecera, al 1515 01:15:50,170 --> 01:15:52,140 ese momento, no importa. 1516 01:15:52,140 --> 01:15:54,700 Bueno, no importa. 1517 01:15:54,700 --> 01:15:56,070 Aquellos siempre van en la parte superior. 1518 01:15:56,070 --> 01:15:59,490 Y si principal no es un archivo propio, usted no tiene que preocuparse de poner 1519 01:15:59,490 --> 01:16:02,360 prototipos de funciones individuales en el archivo. 1520 01:16:02,360 --> 01:16:05,370 >> JOSÉ: ¿Y vamos a llegar a eso un poco poco más tarde, cuando Rob comienza a hablar 1521 01:16:05,370 --> 01:16:06,380 sobre la compilación. 1522 01:16:06,380 --> 01:16:09,480 Y por eso también hay una diferencia entre parámetro y argumento. 1523 01:16:09,480 --> 01:16:12,500 Y parámetro es justo lo llamamos a estas entradas cuando 1524 01:16:12,500 --> 01:16:13,820 definimos la función. 1525 01:16:13,820 --> 01:16:16,950 Y lo llamamos un argumento cuando realmente pasarlo a la función. 1526 01:16:16,950 --> 01:16:19,600 >> Así pues, en este caso, este es un parámetro, como hemos dicho antes. 1527 01:16:19,600 --> 01:16:24,130 Y cuando realmente lo usamos por allá, cúbica de x, entonces x sí es 1528 01:16:24,130 --> 01:16:25,910 lo que llamamos un argumento al cubo función. 1529 01:16:25,910 --> 01:16:28,150 >> ROB: ¿Entonces los argumentos de los parámetros son - 1530 01:16:28,150 --> 01:16:33,270 hay esta distinción, muy confundido indistintamente. 1531 01:16:33,270 --> 01:16:37,090 En este punto, para mí, es como una de esas palabras que cuando lo vea en 1532 01:16:37,090 --> 01:16:41,190 la naturaleza, no puede dejar de forma inmediata cuestión de si lo están usando en 1533 01:16:41,190 --> 01:16:44,120 el contexto correcto, porque el diferencia es lo suficientemente sutil que sólo 1534 01:16:44,120 --> 01:16:45,500 todo el mundo tiende - 1535 01:16:45,500 --> 01:16:48,530 Yo casi siempre digo argumento independientemente de lo que quiero decir. 1536 01:16:48,530 --> 01:16:51,230 1537 01:16:51,230 --> 01:16:54,630 >> JOSEPH: funciones y también son útiles para lo que llamamos efectos secundarios. 1538 01:16:54,630 --> 01:16:59,230 Así que una función puede recibir ningún insumo, y también puede producir ninguna salida. 1539 01:16:59,230 --> 01:17:03,280 Así que en este caso particular, estoy la definición de una subrutina que no tiene 1540 01:17:03,280 --> 01:17:03,970 valor de retorno. 1541 01:17:03,970 --> 01:17:07,730 Y con el fin de especificar que, utilizamos lo que llamamos un vacío aquí. 1542 01:17:07,730 --> 01:17:10,890 Y por lo que el efecto secundario de esta función es que sólo imprime cosas 1543 01:17:10,890 --> 01:17:11,920 a la página. 1544 01:17:11,920 --> 01:17:13,840 En realidad, no toma ninguna insumos, y no lo hace 1545 01:17:13,840 --> 01:17:15,360 en realidad producir cualquier salida. 1546 01:17:15,360 --> 01:17:18,230 >> Pero esto podría ser útil en el sentido si usted quiere, por ejemplo, depuración 1547 01:17:18,230 --> 01:17:21,530 algo en su programa, si desea escribir una pequeña subrutina que 1548 01:17:21,530 --> 01:17:25,160 imprime, digamos, el contenido de memoria o algo así. 1549 01:17:25,160 --> 01:17:29,800 Y así, estos efectos secundarios son a veces útil fuera del contexto 1550 01:17:29,800 --> 01:17:33,010 de igual que las entradas y salidas. 1551 01:17:33,010 --> 01:17:34,260 ¿Alguna pregunta? 1552 01:17:34,260 --> 01:17:37,270 1553 01:17:37,270 --> 01:17:44,240 >> Y para finalizar este segmento en particular, ¿Qué hace este programa? 1554 01:17:44,240 --> 01:17:47,420 Te voy a dar un par de chicos segundos para leer a través de él. 1555 01:17:47,420 --> 01:17:52,720 1556 01:17:52,720 --> 01:17:56,880 En un nivel muy básico, lo que queremos decir es que intercambia x e y, ¿no? 1557 01:17:56,880 --> 01:18:00,090 >> Entonces, ¿cuántos de ustedes piensan en realidad esto va a cambiar xey? 1558 01:18:00,090 --> 01:18:02,160 Levanten la mano. 1559 01:18:02,160 --> 01:18:02,760 Nadie. 1560 01:18:02,760 --> 01:18:03,070 Aceptar. 1561 01:18:03,070 --> 01:18:06,720 ¿Quién cree que lo hará No intercambiar xyy? 1562 01:18:06,720 --> 01:18:09,120 Y la suma de que era No toda la habitación. 1563 01:18:09,120 --> 01:18:10,440 Así que algunas personas no están seguros. 1564 01:18:10,440 --> 01:18:10,920 Aceptar. 1565 01:18:10,920 --> 01:18:11,630 Eso es razonable. 1566 01:18:11,630 --> 01:18:16,450 >> Así que vamos a ir a través de lo que sucede cuando en realidad se llama a las funciones por primera vez en 1567 01:18:16,450 --> 01:18:18,320 Para responder a esta pregunta. 1568 01:18:18,320 --> 01:18:21,430 Así que esto es lo que la memoria Clase de parecer. 1569 01:18:21,430 --> 01:18:23,860 Esto es algo así como un modelo simplificado de lo que la memoria se ve como cuando 1570 01:18:23,860 --> 01:18:24,800 ejecuta un programa. 1571 01:18:24,800 --> 01:18:27,270 Así que hay algo que se llama la pila hasta aquí y 1572 01:18:27,270 --> 01:18:28,330 algo que se llama el montón. 1573 01:18:28,330 --> 01:18:30,950 Y éstas crecen hacia el medio de memoria. 1574 01:18:30,950 --> 01:18:33,860 >> Así que en este caso particular, cuando se llama a una función, 1575 01:18:33,860 --> 01:18:35,680 consigue poner en la pila. 1576 01:18:35,680 --> 01:18:38,900 Y entonces todo lo que está contenido en ese la función se queda en lo que llamamos 1577 01:18:38,900 --> 01:18:40,550 marco de pila de la función. 1578 01:18:40,550 --> 01:18:44,500 Y así, para conseguir una buena visualización de esto, let's - por ejemplo, tuvimos la 1579 01:18:44,500 --> 01:18:45,960 principal del programa anterior. 1580 01:18:45,960 --> 01:18:47,820 Y en el interior de la principal, que se llama cubo. 1581 01:18:47,820 --> 01:18:50,650 Así principal sería primero van a la pila enmarcar, porque es la primera función 1582 01:18:50,650 --> 01:18:51,640 eso se llama. 1583 01:18:51,640 --> 01:18:55,740 >> Y luego, cuando el cubo se llama dentro de principal, que se puso en la parte superior de la principal 1584 01:18:55,740 --> 01:18:57,790 dentro de la memoria. 1585 01:18:57,790 --> 01:19:02,090 Así que lo que usted notará es que el cubo tiene sus propios parámetros y su 1586 01:19:02,090 --> 01:19:02,950 propios lugareños. 1587 01:19:02,950 --> 01:19:06,720 Así que cuando realmente pasa algo una función, los parámetros que se 1588 01:19:06,720 --> 01:19:09,910 consigue son copias de lo que fue pasado desde principal. 1589 01:19:09,910 --> 01:19:14,140 >> Y para explicar especie de esto, vamos a caminar a través de un programa. 1590 01:19:14,140 --> 01:19:16,960 Así que tenemos la pila, lo que es sólo la parte de la pila. 1591 01:19:16,960 --> 01:19:21,240 Y lo que hacemos es lo primero que inicializamos x e y a uno y dos. 1592 01:19:21,240 --> 01:19:22,400 Así que tenemos estas pequeñas cajas. 1593 01:19:22,400 --> 01:19:25,310 Están sentados en la pila del principal enmarcar en la pila. 1594 01:19:25,310 --> 01:19:26,580 Contienen uno y dos. 1595 01:19:26,580 --> 01:19:28,820 >> Ahora que llamamos intercambio. 1596 01:19:28,820 --> 01:19:33,940 Lo que pasa es que pasamos x e y en cambio y cambio, crea sus propias copias 1597 01:19:33,940 --> 01:19:36,520 de esas variables a utilizar en el interior de su marco de pila. 1598 01:19:36,520 --> 01:19:39,920 Así que ahora por allá, tenemos una, que contiene el valor que tenía x, y b, 1599 01:19:39,920 --> 01:19:41,620 que contiene el valor que y tenían. 1600 01:19:41,620 --> 01:19:42,670 Así que uno, dos. 1601 01:19:42,670 --> 01:19:47,130 >> Y te darás cuenta de que esto es independiente de x e y en el interior de la principal. 1602 01:19:47,130 --> 01:19:51,390 Así que ahora creamos un temporal variable para contener una. 1603 01:19:51,390 --> 01:19:56,100 Hemos establecido una igual a b, por lo que cambios de uno a dos. 1604 01:19:56,100 --> 01:19:59,340 Y entonces nos pusimos b igual a la temperatura, que es uno. 1605 01:19:59,340 --> 01:20:01,640 >> Y entonces ahora salimos fuera de esta función. 1606 01:20:01,640 --> 01:20:04,310 1607 01:20:04,310 --> 01:20:07,410 Al salir de la función, el marco de pila se hizo estallar de la pila. 1608 01:20:07,410 --> 01:20:08,270 Lo llamamos empuje. 1609 01:20:08,270 --> 01:20:12,750 Usted aprieta un marco de pila en la pila y si usted hace estallar de la pila. 1610 01:20:12,750 --> 01:20:16,080 Y así, lo que ocurre es todo lo que había en esa pila marco especie de justo 1611 01:20:16,080 --> 01:20:17,280 sube en llamas. 1612 01:20:17,280 --> 01:20:19,180 Y para que ya no existe. 1613 01:20:19,180 --> 01:20:20,470 >> Pero, ¿qué nos damos cuenta? 1614 01:20:20,470 --> 01:20:23,690 Nunca hemos cambiado realmente el los valores de x e y, ¿no? 1615 01:20:23,690 --> 01:20:26,530 Así que aquellos se quedaron local principal. 1616 01:20:26,530 --> 01:20:29,900 Y pasando cosas en swap, que en realidad nunca ha cambiado los valores. 1617 01:20:29,900 --> 01:20:31,260 Y ¿cómo llamamos a esto? 1618 01:20:31,260 --> 01:20:33,040 Nosotros llamamos a esto pasa por valor. 1619 01:20:33,040 --> 01:20:36,860 >> Así que en C, cuando se pasa las cosas en funciones, se las pasa por su valor y 1620 01:20:36,860 --> 01:20:40,160 hace una copia de ellos para la función de utilizar. 1621 01:20:40,160 --> 01:20:43,980 Y vamos a aprender acerca de algo que se llama pasando por su posterior consulta, pero eso es 1622 01:20:43,980 --> 01:20:45,390 una forma que puede resolver este problema. 1623 01:20:45,390 --> 01:20:47,080 Pero no te preocupes por que hasta más tarde. 1624 01:20:47,080 --> 01:20:52,200 >> ROB: Y en realidad, ese término, que pasa por referencia, por lo que C no tiene ni siquiera 1625 01:20:52,200 --> 01:20:54,270 pasando por referencia. 1626 01:20:54,270 --> 01:20:56,760 C exclusivamente ha de pasar por valor. 1627 01:20:56,760 --> 01:20:59,630 No importa lo que hagas, siempre estás pasando una copia de algo. 1628 01:20:59,630 --> 01:21:03,395 Es sólo que, al igual que en cierto modo me mencioné que antes con punteros 1629 01:21:03,395 --> 01:21:07,690 y que una cadena es realmente sólo cuatro bytes que apunta a algún lugar de la memoria. 1630 01:21:07,690 --> 01:21:11,890 >> Bueno, si tengo esta cadena y es me dice que es donde la cadena - 1631 01:21:11,890 --> 01:21:15,470 bueno, si tengo este puntero a esta colocar en la memoria, entonces puedo pasar una 1632 01:21:15,470 --> 01:21:19,160 copia de ese puntero a una función, y esa función todavía sabe dónde en 1633 01:21:19,160 --> 01:21:19,780 memoria que es. 1634 01:21:19,780 --> 01:21:22,950 Así que estos dos indicadores están señalando al mismo lugar en la memoria, y 1635 01:21:22,950 --> 01:21:26,460 eso es lo que vamos a ser capaces de para modificar las cosas más allá de la 1636 01:21:26,460 --> 01:21:29,852 marco de pila actual. 1637 01:21:29,852 --> 01:21:31,040 >> JOSÉ: ¿Quieres hacer la compilación? 1638 01:21:31,040 --> 01:21:31,820 >> ROB: No, son las 5:30. 1639 01:21:31,820 --> 01:21:32,910 >> JOSÉ: OK. 1640 01:21:32,910 --> 01:21:35,040 Es 05:30. 1641 01:21:35,040 --> 01:21:35,360 Aceptar. 1642 01:21:35,360 --> 01:21:39,280 Así que vamos a cubrir la compilación Supongo que en la próxima sección, o la sección de 1643 01:21:39,280 --> 01:21:42,795 LEADER en ese punto. 1644 01:21:42,795 --> 01:21:43,272 Y - 1645 01:21:43,272 --> 01:21:44,630 >> ROB: ¿Alguna pregunta? 1646 01:21:44,630 --> 01:21:46,760 >> JOSÉ: ¿Alguna pregunta? 1647 01:21:46,760 --> 01:21:47,150 ¿Sí? 1648 01:21:47,150 --> 01:21:52,469 >> ALTAVOZ 5: Uso de cadenas de CS50, cualquier funciones que queremos utilizar para 1649 01:21:52,469 --> 01:21:53,880 aquellos, que será como funciones C. 1650 01:21:53,880 --> 01:21:59,050 CS50 no ha entrado y hecho ningún adicional. 1651 01:21:59,050 --> 01:22:01,850 >> ROB: Correcto. 1652 01:22:01,850 --> 01:22:08,155 Cualquiera de los de C como [inaudible], que utilizaría los de nuestras cadenas. 1653 01:22:08,155 --> 01:22:12,400 >> JOSÉ: Y una última cosa que quiero mención es que tenemos una guía de estilo 1654 01:22:12,400 --> 01:22:13,130 para esta clase. 1655 01:22:13,130 --> 01:22:13,360 >> ROB: Oh, sí. 1656 01:22:13,360 --> 01:22:15,270 >> JOSÉ: Así que si vienes de un programación de fondo antes, 1657 01:22:15,270 --> 01:22:17,750 podría tener ciertas convenciones cuando estás escribiendo código como poner 1658 01:22:17,750 --> 01:22:20,950 llaves en la misma línea o particulares formas de sangría 1659 01:22:20,950 --> 01:22:22,240 o nombrar las variables. 1660 01:22:22,240 --> 01:22:26,870 En esta clase, queremos seguir un guía de estilo específica sólo porque, 1661 01:22:26,870 --> 01:22:31,100 así, si usted sale y trabaja en la industria, que va a esperar 1662 01:22:31,100 --> 01:22:34,780 seguir la guía de estilo de la empresa a la que vas a. 1663 01:22:34,780 --> 01:22:38,040 >> Como por ejemplo, Facebook creo tiene un tipo particular de nombrar 1664 01:22:38,040 --> 01:22:38,760 convención. 1665 01:22:38,760 --> 01:22:42,570 Y hay diferencias entre el camello variables de la carcasa y al igual que 1666 01:22:42,570 --> 01:22:44,610 separándolos con guiones bajos. 1667 01:22:44,610 --> 01:22:52,170 Y también, creo que es más importante, al igual que por ejemplo, la sangría, ¿verdad? 1668 01:22:52,170 --> 01:22:56,440 >> Nosotros empezamos llaves donde la condición es, y 1669 01:22:56,440 --> 01:22:57,730 están en la línea siguiente. 1670 01:22:57,730 --> 01:23:01,230 Y también ponemos llaves en incluso si es sólo una línea. 1671 01:23:01,230 --> 01:23:06,100 Y muchas veces, hay maneras de hacer donde usted puede dejar estos aparatos 1672 01:23:06,100 --> 01:23:08,380 de si se trata de una sola línea bajo la instrucción If. 1673 01:23:08,380 --> 01:23:12,070 Pero en esta clase, queremos seguir un guía de estilo específico para que lo recibe 1674 01:23:12,070 --> 01:23:13,550 utilizado para ese tipo de cosas. 1675 01:23:13,550 --> 01:23:16,410 >> ROB: Sí, y Style 50 se va a hacer cumplir esta guía de estilo, y estamos 1676 01:23:16,410 --> 01:23:18,080 va a utilizar Style 50 al grado de su código. 1677 01:23:18,080 --> 01:23:25,150 Por lo que hace las cosas más fáciles para nosotros y esperemos que no debe hacer cosas que 1678 01:23:25,150 --> 01:23:30,120 mucho peor para usted dado la estilo estandarizado no debería ser tan 1679 01:23:30,120 --> 01:23:31,460 poco realista. 1680 01:23:31,460 --> 01:23:36,000 >> JOSÉ: Y por último, para encontrar el estilo Guía, vaya a manual.cs50.net/style. 1681 01:23:36,000 --> 01:23:37,725 Y sí. 1682 01:23:37,725 --> 01:23:40,575 >> ALTAVOZ 4: ¿Vas a hacer cumplir caracteres por línea? 1683 01:23:40,575 --> 01:23:42,480 >> ROB: Si. 1684 01:23:42,480 --> 01:23:45,405 >> JOSÉ: Lo siento, chicos. 1685 01:23:45,405 --> 01:23:47,680 >> ROB: Eso es como uno de los únicos. 1686 01:23:47,680 --> 01:23:50,420 En este punto, estoy bien con 120. 1687 01:23:50,420 --> 01:23:52,460 Estoy bien con decir 120 caracteres por línea. 1688 01:23:52,460 --> 01:23:53,830 Entiendo que exista un límite. 1689 01:23:53,830 --> 01:23:57,130 Creo que 80 es tan pequeño, pero estamos aplicarla. 1690 01:23:57,130 --> 01:24:00,260 >> JOSÉ: En lo personal, creo que con C, 80 caracteres es más bien. 1691 01:24:00,260 --> 01:24:04,160 Una vez que usted comienza a recibir a otro lenguajes como JavaScript y PHP, y no 1692 01:24:04,160 --> 01:24:08,860 tan razonable que simplemente limitar a 80 caracteres. 1693 01:24:08,860 --> 01:24:09,260 Aceptar. 1694 01:24:09,260 --> 01:24:12,780 Bueno, eso fue la sección super. 1695 01:24:12,780 --> 01:24:14,750 ¿Alguien quiere dulces? 1696 01:24:14,750 --> 01:24:16,000 >> ALTAVOZ 4: Si. 1697 01:24:16,000 --> 01:24:18,667