[Speel van musiek] Spreker 1: Alle reg, almal. Welkom by jou laaste gedeelte met my. Dit was nogal die semester. Ek kan nie glo dit is, soos, week 12 of 11, iets soos dit. Maar, want dit is ons laaste artikel, ons het baie van lekkergoed. En ek gaan om te probeer en prep jy so goed soos ek kan vir jou quiz op Woensdag. So waarskynlik nie die beste manier om, soos, end artikel met quiz oorsig. Maar ons sal probeer en maak dit pret. En daar is altyd lekkergoed. So hopelik sal dit maak dit beter. Jou quiz gaan mooi wees much dieselfde ding as Quiz Zero. Dit gaan aan die wees dieselfde formaat, dieselfde lengte. Jy sal in kamers verstrooi wees oor die kampus, omdat daar is naby aan 900 van jou, en ons kan nie almal hou jy in kamers soos hierdie. So seker wees om te kyk na al die Quiz Een dokumentasie aanlyn by cs50.harvard.edu vanaand of môre aand. Maak seker dat jy weet waar jy is gaan, wat jy nodig het om te bring. Regtig, jy hoef net jouself te bring en 'n potlood, en jy moet goed wees. Die vrae sal wees baie dieselfde. Daar sal waarskynlik 'n paar meervoudige keuse, 'n paar kort antwoord, sommige kodering, miskien 'n paar waar / onwaar, ooreenstem met allerhande dinge. So jy moet nie te wees verras deur die formaat. Wat kan verbasend wees is die lengte, wat in die vorige jaar, het veel langer is. In my jaar, ek het nie 'n enkele vriend nie wat ek onthou die afwerking van die eksamen. Daar was soos verskeie bladsye links leeg. So die lengte kan wees soort vervreemd net omdat in 'n paar jaar, het dit veel langer as Quiz Een. Ek het geen idee wat dit is gaan wees soos vanjaar, maar dit is iets om bewus te wees. Daarbenewens het die difficulty-- mense geneig Quiz Een baie meer uit te vind moeiliker as Quiz Zero. Weereens, jy weet, as jy soort van loop uit voel 'n bietjie ongemaklik, want jy nie so goed doen het as wat jy gedink jy sou of jy voel soos jy gedoen het nie doen so goed soos jy gedoen het op Quiz Een, onthou dat daar waarskynlik 'n baie ander mense voel dat die pad. Ek was beslis een van daardie mense. Quiz een, soos, gooi my vir 'n lus. En my vriende het hierdie groot foto van hulle by JP Lekke soort met hierdie groot Coupes, om soos, Quiz Een, en kyk soos hulle is in trane. So dit is 'n algemene gevoel. Dit is 'n taai toets, dit is 'n moeilike quiz. Dit is duidelik dat, as jy kom uit en jy voel soos jy geskud het, 'n groot vir jou. Maar weet dat jy waarskynlik not-- jy is amper beslis nie alleen as jy loop uit voel soos, eh, waarskynlik beter kon gekry het. Dit is taai. Mm-hm. GEHOOR: Hoeveel is dit die moeite werd met betrekking tot [onhoorbaar]? Spreker 1: Dit is dieselfde moeite werd. Ja. Maar weereens, dit is ook gaan wees geraak word deur hoe die res van die klas doen, hoe om jou artikel nie, hoe jy oor tyd verbeter het. Gradering is 'n bietjie van 'n swart boks. So, wat die werklike getal of persentasie jy is nie noodwendig direk graag gekorreleer met die graad jy gaan kry. Daar is 'n baie faktore wat gaan in dit. So met dit, gaan ons gaan deur 'n paar quiz oorsig. Ek is net gaan om dit te loop soos die vorige keer vir julle. Ek het al die antwoorde op Vasvra Een van verlede jaar. So as jy ouens wil trek wat op jou eie rekenaar, as jy hierdie eksamen het geneem voor en jy vrae het, Ek het gedink ons ​​kon gaan net deur 'n paar van die moeiliker kinders op daardie. Sodat ons kan praat oor dit, miskien kry 'n bietjie meer insig in die intuïsie agter sommige van hierdie vrae, hoe om dit te benader. Ook, soos die vorige keer, Ek het 'n 100-slide dek wat basies almal van die skyfies wat ek het vir die vorige voorberei artikels sedert jou laaste quiz-- ek het in hierdie dek. Sodat ons kan gaan deur middel van pretty much enigiets dat ons het gepraat oor vooraf dat miskien is jy wil 'n bietjie meer duidelikheid oor. Ons kon eers dit doen. Maar anders, ek is super gelukkig net soort van werk deur middel van hierdie probleme met jou. En ek is regtig hier om te fokus op dit wat julle dink sou wees baie belangrik om te fokus op. Soos, natuurlik, al hierdie dinge is belangrik. Veral as ons gaan deur Quiz Een, Ek sal beslis wys dinge soos, O, dit dalk iets wees jy regtig wil weet of jy wil op jou cheat sheet te hê. Ek sal vertel word jy dinge as ons soort deurgaan. So op daardie noot, is daar enige dinge dat jy ouens wil om oor te gaan? Ook, as ek dit nie het nie in my dek, ons kan trek iets op die web, of ons kan probeer en maak up 'n voorbeeld op die vlieg. Maar enige konsepte wat jy ouens is 'n bietjie fuzzy op. [? Brian,?] Het jy have-- GEHOOR: O, is dit kumulatiewe? Soos, is die dinge op Quiz Zero gaan wees op hier? Spreker 1: Dit is kumulatiewe, maar dit is baie meer van 'n klem op die dinge sedert jou laaste quiz. So natuurlik, julle ouens het geleer het oor veranderlikes en loops, en conditionals. En dit is dié wat nie net wil weg te gaan nie, want hulle is natuurlik inherent aan alles anders wat ons nou geleer het. Daar is dalk 'n vraag wees op die soorte, of daar kan 'n vraag wees op verskillende soektogte. Of daar dalk 'n paar wees vrae oor miskien iets wat jy wat te doen het met die samestelling of verskillende foute. Maar as jy het gekyk Quiz Een van verlede jaar, jy sal sien dat dit baie gefokus op die dinge wat gebeur het sedert jou laaste quiz. Hoekom is dit deur altyd gesluit? Dit pla my regtig nie. Omdat ek altyd probeer om te gaan deur dit. So dit is pretty much hoe die quiz sal wees. So is daar enige konsepte wat julle ouens wil om oor te gaan? Of ons kan reg spring in net te kyk na Quiz Een van verlede jaar en soort gaan deur oefening vrae daar. Ons kan ook heen en weer skakel. Dit is nie 'n een-tyd soort van ding. Enige vrae? Ja. GEHOOR: Kan ek vra 'n vraag oor another-- Spreker 1: Nog een? GEHOOR: Dit is van nog 'n jaar. Spreker 1: Ja. Ons kan ook nie nog 'n jaar. GEHOOR: OK. So op 2011. Spreker 1: 2011. Ooh, dit was die jaar voor my. Laat my toe om dit op. GEHOOR: Ek dink. Spreker 1: Hierdie aspek verhouding is gooi my af. GEHOOR: 11 en 12. Spreker 1: 11 en 12. OK. Wel, hier is, hoekom het ons nie dit doen? Jy guys-- almal net 'n paar minute om te kyk deur vasvrae. En ons sal 'n lys saam te stel. En dan sal ons gaan deur hulle. Alle reg? Terwyl ek 'n klomp van hierdie dinge opgestel. OK. Ek gaan net om te skryf dinge op papier. 2011, 11 en 12? Ek gaan net hierdie vertoning te verander. OK. Dit is beter. Dit verby. Alle regte. Iemand anders het iemand wat hulle wil om te begin met? Ook, vergeet om te sê, as jy meer wil van 'n klomp van die mense aan die praat oor jou en net gee jy 'n kraak kursus in die laaste ses weke, ons hardloop 'n hersiening sessie van 07:00 te 08:30 vanaand in Noordwes B103, wat ook gebeur laaste keer, waar dit gaan wees my, Hannah, Daven, met Gabe en Rob soort van help uit die kantlyn van net soort van gooi al die inligting wat jy dalk wil op jou cheat sheet te hê, streep, weet in die algemeen is daar. GEHOOR: Dit is ook aanlyn, reg? Spreker 1: Dit is ook aanlyn. So kan jy ook bly uit hierdie Good Girl weer, gaan na jou dorm, en live-stroom dit as jy wil. Ek is seker dat 'n baie people-- Ek weet ek sou wees om dit te doen as ek in jou skoene was. OK. So waarom nie ons begin with-- terwyl jy hopelik guys--, jy deur te kyk. Indien nie, kan ek net begin werk deur verskillende dinge op Quiz Een van verlede jaar nie, tensy jy spesifieke vrae. Ons sal begin met hierdie bevraagteken hier oor stapels. So het almal onthou soort wat 'n stapel? Hoe is ons geneig aan- kan iemand net gee my 'n algemene beskrywing van 'n stapel? 'N Tipe data struktuur. OK. So dit is een van die data strukture wat ons verwag dat jy vertroud with-- te wees soos stapels, skikkings, toue, ensovoorts. Ja. GEHOOR: Soos Eerste In, Laaste Out, iets. Spreker 1: Dit is die eerste keer in, laaste uit. Presies. So 'n stapel is presies wat ons geneig is om te dink oor wanneer ons dink van 'n stapel van dinge. So 'n stapel van plate. Die eerste plaat jy sit gaan wees aan die onderkant, en dit gaan wees om die laaste een wat jy verwyder aan die einde. Omdat hulle stapel. En jy neem die een uit die onderkant, Tipies, dinge te crash en breek. So stapels jy kan dink net soos 'n stapel van plate. Of die voorbeeld wat ons altyd wil gebruik is in die D sale, jy het die bak, hulle is almal gestapel, en julle uit die top. So het die laaste een in die eerste een uit. OK. So in die geval hier, ons sien ons have-- Ek wonder as ek kan eintlik zoom in 'n bietjie. So ons het hierdie struct hier. Reg? So jy het 'n paar struct wat sommige int getalle kapasiteit. So, wat dink ons ​​wat verteenwoordig? Dit is 'n skikking met die grootte kapasiteit. So dit regtig verteenwoordig ons stapel in die algemeen. Ons stapel is regtig net 'n verskeidenheid met 'n paar sekere aantal wat sy maksimum, dit is, sy kapasiteit. En dan het ons het 'n paar int grootte, wat sal die grootte van ons stapel spoor deur die loop wanneer ons dit gebruik. OK? In hierdie geval reg hier, ons sê dat ons stapel grootte is geïnisialiseer tot 0. So het ons 'n leë stapel nou. En dan wil ons te voltooi die implementering van pop sodanig dat dit gee die int aan die bokant. En dan as dit leeg is, dit gee negatiewe 1. OK? So ek wil julle ouens net om te dink oor wat ons daar kan doen. Wat kan 'n mens van die eerste wees dinge wat ons wil hê om seker te maak? Daar is 'n groot ding hier. Wanneer dit says-- as daar ooit 'n paar As verklaring, soos "As stapel is leeg," of "As dit terug null," of "As dit is wat" - jammer. GEHOOR: Skryf 'n IF-stelling. Spreker 1: Right. Jy kan 'n As verklaring skryf. En dit is waarskynlik een van die eerste dinge wat jy wil om te kyk. OK. Wanneer hulle gee jou soort van soos 'n hoek geval soos hierdie, dit is tipies een van die eerste dinge wat jy gaan om te kyk in jou kode. Ook, om iets te erken vir die quiz is as jy 'n ondoeltreffende manier om iets te doen, skryf dit neer. Omdat ons nie die gradering jy op die ontwerp, ons is gradering jy op korrektheid vir vasvrae. So selfs as jy weet dat dit is 'n super slegte manier om iets te doen, maar dit werk nie, skryf dit neer, OK? Letterlik, het ek gesien kinders laaste year-- As jy kyk na verlede jaar se een, hulle is soos, doen die Mario piramide. En hulle het letterlik net gedoen "druk, hash, druk, hash, hash, druk, hash, hash, hash. " Maar dit is korrek. Dit maak wat ons dit aan, sodat jy kan nie punte opstyg. As jy na die draad, natuurlik, jy wil 'n meer elegante oplossing te kry, en die meer elegante oplossing sal waarskynlik minder kode, wat beteken dat jy waarskynlik het 'n groter kans om reg. Maar as jy wil, jy weet wat, nee, ek het nie tyd nie, ek weet dit is 'n oplossing, dit is nie die beste, skryf dit. En jy kan selfs skryf op die kant, ek weet dit is verskriklik, maar ek weet dit werk. Dus net 'n heads-up. OK. So natuurlik, die eerste ding is hierdie As verklaring. So, wat dink ons ​​hierdie As verklaring gaan wees? En eintlik, laat my oop my groot Sublime redakteur. Ek gaan om dit te kodeer en dan wys julle wanneer dit gedoen is. So int pop. OK. So as ons hierdie int pop void-- so duidelik, dit is 'n funksie wat in neem niks en gee 'n heelgetal is, reg? So dit is net gaan om te praat oor hierdie stapel dat ons geskep het. Dus net vertaling van hierdie laaste vonnis, "as stapel is leeg, pop moet terugkeer negatiewe 1: "Hoe kan ons dit doen? So as wat? Hoe weet ons dat die stapel is leeg? Dis net die grootte gelyk aan 0. Stack.size gelyk 0. Ook, ek is soort van skryf blind hier. So as ek enige typos-- oh, het ook vergeet om dit te noem. Verlede week het ek heeltemal uitgepluis wat ons probleem was met JavaScript. Moenie kapitaliseer ek en D. Jy moet dit net kapitaliseer en ek kry element deur Id. En dit was die hele fout. So as jy ouens terug te gaan en eintlik kyk deur my kode, as jy net alles 'n klein d, "vergeet element deur Id," dit sal werk. So as ek belowe het, was ek baie naby. Ek het net gekapitaliseer iets Ek was nie veronderstel om, wat Ek is seker dat jy ouens het in jou laaste PSET. So as ons grootte gelyk aan 0, wat ons veronderstel is om te doen? GEHOOR: Terug negatiewe 1. Spreker 1: Terug negatiewe 1. Cool. So nou wat doen ons? Ons wil iets te pop af. Nou is dit die geval waar ons iets. Ons grootte groter is as 1 of groter as 0, reg? Ons het eintlik iets daar. So wat ons wil doen, is ons wil hier terugkeer. Ons gaan om te sê ons wil top van stapel te stuur. OK? So hoe kan ons dit doen? Hoe terugkeer ons nie die top van die stapel? Onthou, ons stapel net 'n skikking, reg? Dit het 'n paar kapasiteit dat ons gegee het nie. As ons dinge het sit on-- of eintlik, ons gaan "push" te skryf na hierdie. As dinge in there-- miskien 'n prentjie sal help. Hm, ek hou groot kryt beter. So if-- en jy kan net dink van hierdie as ons stapel. So, dit is 0, 1, 2. Ek waarom my bokse weet nie word kleiner. Maar daar. OK. So dit is 'n stapel met 'n kapasiteit van 5. En laat ons sê dat ons iets hier en ons het iets hier. So op hierdie punt, ons grootte is gelyk aan wat? 2. En as ons wil pop iets van dit af, dit beteken dat ons wil te kry ontslae te raak van hierdie reg hier. OK? So hoe sal ons terugkeer hierdie waarde? GEHOOR: Grootte minus 1. Spreker 1: Right. So grootte minus 1, of jy kon grootte minus minus doen. Maar ons kan nie net doen grootte. Dit is in 'n struct, reg? So stack.struct. of stack.size. Dit is ons indeks reg daar. OK? En dan as ons kyk terug by ons struct hier, sien ons dat om eintlik toegang tot die skikking, ons moet stack.numbers te doen om werklik toegang wat opgestel is. Sodat gee die bokant van die stapel. Maar iets that-- as jy ouens kyk die antwoord sleutel, dit is al wat hulle gee. So dit is dit. Maar ek kan argumenteer dat hulle miss-- ooh, nie wat ek wou hê. Ek kan argumenteer dat hulle mis iets, because-- ja. GEHOOR: Verminder die grootte. Spreker 1: Right. Ons moet ons grootte nou verminder. So, wat is moeilik oor dit is wanneer jy terugkeer iets, jou funksie se gaan uitgang, reg? So wat ons kan doen is eintlik eerste verlaag ons grootte. En dan kan ons net nie stack.size. Ons kan net gebruik stack.size as ons indeks, kon ons nie? Want as stack.size is 2, ons decrement dit. En so is dit 1, wat is ons werklike indice. Sodra ons ontslae te raak van hierdie, het ons eintlik het net een ding in ons verskeidenheid. So is dit nie beide. GEHOOR: [onhoorbaar]? Spreker 1: Wel, in hierdie geval, Ons het net die element teruggekeer by die top wat by ons grootte wat is aan die bokant. Maar ons het niks aan die gebeur grootte nadat ons verwyder daardie element. Dit is nog nie ons grootte verander nie. Dit beteken eintlik inherent verander ons grootte. Maar om dit 'n bietjie duideliker te maak, jy kan stack.size minus minus doen. Vir my, dit maak dit, ek weet nie, 'n bietjie meer duidelik that-- ah, dat jy eintlik is verander die grootte en dit terug. Die ander manier was fyn, want jy verander en terugkeer op dieselfde tyd. Maar dit is net 'n ander manier om te skryf dit wat ek wou om te wys julle. Maak dit sin maak? Stapels, dink ek, is baie makliker as toue. [Lag] OK. Het u enige spesifieke vrae oor 11 en 12, of just-- GEHOOR: Ek dink dit was die stapel. Spreker 1: Die stapel grootte? GEHOOR: Ja. Spreker 1: Gotcha. OK. Ja, jy kan dit doen in een van die twee maniere. OK. So nou het ons die ander een. Dit is regtig vreemd, soos nie met hierdie op my skerm. So as ons kyk hier, nou wil ons voltooi die implementering van druk, wat eintlik iets sit, gaan en voeg iets in ons ry, of in ons stapel. OK? So as ons sien, ons het 'n paar van die dinge. Ons het ons great-- as alles anders, wanneer ons een van hierdie, Julle moet ten minste kry die helfte 'n punt, want al wat jy hoef te doen is omskep dit in C. En hulle gee jou die helfte van dit. So "as 'n stapel vol is of dit negatief is, dan druk valse moet terugkeer. " OK? So ons wil net positiewe heelgetalle te wees op ons stapel. Alle reg? En dit gaan nie terugkeer waar of vals is. So ons moet [onhoorbaar] Bool. OK. So vertaal. GEHOOR: [onhoorbaar]. Spreker 1: O, dankie. Ja. Dit is die rede waarom ek het julle ouens. Int n. Volmaak. Omdat ons is om iets aan ons stapel. Ons het eintlik 'n paar nommer. OK. Dus net te neem dat die laaste reël dat hulle het ons, ons soort hoek gevalle, wat dink jy ons hier? Dit is duidelik dat, ons gaan 'n paar As te hê. OK. Daarom het ons gesê: As ons stapel volle of as n negatiewe. So waarskynlik die maklikste om te begin met, so as n minder as 0 or-- onthou jou mooi EN en OF operateurs daar. Hoe sou ons kyk na kyk of ons stapel vol is? Wat gebeur? GEHOOR: Grootte gelyk kapasiteit. Spreker 1: Presies. Volmaak. OK. En wat wil ons om daar te doen? GEHOOR: Terug vals. Spreker 1: Terug vals. Volmaak. So halfpad daar, reg? Op die heel minste, julle ouens sal die helfte van hierdie. So kom ons dink hieroor. So, dit is die stapel begin ons met. Ons probeer om te sit 'n element op hier. Ons het 'n grootte wat gelyk is aan 2 nou. Ons het 'n kapasiteit wat gelyk aan 5. En laat ons sê ons het sommige N dis gelyk aan 3. So ons moet die toevoer 3 in hierdie ruimte. En ons moet insette dit in indeks 2. Reg? So hoe kan ons dit doen? Probeer ons om assign-- wil ons skikking te bekom. So stack.numbers. Maar teen watter indice sou ons wil dit te wees? GEHOOR: [onhoorbaar]. Spreker 1: Ja. Stack.size. En ons wil dit gelyk N, reg? GEHOOR: [onhoorbaar]. Spreker 1: Ek was eintlik net te kyk na dit. Ek dink dit is verkeerd. GEHOOR: Moenie jy die ruimte verby die huidige grootte? Spreker 1: Wel, as ons kyk hier, ons grootte op hierdie punt is 2. Ons wil om dit te gaan in indeks 2, want dit is die top van ons stapel. So ek sou sê dat dit moet stack.size wees, en dan sal jy stack.size verhoog. Stem almal saam? Ek dink ek stem saam met dit. Julle kan argumenteer met my as jy wil. Of nie argumenteer nie, maar ons kan dit bespreek. GEHOOR: [onhoorbaar]. Spreker 1: MM-hm, is waar dit is oopmaak vanweë nul kruip. So, terwyl in die eerste deel, Ek het gedink dat hulle verkeerd was, en hulle was eintlik reg, hierdie deel, ek dink eintlik dat hulle verkeerd was. Ek sou sê jy moet beslis insette dit hier. Ek dink ons ​​almal stem saam ons het 'n grootte van 2. Dit is presies waar ons wil ons nuwe nommer te gaan. So stack.numbers by stack.size moet gelyk n. En dan sou ons inkrementeer die stack.size. ++. En dan wat ons wil doen? Daar is een laaste ding wat ons moet doen as ons suksesvol ingevoeg dit? Terugkeer waar. En nou is jy klaar is. So ek voel soos dit was die hele minus minus stack.size en stack.size ++ wat deurmekaar dinge. Ugh. Ek keep-- Ek het hierdie knie-stoot neiging om altyd getref Beheer, S, want ek het nooit wil enige van my werk te verloor. Maar ek hoef nie om dit te doen nou. OK. So dit was stapel. Cool. Is daar enigiets? Het jy ouens kry nie ander vrae wat jy wil hou om oor te gaan van die vorige vasvrae? Indien nie, kan ons soort van begin praat deur Quiz Een van verlede jaar. Ja. GEHOOR: Vir die eerste deel, ek het nie regtig verstaan ​​hoe jy die aantal geskrap. Is dit nie nog daar? Spreker 1: Die getal is nog steeds daar. Maar wat gebeur, is dat omdat jy vertel dat die bokant van jou stapel hier is, wanneer jy iets by te voeg op die stapel, sal dit net vervang. GEHOOR: O, OK. Spreker 1: Ja. So dit is soos hy vergeet en dit is daar tipe van ding, selfs al is dit daar. GEHOOR: [onhoorbaar] of enigiets? Spreker 1: No. Omdat ons in 'n skikking, jy hoef nie te bekommer about-- jy net ignoreer dit wanneer jy dit nodig het. Alle regte. Enige ander vrae? Indien nie, ons is maar net gaan om te begin werk deur. Ja. GEHOOR: Wel, hierdie een is op die 2013 maar net gaan deur die SQL dinge. Spreker 1: SQL? OK. So dit is 26 deur 29. GEHOOR: Ja. Spreker 1: OK. Mooi. Kom ons trek diegene up. O, kyk. Het julle geniet die Steve Ballmer praat, deur die manier? Dit was 'n bietjie hilarious, in my opinie. Ek is lief vir dat elke keer as ek bring CS50 se webwerf tydens artikel, dit is soos, o, kyk afdeling. En ek wil, mm. GEHOOR: Kan ons dit doen? Spreker 1: Ons sal dit doen aan die einde. Hoe is dit? Want ek weet julle ouens nog altyd wou. So sal ons dit doen aan die einde. Een vrae. GEHOOR: [onhoorbaar]. Spreker 1: Dit sal 'n meta afdeling wees. GEHOOR: Dis soos 5 sekondes. GEHOOR: Regtig? GEHOOR: Dit is soos 20 sekondes. [INTERPOSING STEMME] [Gelag] Spreker 1: Ek hou van wat jy reeds gedoen het dit, en dit is wat maak my gelukkiger. OK. 26. OK. Eintlik, ons is net gaan om te spieël dit nou, want ek kan nie. Dit is irriterende. OK. Nou kan ek sien alles. Mooi. OK. So natuurlik, moet dit terug te bring goeie herinneringe van [? CSG?] Finansies. Helfte van jou oor het joune nou gegradeer. Die ander helfte ek sal kry om baie, baie gou, ek belowe. So ons het 'n paar SQL tafel dit is Rekeninge hier. Waarskynlik soortgelyk aan jou ouens se gebruiker tafels. En ons het 'n paar nommer dit was 'n primêre sleutel en verteenwoordig 'n 12-syfer-rekening nommer. En balans is hoeveel geld hulle het. En die standaard waarde is 100. En hulle gee hulle $ 100 Enige tyd wat hulle 'n rekening oop te maak. Ek wil graag my bank het dit gedoen. OK. So wil ons die skema te voltooi deur spesifiseer langs nommer in balans die toepaslike SQL tipe. So, wat julle dink nie sou wees soort van soos jou knie-stoot reaksie vir tipes vir hierdie twee? GEHOOR: Int. Spreker 1: 'n int. OK. En dan vir 'n balans? Desimaal. OK. So desimale se reg. Int is naby. Soort van die groot ding is dit onderstreep 12-syfer-rekening nommer. Wanneer ons iets dit is groter as agt syfers, hulle wil hê jy moet gebruik groot int, wat ek dink is-- GEHOOR: Is dit net SQL? Spreker 1: Dit is die enigste keer dat ek gehoor het dit is SQL-- soos die gebruik van 'n groot int. Dis net vir jou 'n bietjie meer presisie, maak seker dat jy nie golwende tipe ding. In alle eerlikheid, ek dink dit is beslis een van die kinders waar dit is soos, o, dit is bedoel vir mense wat 'n bietjie meer kennis van SQL. Ons het nog nooit gepraat oor groot SY in jou PSET. So dit is soort van soos ek is redelik seker as jy sit int, dit was half krediet. En soos ek gesê het, daar is gaan 'n paar vrae wat net te wees bedoel om jou te pootjie, so dat nie almal kry 100. Omdat daar natuurlik is 'n paar mense in CS50 wat doen dit vir soos agt jaar, en jy soos, wat doen jy? Maar ja. Desimale vir balans was die ooglopende een. En dan die groot int vir die nommer net omdat van daardie, soos, onderstreep 12-syfer. Wanneer iets is in vet of dit onderstreep, soos, aandag te gee aan dit. Ons is nie om dit te doen net omdat. OK. So "veronderstel dat die bank oplê 'n $ 20 maandelikse fooi op alle rekeninge. Met watter navraag kon die bank aftrek $ 20 uit elke rekening selfs al is dit die gevolg van 'n paar negatiewe's? " So laat ons begin eenvoudig. Ons het vier hoof opdragte vir SQL, wat? Het jy ouens onthou die vier grotes wat ek vir jou gesê het? UPDATE, skrap, kies, en plaas. Volmaak. Het dit. So, wat dink ons ​​mag baie nuttig vir hierdie een? Ons are-- UPDATE. Presies. So werk, want ons is op soek na op rekeninge wat reeds bestaan. So onthou ons algemene soort van ding is update. En dan wat kom nadat UPDATE? Ons het 'n paar tafel dat ons die verwysing. So as ek trek Sublime again-- UPDATE. So dit is 'n algemene formaat. Dus het ons UPDATE tafel. En dan wat is die volgende ding wat ons het? Jy kan dit doen WAAR. En dan het ons het 'n paar kwalifiseerder hier. En dan wat het ons volgende? Ons het 'n paar SET-- iets gelyk na iets. Blah blah gelyk. Opgedateer blah. Reg? So dit is soos die algemene idee vir 'n paar update. OK? So laat ons begin vul hierdie in met wat dit behoort te wees. So, wat tabel is ons praat? Rekeninge. En dan in hierdie geval, wat is regtig cool is ons praat oor die spesifieke gebruikers in ons rekening, of praat ons van alle gebruikers? Ons praat oor al die gebruikers. So in daardie geval, kan ons net skrap hierdie WAAR kwalifiseerder. Die WAAR is slegs wanneer jy wil te beperk wat jy verander. As jy wil die hele te verander tafel, kan jy net drop nie. OK. So nou is ons by ons SET deel. Wat wil ons verander? GEHOOR: balans. Spreker 1: Balans. En ons gaan aan- hoe gaan ons balans te verander? Ons het 'n $ 20 fooi, reg? Minus 20. En hulle het gesê dit is OK as ons het negatiewe balans. So in hierdie geval, jy hoef nie enige verdere foutopsporing te doen. OK? Dit is letterlik al wat jy hoef te doen. Cool? OK. So laat ons gaan deur die volgende een. "Met watter SQL navraag kon die bank haal die rekening nommers van sy rykste kliënte met balanseer groter as $ 1,000? " As jou bank en jou rykste kliënte is net die mense met meer as $ 1000, Ek voel soos jy doen iets verkeerd. Soos, hoe 'n bank te oorleef op daardie? Soos, dat rente, nie heeltemal genoeg nie. OK. Met hierdie soort van ding, wat doen jy dink, van ons vier funksies, dink jy ons gaan gebruik? Kies. Volmaak. Kies. OK. So ons kies 'n paar identifiseerder van tafel. En dan WAAR toestand. So as ons gaan deur Hiervan is ek net gaan te gee julle 'n algemene opknappingskursusse op die algemene formaat van al hierdie. So ons kies 'n soort van [? ding. ?] In hierdie geval, dit gaan wees tipies sommige kolom. So in ons geval, ons het nommer, balans. In jou ouens se geval, miskien dit was ID, naam, wagwoord. Enige van daardie kolomme, dit is tipies wat ons kies. So in hierdie geval hier, wat soort kolom wat identifiseerder ons trek uit ons tafel? Wat beteken dit ons vra vir? Dit vra dat ons vir ons getalle, reg? Die rekening nommers. So onthou, net nommer in hierdie geval. As jy ouens ooit die fout gehad, dat helder oranje boks sou kom. En dit was soos, onverwagte ry in, soos, wat ook al. Dit is omdat jy genoem jou tafel verkeerd is, reg? So seker wees dat jy die roeping van die kolom korrek. So van tafel, ons tafel is genoem rekeninge. Weereens, maak seker jy is jou tafel verwysing korrek. En dan wat is ons toestand hier? Wat soek ons? Ons wil ons ryk mense. Ja. So balanseer groter as 1000. Daar gaan jy. Dit is jou navraag. Nie te sleg nie, reg? OK. So nou vir ons laaste een. Met dit, ons ingewaai deur. OK. So nou "met wat navraag kon die bank naby, dit wil sê, verwyder "- het jy nie hou van hoe hulle net jy het DELETE-- "Elke rekening wat 'n balans van 0?" Ek dink ons ​​almal kan saamstem ons waarskynlik gaan om te word deur gebruik te maak DELETE. Ek is baie welkom om enige te neem bespreking rondom dit. Maar ek dink dit is redelik veilig om te sê dat ons kan gebruik DELETE. So ons gaan 'n paar te verwyder gebruikers van tafel, WAAR toestand. So dieselfde soort ding as kies. So in hierdie case-- O, jammer. Ek moet verwyder uit. Omdat DELETE wil verwyder die hele ry. Sodat ons nie nodig het om te praat oor wat spesifieke dinge oor 'n gebruiker is ons verwyder. As ons 'n gebruiker verwyder, ons is verwydering alles oor hulle. So in hierdie geval, het ons net nodig het om te vul in ons Waar en ons toestand. So ons tafel is net ons rekeninge tafel, soos ons gedoen het. En wat is dan ons toestand hier? GEHOOR: balans. Spreker 1: Balans gelyk 0. Korrek is. Alle goeie. Ja. GEHOOR: [onhoorbaar]. Spreker 1: So DELETE inherent verwyder alles. So terwyl met kies, kies neem in sekere kolomme wat jy wil terug. As jy oor wou alles 'n gebruiker teruggekeer, jy star gebruik. Star sê, terug te keer na my alles van hierdie gebruiker. Of as jy WAAR ster wat beteken net gee my alles. Maar DELETE inherent het nie. So as jy sê, verwyder uit rekeninge waar balans gelyk 0, dit gaan om deur te gaan. En oral dat die balans is gelyk aan 0, is dit nie inherent dat. Dit sal alles verwyder. Die ster is meer for-- met die kies of UPDATE, Dit praat meer oor die individu velde wat ooreenstem met 'n gebruiker. So as jy nie KIES ster uit tabel WAAR ID gelyk 1, wat terugkeer na jou alles oor die gebruiker met ID 1. As jy n beperkte aantal te doen Of kies ID komma naam van die gebruikers WAAR ID gelyk 1, wat terugkeer net hulle getal of hul ID en hul naam. OK? So ons gebruik ster in daardie geval gee ons alles oor 'n gebruiker. En DELETE inherent doen dit. Dit is nie net die ID verwyder, of net die naam, of wat ook al. Ja, nee. Dit verwyder net die hele gebruiker. Sodat ons nie hoef te bekommer oor die ster is daar. As jy wil verwyder alles, kan jy dit doen, en dit sal net drop alles. Maar tipies, jy wil nie om dit te doen. Maar as jy ooit wil verwyder alles is, kan jy dit doen. OK. Het julle ouens enige ander vrae gevind? Ja. GEHOOR: Kan jy doen 26? Spreker 1: 26 Ons het net gedoen het. GEHOOR: O, 25, jammer. Spreker 1: 25. OK. 25. Oh. Hulle is besig met JavaScript. O, ek kan dit nie glo nie. Ek gaan om te mors ons weer, ouens. OK. Ons het dit. Ons gaan hierdie werk te maak. Ag, jQuery. Pret. OK. So gaan ons die te voltooi implementering van die web bladsy in so 'n manier dat as hulle besoek, hul naam insette, en stuur die vorm, hulle het hierdie groot waarskuwing venster wat gaan verskyn. So enigiets met waarskuwings, weet ons dat ons gaan te hê JavaScript om te gebruik. Yay, JavaScript. En as hulle versuim om insette 'n noem voor die indiening van die vorm, geen waarskuwing moet verskyn. Sodat jy kan gebruik jQuery, maar jy hoef nie. So ek gaan om jou te laat ouens werk op hierdie net vir 'n paar minute. Dink daaroor. En dan sal ons die kode nie. Sny Ek gaan om te probeer en dink aan die beste manier om hierdie antwoord te verduidelik. Alle regte. Ons kry dit oprig. OK. So ons is maar net gaan deur dit te wandel, want ek weet jQuery is 'n bietjie verwarrend. JavaScript. Dit is 'n bietjie uit daar. So wat ons gaan doen, is om [Onhoorbaar] eintlik opgelos hierdie probleem met jQuery. So as jy onthou, jQuery is net 'n biblioteek wat net gebou op die top van JavaScript. Dit is bedoel om jou lewe 'n bietjie makliker te maak. Ek sou beslis, as jy tyd het, kyk oor 'n bietjie van die dokumentasie vir jQuery. Maar dit is baie soortgelyk aan JavaScript. Dit het soortgelyke paradigmas, waar jy gebruik hierdie dot operateur funksies te noem op voorwerpe wat jy het. So, wat het ons hier is vir jQuery, jy moet altyd hierdie soort van wrapper, wat is die $ (Dokument) .ready (funksie) funksie in hakies hier. OK. So dit dalk iets wees jy wil op jou cheat sheet. Want op die heel minste, kan jy het die omslag vir jou jQuery. En dit sal ten minste kry jy deel maniere daar. So in die dieselfde manier wat ons het baie gepraat oor JavaScript, en ons sal begin deur te kyk na wat ons probeer om te wysig of wat ons probeer om te verander. En dit sou tipies die eerste ding wat ons in wil sit. So in hierdie geval, as ons gaan terug na hierdie hier en ons sien hier by ons vorm, ons het hierdie insette, reg, dit id van insette. En ons weet wat gegrond op ons vraag, ons óf gaan om te gooi 'n fout as dit leeg is, of ons gaan sit dit in 'n waarskuwing, reg? So waarskynlik veilig om te sê dat ons gaan word wat met insette hier. jQuery is baie soortgelyk in dat as ons dink terug aan CSS, enigiets met 'n ID ons kyk na 'n hash. Enigiets met die klas het ons gekyk met 'n dot, reg? So in die dieselfde manier hier is, wat ons praat oor is insette. Ons het gesien dat insette is 'n ID in ons vorm. So ons gaan om te verwys na dit as sodanig. Insette. OK? So wanneer jy twyfel, selfs as jy het nêrens, as jy regtig onseker is oor hoe om te benader hierdie, A, het hierdie wikkel. So begin daar met die omslag vir jQuery. B, maak seker dat jy weet wat jy verander. En toe in twyfel, sit dit in iets, en doen dot, wat jy dink jy moet doen met dit. GEHOOR: Wat is die omslag? Spreker 1: Die wrapper is die eerste lyn. So Dit sê, wag totdat my dokument gereed is. Dan begin geknoei met dinge. OK? So ons weet ons is geknoei met insette. So ons is soos, OK, insette is ons vorm. Dit is ons ID. So dit is wat ons is gaan soek vir. En ons wil om te sien wat gebeur wanneer hierdie vorm ingedien word, reg? So as ons dink, ons het 'n paar .submit. So .submit net sê, OK, hierdie vorm dat ons gekla het met hash insette, wanneer dit ingedien is, voer iets anders. So ons gaan 'n funksie te hê. Let ons anonieme funksies hier. Ons het hier 'n anonieme funksie. Ja. GEHOOR: Sal dit altyd .submit word, of is dit net omdat dit in die HTML, ons het die knoppie tipe Stuur? Spreker 1: Dit moet .submit word nie, omdat dit is 'n vorm wat ons indiening. Omdat hierdie .submit nie noodwendig ooreenstem met wat op die knoppie is soos te noem. Maar die feit dat dit 'n vorm wat ons indiening. OK. So sien anoniem funksie hier dat says-- GEHOOR: Ek het nie regtig verstaan ​​anonieme funksies. Spreker 1: So anoniem funksies, hulle is net funksies wat nie 'n naam. So in plaas van om 'n paar belangrikste funksie dat calls-- ons kon sê: As dokument gereed, dan sou ons insette noem. En dan, wanneer voorgelê, call-- soos: As so-en-so ingedien word, ons wil 'n paar ander funksie noem. 'N anonieme funksie net nie 'n naam, en dit sal net voer binne hierdie soort van dinge. So in hierdie geval, wat dit sê is, Wanneer ons dokument gereed is, hierdie funksie uit te voer. Hierdie funksie is saamgestel van alles in hier. En dan is die volgende laag in is, OK, wanneer insette voorgelê word, uit te voer nie. Dit is net 'n manier van monogram wat uitgevoer moet word wanneer. Dit is letterlik net 'n funksie wat nie 'n naam, so hulle is geneig om word in mekaar nes, want jy kan hulle nie by die naam noem. OK? Letterlik, 'n anonieme funksie is net 'n funksie sonder 'n naam. Dit is dit. Net 'n manier te omsluit verskillende dinge wat ons wil uitgevoer op spesifieke tye. GEHOOR: [onhoorbaar]. Spreker 1: Die vent? Waar? GEHOOR: In die hakkies ná funksie? Spreker 1: Na funksies. Watter een? GEHOOR: Beide. As jy, soos, gebeurtenis, of indien jy 'n argument daar, sou dit verkeerd wees? Spreker 1: In hierdie geval, dink ek jy kan 'n argument daar. Maar omdat ons nie nodig het om 'n argument, moet daar nie wees nie. Soos dit is die hele, soos, jy moet net dinge wat nodige soort van ding. In dieselfde manier dat as ons enige funksie wat int main void-- soos, met int main leemte, jy kon doen int arg v, wat ook al. Maar as jy nie nodig het om diegene wat jy moet nie hulle daar. Dieselfde ding. Emma, ​​het jy 'n vraag? OK. Cool. OK. So, wat ons tot dusver is wanneer ons dokument gereed is, uit te voer nie. Nou is ons op soek na wanneer dit ingedien is. So nou het ons eintlik soort van die vleis van ons ding. Dus moet ons die waarde te kry dat die gebruiker ingedien, of dit nou 'n naam of leeg. En dan moet ons óf terugkeer hierdie waarskuwing of gooi 'n fout. Óf manier. So hoe verklaar ons nie 'n veranderlike in JavaScript? Var. So kom ons sê, var naam equals-- of eintlik, sal ons waarde doen, want ek dink dit is die naam. OK. So ons het 'n paar waarde hier dat ons wil trek uit ons insette vorm. So in die dieselfde manier wat ons soort het insette, kan iemand my vertel wat ons dalk 'n beroep kan word binne hier As ons wou kry die naam van die vorm? En as ons terugkyk op ons vorm hier, sien ons dat ons 'n ID van naam. GEHOOR: [onhoorbaar]. Spreker 1: Jy hoef nie om te dink aan dit as 'n skikking. Jy hoef nie bekommerd te wees oor dit. So het ons net 'n paar naam. En dan, omdat JavaScript en dinge is vreemd, kan ons nie net doen nie "naam." Ons het eintlik te roep 'n funksie wat ons gee, soos, die waarde van daardie merker. OK? So dit is net .val. GEHOOR: [onhoorbaar]. Spreker 1: OK. So met JavaScript, hierdie soort van ding hier gaan net deur. En jy kan dink van hierdie as-- dit soos byna 'n getElementById, waar getElementById sou eintlik terugkeer die volle ding vir jou. Die $ ("# Naam") is net soos, OK, ek het dit, ek kan dit bekom, maar as jy dit werklik wil die waarde terug te keer na you-- GEHOOR: Is dit soos 'n muis? Spreker 1: Dit is soort van soos 'n muis. Jy kan dink dat dit as soort van soos 'n muis. Soos dit sê, OK, ek weet hoe om daar te kom, maar om werklik die waarde van dit, jy het om uitdruklik te vra vir dit. En ongelukkig, natuurlik, ons doen nie te veel met JavaScript en jQuery doen. So dit gaan om af te kom hoeveel jy guys-- wat jy gebeur om te weet, wat jy gebeur om te gesien het, en wat jy kan soort van logies raai. Omdat sommige van hierdie dinge, jy kon waarskynlik halfpad daar. Maar dit heeltemal reg te kry, Ek dink dat die probleem waarskynlik het een van die laagste tellings. GEHOOR: Soos, byvoorbeeld, vir [onhoorbaar] insette, Hoekom het jy nie val daar te vestig? Spreker 1: Vir hierdie een? GEHOOR: Ja. Spreker 1: Ja. Want dit is soort van hou, soos ons sê, sommige pointer, en dit is vir my die verwysing dit en eintlik om vir ons die waarde daarvan. GEHOOR: AANGESIEN [onhoorbaar]? Spreker 1: Vir insette, insette is net some-- dit is soos ons is net kyk na dit as 'n geheel, en dit .submit vertel ons wat ons nodig het om te weet. jQuery en JavaScript is weird. Ek weet nie. Ek weet, ouens. Ek weet nie. Daar is 'n rede waarom ek dit nie doen nie doen web ontwikkeling. Just kidding. Ek het nie genoeg blootstelling aan dit gehad het. GEHOOR: [onhoorbaar] CSS. [Gelag] Spreker 1: OK, dis CSS. CSS is net, soos, maak dinge mooi, dit is nie soos laat gaan met data. Daar is 'n verskil daar. OK. So nou hopelik hierdie part-- ook vir 'n probleem soos hierdie, waar jy kan nie weet wat die sintaksis, kan jy wees, OK, jy kan 'n paar var waarde het en wees soos, aanvaar ek het die waarde korrek. En dan kan jy waarskynlik skryf hierdie volgende deel. Die volgende gedeelte sal waarskynlik lyk baie meer maklik, of dit sou logies maak sin vir julle ouens. AANGESIEN wat ons tot dusver geskryf, Ek weet ek sou wees, umm, ja, Ek weet nie wat op die quiz. Jy kan heeltemal skryf psuedocode en dan breek in real-kode wanneer you-- dit is soort van soos wiskunde. As jy al ooit 'n paar multi-deel probleem waar jy weet nie hoe om te kry verby die eerste stap, maar alles anders staatmaak op dat die eerste stap, jy net sê, soos, neem x is gelyk aan 4. En dan moet jy hardloop met dit, reg? Jy kan dieselfde ding doen met die kode. So jy kan sê, aanvaar Ek het die waarde reg. Dan doen hierdie volgende deel hier. Omdat hierdie deel eintlik moet mooi logies. So het ons nodig het om te kyk As ons waarde is leeg. Of as dit is 'n paar name, eintlik gee 'n waarskuwing. So, wat kan ons wil om te kyk? Ons wil 'n paar As te hê. Wat dink jy van ons As gaan wees? Ons moet kyk om te sien of waarde is-- as dit nie 'n leë string. Volmaak. Presies. OK. So as dit die geval is, wat wil ons doen? Ons wil 'n paar waarskuwing te gooi, reg? So dit is net wakker. En dan wat ons wil binne. So, wat is ons veronderstel om te hê in ons wakker? GEHOOR: "Hello." Spreker 1: komma. En dan doen julle ouens onthou hoe om te koppel? GEHOOR: Plus. Spreker 1: Plus. So wil ons plus te hê. En dan moet ons 'n ander plus vir ons uitroepteken. Cool. OK. Anders, wat kan ons wil doen? Ons wil nie iets te doen nie, reg? Sodat ons net terug vals. Nie wat ek wil doen. OK. En dan hierdie, van course-- wat belangrik is is om te onthou om te sluit jou anonieme funksies. So as jy sien, ons het 'n paar funksie hier dat hier eindig. So ons moet dit te sluit eerste een en voeg 'n kommapunt. En dan is hierdie een hier te doen met hierdie anonieme funksie, sodat ons sluit dit daar. Dit knie-stoot reaksie van spaar. Ja. GEHOOR: Is daar 'n rede that-- net in al die voorbeelde in JavaScript wat ek gesien het, het ons ' die eerste krulhakies op dieselfde lyn as die funksie? Spreker 1: Dit is stilistiese. Ja. En eintlik, as jy 61, ons doen al ons krulhakies dat die pad. Huh? GEHOOR: As ons gedoen het nie dat die op die PSET, is dat sleg vir styl? Spreker 1: No. Ons het uitdruklik gesê julle ouens om dit te doen. Maar eintlik, dit is soort van die oorheersende konvensie in 'n baie C klasse en JavaScript en jQuery. So natuurlik, ek is sure-- en eintlik, as ek is om hierdie probleem te heeltemal te doen blind sonder gekyk na dit, daar is waarskynlik baie min maniere waarop ek sou gekry het nie. Ek kan soos, OK gewees het, miskien is ek moet iets wat 'n bydrae te gryp. En ek dink dat die kennis dat, soos, OK, as ek wil om iets te kry uit 'n vorm wat 'n ID, Ek verwys na dit op hierdie manier, Ek sal waarskynlik nie. Ek kan kry nie. Maar regtig, die enigste ding wat ek dink Ek sou regtig is hierdie reg hier. So dit is soort van belangrik om weet, soos met enige moeilike toets, jy soort van kies jou gevegte, reg? As jy weet dat jy nie gaan kry dat die eerste deel van jQuery, soos ek gesê het, aanvaar dat jy hierdie waarde en doen wat jy kan met dit. En as jy tyd het, gaan terug en probeer en vul die stukke. Maar moenie 'n vraag soos dit regtig bog jy af. Want wat? Dit was een vraag op jQuery uit die hele eksamen. So ja, sal dit wonderlik wees as jy dit gekry het. GEHOOR: [onhoorbaar] jy is welkom om jQuery te gebruik. Spreker 1: Jy is verwelkom jQuery te gebruik. GEHOOR: OK. [Onhoorbaar]. Spreker 1: Hoe sou jy dit nie gebruik nie? Ek sou hê om te kyk al my JavaScript. Dit is eintlik baie makliker, Ek dink, jQuery te gebruik, omdat jQuery eintlik verminder die bedrag van JavaScript jy waarskynlik skryf deur, soos, die helfte. So ons kode sal waarskynlik twee keer so lank sonder dit. So as jy recognize-- die grootste ding om weg van hierdie probleem is die patrone. As jy toegang tot iets uit 'n vorm, jy gaan aanhalings, hash te gebruik, alles wat jy probeer om toegang te verkry. As dit is wat ingedien is, wat jy wil iets soos 'n .submit te gebruik. Jy is waarskynlik gaan om te gebruik 'n anonieme funksie in daar. As jy werklik nodig het om die waarde van iets, jy gaan aanhalings te doen, hash, wat dit ook al in die veld is, .val. En erkenning patrone soos dit gaan te wees baie meer nuttig is as regtig weet wat die fyner kunsies. Ja. GEHOOR: So as die gebruiker hul naam instuur en dit loop deur daardie verklaring, sal dit gaan af en terug vals na hierdie? Spreker 1: Nee, want die waarskuwing, jy kan dink dit soos 'n terugkeer. Ja. So dit sal verlaat. Ja. GEHOOR: Kan jy [? plaas?] die hakies van dien, hakies, iets? Spreker 1: Ek het, ek glo nie. Hierdie een se gesluit reg hier. En dan is hierdie een kry gesluit hier. GEHOOR: O, daar. Alle regte. Spreker 1: Dit is duidelik dat, min, bietjie sintaktiese dinge soos dit is, sal ons waarskynlik net sirkel dit en wees soos, nie jou hakies vergeet nie. Maar ja. OK. Het ons 'n ander een dat ons graag wil doen? Het jy ouens kry die binêre boom een? Wil ons gaan oor wat 'n mens? Ek voel soos binêre bome en DOM moet punte wees dat jy ouens kry redelik maklik. Ek sou nie wil hê jy punte op daardie te verloor. OK. Kom ons doen dit DOM hier. Ek wens ek het my Oppervlakte so ek kon net teken op die skerm. Dit is wat ek gebruik het verlede jaar te doen. OK. So as ek genoem het, het ons gepraat oor DOM, Document Object Model. Hulle is waarskynlik gaan om te gee sommige bietjie brokkie soos hierdie en vra om 'n boom te skep. En dit net alles te doen met wat deur die tags. So kom ons probeer en doen dit. Ook, soos gewoonlik, as jy ouens doen hierdie vasvrae, as ek hoogs beveel aan dat jy dit doen as die praktyk, enige van hulle wat jy wil, Ek het regtig nie kry nie, wat is hier aan die gang, net, natuurlik, stuur vir my 'n e-pos met 'n vraag, en Ek sal die beste wat ek kan verduidelik. OK. Ons het 'n paar dokument, en ons het HTML. OK. So dan is ons net die ontleding die etikette hier, reg? So wat doen ons sien comes-- wat die twee subopskrifte onder HTML? Veral omdat hulle behoorlik ingekeep? Kop en liggaam. Ag. Kop en liggaam. Mooi. Laat ons dan begin hier met die kop. Wat is onder kop? Wat is ons volgende tag? Titel. En dan binne die titel, quiz. OK. So letterlik, dit is net loop deur die etikette, OK? Daarom dan, as ons liggaam, soos ons gaan deur, liggaam het drie dinge daarin, reg? Dit het drie divs. Elke div kry sy eie klein boks. En wat is in die eerste div? [Onhoorbaar] En dan is die volgende een is middel, wat ek net gaan afkort. En dan is die laaste een is onder. So regtig, dit is net loop deur. En omdat ons gaan gee jy HTML wat behoorlik ingekeep, jy kan letterlik net loop deur en wees soos, OK, hier is die HTML. So, dit is die buitenste hoek, of verste links, so wat moet sy eie ding. Dit is op dieselfde indention. So weet ons dat die hoof moet op dieselfde vlak as die liggaam, maar onder HTML. Dit is wat ons hier het. Kop en liggaam is broers en susters, maar hulle is onder HTML. En dan het ons net gaan in elk van hierdie. So kop het die titel, wat het quiz, soos ons hier te sien. En dan in hierdie geval, ons het liggaam, wat hierdie drie lyne. So dit is al broers en susters almal onder die liggaam. OK? So hopelik wanneer jy sien iets soos hierdie, jy soos, Ja, ek het net 'n boom te trek. Dit is nou eers groot. OK. So wou seker maak julle ouens het geweet dat. So waarom nie ons gaan 32 met ons binêre boom? Want as jy 'n binêre verstaan soek boom, dit is regtig nie so sleg nie. So Everett, kan ek erase-- ek bedoel, dit is al online, ook. So as jy enige vrae het. Verloor 'n bietjie ruimte is daar, maar dit is OK. So binêre soek boom is net 'n manier om data te organiseer nie in 'n skikking, waar die wortel is altyd groter as die linkerkant kind en die wortel altyd minder as die regte kind. OK. So ons het hierdie groot soek boom hier. Ons het hierdie getalle, 34, 59, 20, 106, 36, en 52. En ons moet organiseer hulle in so 'n manier sodanig dat die wortel is groter as alles aan die linkerkant en dit is minder as alles op die regterkant. En tipies, wat jy wil doen, is probeer vind iets oor in die middel. Met binêre soek bome, kan jy om te speel 'n bietjie met dit. Maar in hierdie geval, laat ons net aanvaar dat ons weet die eerste een. So 36 is ons eerste een hier. Tipies, sal ek probeer en kies iets oor in die middel wat sal waarskynlik die beste resultate oplewer. So nou weet ons dat alles op hierdie kant moet minder as 36 wees. Maar ook, wat jy kan sien, is dat ons twee kolle hier. So as ons weet wat ons nodig het twee getalle wat minder is as die wortel, dan kan jy net om hierdie en kies die derde nommer. OK. So waarom nie ons begin met hierdie kant? So as ons weet dat alles op hierdie kant moet minder wees as 36-- maar as ons kyk na hierdie een, ons weet dat hierdie getal het tot minder wees as hierdie nommer, reg? Omdat hierdie getal hier is op die regterkant. En onthou, net soos in ons groter boom, alles op die regte moet groter wees as die wortel. Op hierdie manier, ons weet dat alles wat in hierdie behoeftes te wees groter as net die hier. OK? So ons het twee keuses vir hierdie twee borrels. Ons het 32 ​​en 34-- of jammer. 20 en 34. So hoe dink jy ons hierdie kan in? As hierdie een het om te wees groter as hierdie een, dit beteken dat ons wil 20 hier en 34 hier. OK. So in die dieselfde manier, ons kyk by hierdie soort van sub boom. En ons sê, OK, ons het nie 36. Ons het 106, 52, en 59. Reg? In hierdie geval hier, ons weet dat hierdie een behoeftes een ding wat groter is as te hê dit en een ding wat minder as dit. Reg? So as ons dit in orde is, is dit net om weer te vind dat middelste waarde. So ons middelste waarde is 59. So dan sê ons, OK, wat is minder as 59? Wel, dit is 52. En wat is groter as 59? Wel, dit is 106. OK? So dit is net 'n bietjie soos 'n legkaart. Dit help gewoonlik, veral in klein bome soos hierdie, as jy net bestel dit, as jy weet hoeveel is aan die linkerkant en hoeveel is op die reg, dit kan net toelaat om te kies wat moet by jou wortel. En dan kan jy soort van werk van daar af. Mm-hm. 33? Seker nie. OK. So ons wil 'n knoop te skep of 'n binêre soek boom. En laat ons kyk na wat kan wees in dit. En ek dink dit sal eintlik ons ​​laaste probleem. Ag. OK. OK. Dit is soos wat ons kan dink as 'n knoop, reg? Ons het 'n paar waarde, en ons weet dat dit sal óf het links en regs kinders. Binêre soek tree-- dit beteken dat dit, op die meeste, twee kinders. OK? Kom ons dink oor die manier waarop ons 'n geskakelde lys gedefinieer, reg? Ons het 'n paar int wat verteenwoordig die waarde. Ons het 'n paar muis wat verteenwoordig wat dit gaan na die volgende. Binêre soek boom is baie soortgelyk. Ons het nog 'n bietjie waarde, N, dat ons dit gee, reg? En dan het ek het hierdie baie uitdruklik met die pyle, want hulle is effektief wenke. OK? So n is tipies wat? Dit is 'n bietjie waarde. Wat tipies aanwys ons dit as? 'N int. So ons het 'n paar int n, of int waarde, of wat ook al jy wil om dit te noem. En dan het ons die links kind en die regte kind. Reg? En ons weet dat wat hulle is point-- wat hulle verwys na? Hulle is wys na ander nodes, reg? So hoe sou ons verklaar 'n knoop wyser? GEHOOR: [onhoorbaar]. Spreker 1: MM-hm. En ons gaan te hê twee van hulle, reg? En dan kan ons letterlik nie links vir die linker kind en reg vir die regte kind. Actually-- jammer. Omdat ons struct. So struct is omdat ons nie klaar waarby 'n node nie. So node binne hier. Dit is soort van soos 'n rekursiewe definisie, reg? So wanneer ons binne hierdie definisie, ons het nog nie klaar nie verklaar node as die struktuur, so ons het struct te doen node net om te sê, ja, ons is in werklikheid verwys terug na onsself tik ding. Dat net soos wanneer dit geskep, sal dit goed wees. So hoe groot doen julle dink dit is? Wat is die grootte van hierdie struktuur? 12. Hoekom? Juis. En in die feit dat een van die eerste vrae een Quiz Een is oor groottes, wat is die rede waarom ek gevra. Alle regte. Ons gaan aan die einde, want die DCE sal op my skreeu as ons dit nie doen nie. Maar as julle enige vrae het, natuurlik, e-pos my, laat my weet. Julle gaan dit rock. Ek is super opgewonde. Julle sal gedoen word as van Woensdag, en dan jy kry om te werk aan jou finale projekte, en dit gaan awesome wees. Ek sal volgende wees hier week 4:00-4:30 As jy ouens wil kom haal jou vasvrae. As jy wil hê ek moet 'n paar ander tyd of net 'n ander tyd te koördineer, voel vry om my te laat weet. Anders, hierdie is ons laaste artikel. So was dit 'n groot om te sien ouens. Neem asseblief meer lekkergoed. En voorspoed op jou quiz.