[MUSIC JOC] SPEAKER 1: Bine, toată lumea. Bine ati venit la ultima secțiune cu mine. A fost destul de semestru. Nu pot să cred acest lucru este, cum ar fi, saptamana 12 sau 11, ceva de genul asta. Dar, pentru că asta e ultima noastră secțiune, avem o mulțime de bomboane. Și am de gând să încerc și tu la fel de bine ca mine pregătesc poate pentru testul pe miercuri. Deci, probabil, nu cel mai bun mod de a, cum ar fi, sectiunea scop cu revizuire test. Dar vom încerca și să-l distractiv. Și există întotdeauna bomboane. Astfel sperăm, că va îmbunătăți. Quiz dvs. va fi destul de cam același lucru ca și Quiz Zero. O să fie același format, aceeași lungime. Vei fi in camere împrăștiate peste campus, pentru că acolo sunt aproape de 900 de voi, și nu putem tot ce ține în camere ca aceasta. Deci, asigurați-vă că să se uite la toate O documentația Quiz online la cs50.harvard.edu in seara asta sau mâine seară. Asigurați-vă că știți unde ești merge, ce ai nevoie pentru a aduce. Într-adevăr, trebuie doar să vă aducă și un creion, și ar trebui să fie bine. Întrebările vor fi foarte mult la fel. Nu va fi, probabil, un cuplu alegere multiplă, un răspuns scurt cuplu, unele de codificare, poate unii adevărat / fals, felul de lucruri potrivite. Deci nu trebuie să fie prea surprins de formatul. Ce poate fi surprinzător este lungime, care, în anii precedenți, a fost mult mai mult. În anul meu, nu am un singur prieten că îmi amintesc de finisare examenul. Au fost ca multiplu pagini nu se completează. Astfel, lungimea poate fi un fel de dezorientare doar pentru că în câțiva ani, ea are a fost mult mai mult decât Quiz One. Nu am nici o idee ce e Va fi ca în acest an, dar e ceva să fie conștienți de. In plus, oameni difficulty-- tind pentru a găsi Quiz una mult mai greu decât Quiz Zero. Din nou, știi, dacă te un fel de mers pe jos out simt un pic incomod, deoarece nu ai făcut la fel de bine ca te-ai gandit v-ar sau vă simțiți ca și cum nu ai făcut- face la fel de bine cum ai facut pe test One, amintiți-vă că există, probabil, o mulțime de alți oameni simt în acest fel. Am fost cu siguranta unul dintre acei oameni. Quiz o, cum ar fi, mi-a aruncat o buclă. Și prietenii mei au această mare imagine de ele la JP linge fel de frumos cu acestea înghețată, fiind ca, Quiz One, și se uită ca sunt in lacrimi. Deci, este un sentiment general. Este un test dificil, este un test greu. Evident, dacă ieși și tu simti ca ai zguduit, mare pentru tine. Dar știu că ești, probabil, not-- nu sunteti aproape cu siguranta numai dacă pleci simți cum ar fi, nu-i așa, probabil ar fi putut mai bine. E greu. Mm-hm. Audiența: Cât de mult este în valoare de în ceea ce privește [inaudibil]? SPEAKER 1: Merită la fel. Da. Dar, din nou, este, de asemenea va fi afectate de modul restul clasei nu, cum secțiunea de nu, cum v-ați îmbunătățit în timp. Clasificarea este un pic de o cutie neagră. Deci, ceea ce numărul real sau procent te nu este ca în mod necesar direct corelat cu gradul vei minim. Există o mulțime de Factorii care merg în ea. Deci, cu asta, vom du-te prin unele revizuire test. Mă duc pentru a rula acest cum ar fi ultima dată pentru voi. Am toate răspunsurile la Quiz Unul din anul trecut. Deci, dacă vreți să trageți care pe propriile computere, dacă ați luat acest examen înainte și aveți întrebări, Mă gândeam am putea du-te prin intermediul unor din cele mai dificile pe care. Astfel, putem vorbi despre asta, poate obține un pic mai mult înțelegere în intuiția din spatele unora dintre aceste întrebări, cum să se apropie de ei. De asemenea, ca și data trecută, Am o punte de 100 de slide- care are practic toate lamelelor pe care am au pregătit pentru precedent secțiunile de la ultima ta eu quiz-- au în această punte. Deci, putem trece prin ceva destul de mult că am vorbit despre în prealabil că poate voi doresc un pic mai mult clarificare pe. Am putea face asta în primul rând. Dar în caz contrar, eu sunt foarte fericit doar la fel de muncă prin aceste probleme cu tine. Și eu sunt foarte aici pentru se concentreze pe ceea ce cred că voi ar fi cel mai important să ne concentrăm asupra. Cum ar fi, în mod evident, toate chestia asta este important. Mai ales ca trecem prin Quiz One, O să subliniez cu siguranta lucruri, cum ar fi, oh, acest lucru ar putea fi ceva tu chiar vrei sa stii sau doriți să aveți pe foaia de ieftin. Voi fi spui că lucrurile ca am un fel de trece prin. Deci, pe această notă, sunt acolo orice lucruri că voi ar dori să meargă peste? De asemenea, dacă eu nu o au în punte mea, putem trage ceva pe web, sau putem încerca și de a face la un exemplu pe zbor. Dar orice concepte pe care le baieti sunt un pic neclare pe. [? Brian,?]-I așa have-- Audiența: Oh, este cumulativ? Cum ar fi, este chestii pe Quiz Zero va fi pe aici? SPEAKER 1: E cumulative, dar este mult mai de un accent pe lucruri de la ultima ta test. Deci evident, voi avea a aflat despre variabile, și bucle, și condiționale. Și nu e ca și cum cei doar du-te departe, pentru că ei sunt evident inerente tot altceva care le-am învățat acum. Ar putea fi o întrebare pe soiurile, sau acolo ar putea fi o întrebare pe diferite căutări. Sau ar putea fi un cuplu întrebări cu privire la ceva ce poate au de a face cu compilarea sau diferite erori. Dar dacă v-ați uitat la Quiz cel de anul trecut, veți observa că aceasta este foarte mult concentrat pe lucruri care s-au întâmplat de la ultima test. De ce este faptul că ușa încuiată mereu? Este într-adevăr mă deranjează. Pentru că întotdeauna încerca să treacă prin ea. Deci, asta e destul de mult cum testul va fi. Deci, sunt acolo orice concepte care voi ar dori să meargă peste? Sau putem sări direct în sa ne uitam la Quiz One de anul trecut și un fel de a merge prin practica întrebări acolo. De asemenea, poate comuta înainte și înapoi. Acesta nu este un fel de un timp de lucru. Orice întrebări? Da. Audiența: Pot să pun o întrebare despre another-- SPEAKER 1: Încă unul? Audiența: Acest lucru este de la un alt an. SPEAKER 1: Da. Putem face, de asemenea, încă un an. Audiența: OK. Deci, pe 2011. SPEAKER 1: 2011. Ooh, asta a fost cu un an înainte de mine. Lasă-mă să trage asta. Audiența: cred. SPEAKER 1: Acest aspect Raportul mă aruncă de pe. Audiența: 11 și 12. SPEAKER 1: 11 și 12. OK. Ei bine, aici, de ce nu facem asta? Ai guys-- toată lumea să ia doar o pereche de minute să se uite prin teste. Și vom compila o listă. Și apoi vom trece prin ele. În regulă? În timp ce I a lua un buchet din chestiile astea înființat. OK. Mă duc să scrie lucruri pe hârtie. 2011, 11 și 12? Mă duc să schimbe acest ecran. OK. Asta e mai bine. Acest peste. În regulă. Oricine altcineva are nici că le-ar dori să încep cu? De asemenea, ați uitat să spun, dacă vrei mai mult de o grămadă de oameni vorbesc la tine și doar oferindu-vă un crack curs în ultimele șase săptămâni, suntem execută o recenzie sesiune de la 07:00 la 08:30 in seara asta în Nord-Vest B103, care, de asemenea, sa întâmplat Ultima dată, în cazul în care se va fi eu, Hannah, Daven, cu Gabe și Rob fel de ajutor de la marja doar un fel de a arunca toate informațiile pe care le-ar putea doresc să aibă pe foaia de ieftin, slash, știu, în general acolo. Audiența: Asta e, de asemenea, on-line, nu? SPEAKER 1: Este, de asemenea, on-line. Astfel, puteți, de asemenea, stai departe de acest vreme scârboasă, du-te la dormitorul tău, și live-streaming-l, dacă doriți. Sunt sigur că o mulțime de people-- Știu că ar fi fi făcut asta dacă aș fi în locul tău. OK. Deci, de ce să nu începem aplice: în timp ce guys-- sperăm, căutați prin. Dacă nu, s-ar putea începe doar de lucru prin lucruri diferite pe Quiz One de anul trecut, dacă nu Aveti intrebari specifice. Vom începe cu acest întrebarea aici despre stive. Deci, nu toată lumea aminte un fel de ceea ce o stivă este? Cum avem tendința sa-- poate cineva doar da mi o descriere generală a unei stive? Un tip de structură de date. OK. Deci, este una dintre cele mai structuri de date pe care le așteaptă să fie familiarizați aplice: ca stive, tablouri, cozile, așa mai departe. Da. Audiența: Ca Primul În, Ultima Out, ceva. SPEAKER 1: E primul rând în, Ultima Out. Exact. Deci, o stivă este exact ceea ce avem tendința să gândim când ne gândim de o stivă de lucruri. Deci, un teanc de farfurii. Primul Placa ai pus jos va fi în partea de jos, și că va fi ultimul o să scoateți la sfârșitul anului. Pentru că stivă în sus. Și luați unul din partea de jos, de obicei, lucrurile accident și rupe. Deci, stive vă puteți gândi la fel ca un teanc de farfurii. Sau exemplul ne place mereu să utilizați este în sălile D, aveți tăvi, toate acestea sunt stivuite în sus, și luați de la început. Deci, ultima din este prima unul. OK. Deci, în cazul aici, vezi noi have-- Mă întreb dacă pot mări de fapt, într-un pic. Deci avem această struct aici. Chiar? Deci, aveți unele struct care are unele int numărul de capacitate. Deci, ce credem că reprezintă? Acesta este un tablou cu o dimensiune capacitate. Deci, acest lucru reprezintă într-adevăr stivă noastră în general. Stivă noastra este de fapt doar un matrice cu un numar stabilit că este max ei, care este, capacitatea sa. Și apoi avem o dimensiune int, care va urmări dimensiunea de stivă noastre pe tot parcursul de când suntem folosind. OK? În acest caz aici, spunem că nostru stack a fost inițializată la 0. Deci avem o stivă goală chiar acum. Și apoi ne-o dorim pentru a finaliza punerea în aplicare a pop astfel încât să revină int în partea de sus. Și apoi, dacă e gol, returnează negativ 1. OK? Așa că aș vrea voi doar să se gândească despre ceea ce am putea face acolo. Care ar putea fi unul dintre primii lucruri pe care le-ar dori să verificați? E un lucru mare aici. Ori de câte ori se says-- dacă există vreodată ceva În cazul în care declarația, cum ar fi: "Dacă stivă este gol", sau "Dacă acest returneaza null," sau "În cazul în care acest lucru este ceea ce" - îmi pare rău. Audiența: Scrieți o declarație Daca. SPEAKER 1: Corect. Ai putea scrie o declarație Daca. Și asta e, probabil, una dintre cele mai Primele lucruri pe care doriți să verificați. OK. Ori de câte ori ei vă dau un fel de caz colț ca aceasta, care este de obicei unul dintre primele lucruri ai de gând să verificați în codul. De asemenea, ceva de recunoaște pentru testul este dacă aveți un mod ineficient de a face ceva, scrie jos. Pentru că nu suntem de clasificare te pe design, suntem tu clasificare pe corectitudine pentru teste. Deci, chiar dacă știi că este o super- mod de rău de a face ceva, dar funcționează, scrie-l jos, bine? Copii Literalmente, am văzut ultima dată year-- daca te uiti la un an trecut, ei sunt ca, face piramida Mario. Și au făcut-o literalmente doar "print, hash, imprimare, hash, hash, imprimare, hash, hash, hash ". Dar e corect. Aceasta nu ceea ce am spus la, astfel încât să nu se poate lua puncte de pe. Dacă sunteți în jos pentru a sârmă, evident voi, doriți să obțineți o soluție mai elegantă, și soluția mai elegant va fi, probabil, fi mai puțin cod, pe care îl ce înseamnă, probabil, au o sansa mai mare de a fi drept. Dar daca esti ca, stii ce, nu, nu am timp, am știu acest lucru este o soluție, nu e cel mai bun, el scrie. Și tu poți scrie chiar și pe parte, știu că e teribil, dar știu că funcționează. Deci, doar un heads-up. OK. Deci evident, primul lucru este această afirmație Daca. Deci, ce credem noi acest Dacă declarație va fi? Și, de fapt, lasă-mă să deschis up marea mea editor Sublime. Am de gând să cod acest lucru și apoi ți arăt baieti când se face. Deci, int pop. OK. Deci, dacă avem această int pop void-- atât de evident, aceasta este o funcție care ia în nimic și returnează un număr întreg, nu? Deci, este doar de gând să vorbesc despre acest stivă pe care le-am creat. Deci, doar traducere această ultimă teză, "în cazul în stivă este gol, poziție favorabilă ar trebui să revină negativ 1, "cum am putea face asta? Deci, dacă ce? Cum știm că stiva este goală? E doar dimensiune este egal cu 0. Stack.size este egal cu 0. De asemenea, am un fel de a scrie orb aici. Deci, dacă am face orice typos-- oh, De asemenea, a uitat să menționeze acest lucru. Săptămâna trecută, în total am dat seama care-i problema noastră a fost cu JavaScript. Nu valorifica I și D. Ar trebui doar valorifica I și a obține elementul de Id. Și asta a fost toată eroarea. Deci, dacă voi întoarce și uita de fapt, prin codul meu, dacă faci doar tot o litere mici d, "uita elementul de identificare" se va lucra. Așa cum am promis, am fost foarte aproape. Am capitalizate doar ceva Eu nu am fost trebuia să, care Sunt sigur că voi avea în ultima PSET. Deci, dacă dimensiunea noastră este egal cu 0, ce ar trebui să facem? Audiența: Întoarcere negativ 1. SPEAKER 1: Întoarcere negativ 1. Se răcește. Deci, acum ce facem? Vrem să pop ceva schimbat. Acum, acesta este cazul în cazul în care avem ceva. Dimensiunea noastră este mai mare de 1 sau mai mare decât 0, nu? Avem de fapt ceva acolo. Deci, ceea ce vrem să facem este noi vrea să se întoarcă aici. Vom spune vrem pentru a reveni partea de sus a stivei. OK? Deci, cum am putea face asta? Cum ne întoarcem în partea de sus a stivei? Amintiți-vă, stivă nostru este doar un tablou, nu? Ea are unele capacitate că l-am dat. Așa cum ne-am pus lucrurile on-- sau de fapt, vom scrie "push" după asta. Dacă lucrurile sunt în there-- poate o imagine va ajuta. Hm, îmi place creta mare mai bine. Deci if-- și poți doar cred că de asta ca stiva noastră. Deci, aceasta este 0, 1, 2. Nu știu de ce cutii mele devin mai mici. Dar există. OK. Deci, aceasta este un stivă cu o capacitate de 5. Și să spunem că avem ceva aici și avem ceva aici. Deci, la acest moment, noastră dimensiune este egal cu ceea ce? 2. Și dacă vrem să pop ceva de pe ea, asta înseamnă că doriți să obțineți scăpa de acest drept aici. OK? Deci, cum ar fi să ne întoarcem această valoare? Audiența: Dimensiune minus 1. SPEAKER 1: Corect. Deci, dimensiune minus 1, sau ar putea face mărime minus minus. Dar nu putem face doar dimensiune. E într-un struct, nu? Deci, stack.struct. sau stack.size. Asta-i indice noastră acolo. OK? Și apoi dacă ne uităm înapoi la struct aici, observăm că la accesa de fapt matrice, trebuie să facem stack.numbers pentru a accesa de fapt asta matrice. Deci care returnează vârful stivei. Dar ceva that-- dacă voi privi la tasta de răspuns, acest lucru este tot ei îți dau. Deci, asta este. Dar s-ar putea argumenta că acestea sunt miss-- ooh, nu ceea ce am vrut. S-ar putea argumenta că acestea sunt lipsește ceva, because-- da. Audiența: Reduceți dimensiunea. SPEAKER 1: Corect. Avem nevoie pentru a micșora dimensiunea noastră acum. Deci, ce este complicat despre aceasta este dată vă întoarceți ceva, funcția de merge ieșire, nu? Deci, ceea ce am putea face este de fapt micșora dimensiunea noastră în primul rând. Și atunci putem pur și simplu stack.size. Putem folosi doar stack.size ca indexul nostru, nu-i așa? Pentru că dacă stack.size este de 2, l-am decrement. Și așa e 1, care este indice noastră actuale. Odată ce am scăpa de acest lucru, de fapt doar un singur lucru în oferta noastră. Deci nu ambele. Audiența: [inaudibil]? SPEAKER 1: Ei bine, în acest caz, ne-am întors doar elementul în partea de sus, care este cel noastră dimensiune care este în partea de sus. Dar nu am făcut nimic la mărime după ce am eliminat acest element. Acest lucru nu a schimbat harta noastră încă. Acest fapt nu schimba în mod inerent dimensiune nostru. Dar pentru a face un pic mai clar, ai putea face stack.size minus minus. Pentru mine, el o face, eu nu știu, un pic mai mult clar that-- ah, că ești de fapt în schimbare mărimea și returnarea. Un alt mod a fost bine, pentru că tu s-au schimbat și revenirea în același timp. Dar aceasta este doar un alt mod de a scrie se că am vrut să-ți arăt băieți. Asta face sens? Stive, cred, sunt mult mai ușor decât cozile. [Râde] OK. Ai avut întrebări specifice despre 11 și 12, sau doar-- Audiența: Cred că a fost stiva. SPEAKER 1: Dimensiunea stivă? Audiența: Da. SPEAKER 1: Te-am prins. OK. Da, ai putea face în unul din aceste două moduri. OK. Deci, acum avem pe celălalt. Acest lucru este într-adevăr ciudat, cum ar fi nu au acest pe ecranul. Deci, dacă ne uităm aici, vrem acum să finalizeze punerea în aplicare a împinge, care pune de fapt ceva, merge și introduce ceva în coadă nostru, sau în stivă nostru. OK? Deci, dacă observăm, ne-am au câteva lucruri. Avem great-- noastre, dacă toate celelalte, ori de câte ori avem unul dintre acestea, voi ar trebui cel puțin obține jumătate un punct, pentru că tot ce trebuie să faci este transforma acest lucru în C și ei vă dau jumătate din ea. Deci, "dacă o stivă este plin sau este negativ, apoi împingeți ar trebui să se întoarcă false. " OK? Deci, vrem doar pozitiv numere întregi pentru a fi pe stivă nostru. În regulă? Iar acest lucru se întâmplă fie întoarce adevărat sau fals. Deci, ar trebui să ne [neauzit] bool. OK. Deci traducere. Audiența: [neauzit]. SPEAKER 1: Oh, mulțumesc. Da. Acesta este motivul pentru am voi. Int n. Perfect. Pentru ca suntem inscrie ceva pe stivă nostru. Avem nevoie de fapt un numar. OK. Deci, doar ținând care ultimul rând că ne-au dat, un fel nostru de cazuri de colț, Ce crezi că avem aici? Evident, vom avea unele Daca. OK. Așa că am spus: Dacă stivă noastră este plin sau dacă n este negativ. Deci, probabil cel mai simplu de a începe cu, așa că, dacă n este mai mică de 0 or-- amintesc frumos tău SI si SAU operatorii de acolo. Cum ar verifica la noi a se vedea dacă stiva noastră este plină? Ce se întâmplă? Audiența: Dimensiune CAPACITATE egale. SPEAKER 1: Exact. Perfect. OK. Și ce vrem să facem acolo? Audiența: Întoarcere fals. SPEAKER 1: Întoarcere fals. Perfect. Deci la jumatatea drumului, nu? Cel puțin, băieți va avea jumătate din asta. Așa că haideți să ne gândim la asta. Deci, acesta este topul vom începe cu. Încercăm să pună un element pe aici. Avem o dimensiune care este egal cu 2 chiar acum. Avem o capacitate care este egal cu 5. Și să presupunem că avem unii n care este egal cu 3. Deci, avem nevoie să introduceți 3 în acest spațiu. Și trebuie să introduceți-l în index 2. Chiar? Deci, cum am putea face acest lucru? Încercarea de a ne assign-- doresc sa acceseze oferta noastră. Deci, stack.numbers. Dar la ce indice ar fi vrem sa fie? Audiența: [neauzit]. SPEAKER 1: Da. Stack.size. Și vrem ca să n egal, corect? Audiența: [neauzit]. SPEAKER 1: Am fost de fapt sa ne uitam la asta. Eu cred că este greșit. Audiența: Nu vrei spațiu dribleze pe dimensiunea actuală? SPEAKER 1: Ei bine, dacă ne uităm aici, mărime nostru în acest moment este de 2. Vrem să meargă în index 2, deoarece aceasta este partea de sus a stivei noastre. Deci, aș spune că ea ar trebui să fie stack.size, iar apoi ar crește stack.size. Are toată lumea de acord? Cred că sunt de acord cu asta. Voi poate argumenta cu mine, dacă îți dorești. Sau nu susțin, dar putem discuta acest lucru. Audiența: [neauzit]. SPEAKER 1: Mm-hm, este locul unde este deschide din cauza indexare zero. Astfel, în timp ce în prima parte, Am crezut că au greșit, și ei au fost de fapt dreptate, aceasta parte, eu de fapt cred ca au gresit. Aș spune că ar trebui să cu siguranta intrare aici. Cred că suntem cu toții de acord avem o dimensiune de 2. Asta e exact unde ne anunt numărul nostru nou pentru a merge. Deci, stack.numbers la stack.size trebuie să fie egal n. Și apoi ne-ar incrementa stack.size. ++. Și atunci ce vrem să facem? Există un singur lucru trebuie să face dacă am introdus cu succes acest lucru? Întoarcere adevărat. Și acum ați terminat. Așa că mă simt ca a fost tot minus minus stack.size și stack.size ++ care lucruri incurcat. Ugh. Am keep-- am această genunchi tendința de a lovi mereu Controlul, S, pentru că eu nu vrea să-și piardă orice din munca mea. Dar nu trebuie să faci asta acum. OK. Deci, asta a fost stivă. Se răcește. Este ceva? Ați găsit alte întrebări pe care le-ar Vrei să mergi peste de la chestionare anterioare? Dacă nu, putem fel de începe să vorbească prin Quiz One de la anul trecut. Da. Audiența: Pentru prima parte, nu am cu adevărat înțeleg cum ați șters numărul. Nu e încă acolo? SPEAKER 1: Numărul e încă acolo. Dar ceea ce se întâmplă este că, deoarece ați se spune că partea de sus a stack-ul tău este aici, atunci când te duci să adăugați ceva pe stiva, ea să-l înlocuiască doar. Audiența: Oh, OK. SPEAKER 1: Da. Deci e ca și cum el a uitat și că e acolo tip de lucru, chiar dacă e acolo. Audiența: [inaudibil] sau ceva? SPEAKER 1: Nu. Pentru că suntem într-o matrice, nu aveți să vă faceți griji about-- veți doar ignora-l atunci când aveți nevoie. În regulă. Orice alte întrebări? Dacă nu, vom merge doar a începe să lucreze prin intermediul. Da. Audiența: Ei bine, acesta este pe 2013, ci doar trece prin chestii SQL. SPEAKER 1: SQL? OK. Deci, aceasta este de 26 prin 29. Audiența: Da. SPEAKER 1: OK. Lovely. Să trage cele sus. Oh, uite. Ați bucura Steve Ballmer a vorbi, apropo? A fost destul de hilar, în opinia mea. Îmi place că de fiecare dată am aduc lui CS50 site-ul în timpul secțiune, e ca, oh, ceas secțiune. Și eu sunt ca, mm. Audiența: Putem face? SPEAKER 1: O vom face la sfârșitul anului. Cum e asta? Pentru că știi băieți au dorit întotdeauna să. Așa vom face, la sfârșitul. Unul întrebări. Audiența: [neauzit]. SPEAKER 1: Va fi o secțiune meta. Audiența: E ca 5 secunde. Audiența: Într-adevăr? Audiența: E ca 20 de secunde. [Interpunerea VOCI] [Râsete] SPEAKER 1: Îmi place că ați făcut deja aceasta, care este ceea ce mă face mai fericit. OK. 26. OK. De fapt, suntem doar de gând să oglindă acest lucru acum, pentru că nu pot. Acest lucru este enervant. OK. Acum pot vedea totul. Lovely. OK. Deci evident, aceasta ar trebui să aducă înapoi amintiri minunate din [? CSG?] Finance. Jumătate dintre voi ați despre a ta clasificate acum. Cealaltă jumătate voi ajunge să foarte, foarte curând, promit. Deci avem niște masă SQL asta e Conturi aici. Probabil similar tabelele utilizator băieții tăi ". Și avem un numar care a fost o cheie primară și reprezintă o 12 cifre numărul de cont. Și echilibru este câți bani au. Iar valoarea implicită este 100. Și ei le dau 100 dolari orice dată când deschid un cont. Aș vrea banca mea a făcut asta. OK. Așa că vrem să completeze schema de specificând lângă numărul în echilibru tipul corespunzător de SQL. Deci ce voi că ar fi un fel de reacție dumneavoastră la genunchi pentru tipuri pentru aceste două? Audiența: Int. SPEAKER 1: O int. OK. Și apoi pentru un echilibru? Zecimal. OK. Deci, chiar zecimal lui. Int este aproape. Un fel de mare lucru este aceasta a subliniat 12 cifre numărul de cont. Ori de câte ori avem ceva care este mai mare decât opt ​​cifre, ei vor să utilizați mare int, care cred că este-- Audiența: E doar SQL? SPEAKER 1: Este singura dată când am auzit de e SQL-- ca folosind o int mare. E doar pentru a vă oferi o puțin mai mult precizie, asigurându-vă că nu ești lucru de tip debordant. În toate onestitate, cred că acest lucru este cu siguranta una dintre cele în cazul în care e ca, oh, este menit pentru oameni care au un pic mai multe cunostinte de SQL. Am vorbit niciodată despre int mari în PSET ta. Deci e un fel de Sunt destul de sigur dacă ai pus int, a fost pe jumătate credit. Și, după cum am spus mai înainte, există merg a fi unele întrebări care sunt doar menite să te excursie sus, așa că nu toată lumea devine 100. Din cauza desigur, sunt unii oameni în CS50 care au făcut acest lucru pentru ca de opt ani, iar tu esti ca, ce faci? Dar da. Zecimal pentru echilibru a fost evident cea. Și int apoi mare pentru număr doar pentru că de faptul că, la fel ca, a subliniat de 12 cifre. Ori de câte ori ceva este în caractere aldine sau este a subliniat, cum ar fi, să acorde o atenție la ea. Nu facem asta doar pentru că. OK. Deci, "să presupunem că impuse prin banca o taxă lunară 20 dolari pe toate conturile. Cu ce ​​interogare ar putea băncii deduce 20 dolari de la fiecare cont chiar dacă aceasta rezultă din unele solduri negative? " Deci, sa incepem simplu. Avem patru comenzi principale pentru SQL, care sunt? Nu voi aminti patru cele mari pe care ți-am spus? UPDATE, DELETE, SELECT, INSERT și. Perfect. Am înțeles. Deci, ce credem noi s-ar putea fi cel mai util pentru asta? Am are-- UPDATE. Exact. Deci UPDATE, pentru că suntem în căutarea la conturile care există deja. Deci, amintiți-vă generala nostru fel de lucru este de actualizare. Și apoi ce vine după UPDATE? Avem niște masă că suntem corelarea. Deci, dacă am trage Sublim again-- UPDATE. Deci, aceasta este un format general. Deci avem masă UPDATE. Și atunci ce e urmatorul lucru pe care trebuie? Puteți face UNDE. Și apoi avem o calificativ aici. Și atunci ce avem viitor? Avem unele ceva SET-- egală cu ceva. Blah blah egal. Bla Actualizat. Chiar? Așa că e ca generalul idee pentru unele actualizare. OK? Deci, sa incepem completati în ceea ce ar trebui să fie. Deci, ce masă vorbim despre? Conturi. Și apoi, în acest caz, ceea ce e foarte misto este vorbim despre specifică Utilizatorii din cadrul contul nostru, sau vorbim despre toți utilizatorii? Vorbim despre toți utilizatorii. Deci, în acest caz, putem doar șterge acest UNDE calificativ. Unde este doar atunci când doriți pentru a limita ceea ce schimbă. Dacă doriți să schimbați întregul masă, puteți plasa doar asta. OK. Deci, acum suntem la partea noastră SET. Ce vrem să se schimbe? Audiența: Balanța. SPEAKER 1: Balanța. Și noi te vom sa-- cum sunt ne va schimba echilibrul? Avem o taxă de 20 dolari, nu? Minus 20. Și au spus că e în regulă dacă avem solduri negative. Deci, în acest caz, nu aveți nevoie de să facă mai departe verificarea erorilor. OK? Aceasta este literalmente tot ce trebuie să faci. Cool? OK. Deci, haideți să mergem prin următoarea. "Cu ce ​​interogare SQL ar putea Banca a prelua numerele de cont dintre cei mai bogati clienților săi cu echilibrează mai mare de 1.000 dolari? " Dacă banca dvs. și mai bogate clienții sunt doar cele cu peste 1.000 de dolari, Mă simt ca și cum ești a face ceva gresit. Cum ar fi, cum o bancă supraviețui pe asta? Ca, acest interes, nu destul. OK. Cu acest tip de lucru, ceea ce face crezi, de patru funcții noastre, crezi că vom folosi? SELECT. Perfect. SELECT. OK. Deci ne selectarea unele identificator de la masa. Și atunci unde condiție. Deci, ca trecem prin acestea, Mă duc pentru a vă oferi o voi perfecționare generală privind formatul general de toate acestea. Deci ne selectarea un fel de [? lucru. ?] În acest caz, acest lucru se întâmplă pentru a fi de obicei, unele coloană. Deci, în cazul nostru, avem număr, echilibru. În cazul în care băieții tăi, poate a fost ID, nume, parola. Oricare dintre aceste coloane, e de obicei, ceea ce ne selectarea. Deci, în acest caz aici, care un fel de coloană, ceea ce identificator suntem trăgând din masa noastră? Ce ne cere? Ea ne cere pentru numerele de, nu? Numerele de cont. Deci ține minte, doar numărul în acest caz. Dacă voi avea vreodată eroarea, că cutie portocaliu strălucitor ar veni. Și a fost ca, neașteptat rând în, cum ar fi, indiferent de. Asta pentru că te-a chemat masa ta greșit, nu? Deci, asigurați-vă că sunteți apel corect coloana. Deci de la masă, masa noastră este numit conturi. Din nou, asigurați-vă că sunteți referire corect masa ta. Și atunci ce e condiția noastră aici? Ce căutăm? Vrem ca oamenii noștri bogați. Da. Deci echilibru mai mare de 1.000. Acolo te duci. Asta e solicitata. Nu prea rău, nu? OK. Deci, acum, pentru ultima unul. Cu aceasta, suntem breezing prin. OK. Deci, acum ", cu ceea ce ar putea interogare aproape bancă, adică șterge "- nu te iubesc cum doar ți-a dat DELETE-- "Fiecare cont care are un echilibru de 0?" Cred că putem cu toții de acord că suntem probabil, va folosi DELETE. Sunt bineveniți să ia orice discuție în jurul valorii de asta. Dar cred că e destul de sigur pentru spune că am putea folosi DELETE. Deci, vom ștergeți unele utilizatorii din tabel, UNDE condiție. Deci, același fel de lucru ca SELECT. Deci, în acest case-- oh, îmi pare rău. Ar trebui să DELETE FROM. Deoarece va șterge șterge întregul rând. Deci, nu avem nevoie să vorbim despre ceea ce lucruri specifice despre un utilizator suntem ștergerea. Dacă ștergeți un utilizator, suntem ștergerea totul despre ei. Deci, în acest caz, avem nevoie doar de completați WHERE noastră și starea noastră. Deci masa noastră este doar conturile noastre masă, așa cum am făcut. Și atunci ce este starea noastră aici? Audiența: Balanța. SPEAKER 1: Balance este egal cu 0. Corect. Toate bune. Da. Audiența: [neauzit]. SPEAKER 1: Deci DELETE în mod inerent șterge totul. Deci, întrucât cu SELECT, SELECT ia în anumite coloanele pe care doriți returnate. Dacă ai vrut totul despre un utilizator întors, utilizați stele. Steaua spune, întoarce la mine totul de la acest utilizator. Sau, dacă ai pus UNDE stele, care înseamnă doar da-mi totul. Dar DELETE în mod inerent are asta. Deci, dacă spui, ștergeți din Conturile în care soldul este egal cu 0, se va trece prin. Și peste tot acest echilibru este egal cu 0, se inerent face asta. Va șterge totul. Steaua este mai for-- cu SELECT sau UPDATE, se vorbește mai mult despre individ câmpuri corespunzătoare unui utilizator. Deci, atunci când selectați stele de la masa unde ID este egal cu 1, care se întoarce la tine totul despre utilizatorul cu ID-ul de 1. Dacă ar fi să faci SELECT număr sau SELECT ID numele virgulă de la utilizatori UNDE ID egal cu 1, că doar returnează numărul lor sau ID-ul și numele lor. OK? Deci, vom folosi stele în acest caz de ne da totul despre un utilizator. Și DELETE în mod inerent face asta. Ea nu se șterge doar ID-ul, sau doar numele, sau orice altceva. Da, nu. Sterge chiar întregul utilizatorul. Deci, nu trebuie să vă faceți griji despre steaua acolo. Dacă ai vrut să ștergeți totul, ai putea face asta, și asta va scădea doar totul. Dar de obicei, tu, Nu vreau să fac asta. Dar dacă vrei vreodată să ștergeți totul, ai putea face asta. OK. Ai voi găsit alte întrebări? Da. Audiența: Puteți să faceți 26? SPEAKER 1: 26 am doar făcut-o. Audiența: Oh, 25, îmi pare rău. SPEAKER 1: 25. OK. 25. Oh. Fac JavaScript. Oh, nu pot să cred. Am de gând să te pui ne din nou, băieți. OK. Avem asta. Vom face acest lucru. Ah, jQuery. Fun. OK. Deci, vom finaliza punerea în aplicare a paginii web în așa fel încât dacă vizitează, intrare numele lor, și depune formularul, ei au această alertă mare fereastră care va apărea. Deci, nimic cu semnalările, știm că vom avea de a utiliza JavaScript. Yay, JavaScript. Și dacă nu reușesc să o intrare numele înainte de transmiterea formularului, ar trebui să apară nici o alertă. Astfel, puteți folosi jQuery, dar nu trebuie să. Așa că am de gând să lase voi lucrați Pe aceasta doar pentru câteva minute. Gândește-te. Și atunci vom cod. Slash am de gând să încerc și cred că a cel mai bun mod de a explica acest răspuns pentru tine. În regulă. Vom să-l înființat. OK. Deci, vom merge doar la plimbare prin acest lucru, pentru că știu jQuery este un pic confuz. JavaScript. E un pic acolo. Deci, ce vom face este [Inaudibil] de fapt rezolvată această problemă cu jQuery. Deci, dacă vă aduceți aminte, jQuery este doar o bibliotecă care este doar construit pe partea de sus a JavaScript. Este menit pentru a face viața un pic mai ușor. Mi-ar siguranta, dacă ai timp, uita-te peste un pic de documentație pentru jQuery. Dar este foarte similar cu JavaScript. Are paradigme similare, în cazul în care utilizați acest operator punct pentru a apela funcții pe obiectele pe care le aveți. Deci, ce avem aici este pentru jQuery, ar trebui să aveți întotdeauna acest tip de înveliș, care este $ (Documente) .ready funcția (funcția) în paranteze aici. OK. Deci, acest lucru ar putea fi ceva vrei pe foaia de ieftin. Deoarece cel puțin, puteți au învelișul pentru jQuery ta. Și veți obține cel puțin tu despărțim acolo. Deci, în același mod în care ne vorbit foarte mult despre JavaScript, si ne-ar începe prin căutarea la ceea ce încercăm să editați sau ceea ce încercăm să se schimbe. Și care ar fi în mod tipic primul lucru pe care am pus în. Deci, în acest caz, dacă ne întoarcem la acest aici și ne uităm la formularul nostru de aici, Avem această intrări, dreapta, acest id de intrări. Și știm că pe pe întrebarea noastră, ne-am sunt fie de gând să arunce o eroare dacă acesta este gol, sau vom pune aceasta într-o alertă, nu? Deci, probabil sigur să spun că suntem O să se ocupe cu intrări aici. jQuery este foarte similară în care, dacă ne-am gândesc la CSS, ceva cu un ID ne uităm la o hash. Orice cu clasa noi se uita la cu un punct, nu? Deci, în același fel aici, ceea ce vorbim despre este intrari. Am văzut că intrări este un ID în formularul nostru. Deci vom referi la ea ca atare. Intrări. OK? Deci, atunci când în dubiu, chiar dacă aveți nicăieri, daca esti cu adevarat sigur despre cum să se apropie de această, A, au acest înveliș. Deci, începe acolo cu învelișul de jQuery. B, asigurați-vă că știți ceea ce se schimbă. Și când în dubiu, pune că în ceva, și de a face puncte, tot ce crezi tu ar trebui sa faci cu ea. Audiența: Care este înfășurare? SPEAKER 1: înfășurare este aceasta prima linie. Deci spune, așteptați până când documentul meu este gata. Apoi începe încurcați cu lucrurile. OK? Deci știm noi te joci cu intrări. Deci, suntem ca, OK, intrări este forma noastră. Asta e ID-ul nostru. Deci, asta e ceea ce suntem va fi cautati. Și vrem să vedem ce se întâmplă când se prezintă această formă, nu? Deci, cum am putea crede, avem unele .submit. Deci, .submit spune doar, OK, acest formular că ne-am referit cu intrări hash, atunci când este prezentat, executa altceva. Deci, vom avea o anumită funcție. Observați avem functii anonime aici. Avem o funcție anonim aici. Da. Audiența: Va fi mereu .submit, sau este doar pentru că în HTML, ne-am făcut de tip butonul Submit? SPEAKER 1: Ar trebui .submit, deoarece este o formă pe care o depune. Deoarece acest .submit nu neapărat corespund cu ceea ce butonul este ca pentru a apela. Dar faptul că este o forma pe care suntem trimiterea. OK. Deci observați anonim Funcția aici că says-- Audiența: Eu nu prea înțelege funcțiile anonime. SPEAKER 1: Deci anonim funcții, ei sunt doar funcții care nu au un nume. Deci, în loc de a avea o funcție principală care calls-- am putea spune, Dacă documentul gata, atunci am putea numi intrări. Și apoi, când a prezentat, call-- cum ar fi, Dacă așa-și-așa a prezentat, am numim o altă funcție. O funcție anonim doar nu are un nume, și se va executa doar în aceste tipuri de lucruri. Deci, în acest caz, ceea ce spune acest este, Când documentul nostru este gata, executa această funcție. Această funcție este compus de tot în aici. Și apoi următorul strat se va face, OK, când este prezentat intrări, executa acest lucru. E doar un mod de denotativă ce trebuie executate când. E literalmente doar un funcție care nu au un nume, astfel încât acestea au tendința de a fi imbricate unul în celălalt, pentru că nu le puteți apela de nume. OK? Literalmente, o funcție anonim este doar o funcție fără un nume. Asta este. Doar o modalitate de a ingloba lucruri diferite că vrem executat în anumite momente. Audiența: [neauzit]. SPEAKER 1: aerisire? În cazul în care? Audiența: În paranteze după funcție? SPEAKER 1: După funcții. Care? Audiența: Ambele. Dacă vă pune, cum ar fi, eveniment, sau în cazul în care ai pus un argument acolo, Ar fi greșit? SPEAKER 1: În acest caz, cred că ai putea pune un argument acolo. Dar, pentru că nu avem nevoie de o argument, nu ar trebui să fie. Cum ar fi, e în ansamblu, cum ar fi, trebuie doar au lucruri care sunt fel necesar de lucru. În același mod în care dacă am fi avut nici o funcție care are void-- principal int cum ar fi, cu void main int, tu ar putea face int arg v, indiferent de. Dar dacă nu aveți nevoie de aceste, voi nu ar trebui să le aibă în acolo. Același lucru. Emma, ​​ai avut o întrebare? OK. Se răcește. OK. Deci, ceea ce avem până acum este atunci când noastră document pregătit, executa acest lucru. Acum ne uităm la atunci când este prezentat. Deci, acum avem de fapt avem un fel din carnea de lucru noastre. Deci, avem nevoie pentru a obține valoarea pe care utilizator a prezentat, fie că este un nume sau gol. Și atunci trebuie să fie întoarcere această alertă sau arunca o eroare. Oricum. Deci, cum putem declara o variabil în JavaScript? Var. Deci, haideți să spunem, numele var equals-- sau de fapt, vom face valoare deoarece cred că e numele. OK. Deci avem o valoare aici că noi doriți să trageți din formularul nostru intrări. Deci, în același mod în care am un fel de făcut intrări, poate cineva sa-mi spui ce am ar putea fi de asteptare în aici dacă am vrut să se numele de la forma? Și dacă ne uităm înapoi la formularul nostru de aici, observăm că avem o identitate de nume. Audiența: [neauzit]. SPEAKER 1: Nu aveți să se gândească la ea ca la o matrice. Nu aveți nevoie să vă faceți griji cu privire la asta. Deci avem doar câteva nume. Și apoi pentru că JavaScript și lucruri sunt ciudat, nu putem face "nume". Noi de fapt avem de a apela unii funcție care ne dă, cum ar fi, valoarea care identificator. OK? Așa că este doar .val. Audiența: [neauzit]. SPEAKER 1: OK. Deci, cu JavaScript, acest tip de lucru chiar aici doar trece prin. Și ați putea gândi la acest as-- este ca aproape un getElementById, în cazul în care getElementById ar fapt reveni lucru complet pentru tine. $ ("# Numele") este la fel ca, OK, am avea, pot accesa, dar dacă tu de fapt vrei pentru a reveni la valoarea de Tu-- Audiența: Este ca un pointer? SPEAKER 1: E un fel de indicator. Ai putea gândi la ea ca un fel de indicator. Cum ar fi, se spune, OK, eu știu cum să ajung acolo, dar pentru a obține de fapt, valoarea din aceasta, trebuie sa te intrebi explicit pentru ea. Și, din păcate, în mod evident, noi nu facem face prea mult cu JavaScript și jQuery. Deci va veni la cât de mult tu guys-- ce se întâmplă să știi, ceea ce se întâmplă să fi văzut, și ceea ce puteți fel de ghici logic la. Deoarece unele dintre aceste lucruri, ar putea, probabil, ajunge la jumatatea drumului. Dar să-l complet dreapta, Cred că această problemă, probabil, a avut unul dintre cele mai mici scoruri. Audiența: Ca, de exemplu, pentru [inaudibil] prime, de ce nu trebuie să pună val acolo? SPEAKER 1: Pentru asta? Audiența: Da. SPEAKER 1: Da. Deoarece aceasta este un fel de place, așa cum am spus, unele pointer, iar acest lucru este de mine corelarea ea și de fapt a ne valoarea. Audiența: întrucât [inaudibil]? SPEAKER 1: Pentru intrari, intrări este doar some-- e ca și cum suntem doar uita la ea ca un întreg, și acest .submit spune ne ce trebuie să știm. jQuery și JavaScript este ciudat. Știu. Știu, băieți. Știu. E un motiv pentru care nu fac face programare web. Glumeam. Nu am avut suficient expunere la ea. Audiența: [neauzit] CSS. [Râsete] SPEAKER 1: OK, asta e CSS. CSS este la fel, ca și, face lucrurile destul de, nu e ca să se ocupe de date. E o diferență acolo. OK. Deci, acum sperăm, acest part-- de asemenea, pentru o problemă ca aceasta, în cazul în care nu pot Știi sintaxa, ai putea fi ca, OK, ai putea avea o anumită valoare var și să fie ca, presupunem că recuperează corect valoarea. Și apoi ai putea, probabil, scrie această parte următoare. Această parte următoare va probabil par mult mai ușor, sau ar face logic sens pentru voi. Întrucât ceea ce am scris până acum, Știu că ar fi ca, umm, da, Nu știu că pe testul. Puteți scrie total psuedocode și apoi izbucni în cod reală când Tu-- e un fel de matematica. Dacă ați avut vreodată ceva multi-parte problemă în cazul în care tu nu știi cum să se desprindă de primul pas, dar totul altceva se bazează pe faptul că prim pas, ai spus, cum ar fi, să își asume x este egal cu 4. Și apoi fugi cu ea, nu? Puteți face același lucru cu cod. Deci, ai putea spune, presupune Am dreptul de valoare. Apoi face această parte următoare aici. Deoarece această parte de fapt ar trebui să fie destul de logic. Deci, avem nevoie pentru a verifica dacă valoarea noastră este gol. Sau dacă e ceva numele, da de fapt o alertă. Deci, ceea ce am putea să doriți să verificați? Vrem să avem niște Daca. Ce crezi Dacă noastră va fi? Trebuie să verificați pentru a vedea dacă valoarea este-- dacă aceasta nu este un șir gol. Perfect. Exact. OK. Deci, dacă asta e cazul, ceea ce vrem să facem? Vrem să arunce niște alertă, nu? Deci, e doar de alertă. Și apoi ce vrem în interior. Deci, ce-ar trebui a avea în interiorul alerta nostru? Audiența: "Buna ziua". SPEAKER 1: virgula. Și apoi nu voi amintiți-vă cum să înlănțui? Audiența: Plus. SPEAKER 1: Plus. Așa că vrem să avem plus. Și atunci avem nevoie de un alt plus pentru punctul nostru de exclamare. Se răcește. OK. În caz contrar, ceea ce ar putea vrem să facem? Noi nu vrem să facem ceva, nu? Deci, ne-am întoarce false. Nu este ceea ce vreau să fac. OK. Și apoi acestea, de course-- ceea ce este important este să ne amintim pentru a închide funcțiile anonime. Deci, dacă observați, avem niște Funcția aici care se termină aici. Deci, avem nevoie pentru a închide acest în primul rând o și se adaugă un punct și virgulă. Și apoi acesta de aici trebuie să face cu această funcție anonim, deci am închide acolo. Această reacție genunchi-smucitură de economisire. Da. Audiența: Există un motiv that-- doar în toate exemplele din JavaScript care l-am văzut, ne-am primele acolade pe aceeași linie ca și funcția de? SPEAKER 1: Asta-i stilistic. Da. Și, de fapt, dacă luați 61, ne-am face tot bretele noastre cret acest fel. Huh? Audiența: Dacă am face asta pe PSET, este așa de rău pentru stilul? SPEAKER 1: Nu. Am spus în mod explicit voi a face acest lucru. Dar, de fapt, aceasta este un fel a convenției domina într-o mulțime de clasele C și JavaScript și jQuery. Evident, eu sunt sure-- și de fapt, dacă am s-au a face acest lucru problemă complet orb fără să fi uitat la ea, există, probabil, foarte puțini modalități mi-ar fi ajuns această. Am ar fi fost ca, OK, poate am Trebuie să iau ceva care este o intrare. Și cred că, având cunoștințe care, cum ar fi, OK, dacă vreau să iau ceva de la o formă care are o identitate, Mă refer la ea în acest fel, Probabil aș lua asta. S-ar putea lua asta. Dar, de fapt, singurul lucru pe care cred că Mi-ar lua într-adevăr este acest drept aici. Deci este un fel de importantă pentru Știi, ca și cu orice test dificil, ai un fel de a alege bătăliile, nu? Dacă știți că nu ești mergi la a lua că prima parte pentru jQuery, așa cum am spus, presupune că aveți această valoare și faceți tot ce puteți cu ea. Și dacă aveți timp, du-te înapoi și să încerce și completați piesele. Dar nu lasa o intrebare de genul aceasta într-adevăr te incarca. Pentru că ce? Acest lucru a fost o întrebare pe jQuery din întreaga examenului. Deci, da, ar fi minunat dacă ai luat-o. Audiența: [inaudibil] te sunt bineveniți să folosească jQuery. SPEAKER 1: Sunteti bun venit pentru a utiliza jQuery. Audiența: OK. [Neauzit]. SPEAKER 1: Cum să nu îl folosiți? Mi-ar trebui să uite tot JavaScript mea. Este de fapt mult mai ușor, Cred că, pentru a folosi jQuery, deoarece jQuery fapt reduce Valoarea de activarea JavaScript-vă scrie, probabil, de, cum ar fi, pe jumătate. Deci, codul nostru ar fi, probabil, de două ori mai mult timp fără asta. Deci, dacă recognize-- cel mai mare lucru pentru a ține departe de această problemă sunt modelele. Dacă accesați ceva de la un formular, ai de gând să folosească citate, hash, indiferent ce încercați să îl accesați. Dacă este să fie prezentat, vrei a folosi ceva de genul un .submit. Esti, probabil, va utiliza o funcție anonim acolo. Dacă aveți nevoie de fapt valoarea ceva, ai de gând să faci citate, hash, indiferent de acest domeniu este, .val. Și recunoscând modele așa se întâmplă a fi mult mai util decât știind într-adevăr curajos nitty. Da. Audiența: Deci, dacă utilizator susține numele lor și se trece prin această declarație, va se merge în jos și să se întoarcă fals după asta? SPEAKER 1: Nu, pentru că alerta, vă puteți gândi la ea ca o întoarcere. Da. Deci, o să ieși. Da. Audiența: Ați putea [? plasa?] paranteze de prezenta, paranteze, ceva? SPEAKER 1: am făcut, eu cred. Asta e închis aici. Și apoi acesta devine închis aici. Audiența: Oh, nu. În regulă. SPEAKER 1: Evident, mic, mici lucruri sintactice așa, vom probabil doar cerc și să fie ca, nu uita paranteze tale. Dar da. OK. Avem un altul pe care am dori să facem? Ați obține cel arbore binar? Nu vrem să mergem peste asta? Mă simt ca și cum arbori binari și DOM-uri ar trebui să fie puncte că voi obține destul de ușor. Nu te-ar dori să-și piardă puncte pe care. OK. Să facem acest lucru DOM aici. Aș vrea să am Suprafata mea, așa că am ar putea atrage doar pe ecran. Asta e ceea ce am folosit pentru a face anul trecut. OK. Așa cum am menționat, am vorbit despre DOM, Document Object Model. Probabil gând să vă dau unele pic de fragment ca aceasta și vă rog să creați un copac pentru ea. Și asta doar tot are de a face cu trece prin tag-uri. Așa că hai să încercăm și de a face acest lucru. De asemenea, ca de obicei, dacă voi face aceste teste, așa cum am foarte recomandăm să faceți în calitate de practică, nici una dintre ele care ești ca, Eu chiar nu înțeleg ce e întâmplă aici, doar, desigur, trimite-mi un e-mail cu o întrebare, și voi explica cât de bine pot. OK. Avem niște documente, și avem HTML. OK. Deci, atunci suntem doar analiza Tag-urile de aici, nu? Deci, ce vedem comes-- ce sunt cele două subpoziții sub HTML? Mai ales pentru că ei indentat corect? Cap și corp. Ah. Cap și corp. Lovely. Deci să începem de aici, cu cap. Ce-i cap sub? Care e următoarea noastră tag-ul? Titlu. Și apoi în titlu, test. OK. Deci literal, e doar de mers pe jos prin tag-uri, bine? Deci, dacă avem corp, așa cum am trece prin, corp are trei lucruri în el, nu? Are trei divs. Fiecare div devine propria cutie mica. Și ce e în primul div? [Inaudibil] Și apoi următoarea este de mijloc, care Mă duc la abrevierea. Și atunci ultima este de jos. Deci într-adevăr, e doar de mers pe jos prin. Și pentru că vom da tu HTML care este indentat corespunzător, puteți literalmente doar rulați prin și să fie ca, bine, aici este HTML. Deci, acesta este cel mai îndepărtat colț, sau mai departe la stânga, astfel încât trebuie să fie propriul său lucru. Acestea sunt pe aceeași identație. Deci, noi știm că trebuie să cap fie la același nivel ca și corp, dar sub HTML. E ceea ce avem aici. Cap și corp sunt frați, dar ele sunt în HTML. Și apoi doar vom merge în fiecare dintre acestea. Deci, cap are titlu, care are test, așa cum vom vedea aici. Și apoi, în acest caz, ne-am corp, care are aceste trei linii. Deci, acestea sunt toate fratii toate sub corp. OK? Deci, sperăm când veți vedea ceva de genul asta, ești ca, da, am ajunge să atragă un copac. O să fie grozav. OK. Deci, a vrut să se asigure voi știa că. Deci, de ce nu mergem la 32 cu arbore binar nostru? Pentru că odată ce ați înțeles un binar copac căutare, nu e chiar așa de rău. Deci Everett, pot erase-- I Adică, toate acestea sunt on-line, de asemenea. Deci, dacă aveți întrebări. A pierdut un spațiu mic acolo, dar e în regulă. Deci, arbore binar de căutare este doar un mod de a organiza datele nu într-o matrice, în cazul în care rădăcina este întotdeauna mai mare decât copilul din stânga și rădăcina este întotdeauna mai puțin decât copilul dreapta. OK. Deci avem acest copac căutare mare aici. Avem aceste numere, 34, 59, 20, 106, 36, și 52. Și trebuie să organizăm le în așa fel astfel încât rădăcina este mai mare decât tot pe partea stanga și este mai mică decât tot pe partea dreapta. Și de obicei, ceea ce vreau să fac este să încercați și de a găsi ceva despre în mijloc. Cu arbori de căutare binare, s-ar putea avea pentru a juca în jurul valorii de un pic cu ea. Dar, în acest caz, hai să presupunem că știm această primă unul. Deci 36 este primul nostru una aici. De obicei, mi-ar încerca și alegeți ceva despre în mijloc care va probabil cele mai bune rezultate. Deci, acum știm că totul pe această parte trebuie să fie mai mică de 36. Dar, de asemenea, ceea ce ai putea vedea este că avem două puncte peste aici. Deci, dacă știm că avem nevoie de doi Numerele care sunt mai puțin de radacina, atunci ai putea comanda doar acestea și alegeți al treilea număr. OK. Deci, de ce să nu începem cu partea asta? Deci, dacă știm că totul pe această parte trebuie să fie mai mică de 36-- dar dacă ne uităm la asta, știm că acest număr trebuie să fie mai mică de acest număr, nu? Pentru că acest număr aici se afla pe partea dreapta. Și amintiți-vă, la fel ca și în Mariti nostru copac, tot pe dreapta trebuie să fie mai mare decât rădăcina. În acest fel, știm că tot ce este în acest nevoilor să fie mai mare decât orice e aici. OK? Deci avem două opțiuni pentru aceste două bule. Avem 32 și 34-- sau rău. 20 și 34. Deci, cum crezi am putea pune acestora în? Dacă acesta trebuie să fie mai mare decât aceasta, înseamnă că vrem să au 20 de aici și 34 aici. OK. Deci, în același mod, ne uităm la acest tip de sub copac. Și noi spunem, OK, nu am 36. Avem 106, 52, și 59. Chiar? În acest caz aici, ne-am știu că acesta are nevoie să aibă un singur lucru care este mai mare de ea și un lucru care este mai mic decât. Chiar? Deci, dacă am pus acestea în ordine, e doar despre găsirea nou că valoarea de mijloc. Deci, valoarea noastra de mijloc este de 59. Deci spunem, bine, ce e mai mult de 59? Ei bine, asta e de 52. Și ce e mai mult de 59? Ei bine, asta e 106. OK? Deci, e doar un pic ca un puzzle. De obicei ajută, mai ales în copaci mici, cum ar fi acest lucru, daca doar comanda, daca Știi câți sunt pe stânga și cât de multe sunt pe dreapta, care poate doar incat sa puteti alege ce ar trebui să fie la rădăcină ta. Și apoi puteți fel de a lucra de acolo. Mm-hm. 33? Sigur. OK. Așa că doriți să creați un nod sau un arbore binar de căutare. Și să ne uităm la ceea ce ar putea fi în ea. Și cred că acest lucru va fi de fapt ultima noastră problemă. Ah. OK. OK. Acest lucru este ca ceea ce putem cred ca un nod, nu? Avem o anumită valoare, iar noi știu că se va fie au părăsit și copiii dreapta. Căutare binară tree-- că mijloacele că are, cel mult, doi copii. OK? Să ne gândim la modul în care definit o listă legată, nu? Am avut unele int că reprezentat valoarea. Am avut unele pointer care a reprezentat ceea ce a fost de gând să următor. Arbore binar de căutare este foarte asemănătoare. Încă mai avem ceva de valoare, n, că l-am da, corect? Și apoi am desenat acestea foarte explicit cu săgeți, pentru că ele sunt efectiv pointer. OK? Deci n este în mod tipic ce? E o anumită valoare. Ce facem de obicei o desemnează ca? O int. Deci avem ceva int n, int valoare sau, sau orice doriți să-l numesc. Și apoi ne-am stânga copil și copilul dreapta. Chiar? Și noi știm că ceea ce ei sunt point-- ceea ce sunt ele indică spre? Ei indică spre alte noduri, nu? Deci, cum ne-ar declara un pointer nod? Audiența: [neauzit]. SPEAKER 1: Mm-hm. Și vom avea doi dintre cei, nu? Și apoi putem literalmente nu a plecat pentru copil stângă și dreapta pentru copil dreapta. Actually-- pare rău. Pentru că avem nevoie de struct. Deci, struct este pentru că noi nu avem terminat de declarare încă un nod. Deci, nodul se află aici. E un fel de definiție recursivă, nu? Așa că atunci când suntem în această definiție, noi nu s-au terminat de declarare nod ca structură, așa că trebuie să facem struct nod doar să spun, da, Suntem, de fapt, referindu- înapoi la noi înșine tip lucru. Asta ca și cum odată că e create, va fi bine. Deci, cât de mare nu voi că acest lucru este? Care este dimensiunea acestei structuri? 12. De ce? Exact. Și, de fapt, unul din Primele întrebări unul Quiz One este de aproximativ dimensiuni, motiv pentru care l-am întrebat. În regulă. Vom scop, deoarece DCE va țipa la mine dacă nu o facem. Dar dacă voi aveți orice întrebări, desigur, e-mail-mă, lasă-mă să știu. Voi gând să-l tare. Sunt super incantat. Voi va face ca de miercuri, și apoi veți obține pentru a lucra la final de dumneavoastră proiecte, și o să fie minunat. Eu voi fi aici următorul săptămână 4:00 - 04:30 dacă vreți să vină ridica teste tale. Dacă vrei să-mi găsesc altă dată sau doar să coordoneze un timp diferit, nu ezitați să să-mi spuneți. În caz contrar, aceasta este ultima noastră secțiune. Deci, a fost grozav să vă văd. Vă rugăm să luați mai mult bomboane. Și noroc pe testul dumneavoastră.