1 00:00:00,000 --> 00:00:08,090 2 00:00:08,090 --> 00:00:09,810 >> JASON HIRSCHHORN: Bienvenido, todo el mundo, hasta la semana 10. 3 00:00:09,810 --> 00:00:15,130 Esta es una semana emocionante porque mañana es la prueba 1, que vamos a conseguir 4 00:00:15,130 --> 00:00:16,400 a en un segundo. 5 00:00:16,400 --> 00:00:21,770 Hoy en la sección, vamos a ir más de algunos recursos para la prueba, y 6 00:00:21,770 --> 00:00:24,890 a continuación, voy a responder a todas y cada una preguntas que ustedes tienen. 7 00:00:24,890 --> 00:00:27,880 Y finalmente terminaremos con algunos problemas de práctica. 8 00:00:27,880 --> 00:00:30,940 >> Podemos pasar toda la sección responder a las preguntas. 9 00:00:30,940 --> 00:00:33,240 Podemos pasar toda la sección pasando por los problemas de la práctica. 10 00:00:33,240 --> 00:00:36,890 No hacemos más que expandirse para llenar el el espacio y el tiempo que tenemos. 11 00:00:36,890 --> 00:00:40,590 >> Así que puse esta lista cada semana, pero es particularmente importante esta semana. 12 00:00:40,590 --> 00:00:44,980 Para el estudio, si no lo ha comenzado ya, oh chico. 13 00:00:44,980 --> 00:00:46,400 Pero es de esperar que haya comenzado ya. 14 00:00:46,400 --> 00:00:50,710 Y usted va a través de los materiales y los recursos listados aquí. 15 00:00:50,710 --> 00:00:54,300 Yo recomendaría altamente un número de estos. 16 00:00:54,300 --> 00:00:58,780 >> En particular, los apuntes de clase son muy importante y útil. 17 00:00:58,780 --> 00:01:02,880 El study.cs50.net proporciona una gran introducción a una gran cantidad de 18 00:01:02,880 --> 00:01:04,250 los temas que cubren. 19 00:01:04,250 --> 00:01:07,810 También tiene un gran practicar problemas. 20 00:01:07,810 --> 00:01:11,260 Y después, Google es genial, también. 21 00:01:11,260 --> 00:01:12,360 No sé lo que tendrá que utilizar para. 22 00:01:12,360 --> 00:01:14,090 Pero usar Google, también. 23 00:01:14,090 --> 00:01:16,680 >> Llegar a mí si usted tiene cualquiera preguntas, comentarios o inquietudes. 24 00:01:16,680 --> 00:01:19,420 Mirar por encima de la sesión de revisión diapositivas de la noche anterior. 25 00:01:19,420 --> 00:01:21,540 O, si usted tiene algún tiempo, ver el vídeo. 26 00:01:21,540 --> 00:01:24,930 Proporcionan una gran cantidad de útiles material e información. 27 00:01:24,930 --> 00:01:29,730 Y tratar de cubrir si no todas, muchas de los temas que hemos cubierto y que usted 28 00:01:29,730 --> 00:01:32,610 podría ver en el cuestionario. 29 00:01:32,610 --> 00:01:35,590 >> Hablando de la prueba, que será mañana. 30 00:01:35,590 --> 00:01:37,260 Es 75 minutos. 31 00:01:37,260 --> 00:01:40,740 Muchos de ustedes lo están tomando en 1 en punto, y algunos de ustedes son 32 00:01:40,740 --> 00:01:42,740 llevándolo a las 5:30. 33 00:01:42,740 --> 00:01:45,300 Por el momento usted está tomando y la ubicación que está tomando, asegúrese 34 00:01:45,300 --> 00:01:49,400 compruebas el documento en la página principal CS50.net. 35 00:01:49,400 --> 00:01:54,340 >> Recuerde que usted puede conseguir uno de 8 1/2 en un 11 por hoja para llevar con usted. 36 00:01:54,340 --> 00:01:57,310 A menudo, la gente no utiliza este hoja en absoluto durante la prueba. 37 00:01:57,310 --> 00:01:59,740 Pero, en realidad, es un increíblemente herramienta de estudio útil. 38 00:01:59,740 --> 00:02:04,370 Así armando esa hoja se lo Pasé probablemente tres o cuatro horas 39 00:02:04,370 --> 00:02:07,110 haciendo cuando estaba estudiando para CS50, y que era sin duda el más útil 40 00:02:07,110 --> 00:02:08,740 manera de que pudiera estudiar para el examen. 41 00:02:08,740 --> 00:02:10,949 Así que incluso si usted tiene alguna otra de las personas guías de estudio a la vista y 42 00:02:10,949 --> 00:02:14,740 utilizar como referencias, le recomiendo hacer su propia guía de estudio, poniendo 43 00:02:14,740 --> 00:02:15,490 esas cosas juntas. 44 00:02:15,490 --> 00:02:17,335 Eso realmente ayuda a aprender todo el material. 45 00:02:17,335 --> 00:02:20,270 46 00:02:20,270 --> 00:02:24,810 >> Por último, pero no menos importante en esta sección, después de la prueba de mañana hay una 47 00:02:24,810 --> 00:02:25,940 más conferencias - 48 00:02:25,940 --> 00:02:26,960 el próximo lunes. 49 00:02:26,960 --> 00:02:30,430 Hay una sección más, no el próximo Martes antes de Acción de Gracias, pero el 50 00:02:30,430 --> 00:02:31,630 Martes después de eso. 51 00:02:31,630 --> 00:02:36,600 Nos reuniremos juntos para una final adiós partido y también hacer un poco de fresco 52 00:02:36,600 --> 00:02:41,530 cosas para conseguir que ustedes se entusiasmen con la otros estudios en ciencias de la computación. 53 00:02:41,530 --> 00:02:45,040 >> Hay un proyecto más, uno más justo, uno más hackathon. 54 00:02:45,040 --> 00:02:47,900 Estamos llegando al final de CS50, que es emocionante - 55 00:02:47,900 --> 00:02:50,950 sino también, si usted es como la yo, un poco triste. 56 00:02:50,950 --> 00:02:53,950 Antes de pasar, ¿alguien tiene alguna pregunta acerca de lo que 57 00:02:53,950 --> 00:02:55,200 que hemos cubierto hasta ahora? 58 00:02:55,200 --> 00:03:02,760 59 00:03:02,760 --> 00:03:08,730 >> OK, bueno vamos a repasar algunas de las preguntas que tiene para la prueba y temas 60 00:03:08,730 --> 00:03:09,960 podríamos cubrir. 61 00:03:09,960 --> 00:03:11,540 Así que esta es una lista que he creado. 62 00:03:11,540 --> 00:03:15,500 No es de ninguna manera exhaustiva, pero esperemos que refrescar la memoria si 63 00:03:15,500 --> 00:03:20,310 tener algunas preguntas acerca de cualquiera de estos temas, o si tiene preguntas sobre 64 00:03:20,310 --> 00:03:23,260 problemas de la práctica de pruebas en los últimos años. 65 00:03:23,260 --> 00:03:27,470 >> Tuve un par de preguntas que fueron envié un correo electrónico a mí, pero quiero mantener a raya 66 00:03:27,470 --> 00:03:29,490 en los que por un segundo. 67 00:03:29,490 --> 00:03:34,570 ¿Alguien tiene alguna pregunta, problemas que no entendían, 68 00:03:34,570 --> 00:03:38,100 respuestas que no comprendían para que podamos empezar? 69 00:03:38,100 --> 00:03:39,520 Avi. 70 00:03:39,520 --> 00:03:41,585 >> AUDIENCIA: ¿Puedes ir más DOM y Ajax realmente rápido? 71 00:03:41,585 --> 00:03:46,540 Al igual que, lo que necesita saber o deberían entender acerca de ellos? 72 00:03:46,540 --> 00:03:49,750 >> JASON HIRSCHHORN: Voy a contestar en general esta cuestión de, ¿qué hago yo 73 00:03:49,750 --> 00:03:52,100 necesita saber acerca de determinado tema x? 74 00:03:52,100 --> 00:03:55,280 Porque tengo la sensación de que muchos de ustedes me van a pedir que, o están 75 00:03:55,280 --> 00:03:56,570 curiosidad sobre eso. 76 00:03:56,570 --> 00:04:02,920 Así que en la medida en que el tema era cubierto de conferencia, o sección, o en 77 00:04:02,920 --> 00:04:06,460 study.cs50.net, un conjunto de problemas, que debe estar familiarizado con él. 78 00:04:06,460 --> 00:04:10,580 >> Así que usted no necesita saber todos los tipos de la etiqueta que está disponible en HTML o 79 00:04:10,580 --> 00:04:15,950 cada tipo de atributo o propiedad usted puede dar algo en CSS. 80 00:04:15,950 --> 00:04:20,204 Pero si lo has visto en un ejemplo de conferencia, si lo viste en un problema 81 00:04:20,204 --> 00:04:23,290 conjunto, probablemente debería estar familiarizado con él, sobre todo las cosas que viste 82 00:04:23,290 --> 00:04:24,260 en conferencia. 83 00:04:24,260 --> 00:04:28,510 Así que hemos discutido el documento modelo de objetos un poco en 84 00:04:28,510 --> 00:04:30,530 sección, más aún en conferencia. 85 00:04:30,530 --> 00:04:32,990 Usted debe estar familiarizado con que gran parte de ella. 86 00:04:32,990 --> 00:04:34,750 >> Y usted debe estar familiarizado con Ajax en la misma medida. 87 00:04:34,750 --> 00:04:38,105 Nunca vimos increíblemente avanzado o ejemplos complicados de Ajax, por lo 88 00:04:38,105 --> 00:04:40,920 usted no va a pedir hacer algo increíblemente complicado. 89 00:04:40,920 --> 00:04:45,180 Pero se le puede pedir, ¿cómo puedo hacer una llamada Ajax usando jQuery? 90 00:04:45,180 --> 00:04:47,350 Que es algo que has visto un número de veces antes, tanto en la 91 00:04:47,350 --> 00:04:51,370 Sesión de Revisión y en la conferencia, y es sólo de dos líneas españolas de código. 92 00:04:51,370 --> 00:04:53,190 >> Así que eso es algo que debiera estar familiarizado. 93 00:04:53,190 --> 00:04:55,550 Pero una vez más, para todos estos temas, si usted lo ha visto 94 00:04:55,550 --> 00:04:59,220 antes, es un juego justo. 95 00:04:59,220 --> 00:05:01,540 Y podríamos pedirle que - obviamente, estamos vamos a pedir que te lo 96 00:05:01,540 --> 00:05:02,340 no han visto antes. 97 00:05:02,340 --> 00:05:04,240 Codificación de algo que no tiene visto antes. 98 00:05:04,240 --> 00:05:06,570 Lo cual no quiere decir que usted no tiene visto las herramientas para resolver 99 00:05:06,570 --> 00:05:08,120 ese problema antes. 100 00:05:08,120 --> 00:05:09,200 Usted ha visto esas herramientas. 101 00:05:09,200 --> 00:05:11,160 >> Por ejemplo, en la prueba 1, si que necesita para codificar strlen. 102 00:05:11,160 --> 00:05:12,790 No hemos codificado strlen antes. 103 00:05:12,790 --> 00:05:14,980 Pero usted sabe cómo utilizar un bucle for, usted sabe cómo utilizar si las condiciones. 104 00:05:14,980 --> 00:05:18,570 Usted sabe cómo escribir variables en C Va a ser la misma cosa aquí. 105 00:05:18,570 --> 00:05:22,350 Usted no va a pedir que haga nada que no haya visto antes, pero 106 00:05:22,350 --> 00:05:25,150 es posible que se le pida que, al igual que, puesto algo juntos de una manera novedosa, o 107 00:05:25,150 --> 00:05:27,650 resolver un tipo diferente de problema. 108 00:05:27,650 --> 00:05:30,830 >> Lo sentimos, pero eso no era específica para su pregunta, pero yo no puedo responder sobre 109 00:05:30,830 --> 00:05:34,390 cada tema lo que hacer o no necesita saber. 110 00:05:34,390 --> 00:05:36,830 Pero también, lo siento, lo último en eso. 111 00:05:36,830 --> 00:05:42,900 Hemos pasado mucho más tiempo en listas de enlaces que tenemos en el Ajax. 112 00:05:42,900 --> 00:05:46,160 No utilizó Ajax en un conjunto de problemas. 113 00:05:46,160 --> 00:05:48,510 Una de las características centrales de ese problema de ajuste que haya listas de enlaces. 114 00:05:48,510 --> 00:05:50,370 Y nos pasamos un montón de tiempo en la conferencia y la sección de usarlo. 115 00:05:50,370 --> 00:05:57,080 >> Así, las probabilidades son lista de enlaces se van a plantear más a menudo en el concurso de Ajax voluntad. 116 00:05:57,080 --> 00:06:00,390 O las preguntas que tienen que ver con el vínculo lista tendrá un valor de más puntos. 117 00:06:00,390 --> 00:06:03,520 Así que sin duda puede centrarse y estrecho en las cosas que son más 118 00:06:03,520 --> 00:06:06,720 probable subir porque tenemos pasado más tiempo en ellos. 119 00:06:06,720 --> 00:06:08,700 >> Aceptar cualquier otra pregunta? 120 00:06:08,700 --> 00:06:09,890 Sí. 121 00:06:09,890 --> 00:06:13,660 >> AUDIENCIA: ¿Podemos ir sobre el uso de funciones anónimas en JavaScript? 122 00:06:13,660 --> 00:06:17,140 Soy un son poco confundido acerca de eso. 123 00:06:17,140 --> 00:06:20,180 >> JASON HIRSCHHORN: Así que en JavaScript - 124 00:06:20,180 --> 00:06:24,400 Estoy tratando de pensar cómo me podría escribir esto en - 125 00:06:24,400 --> 00:06:27,590 así que vamos a realmente abren este código. 126 00:06:27,590 --> 00:06:31,830 127 00:06:31,830 --> 00:06:36,030 Así que este es el código que hicimos la semana pasada. 128 00:06:36,030 --> 00:06:41,400 Y usted ha visto esto antes si estaban aquí en la sección de la semana pasada. 129 00:06:41,400 --> 00:06:43,180 ¿O has visto algo similar a esto antes. 130 00:06:43,180 --> 00:06:44,800 >> Pero se puede ver en esta primera línea. 131 00:06:44,800 --> 00:06:46,950 Esta es la forma de empezar - 132 00:06:46,950 --> 00:06:48,010 todo el mundo ha visto esto antes. 133 00:06:48,010 --> 00:06:51,930 Si usted quiere poner algo de código JavaScript, lo pones dentro de este, en el supuesto 134 00:06:51,930 --> 00:06:53,520 está usando jQuery. 135 00:06:53,520 --> 00:06:56,940 Esto es decir, no hacer nada hasta carga del documento. 136 00:06:56,940 --> 00:06:59,940 >> Y luego, Curt, se ve aquí estamos haciendo algo como esto - 137 00:06:59,940 --> 00:07:02,560 función paren abiertas, cerradas paren. 138 00:07:02,560 --> 00:07:05,250 Así que no estamos dando este funcionar un nombre. 139 00:07:05,250 --> 00:07:09,160 No vamos a definir esta función se supone que ejecutar y luego 140 00:07:09,160 --> 00:07:10,830 llamar un montón de veces. 141 00:07:10,830 --> 00:07:15,140 Sólo estamos diciendo este documento ya toma una función. 142 00:07:15,140 --> 00:07:16,690 Un par de cosas que hacer. 143 00:07:16,690 --> 00:07:20,670 >> Y no queremos pasar el tiempo dándole un nombre o guardarlo para 144 00:07:20,670 --> 00:07:21,650 perpetuidad. 145 00:07:21,650 --> 00:07:24,150 Sólo queremos hacer algunas cosas. 146 00:07:24,150 --> 00:07:27,500 Así que una función anónima especie de que sirve propósito. 147 00:07:27,500 --> 00:07:30,280 Cuando usted no va a usar algo una y otra vez, así que no es necesario 148 00:07:30,280 --> 00:07:32,420 para darle un nombre - que acaba de que desee utilizar una vez - 149 00:07:32,420 --> 00:07:36,720 usted acaba de decir que la función, por ejemplo, en este caso, y no eres más que 150 00:07:36,720 --> 00:07:38,280 la definición de algo que usted podría dar un nombre. 151 00:07:38,280 --> 00:07:40,920 >> Al igual, podríamos tirar de esta función fuera y darle un nombre y luego llamar a ese 152 00:07:40,920 --> 00:07:41,760 funcionar aquí. 153 00:07:41,760 --> 00:07:44,270 Pero nosotros no necesitamos porque nosotros no hacemos quieren perder el tiempo dándole un nombre o 154 00:07:44,270 --> 00:07:46,240 perdiendo algo en nuestro espacio de nombre. 155 00:07:46,240 --> 00:07:47,530 Y verás que mucho. 156 00:07:47,530 --> 00:07:52,810 Por ejemplo, vemos que mucho en este código, pero usted ha visto esto antes, cuando 157 00:07:52,810 --> 00:07:54,010 hacer clic en algo - 158 00:07:54,010 --> 00:07:55,980 ejecutar este tipo de código. 159 00:07:55,980 --> 00:07:59,850 >> Podríamos definir el código que queremos a correr cuando hacemos clic, en este caso, 160 00:07:59,850 --> 00:08:03,450 este ID, como una función separada y luego ejecutar esa función. 161 00:08:03,450 --> 00:08:07,940 Pero en este caso, sólo estamos saltando ese paso y llevarlos a aquí y 162 00:08:07,940 --> 00:08:10,340 sólo para definir todo que queremos que suceda y 163 00:08:10,340 --> 00:08:12,450 no darle un nombre. 164 00:08:12,450 --> 00:08:15,550 Eso todavía podría no tener respondido a su pregunta. 165 00:08:15,550 --> 00:08:15,960 >> AUDIENCIA: No, lo hace. 166 00:08:15,960 --> 00:08:18,290 Quiero decir, supongo que simplemente no se sabe muy entiendo por qué sería una 167 00:08:18,290 --> 00:08:20,800 funcionar en absoluto, sin embargo. 168 00:08:20,800 --> 00:08:21,590 Porque en realidad no es la que llama. 169 00:08:21,590 --> 00:08:23,170 En realidad, no tiene nombre. 170 00:08:23,170 --> 00:08:25,510 >> JASON HIRSCHHORN: Es una función en el sentido de que es una serie de pasos, 171 00:08:25,510 --> 00:08:28,460 igual que lo puso en una función. 172 00:08:28,460 --> 00:08:29,970 Y entonces es por eso que llamamos es función anónima. 173 00:08:29,970 --> 00:08:30,815 No vamos a darle un nombre. 174 00:08:30,815 --> 00:08:33,159 No vamos a perder intentando darle un nombre, pero que pudimos. 175 00:08:33,159 --> 00:08:34,890 >> Las funciones anónimas, que siempre se puede dar un nombre. 176 00:08:34,890 --> 00:08:37,620 Así, por ejemplo, el código aquí, podríamos poner este código dentro de un 177 00:08:37,620 --> 00:08:39,929 función y luego llamar esta función aquí. 178 00:08:39,929 --> 00:08:41,600 En lugar de ello, decimos, no vamos a molestar con eso. 179 00:08:41,600 --> 00:08:44,390 Sólo vamos a escribir todo aquí. 180 00:08:44,390 --> 00:08:49,840 >> Es como si a veces, cuando estás escribiendo cuatro bucle en C - chicos 181 00:08:49,840 --> 00:08:51,630 han visto esto antes - tal vez usted está iteración a través de un forloop 182 00:08:51,630 --> 00:08:53,090 en i es igual a 0. 183 00:08:53,090 --> 00:08:54,830 I es menos de strlen. 184 00:08:54,830 --> 00:08:59,520 ¿O usted va a través de algunos matriz, puede guardar array 185 00:08:59,520 --> 00:09:01,580 índice i en alguna variable. 186 00:09:01,580 --> 00:09:02,830 Y utiliza esa variable. 187 00:09:02,830 --> 00:09:06,550 Así que no es necesario volver a escribir array soporte de i una y otra y otra vez. 188 00:09:06,550 --> 00:09:08,160 >> Y eso es algo así como una variable ficticia. 189 00:09:08,160 --> 00:09:10,790 No está sirviendo mucho propósito que no sea Para que el código un poco más limpio 190 00:09:10,790 --> 00:09:12,120 y más fácil de leer. 191 00:09:12,120 --> 00:09:13,290 Función similar aquí. 192 00:09:13,290 --> 00:09:15,665 Justo hace un poco más fácil, pero funcionalmente no hay diferencia. 193 00:09:15,665 --> 00:09:18,620 194 00:09:18,620 --> 00:09:19,330 ¿Responde esto a su pregunta? 195 00:09:19,330 --> 00:09:19,970 >> AUDIENCIA: Si. 196 00:09:19,970 --> 00:09:20,720 >> JASON HIRSCHHORN: OK .. 197 00:09:20,720 --> 00:09:21,880 Mario? 198 00:09:21,880 --> 00:09:25,380 >> AUDIENCIA: Ayer a menudo ponen función paréntesis evento. 199 00:09:25,380 --> 00:09:26,420 ¿Eso significa algo? 200 00:09:26,420 --> 00:09:30,500 ¿O es para cosas como que harían 201 00:09:30,500 --> 00:09:35,100 document.ready evento función. 202 00:09:35,100 --> 00:09:37,130 >> JASON HIRSCHHORN: Hemos visto esto, y de nuevo, estas son cosas pequeñas que 203 00:09:37,130 --> 00:09:39,590 Probablemente yo no quiero pasar demasiado tiempo en él. 204 00:09:39,590 --> 00:09:43,200 Porque a veces no quiero que la gente conseguir asustado que no tienen 205 00:09:43,200 --> 00:09:44,220 oído hablar de estas cosas tanto. 206 00:09:44,220 --> 00:09:46,200 Pero hablamos un poco acerca de controladores de eventos. 207 00:09:46,200 --> 00:09:50,360 Así que algo sucede, y luego esta función se ejecuta. 208 00:09:50,360 --> 00:09:53,210 Y entonces nosotros también queremos saber algunos detalles sobre lo que 209 00:09:53,210 --> 00:09:54,450 ocurrido en este caso. 210 00:09:54,450 --> 00:09:55,730 >> Así que piensen en conjunto de problemas 4. 211 00:09:55,730 --> 00:09:58,390 Esa es probablemente la forma más fácil de entender que en estallido. 212 00:09:58,390 --> 00:09:59,740 Había un poco de código - 213 00:09:59,740 --> 00:10:01,980 como un evento iba a pasar, pero evento puede significar muchas cosas. 214 00:10:01,980 --> 00:10:06,240 Si podría significar el ratón se hace clic, se podría significar golpear una tecla de flecha, et 215 00:10:06,240 --> 00:10:07,190 cetera, et cetera. 216 00:10:07,190 --> 00:10:09,800 >> Pero todo se guarda en esta genérica Lo llamó eventos. 217 00:10:09,800 --> 00:10:12,340 Y entonces podemos decir, es este evento esta cosa? 218 00:10:12,340 --> 00:10:13,640 ¿O es este evento esta cosa? 219 00:10:13,640 --> 00:10:15,500 O bien, ¿qué clase de pasado con ese evento? 220 00:10:15,500 --> 00:10:18,660 Así que por eso se crea esa variable ahí para salvar esa información adicional 221 00:10:18,660 --> 00:10:21,420 acerca de qué es exactamente lo que pasó esa usted va a querer 222 00:10:21,420 --> 00:10:24,840 utilizar en la función. 223 00:10:24,840 --> 00:10:28,200 Pero, de nuevo, eso es probablemente uno de los cosas menos importantes que ser Super 224 00:10:28,200 --> 00:10:29,450 familiarizado. 225 00:10:29,450 --> 00:10:31,470 226 00:10:31,470 --> 00:10:36,110 >> Bien, ¿qué otras preguntas tienen las personas tenido, o bloques de tropiezo que han 227 00:10:36,110 --> 00:10:37,360 encontrado durante la revisión? 228 00:10:37,360 --> 00:10:41,260 229 00:10:41,260 --> 00:10:42,510 Vamos a volver a esa lista. 230 00:10:42,510 --> 00:10:52,550 231 00:10:52,550 --> 00:10:56,080 ¿Qué pasa durante exámenes de práctica, si la gente ha tomado las ya? 232 00:10:56,080 --> 00:10:59,110 ¿Cuáles fueron algunos de los problemas que disparado ustedes arriba? 233 00:10:59,110 --> 00:11:08,970 234 00:11:08,970 --> 00:11:12,720 Sé que es un hecho de que el año pasado cuestionario fue muy duro. 235 00:11:12,720 --> 00:11:15,670 >> AUDIENCIA: ¿Puede explicar qué un ataque de inyección SQL es? 236 00:11:15,670 --> 00:11:18,970 >> JASON HIRSCHHORN: OK, muy bien. 237 00:11:18,970 --> 00:11:20,440 Así que hablamos de esto un poco. 238 00:11:20,440 --> 00:11:22,050 Hay una conferencia sobre la seguridad. 239 00:11:22,050 --> 00:11:25,670 Y de nuevo, como he mencionado antes, este es un aparte. 240 00:11:25,670 --> 00:11:30,010 Pero se le frustrado en el cuestionario cuando se lee un pequeño de dos puntos 241 00:11:30,010 --> 00:11:33,040 pregunta, y usted es como, cuando ¿alguna vez aprendiste eso? 242 00:11:33,040 --> 00:11:35,560 >> Todas esas cosas en esas conferencias que no pensabas que necesitabas 243 00:11:35,560 --> 00:11:38,290 sabe, o usted podría pasar por alto, porque que no tenían que ver con la 244 00:11:38,290 --> 00:11:41,860 conjunto de problemas, los que probablemente subir de nuevo en el concurso. 245 00:11:41,860 --> 00:11:45,030 Así que, cosas divertidas, fresco que acaba de David pensó que estaba diciendo para que usted pueda 246 00:11:45,030 --> 00:11:49,070 disfrutar, que te estaba diciendo para que usted pueda disfrutar y hacer que acaba de ser super 247 00:11:49,070 --> 00:11:50,550 entusiasmados por aprender todo lo que hay que aprender 248 00:11:50,550 --> 00:11:51,670 acerca de la informática. 249 00:11:51,670 --> 00:11:53,680 Esas cosas también vienen para arriba en pruebas. 250 00:11:53,680 --> 00:11:56,440 Por lo tanto, incluso estas pequeñas cosas que no lo hicieron se relacionan directamente con su problema 251 00:11:56,440 --> 00:11:59,630 establecer, como ustedes están familiarizados con de Cuestionario 0, probablemente van a plantear. 252 00:11:59,630 --> 00:12:01,530 Y este es un buen ejemplo de algo. 253 00:12:01,530 --> 00:12:10,140 >> Así que los ataques a la inyección de SQL es cuando se obtener alguna información del usuario y 254 00:12:10,140 --> 00:12:15,090 desea insertar en una tabla utilizando una inserción de SQL declaración, pero 255 00:12:15,090 --> 00:12:17,680 no desinfectar la entrada antes de tiempo. 256 00:12:17,680 --> 00:12:21,560 Así que, obviamente hemos visto Sentencias SQL. 257 00:12:21,560 --> 00:12:22,810 Voy a abrirme - 258 00:12:22,810 --> 00:12:25,590 259 00:12:25,590 --> 00:12:26,840 vamos a ir - 260 00:12:26,840 --> 00:12:31,290 261 00:12:31,290 --> 00:12:31,960 iremos a la revisión - 262 00:12:31,960 --> 00:12:35,180 Creo, que lo cubrió? 263 00:12:35,180 --> 00:12:36,350 Creo Samala hizo. 264 00:12:36,350 --> 00:12:39,292 Para que podamos llegar - 265 00:12:39,292 --> 00:12:41,270 >> AUDIENCIA: ¿Dónde encontraste esto? 266 00:12:41,270 --> 00:12:44,990 >> JASON HIRSCHHORN: Así que si vas a CS50.net, pruebas, y entonces se puede 267 00:12:44,990 --> 00:12:47,170 desplazarse una y obtener diapositivas de la sesión de revisión. 268 00:12:47,170 --> 00:12:49,860 Pero usted puede ver que esto es un buen ejemplo de un ataque de inyección SQL. 269 00:12:49,860 --> 00:12:53,690 Tomamos un poco de información del usuario y nos dan una cadena, y luego 270 00:12:53,690 --> 00:12:55,780 desee insertar esa cadena en una base de datos. 271 00:12:55,780 --> 00:12:59,780 Generalmente vamos a desinfectar que de entrada, lo que significa que hay algunos 272 00:12:59,780 --> 00:13:01,050 personajes que son peligrosos. 273 00:13:01,050 --> 00:13:04,000 >> Por ejemplo, en cadenas SQL, estas citas - 274 00:13:04,000 --> 00:13:05,000 comillas simples o dobles - 275 00:13:05,000 --> 00:13:05,620 significar algo. 276 00:13:05,620 --> 00:13:08,380 Significan termina esta cadena aquí. 277 00:13:08,380 --> 00:13:13,090 Y por lo que si el usuario le da un solo o una doble cita, que podría ser 278 00:13:13,090 --> 00:13:18,970 intentando hacer tropezar a su consulta de SQL y insertar algunas cosas malas en ella. 279 00:13:18,970 --> 00:13:23,130 Y si lo hacen, podrían ganar el control de su base de datos o hacer algún 280 00:13:23,130 --> 00:13:24,760 cosas que usted no quiere que hagan. 281 00:13:24,760 --> 00:13:28,300 >> Así que por eso cada vez que tomamos SQL consultas, que desinfectar la entrada antes de 282 00:13:28,300 --> 00:13:31,090 ponerla en la base de datos, que significa que escapan a los personajes. 283 00:13:31,090 --> 00:13:32,590 Hablaremos de eso en un segundo. 284 00:13:32,590 --> 00:13:35,820 Pero cuento largo, una inyección SQL ataque es si usted no hace eso - 285 00:13:35,820 --> 00:13:39,760 si usted no toma el cuidado de la entrada que le dieron antes de poner su 286 00:13:39,760 --> 00:13:46,830 base de datos, que pueden, como veis abajo aquí, ejecute una consulta que, de hecho - 287 00:13:46,830 --> 00:13:52,470 que ponen en su código aquí abajo y esta línea de selección aquí abajo seleccionará 288 00:13:52,470 --> 00:13:56,360 todo, desde la mesa sin importar de lo que se le da la contraseña. 289 00:13:56,360 --> 00:13:58,960 Porque usted tiene la o 1 es igual a 1. 290 00:13:58,960 --> 00:14:02,750 >> Así que es básicamente, cuento largo, una manera de hacerse cargo de la base de datos. 291 00:14:02,750 --> 00:14:07,570 La pregunta, entonces, para ustedes, es donde en p sets 7 hiciste desinfecte todas 292 00:14:07,570 --> 00:14:10,010 las entradas a las consultas SQL? 293 00:14:10,010 --> 00:14:11,230 ¿Dónde ocurrió ese paso? 294 00:14:11,230 --> 00:14:14,150 ¿Dónde se evita la inyección de SQL los ataques de los que sucede en p fije 7? 295 00:14:14,150 --> 00:14:20,100 296 00:14:20,100 --> 00:14:20,490 Sí. 297 00:14:20,490 --> 00:14:21,870 >> AUDIENCIA: Cripta? 298 00:14:21,870 --> 00:14:23,120 >> JASON HIRSCHHORN: Por lo que no se cripta. 299 00:14:23,120 --> 00:14:52,360 300 00:14:52,360 --> 00:14:55,380 No hicimos lo hace para este problema particular ajustado, pero sucede 301 00:14:55,380 --> 00:14:58,190 en la función de consulta. 302 00:14:58,190 --> 00:15:00,930 En realidad escribí para ti, y nos ocupamos de la 303 00:15:00,930 --> 00:15:03,040 desinfección insumos para usted. 304 00:15:03,040 --> 00:15:07,790 Pero en los últimos años, los estudiantes han tenido para escribir las entradas por su cuenta. 305 00:15:07,790 --> 00:15:10,020 En conjunto p 7, que muchos de ustedes - 306 00:15:10,020 --> 00:15:11,270 déjame abro otro archivo. 307 00:15:11,270 --> 00:15:18,530 308 00:15:18,530 --> 00:15:22,590 >> Entonces te darás cuenta de por aquí un montón de personas, en conjunto de problemas 7, no llamaron 309 00:15:22,590 --> 00:15:25,240 esta función en cadenas. 310 00:15:25,240 --> 00:15:27,880 Esta función, htmlspecialchars, nuevo - 311 00:15:27,880 --> 00:15:31,410 esta cadena podría tener algunas cosas que en HTML significa algo más. 312 00:15:31,410 --> 00:15:36,160 Al igual que un aparato ortopédico, un cuadrado, o un ángulo Soporte de decir algo en HTML. 313 00:15:36,160 --> 00:15:38,980 >> Y así, si imprime que a la pantalla o si usted acaba de tomar eso y 314 00:15:38,980 --> 00:15:42,260 imprimir que fuera a su HTML, que el poder hacer algo que no esperas. 315 00:15:42,260 --> 00:15:45,180 Así htmlspecialchars va sobre todos aquellos caracteres que tienen especial 316 00:15:45,180 --> 00:15:47,030 reuniones y se les escapa. 317 00:15:47,030 --> 00:15:51,450 Por lo que se imprime como texto usted quiere ver, en lugar de 318 00:15:51,450 --> 00:15:53,280 arruinando su HTML. 319 00:15:53,280 --> 00:15:55,040 Llamamos a esa función en la cabecera. 320 00:15:55,040 --> 00:15:57,390 Y un montón de gente se olvidó de llamar a esa función en la 321 00:15:57,390 --> 00:15:58,700 código que estabas escribiendo. 322 00:15:58,700 --> 00:16:03,970 >> Así, por ejemplo, si un nombre de valores tuvo un corchete angular en él y se le olvidó 323 00:16:03,970 --> 00:16:06,675 llamar a esta función, que el ángulo soporte podría haber lanzado de lo 324 00:16:06,675 --> 00:16:08,250 su HTML parecía. 325 00:16:08,250 --> 00:16:11,810 Pero llamar a esta función se escapará que por lo que realmente muestre como 326 00:16:11,810 --> 00:16:15,870 soporte en ángulo y no tirar fuera de su código HTML. 327 00:16:15,870 --> 00:16:18,760 >> La misma razón por la que hemos visto, a veces, rayas verticales antes de las comillas dobles en una 328 00:16:18,760 --> 00:16:22,310 línea printf porque no queremos que el comillas dobles por la cuerda. 329 00:16:22,310 --> 00:16:24,050 Queremos imprimirlos a la pantalla. 330 00:16:24,050 --> 00:16:26,920 Así que todo esto es la misma idea. 331 00:16:26,920 --> 00:16:28,260 ¿Responde esto a su pregunta? 332 00:16:28,260 --> 00:16:31,529 333 00:16:31,529 --> 00:16:33,870 >> AUDIENCIA: Más o menos. 334 00:16:33,870 --> 00:16:35,300 >> JASON HIRSCHHORN: ¿Tiene usted tener un seguimiento? 335 00:16:35,300 --> 00:16:43,252 >> AUDIENCIA: Creo que la inyección de SQL ataque tiene que ver con eso? 336 00:16:43,252 --> 00:16:45,720 No entiendo cómo Los dos están relacionados. 337 00:16:45,720 --> 00:16:47,610 ¿Por qué harías las specialChars? 338 00:16:47,610 --> 00:16:51,200 >> JASON HIRSCHHORN: OK, así que el SQL ataque de inyección es cuando se inyecta 339 00:16:51,200 --> 00:16:59,180 algunas cadenas maliciosos en alguien de programa, y ​​que sólo toman y ejecutan 340 00:16:59,180 --> 00:17:01,230 la consulta SQL con una cadena que les dio. 341 00:17:01,230 --> 00:17:04,220 Como se puede ver aquí abajo, que podría ser problemático. 342 00:17:04,220 --> 00:17:07,480 Así que la forma se previene en contra de que se usted toma su cadena que dan 343 00:17:07,480 --> 00:17:09,220 usted - por lo que esta cadena aquí - 344 00:17:09,220 --> 00:17:11,240 y desinfectar. 345 00:17:11,240 --> 00:17:14,305 Usted escapar de todas las cosas que son potencialmente problemático. 346 00:17:14,305 --> 00:17:18,626 Así que no sean interpretadas como algo eso significa algo. 347 00:17:18,626 --> 00:17:23,390 >> Y un ejemplo de que con HTML es esta función. 348 00:17:23,390 --> 00:17:26,060 Así que es la misma idea aquí. 349 00:17:26,060 --> 00:17:27,579 Y me estaba mostrando que otra ejemplos de cuando has 350 00:17:27,579 --> 00:17:29,030 visto esta idea antes. 351 00:17:29,030 --> 00:17:33,913 De escapar de la entrada del usuario antes de imprimir a cabo a una pantalla o lo ponga 352 00:17:33,913 --> 00:17:36,782 dentro de una sentencia SQL. 353 00:17:36,782 --> 00:17:40,790 >> AUDIENCIA: Así que en este caso, el usuario está jugando con el programador. 354 00:17:40,790 --> 00:17:41,240 >> JASON HIRSCHHORN: Si. 355 00:17:41,240 --> 00:17:44,800 Con todos estos ataques a la seguridad, eso siempre es generalmente el usuario, o 356 00:17:44,800 --> 00:17:47,470 alguien está tratando de desastre con usted, el programador. 357 00:17:47,470 --> 00:17:51,038 Y estas son formas en las que pueden prevenir en contra de ellos. 358 00:17:51,038 --> 00:17:54,280 >> AUDIENCIA: Así que tengo una pregunta acerca de las funciones hash. 359 00:17:54,280 --> 00:17:59,340 En la prueba 1 a partir de 2011, hay dos preguntas acerca de hashes de un solo lado. 360 00:17:59,340 --> 00:18:02,540 Y me estaba preguntando lo que eso significaba. 361 00:18:02,540 --> 00:18:03,660 >> JASON HIRSCHHORN: OK, lo que prueba? 362 00:18:03,660 --> 00:18:03,770 2011? 363 00:18:03,770 --> 00:18:04,705 >> AUDIENCIA: Si. 364 00:18:04,705 --> 00:18:06,720 >> AUDIENCIA: Cuestionario 1? 365 00:18:06,720 --> 00:18:08,620 >> AUDIENCIA: [inaudible]. 366 00:18:08,620 --> 00:18:09,940 Eso es como hash de una contraseña. 367 00:18:09,940 --> 00:18:12,220 Eso no es poner las cosas - 368 00:18:12,220 --> 00:18:13,440 >> JASON HIRSCHHORN: ¿En qué página fue? 369 00:18:13,440 --> 00:18:15,720 >> AUDIENCIA: Creo que fue 9 o 10, o ambos. 370 00:18:15,720 --> 00:18:16,720 >> JASON HIRSCHHORN: Muy bien, seguir adelante, Curt. 371 00:18:16,720 --> 00:18:17,780 Puede contestar mientras buscamos. 372 00:18:17,780 --> 00:18:19,540 >> AUDIENCIA: Creo que está hablando acerca de hash de una contraseña. 373 00:18:19,540 --> 00:18:24,430 Al igual que, cuando alguien entra en una contraseña, lo conviertes en algo encriptado. 374 00:18:24,430 --> 00:18:27,395 Ese es el hash de la contraseña, que es diferente de una función hash que 375 00:18:27,395 --> 00:18:30,900 pone algo en una tabla hash. 376 00:18:30,900 --> 00:18:31,610 >> JASON HIRSCHHORN: Veamos. 377 00:18:31,610 --> 00:18:33,930 Déjame sacar lo que ellos dar como respuesta. 378 00:18:33,930 --> 00:18:35,440 Y luego vamos a caminar a través de él. 379 00:18:35,440 --> 00:18:42,430 380 00:18:42,430 --> 00:18:45,400 >> Así Curt le dio un gran ejemplo de un hash de un solo sentido. 381 00:18:45,400 --> 00:18:48,800 Cuando nos hemos visto antes, nos tomar la contraseña y activar - 382 00:18:48,800 --> 00:18:53,040 recuerda, en conjunto p 7, alguien podría tener una contraseña que es sólo una contraseña, 383 00:18:53,040 --> 00:18:55,300 pero luego éste se cifra en algo realmente largo. 384 00:18:55,300 --> 00:18:59,830 El hash de un solo sentido significa que es muy fácil para pasar de un modo a otro, pero 385 00:18:59,830 --> 00:19:02,800 es muy difícil pasar de el otro camino de regreso. 386 00:19:02,800 --> 00:19:05,230 >> Y para que sepas, cuando nos marchábamos contraseñas de la gente en un problema 387 00:19:05,230 --> 00:19:08,820 fije 7, que le llevará a su - 388 00:19:08,820 --> 00:19:11,953 así, por ejemplo, dicen que querían cambiar su contraseña, se les pregunta 389 00:19:11,953 --> 00:19:13,130 por su antigua contraseña. 390 00:19:13,130 --> 00:19:13,910 Usted tomó su antigua contraseña. 391 00:19:13,910 --> 00:19:15,150 Cifró él. 392 00:19:15,150 --> 00:19:19,240 Y luego comparó los dos encriptaciones en lugar de unencrypting el original 393 00:19:19,240 --> 00:19:20,780 uno, porque es muy difícil ir de esa manera. 394 00:19:20,780 --> 00:19:27,070 395 00:19:27,070 --> 00:19:28,035 Sí. 396 00:19:28,035 --> 00:19:31,430 >> AUDIENCIA: ¿Cómo en profundidad hace nuestra comprensión de TelNet tiene que ser? 397 00:19:31,430 --> 00:19:34,870 398 00:19:34,870 --> 00:19:41,360 >> JASON HIRSCHHORN: Si se mencionó brevemente en la conferencia, sólo un breve 399 00:19:41,360 --> 00:19:43,260 entendimiento. 400 00:19:43,260 --> 00:19:45,585 De nuevo, de vuelta a la respuesta a la pregunta de Avi - 401 00:19:45,585 --> 00:19:48,260 402 00:19:48,260 --> 00:19:50,430 más cosas surgen, más probable es lo que tiene que ser super 403 00:19:50,430 --> 00:19:51,530 familiarizarse con ellas. 404 00:19:51,530 --> 00:19:54,730 Si sólo he llegado en la conferencia, eso es sólo un lugar. 405 00:19:54,730 --> 00:19:57,180 Pero si entran en la conferencia, sección, y un problema establecido, entonces usted 406 00:19:57,180 --> 00:19:58,710 probablemente tendrá que ser súper familiarizarse con ellas. 407 00:19:58,710 --> 00:20:01,320 408 00:20:01,320 --> 00:20:03,960 >> Así que yo tenía una pregunta de antes sobre - 409 00:20:03,960 --> 00:20:06,950 es era el otoño de 2010 - 410 00:20:06,950 --> 00:20:08,520 Cuestionario 1, vamos a tirar para arriba - 411 00:20:08,520 --> 00:20:17,390 412 00:20:17,390 --> 00:20:21,790 esta pregunta en pilas y colas, que nos hicieron pasar un poco de tiempo 413 00:20:21,790 --> 00:20:23,720 hablando en conferencia, incluso aunque nosotros no lo hicimos realmente 414 00:20:23,720 --> 00:20:26,020 Alguna vez lo golpeó en la sección. 415 00:20:26,020 --> 00:20:33,190 Así que esta pregunta te da una serie de comandos y le pide que lo 416 00:20:33,190 --> 00:20:35,560 se imprime en este caso. 417 00:20:35,560 --> 00:20:40,180 Así que esta es una pregunta totalmente razonable que se puede pedir de ustedes 418 00:20:40,180 --> 00:20:43,090 chicos, y entonces ustedes deberían ser capaz de responder a ella. 419 00:20:43,090 --> 00:20:50,020 >> Entonces, ¿por qué no lo mira durante 30 segundos y, a continuación, si alguien quiere 420 00:20:50,020 --> 00:20:52,140 proponer las respuestas a mí, y entonces vamos a caminar a través de él. 421 00:20:52,140 --> 00:21:22,590 422 00:21:22,590 --> 00:21:24,235 De acuerdo, que tiene una respuesta a la pregunta 27? 423 00:21:24,235 --> 00:21:31,740 424 00:21:31,740 --> 00:21:33,860 Sí. 425 00:21:33,860 --> 00:21:40,250 >> AUDIENCIA: ¿es 1, 2, 3, 3? 426 00:21:40,250 --> 00:21:40,780 >> JASON HIRSCHHORN: Eso es correcto. 427 00:21:40,780 --> 00:21:42,570 27 es 1, 2, 3, 3. 428 00:21:42,570 --> 00:21:44,510 Así que echemos un vistazo a cómo conseguimos eso. 429 00:21:44,510 --> 00:21:48,930 >> En primer lugar, estamos diciendo, si s es una cola, lo que se imprime? 430 00:21:48,930 --> 00:21:53,360 Así que una q es primero en entrar, primero en salir. 431 00:21:53,360 --> 00:21:54,680 Hemos visto eso antes. 432 00:21:54,680 --> 00:21:56,820 Vimos la imagen de las personas esperando en la Manzana 433 00:21:56,820 --> 00:21:58,400 Tienda a comprar algún producto. 434 00:21:58,400 --> 00:22:00,900 Las primeras personas en son las primeras personas fuera. 435 00:22:00,900 --> 00:22:02,940 Las primeras cosas en una cola son las primeras cosas a cabo. 436 00:22:02,940 --> 00:22:08,320 >> Así que si empujamos algo en una cola, pulse el 1, luego que el pop la 1. 437 00:22:08,320 --> 00:22:09,630 Pop sólo significa llevar. 438 00:22:09,630 --> 00:22:11,080 En este caso, simplemente tome algo. 439 00:22:11,080 --> 00:22:12,910 Tomamos la primera cosa, eso es un 1. 440 00:22:12,910 --> 00:22:15,200 Así que vamos a poner las cosas que imprimir hasta aquí. 441 00:22:15,200 --> 00:22:18,110 Esto ya no se encuentra en nuestra cola. 442 00:22:18,110 --> 00:22:23,500 >> Luego empujamos en un 2 y un 3, y que sobresalen de la primera hora. 443 00:22:23,500 --> 00:22:25,030 Una vez más, porque es una cola. 444 00:22:25,030 --> 00:22:33,320 Así que llegamos a 2, luego ponemos en otro 3 y llame pop de nuevo. 445 00:22:33,320 --> 00:22:34,980 Nuestra 3 es primero. 446 00:22:34,980 --> 00:22:40,940 >> Y luego tuvimos un montón de otras cosas y llamada pop. 447 00:22:40,940 --> 00:22:43,740 Pero, de nuevo, ya que esta es una cola, primero en entrar, primero en salir. 448 00:22:43,740 --> 00:22:45,980 Sacamos lo primero que alguna vez se puso pulg 449 00:22:45,980 --> 00:22:47,100 Ese es nuestro 3. 450 00:22:47,100 --> 00:22:50,060 Y, en este caso, no nos preocupamos sobre todas esas otras cosas. 451 00:22:50,060 --> 00:22:51,310 Así que eso es si se trata de una cola. 452 00:22:51,310 --> 00:22:58,917 453 00:22:58,917 --> 00:23:00,167 ¿Una pregunta sobre una cola? 454 00:23:00,167 --> 00:23:03,290 455 00:23:03,290 --> 00:23:04,040 >> A es diferente de la pila. 456 00:23:04,040 --> 00:23:07,782 ¿Cuál es el acrónimo que tenemos para la comprensión de una pila? 457 00:23:07,782 --> 00:23:08,750 >> AUDIENCIA: último en entrar, primero en salir. 458 00:23:08,750 --> 00:23:10,130 >> JASON HIRSCHHORN: LIFO, creo. 459 00:23:10,130 --> 00:23:11,830 Último en entrar, primero en salir. 460 00:23:11,830 --> 00:23:15,630 Así que vimos un ejemplo de una pila de bandejas en un comedor. 461 00:23:15,630 --> 00:23:17,590 Cualquiera que sea la bandeja está en la parte superior es recogido. 462 00:23:17,590 --> 00:23:19,550 Y entonces, si las nuevas bandejas vienen adentro, conseguir poner en la parte superior. 463 00:23:19,550 --> 00:23:21,070 Y entonces lo que está en Top Obtiene recogido. 464 00:23:21,070 --> 00:23:24,010 Así que esas bandejas sobre el poderío inferior permanecer allí durante un tiempo. 465 00:23:24,010 --> 00:23:28,480 >> En ese caso, una vez más, vamos a alargar esto. 466 00:23:28,480 --> 00:23:31,770 Empujamos en uno, por lo que uno es el primero en la fila. 467 00:23:31,770 --> 00:23:32,790 Y nos pop algo. 468 00:23:32,790 --> 00:23:37,280 Y sólo hay una cosa en allí, así que nos movemos 1 aquí abajo. 469 00:23:37,280 --> 00:23:41,940 Luego ponemos los días 2 y 3 y nos pop algo. 470 00:23:41,940 --> 00:23:43,650 >> Pero, de nuevo, ya que esta es una cola - 471 00:23:43,650 --> 00:23:45,010 o se trata de una pila, en lugar - 472 00:23:45,010 --> 00:23:47,480 tomamos lo que fuera en el pasado. 473 00:23:47,480 --> 00:23:49,300 Lo que está en último sale primero. 474 00:23:49,300 --> 00:23:50,890 Y 3 es en pasado. 475 00:23:50,890 --> 00:23:56,110 Por eso, pusimos el 3 por allí, entonces ponemos en otro 3 y 476 00:23:56,110 --> 00:23:57,360 pop algo nuevo. 477 00:23:57,360 --> 00:23:59,990 478 00:23:59,990 --> 00:24:05,710 Por último, ponemos en el 4, 5, 6 y 7, y aquí nos pop. 479 00:24:05,710 --> 00:24:09,060 Y porque es una pila, tomamos lo que fue puesto en la última y escribir 480 00:24:09,060 --> 00:24:10,240 que aquí abajo. 481 00:24:10,240 --> 00:24:14,256 Así que terminamos con 1, 3, 3, 7. 482 00:24:14,256 --> 00:24:17,380 483 00:24:17,380 --> 00:24:21,380 ¿Alguien tiene alguna pregunta acerca de pilas o colas, o este ejemplo? 484 00:24:21,380 --> 00:24:27,540 485 00:24:27,540 --> 00:24:29,030 >> Aceptar. 486 00:24:29,030 --> 00:24:30,440 Volvamos a la lista de temas. 487 00:24:30,440 --> 00:24:32,510 Por ahí no, por aquí. 488 00:24:32,510 --> 00:24:34,280 ¿Qué otras preguntas tiene la gente? 489 00:24:34,280 --> 00:24:37,550 490 00:24:37,550 --> 00:24:39,480 >> AUDIENCIA: No sé lo importante esto es, pero yo estaba confundido por la 491 00:24:39,480 --> 00:24:43,550 diferencia entre diferentes tipos de lenguas como el marcado, compilados, 492 00:24:43,550 --> 00:24:45,980 interpretado. 493 00:24:45,980 --> 00:24:46,750 >> JASON HIRSCHHORN: Eso es una buena pregunta. 494 00:24:46,750 --> 00:24:50,500 Creo que eso es algo importante, así que vamos a repasar rápidamente. 495 00:24:50,500 --> 00:24:56,850 Las grandes lenguas que hemos visto hasta ahora son C, PHP y JavaScript, en términos 496 00:24:56,850 --> 00:24:58,330 de lenguajes de programación. 497 00:24:58,330 --> 00:25:01,060 HTML, como usted ha mencionado, no es un lenguaje de programación. 498 00:25:01,060 --> 00:25:02,260 Es un lenguaje de marcas. 499 00:25:02,260 --> 00:25:05,700 Y luego tenemos CSS, que es también no es un lenguaje de programación. 500 00:25:05,700 --> 00:25:10,330 >> También hemos visto SQL, que no es un lenguaje de programación cualquiera. 501 00:25:10,330 --> 00:25:15,695 Así SQL permite escribir consultas de una base de datos. 502 00:25:15,695 --> 00:25:18,370 503 00:25:18,370 --> 00:25:20,140 HTML es un lenguaje de marcas. 504 00:25:20,140 --> 00:25:22,570 Define cómo se estructuran las cosas. 505 00:25:22,570 --> 00:25:26,250 Y CSS le permite el estilo de las cosas. 506 00:25:26,250 --> 00:25:28,520 Esa es probablemente la medida de lo que necesita saber acerca de esos tres. 507 00:25:28,520 --> 00:25:32,920 Pero es más interesante figura las diferencias entre C, PHP, 508 00:25:32,920 --> 00:25:34,320 y JavaScript. 509 00:25:34,320 --> 00:25:37,900 >> Así que una de las diferencias más grandes, como usted ha mencionado, es la forma en que están 510 00:25:37,900 --> 00:25:40,550 compilado, o lo que sea el equivalente es. 511 00:25:40,550 --> 00:25:42,580 Así que C se compila. 512 00:25:42,580 --> 00:25:43,950 Siempre nos correríamos un compilador. 513 00:25:43,950 --> 00:25:51,100 Y entonces ¿dónde están sus errores al ejecutar el compilador de C? 514 00:25:51,100 --> 00:25:55,740 ¿De dónde usted la muestra errores en el código? 515 00:25:55,740 --> 00:25:57,860 ¿Cómo sabes que hay un error en el código en C? 516 00:25:57,860 --> 00:25:58,770 >> AUDIENCIA: Le muestra en el terminal. 517 00:25:58,770 --> 00:26:00,410 >> JASON HIRSCHHORN: Se muestra en el terminal como se está compilando. 518 00:26:00,410 --> 00:26:02,620 Y si hay errores, en realidad no se compilará. 519 00:26:02,620 --> 00:26:04,830 Así que ya sabes que hay errores correctas de distancia, antes de tiempo, antes de que usted 520 00:26:04,830 --> 00:26:06,050 incluso ejecutar su código. 521 00:26:06,050 --> 00:26:10,010 >> Por supuesto, es posible ejecutar el código y conseguir un fallo de segmentación, pero eso fue 522 00:26:10,010 --> 00:26:12,350 probablemente debido a que usted hizo algo lógico tonto. 523 00:26:12,350 --> 00:26:15,770 Pero el código con técnicamente todo correcto y podría funcionar. 524 00:26:15,770 --> 00:26:18,210 Así código C se compila antes de tiempo. 525 00:26:18,210 --> 00:26:19,760 ¿Qué pasa con el código PHP? 526 00:26:19,760 --> 00:26:21,430 ¿Dónde estaban los errores en su código PHP? 527 00:26:21,430 --> 00:26:23,170 ¿Cómo se sabe que tuvo errores en el código PHP? 528 00:26:23,170 --> 00:26:26,038 529 00:26:26,038 --> 00:26:28,430 >> AUDIENCIA: Tiempo de ejecución? 530 00:26:28,430 --> 00:26:31,230 >> JASON HIRSCHHORN: Sí, cuando iría en ella, tendría que ejecutar la 531 00:26:31,230 --> 00:26:32,180 Código PHP en la parte posterior. 532 00:26:32,180 --> 00:26:33,300 Y luego le mostrará una pantalla. 533 00:26:33,300 --> 00:26:35,260 Es posible que vea algunas cosas en la parte superior, pero entonces usted vería, como, algunos 534 00:26:35,260 --> 00:26:36,710 naranja, mesa feo. 535 00:26:36,710 --> 00:26:41,420 Y le dará un número de línea y digamos, bla, bla, bla, esto 536 00:26:41,420 --> 00:26:42,400 que no funcionó. 537 00:26:42,400 --> 00:26:48,730 >> Así que PHP se interpreta línea por línea y ejecutado en el servidor. 538 00:26:48,730 --> 00:26:52,380 Y a continuación, el resultado es enviado a usted. 539 00:26:52,380 --> 00:26:53,340 Grande. 540 00:26:53,340 --> 00:26:56,410 Ejecutado en la línea de servidores de línea y luego enviado a usted. 541 00:26:56,410 --> 00:26:59,010 Y si hay un error, que va a enviar que el error, pero es posible que tenga 542 00:26:59,010 --> 00:27:00,400 conseguido algunas cosas antes de tiempo. 543 00:27:00,400 --> 00:27:02,730 Así que algunos de los que podría haber funcionado, pero más tarde, algunas cosas no podría tener 544 00:27:02,730 --> 00:27:03,890 sin trabajar. 545 00:27:03,890 --> 00:27:04,600 >> ¿Qué pasa con JavaScript? 546 00:27:04,600 --> 00:27:06,065 ¿Dónde has visto los errores de JavaScript? 547 00:27:06,065 --> 00:27:10,860 548 00:27:10,860 --> 00:27:12,870 En p set 8, cuando recibió un error, ¿cómo lo sabes? 549 00:27:12,870 --> 00:27:13,710 ¿Dónde aparece? 550 00:27:13,710 --> 00:27:15,900 >> AUDIENCIA: En la consola, en la parte inferior. 551 00:27:15,900 --> 00:27:17,650 >> JASON HIRSCHHORN: En el consola, en la parte inferior. 552 00:27:17,650 --> 00:27:20,160 También le daría la número de línea, y que lo haría 553 00:27:20,160 --> 00:27:21,330 mostrará en la parte inferior. 554 00:27:21,330 --> 00:27:24,320 Y JavaScript no se ha ejecutado en el servidor. 555 00:27:24,320 --> 00:27:27,800 JavaScript fue enviada a su ordenador, y luego, cuando llegó el momento de ejecutar el 556 00:27:27,800 --> 00:27:31,670 JavaScript, el código JavaScript se ejecutar línea a línea en el 557 00:27:31,670 --> 00:27:33,410 cliente, de su lado. 558 00:27:33,410 --> 00:27:35,570 No el servidor, el lado del cliente. 559 00:27:35,570 --> 00:27:37,690 >> Y del mismo modo, fue ejecutar línea por línea. 560 00:27:37,690 --> 00:27:40,630 Y luego, cuando se llega a un error, se mostraría en la parte inferior. 561 00:27:40,630 --> 00:27:44,580 Al igual que en PHP, algunos de ellos podrían ejecutar, y entonces usted puede ser que consiga un 562 00:27:44,580 --> 00:27:46,310 error más adelante. 563 00:27:46,310 --> 00:27:49,910 >> Además, un poco de PHP a diferencia, si que tienes un error de JavaScript - 564 00:27:49,910 --> 00:27:52,780 dices que no has hecho la derecha código para un cuadro de alerta - 565 00:27:52,780 --> 00:27:55,800 usted podría mantener el funcionamiento de su programa. 566 00:27:55,800 --> 00:27:58,180 El cuadro de alerta no iba a funcionar, pero su programa estaría bien. 567 00:27:58,180 --> 00:28:00,490 Sólo tal vez esa función sería un fracaso. 568 00:28:00,490 --> 00:28:02,610 >> Así que hay algunos de los más grandes diferencia en términos de cómo estos 569 00:28:02,610 --> 00:28:09,230 idiomas, o cómo el código de programación Puedes escribir en realidad se está evaluando. 570 00:28:09,230 --> 00:28:11,970 También hay otras diferencias en términos de - la mayor diferencia 571 00:28:11,970 --> 00:28:15,590 que hemos visto en términos de variables en los diferentes idiomas. 572 00:28:15,590 --> 00:28:19,660 Entonces, ¿puede alguien darme una diferencia entre las variables 573 00:28:19,660 --> 00:28:20,910 en los tres idiomas? 574 00:28:20,910 --> 00:28:24,802 575 00:28:24,802 --> 00:28:25,770 Sí. 576 00:28:25,770 --> 00:28:27,130 >> AUDIENCIA: En C, son estrictamente escrito. 577 00:28:27,130 --> 00:28:28,550 En los otros dos, que están vagamente escrito. 578 00:28:28,550 --> 00:28:30,040 >> JASON HIRSCHHORN: Y ¿Qué significa eso? 579 00:28:30,040 --> 00:28:31,775 >> AUDIENCIA: Que en C, usted tiene que declarar el tipo de la variable cuando 580 00:28:31,775 --> 00:28:36,140 se declara la variable, como interbool o char. 581 00:28:36,140 --> 00:28:36,990 >> JASON HIRSCHHORN: Excelente. 582 00:28:36,990 --> 00:28:39,780 En C, siempre tuvimos que poner un tipo de una variable. 583 00:28:39,780 --> 00:28:41,360 Y no podíamos mezclar tipos. 584 00:28:41,360 --> 00:28:45,750 No se podía hacer un entero más una cadena. 585 00:28:45,750 --> 00:28:48,760 Pero como hemos visto en otros lenguas, en realidad se pueden mezclar tipos, 586 00:28:48,760 --> 00:28:51,230 y usted nunca tiene que dar algo que un tipo, nunca. 587 00:28:51,230 --> 00:28:53,905 >> Entonces, ¿cómo sabemos que las cosas son variables en PHP y JavaScript? 588 00:28:53,905 --> 00:28:57,120 589 00:28:57,120 --> 00:28:58,685 >> AUDIENCIA: En PHP, empiezan con un signo de dólar. 590 00:28:58,685 --> 00:29:00,810 En JavaScript, cuando se declara ellos, usted tiene que tener un bar. 591 00:29:00,810 --> 00:29:01,760 >> JASON HIRSCHHORN: Así es. 592 00:29:01,760 --> 00:29:03,535 Así que en PHP, empiezan con un signo de dólar. 593 00:29:03,535 --> 00:29:06,300 En JavaScript, ellos tienen que tener bar, aunque a veces no lo hacen en realidad 594 00:29:06,300 --> 00:29:07,520 tiene que tener bar. 595 00:29:07,520 --> 00:29:09,240 Pero eso es correcto. 596 00:29:09,240 --> 00:29:13,300 >> Así que eso es una gran diferencia entre las variables. 597 00:29:13,300 --> 00:29:16,140 Creo que esos son probablemente, fuera de la la parte superior de mi cabeza, los dos más grandes 598 00:29:16,140 --> 00:29:19,250 diferencias entre estos tres idiomas. 599 00:29:19,250 --> 00:29:20,594 Pero, sí. 600 00:29:20,594 --> 00:29:24,720 >> AUDIENCIA: Y el ámbito de las variables C se limita a las llaves, 601 00:29:24,720 --> 00:29:27,760 donde los demás, que es como, muere si es sólo una función, 602 00:29:27,760 --> 00:29:29,650 pero por lo demás, es - 603 00:29:29,650 --> 00:29:30,240 >> JASON HIRSCHHORN: Así es. 604 00:29:30,240 --> 00:29:36,780 Así ámbito de aplicación es ligeramente diferente en C. Como Te acuerdas, las llaves definen 605 00:29:36,780 --> 00:29:37,710 el ámbito de las variables. 606 00:29:37,710 --> 00:29:41,680 Así que si se define dentro de un if condición, que está dentro de un bucle for, 607 00:29:41,680 --> 00:29:44,290 la variable sólo existe allí. 608 00:29:44,290 --> 00:29:47,760 >> En JavaScript, si se define una variable dentro de una condición if - 609 00:29:47,760 --> 00:29:50,750 dentro de un bucle for - que va a existir para esa función, pero no va a existir 610 00:29:50,750 --> 00:29:52,330 fuera de esa función. 611 00:29:52,330 --> 00:29:59,250 Así ámbito de aplicación es un poco más flexible en JavaScript y PHP. 612 00:29:59,250 --> 00:30:00,500 Eso responde a la pregunta? 613 00:30:00,500 --> 00:30:03,110 614 00:30:03,110 --> 00:30:04,635 Bueno, alguna otra pregunta? 615 00:30:04,635 --> 00:30:07,260 616 00:30:07,260 --> 00:30:08,865 Podemos hacer cuatro minutos más de preguntas, a continuación, 617 00:30:08,865 --> 00:30:10,740 vamos a saltar a la codificación. 618 00:30:10,740 --> 00:30:12,645 >> AUDIENCIA: ¿Podemos ir a Ajax y hablar de lo que es eso? 619 00:30:12,645 --> 00:30:15,670 620 00:30:15,670 --> 00:30:17,800 >> JASON HIRSCHHORN: Hable con Avi después. 621 00:30:17,800 --> 00:30:19,170 Él hizo esa pregunta antes. 622 00:30:19,170 --> 00:30:19,630 >> AUDIENCIA: Mi mal. 623 00:30:19,630 --> 00:30:20,880 >> JASON HIRSCHHORN: No se preocupe. 624 00:30:20,880 --> 00:30:22,740 625 00:30:22,740 --> 00:30:24,290 >> AUDIENCIA: ¿Qué es exactamente JSON? 626 00:30:24,290 --> 00:30:28,360 627 00:30:28,360 --> 00:30:28,900 >> JASON HIRSCHHORN: ¿Qué es JSON? 628 00:30:28,900 --> 00:30:29,930 ¿Cuál es tu pregunta? 629 00:30:29,930 --> 00:30:31,350 >> AUDIENCIA: Sólo muy rápido, la diferencia entre los 630 00:30:31,350 --> 00:30:32,870 print y echo en PHP. 631 00:30:32,870 --> 00:30:36,200 632 00:30:36,200 --> 00:30:38,490 >> JASON HIRSCHHORN: ¿Por qué no buscas en google la diferencia entre la impresión y el eco? 633 00:30:38,490 --> 00:30:40,670 Pequeña diferencia. 634 00:30:40,670 --> 00:30:42,020 No es gran cosa. 635 00:30:42,020 --> 00:30:44,960 Pero definitivamente debe google, y que te voy a dar una buena respuesta. 636 00:30:44,960 --> 00:30:46,910 >> JSON, probablemente más grande de un acuerdo. 637 00:30:46,910 --> 00:30:49,300 Soportes para JavaScript Object Notation. 638 00:30:49,300 --> 00:30:51,865 Y cuando hemos visto JSON está utilizando? 639 00:30:51,865 --> 00:30:55,110 640 00:30:55,110 --> 00:30:55,900 ¿Cuándo se ha visto - 641 00:30:55,900 --> 00:30:57,400 ¿por qué siquiera conoce la palabra JSON? 642 00:30:57,400 --> 00:30:59,140 ¿Cuándo has visto? 643 00:30:59,140 --> 00:31:02,200 >> AUDIENCIA: Cuando estábamos preparando las cotizaciones de acciones de las finanzas. 644 00:31:02,200 --> 00:31:02,690 >> JASON HIRSCHHORN: Así que viste cuando usted estaba recibiendo 645 00:31:02,690 --> 00:31:04,830 las cotizaciones de acciones de las finanzas. 646 00:31:04,830 --> 00:31:07,340 ¿Y por qué has visto? 647 00:31:07,340 --> 00:31:09,000 >> AUDIENCIA: Cuando nos recuperamos toda la información que 648 00:31:09,000 --> 00:31:10,400 llegó en ese formato. 649 00:31:10,400 --> 00:31:11,700 >> JASON HIRSCHHORN: Así que te lo dan - 650 00:31:11,700 --> 00:31:12,540 sí. 651 00:31:12,540 --> 00:31:13,020 Adelante. 652 00:31:13,020 --> 00:31:15,210 >> AUDIENCIA: [inaudible] información de un objeto? 653 00:31:15,210 --> 00:31:17,170 >> JASON HIRSCHHORN: Tanto de los que reunido es la respuesta 654 00:31:17,170 --> 00:31:18,100 estamos buscando. 655 00:31:18,100 --> 00:31:21,240 ¿Quieres información de esta otra página web. 656 00:31:21,240 --> 00:31:23,790 Y es de esperar que cuando estás conseguir esa información, sería 657 00:31:23,790 --> 00:31:26,720 presentado a usted en algún tipo de formato normalizado. 658 00:31:26,720 --> 00:31:29,530 >> Todo el mundo es probablemente familiar con valores separados por comas. 659 00:31:29,530 --> 00:31:32,970 Puede exportar una hoja de cálculo de Excel o cualquier tipo de hoja de cálculo como una lista de 660 00:31:32,970 --> 00:31:34,540 Valores separados por comas. 661 00:31:34,540 --> 00:31:37,370 Y las comas dividen todo los diferentes campos. 662 00:31:37,370 --> 00:31:38,780 JavaScript Object Notation - 663 00:31:38,780 --> 00:31:39,440 JSON - 664 00:31:39,440 --> 00:31:43,540 es otro tipo de estandarizada el diseño de las cosas. 665 00:31:43,540 --> 00:31:49,010 Y eso es a menudo cómo nos recuperamos información de nuestras consultas Ajax. 666 00:31:49,010 --> 00:31:51,770 >> Así que en este caso, lo conseguimos desde el sitio de Yahoo. 667 00:31:51,770 --> 00:31:53,600 Vuelven las cosas a nosotros en un objeto JSON. 668 00:31:53,600 --> 00:31:56,790 Y entonces lo que sabemos, porque es una norma, lo que es 669 00:31:56,790 --> 00:31:57,250 va a parecer. 670 00:31:57,250 --> 00:32:00,760 Así que podemos recorrer el array que se devuelve a nosotros, la gran variedad de 671 00:32:00,760 --> 00:32:03,180 objetos que se vuelven nosotros. 672 00:32:03,180 --> 00:32:07,770 >> Nosotros probablemente necesitamos conocer las claves, pero por lo general le dan 673 00:32:07,770 --> 00:32:11,370 documentación en el sitio web cuando usted está trayendo un poco de JSON 674 00:32:11,370 --> 00:32:12,170 notación para ellos. 675 00:32:12,170 --> 00:32:16,940 Del mismo modo, puede JSON codificar un objeto. 676 00:32:16,940 --> 00:32:19,900 Así que hay una función de JSON subrayar codificar. 677 00:32:19,900 --> 00:32:22,970 Y para que pueda tomar un objeto que que has creado, JSON codificarlo, y 678 00:32:22,970 --> 00:32:26,390 pasarlo a algo otra cosa, si quieres. 679 00:32:26,390 --> 00:32:30,770 Y JSON decodificación también existe para un propósito similar, o para 680 00:32:30,770 --> 00:32:31,780 el propósito opuesto. 681 00:32:31,780 --> 00:32:36,570 >> AUDIENCIA: ¿Necesitamos saber escribir código para las tablas hash y tries? 682 00:32:36,570 --> 00:32:40,300 ¿O sólo tenemos que entender cómo se usan, conceptualmente? 683 00:32:40,300 --> 00:32:44,570 >> JASON HIRSCHHORN: Entonces, levanta la mano si se hizo una tabla hash para p fijó 4 684 00:32:44,570 --> 00:32:46,920 con una lista de enlaces. 685 00:32:46,920 --> 00:32:47,960 O p set 5. 686 00:32:47,960 --> 00:32:49,060 Así que fue una gran mayoría de la gente. 687 00:32:49,060 --> 00:32:50,390 P fijó 5, 6, quién sabe. 688 00:32:50,390 --> 00:32:51,240 Hace mucho tiempo. 689 00:32:51,240 --> 00:32:54,140 >> Así que la gran mayoría de los que hizo tablas hash con listas de enlaces. 690 00:32:54,140 --> 00:32:56,525 Y debido a que esa es probablemente la más enfoque común, y porque pasamos 691 00:32:56,525 --> 00:32:59,460 un montón de tiempo haciendo listas de vínculos y de hash tablas, probablemente debería ser 692 00:32:59,460 --> 00:33:02,600 bastante familiarizado con la forma de código una tabla hash y una lista de enlaces. 693 00:33:02,600 --> 00:33:05,060 >> Y si usted piensa de nuevo a ese problema establecer, en realidad no era 694 00:33:05,060 --> 00:33:06,410 tan duro como usted esperaba. 695 00:33:06,410 --> 00:33:08,120 Y había mucho menos código de lo que esperaba. 696 00:33:08,120 --> 00:33:11,150 697 00:33:11,150 --> 00:33:14,650 Yo diría que usted debe saber codificar una tabla hash o una lista de enlaces. 698 00:33:14,650 --> 00:33:17,010 No es que fuera a invitar a que, necesariamente, pero que debiera 699 00:33:17,010 --> 00:33:19,730 ciertamente saber eso. 700 00:33:19,730 --> 00:33:21,860 >> Además, si se mira a través de los concursos anteriores, ha habido una gran cantidad de 701 00:33:21,860 --> 00:33:26,450 preguntas sobre la escritura de funciones en listas de enlaces o listas doblemente enlazadas. 702 00:33:26,450 --> 00:33:28,370 Esa parece llegar cada año. 703 00:33:28,370 --> 00:33:31,940 Insertar el botón derecho en una lista de enlaces, a la derecha borrar de una lista de enlaces, insertar la derecha 704 00:33:31,940 --> 00:33:33,610 para obtener una lista doblemente enlazada, et cetera. 705 00:33:33,610 --> 00:33:36,170 Así que, me siento muy cómodo diciendo que usted debe saber eso. 706 00:33:36,170 --> 00:33:40,600 >> Para intentarlo, yo diría que debiera sin duda saben cómo funciona, y tal vez 707 00:33:40,600 --> 00:33:43,570 dar un poco de pseudocódigo para saber cómo para codificar y configurarlo. 708 00:33:43,570 --> 00:33:45,600 Pero no sería la peor cosa en el mundo si usted no sabe cómo 709 00:33:45,600 --> 00:33:48,870 codificarlo en C. Sería estupendo si Sabía cómo codificar en C, pero creo 710 00:33:48,870 --> 00:33:52,516 probablemente pseudocódigo para intentarlo haría es lo máximo que se necesita 711 00:33:52,516 --> 00:33:53,270 saber para intentarlo. 712 00:33:53,270 --> 00:33:53,930 >> AUDIENCIA: Crédito adicional? 713 00:33:53,930 --> 00:33:58,290 >> JASON HIRSCHHORN: Y lo mismo con, si entrar en árboles binarios de búsqueda, es posible que 714 00:33:58,290 --> 00:34:02,320 necesitas - y que ha visto en el pasado, hemos hecho un montón de - usted sabe cómo 715 00:34:02,320 --> 00:34:03,380 árbol binario de búsqueda funciona. 716 00:34:03,380 --> 00:34:07,150 Probablemente debería ser capaz de establecer uno en pseudo-código. 717 00:34:07,150 --> 00:34:10,510 Pero debido a que la gran mayoría de las personas no hizo esto en el problema 718 00:34:10,510 --> 00:34:13,880 conjunto, yo diría que es probablemente menos importante que usted sepa cómo codificar 719 00:34:13,880 --> 00:34:17,380 y establecer un árbol así. 720 00:34:17,380 --> 00:34:19,679 >> ¿Alguna otra pregunta? 721 00:34:19,679 --> 00:34:23,234 También, podemos pedir a ellos a lo largo a medida que avanzamos a través de algunos problemas. 722 00:34:23,234 --> 00:34:27,170 Bien, vamos a seguir adelante. 723 00:34:27,170 --> 00:34:28,230 Saltar esa diapositiva por ahora. 724 00:34:28,230 --> 00:34:32,449 >> Hablando de árboles, que es la primera pregunta que tengo para ustedes. 725 00:34:32,449 --> 00:34:34,270 Debido a que este es un problema. 726 00:34:34,270 --> 00:34:37,380 Yo diría que es muy probable que usted obtener un problema como este en su concurso 727 00:34:37,380 --> 00:34:43,659 pidiéndole que codificar algún tipo de inserción, eliminar, buscar, para un tipo 728 00:34:43,659 --> 00:34:45,270 de estructura de datos que hemos visto. 729 00:34:45,270 --> 00:34:47,719 >> Eso viene cada año y pasamos una mucho tiempo la segunda mitad de este 730 00:34:47,719 --> 00:34:50,270 semestre repasando estos tipos de datos. 731 00:34:50,270 --> 00:34:54,170 Así que ahora mismo, he definido un nodo en un árbol de búsqueda binaria. 732 00:34:54,170 --> 00:34:58,490 Y lo que me gustaría que hicieras es dado un árbol de búsqueda binario que comienza 733 00:34:58,490 --> 00:35:05,450 en este nodo raíz estrella, complete la implementación de la función a continuación, 734 00:35:05,450 --> 00:35:07,430 que pasa a ser una función de búsqueda. 735 00:35:07,430 --> 00:35:09,260 Y hacerlo con y sin recurrencias. 736 00:35:09,260 --> 00:35:10,860 >> Así que quiero que escribas dos funciones. 737 00:35:10,860 --> 00:35:14,310 Una haciendo esto con la recursión, uno haciendo esto sin recursión. 738 00:35:14,310 --> 00:35:18,050 Y no asuma que la raíz será no nula. 739 00:35:18,050 --> 00:35:21,790 Así que estamos buscando para el entero i en el árbol a partir de la raíz, y necesitamos 740 00:35:21,790 --> 00:35:25,280 para escribir esta forma recursiva y de forma iterativa. 741 00:35:25,280 --> 00:35:26,300 Sí. 742 00:35:26,300 --> 00:35:29,730 >> AUDIENCIA: ¿Así que quieres que regresemos verdadera si lo encontramos, y falso si 743 00:35:29,730 --> 00:35:30,480 no lo encuentra. 744 00:35:30,480 --> 00:35:32,160 >> JASON HIRSCHHORN: ¿Cómo lo supiste? 745 00:35:32,160 --> 00:35:33,100 ¿Cómo lo sabes? 746 00:35:33,100 --> 00:35:36,500 >> AUDIENCIA: Me estaba preguntando primero, pero yo estaba asumiendo, porque dice bool en 747 00:35:36,500 --> 00:35:37,490 el principio de la función. 748 00:35:37,490 --> 00:35:37,880 >> JASON HIRSCHHORN: Así es. 749 00:35:37,880 --> 00:35:41,020 Dice bool, por lo que no necesita ni siquiera decirle lo que espero que vuelvas 750 00:35:41,020 --> 00:35:41,350 porque dice allí mismo. 751 00:35:41,350 --> 00:35:42,280 Pero es cierto. 752 00:35:42,280 --> 00:35:43,510 Volver, verdadero o falso. 753 00:35:43,510 --> 00:35:47,630 >> Así que antes de empezar, yo recomendaría, si no está familiarizado con 754 00:35:47,630 --> 00:35:51,300 árboles binarios de búsqueda, dibujo rápidamente una foto de ella para obtener su 755 00:35:51,300 --> 00:35:51,750 la comprensión, a la derecha. 756 00:35:51,750 --> 00:35:54,720 Esto también le ayudará a la hora de escribir su código y revisarla. 757 00:35:54,720 --> 00:35:57,830 Una vez más, usted también no tiene que mucho tiempo en el cuestionario para hacer todas las cosas 758 00:35:57,830 --> 00:35:59,030 que les pedimos que hacer. 759 00:35:59,030 --> 00:36:02,350 Así que escribir pseudocódigo es muy útil. 760 00:36:02,350 --> 00:36:05,310 >> Y por lo general, damos sobre - 761 00:36:05,310 --> 00:36:06,820 si el pseudocódigo es perfectamente correcto, eso es 762 00:36:06,820 --> 00:36:08,910 en general, el 50% en una pregunta. 763 00:36:08,910 --> 00:36:11,410 Así que no es una regla fija, pero si que acaba de escribir pseudocódigo y es 764 00:36:11,410 --> 00:36:13,460 correcta, por lo general es de 50%. 765 00:36:13,460 --> 00:36:14,970 Así que yo siempre recomiendo - 766 00:36:14,970 --> 00:36:16,870 si usted está presionado por el tiempo, o incluso si usted está tratando de averiguarlo - 767 00:36:16,870 --> 00:36:18,290 comenzando con el pseudocódigo. 768 00:36:18,290 --> 00:36:24,840 Y, por último, si usted podría escribir este todos en C, eso sería fantástico. 769 00:36:24,840 --> 00:36:29,010 >> Así que vamos a tomar tres minutos para trabajar en este programa. 770 00:36:29,010 --> 00:36:33,120 Y luego vamos a escribir pseudocódigo para una sola vez, y después 771 00:36:33,120 --> 00:36:35,455 vamos a codificar de forma recursiva y luego iterativamente. 772 00:36:35,455 --> 00:37:28,720 773 00:37:28,720 --> 00:37:30,760 >> Si usted tiene alguna pregunta, por libre de levantar la mano. 774 00:37:30,760 --> 00:37:34,270 Feliz caminar y responderlas antes de empezar como un grupo. 775 00:37:34,270 --> 00:39:22,600 776 00:39:22,600 --> 00:39:27,200 >> Resumamos, y vamos a Pseudocódigo la versión recursiva de 777 00:39:27,200 --> 00:39:29,830 esto, y luego vamos a codificarlo. 778 00:39:29,830 --> 00:39:33,380 Así que una función recursiva necesita dos cosas. 779 00:39:33,380 --> 00:39:35,960 Esto puede ser una pregunta que usted podría pedir. 780 00:39:35,960 --> 00:39:37,950 Necesita dos cosas. 781 00:39:37,950 --> 00:39:40,610 ¿Quién puede levantar la mano y me dice cuáles son las dos cosas que un recursivo 782 00:39:40,610 --> 00:39:43,680 función de las necesidades? 783 00:39:43,680 --> 00:39:45,030 Por definición tiene dos cosas. 784 00:39:45,030 --> 00:39:46,280 ¿Cuáles son esas dos cosas? 785 00:39:46,280 --> 00:39:48,580 786 00:39:48,580 --> 00:39:49,830 Nuevas manos. 787 00:39:49,830 --> 00:39:55,050 788 00:39:55,050 --> 00:39:56,390 Sí, Alden. 789 00:39:56,390 --> 00:39:57,980 >> AUDIENCIA: Así que no estoy muy seguro de si esta es la terminología, pero - 790 00:39:57,980 --> 00:39:59,715 >> JASON HIRSCHHORN: me alegro que está levantando la mano. 791 00:39:59,715 --> 00:40:03,380 >> AUDIENCIA: Se necesita un caso base, y necesita un paso recursivo. 792 00:40:03,380 --> 00:40:03,960 >> JASON HIRSCHHORN: Perfect. 793 00:40:03,960 --> 00:40:06,340 Necesita de un caso base y un paso recursivo. 794 00:40:06,340 --> 00:40:10,430 ¿Cuál es nuestro caso base aquí? 795 00:40:10,430 --> 00:40:12,950 >> AUDIENCIA: root F es igual a es igual a nulo. 796 00:40:12,950 --> 00:40:15,110 Lo siento, sólo en pseudocódigo, si es nulo. 797 00:40:15,110 --> 00:40:16,360 Si la raíz es nulo. 798 00:40:16,360 --> 00:40:21,900 799 00:40:21,900 --> 00:40:23,540 >> JASON HIRSCHHORN: Si la raíz es nulo. 800 00:40:23,540 --> 00:40:23,850 Eso es excelente. 801 00:40:23,850 --> 00:40:24,610 Ese es nuestro caso base. 802 00:40:24,610 --> 00:40:25,910 Eso es lo que vamos para comprobar en todo momento. 803 00:40:25,910 --> 00:40:28,000 Y caso base es el lo primero que haces. 804 00:40:28,000 --> 00:40:29,720 Si usted choca con la hipótesis de base, ya está hecho. 805 00:40:29,720 --> 00:40:34,140 >> Ahora necesitamos nuestra llamada recursiva, y me dispuesto a apostar que necesitamos un par 806 00:40:34,140 --> 00:40:35,440 recursiva se llama aquí. 807 00:40:35,440 --> 00:40:39,630 Debido a que es un árbol, y nos podría ir de muchas maneras. 808 00:40:39,630 --> 00:40:43,190 Así que si la raíz es nulo, estamos bien. 809 00:40:43,190 --> 00:40:44,970 >> ¿Qué propones? 810 00:40:44,970 --> 00:40:49,640 Y ahora voy a empezar a llamar a cabo en ustedes, porque sé que ustedes 811 00:40:49,640 --> 00:40:50,540 todos lo saben. 812 00:40:50,540 --> 00:40:52,610 Pero Annie, ¿qué debe la siguiente línea a ser? 813 00:40:52,610 --> 00:40:53,570 ¿Y si lo encontramos? 814 00:40:53,570 --> 00:40:55,526 ¿Qué hacemos? 815 00:40:55,526 --> 00:40:57,300 >> AUDIENCIA: Si nos encontramos? 816 00:40:57,300 --> 00:40:59,160 >> JASON HIRSCHHORN: O lo que debe ser que - 817 00:40:59,160 --> 00:41:02,124 dame el pseudocódigo para la línea en la que nos encontramos. 818 00:41:02,124 --> 00:41:04,700 >> AUDIENCIA: Si i es igual a la raíz i? 819 00:41:04,700 --> 00:41:06,650 >> JASON HIRSCHHORN: Y entonces, ¿qué hacemos? 820 00:41:06,650 --> 00:41:07,590 >> AUDIENCIA: Devuelve true. 821 00:41:07,590 --> 00:41:08,530 >> JASON HIRSCHHORN: Muy bien. 822 00:41:08,530 --> 00:41:16,890 Así que si i es i - 823 00:41:16,890 --> 00:41:17,400 oh, los dos están llamados i. 824 00:41:17,400 --> 00:41:18,470 Eso hace confuso. 825 00:41:18,470 --> 00:41:23,830 Pero si i es i return true. 826 00:41:23,830 --> 00:41:25,620 Esa es probablemente la próxima Lo que debemos hacer. 827 00:41:25,620 --> 00:41:27,300 Tiene sentido. 828 00:41:27,300 --> 00:41:30,610 >> Bien, ahora que no hemos hecho nuestro recursiva llame sin embargo, sin embargo, porque una recursiva 829 00:41:30,610 --> 00:41:32,300 llamada llamara esta función de nuevo. 830 00:41:32,300 --> 00:41:41,460 Entonces, ¿qué debe el siguiente línea de pseudocódigo a ser? 831 00:41:41,460 --> 00:41:42,730 Anna. 832 00:41:42,730 --> 00:41:43,980 >> AUDIENCIA: El lado izquierdo. 833 00:41:43,980 --> 00:41:47,040 834 00:41:47,040 --> 00:41:47,590 >> JASON HIRSCHHORN: Sea específico, sin embargo. 835 00:41:47,590 --> 00:41:50,600 Este es un árbol binario de búsqueda, así que lo que no el control de la parte izquierda implicaría? 836 00:41:50,600 --> 00:41:51,890 >> AUDIENCIA: Así nodo - 837 00:41:51,890 --> 00:41:53,342 Lo siento, la raíz. 838 00:41:53,342 --> 00:41:55,306 Y luego la flecha izquierda. 839 00:41:55,306 --> 00:41:59,234 840 00:41:59,234 --> 00:42:00,720 Nodo, nodo, lo siento. 841 00:42:00,720 --> 00:42:01,978 No estoy leyendo correctamente. 842 00:42:01,978 --> 00:42:05,700 Se llama nodo, ¿verdad? 843 00:42:05,700 --> 00:42:09,270 >> JASON HIRSCHHORN: Se llamará root en esa función, pero de cualquier manera. 844 00:42:09,270 --> 00:42:10,925 El lado izquierdo - ¿Sí? 845 00:42:10,925 --> 00:42:13,780 >> AUDIENCIA: Si no lo hace igual i, a continuación, vamos a llamar a 846 00:42:13,780 --> 00:42:15,130 la función de nuevo? 847 00:42:15,130 --> 00:42:15,490 >> JASON HIRSCHHORN: Eso es correcto. 848 00:42:15,490 --> 00:42:17,870 Si no lo hace igual i, vamos para llamar a la función. 849 00:42:17,870 --> 00:42:21,435 Pero, ¿qué lado del árbol vamos llamar a la función de nuevo? 850 00:42:21,435 --> 00:42:22,685 >> AUDIENCIA: En el lado izquierdo. 851 00:42:22,685 --> 00:42:25,932 852 00:42:25,932 --> 00:42:27,670 >> JASON HIRSCHHORN: No estamos siempre vamos a llamar a la izquierda, si 853 00:42:27,670 --> 00:42:29,190 no es igual que. 854 00:42:29,190 --> 00:42:29,610 >> AUDIENCIA: Oh, lo siento. 855 00:42:29,610 --> 00:42:31,200 Llame a la derecha. 856 00:42:31,200 --> 00:42:33,680 >> JASON HIRSCHHORN: Queremos saber específicamente, sin embargo - recuerda, en un 857 00:42:33,680 --> 00:42:37,700 árbol binario de búsqueda, todo para el lado izquierdo es más pequeño. 858 00:42:37,700 --> 00:42:40,460 Todo a la derecha lado es mayor. 859 00:42:40,460 --> 00:42:43,990 Así que no es sólo - sí, adelante. 860 00:42:43,990 --> 00:42:46,805 >> AUDIENCIA: Si es menos de i, entonces - 861 00:42:46,805 --> 00:42:52,130 862 00:42:52,130 --> 00:42:53,380 si es en la izquierda - 863 00:42:53,380 --> 00:42:56,160 864 00:42:56,160 --> 00:42:58,606 >> JASON HIRSCHHORN: Así que si RI es inferior a - 865 00:42:58,606 --> 00:43:01,854 866 00:43:01,854 --> 00:43:09,110 por lo que si nuestro número es menor que yo, de qué lado queremos ir? 867 00:43:09,110 --> 00:43:15,120 >> AUDIENCIA: Queremos ir en el lado derecho. 868 00:43:15,120 --> 00:43:16,250 >> JASON HIRSCHHORN: Queremos ir - 869 00:43:16,250 --> 00:43:19,210 permítanme llamar un árbol rápido. 870 00:43:19,210 --> 00:43:23,850 Si esto es 5, este será 3. 871 00:43:23,850 --> 00:43:29,410 Así que si ri es inferior a cinco, lo que lado queremos ir? 872 00:43:29,410 --> 00:43:30,390 >> AUDIENCIA: Perdona, ¿qué? 873 00:43:30,390 --> 00:43:33,190 >> JASON HIRSCHHORN: Nuestro número es menor que el número que estamos 874 00:43:33,190 --> 00:43:34,710 mirando ahora. 875 00:43:34,710 --> 00:43:35,890 >> AUDIENCIA: Oh, entonces queremos para ir a la parte izquierda. 876 00:43:35,890 --> 00:43:36,240 Sí. 877 00:43:36,240 --> 00:43:36,920 Lo siento. 878 00:43:36,920 --> 00:43:37,230 >> JASON HIRSCHHORN: Exactamente. 879 00:43:37,230 --> 00:43:38,480 No hay problema. 880 00:43:38,480 --> 00:43:41,020 En el árbol binario de búsqueda, todo menor es a la izquierda, 881 00:43:41,020 --> 00:43:42,110 mayor está a la derecha. 882 00:43:42,110 --> 00:43:46,700 Así que si nuestro número es menor que el i estamos comprobando - 883 00:43:46,700 --> 00:43:48,790 porque se ve en el nodo, que tiene un i - 884 00:43:48,790 --> 00:43:50,040 entonces usted quiere ir a la izquierda. 885 00:43:50,040 --> 00:43:55,480 886 00:43:55,480 --> 00:43:56,720 >> Y esta es una tarea fácil. 887 00:43:56,720 --> 00:44:01,700 ¿Qué es la otra línea de pseudocódigo tenemos que escribir? 888 00:44:01,700 --> 00:44:02,910 Carlos? 889 00:44:02,910 --> 00:44:05,970 >> AUDIENCIA: La misma cosa, que acaba de cambiar a un signo mayor que 890 00:44:05,970 --> 00:44:07,420 y vaya a la derecha. 891 00:44:07,420 --> 00:44:08,350 >> JASON HIRSCHHORN: ¿Puede usted decir que una vez más? 892 00:44:08,350 --> 00:44:11,640 >> AUDIENCIA: Si nuestro número es mayor que yo, voy a la derecha. 893 00:44:11,640 --> 00:44:24,900 894 00:44:24,900 --> 00:44:26,690 >> JASON HIRSCHHORN: Excelente trabajo en el pseudocódigo. 895 00:44:26,690 --> 00:44:28,700 Vamos a hacer esto en el código real. 896 00:44:28,700 --> 00:44:33,280 Y de nuevo, este pseudocódigo se probablemente conseguirá, porque es 897 00:44:33,280 --> 00:44:35,480 correcta, el 50% en esta cuestión. 898 00:44:35,480 --> 00:44:39,720 Pero este pseudocódigo también se traduce uno a uno, esencialmente, en el código. 899 00:44:39,720 --> 00:44:44,380 >> Así que vamos a hacer esto en C. ¿Quién puede dar mí la primera línea de código? 900 00:44:44,380 --> 00:44:48,390 En realidad, en primer lugar, antes de que haga que, deja, echaré sobre - 901 00:44:48,390 --> 00:44:49,260 >> AUDIENCIA: Tengo una pregunta. 902 00:44:49,260 --> 00:44:52,430 ¿Por qué se aplica sangría a la línea que te di? 903 00:44:52,430 --> 00:44:54,160 >> JASON HIRSCHHORN: Porque Yo no podía escribir. 904 00:44:54,160 --> 00:44:55,240 No se. 905 00:44:55,240 --> 00:44:55,650 Tienes razón. 906 00:44:55,650 --> 00:44:57,780 Esa línea debe estar allí. 907 00:44:57,780 --> 00:45:11,600 908 00:45:11,600 --> 00:45:14,480 >> Bien, aquí es nuestra función. 909 00:45:14,480 --> 00:45:18,090 Y permítanme detengo, también, nuestra definición de un nodo. 910 00:45:18,090 --> 00:45:23,320 911 00:45:23,320 --> 00:45:27,180 ¿Qué pasa si no lo hiciéramos escribir typedef? 912 00:45:27,180 --> 00:45:30,240 ¿Alguien sabe? 913 00:45:30,240 --> 00:45:32,570 >> AUDIENCIA: No sería compilar. 914 00:45:32,570 --> 00:45:33,860 >> JASON HIRSCHHORN: sería compilar, sí. 915 00:45:33,860 --> 00:45:37,120 >> AUDIENCIA: ¿Sería justo declarar una instancia en lugar de convertirlo en un nuevo 916 00:45:37,120 --> 00:45:39,840 tipo usted puede declarar múltiple casos de? 917 00:45:39,840 --> 00:45:41,700 >> JASON HIRSCHHORN: Así que no lo haría saber - que no lo haría 918 00:45:41,700 --> 00:45:43,120 simplemente declarar un tipo. 919 00:45:43,120 --> 00:45:46,150 Usted todavía puede hacer una gran cantidad de nodos. 920 00:45:46,150 --> 00:45:48,070 >> AUDIENCIA: Pero, ¿no tenemos que escribir struct nodo cada vez? 921 00:45:48,070 --> 00:45:48,640 >> JASON HIRSCHHORN: Eso es correcto. 922 00:45:48,640 --> 00:45:50,960 Usted tendría que escribir nodo struct cada vez, en lugar de sólo nodo. 923 00:45:50,960 --> 00:45:55,270 Pero con typedef, usted puede apenas escribir nodo cada vez. 924 00:45:55,270 --> 00:45:58,240 Bueno, ¿quién no ha dado - sí, Avica. 925 00:45:58,240 --> 00:46:01,520 >> AUDIENCIA: Si la raíz es igual a los iguales null, devuelve false. 926 00:46:01,520 --> 00:46:07,130 927 00:46:07,130 --> 00:46:09,490 >> JASON HIRSCHHORN: Grande, y ese es nuestro caso base. 928 00:46:09,490 --> 00:46:11,200 La siguiente línea de código. 929 00:46:11,200 --> 00:46:13,999 Alguien que no ha dado me una línea de código todavía? 930 00:46:13,999 --> 00:46:14,945 Sí. 931 00:46:14,945 --> 00:46:23,360 >> AUDIENCIA: Root flecha i es igual igual a i. 932 00:46:23,360 --> 00:46:27,260 A continuación, vuelva realidad. 933 00:46:27,260 --> 00:46:29,162 >> JASON HIRSCHHORN: Muy bien. 934 00:46:29,162 --> 00:46:32,048 Siguiente línea? 935 00:46:32,048 --> 00:46:32,790 Sí. 936 00:46:32,790 --> 00:46:34,010 ¿Alguien más? 937 00:46:34,010 --> 00:46:36,774 Y entonces usted puede ir a continuación. 938 00:46:36,774 --> 00:46:44,820 >> AUDIENCIA: Porque si la raíz de flecha i es menor que vuelvo 939 00:46:44,820 --> 00:46:47,737 función llamada find root - 940 00:46:47,737 --> 00:46:50,611 >> JASON HIRSCHHORN: Lo siento. 941 00:46:50,611 --> 00:46:56,272 >> AUDIENCIA: root hallazgo Retorno apunta a la izquierda coma i. 942 00:46:56,272 --> 00:47:01,760 943 00:47:01,760 --> 00:47:08,440 >> JASON HIRSCHHORN: Así que si ri es mayor que la cosa en el árbol, queremos 944 00:47:08,440 --> 00:47:09,573 ir a la izquierda? 945 00:47:09,573 --> 00:47:11,790 >> AUDIENCIA: No, tuve que cambiaron. 946 00:47:11,790 --> 00:47:13,040 >> JASON HIRSCHHORN: ¿Cuál? 947 00:47:13,040 --> 00:47:16,310 948 00:47:16,310 --> 00:47:16,950 >> AUDIENCIA: No, sí. 949 00:47:16,950 --> 00:47:19,050 Tengo menos de firmar allí. 950 00:47:19,050 --> 00:47:22,890 >> JASON HIRSCHHORN: Correcto, si ri es menos de lo que está en la raíz - 951 00:47:22,890 --> 00:47:25,660 nuestra raíz actual - entonces quiero ir a la izquierda. 952 00:47:25,660 --> 00:47:26,960 ¿Y cuál es la última línea, ¿verdad? 953 00:47:26,960 --> 00:47:30,930 >> AUDIENCIA: Básicamente lo mismo, excepto conmutar el mayor o 954 00:47:30,930 --> 00:47:34,690 igual a menos de y de izquierda a derecha. 955 00:47:34,690 --> 00:47:43,590 956 00:47:43,590 --> 00:47:43,680 >> JASON HIRSCHHORN: Excelente. 957 00:47:43,680 --> 00:47:48,430 ¿Alguien tiene alguna pregunta acerca de esto? 958 00:47:48,430 --> 00:47:52,560 Por lo que algunas otras cosas que haría han sido correctas, es que 959 00:47:52,560 --> 00:47:53,810 podría ser el-ltiff. 960 00:47:53,810 --> 00:47:56,520 961 00:47:56,520 --> 00:47:59,520 Supongo que, técnicamente, ninguna de estas Realmente también necesitan ser ltiff. 962 00:47:59,520 --> 00:48:00,950 >> Además, hay probablemente sólo un caso aquí. 963 00:48:00,950 --> 00:48:02,380 Así que eso es probablemente su último caso. 964 00:48:02,380 --> 00:48:04,000 Usted ni siquiera necesita que-ltiff. 965 00:48:04,000 --> 00:48:06,160 Pero probablemente bueno para escribir que, para ser claros. 966 00:48:06,160 --> 00:48:06,660 Sí. 967 00:48:06,660 --> 00:48:09,200 >> AUDIENCIA: ¿Entonces usted no cree que el concurso - si hacemos errores, por ejemplo, 968 00:48:09,200 --> 00:48:11,725 en la sintaxis - 969 00:48:11,725 --> 00:48:13,990 pequeños errores de sintaxis - 970 00:48:13,990 --> 00:48:17,810 ¿cómo que se ocupaban en el concurso? 971 00:48:17,810 --> 00:48:21,300 >> JASON HIRSCHHORN: Por lo general en el examen, pequeños errores de sintaxis o pequeño 972 00:48:21,300 --> 00:48:24,010 errores de estilo no pierdes puntos. 973 00:48:24,010 --> 00:48:26,610 Así que si se le olvidó un punto y coma aquí, no estaría mal. 974 00:48:26,610 --> 00:48:30,290 Si usted se olvidó de cerrar este paréntesis, que estaría bien. 975 00:48:30,290 --> 00:48:34,880 >> Errores de sintaxis enormes que alteran la significado funcional de su código 976 00:48:34,880 --> 00:48:37,600 drásticamente, podría obtener quitado puntos por. 977 00:48:37,600 --> 00:48:40,330 O por lo general, sólo de clasificación sobre la conveniencia o no de su 978 00:48:40,330 --> 00:48:42,150 funciones de código, incluso - 979 00:48:42,150 --> 00:48:44,830 no su diseño tanto, y no su estilo. 980 00:48:44,830 --> 00:48:50,780 981 00:48:50,780 --> 00:48:55,480 >> Ahora vamos a codificar una iterativo versión del hallazgo. 982 00:48:55,480 --> 00:49:00,400 983 00:49:00,400 --> 00:49:03,450 Así que va a ser muy similar, pero Hay ciertamente va a ser 984 00:49:03,450 --> 00:49:06,250 algunas diferencias clave. 985 00:49:06,250 --> 00:49:09,160 Sin embargo, nuestra pseudocódigo probablemente puede ir - 986 00:49:09,160 --> 00:49:11,610 todavía podemos tener una línea de la pseudocódigo y averiguar lo que el 987 00:49:11,610 --> 00:49:14,160 la línea es en este caso. 988 00:49:14,160 --> 00:49:18,010 >> Así que en una versión iterativa, lo que Qué te parece, Julia, en caso de 989 00:49:18,010 --> 00:49:19,260 ser la primera línea? 990 00:49:19,260 --> 00:49:23,100 991 00:49:23,100 --> 00:49:26,920 >> AUDIENCIA: Una vez más, en boolean iterativo, que necesita para crear un bucle, ¿verdad? 992 00:49:26,920 --> 00:49:27,660 >> JASON HIRSCHHORN: OK. 993 00:49:27,660 --> 00:49:38,480 >> AUDIENCIA: Así que por igual, k, para x es igual a 0, x es menor que yo. 994 00:49:38,480 --> 00:49:42,260 O No, x es menor que el tamaño del árbol. 995 00:49:42,260 --> 00:49:42,760 >> JASON HIRSCHHORN: El árbol. 996 00:49:42,760 --> 00:49:46,660 Así que realmente no sabemos el tamaño de la árbol, y nosotros no sabemos realmente por 997 00:49:46,660 --> 00:49:48,900 ¿cuántas veces se puede ir, así que ¿qué es un diferente tipo de bucle que puede ser 998 00:49:48,900 --> 00:49:50,150 mejor en este caso? 999 00:49:50,150 --> 00:49:53,250 1000 00:49:53,250 --> 00:49:55,244 >> AUDIENCIA: Si otra persona? 1001 00:49:55,244 --> 00:49:57,070 >> JASON HIRSCHHORN: Si otra persona no puede ser un bucle. 1002 00:49:57,070 --> 00:49:58,935 Entonces, ¿qué es un tipo de lazo que puede simplemente vaya hasta que se cumpla algún caso? 1003 00:49:58,935 --> 00:50:07,250 1004 00:50:07,250 --> 00:50:11,560 ¿Cuál es el único otro tipo de bucle en C, además de un bucle? 1005 00:50:11,560 --> 00:50:11,930 >> AUDIENCIA: While. 1006 00:50:11,930 --> 00:50:13,380 >> JASON HIRSCHHORN: Mientras, exactamente. 1007 00:50:13,380 --> 00:50:16,430 En un bucle de tiempo, no se necesita saber cómo - 1008 00:50:16,430 --> 00:50:18,450 un bucle while y for loop pueden hacer el exactamente lo mismo, pero lo bueno 1009 00:50:18,450 --> 00:50:21,500 alrededor de un bucle while es que no necesitamos saber qué tan grande es nuestro árbol. 1010 00:50:21,500 --> 00:50:23,060 Así que vamos a ir hasta que lo que? 1011 00:50:23,060 --> 00:50:25,880 1012 00:50:25,880 --> 00:50:28,032 >> AUDIENCIA: Hasta que equivale a el tamaño de - 1013 00:50:28,032 --> 00:50:32,320 >> JASON HIRSCHHORN: Bueno, es muy similar a nuestro caso recursivo. 1014 00:50:32,320 --> 00:50:33,360 Por lo tanto - 1015 00:50:33,360 --> 00:50:36,470 >> AUDIENCIA: Si bien raíz i no es igual a i. 1016 00:50:36,470 --> 00:50:37,620 >> JASON HIRSCHHORN: Eso es muy estrecha. 1017 00:50:37,620 --> 00:50:39,430 Mientras que la raíz i - 1018 00:50:39,430 --> 00:50:40,610 vamos a intentarlo. 1019 00:50:40,610 --> 00:50:41,180 No creo que [inaudible] 1020 00:50:41,180 --> 00:50:43,026 donde root i no es igual a i. 1021 00:50:43,026 --> 00:50:47,380 1022 00:50:47,380 --> 00:50:49,460 Es posible que necesitemos cambiar en un poco poco, pero eso suena como que es bastante 1023 00:50:49,460 --> 00:50:50,160 bueno, por ahora. 1024 00:50:50,160 --> 00:50:51,710 Así que vamos a hacer eso. 1025 00:50:51,710 --> 00:50:55,660 >> Además, recordemos, no podemos asumir por la pregunta. 1026 00:50:55,660 --> 00:50:57,880 No asumir que el raíz será no nula. 1027 00:50:57,880 --> 00:51:01,914 Entonces, ¿qué cree usted que el muy Lo primero que debemos hacer es? 1028 00:51:01,914 --> 00:51:02,770 >> AUDIENCIA: Simplemente hacer lo mismo Lo que antes. 1029 00:51:02,770 --> 00:51:05,260 Si la raíz es igual a los iguales null, devuelve false. 1030 00:51:05,260 --> 00:51:11,030 1031 00:51:11,030 --> 00:51:12,130 >> JASON HIRSCHHORN: Muy bien. 1032 00:51:12,130 --> 00:51:13,820 Así que podría ser nulo. 1033 00:51:13,820 --> 00:51:15,810 Así que queremos deshacernos de ello enseguida. 1034 00:51:15,810 --> 00:51:19,560 Y entonces estamos yendo cheque si raíz i no es igual a i. 1035 00:51:19,560 --> 00:51:24,480 Por lo tanto, decimos que estamos buscando en este árbol para 3, raíz i no i igual, ahora 1036 00:51:24,480 --> 00:51:25,950 estamos en nuestro bucle while. 1037 00:51:25,950 --> 00:51:27,500 ¿Qué queremos hacer? 1038 00:51:27,500 --> 00:51:32,320 1039 00:51:32,320 --> 00:51:35,430 Y de nuevo, va a ser bastante similar a la nuestra versión recursiva. 1040 00:51:35,430 --> 00:51:36,230 Sí. 1041 00:51:36,230 --> 00:51:40,470 >> AUDIENCIA: ¿Así que te gustaría repetir, o seguir por el árbol, siempre y cuando 1042 00:51:40,470 --> 00:51:42,400 la raíz no es igual a nulo. 1043 00:51:42,400 --> 00:51:45,120 1044 00:51:45,120 --> 00:51:46,640 >> JASON HIRSCHHORN: Mientras el raíz no es igual a null? 1045 00:51:46,640 --> 00:51:50,200 >> AUDIENCIA: El guión raíz i no es igual a nulo. 1046 00:51:50,200 --> 00:51:51,220 Sólo la raíz, sí. 1047 00:51:51,220 --> 00:51:52,920 Como siempre y cuando la raíz es no es igual a null. 1048 00:51:52,920 --> 00:51:54,240 >> JASON HIRSCHHORN: ¿Así que quieres para cambiar esto en la raíz 1049 00:51:54,240 --> 00:51:56,590 no es igual a nulo? 1050 00:51:56,590 --> 00:51:59,020 >> AUDIENCIA: Si. 1051 00:51:59,020 --> 00:52:00,800 >> AUDIENCIA: Podríamos combinar estos, ¿no? 1052 00:52:00,800 --> 00:52:02,990 No necesitamos el caso, en un principio. 1053 00:52:02,990 --> 00:52:05,180 >> JASON HIRSCHHORN: OK, así que si no lo hacemos - 1054 00:52:05,180 --> 00:52:08,140 si los combinamos, por lo que vamos a hacer mientras que la raíz no es igual a null, y 1055 00:52:08,140 --> 00:52:10,800 si la raíz pasa a ser nulo en el empezando, ¿qué hacemos aquí? 1056 00:52:10,800 --> 00:52:11,450 >> AUDIENCIA: return false. 1057 00:52:11,450 --> 00:52:12,730 >> JASON HIRSCHHORN: Muy bien. 1058 00:52:12,730 --> 00:52:14,110 Así que de ambas maneras, probablemente habría funcionado. 1059 00:52:14,110 --> 00:52:15,645 Esta es una manera diferente, y esto lo combina. 1060 00:52:15,645 --> 00:52:18,950 Pero, de nuevo, si se hizo de cualquier manera, estamos no va a despegar de diseño 1061 00:52:18,950 --> 00:52:19,800 puntos en el concurso. 1062 00:52:19,800 --> 00:52:21,020 Pero esto se ve bien. 1063 00:52:21,020 --> 00:52:23,940 >> Así, mientras que la raíz no es igual a null, lo que es lo primero 1064 00:52:23,940 --> 00:52:25,400 Lo que queremos comprobar? 1065 00:52:25,400 --> 00:52:26,330 Alguien más? 1066 00:52:26,330 --> 00:52:29,720 Null, ¿qué es lo primero? 1067 00:52:29,720 --> 00:52:32,850 >> AUDIENCIA: Si ri es inferior a - 1068 00:52:32,850 --> 00:52:36,140 oh, supongo, si ya encontrado en la raíz. 1069 00:52:36,140 --> 00:52:40,830 Así que si la raíz flecha i es igual a i - 1070 00:52:40,830 --> 00:52:40,990 >> JASON HIRSCHHORN: ¿Lo sientes? 1071 00:52:40,990 --> 00:52:45,840 >> AUDIENCIA: Si la raíz de flecha i es igual a es igual a i - 1072 00:52:45,840 --> 00:52:47,090 >> JASON HIRSCHHORN: ¿Qué hacemos? 1073 00:52:47,090 --> 00:52:50,300 1074 00:52:50,300 --> 00:52:51,550 >> AUDIENCIA: Devuelve true. 1075 00:52:51,550 --> 00:52:58,850 1076 00:52:58,850 --> 00:52:59,280 >> JASON HIRSCHHORN: Muy bien. 1077 00:52:59,280 --> 00:53:00,530 ¿Y qué es lo siguiente? 1078 00:53:00,530 --> 00:53:04,510 1079 00:53:04,510 --> 00:53:06,843 Jeff, ¿cuál es la siguiente línea de código? 1080 00:53:06,843 --> 00:53:16,190 >> AUDIENCIA: Si i es menor que la raíz de flecha i, entonces es igual a la raíz de la raíz de flecha izquierda. 1081 00:53:16,190 --> 00:53:21,550 >> JASON Hirschhorn: iguales de raíz raíz de flecha izquierda. 1082 00:53:21,550 --> 00:53:24,530 Así que esa es probablemente la mayor diferencia aquí en este iterativo 1083 00:53:24,530 --> 00:53:26,600 la versión opuesta a la versión recursiva. 1084 00:53:26,600 --> 00:53:28,970 La versión recursiva, nos llamar a la función de nuevo. 1085 00:53:28,970 --> 00:53:32,640 Estaremos actualizando root cuando que llamamos la nueva función. 1086 00:53:32,640 --> 00:53:34,170 Aquí no estamos llamando a una nueva función. 1087 00:53:34,170 --> 00:53:37,610 Estamos simplemente actualizar raíz en esta función. 1088 00:53:37,610 --> 00:53:38,880 Eso es excelente. 1089 00:53:38,880 --> 00:53:40,730 ¿Y cuál es la última línea de código? 1090 00:53:40,730 --> 00:53:43,950 1091 00:53:43,950 --> 00:53:44,880 Sí, Mario? 1092 00:53:44,880 --> 00:53:48,290 >> AUDIENCIA: iguales raíz Else raíz de flecha derecha. 1093 00:53:48,290 --> 00:53:49,492 >> JASON HIRSCHHORN: ¿Lo sientes? 1094 00:53:49,492 --> 00:53:52,340 >> Iguales de raíz: AUDIENCIA raíz de flecha derecha. 1095 00:53:52,340 --> 00:53:55,590 1096 00:53:55,590 --> 00:53:57,140 >> JASON HIRSCHHORN: ¿Podría usted también escribir algo como esto? 1097 00:53:57,140 --> 00:54:02,786 1098 00:54:02,786 --> 00:54:03,890 >> AUDIENCIA: No tengo ni idea. 1099 00:54:03,890 --> 00:54:05,140 >> JASON HIRSCHHORN: No se puede. 1100 00:54:05,140 --> 00:54:07,302 1101 00:54:07,302 --> 00:54:08,270 No se puede hacer más iguales. 1102 00:54:08,270 --> 00:54:10,780 OK, así que esto se ve bien. 1103 00:54:10,780 --> 00:54:13,620 ¿Por qué no simplemente lo que para limpiarlo. 1104 00:54:13,620 --> 00:54:15,220 Esto se ve muy bien, y esto iba a funcionar. 1105 00:54:15,220 --> 00:54:16,920 Y nos estallar. 1106 00:54:16,920 --> 00:54:21,460 >> Si la raíz izquierda tenía razón nula o raíz era nulo, llegaríamos hasta aquí. 1107 00:54:21,460 --> 00:54:22,470 Root sería igual a nulo. 1108 00:54:22,470 --> 00:54:24,270 Nos gustaría salir de nuestro bucle, y nos gustaría volver falsa. 1109 00:54:24,270 --> 00:54:26,280 Así que cuando salimos de la bucle, devolverá false. 1110 00:54:26,280 --> 00:54:29,520 1111 00:54:29,520 --> 00:54:32,793 >> Y de nuevo, el bucle de un tiempo era perfecto aquí porque no sabemos cómo 1112 00:54:32,793 --> 00:54:33,850 grande es nuestro árbol. 1113 00:54:33,850 --> 00:54:36,460 Tratamos de escribir el bucle, pero se dio cuenta de que tienes que encontrar la manera 1114 00:54:36,460 --> 00:54:37,410 grande que es antes de tiempo. 1115 00:54:37,410 --> 00:54:38,720 Sí. 1116 00:54:38,720 --> 00:54:41,790 >> AUDIENCIA: Si éste no fuera un binario árbol de búsqueda, sería matemáticas reales-y 1117 00:54:41,790 --> 00:54:44,220 escribirlo de forma iterativa, ¿verdad? 1118 00:54:44,220 --> 00:54:47,170 Al igual que, si se trataba de un árbol, pero no necesariamente - 1119 00:54:47,170 --> 00:54:49,730 por lo que no era todo lo más pequeño a la izquierda, y todo lo grande a la derecha. 1120 00:54:49,730 --> 00:54:52,540 Sería muy difícil iterar sobre ella, ¿verdad? 1121 00:54:52,540 --> 00:54:55,720 Tendríamos que salvar lo que era antes en en el árbol y volver, 1122 00:54:55,720 --> 00:54:56,970 y cosas por el estilo. 1123 00:54:56,970 --> 00:54:59,690 1124 00:54:59,690 --> 00:55:02,010 >> JASON HIRSCHHORN: Si no fuera un binario árbol de búsqueda, si era sólo un 1125 00:55:02,010 --> 00:55:04,740 árbol y las cosas no eran ordenados como esto - 1126 00:55:04,740 --> 00:55:07,440 y nos dimos cuenta antes, cuando Anna nos estaba ayudando a que por lo que es 1127 00:55:07,440 --> 00:55:08,800 ordenado nos ayuda mucho - 1128 00:55:08,800 --> 00:55:12,610 tendríamos que, eso sí, siempre guarde donde estábamos antes. 1129 00:55:12,610 --> 00:55:14,430 Pero podría haber una gran cantidad de donde estábamos previouslys. 1130 00:55:14,430 --> 00:55:17,730 No puede haber una gran cantidad de nodos primarios. 1131 00:55:17,730 --> 00:55:22,530 >> Probablemente la mejor manera de hacerlo sería ser la de seguir empujando las cosas hacia algunos 1132 00:55:22,530 --> 00:55:24,170 tipo de pila o cola. 1133 00:55:24,170 --> 00:55:26,030 Nunca tendría que codificar esta porque es un problema difícil. 1134 00:55:26,030 --> 00:55:30,820 Pero usted empuja algunas cosas en una pila o cola y luego hacerlos estallar apagado, y 1135 00:55:30,820 --> 00:55:31,890 luego evaluarlos. 1136 00:55:31,890 --> 00:55:34,200 >> Y luego tener alguna otra cosa donde en realidad estás poniendo los nodos y 1137 00:55:34,200 --> 00:55:36,090 a continuación, cree que, a continuación, buscar a través de eso. 1138 00:55:36,090 --> 00:55:38,700 Esa podría ser la mejor manera de hacerlo. 1139 00:55:38,700 --> 00:55:42,410 Bueno, cualquier pregunta sobre este problema? 1140 00:55:42,410 --> 00:55:44,670 >> AUDIENCIA: Esta es una nota relacionada. 1141 00:55:44,670 --> 00:55:50,460 ¿Tendremos que comparar los tiempos de ejecución para las tablas de hash, binario 1142 00:55:50,460 --> 00:55:52,160 árboles de búsqueda, etcétera? 1143 00:55:52,160 --> 00:55:54,310 >> JASON HIRSCHHORN: Probablemente. 1144 00:55:54,310 --> 00:55:56,150 Así que vamos a hacer eso muy rápido. 1145 00:55:56,150 --> 00:55:58,490 Tiempo de ejecución para la tabla hash - 1146 00:55:58,490 --> 00:55:59,090 ¿cuáles son los otros? 1147 00:55:59,090 --> 00:56:00,050 Árbol binario? 1148 00:56:00,050 --> 00:56:02,920 >> AUDIENCIA: listas de enlaces. 1149 00:56:02,920 --> 00:56:04,780 >> JASON HIRSCHHORN: OK, vamos a hacerlo de inserción. 1150 00:56:04,780 --> 00:56:09,980 ¿Cuál es el gran O de inserción en una tabla hash? 1151 00:56:09,980 --> 00:56:13,080 1152 00:56:13,080 --> 00:56:15,285 ¿Cuáles son los supuestos usted está haciendo? 1153 00:56:15,285 --> 00:56:17,760 >> AUDIENCIA: Usted está insertando en la a partir de la lista de enlaces. 1154 00:56:17,760 --> 00:56:19,860 >> JASON HIRSCHHORN: Probablemente la primera suposición es que no hay colisiones. 1155 00:56:19,860 --> 00:56:22,340 Si no hay colisiones, entonces el tiempo de inserción es una. 1156 00:56:22,340 --> 00:56:26,560 Si hay colisiones, y ya está haciendo encadenamiento separado e insertando 1157 00:56:26,560 --> 00:56:31,880 al principio de la lista de enlace, a continuación, la inserción es también constante. 1158 00:56:31,880 --> 00:56:34,700 >> Si usted está haciendo una tabla hash, pero usted tener un método diferente de tratar 1159 00:56:34,700 --> 00:56:36,040 con las colisiones, lo que es un método diferente? 1160 00:56:36,040 --> 00:56:41,580 1161 00:56:41,580 --> 00:56:42,960 ¿Qué es de un método diferente de tratar con 1162 00:56:42,960 --> 00:56:44,205 colisión en una tabla hash? 1163 00:56:44,205 --> 00:56:44,915 >> AUDIENCIA: La programación lineal. 1164 00:56:44,915 --> 00:56:45,540 >> JASON HIRSCHHORN: Programación lineal. 1165 00:56:45,540 --> 00:56:47,770 Así que vamos a seguir buscando para el siguiente punto abierto. 1166 00:56:47,770 --> 00:56:50,390 Eso no es tiempo de inserción constante. 1167 00:56:50,390 --> 00:56:52,266 Usted podría tener que pasar por toda la tabla, de modo que 1168 00:56:52,266 --> 00:56:53,936 podría ser gran O de n. 1169 00:56:53,936 --> 00:56:54,740 Sí. 1170 00:56:54,740 --> 00:56:57,690 >> AUDIENCIA: Si no apenas encadenar? 1171 00:56:57,690 --> 00:57:00,160 >> JASON HIRSCHHORN: Hicimos encadenamiento separado. 1172 00:57:00,160 --> 00:57:00,720 Esa fue la primera. 1173 00:57:00,720 --> 00:57:01,560 Eso es lo que la lista de enlaces. 1174 00:57:01,560 --> 00:57:03,720 El nombre de fantasía es encadenamiento separado. 1175 00:57:03,720 --> 00:57:06,880 Podría ser cualquier tipo de estructura de la lista nos ha tocado hacer en la lista de enlaces. 1176 00:57:06,880 --> 00:57:10,490 >> Así que de nuevo, la inserción en una tabla hash podría ser la constante de tiempo. 1177 00:57:10,490 --> 00:57:13,160 ¿Qué pasa con la inserción en una cola apilador? 1178 00:57:13,160 --> 00:57:19,260 1179 00:57:19,260 --> 00:57:20,640 >> AUDIENCIA: ¿No es constante? 1180 00:57:20,640 --> 00:57:21,530 >> JASON HIRSCHHORN: Es la constante de tiempo. 1181 00:57:21,530 --> 00:57:23,420 No eres más que empujar a encenderlo. 1182 00:57:23,420 --> 00:57:24,120 Aceptar. 1183 00:57:24,120 --> 00:57:25,380 Inserción, cuáles eran los otros? 1184 00:57:25,380 --> 00:57:27,100 En un intento? 1185 00:57:27,100 --> 00:57:30,252 ¿Qué es la gran O de inserción en una oportunidad? 1186 00:57:30,252 --> 00:57:32,808 >> AUDIENCIA: La longitud es constante. 1187 00:57:32,808 --> 00:57:34,560 Longitud de los más largos - 1188 00:57:34,560 --> 00:57:36,998 la longitud de la palabra vas a insertar. 1189 00:57:36,998 --> 00:57:38,210 >> JASON HIRSCHHORN: ¿Lo sientes? 1190 00:57:38,210 --> 00:57:39,120 Espera, así que lo que oí? 1191 00:57:39,120 --> 00:57:40,260 Usted dijo -, ¿qué dijiste? 1192 00:57:40,260 --> 00:57:41,650 ¿Cuál fue su respuesta, Marcus? 1193 00:57:41,650 --> 00:57:43,640 >> AUDIENCIA: La longitud de la palabra vas a insertar en caracteres, 1194 00:57:43,640 --> 00:57:45,480 asumiendo que es una prueba de carácter. 1195 00:57:45,480 --> 00:57:46,840 >> JASON HIRSCHHORN: OK, así que la longitud de la palabra. 1196 00:57:46,840 --> 00:57:49,500 Vamos a hacer una suposición de que es una cadena de caracteres. 1197 00:57:49,500 --> 00:57:51,930 Usted ha dicho algo diferente, sin embargo. 1198 00:57:51,930 --> 00:57:55,490 Usted dijo que la longitud de palabra más larga. 1199 00:57:55,490 --> 00:57:57,600 >> AUDIENCIA: Eso es sólo constante, ¿no? 1200 00:57:57,600 --> 00:57:58,440 >> JASON HIRSCHHORN: ¿Por qué sea ​​constante? 1201 00:57:58,440 --> 00:58:00,970 >> AUDIENCIA: Al igual que, si se utiliza gran O notación, entonces no varían en función de 1202 00:58:00,970 --> 00:58:04,680 de la cantidad de cosas que ya están en el intento. 1203 00:58:04,680 --> 00:58:07,344 >> JASON HIRSCHHORN: De modo que lo haría dicen que es la constante de tiempo. 1204 00:58:07,344 --> 00:58:11,840 Es inserción constante, y eso es porque esta idea - 1205 00:58:11,840 --> 00:58:14,820 digamos que tenemos una palabra que es de 45 años, o una palabra que es el 60, que 1206 00:58:14,820 --> 00:58:16,800 tiene un número constante. 1207 00:58:16,800 --> 00:58:21,050 Y que sólo se insertaría en tiempo constante. 1208 00:58:21,050 --> 00:58:26,060 >> En la práctica, sin embargo, no sería, obviamente, suceder en un milisegundo, 1209 00:58:26,060 --> 00:58:26,590 por ejemplo. 1210 00:58:26,590 --> 00:58:28,880 Pero diríamos gran O es constante para intentarlo. 1211 00:58:28,880 --> 00:58:31,330 Y esa es una de sus mayores ventajas. 1212 00:58:31,330 --> 00:58:33,330 >> ¿Qué pasa con la inserción en una lista de vínculos? 1213 00:58:33,330 --> 00:58:37,220 Sólo una, ordenadas lista de enlaces genérico? 1214 00:58:37,220 --> 00:58:37,700 Sí. 1215 00:58:37,700 --> 00:58:38,530 >> AUDIENCIA: yo tenía una pregunta. 1216 00:58:38,530 --> 00:58:42,670 En la prueba, es que alguna vez nos la pida tiempo de inserción que es cuatro pasos, 1217 00:58:42,670 --> 00:58:43,270 o algo así? 1218 00:58:43,270 --> 00:58:44,300 ¿O es sólo - 1219 00:58:44,300 --> 00:58:47,670 cuando dices tiempo de inserción es una, eso sólo significa que la constante de tiempo? 1220 00:58:47,670 --> 00:58:49,770 >> JASON HIRSCHHORN: Sí, lo harían siempre preguntar, ¿es gran O de n? 1221 00:58:49,770 --> 00:58:51,440 Big O de log n? 1222 00:58:51,440 --> 00:58:53,960 N al cuadrado constante. 1223 00:58:53,960 --> 00:58:56,520 Esos son realmente la única los que necesita saber. 1224 00:58:56,520 --> 00:58:58,420 ¿Qué pasa con la inserción en ordenados lista de vínculos? 1225 00:58:58,420 --> 00:58:59,440 >> AUDIENCIA: yo tenía una pregunta - 1226 00:58:59,440 --> 00:58:59,980 una pregunta - 1227 00:58:59,980 --> 00:59:01,060 >> JASON HIRSCHHORN: ¿Cuál es la respuesta a esa pregunta, sin embargo? 1228 00:59:01,060 --> 00:59:02,120 >> AUDIENCIA: Espera, ¿qué lo preguntas? 1229 00:59:02,120 --> 00:59:06,750 >> JASON HIRSCHHORN: ¿Qué es la gran O de inserción en una lista de enlaces ordenados? 1230 00:59:06,750 --> 00:59:07,070 >> AUDIENCIA: One? 1231 00:59:07,070 --> 00:59:09,400 No se espera, sin esperar, n. 1232 00:59:09,400 --> 00:59:11,420 >> JASON HIRSCHHORN: N. Además la lista de enlaces. 1233 00:59:11,420 --> 00:59:12,706 ¿Y cuál era su pregunta? 1234 00:59:12,706 --> 00:59:16,440 >> AUDIENCIA: Así que escribirías o de k o o de 1 para el - 1235 00:59:16,440 --> 00:59:18,150 >> JASON HIRSCHHORN: Oh. 1236 00:59:18,150 --> 00:59:21,830 Me gustaría escribir o de 1, probablemente. 1237 00:59:21,830 --> 00:59:24,160 Había otra estructura de datos eso habría sido bueno. 1238 00:59:24,160 --> 00:59:25,730 Árbol, árbol binario de búsqueda. 1239 00:59:25,730 --> 00:59:27,510 Lo inserción en un árbol binario de búsqueda? 1240 00:59:27,510 --> 00:59:31,190 1241 00:59:31,190 --> 00:59:33,900 >> AUDIENCIA: Login. 1242 00:59:33,900 --> 00:59:39,260 >> JASON HIRSCHHORN: Entonces, ¿cuál es la peor caso en un árbol binario de búsqueda? 1243 00:59:39,260 --> 00:59:45,350 Así que si nos toca empezar a las 5, y cada número es mayor que 5, y luego 1244 00:59:45,350 --> 00:59:48,760 tenemos 5, 7, 9, 11, etcétera. 1245 00:59:48,760 --> 00:59:52,255 En este caso, es básicamente un enlace lista, y tenemos que insertar toda 1246 00:59:52,255 --> 00:59:52,680 la forma en el extremo. 1247 00:59:52,680 --> 00:59:54,350 Así que es gran O de n. 1248 00:59:54,350 --> 00:59:57,720 >> Esa podría ser nuestra peor de los casos en un árbol de búsqueda binaria. 1249 00:59:57,720 --> 01:00:00,890 Obviamente, nunca se construirá un árbol de búsqueda binario con 5 en la 1250 01:00:00,890 --> 01:00:04,270 medio, sabiendo que 5 ser el número más bajo. 1251 01:00:04,270 --> 01:00:08,030 Pero podría ser, si eres empezar desde cero. 1252 01:00:08,030 --> 01:00:10,980 ¿Tiene preguntas sobre esto antes de que pasar a otra pregunta? 1253 01:00:10,980 --> 01:00:11,560 Esa era una buena pregunta. 1254 01:00:11,560 --> 01:00:15,100 Sabría gran O de - 1255 01:00:15,100 --> 01:00:18,620 >> AUDIENCIA: ¿Qué pasa con la búsqueda para los cuatro? 1256 01:00:18,620 --> 01:00:20,400 >> JASON HIRSCHHORN: Definitivamente nos tenía búsqueda y clasificación. 1257 01:00:20,400 --> 01:00:22,160 Hicimos todos los algoritmos, claro. 1258 01:00:22,160 --> 01:00:23,390 Espere, fue que para la prueba 1? 1259 01:00:23,390 --> 01:00:23,980 Fue eso cubierto - 1260 01:00:23,980 --> 01:00:25,860 ¿Ya tiene que pregunta en la prueba 1? 1261 01:00:25,860 --> 01:00:29,650 El gran tiempo de ejecución O de búsqueda binaria, ordenación por inserción, la ordenación de burbuja? 1262 01:00:29,650 --> 01:00:30,160 >> AUDIENCIA: Si. 1263 01:00:30,160 --> 01:00:32,790 >> JASON HIRSCHHORN: Si tuvieras que pregunta sobre la Prueba 0, las probabilidades son que no lo harás 1264 01:00:32,790 --> 01:00:35,180 conseguir exactamente la misma pregunta en la prueba 1. 1265 01:00:35,180 --> 01:00:36,300 Podría ser bueno saber eso. 1266 01:00:36,300 --> 01:00:38,520 Si todo funciona correctamente saber gh ya. 1267 01:00:38,520 --> 01:00:40,740 >> Pero otros tiempos de ejecución logarítmicas son probablemente bueno saberlo. 1268 01:00:40,740 --> 01:00:42,890 Las cosas que no fueron cubiertos en concurso 0. 1269 01:00:42,890 --> 01:00:47,300 Al igual que todos estos operadores en estos tipos de datos abstractos. 1270 01:00:47,300 --> 01:00:50,760 >> OK, vamos a seguir adelante. 1271 01:00:50,760 --> 01:00:52,190 Éste debe ser bastante rápido. 1272 01:00:52,190 --> 01:00:56,170 Y este es un nuevo lenguaje que no tenemos en realidad codificada en antes. 1273 01:00:56,170 --> 01:00:59,300 Esta es una pregunta que pide codificar en PHP. 1274 01:00:59,300 --> 01:01:01,950 Así que considera la matriz PHP a continuación. 1275 01:01:01,950 --> 01:01:06,150 Escribir códigos PHP y / o HTML, que salida a una tabla de dos columnas con TFS 1276 01:01:06,150 --> 01:01:08,810 nombres y casas. 1277 01:01:08,810 --> 01:01:11,600 >> Usted nunca ha hecho esto antes, este problema específico. 1278 01:01:11,600 --> 01:01:16,270 Pero esto debe ser muy familiar para lo que hiciste en el problema conjunto 7. 1279 01:01:16,270 --> 01:01:21,250 Así que yo estaría dispuesto a apostar que será pedido que codificar algo en PHP que 1280 01:01:21,250 --> 01:01:23,880 es muy similar a lo que hicieron en conjunto de problemas 7. 1281 01:01:23,880 --> 01:01:26,300 >> En primer lugar, la matriz no es tan específico. 1282 01:01:26,300 --> 01:01:28,140 ¿Qué tipo de arreglo es esto? 1283 01:01:28,140 --> 01:01:29,080 >> AUDIENCIA: Asociativo. 1284 01:01:29,080 --> 01:01:31,250 >> JASON HIRSCHHORN: Es una matriz asociativa. 1285 01:01:31,250 --> 01:01:33,750 ¿Y cuál es la diferencia entre una array asociativo y un objeto? 1286 01:01:33,750 --> 01:01:41,780 1287 01:01:41,780 --> 01:01:44,857 >> AUDIENCIA: Una matriz de objetos tiene un índice de enteros y una matriz asociativa 1288 01:01:44,857 --> 01:01:47,814 es un índice de una cadena, o algo por el estilo. 1289 01:01:47,814 --> 01:01:50,570 1290 01:01:50,570 --> 01:01:54,880 >> JASON HIRSCHHORN: Así que una gran variedad de objetos tendrían índices de 1291 01:01:54,880 --> 01:01:57,090 enteros, pero un objeto tiene campos. 1292 01:01:57,090 --> 01:02:01,590 Tiene los nombres de campo como nombre, casa, estudiante. 1293 01:02:01,590 --> 01:02:03,720 ¿Tiene una idea? 1294 01:02:03,720 --> 01:02:06,630 >> AUDIENCIA: Bueno, asociativo array es en PHP, ¿verdad? 1295 01:02:06,630 --> 01:02:07,880 Y es objeto en JavaScript? 1296 01:02:07,880 --> 01:02:12,330 1297 01:02:12,330 --> 01:02:14,820 >> JASON HIRSCHHORN: Honestamente, no hay diferencia real entre los dos. 1298 01:02:14,820 --> 01:02:19,540 Ambos tienen cadenas como las llaves, y puede tienen básicamente cualquier cosa como valor. 1299 01:02:19,540 --> 01:02:21,250 Diferentes idiomas llame a uno Lo matriz asociativa, 1300 01:02:21,250 --> 01:02:22,750 una cosa un objeto. 1301 01:02:22,750 --> 01:02:25,960 Así que, honestamente, no existe una verdadera diferencia, pero no hay duda alguna 1302 01:02:25,960 --> 01:02:27,730 diferencias sintácticas entre los dos. 1303 01:02:27,730 --> 01:02:28,200 Sí. 1304 01:02:28,200 --> 01:02:33,580 >> AUDIENCIA: Así es objeto también codifica bajo la campana como una tabla hash, entonces? 1305 01:02:33,580 --> 01:02:35,796 >> JASON HIRSCHHORN: Lo que se hace decir, codificados bajo el capó? 1306 01:02:35,796 --> 01:02:38,017 >> AUDIENCIA: Nos dijeron que asociativo variedad era técnicamente un 1307 01:02:38,017 --> 01:02:39,960 la tabla de hash. 1308 01:02:39,960 --> 01:02:44,510 Así que es objeto también técnicamente una tabla hash? 1309 01:02:44,510 --> 01:02:45,350 >> JASON HIRSCHHORN: Yo no voy para responder a esa pregunta. 1310 01:02:45,350 --> 01:02:46,600 Me pondré en contacto con usted en eso. 1311 01:02:46,600 --> 01:02:48,980 Pero no se me ocurriría, ya sea de los que son como eso. 1312 01:02:48,980 --> 01:02:53,790 Pero, en cualquier forma, matriz asociativa y objeto, en general, la gente usa los 1313 01:02:53,790 --> 01:02:54,910 términos indistintamente. 1314 01:02:54,910 --> 01:02:57,630 En este caso, la parte fría es que usted puede usar las teclas. 1315 01:02:57,630 --> 01:03:00,580 Cadenas como claves, en lugar de sólo números simples. 1316 01:03:00,580 --> 01:03:02,070 >> Así que he estado hablando esto por un rato. 1317 01:03:02,070 --> 01:03:04,090 Con suerte, algunas personas tienen hecho más que empezar en esto. 1318 01:03:04,090 --> 01:03:08,050 Vamos a escribir algo de PHP y HTML código, de modo que tenemos una de dos columnas 1319 01:03:08,050 --> 01:03:11,830 mesa con nombres y casas de TFS. 1320 01:03:11,830 --> 01:03:15,380 >> Bueno, también me gustaría una cabecera remar en esta tabla. 1321 01:03:15,380 --> 01:03:18,410 Así que voy a ir directo en esto. 1322 01:03:18,410 --> 01:03:20,770 Vamos a presentar, nuevo, y vamos a - 1323 01:03:20,770 --> 01:03:27,780 1324 01:03:27,780 --> 01:03:28,320 >> Aceptar. 1325 01:03:28,320 --> 01:03:29,970 ¿Cómo comienzo a una mesa? 1326 01:03:29,970 --> 01:03:32,090 ¿Cuál es la etiqueta, Michael, para iniciar una mesa? 1327 01:03:32,090 --> 01:03:32,890 >> AUDIENCIA: Tabla. 1328 01:03:32,890 --> 01:03:34,020 >> JASON HIRSCHHORN: Tabla. 1329 01:03:34,020 --> 01:03:37,870 Y si abro una etiqueta, lo que más necesito? 1330 01:03:37,870 --> 01:03:39,810 >> AUDIENCIA: A la cabeza? 1331 01:03:39,810 --> 01:03:41,040 O bien, supongo, de clase. 1332 01:03:41,040 --> 01:03:41,730 >> JASON HIRSCHHORN: Así que, lo siento. 1333 01:03:41,730 --> 01:03:45,430 Supongamos que ya hemos escrito doctab, HTML, todas esas cosas. 1334 01:03:45,430 --> 01:03:50,230 Pero si abro esta etiqueta mesa, lo que más debo escribir? 1335 01:03:50,230 --> 01:03:53,450 para validar HTML? 1336 01:03:53,450 --> 01:03:55,000 >> AUDIENCIA: cerrarla. 1337 01:03:55,000 --> 01:03:56,050 >> JASON HIRSCHHORN: Cierre la etiqueta. 1338 01:03:56,050 --> 01:03:57,575 ¿Cómo se escribe una etiqueta de cerca mesa? 1339 01:03:57,575 --> 01:03:59,580 >> AUDIENCIA: Dot slash mesa. 1340 01:03:59,580 --> 01:04:00,960 >> JASON HIRSCHHORN: Raya vertical de mesa, muy bien. 1341 01:04:00,960 --> 01:04:02,730 Probablemente tiene sentido escribir tanto de las juntas porque 1342 01:04:02,730 --> 01:04:03,870 tienes que hacerlo. 1343 01:04:03,870 --> 01:04:08,575 Bueno, si quiero una fila de encabezado, ¿cómo Escribo una fila de encabezado con los títulos? 1344 01:04:08,575 --> 01:04:11,650 1345 01:04:11,650 --> 01:04:19,290 >> AUDIENCIA: ¿Es menos de 10 horas cerca - 1346 01:04:19,290 --> 01:04:21,550 TR, sí. 1347 01:04:21,550 --> 01:04:22,100 >> JASON HIRSCHHORN: TR? 1348 01:04:22,100 --> 01:04:25,080 >> AUDIENCIA: Entonces lo mismo, la barra, sí. 1349 01:04:25,080 --> 01:04:26,610 >> JASON HIRSCHHORN: OK, y dame dos columnas. 1350 01:04:26,610 --> 01:04:30,100 1351 01:04:30,100 --> 01:04:33,210 >> AUDIENCIA: T D? 1352 01:04:33,210 --> 01:04:34,460 >> JASON HIRSCHHORN: OK. 1353 01:04:34,460 --> 01:04:37,730 1354 01:04:37,730 --> 01:04:39,520 Quiero dos columnas. 1355 01:04:39,520 --> 01:04:40,960 ¿Esto me da dos columnas? 1356 01:04:40,960 --> 01:04:43,880 ¿Cuántas columnas es esto? 1357 01:04:43,880 --> 01:04:45,920 Una. 1358 01:04:45,920 --> 01:04:47,170 Así que vamos a copiar y pegar esto. 1359 01:04:47,170 --> 01:04:59,750 1360 01:04:59,750 --> 01:05:03,390 >> Así que en realidad, en el examen, todo este código que hemos escrito hasta ahora era 1361 01:05:03,390 --> 01:05:04,710 realidad que le dan. 1362 01:05:04,710 --> 01:05:06,200 Pero usted debe probablemente todavía saber cómo escribirlo. 1363 01:05:06,200 --> 01:05:06,470 Sí. 1364 01:05:06,470 --> 01:05:10,636 >> AUDIENCIA: Tu casa está entre las dos. 1365 01:05:10,636 --> 01:05:11,130 >> JASON HIRSCHHORN: Boom. 1366 01:05:11,130 --> 01:05:12,720 Se debe ir a la derecha, ¿no? 1367 01:05:12,720 --> 01:05:14,600 Buena decisión. 1368 01:05:14,600 --> 01:05:17,760 Así que de nuevo, todo este código es en realidad que le ha asignado en el examen real. 1369 01:05:17,760 --> 01:05:19,570 Pero es divertido de escribir, y usted debe saber cómo escribirlo. 1370 01:05:19,570 --> 01:05:23,640 Así que aquí es donde usted necesita para iniciar su código. 1371 01:05:23,640 --> 01:05:25,150 ¿Qué necesitamos para escribir aquí? 1372 01:05:25,150 --> 01:05:28,640 1373 01:05:28,640 --> 01:05:30,565 >> Lo sentimos, pero tengo que cambiar el nombre de este archivo. 1374 01:05:30,565 --> 01:05:41,180 1375 01:05:41,180 --> 01:05:44,270 Así que nos ahorramos en un archivo HTML., no en un archivo PHP.. 1376 01:05:44,270 --> 01:05:47,030 Estas cosas no significarían nada en un archivo PHP.. 1377 01:05:47,030 --> 01:05:48,500 Así que estamos en un archivo HTML.. 1378 01:05:48,500 --> 01:05:50,090 ¿Qué es lo primero Tengo que escribir? 1379 01:05:50,090 --> 01:05:52,990 Quiero poner un poco de PHP código en un archivo HTML. 1380 01:05:52,990 --> 01:05:57,300 >> AUDIENCIA: PHP, como otro de zanahoria y signo de interrogación PHP, ¿verdad? 1381 01:05:57,300 --> 01:05:58,310 >> JASON HIRSCHHORN: Muy bien. 1382 01:05:58,310 --> 01:05:59,360 Y ¿cómo puedo terminar eso? 1383 01:05:59,360 --> 01:06:02,510 >> AUDIENCIA: Con un signo de interrogación. 1384 01:06:02,510 --> 01:06:03,120 >> JASON HIRSCHHORN: Eso es genial. 1385 01:06:03,120 --> 01:06:07,090 Esa es la primera cosa que necesito si quiero poner un poco de código PHP en aquí. 1386 01:06:07,090 --> 01:06:11,210 >> AUDIENCIA:. Pensé que un PHP archivo podría tener HTML. 1387 01:06:11,210 --> 01:06:12,290 >> JASON HIRSCHHORN: Si. 1388 01:06:12,290 --> 01:06:15,330 Un archivo PHP. Puede tomar algún HTML y visualizar. 1389 01:06:15,330 --> 01:06:16,450 Ese fue mi error. 1390 01:06:16,450 --> 01:06:18,300 Yo sólo estaba tratando de imitar lo que era en el cuestionario. 1391 01:06:18,300 --> 01:06:21,910 1392 01:06:21,910 --> 01:06:24,720 >> Bueno, lo siento para confundirte. 1393 01:06:24,720 --> 01:06:25,550 Sí, practice.HTML. 1394 01:06:25,550 --> 01:06:27,340 Ahora vamos a poner algo de código PHP pulg 1395 01:06:27,340 --> 01:06:30,530 ¿Cuál es la primera línea de Código PHP debo escribir? 1396 01:06:30,530 --> 01:06:33,360 Voy a ir a través de esta matriz y convertirla en una mesa. 1397 01:06:33,360 --> 01:06:34,600 Sí. 1398 01:06:34,600 --> 01:06:37,160 >> AUDIENCIA: Usted puede utilizar un bucle for H o ​​un bucle for. 1399 01:06:37,160 --> 01:06:38,415 >> JASON HIRSCHHORN: OK, ¿qué Qué quieres usar? 1400 01:06:38,415 --> 01:06:40,720 >> AUDIENCIA: Me gustaría utilizar un bucle for. 1401 01:06:40,720 --> 01:06:48,700 Para, y luego lo hace el signo de dólar i es igual a 0 y coma dólar 1402 01:06:48,700 --> 01:06:51,580 firmar i menor que 2. 1403 01:06:51,580 --> 01:06:55,455 Y entonces coma i dólar firmar i plus plus. 1404 01:06:55,455 --> 01:07:01,890 1405 01:07:01,890 --> 01:07:03,880 >> JASON HIRSCHHORN: ¿Cómo usted sabe utilizar un 2? 1406 01:07:03,880 --> 01:07:10,444 >> AUDIENCIA: Porque había dos matrices asociativas dentro de la más grande 1407 01:07:10,444 --> 01:07:11,960 matriz asociativa. 1408 01:07:11,960 --> 01:07:13,610 >> JASON HIRSCHHORN: Así que lo más grande de no un conjunto asociado. 1409 01:07:13,610 --> 01:07:15,500 Lo más importante es simplemente una matriz normal. 1410 01:07:15,500 --> 01:07:17,380 Pero tienes razón, hay dos matrices asociativas 1411 01:07:17,380 --> 01:07:18,910 dentro de nuestro arsenal más grande. 1412 01:07:18,910 --> 01:07:20,310 Es por eso que utiliza dos. 1413 01:07:20,310 --> 01:07:24,270 Me siento incómodo asumir que son 2, así que lo que es una manera de escribir 1414 01:07:24,270 --> 01:07:26,810 esto sin asumir que son 2? 1415 01:07:26,810 --> 01:07:27,507 >> AUDIENCIA: [inaudible]? 1416 01:07:27,507 --> 01:07:29,165 >> JASON HIRSCHHORN: OK, ¿cómo Cómo se escribe eso? 1417 01:07:29,165 --> 01:07:35,262 >> AUDIENCIA: signo de dólar Foreach tfs o como signo de dólar tf. 1418 01:07:35,262 --> 01:07:38,360 1419 01:07:38,360 --> 01:07:41,960 >> JASON HIRSCHHORN: OK, así que para cada tfs tfs como, quiero, ahora 1420 01:07:41,960 --> 01:07:43,650 de nuevo, tener mi mesa. 1421 01:07:43,650 --> 01:07:45,250 Entonces, ¿quién me puede dar la siguiente línea de código? 1422 01:07:45,250 --> 01:07:52,870 1423 01:07:52,870 --> 01:07:59,810 >> AUDIENCIA: Imprimir y, a continuación, en citas, extremo tr soporte 1424 01:07:59,810 --> 01:08:02,670 soporte, fin de la cita. 1425 01:08:02,670 --> 01:08:05,300 Paréntesis End, y coma. 1426 01:08:05,300 --> 01:08:07,135 >> JASON HIRSCHHORN: OK, y ¿Qué es eso que va a hacer? 1427 01:08:07,135 --> 01:08:08,610 >> AUDIENCIA: Se va a decir, nueva fila. 1428 01:08:08,610 --> 01:08:11,070 Se va a poner el etiquetar para una nueva fila. 1429 01:08:11,070 --> 01:08:13,000 >> JASON HIRSCHHORN: Correcto, este PHP, como hemos hablado antes - esta 1430 01:08:13,000 --> 01:08:22,160 PHP va a ser evaluado, y luego que va a imprimir en el archivo una 1431 01:08:22,160 --> 01:08:26,350 mesa de remolque y, a continuación, que Se evaluará HTML. 1432 01:08:26,350 --> 01:08:27,810 Sólo estamos copiando este HTML que tuvimos aquí. 1433 01:08:27,810 --> 01:08:28,120 Sí. 1434 01:08:28,120 --> 01:08:29,470 >> AUDIENCIA: [inaudible]? 1435 01:08:29,470 --> 01:08:30,290 >> JASON HIRSCHHORN: ¿Lo sientes? 1436 01:08:30,290 --> 01:08:31,240 Está justo aquí. 1437 01:08:31,240 --> 01:08:33,590 Otoño 2012. 1438 01:08:33,590 --> 01:08:35,970 No mire las respuestas, vamos a resolver juntos. 1439 01:08:35,970 --> 01:08:37,330 Así imprimimos fila de la tabla. 1440 01:08:37,330 --> 01:08:38,550 Así que es probable que en el ritmo de las cosas. 1441 01:08:38,550 --> 01:08:41,060 ¿Cuál es la próxima línea de código que necesitamos para escribir? 1442 01:08:41,060 --> 01:08:42,926 Assam, dame la siguiente línea de código. 1443 01:08:42,926 --> 01:08:46,290 >> AUDIENCIA: Es necesario el nombre del tf. 1444 01:08:46,290 --> 01:08:54,319 Tf soportes abiertos comillas nombrar soportes cerrados. 1445 01:08:54,319 --> 01:08:57,310 >> JASON HIRSCHHORN: Déme su nombre. 1446 01:08:57,310 --> 01:08:58,540 >> AUDIENCIA: Usted necesita imprimir eso. 1447 01:08:58,540 --> 01:08:59,790 >> [VOCES interponiendo] 1448 01:08:59,790 --> 01:09:01,963 1449 01:09:01,963 --> 01:09:03,430 >> JASON HIRSCHHORN: OK, ¿Cómo lo imprimo? 1450 01:09:03,430 --> 01:09:04,680 >> [VOCES interponiendo] 1451 01:09:04,680 --> 01:09:08,609 1452 01:09:08,609 --> 01:09:10,350 >> JASON HIRSCHHORN: me falta algo ahora. 1453 01:09:10,350 --> 01:09:12,470 ¿Qué me estoy perdiendo? 1454 01:09:12,470 --> 01:09:13,720 >> AUDIENCIA: Usted necesita un signo de dólar. 1455 01:09:13,720 --> 01:09:15,960 1456 01:09:15,960 --> 01:09:17,210 >> JASON HIRSCHHORN: ¿Qué cosa que me estoy perdiendo? 1457 01:09:17,210 --> 01:09:20,100 1458 01:09:20,100 --> 01:09:21,650 Todos hemos impreso hasta el momento es el tr. 1459 01:09:21,650 --> 01:09:25,589 1460 01:09:25,589 --> 01:09:27,470 >> AUDIENCIA: Cierre el tr después de ella. 1461 01:09:27,470 --> 01:09:28,720 >> JASON HIRSCHHORN: Así que necesitamos para cerrar el TR después. 1462 01:09:28,720 --> 01:09:34,390 1463 01:09:34,390 --> 01:09:37,906 ¿Quién ve lo que nos falta en la línea 16? 1464 01:09:37,906 --> 01:09:39,340 Sí, Anna. 1465 01:09:39,340 --> 01:09:47,050 >> AUDIENCIA: Usted necesita abrir un td y llaves. 1466 01:09:47,050 --> 01:09:49,380 >> JASON HIRSCHHORN: ¿Y dónde ponemos las llaves? 1467 01:09:49,380 --> 01:09:51,790 >> AUDIENCIA: Alrededor del nombre tf. 1468 01:09:51,790 --> 01:09:53,080 >> JASON HIRSCHHORN: ¿Así? 1469 01:09:53,080 --> 01:09:55,420 >> AUDIENCIA: Si. 1470 01:09:55,420 --> 01:09:59,000 Y a continuación, cierre el td. 1471 01:09:59,000 --> 01:10:00,250 >> JASON HIRSCHHORN: ¿Así? 1472 01:10:00,250 --> 01:10:03,370 1473 01:10:03,370 --> 01:10:06,950 >> AUDIENCIA: ¿Necesita comillas marcas al lado de las llaves? 1474 01:10:06,950 --> 01:10:07,460 >> JASON HIRSCHHORN: ¿Aquí mismo? 1475 01:10:07,460 --> 01:10:08,710 No, no lo haces. 1476 01:10:08,710 --> 01:10:10,820 1477 01:10:10,820 --> 01:10:12,550 Así que eso es exactamente correcto. 1478 01:10:12,550 --> 01:10:12,940 Sí. 1479 01:10:12,940 --> 01:10:15,290 >> AUDIENCIA: Así que la diferencia entre ese y encatenating con puntos es, si 1480 01:10:15,290 --> 01:10:18,420 utiliza puntos, usted tendría que tener la comillas dobles, a continuación, un punto, 1481 01:10:18,420 --> 01:10:20,370 entonces el punto - 1482 01:10:20,370 --> 01:10:20,520 >> JASON HIRSCHHORN: Correcto. 1483 01:10:20,520 --> 01:10:23,800 Así que estás diciendo que hay un final manera de escribir esta así. 1484 01:10:23,800 --> 01:10:26,760 1485 01:10:26,760 --> 01:10:28,966 Lo que el operador de concatenación en JavaScript? 1486 01:10:28,966 --> 01:10:31,200 >> AUDIENCIA: Un signo más. 1487 01:10:31,200 --> 01:10:34,710 Usted se olvidó de poner el rizado corsé para la espalda. 1488 01:10:34,710 --> 01:10:35,760 >> JASON HIRSCHHORN: Muy bien. 1489 01:10:35,760 --> 01:10:38,850 Y hay una línea más de código que falta. 1490 01:10:38,850 --> 01:10:40,130 ¿Quién me puede dar la última línea de código que nos falta? 1491 01:10:40,130 --> 01:10:43,940 1492 01:10:43,940 --> 01:10:47,602 >> AUDIENCIA: Sólo exactamente lo mismo, sólo con la casa en lugar del nombre. 1493 01:10:47,602 --> 01:10:52,960 1494 01:10:52,960 --> 01:10:53,450 Gran 1495 01:10:53,450 --> 01:10:54,390 >> JASON HIRSCHHORN: Muy bien. 1496 01:10:54,390 --> 01:10:59,320 Y su sintaxis es exactamente el adecuado para hacer las cosas en una matriz asociativa. 1497 01:10:59,320 --> 01:11:04,450 Así que en la prueba real, usted es realidad dada hasta aquí. 1498 01:11:04,450 --> 01:11:05,710 Así que este código se le dio a usted. 1499 01:11:05,710 --> 01:11:07,750 Todo lo que tenía que escribir eran estos cuatro líneas y recordar a 1500 01:11:07,750 --> 01:11:09,190 cerrar la etiqueta de tabla. 1501 01:11:09,190 --> 01:11:11,370 Ustedes realmente hizo todo eso y más. 1502 01:11:11,370 --> 01:11:11,810 Sí. 1503 01:11:11,810 --> 01:11:14,850 >> AUDIENCIA: Así que sería funcionalmente lo mismo si usted acaba de tener que todos en 1504 01:11:14,850 --> 01:11:17,250 una llamada impresión grande, ¿verdad? 1505 01:11:17,250 --> 01:11:19,630 Y a continuación, sólo concatenado en, et cetera? 1506 01:11:19,630 --> 01:11:20,730 >> JASON HIRSCHHORN: ¿Así? 1507 01:11:20,730 --> 01:11:21,980 >> AUDIENCIA: Si. 1508 01:11:21,980 --> 01:11:23,810 1509 01:11:23,810 --> 01:11:26,940 Simplemente no se ve bien si fueras mirarlo cuando se está inspeccionando 1510 01:11:26,940 --> 01:11:28,550 el elemento en su sitio web, ¿no? 1511 01:11:28,550 --> 01:11:29,800 >> JASON HIRSCHHORN: Estoy de acuerdo. 1512 01:11:29,800 --> 01:11:35,410 1513 01:11:35,410 --> 01:11:38,710 Si Cargué esta página web, sería yo capaz de ver el código PHP, nunca? 1514 01:11:38,710 --> 01:11:39,240 >> AUDIENCIA: No. 1515 01:11:39,240 --> 01:11:40,080 >> JASON HIRSCHHORN: No. 1516 01:11:40,080 --> 01:11:42,240 Y, de hecho, no lo haría. 1517 01:11:42,240 --> 01:11:43,920 >> AUDIENCIA: Este no es el HTML, ¿verdad? 1518 01:11:43,920 --> 01:11:45,000 Así que usted puede ser capaz de - 1519 01:11:45,000 --> 01:11:46,780 >> JASON HIRSCHHORN: Así que esto haría PHP evaluar lado del servidor. 1520 01:11:46,780 --> 01:11:51,020 PHP siempre se evalúa lado del servidor, por lo que nunca se es capaz de ver el código PHP. 1521 01:11:51,020 --> 01:11:52,980 >> AUDIENCIA: Pero usted sería capaz de ver el resultado de las impresiones. 1522 01:11:52,980 --> 01:11:53,480 >> JASON HIRSCHHORN: Así es. 1523 01:11:53,480 --> 01:11:55,510 Y sinceramente, no podría poner todo en la línea. 1524 01:11:55,510 --> 01:11:59,740 Podría darle formato muy bien para usted, o puede ponerla en una línea. 1525 01:11:59,740 --> 01:12:01,521 Incierto. 1526 01:12:01,521 --> 01:12:03,596 Pero eso sí, buen punto. 1527 01:12:03,596 --> 01:12:06,470 >> AUDIENCIA: ¿Cómo es que hay sin resaltar texto para 1528 01:12:06,470 --> 01:12:07,550 cualquiera de los comandos de PHP? 1529 01:12:07,550 --> 01:12:09,370 Porque yo recuerdo haber visto eso. 1530 01:12:09,370 --> 01:12:11,620 >> JASON HIRSCHHORN: Porque es una Archivo. HTML aquí en la parte superior. 1531 01:12:11,620 --> 01:12:20,390 1532 01:12:20,390 --> 01:12:21,650 Ahí lo tienes. 1533 01:12:21,650 --> 01:12:25,752 1534 01:12:25,752 --> 01:12:28,800 >> AUDIENCIA: Si lo hiciéramos el método inicial con la de los bucles, derecha, si nos 1535 01:12:28,800 --> 01:12:33,500 querido acceder a un tfs, ¿verdad hacer soporte tfs 0 soporte, entonces 1536 01:12:33,500 --> 01:12:35,180 [Inaudible]? 1537 01:12:35,180 --> 01:12:35,970 >> JASON HIRSCHHORN: Lo harías - 1538 01:12:35,970 --> 01:12:40,560 por lo que dices para el bucle for lo haría en el signo de dólar tfs soporte 1 1539 01:12:40,560 --> 01:12:41,850 o i, claro. 1540 01:12:41,850 --> 01:12:46,780 O signo de dólar cierro soporte y luego corchete 1541 01:12:46,780 --> 01:12:49,600 comillas, sí. 1542 01:12:49,600 --> 01:12:50,640 >> Bien, excelente. 1543 01:12:50,640 --> 01:12:53,020 Tenemos uno más uno rápido. 1544 01:12:53,020 --> 01:12:55,090 Siete minutos, por lo que quiero para repasar esta. 1545 01:12:55,090 --> 01:12:56,160 Este es otro ejemplo. 1546 01:12:56,160 --> 01:12:58,740 Estamos ahora totalmente otro idioma. 1547 01:12:58,740 --> 01:12:59,990 >> Tenemos algo de código HTML. 1548 01:12:59,990 --> 01:13:02,480 1549 01:13:02,480 --> 01:13:07,460 Es un poco pequeña en la pantalla, pero Quiero que mira a través de lo que realmente 1550 01:13:07,460 --> 01:13:11,140 rápidamente, y puede que alguien me diga, si yo fuera a mostrarse la página web, 1551 01:13:11,140 --> 01:13:12,390 lo que vería? 1552 01:13:12,390 --> 01:13:22,710 1553 01:13:22,710 --> 01:13:26,450 Describir todo lo relacionado con esta página web. 1554 01:13:26,450 --> 01:13:28,630 Noé? 1555 01:13:28,630 --> 01:13:30,450 ¿Qué voy a ver? 1556 01:13:30,450 --> 01:13:38,140 >> AUDIENCIA: Código en la parte delantera de Google, con una idea de texto y un 1557 01:13:38,140 --> 01:13:39,190 botón de enviar. 1558 01:13:39,190 --> 01:13:41,180 >> JASON HIRSCHHORN: ¿Y qué diría el botón? 1559 01:13:41,180 --> 01:13:42,430 >> AUDIENCIA: Submit. 1560 01:13:42,430 --> 01:13:44,620 1561 01:13:44,620 --> 01:13:45,160 Oh, en esta categoría. 1562 01:13:45,160 --> 01:13:45,840 Lo siento. 1563 01:13:45,840 --> 01:13:46,830 >> JASON HIRSCHHORN: Diría búsqueda. 1564 01:13:46,830 --> 01:13:47,520 Recuerde que el nombre. 1565 01:13:47,520 --> 01:13:50,550 ¿Para qué utilizamos el nombre de? 1566 01:13:50,550 --> 01:13:53,774 Este atributo de nombre, lo que es que se utiliza? 1567 01:13:53,774 --> 01:13:55,470 >> [VOCES interponiendo] 1568 01:13:55,470 --> 01:13:59,300 >> AUDIENCIA: Ese es su nombre para cuando se hace clic? 1569 01:13:59,300 --> 01:14:00,160 >> JASON HIRSCHHORN: Eso podría ser. 1570 01:14:00,160 --> 01:14:02,690 Pero, ¿qué es lo que generalmente vemos - ¿por qué estamos dando esta cola se llama? 1571 01:14:02,690 --> 01:14:03,830 ¿Por qué vemos eso? 1572 01:14:03,830 --> 01:14:05,220 Sí. 1573 01:14:05,220 --> 01:14:08,600 >> AUDIENCIA: ¿Eso no convertirse índice de la variable súper global? 1574 01:14:08,600 --> 01:14:12,740 >> JASON HIRSCHHORN: Sí, generalmente cuando esta forma presentaría, y entonces, ¿dónde 1575 01:14:12,740 --> 01:14:13,500 sería este presente a? 1576 01:14:13,500 --> 01:14:14,750 ¿En qué página? 1577 01:14:14,750 --> 01:14:16,820 1578 01:14:16,820 --> 01:14:18,460 Noé, lo que sería esta página someterse a? 1579 01:14:18,460 --> 01:14:25,710 1580 01:14:25,710 --> 01:14:27,700 >> AUDIENCIA: No estoy seguro. 1581 01:14:27,700 --> 01:14:28,920 >> JASON HIRSCHHORN: ¿Dónde Podríamos podemos encontrarlo? 1582 01:14:28,920 --> 01:14:31,025 ¿Dónde encuentras lo que la página se somete a? 1583 01:14:31,025 --> 01:14:32,850 ¿Qué línea de código? 1584 01:14:32,850 --> 01:14:34,040 >> AUDIENCIA: acción Form. 1585 01:14:34,040 --> 01:14:34,650 >> JASON HIRSCHHORN: Exactamente. 1586 01:14:34,650 --> 01:14:35,130 Acción. 1587 01:14:35,130 --> 01:14:37,100 Por lo que se somete a la página de búsqueda. 1588 01:14:37,100 --> 01:14:38,630 Búsqueda barra invertida. 1589 01:14:38,630 --> 01:14:40,140 Así que eso es exactamente correcto. 1590 01:14:40,140 --> 01:14:40,680 ¿Qué método? 1591 01:14:40,680 --> 01:14:42,090 >> AUDIENCIA: Obtener. 1592 01:14:42,090 --> 01:14:42,490 >> JASON HIRSCHHORN: Obtener. 1593 01:14:42,490 --> 01:14:43,420 Exactamente. 1594 01:14:43,420 --> 01:14:44,490 Así leemos esto. 1595 01:14:44,490 --> 01:14:45,180 Esto va a ser una forma. 1596 01:14:45,180 --> 01:14:45,910 Tienes toda la razón. 1597 01:14:45,910 --> 01:14:50,340 Dos cosas sobre la forma, el título de la página y la parte superior sería Google. 1598 01:14:50,340 --> 01:14:54,270 >> Así que aquí hay dos preguntas que debe ser capaz de responder sobre esta página. 1599 01:14:54,270 --> 01:15:01,760 Si este código HTML vive en este sitio web y el usuario introduce error en este texto 1600 01:15:01,760 --> 01:15:06,900 campo aquí, ¿qué URL se al usuario a encontrar a sí misma en 1601 01:15:06,900 --> 01:15:08,150 enviar el formulario? 1602 01:15:08,150 --> 01:15:10,980 1603 01:15:10,980 --> 01:15:12,510 >> Así que tenemos esta aquí. 1604 01:15:12,510 --> 01:15:13,720 Voy a volver a esta página, sin embargo. 1605 01:15:13,720 --> 01:15:16,980 Voy a escribir esta primera parte. 1606 01:15:16,980 --> 01:15:18,230 ¿Todos pueden ver por aquí? 1607 01:15:18,230 --> 01:15:30,620 1608 01:15:30,620 --> 01:15:32,906 Bueno, Mario, que crees que sabes? 1609 01:15:32,906 --> 01:15:34,700 ¿En qué página? 1610 01:15:34,700 --> 01:15:37,630 >> AUDIENCIA: Backslash búsqueda. 1611 01:15:37,630 --> 01:15:38,880 >> JASON HIRSCHHORN: Voy para bajar aquí. 1612 01:15:38,880 --> 01:15:44,800 1613 01:15:44,800 --> 01:15:49,155 Aceptar, la barra invertida question marca q es igual a error. 1614 01:15:49,155 --> 01:15:53,560 1615 01:15:53,560 --> 01:15:55,165 ¿Alguien tiene una sugerencia diferente? 1616 01:15:55,165 --> 01:15:57,910 1617 01:15:57,910 --> 01:15:59,160 Sí. 1618 01:15:59,160 --> 01:16:01,700 1619 01:16:01,700 --> 01:16:03,740 >> Entonces, ¿cómo hacemos para que esto? 1620 01:16:03,740 --> 01:16:05,520 Bueno, hemos visto esto antes. 1621 01:16:05,520 --> 01:16:07,170 Y se le ocurrió esto antes. 1622 01:16:07,170 --> 01:16:08,870 Tenías razón, Noah, que el acción nos está diciendo lo que 1623 01:16:08,870 --> 01:16:11,700 página vamos a. 1624 01:16:11,700 --> 01:16:12,820 >> También sabemos qué método. 1625 01:16:12,820 --> 01:16:13,420 Estamos haciendo get. 1626 01:16:13,420 --> 01:16:17,040 Y la diferencia entre GET y POST es que consiguen muestra en la URL 1627 01:16:17,040 --> 01:16:18,490 y después no lo hace. 1628 01:16:18,490 --> 01:16:22,760 Así que si escribía poste derecho existe en el método, ¿qué sería diferente? 1629 01:16:22,760 --> 01:16:24,250 >> AUDIENCIA: Sería justo ser la búsqueda de roza. 1630 01:16:24,250 --> 01:16:25,400 >> JASON HIRSCHHORN: sería sólo se roza la búsqueda. 1631 01:16:25,400 --> 01:16:27,400 Nada por aquí iba a suceder. 1632 01:16:27,400 --> 01:16:30,030 Pero debido a que es un hacerse, la URL se muestra de la siguiente manera. 1633 01:16:30,030 --> 01:16:35,140 En primer lugar vemos un signo de interrogación y vemos que el nombre y el valor. 1634 01:16:35,140 --> 01:16:42,730 Diga había otro campo de texto y Le di un nombre de r y de entrada un 1635 01:16:42,730 --> 01:16:45,220 valor, oruga. 1636 01:16:45,220 --> 01:16:48,560 ¿Cómo sería esto ahora parece? 1637 01:16:48,560 --> 01:16:52,040 Tengo uno más campo de texto, me dará una nombre de r y un valor de oruga. 1638 01:16:52,040 --> 01:16:56,990 >> AUDIENCIA: Después de bar tendrías la oruga y comercial. 1639 01:16:56,990 --> 01:16:58,380 >> JASON HIRSCHHORN: Eso es No ampersand. 1640 01:16:58,380 --> 01:17:00,500 >> AUDIENCIA: ¿O sólo lo y el símbolo. 1641 01:17:00,500 --> 01:17:01,330 >> JASON HIRSCHHORN: Sí, no. 1642 01:17:01,330 --> 01:17:03,700 Tenías razón, me equivoqué. 1643 01:17:03,700 --> 01:17:05,660 Eso es como un g. 1644 01:17:05,660 --> 01:17:06,910 >> AUDIENCIA: Caterpillar. 1645 01:17:06,910 --> 01:17:08,840 1646 01:17:08,840 --> 01:17:11,090 r es igual a la oruga, lo siento. 1647 01:17:11,090 --> 01:17:13,970 1648 01:17:13,970 --> 01:17:14,700 >> JASON HIRSCHHORN: ¿Hay no r ahí? 1649 01:17:14,700 --> 01:17:16,680 >> AUDIENCIA: No, no hay. 1650 01:17:16,680 --> 01:17:18,030 >> JASON HIRSCHHORN: Hablaremos acerca de que después de la clase. 1651 01:17:18,030 --> 01:17:18,930 Eso es exactamente correcto. 1652 01:17:18,930 --> 01:17:20,530 Así que el y es correcta. 1653 01:17:20,530 --> 01:17:23,430 Y entonces usted podría tener muchos de éstos, y todos ellos se pueden concatenar 1654 01:17:23,430 --> 01:17:24,950 junto con que y. 1655 01:17:24,950 --> 01:17:25,900 Así que eso es exactamente correcto. 1656 01:17:25,900 --> 01:17:27,700 >> Hay una pregunta más. 1657 01:17:27,700 --> 01:17:30,676 Dibuje DOM de este HTML, a partir con el documento. 1658 01:17:30,676 --> 01:17:33,330 1659 01:17:33,330 --> 01:17:34,570 Podríamos hacer eso en dos minutos. 1660 01:17:34,570 --> 01:17:36,790 Lo haremos aquí. 1661 01:17:36,790 --> 01:17:38,040 Voy a volver a esta página web. 1662 01:17:38,040 --> 01:17:40,630 1663 01:17:40,630 --> 01:17:42,160 Bien, empecemos con el documento. 1664 01:17:42,160 --> 01:17:49,698 1665 01:17:49,698 --> 01:17:52,090 >> ¿Qué sigue? 1666 01:17:52,090 --> 01:17:53,910 Así que cuando usted está leyendo a través de - 1667 01:17:53,910 --> 01:17:54,540 >> AUDIENCIA: HTML. 1668 01:17:54,540 --> 01:17:55,790 >> JASON HIRSCHHORN: HTML es el siguiente. 1669 01:17:55,790 --> 01:17:57,850 Vamos a ir etiqueta por etiqueta. 1670 01:17:57,850 --> 01:18:00,890 ¿Qué hay después de HTML? 1671 01:18:00,890 --> 01:18:01,550 >> AUDIENCIA: Head. 1672 01:18:01,550 --> 01:18:02,800 >> JASON HIRSCHHORN: Head. 1673 01:18:02,800 --> 01:18:05,090 1674 01:18:05,090 --> 01:18:08,520 ¿Qué hay después de la cabeza? 1675 01:18:08,520 --> 01:18:09,770 >> AUDIENCIA: Título. 1676 01:18:09,770 --> 01:18:11,880 1677 01:18:11,880 --> 01:18:12,560 >> JASON HIRSCHHORN: Título. 1678 01:18:12,560 --> 01:18:14,740 Y el título tiene un valor de Google, pero yo no voy a 1679 01:18:14,740 --> 01:18:16,240 escribir que en por ahora. 1680 01:18:16,240 --> 01:18:18,750 Bueno, ¿a dónde va el cuerpo? 1681 01:18:18,750 --> 01:18:20,890 >> AUDIENCIA: Además saliendo del HTML. 1682 01:18:20,890 --> 01:18:21,490 >> JASON HIRSCHHORN: Exactamente. 1683 01:18:21,490 --> 01:18:22,820 Cuerpo sale de aquí. 1684 01:18:22,820 --> 01:18:25,970 1685 01:18:25,970 --> 01:18:30,330 ¿Todo el mundo entiende por qué ese es el caso? 1686 01:18:30,330 --> 01:18:32,970 Probablemente debería ser capaz de averiguar esto, también, aunque yo no tenía 1687 01:18:32,970 --> 01:18:33,665 este bonito sangría. 1688 01:18:33,665 --> 01:18:37,680 >> La sangría especie de lo delata, pero se puede ver que la etiqueta de la cabeza tiene 1689 01:18:37,680 --> 01:18:41,240 han cerrado, lo que nos indica que probablemente no se puede bajar aquí. 1690 01:18:41,240 --> 01:18:43,460 Tenemos que volver a subir a lo Fue justo antes de la cabeza 1691 01:18:43,460 --> 01:18:44,730 etiqueta, o en virtud de eso. 1692 01:18:44,730 --> 01:18:46,720 Estamos aún con la etiqueta de la cabeza. 1693 01:18:46,720 --> 01:18:48,560 >> Y bajo el cuerpo va formulario. 1694 01:18:48,560 --> 01:18:50,300 Bajo la forma, hay dos entradas. 1695 01:18:50,300 --> 01:18:53,330 1696 01:18:53,330 --> 01:18:54,420 Aceptar. 1697 01:18:54,420 --> 01:18:55,490 Eso es todo lo que tengo. 1698 01:18:55,490 --> 01:18:56,980 Prueba 1 es mañana. 1699 01:18:56,980 --> 01:18:58,350 Estoy tan emocionada por ustedes. 1700 01:18:58,350 --> 01:18:59,690 Va a ser una explosión. 1701 01:18:59,690 --> 01:19:00,250 >> Si usted tiene - 1702 01:19:00,250 --> 01:19:00,600 >> AUDIENCIA: [Aplausos] 1703 01:19:00,600 --> 01:19:02,460 >> JASON HIRSCHHORN: Oh para, para. 1704 01:19:02,460 --> 01:19:04,520 Pero no, no estoy bromeando. 1705 01:19:04,520 --> 01:19:07,220 Si usted tiene alguna pregunta, por derecho después de la sección, voy a estar fuera. 1706 01:19:07,220 --> 01:19:11,700 Si usted tiene alguna pregunta esta noche, no dude en llamar, correo electrónico, Gchat, 1707 01:19:11,700 --> 01:19:12,740 portadora me Pigeon. 1708 01:19:12,740 --> 01:19:13,950 Buena suerte mañana. 1709 01:19:13,950 --> 01:19:16,220 Tener un descanso de Acción de Gracias maravilloso, si yo no te veo antes de esa fecha. 1710 01:19:16,220 --> 01:19:19,320 Y voy a verte después de Acción de Gracias el martes para nuestra última 1711 01:19:19,320 --> 01:19:20,295 sección de fiesta de la historia. 1712 01:19:20,295 --> 01:19:21,545 >> AUDIENCIA: [inaudible]. 1713 01:19:21,545 --> 01:19:25,270 1714 01:19:25,270 --> 01:19:25,790 >> JASON HIRSCHHORN: Muy bien. 1715 01:19:25,790 --> 01:19:28,900 Bueno, voy a ver ustedes el próximo semana, o en dos semanas. 1716 01:19:28,900 --> 01:19:30,150 Y buena suerte mañana. 1717 01:19:30,150 --> 01:19:32,203