[Muziek] SPEAKER 1: Oké, iedereen. Welkom bij uw laatste sectie met mij. Het is al heel het semester. Ik kan niet geloven dat dit, net als, week 12 of 11, zoiets. Maar omdat het onze laatste sectie, hebben we veel van snoep. En ik ga proberen en prep je net zo goed als ik kan voor uw quiz op woensdag. Dus waarschijnlijk niet de beste manier om, als, end gedeelte met quiz beoordeling. Maar we zullen proberen en maken het leuk. En er is altijd snoep. Dus hopelijk, dat zal het beter te maken. Uw quiz gaat vrij te zijn veel hetzelfde als Quiz Zero. Het gaat om het zijn hetzelfde formaat, dezelfde lengte. Je zult in de kamers verspreid over de campus, omdat er zijn dicht bij 900 van jullie, en we kunnen niet Alle houd je in de kamers als deze. Dus zorg ervoor om te kijken naar alle de Quiz Een documentatie online op cs50.harvard.edu vanavond of morgenavond. Zorg ervoor dat je weet waar je bent gaan, wat je nodig hebt om mee te nemen. Echt, je hoeft alleen maar om jezelf te brengen en een potlood, en je moet wel goed. De vragen zullen zijn vrijwel dezelfde. Er zal waarschijnlijk een paar te zijn meerkeuzevragen, een paar korte antwoord, sommige codering, misschien wat waar / niet waar, bijpassende allerlei dingen. Dus je moet niet te zijn verrast door het formaat. Wat kan verrassend zijn is de lengte, die in de voorgaande jaren, is veel langer. In mijn jaar, heb ik geen enkele vriend dat ik herinner me het beëindigen van de examen. Er waren zoals meerdere lege bladzijden. Dus de lengte kan worden soort desoriënterend omdat in bepaalde jaren heeft veel langer dan quiz One geweest. Ik heb geen idee wat het is zal worden als dit jaar, maar het is iets om in de gaten. Bovendien, de difficulty-- mensen de neiging naar Quiz Een nog veel meer moeilijker dan Quiz Zero. Nogmaals, weet je, als je bent soort van lopen uit het gevoel een beetje ongemakkelijk omdat je niet zo goed doen als je dacht zou je of je het gevoel dat je dat niet deed doen zo goed als u deed op Quiz One, vergeet niet dat er waarschijnlijk een heleboel andere mensen het gevoel op die manier. Ik was zeker een van die mensen. Quiz één, net als, gooide me voor een lus. En mijn vrienden hebben deze grote foto van hen bij JP Licks soort met deze enorme ijscoupes, omdat hij was gelijk, Quiz One, en op zoek als ze in tranen. Dus het is een algemeen gevoel. Het is een zware test, het is een moeilijke quiz. Uiteraard, als je naar buiten komen en je het gevoel dat je het wiegde, geweldig voor je. Maar weet dat je waarschijnlijk niet-- je bent bijna zeker niet alleen als je loopt uit gevoel alsof, eh, waarschijnlijk zou beter zijn geworden. Het is taai. Mm-hm. Publiek: Hoeveel is het waard inzake [onhoorbaar] SPEAKER 1: Het is evenveel waard. Yeah. Maar nogmaals, het is ook gaat worden afdoen dat de rest van de klas doet, hoe uw afdeling doet, hoe heb je de afgelopen tijd verbeterd. Grading is een beetje een zwarte doos. Wat het werkelijke aantal of percentage dat u krijgt is niet per se willen direct gecorreleerd met de graad je gaat krijgen. Er is een heleboel factoren die verder gaan in het. Dus met dat, we gaan gaan door een aantal quiz beoordeling. Ik ga gewoon naar deze run zoals de vorige keer voor jullie. Ik heb alle antwoorden quiz Eén van vorig jaar. Dus als jullie willen trekken dat op uw eigen computers, Als je dit examen hebt genomen voor als je vragen hebt, Ik zat te denken we konden gewoon gaan door een aantal van de moeilijkere degenen op dat. Dus we kunnen erover praten, misschien een beetje meer inzicht in de intuïtie achter een aantal van deze vragen, hoe ze te benaderen. Als goed, net als de vorige keer, Ik heb een 100-slide deck dat heeft in principe alle van de dia's die ik hebben voorbereid op de vorige secties sinds uw laatste quiz-- I hebben dit dek. Dus we kunnen gaan door vrijwel alles dat we hebben gesproken over voorhand dat je misschien willen een beetje meer duidelijkheid over. We konden dat eerst doen. Maar voor de rest, ik ben super blij als soort werk door middel van deze problemen met u. En ik ben hier echt om richten op wat jullie denken zou het meest belangrijk zich te concentreren op zijn. Zoals uiteraard alle dit spul is belangrijk. Vooral als we door Quiz One, Ik kom zeker wijzen op dingen als: oh, dit kan iets zijn je echt wilt weten of je wilt hebben op je spiekbriefje. Ik zal je vertellen dingen zoals we soort doorlopen. Dus op die nota, zijn er dingen dat jullie zouden willen om over te gaan? Ook, als ik het niet hebt het in mijn dek, we kunnen trekken iets op het web, of we kunnen proberen en maak van een voorbeeld van de vlieg. Maar alle concepten die u jongens zijn een beetje wazig op. [? Brian,?] Heb je have-- PUBLIEK: Oh, is het cumulatieve? Zoals, is het spul op Quiz Nul gaat worden op hier? SPEAKER 1: Het is cumulatief, maar het is veel meer van een nadruk op de dingen sinds uw laatste quiz. Zo duidelijk, jullie hebben geleerd over variabelen, en loops, en conditionals. En het is niet net als die ga weg, omdat ze uiteraard inherent alles anders dat we nu hebben geleerd. Er kan een vraag zijn de soorten of er misschien een vraag te zijn op verschillende zoekopdrachten. Of er een paar zou kunnen zijn vragen over misschien iets wat je die te maken hebben met het opstellen van of andere fouten. Maar als je hebt gekeken naar Quiz Eén van vorig jaar, je zult merken dat het sterk gericht op de dingen die zijn gebeurd sinds uw laatste quiz. Waarom is die deur altijd op slot? Het stoort me echt. Want ik probeer altijd om te gaan door het. Dus dat is vrij veel hoe de quiz zal zijn. Zo zijn er concepten die jullie zouden willen om over te gaan? Of we kunnen recht springen in gewoon kijken naar Quiz One van vorig jaar en de soort te gaan door middel van de praktijk vragen daar. We kunnen ook heen en weer schakelen. Dit is niet een eenmalige soort dingen. Nog vragen? Ja. Publiek: Mag ik u vragen een vraag over another-- SPEAKER 1: Nog een? Publiek: Dit is van een ander jaar. SPEAKER 1: Ja. We kunnen nog een jaar ook doen. Publiek: OK. Dus op 2011. SPEAKER 1: 2011. Ooh, dat was het jaar voor mij. Laat me trek deze omhoog. Publiek: Ik denk. SPEAKER 1: Dit aspect verhouding is het gooien van me af. Publiek: 11 en 12. SPEAKER 1: 11 en 12. OK. Nou, hier, waarom niet we dit doen? Je guys-- iedereen gewoon een paar minuten om te kijken door quizzen. En we zullen een lijst samen te stellen. En dan gaan we via hen. Oke? Terwijl ik krijg een bos van dit spul opgezet. OK. Ik ga gewoon schrijven dingen op papier. 2011, 11 en 12? Ik ga gewoon naar deze display te wijzigen. OK. Dat is beter. Dit over. Prima. Iemand anders nog dat ze willen beginnen? Ook vergat te zeggen, als je wilt meer van een bos van mensen praten op je en geef je gewoon een scheur cursus in de laatste zes weken, we lopen een beoordeling sessie van 07:00 tot 08:30 vanavond in Noordwest B103, wat ook gebeurd laatste keer, waar het gaat om aan mij liggen, Hannah, Daven, met Gabe en Rob soort hulp van de zijlijn van gewoon een soort van het gooien van alle de informatie die je misschien wilt hebben op je cheat sheet, slash, weet dat er in het algemeen. PUBLIEK: Dat is ook online, toch? SPEAKER 1: Het is ook online. Dus je kunt ook buiten te blijven van deze Icky weer, ga dan naar uw dorm, en live-streamen als je wilt. Ik weet zeker dat een heleboel people-- Ik weet dat ik zou doen te zijn om dat te doen als ik in uw schoenen. OK. Dus waarom beginnen we niet met-- terwijl je hopelijk guys--, je zoekt door. Zo niet, dan zou ik gewoon gaan werken door verschillende dingen op Quiz Eén van vorig jaar, tenzij u specifieke vragen. We beginnen met deze vraag hier over stacks. Dus doet iedereen herinneren een soort van wat een stapel is? Hoe we de neiging to-- kan iedereen gewoon geven me een algemene beschrijving van een stapel? Een type gegevensstructuur. OK. Dus het is een van de gegevensstructuur hebben we verwachten dat u vertrouwd met-- zijn als stapels, arrays, wachtrijen, enzovoort. Ja. Publiek: Net als First In, Last Out, iets. SPEAKER 1: Het is de eerste plaats in, Last Out. Precies. Dus een stapel precies wat hebben we de neiging om te denken over wanneer we denken van een stapel van dingen. Dus een stapel platen. De eerste plaat die u neer te zetten zal worden aan de onderkant, en het zal de laatste zijn die u verwijderen aan het einde. Omdat ze een stapel liggen. En neemt u de ene uit de bodem, typisch, dingen crashen en breken. Zo stapelt je kunt bedenken net als een stapel platen. Of het voorbeeld dat we altijd willen gebruiken is in de D-hallen, heb je de trays, ze zijn allemaal gestapeld, en neemt u vanaf de top. Dus de laatste in de eerste is uit. OK. Dus in het geval hier, we zien we have-- Ik vraag me af als ik eigenlijk in een klein beetje kunnen zoomen. Dus we hebben deze struct hier. Rechts? Dus je hebt een aantal struct dat heeft sommige int aantallen capaciteit. Dus wat doen we denken dat vertegenwoordigt? Dit is een array met de omvang van de capaciteit. Dus dit is echt vertegenwoordigt onze stack in het algemeen. Onze stack is eigenlijk gewoon een array met enkele set nummer dat is het maximum, dat wil zeggen de capaciteit. En dan hebben we een aantal int size, die zal de omvang van onze stack volgen in de loop van als we het gebruik ervan. OK? In dit geval hier, dat zeggen dat we onze stack is geïnitialiseerd op 0. Dus we hebben een lege stack nu. En dan willen we om te voltooien de uitvoering van de pop zodanig dat de int boven terugkeert. En dan, als het leeg is, is het resultaat negatief 1. OK? Dus ik wil jullie gewoon om na te denken over wat we daar kunnen doen. Wat wellicht een van de eerste dingen die we zouden willen controleren? Er is een groot ding hier. Wanneer het says-- als er ooit een aantal Als verklaring, zoals "Als stapel leeg is," of "Als dit null," of "Als dit is wat" - sorry. Publiek: Schrijf een If statement. SPEAKER 1: Recht. Je kon een If statement te schrijven. En dat is waarschijnlijk een van de eerste dingen die u wilt controleren. OK. Als ze geven je als een soort van hoek case als dit, dat is doorgaans één van de eerste dingen je gaat in de code te controleren. Ook iets erkennen voor de quiz wordt als u een inefficiënte manier om iets te doen, schrijf het op. Omdat we niet sortering u op design, zijn we indeling die u op juistheid te quizzen. Dus zelfs als je weet dat het een super slechte manier om iets te doen, maar het werkt, schrijf het op, OK? Letterlijk, heb ik gezien kids laatste jaar-- als je kijkt naar vorig jaar één, ze zijn als, doen de Mario piramide. En ze letterlijk net gedaan "print, hash, print, hash, hash, print, hash, hash, hash. " Maar het is juist. Het doet wat we het verteld, dus je kunt geen punten opstijgen. Als je naar beneden naar de draad, natuurlijk, je willen een meer elegante oplossing te krijgen, en de meer elegante oplossing zal waarschijnlijk minder code, die je waarschijnlijk betekent hebben een hogere kans op rechts. Maar als je net als, weet je wat, nee, ik heb geen tijd, ik weet dat dit een oplossing, het is niet de beste, schrijf het. En je kunt zelfs schrijven op de kant, ik weet dat dit is verschrikkelijk, maar ik weet dat het werkt. Dus gewoon een heads-up. OK. Zo duidelijk, het eerste wat is dit If statement. Dus wat doen we denken dat dit als verklaring gaat worden? En eigenlijk, laat me geopend tot mijn grote Sublime editor. Ik ga deze code en vervolgens zien jullie wanneer het klaar is. Dus int pop. OK. Dus als we dit int pop void-- zo duidelijk, dit is een functie die in vindt niets en geeft een geheel, toch? Dus het is gewoon gaan praten over Deze stack die we hebben gemaakt. Dus gewoon het vertalen van deze laatste zin, "als stapel leeg is, pop moeten negatief terug 1, "hoe kunnen we dat doen? Dus als wat? Hoe weten we dat de stapel leeg is? Het is gewoon de grootte gelijk is aan 0. Stack.size gelijk is aan 0. Ook ben ik soort van schrijven hier blind. Dus als ik elke typos-- oh, Ook vergat dit te vermelden. Vorige week ben ik het helemaal uitgedokterd wat ons probleem was met JavaScript. Niet voortbouwen I en D. Je moet alleen hoofdletter I en krijg element door Id. En dat was het hele fout. Dus als jullie ga terug en eigenlijk kijk door mijn code, als je gewoon alles maken kleine letters d, "vergeet element op Id," het zal werken. Dus zoals ik beloofd, was ik heel dichtbij. Ik gewoon iets gekapitaliseerd Ik was niet de bedoeling, dat Ik weet zeker dat jullie hadden in je laatste PSET. Dus als onze omvang gelijk is aan 0, wat moeten we dan doen? Publiek: Return negatief 1. SPEAKER 1: Terug negatief 1. Cool. Dus nu wat doen wij? We willen iets knallen. Nu is dit het geval is waar hebben we iets. Onze omvang is groter dan 1 of groter dan 0, toch? We hebben eigenlijk iets daar. Dus wat we willen doen is dat we willen hier terug te keren. We gaan om te zeggen dat we willen naar de top van stapel terug. OK? Dus hoe kunnen we dat doen? Hoe gaan we de top van de stapel terug? Vergeet niet, onze stack is gewoon een array, toch? Het heeft een aantal capaciteit dat we het hebben gegeven. Zoals we dingen hebben gezet on-- of eigenlijk, we gaan naar "push" na dit schrijven. Als de dingen zijn in er-- misschien een beeld zal helpen. Hm, ik hou van grote krijt beter. Dus if-- en je kan gewoon Denk aan dit als onze stack. Dus dit is 0, 1, 2. Ik weet niet waarom mijn boxen worden steeds kleiner. Maar daar. OK. Dus dit is een stack met een capaciteit van 5. En laten we zeggen dat we iets hier en wat hebben we hier. Dus op dit punt, onze grootte is gelijk aan wat? 2. En als we willen pop er iets van af, dat betekent dat we willen krijgen ontdoen van dit recht hier. OK? Dus hoe zouden we deze waarde terug? Publiek: Size minus 1. SPEAKER 1: Recht. Dus minus 1, of u kon grootte minus minus doen. Maar we kunnen niet zomaar doen grootte. Het is van binnen een structuur, toch? Dus stack.struct. of stack.size. Dat is onze index daar. OK? En dan, als we kijken terug naar hier onze structuur, We merken dat aan daadwerkelijk toegang tot de array, we moeten stack.numbers doen om daadwerkelijk toegang te krijgen tot die array. Zodat geeft de bovenkant van de stapel. Maar iets dat-- als jullie kijken bij het antwoord sleutel, dit is alles wat ze geef je. Dus dit is het. Maar ik zou zeggen dat ze miss-- ooh, niet wat ik wilde. Ik zou kunnen zeggen dat ze iets te missen, because-- ja. Publiek: Verminder de grootte. SPEAKER 1: Recht. We moeten onze omvang nu verlagen. Dus wat is lastig over dit is als je eenmaal terug iets, uw functie gaan afslag, toch? Dus wat we kunnen doen is eigenlijk eerst onze verkleinen. En dan kunnen we gewoon stack.size. We kunnen gewoon gebruik maken van stack.size als onze index, konden we niet? Want als stack.size is 2, we verlagen het. En dus is het 1, die is onze werkelijke indice. Zodra we te ontdoen van deze, we eigenlijk maar één ding in ons aanbod. Dus het doet beide. Publiek: [onverstaanbaar]? SPEAKER 1: Nou, in dit geval, We zijn net terug van het element boven die in onze grootte die aan de top. Maar we hebben niets aan het gedaan grootte nadat we verwijderd dat element. Dit is nog niet onze omvang veranderd. Dit doet eigenlijk inherent veranderen onze omvang. Maar om het wat duidelijker te maken, je kon stack.size minus minus doen. Voor mij, het maakt het, ik weet het niet, een beetje meer duidelijk dat-- ah, dat je eigenlijk veranderen de omvang terug te zenden. De andere manier was prima, want je Ruilen en retourneren op hetzelfde moment. Maar dit is gewoon een andere manier om te schrijven het dat ik wilde laten zien jongens. Heeft dat zin? Stapels, denk ik, zijn veel gemakkelijker dan wachtrijen. [Lacht] OK. Hebt u nog specifieke vragen ongeveer 11 en 12, of gewoon-- Publiek: Ik denk dat het de stack. SPEAKER 1: De stack grootte? Publiek: Ja. SPEAKER 1: Gotcha. OK. Ja, je zou kunnen doen in één van deze twee wijzen. OK. Dus nu hebben we de andere. Dit is echt raar, zoals dit niet hebben op mijn scherm. Dus als we hier kijken, nu willen we Voltooiing van de uitvoering van de push, die eigenlijk zet iets gaat en voegt iets in onze wachtrij, of in onze stack. OK? Dus als we merken, we hebben een paar dingen. Wij hebben onze geweldig-- als al het andere, wanneer we een van deze, jullie moeten op zijn minst de helft een punt, omdat alles wat je hoeft te doen is dit omzetten in C. En ze geven je de helft van het. Dus "als een stapel vol is of het negatief is, duw dan moet return false. " OK? Dus we alleen positieve willen integers te zijn op onze stack. Oke? En dit gaat om ofwel terug waar of onwaar. Dus we moeten [onverstaanbaar] Bool. OK. Zo vertalen. Publiek: [onverstaanbaar]. SPEAKER 1: Oh, bedankt. Yeah. Dit is de reden waarom ik heb jullie. Int n. Perfect. Omdat we zetten iets op onze stack. We eigenlijk nodig hebben sommige nummer. OK. Dus gewoon het nemen van die laatste regel dat ze gaven ons, ons soort hoek gevallen wat denk je dat we hier? Uiteraard gaan we een aantal Als hebben. OK. Dus we zeiden, Als onze stack is volledige of als n negatief. Dus waarschijnlijk gemakkelijkst te beginnen met, dus indien n kleiner dan 0 of-- herinner je mooie AND en OR operatoren daar. Hoe zouden we controleren om zien of onze stack vol is? Wat gebeurt? Publiek: Size dezelfde capaciteit. SPEAKER 1: Precies. Perfect. OK. En wat willen we daar doen? Publiek: return false. SPEAKER 1: return false. Perfect. Dus halverwege, toch? Op zijn minst, jullie zal de helft van dit hebben. Dus laten we eens over nadenken. Dus dit is de stack we beginnen. We proberen te zetten een element op hier. We hebben een formaat dat is gelijk aan 2 op dit moment. We hebben een capaciteit die gelijk aan 5. En laten we zeggen dat we hebben wat n dat is gelijk aan 3. Dus we moeten ingang 3 in deze ruimte. En we moeten invoeren het in index 2. Rechts? Dus hoe kunnen we dit doen? Proberen om assign-- we toegang wilt tot ons aanbod. Dus stack.numbers. Maar tegen welke indice zou we willen dat dit zijn? Publiek: [onverstaanbaar]. SPEAKER 1: Ja. Stack.size. En we willen dat gelijke n, toch? Publiek: [onverstaanbaar]. SPEAKER 1: Ik was eigenlijk alleen te kijken naar dat. Ik denk dat dat verkeerd is. Publiek: Wil je niet de ruimte voorbij de huidige grootte? SPEAKER 1: Nou, als we kijken hier, onze omvang op dit punt is 2. We willen het in index 2 te gaan, want dit is de top van onze stack. Dus ik zou zeggen dat het moet stack.size zijn, en dan zou je stack.size verhogen. Heeft iedereen het daarmee eens? Ik denk dat ik het eens met dat. Jullie kunnen argumenteren met mij als je wilt. Of niet te twisten, maar we kunnen dit bespreken. Publiek: [onverstaanbaar]. SPEAKER 1: Mm-hm, is waar het openen omdat nul indexeren. Dus terwijl in het eerste deel, Ik dacht dat ze fout waren, en ze waren eigenlijk gelijk, dit deel, ik denk eigenlijk dat ze fout waren. Ik zou zeggen dat je moet zeker ingang het hier. Ik denk dat we het allemaal eens We hebben een grootte van 2. Dat is precies waar we willen dat onze nieuwe nummer te gaan. Dus stack.numbers op stack.size moet gelijk n. En dan zouden we increment de stack.size. ++. En wat willen we doen? Er is nog een laatste ding dat we moeten doen als we dit met succes geplaatst? Return true. En nu ben je klaar. Dus ik voel me alsof het was het hele minus minus stack.size en stack.size ++ dat messed dingen. Ugh. Ik keep-- Ik heb deze reflexmatige neiging om altijd te raken Controle, S, omdat ik nooit wil een van mijn werk te verliezen. Maar ik denk niet nodig om dat te doen nu. OK. Dus dat was stack. Cool. Is er iets? Hebben jullie vinden elke andere vragen die je zou willen gaan over van de vorige quizzen? Zo niet, dan kunnen we soort beginnen te praten door Quiz Eén van vorig jaar. Ja. Publiek: voor de eerste deel, heb ik niet echt begrijpen hoe u het nummer gewist. Is het niet er nog? SPEAKER 1: Het nummer is er nog steeds. Maar wat er gebeurt is dat omdat je hebt vertelde hij dat de bovenkant van je stack is hier, als je naar iets toe te voegen op de stack, zal het gewoon vervangen. PUBLIEK: Oh, OK. SPEAKER 1: Ja. Dus het is alsof hij vergat en het is er soort dingen ook al is het daar. Publiek: [onverstaanbaar] of iets? SPEAKER 1: No. Omdat we in een array, hoef je niet zorgen te maken about-- Je zult gewoon overschrijven wanneer u het nodig hebt. Prima. Een andere vragen? Zo niet, dan gaan we gewoon gaan om te beginnen door te werken. Yeah. PUBLIEK: Nou, dit is men op de 2013, maar gewoon door de SQL-spullen. SPEAKER 1: SQL? OK. Dus dit is 26 tot 29. Publiek: Ja. SPEAKER 1: OK. Heerlijk. Laten we trekken die omhoog. Oh, kijk. Hebben jullie genieten van de Steve Ballmer praten, door de manier waarop? Het was vrij hilarisch, naar mijn mening. Ik hou van dat elke keer als ik brengen CS50's website tijdens de sectie, het is net als, oh, kijken sectie. En ik heb zoiets van, mm. Publiek: Kunnen we het doen? SPEAKER 1: We doen het op het einde. Hoe is dat? Omdat ik weet dat jullie altijd al wilde. Dus doen we het op het einde. Eén vragen. Publiek: [onverstaanbaar]. SPEAKER 1: Het zal een meta-sectie zijn. Publiek: Het is als 5 seconden. Publiek: Echt waar? Publiek: Het is als 20 seconden. [Tussenplaatsen VOICES] [Lachen] SPEAKER 1: I like that je al hebt gedaan het, dat is wat maakt me gelukkiger. OK. 26. OK. Eigenlijk zijn we gewoon gaan spiegel nu dit, want ik kan het niet. Dit is vervelend. OK. Nu kan ik alles zien. Heerlijk. OK. Zo duidelijk, moet dit terug te brengen mooie herinneringen uit [? CSG?] Financiën. De helft van je over hebt uwe nu ingedeeld. De andere helft zal ik krijgen heel, heel snel, ik beloof het. Dus hebben we een aantal SQL-tabel dat is Accounts hier. Waarschijnlijk Soortgelijke gebruikerstabellen uw guys '. En we hebben een aantal nummer dat was een primaire sleutel en vormt een 12-cijferig rekeningnummer. En balans is hoeveel geld ze hebben. En de standaard waarde is 100. En ze geven ze $ 100 elk keer dat ze een rekening openen. Ik wou dat mijn bank deed dat. OK. Dus we willen het schema voltooien door specificeren naast het nummer in balans de juiste SQL-type. Dus wat doen jullie denken zou zijn net zoiets als je reflexmatige reactie voor types voor deze twee? Publiek: Int. SPEAKER 1: Een int. OK. En dan voor een evenwicht? Decimaal. OK. Dus rechts decimale's. Int is dichtbij. Kind van het grote ding is dit onderstreepte 12-cijferig rekeningnummer. Wanneer we iets dat is groter dan acht cijfers, ze willen dat je big gebruiken int, waarvan ik denk dat is-- Publiek: Is dat gewoon SQL? SPEAKER 1: Het is de enige keer dat ik heb gehoord van het is SQL-- als het gebruiken van een groot int. Het is gewoon een op te geven beetje meer precisie, Zo bent u niet overvolle soort ding. In alle eerlijkheid, ik denk dat dit is zeker een van degenen waar is het net, oh, het is bedoeld voor mensen die wat meer kennis van SQL. We hebben nooit gesproken over grote ints in uw PSET. Dus het is een beetje zoals ik ben er vrij zeker als je int, het was half krediet. En zoals ik al eerder zei, er gaan op enkele vragen die gewoon zijn te bedoeld om u te struikelen, zodat dat niet iedereen krijgt 100. Omdat er natuurlijk zijn sommige mensen in CS50 wie zijn dit voor als het doen van acht jaar, en je bent zoals, wat ben je aan het doen? Maar ja. Decimaal naar evenwicht was de voor de hand liggende. En dan groot int voor het aantal alleen maar omdat van dat, als, onderstreepte 12-cijferig. Telkens als er iets is in het vet of het is onderstreept, zoals, aandacht besteden aan het. We zijn niet te doen dat alleen maar omdat. OK. Zo "veronderstellen dat de bank oplegt een $ 20 maandelijkse vergoeding voor alle accounts. Met welke vraag kon de bank aftrekken $ 20 van elke rekening zelfs indien deze voortvloeit uit een aantal negatieve saldi? " Dus laten we beginnen simpel. We hebben vier belangrijkste commando's voor SQL, welke? Doen jullie herinneren de vier groten dat ik je verteld? UPDATE, DELETE, SELECT, en plaats. Perfect. Ik snap het. Dus wat doen we denken macht zijn het meest geschikt voor deze? We zijn-- UPDATE. Precies. Dus UPDATE, want we zijn op zoek op rekeningen die al bestaan. Dus niet vergeten onze algemene soort dingen is updaten. En wat komt er na UPDATE? We hebben een aantal tafel dat we verwijzen. Dus als ik trek Sublime again-- UPDATE. Dus dit is een algemeen model. Dus hebben we UPDATE tafel. En wat is dan het volgende wat we hebben? Je kunt doen WAAR. En dan hebben we een aantal qualifier hier. En dan wat hebben we nu? We hebben een aantal SET-- iets gelijk iets. Blah blah gelijk. Bijgewerkt blah. Rechts? Dus dat is net als de algemene idee voor sommige updaten. OK? Dus laten we beginnen met het vullen van deze aan bij wat het zou moeten zijn. Dus wat tafel hebben we het over? Accounts. En in dit geval, wat is echt cool is hebben we het over specifieke gebruikers binnen onze rekening, of hebben we het over alle gebruikers? We hebben het over alle gebruikers. Dus in dat geval kunnen we net Dit WAAR qualifier verwijderen. De WAAR is alleen wanneer je wilt te beperken wat je het veranderen bent. Als u wilt de hele veranderen tabel kan je gewoon laten vallen dat. OK. Dus nu zijn we bij onze SET deel. Wat willen we veranderen? Publiek: Balance. SPEAKER 1: Saldo. En we gaan to-- hoe zijn we gaan om de balans te veranderen? We hebben een $ 20 vergoeding, toch? Minus 20. En ze zeiden dat het is OK als we hebben een negatief saldo. Dus in dit geval, hoeft u niet om verder te foutcontrole doen. OK? Dat is letterlijk alles wat je hoeft te doen. Cool? OK. Dus laten we gaan door de volgende. "Met wat SQL-query kan de bank halen de rekeningnummers van zijn rijkste klanten balanceert meer dan $ 1000? " Als uw bank en uw rijkste klanten zijn slechts degenen met meer dan $ 1.000, Ik heb het gevoel alsof je iets verkeerd doet. Zoals, hoe werkt een bank overleven op dat? Zoals, dat de belangstelling, niet genoeg. OK. Met dit soort dingen, wat te doen je denkt, van onze vier functies, denk je dat we gaan gebruiken? SELECT. Perfect. SELECT. OK. Dus we selecteren van een aantal id FROM tabel. En dan WHERE conditie. Dus als we door deze, ik ben gewoon gaan aan jullie geven een algemene opfriscursus de algemene vorm van elk van deze. Dus we kiezen van een soort van [? ding. ?] In dit geval, dit gaat worden typisch enige kolom. Dus in ons geval, we hebben nummer, evenwicht. In het geval dat uw guys ', misschien het was id, naam, wachtwoord. Elk van de kolommen, dat typisch wat we selecteren. Dus hier deze zaak, die soort kolom, wat identificatie we trekken uit onze tafel? Wat doet het ons vraagt? Het vraagt ​​ons voor onze nummers, toch? De rekeningnummers. Dus vergeet niet, gewoon nummer in dit geval. Als jullie ooit de fout had, dat fel oranje doos zou komen. En het was, onverwacht rij in, als, wat dan ook. Dat komt omdat je geroepen uw tafel verkeerd, toch? Dus zorg ervoor dat u bent kunnen aanroepen van de kolom. Dus van tafel, onze tafel is genoemd accounts. Nogmaals, zorg ervoor dat je bent verwijzen naar uw tafel correct. En wat is dan onze toestand hier? Wat zoeken wij? We willen dat onze rijke mensen. Ja. Dus saldo groter dan 1.000. Daar ga je. Dat is uw zoekopdracht. Niet al te slecht, toch? OK. Dus nu voor onze laatste. Met dat, we breezing door. OK. Dus nu "met welke vraag zou kunnen de bank dicht, dat wil zeggen, verwijderen "- hou niet van je hoe ze gaf je net DELETE-- "Elke rekening die een vermogen van 0 heeft?" Ik denk dat we er allemaal over eens dat we waarschijnlijk gaat worden met behulp DELETE. Ik ben van harte welkom om het even welke te nemen discussie rond dat. Maar ik denk dat het redelijk veilig om te zeggen dat we konden gebruiken DELETE. Dus we gaan om wat DELETE gebruikers van tafel, WHERE conditie. Dus hetzelfde soort dingen als SELECT. Dus in dit case-- oh, sorry. Ik moet DELETE FROM. Omdat DELETE wil het hele vak schrappen. Dus we hoeven niet te praten over welke specifieke dingen over een gebruiker zijn we wissen. Als we een gebruiker te verwijderen, we zijn het verwijderen van alles over hen. Dus in dit geval, moeten we gewoon om in onze WHERE en onze conditie te vullen. Dus onze tafel is gewoon onze rekeningen tafel, zoals we hebben gedaan. En wat is dan onze toestand hier? Publiek: Balance. SPEAKER 1: Saldo gelijk is aan 0. Correct. Alles is goed. Ja. Publiek: [onverstaanbaar]. SPEAKER 1: Dus DELETE inherent wist alles. Dus terwijl bij SELECT, SELECT neemt in bepaalde kolommen die u wilt terug. Als je wilde alles over een gebruiker terug, je ster te gebruiken. Star zegt, terug naar mij alles van deze gebruiker. Of als je WHERE ster, dat betekent geef me alles. Maar DELETE heeft inherent dat. Dus als je zegt, DELETE uit rekeningen waar balans gelijk is aan 0, het gaat om door te gaan. En overal waar dat evenwicht is gelijk is aan 0, is het inherent doet dat. Het zal alles te wissen. De ster is meer voor-- met SELECT of UPDATE, het is praten meer over de individuele velden overeenkomt met een gebruiker. Dus als je SELECT ster vanaf table WHERE ID gelijk aan 1, die terugkeert naar je alles over de gebruiker met ID 1. Als je om SELECT nummer doen of SELECT ID komma naam van gebruikers WHERE id is gelijk aan 1, dat net terug van hun nummer of hun ID en hun naam. OK? Dus gebruiken we ster in dat geval aan geven ons alles over een gebruiker. En DELETE inherent doet dat. Het is niet alleen de ID verwijderen, of gewoon de naam, of wat dan ook. Ja, nee. Het verwijdert gewoon het hele gebruiker. We hoeven dus geen zorgen te maken over de ster daar. Als je wilde verwijderen alles, zou je dat doen, en dit zal gewoon alles laten vallen. Maar meestal, je willen niet om dat te doen. Maar als je ooit wilt verwijderen alles, zou je dat doen. OK. Hebben jullie vinden nog andere vragen? Ja. Publiek: Kun je 26? SPEAKER 1: 26 hebben we net gedaan. PUBLIEK: Oh, 25, sorry. SPEAKER 1: 25. OK. 25. Oh. Ze JavaScript doen. Oh, ik kan het niet geloven. Ik ga puinhoop ons weer op, jongens. OK. We kregen dit. We gaan om dit werk te maken. Ah, jQuery. Fun. OK. Dus we gaan het voltooien uitvoering van de webpagina zodanig dat indien zij bezoeken, inbreng van hun naam, en verzend het formulier, ze hebben deze grote alert venster dat zal verschijnen. Dus alles met waarschuwingen, weten we dat we gaan te hebben om JavaScript te gebruiken. Yay, JavaScript. En als ze niet aan het invoeren van een noemen voordat u het formulier, geen waarschuwing moet verschijnen. Dus je kunt jQuery gebruiken, maar je hoeft niet om. Dus ik ga om u te laten jongens werk Op dit slechts voor een paar minuten. Denk er over na. En dan zullen we het coderen. Slash Ik ga proberen en denk aan de beste manier om dit antwoord uitleggen. Prima. We krijgen het op te zetten. OK. Dus we gaan gewoon te lopen door deze, omdat ik weet jQuery is een beetje verwarrend. JavaScript. Het is een beetje er uit. Dus wat we gaan doen is [Onverstaanbaar] daadwerkelijk opgelost Dit probleem met jQuery. Dus als je nog, jQuery is gewoon een bibliotheek Dat is gewoon gebouwd op de top van JavaScript. Het is bedoeld om uw het leven een beetje makkelijker. Ik zou zeker, indien je tijd hebt, kijk dan een beetje van de documentatie voor jQuery. Maar het is zeer vergelijkbaar met JavaScript. Het heeft gelijkaardige paradigma, waar u Gebruik deze dot operator om functies aan te roepen op objecten die je hebt. Dus wat we hier hebben is voor jQuery, je moet altijd dit soort van de wikkel, waarvan de $ (Document) .ready (function) functie haakjes in. OK. Dus dit kan iets zijn je wil op je spiekbriefje. Omdat op zijn minst, kunt u hebben de wrapper voor uw jQuery. En het zal in ieder geval je wegen scheiden daar. Dus op dezelfde manier we sprak veel over JavaScript, en we zouden beginnen door te kijken op wat we proberen te bewerken of wat we proberen te veranderen. En dat zou typisch zijn de eerste dat we in zou zetten. Dus in dit geval, als we terug gaan naar deze hier en we kijken naar ons formulier hier, we hebben deze ingangen, rechts, dit id van de ingangen. En we weten dat op basis Op onze vraag, we zijn ofwel gaan gooien Een fout als dit leeg is, of we gaan zetten dit in een waarschuwing, toch? Dus waarschijnlijk veilig om te zeggen dat we zal te maken hebben met ingangen hier. jQuery is zeer vergelijkbaar in dat als we denk terug aan CSS, iets met een ID we kijken naar met een hekje. Alles met klasse wij keek met een punt, toch? Dus net even wat we hebben het over is ingangen. We zagen dat de ingangen is een ID binnen ons formulier. Dus we gaan om te verwijzen naar het als zodanig. Inputs. OK? Dus bij twijfel, zelfs als je niets hebt, als je echt zeker weet hoe u benaderen dit, A, hebben deze wrapper. Dus begin daar met de wrapper voor jQuery. B, zorg ervoor dat je weet wat je aan het veranderen. En bij twijfel, zet dat in iets, en doe dot, wat je denkt je zou moeten doen met het. Publiek: Wat is de wrapper? SPEAKER 1: De wrapper is dit de eerste lijn. Dus dit zegt, wachten tot mijn document klaar is. Dan beginnen knoeien met dingen. OK? Dus we weten dat we knoeien met ingangen. Dus we zijn als, OK, ingangen is ons formulier. Dat is onze ID. Dus dat is wat we zijn gaat op zoek naar. En we willen zien wat er gebeurt wanneer dit formulier wordt ingediend, toch? Dus als we misschien denken, we hebben een aantal .submit. Dus .submit gewoon zegt, OK, dit formulier dat we hebben verwezen met hash-ingangen, wanneer het wordt ingediend, voeren iets anders. Dus we gaan naar een functie hebben. Merken we anonieme functies hier. We hebben een anonieme functie hier. Ja. Publiek: Zal ​​het altijd .submit, of is het alleen maar omdat in de HTML, We maakten het type knop Verzenden? SPEAKER 1: Er zij .submit omdat het is een vorm die wij indienen. Omdat deze .submit niet noodzakelijkerwijs overeen met hetgeen de knop is zoals bellen. Maar het feit dat het een vormen dat we indienen. OK. Zo merkt anonieme functie hier dat says-- Publiek: Ik heb niet echt begrijpen anonieme functies. SPEAKER 1: Dus anoniem functies, ze zijn gewoon functies die geen naam hebben. Dus in plaats van een aantal belangrijke functie dat calls-- we kunnen zeggen, Als document klaar, dan zouden we ingangen noemen. En dan, als ingediend, call-- als, Als dat zo-en-zo is ingediend, we zouden een andere functie aan te roepen. Een anonieme functie gewoon geen naam hebben, en het zal alleen maar uit te voeren in dit soort dingen. Dus in dit geval, wat dit zegt is, wanneer onze document klaar is, deze functie uit te voeren. Deze functie bestaat van alles binnen hier. En dan de volgende laag in is, OK, wanneer ingangen wordt ingediend, voeren dit. Het is gewoon een manier van aanduidende wat moet worden uitgevoerd wanneer. Het is letterlijk een functie dat niet doet hebben een naam, zodat ze de neiging om genest in elkaar, want je kunt ze niet bij name noemen. OK? Letterlijk, een anonieme functie is slechts een functie zonder naam. Dat is het. Gewoon een manier om te kapselen verschillende dingen die we willen uitvoeren op specifieke tijden. Publiek: [onverstaanbaar]. SPEAKER 1: De vent? Waar? Publiek: In de haakjes achter de functie? SPEAKER 1: Na functies. Welke? Publiek: Beide. Als je, als, gebeurtenis of indien je zet een argument daar, zou het verkeerd? SPEAKER 1: In dit geval, denk ik je zou een argument in daar te zetten. Maar omdat we niet een nodig argument, er mag niet worden. Zoals, het is het geheel, als, moet u alleen hebben dingen die noodzakelijk soort dingen. Op dezelfde manier dat als we hadden functie die int main void-- heeft als, met int main leegte, je kon int arg v doen, wat dan ook. Maar als je het niet nodig hebt die u moeten ze niet in daar. Hetzelfde. Emma, ​​heb je een vraag? OK. Cool. OK. Dus wat we tot nu toe is bij ons document klaar is, voert dit. Nu zijn we op zoek naar wanneer het wordt ingediend. Dus nu hebben we eigenlijk een soort van het vlees van onze zaak. Dus moeten we de waarde te krijgen dat de gebruiker ingediend, of dat nu een naam zijn of leeg. En dan moeten we ofwel terugkeer Deze waarschuwing of gooi een fout. Hoe dan ook. Dus hoe kunnen we verklaren een variabele in JavaScript? Var. Dus laten we zeggen, var naam equals-- of eigenlijk, zullen we doen waarde omdat ik denk dat het de naam. OK. Dus we hebben een aantal waarde hier dat we willen trekken uit onze ingangen formulier. Dus op dezelfde manier we soort deden ingangen, kan iemand mij vertellen wat we kunnen bellen binnen hier als we wilden krijgen de naam van het formulier? En als we kijken terug op ons formulier hier, We merken dat we hebben een ID van de naam. Publiek: [onverstaanbaar]. SPEAKER 1: Je hoeft niet te denken aan het als een array. U hoeft geen zorgen te maken over dat. Dus we hebben slechts enkele naam. En dan, omdat JavaScript en dingen zijn raar, kunnen we niet gewoon doen "naam." We hebben eigenlijk te bellen een functie die ons geeft, als, de waarde van die identifier. OK? Dus dat is gewoon .val. Publiek: [onverstaanbaar]. SPEAKER 1: OK. Dus met JavaScript, dit soort ding hier gaat gewoon door. En je kon bedenken dit as-- het is zoals bijna een getElementById, waar getElementById zou eigenlijk terug de volledige ding om u. De $ ("# naam") is net als, OK, ik heb het, ik kan het openen, maar als je echt wilt dat het om de waarde terug te je-- Publiek: Is het als een pointer? SPEAKER 1: Het is net zoiets als een pointer. Je zou kunnen denken dat het als als een soort van pointer. Zoals, het zegt, OK, ik weet hoe er te komen, maar om daadwerkelijk te krijgen van de waarde van het, moet u expliciet om vragen. En helaas, natuurlijk, we doen niet doen te veel met JavaScript en jQuery. Dus het gaat om naar beneden te komen hoeveel je guys-- wat je weet toevallig, wat je toevallig hebt gezien, en wat u kunt soort logisch gissen. Omdat sommige van deze dingen, u kon waarschijnlijk halverwege. Maar om het helemaal goed te krijgen, Ik denk dat dit probleem waarschijnlijk had een van de laagste scores. PUBLIEK: Zoals, bijvoorbeeld, voor [onverstaanbaar] ingangen, waarom ga je niet hoeft te val daar te zetten? SPEAKER 1: Voor deze? Publiek: Ja. SPEAKER 1: Ja. Omdat dit soort van willen, zoals we al zeiden, wat wijzer, en dit is mij refereren het en eigenlijk om ons de waarde. Publiek: Overwegende dat [onverstaanbaar]? SPEAKER 1: Voor ingangen, ingangen is gewoon some-- het is alsof we gewoon kijken als geheel, en dit .submit vertelt ons wat we moeten weten. jQuery en JavaScript is raar. Ik weet. Ik weet het, jongens. Ik weet. Er is een reden waarom ik niet doe web programmeren. Grapje. Ik heb niet genoeg blootstelling aan het. Publiek: [onverstaanbaar] CSS. [Lachen] SPEAKER 1: OK, dat is CSS. CSS is enkel, als, dingen maken mooie, het is niet zo laten we omgaan met gegevens. Er is een verschil daar. OK. Dus nu hopelijk, dit part-- ook, voor een probleem als dit, waar je misschien niet weet de syntaxis, je zou kunnen worden als, OK, je kan wel wat var waarde hebben en zijn als, neem ik aan kreeg de waarde correct. En dan zou je waarschijnlijk schrijf dit volgende deel. Het volgende deel zal waarschijnlijk lijken veel meer gemakkelijk, of het zou logisch maken zin om jullie. Overwegende dat wat we tot nu toe heb geschreven, Ik weet dat ik zou zijn, umm, ja, Ik weet niet dat op de quiz. U kunt volledig schrijven psuedocode en dan breken in real-code wanneer u-- het is net zoiets als wiskunde. Als je ooit hebt gehad een aantal meerdelige probleem waarbij je weet niet hoe te voorbij de eerste stap, maar al het andere gebaseerd op die eerste stap, je gewoon zeggen, als, neem x gelijk is aan 4. En dan moet je lopen mee, toch? U kunt hetzelfde doen met de code. Dus je zou kunnen zeggen, veronderstellen Ik kreeg de waarde rechts. Doe dan hier het volgende deel. Omdat dit deel eigenlijk moet vrij logisch zijn. Dus we moeten controleren als onze waarde leeg is. Of als het een naam, eigenlijk geven een waarschuwing. Dus wat zouden we willen controleren? We willen wat Indien hebben. Wat denk je dat onze Als gaat worden? We moeten controleren om te zien of de waarde is-- als het niet een lege string. Perfect. Precies. OK. Dus als dat het geval is, wat willen we doen? We willen een aantal alert te gooien, toch? Dus het is gewoon alert. En dan wat we willen binnen. Dus wat zijn we verondersteld te hebben in onze alert? Publiek: "Hallo." SPEAKER 1: Komma. En dan doen jullie herinneren hoe samenvoegen? Publiek: Plus. SPEAKER 1: Plus. Dus we willen plus hebben. En dan nog een plus moeten we voor onze uitroepteken. Cool. OK. Zo niet, wat zouden we willen doen? We willen niet om iets te doen, toch? Dus we hebben net weer vals. Niet wat ik wil doen. OK. En dan deze, van course-- wat belangrijk is is om te onthouden om te sluiten uw anonieme functies. Dus als u merkt, hebben we een aantal functie hier die hier eindigt. Dus moeten we deze sluiten eerste en voeg een puntkomma. En dan is dit één hier te doen met deze anonieme functie, dus sluiten we het daar. Dat reflexmatige reactie van besparing. Ja. Publiek: Is er een reden dat-- alleen in alle voorbeelden in JavaScript die ik heb gezien, hebben we de eerste accolades op dezelfde lijn als de functie? SPEAKER 1: Dat is stilistische. Yeah. En eigenlijk, als je 61 nemen, we doen al onze accolades die manier. Huh? Publiek: Als we dat doen, dat op de PSET, is dat slecht voor stijl? SPEAKER 1: No. We hebben expliciet verteld jullie om dit te doen. Maar eigenlijk is dit soort van de dominerende conventie in veel klassen C en JavaScript en jQuery. Zo duidelijk, ik ben sure-- en eigenlijk, als ik werden voor dit probleem volledig doen blind zonder dat er naar keek, er waarschijnlijk heel weinig manieren waarop ik zou dit hebben gekregen. Ik zou als, OK zijn geweest, misschien heb ik nodig hebt om iets dat is een ingang te grijpen. En ik denk dat het hebben van de kennis die, als, OK, als ik iets wil krijgen uit een vorm die een ID heeft, Ik verwijs naar het op deze manier Ik zou waarschijnlijk te krijgen dat. Ik zou dit te krijgen. Maar echt, het enige dat ik denk Ik zou het echt is dit recht hier. Dus het is een soort van belang om weet het, net als bij elke moeilijke test, je soort kies je gevechten, toch? Als je weet dat je niet gaat krijgen dat eerste deel voor jQuery, zoals ik al zei, gaan ervan uit dat u deze waarde en doen wat je kunt ermee. En als je tijd hebt, ga terug en proberen en in de stukken te vullen. Maar laat je niet een vraag als dit echt veen je neer. Want wat? Dit was een vraag over jQuery uit het hele examen. Dus ja, het zou geweldig zijn als je het hebt. Publiek: [onverstaanbaar] u zijn welkom om jQuery te gebruiken. SPEAKER 1: Je bent welkom om jQuery te gebruiken. Publiek: OK. [Onverstaanbaar]. SPEAKER 1: Hoe zou je het niet gebruiken? Ik zou moeten kijken al mijn JavaScript. Het is eigenlijk veel makkelijker, Ik denk dat, om jQuery te gebruiken, omdat jQuery daadwerkelijk vermindert de hoeveelheid JavaScript waarschijnlijk schrijf je door, als, de helft. Dus onze code zou waarschijnlijk twee keer zo lang, zonder dat. Dus als je de grootste recognize-- ding om mee te nemen van dit probleem zijn de patronen. Als je toegang hebt tot iets van een formulier, je gaat citaten, hash gebruiken, wat je probeert te bereiken. Indien het wordt ingediend, je wilt om iets als een .submit gebruiken. Je bent waarschijnlijk gaan gebruiken een anonieme functie in. Als je eigenlijk de waarde van nodig iets, je gaat om offertes te doen, hash, wat dat veld, .val. En het herkennen van patronen als dat gaat veel nuttiger dan zijn echt te weten de Nitty Gritty. Ja. Publiek: Dus als de gebruiker zijn naam indient en het loopt door die verklaring, zal het naar beneden gaan en return false na dit? SPEAKER 1: Nee, want de waarschuwing, kunt u denken aan het als een terugkeer. Yeah. Dus het zal verlaten. Yeah. Publiek: Kunt u [? plaatsen?] de haakjes van indienen, haakjes, iets? SPEAKER 1: Ik heb, geloof ik. Deze is gesloten hier. En dan krijgt hij hier gesloten. PUBLIEK: Oh, daar. Prima. SPEAKER 1: Uiteraard, weinig, weinig syntactische dingen als dat, we zullen waarschijnlijk gewoon cirkel het en zijn als, vergeet niet uw haakjes. Maar ja. OK. Hebben we nog een dat we zouden willen doen? Hebben jullie krijgen de binaire boom één? Willen we gaan over die ene? Ik voel me als binaire bomen en de overzeese departementen moeten zijn punten dat jullie krijgen vrij gemakkelijk. Ik zou niet willen punten op die verliezen. OK. Laten we dit doen DOM hier. Ik wou dat ik had mijn Surface dus ik kon gewoon tekenen op het scherm. Dat is wat ik gebruikt om vorig jaar te doen. OK. Dus zoals ik al zei, we praatten over DOM, Document Object Model. Ze zijn waarschijnlijk gaan om u te geven sommige beetje fragment als dit en u vragen om een ​​boom te creëren voor. En dit gewoon allemaal te maken heeft met loopt door de labels. Dus laten we proberen en doen dit. Ook, zoals gewoonlijk, als jullie doen deze quizzen, zoals ik zeer raden u doen als de praktijk, een van hen dat je net als, Ik weet echt niet wat er hier aan de hand, gewoon, natuurlijk, Stuur me een e-mail met een vraag, en ik zal zo goed als ik kan uitleggen. OK. We hebben een aantal documenten, en we hebben van HTML. OK. Dus dan zijn we gewoon te analyseren de tags die hier, toch? Dus wat doen we zien comes-- wat zijn de twee onderverdelingen onder HTML? Vooral omdat ze goed ingesprongen? Hoofd en lichaam. Ah. Hoofd en lichaam. Heerlijk. Dus dan laten we beginnen hier met het hoofd. Wat er onder het hoofd? Wat is onze volgende tag? Titel. En vervolgens binnen de titel, quiz. OK. Dus letterlijk, het is gewoon wandelen door de labels, OK? Dus dan als we lichaam, als we door, lichaam heeft drie dingen binnen het, toch? Het heeft drie divs. Elke div krijgt zijn eigen doosje. En wat zit er in de eerste div? [Onverstaanbaar] En dan de volgende is midden, die ik ga gewoon korten. En dan de laatste is beneden. Dus echt, het is gewoon door te lopen. En omdat we gaan geven je HTML die goed is ingesprongen, je kunt letterlijk gewoon doorlopen en zijn als, OK, hier is de HTML. Dus dit is de buitenste corner of uiterst links, dus dat moet zijn eigen ding. Deze zijn op dezelfde inspringing. Dus we weten dat het hoofd moet op hetzelfde niveau als orgaan, maar daaronder HTML. Het is wat we hier hebben. Hoofd en lichaam zijn broers en zussen, maar ze zijn onder HTML. En dan gaan we gewoon gaan in elk van deze. Dus kop heeft titel, die heeft quiz, zoals we hier zien. En in dit geval hebben we lichaam, dat deze drie lijnen heeft. Dus dit zijn allemaal broers en zussen allemaal onder het lichaam. OK? Dus hopelijk als je ziet zoiets als dit, je bent zoals, ja, ik krijg alleen maar om een ​​boom te tekenen. Het zal geweldig zijn. OK. Dus wilden ervoor zorgen jullie wisten dat. Dus waarom gaan we niet naar 32 met onze binaire boom? Want als je eenmaal een binair begrijpen zoekboom, het is echt niet zo slecht. Dus Everett, kan ik erase-- ik bedoel, het zijn allemaal online, ook. Dus als je vragen hebt. Verloor een beetje ruimte is er, maar het is OK. Dus binaire zoekboom is gewoon een manier om gegevens te ordenen niet in een array, waarbij de wortel is altijd groter dan de linker kind en de wortel is altijd kleiner dan de rechter kind. OK. Dus we hebben deze grote zoekboom hier. We hebben deze nummers, 34, 59, 20, 106, 36 en 52. En we moeten organiseren ze zodanig zodanig dat de wortel groter dan alles aan de linkerkant en het is minder dan alles rechts. En meestal, wat je wilt doen is proberen te vinden iets over in het midden. Met binaire zoekbomen, moet u mogelijk om te spelen rond een klein beetje mee. Maar in dit geval, laten we gewoon veronderstellen dat we deze eerste kennen. Dus 36 is onze eerste hier. Typisch, zou ik proberen en kies iets ongeveer in het midden, dat zult Waarschijnlijk de beste resultaten op. Dus nu weten we dat alles op deze kant moet minder dan 36 zijn. Maar ook, wat je kon zien is dat we twee plekken hier. Dus als we weten dat we twee nodig getallen minder dan de wortel zijn, dan kon je gewoon deze bestellen en kies het derde nummer. OK. Dus waarom beginnen we niet met deze kant? Dus als we weten dat alles op deze kant moet minder zijn dan 36-- maar als we kijken naar deze, weten we dat dit aantal moet minder zijn dan dit aantal, toch? Omdat dit getal hier is aan de rechterkant. En vergeet niet, net als in onze grotere boom, alles op de juiste moet groter zijn dan de wortel. Op deze manier weten we dat wat er in deze behoeften groter dan wat is hier. OK? Dus we hebben twee keuzes voor deze twee belletjes. We hebben 32 en 34-- of spijt. 20 en 34. Dus hoe denk je dat we deze kunnen zetten in? Indien men moet groter dan deze, dat betekent dat we willen hebben 20 hier en 34 hier. OK. Dus op dezelfde manier, we kijken bij dit soort sub boom. En we zeggen, OK, we hebben geen 36. We hebben 106, 52 en 59. Rechts? In dit geval, we weten dat dit één behoeften een ding dat is groter dan hebben het en een ding dat is minder dan dat. Rechts? Dus als we deze in orde, het is gewoon over weer vinden dat middelste waarde. Dus onze middelste waarde is 59. Dus dan zeggen we, OK, wat is minder dan 59? Nou, dat is 52. En wat is groter dan 59? Nou, dat is 106. OK? Dus het is gewoon een beetje als een puzzel. Het helpt typisch name in kleine bomen zoals deze, als je gewoon bestellen, als je weten hoeveel er links en hoeveel er op de Goed, dat kan gewoon toestaan ​​om wat te kiezen moet op je root. En dan kun je soort van werken vanaf daar. Mm-hm. 33? Tuurlijk. OK. Dus we willen een knooppunt te maken of een binaire zoekboom. En laten we eens kijken naar wat er zou kunnen zijn in het. En ik denk dat dit zal onze laatste probleem eigenlijk. Ah. OK. OK. Dit is hetzelfde als wat we kunnen denken als een knooppunt, toch? We hebben een aantal waarde, en we weet dat het vormt hebben recht kinderen vertrokken en. Binary search tree-- dat middel dat het ten hoogste twee kinderen. OK? Laten we eens nadenken over de manier waarop we definieerde een gelinkte lijst, toch? We hadden wat int dat vertegenwoordigde de waarde. We hadden een aantal pointer die vertegenwoordigd wat het zou gaan volgende. Binaire zoekboom is zeer vergelijkbaar. We hebben nog wat waarde, n, dat wij u geven, toch? En dan trok ik deze zeer expliciet met pijlen, omdat ze effectief pointers. OK? Dus n is typisch wat? Het is een bepaalde waarde. Wat doen we wijzen het meestal zo? Een int. Dus we hebben een aantal int n, of int waarde, of hoe je het wilt noemen. En dan hebben we het linker kind en het recht kind. Rechts? En we weten dat wat ze point-- wat zijn ze te wijzen op? Ze wijst naar andere knooppunten, toch? Dus hoe zouden we verklaren een knooppunt pointer? Publiek: [onverstaanbaar]. SPEAKER 1: Mm-hm. En we gaan hebben twee van deze, toch? En dan kunnen we letterlijk heb gelaten voor het linker kind en rechts voor de juiste kind. Actually-- sorry. Omdat we struct nodig. Dus struct is, want we hebben niet afgewerkt verklaren nog een knooppunt. Dus knoop is binnen hier. Het is als een soort van recursieve definitie, toch? Dus toen we binnen deze definitie, we nog niet klaar te verklaren knoop van constructie, dus we moeten struct doen knooppunt alleen maar zeggen, ja, we zijn in feite verwijzen terug naar onszelf te typen ding. Dat net als het eenmaal gemaakt, zal het wel goed. Dus hoe groot doen jullie denken dit is? Wat is de omvang van deze structuur? 12. Waarom? Precies. En in feite één van de eerste vragen één Quiz Eén is over maten, dat is waarom ik vroeg. Prima. We gaan naar het einde, omdat de DCE zal schreeuwen tegen me als we dat niet doen. Maar als jullie nog vragen hebben, natuurlijk, e-mail me, laat het me weten. Jullie gaan het rocken. Ik ben super enthousiast. Jullie zullen worden gedaan als van woensdag, en dan je krijgt om te werken aan uw uiteindelijke projecten, en het gaat geweldig zijn. Ik zal hier de volgende zijn week 4:00-4:30 als jullie willen komen pick-up van uw quizzen. Als je me wilt vinden een andere keer of gewoon coördineren van een andere tijd, voel je vrij om me te laten weten. Anders, dit is onze laatste sectie. Dus het was geweldig om jullie te zien. Neem meer snoep. En veel geluk op je quiz.