[GIOCO MUSIC] SPEAKER 1: Va bene, tutti. Benvenuti nella tua ultima sezione con me. E 'stato proprio il semestre. Non posso credere che questo è, come, Settimana 12 o 11, una cosa del genere. Ma perché è il nostro ultimo sezione, abbiamo un sacco di caramelle. E ho intenzione di provare a voi così come ho prep possibile per il vostro quiz il Mercoledì. Quindi probabilmente non è il modo migliore per, come, sezione terminale con la recensione quiz. Ma cercheremo di rendere divertente. E c'è sempre caramelle. Così si spera, che ti rendono meglio. Il tuo quiz sta per essere abbastanza più o meno la stessa cosa Quiz Zero. E sarà il stesso formato, stessa lunghezza. Sarete in camere sparse attraverso campus, perché ci sono vicino a 900 di voi, e non possiamo tutto si tiene in camera come questo. Quindi, essere sicuri di guardare tutti Colui documentazione Quiz online su cs50.harvard.edu stasera o domani sera. Assicuratevi di sapere dove sei andare, che cosa è necessario portare. Davvero, basta portare te stesso e una matita, e si dovrebbe andare bene. Le domande saranno molto lo stesso. Ci sarà probabilmente un paio scelta multipla, una risposta breve coppia, alcuni di codifica, magari un po 'vero / falso, corrispondenti genere di cose. Quindi non dovrebbe essere troppo sorpreso dal formato. Che cosa può essere sorprendente è il lunghezza, che, negli anni precedenti, è stato molto più lungo. Nel mio anno, non ho un solo amico che ricordo finire l'esame. C'erano come multipla pagine lasciate in bianco. Quindi la lunghezza può essere tipo di disorientante solo perché in alcuni anni, ha stato molto più lungo di Quiz One. Non ho idea di cosa si tratta sta per essere come quest'anno, ma è qualcosa di cui essere consapevoli. Inoltre, la persone tendono difficulty-- trovare Quiz Uno molto più difficile che Quiz Zero. Anche in questo caso, si sa, se sei specie di camminare out sente un po 'a disagio perché non avete fatto così come si pensava si o ti senti come se non l'hai fatto fare così come avete fatto a Quiz One, ricordate che ci sono probabilmente un sacco di altre persone sentirsi così. Mi è stato sicuramente una di quelle persone. Quiz uno, come, mi ha buttato per un ciclo. E i miei amici hanno questo grande foto di loro a JP Licks tipo di con questi enormi coppe, essere come, Quiz One, e guardando come sono in lacrime. Quindi è una sensazione generale. E 'una dura prova, si tratta di un quiz difficile. Ovviamente, se si esce e si sentire come si è scosso, grande per voi. Ma sai che sei probabilmente not-- non si è quasi sicuramente solo se si cammina fuori sensazione che, eh, probabilmente avrebbe potuto ottenuto più meglio. È dura. Mm-hm. AUDIENCE: Quanto vale la pena in relazione a [incomprensibile]? SPEAKER 1: Vale la pena lo stesso. Sì. Ma ancora una volta, è anche andando essere colpiti da come il resto della classe fa, come il vostro punto fa, come hai migliorato nel tempo. Classificazione è un po 'di una scatola nera. Così che cosa il numero effettivo o la percentuale si ottiene non è necessariamente come direttamente correlato con il grado si sta andando ad ottenere. C'è un sacco di fattori che vanno in esso. E con questo, stiamo andando a passare attraverso qualche revisione quiz. Sto solo andando a correre questo come l'ultima volta per voi ragazzi. Ho tutte le risposte a Quiz Uno dello scorso anno. Quindi, se voi volete tirare che fino sul proprio computer, se hai preso questo esame prima e avete domande, Stavo pensando che potevamo basta andare attraverso alcuni di quelli più difficili su questo. Così possiamo parlarne, forse ottenere un po 'più chiaro nell'intuizione dietro alcune delle queste domande, come avvicinarli. Come pure, come l'ultima volta, Ho un mazzo di 100-slide che ha praticamente tutto delle slitte che hanno preparato per precedente sezioni dalla tua ultima I quiz-- avere in questo mazzo. Così possiamo passare praticamente nulla che abbiamo parlato anticipo che forse si vuole un po 'più di chiarimento su. Potremmo farlo prima. Ma per il resto, io sono super felice solo per tipo di lavoro attraverso questi problemi con. E sono davvero qui per concentrarsi su ciò che pensate voi ragazzi sarebbe più importante su cui concentrarsi. Come, ovviamente, tutti questa roba è importante. Soprattutto come andiamo attraverso Quiz One, Io sicuramente notare le cose come, oh, questo potrebbe essere qualcosa si vuole veramente sapere o si desidera avere sul vostro foglietto. Sarò raccontando cose come sorta di passare attraverso. Così su quella nota, ci sono delle cose che voi ragazzi piacerebbe andare oltre? Inoltre, se non ho nel mio ponte, siamo in grado di tirare su qualcosa sul web, o possiamo cercare di fare up un esempio al volo. Ma qualsiasi concetti che si ragazzi sono un po 'confuso su. [? Brian,?] Hai have-- AUDIENCE: Oh, è cumulativo? Come, è la roba Quiz Zero sarà qui? SPEAKER 1: E 'cumulativa, ma è molto di più di particolare attenzione per le cose dal tuo ultimo quiz. Così, ovviamente, voi ragazzi avete imparato a conoscere le variabili e loop, e condizionali. E non è come quelle appena andare via, perché sono ovviamente inerente a tutto altra cosa che abbiamo imparato oggi. Ci potrebbe essere una domanda sui tipi, o là potrebbe essere una domanda su diverse ricerche. Oppure ci potrebbe essere una coppia domande sul forse qualcosa si avendo a che fare con la compilazione o diversi errori. Ma se hai guardato Quiz Un rispetto allo scorso anno, si noterà che è molto concentrato sulle cose che sono successe dal tuo quiz. Perché quella porta chiusa sempre? E davvero mi disturba. Perché cerco sempre di passare attraverso di essa. Ecco, questo è più o meno come il quiz sarà. Quindi ci sono concetti che voi vorrebbe andare oltre? Oppure possiamo saltare a destra in solo guardando Quiz One rispetto allo scorso anno e il tipo di corso attraverso domande di pratica lì. Possiamo anche passare avanti e indietro. Questa non è una sola volta genere di cose. Tutte le domande? Sì. PUBBLICO: Potrei chiedere un domanda su another-- SPEAKER 1: Un altro? AUDIENCE: Questo è un altro anno. SPEAKER 1: Sì. Possiamo anche fare un altro anno. AUDIENCE: OK. Così il 2011. SPEAKER 1: 2011. Ooh, che è stato l'anno prima di me. Permettetemi di tirare questo. PUBBLICO: credo. SPEAKER 1: Questo aspetto Rapporto mi sta gettando fuori. PUBBLICO: 11 e 12. SPEAKER 1: 11 e 12. OK. Beh, qui, perché non facciamo questo? Si guys-- tutti basta prendere un paio di minuti a guardare attraverso quiz. E noi sottoporremo un elenco. E poi andremo attraverso di loro. Bene? Mentre ho un mucchio di questa roba istituito. OK. Sto solo andando a scrivere le cose sulla carta. 2011, 11 e 12? Sto solo andando a cambiare questo display. OK. Così va meglio. Questo sopra. Bene. Qualcun altro ha alcuna che vorrebbero iniziare? Inoltre, dimenticato di dire, se si vuole di più di un gruppo di persone che parlano a voi e solo dando una crepa Naturalmente nelle ultime sei settimane, ci sono in esecuzione una recensione session dalle 7:00 alle 8:30 stasera a nord-ovest B103, che è accaduto anche l'ultima volta, dove sta andando a essere io, Hannah, Daven, con Gabe e Rob tipo di aiuto dalla margine di solo tipo di buttare tutto le informazioni che si potrebbe vogliono avere sul vostro foglietto, tagliare, sapere in generale là. AUDIENCE: Che è anche on-line, giusto? SPEAKER 1: E 'anche on-line. Così si può anche stare fuori di questo tempo icky, vai al tuo dormitorio, e live-streaming, se vuoi. Sono sicuro che un sacco di people-- So che lo farei essere farlo se fossi nei tuoi panni. OK. Allora perché non cominciamo with-- mentre guys-- spera, stai guardando attraverso. Se no, potrei iniziare a lavorare attraverso le cose diverse su Quiz One rispetto allo scorso anno a meno che non domande specifiche. Inizieremo con questo domanda qui su stack. Quindi non tutti ricordano tipo di quello che una pila è? Come tendiamo a-- qualcuno può solo dare me una descrizione generale di una pila? Un tipo di struttura dati. OK. Quindi è una delle strutture di dati che noi aspettano che tu sia familiare with-- come pile, gli array, code, ecc. Sì. AUDIENCE: Come First In, Last Out, qualcosa. SPEAKER 1: E 'First In, Last Out. Esattamente. Così una pila è esattamente quello che noi tendiamo a pensare su quando pensiamo di una pila di cose. Così una pila di piastre. Il primo piatto si mette giù sta per essere in fondo, e sarà l'ultimo quello di rimuovere alla fine. Perché si accumulano. E si prende quello fuori dal fondo, tipicamente, le cose in crash e si rompono. Così pile si può pensare proprio come una pila di piatti. Oppure l'esempio ci piace sempre di usare è nelle sale D, si hanno i vassoi, sono tutti accatastati, e si prende dalla cima. Così l'ultimo in è il primo ad uscire. OK. Quindi, nel caso di specie, si vediamo noi have-- Mi chiedo se posso effettivamente ingrandire un po '. Quindi abbiamo questa struct qui. Giusto? Così avete qualche struct che ha alcuni int numero di capacità. Quindi cosa pensiamo che rappresenta? Si tratta di una matrice con capacità dimensioni. Quindi questo rappresenta davvero nostro stack in generale. Il nostro stack è in realtà solo una array con un numero set che è il suo massimo, cioè la sua capacità. E poi abbiamo qualche int size, che seguirà la dimensione del nostro stack durante il corso di quando stiamo usando. OK? In questo caso qui, diciamo che il nostro dimensione dello stack è stato inizializzato a 0. Così abbiamo uno stack vuoto in questo momento. E poi vogliamo completare l'attuazione del pop tale che restituisce l'int in alto. E poi se è vuoto, restituisce negativo 1. OK? Quindi voglio che voi ragazzi solo pensare su ciò che potremmo fare. Ciò che può essere uno dei primi cose che vorremmo controllare? C'è una grande cosa qui. Ogni volta che says-- se c'è mai un po 'di If, come "Se pila è vuota," o "Se questo restituisce null," o "Se questo è tutto ciò" - mi dispiace. AUDIENCE: Scrivere un'istruzione If. SPEAKER 1: Giusto. Si potrebbe scrivere un If. E questo è probabilmente uno dei prime cose che si vogliono controllare. OK. Ogni volta che ti danno un po 'come un caso d'angolo come questo, che è tipicamente una delle prime cose si sta andando a controllare nel codice. Inoltre, qualcosa riconosce per il quiz è se avete un modo inefficiente di fare qualcosa, scrivere. Perché non stiamo classificazione si sul design, siamo si classificazione sulla correttezza per i quiz. Quindi, anche se si sa che si tratta di un super cattivo modo di fare qualcosa, ma funziona, scriverlo, OK? Letteralmente, ho visto i bambini dell'ultimo anno di successo se si guarda a un ultimo anno, sono come, fanno la piramide Mario. E hanno letteralmente fatto "stampa, hash, print, hash, hash, stampa, hash, hash, hash. " Ma è corretto. Non quello che ci ha detto che a, così non si può prendere punti fuori. Se sei giù al filo, ovviamente, vuole ottenere una soluzione più elegante, e la soluzione più elegante probabilmente essere meno codice, che significa probabilmente hanno una maggiore probabilità di essere nel giusto. Ma se siete come, sai ciò che, no, non ho tempo, mi sa questa è una soluzione, non è la migliore, scriverlo. E si può anche scrivere sulla lato, so che questo è terribile, ma so che funziona. Quindi, solo un heads-up. OK. Così, ovviamente, prima cosa è questo If. Allora cosa facciamo che questo caso dichiarazione sarà? E in realtà, mi lascia aperta il mio grande editore Sublime. Ho intenzione di codificare questo e poi mostrare ragazzi quando è fatto. Così int pop. OK. Quindi, se abbiamo questa int pop void-- così ovviamente, questa è una funzione che prende in nulla e restituisce un intero, giusto? Quindi è solo andare a parlare questo stack che abbiamo creato. Quindi, solo tradurre questo ultimo frase "se pila è vuota, pop deve restituire negativo 1, "come potremmo farlo? Così Se quello? Come facciamo a sapere che la pila è vuota? E 'solo dimensioni pari a 0. Stack.size uguale a 0. Inoltre, sto tipo di scrittura cieca qui. Quindi, se faccio qualsiasi typos-- oh, anche dimenticato di dire questo. La settimana scorsa, ho totalmente capito ciò che il nostro problema era con JavaScript. Non capitalizzare I e D. Hai solo dovrebbe capitalizzare I e ottenere elementi da Id. E questo è stato l'intero errore. Quindi, se voi ragazzi tornare indietro e effettivamente guardare attraverso il mio codice, se basta fare tutto ciò che un d minuscola, "dimentica elemento da Id," funzionerà. Quindi, come ho promesso, ero molto vicino. Ho appena maiuscola qualcosa Io non dovevo, che Sono sicuro che voi ragazzi avuto nella tua ultima PSET. Quindi, se la nostra dimensione è uguale a 0, cosa dovremmo fare? AUDIENCE: rendimento negativo 1. SPEAKER 1: rendimento negativo 1. Freddo. Così ora che cosa facciamo? Vogliamo pop qualcosa fuori. Ora questo è il caso dove abbiamo qualcosa. La nostra dimensione è maggiore di 1 o maggiore di 0, giusto? Noi in realtà abbiamo qualcosa lì. Quindi quello che vogliamo fare è noi voglio tornare qui. Stiamo andando a dire che vogliamo per tornare cima alla pila. OK? Così come potremmo farlo? Come si torna in cima alla pila? Ricordate, il nostro stack è solo un array, giusto? Ha una certa capacità che abbiamo dato. Come abbiamo messo le cose on-- o addirittura, stiamo andando a scrivere "push" dopo questo. Se le cose sono in there-- forse un quadro aiuterà. Hm, mi piace grande gesso meglio. Così if-- e si può solo pensare a questo come il nostro stack. Quindi questo è 0, 1, 2. Non so perché i miei scatole sono sempre più piccoli. Ma lì. OK. Quindi questo è un po 'pila con una capacità di 5. E diciamo che abbiamo qualcosa qui e abbiamo qualcosa qui. Quindi, a questo punto, il nostro dimensione è uguale a quello che? 2. E se vogliamo pop qualcosa fuori di esso, questo significa che vogliamo ottenere liberarsi di questo qui. OK? Così come abbiamo il ritorno di questo valore? AUDIENCE: Size meno 1. SPEAKER 1: Giusto. Così dimensione meno 1, oppure potrebbe fare il formato meno meno. Ma non possiamo fare il formato. E 'all'interno di una struttura, giusto? Così stack.struct. o stack.size. Questo è il nostro indice proprio lì. OK? E poi se guardiamo indietro al nostro struct qui, notiamo che a in realtà accedere alla matrice, abbiamo bisogno di fare stack.numbers per accedere realmente tale matrice. Così che restituisce la parte superiore della pila. Ma qualcosa che-- se voi ragazzi guardare presso il tasto di risposta, questo è tutto quello che darvi. Quindi è questo. Ma potrei sostenere che sono miss-- ooh, non quello che volevo. Potrei sostenere che sono manca qualcosa, perchè-- sì. AUDIENCE: Ridurre le dimensioni. SPEAKER 1: Giusto. Dobbiamo ridurre la nostra taglia. Allora, cosa c'è di difficile su questo è ancora una volta si torna qualcosa, la funzione di andare uscita, giusto? Quindi ciò che potremmo fare è in realtà diminuire la nostra dimensione prima. E poi possiamo solo che stack.size. Possiamo semplicemente utilizzare stack.size come il nostro indice, non potremmo? Perché se stack.size è 2, che diminuirlo. E così è 1, che è il nostro indice reale. Una volta che ci liberiamo di questo, abbiamo effettivamente avere una sola cosa nella nostra matrice. Così fa entrambe. AUDIENCE: [incomprensibile]? SPEAKER 1: Beh, in questo caso, siamo appena tornati l'elemento in alto che si trova nel nostro dimensione che è in alto. Ma non abbiamo fatto nulla per la formato dopo che abbiamo rimosso tale elemento. Questo non è ancora cambiato la nostra dimensione. Questo fa in realtà intrinsecamente cambiare la nostra dimensione. Ma per renderlo un po 'più chiaro, si potrebbe fare stack.size meno meno. Per me, lo rende, non lo so, un po 'più chiaro che-- ah, che si sta effettivamente cambiando la dimensione e il ritorno. L'altro modo andava bene, perché stavi cambiando e ritorno contemporaneamente. Ma questo è solo un altro modo di scrivere è che volevo mostrarvi ragazzi. Questo fa senso? Stacks, credo, sono molto più facile che le code. [Ride] OK. Hai avuto domande specifiche circa 11 e 12, o solo-- PUBBLICO: Penso che sia stato lo stack. SPEAKER 1: La dimensione dello stack? PUBBLICO: Sì. SPEAKER 1: Gotcha. OK. Sì, si potrebbe fare in uno di questi due modi. OK. Così ora abbiamo l'altra. Questo è davvero strano, come non avere questo sul mio schermo. Quindi, se guardiamo qui, ora vogliamo completare l'attuazione di spinta, che in realtà mette qualcosa, va e inserisce qualcosa nella nostra coda, o nel nostro stack. OK? Quindi, se notiamo, abbiamo un paio di cose. Abbiamo i nostri great-- se tutto il resto, ogni volta che abbiamo uno di questi, voi ragazzi dovreste ottenere almeno la metà un punto, perché tutto ciò che dovete fare è convertire questo in C. E ti danno la metà di esso. Quindi, "se uno stack è pieno o è negativo, quindi spingere dovrebbe restituire false. " OK? Quindi vogliamo solo positivo interi per essere il nostro stack. Bene? E questo sta a uno restituire true o false. Quindi dovremmo [incomprensibile] bool. OK. Così traduzione. AUDIENCE: [incomprensibile]. SPEAKER 1: Oh, grazie. Sì. Questo è il motivo per cui ho voi ragazzi. Int n. Perfetto. Perché stiamo mettendo qualcosa al nostro stack. Abbiamo davvero bisogno di qualche numero. OK. Quindi basta prendere l'ultima riga ci hanno dato, il nostro tipo di casi d'angolo, cosa che abbiamo qui? Ovviamente, stiamo per avere un po 'se. OK. Così abbiamo detto, se il nostro stack è pieno o se n è negativo. Quindi probabilmente più semplice per iniziare , per cui se n è minore di 0 o- ricordare la bella Operatori AND e OR lì. Come abbiamo fatto il check di vedere se il nostro stack è pieno? Che succede? AUDIENCE: Size stessa capacità. SPEAKER 1: Esattamente. Perfetto. OK. E che cosa vogliamo fare? AUDIENCE: return false. SPEAKER 1: Ritorno falso. Perfetto. Così a metà strada, giusto? Per lo meno, voi ragazzi avrà metà di questo. Quindi pensiamo a questo. Quindi questa è la pila si parte con. Stiamo cercando di mettere qualche elemento qui. Abbiamo una dimensione che è pari a 2 in questo momento. Abbiamo una capacità che è uguale a 5. E diciamo che abbiamo qualche n che è uguale a 3. Quindi abbiamo bisogno di ingresso 3 in questo spazio. E abbiamo bisogno di inserire in indice 2. Giusto? Così come potremmo farlo? Cercando di assign-- noi vogliono accedere al nostro array. Così stack.numbers. Ma a quale indice sarebbe vogliamo che questo sia? AUDIENCE: [incomprensibile]. SPEAKER 1: Sì. Stack.size. E vogliamo che a parità di n, giusto? AUDIENCE: [incomprensibile]. SPEAKER 1: I era in realtà solo guardando questo. Penso che sia sbagliato. AUDIENCE: Non vuoi la spazio oltre la dimensione attuale? SPEAKER 1: Beh, se guardiamo qui, nostro formato a questo punto è 2. Noi vogliamo andare in indice 2, perché questa è la parte superiore del nostro stack. Quindi direi che dovrebbe essere stack.size, e quindi si dovrebbe aumentare stack.size. Sono tutti d'accordo? Penso che sono d'accordo con questo. Voi potete discutere con me se vuoi. O non litighiamo, ma siamo in grado di discutere di questo. AUDIENCE: [incomprensibile]. SPEAKER 1: Mm-hm, è dove sta aprire a causa dello zero indicizzazione. Così che, nella prima parte, Ho pensato che fossero sbagliate, ed erano in realtà a destra, questo parte, io in realtà penso che erano sbagliate. Direi che si dovrebbe sicuramente ingresso qui. Penso che siamo tutti d'accordo abbiamo una dimensione di 2. Questo è esattamente dove siamo vuole il nostro nuovo numero di andare. Così stack.numbers a stack.size deve essere uguale n. E poi ci sarebbe incrementare il stack.size. ++. E allora cosa vogliamo fare? C'è un'ultima cosa che dobbiamo fare se abbiamo inserito con successo questo? Restituisce vero. E ora il gioco è fatto. Così mi sento come se fosse tutto meno meno stack.size e stack.size ++ che cose incasinato. Ugh. Ho keep-- ho questa istintiva tendenza a colpire sempre Controllo, S, perché non ho mai vuole perdere nessuno dei miei lavori. Ma non ho bisogno di farlo ora. OK. Quindi era stack. Freddo. C'è qualcosa? Hai ragazzi a trovare nessuna altre domande che ci si piacerebbe andare oltre da quiz precedenti? In caso contrario, si può iniziare a parlare di genere attraverso Quiz Un rispetto allo scorso anno. Sì. Destinatari: per la prima parte, non ho davvero capire come è stato eliminato il numero. Non è ancora lì? SPEAKER 1: Il numero è ancora lì. Ma quello che succede è che, poiché hai detto che che la parte superiore del tuo stack è qui, quando si va a aggiungere qualcosa nello stack, sarà solo sostituirlo. AUDIENCE: Oh, OK. SPEAKER 1: Sì. Quindi è come se ha dimenticato ed è lì tipo di cosa, anche se è lì. AUDIENCE: [incomprensibile] o qualcosa? SPEAKER 1: No. Perché siamo in un array, non è necessario preoccuparsi about-- ti basta ignorare quando ne avete bisogno. Bene. Altre domande? Se no, stiamo solo andando per iniziare a lavorare attraverso. Sì. AUDIENCE: Beh, questo è il 2013, ma solo passando attraverso la roba SQL. SPEAKER 1: SQL? OK. Quindi questo è da 26 a 29. PUBBLICO: Sì. SPEAKER 1: OK. Incantevole. Facciamo tirare quelle up. Oh, guarda. Avete ragazzi piace la Steve Ballmer parla, a proposito? E 'stato piuttosto divertente, a mio parere. Mi piace che ogni volta che richiamare CS50 di sito in sezione, è come, oh, vedere sezione. E io sono come, mm. AUDIENCE: Possiamo farlo? SPEAKER 1: Lo faremo alla fine. Come sarebbe? Perché ti conosco ragazzi hanno sempre voluto. Quindi lo faremo alla fine. Uno domande. AUDIENCE: [incomprensibile]. SPEAKER 1: Sarà una sezione meta. AUDIENCE: E 'come 5 secondi. AUDIENCE: Davvero? AUDIENCE: E 'come 20 secondi. [VOICES interponendo] [Risate] SPEAKER 1: mi piace che hai già fatto essa, che è ciò che mi rende più felice. OK. 26. OK. In realtà, stiamo solo andando a specchio adesso, perché non posso. Questo è fastidioso. OK. Ora posso vedere tutto. Incantevole. OK. Così, ovviamente, questo dovrebbe riportare grandi ricordi da [? CSG?] Finance. La metà di voi circa ha classificato la vostra ora. L'altra metà mi metterò a molto, molto presto, lo prometto. Così abbiamo alcuni tabella SQL questo è Accounts qui. Probabilmente simile a tabelle utente vostri ragazzi '. E abbiamo un certo numero di che era una chiave primaria e rappresenta un Numero di conto a 12 cifre. E l'equilibrio è la quantità di denaro che hanno. E il valore di default è 100. E li danno 100 dollari ogni volta che aprono un conto. Vorrei che la mia banca ha fatto. OK. Così vogliamo completare lo schema specificando vicino al numero in equilibrio il tipo SQL appropriata. Allora, cosa ne pensate voi ragazzi sarebbe un po 'come la vostra reazione istintiva per i tipi di questi due? AUDIENCE: Int. SPEAKER 1: An int. OK. E poi per un equilibrio? Decimale. OK. Quindi ha ragione decimale. Int è vicino. Tipo della grande cosa è questo ha sottolineato il numero di conto a 12 cifre. Ogni volta che abbiamo qualcosa che è più grande di otto cifre, vogliono di utilizzare grande int, che credo è-- AUDIENCE: È solo SQL? SPEAKER 1: E 'l'unica volta che ho sentito di esso è SQL-- come usare un grande int. E 'solo per darvi un poco più di precisione, fare in modo che non sei Tipo straripante cosa. In tutta onestà, credo che questo è sicuramente uno di quelli dove è come, oh, è pensato per le persone che hanno un po 'di più la conoscenza di SQL. Non abbiamo mai parlato di grandi interi nel PSET. Quindi è un po 'come io sono abbastanza sicuro se si mette int, era la metà del credito. E come ho detto prima, ci sono in corso essere alcune domande che sono solo destinato a inciampare in su, in modo da che non tutti ottiene 100. Perché naturalmente, ci sono alcune persone in CS50 che sono state facendo questo per come otto anni e siete come, cosa stai facendo? Ma sì. Decimale per l'equilibrio è stata la ovvia. E poi grande int per numero solo perché di che, come sottolineato a 12 cifre. Ogni volta che qualche cosa è in grassetto o è sottolineato, come, prestare attenzione ad esso. Non stiamo facendo che solo perché. OK. Quindi, "supporre che le impone di banca un canone mensile di $ 20 sul tutti i conti. Con quale interrogazione potrebbe la banca dedurre $ 20 da ogni account anche se è il risultato di alcuni saldi negativi? " Quindi cominciamo semplice. Abbiamo quattro comandi principali per SQL, quali sono? Voi ragazzi ricordare le quattro quelli più grandi che ti ho detto? UPDATE, DELETE, SELECT e INSERT. Perfetto. Fatto. Quindi cosa pensiamo forza essere più utile per questo? Noi are-- UPDATE. Esattamente. Così AGGIORNARE, perché stiamo cercando a conti già esistenti. Quindi ricorda il nostro generale genere di cose è l'aggiornamento. E poi quello che viene dopo UPDATE? Abbiamo qualche tavolo che stiamo riferimento. Quindi, se mi tiro su Sublime again-- UPDATE. Quindi questo è un formato generico. Così abbiamo tavolo UPDATE. E allora qual è la prossima cosa che abbiamo? Si può fare DOVE. E poi abbiamo un po 'di qualificazione qui. E allora cosa abbiamo adesso? Abbiamo qualche cosa SET-- pari a qualcosa. Blah blah uguale. Blah Aggiornato. Giusto? Ecco, questo è come il generale idea per qualche aggiornamento. OK? Quindi cominciamo riempire questo a quello che dovrebbe essere. Quindi cosa tavolo stiamo parlando? Account. E poi in questo caso, ciò che è veramente fresco è stiamo parlando specifico gli utenti all'interno del nostro conto, o stiamo parlando di tutti gli utenti? Stiamo parlando di tutti gli utenti. Quindi, in questo caso, possiamo solo eliminare questo DOVE qualificatore. L'WHERE è solo quando si desidera di limitare quello che stai cambiando. Se si desidera cambiare l'intero tavolo, si può semplicemente abbandonare questo. OK. Così ora siamo al nostro parte SET. Cosa vogliamo cambiare? AUDIENCE: Balance. SPEAKER 1: Balance. E stiamo andando a-- come stai abbiamo intenzione di cambiare l'equilibrio? Abbiamo una tassa di 20 dollari, giusto? Minus 20. E hanno detto che è OK se abbiamo saldi negativi. Quindi, in questo caso, non è necessario fare ogni ulteriore controllo degli errori. OK? Questo è letteralmente tutto quello che dovete fare. Freddo? OK. Quindi cerchiamo di passare attraverso quella successiva. "Con quale query SQL potrebbe la banca recuperare i numeri di conto dei suoi clienti più ricchi con saldi maggiore di $ 1.000? " Se la tua banca e ai clienti più ricchi sono solo quelli con più di 1.000 dollari, Mi sento come se fossi facendo qualcosa di sbagliato. Come, come fa una banca sopravvivere su questo? Come, che l'interesse, non abbastanza. OK. Con questo genere di cose, che cosa fare si pensa, i nostri quattro funzioni, pensi che andremo ad utilizzare? SELECT. Perfetto. SELECT. OK. Quindi stiamo selezionando alcuni identificatore FROM tabella. E poi condizione WHERE. Così come andiamo attraverso questi, sto solo andando per dare a voi ragazzi una rinfrescata generale relativa allo schema generale di tutti questi. Quindi stiamo selezionando una sorta di [? cosa. ?] In questo caso, questo sta per essere tipicamente qualche colonna. Quindi, nel nostro caso, abbiamo il numero, l'equilibrio. Nel caso in cui i ragazzi ', forse era ID, nome, password. Una di quelle colonne, che è in genere quello che stiamo selezionando. Quindi in questo caso qui, che tipo di colonna, quale identificativo stiamo tirando dal nostro tavolo? Che cosa ci chiede? Ci chiede i nostri numeri, giusto? I numeri di conto. Quindi ricorda, proprio numero in questo caso. Se voi ragazzi mai avuto l'errore, che scatola arancione brillante sarebbe venuto fuori. Ed è stato come, inaspettato remare in, come, a prescindere. Questo perché hai chiamato il vostro tavolo sbagliato, giusto? Quindi, essere sicuri che si sono chiamando correttamente la colonna. Così da tavolo, il nostro tavolo si chiama conti. Ancora una volta, assicuratevi di essere referenziare la tua tavola correttamente. E allora qual è la nostra condizione qui? Quello che stiamo cercando? Vogliamo che i nostri ricchi. Sì. Così equilibrio maggiore di 1.000. Ci si va. Ecco la query. Non male, vero? OK. Così ora per la nostra ultima. Con questo, stiamo breezing attraverso. OK. Così ora "con quello di query potrebbe la chiusura della banca, cioè, eliminare "- Non ti piace il modo in cui appena dato DELETE-- "Ogni account che ha un saldo di 0?" Penso che siamo tutti d'accordo che siamo probabilmente intenzione di utilizzare DELETE. Sono invitati a prendere qualsiasi la discussione intorno a quello. Ma penso che sia abbastanza sicuro Diciamo che potremmo usare CANC. Quindi stiamo andando a eliminare alcuni utenti da tavolo, condizione WHERE. Così stessa cosa come SELECT. Quindi, in questo case-- oh, mi dispiace. Dovrei DELETE FROM. Perché cancellerà cancellare l'intera riga. Quindi non abbiamo bisogno di parlare di quali cose specifiche su un utente siamo eliminazione. Se si elimina un utente, siamo cancellando tutto su di loro. Quindi, in questo caso, abbiamo solo bisogno di compilare il nostro WHERE e la nostra condizione. Così il nostro tavolo è solo i nostri conti tavolo, come abbiamo fatto. E allora qual è la nostra condizione qui? AUDIENCE: Balance. SPEAKER 1: Balance è uguale a 0. Corretto. Tutto bene. Sì. AUDIENCE: [incomprensibile]. SPEAKER 1: So CANCELLA elimina intrinsecamente tutto. Così mentre con SELECT, SELEZIONA prende in alcune colonne che si desidera venga restituito. Se si voleva tutto su un utente è tornato, si utilizza stella. Stella dice, tornare a me tutto da questo utente. Oppure, se si mette DOVE stella, che significa solo darmi tutto. Ma DELETE ha intrinsecamente tale. Quindi, se si dice, DELETE da conti dove l'equilibrio è uguale a 0, che sta per passare attraverso. E tutto il mondo che l'equilibrio è uguale a 0, che fa intrinsecamente. Sarà cancellare tutto. La stella è più for-- con SELECT o UPDATE, si sta parlando di più l'individuo campi corrispondenti ad un utente. Così quando non SELEZIONA stella dalla tabella WHERE ID uguale 1, che torna a voi tutto ciò che riguarda l'utente con ID 1. Se si dovesse fare numero SELEZIONA o SELECT ID nome comma da parte degli utenti WHERE ID è uguale a 1, che solo restituisce il loro numero o la loro identità e il loro nome. OK? Quindi usiamo stella in quel caso a ci danno tutto di un utente. E DELETE intrinsecamente fa. Esso non solo eliminare l'ID, o solo il nome, o qualsiasi altra cosa. Si ', no. E 'solo elimina l'intero utente. Quindi non dobbiamo preoccuparci sulla stella lì. Se si voleva eliminare tutto, si potrebbe farlo, e questo ti basta mollare tutto. Ma in genere si, non vogliono farlo. Ma se mai desidera eliminare tutto, si poteva farlo. OK. Avete ragazzi trovato altre domande? Sì. AUDIENCE: Puoi fare 26? SPEAKER 1: 26 che abbiamo appena fatto. AUDIENCE: Oh, 25, mi dispiace. SPEAKER 1: 25. OK. 25. Oh. Stanno facendo JavaScript. Oh, non posso crederci. Io vado a rovinare noi di nuovo, ragazzi. OK. Abbiamo ottenuto questo. Stiamo andando a fare questo lavoro. Ah, jQuery. Fun. OK. Quindi stiamo andando a completare il attuazione della pagina web in modo tale che se visitano, Ingresso il loro nome, e inviare il modulo, hanno questa grande allerta finestra che sta per apparire. Quindi nulla con segnalazioni, sappiamo che stiamo andando ad avere per usare JavaScript. Yay, JavaScript. E se non riescono a immettere un nome prima di inviare il modulo, dovrebbe apparire nessun avviso. Quindi è possibile utilizzare jQuery, ma non è necessario. Quindi ho intenzione di lasciare che voi ragazzi di lavorare su questo solo per un paio di minuti. Pensateci. E poi ci codificarlo. Slash Ho intenzione di cercare di pensare al il modo migliore per spiegare questa risposta per voi. Bene. Otterremo esso istituito. OK. Quindi stiamo solo andando a camminare attraverso questo, perché so jQuery è un po 'di confusione. JavaScript. E 'un po' fuori. Così che cosa stiamo andando a fare è [Incomprensibile] in realtà risolto questo problema con jQuery. Quindi, se vi ricordate, jQuery è solo una libreria questo è solo costruito sulla cima di JavaScript. E 'pensato per rendere il vostro la vita un po 'più facile. Mi sarebbe sicuramente, se avete tempo, guardare oltre un po 'di documentazione per jQuery. Ma è molto simile a JavaScript. E 'ottenuto paradigmi simili, dove si utilizzare questo operatore punto per richiamare le funzioni su oggetti che avete. Quindi quello che abbiamo qui è per jQuery, si dovrebbe sempre avere questo tipo di involucro, che è il $ .ready Funzione (documento) (funzione) tra parentesi qui. OK. Quindi questo potrebbe essere qualcosa vuoi sul tuo foglietto. Poiché per lo meno, è possibile hanno l'involucro per il jQuery. E sarà almeno arrivare vi separi modi ci. Così nello stesso modo in cui parlato molto di JavaScript, e vorremmo iniziare a guardare a quello che stiamo cercando di modificare o quello che stiamo cercando di cambiare. E che sarebbe tipicamente il prima cosa che avremmo messo in. Quindi, in questo caso, se torniamo a questo qui e guardiamo al nostro modulo qui, abbiamo questo input, a destra, questo id di ingressi. E sappiamo che sulla base sulla nostra domanda, noi sono o andando a buttare un errore se questo è vuoto, o che andremo a mettere questo in un avviso, giusto? Quindi probabilmente sicuro dire che siamo andando a che fare con gli ingressi qui. jQuery è molto simile a che se ripensare a CSS, qualsiasi cosa con un ID guardiamo con un hash. Tutto ciò con classe abbiamo guardato con un punto, giusto? Così nello stesso modo qui, cosa stiamo parlando di ingressi. Abbiamo visto che gli ingressi è un ID all'interno del nostro modulo. Quindi stiamo andando a fare riferimento ad esso come tale. Ingressi. OK? Così, in caso di dubbio, anche se si dispone di nessuna parte, se siete davvero sicuri su come avvicinarsi a questo, A, avere questo involucro. Così inizia lì con il wrapper per jQuery. B, assicurarsi che si sa quello che si sta modificando. E in caso di dubbio, metterlo in qualcosa, e fare punti, qualunque cosa tu pensi si dovrebbe fare con esso. AUDIENCE: Qual è il wrapper? SPEAKER 1: Il wrapper È questa prima linea. Quindi questo dice, attendere il mio documento è pronto. Poi iniziare pasticciano con le cose. OK? Così sappiamo che stiamo scherzi con ingressi. Così siamo come, OK, ingressi è il nostro modulo. Questo è il nostro ID. Ecco, questo è ciò che siamo sta per essere alla ricerca di. E noi vogliamo vedere cosa succede al momento della presentazione di questo modulo, giusto? Quindi, come si potrebbe pensare, abbiamo qualche .submit. Così .submit dice solo, OK, questa forma che abbiamo fatto riferimento con ingressi hash, quando è stata presentata, eseguire qualcos'altro. Quindi stiamo andando ad avere qualche funzione. Notate che abbiamo funzioni anonime qui. Abbiamo una funzione anonima qui. Sì. AUDIENCE: Sarà sempre .submit, o è solo perché nel codice HTML, abbiamo fatto il tipo di pulsante Submit? SPEAKER 1: Va .submit, perché è una forma che sottoponiamo. Perché questo .submit non necessariamente conforme a quanto il pulsante è come chiamare. Ma il fatto che è un formiamo che stiamo presentando. OK. Così notare anonimo funzione qui che says-- PUBBLICO: non ho davvero comprendere funzioni anonime. SPEAKER 1: So anonymous funzioni, sono solo funzioni che non hanno un nome. Così, invece di avere una certa funzione principale che calls-- potremmo dire, Se il documento pronto, allora noi chiameremmo ingressi. E poi, quando presentate, call-- Come, se così e così presentato, noi chiameremmo qualche altra funzione. Una funzione anonima semplicemente non ha un nome, e sarà solo l'esecuzione all'interno di questo genere di cose. Quindi, in questo caso, cosa dice questo è, Quando il nostro documento è pronto, eseguire questa funzione. Questa funzione è composta di tutto in qui. E poi il livello successivo è, OK, quando gli ingressi sono presentate, eseguire questo. E 'solo un modo della denotazione ciò che deve essere eseguito quando. E 'letteralmente a funzione che non lo fa avere un nome, quindi tendono a essere annidati l'uno nell'altro, perché non è possibile chiamare per nome. OK? Letteralmente, una funzione anonima è solo una funzione senza nome. Questo è tutto. Solo un modo per incapsulare cose diverse che vogliamo eseguito in momenti specifici. AUDIENCE: [incomprensibile]. SPEAKER 1: La bocca? Dove? AUDIENCE: Nel parentesi dopo la funzione? SPEAKER 1: Dopo funzioni. Quale? AUDIENCE: Entrambi. Se si mette, come, eventi, o se si mette un argomento in là, sarebbe sbagliato? SPEAKER 1: In questo caso, suppongo si potrebbe mettere un argomento in là. Ma perché non abbiamo bisogno di un argomento, non ci dovrebbero essere. Come, è l'intero, come, solo dovrebbe avere le cose che sono necessaria genere di cose. Allo stesso modo che se abbiamo avuto alcun funzione che ha int void-- principale come, con int void main, si potrebbe fare int arg v, a prescindere. Ma se non avete bisogno di quelli, si non li dovrebbe avere in là. Stessa cosa. Emma, ​​hai avuto una domanda? OK. Freddo. OK. Quindi quello che abbiamo finora è quando il nostro documento è pronto, eseguire questo. Ora stiamo guardando quando è stata presentata. Così ora abbiamo effettivamente abbiamo sorta di carne di nostra cosa. Quindi abbiamo bisogno di ottenere il valore che il utente presentato, sia che si tratti di un nome o vuoto. E poi abbiamo bisogno di entrambi di ritorno questo avviso o genera un errore. In entrambi i casi. Quindi, come si dichiara un variabili in JavaScript? Var. Quindi diciamo, nome var equals-- o realtà, faremo fare valore poiché penso che il suo nome. OK. Così abbiamo un valore qui che vuole tirare dal nostro modulo ingressi. Così nello stesso modo in cui abbiamo tipo di fatto ingressi, qualcuno può dirmi quello che abbiamo potrebbe essere chiamata entro qui se volevamo arrivare il nome dalla forma? E se guardiamo indietro alla nostra forma qui, notiamo che abbiamo un ID di nome. AUDIENCE: [incomprensibile]. SPEAKER 1: Non hai a pensare ad esso come un array. Non è necessario preoccuparsi di questo. Quindi non ci resta che qualche nome. E poi perché JavaScript e cose sono strano, non possiamo fare "nome". Noi in realtà dobbiamo chiamare una funzione che ci dà, simile, il valore di tale identificatore. OK? In modo che è solo .VAL. AUDIENCE: [incomprensibile]. SPEAKER 1: OK. Quindi, con JavaScript, questo tipo di cosa giusta qui appena passa attraverso. E si potrebbe pensare questo as-- è come quasi un getElementById, dove getElementById sarebbe in realtà restituire la cosa completo a voi. Il $ ("# nome") è come, OK, ce l'ho, posso accedervi, ma se si vuole realmente che per restituire il valore di you-- AUDIENCE: E 'come un puntatore? SPEAKER 1: E 'un po' come un puntatore. Si potrebbe pensare ad esso come Come una sorta di puntatore. Come si dice, OK, io sapere come arrivarci, ma per ottenere effettivamente il valore di esso, si deve esplicitamente richiesto. E purtroppo, ovviamente, non lo facciamo fare troppo con JavaScript e jQuery. Così sta andando a venire giù a quanto si guys-- cosa vi capita di sapere, quello che vi capita di aver visto, e che è possibile tipo di logica indovinare. Poiché alcune di queste cose, si probabilmente potrebbe arrivare a metà strada. Ma per ottenere completamente a destra, Penso che questo problema probabilmente aveva uno dei punteggi più bassi. AUDIENCE: Come, per esempio, per [incomprensibile] ingressi, il motivo per cui non c'è bisogno di mettere val lì? SPEAKER 1: per questo? PUBBLICO: Sì. SPEAKER 1: Sì. Perché questo è una specie di come, come abbiamo detto, alcuni puntatore, e questo è me referenziare e in realtà ci ottenere il valore. AUDIENCE: considerando che [incomprensibile]? SPEAKER 1: Per gli ingressi, ingressi è solo some-- è come se fossimo appena guardando suo insieme, e questo dice .submit noi che cosa abbiamo bisogno di sapere. jQuery e JavaScript è strano. Lo so. Lo so, ragazzi. Lo so. C'è una ragione per cui non lo faccio fare programmazione web. Stavo solo scherzando. Non ho avuto abbastanza esposizione ad esso. AUDIENCE: [incomprensibile] CSS. [Risate] SPEAKER 1: OK, questo è CSS. CSS è proprio, come, rendere le cose abbastanza, non è come cerchiamo di trattare con i dati. C'è una differenza c'è. OK. Così ora si spera, questo part-- anche, per un problema come questo, dove non può conoscere la sintassi, si potrebbe essere come, OK, si potrebbe avere qualche valore var e di essere come, assumere I ottenuto correttamente il valore. E allora si potrebbe probabilmente scrivere questa parte successiva. Questa parte successiva sarà probabilmente Sembra molto più facile, o farebbe logico senso per voi ragazzi. Mentre quello che abbiamo scritto finora, So che sarei come, umm, sì, Non so che il quiz. È possibile scrivere totalmente psuedocode e poi entrare nel codice reale quando you-- è un po 'come la matematica. Se hai mai avuto un po ' problema multi-parte in cui non si sa come superare il primo passo, ma tutto il resto si basa su tale prima fase, basta dire, come, assumere x è uguale a 4. E poi si esegue con esso, giusto? Si può fare la stessa cosa con il codice. Così si potrebbe dire, assumere Ho ottenuto il giusto valore. Poi fare questa parte successiva qui. Poiché questa parte in realtà dovrebbe essere abbastanza logico. Quindi abbiamo bisogno di controllare se il nostro valore è vuoto. Oppure, se si tratta di un nome, effettivamente dare un allarme. Allora, cosa potremmo desiderare di controllare? Vogliamo avere un po 'se. Cosa pensi del nostro caso sta per essere? Abbiamo bisogno di verificare se il valore è-- se non è una stringa vuota. Perfetto. Esattamente. OK. Quindi, se questo è il caso, cosa vogliamo fare? Vogliamo gettare un po 'di allarme, giusto? Quindi è solo allarme. E poi tutto ciò che vogliamo all'interno. Allora cosa dovremmo di avere all'interno del nostro avviso? PUBBLICO: "Ciao." SPEAKER 1: Comma. E poi fare voi ragazzi ricordare come concatenare? AUDIENCE: Più. SPEAKER 1: Più. Quindi vogliamo avere più. E poi abbiamo bisogno di un altro plus per il nostro punto esclamativo. Freddo. OK. In caso contrario, ciò che potremmo voler fare? Noi non vogliamo fare niente, giusto? Così abbiamo appena torniamo falso. Non è quello che voglio fare. OK. E poi questi, naturalmente-- ciò che è importante è da ricordare per chiudere le funzioni anonime. Quindi, se ci fate caso, abbiamo un po ' funzione qui che finisce qui. Quindi abbiamo bisogno di chiudere questa primo e aggiungere un punto e virgola. E allora questo qui deve fare con questa funzione anonima, così chiudiamo lì. Quella reazione automatica di risparmio. Sì. AUDIENCE: C'è una ragione che-- solo in tutti gli esempi in JavaScript che ho visto, abbiamo le prime parentesi graffe sulla stessa linea della funzione? SPEAKER 1: E 'stilistica. Sì. E in realtà, se si prende 61, abbiamo fare tutto il nostro parentesi graffe in quel modo. Eh? AUDIENCE: Se abbiamo fatto farlo su il PSET, è così male per lo stile? SPEAKER 1: No. Abbiamo detto in modo esplicito voi ragazzi a fare questo. Ma in realtà, questo è una specie della convenzione che domina in molte classi C e JavaScript e jQuery. Così, ovviamente, sono sure-- e in realtà, se sono stati a fare completamente questo problema cieco senza aver guardato, vi è probabilmente molto pochi modi avrei ottenuto questo. Avrei potuto essere come, OK, forse bisogno di afferrare qualcosa che è un input. E penso che avere il consapevolezza che, come, OK, se voglio ottenere qualcosa da un modulo che ha un ID, Mi riferisco ad essa in questo modo, Probabilmente mi capisco. Potrei ottenere questo. Ma in realtà, l'unica cosa che penso Vorrei davvero ottengo è questo qui. Quindi è una specie di importante conoscere, come con qualsiasi prova difficile, è sorta di scegliere le tue battaglie, giusto? Se sai che non hai intenzione di ottenere che prima parte per jQuery, come ho detto, si presuppone che questo valore e fare ciò che si può con esso. E se avete tempo, tornare indietro e cercare di riempire i pezzi. Ma non lasciate che una domanda del genere questo davvero impantanarsi. Perché ciò? Questa è stata una domanda su jQuery fuori l'intero esame. Quindi sì, sarebbe bello se lo avete ottenuto. AUDIENCE: [incomprensibile] voi sono invitati a utilizzare jQuery. SPEAKER 1: Sei benvenuto per usare jQuery. AUDIENCE: OK. [Incomprensibile]. SPEAKER 1: Come ti non usarlo? Avrei dovuto guardare tutta la mia JavaScript. In realtà è molto più semplice, Credo che, per usare jQuery, perché jQuery riduce effettivamente il quantità di JavaScript si scrive probabilmente by, come, la metà. Così il nostro codice sarebbe probabilmente doppio del tempo senza che. Quindi, se si recognize-- il più grande cosa da prendere da questo problema sono i modelli. Se accedi qualcosa da un modulo, avete intenzione di usare le virgolette, hash, qualsiasi cosa tu stia cercando di accesso. Se è in corso di presentazione, si desidera di utilizzare qualcosa come un .submit. Probabilmente intenzione di utilizzare una funzione anonima in là. Se hai veramente bisogno il valore di qualcosa, si sta andando a fare preventivi, hash, qualunque cosa questo campo è, .VAL. E riconoscendo i modelli così stanno andando di essere molto più utile davvero conoscere la Nitty Gritty. Sì. AUDIENCE: Quindi, se il utente invia il loro nome e attraversa quella dichiarazione, sarà andare giù e return false dopo questo? SPEAKER 1: No, perché l'avviso, si può pensare ad esso come un ritorno. Sì. Così sarà uscire. Sì. AUDIENCE: Potresti [? posizionare?] le parentesi di presentare, parentesi, qualcosa? SPEAKER 1: ho fatto, credo. Questo chiusa qui. E poi questo viene chiuso qui. AUDIENCE: Oh, lì. Bene. SPEAKER 1: Ovviamente, poco, piccole cose sintattiche così, faremo probabilmente solo cerchio e essere come, non dimenticate le vostre parentesi. Ma sì. OK. Dobbiamo altro che vorremmo fare? Hai ragazzi ottenere quello albero binario? Vogliamo andare oltre quello? Mi sento come alberi binari e DOM dovrebbero essere punti che voi ragazzi ottiene abbastanza facilmente. Non vorrei che si a perdere punti su quella. OK. Facciamolo DOM qui. Vorrei avere la mia superficie così ho potrebbe semplicemente disegnare sullo schermo. Questo è quello che ho usato per fare l'anno scorso. OK. Quindi, come ho già detto, abbiamo parlato su DOM, Document Object Model. Probabilmente stanno andando a darvi alcuni po 'di snippet come questo e vi chiedo di creare un albero per esso. E questo proprio tutto ha a che fare con l'esecuzione attraverso i tag. Quindi cerchiamo di fare questo. Inoltre, come al solito, se voi ragazzi fare questi quiz, come vivamente consiglio di fare come pratica, qualcuno di loro che siete come, Io davvero non capisco che cosa è succede qui, solo, ovviamente, inviarmi una e-mail con una domanda, e vi spiegherò come meglio posso. OK. Abbiamo qualche documento, e abbiamo HTML. OK. Allora stiamo solo analizzando i tag qui, giusto? Quindi che cosa vediamo comes-- quali sono le due sottovoci in HTML? Soprattutto perché stanno rientrate correttamente? Testa e corpo. Ah. Testa e corpo. Incantevole. Allora cominciamo qui con la testa. Qual è la testa sotto? Qual è il nostro prossimo tag? Titolo. E poi nel titolo, quiz. OK. Così letteralmente, è solo a piedi attraverso i tag, OK? Allora se abbiamo corpo, come andiamo attraverso, corpo ha tre cose all'interno di esso, giusto? E 'ottenuto tre div. Ogni div prende la sua piccola scatola. E cosa c'è nel primo div? [Incomprensibile] E poi il prossimo è di mezzo, che Sto solo andando per abbreviare. E poi l'ultimo è inferiore. Quindi, in realtà, è solo a piedi attraverso. E perché stiamo andando a dare si HTML che viene correttamente rientrato, si può letteralmente semplicemente scorrere e di essere come, OK, ecco il codice HTML. Quindi questo è il più esterno angolo, o più a sinistra, in modo che deve essere proprio cosa. Questi sono sullo stesso rientro. Così sappiamo che la testa ha bisogno di essere allo stesso livello come il corpo, ma sotto HTML. E 'quello che abbiamo qui. Testa e corpo sono fratelli, ma sono in HTML. E poi abbiamo appena andiamo in ciascuno di questi. Quindi testa ha titolo, che ha quiz, come vediamo qui. E poi in questo caso, abbiamo corpo, che ha queste tre linee. Quindi questi sono tutti fratelli tutti sotto il corpo. OK? Così si spera quando si vede qualcosa di simile a questo, siete come, Sì, ottengo solo disegnare un albero. Sara 'fantastico. OK. Così ha voluto assicurarsi ragazzi sapevano che. Allora perché non andiamo a 32 con il nostro albero binario? Perché una volta capito un binario Ricerca albero, non è poi così male. Così Everett, posso erase-- I Cioè, questi sono tutti in linea, troppo. Quindi, se avete domande. Perso un po 'di spazio lì, ma è OK. Quindi ricerca binaria albero è solo un modo per organizzare i dati non in una matrice, in cui la radice è sempre più grande che il bambino sinistra e la radice è sempre inferiore al figlio destro. OK. Così abbiamo questo grande albero di ricerca qui. Abbiamo questi numeri, 34, 59, 20, 106, 36, e 52. E abbiamo bisogno di organizzare loro in modo tale tale che la radice è maggiore di tutto sul lato sinistro ed è inferiore tutto sul lato destro. E in genere, ciò che voglia di fare è cercare e trovare qualcosa circa nel mezzo. Con alberi binari di ricerca, si potrebbe avere a giocare un po 'con esso. Ma in questo caso, diciamo solo Supponiamo che sappiamo che questo primo. Così 36 è la nostra prima qui. In genere, vorrei provare e scegliere qualcosa circa a metà che ti probabilmente per ottenere i migliori risultati. Così ora sappiamo che tutto il questa parte deve essere inferiore a 36. Ma anche, quello che si può vedere è che abbiamo due punti qui. Quindi, se sappiamo che abbiamo bisogno di due numeri che sono meno di radice, allora si può solo ordinare questi e scegliere il terzo numero. OK. Allora perché non cominciamo con questo lato? Quindi, se sappiamo che tutto su questa parte deve essere inferiore 36-- ma se guardiamo questo, sappiamo che questo numero deve essere inferiore a questo numero, giusto? Perché questo numero qui è sul lato destro. E ricordate, proprio come nel nostro più grande albero, tutto a destra deve essere maggiore rispetto alla radice. In questo modo, sappiamo che tutto ciò che è in questo esigenze di essere più grande di qualunque è qui. OK? Quindi abbiamo due scelte per questi due bolle. Abbiamo 32 e 34-- o dispiaciuto. 20 e 34. Così come si pensa potremmo mettere queste in? Se questo deve essere più grande di questo, questo significa che vogliamo hanno 20 e 34 qui qui. OK. Così allo stesso modo, osserviamo a questo tipo di albero sub. E noi dire, OK, non abbiamo 36. Abbiamo 106, 52, e 59. Giusto? In questo caso qui, sapere che questo bisogno per avere una cosa che è più grande di e una cosa che è meno che esso. Giusto? Quindi, se mettiamo questi in ordine, è solo di trovare ancora una volta che il valore medio. Così il nostro valore medio è 59. Allora noi diciamo, OK, che cosa c'è di meno di 59? Beh, questo è 52. E che cosa è più grande di 59? Beh, questo è 106. OK? Quindi è solo un po 'come un puzzle. Aiuta genere, in particolare in piccoli alberi come questo, se hai appena ordinate, se sapere quanti sono sulla sinistra e quanti sono sulla a destra, che può solo consentono di scegliere che cosa dovrebbe essere al vostro root. E allora si può tipo di lavorare da lì. Mm-hm. 33? Certo. OK. Così vogliamo creare un nodo o un albero binario di ricerca. E diamo un'occhiata a quello che potrebbe essere in esso. E credo che questo testamento in realtà essere il nostro ultimo problema. Ah. OK. OK. Questo è come quello che possiamo pensare come un nodo, giusto? Abbiamo un certo valore, e noi sapere che sarà o hanno lasciato e figli destra. La ricerca binaria tree-- che mezzi che ha, al massimo, due bambini. OK? Pensiamo al modo in cui definito una lista collegata, giusto? Abbiamo avuto qualche int che rappresentato il valore. Abbiamo avuto qualche puntatore che rappresentava quello che stava per successivo. Albero binario di ricerca è molto simile. Abbiamo ancora qualche valore, n, che diamo, giusto? E poi ho disegnato questi molto esplicitamente con le frecce, perché sono efficacemente puntatori. OK? Quindi n è tipicamente quello che? E 'un po' di valore. Che cosa in genere designare come? Un int. Così abbiamo alcuni int n, o il valore int, o qualsiasi altra cosa vuoi chiamarlo. E poi abbiamo sinistra bambino e il bambino a destra. Giusto? E sappiamo che cosa sono Point-- cosa stanno indicando? Stanno indicando altri nodi, giusto? Così come abbiamo il dichiarare un puntatore nodo? AUDIENCE: [incomprensibile]. SPEAKER 1: Mm-hm. E stiamo andando ad avere due di questi, giusto? E poi possiamo letteralmente non a sinistra per il bambino di sinistra e giusto per il figlio destro. Actually-- dispiace. Perché abbiamo bisogno di struct. Così struct è perché non abbiamo terminato dichiarando un nodo ancora. Quindi il nodo è dentro qui. E 'un po' come un definizione ricorsiva, giusto? Così, quando siamo dentro questa definizione, abbiamo non hanno finito di dichiarare nodo come la struttura, quindi dobbiamo fare struct node solo per dire, sì, siamo infatti riferimento torna a noi stessi cosa tipo. Che come una volta che è creato, sarà bene. Così come grande ne pensate ragazzi questo è? Qual è la dimensione di questa struttura? 12. Perché? Precisamente. Ed infatti, uno dei prime domande si Quiz One è sulle dimensioni, che è il motivo per cui ho chiesto. Bene. Stiamo andando alla fine, perché il DCE sarà urlare contro di me, se non lo facciamo. Ma se voi ragazzi avete tutte le domande, naturalmente, email me, me lo faccia sapere. Voi ragazzi stanno andando al rock esso. Sono super eccitato. Voi ragazzi sarà fatto come di Mercoledì, e poi si arriva a lavorare sul finale progetti, e che sta per essere impressionante. Sarò qui accanto Settimana 4:00-04:30 se voi ragazzi volete venire ritirare le quiz. Se si vuole trovare me un'altra volta o semplicemente coordinare un momento diverso, non esitate a farmi sapere. In caso contrario, questa è la nostra ultima sezione. Così è stato bello vedere ragazzi. Si prega di prendere più caramelle. E buona fortuna per il vostro quiz.