1 00:00:00,000 --> 00:00:07,700 2 00:00:07,700 --> 00:00:15,180 >> ALTAVOZ: OK, así, usted no lo crea, pero la semana pasada, el lunes, en Pierce, me 3 00:00:15,180 --> 00:00:16,090 estaba en el sótano. 4 00:00:16,090 --> 00:00:17,010 Nunca voy a Pierce. 5 00:00:17,010 --> 00:00:20,530 Y yo nunca voy a volver de nuevo, porque Dejé mis cosas solo por, 6 00:00:20,530 --> 00:00:23,950 como, cinco minutos y alguien robaron mi computadora y mi 7 00:00:23,950 --> 00:00:26,050 teléfono de mi mochila. 8 00:00:26,050 --> 00:00:28,780 Lo que significa que tengo que volver, y a continuación, a menos de una semana más tarde 9 00:00:28,780 --> 00:00:30,220 que nos robaron otra vez. 10 00:00:30,220 --> 00:00:31,570 >> Y entonces se excitaba - 11 00:00:31,570 --> 00:00:34,540 Buscar mi iPhone sigue ser de poca ayuda. 12 00:00:34,540 --> 00:00:37,340 Así que sigo alentando no lo uses. 13 00:00:37,340 --> 00:00:42,270 Se enciende una vez, y fue en el MIT, como 15 minutos más tarde, y la persona 14 00:00:42,270 --> 00:00:45,770 llamado a este número de teléfono que mostró en mi registro de llamadas AT & T. 15 00:00:45,770 --> 00:00:48,830 >> Así que me fui en línea, llamado el teléfono número, y se fue directamente a esta 16 00:00:48,830 --> 00:00:50,540 contestador automático en español. 17 00:00:50,540 --> 00:00:52,520 Y no he oído hablar de él desde entonces. 18 00:00:52,520 --> 00:00:54,800 Así que tuve que conseguir un nuevo ordenador y el teléfono. 19 00:00:54,800 --> 00:00:55,150 Lo sé. 20 00:00:55,150 --> 00:00:56,326 Sí. 21 00:00:56,326 --> 00:01:00,110 Pero si ustedes quieren hacer mella en mi Fondo de equipo después de esto, es por eso que 22 00:01:00,110 --> 00:01:01,030 Te he pedido aquí. 23 00:01:01,030 --> 00:01:02,280 Es broma. 24 00:01:02,280 --> 00:01:04,239 25 00:01:04,239 --> 00:01:07,420 Pero eso era muy triste y traumático. 26 00:01:07,420 --> 00:01:10,700 >> Pero es todo de nuevo ahora, y que por eso el p-set 8 tomó tanto tiempo, porque 27 00:01:10,700 --> 00:01:12,480 Yo no tengo una computadora. 28 00:01:12,480 --> 00:01:13,730 Y alguien se lo robó. 29 00:01:13,730 --> 00:01:16,940 Y le envié un correo, preguntando si le pondría su p-set 8. 30 00:01:16,940 --> 00:01:18,790 Pero ellos dijeron que no. 31 00:01:18,790 --> 00:01:20,000 Y yo estaba como, puedo tener mi equipo de nuevo? 32 00:01:20,000 --> 00:01:21,270 Y son como, no. 33 00:01:21,270 --> 00:01:22,130 Es broma. 34 00:01:22,130 --> 00:01:22,930 >> Aceptar. 35 00:01:22,930 --> 00:01:28,140 Esta es nuestra última sección, y no tengo un par de - sólo tenemos tres 36 00:01:28,140 --> 00:01:29,790 cosas en el orden del día. 37 00:01:29,790 --> 00:01:31,330 Vamos a hablar un poco Acerca de la guía Q. 38 00:01:31,330 --> 00:01:33,900 Luego nos vamos a gastar 15 minutos en una demostración fresca. 39 00:01:33,900 --> 00:01:36,890 Entonces vamos a decir todo adiós a uno otro. 40 00:01:36,890 --> 00:01:41,460 Usted realmente no necesita los equipos o una pluma o un papel para tomar notas, o 41 00:01:41,460 --> 00:01:42,410 seguir a lo largo. 42 00:01:42,410 --> 00:01:45,620 Así que supongo que si tienes tu ordenador , entonces usted está en Facebook. 43 00:01:45,620 --> 00:01:46,530 Sólo digo. 44 00:01:46,530 --> 00:01:49,650 A menos que estés rellenando los datos del Guía de Q, que es primero. 45 00:01:49,650 --> 00:01:50,690 >> La guía de Q está abierta. 46 00:01:50,690 --> 00:01:53,520 Usted ha tenido un correo electrónico sobre él. 47 00:01:53,520 --> 00:01:56,930 Una vez que todo el material Q se presenta en el final del año, me sale todo el 48 00:01:56,930 --> 00:02:03,710 Q comentarios en las puntuaciones de todo el mundo que opta por darme retroalimentación. 49 00:02:03,710 --> 00:02:04,810 Y así, cuando vas en el Q - 50 00:02:04,810 --> 00:02:07,440 No sé si se puede hacer esto, Jeff, porque usted es estudiante y extensión. 51 00:02:07,440 --> 00:02:12,730 Pero cuando vas en el Q, si no lo ha hecho antes, usted escoge su 52 00:02:12,730 --> 00:02:14,020 maestro, que es David Malan. 53 00:02:14,020 --> 00:02:14,970 Usted tiene que hacer él. 54 00:02:14,970 --> 00:02:15,690 >> Y entonces usted puede escoger TFS. 55 00:02:15,690 --> 00:02:17,750 Y usted puede recoger la mayor cantidad TFS como desee. 56 00:02:17,750 --> 00:02:18,990 Sin embargo, hay 60 de nosotros. 57 00:02:18,990 --> 00:02:20,350 Usted no tiene que recoger todos. 58 00:02:20,350 --> 00:02:23,090 Me puedes recoger, o simplemente elegir un par de otras personas, si lo desea, a 59 00:02:23,090 --> 00:02:24,470 darles retroalimentación. 60 00:02:24,470 --> 00:02:27,595 Y entonces usted consigue las puntuaciones en todas estas diferentes ejes, y entonces usted puede dejar 61 00:02:27,595 --> 00:02:28,570 ellos retroalimentación. 62 00:02:28,570 --> 00:02:31,520 >> Y entonces, como un mes después, Voy a todos los que la retroalimentación. 63 00:02:31,520 --> 00:02:34,570 Y al igual que los comentarios que ha estado darme lo largo del semestre, me 64 00:02:34,570 --> 00:02:35,790 leer todo eso. 65 00:02:35,790 --> 00:02:39,620 Y es muy útil, y ayuda a a crecer como un maestro y como un 66 00:02:39,620 --> 00:02:40,680 individuo. 67 00:02:40,680 --> 00:02:43,360 Así que, por favor, tómese un tiempo para hacerlo. 68 00:02:43,360 --> 00:02:45,020 Sólo vamos a estar aquí por como 30 minutos. 69 00:02:45,020 --> 00:02:48,090 Así que si quieres, al final de esto, para tomar cinco minutos, y sólo tiene que rellenar 70 00:02:48,090 --> 00:02:49,960 la Q, ya que no toma más tiempo que eso. 71 00:02:49,960 --> 00:02:53,410 Eso sería maravilloso, y también obtener sus grados de hace más rápidamente si 72 00:02:53,410 --> 00:02:54,620 a llenar la Q. 73 00:02:54,620 --> 00:02:56,580 >> Así que la mayoría de ustedes han hecho esto antes - 74 00:02:56,580 --> 00:02:58,240 o no, alrededor de la mitad de ustedes han hecho eso antes. 75 00:02:58,240 --> 00:03:00,060 Pero si usted es un estudiante de primer año, eso es lo que es. 76 00:03:00,060 --> 00:03:01,910 Va a ser el mismo para todas las clases. 77 00:03:01,910 --> 00:03:02,270 Hazlo. 78 00:03:02,270 --> 00:03:02,900 Se tarda cinco minutos. 79 00:03:02,900 --> 00:03:07,610 Pero también, si lo haces un poco en serio, eso no es lo peor 80 00:03:07,610 --> 00:03:10,270 en el mundo, porque sin duda tomar en serio. 81 00:03:10,270 --> 00:03:13,000 >> Así que si usted me deja una cara sonriente, Voy a apreciar eso. 82 00:03:13,000 --> 00:03:17,550 Pero también le agradecería si usted me dejó más de una cara sonriente. 83 00:03:17,550 --> 00:03:18,270 Pero le toca a usted. 84 00:03:18,270 --> 00:03:21,540 Yo no te puedo decir - o como un gran smiley cara, con un capital D. Eso 85 00:03:21,540 --> 00:03:23,060 será aún mejor. 86 00:03:23,060 --> 00:03:27,860 >> OK, eso es todo lo que tengo para el P. Si tiene alguna pregunta, puede pedir 87 00:03:27,860 --> 00:03:29,370 mí, pero bastante auto-explicativo. 88 00:03:29,370 --> 00:03:31,090 Simplemente, favor, llénelo. 89 00:03:31,090 --> 00:03:34,390 Yo lo agradecería muchísimo, y eso significa mucho para mí. 90 00:03:34,390 --> 00:03:38,910 >> OK, esto es lo que vamos a gastar 15 minutos pasando. 91 00:03:38,910 --> 00:03:39,800 Yo te voy a mostrar algo de código. 92 00:03:39,800 --> 00:03:42,080 Creo que esto es realmente genial, y esto me hizo más 93 00:03:42,080 --> 00:03:43,810 excitado en ciencias de la computación. 94 00:03:43,810 --> 00:03:46,480 Así que espero que va a hacer el igual para todos ustedes. 95 00:03:46,480 --> 00:03:51,760 >> Vamos a abrir - y todo esto Código voy a enviar a usted más tarde. 96 00:03:51,760 --> 00:03:52,680 Pero sólo vamos a abrir - 97 00:03:52,680 --> 00:03:54,310 Estoy en mi terminal - 98 00:03:54,310 --> 00:03:56,810 vamos a abrir este programa llamado [? MySum. ?] 99 00:03:56,810 --> 00:04:01,290 100 00:04:01,290 --> 00:04:02,540 >> ¿Todos pueden leer eso, o debería hacerlo más grande? 101 00:04:02,540 --> 00:04:07,670 102 00:04:07,670 --> 00:04:13,040 ¿Alguien puede decirme lo que este código se hacerlo cuando lo ejecuto, o lo que esta 103 00:04:13,040 --> 00:04:14,320 programa lo hará cuando lo ejecuto? 104 00:04:14,320 --> 00:04:30,710 105 00:04:30,710 --> 00:04:32,400 >> [? Avi,?] ¿Qué te parece que va a hacer? 106 00:04:32,400 --> 00:04:33,335 Masticar Finalizar. 107 00:04:33,335 --> 00:04:35,033 Usted no debe hablar con la boca abierta. 108 00:04:35,033 --> 00:04:38,330 109 00:04:38,330 --> 00:04:42,860 >> AUDIENCIA: ¿Se necesita un montón de argumentos, encuentra la suma de ellos regresan 110 00:04:42,860 --> 00:04:45,285 suma y, a continuación, imprimirlo? 111 00:04:45,285 --> 00:04:53,045 O que se necesita en dos argumentos, y entonces lo hace [inaudible]. 112 00:04:53,045 --> 00:04:56,460 Y luego imprime lo que sea los resultados son. 113 00:04:56,460 --> 00:04:58,100 >> ALTAVOZ: Close, muy cerca. 114 00:04:58,100 --> 00:04:59,840 ¿Alguien quiere agregar a la [? lo Avi?] dijo? 115 00:04:59,840 --> 00:05:04,830 116 00:05:04,830 --> 00:05:07,293 ¿Es necesario dar a este programa cualquier argumento de línea de comandos? 117 00:05:07,293 --> 00:05:09,145 >> AUDIENCIA: No. 118 00:05:09,145 --> 00:05:09,610 >> ALTAVOZ: No. 119 00:05:09,610 --> 00:05:11,250 ¿Qué sucede si usted no le da cualquier argumento de línea de comandos? 120 00:05:11,250 --> 00:05:12,500 Yo sólo escribo MySum slash dot. 121 00:05:12,500 --> 00:05:15,145 122 00:05:15,145 --> 00:05:16,630 >> AUDIENCIA: 1 más 2 es igual a 3. 123 00:05:16,630 --> 00:05:17,250 >> ALTAVOZ: 1 más 2 es igual a 3. 124 00:05:17,250 --> 00:05:18,570 Y va a imprimir eso. 125 00:05:18,570 --> 00:05:19,450 Eso es exactamente correcto. 126 00:05:19,450 --> 00:05:21,370 Vas a ver que la impresión f línea en la parte inferior. 127 00:05:21,370 --> 00:05:23,450 Se va a imprimir a, b, y entonces la suma de a y b. 128 00:05:23,450 --> 00:05:26,360 Y supongo que usted asume que suma funciona correctamente. 129 00:05:26,360 --> 00:05:28,120 Buena suposición. 130 00:05:28,120 --> 00:05:32,250 >> Bien, y lo que sucede si me darle qué argumento? 131 00:05:32,250 --> 00:05:33,010 [? Manu? ?] 132 00:05:33,010 --> 00:05:36,230 >> AUDIENCIA: Va a agregar lo que sea el primer argumento es b. 133 00:05:36,230 --> 00:05:37,150 O a 2, lo siento. 134 00:05:37,150 --> 00:05:38,480 >> ALTAVOZ: Derecho, a 2. 135 00:05:38,480 --> 00:05:42,470 ¿Alguien sabe lo que strtol hace? 136 00:05:42,470 --> 00:05:43,960 Se trata básicamente de atoi. 137 00:05:43,960 --> 00:05:47,240 Atoi es en realidad una versión de lujo de - 138 00:05:47,240 --> 00:05:49,600 o una versión más simple de strtol. 139 00:05:49,600 --> 00:05:51,790 Pero lo que realmente utiliza strtol. 140 00:05:51,790 --> 00:05:54,610 141 00:05:54,610 --> 00:05:58,010 Y me encontré con que fuera porque quería algo así como atoi, y luego, cuando me 142 00:05:58,010 --> 00:06:01,110 me atoi, leí aquí. 143 00:06:01,110 --> 00:06:04,380 Y me encontré con "este comportamiento es lo mismo que "strtol. 144 00:06:04,380 --> 00:06:06,850 Así que es básicamente atoi para todos los efectos. 145 00:06:06,850 --> 00:06:09,320 Y ya ves, incluso yo uso nulo y 10. 146 00:06:09,320 --> 00:06:14,390 >> En realidad, esto le permite tomar una cadena, y convertirlo en un número, y elija 147 00:06:14,390 --> 00:06:15,970 qué base que desea hacerlo pulg 148 00:06:15,970 --> 00:06:17,370 Así que esta es la base 10 aquí. 149 00:06:17,370 --> 00:06:20,455 Yo podría haber hecho en base dos de decimales, base 16 para hexadecimal. 150 00:06:20,455 --> 00:06:22,090 Es muy bueno. 151 00:06:22,090 --> 00:06:25,860 Pero cuento largo, esto tiene dos números y los suma. 152 00:06:25,860 --> 00:06:29,260 >> Así que vamos a ejecutarlo. 153 00:06:29,260 --> 00:06:32,560 Y también se dará cuenta, no son algunas de las cosas - 154 00:06:32,560 --> 00:06:37,830 así que tengo un makefile aquí, y Si abre eso, algunas cosas 155 00:06:37,830 --> 00:06:39,270 te darás cuenta son diferentes. 156 00:06:39,270 --> 00:06:42,370 En particular, este argumento aquí, usted probablemente 157 00:06:42,370 --> 00:06:43,010 no he visto eso antes. 158 00:06:43,010 --> 00:06:45,770 Generalmente, compilamos cosas con guión cero, cero. 159 00:06:45,770 --> 00:06:51,500 Dash cero, cero, significa que no lo hacen cualquier optimizaciones, compilador. 160 00:06:51,500 --> 00:06:54,950 No tratar de hacer algo de fantasía, o hacer que algo funcione más rápidamente, o conseguir 161 00:06:54,950 --> 00:06:56,530 deshacerse de variables que son necesarias. 162 00:06:56,530 --> 00:06:58,080 No optimizar el código en absoluto, 163 00:06:58,080 --> 00:07:00,110 >> Estoy pidiendo de tercer nivel optimización. 164 00:07:00,110 --> 00:07:02,580 Así que lo que estoy pidiendo compilador para hacer una gran cantidad de optimizaciones. 165 00:07:02,580 --> 00:07:05,870 Usted puede cambiar esto en el archivo MAKE cuando usted tiene este código, si quieres 166 00:07:05,870 --> 00:07:07,190 para ver cosas diferentes. 167 00:07:07,190 --> 00:07:08,660 ¿Qué vamos a mostrar en un segundo. 168 00:07:08,660 --> 00:07:12,080 Así corremos mi suma 1 más 2 más 3. 169 00:07:12,080 --> 00:07:13,445 Alguien me da dos argumentos. 170 00:07:13,445 --> 00:07:17,221 171 00:07:17,221 --> 00:07:18,210 >> AUDIENCIA: 4 y 5. 172 00:07:18,210 --> 00:07:18,966 >> ALTAVOZ: 4 y 5. 173 00:07:18,966 --> 00:07:19,900 Gracias. 174 00:07:19,900 --> 00:07:20,860 Gran, funciona. 175 00:07:20,860 --> 00:07:25,700 ¿Cuáles son algunos otros buenos argumentos para probar, para asegurarse de que esto funciona? 176 00:07:25,700 --> 00:07:27,050 ¿Alguien? 177 00:07:27,050 --> 00:07:27,430 >> AUDIENCIA: 0. 178 00:07:27,430 --> 00:07:29,210 >> ALTAVOZ: 0 y? 179 00:07:29,210 --> 00:07:31,010 >> AUDIENCIA: Negativo 3. 180 00:07:31,010 --> 00:07:32,040 >> ALTAVOZ: Funciona. 181 00:07:32,040 --> 00:07:33,670 Pero esos eran buenas opciones. 182 00:07:33,670 --> 00:07:36,600 OK, así que vamos a volver aquí. 183 00:07:36,600 --> 00:07:38,540 Este es mysum.c. 184 00:07:38,540 --> 00:07:42,440 Se dará cuenta de que hay también algo llamado sumfunction.c. 185 00:07:42,440 --> 00:07:48,110 Y esto dice, oh, hay algo definido en sumfunction.c. 186 00:07:48,110 --> 00:07:51,480 No incluyo este archivo aquí porque yo no necesito. 187 00:07:51,480 --> 00:07:54,840 Pero puedo enlazar en cuando compilo, que te has dado cuenta. 188 00:07:54,840 --> 00:07:57,380 >> Vamos a desplazarse hacia arriba. 189 00:07:57,380 --> 00:08:02,880 Vimos cuando compilamos MySum, derecho allí, nos vinculamos en el binario de 190 00:08:02,880 --> 00:08:04,130 sumfunction.o. 191 00:08:04,130 --> 00:08:05,780 192 00:08:05,780 --> 00:08:08,470 Y yo no necesito el archivo de cabecera porque, por supuesto, está el 193 00:08:08,470 --> 00:08:09,240 declaración de la función. 194 00:08:09,240 --> 00:08:12,200 Así aguda incluyen normalmente sólo pone en una declaración de la función. 195 00:08:12,200 --> 00:08:13,730 Aquí acabo de ponerlo recto en el código. 196 00:08:13,730 --> 00:08:16,370 Así que tengo que hacer es enlace en el binario, lo que yo hago. 197 00:08:16,370 --> 00:08:19,950 >> ¿Alguna idea de lo que es en sumfunction.c? 198 00:08:19,950 --> 00:08:21,950 ¿Qué código que he escrito en sumfunction.c? 199 00:08:21,950 --> 00:08:25,445 200 00:08:25,445 --> 00:08:26,695 >> AUDIENCIA: [inaudible]. 201 00:08:26,695 --> 00:08:29,460 202 00:08:29,460 --> 00:08:30,630 >> ALTAVOZ: ¿Alguna idea? 203 00:08:30,630 --> 00:08:30,940 ¿Sí? 204 00:08:30,940 --> 00:08:33,710 >> AUDIENCIA: Creo, define algunos [inaudible]. 205 00:08:33,710 --> 00:08:33,975 >> ALTAVOZ: Si. 206 00:08:33,975 --> 00:08:37,650 Así que hago escritura int suma int a. 207 00:08:37,650 --> 00:08:41,120 Escribo esta línea, y luego tengo abierta llave de cierre, cerrado corchete. 208 00:08:41,120 --> 00:08:46,160 ¿Qué crees que yo escribo en el interior los llaves, dentro de esa función? 209 00:08:46,160 --> 00:08:46,600 ¿Sí? 210 00:08:46,600 --> 00:08:48,150 >> AUDIENCIA: Retorno es igual a. 211 00:08:48,150 --> 00:08:50,010 >> PROCESADOR: Esa es una muy buena opción. 212 00:08:50,010 --> 00:08:51,720 ¿Quién piensa [? Manu?] Tiene razón? 213 00:08:51,720 --> 00:08:54,122 Dice volver a más b. 214 00:08:54,122 --> 00:08:55,860 Bueno, no todo el mundo. 215 00:08:55,860 --> 00:08:56,520 [? Akshar,?] 216 00:08:56,520 --> 00:08:57,390 tú también? 217 00:08:57,390 --> 00:09:00,430 ¿Seguro? 218 00:09:00,430 --> 00:09:01,680 Aceptar. 219 00:09:01,680 --> 00:09:09,551 220 00:09:09,551 --> 00:09:10,050 ¿Qué? 221 00:09:10,050 --> 00:09:11,662 >> AUDIENCIA: Usted deletreó mal. 222 00:09:11,662 --> 00:09:13,000 >> ALTAVOZ: No, no lo hice. 223 00:09:13,000 --> 00:09:13,966 Sí, es broma. 224 00:09:13,966 --> 00:09:15,300 Tienes razón. 225 00:09:15,300 --> 00:09:15,930 Eso es exactamente lo que dice. 226 00:09:15,930 --> 00:09:17,110 Es volver a más b. 227 00:09:17,110 --> 00:09:18,570 Eso tiene mucho sentido. 228 00:09:18,570 --> 00:09:20,240 >> OK, vamos a volver aquí. 229 00:09:20,240 --> 00:09:21,490 Vemos cómo la cabecera - 230 00:09:21,490 --> 00:09:24,540 231 00:09:24,540 --> 00:09:25,660 ese es el tipo de retorno. 232 00:09:25,660 --> 00:09:29,100 Recuerde, hemos visto que el primer día, la tipo de la función de volver, pero va 233 00:09:29,100 --> 00:09:30,160 antes de que el nombre de la función int. 234 00:09:30,160 --> 00:09:31,560 Aquí, he escrito int. 235 00:09:31,560 --> 00:09:35,680 ¿Qué crees que pasará si en este función, no escribo int, pero 236 00:09:35,680 --> 00:09:38,270 Escribo sin firmar? 237 00:09:38,270 --> 00:09:41,050 La diferencia, por supuesto, es que sin signo representa único positivo 238 00:09:41,050 --> 00:09:43,620 enteros y pueden ser int positiva o negativa. 239 00:09:43,620 --> 00:09:45,450 >> Así que he cambiado el regreso tipo de esta función. 240 00:09:45,450 --> 00:09:49,370 Este código no coincide este retorno aqui. 241 00:09:49,370 --> 00:09:50,925 ¿Qué crees que va a pasar cuando compilo? 242 00:09:50,925 --> 00:09:53,840 243 00:09:53,840 --> 00:09:56,240 Usted debe gritarme. 244 00:09:56,240 --> 00:09:57,700 Sin gritos. 245 00:09:57,700 --> 00:10:00,050 >> ¿Qué pasa cuando ejecuto el programa? 246 00:10:00,050 --> 00:10:05,810 Vamos a hacerlo antes de 0 negativo 3, o negativo 1. 247 00:10:05,810 --> 00:10:10,180 Todavía funciona, a pesar de que estoy diciendo que ha de devolver un entero sin signo. 248 00:10:10,180 --> 00:10:12,060 Está claro que no me devuelve las un entero sin signo. 249 00:10:12,060 --> 00:10:13,520 Se devuelve un entero con signo. 250 00:10:13,520 --> 00:10:16,130 Está volviendo negativo 1. 251 00:10:16,130 --> 00:10:17,830 OK, eso es raro. 252 00:10:17,830 --> 00:10:27,030 >> ¿Qué pasa si me voy en aquí y hacer eso? 253 00:10:27,030 --> 00:10:29,700 Así que he cambiado todo de int a firmar. 254 00:10:29,700 --> 00:10:31,590 Sólo puede tomar enteros sin signo. 255 00:10:31,590 --> 00:10:33,840 Pero, ¿seguimos pensando que va a funcionar? 256 00:10:33,840 --> 00:10:35,652 >> AUDIENCIA: Si. 257 00:10:35,652 --> 00:10:37,270 >> ALTAVOZ: Lo hará. 258 00:10:37,270 --> 00:10:39,410 Eso es una locura. 259 00:10:39,410 --> 00:10:43,140 Y pasamos de manera claramente asignado número entero, podemos pasar dos firmado 260 00:10:43,140 --> 00:10:46,280 número entero, que todavía funciona. 261 00:10:46,280 --> 00:10:52,150 >> OK, alguna idea de por qué sigue funciona, o lo que está pasando? 262 00:10:52,150 --> 00:10:53,368 Sí, Jeff. 263 00:10:53,368 --> 00:10:56,296 >> AUDIENCIA: Tiene algo que ver con su optimización que 264 00:10:56,296 --> 00:10:57,760 resaltado. 265 00:10:57,760 --> 00:10:58,210 >> ALTAVOZ: No. 266 00:10:58,210 --> 00:11:00,570 Podríamos cambiar la optimización, no por ello deja trabajar. 267 00:11:00,570 --> 00:11:02,240 Yo puedo hacer eso para usted, pero - 268 00:11:02,240 --> 00:11:02,930 >> AUDIENCIA: Voy a tomar su palabra para ella. 269 00:11:02,930 --> 00:11:03,690 >> ALTAVOZ: Si. 270 00:11:03,690 --> 00:11:09,690 Si abre el archivo MAKE aquí, Cambié la optimización. 271 00:11:09,690 --> 00:11:11,570 Así que usted puede hacer el tablero cero, cero. 272 00:11:11,570 --> 00:11:12,820 Todavía va a funcionar. 273 00:11:12,820 --> 00:11:16,839 274 00:11:16,839 --> 00:11:20,280 Otros pensamientos? 275 00:11:20,280 --> 00:11:22,600 >> Ustedes todos esperábamos para trabajar, por lo que ¿por qué esperas que funcione? 276 00:11:22,600 --> 00:11:31,210 277 00:11:31,210 --> 00:11:32,150 No? 278 00:11:32,150 --> 00:11:33,660 Silencio. 279 00:11:33,660 --> 00:11:34,910 Aceptar. 280 00:11:34,910 --> 00:11:39,271 281 00:11:39,271 --> 00:11:41,650 Tengo que esperar siete segundos porque he hecho una pregunta. 282 00:11:41,650 --> 00:11:44,190 283 00:11:44,190 --> 00:11:48,660 >> Así que lo bueno de C, y que ha probablemente experimentado antes - 284 00:11:48,660 --> 00:11:50,260 podría no tener, esto podría la primera vez. 285 00:11:50,260 --> 00:11:57,030 Pero como todos ustedes saben, cuando escribo algo en C, no se guarda como 286 00:11:57,030 --> 00:11:57,760 este en el ordenador. 287 00:11:57,760 --> 00:11:59,440 Se guarda como unos y ceros. 288 00:11:59,440 --> 00:12:02,970 Va de código C a código ensamblador. 289 00:12:02,970 --> 00:12:09,460 >> ¿Alguien ha visto a código ensamblador antes, Código de montaje de la máquina? 290 00:12:09,460 --> 00:12:10,630 Veremos en un segundo. 291 00:12:10,630 --> 00:12:12,040 Va de código C a código ensamblador. 292 00:12:12,040 --> 00:12:13,755 Y ustedes saben las etapas de compilación. 293 00:12:13,755 --> 00:12:17,410 Había que memorizar que por concurso una, y luego escribirlo en concurso cero. 294 00:12:17,410 --> 00:12:18,240 La mayoría de las personas se equivocaron. 295 00:12:18,240 --> 00:12:19,760 Creo que ustedes lo clavó. 296 00:12:19,760 --> 00:12:22,880 >> Pero, ustedes son la mejor sección para las pruebas, por cierto. 297 00:12:22,880 --> 00:12:25,210 ¿Cuál es impresionante. 298 00:12:25,210 --> 00:12:25,910 No te hará daño. 299 00:12:25,910 --> 00:12:26,900 ¡No se preocupe. 300 00:12:26,900 --> 00:12:28,800 Pero es realmente genial. 301 00:12:28,800 --> 00:12:29,660 Buen trabajo. 302 00:12:29,660 --> 00:12:32,870 >> Así que va a lenguaje ensamblador, y luego pasa a unos y ceros. 303 00:12:32,870 --> 00:12:35,500 Y los unos y ceros se guardan en el ordenador, y eso es lo que guarda en 304 00:12:35,500 --> 00:12:38,340 la a.out, o en este caso, el archivo ejecutable. 305 00:12:38,340 --> 00:12:41,040 Y el equipo funciona con unos y ceros. 306 00:12:41,040 --> 00:12:41,670 ¿Cierto? 307 00:12:41,670 --> 00:12:43,890 Hemos aprendido esto antes. 308 00:12:43,890 --> 00:12:47,490 >> Así que lo bueno es que esto no firmado idea, la idea de los tipos de ints sin firmar, 309 00:12:47,490 --> 00:12:50,490 etcétera, etcétera, eso es aquí en el lenguaje C. 310 00:12:50,490 --> 00:12:51,110 Aquellos existe. 311 00:12:51,110 --> 00:12:53,770 Pero no existen tipos de los unos y ceros. 312 00:12:53,770 --> 00:12:57,110 Tipos ni siquiera existen realmente en el nivel de lenguaje ensamblador. 313 00:12:57,110 --> 00:13:00,075 Así que eso es algo que existe en C mundo, pero no existe en el ordenador 314 00:13:00,075 --> 00:13:01,640 mundo o del mundo del procesador. 315 00:13:01,640 --> 00:13:04,660 Eso es una abstracción que el C idioma ha incluido, para que nuestra 316 00:13:04,660 --> 00:13:06,240 la vida más fácil. 317 00:13:06,240 --> 00:13:09,990 >> Así que al final del día, puedo escribir muchas cosas diferentes aquí, y es 318 00:13:09,990 --> 00:13:10,700 no hace una diferencia. 319 00:13:10,700 --> 00:13:12,060 Debido a que sólo existe en el mundo C. 320 00:13:12,060 --> 00:13:14,100 No existe en el unos y ceros mundo. 321 00:13:14,100 --> 00:13:17,310 Y nuestro programa de ejecución en los unos y ceros mundo. 322 00:13:17,310 --> 00:13:21,170 Así que claramente no ha volado de su mente. 323 00:13:21,170 --> 00:13:22,740 Pero creo que eso es genial. 324 00:13:22,740 --> 00:13:23,530 Sí, Jeff. 325 00:13:23,530 --> 00:13:27,298 >> AUDIENCIA: Así que, si en lugar de haciendo int, lo haces caracteres. 326 00:13:27,298 --> 00:13:27,770 Y tú estabas - 327 00:13:27,770 --> 00:13:29,311 >> ALTAVOZ: Vamos a hacerlo en un segundo. 328 00:13:29,311 --> 00:13:32,583 >> AUDIENCIA: Porque entonces se obtiene una sin signo al pasar de 128 a negativo 329 00:13:32,583 --> 00:13:34,720 127 o de 0 a 255. 330 00:13:34,720 --> 00:13:36,760 >> ALTAVOZ: Así char es problemático. 331 00:13:36,760 --> 00:13:39,460 ¿Alguien sabe por qué carbón sería problemática, y que lo haría en realidad 332 00:13:39,460 --> 00:13:42,930 cambiar las cosas en las que y ceros mundo? 333 00:13:42,930 --> 00:13:44,370 >> AUDIENCIA: Debido al tamaño de los caracteres. 334 00:13:44,370 --> 00:13:46,200 >> ALTAVOZ: Tamaño de char es 1. 335 00:13:46,200 --> 00:13:48,260 Así que sin signo también es de 4 bytes. 336 00:13:48,260 --> 00:13:50,080 Así carbón sería arruinar las cosas. 337 00:13:50,080 --> 00:13:55,660 Pero lo que es 4 bytes que está en relacionada con un char? 338 00:13:55,660 --> 00:13:57,820 O, al que se suma uno más - 339 00:13:57,820 --> 00:13:59,760 usted puede poner un carácter más después de caracteres. 340 00:13:59,760 --> 00:14:00,200 >> AUDIENCIA: Car. estrellas. 341 00:14:00,200 --> 00:14:01,220 >> ALTAVOZ: Carácter estrellas cuenta con 4 bytes. 342 00:14:01,220 --> 00:14:02,490 Así que vamos a hacer algo eso es una estrella de carbón. 343 00:14:02,490 --> 00:14:05,470 344 00:14:05,470 --> 00:14:07,240 >> Así que esto probablemente funcionaría, pero estamos va a hacer algo, incluso 345 00:14:07,240 --> 00:14:09,710 más loco que esto. 346 00:14:09,710 --> 00:14:10,960 En mi opinión, más loco. 347 00:14:10,960 --> 00:14:21,060 348 00:14:21,060 --> 00:14:24,570 >> Ahora que he escrito una función que devuelve un puntero, y se necesita un 349 00:14:24,570 --> 00:14:29,480 puntero y un valor sin signo - vamos a cambiar esto a int así que no estamos 350 00:14:29,480 --> 00:14:31,250 hacer demasiados cambios a la vez. 351 00:14:31,250 --> 00:14:35,370 Y tiene un arreglo llamado a, los índices en la matriz, y devuelve la 352 00:14:35,370 --> 00:14:35,850 dirección. 353 00:14:35,850 --> 00:14:37,470 Hemos visto estos operadores antes. 354 00:14:37,470 --> 00:14:43,340 Esto, ¿qué crees que esto va a hacer, a cambio, cuando lo ejecuto? 355 00:14:43,340 --> 00:14:48,280 356 00:14:48,280 --> 00:14:49,070 ¿Qué piensa usted que va a hacer? 357 00:14:49,070 --> 00:14:50,320 ¿Alguna idea? 358 00:14:50,320 --> 00:14:54,220 359 00:14:54,220 --> 00:14:55,320 >> AUDIENCIA: violación de segmento. 360 00:14:55,320 --> 00:14:55,600 >> ALTAVOZ: ¿Qué? 361 00:14:55,600 --> 00:14:56,660 Segfault? 362 00:14:56,660 --> 00:14:58,520 Eso es una buena suposición. 363 00:14:58,520 --> 00:14:59,430 Tom dice lo mismo. 364 00:14:59,430 --> 00:15:02,240 Cualesquiera otras conjeturas? 365 00:15:02,240 --> 00:15:05,260 >> ¿Quién piensa que va a hacer lo mismo? 366 00:15:05,260 --> 00:15:06,510 ¿Quién piensa que va a segfault? 367 00:15:06,510 --> 00:15:09,350 368 00:15:09,350 --> 00:15:10,230 Se hace lo mismo. 369 00:15:10,230 --> 00:15:11,880 Lo siento. 370 00:15:11,880 --> 00:15:13,860 >> Pero, por supuesto, ponemos en 1 y 2. 371 00:15:13,860 --> 00:15:16,470 Y esos son ambos válidos, ¿verdad? 372 00:15:16,470 --> 00:15:19,420 Vamos a ver, podemos ir a la el segundo lugar de una matriz. 373 00:15:19,420 --> 00:15:24,010 Pero lo que si hicimos b un número negativo? 374 00:15:24,010 --> 00:15:26,380 Esa es probablemente una mejor conjetura por algo en violación de segmento. 375 00:15:26,380 --> 00:15:30,310 376 00:15:30,310 --> 00:15:32,260 Todavía funciona. 377 00:15:32,260 --> 00:15:35,020 >> OK, esto ya es una locura. 378 00:15:35,020 --> 00:15:38,350 Esta es la función de suma igualmente válidas. 379 00:15:38,350 --> 00:15:40,470 Esto hace exactamente lo mismo como el retorno a y b. 380 00:15:40,470 --> 00:15:44,600 ¿Alguien puede explicar por qué esto es una buena función de resumir, o por qué esto funciona? 381 00:15:44,600 --> 00:15:45,850 ¿Qué está pasando aquí? 382 00:15:45,850 --> 00:15:49,360 383 00:15:49,360 --> 00:15:55,750 ¿Por qué hace esto exactamente el mismo cosa como nuestra antigua función suma? 384 00:15:55,750 --> 00:15:56,890 [? Akshar,?] 385 00:15:56,890 --> 00:15:58,155 ¿qué está pasando? 386 00:15:58,155 --> 00:16:01,540 >> AUDIENCIA: Porque cuando usted tiene un a que es una dirección a 387 00:16:01,540 --> 00:16:03,950 la memoria de localización - 388 00:16:03,950 --> 00:16:07,910 y cuando lo hace el signo, que va a la dirección de memoria. 389 00:16:07,910 --> 00:16:13,610 Y cuando vas a la b, eres un poco pasos de esa dirección de memoria en movimiento, 390 00:16:13,610 --> 00:16:15,550 usted está volviendo eso. 391 00:16:15,550 --> 00:16:20,083 Así que usted es en realidad, de hecho, añadiendo a y b [inaudible]. 392 00:16:20,083 --> 00:16:23,300 393 00:16:23,300 --> 00:16:26,222 ¿Dónde están las operaciones estándar en esa declaración? 394 00:16:26,222 --> 00:16:27,683 Al igual que, ¿de dónde caen los paréntesis? 395 00:16:27,683 --> 00:16:30,610 ¿El regreso de la dirección en un antes o después de [inaudible]? 396 00:16:30,610 --> 00:16:32,380 >> ALTAVOZ: Se va a indexar en b - 397 00:16:32,380 --> 00:16:34,430 o un índice en un - y luego devolver la dirección. 398 00:16:34,430 --> 00:16:38,800 399 00:16:38,800 --> 00:16:41,340 OK, así que entendía todo el mundo lo que [? Akshar?] 400 00:16:41,340 --> 00:16:45,830 dijo, y explicó por qué esto funciona? 401 00:16:45,830 --> 00:16:49,430 Yo no lo hice, la primera vez que alguien explicado esto a mí. 402 00:16:49,430 --> 00:16:51,900 ¿Alguien quiere una foto para explicar esto? 403 00:16:51,900 --> 00:16:55,320 Vamos a hacer un dibujo, con ningún marcador, eso es genial. 404 00:16:55,320 --> 00:16:57,920 Encontrado alguna. 405 00:16:57,920 --> 00:17:03,390 >> Así que tenemos una matriz que es una serie de cajas. 406 00:17:03,390 --> 00:17:07,160 407 00:17:07,160 --> 00:17:13,710 El primero es un índice de 0, índice 1, 2, 3, 4, punto, punto, punto. 408 00:17:13,710 --> 00:17:15,609 Un arreglo típico. 409 00:17:15,609 --> 00:17:19,540 Y además de tener índices, todos ellos tienen direcciones de memoria. 410 00:17:19,540 --> 00:17:30,190 Así que vamos a dar a esta dirección de memoria 13, 14, 15, 16, 17, etcétera. 411 00:17:30,190 --> 00:17:32,490 Todo el mundo está aquí hasta ahora. 412 00:17:32,490 --> 00:17:35,810 >> Así que a es una dirección. 413 00:17:35,810 --> 00:17:38,850 El nombre de una matriz, un puntero se guarda allí. 414 00:17:38,850 --> 00:17:42,730 Es un puntero, es una ubicación de memoria, al inicio de la matriz. 415 00:17:42,730 --> 00:17:45,910 Así que si se tratara de la matriz, una sería un valor de 13. 416 00:17:45,910 --> 00:17:49,110 Y, por supuesto, podemos dar un valor que queremos. 417 00:17:49,110 --> 00:17:52,450 Carácter de lujo A, podemos dar una cualquiera dirección de memoria que queremos. 418 00:17:52,450 --> 00:17:55,940 Podemos darle 0, podemos darle negativo 1 - negativo no existe 1, 419 00:17:55,940 --> 00:17:58,820 de manera que es probable que haya un problema, pero viste que todavía funcionaba. 420 00:17:58,820 --> 00:18:03,070 Así que podemos darle un cualquier número que queramos, cualquier dirección de memoria que queremos. 421 00:18:03,070 --> 00:18:08,720 >> Entonces, int b dice, OK, vaya este número de los pasos en la matriz. 422 00:18:08,720 --> 00:18:13,150 Así que si b es igual a 2, y a es igual a 13, estamos en la dirección de memoria 13. 423 00:18:13,150 --> 00:18:17,330 Y vamos dos pasos, y por lo que estamos aquí. 424 00:18:17,330 --> 00:18:21,150 Y el signo significa retorno la dirección de este lugar. 425 00:18:21,150 --> 00:18:23,990 Y la dirección es, por supuesto, 15. 426 00:18:23,990 --> 00:18:28,710 Así que tenemos 13 más 2, o A más B, que es de 15. 427 00:18:28,710 --> 00:18:29,590 >> La cuestión es, sin embargo - 428 00:18:29,590 --> 00:18:30,250 Lo siento. 429 00:18:30,250 --> 00:18:34,324 ¿Eso aclarar las cosas por qué esto funciona? 430 00:18:34,324 --> 00:18:36,300 >> AUDIENCIA: ¿Por qué sería trabajar va - 431 00:18:36,300 --> 00:18:38,770 para que pueda tener una matriz y ir a un índice negativo? 432 00:18:38,770 --> 00:18:39,050 >> ALTAVOZ: Así es. 433 00:18:39,050 --> 00:18:40,870 Así que hicimos los números negativos, así que eso es el - 434 00:18:40,870 --> 00:18:42,770 ¿esto tiene sentido, sin embargo, primero, [? Avi,?] 435 00:18:42,770 --> 00:18:43,120 para usted? 436 00:18:43,120 --> 00:18:48,840 >> AUDIENCIA: Sí, estoy solo [Inaudible], pero - 437 00:18:48,840 --> 00:18:50,440 >> ALTAVOZ: Sí, esto sería volver 15. 438 00:18:50,440 --> 00:18:53,523 Si una tenía 13 años, y b era 2, esto sería volver 15. 439 00:18:53,523 --> 00:18:58,160 >> AUDIENCIA: Así que la indexación de cero no convertido en un problema, ¿verdad? 440 00:18:58,160 --> 00:19:00,160 Debido a que usted se está moviendo desde 0. 441 00:19:00,160 --> 00:19:00,470 >> ALTAVOZ: Así es. 442 00:19:00,470 --> 00:19:05,000 Así que usted está en movimiento - así que si b fue de 0, usted no desplazarse a cualquier lugar. 443 00:19:05,000 --> 00:19:06,330 Y usted acaba de regresar de la dirección - 444 00:19:06,330 --> 00:19:10,830 si b es 0, eso es esencialmente devolviendo esa dirección de una. 445 00:19:10,830 --> 00:19:13,960 Al pasar en una charla de una estrella y devolver el dirección de una se acaba volviendo a, 446 00:19:13,960 --> 00:19:15,860 esencialmente. 447 00:19:15,860 --> 00:19:18,280 >> Bien, la pregunta es ¿por qué números negativos funcionan? 448 00:19:18,280 --> 00:19:21,670 Y eso es lo realmente bueno de esto, porque esto debe segfault. 449 00:19:21,670 --> 00:19:25,110 Y sería segfault si hizo algo como esto. 450 00:19:25,110 --> 00:19:28,050 451 00:19:28,050 --> 00:19:29,300 Digamos, int. 452 00:19:29,300 --> 00:19:34,390 453 00:19:34,390 --> 00:19:39,810 Así que este código es idéntico y debe comportarse de forma idéntica. 454 00:19:39,810 --> 00:19:44,550 Esencialmente, x es una variable de basura, por lo que este debe comportarse de forma idéntica. 455 00:19:44,550 --> 00:19:46,370 >> Vamos a hacer esto - 456 00:19:46,370 --> 00:19:47,620 ups - 457 00:19:47,620 --> 00:19:54,790 458 00:19:54,790 --> 00:19:56,040 en estrella. 459 00:19:56,040 --> 00:19:59,160 460 00:19:59,160 --> 00:20:02,733 Bien, ya estamos recibiendo errores aquí, porque ya va a estar enojado 461 00:20:02,733 --> 00:20:04,610 a mí, porque ya sabe lo que viene. 462 00:20:04,610 --> 00:20:07,060 En particular, el segundo uno. 463 00:20:07,060 --> 00:20:09,800 Dirección de memoria apilados asociado con una variable local. 464 00:20:09,800 --> 00:20:14,220 >> Esencialmente, yo no voy a compilar esto, y luego me voy a deshacer hacer 465 00:20:14,220 --> 00:20:14,920 lo que acabamos de hacer. 466 00:20:14,920 --> 00:20:19,130 Pero debido a que nunca estamos realmente acceder a lo que está en la memoria 467 00:20:19,130 --> 00:20:21,930 ubicación, no va a segfault. 468 00:20:21,930 --> 00:20:26,450 Estamos en realidad nunca mirar a lo que es en el segundo cuadro, o lo que hay en cualquier caja 469 00:20:26,450 --> 00:20:28,340 de esta matriz. 470 00:20:28,340 --> 00:20:30,980 Nosotros sólo estamos diciendo, aquí está la dirección de lo que estamos buscando y 471 00:20:30,980 --> 00:20:32,410 devolver esa dirección. 472 00:20:32,410 --> 00:20:35,700 Estamos en realidad nunca entrar en el matriz a mirar en esa ubicación. 473 00:20:35,700 --> 00:20:39,140 Y porque nunca nos tocamos la memoria, no nos metemos en problemas. 474 00:20:39,140 --> 00:20:40,760 No conseguimos una violación de segmento. 475 00:20:40,760 --> 00:20:46,225 >> Si intentamos, de nuevo, toque que memoria, toque lo que estaba en un ob - 476 00:20:46,225 --> 00:20:49,940 o un soporte de b, y suponiendo un 0 y - 477 00:20:49,940 --> 00:20:53,040 si una de 0, incluso, que sería bastante malo, porque no podemos ir 478 00:20:53,040 --> 00:20:54,090 abajo todo el camino. 479 00:20:54,090 --> 00:20:58,250 Si A y B son ambos 0, y tratamos de tocar lo que estaba allí, entonces lo haríamos 480 00:20:58,250 --> 00:20:59,110 meter en problemas. 481 00:20:59,110 --> 00:21:02,160 Pero si no tocamos lo que hay, simplemente devolvemos la dirección, es 482 00:21:02,160 --> 00:21:08,300 en realidad no va a segfault porque que le permite realizar estas operaciones. 483 00:21:08,300 --> 00:21:11,920 Sólo se enoja con usted, y se pone muy enojado, cuando tratas de tocar 484 00:21:11,920 --> 00:21:15,740 la memoria real y devolver lo que es en esa ubicación de memoria. 485 00:21:15,740 --> 00:21:17,690 >> ¿Eso tiene sentido? 486 00:21:17,690 --> 00:21:24,820 Eso es sólo una parte loca de C. Así, tenemos uno más de estos. 487 00:21:24,820 --> 00:21:27,760 488 00:21:27,760 --> 00:21:29,700 >> ¿Quién cree que es genial? 489 00:21:29,700 --> 00:21:30,280 Más personas. 490 00:21:30,280 --> 00:21:31,070 Eso es bueno. 491 00:21:31,070 --> 00:21:34,860 Vale, este es nuestro último. 492 00:21:34,860 --> 00:21:37,314 Y me gustaría que me dijera si o no crees que esto va 493 00:21:37,314 --> 00:21:38,564 hacer exactamente lo mismo. 494 00:21:38,564 --> 00:22:06,050 495 00:22:06,050 --> 00:22:07,390 >> Esto lo he escrito en alguna parte. 496 00:22:07,390 --> 00:22:08,640 No voy a memorizarlos. 497 00:22:08,640 --> 00:22:33,350 498 00:22:33,350 --> 00:22:42,900 >> Vamos a ver, 8, b 4, 4, 2, 4, 0, 8, 0, 3, 4, 4, 2, 4, 0, 4. 499 00:22:42,900 --> 00:22:46,670 Así que esta es una matriz, ahora, no una función. 500 00:22:46,670 --> 00:22:49,640 Y es una matriz porque tenemos cuadrado soportes, abrazaderas no rizado. 501 00:22:49,640 --> 00:22:52,360 Y es una matriz de qué tipo? 502 00:22:52,360 --> 00:22:55,540 503 00:22:55,540 --> 00:22:56,862 Cualquier persona, ¿no? 504 00:22:56,862 --> 00:22:57,694 >> AUDIENCIA: Sus números hexadecimales? 505 00:22:57,694 --> 00:22:59,650 >> ALTAVOZ: ¿Pero cuál es el tipo C? 506 00:22:59,650 --> 00:23:00,710 Todos ellos tienen números hexadecimales. 507 00:23:00,710 --> 00:23:01,960 ¿Cuál es el tipo C? 508 00:23:01,960 --> 00:23:04,730 509 00:23:04,730 --> 00:23:05,480 Te dice. 510 00:23:05,480 --> 00:23:07,350 >> AUDIENCIA: Es caracteres sin signo. 511 00:23:07,350 --> 00:23:09,170 >> ALTAVOZ: Derecha, caracteres sin signo. 512 00:23:09,170 --> 00:23:13,050 Y dos números hexadecimales es de un byte. 513 00:23:13,050 --> 00:23:18,540 Así que estos son 1, 2, 3, 4, 5, 6, 7, 8, 9 bytes. 514 00:23:18,540 --> 00:23:21,360 Es un conjunto de 9 bytes. 515 00:23:21,360 --> 00:23:25,530 >> Bueno, usted probablemente ya sabe la respuesta a esta pregunta. 516 00:23:25,530 --> 00:23:29,840 Pero, ¿qué crees que va a suceder cuando ejecuto esto? 517 00:23:29,840 --> 00:23:34,110 Digo, de nuevo, en mysum.c, Estoy esperando una función 518 00:23:34,110 --> 00:23:36,280 que toma dos números enteros. 519 00:23:36,280 --> 00:23:40,265 Y yo estoy en su lugar diciendo que suma es una serie de caracteres. 520 00:23:40,265 --> 00:23:42,780 521 00:23:42,780 --> 00:23:48,070 ¿Qué va a pasar cuando Corro. / MySum y hacer? 522 00:23:48,070 --> 00:23:53,230 >> Bueno, en primer lugar, la mayoría de ustedes probablemente de acuerdo en que hacer - oh no, es broma. 523 00:23:53,230 --> 00:23:54,746 ¿Qué hice mal? 524 00:23:54,746 --> 00:23:55,996 Uh oh. 525 00:23:55,996 --> 00:23:59,220 526 00:23:59,220 --> 00:24:01,160 Eso debería ser llaves. 527 00:24:01,160 --> 00:24:02,790 Así es como se inicializa una matriz. 528 00:24:02,790 --> 00:24:04,040 Mi mal. 529 00:24:04,040 --> 00:24:07,530 530 00:24:07,530 --> 00:24:11,670 >> Así que ya vimos antes de que los tipos de son una abstracción de nivel C, no una 531 00:24:11,670 --> 00:24:12,610 abstracción nivel de equipo. 532 00:24:12,610 --> 00:24:16,360 Así que la mayoría de ustedes probablemente esperaba que hacer, o asumir que haría. 533 00:24:16,360 --> 00:24:18,680 Pero lo que cuando corro. / MySum? 534 00:24:18,680 --> 00:24:19,930 ¿Qué va a pasar? 535 00:24:19,930 --> 00:24:21,790 536 00:24:21,790 --> 00:24:23,422 ¿Alguna idea? 537 00:24:23,422 --> 00:24:25,270 >> AUDIENCIA: Se va a imprimir una palabra. 538 00:24:25,270 --> 00:24:26,310 >> ALTAVOZ: Se va a imprimir una palabra. 539 00:24:26,310 --> 00:24:29,335 ¿Qué palabra? 540 00:24:29,335 --> 00:24:32,200 >> AUDIENCIA: [inaudible]. 541 00:24:32,200 --> 00:24:33,240 >> ALTAVOZ: ¿Alguna otra conjeturas? 542 00:24:33,240 --> 00:24:34,000 Aceptar, imprima una frase. 543 00:24:34,000 --> 00:24:35,130 Usted puede tener cualquier frase. 544 00:24:35,130 --> 00:24:36,240 Esa será tu lado. 545 00:24:36,240 --> 00:24:38,480 Cualquiera que tenga una suposición diferente? 546 00:24:38,480 --> 00:24:39,730 Anna, ¿cuál es su respuesta? 547 00:24:39,730 --> 00:24:42,675 548 00:24:42,675 --> 00:24:44,615 >> AUDIENCIA: Se va a imprimir - 549 00:24:44,615 --> 00:24:47,525 550 00:24:47,525 --> 00:24:49,480 dos letras, o [inaudible] una letra. 551 00:24:49,480 --> 00:24:51,460 >> ALTAVOZ: Una carta. 552 00:24:51,460 --> 00:24:53,260 >> AUDIENCIA: ¿Puedo contar cómo muchos [inaudible]? 553 00:24:53,260 --> 00:24:55,426 >> ALTAVOZ: Nueve. 554 00:24:55,426 --> 00:24:56,640 Bueno, yo voy a ejecutarlo. 555 00:24:56,640 --> 00:24:58,650 Hace exactamente lo mismo. 556 00:24:58,650 --> 00:25:00,190 Añade dos números juntos. 557 00:25:00,190 --> 00:25:02,740 Bueno, vamos a pasar los dos argumentos. 558 00:25:02,740 --> 00:25:03,710 No toma argumentos. 559 00:25:03,710 --> 00:25:06,080 Así que no sé de dónde pudo posiblemente obtener estos argumentos. 560 00:25:06,080 --> 00:25:07,710 Pero vamos a pasar a 100 y 0. 561 00:25:07,710 --> 00:25:09,200 Y añade 100 y 0. 562 00:25:09,200 --> 00:25:10,220 Eso es una locura. 563 00:25:10,220 --> 00:25:12,280 Creo que sí. 564 00:25:12,280 --> 00:25:14,480 >> Negativo 4, que funciona también. 565 00:25:14,480 --> 00:25:15,650 Puedes hacer lo que quieras. 566 00:25:15,650 --> 00:25:17,920 Esta es una función de suma igualmente válidas. 567 00:25:17,920 --> 00:25:19,640 Esta es una función de suma. 568 00:25:19,640 --> 00:25:21,510 Pero, no, usted está diciendo que es una matriz de bytes. 569 00:25:21,510 --> 00:25:23,570 Entonces, ¿qué está pasando aquí? 570 00:25:23,570 --> 00:25:27,240 >> Así que, de nuevo, vamos a volver a esta idea que decíamos al principio. 571 00:25:27,240 --> 00:25:32,050 Se pasa de código de nivel C, para el montaje lenguaje, a unos y ceros. 572 00:25:32,050 --> 00:25:33,050 Este es hexadecimal. 573 00:25:33,050 --> 00:25:35,780 Pero esto es sólo una montón de unos y ceros. 574 00:25:35,780 --> 00:25:39,230 Esto es 72 unos y ceros, ¿verdad? 575 00:25:39,230 --> 00:25:40,550 72 unos y ceros. 576 00:25:40,550 --> 00:25:42,160 9 bytes. 577 00:25:42,160 --> 00:25:43,740 Cada byte tiene 8 bits. 578 00:25:43,740 --> 00:25:44,760 Cada bit es un uno o un cero. 579 00:25:44,760 --> 00:25:45,920 Así que 72 unos o ceros. 580 00:25:45,920 --> 00:25:48,780 Acabo de ellos escritos como este - en lugar de escribirlo como una gran cantidad de 581 00:25:48,780 --> 00:25:49,730 unos y ceros. 582 00:25:49,730 --> 00:25:53,560 >> Pero esto va a pasar de nivel C idioma, para el montaje 583 00:25:53,560 --> 00:25:54,620 idioma, a código. 584 00:25:54,620 --> 00:25:59,020 Y esto mostrara en el código, en alguna parte, estos 72 unos y ceros 585 00:25:59,020 --> 00:26:00,910 que he escrito aquí. 586 00:26:00,910 --> 00:26:03,610 Así en algún lugar en que - 587 00:26:03,610 --> 00:26:04,850 vamos a ir aquí - 588 00:26:04,850 --> 00:26:11,240 en algún lugar de MySum, el programa, hay son estos 72 unos y ceros que he 589 00:26:11,240 --> 00:26:14,930 por escrito y le dijo que para escribir. 590 00:26:14,930 --> 00:26:19,331 >> Ahora, cualquier conjetura sobre lo que los 72 unos y ceros significan? 591 00:26:19,331 --> 00:26:21,240 >> AUDIENCIA: Probablemente lo mismo cosa que volver a más b. 592 00:26:21,240 --> 00:26:22,890 >> ALTAVOZ: Probablemente lo mismo cosa que volver a más b. 593 00:26:22,890 --> 00:26:23,730 Vamos a verificar eso. 594 00:26:23,730 --> 00:26:25,210 Vamos a averiguar cómo hice esto. 595 00:26:25,210 --> 00:26:31,840 >> Así que si vas de vuelta aquí, te digo para ejecutar este comando, objdump-S 596 00:26:31,840 --> 00:26:34,290 sumfunction.o. 597 00:26:34,290 --> 00:26:36,230 Vamos a ejecutarlo. objdump - 598 00:26:36,230 --> 00:26:37,990 obj, volcar. 599 00:26:37,990 --> 00:26:39,840 Básicamente se me puede dar lo que yo quiero ver. 600 00:26:39,840 --> 00:26:40,840 Me puede dar el lenguaje ensamblador. 601 00:26:40,840 --> 00:26:42,730 Me puede dar los unos y ceros. 602 00:26:42,730 --> 00:26:43,840 Tiene un montón de banderas. 603 00:26:43,840 --> 00:26:45,860 Este es el que vamos para utilizar por el momento. 604 00:26:45,860 --> 00:26:46,980 Dot - 605 00:26:46,980 --> 00:26:48,810 como podéis ver en las diapositivas - 606 00:26:48,810 --> 00:26:53,840 capital de la rociada S dice, intersperse, código fuente - 607 00:26:53,840 --> 00:26:58,410 esta línea es de C - con el conjunto código y con los unos y ceros. 608 00:26:58,410 --> 00:27:00,350 Y vamos a correr en sumfunction.o. 609 00:27:00,350 --> 00:27:01,410 Debido a que va a ser más fácil de ver. 610 00:27:01,410 --> 00:27:02,670 Una vez más - hmm? 611 00:27:02,670 --> 00:27:04,700 >> AUDIENCIA: Usted deletreó mal. 612 00:27:04,700 --> 00:27:05,930 >> ALTAVOZ: Pero de hecho voy para desactivarla por un segundo. 613 00:27:05,930 --> 00:27:09,160 Estoy primero va a abrir sólo sumfuntion.o. 614 00:27:09,160 --> 00:27:11,170 >> AUDIENCIA: Usted deletreó mal la primera vez. 615 00:27:11,170 --> 00:27:12,420 >> ALTAVOZ: Classic. 616 00:27:12,420 --> 00:27:14,790 617 00:27:14,790 --> 00:27:15,480 Suma - 618 00:27:15,480 --> 00:27:16,680 que es una palabra difícil, sin embargo. 619 00:27:16,680 --> 00:27:19,050 Usted se sorprendería. 620 00:27:19,050 --> 00:27:21,560 OK, así que esto es sumfunction.o. 621 00:27:21,560 --> 00:27:24,494 622 00:27:24,494 --> 00:27:26,220 Ni siquiera pude decirle. 623 00:27:26,220 --> 00:27:30,250 Hay un montón de ceros, claramente mucho de ceros, y no hay otra 624 00:27:30,250 --> 00:27:31,930 cosas que no son ceros. 625 00:27:31,930 --> 00:27:33,220 Pero todo ceros. 626 00:27:33,220 --> 00:27:35,120 Parece que hay algunos más. 627 00:27:35,120 --> 00:27:36,810 Así que, claramente, esto es difícil de leer. 628 00:27:36,810 --> 00:27:39,320 Ese es el lenguaje binario. 629 00:27:39,320 --> 00:27:40,710 >> Ahora vamos a abrirlo - 630 00:27:40,710 --> 00:27:50,190 631 00:27:50,190 --> 00:27:52,350 ¿qué? 632 00:27:52,350 --> 00:27:53,600 ¿Qué estoy haciendo mal? 633 00:27:53,600 --> 00:27:56,955 634 00:27:56,955 --> 00:27:58,434 ¿Escribí correctamente? 635 00:27:58,434 --> 00:28:09,865 636 00:28:09,865 --> 00:28:11,120 OK, esto es incómodo. 637 00:28:11,120 --> 00:28:37,560 638 00:28:37,560 --> 00:28:40,158 Necesito un segundo para entender lo que estoy haciendo mal. 639 00:28:40,158 --> 00:28:46,030 640 00:28:46,030 --> 00:28:49,310 Esa es una error. 641 00:28:49,310 --> 00:28:50,560 Eso es raro. 642 00:28:50,560 --> 00:28:58,080 643 00:28:58,080 --> 00:29:01,800 Oh, es por eso. 644 00:29:01,800 --> 00:29:09,880 >> Voy a volver a nuestra inicial uno, para que podamos mirar el 645 00:29:09,880 --> 00:29:10,560 código objeto de este. 646 00:29:10,560 --> 00:29:13,390 Porque no hay realmente va a ser cualquier cosa cuando sólo hay que poner el 647 00:29:13,390 --> 00:29:14,640 unos y ceros pulg 648 00:29:14,640 --> 00:29:29,000 649 00:29:29,000 --> 00:29:30,200 Eso es. 650 00:29:30,200 --> 00:29:32,425 OK, así que todo el mundo puede ver esto. 651 00:29:32,425 --> 00:29:38,130 Esta función, como ya he dicho, apagar las líneas C - 652 00:29:38,130 --> 00:29:39,060 líneas de código fuente - 653 00:29:39,060 --> 00:29:41,000 con unas instrucciones de montaje. 654 00:29:41,000 --> 00:29:42,760 >> Aquí está nuestra línea de código fuente. 655 00:29:42,760 --> 00:29:44,910 Aquí hay uno, aquí es otra. 656 00:29:44,910 --> 00:29:46,540 He aquí las instrucciones de montaje. 657 00:29:46,540 --> 00:29:47,820 Eso es lo que parecen. 658 00:29:47,820 --> 00:29:49,010 Instrucciones de montaje - 659 00:29:49,010 --> 00:29:51,530 usted puede aprender más de ellos si se toma otras clases de CS, pero son 660 00:29:51,530 --> 00:29:53,500 en general, una instrucción. 661 00:29:53,500 --> 00:29:57,940 Y a continuación, una fuente y un destino. 662 00:29:57,940 --> 00:30:02,740 >> Y entonces aquí está el código binario que corresponde a la asamblea 663 00:30:02,740 --> 00:30:04,940 instrucciones. 664 00:30:04,940 --> 00:30:09,760 Así como usted puede ver, esta función suma, al final del día, es de tres 665 00:30:09,760 --> 00:30:10,950 instrucciones de montaje. 666 00:30:10,950 --> 00:30:12,870 Sólo tres. 667 00:30:12,870 --> 00:30:14,180 Uno mov - 668 00:30:14,180 --> 00:30:16,740 este m-o-v representa a Move. 669 00:30:16,740 --> 00:30:17,780 Añadir stands para Agregar. 670 00:30:17,780 --> 00:30:20,440 Y r-e-t significa retorno. 671 00:30:20,440 --> 00:30:22,540 Así que un mov, un add, una devolución. 672 00:30:22,540 --> 00:30:27,970 Y éstos, por aquí, son los ceros y los que corresponden a ese código. 673 00:30:27,970 --> 00:30:31,100 >> Así que esos ceros y unos, si se quiere Sabes esos, sólo puede poner 674 00:30:31,100 --> 00:30:32,140 aquellos directamente in 675 00:30:32,140 --> 00:30:34,130 Y luego va a hacer el exactamente lo mismo. 676 00:30:34,130 --> 00:30:37,260 Debido a que, al final del día, todos que está ejecutando es una larga serie de 677 00:30:37,260 --> 00:30:38,480 ceros y unos. 678 00:30:38,480 --> 00:30:40,700 Y eso es lo que su código es en realidad. 679 00:30:40,700 --> 00:30:41,770 >> Y la razón - 680 00:30:41,770 --> 00:30:43,680 vamos a ver una cosa. 681 00:30:43,680 --> 00:30:45,440 ¿Tenía abierto el makefile? 682 00:30:45,440 --> 00:30:48,510 Así que si nos fuimos de nuevo a lanzarse cero, cero hasta aquí - 683 00:30:48,510 --> 00:30:52,220 684 00:30:52,220 --> 00:30:57,300 lo siento, el capital o el capital o cero, no es cero, cero. 685 00:30:57,300 --> 00:31:01,810 Y LOGRÓ, sería seguirá funcionando igual. 686 00:31:01,810 --> 00:31:05,420 Pero ahora te das cuenta de que hay una mucho más instrucciones de montaje. 687 00:31:05,420 --> 00:31:09,090 Eso es porque, de nuevo, le pregunté a la compilador que no haga ninguna optimización. 688 00:31:09,090 --> 00:31:12,800 >> Así que todavía podía tomar todos estos ceros y unos, y tirarlos a, 689 00:31:12,800 --> 00:31:13,390 y que iba a funcionar. 690 00:31:13,390 --> 00:31:15,850 Acabo de hacer las optimizaciones, porque que es un poco más fácil, entonces, 691 00:31:15,850 --> 00:31:17,310 para escribir la matriz. 692 00:31:17,310 --> 00:31:19,730 Pero esto iba a funcionar igual de bien. 693 00:31:19,730 --> 00:31:24,460 >> Bien, vamos a hacer una última cosa, porque creo que es la parte más fresca. 694 00:31:24,460 --> 00:31:27,410 A pesar de que todo el mundo está claramente Ya soplado y sin palabras. 695 00:31:27,410 --> 00:31:30,520 696 00:31:30,520 --> 00:31:31,670 Nuestras mentes se han apagado. 697 00:31:31,670 --> 00:31:32,920 [Inaudible] 698 00:31:32,920 --> 00:31:47,580 699 00:31:47,580 --> 00:31:51,520 >> Así, estos son de una clase diferente de CS, que es muy interesante, 700 00:31:51,520 --> 00:31:52,970 que he tomado - 701 00:31:52,970 --> 00:31:54,140 CS61. 702 00:31:54,140 --> 00:31:55,910 Yo le animo a tomarlo. 703 00:31:55,910 --> 00:31:58,990 Pero lo bueno de este hecho, que las cosas son sólo ceros y unos, 704 00:31:58,990 --> 00:32:01,270 son que todo está ceros y unos. 705 00:32:01,270 --> 00:32:05,330 >> Así que usted puede tomar un archivo que tiene el ceros correctos y que usted desea 706 00:32:05,330 --> 00:32:10,390 en algún lugar en el mismo, y el uso de esa sección de ceros y unos en función suma. 707 00:32:10,390 --> 00:32:11,480 >> ¿Qué quiero decir con eso? 708 00:32:11,480 --> 00:32:15,755 Quiero decir que puedes tener un archivo de imagen tiene la serie correcta de ceros y 709 00:32:15,755 --> 00:32:17,120 queridos, que imprimen algo a una imagen. 710 00:32:17,120 --> 00:32:20,070 Y un programa podría interpretar es un imagen, pero eres capaz de interpretarlo, si 711 00:32:20,070 --> 00:32:22,040 que quieres, como una función de suma. 712 00:32:22,040 --> 00:32:27,010 >> Así que si queríamos abrir, para ejemplo, esta imagen. 713 00:32:27,010 --> 00:32:37,440 Vamos, Hello Kitty. 714 00:32:37,440 --> 00:32:38,810 Wonderful little imagen. 715 00:32:38,810 --> 00:32:42,260 Aquí existe esa cadena de ceros y unos. 716 00:32:42,260 --> 00:32:45,500 Esos 72 ceros y unos existir en esta imagen. 717 00:32:45,500 --> 00:32:47,695 >> Así que lo que puedo hacer, entonces, es escribir - 718 00:32:47,695 --> 00:32:50,510 719 00:32:50,510 --> 00:32:51,760 Tengo que recordar dónde están. 720 00:32:51,760 --> 00:32:54,550 721 00:32:54,550 --> 00:32:55,720 Voy a encontrar eso en un segundo. 722 00:32:55,720 --> 00:32:57,840 Pero lo hacemos - 723 00:32:57,840 --> 00:32:59,440 déjame averiguar dónde están. 724 00:32:59,440 --> 00:33:00,020 Uno seg. 725 00:33:00,020 --> 00:33:01,270 Vamos a hacer - 726 00:33:01,270 --> 00:33:05,800 727 00:33:05,800 --> 00:33:07,240 >> AUDIENCIA: [inaudible]. 728 00:33:07,240 --> 00:33:08,490 >> ALTAVOZ: Gracias. 729 00:33:08,490 --> 00:33:24,240 730 00:33:24,240 --> 00:33:28,740 Así que si ejecutamos este programa, que en cambio lee en un archivo, entonces se va 731 00:33:28,740 --> 00:33:33,160 a este índice en el archivo. 732 00:33:33,160 --> 00:33:35,500 Y entonces, de nuevo, al igual que MySum, toma dos números. 733 00:33:35,500 --> 00:33:41,410 Podemos añadir números exactamente igual que que estábamos haciendo antes, lo que va a 734 00:33:41,410 --> 00:33:44,850 mostrar cómo el hecho de que, al final del día, todas estas cosas son 735 00:33:44,850 --> 00:33:45,350 ceros y unos. 736 00:33:45,350 --> 00:33:48,170 Y es sólo la forma en que usted elija interpretarlos. 737 00:33:48,170 --> 00:33:50,770 >> Y si realmente se ven en esta imagen - 738 00:33:50,770 --> 00:33:52,930 vamos a ampliar un poco. 739 00:33:52,930 --> 00:33:53,720 ¿Todos pueden verlo? 740 00:33:53,720 --> 00:33:57,570 Se dará cuenta de aquí, hay alguna mancha extraña. 741 00:33:57,570 --> 00:34:00,130 742 00:34:00,130 --> 00:34:02,290 Vamos a ir - esta es la imagen original. 743 00:34:02,290 --> 00:34:04,540 Se dará cuenta de que aquí no hay mancha. 744 00:34:04,540 --> 00:34:08,420 Ese es el código de la función suma, es esa pequeña mancha ahí. 745 00:34:08,420 --> 00:34:13,449 >> Y, de hecho, una vez más, si usted aprende más sobre esto, te darás cuenta de que este 746 00:34:13,449 --> 00:34:18,270 Hello Kitty, que tiene incluso una mayor mancha, tiene código que puede hacerse cargo de un 747 00:34:18,270 --> 00:34:21,800 ordenador si no está protegida apropiadamente. 748 00:34:21,800 --> 00:34:23,920 Así que en realidad se puede ejecutar este. 749 00:34:23,920 --> 00:34:25,380 Yo no voy a correr ahora mismo. 750 00:34:25,380 --> 00:34:30,600 Pero se puede ejecutar este Hola Imagen del gatito, y que puede 751 00:34:30,600 --> 00:34:32,429 hacerse cargo de su equipo. 752 00:34:32,429 --> 00:34:35,159 >> Así que eso es todo por la demostración. 753 00:34:35,159 --> 00:34:38,560 ¿Alguien tiene alguna pregunta, comentarios, inquietudes? 754 00:34:38,560 --> 00:34:39,515 Creo que esto es fascinante. 755 00:34:39,515 --> 00:34:41,500 Esto me inspiró a aprender más. 756 00:34:41,500 --> 00:34:44,980 Le recomiendo, si estás interesado en absoluto en CS, habla conmigo. 757 00:34:44,980 --> 00:34:50,250 A pesar de que soy un Estudios Sociales Concentrador, soy un CS, secundaria, por lo que 758 00:34:50,250 --> 00:34:52,340 Todavía sé un poco. 759 00:34:52,340 --> 00:34:53,810 Pero yo sé lo que sin duda clases que debe tomar. 760 00:34:53,810 --> 00:34:57,940 Creo que es todo muy interesante, y animo a usted, sin duda, a 761 00:34:57,940 --> 00:35:00,330 obtener más información si está interesado. 762 00:35:00,330 --> 00:35:02,090 >> Está bien, tengo una última cosa. 763 00:35:02,090 --> 00:35:05,530 764 00:35:05,530 --> 00:35:05,870 Lo siento. 765 00:35:05,870 --> 00:35:06,460 ¿Alguna pregunta? 766 00:35:06,460 --> 00:35:10,010 No me detuve a esperar si alguien tenía alguna pregunta acerca de eso. 767 00:35:10,010 --> 00:35:13,220 768 00:35:13,220 --> 00:35:16,900 >> ¿Alguien va a ser un concentrador de CS? 769 00:35:16,900 --> 00:35:18,580 O pensar en ello? 770 00:35:18,580 --> 00:35:20,730 Uno, dos, tres, cuatro. 771 00:35:20,730 --> 00:35:21,620 Uno - sólo uno. 772 00:35:21,620 --> 00:35:24,680 Anna es la única parte que es planteado con autoridad. 773 00:35:24,680 --> 00:35:27,640 774 00:35:27,640 --> 00:35:29,390 OK, eso es genial. 775 00:35:29,390 --> 00:35:30,110 Assam, ¿qué vas a hacer? 776 00:35:30,110 --> 00:35:33,220 >> AUDIENCIA: [inaudible]. 777 00:35:33,220 --> 00:35:33,910 >> ALTAVOZ: Constantino? 778 00:35:33,910 --> 00:35:34,990 >> AUDIENCIA: Física. 779 00:35:34,990 --> 00:35:36,720 >> ALTAVOZ: Whoa, eso fue rápido. 780 00:35:36,720 --> 00:35:40,770 Usted tuvo una mala experiencia en CS50? 781 00:35:40,770 --> 00:35:42,015 [Inaudible], ¿qué vas a hacer? 782 00:35:42,015 --> 00:35:42,980 >> AUDIENCIA: No tengo ni idea. 783 00:35:42,980 --> 00:35:43,924 >> ALTAVOZ: Curt? 784 00:35:43,924 --> 00:35:45,900 >> AUDIENCIA: Econ o CS. 785 00:35:45,900 --> 00:35:46,910 >> ALTAVOZ: Econ o CS. 786 00:35:46,910 --> 00:35:47,840 Tom? 787 00:35:47,840 --> 00:35:48,385 >> AUDIENCIA: Estoy haciendo Stat. 788 00:35:48,385 --> 00:35:48,950 >> ALTAVOZ: Stat? 789 00:35:48,950 --> 00:35:50,100 Aceptar. 790 00:35:50,100 --> 00:35:51,000 ¿Qué eres? 791 00:35:51,000 --> 00:35:51,310 >> AUDIENCIA: Me? 792 00:35:51,310 --> 00:35:51,750 >> ALTAVOZ: Si. 793 00:35:51,750 --> 00:35:52,190 >> AUDIENCIA: Stat. 794 00:35:52,190 --> 00:35:52,520 >> ALTAVOZ: Stat. 795 00:35:52,520 --> 00:35:53,500 Oh, ahí lo tienes. 796 00:35:53,500 --> 00:35:55,200 Tom, habla con Alden. 797 00:35:55,200 --> 00:35:56,932 Emily, ¿qué eres? 798 00:35:56,932 --> 00:35:57,396 >> AUDIENCIA: Biomédica - 799 00:35:57,396 --> 00:36:00,178 >> ALTAVOZ: ¿Está usted en esta sección? 800 00:36:00,178 --> 00:36:03,040 >> AUDIENCIA: No. 801 00:36:03,040 --> 00:36:04,530 >> ALTAVOZ: OK, eso es Emily. 802 00:36:04,530 --> 00:36:05,670 Ella es mi amiga. 803 00:36:05,670 --> 00:36:10,080 Es evidente que no es tan bueno de un amigo, porque ella me da un mal rato. 804 00:36:10,080 --> 00:36:13,223 Usted podría ser más amable conmigo delante de todos, mi estudiante - 805 00:36:13,223 --> 00:36:14,580 >> AUDIENCIA: Estoy haciendo tu guía Q. 806 00:36:14,580 --> 00:36:14,870 >> ALTAVOZ: ¿En serio? 807 00:36:14,870 --> 00:36:15,510 Uh oh. 808 00:36:15,510 --> 00:36:17,224 Bueno, eres increíble. 809 00:36:17,224 --> 00:36:19,380 Te amo tanto. 810 00:36:19,380 --> 00:36:20,600 Oh boy. 811 00:36:20,600 --> 00:36:28,320 >> De todos modos, yo, ayer por la noche, como todo - 812 00:36:28,320 --> 00:36:32,220 Estoy seguro de que todo el mundo parece realmente subrayado en estos momentos. 813 00:36:32,220 --> 00:36:35,970 No sé, son de primer año - son ustedes siente estresado? 814 00:36:35,970 --> 00:36:36,855 Me siento estresado. 815 00:36:36,855 --> 00:36:37,980 Era como, te vas a casa Acción de Gracias. 816 00:36:37,980 --> 00:36:40,660 Eres como, voy a hacer todas estas cosas. 817 00:36:40,660 --> 00:36:41,530 >> AUDIENCIA: Es muy diferente. 818 00:36:41,530 --> 00:36:42,560 >> ALTAVOZ: Sí, y vuelve. 819 00:36:42,560 --> 00:36:45,290 Jeff, que no te sientes de esa manera? 820 00:36:45,290 --> 00:36:46,610 >> AUDIENCIA: Acabo de pensar Yo haría un poco. 821 00:36:46,610 --> 00:36:48,660 >> ALTAVOZ: OK, muy bien. 822 00:36:48,660 --> 00:36:51,650 Así que volver, y no tengo hecho nada. 823 00:36:51,650 --> 00:36:53,260 Y todo es muy estresante. 824 00:36:53,260 --> 00:36:55,640 Y a mí se refiere, genuinamente interesado, acerca de si soy o no 825 00:36:55,640 --> 00:36:57,380 va a terminar todo lo que tengo que hacerlo. 826 00:36:57,380 --> 00:37:01,750 Pero ayer por la noche, no se destacó, Yo estaba un poco triste. 827 00:37:01,750 --> 00:37:04,520 Así que escribí en mi diario acerca de lo que yo estaba triste por. 828 00:37:04,520 --> 00:37:08,020 Y yo estaba triste por esta sección en esta clase llega a su fin. 829 00:37:08,020 --> 00:37:11,100 >> Así que yo sólo iba a leer para ustedes un pequeño fragmento de mi diario, 830 00:37:11,100 --> 00:37:12,950 de la noche anterior. 831 00:37:12,950 --> 00:37:17,400 ¿Puedo obtener algunas servilletas, algunos tejidos de Tom? 832 00:37:17,400 --> 00:37:18,040 No, voy a llorar. 833 00:37:18,040 --> 00:37:19,720 Yo no lloro. 834 00:37:19,720 --> 00:37:22,030 No es que no puedes llorar, Es sólo que no lloro. 835 00:37:22,030 --> 00:37:24,040 Ni siquiera sé si mi lágrima glándulas trabajadas - los conductos lagrimales. 836 00:37:24,040 --> 00:37:25,630 No he llorado en mucho tiempo. 837 00:37:25,630 --> 00:37:26,510 >> AUDIENCIA: [inaudible]. 838 00:37:26,510 --> 00:37:28,920 >> ALTAVOZ: OK, gracias. 839 00:37:28,920 --> 00:37:30,070 Bueno, hay un pequeño prólogo - 840 00:37:30,070 --> 00:37:32,480 hay algunas otras partes de mi diario entrada, porque trato de diario cada 841 00:37:32,480 --> 00:37:33,600 noche antes de llegar a la cama. 842 00:37:33,600 --> 00:37:34,900 Le recomiendo un diario. 843 00:37:34,900 --> 00:37:38,600 Se le ayuda a procesar las cosas, y también ser muy agradecidos por su día. 844 00:37:38,600 --> 00:37:43,063 Y eso hace que sea mucho más fácil mirar de vuelta en su día y darse cuenta de que 845 00:37:43,063 --> 00:37:44,240 había un montón de buenas cosas que sucedieron. 846 00:37:44,240 --> 00:37:47,240 Aunque usted se sienta muy estresado en la noche o muy molesto, o 847 00:37:47,240 --> 00:37:49,022 realmente triste o cansada. 848 00:37:49,022 --> 00:37:50,272 >> Oh, Dios mío. 849 00:37:50,272 --> 00:37:52,546 850 00:37:52,546 --> 00:37:54,400 Ni siquiera sé si está escrito que bien porque yo no lo corrija. 851 00:37:54,400 --> 00:37:55,780 Pero vamos a leerlo. 852 00:37:55,780 --> 00:37:59,950 Por lo general no leo mi revista, obviamente. 853 00:37:59,950 --> 00:38:03,720 >> "Mañana me voy a enseñar mi último Sección CS50 del año. 854 00:38:03,720 --> 00:38:05,860 Es una locura lo rápido que vuela. 855 00:38:05,860 --> 00:38:09,900 Sin embargo, me sorprende lo diferente mi experiencia en la enseñanza de este año fue 856 00:38:09,900 --> 00:38:11,365 que cuando yo era un estudiante de segundo año. 857 00:38:11,365 --> 00:38:14,120 Para empezar, yo definitivamente conocer mejor el material. 858 00:38:14,120 --> 00:38:16,820 Pero no le digas a mi primera cohorte de los estudiantes que. 859 00:38:16,820 --> 00:38:20,030 Más importante, sin embargo, me di cuenta que la alegría que viene de pie 860 00:38:20,030 --> 00:38:23,160 en frente de una habitación de lo que comienza como extraños, pero termina siendo, en 861 00:38:23,160 --> 00:38:27,150 menos, amigos de Facebook, es no es un golpe de suerte de primer año. 862 00:38:27,150 --> 00:38:29,970 Más bien, es de saber que, en alguna manera, usted está ayudando a 863 00:38:29,970 --> 00:38:32,980 talentoso, pensativo, agradable, y personas apasionadas aprenden un poco más 864 00:38:32,980 --> 00:38:34,750 acerca de la informática. 865 00:38:34,750 --> 00:38:37,480 >> Estás cambiando la bombilla que sólo un poco en su cuenca, por lo que es capaz 866 00:38:37,480 --> 00:38:42,120 a brillar más que tú, o ellos, podría haber imaginado al inicio del semestre. 867 00:38:42,120 --> 00:38:45,390 Estás ayudando a convertir los ceños fruncidos de cabeza hacia abajo y haciendo preguntas que 868 00:38:45,390 --> 00:38:49,240 proporcionar apoyo, pero todavía permiten a los estudiantes a ponerse de pie por su cuenta. 869 00:38:49,240 --> 00:38:52,190 >> Ciertamente, no es una exageración decir que esta sección es mi favorito 870 00:38:52,190 --> 00:38:53,190 parte de la semana. 871 00:38:53,190 --> 00:38:57,930 O incluso que no me atrevo a decir, eso es todo, a las 5:30 cada semana, sabiendo 872 00:38:57,930 --> 00:39:00,640 que va a ser demasiado largo hasta que nos encontremos de nuevo. 873 00:39:00,640 --> 00:39:02,740 >> Sin embargo, estoy muy agradecido a todo el que me ha dado esta 874 00:39:02,740 --> 00:39:05,010 oportunidad de devolver algo a los demás. 875 00:39:05,010 --> 00:39:07,340 Para David, por su paciencia y confianza. 876 00:39:07,340 --> 00:39:11,040 Para el equipo de filmación y producción, por hacerme ver algo respetable. 877 00:39:11,040 --> 00:39:15,380 Y, lo más importante, a mis alumnos, sin los cuales no tendría ningún motivo para 878 00:39:15,380 --> 00:39:17,890 pasar 10 horas para averiguar la mejor manera de dibujar los punteros, o diseñar un 879 00:39:17,890 --> 00:39:20,330 tabla de los delfines, a través de JavaScript. 880 00:39:20,330 --> 00:39:22,620 Como siempre, ha sido una bendición. " 881 00:39:22,620 --> 00:39:25,420 >> Así que con eso, gracias chicos. 882 00:39:25,420 --> 00:39:29,000 Nos vemos todos en la feria CS50, y el hackathon, si estás ahí. 883 00:39:29,000 --> 00:39:32,020 Y si usted tiene alguna pregunta, voy a pegar alrededor hasta que no haya más. 884 00:39:32,020 --> 00:39:33,760 Pero le doy las gracias chicos por un año maravilloso. 885 00:39:33,760 --> 00:39:37,290 >> [Aplausos] 886 00:39:37,290 --> 00:39:38,540 >> ALTAVOZ: Podría llorar. 887 00:39:38,540 --> 00:39:40,800