1 00:00:00,000 --> 00:00:11,050 2 00:00:11,050 --> 00:00:13,351 >> ROB BOWDEN: Este es el sección más cómodo, 3 00:00:13,351 --> 00:00:16,309 pero eso no quiere decir que si usted sentir que no estás más cómodo 4 00:00:16,309 --> 00:00:18,420 usted no va a aprender cosas aquí. 5 00:00:18,420 --> 00:00:20,600 Así que vamos a empezar. 6 00:00:20,600 --> 00:00:22,819 ¿Tiene toboganes ir a la derecha en las cosas. 7 00:00:22,819 --> 00:00:24,360 Estoy a punto de sólo tomo en este momento? 8 00:00:24,360 --> 00:00:25,680 9 00:00:25,680 --> 00:00:26,450 Cambio de las computadoras portátiles. 10 00:00:26,450 --> 00:00:30,470 11 00:00:30,470 --> 00:00:32,950 >> ALLISON: Usted no quiere preséntese, Rob? 12 00:00:32,950 --> 00:00:34,090 >> ROB BOWDEN: Oh, soy Rob. 13 00:00:34,090 --> 00:00:35,182 14 00:00:35,182 --> 00:00:37,470 Este es mi quinto año CS50-ción del TF. 15 00:00:37,470 --> 00:00:38,760 16 00:00:38,760 --> 00:00:39,650 >> GABRIEL: Yo soy Gabriel. 17 00:00:39,650 --> 00:00:41,610 Estoy TF jefe del CS50. 18 00:00:41,610 --> 00:00:44,009 Yo estaba TF año pasado y este año. 19 00:00:44,009 --> 00:00:46,675 ALLISON: Y yo soy Alison, y este es mi segundo año CS50-ción del TF. 20 00:00:46,675 --> 00:00:48,510 21 00:00:48,510 --> 00:00:50,825 >> ROB BOWDEN: Muy bien, así que esta cosa de la izquierda, 22 00:00:50,825 --> 00:00:52,250 espero que hayas visto antes. 23 00:00:52,250 --> 00:00:54,112 Si no porque descargar por ti mismo, 24 00:00:54,112 --> 00:00:55,570 usted debe haber visto en la conferencia. 25 00:00:55,570 --> 00:00:56,590 26 00:00:56,590 --> 00:01:01,320 Así que este es el aparato CS50, y él hizo un poco de una descripción de la misma 27 00:01:01,320 --> 00:01:01,880 en conferencia. 28 00:01:01,880 --> 00:01:06,890 Pero, básicamente, es sólo usted se ejecuta una operación 29 00:01:06,890 --> 00:01:10,550 dentro de su sistema operativo sistema de manera que podemos darle 30 00:01:10,550 --> 00:01:12,540 programas sin necesidad de que preocuparse, oh es esto 31 00:01:12,540 --> 00:01:15,989 ir a trabajar tanto en Windows y Mac, o si algunos de ustedes 32 00:01:15,989 --> 00:01:17,280 ya están usando Linux, Linux. 33 00:01:17,280 --> 00:01:18,532 34 00:01:18,532 --> 00:01:20,240 Es sólo supone que ser un juego común 35 00:01:20,240 --> 00:01:23,010 campo para que todos tengan la mismo entorno exacto. 36 00:01:23,010 --> 00:01:25,344 >> Así que si usted no tiene descargado ya, 37 00:01:25,344 --> 00:01:28,510 usted debe descargarlo, porque eres va a necesitar para el conjunto de problemas. 38 00:01:28,510 --> 00:01:32,335 Y es una de dos gigabytes descarga, por lo que podría tomar un tiempo. 39 00:01:32,335 --> 00:01:33,780 En la Universidad de Harvard que va a ir rápido. 40 00:01:33,780 --> 00:01:35,870 41 00:01:35,870 --> 00:01:37,440 Aparato Así CS50. 42 00:01:37,440 --> 00:01:41,980 >> Ahora bien, en el principio, vamos a hablar sólo un montón de línea de comandos 43 00:01:41,980 --> 00:01:46,880 cosas, y por lo tanto por eso, me refiero a trabajar en este entorno poco por aquí. 44 00:01:46,880 --> 00:01:53,230 Y note todas las cosas Yo digo aquí y ahora 45 00:01:53,230 --> 00:01:56,900 van a trabajar si estás dentro de una terminal interior del aparato, 46 00:01:56,900 --> 00:02:00,790 o si usted está dentro de la ventana de terminal gedit 47 00:02:00,790 --> 00:02:02,090 en el interior del aparato. 48 00:02:02,090 --> 00:02:03,770 Así esos ambientes son idénticos. 49 00:02:03,770 --> 00:02:04,940 50 00:02:04,940 --> 00:02:07,270 >> Pero yo voy a ir a una tercera ruta. 51 00:02:07,270 --> 00:02:12,200 Y notar aquí esto poca dirección IP aquí. 52 00:02:12,200 --> 00:02:15,940 Así que usted no tiene que hacer esto, pero esta IP 53 00:02:15,940 --> 00:02:19,700 address-- ahora si yo-- excepto está bloqueado por esta cosa. 54 00:02:19,700 --> 00:02:22,790 55 00:02:22,790 --> 00:02:27,000 Aceptar, por lo que la dirección IP más en un terminal 56 00:02:27,000 --> 00:02:31,090 aquí-- por lo que este terminal a través de aquí es una terminal en mi Mac. 57 00:02:31,090 --> 00:02:34,540 Así que este es en ningún modo actualmente asociado con el aparato en absoluto. 58 00:02:34,540 --> 00:02:39,360 Y si estás en Windows, entonces usted está va a tener que descargar algo 59 00:02:39,360 --> 00:02:44,430 específicamente para este, en particular, la gente tiende usar masilla, P-U-T-T-Y. 60 00:02:44,430 --> 00:02:50,700 >> Así que lo que voy a hacer es tipo SSH y luego de que la dirección IP. 61 00:02:50,700 --> 00:02:54,030 Bueno, jharvard en esa dirección IP. 62 00:02:54,030 --> 00:03:00,150 Así 192.168.24.220. 63 00:03:00,150 --> 00:03:02,127 Este mensaje de miedo, lo ignoran. 64 00:03:02,127 --> 00:03:02,710 Sólo tienes que escribir sí. 65 00:03:02,710 --> 00:03:04,550 66 00:03:04,550 --> 00:03:06,030 Esto es CS50 en una caja. 67 00:03:06,030 --> 00:03:07,460 Se le pide su contraseña. 68 00:03:07,460 --> 00:03:11,910 >> Y así, en muchos de estos contextos en los que que pide la contraseña, [inaudible]. 69 00:03:11,910 --> 00:03:15,670 Tenemos un montón de preguntas donde que dice que no es en realidad escribir. 70 00:03:15,670 --> 00:03:20,011 No te muestran los caracteres de la contraseña a medida que escribe, en todo caso, 71 00:03:20,011 --> 00:03:23,010 para una función de seguridad, ya que si alguien está mirando sobre su hombro 72 00:03:23,010 --> 00:03:25,870 y ven estrella estrella estrella estrella, entonces 73 00:03:25,870 --> 00:03:28,640 saber que tu contraseña es de cuatro caracteres. 74 00:03:28,640 --> 00:03:32,660 Así que la idea es que le preguntará su contraseña, el tipo. 75 00:03:32,660 --> 00:03:34,490 No va a mostrar que los personajes, 76 00:03:34,490 --> 00:03:36,090 pero en realidad es aceptarlos. 77 00:03:36,090 --> 00:03:39,210 En este caso, cada vez que nunca ver una solicitud de contraseña 78 00:03:39,210 --> 00:03:42,280 tratar con el aparato, el contraseña va a ser carmesí. 79 00:03:42,280 --> 00:03:43,270 Así carmesí. 80 00:03:43,270 --> 00:03:44,730 81 00:03:44,730 --> 00:03:50,550 >> Y ahora aquí dentro de este ventana que está en mi Mac, 82 00:03:50,550 --> 00:03:54,120 Básicamente, estoy teniendo la misma visión exacta 83 00:03:54,120 --> 00:03:57,040 como en el interior de un terminal en el aparato. 84 00:03:57,040 --> 00:03:58,470 Así que usted no tiene que hacer esto. 85 00:03:58,470 --> 00:04:01,300 Usted puede hacer todo lo que quieren interior del aparato. 86 00:04:01,300 --> 00:04:05,140 Yo casi nunca en realidad hago nada en el aparato. 87 00:04:05,140 --> 00:04:09,440 Yo casi siempre minimizar eso y ahora Estoy SSH de trabajo en el aparato. 88 00:04:09,440 --> 00:04:11,480 89 00:04:11,480 --> 00:04:14,180 >> En todo caso, si tener un equipo más lento, 90 00:04:14,180 --> 00:04:15,820 usted podría notar una diferencia. 91 00:04:15,820 --> 00:04:18,839 Hago esto porque prefiero esta ventana terminal. 92 00:04:18,839 --> 00:04:20,881 Tiene algunas características como Puedo dividir la ventana, 93 00:04:20,881 --> 00:04:22,672 y ahora puedo SSH en a través del aparato. 94 00:04:22,672 --> 00:04:24,105 Tengo dos SSH está pasando a la vez. 95 00:04:24,105 --> 00:04:28,030 96 00:04:28,030 --> 00:04:32,250 Si su computadora es particularmente lento y se está trabajando en el aparato, 97 00:04:32,250 --> 00:04:35,200 y te das cuenta de esto es realmente perezoso, lo que sea. 98 00:04:35,200 --> 00:04:38,220 Tiende a ser mucho más rápido si eres SSH-ed en. 99 00:04:38,220 --> 00:04:40,960 Pero por lo demás se puede trabajar de cualquier manera. 100 00:04:40,960 --> 00:04:42,388 >> AUDIENCIA: ¿Qué significa SSH? 101 00:04:42,388 --> 00:04:43,820 102 00:04:43,820 --> 00:04:47,479 >> ROB BOWDEN: conchas de seguros, algo por el estilo? 103 00:04:47,479 --> 00:04:48,270 ¿Qué significa SSH? 104 00:04:48,270 --> 00:04:54,214 105 00:04:54,214 --> 00:04:55,130 GABRIEL: shell seguro. 106 00:04:55,130 --> 00:04:56,463 ALLISON: Es simplemente la cáscara segura. 107 00:04:56,463 --> 00:04:57,720 ROB BOWDEN: shell seguro. 108 00:04:57,720 --> 00:05:03,700 Es un protocolo que es usted-- un protocolo seguro, de manera encriptada. 109 00:05:03,700 --> 00:05:06,850 La gente no puede espiar la red y ver lo que usted está diciendo a nada 110 00:05:06,850 --> 00:05:08,120 estás de SSH-ed a. 111 00:05:08,120 --> 00:05:12,900 Y de hecho, en el Olden días de CS50, por lo que en 2009 112 00:05:12,900 --> 00:05:19,300 cuando yo era un estudiante de primer año, la forma en que usted trabajó en los boletines de problemas CS50, 113 00:05:19,300 --> 00:05:22,490 usted era SSH-ed a algún servidor que nos dio el acceso a, 114 00:05:22,490 --> 00:05:23,497 y que trabajó allí. 115 00:05:23,497 --> 00:05:25,330 Así que usted no tiene este aparato gráfica. 116 00:05:25,330 --> 00:05:26,160 No tenías gedit. 117 00:05:26,160 --> 00:05:28,930 Usted no tiene todas estas cosas que usted podría visualmente apuntar y hacer clic. 118 00:05:28,930 --> 00:05:30,346 Había que trabajar en esta interfaz. 119 00:05:30,346 --> 00:05:31,580 120 00:05:31,580 --> 00:05:33,716 Prefiero trabajar en esta interfaz. 121 00:05:33,716 --> 00:05:36,090 Así que parte de lo que vamos a ir a más en este momento 122 00:05:36,090 --> 00:05:39,560 son un grupo de la los comandos que usted debe 123 00:05:39,560 --> 00:05:42,095 empezar a familiarizarse con tan que avanza en el curso. 124 00:05:42,095 --> 00:05:43,190 125 00:05:43,190 --> 00:05:45,790 Y, honestamente, una vez que acostumbrarse a ellos, 126 00:05:45,790 --> 00:05:48,220 es mucho más rápido para trabajar en este entorno 127 00:05:48,220 --> 00:05:53,690 de lo que es trabajar con el buscador, arrastrando y haciendo clic en las cosas. 128 00:05:53,690 --> 00:05:55,340 129 00:05:55,340 --> 00:05:57,210 >> Así que aquí estamos. 130 00:05:57,210 --> 00:06:01,779 Ahora sólo SSH-ed en, y así el defecto que ubicación: 131 00:06:01,779 --> 00:06:04,820 vio algunos de estos comandos en la clase, pero vamos a repasar todos ellos de nuevo. 132 00:06:04,820 --> 00:06:08,060 La ubicación predeterminada estamos en es el directorio de inicio. 133 00:06:08,060 --> 00:06:11,520 Y directorio, sólo otra palabra para la carpeta. 134 00:06:11,520 --> 00:06:13,310 Así que estamos en el directorio principal. 135 00:06:13,310 --> 00:06:15,889 Escriba ls, listar los archivos en este directorio. 136 00:06:15,889 --> 00:06:17,430 Evidentemente he creado un blah.c anterior. 137 00:06:17,430 --> 00:06:19,120 138 00:06:19,120 --> 00:06:20,472 Así que tenemos un directorio del escritorio. 139 00:06:20,472 --> 00:06:21,930 Se nota el resaltado de sintaxis? 140 00:06:21,930 --> 00:06:27,400 141 00:06:27,400 --> 00:06:32,900 El resaltado de color azul claro indica un directorio y el blanco directo 142 00:06:32,900 --> 00:06:34,380 indica simplemente un archivo sin formato. 143 00:06:34,380 --> 00:06:35,410 144 00:06:35,410 --> 00:06:37,690 Así que no va a haber algunos otros colores que usted ve. 145 00:06:37,690 --> 00:06:41,240 Un archivo ejecutable es probablemente va a ser de color verde o algo por el estilo. 146 00:06:41,240 --> 00:06:44,820 Aceptar, por lo que estamos en el directorio principal. 147 00:06:44,820 --> 00:06:48,970 >> Ahora bien, si yo quiero entrar en una diferente directorio, cd es el comando que quiero. 148 00:06:48,970 --> 00:06:52,720 Así que cambia de directorio, y entonces usted pasar el nombre del directorio 149 00:06:52,720 --> 00:06:54,020 que desea entrar. 150 00:06:54,020 --> 00:06:55,780 Así que aquí tenemos cuatro opciones. 151 00:06:55,780 --> 00:07:03,397 Yo puedo entrar en las descargas, y ahora vemos aquí se ha actualizado este paréntesis 152 00:07:03,397 --> 00:07:04,480 que decir que estoy en ~ / descargas. 153 00:07:04,480 --> 00:07:05,620 154 00:07:05,620 --> 00:07:06,800 >> Entonces, ¿qué es tilde? 155 00:07:06,800 --> 00:07:10,640 Es una forma abreviada de su directorio personal. 156 00:07:10,640 --> 00:07:15,260 Así que casi todo lo que haces va a ser con respecto a su directorio, 157 00:07:15,260 --> 00:07:20,620 y pwd es sólo un comando Yo uso una vez en un año que 158 00:07:20,620 --> 00:07:22,420 sólo imprime el directorio actual. 159 00:07:22,420 --> 00:07:25,730 Y por lo que se ve aquí que ~ / Descargas realmente resuelve 160 00:07:25,730 --> 00:07:26,896 a / home / jharvard / descargas. 161 00:07:26,896 --> 00:07:29,320 162 00:07:29,320 --> 00:07:32,230 Así que / home / jharvard es mi directorio personal. 163 00:07:32,230 --> 00:07:33,700 164 00:07:33,700 --> 00:07:39,400 >> Así que podemos cd punto punto. 165 00:07:39,400 --> 00:07:47,800 Ahora punto punto es un directorio especial que siempre se refiere a un directorio arriba. 166 00:07:47,800 --> 00:07:51,730 Así que si estoy en ~ / descargas, entonces punto cd punto me va a llevar a tilde. 167 00:07:51,730 --> 00:07:52,950 168 00:07:52,950 --> 00:07:55,490 ¿Qué pensamos punto punto cd me va a llevar a ahora? 169 00:07:55,490 --> 00:07:58,740 170 00:07:58,740 --> 00:08:00,570 Me va a traer a / home. 171 00:08:00,570 --> 00:08:04,450 Así tilde por el directorio de trabajo de impresión, Yo estoy ahora / home / jharvard. 172 00:08:04,450 --> 00:08:06,060 173 00:08:06,060 --> 00:08:08,820 un directorio desde que, Ahora dice aquí / home. 174 00:08:08,820 --> 00:08:12,330 175 00:08:12,330 --> 00:08:17,180 >> Ahora punto punto cd. 176 00:08:17,180 --> 00:08:20,910 Ahora estoy en el directorio raíz, y no puedes hacerlo de nuevo. 177 00:08:20,910 --> 00:08:23,340 Te quedas en la directorio raíz para siempre. 178 00:08:23,340 --> 00:08:26,700 El directorio raíz tiene un montón de cosas que, si desea buscar en, 179 00:08:26,700 --> 00:08:27,410 usted puede. 180 00:08:27,410 --> 00:08:29,700 Por ejemplo, si me voy en bin, que contiene 181 00:08:29,700 --> 00:08:35,789 todos estos binarios, tales como ls, y cd, y todas esas cosas. 182 00:08:35,789 --> 00:08:38,630 Así que estos comandos tienen que existir en algún lugar en el sistema, 183 00:08:38,630 --> 00:08:40,820 y está en el directorio / bin. 184 00:08:40,820 --> 00:08:44,530 Pero casi todo lo que haces es va a ser de su directorio personal. 185 00:08:44,530 --> 00:08:49,490 Y cd sin argumentos de ningún tipo, se podría decir cd ~, no es necesario. 186 00:08:49,490 --> 00:08:51,810 cd va a traer usted de nuevo a su directorio personal. 187 00:08:51,810 --> 00:08:53,170 188 00:08:53,170 --> 00:08:54,230 >> Una última. 189 00:08:54,230 --> 00:09:00,200 cd - va a traer de vuelta a el último directorio que usted estaba en. 190 00:09:00,200 --> 00:09:04,080 Así que sólo cd'd dos veces seguidas, así que mi último directorio era el directorio de inicio. 191 00:09:04,080 --> 00:09:11,520 Si voy a recortar bin, y ahora vamos a ir hacia arriba y hacia el usuario. 192 00:09:11,520 --> 00:09:12,550 193 00:09:12,550 --> 00:09:13,280 Cuota de usuario. 194 00:09:13,280 --> 00:09:14,840 195 00:09:14,840 --> 00:09:15,940 Vamos a ir a la cuota de usuario. 196 00:09:15,940 --> 00:09:17,140 Ahora estoy ahora en la cuota de usuario. 197 00:09:17,140 --> 00:09:19,320 cd -, de vuelta en bin. 198 00:09:19,320 --> 00:09:22,980 Así que esto se pone particularmente útil cuando tener-- y que va a cambiar. 199 00:09:22,980 --> 00:09:25,660 Así que la cuota de usuario, de nuevo bin, compartir bin. 200 00:09:25,660 --> 00:09:27,250 >> Así que esto se pone útil. 201 00:09:27,250 --> 00:09:33,150 Usted puede notar que tiene muchos, muchos, muchos directorios anidados. 202 00:09:33,150 --> 00:09:37,370 Y que quieres hacer algo rápida real en un directorio superior. 203 00:09:37,370 --> 00:09:40,330 Usted va a ese directorio, haga cambios y cosas por el estilo, 204 00:09:40,330 --> 00:09:42,400 y ahora quiere ir volver a donde estabas. 205 00:09:42,400 --> 00:09:43,660 cd -. 206 00:09:43,660 --> 00:09:47,320 Siempre estoy frustrado cuando se me ocurre ir 207 00:09:47,320 --> 00:09:49,630 a ese directorio yo quería hacer el trabajo en. 208 00:09:49,630 --> 00:09:52,670 Siempre me siento frustrado cuando lo hice en dos pasos en lugar de un solo paso, 209 00:09:52,670 --> 00:09:55,715 porque eso significa que cd - va poner en esa ubicación intermedia 210 00:09:55,715 --> 00:09:57,010 lugar de donde quiero ir. 211 00:09:57,010 --> 00:09:59,350 212 00:09:59,350 --> 00:10:01,450 >> Así que vemos todos los archivos de lista. 213 00:10:01,450 --> 00:10:03,300 Sabemos cómo moverse hasta el momento. 214 00:10:03,300 --> 00:10:09,900 Así que ahora vamos a hablar de la edición de archivos. 215 00:10:09,900 --> 00:10:18,790 Así que en este curso, usted es casi Siempre se espera que utilizar gedit. 216 00:10:18,790 --> 00:10:24,410 Si quieres, puedes dar el siguiente paso y empezar a aprender un texto de línea de comandos 217 00:10:24,410 --> 00:10:25,240 editor. 218 00:10:25,240 --> 00:10:27,560 Así existen varias opciones. 219 00:10:27,560 --> 00:10:31,760 >> Y los que son, probablemente, va a ser de interés para usted, 220 00:10:31,760 --> 00:10:35,340 tenemos Nano, Vim, Emacs y. 221 00:10:35,340 --> 00:10:40,196 Así Nano es los principiantes línea de comandos editor de texto. 222 00:10:40,196 --> 00:10:42,985 Así Nano vamos en blah.c he creado antes. 223 00:10:42,985 --> 00:10:44,030 224 00:10:44,030 --> 00:10:46,480 Es sólo este archivo C estándar. 225 00:10:46,480 --> 00:10:51,540 Y ves un montón de cosas pasando en la parte inferior de la pantalla, 226 00:10:51,540 --> 00:10:54,100 y al parecer blah.c contiene el código C. 227 00:10:54,100 --> 00:10:55,420 228 00:10:55,420 --> 00:11:00,330 >> Así que en este editor en particular, lo que está diciendo en el bottom-- 229 00:11:00,330 --> 00:11:06,290 ahora este símbolo de intercalación, vemos este ^ G, X ^, ^ S. 230 00:11:06,290 --> 00:11:10,310 Así que en casi todos contexto en el que se ve, 231 00:11:10,310 --> 00:11:13,530 es posible que vea ese símbolo de intercalación en otros lugares en línea, sobre el desbordamiento de la pila, 232 00:11:13,530 --> 00:11:14,450 algo por el estilo. 233 00:11:14,450 --> 00:11:16,970 Casi siempre se refiere a controlar. 234 00:11:16,970 --> 00:11:21,590 Así que para salir de lo que quiero hacer Control de Control de X. X, sale. 235 00:11:21,590 --> 00:11:22,750 236 00:11:22,750 --> 00:11:26,855 Y puedo usar mi flecha teclas para moverse. 237 00:11:26,855 --> 00:11:28,010 238 00:11:28,010 --> 00:11:31,015 Note que no puedo apuntar y hacer clic fácilmente. 239 00:11:31,015 --> 00:11:33,000 240 00:11:33,000 --> 00:11:35,010 Es necesario usar la flecha teclas para moverse. 241 00:11:35,010 --> 00:11:36,950 Puede haber un entorno para apuntar y hacer clic. 242 00:11:36,950 --> 00:11:40,000 >> Pero vamos a hacer algunos cambios. 243 00:11:40,000 --> 00:11:42,100 Ahora el Control X para ir de salida. 244 00:11:42,100 --> 00:11:44,120 Va a decir Guardar búfer modificado. 245 00:11:44,120 --> 00:11:47,900 Ahora el indicador, y para sí, n para no. 246 00:11:47,900 --> 00:11:49,900 Control C para cancelar. 247 00:11:49,900 --> 00:11:50,780 Sólo voy a decir que sí. 248 00:11:50,780 --> 00:11:51,709 Nombre para escribir archivos. 249 00:11:51,709 --> 00:11:53,500 El valor por defecto es el archivo que ya es. 250 00:11:53,500 --> 00:11:54,230 Hit Intro. 251 00:11:54,230 --> 00:11:54,740 Okay. 252 00:11:54,740 --> 00:11:58,580 Ahora he acaba de editar ese archivo, guardado, y se cambió. 253 00:11:58,580 --> 00:11:59,770 254 00:11:59,770 --> 00:12:03,000 >> Así Nano es el más fácil editor de texto acostumbrarse. 255 00:12:03,000 --> 00:12:05,520 Las alternativas son Vim y Emacs. 256 00:12:05,520 --> 00:12:11,250 Esos son los editores de texto de nivel superior que tienen una curva de aprendizaje muy empinada. 257 00:12:11,250 --> 00:12:13,740 Así que mi preferencia personal es Vim. 258 00:12:13,740 --> 00:12:17,175 Y tiene una amplia variedad de opciones. 259 00:12:17,175 --> 00:12:18,210 260 00:12:18,210 --> 00:12:24,070 Y una vez que te acostumbras a él, que nunca 261 00:12:24,070 --> 00:12:26,900 quiero ir a ningún otro editor de texto, ya que sólo 262 00:12:26,900 --> 00:12:29,590 tener tantas cosas disponible para usted en estos, 263 00:12:29,590 --> 00:12:31,690 pero se necesita una muy mucho tiempo para aprender. 264 00:12:31,690 --> 00:12:36,000 Así que tal vez lo que desea forzar a ti mismo en este momento para acostumbrarse a él, 265 00:12:36,000 --> 00:12:38,130 pero yo diría que vale la pena. 266 00:12:38,130 --> 00:12:39,660 Pero es difícil. 267 00:12:39,660 --> 00:12:41,220 >> Y entonces Emacs. 268 00:12:41,220 --> 00:12:44,940 Yo siempre lucho en Emacs porque Yo sé hacer absolutamente nada. 269 00:12:44,940 --> 00:12:47,755 Al parecer, Emacs no es por defecto instalado en el aparato. 270 00:12:47,755 --> 00:12:49,210 271 00:12:49,210 --> 00:12:51,720 Probablemente vamos a añadir que como unas instalaciones por defecto. 272 00:12:51,720 --> 00:12:59,620 273 00:12:59,620 --> 00:13:02,390 Una vez que aprenda una de Vim o Emacs, no hay 274 00:13:02,390 --> 00:13:04,810 ninguna razón de peso para alguna vez aprender del otro, 275 00:13:04,810 --> 00:13:07,570 pero es un estilo completamente diferente. 276 00:13:07,570 --> 00:13:10,460 Aceptar lo que es la edición de archivos de texto. 277 00:13:10,460 --> 00:13:13,374 >> AUDIENCIA: Si a usted le toca Vim en este momento, cómo hacer nosotros-- 278 00:13:13,374 --> 00:13:18,840 279 00:13:18,840 --> 00:13:20,800 >> ROB BOWDEN: Hay múltiples modos en Vim, 280 00:13:20,800 --> 00:13:23,770 y hay toda tutoriales sobre el aprendizaje de Vim. 281 00:13:23,770 --> 00:13:27,390 Así que si quieres pasar a ser en modo de inserción con el fin 282 00:13:27,390 --> 00:13:29,930 para escribir texto, que se puede escriba que de diversas maneras, 283 00:13:29,930 --> 00:13:31,610 pero i es la manera de entrar en el modo de inserción. 284 00:13:31,610 --> 00:13:34,780 En o salir de cualquier daño especial el modo en que se encuentre, sólo escapar. 285 00:13:34,780 --> 00:13:37,640 Y sólo en bash Escape a conseguir de cualquier modo anidados en su. 286 00:13:37,640 --> 00:13:40,360 No está mal, ahora estoy de vuelta en el modo normal. 287 00:13:40,360 --> 00:13:43,790 >> Y así, en modo normal, de dos puntos. 288 00:13:43,790 --> 00:13:45,160 Usted ve que aparece en la parte inferior. 289 00:13:45,160 --> 00:13:46,240 Y entonces q. 290 00:13:46,240 --> 00:13:52,600 Así q va a dejar de fumar si usted ha hecho cambios, que yo-- ¿He hecho cambios? 291 00:13:52,600 --> 00:13:54,180 He hecho cambios al parecer. 292 00:13:54,180 --> 00:13:57,264 Así que si usted ha hecho cambios, que va a dice que usted puede poner un signo de exclamación. 293 00:13:57,264 --> 00:13:58,430 Voy a llamarlo una explosión. 294 00:13:58,430 --> 00:14:02,040 Así que usted puede poner una prohibición a sólo dejar sin hacer nada, 295 00:14:02,040 --> 00:14:04,520 o wq salvará de colon y dejar de fumar. 296 00:14:04,520 --> 00:14:06,580 Así w en general es escribir. 297 00:14:06,580 --> 00:14:08,300 Así que escribir el archivo. 298 00:14:08,300 --> 00:14:09,810 Puedo escribir y dejar de fumar. 299 00:14:09,810 --> 00:14:13,606 O usted podría tener sólo Slam qx, q explosión sólo 300 00:14:13,606 --> 00:14:16,230 para salir de allí sin de cualquier cambio que hayas realizado previamente. 301 00:14:16,230 --> 00:14:21,310 302 00:14:21,310 --> 00:14:28,940 >> Muy bien, así que ahora vamos a vaya-- podemos crear archivos. 303 00:14:28,940 --> 00:14:30,890 Vamos a comenzar la eliminación de archivos. 304 00:14:30,890 --> 00:14:35,450 Y sólo voy a tirar en uno nuevo comando rápido, toque. 305 00:14:35,450 --> 00:14:38,200 Así que tocar foo. 306 00:14:38,200 --> 00:14:39,340 Barra táctil. 307 00:14:39,340 --> 00:14:40,220 Toque Baz. 308 00:14:40,220 --> 00:14:42,810 Si ls I, ahora vemos que existen esos archivos. 309 00:14:42,810 --> 00:14:44,315 Son completamente vacío. 310 00:14:44,315 --> 00:14:47,178 Así que es sólo un toque fácil camino de uno, [inaudible]. 311 00:14:47,178 --> 00:14:50,850 312 00:14:50,850 --> 00:14:54,640 Dos, técnicamente sólo a estado ella, que actualiza las marcas de tiempo. 313 00:14:54,640 --> 00:14:58,470 Así que cualquier archivo que se crea tiene una marca de tiempo asociado con ella. 314 00:14:58,470 --> 00:15:01,330 Así Baz fue creado en 14 de septiembre a las 16:21. 315 00:15:01,330 --> 00:15:02,570 316 00:15:02,570 --> 00:15:06,670 Es ahora 16:22, por lo que si Toco baz nuevo, 317 00:15:06,670 --> 00:15:11,420 ver que era más baz recientemente modificado a las 16:22. 318 00:15:11,420 --> 00:15:17,680 Pero por lo demás casi nunca mirar las marcas de tiempo de archivos. 319 00:15:17,680 --> 00:15:20,490 Así que toque, aquí sólo estoy usando para crear algunos archivos rápidas. 320 00:15:20,490 --> 00:15:21,620 321 00:15:21,620 --> 00:15:27,400 >> Muy bien, así que ahora es el rm comando que nos preocupamos por aquí. 322 00:15:27,400 --> 00:15:28,665 Y podemos rm abucheo. 323 00:15:28,665 --> 00:15:31,000 Diga eliminar abucheo archivo vacío regular. 324 00:15:31,000 --> 00:15:34,070 Y podemos escribir y, y ahora es quita. 325 00:15:34,070 --> 00:15:34,850 baz rm. 326 00:15:34,850 --> 00:15:35,910 327 00:15:35,910 --> 00:15:38,620 Retire archivo vacío ordinario Baz y tipo n para no. 328 00:15:38,620 --> 00:15:40,060 Ahora no es removido. 329 00:15:40,060 --> 00:15:41,240 Así bar y baz todavía existe. 330 00:15:41,240 --> 00:15:42,232 Foo se ha ido. 331 00:15:42,232 --> 00:15:43,148 GABRIEL: Sigue hablando. 332 00:15:43,148 --> 00:15:43,970 333 00:15:43,970 --> 00:15:44,720 ROB BOWDEN: Gran. 334 00:15:44,720 --> 00:15:45,800 335 00:15:45,800 --> 00:15:50,370 Así que el mensaje molesto aquí, quitar empty-- regulares 336 00:15:50,370 --> 00:15:52,390 ¿qué estás haciendo ahí abajo? 337 00:15:52,390 --> 00:15:54,030 Retire archivo vacío regular. 338 00:15:54,030 --> 00:15:58,840 339 00:15:58,840 --> 00:16:01,610 Así que si no queremos ser molestado por ese mensaje, 340 00:16:01,610 --> 00:16:05,340 podemos lanzar en este -f bandera, y por lo que es la fuerza. 341 00:16:05,340 --> 00:16:11,330 Y ahora si me rm -f, que no va a dices qué quieres eliminar este archivo. 342 00:16:11,330 --> 00:16:12,040 Simplemente va a hacerlo. 343 00:16:12,040 --> 00:16:13,720 Y ls, no veo bar allí. 344 00:16:13,720 --> 00:16:14,810 345 00:16:14,810 --> 00:16:18,021 >> Ahora que es un potencialmente comando peligroso. 346 00:16:18,021 --> 00:16:19,020 Se tiende a no demasiado malo. 347 00:16:19,020 --> 00:16:22,240 Volveremos en un segundo cómo que puede ser realmente peligroso. 348 00:16:22,240 --> 00:16:28,740 Y vamos a crear algún directorio temporal. 349 00:16:28,740 --> 00:16:30,880 mkdir, otro comando. 350 00:16:30,880 --> 00:16:34,880 Así que es un comando mkdir que hace que un directorio. 351 00:16:34,880 --> 00:16:40,650 Y ahora por ls vemos esta bonita luz azul destacó directorio temporal. 352 00:16:40,650 --> 00:16:42,295 Puedo cd en temp. 353 00:16:42,295 --> 00:16:44,590 Y puedo mkdir foo. 354 00:16:44,590 --> 00:16:46,330 cd en foo. bar mkdir. 355 00:16:46,330 --> 00:16:46,860 cd en la barra. 356 00:16:46,860 --> 00:16:49,400 357 00:16:49,400 --> 00:16:54,300 >> Así que vemos que podemos obtener fácilmente en algunos de anidación muy profundo. 358 00:16:54,300 --> 00:16:56,385 Ahora, ¿cómo puedo eliminar un directorio? 359 00:16:56,385 --> 00:16:57,020 360 00:16:57,020 --> 00:16:57,520 rmdir. 361 00:16:57,520 --> 00:16:59,030 362 00:16:59,030 --> 00:17:03,540 Así que si yo sólo trato de recta rm, como lo hicimos con un archivo normal, 363 00:17:03,540 --> 00:17:06,420 bar rm va a decir no se puede quitar la barra. 364 00:17:06,420 --> 00:17:07,569 Es un directorio. 365 00:17:07,569 --> 00:17:10,619 Hay un comando especial para la eliminación de directorios, algo así. 366 00:17:10,619 --> 00:17:12,900 Así barra rmdir. 367 00:17:12,900 --> 00:17:13,710 Ahora bar se ha ido. 368 00:17:13,710 --> 00:17:14,980 369 00:17:14,980 --> 00:17:22,680 >> OK, así que rmdir yo más o menos nunca uso. 370 00:17:22,680 --> 00:17:32,220 La razón being-- ahora vamos a hacer una barra de archivo normal aquí. 371 00:17:32,220 --> 00:17:34,780 Boo Así rmdir. 372 00:17:34,780 --> 00:17:35,760 rmdir. 373 00:17:35,760 --> 00:17:36,900 Error al eliminar foo. 374 00:17:36,900 --> 00:17:38,420 Directorio no está vacío. 375 00:17:38,420 --> 00:17:43,420 Así que no puedes usar eliminar dir en un directorio que tiene las cosas en ella. 376 00:17:43,420 --> 00:17:44,830 >> Así que usted tiene algunas opciones. 377 00:17:44,830 --> 00:17:49,780 Usted puede ir a ese directorio, quite todo manualmente, y luego salir 378 00:17:49,780 --> 00:17:51,759 y rmdir directorio. 379 00:17:51,759 --> 00:17:53,050 Eso obviamente suena molesto. 380 00:17:53,050 --> 00:17:55,000 ¿Qué pasa si hay miles de archivos en allí? 381 00:17:55,000 --> 00:17:58,119 Bueno, podrías rm *. 382 00:17:58,119 --> 00:17:59,410 Hablaremos de * en un segundo. 383 00:17:59,410 --> 00:18:00,870 Básicamente, significa todas las cosas. 384 00:18:00,870 --> 00:18:02,030 385 00:18:02,030 --> 00:18:05,470 Pero mejor aún, -r tan rm. 386 00:18:05,470 --> 00:18:10,220 Así rm -r-- en un montón de contextos, -R significa recursivo, 387 00:18:10,220 --> 00:18:13,810 que vamos a hablar acerca de lo que medios recursivos en varias semanas. 388 00:18:13,810 --> 00:18:18,630 Pero, básicamente, significa travesía la totalidad de este directorio 389 00:18:18,630 --> 00:18:20,190 y eliminar todo. 390 00:18:20,190 --> 00:18:24,420 >> Foo -r Así rm va a decir descender al directorio foo? 391 00:18:24,420 --> 00:18:25,210 Sí. 392 00:18:25,210 --> 00:18:26,800 Retire archivo foo / bar vacío regular? 393 00:18:26,800 --> 00:18:27,880 394 00:18:27,880 --> 00:18:28,540 Sí. 395 00:18:28,540 --> 00:18:29,760 Retire directorio foo? 396 00:18:29,760 --> 00:18:30,260 Sí. 397 00:18:30,260 --> 00:18:31,470 398 00:18:31,470 --> 00:18:35,020 Así que ahora foo y todo en su interior se ha eliminado. 399 00:18:35,020 --> 00:18:42,370 >> Ahora que se puede conseguir especialmente molesto cuando-- vamos a tocar 1, toque 2, toque 3. 400 00:18:42,370 --> 00:18:44,400 Podría tener un montón de archivos. 401 00:18:44,400 --> 00:18:49,060 Si quisiera, podría crear miles de archivos en aquí. 402 00:18:49,060 --> 00:18:53,340 Y foo rm -r va a ser bastante molesto. 403 00:18:53,340 --> 00:18:55,374 Sí, sí, sí, sí, sí, sí. 404 00:18:55,374 --> 00:18:57,540 Con muchos más archivos que ver rápidamente cómo muchas veces 405 00:18:57,540 --> 00:18:58,581 Tendría que escribir sí. 406 00:18:58,581 --> 00:19:02,265 Bueno, acabamos de ver antes cómo podemos deshacerse de la necesidad de escribir, sí, -f. 407 00:19:02,265 --> 00:19:03,330 408 00:19:03,330 --> 00:19:07,020 Así mkdir foo foo cd táctil 1 2 3. 409 00:19:07,020 --> 00:19:08,380 410 00:19:08,380 --> 00:19:17,190 Aceptar, por lo que rm -rf foo va a elimine a ciegas foo por completo. 411 00:19:17,190 --> 00:19:17,960 No pronta. 412 00:19:17,960 --> 00:19:18,650 No nada. 413 00:19:18,650 --> 00:19:20,040 Foo se ha ido. 414 00:19:20,040 --> 00:19:23,830 >> Así que yo tiendo a usar este comandar todo el tiempo. 415 00:19:23,830 --> 00:19:25,120 416 00:19:25,120 --> 00:19:27,830 Dicho esto, se trata de una comando muy peligroso, 417 00:19:27,830 --> 00:19:33,240 porque si hago algo como esto, no le pedirá. 418 00:19:33,240 --> 00:19:34,730 Se ha ido. 419 00:19:34,730 --> 00:19:40,140 Y sucede con bastante frecuencia, e incluso en los cursos de nivel más alto de CS. 420 00:19:40,140 --> 00:19:42,070 A veces vamos a ver algo que alguien 421 00:19:42,070 --> 00:19:48,360 dice que accidentalmente nuestra rm rf-ed mi casa directorio y todos los de mi conjunto P se ha ido. 422 00:19:48,360 --> 00:19:52,422 Y es devastador, pero no hay bote de basura. 423 00:19:52,422 --> 00:19:54,380 No hay no hay nada para que usted pueda recuperar. 424 00:19:54,380 --> 00:19:55,330 Simplemente se ha ido. 425 00:19:55,330 --> 00:19:56,529 426 00:19:56,529 --> 00:19:58,320 Peor aún sería algo así como rm -rf /. 427 00:19:58,320 --> 00:19:59,432 428 00:19:59,432 --> 00:20:01,140 Así que acabamos de discutir ese directorio raíz. 429 00:20:01,140 --> 00:20:03,095 Lleva a cabo la totalidad de la archivos en su sistema. 430 00:20:03,095 --> 00:20:04,120 431 00:20:04,120 --> 00:20:07,380 Las cosas tienden a ser bastante desordenado cuando se quita cosas como ls, 432 00:20:07,380 --> 00:20:10,280 y cd, y todo eso. 433 00:20:10,280 --> 00:20:15,467 >> AUDIENCIA: ¿Cuál es la diferencia entre rm, rf, y rm * 434 00:20:15,467 --> 00:20:16,300 ROB BOWDEN: Así rm * - 435 00:20:16,300 --> 00:20:17,700 436 00:20:17,700 --> 00:20:22,300 >> ALLISON: pregunta era ¿cuál es el diferencia entre rm, rf, y rm *. 437 00:20:22,300 --> 00:20:23,750 438 00:20:23,750 --> 00:20:25,950 >> ROB BOWDEN: Así rm *. 439 00:20:25,950 --> 00:20:31,910 Estrella en medios en general todos el contenido de este directorio. 440 00:20:31,910 --> 00:20:33,540 441 00:20:33,540 --> 00:20:35,540 Tratar de pensar en otra formas de mostrar la estrella. 442 00:20:35,540 --> 00:20:38,280 443 00:20:38,280 --> 00:20:44,780 Bueno, en realidad la estrella general significa encontró ningún patrón. 444 00:20:44,780 --> 00:20:54,930 Así que si tengo un archivo llamado dog1, dog2 tocar, tocar cat1, toque cat2. 445 00:20:54,930 --> 00:20:56,050 446 00:20:56,050 --> 00:21:02,110 Así ls * 1 se va a imprimir y cat1 dog1, porque esa estrella puede ser llenado 447 00:21:02,110 --> 00:21:06,270 en el con-- uno tiene que estar allí, pero la estrella puede ser gato o perro. 448 00:21:06,270 --> 00:21:07,247 Es un comodín. 449 00:21:07,247 --> 00:21:08,580 Esa es la palabra que estoy buscando. 450 00:21:08,580 --> 00:21:09,120 Comodín. 451 00:21:09,120 --> 00:21:10,180 452 00:21:10,180 --> 00:21:13,960 O podría ls perro *, y Estoy llegué a ver dog1, dog2. 453 00:21:13,960 --> 00:21:16,870 Así que estos son una lista de los archivos que coincide con ese patrón particular. 454 00:21:16,870 --> 00:21:18,150 Puede usar ls de esta manera. 455 00:21:18,150 --> 00:21:19,350 456 00:21:19,350 --> 00:21:22,020 >> Ls * estrellas coincide con cualquier cosa. 457 00:21:22,020 --> 00:21:25,710 Así que va a imprimir todos el contenido de este directorio 458 00:21:25,710 --> 00:21:27,290 ya que todos ellos coinciden. 459 00:21:27,290 --> 00:21:30,130 No va a imprimir cualquier cosa en los directorios de nivel superior. 460 00:21:30,130 --> 00:21:38,680 Si tengo un subdirectorio, foo, y tocar 1 2 3-- por lo que ahora si rm * estrellas, 461 00:21:38,680 --> 00:21:41,450 eliminar cat1, cat2, dog1, dog2. 462 00:21:41,450 --> 00:21:42,340 No se puede eliminar foo. 463 00:21:42,340 --> 00:21:43,090 Es un directorio. 464 00:21:43,090 --> 00:21:43,920 465 00:21:43,920 --> 00:21:50,340 >> Así estrella se expande a toda la archivos en el directorio. 466 00:21:50,340 --> 00:21:55,210 Así que técnicamente rm * es como decir cat1 rm, cat2, dog1, dog2, foo. 467 00:21:55,210 --> 00:22:03,630 Mientras -rf rm, técnicamente estrella haría logramos lo que queremos, pero rm -rf-- 468 00:22:03,630 --> 00:22:06,090 si salgo de esta directorio, temp -rf rm, 469 00:22:06,090 --> 00:22:08,890 eso va a ir en la temperatura y eliminar de forma recursiva todo. 470 00:22:08,890 --> 00:22:11,260 471 00:22:11,260 --> 00:22:21,060 >> Así estrella es separada en que esa Se entiende así que esta cosa por-- 472 00:22:21,060 --> 00:22:25,090 que estoy corriendo, esta cosa que me está motivando para los comandos 473 00:22:25,090 --> 00:22:28,770 y luego ejecutar y hacer ellos, me llaman a esto mi concha. 474 00:22:28,770 --> 00:22:31,930 Y así esta concha es en sí mismo un programa. 475 00:22:31,930 --> 00:22:35,010 Y si yo quería, podría funcionar en / bin / bash. 476 00:22:35,010 --> 00:22:36,930 La cáscara se llama bash. 477 00:22:36,930 --> 00:22:39,340 Y ahora nos damos cuenta de algo ha cambiado ligeramente, 478 00:22:39,340 --> 00:22:42,200 y eso es porque mi configuración para la cáscara son algo diferentes. 479 00:22:42,200 --> 00:22:45,415 >> Pero ahora estoy técnicamente correr una concha dentro de mi caparazón original, 480 00:22:45,415 --> 00:22:49,570 y puedo salir de esa cáscara, y ahora Ya estoy de vuelta a mi concha nivel superior. 481 00:22:49,570 --> 00:22:55,240 El propósito de decir que es-- la estrella. 482 00:22:55,240 --> 00:22:59,020 Así que la estrella es algo entendido por bash. 483 00:22:59,020 --> 00:23:04,260 Así -rf rm, bandera -rf es entendido por sólo rm. 484 00:23:04,260 --> 00:23:06,380 Se sabe que cuando usted pasar un -rf que 485 00:23:06,380 --> 00:23:09,520 la quieren quitar de forma recursiva todos los archivos sin preguntar. 486 00:23:09,520 --> 00:23:13,960 La estrella se entiende algo por bash que cuando dices rm *, 487 00:23:13,960 --> 00:23:16,890 fiesta no va a decir Hey rm *, retire estrellas. 488 00:23:16,890 --> 00:23:21,010 Bash va a decir rm * eliminar cat1, cat2, dog1, dog2. 489 00:23:21,010 --> 00:23:24,305 Se va automáticamente a ampliar todos los archivos en el directorio. 490 00:23:24,305 --> 00:23:29,100 491 00:23:29,100 --> 00:23:33,140 >> Y del mismo modo tilde es otra símbolo que Bash entiende. 492 00:23:33,140 --> 00:23:37,130 Cuando dices cd ~, golpe expande que a su directorio. 493 00:23:37,130 --> 00:23:38,910 494 00:23:38,910 --> 00:23:40,210 Otras preguntas hasta ahora? 495 00:23:40,210 --> 00:23:42,760 496 00:23:42,760 --> 00:23:46,060 Aceptar así que vamos a empezar a ir rápido. 497 00:23:46,060 --> 00:23:47,700 498 00:23:47,700 --> 00:23:48,545 >> La implementación del tabulador. 499 00:23:48,545 --> 00:23:49,670 Solo para tirarlo por ahí. 500 00:23:49,670 --> 00:23:51,530 Mucha gente no lo hagas darse cuenta de esto existe. 501 00:23:51,530 --> 00:23:55,060 Así que si escribo cd dow, yo quiero entrar en las descargas. 502 00:23:55,060 --> 00:23:56,700 No necesito escribir nloads. 503 00:23:56,700 --> 00:23:57,960 504 00:23:57,960 --> 00:24:00,770 Yo sólo puedo golpear Tab. 505 00:24:00,770 --> 00:24:03,794 Por lo tanto, reconoce que Dow es un prefijo que 506 00:24:03,794 --> 00:24:05,710 no coincide con nada lo demás en este directorio, 507 00:24:05,710 --> 00:24:07,520 por lo que se completará por usted. 508 00:24:07,520 --> 00:24:08,610 Ahora puedo entrar. 509 00:24:08,610 --> 00:24:10,110 >> También hago que de forma recursiva. 510 00:24:10,110 --> 00:24:11,205 Foo Así mkdir. 511 00:24:11,205 --> 00:24:12,480 512 00:24:12,480 --> 00:24:13,300 Vamos a entrar en foo. 513 00:24:13,300 --> 00:24:14,830 bar mkdir. 514 00:24:14,830 --> 00:24:17,345 Así que volver a mi casa directorio, puedo ver las descargas. 515 00:24:17,345 --> 00:24:19,040 516 00:24:19,040 --> 00:24:21,860 Ahora pestaña golpear de nuevo, pasando automáticamente a rellenar foo. 517 00:24:21,860 --> 00:24:22,880 Es el único directorio. 518 00:24:22,880 --> 00:24:25,340 Ficha Golpear de nuevo, de forma automática va a llenar en el bar. 519 00:24:25,340 --> 00:24:26,798 Así que ahora estoy en (~ Descargas / foo / bar). 520 00:24:26,798 --> 00:24:27,310 521 00:24:27,310 --> 00:24:31,692 >> Así que esta implementación del tabulador, cuando llegué a las horas de oficina, 522 00:24:31,692 --> 00:24:33,400 y estoy de pie sobre el hombro de alguien, 523 00:24:33,400 --> 00:24:40,470 y están pasando rm D-O-W-N-L-O-A-D-S, me estoy muriendo. 524 00:24:40,470 --> 00:24:41,990 Sólo pestaña, pestaña, pestaña, pestaña. 525 00:24:41,990 --> 00:24:44,550 526 00:24:44,550 --> 00:24:45,630 Así que definitivamente ficha utilizada. 527 00:24:45,630 --> 00:24:47,890 528 00:24:47,890 --> 00:24:49,840 Y del mismo modo y abajo, un montón de gente 529 00:24:49,840 --> 00:24:51,930 sólo que pasó con nunca han golpeado arriba y hacia abajo. 530 00:24:51,930 --> 00:24:54,870 Va a pasar por la anterior comandos, por lo que si usted acaba de ejecutar algo, 531 00:24:54,870 --> 00:24:58,300 y desea ejecutar de nuevo, sólo tiene capacidad hasta llegar a ella. 532 00:24:58,300 --> 00:24:59,870 533 00:24:59,870 --> 00:25:00,370 Okay. 534 00:25:00,370 --> 00:25:01,460 535 00:25:01,460 --> 00:25:03,585 >> Tan rápido, algunas otras cosas. 536 00:25:03,585 --> 00:25:04,800 537 00:25:04,800 --> 00:25:05,930 Volvamos a temp. 538 00:25:05,930 --> 00:25:06,976 539 00:25:06,976 --> 00:25:08,125 Vamos a crear algunos archivos. 540 00:25:08,125 --> 00:25:10,480 541 00:25:10,480 --> 00:25:15,215 Así que aquí, sólo soy ir a la lista de algunas palabras. 542 00:25:15,215 --> 00:25:18,460 543 00:25:18,460 --> 00:25:21,035 perro, gato, miau. 544 00:25:21,035 --> 00:25:23,940 545 00:25:23,940 --> 00:25:26,040 Vamos a hacer de perro, pescado. 546 00:25:26,040 --> 00:25:27,500 547 00:25:27,500 --> 00:25:32,320 Así que ahora es un representante muy comandos útiles que 548 00:25:32,320 --> 00:25:37,820 utilizar para buscar en toda archivos de un texto en particular, 549 00:25:37,820 --> 00:25:40,910 y técnicamente se puede hacer realmente expresiones complejas para que ésta coincida. 550 00:25:40,910 --> 00:25:44,830 >> Así que aquí, si me grep, y lo Qué quiero buscar? 551 00:25:44,830 --> 00:25:49,130 Digamos que estoy buscando para los gatos, y Quiero buscar todos estos archivos. 552 00:25:49,130 --> 00:25:50,650 Así que ¿cómo lo hago todos estos archivos? 553 00:25:50,650 --> 00:25:51,900 Estrella. 554 00:25:51,900 --> 00:25:54,939 Así que en un archivo, tengo gato. 555 00:25:54,939 --> 00:25:56,980 Probablemente podría tener llamado algo mejor, 556 00:25:56,980 --> 00:25:59,063 porque eso parece números de línea o algo así. 557 00:25:59,063 --> 00:26:01,590 Pero en el expediente que tengo una línea con el gato. 558 00:26:01,590 --> 00:26:04,160 En el archivo de dos tengo una línea con el gato. 559 00:26:04,160 --> 00:26:07,280 Así que ahora puedo mirar un archivo dentro y ver oh sí, ese archivo tenía gato. 560 00:26:07,280 --> 00:26:10,210 Archivo Aviso tres no fue igualada porque el gato no está ahí. 561 00:26:10,210 --> 00:26:13,882 Puedo grep para maullido. 562 00:26:13,882 --> 00:26:14,840 Sólo presentar dos tiene maullido. 563 00:26:14,840 --> 00:26:16,120 564 00:26:16,120 --> 00:26:20,640 >> Así que esto se puede combinar, de nuevo, con -r, que 565 00:26:20,640 --> 00:26:23,580 como he dicho antes con frecuencia significa recursivo. 566 00:26:23,580 --> 00:26:29,800 Y por lo que puedo venir aquí, grep -r para cualquier instancia de-- vamos a editar 567 00:26:29,800 --> 00:26:32,010 éste sólo para tirar un gato en allí. 568 00:26:32,010 --> 00:26:38,800 Así grep -r para cualquier instancia de gato lo largo de este directorio. 569 00:26:38,800 --> 00:26:41,600 Y lo hará de forma recursiva buscar los subdirectorios. 570 00:26:41,600 --> 00:26:43,940 Así que en baz, hay gato. 571 00:26:43,940 --> 00:26:45,570 En temp / 2, hay gato. 572 00:26:45,570 --> 00:26:47,960 Y en temp / 1 hay gato. 573 00:26:47,960 --> 00:26:50,045 Así que eso es buscar dentro de archivos. 574 00:26:50,045 --> 00:26:51,250 575 00:26:51,250 --> 00:26:55,090 >> Ahora usted también puede usar un hallazgo. 576 00:26:55,090 --> 00:26:59,640 Y por lo que encontrar es específicamente sobre en busca de archivos con un nombre determinado. 577 00:26:59,640 --> 00:27:02,490 Así que vamos a hacer un poco más. 578 00:27:02,490 --> 00:27:03,660 Vamos a entrar en las descargas. 579 00:27:03,660 --> 00:27:04,680 580 00:27:04,680 --> 00:27:05,380 Toque dog1. 581 00:27:05,380 --> 00:27:06,840 582 00:27:06,840 --> 00:27:07,770 Toque cat2. 583 00:27:07,770 --> 00:27:09,290 584 00:27:09,290 --> 00:27:10,760 Toque cat_dog. 585 00:27:10,760 --> 00:27:14,550 586 00:27:14,550 --> 00:27:15,975 Toque catcat. 587 00:27:15,975 --> 00:27:18,270 588 00:27:18,270 --> 00:27:23,810 >> Por eso quiero encontrar todo archivos con perro en el nombre. 589 00:27:23,810 --> 00:27:28,060 Así que encontrar, y para el más largo el tiempo nunca me acordé 590 00:27:28,060 --> 00:27:33,760 cómo encontrar funcionaba, hasta que, finalmente, leer algo que lo hizo tan clara. 591 00:27:33,760 --> 00:27:35,784 Así que encontrar, automáticamente recursiva. 592 00:27:35,784 --> 00:27:36,950 Usted no tiene que pasar una -r. 593 00:27:36,950 --> 00:27:38,090 594 00:27:38,090 --> 00:27:39,110 Así que encontrar puntos. 595 00:27:39,110 --> 00:27:40,750 No hemos hablado de punto todavía. 596 00:27:40,750 --> 00:27:44,800 Mientras punto punto siempre significa un directorio arriba. 597 00:27:44,800 --> 00:27:46,960 Dot siempre significa el directorio actual. 598 00:27:46,960 --> 00:27:51,390 Así que podría rm -r en el punto misma manera que puedo rm -rf *. 599 00:27:51,390 --> 00:27:53,140 En última instancia, lograr la misma cosa. 600 00:27:53,140 --> 00:27:56,040 rm -rf punto se va a quitar en todo el directorio actual. 601 00:27:56,040 --> 00:27:57,440 602 00:27:57,440 --> 00:27:59,680 >> Bien, que yo no quiero hacer allí. 603 00:27:59,680 --> 00:28:01,490 604 00:28:01,490 --> 00:28:04,320 Pero encontrar puntos. 605 00:28:04,320 --> 00:28:07,920 Así que buscar de forma recursiva la corriente directorio, y ahora todo 606 00:28:07,920 --> 00:28:14,125 después de esto hay un montón de banderas eso usted utilizar para excluir las cosas desde el regreso. 607 00:28:14,125 --> 00:28:17,250 Así que encontrar puntos devuelve todo lo que puede encontrar en el directorio actual. 608 00:28:17,250 --> 00:28:19,700 Esos son todos los archivos buscando recursivamente. 609 00:28:19,700 --> 00:28:21,250 Vamos a ver algunas de las personas en un segundo. 610 00:28:21,250 --> 00:28:23,150 611 00:28:23,150 --> 00:28:27,140 >> Pero en caso de que usted se está preguntando cómo lo hago que, de modo de comando K, por lo menos 612 00:28:27,140 --> 00:28:29,660 en mi terminal en el Mac despejó. 613 00:28:29,660 --> 00:28:34,660 Control de L generalmente desaparece para cualquier tipo de terminal. 614 00:28:34,660 --> 00:28:36,480 También puede escribir claro. 615 00:28:36,480 --> 00:28:38,410 Y si alguna vez tienes en un extraño scenario-- 616 00:28:38,410 --> 00:28:42,790 que me ha pasado un par tiempo-- donde los colores de sus indicaciones 617 00:28:42,790 --> 00:28:46,590 están todos en mal estado, o que no son capaces de ver nada 618 00:28:46,590 --> 00:28:51,232 siendo tecleado cuando estás escribiendo, porque a veces como el color de fondo se establece 619 00:28:51,232 --> 00:28:53,940 el mismo que el color de primer plano y ahora usted no puede ver los tipos de letra. 620 00:28:53,940 --> 00:28:55,110 621 00:28:55,110 --> 00:28:59,830 Restablecer es algo que sólo se restablece a el fondo negro por defecto, 622 00:28:59,830 --> 00:29:01,840 frente blanco, o lo que sea se establece que lo hagan. 623 00:29:01,840 --> 00:29:03,390 624 00:29:03,390 --> 00:29:04,790 >> Entonces, ¿dónde estábamos? 625 00:29:04,790 --> 00:29:05,930 Encuentra puntos. 626 00:29:05,930 --> 00:29:09,360 Así que ahora todo este pasado punto restringe los resultados 627 00:29:09,360 --> 00:29:11,450 a algo que coincide el patrón dado. 628 00:29:11,450 --> 00:29:16,110 Así que aquí Quiero buscar todo con el nombre de gato. 629 00:29:16,110 --> 00:29:17,300 No tengo nada. 630 00:29:17,300 --> 00:29:18,390 ¿Por qué es ese el caso? 631 00:29:18,390 --> 00:29:21,230 Bueno, sólo estoy buscando algo con exactamente el nombre de gato. 632 00:29:21,230 --> 00:29:25,150 Si quiero buscar algo que tiene un patrón, y cat-- 633 00:29:25,150 --> 00:29:28,890 las cotizaciones técnicamente no son necesarios, pero yo les estoy lanzando en ese país. 634 00:29:28,890 --> 00:29:32,720 Así que ahora que encuentra catcat porque esa es la única cosa que 635 00:29:32,720 --> 00:29:36,040 tiene algo de arbitraria patrón seguido por gato. 636 00:29:36,040 --> 00:29:41,950 Puedo poner el gato *, y ahora encontrar catcat, cat_dog, cat2, 637 00:29:41,950 --> 00:29:45,245 porque esas son todas las cosas con el gato al principio seguido por nada. 638 00:29:45,245 --> 00:29:46,120 Puede combinar esto. 639 00:29:46,120 --> 00:29:50,480 Si desea buscar todos los archivos de C que usted tiene, usted puede ser que haga * .c. 640 00:29:50,480 --> 00:29:51,960 Hemos blah.c aquí. 641 00:29:51,960 --> 00:29:53,000 642 00:29:53,000 --> 00:29:55,020 Así que eso es una obra de búsqueda. 643 00:29:55,020 --> 00:29:55,770 Usted puede buscar. 644 00:29:55,770 --> 00:29:58,270 Tiene un montón de banderas para más restricciones. 645 00:29:58,270 --> 00:30:00,960 Y uno de ellos, digamos -d. 646 00:30:00,960 --> 00:30:02,110 647 00:30:02,110 --> 00:30:04,435 Así obsoleto. 648 00:30:04,435 --> 00:30:05,425 649 00:30:05,425 --> 00:30:06,550 Oh, eso no es lo que quiero. 650 00:30:06,550 --> 00:30:07,730 No -d. 651 00:30:07,730 --> 00:30:08,860 Escriba d. 652 00:30:08,860 --> 00:30:13,820 Así que encontrar puntos - tipo d. 653 00:30:13,820 --> 00:30:17,760 Así que lo que acabas de hacer es que estoy buscando para todos los archivos del directorio actual 654 00:30:17,760 --> 00:30:21,680 con A-- d significa Tipo de directorio directory--. 655 00:30:21,680 --> 00:30:24,430 Esto devuelve todos los directorios en el directorio actual. 656 00:30:24,430 --> 00:30:27,670 Y todo tipo F es normal archivos, todos los directorios no. 657 00:30:27,670 --> 00:30:29,809 Así que eso es sólo una ejemplo de otras maneras 658 00:30:29,809 --> 00:30:32,350 puede restringir la búsqueda otra que sólo el nombre del archivo. 659 00:30:32,350 --> 00:30:34,126 660 00:30:34,126 --> 00:30:35,570 >> Ya han pasado 30 minutos. 661 00:30:35,570 --> 00:30:36,848 Aún así va. 662 00:30:36,848 --> 00:30:38,132 >> ALLISON: Voy a brisa a través. 663 00:30:38,132 --> 00:30:39,670 Se va a estar bien. 664 00:30:39,670 --> 00:30:41,460 >> ROB BOWDEN: Así que algunas otras cosas. 665 00:30:41,460 --> 00:30:45,700 Ahora Bang, signo de exclamación. 666 00:30:45,700 --> 00:30:50,530 Así que por lo general significa: bien, vamos a ver un ejemplo. 667 00:30:50,530 --> 00:30:52,230 Así! F, lo que se va a hacer? 668 00:30:52,230 --> 00:30:53,520 669 00:30:53,520 --> 00:30:57,810 Bueno, parece tener repetido hallazgo de tipo punto f. 670 00:30:57,810 --> 00:30:59,240 ¿Qué pasa! G? 671 00:30:59,240 --> 00:31:00,760 Eso sólo grep gato -r *. 672 00:31:00,760 --> 00:31:02,010 673 00:31:02,010 --> 00:31:05,720 Así que golpeas puede utilizar para repetir un comando de hecho recientemente. 674 00:31:05,720 --> 00:31:13,280 Así que si escribo! Gre, que va a volver a ejecutar los comandos que comenzaron con gre más 675 00:31:13,280 --> 00:31:14,060 recientemente. 676 00:31:14,060 --> 00:31:17,090 >> Y se puede ver todos estos comandos con la historia. 677 00:31:17,090 --> 00:31:17,880 Así la historia. 678 00:31:17,880 --> 00:31:19,630 Estas son todas las comandos me he encontrado hoy. 679 00:31:19,630 --> 00:31:21,089 680 00:31:21,089 --> 00:31:23,130 Y así, no es, literalmente, restringido a día de hoy, 681 00:31:23,130 --> 00:31:25,180 pero yo sólo he utilizado este aparato a partir de hoy. 682 00:31:25,180 --> 00:31:28,730 Es su totalidad de la la historia de su shell bash, 683 00:31:28,730 --> 00:31:30,433 excepto que se corta en algún momento. 684 00:31:30,433 --> 00:31:33,474 AUDIENCIA: ¿Qué pasa si lo hace historial de comandos [inaudible] y un error 685 00:31:33,474 --> 00:31:35,430 en el resultado todavía se imprimirá el-- 686 00:31:35,430 --> 00:31:44,110 >> ROB BOWDEN: Sí, si hay una error en uno de estos commands-- 687 00:31:44,110 --> 00:31:48,090 así que vamos a decir, que es un comando de error no encontrado. 688 00:31:48,090 --> 00:31:49,312 689 00:31:49,312 --> 00:31:50,520 Sigue apareciendo en la historia. 690 00:31:50,520 --> 00:31:52,620 691 00:31:52,620 --> 00:31:53,170 Bien. 692 00:31:53,170 --> 00:31:54,750 693 00:31:54,750 --> 00:31:56,040 Otras preguntas sobre cualquier cosa? 694 00:31:56,040 --> 00:31:58,760 695 00:31:58,760 --> 00:32:00,300 Así que eso es explosión. 696 00:32:00,300 --> 00:32:04,230 >> Ahora, comando realmente útil, hombre. 697 00:32:04,230 --> 00:32:07,750 Así que le da la manual para un comando determinado. 698 00:32:07,750 --> 00:32:11,640 Así que digamos que man ls, por lo esto me está mostrando ls. 699 00:32:11,640 --> 00:32:13,400 En él se enumeran los contenidos de directorio. 700 00:32:13,400 --> 00:32:17,150 Y aquí es donde yo veo que hay estas son las diversas banderas que existen. 701 00:32:17,150 --> 00:32:21,340 Así que vemos que ls -l existe si tuviéramos que leer eso. ls -l 702 00:32:21,340 --> 00:32:26,150 me da esta lista completa de la directorio con quién posee el archivo, 703 00:32:26,150 --> 00:32:29,750 el tamaño del archivo, la la marca de tiempo modificado. 704 00:32:29,750 --> 00:32:31,130 705 00:32:31,130 --> 00:32:34,980 Así ls -a es otro que te pueden utilizar realmente algo frecuencia. 706 00:32:34,980 --> 00:32:38,130 -al es mi bandera más común de este últimos ls. 707 00:32:38,130 --> 00:32:42,520 >> Así -a, notar que hay mucho más archivos que un simple ls. 708 00:32:42,520 --> 00:32:44,170 ls -a. 709 00:32:44,170 --> 00:32:46,170 ¿Qué hay en común con todos estos archivos? 710 00:32:46,170 --> 00:32:47,790 Comienzan con un punto. 711 00:32:47,790 --> 00:32:54,710 Así que esto es una convención en Linux que los archivos que comienzan con un punto están ocultos. 712 00:32:54,710 --> 00:32:58,330 Así que sólo significa que cuando acabamos de ls rectas, 713 00:32:58,330 --> 00:33:04,170 o que estamos buscando este directorio usando el equivalente buscador, o la de Windows 714 00:33:04,170 --> 00:33:07,250 Equivalente Explorer, que no quieren ver estos archivos punto. 715 00:33:07,250 --> 00:33:09,680 Ellos sólo contaminan la visión de las cosas. 716 00:33:09,680 --> 00:33:11,790 Así que ellos están ocultos a menos que usted específicamente 717 00:33:11,790 --> 00:33:14,250 solicitarlos con algo así como -a. 718 00:33:14,250 --> 00:33:18,920 Así que puedo cd en .local, y veo que es en sí mismo un directorio con 719 00:33:18,920 --> 00:33:22,220 un directorio compartido, y aplicaciones, y bla, bla, bla. 720 00:33:22,220 --> 00:33:24,520 Así que punto, los archivos sólo están ocultos. 721 00:33:24,520 --> 00:33:26,250 722 00:33:26,250 --> 00:33:29,355 >> Aceptar, por lo que otros más importantes. 723 00:33:29,355 --> 00:33:30,490 724 00:33:30,490 --> 00:33:32,000 Tengo un par que puedo saltar. 725 00:33:32,000 --> 00:33:38,160 Vamos a hablar de verdad sobre rápida las cosas de redirección de archivos. 726 00:33:38,160 --> 00:33:43,020 Así que hay una serie compleja totalidad de las cosas que puedes hacer con ellos, 727 00:33:43,020 --> 00:33:47,204 pero sólo para verlos, digamos, eco. 728 00:33:47,204 --> 00:33:47,870 Otro comando. 729 00:33:47,870 --> 00:33:48,920 Comando realmente tonto. 730 00:33:48,920 --> 00:33:50,710 Todo lo que hace es imprimir lo que le digo que lo haga. 731 00:33:50,710 --> 00:33:52,070 Así que echo hola. 732 00:33:52,070 --> 00:33:53,850 Simplemente se hizo eco de saludar a la pantalla. 733 00:33:53,850 --> 00:33:55,170 734 00:33:55,170 --> 00:33:56,390 ¡Hola, mundo. 735 00:33:56,390 --> 00:33:57,890 Ecos hola mundo. 736 00:33:57,890 --> 00:34:02,650 >> Así que un comando o una símbolo que entiende fiesta 737 00:34:02,650 --> 00:34:07,620 es mayor que este símbolo, y que es la salida a un símbolo de archivo. 738 00:34:07,620 --> 00:34:10,940 Así que si la salida I a este foo, hay ahora un archivo 739 00:34:10,940 --> 00:34:15,100 llamado foo, en el interior de que es hola mundo. 740 00:34:15,100 --> 00:34:18,489 Entonces noto que cuando me hago eco hola tubería mundo en foo, 741 00:34:18,489 --> 00:34:19,980 que no echo hola mundo. 742 00:34:19,980 --> 00:34:22,630 En su lugar, se puso en archivo foo. 743 00:34:22,630 --> 00:34:25,340 Y otro comando sólo para tirarlo a usted, gato. 744 00:34:25,340 --> 00:34:29,191 Esa es una manera fácil de simplemente completamente listar el contenido del archivo 745 00:34:29,191 --> 00:34:31,440 de modo que yo no tengo que abrir un editor de texto para verlo. 746 00:34:31,440 --> 00:34:34,159 Así el contenido de la archivo foo son hola mundo. 747 00:34:34,159 --> 00:34:38,460 Y pude blah.c gato, los contenidos son esto. 748 00:34:38,460 --> 00:34:42,123 >> Una vez más, estos son los comandos que, no lo hacen esperan que usted los tiene todos memorizan. 749 00:34:42,123 --> 00:34:43,860 La idea es que los he visto. 750 00:34:43,860 --> 00:34:45,735 Tal vez usted está trabajando en algo, y ya está 751 00:34:45,735 --> 00:34:47,230 como que estoy harto de abrir este archivo. 752 00:34:47,230 --> 00:34:50,120 Ojalá pudiera mirar en el contenido real rápido. 753 00:34:50,120 --> 00:34:52,320 Usted podría hacer eso, entonces mirar hacia atrás y decir oh 754 00:34:52,320 --> 00:34:55,250 recordar algo así como lo que existe, y es el gato. 755 00:34:55,250 --> 00:35:00,630 >> Así que va a un archivo. 756 00:35:00,630 --> 00:35:06,639 Ahora no hay realmente ninguna buena ejemplo de la lectura de un archivo todavía. 757 00:35:06,639 --> 00:35:08,930 ¿Qué es algo que toma algo estándar en? 758 00:35:08,930 --> 00:35:10,010 759 00:35:10,010 --> 00:35:11,544 Cualquier simple comando de Linux? 760 00:35:11,544 --> 00:35:13,480 761 00:35:13,480 --> 00:35:16,970 Cuando lleguemos a la misma, en un par semanas todos los piece-- bien, 762 00:35:16,970 --> 00:35:20,470 Esta semana tienes una pieza en la que empezar a tomar la entrada del usuario. 763 00:35:20,470 --> 00:35:23,696 Y por lo general se escribe que la entrada en el teclado. 764 00:35:23,696 --> 00:35:25,570 En lugar de escribir que de entrada en el teclado, 765 00:35:25,570 --> 00:35:30,950 en lugar usted puede canalizar desde un archivo de modo que cuando lo hace Mario, ./mario, 766 00:35:30,950 --> 00:35:35,200 tubería desde cualquier archivo determinado, y que va a ejecutar el programa de mario. 767 00:35:35,200 --> 00:35:37,300 Sin esperar la entrada en el teclado, sino que es 768 00:35:37,300 --> 00:35:39,650 sólo va a leer el líneas del archivo foo. 769 00:35:39,650 --> 00:35:45,230 >> Así mayor que foo pone en el archivo foo, y menos de foo 770 00:35:45,230 --> 00:35:50,170 toma las cosas a partir del archivo foo y lo usa como entrada a este programa. 771 00:35:50,170 --> 00:35:51,520 772 00:35:51,520 --> 00:36:00,630 Y sólo para verlo, también podríamos eco foo bar baz, y entonces, en lugar de uno 773 00:36:00,630 --> 00:36:03,850 mayor que, vamos a hacer dos en foo. 774 00:36:03,850 --> 00:36:05,610 ¿Qué quiere que haga? 775 00:36:05,610 --> 00:36:07,180 Simplemente añade al archivo. 776 00:36:07,180 --> 00:36:15,360 Así que en lugar de aviso si yo echo en bla foo y luego foo gato, es sólo bla. 777 00:36:15,360 --> 00:36:18,285 Así que cuando la salida a un archivo, sobrescribe completamente ese archivo. 778 00:36:18,285 --> 00:36:19,330 779 00:36:19,330 --> 00:36:22,740 Si lo que desea es añadir, doble [? grado. ?] 780 00:36:22,740 --> 00:36:24,080 >> Y por último, es la tubería. 781 00:36:24,080 --> 00:36:29,590 Pipe Obtiene mucho más complicado, donde que toma la salida de un comando 782 00:36:29,590 --> 00:36:32,320 y la inyecta a la siguiente comando. 783 00:36:32,320 --> 00:36:36,140 Así que un poco de cosa común, la historia. 784 00:36:36,140 --> 00:36:37,920 Así, uf, no quiero ver esta. 785 00:36:37,920 --> 00:36:40,680 786 00:36:40,680 --> 00:36:44,485 Muéstrame todos los comandos en mi historia donde grep-ed por algo. 787 00:36:44,485 --> 00:36:45,360 No, eso es confuso. 788 00:36:45,360 --> 00:36:50,360 Muéstrame todos los comandos dónde encuentro. 789 00:36:50,360 --> 00:36:52,360 Todos encuentran los comandos que jamás corrió. 790 00:36:52,360 --> 00:36:55,050 >> Así la historia. 791 00:36:55,050 --> 00:36:59,017 Ahora salidas de historia a la detectar esta lista de comandos, 792 00:36:59,017 --> 00:37:00,850 pero yo no quiero salida a la pantalla. 793 00:37:00,850 --> 00:37:03,445 En su lugar voy a tubería en grep. 794 00:37:03,445 --> 00:37:04,790 795 00:37:04,790 --> 00:37:07,830 Así que vamos a grep para todas las instancias del hallazgo. 796 00:37:07,830 --> 00:37:09,550 797 00:37:09,550 --> 00:37:17,000 Así que ahora en lugar de tomar grep la entrada, en lugar de-- 798 00:37:17,000 --> 00:37:24,360 grep es capaz de manejar como input-- estamos usando grep un poco diferente aquí. 799 00:37:24,360 --> 00:37:29,550 Así que en lugar de escribir la lista de cosas que querían buscar 800 00:37:29,550 --> 00:37:31,070 y dijo grep está tomando como entrada. 801 00:37:31,070 --> 00:37:34,810 Así que si yo sólo grep encuentro, que espera a que yo escribo cosas. 802 00:37:34,810 --> 00:37:37,661 Así gato hola encontrar. 803 00:37:37,661 --> 00:37:38,160 Hola. 804 00:37:38,160 --> 00:37:40,430 805 00:37:40,430 --> 00:37:40,930 Encuentra. 806 00:37:40,930 --> 00:37:43,670 Note que cada vez que escribo encontrar reconoce que he escrito hallazgo. 807 00:37:43,670 --> 00:37:44,880 808 00:37:44,880 --> 00:37:49,540 Así que en lugar de esto, lo hará archivos de búsqueda para encontrar. 809 00:37:49,540 --> 00:37:53,930 >> Así que la historia ahora va a generar una lista de todos los comandos. 810 00:37:53,930 --> 00:37:55,200 811 00:37:55,200 --> 00:37:58,100 Estamos poniendo que la producción, y estamos alimentándolo a grep, 812 00:37:58,100 --> 00:38:00,180 y lo que es escupir todas las instancias de descubrimiento. 813 00:38:00,180 --> 00:38:02,170 814 00:38:02,170 --> 00:38:05,570 La razón por la que dijo que estaría confundiendo es si yo-- es todavía confuso. 815 00:38:05,570 --> 00:38:07,030 Si yo grep grep. 816 00:38:07,030 --> 00:38:08,755 817 00:38:08,755 --> 00:38:11,130 Observe que es casi siempre que muestra el comando que acabo 818 00:38:11,130 --> 00:38:15,280 corrió porque ese comando sí tiene grep dentro de ella. 819 00:38:15,280 --> 00:38:16,580 820 00:38:16,580 --> 00:38:20,674 >> OK, así que cualquier pregunta sobre cualquier cosa? 821 00:38:20,674 --> 00:38:22,340 Y voy a transferir la vuelta en este punto. 822 00:38:22,340 --> 00:38:24,690 Esperemos que este es un buen visión general de todos los comandos 823 00:38:24,690 --> 00:38:30,100 que usted no necesita tener memorizan, pero éstos constituyen 824 00:38:30,100 --> 00:38:32,950 un sólido 95% de lo que hacer en la línea de comandos. 825 00:38:32,950 --> 00:38:34,310 826 00:38:34,310 --> 00:38:39,140 También hay que tener en cuenta que la línea de comandos sí, golpe es un lenguaje de programación, 827 00:38:39,140 --> 00:38:43,070 y así, cuando te pones a ello, usted podría querer hacer cosas realmente complejas. 828 00:38:43,070 --> 00:38:47,522 Y por lo que tiene cosas como bucles, e IFS, y todos aquellos 829 00:38:47,522 --> 00:38:50,230 que te vas a acostumbrar a con sus lenguajes de programación. 830 00:38:50,230 --> 00:38:53,660 Pero eso es más allá de la ámbito de aplicación de esta sección. 831 00:38:53,660 --> 00:38:55,520 832 00:38:55,520 --> 00:38:56,985 OK, así que no hay preguntas? 833 00:38:56,985 --> 00:38:57,940 834 00:38:57,940 --> 00:38:58,523 ALLISON: Ninguno? 835 00:38:58,523 --> 00:38:59,450 GABRIEL: ¿Vas a-- 836 00:38:59,450 --> 00:39:01,158 ALLISON: puedo hacerlo en la mía, si quieres. 837 00:39:01,158 --> 00:39:02,626 Podemos ver qué pasa. 838 00:39:02,626 --> 00:39:03,750 ROB BOWDEN: Off a Allison. 839 00:39:03,750 --> 00:39:05,090 ALLISON: Woo. 840 00:39:05,090 --> 00:39:07,504 Usted es un acto difícil de seguir, Rob. 841 00:39:07,504 --> 00:39:08,920 ¿Usted quiere que yo enciendo con usted? 842 00:39:08,920 --> 00:39:10,246 O que tienes, en Aceptar. 843 00:39:10,246 --> 00:39:13,590 844 00:39:13,590 --> 00:39:16,990 Voy a tratar de no bastante ser tan largo allí. 845 00:39:16,990 --> 00:39:20,619 846 00:39:20,619 --> 00:39:22,660 Vamos a ver si esta voluntad trabajar la manera que yo quiero que haga. 847 00:39:22,660 --> 00:39:26,170 848 00:39:26,170 --> 00:39:26,670 Tal vez? 849 00:39:26,670 --> 00:39:27,760 850 00:39:27,760 --> 00:39:28,296 Jaja! 851 00:39:28,296 --> 00:39:28,796 Sí. 852 00:39:28,796 --> 00:39:30,460 853 00:39:30,460 --> 00:39:34,066 >> Así que sólo voy a ir muy rápido a través de variables, bucles, condicionales, 854 00:39:34,066 --> 00:39:35,440 y un poco en el compilador. 855 00:39:35,440 --> 00:39:38,570 Si usted tiene preguntas en cualquier momento, por favor me detenga. 856 00:39:38,570 --> 00:39:42,750 Estos chicos me van a recordar a repetir tu pregunta en el caso que me olvide, 857 00:39:42,750 --> 00:39:44,210 pero no debe ser demasiado malo. 858 00:39:44,210 --> 00:39:45,850 >> Así las variables, sí. 859 00:39:45,850 --> 00:39:48,060 No tenemos a nadie de su Piezas de Scratch aquí. 860 00:39:48,060 --> 00:39:50,440 Estoy seguro de que la mayoría de ustedes, si usted tenía algún tipo de juego 861 00:39:50,440 --> 00:39:53,810 que creó con Scratch, que tenía hacer un seguimiento de algo así como la puntuación, 862 00:39:53,810 --> 00:39:55,870 o el tiempo, o algo por el estilo. 863 00:39:55,870 --> 00:39:58,080 Así que los de color naranja brillante piezas que vemos allí 864 00:39:58,080 --> 00:40:02,630 son sólo la forma de los arañazos las variables, y que sin duda 865 00:40:02,630 --> 00:40:04,640 ser el uso de variables a través de sus programas. 866 00:40:04,640 --> 00:40:07,350 Si no lo eres, no estoy realmente seguro de lo que estás haciendo. 867 00:40:07,350 --> 00:40:09,000 868 00:40:09,000 --> 00:40:12,215 >> Pero de todos modos, gran cosa, la definición de las variables. 869 00:40:12,215 --> 00:40:13,630 870 00:40:13,630 --> 00:40:16,970 Con C cada variable tiene tener un tipo declarado, 871 00:40:16,970 --> 00:40:22,090 así que le di una muy una general en la parte superior. 872 00:40:22,090 --> 00:40:24,045 Así que usted tendrá su escribir y luego lo que sea 873 00:40:24,045 --> 00:40:25,420 decide llamar a su variable. 874 00:40:25,420 --> 00:40:27,500 875 00:40:27,500 --> 00:40:29,680 Así que en este caso, el tipo en su lista de variables. 876 00:40:29,680 --> 00:40:31,400 >> Tenemos tres ejemplos. 877 00:40:31,400 --> 00:40:34,439 Char de algún grado, de un A, que es lo 878 00:40:34,439 --> 00:40:36,230 Estoy seguro de que todos quieren para obtener en esta clase. 879 00:40:36,230 --> 00:40:37,380 880 00:40:37,380 --> 00:40:40,670 Puede definir múltiples variables en una línea 881 00:40:40,670 --> 00:40:43,880 siempre y cuando todos son del mismo tipo, que es nuestro segundo ejemplo hay 882 00:40:43,880 --> 00:40:46,409 donde usted tiene tres las variables, x, y, y z. 883 00:40:46,409 --> 00:40:47,200 Son todas las carrozas. 884 00:40:47,200 --> 00:40:49,160 885 00:40:49,160 --> 00:40:53,250 Y entonces usted puede también, en este último ejemplo con int puntuación y número 886 00:40:53,250 --> 00:40:56,510 de los equipos, se puede inicializar ellos allí mismo. 887 00:40:56,510 --> 00:41:01,270 >> Así, en el ejemplo medio donde nos sólo tienes flotador de x, y, z, 888 00:41:01,270 --> 00:41:02,730 los que aún no se inicializan. 889 00:41:02,730 --> 00:41:04,140 Ellos no tienen ningún valor. 890 00:41:04,140 --> 00:41:05,600 O tienen valores de basura. 891 00:41:05,600 --> 00:41:07,370 892 00:41:07,370 --> 00:41:10,790 Y si usted intenta y se utilicen, el compilador gritarte. 893 00:41:10,790 --> 00:41:14,727 Tienes que tanto declarar y inicializar sus variables. 894 00:41:14,727 --> 00:41:16,310 Así que en este último, que estamos haciendo ambas cosas. 895 00:41:16,310 --> 00:41:19,320 Estamos declarando las variables de la puntuación y número de equipos, 896 00:41:19,320 --> 00:41:24,134 y estamos inicializando ellos, dando ellos sus valores iniciales de 7 y 4 897 00:41:24,134 --> 00:41:24,675 respectivamente. 898 00:41:24,675 --> 00:41:26,310 899 00:41:26,310 --> 00:41:27,190 Enfriar. 900 00:41:27,190 --> 00:41:28,550 Todo el mundo bien? 901 00:41:28,550 --> 00:41:29,470 Impresionante. 902 00:41:29,470 --> 00:41:31,690 >> Aceptar, por lo que algunas convenciones. 903 00:41:31,690 --> 00:41:35,965 Si ustedes han leído a través del estilo 50, éstos 904 00:41:35,965 --> 00:41:39,510 son sólo las cosas que nos gustaría para a implementar en su estilo. 905 00:41:39,510 --> 00:41:41,230 Nombres tan significativo. 906 00:41:41,230 --> 00:41:45,700 Si usted comienza a llamar a las cosas acaba de x, y, y z, especialmente 907 00:41:45,700 --> 00:41:47,902 como te metes en más largo programas, eres 908 00:41:47,902 --> 00:41:49,610 probablemente va a confundir a ti mismo y ser 909 00:41:49,610 --> 00:41:52,930 como lo es esta variable se refiere a. 910 00:41:52,930 --> 00:41:55,880 No tengo idea de lo que esto significa. 911 00:41:55,880 --> 00:41:59,280 >> Así que si se supone que debe mantener una puntuación, lo llaman la puntuación. 912 00:41:59,280 --> 00:42:05,720 Si se supone que debe mantener alguna respuesta o dar lugar, darle un nombre como ese. 913 00:42:05,720 --> 00:42:09,920 Para bucles, que vamos a entrar en en la siguiente diapositiva, 914 00:42:09,920 --> 00:42:12,985 variables de una sola letra están bien. 915 00:42:12,985 --> 00:42:16,033 916 00:42:16,033 --> 00:42:18,449 ROB BOWDEN: I, J y K son sólo convenciones para los bucles 917 00:42:18,449 --> 00:42:22,050 que todo el mundo les espera a ser llamado i, j, y k. 918 00:42:22,050 --> 00:42:26,890 Usted puede llamar a ellos-- veo fila columna o fila a veces llamada 919 00:42:26,890 --> 00:42:29,450 por dos bucles anidados, y eso es también una especie de estándar. 920 00:42:29,450 --> 00:42:31,450 Pero i y j es totalmente conocido. 921 00:42:31,450 --> 00:42:33,670 >> ALLISON: Sí, y j eres totalmente bien. 922 00:42:33,670 --> 00:42:36,250 En aras de la claridad como en algunas de sus series P, 923 00:42:36,250 --> 00:42:39,745 podría tener sentido tener más cosas descriptivos en allí sólo 924 00:42:39,745 --> 00:42:40,920 para realizar un seguimiento de la misma. 925 00:42:40,920 --> 00:42:45,100 Pero creo que i, j, k y creo la gran mayoría de nosotros todo el uso. 926 00:42:45,100 --> 00:42:46,890 927 00:42:46,890 --> 00:42:50,340 >> ROB BOWDEN: Con éstos convenciones, por lo que el estilo es importante. 928 00:42:50,340 --> 00:42:53,520 Es uno de los cuatro ejes en la que usted está clasificado, 929 00:42:53,520 --> 00:42:58,110 y es tan fácil de ir más el P fijado en el final y asegurarse 930 00:42:58,110 --> 00:42:59,770 que no hay errores estilísticos. 931 00:42:59,770 --> 00:43:01,742 Así que asegúrese de que está correctamente tabulación. 932 00:43:01,742 --> 00:43:03,200 Asegúrese de que sus variables son nombrados. 933 00:43:03,200 --> 00:43:04,450 Deja algunos comentarios. 934 00:43:04,450 --> 00:43:06,677 Es muy fácil de conseguir esos puntos. 935 00:43:06,677 --> 00:43:09,510 Usted no tiene que pensar en cualquier cosa con el fin de conseguir esos puntos. 936 00:43:09,510 --> 00:43:11,093 Usted no tiene que descifrar nada. 937 00:43:11,093 --> 00:43:12,640 Es simplemente haciendo que se vea bonito. 938 00:43:12,640 --> 00:43:14,850 >> ALLISON: De hecho, tener estilo 50, que 939 00:43:14,850 --> 00:43:17,920 le dirá dónde te estás metiendo hasta si te estás metiendo hasta en el estilo 940 00:43:17,920 --> 00:43:21,180 y le dirá exactamente lo que debe arreglar y cómo tiene que arreglarlo. 941 00:43:21,180 --> 00:43:23,900 También está a sólo bueno mencionar que es la política de curso 942 00:43:23,900 --> 00:43:27,200 que si usted está en la oficina horas y su código es un desastre, 943 00:43:27,200 --> 00:43:30,200 podemos rechazar a ayudar que hasta que se vea más bonito. 944 00:43:30,200 --> 00:43:34,310 Así que empieza a salir a la derecha, mantener estilo coherente, 945 00:43:34,310 --> 00:43:37,100 también sólo vamos a hacer sus vidas mucho más fácil cuando 946 00:43:37,100 --> 00:43:38,730 usted está tratando de ir a través de depuración. 947 00:43:38,730 --> 00:43:41,510 Si usted está tratando de averiguar donde se está perdiendo una llave 948 00:43:41,510 --> 00:43:44,890 y están por todo el lugar, que está sólo hacer su propia vida más difícil. 949 00:43:44,890 --> 00:43:47,217 Así que estar en consonancia con el estilo. 950 00:43:47,217 --> 00:43:48,800 Te prometo que va a hacer su vida más fácil. 951 00:43:48,800 --> 00:43:50,330 Se va a hacer la vida más fácil. 952 00:43:50,330 --> 00:43:51,869 Todo el mundo será mucho más feliz. 953 00:43:51,869 --> 00:43:52,910 Y eso es lo que quieres. 954 00:43:52,910 --> 00:43:54,192 955 00:43:54,192 --> 00:43:55,650 GABRIEL: Su grado será mayor. 956 00:43:55,650 --> 00:43:56,858 ALLISON: Sí, y su grado. 957 00:43:56,858 --> 00:43:58,410 958 00:43:58,410 --> 00:44:01,930 Si el TF es como tú, tiende a ser favorable. 959 00:44:01,930 --> 00:44:02,940 960 00:44:02,940 --> 00:44:05,010 Muy bien, y luego sólo el segundo punto aquí. 961 00:44:05,010 --> 00:44:06,300 Inicializaciones consistente. 962 00:44:06,300 --> 00:44:09,605 Así como hemos visto, se puede declarar e inicializar las cosas. 963 00:44:09,605 --> 00:44:10,750 964 00:44:10,750 --> 00:44:13,180 Múltiples variables en la misma línea. 965 00:44:13,180 --> 00:44:17,930 Una cosa que nos gustaría que no que hacer es declarar algunas variables 966 00:44:17,930 --> 00:44:21,360 y no inicializar ellos en el mismo línea que está inicializando otros. 967 00:44:21,360 --> 00:44:23,960 >> Así que en caso de que hizo no tiene sentido alguno, 968 00:44:23,960 --> 00:44:29,050 tenemos el ejemplo aquí donde estamos declarando ints 969 00:44:29,050 --> 00:44:31,180 en las variables de cuartos monedas de diez centavos y peniques, 970 00:44:31,180 --> 00:44:34,214 pero cuartos y centavos no tienen ningún valor inicial. 971 00:44:34,214 --> 00:44:36,630 No los hemos inicializado, pero justo en el medio hay 972 00:44:36,630 --> 00:44:38,600 ya inicializado monedas de diez centavos a 0. 973 00:44:38,600 --> 00:44:41,650 Así que, o hacer cuartos, monedas de diez centavos, monedas de un centavo. 974 00:44:41,650 --> 00:44:43,170 ¿O cuartas partes son iguales 0. 975 00:44:43,170 --> 00:44:43,930 Dimes equivalen a 0. 976 00:44:43,930 --> 00:44:46,810 Centavos igualan 0, o lo que sea esos valores iniciales son. 977 00:44:46,810 --> 00:44:49,800 >> Cosa grande con estilo, ser coherente. 978 00:44:49,800 --> 00:44:51,050 En caso de duda, ser coherente. 979 00:44:51,050 --> 00:44:52,129 980 00:44:52,129 --> 00:44:53,420 Pero seguir nuestra guía de estilo también. 981 00:44:53,420 --> 00:44:54,710 982 00:44:54,710 --> 00:44:55,317 Enfriar. 983 00:44:55,317 --> 00:44:56,150 Todo el mundo bien allí? 984 00:44:56,150 --> 00:44:57,566 >> AUDIENCIA: ¿Dónde está la guía de estilo? 985 00:44:57,566 --> 00:45:00,800 ALLISON: La guía de estilo es en-- ¿cuál es el sitio web? 986 00:45:00,800 --> 00:45:03,950 >> GABRIEL: Yo creo que es manual.cs50.net/-- 987 00:45:03,950 --> 00:45:04,575 ALLISON: Estilo? 988 00:45:04,575 --> 00:45:05,610 989 00:45:05,610 --> 00:45:06,390 >> GABRIEL: Estilo. 990 00:45:06,390 --> 00:45:06,920 Sí. 991 00:45:06,920 --> 00:45:07,520 >> ALLISON: Sí. 992 00:45:07,520 --> 00:45:10,150 Así que la pregunta, ¿dónde está el estilo 50. 993 00:45:10,150 --> 00:45:12,250 manual.cs50.net/style. 994 00:45:12,250 --> 00:45:13,639 ¿Sí? 995 00:45:13,639 --> 00:45:16,880 >> AUDIENCIA: Si estamos definiendo las variables, ¿está bien 996 00:45:16,880 --> 00:45:28,145 si ponemos como [inaudible] como int puntuación y luego int meta. 997 00:45:28,145 --> 00:45:29,873 998 00:45:29,873 --> 00:45:35,100 Así que diría usted que ahora que hemos tiene que definir juntos? 999 00:45:35,100 --> 00:45:37,640 >> ALLISON: Así que la pregunta, en caso de tiene código redundante 1000 00:45:37,640 --> 00:45:40,940 cuando se está definiendo variables como int puntuación y 1001 00:45:40,940 --> 00:45:43,239 en la línea siguiente int juego? 1002 00:45:43,239 --> 00:45:46,030 ROB BOWDEN: Hay definitivamente casos en los que el código redundante es malo. 1003 00:45:46,030 --> 00:45:47,738 Yo no lo consideraría que el código redundante. 1004 00:45:47,738 --> 00:45:50,970 Yo casi nunca declaro múltiple variables en la misma línea de siempre. 1005 00:45:50,970 --> 00:45:53,736 Y en todo caso, es porque usualmente dejo algún tipo de comentario 1006 00:45:53,736 --> 00:45:55,235 explicando lo que la variable es para. 1007 00:45:55,235 --> 00:45:57,582 Así que voy a decir int puntuación slash slash. 1008 00:45:57,582 --> 00:45:59,350 Realiza un seguimiento de lo que sea. 1009 00:45:59,350 --> 00:46:00,710 En tala total de barra. 1010 00:46:00,710 --> 00:46:01,790 1011 00:46:01,790 --> 00:46:06,455 Así que es mucho más burda de esa manera para poner a todos en la misma línea. 1012 00:46:06,455 --> 00:46:08,080 Yo nunca puse en la misma línea. 1013 00:46:08,080 --> 00:46:10,580 >> ALLISON: Me siento como si fuera preferencia personal en este punto. 1014 00:46:10,580 --> 00:46:14,900 >> AUDIENCIA: ¿Eso va para de bucles y cosas también? 1015 00:46:14,900 --> 00:46:15,900 ROB BOWDEN: Al igual que en el interior? 1016 00:46:15,900 --> 00:46:18,282 Al igual que int i es igual a 0 por comas longitud es igual a algo? 1017 00:46:18,282 --> 00:46:19,490 Que usted no tiene una elección. 1018 00:46:19,490 --> 00:46:21,850 1019 00:46:21,850 --> 00:46:25,910 Con los bucles de la inicialización parcialmente: por lo que podría sólo haber visto 1020 00:46:25,910 --> 00:46:31,520 int i es igual a 0 i punto y coma menos que lo coma i plus plus. 1021 00:46:31,520 --> 00:46:33,820 Eso int i es igual a 0, técnicamente también puede 1022 00:46:33,820 --> 00:46:35,770 hacemos lo que hemos visto antes con la sintaxis coma. 1023 00:46:35,770 --> 00:46:39,790 int i es igual a 0 coma j es igual a 3 coma k es igual a 5. 1024 00:46:39,790 --> 00:46:41,610 1025 00:46:41,610 --> 00:46:44,320 Usted no tiene la opción de dividir que en múltiples líneas, 1026 00:46:44,320 --> 00:46:46,530 y eso es normal. 1027 00:46:46,530 --> 00:46:47,780 Al ver que no está bien. 1028 00:46:47,780 --> 00:46:49,182 1029 00:46:49,182 --> 00:46:49,890 ALLISON: Awesome. 1030 00:46:49,890 --> 00:46:52,120 Bueno, segue conveniente en bucles. 1031 00:46:52,120 --> 00:46:54,860 1032 00:46:54,860 --> 00:46:58,980 Así que sí, aquí tenemos algunos ejemplos de bucles que ustedes vio en scratch. 1033 00:46:58,980 --> 00:47:01,550 Y, por supuesto, todos estos sólo puede ser recreado en C. 1034 00:47:01,550 --> 00:47:04,610 Y ellos básicamente le permiten repetir algunos sección de código 1035 00:47:04,610 --> 00:47:06,740 hasta que una cierta condición se cumple, lo que vamos a 1036 00:47:06,740 --> 00:47:09,198 entrar en la derecha después de hablar acerca de los bucles con los condicionales. 1037 00:47:09,198 --> 00:47:11,150 1038 00:47:11,150 --> 00:47:12,570 >> Así que tenemos tres tipos principales. 1039 00:47:12,570 --> 00:47:17,500 Porque, mientras, y hacer, mientras que todos vamos a pasar por este momento. 1040 00:47:17,500 --> 00:47:18,860 Así que primero es para los bucles. 1041 00:47:18,860 --> 00:47:20,490 1042 00:47:20,490 --> 00:47:25,034 Así, por alguna condición, ejecutar este bloque de código. 1043 00:47:25,034 --> 00:47:27,200 Tenemos este pequeño fresco diagrama aquí en la parte inferior. 1044 00:47:27,200 --> 00:47:28,230 1045 00:47:28,230 --> 00:47:32,310 Pero, básicamente, que tiene en su para, esa primera línea, 1046 00:47:32,310 --> 00:47:34,240 usted va a inicializar sus variables. 1047 00:47:34,240 --> 00:47:38,260 >> Así como hemos hablado, i es igual a 0 ó I es igual a 10. 1048 00:47:38,260 --> 00:47:40,010 Lo que usted necesita que variable para ser Es 1049 00:47:40,010 --> 00:47:43,970 va a ser inicializado allí, declarado e inicializado a algún valor. 1050 00:47:43,970 --> 00:47:46,760 Así que tenemos un poco de condición que va 1051 00:47:46,760 --> 00:47:48,900 estar comprobando nuestra variables en contra de algo. 1052 00:47:48,900 --> 00:47:55,220 Así que en el caso de que el caso típico en el que tal vez usted quiere esta sección de código 1053 00:47:55,220 --> 00:47:56,620 para ejecutar cinco veces. 1054 00:47:56,620 --> 00:48:02,380 Así tendríamos int i es igual a 0, y quiero que sea cuando i es menor que 5. 1055 00:48:02,380 --> 00:48:04,940 Así que la condición es sólo va a comprobar que cada vez. 1056 00:48:04,940 --> 00:48:07,120 Si esa condición evalúa a cierto, es 1057 00:48:07,120 --> 00:48:11,162 va a ejecutar el código, que es exactamente lo que este pequeño diagrama está mostrando. 1058 00:48:11,162 --> 00:48:12,370 1059 00:48:12,370 --> 00:48:13,639 >> Y así lo ejecuta. 1060 00:48:13,639 --> 00:48:15,430 Se actualiza una variable, que es lo que vemos 1061 00:48:15,430 --> 00:48:21,020 en la última parte de nuestra para inicialización de bucle allí. 1062 00:48:21,020 --> 00:48:22,370 1063 00:48:22,370 --> 00:48:26,030 Así que voy a seguir haciendo esto hasta que no se cumple esa condición, 1064 00:48:26,030 --> 00:48:28,010 y luego saldrá el bucle y continuar 1065 00:48:28,010 --> 00:48:29,960 seguir adelante con el resto de su programa. 1066 00:48:29,960 --> 00:48:31,320 1067 00:48:31,320 --> 00:48:33,620 Todo el mundo bien allí? 1068 00:48:33,620 --> 00:48:34,440 Enfriar. 1069 00:48:34,440 --> 00:48:37,780 >> Así que aquí está un ejemplo, muy similar a algo que acabo de hablar. 1070 00:48:37,780 --> 00:48:42,030 Así que sólo queremos imprimir esto es CS50 10 veces. 1071 00:48:42,030 --> 00:48:44,540 Así que ya ves que aquí tenemos nuestra para, a continuación, nos 1072 00:48:44,540 --> 00:48:47,450 inicializar la variable i sea igual a 0. 1073 00:48:47,450 --> 00:48:50,610 Nuestra condición es la comprobación que es menos de 10. 1074 00:48:50,610 --> 00:48:55,210 Así que evaluar a verdadero cuando por primera vez empezar, y luego actualiza nuestra variable 1075 00:48:55,210 --> 00:48:58,985 cada vez que se ejecuta realmente e imprime este es CS50. 1076 00:48:58,985 --> 00:49:00,510 1077 00:49:00,510 --> 00:49:02,180 Y terminará después de 10 veces. 1078 00:49:02,180 --> 00:49:03,190 1079 00:49:03,190 --> 00:49:04,070 Enfriar. 1080 00:49:04,070 --> 00:49:07,130 >> Así, mientras que los bucles son hasta la próxima. 1081 00:49:07,130 --> 00:49:12,400 Y como se puede ver aquí, sólo tenemos algunos, mientras que esta pregunta condición--? 1082 00:49:12,400 --> 00:49:15,238 >> AUDIENCIA: ¿Cómo puedo saltar en realidad no un número, 1083 00:49:15,238 --> 00:49:19,030 pero dos números [inaudible] i plus plus plus? 1084 00:49:19,030 --> 00:49:23,390 >> ALLISON: Así que la pregunta era ¿cómo puede usted actualizar la variable de más de un 1085 00:49:23,390 --> 00:49:24,070 a la vez. 1086 00:49:24,070 --> 00:49:26,860 Así que además Plus actualización en uno cada vez. 1087 00:49:26,860 --> 00:49:32,310 Si usted quisiera actualizarlo por dos, usted podría hacer más i es igual a 2. 1088 00:49:32,310 --> 00:49:34,526 >> ROB BOWDEN: ¿Has visto más iguales en conferencia todavía? 1089 00:49:34,526 --> 00:49:35,442 >> AUDIENCIA: [inaudible]. 1090 00:49:35,442 --> 00:49:37,440 1091 00:49:37,440 --> 00:49:42,110 >> ALLISON: Es efectivamente el lo mismo que i es igual i más 2. 1092 00:49:42,110 --> 00:49:46,130 Así que va a tomar y actualizar por dos cada vez. 1093 00:49:46,130 --> 00:49:49,432 Plus iguales es sólo algo que llamamos azúcar sintáctica. 1094 00:49:49,432 --> 00:49:52,390 ROB BOWDEN: Sí, los que existen para casi todos los operadores aritméticos. 1095 00:49:52,390 --> 00:49:55,830 Veces, así que igual a se duplicaría el número. 1096 00:49:55,830 --> 00:50:02,590 j brecha es igual a 3 es el mismo como j es igual a j dividido por 3. 1097 00:50:02,590 --> 00:50:07,399 >> ALLISON: o menos es igual a 2 lo haría i disminuir por dos cada vez. 1098 00:50:07,399 --> 00:50:08,565 ROB BOWDEN: Incluso iguales mod. 1099 00:50:08,565 --> 00:50:09,690 1100 00:50:09,690 --> 00:50:13,270 Usted no ha visto los operadores bit a bit, pero es igual de intercalación y signo igual, 1101 00:50:13,270 --> 00:50:14,560 todos aquellos existen. 1102 00:50:14,560 --> 00:50:19,480 >> ALLISON: Así que un montón de veces, sobre todo con su primer par de conjuntos de P, 1103 00:50:19,480 --> 00:50:22,527 usted estará probablemente incrementando por uno, así que además de más, j plus plus 1104 00:50:22,527 --> 00:50:24,610 son todas las cosas que vas ser típicamente usando. 1105 00:50:24,610 --> 00:50:28,240 Pero esa condición actualización totalmente bajo su control. 1106 00:50:28,240 --> 00:50:32,310 Puede actualizarlo por cualquier incrementos o de cualquier manera que usted decide. 1107 00:50:32,310 --> 00:50:33,389 1108 00:50:33,389 --> 00:50:35,680 Tal vez incluso quiere que sea un número aleatorio a veces. 1109 00:50:35,680 --> 00:50:37,180 1110 00:50:37,180 --> 00:50:39,580 Pero sí, hay un montón de cosas que usted puede hacer con eso. 1111 00:50:39,580 --> 00:50:41,280 Usted no está limitado a i plus plus. 1112 00:50:41,280 --> 00:50:44,400 >> ROB BOWDEN: Para que lo sabe que existe, sino que también 1113 00:50:44,400 --> 00:50:46,960 existe en otra forma, plus plus i. 1114 00:50:46,960 --> 00:50:51,410 Así que si alguna vez la búsqueda en línea y pasar a ver plus plus i, 1115 00:50:51,410 --> 00:50:52,870 más o menos significa lo mismo. 1116 00:50:52,870 --> 00:50:54,377 1117 00:50:54,377 --> 00:50:54,960 ALLISON: Cool. 1118 00:50:54,960 --> 00:50:56,070 1119 00:50:56,070 --> 00:50:56,740 Buena? 1120 00:50:56,740 --> 00:50:57,240 Impresionante. 1121 00:50:57,240 --> 00:50:59,190 1122 00:50:59,190 --> 00:50:59,990 Así, mientras que los bucles. 1123 00:50:59,990 --> 00:51:01,160 1124 00:51:01,160 --> 00:51:02,570 Muy similar. 1125 00:51:02,570 --> 00:51:03,737 Usted tiene alguna condición. 1126 00:51:03,737 --> 00:51:05,820 Lo más importante a notar aquí es en lugar de tener 1127 00:51:05,820 --> 00:51:08,540 tres partes diferentes configurar, tenemos una. 1128 00:51:08,540 --> 00:51:11,090 Sólo tenemos alguna condición que está siendo comprobado. 1129 00:51:11,090 --> 00:51:14,920 Y de la misma manera, siempre y cuando que la condición se evalúa como verdadera, 1130 00:51:14,920 --> 00:51:16,840 el código se va a ejecutar. 1131 00:51:16,840 --> 00:51:18,870 Y si es falso, terminará, mover 1132 00:51:18,870 --> 00:51:21,930 en la siguiente parte de su programa. 1133 00:51:21,930 --> 00:51:25,780 Así que esto es una especie de lo que es como-- un buen ejemplo de comprobación 1134 00:51:25,780 --> 00:51:27,215 por alguna condición normal? 1135 00:51:27,215 --> 00:51:29,402 1136 00:51:29,402 --> 00:51:30,235 GABRIEL: Si bien es cierto. 1137 00:51:30,235 --> 00:51:32,110 ALLISON: Usted podría hacer mientras cierto. 1138 00:51:32,110 --> 00:51:33,510 Bueno, 1 es igual a 1. 1139 00:51:33,510 --> 00:51:34,970 1140 00:51:34,970 --> 00:51:37,642 >> ROB BOWDEN: Usted puede hacer rato-- sólo en lugar de utilizar un bucle for, 1141 00:51:37,642 --> 00:51:39,600 siempre se puede codificar una de bucle en un bucle while, 1142 00:51:39,600 --> 00:51:42,600 así que o mayor que 0 mientras i menos de 10. 1143 00:51:42,600 --> 00:51:45,200 1144 00:51:45,200 --> 00:51:46,010 >> ALLISON: Awesome. 1145 00:51:46,010 --> 00:51:50,640 Y entonces hemos hacer bucles while, que es ideal para la validación del usuario, donde 1146 00:51:50,640 --> 00:51:55,370 usted desea conseguir algo de el usuario, ver si es válida, 1147 00:51:55,370 --> 00:51:57,060 y luego continuar a partir de ahí. 1148 00:51:57,060 --> 00:52:04,000 Así que una de las cosas que debe saber es con un hacer, mientras que es que se va a ejecutar, 1149 00:52:04,000 --> 00:52:08,000 y entonces volver a ejecutar si se cumple esta condición. 1150 00:52:08,000 --> 00:52:11,240 >> Así que, probablemente, la mejor manera de hacer esto es sólo para ver un ejemplo aquí. 1151 00:52:11,240 --> 00:52:14,620 Así como acabo de mencionar, el usuario validación es realmente useful-- 1152 00:52:14,620 --> 00:52:17,520 o hacer entre tanto que son realmente útil con la validación del usuario. 1153 00:52:17,520 --> 00:52:19,730 Así que esto es sólo va para volver a provocar algún usuario 1154 00:52:19,730 --> 00:52:23,640 hasta que entran un número positivo, lo que podría ser útil para el conjunto de P 1155 00:52:23,640 --> 00:52:24,190 esta semana. 1156 00:52:24,190 --> 00:52:25,850 1157 00:52:25,850 --> 00:52:29,480 Y así, en este caso, cuando inicialmente ejecutar este programa, 1158 00:52:29,480 --> 00:52:32,260 que va a imprimir introduzca un número positivo. 1159 00:52:32,260 --> 00:52:34,810 Se va a conseguir un poco de la entrada del usuario, 1160 00:52:34,810 --> 00:52:38,320 y luego se va a comprobar que la entrada en contra de la condición 1161 00:52:38,320 --> 00:52:39,500 que ha establecido para ello. 1162 00:52:39,500 --> 00:52:41,030 >> Así que en este caso se va a comprobar. 1163 00:52:41,030 --> 00:52:44,190 Se va a decir, OK, es nuestra entrada negativa, 1164 00:52:44,190 --> 00:52:47,175 o es 0 o negativo, que sería válida. 1165 00:52:47,175 --> 00:52:48,300 Así que entonces sería re-prompt. 1166 00:52:48,300 --> 00:52:50,280 1167 00:52:50,280 --> 00:52:50,780 Pregunta? 1168 00:52:50,780 --> 00:52:54,720 >> AUDIENCIA: ¿Es este el mismo entonces como un while si usted acaba de copiar ese código 1169 00:52:54,720 --> 00:52:56,680 y lo puso [inaudible] while? 1170 00:52:56,680 --> 00:52:59,620 1171 00:52:59,620 --> 00:53:05,160 >> ALLISON: Así que la pregunta era lo haría éste sea el mismo que sólo un mientras 1172 00:53:05,160 --> 00:53:08,570 bucle si tuviéramos que sólo copiar el bucle while anteriormente. 1173 00:53:08,570 --> 00:53:12,440 Así que en este caso, el bucle while es va a comprobar la condición primera. 1174 00:53:12,440 --> 00:53:15,300 Así que en este caso, si lo intentamos escribir como sólo un bucle while, 1175 00:53:15,300 --> 00:53:18,010 diría mientras de entrada es menor que uno. 1176 00:53:18,010 --> 00:53:20,801 Pero no tenemos una entrada para ella. 1177 00:53:20,801 --> 00:53:24,238 >> AUDIENCIA: Si [inaudible] mientras bucle que incluye este código, 1178 00:53:24,238 --> 00:53:28,166 pero entonces usted hecho frente el código por encima de la bucle while también. 1179 00:53:28,166 --> 00:53:31,052 Usted acaba de tener este código [Inaudible] while. 1180 00:53:31,052 --> 00:53:32,760 ALLISON: Sería lo mismo, sí. 1181 00:53:32,760 --> 00:53:37,110 Así que usted podría write-- en lugar de tener un sí hacer--. 1182 00:53:37,110 --> 00:53:37,976 1183 00:53:37,976 --> 00:53:39,350 GABRIEL: Pero eso es más elegante. 1184 00:53:39,350 --> 00:53:41,020 ALLISON: Sí, eso es más elegante. 1185 00:53:41,020 --> 00:53:44,560 Usted puede entrar en el diseño y todo eso, pero sí, se puede hacer totalmente eso. 1186 00:53:44,560 --> 00:53:45,850 1187 00:53:45,850 --> 00:53:47,072 ¿Alguna otra pregunta? 1188 00:53:47,072 --> 00:53:49,240 1189 00:53:49,240 --> 00:53:50,250 Aceptar, fresco. 1190 00:53:50,250 --> 00:53:55,540 >> Así que hemos hablado mucho sobre las condiciones con todos estos lazos que tenemos, 1191 00:53:55,540 --> 00:53:58,615 por lo que en realidad estamos metiendo las condiciones en las expresiones booleanas. 1192 00:53:58,615 --> 00:53:59,990 1193 00:53:59,990 --> 00:54:03,440 Una vez más, utiliza estos productos en C, por lo que sólo tipo de transición 1194 00:54:03,440 --> 00:54:06,050 más de la interfaz gráfica para realmente codificación. 1195 00:54:06,050 --> 00:54:07,480 1196 00:54:07,480 --> 00:54:09,100 >> Enfriar, por lo que uno grande, si. 1197 00:54:09,100 --> 00:54:11,130 1198 00:54:11,130 --> 00:54:17,070 Básicamente, sólo nos permite introducir algo de lógica en nuestro programa y verificación 1199 00:54:17,070 --> 00:54:17,790 condiciones sys. 1200 00:54:17,790 --> 00:54:22,150 Así que en este caso, está bien, n es mayor que 0? 1201 00:54:22,150 --> 00:54:24,070 Sí lo es, por lo que puede ejecutar este. 1202 00:54:24,070 --> 00:54:28,060 Es sólo la comprobación algunos condición de que tienes 1203 00:54:28,060 --> 00:54:33,565 puse, que creo que todos estamos cómodo con la comprobación de las condiciones. 1204 00:54:33,565 --> 00:54:35,975 1205 00:54:35,975 --> 00:54:36,475 Enfriar. 1206 00:54:36,475 --> 00:54:38,760 1207 00:54:38,760 --> 00:54:44,530 Así que si lo demás es su otro, se puede decir bien, si esto es cierto, 1208 00:54:44,530 --> 00:54:46,150 hacer esto lo primero. 1209 00:54:46,150 --> 00:54:48,720 De lo contrario, te quiero por defecto y hacer otra cosa. 1210 00:54:48,720 --> 00:54:51,977 1211 00:54:51,977 --> 00:54:55,060 Al igual que en este caso, o bien escoger un número positivo o un número negativo. 1212 00:54:55,060 --> 00:54:56,500 Usted sólo tiene dos opciones. 1213 00:54:56,500 --> 00:54:59,550 Lo necesita para ejecutar independientemente de lo que sus entradas del usuario. 1214 00:54:59,550 --> 00:55:02,920 Así que se puede decir así, es mayor que 0? 1215 00:55:02,920 --> 00:55:03,480 Enfriar. 1216 00:55:03,480 --> 00:55:04,480 Imprimir un número positivo. 1217 00:55:04,480 --> 00:55:06,153 Si no lo es, imprimir un negativo. 1218 00:55:06,153 --> 00:55:06,960 Todo el mundo bien? 1219 00:55:06,960 --> 00:55:14,920 >> Y luego una cosa es reconocer es que si se cumple la condición si, 1220 00:55:14,920 --> 00:55:16,650 el otro será nunca también ejecutar. 1221 00:55:16,650 --> 00:55:19,210 Sólo uno de ellos lo hará ejecutar a la vez. 1222 00:55:19,210 --> 00:55:20,410 Así que es una solución de compromiso. 1223 00:55:20,410 --> 00:55:21,720 Usted no llegar a tener tanto. 1224 00:55:21,720 --> 00:55:23,566 O tienes la primera condición. 1225 00:55:23,566 --> 00:55:25,440 O tienes el si o la otra, no ambas. 1226 00:55:25,440 --> 00:55:26,849 1227 00:55:26,849 --> 00:55:28,890 Que luego puede hacer que las cosas aún más complicado, 1228 00:55:28,890 --> 00:55:31,060 porque se puede hacer si, de lo contrario, y luego más. 1229 00:55:31,060 --> 00:55:32,810 Así que en este caso, tener tres condiciones. 1230 00:55:32,810 --> 00:55:34,830 1231 00:55:34,830 --> 00:55:38,370 Y de nuevo, sólo uno de ellos es va a terminar siendo ejecutado. 1232 00:55:38,370 --> 00:55:41,030 Así que puede que se pregunte bien, ¿qué pasa si usted 1233 00:55:41,030 --> 00:55:45,510 tener algo que puede satisfacer dos de ellos. 1234 00:55:45,510 --> 00:55:49,520 Tal vez lo que usted está introduciendo cumple tanto la condición 1235 00:55:49,520 --> 00:55:51,811 para si y el otro si. 1236 00:55:51,811 --> 00:55:53,060 Lo único que va a ejecutar 1237 00:55:53,060 --> 00:55:56,240 >> ALLISON: Tan pronto como se encuentra algo que cumple con la condición de que 1238 00:55:56,240 --> 00:55:59,790 evalúa a verdadero, eso es lo que que va a correr y nada más. 1239 00:55:59,790 --> 00:56:04,440 Así que si usted tenía es este número entre 0 y 5 para el primero de ellos, 1240 00:56:04,440 --> 00:56:10,530 o es este número entre 3 y 5 para el otro si parte, 1241 00:56:10,530 --> 00:56:15,550 y que de entrada la number-- Dije 0 y 5 y- 4. 1242 00:56:15,550 --> 00:56:18,110 Se va a golpear a la primera. 1243 00:56:18,110 --> 00:56:20,960 Va a decir OK, esto número está comprendido entre 0 y 5. 1244 00:56:20,960 --> 00:56:22,480 Ejecutar y se van. 1245 00:56:22,480 --> 00:56:25,340 Nunca llegará a esa segunda opción. 1246 00:56:25,340 --> 00:56:26,394 Fresco? 1247 00:56:26,394 --> 00:56:27,250 Impresionante. 1248 00:56:27,250 --> 00:56:31,300 >> Aceptar también tenemos sentencias switch si desea obtener aún más-- o lo siento, 1249 00:56:31,300 --> 00:56:31,965 interruptor está al lado. 1250 00:56:31,965 --> 00:56:33,540 1251 00:56:33,540 --> 00:56:34,990 Me estoy adelantando a mí mismo aquí. 1252 00:56:34,990 --> 00:56:36,370 1253 00:56:36,370 --> 00:56:39,210 Una vez más, si múltiples bloques donde como acabo de decir 1254 00:56:39,210 --> 00:56:45,600 es en cuanto a encontrar una condición que ha conocido y un if-else if-else, 1255 00:56:45,600 --> 00:56:46,630 deja. 1256 00:56:46,630 --> 00:56:49,560 Si usted necesita para comprobar múltiples cosas, eres 1257 00:56:49,560 --> 00:56:53,000 va a querer usar esto porque comprobará cada vez que aquí. 1258 00:56:53,000 --> 00:56:58,060 Así que esto se ejecutará a través de y si que es mayor que o igual a 90, 1259 00:56:58,060 --> 00:56:59,160 que va a imprimir eso. 1260 00:56:59,160 --> 00:57:00,530 1261 00:57:00,530 --> 00:57:03,600 Y se ejecutará a través de y comprobar todos y cada uno de ellos. 1262 00:57:03,600 --> 00:57:06,444 >> AUDIENCIA: Así que esto sería más defectuoso que [inaudible]. 1263 00:57:06,444 --> 00:57:07,735 ¿Podría ser esto como [inaudible]? 1264 00:57:07,735 --> 00:57:10,990 1265 00:57:10,990 --> 00:57:15,740 >> ALLISON: La pregunta se sería este buggy o hace esto lo que quieres. 1266 00:57:15,740 --> 00:57:19,830 Realmente depende de lo que que quiere de su programa. 1267 00:57:19,830 --> 00:57:22,291 >> AUDIENCIA: Me refiero a como si pones 90 en. 1268 00:57:22,291 --> 00:57:23,290 ALLISON: Si pones 90-- 1269 00:57:23,290 --> 00:57:24,206 AUDIENCIA: [inaudible]. 1270 00:57:24,206 --> 00:57:25,584 1271 00:57:25,584 --> 00:57:27,250 GABRIEL: Vas a conseguir dos cosas. 1272 00:57:27,250 --> 00:57:28,916 ALLISON: Vas a conseguir dos cosas. 1273 00:57:28,916 --> 00:57:29,420 Sí, dos. 1274 00:57:29,420 --> 00:57:32,420 1275 00:57:32,420 --> 00:57:33,920 >> ROB BOWDEN: Dos? 1276 00:57:33,920 --> 00:57:34,580 >> ALLISON: No. 1277 00:57:34,580 --> 00:57:35,288 >> ROB BOWDEN: Cuatro. 1278 00:57:35,288 --> 00:57:37,070 1279 00:57:37,070 --> 00:57:40,070 Si pones 90, que va a decir usted obtuvo una A, que recibió una B, que recibió una C, 1280 00:57:40,070 --> 00:57:40,545 tienes una D. 1281 00:57:40,545 --> 00:57:41,461 >> AUDIENCIA: [inaudible]. 1282 00:57:41,461 --> 00:57:42,196 1283 00:57:42,196 --> 00:57:42,820 ALLISON: Derecho. 1284 00:57:42,820 --> 00:57:44,778 Así que depende de lo que desear de usted programa. 1285 00:57:44,778 --> 00:57:47,050 A veces es necesario comprobar varias cosas. 1286 00:57:47,050 --> 00:57:49,970 1287 00:57:49,970 --> 00:57:55,270 Usted conseguirá mucho más profundo en lo que el buen diseño es la marcha hacia adelante. 1288 00:57:55,270 --> 00:57:57,090 Lo importante a se dan cuenta es que este 1289 00:57:57,090 --> 00:58:01,090 comprobará las cuatro condiciones aquí. 1290 00:58:01,090 --> 00:58:05,860 Mientras que si se tratara de un if-else if-else si otra cosa, sería golpear ese primer caso, 1291 00:58:05,860 --> 00:58:07,950 sería imprimir tienes una A y por hacer. 1292 00:58:07,950 --> 00:58:10,250 >> ROB BOWDEN: Incluso si decidido a cambiar esto a si 1293 00:58:10,250 --> 00:58:13,880 y mayor o igual a 90, si y mayor o igual a 80, 1294 00:58:13,880 --> 00:58:19,710 y menor o igual a 89, si n mayor que o igual a 70, 1295 00:58:19,710 --> 00:58:23,830 y n menor que o igual a 79, por lo que será correcta. 1296 00:58:23,830 --> 00:58:27,190 Eso va a hacer lo que queremos, pero todavía comprueba cada ello. 1297 00:58:27,190 --> 00:58:34,050 >> Así que mientras que en el primer escenario, si introducir 90 con sólo si los demás si los demás si, 1298 00:58:34,050 --> 00:58:37,300 y entramos en el 90, a continuación, que va a corregir. 1299 00:58:37,300 --> 00:58:39,615 Se comprobará la primera uno, impresión que recibió una A, 1300 00:58:39,615 --> 00:58:42,590 omitir todo, porque ya encontrado uno que funcione. 1301 00:58:42,590 --> 00:58:46,360 Todos los casos son mutuamente excluyentes sobre la base de si los demás si lo demás si. 1302 00:58:46,360 --> 00:58:48,630 Así que va a ejecutar el en primer lugar si, a continuación, se hace. 1303 00:58:48,630 --> 00:58:49,790 Se va a ir hasta el final. 1304 00:58:49,790 --> 00:58:52,400 >> Mientras que si cambiamos que esto es lo que yo era 1305 00:58:52,400 --> 00:58:54,204 decir con menos de o igual a 89. 1306 00:58:54,204 --> 00:58:55,620 Se va a revisar la primera. 1307 00:58:55,620 --> 00:58:56,560 Se va a imprimir. 1308 00:58:56,560 --> 00:58:58,010 Se va a verificar el segundo. 1309 00:58:58,010 --> 00:58:59,010 No va a imprimir. 1310 00:58:59,010 --> 00:58:59,910 Compruebe el tercero. 1311 00:58:59,910 --> 00:59:00,620 No va a imprimir. 1312 00:59:00,620 --> 00:59:01,495 Compruebe el cuarto. 1313 00:59:01,495 --> 00:59:02,420 Ahora va a imprimir. 1314 00:59:02,420 --> 00:59:05,380 Así que en ese caso, la persona si de versión, ya que estos casos 1315 00:59:05,380 --> 00:59:09,120 son mutuamente excluyentes, es un mejor uso si otra cosa si lo demás si, 1316 00:59:09,120 --> 00:59:12,970 porque eso va a tener un menor número de controles de las condiciones 1317 00:59:12,970 --> 00:59:14,750 de esta versión. 1318 00:59:14,750 --> 00:59:17,692 1319 00:59:17,692 --> 00:59:18,400 ALLISON: Awesome. 1320 00:59:18,400 --> 00:59:20,580 Así que otra cosa que podamos hacer es sentencias switch. 1321 00:59:20,580 --> 00:59:23,104 1322 00:59:23,104 --> 00:59:25,270 Básicamente una sentencia switch toma en alguna variable, 1323 00:59:25,270 --> 00:59:28,780 en este caso es n, y determina que el caso de ejecutar. 1324 00:59:28,780 --> 00:59:33,106 Así que este es también uno donde sus casos debe ser una especie de mutuamente excluyentes. 1325 00:59:33,106 --> 00:59:35,210 1326 00:59:35,210 --> 00:59:37,940 Así pues, en este caso, si nosotros tenemos un uno, es 1327 00:59:37,940 --> 00:59:42,270 va a coincidir con lo que variable-- cualquiera que sea el valor de n 1328 00:59:42,270 --> 00:59:48,700 es uno de estos casos, por lo que 1, 2, o 3, e imprimir la línea correspondiente. 1329 00:59:48,700 --> 00:59:51,870 >> Y entonces, si usted nota aquí, también tenemos un defecto, 1330 00:59:51,870 --> 00:59:54,670 que se puede pensar en como de su persona. 1331 00:59:54,670 --> 00:59:58,510 Así que si tienes que elegir cualquier otro número además de 1, 2, y 3 en este caso 1332 00:59:58,510 --> 00:59:59,885 que sólo va a imprimir válido. 1333 00:59:59,885 --> 01:00:03,690 1334 01:00:03,690 --> 01:00:08,390 Decidir cuándo utilizar IFS frente si vigilara frente a los interruptores que está pasando 1335 01:00:08,390 --> 01:00:12,590 que ser algo que ustedes lo hará Vea el diseño inteligente como usted comience a escribir 1336 01:00:12,590 --> 01:00:15,270 programas más complicados, y no hay reglas duras y rápidas 1337 01:00:15,270 --> 01:00:16,330 de cuándo usarlos. 1338 01:00:16,330 --> 01:00:17,890 Realmente depende de su contexto. 1339 01:00:17,890 --> 01:00:18,590 >> ROB BOWDEN: Y de la misma para tirarlo por ahí 1340 01:00:18,590 --> 01:00:20,131 ya que es la sección más cómodo. 1341 01:00:20,131 --> 01:00:20,920 1342 01:00:20,920 --> 01:00:25,053 Interruptores, tienden a ser: lo que está limitado 1343 01:00:25,053 --> 01:00:27,430 en el número de maneras en que usted puede usarlos, porque pasaría si, 1344 01:00:27,430 --> 01:00:30,100 la condición puede ser bastante cualquier cosa que quieras. 1345 01:00:30,100 --> 01:00:33,410 Con los conmutadores los casos tienen que ser números, 1346 01:00:33,410 --> 01:00:37,770 o técnicamente pueden ser caracteres, pero caracteres, como veremos, son números sólo. 1347 01:00:37,770 --> 01:00:44,250 Así que tienen que ser números, pero los interruptores son realmente más eficiente que si 1348 01:00:44,250 --> 01:00:50,060 más si lo demás si, porque incluso tomando el ejemplo antes-- bien, 1349 01:00:50,060 --> 01:00:51,486 el ejemplo de calidad parece buena. 1350 01:00:51,486 --> 01:00:52,550 1351 01:00:52,550 --> 01:00:57,080 >> Bueno digamos que aquí, en vez hacemos esto como si otra persona si lo demás si escenario. 1352 01:00:57,080 --> 01:01:00,930 Así que si n es igual a es igual a 1, imprimir usted escogió un número bajo. 1353 01:01:00,930 --> 01:01:04,490 Si otro si n es igual es igual a 2, que eligió un número medio. 1354 01:01:04,490 --> 01:01:06,550 Porque si los iguales es igual a 3, alta. 1355 01:01:06,550 --> 01:01:08,060 Lo demás no es válido. 1356 01:01:08,060 --> 01:01:09,820 >> Así que digamos que era nuestro escenario. 1357 01:01:09,820 --> 01:01:14,060 Así que digamos que entramos 4, por lo que esperamos no válido. 1358 01:01:14,060 --> 01:01:17,410 La manera que si otra cosa si lo demás si el enfoque se va a trabajar es 1359 01:01:17,410 --> 01:01:18,740 comprueba la primera condición. 1360 01:01:18,740 --> 01:01:19,776 No está satisfecho. 1361 01:01:19,776 --> 01:01:21,150 Así, comprobamos la segunda condición. 1362 01:01:21,150 --> 01:01:21,940 No está satisfecho. 1363 01:01:21,940 --> 01:01:23,023 Verifique la tercera condición. 1364 01:01:23,023 --> 01:01:23,640 No satisfecho. 1365 01:01:23,640 --> 01:01:26,650 Así que nos vamos a la otra persona y imprimimos válido. 1366 01:01:26,650 --> 01:01:30,169 >> La forma en que las obras del interruptor es que compila abajo 1367 01:01:30,169 --> 01:01:31,960 en lo que vamos para llamar a una tabla de saltos. 1368 01:01:31,960 --> 01:01:33,180 1369 01:01:33,180 --> 01:01:37,120 La idea de ser principal que cuando entras en 4, 1370 01:01:37,120 --> 01:01:39,090 inmediatamente se puede ir a la opción predeterminada. 1371 01:01:39,090 --> 01:01:41,460 No es necesario para comprobar la mañana me caso 1? 1372 01:01:41,460 --> 01:01:42,350 Nop no es eso. 1373 01:01:42,350 --> 01:01:42,850 Caso 2? 1374 01:01:42,850 --> 01:01:43,240 Nop. 1375 01:01:43,240 --> 01:01:43,770 Caso 3? 1376 01:01:43,770 --> 01:01:44,270 Nop. 1377 01:01:44,270 --> 01:01:45,090 Defecto. 1378 01:01:45,090 --> 01:01:47,610 OK, esto debe estar donde quieren, y luego ejecutar ese. 1379 01:01:47,610 --> 01:01:49,590 No, inmediatamente salta a la predeterminada. 1380 01:01:49,590 --> 01:01:51,900 O entro 2, es inmediatamente va a ir a la 2 1381 01:01:51,900 --> 01:01:54,060 sin necesidad de pasar por el caso 1. 1382 01:01:54,060 --> 01:01:57,820 >> Así que de esa manera, realista hoy en día que es 1383 01:01:57,820 --> 01:02:00,250 no es que gran parte de un aumento de la eficiencia. 1384 01:02:00,250 --> 01:02:02,880 Por lo general, las computadoras son bastante rápido, y eso no es tan grande. 1385 01:02:02,880 --> 01:02:07,270 Pero es el caso que interruptores son más rápidos. 1386 01:02:07,270 --> 01:02:10,380 Si usted está realmente tratando para optimizar, usar un interruptor. 1387 01:02:10,380 --> 01:02:11,980 1388 01:02:11,980 --> 01:02:12,710 >> ALLISON: Cool. 1389 01:02:12,710 --> 01:02:15,270 Y luego tenemos operador ternario. 1390 01:02:15,270 --> 01:02:19,470 Así que sé que he mencionado antes la palabra azúcar sintáctica. 1391 01:02:19,470 --> 01:02:24,160 Así que es sólo las cosas que hacen su código mucho más concisa. 1392 01:02:24,160 --> 01:02:25,590 Así que este es uno de esos casos. 1393 01:02:25,590 --> 01:02:31,430 >> Así operador ternario es signo de interrogación de colon, como lo vemos en la cadena de línea 1394 01:02:31,430 --> 01:02:35,810 s es igual a n mayor que 100 signo de interrogación bajo alta colon. 1395 01:02:35,810 --> 01:02:41,800 Así que, básicamente, cómo funciona esto es que es el n mayor que 100 es una condición. 1396 01:02:41,800 --> 01:02:43,674 Así que creo que puede tener sentido. 1397 01:02:43,674 --> 01:02:44,840 Es como hacer una pregunta. 1398 01:02:44,840 --> 01:02:47,320 Está diciendo oh, es n mayor que 100. 1399 01:02:47,320 --> 01:02:48,340 Quién sabe? 1400 01:02:48,340 --> 01:02:50,750 Y si se evalúa como cierto, que va a darle 1401 01:02:50,750 --> 01:02:54,270 la primera cosa que es que aparece allí, que es alta. 1402 01:02:54,270 --> 01:02:55,840 De lo contrario, va a darle de baja. 1403 01:02:55,840 --> 01:03:01,210 Así que esto es sólo una verdad simple y forma eficaz de hacer como si una cosa. 1404 01:03:01,210 --> 01:03:02,780 Eso es todo lo que es esto. 1405 01:03:02,780 --> 01:03:07,450 >> Y si tuviéramos que escribir esto como si lo demás condicional, 1406 01:03:07,450 --> 01:03:12,480 lo que sería si n es mayor de 100, devolver alta. 1407 01:03:12,480 --> 01:03:14,220 Si no, volver bajo. 1408 01:03:14,220 --> 01:03:17,570 Esto es sólo una mucho más manera concisa de escribirlo. 1409 01:03:17,570 --> 01:03:27,090 >> ROB BOWDEN: Así que este ejemplo particular está siempre estás haciendo algo 1410 01:03:27,090 --> 01:03:30,190 así, este es el patrón donde utilizo ternario con mucha frecuencia. 1411 01:03:30,190 --> 01:03:31,540 1412 01:03:31,540 --> 01:03:35,460 Así que no hemos hablado de alcance, sin embargo, pero Odio ver punto y coma cadena s. 1413 01:03:35,460 --> 01:03:39,150 Si n mayor que 100, s es igual de alta. 1414 01:03:39,150 --> 01:03:40,660 Si no, es igual a s bajo. 1415 01:03:40,660 --> 01:03:45,070 Así que ese patrón, esas cinco líneas de código, literalmente, 100% de las veces 1416 01:03:45,070 --> 01:03:49,800 puede ser transferido a lo estaba allí con un ternario. 1417 01:03:49,800 --> 01:03:52,340 Así que el ternario, una línea de código. 1418 01:03:52,340 --> 01:03:54,640 El caso más, cinco. 1419 01:03:54,640 --> 01:03:56,910 Eso es un ejemplo señalo fuera cada vez. 1420 01:03:56,910 --> 01:03:59,250 Esto haría un gran lugar para un operador ternario. 1421 01:03:59,250 --> 01:04:00,647 Es tan limpio. 1422 01:04:00,647 --> 01:04:01,980 Pero la gente tiende a no utilizarlo. 1423 01:04:01,980 --> 01:04:06,140 1424 01:04:06,140 --> 01:04:08,030 >> ALLISON: Tome la basura Gabe. 1425 01:04:08,030 --> 01:04:11,110 >> GABRIEL: Así que ahora ustedes todo aprendido en la conferencia de esta semana 1426 01:04:11,110 --> 01:04:13,420 que todo en una computadora es binaria, ¿verdad? 1427 01:04:13,420 --> 01:04:14,570 Al igual que las lámparas de aquí. 1428 01:04:14,570 --> 01:04:16,492 Usted puede ser encendida y apagada. 1429 01:04:16,492 --> 01:04:18,450 Y por todo lo que me refiero literalmente todo. 1430 01:04:18,450 --> 01:04:24,272 Algunos números y caracteres y cadenas, e incluso el código que escribes cuando 1431 01:04:24,272 --> 01:04:26,480 que se compila a máquina código y cosas por el estilo, 1432 01:04:26,480 --> 01:04:29,230 por lo que todo se reduce a 0 y de 1 '. 1433 01:04:29,230 --> 01:04:34,540 >> Y así, cuando nos enfrentamos con números enteros, los cuales 1434 01:04:34,540 --> 01:04:38,000 es algo que es técnicamente muy simple, debemos ser capaces de hacer cosas 1435 01:04:38,000 --> 01:04:40,630 como la adición de ellos, que es probablemente una de las cosas más simples 1436 01:04:40,630 --> 01:04:42,300 usted puede hacer para dos enteros, ¿no? 1437 01:04:42,300 --> 01:04:47,410 Así que la suma y la resta funciona igual como funciona en notación decimal, 1438 01:04:47,410 --> 01:04:50,780 excepto aquí es binaria, ¿verdad? 1439 01:04:50,780 --> 01:04:52,090 Así que es en base dos. 1440 01:04:52,090 --> 01:04:54,070 Así que añadir 1 más 1. 1441 01:04:54,070 --> 01:04:57,020 Eso le da a 0 y 1 se traslada. 1442 01:04:57,020 --> 01:05:01,335 Y así seguir haciendo eso, así que ahora viene la pregunta más interesante. 1443 01:05:01,335 --> 01:05:03,730 1444 01:05:03,730 --> 01:05:07,710 >> Sabemos cómo representar todo números enteros positivos en el ordenador, 1445 01:05:07,710 --> 01:05:09,870 pero vamos a hacer este ejercicio. 1446 01:05:09,870 --> 01:05:15,240 Haga de cuenta que ustedes están todos en el año 1960 o algo tratando de crear una computadora, 1447 01:05:15,240 --> 01:05:19,950 y usted tiene que venir de una manera de almacenar menos 1, 1448 01:05:19,950 --> 01:05:22,554 por ejemplo, o menos cualquier número entero para el caso. 1449 01:05:22,554 --> 01:05:23,470 ¿Cómo hacer eso? 1450 01:05:23,470 --> 01:05:27,820 1451 01:05:27,820 --> 01:05:29,220 ¿Alguna idea? 1452 01:05:29,220 --> 01:05:31,302 Simplemente tirar nada a mí. 1453 01:05:31,302 --> 01:05:32,264 ¿Sí? 1454 01:05:32,264 --> 01:05:39,480 >> AUDIENCIA: [inaudible] designar un especial si su [inaudible]. 1455 01:05:39,480 --> 01:05:42,590 >> GABRIEL: Usted puede designar a un poco especial, que será 0 o 1. 1456 01:05:42,590 --> 01:05:45,590 Digamos que uno si es positivo y 0 si es negativo. 1457 01:05:45,590 --> 01:05:48,171 Y luego el resto de la broca es sólo para almacenar el número. 1458 01:05:48,171 --> 01:05:48,670 Enfriar. 1459 01:05:48,670 --> 01:05:49,990 Así que eso es una muy buena idea. 1460 01:05:49,990 --> 01:05:51,550 Tenemos, no sé, 200. 1461 01:05:51,550 --> 01:05:54,720 Y si el primer bit es encendido, entonces es más 200. 1462 01:05:54,720 --> 01:05:57,270 Si está apagada, es menos de 200. 1463 01:05:57,270 --> 01:05:58,380 Enfriar. 1464 01:05:58,380 --> 01:06:01,350 >> Sólo hay una pequeña problema con esto, 1465 01:06:01,350 --> 01:06:05,370 que es si tratamos de resumir las cosas. 1466 01:06:05,370 --> 01:06:18,910 Así que imaginen que tenemos aquí 11111, y estamos sumando esto con 00,100 lo que sea. 1467 01:06:18,910 --> 01:06:21,630 Si los dos son positivos, eso está bien. 1468 01:06:21,630 --> 01:06:24,470 Pero entonces, si uno de ellos es negativo, al igual que 1469 01:06:24,470 --> 01:06:27,410 digamos que esta poco aquí es la que es responsable 1470 01:06:27,410 --> 01:06:31,390 para-- Voy a hacer una separate-- así que éste significa que este número aquí 1471 01:06:31,390 --> 01:06:31,970 es positivo. 1472 01:06:31,970 --> 01:06:34,450 Este significa que este número aquí es negativa, ¿no? 1473 01:06:34,450 --> 01:06:37,010 >> Pero luego, cuando esté va a resumir ellos, 1474 01:06:37,010 --> 01:06:40,180 necesitará una sentencia if diciendo oh si esto es 0, 1475 01:06:40,180 --> 01:06:43,479 entonces mi suma será algo diferente, ¿no? 1476 01:06:43,479 --> 01:06:45,270 Así que hay un poco más inteligente manera de hacerlo 1477 01:06:45,270 --> 01:06:48,520 que, que se llama complemento a dos. 1478 01:06:48,520 --> 01:06:52,350 Así que, básicamente, lo que hacemos es definimos menos 1 1479 01:06:52,350 --> 01:06:57,250 a ser la cosa que si sumamos a 1 nos da 0. 1480 01:06:57,250 --> 01:06:59,470 1481 01:06:59,470 --> 01:07:00,860 Permítanme repetir eso. 1482 01:07:00,860 --> 01:07:03,280 Así que digamos que esta aquí es 1. 1483 01:07:03,280 --> 01:07:08,110 1484 01:07:08,110 --> 01:07:13,570 ¿Qué es lo que naturalmente en números enteros positivos 1485 01:07:13,570 --> 01:07:15,570 añadido a que nos da 0? 1486 01:07:15,570 --> 01:07:19,150 1487 01:07:19,150 --> 01:07:21,030 ¿Qué pasa si tratamos de agregarlo a este número? 1488 01:07:21,030 --> 01:07:22,830 1489 01:07:22,830 --> 01:07:28,032 Vamos a tener-- bien, así que vamos a añadir. 1490 01:07:28,032 --> 01:07:32,820 1491 01:07:32,820 --> 01:07:38,065 Vamos a tener 1 más 1 es 0, y luego se transporta. 1492 01:07:38,065 --> 01:07:40,160 1493 01:07:40,160 --> 01:07:45,490 Y luego vamos a obtener 0 de nuevo. 1494 01:07:45,490 --> 01:07:47,730 1495 01:07:47,730 --> 01:07:48,820 Me estoy confundido. 1496 01:07:48,820 --> 01:07:51,670 Y usted va a obtener 0 y 0 y 0 y 0 y 0 y 0. 1497 01:07:51,670 --> 01:07:52,450 Mucha de 0. 1498 01:07:52,450 --> 01:07:56,240 >> Por lo último, no estamos va a ser capaz de llevar a la vuelta, 1499 01:07:56,240 --> 01:07:59,614 porque digamos que sólo estamos tratando con un byte, por lo que sólo 8 bits. 1500 01:07:59,614 --> 01:08:02,780 Así que lo que el equipo hace por defecto es simplemente se olvida de que [inaudible], 1501 01:08:02,780 --> 01:08:03,279 ¿De acuerdo? 1502 01:08:03,279 --> 01:08:04,530 1503 01:08:04,530 --> 01:08:06,880 Así que esto es lo que se llama el complemento a dos. 1504 01:08:06,880 --> 01:08:15,180 Simplemente definimos menos 1 a ser el cosa aquí que si se agrega que a 1 1505 01:08:15,180 --> 01:08:15,995 le daría 0. 1506 01:08:15,995 --> 01:08:17,609 1507 01:08:17,609 --> 01:08:20,180 Y eso es bastante cool porque no lo hacemos realmente 1508 01:08:20,180 --> 01:08:24,090 necesitará tarde para implementar un tipo diferente de suma 1509 01:08:24,090 --> 01:08:26,590 dependiendo de si eso es una negativo o un número positivo. 1510 01:08:26,590 --> 01:08:27,465 ¿Eso tiene sentido? 1511 01:08:27,465 --> 01:08:28,740 1512 01:08:28,740 --> 01:08:32,370 >> Así que una cosa que hacemos aquí el fin de convertir 1513 01:08:32,370 --> 01:08:38,550 entre un positivo y un negativo entero está entonces voltear todo, 1514 01:08:38,550 --> 01:08:40,930 y luego agregamos 1 a ese número. 1515 01:08:40,930 --> 01:08:43,140 Si trata de hacerlo usted mismo en un trozo de papel, 1516 01:08:43,140 --> 01:08:44,681 vas a ver que eso tiene sentido. 1517 01:08:44,681 --> 01:08:51,000 Pero si tomo este número aquí, esto es cinco. 1518 01:08:51,000 --> 01:08:54,859 Así que si le doy la vuelta todo aquí, así que 1, 1, 1, 1, 1. 1519 01:08:54,859 --> 01:08:55,880 1520 01:08:55,880 --> 01:08:57,830 Voltear, flip, flip. 1521 01:08:57,830 --> 01:09:00,130 Y luego añado 1 a la misma. 1522 01:09:00,130 --> 01:09:02,750 Voy a tener exactamente menos 5. 1523 01:09:02,750 --> 01:09:03,250 ¿De acuerdo? 1524 01:09:03,250 --> 01:09:06,220 >> Este tipo de sentido porque si intenta resumir esto con el número 1525 01:09:06,220 --> 01:09:10,229 que teníamos antes, que era-- vamos a voltear de nuevo. 1526 01:09:10,229 --> 01:09:12,999 Fue 101 y un montón de de 0. 1527 01:09:12,999 --> 01:09:13,795 1528 01:09:13,795 --> 01:09:15,670 Si intenta agregar estos dos números juntos, 1529 01:09:15,670 --> 01:09:16,961 usted va a tener exactamente 0. 1530 01:09:16,961 --> 01:09:18,920 1531 01:09:18,920 --> 01:09:19,460 Okay. 1532 01:09:19,460 --> 01:09:19,884 ¿Alguna pregunta? 1533 01:09:19,884 --> 01:09:20,759 >> AUDIENCIA: [inaudible] 1534 01:09:20,759 --> 01:09:25,790 1535 01:09:25,790 --> 01:09:27,280 >> GABRIEL: ¿Qué quieres decir? 1536 01:09:27,280 --> 01:09:29,240 >> AUDIENCIA: Negativo a positivo [inaudible]. 1537 01:09:29,240 --> 01:09:33,215 >> GABRIEL: No, le da la vuelta y se agrega 1 siempre. 1538 01:09:33,215 --> 01:09:34,081 1539 01:09:34,081 --> 01:09:34,580 Sí. 1540 01:09:34,580 --> 01:09:36,910 1541 01:09:36,910 --> 01:09:39,680 Aceptar, por lo que los personajes también codificados binarios. 1542 01:09:39,680 --> 01:09:42,649 Tenemos tabla ASCII, como usted también vio en la conferencia, ¿no? 1543 01:09:42,649 --> 01:09:45,040 Así que es básicamente un mapeo de las cosas. 1544 01:09:45,040 --> 01:09:50,960 Y aquí no puedo enfatizar lo suficiente que para un ordenador, a y 65 1545 01:09:50,960 --> 01:09:52,770 son literalmente la misma cosa. 1546 01:09:52,770 --> 01:10:03,430 Así que si escribo algo como Char c es igual a una, yo podría al mismo tiempo 1547 01:10:03,430 --> 01:10:06,890 acaba de escribir 65 aquí, y sería exactamente lo mismo, ¿de acuerdo? 1548 01:10:06,890 --> 01:10:08,470 No hay diferencia alguna. 1549 01:10:08,470 --> 01:10:12,420 >> Por lo general, tendemos a poner personajes de variables de tipo. 1550 01:10:12,420 --> 01:10:16,770 Char, no porque son esencialmente hecho para eso, sino porque 1551 01:10:16,770 --> 01:10:18,050 de convención humana. 1552 01:10:18,050 --> 01:10:22,410 Pero sólo se puede tratar con números enteros en lugar de las variables de tipo char, 1553 01:10:22,410 --> 01:10:23,490 y se le multa. 1554 01:10:23,490 --> 01:10:28,410 La única diferencia real entre un char c y un int i 1555 01:10:28,410 --> 01:10:31,960 es que un int tiene cuatro bytes más sistemas, mientras que un char tiene un byte. 1556 01:10:31,960 --> 01:10:33,070 1557 01:10:33,070 --> 01:10:35,460 Son esencialmente el lo mismo en términos de datos. 1558 01:10:35,460 --> 01:10:36,990 1559 01:10:36,990 --> 01:10:37,990 Así que lo que va a imprimir en esta lista? 1560 01:10:37,990 --> 01:10:43,780 Aquí estamos imprimiendo un dígito usando printf con un más 1, y al igual que los números enteros, 1561 01:10:43,780 --> 01:10:46,240 caracteres se pueden resumir, por lo personajes también se pueden sumar. 1562 01:10:46,240 --> 01:10:47,890 Así que esto es exactamente 65. 1563 01:10:47,890 --> 01:10:49,950 Así que va a ser 66, y aquí tenemos 1564 01:10:49,950 --> 01:10:56,860 65 más poco un menos grande A, que será, no lo sé. 1565 01:10:56,860 --> 01:11:00,900 Pero va a ser exactamente la brecha entre las letras mayúsculas 1566 01:11:00,900 --> 01:11:07,800 y las letras más pequeñas y, por lo vamos a obtener una pequeña, ¿verdad? 1567 01:11:07,800 --> 01:11:08,300 Sí. 1568 01:11:08,300 --> 01:11:11,740 Así que esto va a imprimir un personaje que es exactamente éste. 1569 01:11:11,740 --> 01:11:12,260 Buena? 1570 01:11:12,260 --> 01:11:12,860 ¿Alguna pregunta? 1571 01:11:12,860 --> 01:11:16,320 1572 01:11:16,320 --> 01:11:19,430 >> Aquí tenemos un montón de diferentes tipos de variables numéricas. 1573 01:11:19,430 --> 01:11:20,620 Ya hablamos de int. 1574 01:11:20,620 --> 01:11:21,740 1575 01:11:21,740 --> 01:11:27,760 Float es sólo una manera a-- esto es realmente divertido, porque cuando supe por primera vez 1576 01:11:27,760 --> 01:11:32,320 para programar en su día con Python, el primer programa que he 1577 01:11:32,320 --> 01:11:37,480 tratado de escribir, me di cuenta de que había un tipo llamado y un tipo llamado flotador. 1578 01:11:37,480 --> 01:11:39,800 Y el flotador era para todos los números reales. 1579 01:11:39,800 --> 01:11:43,290 Entonces me preguntó por qué debería Yo nunca utilizo un int entonces? 1580 01:11:43,290 --> 01:11:45,590 Porque si puedo usar todo números reales con un flotador, 1581 01:11:45,590 --> 01:11:47,120 Sólo quiero dejar de usar enteros, ¿no? 1582 01:11:47,120 --> 01:11:49,550 Debido a que los números reales son al igual que más genérico. 1583 01:11:49,550 --> 01:11:51,820 1584 01:11:51,820 --> 01:11:54,060 >> Resulta que esto es no es el caso en los ordenadores 1585 01:11:54,060 --> 01:11:58,480 porque son esencialmente diferentes cosas. 1586 01:11:58,480 --> 01:12:01,470 Así que los números enteros y las carrozas, la operaciones que hagas con ellos 1587 01:12:01,470 --> 01:12:04,739 son esencialmente diferente porque de la forma en que se almacenan, ¿de acuerdo? 1588 01:12:04,739 --> 01:12:07,280 Vamos a hablar un poco poco más sobre eso en un segundo. 1589 01:12:07,280 --> 01:12:09,110 >> Así que doble es sólo un flotador más grande. 1590 01:12:09,110 --> 01:12:12,830 Por lo general, en la mayoría de los sistemas, un flotador es de cuatro bytes, como un int. 1591 01:12:12,830 --> 01:12:15,440 Y una doble es de ocho bytes. 1592 01:12:15,440 --> 01:12:21,450 Un largo, largo es en realidad sólo un símbolo que anexar a un tipo como int. 1593 01:12:21,450 --> 01:12:24,040 Usted dice int largo plazo como este. 1594 01:12:24,040 --> 01:12:28,550 Largo long int x para que sea más largo. 1595 01:12:28,550 --> 01:12:32,310 Así que en la mayoría de los sistemas, que dará ocho bytes en lugar de los cuatro habituales. 1596 01:12:32,310 --> 01:12:35,620 Y en realidad se puede caer el en, por lo que sólo se puede decir mucho, mucho, 1597 01:12:35,620 --> 01:12:37,240 y que trabaja demasiado, ¿de acuerdo? 1598 01:12:37,240 --> 01:12:42,850 También puede hacer otras cosas como int sin signo, o de nuevo justo sin firmar 1599 01:12:42,850 --> 01:12:43,680 también funcionaría. 1600 01:12:43,680 --> 01:12:49,370 Y eso haría que x sea una variable como todo lo que es positivo, 1601 01:12:49,370 --> 01:12:53,231 así que realmente no se puede tener efectos negativos números en la forma en que vimos aquí. 1602 01:12:53,231 --> 01:12:56,484 1603 01:12:56,484 --> 01:12:58,650 Así pues, siguiendo maravilloso punto flotante y precisión. 1604 01:12:58,650 --> 01:13:01,890 Esa es una de las razones por las que querer usar enteros en lugar de carrozas, 1605 01:13:01,890 --> 01:13:04,370 porque ints son 100% precisas, ¿no? 1606 01:13:04,370 --> 01:13:06,170 Es exactamente ese número. 1607 01:13:06,170 --> 01:13:11,910 Para los puntos flotantes, si decir la respuesta es igual a 1 sobre 10-- 1608 01:13:11,910 --> 01:13:14,690 Resulta que tengo esta exacta programa aquí, float.c. 1609 01:13:14,690 --> 01:13:16,390 1610 01:13:16,390 --> 01:13:19,420 Que imprime a 20 cifras decimales. 1611 01:13:19,420 --> 01:13:23,270 1 dividido por 10, y que por lo general es de 0,1, ¿verdad? 1612 01:13:23,270 --> 01:13:27,910 Pero aquí si hacemos flotador y luego lo ejecutamos, 1613 01:13:27,910 --> 01:13:30,320 vemos que no es exactamente 0,1. 1614 01:13:30,320 --> 01:13:33,570 Es algo 0,149. 1615 01:13:33,570 --> 01:13:35,570 >> ¿Y por qué es eso? 1616 01:13:35,570 --> 01:13:40,390 Porque no se puede realmente representar a cada único número real posible en la memoria 1617 01:13:40,390 --> 01:13:42,730 porque hay uncountably muchos de ellos. 1618 01:13:42,730 --> 01:13:48,360 Así que estamos técnicamente sólo es capaz de representar una cantidad finita de ellos 1619 01:13:48,360 --> 01:13:50,470 con una cantidad finita de datos. 1620 01:13:50,470 --> 01:13:52,050 Pero es muy interesante. 1621 01:13:52,050 --> 01:13:54,920 Ahora bien, esto nos lleva a la cuestión de cómo lo haría 1622 01:13:54,920 --> 01:13:59,299 ir sobre lo que representa esto con los bits, ¿no? 1623 01:13:59,299 --> 01:14:00,340 Entonces, ¿cómo se almacenan los flotadores? 1624 01:14:00,340 --> 01:14:01,970 1625 01:14:01,970 --> 01:14:03,730 Con números enteros que fue fácil. 1626 01:14:03,730 --> 01:14:06,690 Pero con flotadores que deseas para maximizar el rango, 1627 01:14:06,690 --> 01:14:10,530 y quiere ser capaz de representar enormes números y números muy pequeños como 1628 01:14:10,530 --> 01:14:14,210 0.000001 al mismo tiempo. 1629 01:14:14,210 --> 01:14:15,180 Así que de nuevo, el mismo juego. 1630 01:14:15,180 --> 01:14:20,470 ¿Alguien tiene alguna idea de lo que pudimos ir sobre la representación de flotador en la memoria? 1631 01:14:20,470 --> 01:14:26,820 1632 01:14:26,820 --> 01:14:27,970 Simplemente tirar nada. 1633 01:14:27,970 --> 01:14:29,930 1634 01:14:29,930 --> 01:14:30,856 Sí, por favor. 1635 01:14:30,856 --> 01:14:33,552 >> AUDIENCIA: [inaudible] como si se trataba de dos enteros y uno 1636 01:14:33,552 --> 01:14:36,890 siendo la [inaudible] y un solo ser todo después del punto decimal. 1637 01:14:36,890 --> 01:14:37,640 GABRIEL: OK, fresco. 1638 01:14:37,640 --> 01:14:40,300 Así que dos enteros diferentes. 1639 01:14:40,300 --> 01:14:45,260 Usted puede tener las 12.45, por lo que es 12 y 45. 1640 01:14:45,260 --> 01:14:45,890 Niza. 1641 01:14:45,890 --> 01:14:46,973 ¿Qué ERE que va a decir? 1642 01:14:46,973 --> 01:14:48,420 1643 01:14:48,420 --> 01:14:49,430 La misma cosa? 1644 01:14:49,430 --> 01:14:49,930 ¿Sí? 1645 01:14:49,930 --> 01:14:55,630 >> AUDIENCIA: notación [inaudible] donde se separa la base. 1646 01:14:55,630 --> 01:14:58,910 >> GABRIEL: La notación científica, sí que es por lo general lo que sucede. 1647 01:14:58,910 --> 01:15:01,350 Así que esto es lo que se llama la mantisa. 1648 01:15:01,350 --> 01:15:06,490 Eso es lo que es en realidad el número, y luego el exponente 1649 01:15:06,490 --> 01:15:08,780 es justo donde la coma es, ¿verdad? 1650 01:15:08,780 --> 01:15:13,720 Así que esto va a ser algo de la forma 1, 2, 3, 4, 5 veces 10 1651 01:15:13,720 --> 01:15:15,000 al menos 4. 1652 01:15:15,000 --> 01:15:17,800 Me acabo de dar cuenta que-- Sí, exactamente. 1653 01:15:17,800 --> 01:15:23,372 Y entonces este 10 a la menos 4 es va a definir donde la coma es, ¿de acuerdo? 1654 01:15:23,372 --> 01:15:24,330 En Brasil se utiliza coma. 1655 01:15:24,330 --> 01:15:26,795 Aquí ustedes utilizan un punto. 1656 01:15:26,795 --> 01:15:27,640 Así un punto. 1657 01:15:27,640 --> 01:15:28,860 1658 01:15:28,860 --> 01:15:34,840 >> Y esto es genial, porque entonces usted puede centrará muchos de sus pedazos en este chico 1659 01:15:34,840 --> 01:15:40,863 aquí, en la mantisa, y entonces eso es va a ser su precisión real. 1660 01:15:40,863 --> 01:15:41,920 1661 01:15:41,920 --> 01:15:47,175 Y usted puede hacer esto ya sea en decimal o en el sistema basado en binario. 1662 01:15:47,175 --> 01:15:49,781 Hay diferentes formas de implementar esto. 1663 01:15:49,781 --> 01:15:50,280 ¿Preguntas? 1664 01:15:50,280 --> 01:15:55,918 1665 01:15:55,918 --> 01:15:56,418 ¿Sí? 1666 01:15:56,418 --> 01:15:57,508 1667 01:15:57,508 --> 01:15:59,841 AUDIENCIA: ¿Cuántos lugares después del punto decimal [inaudible]? 1668 01:15:59,841 --> 01:16:05,240 1669 01:16:05,240 --> 01:16:12,610 >> GABRIEL: Esa es una pregunta complicada, porque nunca es realmente 100% precisa, 1670 01:16:12,610 --> 01:16:15,680 porque como usted ve aquí, por algunos números es 100% precisa. 1671 01:16:15,680 --> 01:16:20,350 Creo que si ponemos 0.5 aquí, que va a ser 100% preciso. 1672 01:16:20,350 --> 01:16:22,220 Va a ser 0,500000. 1673 01:16:22,220 --> 01:16:24,170 Así que en ese caso, es perfecto. 1674 01:16:24,170 --> 01:16:27,330 Pero en otros casos, es mucho menos perfecta. 1675 01:16:27,330 --> 01:16:35,010 En mi experiencia, al igual que un máximo de cuatro, cinco cifras decimales es bastante preciso. 1676 01:16:35,010 --> 01:16:38,300 Si utiliza un doble, que va a ser mucho más preciso que eso, ¿de acuerdo? 1677 01:16:38,300 --> 01:16:42,750 >> ROB BOWDEN: Así que solo para arrojarlo algún contexto más en carrozas, 1678 01:16:42,750 --> 01:16:46,320 No recuerdo cómo el 100% especificación de carrozas en realidad funciona, 1679 01:16:46,320 --> 01:16:52,660 pero lo hago siempre recuerde que carrozas comienza a recibir desordenado. 1680 01:16:52,660 --> 01:16:55,460 1681 01:16:55,460 --> 01:17:00,930 Así que la idea es que cuando usted consigue realmente, realmente grandes números o muy, muy 1682 01:17:00,930 --> 01:17:03,470 números pequeños, que empiezan cada vez peor 1683 01:17:03,470 --> 01:17:05,860 en la diferenciación entre dos flotadores cercanos. 1684 01:17:05,860 --> 01:17:09,180 >> Entonces, ¿cómo me gusta pensar es en con punto flotante imprecisión, 1685 01:17:09,180 --> 01:17:11,890 hay dos flotadores que si trato de especificarlos 1686 01:17:11,890 --> 01:17:15,150 en C, a pesar del hecho de que son diferentes los números, 1687 01:17:15,150 --> 01:17:17,340 que van a ser interpretado como el mismo número, 1688 01:17:17,340 --> 01:17:19,006 porque no podemos almacenarlos de manera diferente. 1689 01:17:19,006 --> 01:17:20,540 Tenemos que utilizar los mismos bits. 1690 01:17:20,540 --> 01:17:23,220 Y así, cuando llegamos a muy, muy gran número, 1691 01:17:23,220 --> 01:17:28,460 hablando como 10 a la 300 o algo, es en ese punto 1692 01:17:28,460 --> 01:17:33,240 que 10 a la 300 o 5 veces 10 a la 300 1693 01:17:33,240 --> 01:17:37,020 no puede ser diferenciada de 7 veces 10 a la 300. 1694 01:17:37,020 --> 01:17:39,660 Así que eso es una diferencia bastante grande entre los dos números. 1695 01:17:39,660 --> 01:17:43,830 >> Pero luego, cuando te pones a las cosas normales de rango, 1696 01:17:43,830 --> 01:17:45,770 que tienden a ser bastante bueno en la diferenciación. 1697 01:17:45,770 --> 01:17:49,020 Y luego, cuando te pones realmente pequeño, usted también obtiene muy mal de nuevo. 1698 01:17:49,020 --> 01:17:52,529 Así que, como un montón de 0.0000, que se pone bastante mal. 1699 01:17:52,529 --> 01:17:53,820 GABRIEL: Sí, por lo que una nota rápida. 1700 01:17:53,820 --> 01:17:54,670 Nunca haga esto. 1701 01:17:54,670 --> 01:17:57,590 Nunca trate de comparar flotadores usando iguales iguales, 1702 01:17:57,590 --> 01:18:02,800 porque incluso si son casi el mismo, casi el mismo no es el mismo. 1703 01:18:02,800 --> 01:18:06,360 Así que lo que suele hacer es restar ellos, toman el valor absoluto de que, 1704 01:18:06,360 --> 01:18:12,380 y ver si eso es menor que 0,0001 o algo así, ¿de acuerdo? 1705 01:18:12,380 --> 01:18:12,880 Y fresco. 1706 01:18:12,880 --> 01:18:16,630 Sé que mucha gente tiene algunos antecedentes en Java, 1707 01:18:16,630 --> 01:18:19,700 especialmente los que hicieron Ciencias de la computación AP, ¿verdad? 1708 01:18:19,700 --> 01:18:23,630 Y Java es un lenguaje que en su mayoría sobre la base de C, 1709 01:18:23,630 --> 01:18:26,570 tiene muy grandes diferencias de un par. 1710 01:18:26,570 --> 01:18:31,430 Pero para los bucles, e IFS, y cosas por el estilo que, son todos la misma sintaxis. 1711 01:18:31,430 --> 01:18:35,240 Tengo un par de programas aquí para mostrar esto. 1712 01:18:35,240 --> 01:18:37,050 >> Así, por ejemplo, un mundo hola simple. 1713 01:18:37,050 --> 01:18:43,140 1714 01:18:43,140 --> 01:18:46,600 Esta es hola mundo en C, que le chicos son sin duda familiarizado con, 1715 01:18:46,600 --> 01:18:49,100 y esto y esto es en Java. 1716 01:18:49,100 --> 01:18:53,100 Así que en Java tenemos este public class, hola mundo, 1717 01:18:53,100 --> 01:18:57,050 y public void estática args principal, y de cadena. 1718 01:18:57,050 --> 01:18:59,665 Los argumentos de cadena van a aparecer en C muy poco. 1719 01:18:59,665 --> 01:19:00,740 1720 01:19:00,740 --> 01:19:01,990 Pero no vamos a ir allí todavía. 1721 01:19:01,990 --> 01:19:06,060 En este momento tenemos vacío aquí, lo que significa que la principal no se toma ningún argumento. 1722 01:19:06,060 --> 01:19:09,220 Y entonces tenemos System.out.println, el y eso es 1723 01:19:09,220 --> 01:19:11,140 especie de equivalente de printf. 1724 01:19:11,140 --> 01:19:17,150 Aquí en realidad no necesitamos la barra invertida n porque ln impresión lo hace por usted. 1725 01:19:17,150 --> 01:19:19,680 Se añade la barra invertida n en el extremo de la línea. 1726 01:19:19,680 --> 01:19:22,540 1727 01:19:22,540 --> 01:19:30,415 >> Pero si usted entra en algo así como una para, usted 1728 01:19:30,415 --> 01:19:32,590 puede ver que son más o menos la misma cosa. 1729 01:19:32,590 --> 01:19:37,390 Así inicialización, y el condición, y la actualización 1730 01:19:37,390 --> 01:19:42,050 es-- me perdí un espacio aquí-- son más o menos la misma cosa, a excepción de Java 1731 01:19:42,050 --> 01:19:44,430 tiene como unos pocos más cosas de alto nivel. 1732 01:19:44,430 --> 01:19:46,010 1733 01:19:46,010 --> 01:19:49,610 Aquí podemos hacer más I y Java automáticamente 1734 01:19:49,610 --> 01:19:52,730 hacer de este i aquí, que es un número entero, en una cadena, 1735 01:19:52,730 --> 01:19:55,200 y luego añadir el dos cadenas juntas. 1736 01:19:55,200 --> 01:19:57,570 Aquí en C que necesitamos hacer el &% d. 1737 01:19:57,570 --> 01:20:15,310 1738 01:20:15,310 --> 01:20:18,170 La línea de aquí, el para se ve exactamente lo mismo. 1739 01:20:18,170 --> 01:20:37,760 >> Y si nos fijamos en si, las FI También verá exactamente lo mismo, ¿verdad? 1740 01:20:37,760 --> 01:20:39,290 1741 01:20:39,290 --> 01:20:44,650 Así que las grandes diferencias reales son en las cosas que usted ve aquí. 1742 01:20:44,650 --> 01:20:47,530 Estática Pública, nula, y entonces la clase pública si. 1743 01:20:47,530 --> 01:20:48,990 1744 01:20:48,990 --> 01:20:52,360 Así que Java tiene lo que es llamado una máquina virtual. 1745 01:20:52,360 --> 01:20:53,560 1746 01:20:53,560 --> 01:21:00,150 Y se basa en gran medida en lo que se llama la programación orientada a objetos, 1747 01:21:00,150 --> 01:21:04,120 que es un muy, muy común paradigma de la programación de hoy en día. 1748 01:21:04,120 --> 01:21:10,870 Y esta cosa de clase es lo que se ve, algo de la orientación a objetos, 1749 01:21:10,870 --> 01:21:14,214 es que usted crea una clase y luego puede derivar objetos de esa clase. 1750 01:21:14,214 --> 01:21:16,380 No vamos a hablar demasiado mucho de eso en CS50, 1751 01:21:16,380 --> 01:21:18,213 pero eso es sin duda algo realmente fresco, 1752 01:21:18,213 --> 01:21:21,440 especialmente si quieres ir en desarrollo web más sofisticado 1753 01:21:21,440 --> 01:21:24,050 al final del curso, como presentar su proyecto final 1754 01:21:24,050 --> 01:21:26,430 y algunos marcos bonitos y esas cosas. 1755 01:21:26,430 --> 01:21:31,250 >> Así que, básicamente, la idea es que usted no quiero volver a implementar algo, 1756 01:21:31,250 --> 01:21:36,330 por lo que se crea algo que es muy genérica, como la forma, 1757 01:21:36,330 --> 01:21:38,310 y luego se crea diferentes formas de la misma, 1758 01:21:38,310 --> 01:21:40,240 y después de cada uno de estas formas, se crean 1759 01:21:40,240 --> 01:21:45,110 algunas formas más específicas de cada tres dimensiones o algo por el estilo. 1760 01:21:45,110 --> 01:21:48,799 Y tienen esta jerarquía que heredar de los demás, por lo que 1761 01:21:48,799 --> 01:21:51,840 todas las funciones y todas las variables que la gran forma de aquí tiene, todos ellos 1762 01:21:51,840 --> 01:21:54,110 van a tener, y todos estos son va a tener, y así sucesivamente y así sucesivamente. 1763 01:21:54,110 --> 01:21:55,640 Así que esa es la idea básica. 1764 01:21:55,640 --> 01:21:59,170 >> C no tiene que, pero C ++ no tener ese tipo de característica. 1765 01:21:59,170 --> 01:22:02,710 Y Java está fuertemente influenciado por la orientación a objetos, 1766 01:22:02,710 --> 01:22:05,310 así que por eso se ve clase aquí todo el tiempo. 1767 01:22:05,310 --> 01:22:10,790 Y la otra cosa es esta máquina virtual de Java. 1768 01:22:10,790 --> 01:22:13,790 Así que esto, creo, es una idea muy inteligente. 1769 01:22:13,790 --> 01:22:17,020 Así que lo que la gente que java inventado hizo es 1770 01:22:17,020 --> 01:22:19,630 que no quieren compilar su código dos veces 1771 01:22:19,630 --> 01:22:23,990 si tuvieran que ejecutar en un equipo con Windows, o un Mac, o Linux, así que lo que hacen 1772 01:22:23,990 --> 01:22:26,740 es que, literalmente, se ejecutan algo así como el aparato, 1773 01:22:26,740 --> 01:22:29,630 pero usted realmente no ve que esto ocurra. 1774 01:22:29,630 --> 01:22:32,430 Así que se ejecutan en una máquina virtual en el interior de su equipo, que 1775 01:22:32,430 --> 01:22:34,940 es, básicamente, como un mini sistema operativo. 1776 01:22:34,940 --> 01:22:37,920 Y eso de funcionamiento El propósito del sistema en la vida 1777 01:22:37,920 --> 01:22:41,430 es sólo para ejecutar lo que se llama código de bytes. 1778 01:22:41,430 --> 01:22:47,411 >> Así que en lugar de en C, la forma en que lo haría compilar esto es hacer que si, a continuación, ejecute 1779 01:22:47,411 --> 01:22:47,910 ./if. 1780 01:22:47,910 --> 01:22:53,510 1781 01:22:53,510 --> 01:22:55,290 Me olvidé de la barra invertida en. 1782 01:22:55,290 --> 01:23:00,240 En Java, que haría primero Java C a compilarlo, if.c. 1783 01:23:00,240 --> 01:23:06,440 1784 01:23:06,440 --> 01:23:08,252 No es punto de java C.. 1785 01:23:08,252 --> 01:23:09,460 1786 01:23:09,460 --> 01:23:12,140 Y luego tienes que correr no ./. 1787 01:23:12,140 --> 01:23:15,440 Usted recibe este nuevo archivo if.class, pero realmente no se puede 1788 01:23:15,440 --> 01:23:17,980 ejecutar if.class ahora sólo como lo hicimos antes. 1789 01:23:17,980 --> 01:23:19,440 Esto no es un ejecutable. 1790 01:23:19,440 --> 01:23:20,630 Tienes que correr. 1791 01:23:20,630 --> 01:23:23,410 Usted tiene que alimentar en un programa llamado Java, 1792 01:23:23,410 --> 01:23:28,260 y ese programa es la máquina virtual, y luego lo haces if.class, o si. 1793 01:23:28,260 --> 01:23:28,760 Sí. 1794 01:23:28,760 --> 01:23:30,890 Y entonces funciona. 1795 01:23:30,890 --> 01:23:33,740 Aceptar así que esto es una especie de la máquina virtual sucediendo. 1796 01:23:33,740 --> 01:23:37,700 C no tiene que, por lo que si yo fuera a poner este programa en una máquina Windows, 1797 01:23:37,700 --> 01:23:40,516 que no funcionaría en C. En Java lo hace. 1798 01:23:40,516 --> 01:23:41,015 ¿Preguntas? 1799 01:23:41,015 --> 01:23:43,430 1800 01:23:43,430 --> 01:23:44,030 Enfriar. 1801 01:23:44,030 --> 01:23:47,160 Eso si para super sección por hoy. 1802 01:23:47,160 --> 01:23:49,462