[REPRODUCCIÓN DE MÚSICA] ALTAVOZ 1: Muy bien, todo el mundo. Bienvenido a su última sección conmigo. Ha sido todo el semestre. No puedo creer que esto es, como, semana 12 o 11, o algo así. Pero porque es nuestra última sección, tenemos un montón de caramelos. Y yo voy a tratar de usted tan bien como yo preparar puede para su examen el miércoles. Así que probablemente no sea la mejor manera, como, la sección final en esta crítica cuestionario. Pero vamos a tratar de hacer que sea divertido. Y siempre hay caramelos. Así que espero, que va a hacer lo mejor. Su prueba va a ser bastante mucho lo mismo que Cuestionario Zero. Va a ser el mismo formato, la misma longitud. Usted estará en habitaciones dispersas a través del campus, porque no son cerca de 900 de ustedes, y no podemos todo lo que sostienen en habitaciones como esta. Así que asegúrese de mirar a todos Aquel documentación Cuestionario en línea en cs50.harvard.edu esta noche o mañana por la noche. Asegúrese de saber dónde estás va, lo que tiene que traer. En realidad, sólo tiene que traer a ti mismo y un lápiz, y usted debería estar bien. Las preguntas serán muy similar. Probablemente habrá un par elección múltiple, una respuesta corta pareja, algo de código, tal vez algo de verdadero / falso, juego tipo de cosas. Así que no debería ser demasiado sorprendido por el formato. ¿Qué puede ser sorprendente es el longitud, que, en años anteriores, ha sido mucho más tiempo. En mi año, no tengo un solo amigo que yo recuerde de terminar el examen. No eran como múltiple páginas en blanco. Así que la longitud puede ser tipo de desorientador sólo porque en algunos años, tiene sido mucho más largo que Cuestionario Uno. No tengo ni idea de lo que es va a ser como este año, pero es algo a tener en cuenta. Además, el personas tienden difficulty-- encontrar Cuestionario Uno mucho más difícil que Cuestionario Zero. Una vez más, ya sabes, si estás tipo de caminar a sentirse un poco incómodo porque que no lo hiciste, así como pensabas usted o usted se siente como usted no lo hizo hacerlo tan bien como lo hizo en el concurso Un, recuerde que hay probablemente un muchas otras personas que sienten de esa manera. Yo era definitivamente una de esas personas. Prueba uno, como, me tiró para un bucle. Y mis amigos tienen este gran foto de ellos en JP Licks tipo de con estos enormes helados, siendo así, Cuestionario Uno, y mirando como si estuvieran en lágrimas. Así que es un sentimiento general. Es una dura prueba, que es una prueba dura. Obviamente, si usted sale y usted sentirse como usted osciló ella, grande para usted. Pero sabe que usted está probablemente no-- usted no es casi definitivamente solo si sales sintiendo como, eh, probablemente podría haber conseguido mejor. Está duro. Mm-hm. AUDIENCIA: ¿Cuánto es que vale la pena en relación con [inaudible]? ALTAVOZ 1: Vale la pena el mismo. Sí. Pero, de nuevo, sino que también va a ser afectada por cómo el resto de la clase hace, cómo su sección hace, cómo vas mejorando con el tiempo. La clasificación es un poco de un cuadro negro. Así que lo que el número real o porcentaje se obtiene no es como necesariamente directamente correlacionado con el grado que vas a conseguir. Hay una gran cantidad de factores que intervienen en ella. Así que con eso, vamos a pasar por algún comentario cuestionario. Yo sólo voy a ejecutar este como la última vez para ustedes. Yo tengo todas las respuestas Pregúntale a Uno del año pasado. Así que si ustedes quieren tirar que hasta en sus propias computadoras, si usted ha tomado este examen antes y tiene preguntas, Estaba pensando que podríamos sólo tiene que ir a través de algunos de las más difíciles en eso. Así podemos hablar de ello, tal vez obtener una visión poco más en la intuición detrás de algunos de estas preguntas, la forma de acercarse a ellos. Además, como la última vez, Tengo una baraja de 100 diapositivas que tiene básicamente todo de las diapositivas que yo han preparado para anterior secciones desde la última me quiz-- tener en este mazo. Así que podemos ir a través de casi cualquier cosa que hemos hablado de antemano que tal vez usted querer un poco más aclaraciones sobre. Podríamos hacer eso primero. Pero por lo demás, estoy super feliz de tipo de trabajo a través de estos problemas con usted. Y estoy realmente aquí para centrarse en lo que ustedes piensan sería el más importante centrarse en. Al igual que, obviamente, todos esto es importante. Sobre todo a medida que avanzamos a través de concurso Uno, Definitivamente voy a señalar cosas como: oh, esto podría ser algo usted realmente quiere saber o quieres tener en tu hoja de trucos. Voy a estar diciendo que las cosas como que tipo de atravesamos. Así que en esa nota, ¿hay cosas que a ustedes les gustaría ir? Además, si yo no tengo en mi terraza, podemos tirar algo en la web, o podemos tratar de hacer hasta un ejemplo sobre la marcha. Pero cualquier concepto que chicos son un poco borroso en. [? Brian,?] Hizo que tener-- AUDIENCIA: Oh, ¿es acumulativo? Al igual, es la materia en concurso Zero va a estar en esta lista? ALTAVOZ 1: Es acumulativo, pero es mucho más de un énfasis en las cosas desde el último examen. Así que, obviamente, ustedes tienen aprendido sobre variables y bucles, y condicionales. Y no es como los que acabamos de desaparecer, porque son obviamente inherente a todo lo otra cosa que hemos aprendido ahora. Puede haber una pregunta en las clases, o allí podría ser una pregunta en diferentes búsquedas. O podría haber un par preguntas sobre algo que tal vez que tiene que ver con la compilación o diferentes errores. Pero si te has mirado Cuestionario Uno desde el año pasado, te darás cuenta de que es muy centrado en las cosas que han pasado desde su último examen. ¿Por qué es que la puerta siempre cerrada? Realmente me molesta. Porque yo siempre trato de ir a través de él. Así que eso es más o menos cómo será el concurso. Así que ¿hay conceptos que a ustedes les gustaría ir? O podemos entrar de lleno en sólo mirar Cuestionario Uno desde el año pasado y amable de ir a través de preguntas de práctica allí. También podemos cambiar una y otra. Esto no es un tipo de una sola vez de cosas. ¿Alguna pregunta? Sí. AUDIENCIA: ¿Puedo pedir una pregunta sobre another-- ALTAVOZ 1: ¿Otra más? AUDIENCIA: Esto es de un año. ALTAVOZ 1: Sí. También podemos hacer un año más. AUDIENCIA: OK. Así que en 2011. ALTAVOZ 1: 2011. Ooh, que fue el año antes que yo. Déjame sacar esto. AUDIENCIA: Creo. ALTAVOZ 1: Este aspecto relación me está tirando fuera. AUDIENCIA: 11 y 12. ALTAVOZ 1: 11 y 12. DE ACUERDO. Bueno, aquí, ¿por qué no hacemos esto? Usted guys-- todo el mundo acaba de tomar un par de minutos para mirar a través de concursos. Y vamos a compilar una lista. Y luego vamos a ir a través de ellos. Bien? Aunque tengo un montón de estas cosas establecido. DE ACUERDO. Yo sólo voy a escribir cosas en un papel. 2011, 11 y 12? Yo sólo voy a cambiar esta pantalla. DE ACUERDO. Así está mejor. Este exceso. Bien. ¿Alguien más tiene alguna que que les gustaría empezar? Asimismo, se olvidó de decir, si usted quiere más de un montón de gente hablando a ti y sólo le da una grieta Por supuesto, en las últimas seis semanas, estamos corriendo una opinión sesión de 7:00 a 8:30 de esta noche en el noroeste B103, que también pasó la última vez, por dónde se va a ser yo, Hannah, Daven, con Gabe y Rob tipo de ayuda de la margen de sólo un poco de tirar todo la información que te pueden quieren tener en su hoja de trucos, slash, saber en general allí. AUDIENCIA: Eso es también en línea, ¿no? ALTAVOZ 1: Es también en línea. Por lo que también puede mantenerse al margen de esta tiempo asqueroso, vaya a su dormitorio, y live-stream si desea. Estoy seguro de que muchos de personas-- sé que haría estar haciendo que si yo estuviera en tu lugar. DE ACUERDO. Entonces, ¿por qué no empezamos con-- mientras guys-- con suerte, usted está mirando a través de. Si no, yo podría empezar a trabajar a través de diferentes cosas en concurso Uno desde el año pasado a menos que tiene preguntas específicas. Vamos a empezar con este cuestionar aquí sobre pilas. Así que no todo el mundo recuerde algo de lo que una pila es? Cómo tendemos a-- puede alguien acaba de dar me una descripción general de una pila? Un tipo de estructura de datos. DE ACUERDO. Así que es una de las estructuras de datos que nos espera que usted esté familiarizado con-- como pilas, matrices, colas, etcétera. Sí. AUDIENCIA: Como Primera En, Last Out, algo. ALTAVOZ 1: Es First In, Last Out. Exactamente. Así que una pila es exactamente lo que tendemos a pensar cuando pensamos de una pila de cosas. Así que una pila de placas. La primera placa se pone abajo va a ser en la parte inferior, y que va a ser la última uno que le quita al final. Debido a que se comparan. Y se toma el uno de la parte inferior, típicamente, las cosas se estrellan y se rompen. Así pilas que se pueda imaginar al igual que una pila de platos. O el ejemplo que siempre me gusta usar es en las salas D, tiene las bandejas, todos están apilados, y se toma desde la parte superior. Así que el último en es el primero en salir. DE ACUERDO. Así que en el caso aquí, vemos que tener-- me pregunto si realmente puedo acercar un poco. Así que tenemos esta struct aquí. Derecho? Así que tienes un poco de estructura que tiene algunos int números de capacidad. Entonces, ¿qué es lo que pensamos que representa? Esta es una matriz con capacidad tamaño. Así que esto realmente representa nuestra pila en general. Nuestra pila es realmente sólo una matriz con un número conjunto que es su máximo, es decir, su capacidad. Y luego tenemos algunos int size, que hará un seguimiento del tamaño de nuestra pila durante todo el curso de cuando la estamos utilizando. DE ACUERDO? En este caso aquí, decimos que nuestra tamaño de la pila se ha inicializado a 0. Así que tenemos una pila vacía en este momento. Y luego queremos completar la aplicación del pop de tal manera que devuelve el int en la parte superior. Y luego si está vacío, vuelve negativa 1. DE ACUERDO? Así que quiero que ustedes sólo de pensar sobre lo que podríamos hacer allí. Lo que podría ser uno de los primeros cosas que nos gustaría comprobar? Hay una gran cosa aquí. Siempre que says-- si hay alguna vez algún Si la declaración, como "Si la pila está vacía" o "Si esto devuelve null", o "Si esto es lo que sea" - lo siento. AUDIENCIA: Escribir una instrucción If. ALTAVOZ 1: Derecho. Se puede escribir una instrucción If. Y eso es probablemente uno de los primeras cosas que usted quiere comprobar. DE ACUERDO. Cada vez que te dan algo así como un caso de esquina como esta, eso es típicamente una de las primeras cosas usted va a comprobar en el código. También, algo que reconocer para el concurso es que si tienes una forma ineficiente hacer algo, anótelo. Porque no estamos clasificación que en el diseño, estamos que la clasificación en la corrección de pruebas. Así que incluso si usted sabe que es un super mala manera de hacer algo pero funciona, escribirlo, ¿de acuerdo? Niños Literalmente, he visto el pasado año-- si nos fijamos en uno del año pasado, son como, hacer la pirámide Mario. Y, literalmente, sólo lo hicieron "de impresión, hachís, impresión, hachís, hachís, impresión, hachís, hachís, hachís ". Pero es correcto. No lo que contó a, por lo que no puede tomar puntos fuera. Si usted está abajo a la alambre, obviamente, que desee obtener una solución más elegante, y la solución más elegante probablemente ser menos código que indica que probablemente tienen una mayor probabilidad de tener razón. Pero si usted es como, ya sabes lo que, no, yo no tengo tiempo, me sé que esto es una solución, que no es la mejor, la escribiré. E incluso se puede escribir en la lado, sé que esto es terrible, pero sé que funciona. Así que sólo un mano a mano. DE ACUERDO. Así que, obviamente, a primera hora Es esta instrucción If. Entonces, ¿qué es lo que pensamos de este caso declaración va a ser? Y, de hecho, me deja abierta mi gran editor Sublime. Voy a codificar esta y luego mostrar chicos cuando esté hecho. Así int pop. DE ACUERDO. Así que si tenemos este int pop void-- así que obviamente, esto es una función que toma en nada y devuelve un entero, ¿no? Así que sólo va a hablar esta pila que hemos creado. Así que sólo la traducción de este último frase, "si la pila está vacía, pop debería devolver negativo 1, "¿cómo podemos hacer eso? Así que si lo que? ¿Cómo sabemos que la pila está vacía? Es sólo el tamaño es igual a 0. Stack.size es igual a 0. Además, estoy tipo de escritura ciega aquí. Así que si hago cualquier typos-- oh, También olvidó mencionar esto. La semana pasada, estoy totalmente descubierto lo que nuestro problema era con JavaScript. No pongas en mayúscula I y D. Sólo debe capitalizar I y obtener elementos de identificación. Y eso fue todo el error. Así que si ustedes van hacia atrás y en realidad mirar a través de mi código, si usted acaba de hacer todo lo que un d minúscula, "olvidar elemento por Id" que funcionará. Así como lo había dicho, estaba muy cerca. Acabo mayúscula algo No se suponía que debía, que Estoy seguro de que ustedes tenían en su última PSET. Así que si nuestro tamaño es igual a 0, lo que se supone que debemos hacer? AUDIENCIA: rentabilidad negativa 1. ALTAVOZ 1: Regreso negativa 1. Fresco. ¿Y ahora qué hacemos? Queremos hacer estallar algo fuera. Ahora bien, este es el caso donde tenemos algo. Nuestro tamaño es mayor que 1 o mayor que 0, ¿verdad? De hecho, tenemos algo allí. Así que lo que queremos es que nos quieren volver aquí. Vamos a decir que queremos para devolver la parte superior de la pila. DE ACUERDO? Entonces, ¿cómo podríamos hacerlo? ¿Cómo volvemos la parte superior de la pila? Recuerde, nuestra pila es sólo una serie, ¿no? Tiene cierta capacidad que le hemos dado. Como hemos puesto las cosas en-- o en realidad, vamos a escribir "push" después de esto. Si las cosas están en allí-- tal vez una imagen le ayudará. Hm, me gusta tiza grande mejor. Así que si: y usted puede simplemente pensar en esto como nuestra pila. Así que este es 0, 1, 2. No sé por qué mis cajas están cada vez más pequeño. Pero allí. DE ACUERDO. Así que esto es un poco de pila con una capacidad de 5. Y vamos a decir que tenemos algo aquí y tenemos algo aquí. Así que en este punto, nuestro tamaño es igual a qué? 2. Y si queremos hacer estallar algo fuera de ella, eso significa que queremos llegar deshacerse de este derecho aquí. DE ACUERDO? Entonces, ¿cómo íbamos a devolver este valor? AUDIENCIA: Tamaño menos 1. ALTAVOZ 1: Derecho. Así tamaño menos 1, o podría hacer tamaño minus minus. Pero no podemos hacer tamaño. Está dentro de una estructura, ¿verdad? Así stack.struct. o stack.size. Ese es nuestro índice derecho allí. DE ACUERDO? Y luego, si nos fijamos hacia atrás en nuestra estructura aquí, nos damos cuenta de que a realmente acceder a la matriz, tenemos que hacer stack.numbers acceder a la realidad de la matriz. Así que devuelve la parte superior de la pila. Pero algo que-- si ustedes vistazo en la llave de la respuesta, esto es todo lo que darle. Así que eso es todo. Pero podría argumentar que son miss-- ooh, no lo que yo quería. Podría argumentar que son falta algo, porque-- sí. AUDIENCIA: Disminuir el tamaño. ALTAVOZ 1: Derecho. Tenemos que reducir el tamaño de nuestra empresa. Así que lo que es difícil sobre esto es una vez que regrese algo, su función de de salida, pasando, ¿no? Así que lo que podríamos hacer es en realidad disminuir primero nuestro tamaño. Y luego pues sólo podemos Qué stack.size. Sólo podemos utilizar stack.size como nuestro índice, no podríamos? Porque si stack.size es 2, que disminuirlo. Y lo que es 1, que es nuestro indice real. Una vez que nos deshacemos de esta, en realidad sólo tienen una cosa en nuestra matriz. Por lo que hace ambas cosas. AUDIENCIA: [inaudible]? ALTAVOZ 1: Bueno, en este caso, Acabamos de regresar el elemento en la parte superior que está en nuestra tamaño que es en la parte superior. Pero no hemos hecho nada para el tamaño después de que elimina ese elemento. Esto no ha cambiado nuestro tamaño todavía. Esto hace realidad cambiar inherentemente nuestro tamaño. Pero para que sea un poco más claro, usted podría hacer stack.size minus minus. Para mí, lo hace, no lo sé, un poco más claro que- ah, que en realidad estás cambiando el tamaño y la devolución. La otra forma estaba bien, porque estaba cambiando y volviendo al mismo tiempo. Pero esto es sólo otra manera de escribir lo que yo quería mostrar chicos. ¿Tiene eso sentido? Pilas, creo, son mucho más fácil que las colas. [Risas] DE ACUERDO. ¿Usted tiene alguna pregunta específica aproximadamente 11 y 12, o sólo-- AUDIENCIA: Creo que fue la pila. ALTAVOZ 1: El tamaño de la pila? AUDIENCIA: Sí. ALTAVOZ 1: Gotcha. DE ACUERDO. Sí, usted puede hacerlo en una de estas dos maneras. DE ACUERDO. Así que ahora tenemos el otro. Esto es muy raro, como no tener esto en mi pantalla. Así que si miramos aquí, ahora queremos completar la implementación de empuje, que en realidad pone algo, va e inserta algo en nuestra cola, o en nuestra pila. DE ACUERDO? Así que si nos damos cuenta, nos tener un par de cosas. Tenemos nuestros los grandes, si todo lo demás, cada vez que tenemos uno de estos, ustedes deben obtener al menos la mitad un punto, porque todo lo que tiene que hacer es convertir esto en C. Y te dan la mitad de ella. Así que "si una pila está llena o es negativo, luego empuje debe devolver false ". DE ACUERDO? Así que lo único que queremos positivo enteros para estar en nuestra pila. Bien? Y esto va a cualquiera devolver verdadero o falso. Así que debería [inaudible] bool. DE ACUERDO. Así que traducir. AUDIENCIA: [inaudible]. ALTAVOZ 1: Oh, gracias. Sí. Es por eso que tengo que ustedes. Int n. Perfecto. Porque estamos poniendo algo en nuestro pila. En realidad necesitamos algún número. DE ACUERDO. Así, tomando la última línea que que nos dieron, nuestro tipo de casos de esquina, ¿qué es lo que tenemos aquí? Obviamente, vamos a tener un poco de Si. DE ACUERDO. Así que dijimos, Si nuestra pila es completa o si n es negativo. Así que probablemente más fácil de empezar con, por lo que si n es menor que 0 o-- recordar su agradable Operadores AND y OR allí. ¿Cómo nos echa a ver si nuestra pila está llena? Lo que sucede? AUDIENCIA: Tamaño igual capacidad. ALTAVOZ 1: Exactamente. Perfecto. DE ACUERDO. Y lo que queremos hacer allí? AUDIENCIA: return false. ALTAVOZ 1: Regreso falsa. Perfecto. Así que a mitad de camino, ¿verdad? Como mínimo, chicos tendrá la mitad de esto. Así que vamos a pensar en esto. Así que esta es la pila empezamos con. Estamos tratando de poner algún elemento aquí. Contamos con un tamaño que es igual a 2 en este momento. Tenemos una capacidad que es igual a 5. Y vamos a decir que tenemos algún n que es igual a 3. Así que tenemos a la entrada 3 en este espacio. Y necesitamos a la entrada en el índice 2. Derecho? Así que ¿cómo podemos hacer esto? Tratando de assign-- nos quieren acceder a nuestra gama. Así stack.numbers. ¿Pero a qué indice haría queremos que este sea? AUDIENCIA: [inaudible]. ALTAVOZ 1: Sí. Stack.size. Y queremos que a igual n, ¿verdad? AUDIENCIA: [inaudible]. ALTAVOZ 1: yo era en realidad sólo mirar eso. Creo que es un error. AUDIENCIA: ¿No quieres que la espacio más allá del tamaño actual? ALTAVOZ 1: Bueno, si nos mira, nuestro tamaño en este momento es 2. Queremos que se vaya en el índice 2, porque esta es la parte superior de nuestra pila. Así que yo diría que debe ser stack.size, y luego usted aumentaría stack.size. ¿Está de acuerdo todos? Creo que estoy de acuerdo con eso. Ustedes pueden argumentar conmigo si lo desea. O no discutimos, pero podemos discutir esto. AUDIENCIA: [inaudible]. ALTAVOZ 1: Mm-hm, es en donde está abrir debido a cero indexación. Así que mientras que en la primera parte, Pensé que estaban equivocados, y en realidad eran derecha, esta parte, en realidad creo que se equivocaron. Yo diría que debiera Definitivamente entrada aquí. Creo que todos estamos de acuerdo tenemos un tamaño de 2. Eso es exactamente donde estamos quiere nuestro nuevo número para ir. Así stack.numbers en stack.size debe ser igual a n. Y entonces lo haríamos incrementar el stack.size. ++. Y entonces, ¿qué es lo que queremos hacer? Hay una última cosa que tenemos que hacer si insertamos con éxito este? Devuelve verdadero. Y ahora ya está. Así que me siento como si fuera toda la menos menos stack.size y stack.size ++ que cosas en mal estado. Ugh. Yo keep-- tengo este rotuliano siempre tendencia a golpear Control, S, porque nunca quiero perder nada de mi trabajo. Pero yo no necesito hacer eso ahora. DE ACUERDO. Así que eso fue pila. Fresco. ¿Hay algo? ¿Ustedes se encontró ninguna otras preguntas que te gustaría gustaría repasar de concursos anteriores? Si no, podemos especie de empezar a hablar mediante concurso One desde el año pasado. Sí. AUDIENCIA: Por primera parte, realmente no me entender cómo ha borrado el número. ¿No es todavía allí? ALTAVOZ 1: El número sigue allí. Pero lo que pasa es que debido a que tienes contado que la parte superior de la pila es aquí, cuando se va a añadir algo en la pila, sólo va a reemplazarlo. AUDIENCIA: Oh, OK. ALTAVOZ 1: Sí. Así que es como se le olvidó y que está ahí tipo de cosas a pesar de que está ahí. AUDIENCIA: [inaudible] o algo? ALTAVOZ 1: No. Porque estamos en un matriz, usted no tiene que preocuparse sobre-- Usted sólo anularla cuando lo necesite. Bien. Alguna otra pregunta? Si no, sólo vamos para empezar a trabajar a través. Sí. AUDIENCIA: Bueno, éste es en el 2013, pero sólo va a través de la materia SQL. ALTAVOZ 1: SQL? DE ACUERDO. Así que esto es el 26 hasta el 29. AUDIENCIA: Sí. ALTAVOZ 1: OK. Precioso. Vamos a tirar los de arriba. Oh, mira. ¿Ustedes disfrutar de la Steve Ballmer hablar, por cierto? Fue bastante hilarante, en mi opinión. Me encanta que cada vez que aparezca de CS50 página web durante la sección, es como, ¡oh, sección mirar. Y yo soy como, mm. AUDIENCIA: ¿Podemos hacerlo? ALTAVOZ 1: Lo haremos al final. ¿Cómo es eso? Porque te conozco chicos siempre han querido. Así que vamos a hacerlo al final. Uno preguntas. AUDIENCIA: [inaudible]. ALTAVOZ 1: Va a ser una sección meta. AUDIENCIA: Es como 5 segundos. AUDIENCIA: ¿En serio? AUDIENCIA: Es como 20 segundos. [Interponiendo VOCES] [Risas] ALTAVOZ 1: Me gusta que que ya has hecho ella, que es lo que me hace más feliz. DE ACUERDO. 26. DE ACUERDO. En realidad, sólo vamos a reflejar esto ahora, porque yo no puedo. Esto es molesto. DE ACUERDO. Ahora puedo ver todo. Precioso. DE ACUERDO. Así que, obviamente, esto debería traer de vuelta grandes recuerdos desde [? CSG?] Finanzas. La mitad de usted acerca de tener el suyo clasificado ahora. La otra mitad voy a llegar a muy, muy pronto, lo prometo. Así que tenemos un poco de tabla de SQL eso es Cuentas aquí. Probablemente similar a tablas de usuario que sus chicos '. Y tenemos un número que era una clave primaria y representa un Número de cuenta de 12 dígitos. Y el equilibrio es la cantidad de dinero que tienen. Y el valor predeterminado es 100. Y les dan $ 100 cualquier vez que abran una cuenta. Me gustaría que mi banco lo hizo. DE ACUERDO. Así que queremos completar el esquema de especificando junto a número en equilibrio el tipo de SQL apropiado. Entonces, ¿qué piensan ustedes que sería algo así como su reacción instintiva para los tipos de estos dos? AUDIENCIA: Int. ALTAVOZ 1: Un int. DE ACUERDO. Y luego de un equilibrio? Decimal. DE ACUERDO. Así que el derecho del decimal. Int está cerca. Tipo de la gran cosa es esta subrayado número de cuenta de 12 dígitos. Siempre tenemos algo eso es más grande que ocho dígitos, ellos quieren que usted utilice grande int, que creo que es-- AUDIENCIA: ¿Es sólo SQL? ALTAVOZ 1: Es la única vez que he oído de ella es SQL-- como usar una gran int. Es sólo para darle una poco más precisión, asegurándose de que no eres cosa de tipo desbordante. En honor a la verdad, creo que este es sin duda uno de los más donde es como, ¡oh, que está destinado para la gente que tienen un poco más de conocimiento de SQL. Nunca hablamos de grandes enteros en su PSET. Así que es un poco como estoy bastante seguro si pones int, que era la mitad de crédito. Y como dije antes, hay ir siendo algunas preguntas que son igual la intención de dispararle para arriba, por lo que que no todo el mundo tiene 100. Porque, por supuesto, hay algunas personas en CS50 que han estado haciendo esto por como ocho años y usted es como, qué estás haciendo? Pero sí. Decimal para el balance era la obvia. Y entonces gran int de número sólo porque de que, como, subrayado 12 dígitos. Siempre que algo está en negrita o es subrayado, como, prestar atención a ella. No estamos haciendo que sólo porque. DE ACUERDO. Así que "suponer que las impone bancarias una cuota mensual de $ 20 en todas las cuentas. Con lo que la consulta podría el banco deducir $ 20 desde cada cuenta incluso si resulta de algunos saldos negativos? " Así que empecemos simple. Tenemos cuatro comandos principales para SQL, que son? ¿Ustedes recuerden los cuatro los grandes que te dije? UPDATE, DELETE, SELECT y INSERT. Perfecto. Lo tengo. Entonces, ¿qué es lo que pensamos poder ser más útil para éste? Nos trate: UPDATE. Exactamente. Así ACTUALIZAR, porque estamos buscando en cuentas que ya existen. Así que recuerde nuestro general tipo de cosas es la actualización. Y entonces, ¿qué viene después de la actualización? Tenemos un poco de mesa que estamos haciendo referencia. Así que si me levanto ACTUALIZACIÓN Sublime otra vez--. Así que este es un formato general. Así que tenemos UPDATE tabla. Y entonces, ¿qué es lo siguiente que tenemos? Usted puede hacer WHERE. Y luego tenemos algunos calificador aquí. Y entonces ¿qué tenemos ahora? Tenemos un poco de algo definido-- igual a algo. Bla, bla, es igual. Actualizado bla. Derecho? Así que eso es como el general idea por alguna actualización. DE ACUERDO? Así que vamos a empezar a llenar este con lo que debería ser. Entonces, ¿qué tabla estamos hablando? Cuentas. Y luego, en este caso, lo que es muy cool está estamos hablando específica los usuarios dentro de nuestra cuenta, o estamos hablando de todos los usuarios? Estamos hablando de todos los usuarios. Así que en ese caso, se puede simplemente Eliminar este DONDE calificador. El DONDE es sólo cuando se desea para limitar lo que se está cambiando. Si desea cambiar la totalidad tabla, puede simplemente dejar que. DE ACUERDO. Así que ahora estamos en nuestra parte SET. ¿Qué es lo que queremos cambiar? AUDIENCIA: Balance. ALTAVOZ 1: Balance. Y vamos a-- cómo son que va a cambiar el equilibrio? Tenemos una tarifa de $ 20, ¿no? Minus 20. Y ellos dijeron que está bien si tenemos saldos negativos. Así que en este caso, no es necesario hacer cualquier comprobación de errores más. DE ACUERDO? Eso es literalmente todo lo que tienes que hacer. Enfriar? DE ACUERDO. Así que vamos a ir a través de la siguiente. "Con lo consulta SQL podría el banco recuperar los números de cuenta de sus clientes más ricos con equilibra encima de $ 1,000? " Si su banco y sus clientes más ricos son sólo los que tienen más de $ 1.000, Me siento como si estuvieras haciendo algo mal. Al igual que, ¿cómo sobrevive un banco en eso? Al igual, que el interés, no del todo suficiente. DE ACUERDO. Con este tipo de cosas, ¿qué hacer usted piensa, de nuestros cuatro funciones, Qué crees que vamos a utilizar? SELECT. Perfecto. SELECT. DE ACUERDO. Así que estamos seleccionando algunos identificador FROM tabla. Y luego condición WHERE. Así que a medida que avanzamos a través de estos, sólo voy dar a ustedes un repaso general de en el formato general de todos estos. Así que estamos seleccionando algún tipo de [? cosa. ?] En este caso, esto va a ser típicamente alguna columna. Así que en nuestro caso, tenemos el número, el equilibrio. En caso de que los chicos, tal vez era ID, nombre, contraseña. Cualquiera de esas columnas, eso es normalmente lo que estamos seleccionando. Así que en este caso aquí, que tipo de columna, lo identificador estamos sacando de nuestra mesa? ¿Qué nos piden? Se nos pide nuestros números, ¿verdad? Los números de cuenta. Así que recuerda, sólo número en este caso. Si ustedes alguna vez tuvo el error, que cuadro de color naranja brillante saldría. Y fue como, inesperada remar en, como, lo que sea. Eso es porque usted llamó su mesa equivocada, ¿no? Así que asegúrese de que usted es llamando a la columna correctamente. Así que desde la mesa, la mesa se llama cuentas. Una vez más, asegúrese de que está incluir su tabla correctamente. Y entonces ¿cuál es nuestra situación aquí? ¿Qué estamos buscando? Queremos que nuestra gente rica. Sí. Así equilibrar mayor que 1000. Hay que ir. Esa es tu consulta. No está mal, ¿no? DE ACUERDO. Así que ahora a nuestro último. Con eso, estamos breezing través. DE ACUERDO. Así que ahora ", con lo que la consulta podría el cierre del banco, es decir, eliminar "- no te gusta la forma en que sólo le dio DELETE-- "Todas las cuentas que tiene un saldo de 0?" Creo que todos podemos estar de acuerdo que estamos Probablemente va a estar usando BORRAR. Estoy bienvenidos a tomar cualquier discusión en torno a eso. Pero creo que es bastante seguro decimos que podríamos utilizar DELETE. Así que vamos a borrar algunos los usuarios de la tabla, condición WHERE. Así mismo tipo de cosas como SELECT. Así que en este caso-- oh, lo siento. Debo DELETE FROM. Debido borraremos Eliminar toda la fila. Así que no tenemos que hablar de lo que cosas específicas acerca de un usuario que estamos borrado. Si borramos un usuario, estamos borrar todo acerca de ellos. Así que en este caso, sólo tenemos que complete nuestro WHERE y nuestra condición. Así que nuestra tabla es sólo nuestras cuentas mesa, como lo hemos estado haciendo. Y entonces ¿cuál es nuestra situación aquí? AUDIENCIA: Balance. ALTAVOZ 1: Balance es igual a 0. Correcto. Todo bien. Sí. AUDIENCIA: [inaudible]. ALTAVOZ 1: Así BORRAR inherentemente borra todo. Así que mientras que con SELECT, SELECT toma en ciertas columnas que desea que se devuelva. Si querías todo sobre un usuario ha devuelto, se utiliza estrella. Star dice, volver a mí todo lo de este usuario. O si usted pone DONDE estrella, que significa sólo dame todo. Pero BORRAR intrínsecamente tiene que. Así que si usted dice, DELETE de cuentas donde el equilibrio es igual a 0, que va a pasar. Y en todas partes que el equilibrio es igual a 0, es inherentemente hace eso. Se va a borrar todo. La estrella es más el fin de: con SELECT o UPDATE, se está hablando más sobre la persona campos correspondientes a un usuario. Así que cuando usted selecciona la estrella de la tabla donde ID es igual a 1, que devuelve a usted todo lo relacionado con el usuario con ID 1. Si se va a hacer número SELECT o SELECT ID nombre comas de los usuarios Donde id es igual a 1, que simplemente devuelve su número o su identificación y su nombre. DE ACUERDO? Por eso, utilizamos estrellas en ese caso a darnos todo acerca de un usuario. Y ELIMINAR inherentemente hace eso. Esto no sólo se elimina la ID, o simplemente el nombre, o lo que sea. Sí, no. Simplemente elimina todo el usuario. Así que no tenemos que preocuparnos acerca de la estrella allí. Si quisieras borrar todo, usted puede hacer eso, y esto sólo va a dejar todo. Pero por lo general, se no quiero hacer eso. Pero si alguna vez quiere eliminar todo, usted podría hacer eso. DE ACUERDO. ¿Han encontrado alguna otra pregunta? Sí. AUDIENCIA: ¿Podría usted hacer 26? ALTAVOZ 1: 26 que acabamos de hacer. AUDIENCIA: Oh, de 25 años, lo siento. ALTAVOZ 1: 25. DE ACUERDO. 25. Oh. Están haciendo JavaScript. Oh, no puedo creerlo. Voy a meterse con nosotros de nuevo, chicos. DE ACUERDO. Conseguimos este. Vamos a hacer este trabajo. Ah, jQuery. Divertido. DE ACUERDO. Así que vamos a completar el aplicación de la página web de tal manera que si se visita, ingresar su nombre, y enviar el formulario, tienen esta gran alerta ventana que va a aparecer. Así que cualquier cosa con alertas, sabemos que vamos a tener que utilizar JavaScript. Yay, JavaScript. Y si no logran ingresar un nombrar antes de enviar el formulario, debería aparecer ninguna alerta. Así que usted puede usar jQuery, pero usted no tiene que hacerlo. Así que voy a dejar que ustedes trabaja en esto sólo por un par de minutos. Piense en ello. Y luego vamos a codificarlo. Slash que voy a tratar de pensar en el mejor manera de explicar esta respuesta para usted. Bien. Vamos a conseguir que creó. DE ACUERDO. Así que sólo vamos caminar a través de este, porque sé jQuery es un poco confuso. JavaScript. Es un poco por ahí. Así que lo que vamos a hacer es [Inaudible] en realidad resuelto este problema con jQuery. Así que si usted recuerda, jQuery es una biblioteca eso es sólo construyeron en la parte superior de JavaScript. Es la intención de hacer su la vida un poco más fácil. Definitivamente, me gustaría, si tienes tiempo, mirar por encima de un poco de la documentación de jQuery. Pero es muy similar a JavaScript. Tiene paradigmas similares, donde utilizar este operador punto para llamar a funciones en los objetos que tiene. Así que lo que tenemos aquí es para jQuery, usted siempre debe tener este tipo de la envoltura, que es el Función $ (document) .ready (función) paréntesis aquí. DE ACUERDO. Así que esto podría ser algo que quiere en su hoja de trucos. Debido a que por lo menos, usted puede tener el contenedor para su jQuery. Y al menos obtendrá separe maneras allí. Así que de la misma manera que hablado mucho de JavaScript y nos gustaría empezar por mirar en lo que estamos tratando de editar o lo que estamos tratando de cambiar. Y eso suele ser el Lo primero que nos habíamos puesto en. Así que en este caso, si nos remontamos a esta aquí y miramos a nuestro formulario de aquí, Tenemos esta insumos, derecha, este id de insumos. Y sabemos que en base en nuestra pregunta, van bien para lanzar un error si esta está vacía, o vamos a poner esta en alerta, ¿verdad? Así que probablemente seguro decir que estamos va a estar tratando con entradas aquí. jQuery es muy similar en que si pensar de nuevo a CSS, cualquier cosa con un ID miramos con un hash. Cualquier cosa con clase que mirado con un punto, ¿no? Así que de la misma manera que aquí, lo que que estamos hablando es de los insumos. Vimos que los insumos es una identificación dentro de nuestro formulario. Así que nos vamos a referir a ella como tal. Entradas. DE ACUERDO? Así que en caso de duda, incluso si usted tiene la nada, si usted está realmente seguro de cómo acercarse a este, A, tener esta envoltura. Así que empieza allí con la envoltura para jQuery. B, asegúrese de que usted sabe lo que está cambiando. Y en caso de duda, poner eso en algo, y hacer punto, lo que usted piensa que debería estar haciendo con él. AUDIENCIA: ¿Cuál es el envoltorio? ALTAVOZ 1: La envoltura es esta primera línea. Así que esto dice, espere hasta mi documento está listo. A continuación, empezar a jugar con las cosas. DE ACUERDO? Así que sabemos que estamos jugando con los insumos. Así que estamos como, bien, las entradas es de nuestro formulario. Esa es nuestra identidad. Así que eso es lo que estamos va a estar buscando. Y queremos ver qué pasa cuando se presente esta forma, ¿no? Así como podríamos pensar, tenemos algunos .submit. Así .submit simplemente dice, OK, esta forma que hemos referenciado con entradas de hash, cuando se presentó, ejecutar otra cosa. Así que vamos a tener alguna función. Observe que tenemos funciones anónimas aquí. Tenemos una función anónima aquí. Sí. AUDIENCIA: ¿Siempre se .submit, o es sólo porque en el HTML, hicimos el tipo de botón Submit? ALTAVOZ 1: Debe .submit, porque es una forma de que estamos presentando. Debido a que este .submit no necesariamente corresponde a lo que el botón es como llamar. Pero el hecho de que es un Formamos que estamos presentando. DE ACUERDO. Así cuenta anónima función aquí que says-- AUDIENCIA: yo realmente no comprender funciones anónimas. ALTAVOZ 1: Así anónimo funciones, son sólo las funciones que no tienen un nombre. Así que en lugar de tener alguna función principal que calls-- podríamos decir, Si el documento listo, entonces nosotros llamaríamos entradas. Y luego, cuando fue presentado, call-- como, Si es así-y-así propuesta, que llamaríamos alguna otra función. Una función anónima simplemente no tiene un nombre, y se acaba de ejecutar dentro de este tipo de cosas. Así que en este caso, lo que dice Es decir, cuando nuestro documento está listo, ejecutar esta función. Esta función se compone de todo dentro de aquí. Y a continuación, el siguiente en la capa es, OK, cuando se presente insumos, ejecutar este. Es sólo una forma de denotar lo que debe ser ejecutado cuando. Es, literalmente, sólo un función que no hace tener un nombre, por lo que tienden a anidarse entre sí, porque no se puede llamar por su nombre. DE ACUERDO? Literalmente, una función anónima es sólo una función sin nombre. Eso es todo. Sólo una forma de encapsular cosas diferentes que queremos ejecutado en momentos específicos. AUDIENCIA: [inaudible]. ALTAVOZ 1: El respiradero? ¿Dónde? AUDIENCIA: En el paréntesis después de la función? ALTAVOZ 1: Después de funciones. Cúal? AUDIENCIA: Ambos. Si pones, como, evento, o si pones un argumento en allí, ¿sería equivocado? ALTAVOZ 1: En este caso, supongo usted podría poner un argumento en ese país. Pero debido a que no necesitamos una argumento, no debería ser. Al igual, que es el todo, como, usted sólo debe tienen cosas que son necesaria tipo de cosas. De la misma manera que si teníamos cualquier función que tiene void-- principal int como, con void main int, que podría hacer int arg v, lo que sea. Pero si usted no necesita esos, no debe tenerlos allí. Es lo mismo. Emma, ​​¿usted tiene una pregunta? DE ACUERDO. Fresco. DE ACUERDO. Así que lo que tenemos hasta ahora es cuando nuestra documento está listo, ejecute esta. Ahora que estamos viendo cuando se presentó. Así que ahora tenemos realmente especie de la carne de lo nuestro. Así que tenemos que obtener el valor que el usuario presentó, ya sea un nombre o vacío. Y entonces tenemos que cualquiera de retorno esta alerta o lanzar un error. De cualquier manera. Entonces, ¿cómo se declara una variable en JavaScript? Var. Así que digamos, nombre var equals-- o en realidad, vamos a hacer valor ya que creo que es nombre. DE ACUERDO. Así que tenemos algún valor aquí que quieren sacar de nuestro formulario de entradas. Así, en la misma manera que que tipo de insumos hicimos, ¿alguien puede decirme lo que podrían ser llamadas dentro de aquí si queríamos llegar el nombre de la forma? Y si miramos hacia atrás en nuestro formulario aquí, nos damos cuenta de que tenemos una identificación del nombre. AUDIENCIA: [inaudible]. ALTAVOZ 1: Usted no tiene a pensar en ella como una matriz. Usted no tiene que preocuparse por eso. Así que sólo tenemos un nombre. Y luego porque JavaScript y cosas son raros, no sólo podemos hacer "nombre". De hecho, tenemos que llamar a alguna función que nos da, como, el valor de dicho identificador. DE ACUERDO? Así que eso es sólo .val. AUDIENCIA: [inaudible]. ALTAVOZ 1: OK. Así que con JavaScript, este tipo de lo correcto aquí sólo pasa. Y se podría pensar en esto es como-- como casi un getElementById, donde getElementById haría realidad devolver la cosa completo a usted. Los $ ("# nombre") es igual, Bien, lo tengo, puedo acceder a ella, pero si realmente lo quiere para devolver el valor a usted-- AUDIENCIA: ¿Es como un puntero? ALTAVOZ 1: Es como una especie de puntero. Usted podría pensar en él como Algo así como un puntero. Al igual que, se dice, está bien, me saber cómo llegar hasta allí, pero para conseguir realmente el valor de él, usted tiene que pedirlo explícitamente. Y, por desgracia, obviamente, no lo hacemos hacer demasiado con JavaScript y jQuery. Así que va a venir a la cantidad usted guys-- lo casualidad usted conoce, lo que le sucede a haber visto, y lo que puedes tipo de adivinar lógicamente a. Debido a que algunas de estas cosas, probablemente podría llegar a mitad de camino. Pero para conseguir que toda la razón, Creo que este problema probablemente tenía una de las puntuaciones más bajas. AUDIENCIA: Como, por ejemplo, para [inaudible] insumos, ¿Por qué no tiene que poner val allí? ALTAVOZ 1: Para éste? AUDIENCIA: Sí. ALTAVOZ 1: Sí. Debido a que esta es una especie de gustar, como hemos dicho, algún puntero, y esta es mi referencia y en realidad nos conseguir el valor. AUDIENCIA: Mientras que [inaudible]? ALTAVOZ 1: Para las entradas, entradas es sólo some-- es como si sólo somos mirando como un todo, y esto .submit dice nosotros lo que necesitamos saber. jQuery y JavaScript es raro. Lo sé. Lo sé, chicos. Lo sé. Hay una razón por la que no lo hago hacer la programación web. Es una broma. No he tenido suficiente exposición a la misma. AUDIENCIA: [inaudible] CSS. [Risas] ALTAVOZ 1: OK, eso es CSS. CSS es sólo, como, hacer cosas bonitas, no es que vamos a tratar con datos. Hay una diferencia allí. DE ACUERDO. Así que ahora es de esperar, esta parcialmente: también, para un problema como este, en el que no puede conocer la sintaxis, podría ser, Bien, usted podría tener algún valor var y ser como, asumir I tiene el valor correctamente. Y entonces usted probablemente podría escribir la siguiente parte. Esta parte probablemente parece mucho más fácil, o tendría lógica sentido para ustedes. Mientras que lo que hemos escrito hasta ahora, Sé que sería como, umm, sí, No sé que en el cuestionario. Usted puede escribir totalmente psuedocode y luego entrar en verdadero código cuando usted-- que es un poco como las matemáticas. Si alguna vez has tenido alguna problema multi-parte en la que usted no sabe cómo pasar de la primera etapa, pero todo lo demás se basa en el primer paso, Acabas de decir, como, supongamos que x es igual 4. Y entonces se corre con ella, ¿no? Usted puede hacer lo mismo con el código. Así que se podría decir, asumir Tengo el derecho de valor. A continuación, realice la siguiente parte aquí. Debido a esta parte en realidad debe ser bastante lógico. Así que tenemos que comprobar si nuestro valor está vacío. O si es un nombre, realmente dar una alerta. Entonces, ¿qué podríamos querer comprobar? Queremos tener un poco de Si. ¿Qué te parece nuestro caso va a ser? Tenemos que comprobar para ver si el valor es-- si no es una cadena vacía. Perfecto. Exactamente. DE ACUERDO. Así que si ese es el caso, ¿qué es lo que queremos hacer? Queremos arrojar algo de alerta, ¿verdad? Así que es sólo de alerta. Y entonces lo que queramos dentro. Entonces, ¿qué se supone que debemos tener dentro de nuestra alerta? AUDIENCIA: "Hola". ALTAVOZ 1: Coma. Y luego hacer que chicos recordar cómo concatenar? AUDIENCIA: Plus. ALTAVOZ 1: Plus. Así que quiero tener más. Y entonces necesitamos otro más para nuestro signo de exclamación. Fresco. DE ACUERDO. De lo contrario, ¿qué podríamos querer hacer? No queremos hacer nada, ¿verdad? Así que sólo nos volvemos falsa. No es lo que quiero hacer. DE ACUERDO. Y entonces estos, de supuesto-- lo que es importante es recordar para cerrar sus funciones anónimas. Así que si te fijas, tenemos algunos función que aquí termina aquí. Así que tenemos que cerrar esta uno primero y añada un punto y coma. Y entonces éste aquí tiene que hacer con esta función anónima, así que cerramos allí. Esa reacción automática de ahorro. Sí. AUDIENCIA: ¿Hay alguna razón que-- justo en todos los ejemplos en JavaScript que yo he visto, tenemos las primeras llaves en la misma línea que la función? ALTAVOZ 1: Eso es estilística. Sí. Y en realidad, si se toma 61, que hacer todo nuestras llaves de esa manera. ¿Eh? AUDIENCIA: Si lo hemos hecho hacer eso en la PSET, es tan malo para el estilo? ALTAVOZ 1: No. Le hemos dicho explícitamente ustedes para hacer esto. Pero en realidad, esto es una especie de la convención que domina en un montón de clases C y JavaScript y jQuery. Así que, obviamente, estoy sure-- y, de hecho, si yo fueron a hacer este problema por completo ciego sin haber mirado, es probable que haya muy pocos formas que habría conseguido este. Yo podría haber sido como, OK, tal vez tenga que agarrar algo que es una entrada. Y creo que tiene la conocimiento de que, como, Bien, si quiero conseguir algo de una forma que tiene una identificación, Me refiero a que de esta manera, Probablemente me entiendo. Yo podría conseguir esto. Pero en realidad, lo único que creo Yo realmente tengo es esto de aquí. Así que es algo importante saber, como con cualquier prueba difícil, que tipo de elegir sus batallas, ¿verdad? Si usted sabe que no va a conseguir esa primera parte para jQuery, como he dicho, se supone que tiene este valor y haga lo que pueda con él. Y si tienes tiempo, volver y tratar de llenar las piezas. Pero no dejes que una pregunta como esto realmente le empantanar. Porque, ¿qué? Esta fue una pregunta sobre jQuery de todo el examen. Así que sí, que sería genial si lo ha hecho. AUDIENCIA: [inaudible] que pueden hacer uso de jQuery. ALTAVOZ 1: Usted es bienvenidos a usar jQuery. AUDIENCIA: OK. [Inaudible]. ALTAVOZ 1: ¿Cómo no usarlo? Tendría que mirar todo mi JavaScript. En realidad es mucho más fácil, Creo que, para usar jQuery, porque jQuery reduce realmente el cantidad de JavaScript que escribe probablemente por, al igual que, la mitad. Así que nuestro código sería probablemente el doble de tiempo sin eso. Así que si usted recognize-- el mayor cosa que le quita a este problema son los patrones. Si usted está accediendo algo de una forma, vas a usar comillas, hachís, lo que estás tratando de acceder. Si está siendo sometido, que desea usar algo como un .submit. Usted está probablemente va a utilizar una función anónima en ese país. Si usted necesita realmente el valor de algo, vas a hacer citas, hachís, lo que sea que el campo es, .val. Y el reconocimiento de patrones como que se va ser mucho más útil que saber realmente el quid de la cuestión. Sí. AUDIENCIA: Entonces, si el usuario envía su nombre y se ejecuta a través de esa declaración, la voluntad ir hacia abajo y volver falsa después de esto? ALTAVOZ 1: No, porque la alerta, usted puede pensar en él como un retorno. Sí. Así que va a salir. Sí. AUDIENCIA: ¿Podría usted [? colocar?] de los paréntesis de presentar, entre paréntesis, algo? ALTAVOZ 1: Lo hice, creo. Éste está cerrado aquí. Y entonces éste se cierra aquí abajo. AUDIENCIA: ¡Oh, no. Bien. ALTAVOZ 1: Obviamente, poco, pequeñas cosas sintácticas así, probablemente vamos a sólo un círculo y ser como, no te olvides de tus paréntesis. Pero sí. DE ACUERDO. ¿Tenemos otra que nos gustaría hacer? ¿Ustedes Obtener el árbol binario uno? ¿Queremos ir más que uno? Me siento como árboles binarios y departamentos de ultramar deben ser puntos que ustedes dan con bastante facilidad. Yo no te quiero perder puntos en que. DE ACUERDO. Vamos a hacer esto DOM aquí. Me gustaría tener mi superficie, así que sólo podría dibujar en la pantalla. Eso es lo que yo solía hacer el año pasado. DE ACUERDO. Así que como he mencionado, hablamos sobre DOM, Document Object Model. Probablemente van a dar algunos poco de fragmento como este y le pedirá que cree un árbol para ello. Y esto sólo Todo tiene que ver con el funcionamiento a través de las etiquetas. Así que vamos a tratar de hacer esto. También, como de costumbre, si ustedes hacer estas pruebas, ya que muy recomendamos que usted hace como práctica, cualquiera de ellos que usted es como, Yo realmente no entiendo lo que está pasando aquí, sólo, por supuesto, envíeme un correo electrónico con una pregunta, y voy a explicar lo mejor que pueda. DE ACUERDO. Tenemos algún documento, y tenemos HTML. DE ACUERDO. Así que sólo estamos analizando las etiquetas aquí, ¿verdad? Entonces, ¿qué es lo que vemos comes-- lo son las dos subpartidas HTML? Sobre todo porque que están sangría correctamente? Cabeza y cuerpo. Ah. Cabeza y cuerpo. Precioso. Así que vamos a empezar aquí con la cabeza. ¿Qué hay debajo de la cabeza? ¿Cuál es nuestro siguiente etiqueta? Título. Y luego dentro del título, concurso. DE ACUERDO. Así que, literalmente, es sólo caminando a través de las etiquetas, ¿de acuerdo? Así que si tenemos cuerpo, a medida que avanzamos a través de, cuerpo tiene tres cosas dentro de ella, ¿no? Tiene tres divs. Cada div obtiene su propia cajita. Y lo que es en la primera div? [Inaudible] Y luego el siguiente es medio, que yo sólo voy a abreviar. Y a continuación, el último es inferior. Así que en realidad, es sólo caminar por. Y porque nos vamos a dar te HTML que se aplica sangría correctamente, usted puede, literalmente, sólo correr a través de y ser como, OK, aquí está el HTML. Así que esta es la más externa esquina, o más a la izquierda, por lo que tiene que ser su propia cosa. Estos son en el mismo indentación. Así que sabemos que la cabeza tiene que estar al mismo nivel que el cuerpo, pero por debajo de HTML. Es lo que tenemos aquí. Cabeza y cuerpo son hermanos, pero que están bajo HTML. Y luego pues sólo de entrar en cada una de ellas. Así que la cabeza tiene título, que tiene preguntas y respuestas, como vemos aquí. Y luego, en este caso, tenemos cuerpo, que tiene estas tres líneas. Así que estos son todos hermanos, todo bajo el cuerpo. DE ACUERDO? Así que espero que cuando lo ves algo como esto, usted es como, Sí, acabo de llegar a dibujar un árbol. Va a ser genial. DE ACUERDO. Así que quería asegurarse de que ustedes lo sabían. Entonces, ¿por qué no vamos a 32 con nuestro árbol binario? Porque una vez que entienda un binario árbol de búsqueda, en realidad no es tan malo. Así Everett, ¿puedo yo erase-- significar, estos son todos en línea, también. Así que si usted tiene alguna pregunta. Perdió un poco de espacio, pero que está bien. Así árbol de búsqueda binaria es sólo una forma de organizar los datos no en una matriz, donde la raíz es siempre mayor que el hijo izquierdo y la raíz es siempre menor que el hijo derecho. DE ACUERDO. Así que tenemos este gran árbol de búsqueda aquí. Tenemos estos números, 34, 59, 20, 106, 36, y 52. Y tenemos que organizar ellos de tal manera de tal manera que la raíz es mayor todo lo que en el lado izquierdo y es menos de todo en el lado derecho. Y por lo general, lo que querer hacer es tratar de encontrar algo en el medio. Con árboles binarios de búsqueda, es posible que tenga para jugar un poco con él. Pero en este caso, vamos a Suponemos que sabemos esto primero. Así que 36 es nuestra primera aquí. Por lo general, me gustaría tratar y elegir algo aproximadamente en el medio que va a probablemente obtener los mejores resultados. Así que ahora que sabemos que todo en este lado tiene que ser inferior a 36. Pero también, lo que se podía ver es que tenemos dos puntos más de aquí. Así que si sabemos que necesitamos dos números que son menos de la raíz, entonces se podría simplemente pedir este y elegir el tercer número. DE ACUERDO. Entonces, ¿por qué no empezamos con este lado? Así que si sabemos que todo en este lado tiene que ser menos de 36-- pero si nos fijamos en éste, sabemos que este número tiene que ser inferior a este número, ¿no? Debido a que este número aquí está en el lado derecho. Y recuerda que, al igual que en nuestro más grande árbol, todo a la derecha debe ser mayor que la raíz. De esta manera, sabemos que lo que está en este necesidades para ser más grande que lo que hay aquí. DE ACUERDO? Así que tenemos dos opciones para estos dos burbujas. Tenemos 32 y 34-- o lo siento. 20 y 34. Entonces, ¿cómo cree usted que podríamos poner esto en? Si éste tiene que ser más grande que éste, eso significa que queremos tener 20 aquí y 34 aquí. DE ACUERDO. Así que de la misma manera, buscamos en este tipo de sub árbol. Y digamos, bien, no lo hemos hecho 36. Tenemos 106, 52 y 59. Derecho? En este caso aquí, saber que éste lo necesita tener una cosa que es mayor que y una cosa que es menos que él. Derecho? Así que si ponemos estos con el fin, es sólo sobre la búsqueda de ese valor medio nuevo. Así que nuestro valor medio es de 59. Entonces decimos, bien, lo que es inferior a 59? Bueno, eso es 52. Y lo que es mayor que 59? Bueno, eso es 106. DE ACUERDO? Así que es un poco como un rompecabezas. Típicamente ayuda, especialmente en árboles pequeños como este, si sólo lo pide, si saber cuántos están a la izquierda y cuántos están en el derecho, que puede simplemente le permiten elegir lo que debe estar en su raíz. Y entonces usted puede clase de trabajar desde allí. Mm-hm. 33? Claro. DE ACUERDO. Así que queremos crear un nodo o un árbol de búsqueda binario. Y vamos a ver lo que podría estar en ella. Y creo que esta voluntad realmente ser nuestro último problema. Ah. DE ACUERDO. DE ACUERDO. Esto es como lo que podamos pensar como un nodo, ¿verdad? Tenemos algo de valor, y saber que lo hará bien tener hijos izquierdo y derecho. Búsqueda binaria tree-- que medios que tiene, a lo sumo, dos hijos. DE ACUERDO? Vamos a pensar en la forma en que define una lista enlazada, ¿verdad? Tuvimos algunos int que representado el valor. Teníamos un poco de puntero que representaba lo que iba a continuación. Árbol binario de búsqueda es muy similar. Todavía tenemos algún valor, n, que le damos, ¿verdad? Y luego dibujé estas muy explícitamente con las flechas, porque son punteros eficaz. DE ACUERDO? Así que n es típicamente qué? Es cierto valor. ¿Qué hacemos normalmente designamos como? Un int. Así que tenemos algunos int n, o el valor int, o lo que quieras llamarlo. Y luego tenemos a la izquierda hijo y el hijo derecho. Derecho? Y sabemos que lo que están point-- qué están apuntando a? Están apuntando a otros nodos, ¿verdad? Entonces, ¿cómo íbamos a declarar un puntero de nodo? AUDIENCIA: [inaudible]. ALTAVOZ 1: Mm-hm. Y vamos a tener dos de ellos, ¿no? Y entonces podemos literalmente no dejado para el hijo izquierdo y el derecho del niño a la derecha. Actually-- lo siento. Porque necesitamos struct. Así estructura se debe a que no tenemos terminado de declarar un nodo todavía. Así nodo es aquí dentro. Es como una especie de definición recursiva, ¿verdad? Así que cuando estamos dentro de esta definición, no han terminado de declarar nodo como la estructura, por lo que tenemos que hacer struct nodo sólo para decir, sí, de hecho estamos refiriendo de nuevo a nosotros mismos escriba cosa. Que como una vez que se creado, no habrá ningún problema. Así lo grande que piensan ustedes que es esto? ¿Cuál es el tamaño de esta estructura? 12. ¿Por qué? Precisamente. Y de hecho, una de las primeras preguntas uno Cuestionario Uno es acerca de los tamaños, por lo que le pedí. Bien. Vamos a terminar, porque el DCE gritar a mí si no lo hacemos. Pero si ustedes tienen alguna pregunta, por supuesto, envíeme un correo electrónico, que me haga saber. Ustedes van a la roca misma. Estoy súper emocionada. Ustedes se hará como del miércoles, y luego tendrás que trabajar en su última proyectos, y va a ser impresionante. Yo estaré aquí el próximo semana 04:00-4:30 si ustedes quieren venir recoger los cuestionarios. Si quieres encontrarme en otro momento o simplemente coordinar un momento diferente, no dude en hacérmelo saber. De lo contrario, esta es nuestra última sección. Así que fue genial verlos a ustedes. Por favor tome más dulces. Y buena suerte en su prueba.