[MUZYKA GRY] GŁOŚNIK 1: Dobra, wszyscy. Zapraszamy do ostatniego odcinka ze mną. To było dość semestr. Nie mogę uwierzyć, że to, jak, tydzień 12 lub 11, coś takiego. Ale ponieważ jest to nasz ostatni Sekcja, mamy dużo cukierków. I mam zamiar spróbować prep cię tak dobrze jak ja możliwe do quizu w środę. Więc chyba nie najlepszy sposób, jak, odcinek końcowy przeglądarki quizu. Ale spróbujemy i sprawiają, że zabawa. I zawsze cukierki. Więc mam nadzieję, że będzie zrobić to lepiej. Quiz będzie dość wiele samo, co Quiz Zero. To będzie sam format, samej długości. Będziesz w pomieszczeniach rozsianych przez kampus, ponieważ nie są zbliżone do 900 z tobą, a nie możemy wszystko trzymać cię w pomieszczeniach takich jak ten. Więc należy spojrzeć na wszystko Quiz Jeden dokumentacji online w cs50.harvard.edu dziś wieczorem lub jutro. Upewnij się, że wiesz, gdzie jesteś dzieje, co trzeba przynieść. Naprawdę, po prostu trzeba się zmusić i ołówek, i powinno być w porządku. Pytania będą Bardzo same. Nie będzie prawdopodobnie kilka wielokrotnego wyboru, krótka odpowiedź para, niektóre kodowania, może jakaś prawda / fałsz, dopasowanie rodzaju rzeczy. Więc nie powinno być zbyt zaskoczony formacie. Co może być zaskakujące jest to, Długość, które w poprzednich latach, był znacznie dłuższy. W moim roku, nie mam jednego przyjaciela że pamiętam zakończeniu egzaminu. Było tak jak wielu stron, które pozostały puste. Tak więc długość może być rodzaj dezorientacji tylko dlatego, że w niektórych latach, ma znacznie dłużej niż Quiz One. Nie mam pojęcia, jak to jest Będzie jak w tym roku, ale to jest coś być świadomi. Dodatkowo difficulty-- ludzie mają tendencję Quiz One znaleźć dużo więcej trudniejsze niż Quiz Zero. Ponownie, wiesz, jeśli masz rodzaj spaceru się, czując się trochę nieswojo ponieaz nie zrobiłeś, jak myślisz byś lub czujesz, że nie tak dobrze jak to było na Quiz One, pamiętaj, że prawdopodobnie istnieją Wiele innych osób czujących w ten sposób. I był zdecydowanie jednym z tych ludzi. Quiz jednym, jak, rzucił mnie na pętli. A moi przyjaciele mają ten wielki obraz z nich w JP Licks rodzaj z nich ogromna lody, jest jak, Quiz One i patrząc jak są one ze łzami w oczach. Więc to ogólne uczucie. Jest to trudne zadanie, to jest trudne quizu. Oczywiście, jeśli wyjdzie i poczuć się jak kołysał go, idealne dla Ciebie. Ale wiem, że jesteś prawdopodobnie not-- nie są niemal z całą pewnością sam, jeśli wyjdziesz uczucie jak, eh, prawdopodobnie mógł zdobyć lepsze. To jest twarde. Mm-hm. PUBLICZNOŚCI: Ile to jest warte w stosunku do [niesłyszalne]? GŁOŚNIK 1: Warto samo. Tak. Ale znowu, to też będzie dotyczy tego, jak reszta klasy nie, w jaki sposób odcinek robi, jak już poprawiła się w czasie. Klasa jest trochę czarnej skrzynki. Więc co rzeczywista liczba lub procent można dostać nie koniecznie podoba bezpośrednio skorelowana z gatunku masz zamiar dostać. Istnieje wiele czynniki, które go do niej. Więc z tym, będziemy przejść przez pewnego przeglądu quizu. Idę do uruchomienia tego jak ostatnim razem dla was. Mam wszystkie odpowiedzi quiz Jednym z ubiegłego roku. Więc jeśli chcecie wyciągnąć że się na własnych komputerach, jeśli wziąłeś ten egzamin przed i pytań, Myślałam mogliśmy po prostu przejść przez niektóre z trudniejszych na to. Możemy więc mówić o tym, być może trochę więcej światła do intuicji za niektóre te pytania, w jaki sposób się do nich zbliżyć. Jak dobrze, jak ostatnim razem, Mam pokład 100 slajdów że ma w zasadzie wszystko slajdy, że Przygotowaliśmy dla poprzednie sekcje od twojej ostatniej quiz-- I mają w tej talii. Tak więc możemy przejść prawie wszystko że rozmawialiśmy o wcześniej, że może Cię chcesz trochę więcej wyjaśnień na temat. Możemy to zrobić w pierwszej kolejności. Ale poza tym, że jestem super, szczęśliwy po prostu rodzaj pracy przez te problemy z tobą. I jestem naprawdę tutaj, aby skupić się na tym, co myślicie będzie najbardziej skupić się na. Podobnie jak, oczywiście, wszystkie te rzeczy są ważne. Zwłaszcza, jak przejść przez Quiz One, I na pewno zwrócić uwagę na takie rzeczy, och, to może być coś Naprawdę chcesz wiedzieć lub chcesz mieć na swojej ściągawki. Będę opowiadać wam rzeczy jak rodzaj przejść. Więc po tej notatce, czy są jakieś rzeczy że chłopaki chcieliby przejść? Ponadto, jeśli nie mam go w moim pokładzie, możemy wyciągnąć coś w Internecie, lub możemy spróbować zrobić się na przykład na bieżąco. Ale wszelkie koncepcje, które faceci są nieco rozmyte na. [? Brian?] Skończyłeś have-- PUBLICZNOŚCI: Och, to jest skumulowany? Jak, to rzeczy na quiz Zero będzie tutaj? GŁOŚNIK 1: To skumulowane, ale jest o wiele bardziej z naciskiem na rzeczy od ostatniego quizu. Tak oczywiście, macie dowiedziałem się o zmiennych i pętli, i warunkowe. I to nie jest tak, jak te, po prostu odejść, bo są oczywiście nieodłączne do wszystkiego inni, że nauczyliśmy się teraz. Nie może być pytanie w sprawie rodzaju, lub tam, Pytanie może być na różnych poszukiwań. Albo, że może być kilka Pytania o coś, co być może mających do czynienia z kompilacją lub różne błędy. Ale jeśli spojrzeć na Quiz Jeden z ubiegłego roku, można zauważyć, że jest to bardzo koncentruje się na rzeczy , które wydarzyło się od ostatniego quizu. Dlaczego jest to, że drzwi zawsze zamknięte? To naprawdę mnie denerwuje. Bo ja zawsze staram się przejść przez to. Więc to dość dużo jak quizu będzie. Więc czy są jakieś koncepcje, które faceci chcieliby przejść? Albo możemy wskoczyć do patrząc na Quiz One z ubiegłego roku i rodzaj dzieje poprzez pytania tam praktyki. Możemy również przełączać. To nie jest jednorazowa typu rzeczy. Jakieś pytania? Tak. PUBLICZNOŚCI: Chciałbym zapytać Pytanie o another-- GŁOŚNIK 1: Jeszcze jeden? PUBLICZNOŚCI: To jest z innego roku. 1 głośnik: Tak. Możemy również zrobić kolejny rok. PUBLICZNOŚCI: OK. Więc z roku 2011. GŁOŚNIK 1: 2011. Och, to było rok przed mną. Pozwól mi wyciągnąć tego. PUBLICZNOŚCI: myślę. GŁOŚNIK 1: Ten aspekt Stosunek rzuca mnie. PUBLICZNOŚCI: 11 i 12. GŁOŚNIK 1: 11 i 12. OK. Cóż, tutaj, dlaczego nie możemy tego zrobić? Ty guys-- wszyscy po prostu potrwać kilka minut do zapoznania się z quizów. A my sporządzić listę. A potem pójdziemy po nich. Wszystko w porządku? Chociaż mam kilka z tych rzeczy skonfigurować. OK. Idę napisać rzeczy na papierze. 2011, 11 i 12? Mam zamiar po prostu zmienić ten wyświetlacz. OK. Tak jest lepiej. To koniec. Dobrze. Ktoś jeszcze ma żadnych, że chcieliby zacząć? Ponadto, zapomniałem powiedzieć, jeśli chcesz więcej z kilka osób rozmawia na ciebie i po prostu daje pęknięcia Oczywiście w ciągu ostatnich sześciu tygodni prowadzimy recenzję Sesja od 7:00 8:30 wieczorem w Northwest B103, które również się Ostatni raz, gdzie to będzie być ja, Hannah, Daven z Gabe i Rob rodzaj pomocy od kuluarach po prostu rodzaj rzuca wszystko informacje, że może po chcesz mieć na swojej ściągawki, slash, wiesz w ogóle nie. PUBLICZNOŚCI: To również on-line, prawda? GŁOŚNIK 1: Jest to także w Internecie. Więc można się w to Icky pogoda, przejdź do akademika, live-stream i to, jeśli chcesz. Jestem pewien, że wiele people-- Wiem, że tak się robi, że gdybym był na twoim miejscu. OK. Więc dlaczego nie zaczniemy with-- podczas guys-- miejmy nadzieję, szukasz pośrednictwem. Jeśli nie, to może po prostu zacząć pracować poprzez różne rzeczy na Quiz One z ubiegłego roku, chyba Ciebie masz konkretne pytania. Zaczniemy od tego pytanie tutaj o stosach. Więc nie wszyscy pamiętają rodzaju, co stos jest? Jak mamy tendencję można to-- ktoś po prostu dać mi ogólny opis stosie? Rodzaj struktury danych. OK. Tak więc jest to jeden z struktury danych, które spodziewam się, że zna with-- jak stosy, tablice, kolejki, tak dalej. Tak. PUBLICZNOŚCI: Podobnie jak pierwsze W, Last Out, coś. GŁOŚNIK 1: jest pierwszym, Ostatni Out. Dokładnie. Więc stos jest dokładnie co myślimy o tym, kiedy myślimy stosu rzeczy. Tak stos płytami. Pierwsza płyta odłożyć dzieje się na dole i to będzie ostatni jeden jest usunięcie na końcu. Dlatego, że stos. I wziąć jednego z dolnej, zwykle, wszystko upaść i złamać. Więc stosy można myśleć tak jak stos talerzy. Albo przykład zawsze lubią używać jest w salach D, masz tacki, wszystkie one są ułożone, i wziąć od góry. Więc ostatni w to pierwsza na zewnątrz. OK. Tak więc w tym przypadku, że zobacz Zastanawiam się have-- jeśli faktycznie mogę przybliżyć trochę. Więc mamy tej struktury tutaj. Prawda? Więc masz trochę struct, który ma niektóre int liczby pojemności. Więc to, co myślimy, że reprezentuje? Jest to tablica z wielkości pojemności. Więc to naprawdę oznacza nasz stos w ogóle. Nasz stos jest naprawdę Tablica z pewnym ustalonym numerem że jest jego max, to jest jego pojemność. A potem mamy kilka int rozmiar, który będzie śledzić wielkość naszego stosu w trakcie kiedy używamy go. OK? W tym przypadku właśnie tu, możemy powiedzieć, że nasze rozmiar stosu został ustawiony na 0. Więc mamy pusty stos teraz. A następnie chcemy wypełnić Realizacja pop tak, że powraca int na górze. A następnie, jeśli jest pusta, zwraca negatywną 1. OK? Więc chcę chłopaki po prostu myśleć o tym, co możemy tam robić. Co może być jednym z pierwszych, rzeczy, którą chcemy sprawdzić? Jest wielka rzecz tutaj. W każdym przypadku, says-- jeśli jest coraz niektórych Jeżeli oświadczenie, jak "Jeśli stos jest pusty," lub "Jeśli ta zwraca null," lub "Jeśli to, co" - przepraszam. PUBLICZNOŚCI: Napisz instrukcji IF. GŁOŚNIK 1: Prawo. Możesz napisać instrukcję If. I to jest prawdopodobnie jednym Pierwsze rzeczy, które chcesz sprawdzić. OK. Kiedykolwiek dają trochę jak przypadku rogu tak, to jest zwykle jedną z pierwszych rzeczy, masz zamiar sprawdzić w kodzie. Ponadto, coś rozpoznawać quizu jest, jeśli masz nieefektywny sposób coś zrobić, to zapisać. Ponieważ nie jesteśmy klasyfikacji Ci od projektu, jesteśmy klasyfikacji Cię na poprawność dla quizów. Więc nawet jeśli wiesz, że to jest super zły sposób, aby coś zrobić, ale to działa, zapisz to, OK? Dosłownie widziałem dzieci zeszłym rok-- jeśli spojrzeć na jednej zeszłorocznej, są jak, zrobić piramidę Mario. I dosłownie po prostu nie "print, hash, druk, mieszania, mieszania, druk, mieszania, hash, hash ". Ale to jest prawidłowe. To jest to, co powiedział do, więc nie można mieć punktów off. Jeśli jesteś w dół Drut, oczywiście ci, Aby uzyskać bardziej eleganckie rozwiązanie, a bardziej eleganckie rozwiązanie będzie prawdopodobnie być mniej kodu, co oznacza, że ​​prawdopodobnie mają większe szanse na prawo. Ale jeśli jesteś jak, wiesz, co, nie, nie mam czasu, ja że to rozwiązanie to nie jest najlepsza, zapisz go. I można nawet pisać na z boku, wiem, że to jest straszne, ale wiem, że to działa. Więc po prostu heads-up. OK. Tak oczywiście, pierwszą rzeczą, Jeśli jest to stwierdzenie. Więc co w tym przypadku myślimy Oświadczenie ma być? I rzeczywiście, niech otwarte się moim wielkim Sublime edytora. Idę do kodu to i to pokazać wam, kiedy to zrobić. Więc int pop. OK. Więc jeśli mamy to int pop void-- więc oczywiście, to jest pewne, że trwa w funkcji nic i zwraca liczbę całkowitą, prawda? Więc to jest po prostu mówić o ten układ, który stworzyliśmy. Więc po prostu tłumaczenia tego ostatniego zdanie "jeśli stos jest pusty, Należy powrócić negatywne pop 1, "w jaki sposób możemy to zrobić? Więc jeśli to co? Skąd wiemy, że stos jest pusty? To tylko wielkość jest równa 0. Stack.size równa 0. Mam także rodzaj pisania ślepy tutaj. Więc jeśli robię wszelkie typos-- oh, również zapomniał o tym wspomnieć. W zeszłym tygodniu, całkowicie zorientowali się, co nasz problem był z JavaScript. I nie należy wykorzystać i D. Powinieneś tylko wykorzystać I i uzyskać elementu przez Id. I to była cała błąd. Więc jeśli macie wrócić i rzeczywiście patrzeć przez mojego kodu, jeśli po prostu zrobić wszystko, mała litera d, "zapomnieć elementu przez Id" to będzie działać. Tak jak obiecałem, byłem bardzo blisko. Właśnie coś skapitalizowanych Nie miał, które Jestem pewien, że chłopaki mieli w ostatnim pset. Więc jeśli nasza wielkość jest równa 0, co mamy robić? PUBLICZNOŚCI: Powrót negatywnego 1. GŁOŚNIK 1: Powrót negatywnego 1. Cool. Więc co teraz zrobimy? Chcemy, aby coś się pojawi. Teraz jest to przypadek gdzie mamy coś. Nasz rozmiar jest większy niż 1 lub większa niż 0, prawda? My rzeczywiście coś tam. Więc to, co chcemy zrobić, to mamy Aby powrócić tutaj. Mamy zamiar powiedzieć chcemy powrót szczyt stosu. OK? Więc w jaki sposób możemy to zrobić? Jak mamy wrócić na szczyt stosu? Pamiętaj, nasz stos jest tylko tablica, prawda? To ma pewne możliwości że daliśmy go. Jak już umieścić rzeczy on-- lub faktycznie, mamy zamiar napisać "push" po tym. Jeśli rzeczy są w there-- Może obraz pomoże. Hm, lubię duże kreda lepiej. Więc if-- i można po prostu myśleć o tym, jak nasz stos. Tak więc wynosi 0, 1, 2. Nie wiem, dlaczego mój pola są coraz mniejsze. Ale nie. OK. Więc to jest jakiś stos o pojemności 5. I powiedzmy, że mamy coś tu i tu mamy coś. Więc w tym momencie, nasz wielkość jest równa co? 2. A jeśli chcemy pop coś poza nim, co oznacza, że ​​chcemy uzyskać pozbyć to tutaj. OK? Więc jak wrócimy tę wartość? PUBLICZNOŚCI: Rozmiar minus 1. GŁOŚNIK 1: Prawo. Tak więc wielkość minus 1, albo może zrobić rozmiaru minus minus. Ale nie możemy po prostu zrobić rozmiar. To wewnątrz struct, prawda? Więc stack.struct. lub stack.size. To nasz indeks tam. OK? A potem, jeśli spojrzymy z powrotem w naszym struct tutaj zauważamy, że do faktycznie dostęp do tablicy, musimy zrobić stack.numbers faktycznie dostęp do tej tablicy. Tak, że powrót na górę stosu. Ale coś that-- jeśli faceci wyglądają w klawisz odpowiedzi, to wszystkie one dać. Więc to jest to. Ale mogę twierdzić, że są one miss-- ooh, nie to, co chciałem. Mógłbym twierdzić, że są one brakuje czegoś, because-- tak. PUBLICZNOŚCI: Zmniejsza rozmiar. GŁOŚNIK 1: Prawo. Musimy zmniejszyć naszą wielkość teraz. Więc co jest trudne, o to jest po powrocie coś, twoja funkcja na będzie wyjścia, prawda? Więc co możemy zrobić, to rzeczywiście zmniejszyć pierwszy nasz rozmiar. I wtedy możemy po prostu nie stack.size. Możemy po prostu użyć stack.size w naszym indeksie, nie mogliśmy? Bo jeśli stack.size jest 2, zmniejszamy go. A więc jest to 1, które jest nasza rzeczywista indice. Gdy pozbędziemy się tego, że w rzeczywistości tylko jedną rzecz w naszej tablicy. Więc to nie obu. PUBLICZNOŚCI: [niesłyszalne]? GŁOŚNIK 1: Cóż, w tym przypadku, Właśnie wróciliśmy element na początku, który jest w naszym Rozmiar to na górze. Ale nie mamy nic do zrobienia Rozmiar po usunęliśmy ten element. Nie zmieniło się to jednak nasz rozmiar. To naprawdę robi nieodłącznie zmienić nasz rozmiar. Ale aby to trochę jaśniejsze, można zrobić stack.size minus minus. Dla mnie, to sprawia, że, nie wiem, trochę bardziej jasne that-- ah, że jesteś rzeczywiście się zmienia Wielkość i zwrot. Innym sposobem było w porządku, bo pan zmianę i powrót w tym samym czasie. Ale jest to tylko kolejny sposób pisania to, że chciałem pokazać wam. Czy to ma sens? Stosy, myślę, że są dużo łatwiej niż kolejek. [Śmiech] OK. Czy masz jakieś konkretne pytania około 11 i 12, lub just-- PUBLICZNOŚCI: Myślę, że to był stos. GŁOŚNIK 1: rozmiar stosu? Publiczność: Tak. GŁOŚNIK 1: Mam cię. OK. Tak, można to zrobić w jeden z tych dwóch sposobów. OK. Więc teraz mamy drugą. To jest naprawdę dziwne, jak nie mając to na moim ekranie. Więc jeśli patrzymy tutaj, teraz chcemy zakończyć realizację naciśnięciem, które faktycznie wrzuca coś, idzie i wkłada coś do naszej kolejki, lub do naszego stosu. OK? Więc jeśli zauważymy, my mają kilka rzeczy. Mamy great-- jeśli wszystko inne, gdy mamy jeden z nich, wy powinien przynajmniej dostać połowę punkt, ponieważ wszystko, co musisz zrobić, jest konwersji na C. A dają ci połowę. Tak ", jeśli stos jest pełny lub jest ujemna, następnie wcisnąć powinny return false ". OK? Więc chcemy tylko pozytywne całkowitymi się na naszej stosie. Wszystko w porządku? I to będzie albo powrót prawdziwe lub fałszywe. Więc powinniśmy [niesłyszalne] bool. OK. Więc tłumaczenia. PUBLICZNOŚCI: [niesłyszalne]. GŁOŚNIK 1: Och, dzięki. Tak. To dlatego mam chłopaki. Int n. Doskonałe. Ponieważ jesteśmy oddanie coś na naszej stosie. My rzeczywiście potrzebować numer. OK. Więc biorąc ten ostatni wiersz, dali nam nasz rodzaju przypadkach narożnych, co sądzisz my tu mamy? Oczywiście, będziemy mieć trochę If. OK. Więc powiedział, Jeśli nasz stos jest pełna lub n ma wartość ujemną. Więc prawdopodobnie najłatwiej zacząć z tak, jeśli n jest mniejszy niż 0 or-- pamiętasz ładne Operatorów AND i OR tam. W jaki sposób możemy sprawdzić, sprawdzić, czy nasz stos jest pełny? Co się dzieje? PUBLICZNOŚCI: Rozmiar samej pojemności. GŁOŚNIK 1: Dokładnie. Doskonałe. OK. I co chcemy tam robić? PUBLICZNOŚCI: return false. GŁOŚNIK 1: return false. Doskonałe. Tak więc w połowie drogi, prawda? Przynajmniej, chłopaki będzie miała połowę tego. Warto więc o tym myśleć. Więc to jest stos zaczynamy. Staramy się umieścić jakiś element na tutaj. Mamy rozmiar który jest równe 2 teraz. Mamy pojemności, która jest równa 5. I powiedzmy, że mamy niektóre n to równe 3. Więc musimy wejścia 3 do tej przestrzeni. Musimy wprowadzić go w indeksie 2. Prawda? Więc w jaki sposób możemy to zrobić? Próbując assign-- my Aby wejść na naszą tablicę. Więc stack.numbers. Ale na to, co indice będzie chcemy to być? PUBLICZNOŚCI: [niesłyszalne]. 1 głośnik: Tak. Stack.size. I chcemy, że do równego n, prawda? PUBLICZNOŚCI: [niesłyszalne]. GŁOŚNIK 1: I był rzeczywiście patrząc na to. Myślę, że jest w błędzie. PUBLICZNOŚCI: Nie chcesz Przestrzeń obok bieżącego rozmiaru? GŁOŚNIK 1: Cóż, jeśli spojrzymy tutaj nasza wielkość jest w tym miejscu 2. Chcemy, aby przejść do indeksu 2, bo to jest na szczycie naszej stosie. Więc chciałbym powiedzieć, że to powinny być stack.size, i wtedy można zwiększyć stack.size. Czy wszyscy zgadzają? Myślę, że zgadzam się z tym. Wy może argumentować ze mną, jeśli chcesz. Albo nie kłócić, ale możemy o tym dyskutować. PUBLICZNOŚCI: [niesłyszalne]. GŁOŚNIK 1: Mm-hm, jest tam, gdzie jest otworzyć z powodu zerowej indeksowania. Tak więc, podczas gdy w pierwszej części Myślałem, że byli w błędzie, i były naprawdę w porządku, to część, tak naprawdę myślą, że byli w błędzie. Powiedziałbym, zalecana zdecydowanie wejście tutaj. Myślę, że wszyscy zgadzają się mamy rozmiar 2. To jest dokładnie tam, gdzie my żeby nasz nowy numer iść. Więc stack.numbers na stack.size powinna być równa n. A potem będzie zwiększamy stack.size. ++. A potem, co chcemy zrobić? Jest jedna rzecz musimy zrobić, jeśli pomyślnie włożona jest? Zwraca true. A teraz gotowe. Więc czuję się jakby to była cała minus minus stack.size i stack.size ++, który namieszałem. Fuj. I keep-- mam ten odruchowym Tendencja, aby zawsze trafić Kontrola, S, bo nigdy chce stracić żadnej z mojej pracy. Ale nie muszę tego robić teraz. OK. Więc to był stos. Cool. Czy jest coś? Czy wy znaleźć żadnego inne pytania, na które bym pojechać z poprzednich quizów? Jeśli nie, możemy zacząć mówić rodzaju przez Quiz One z roku ubiegłego. Tak. PUBLICZNOŚCI: Na pierwszy część, tak naprawdę nie zrozumieć, w jaki sposób usunięty numer. Czy to nie jest tam jeszcze? GŁOŚNIK 1: liczba wciąż istnieje. Ale co się dzieje, jest to, że ponieważ masz Powiedziałem jej, że w górnej części komina jest tutaj, kiedy go coś dodać na stosie, to będzie po prostu wymienić. PUBLICZNOŚCI: Och, OK. 1 głośnik: Tak. Więc jak to jest, że zapomniał i to nie typu rzeczy, mimo że tam jest. PUBLICZNOŚCI: [niesłyszalne] lub cokolwiek? 1 głośnik: Nie Ponieważ jesteśmy w tablica, nie musisz martwić about-- będziesz po prostu zastąpić ją, gdy jej potrzebujesz. Dobrze. Jeszcze jakieś pytania? Jeśli nie, jesteśmy po prostu się do rozpoczęcia pracy przez. Tak. PUBLICZNOŚCI: Cóż, ten jest od 2013 roku, ale po prostu przechodzi rzeczy SQL. GŁOŚNIK 1: SQL? OK. Więc to jest 26 do 29. Publiczność: Tak. GŁOŚNIK 1: OK. Piękny. Miejmy wyciągnąć te góry. Och, spójrz. Czy faceci cieszyć się Steve Ballmer porozmawiać, na drodze? To było dość zabawne, w mojej opinii. Uwielbiam to, że za każdym razem jak wychowywać CS50-tych strona w trakcie sekcji, to jak, oh, obejrzeć odcinek. A ja na to, mm. PUBLICZNOŚCI: Czy możemy to zrobić? GŁOŚNIK 1: Zrobimy to na końcu. Jak to jest? Bo wiem, że chłopaki zawsze chciałem. Więc zrobimy to na końcu. Jeden pytania. PUBLICZNOŚCI: [niesłyszalne]. GŁOŚNIK 1: To będzie meta punkt. PUBLICZNOŚCI: To jak 5 sekund. PUBLICZNOŚCI: Naprawdę? PUBLICZNOŚCI: To jak 20 sekund. [Wstawienie GŁOSY] [Śmiech] GŁOŚNIK 1: Lubię, że już zrobione to, co jest, co sprawia, że ​​jestem szczęśliwszy. OK. 26. OK. Faktycznie, jesteśmy po prostu będzie lustro to teraz, bo nie mogę. To jest irytujące. OK. Teraz widzę wszystko. Piękny. OK. Tak oczywiście, powinno to przynieść wspaniałe wspomnienia z [? CSG?] Finanse. Połowa z was o wasze klasyfikowane są teraz. Druga połowa będzie dostać się do bardzo, bardzo szybko, obiecuję. Tak więc mamy trochę tabeli SQL to Konta tutaj. Prawdopodobnie podobne tabele użytkowników swoich facetów. A my mamy jakąś liczbę to był klucz podstawowy i reprezentuje 12-cyfrowy numer konta. A bilans jest, ile pieniędzy mają. A wartość domyślna to 100. A oni im dać 100 dolarów każda razem otworzyć konto. Życzę mój bank zrobił. OK. Dlatego chcemy, aby zakończyć schemat, określając obok numeru w równowadze odpowiedni typ danych SQL. Więc co myślicie będzie trochę jak twój odruchowej reakcji dla typów dla tych dwóch? PUBLICZNOŚCI: Int. GŁOŚNIK 1: int. OK. A następnie do równowagi? Dziesiętny. OK. Więc tuż ósemkowym. Int jest blisko. Niby jest to big thing podkreślił 12-cyfrowy numer konta. Zawsze, gdy mamy coś to jest większe niż osiem cyfr, oni chcą korzystać duże int, które myślę, że is-- PUBLICZNOŚCI: Czy to jest po prostu SQL? GŁOŚNIK 1: To jedyny raz słyszałem z nich jest jak za pomocą SQL-- duży int. To jest po prostu dać trochę bardziej precyzyjny, upewniając się, że nie jesteś przelewanie typu rzeczy. Szczerze mówiąc, myślę, że to jest zdecydowanie jednym z tych, gdzie to jest jak, oh, to ma dla ludzi którzy mają trochę więcej wiedzy SQL. Nigdy nie mówił o duże ints twojej pset. Więc to jest trochę jak jestem prawie pewien, jeśli umieścisz int, to było pół kredytowej. I tak jak powiedziałem wcześniej, nie będzie się kilka pytań, które są po prostu Oznaczało to trip was, więc że nie każdy dostaje 100. Względu Oczywiście Są ludzie w CS50 którzy robią to dla takich jak osiem lat i jesteś podobny, co ty robisz? Ale tak. Dziesiętny równowagi było oczywiste. A potem wielkie int liczba, tylko dlatego, o tym, jak podkreślił 12-cyfrowy. Zawsze, gdy coś jest pogrubione lub jest to podkreślił, jak, zwracać uwagę na to. Nie robimy, że tylko dlatego. OK. Więc "Załóżmy, że nakłada bankowych 20 dolarów miesięcznej opłaty na wszystkich rachunkach. Z tego, co bank mógł zapytania odliczyć 20 dolarów od każdego rachunku nawet jeśli wynika to z pewne ujemne salda? " Zacznijmy więc prosty. Mamy cztery główne polecenia dla SQL, które są? Czy wy pamiętam cztery duże te, które mi powiedział? UPDATE, DELETE, SELECT i podłącz. Doskonałe. Masz go. Więc to, co myślimy potęgę najbardziej przydatne dla tego jednego? Mamy are-- UPDATE. Dokładnie. Więc zaktualizować, ponieważ szukamy na rachunkach, które już istnieją. Więc pamiętaj nasze ogólne coś takiego jest aktualizacja. A potem, co przychodzi po aktualizacji? Mamy trochę tabeli że mamy odwołanie. Więc jeśli podciągnąć Sublime again-- UPDATE. Więc to jest ogólny format. Więc mamy tabeli UPDATE. A potem, co jest następną rzeczą mamy? Można zrobić WHERE. A potem mamy tu jakiś kwalifikator. I co mamy teraz? Mamy pewne SET-- coś równa coś. Bla równa bla. Zaktualizowany bla. Prawda? Tak, że jak ogólnie pomysł na jakiś update. OK? Zacznijmy więc wypełnienie tego do tego, co powinno być. Więc co stół mówimy? Konta. A następnie w tym przypadku, co jest naprawdę fajne to mówimy specyficzne użytkownicy w naszym rachunku, czy mówimy wszystkich użytkowników? Mówimy o wszystkich użytkownikach. Więc w tym przypadku, możemy po prostu usunąć tę WHERE kwalifikator. GDZIE jest tylko wtedy, gdy chcesz do ograniczenia co się zmienia. Jeśli chcesz zmienić cały Stół, możesz umieścić to. OK. Więc teraz jesteśmy w naszej części SET. Co chcemy zmienić? PUBLICZNOŚCI: Wagi. GŁOŚNIK 1: Wagi. I jedziemy to-- jak się mamy zamiar zmienić równowagę? Mamy 20 dolarów opłaty, prawda? Minus 20. I powiedzieli, że jest OK, jeśli mamy salda ujemne. Więc w tym przypadku, nie trzeba zrobić dalszego sprawdzania błędów. OK? To jest dosłownie wszystko, co musisz zrobić. Fajne? OK. Warto więc przejść do następnego. "Z tego, co mogłoby zapytania SQL Bank pobierać numery kont z jej najbogatszych klientów z równoważy większa niż 1000 dolarów? " Jeśli Twój bank i Twoich najbogatszych klientów są tylko te z ponad 1000 dolarów, Czuję, że jesteś robi coś złego. Podobnie jak, w jaki sposób bank przetrwać na tym? Jak, że odsetki, nie dość wystarczająco. OK. Z tego typu rzeczy, to, co zrobić, myślisz, z naszych czterech funkcji, myślisz, że będziemy używać? SELECT. Doskonałe. SELECT. OK. Więc my wybierając niektóre Identyfikator Z tabeli. A potem WHERE warunek. Tak jak przejść przez nich, jestem po prostu dać ci faceci ogólne odświeżające od ogólnego formatu wszystkich. Więc my wybierając jakąś z dnia [? rzecz. ?] W tym przypadku, to będzie Zazwyczaj niektóre kolumny. Tak więc w naszym przypadku, mamy numer, równowagę. W przypadku swoich chłopaków, może było ID, nazwa, hasło. Każda z tych kolumn, to zazwyczaj co mamy wyboru. Tak więc w tej sprawie, które rodzaj kolumny, co identyfikator jesteśmy wyciągając z naszym stole? Co to proszą nas o? Prosi nas, dla naszych numerów, prawda? Numery kont. Więc pamiętaj, tylko liczba w tej sprawie. Jeśli wy kiedykolwiek miał ten błąd, że jasny pomarańczowy pole przyjdzie się. I to było jak, nieoczekiwane wiosłować, jak, cokolwiek. To dlatego, że nazywa się tabela nie tak, prawda? Więc upewnij się, że jesteś dzwoniąc kolumnę prawidłowo. Więc od stołu, stolika jest nazywane konta. Ponownie, upewnij się, że jesteś Twego stołu poprawnie. I co wtedy nasz stan tutaj? Co szukamy? Chcemy, aby nasze bogatych ludzi. Tak. Tak zrównoważyć większy niż 1,000. Proszę bardzo. To zapytanie. Nie jest tak źle, prawda? OK. Więc teraz dla naszego ostatniego. Z tym, jesteśmy breezing przez. OK. Więc teraz ", co mogłoby zapytania blisko bank, czyli usuwanie "- nie kochasz jak po prostu dał wam DELETE-- "Każde konto, które ma bilans 0?" Myślę, że wszyscy możemy się zgodzić, że jesteśmy zapewne będzie za pomocą DELETE. Jestem mile widziane podjąć wszelkie dyskusja wokół tego. Ale myślę, że to całkiem bezpieczne powiedzieć, że możemy korzystać DELETE. Tak więc mamy zamiar usunąć niektóre użytkowników z tabeli, gdzie stanie. Tak samo coś takiego jak SELECT. Tak więc w tym case-- och, przepraszam. Mam DELETE FROM. Ponieważ kasowania usunąć cały wiersz. Więc nie musimy rozmawiać o których konkretne rzeczy o użytkownika jesteśmy usuwanie. Jeśli usunąć użytkownika, jesteśmy usuwanie o nich wszystko. Tak więc w tym przypadku wystarczy wypełnij nasz, gdzie i naszej kondycji. Tak więc nasz stół jest tylko nasze konta Stół, jak robiliśmy. A potem to, co jest naszym stanem tutaj? PUBLICZNOŚCI: Wagi. GŁOŚNIK 1: Bilans jest równa 0. Poprawne. Wszystko dobrze. Tak. PUBLICZNOŚCI: [niesłyszalne]. GŁOŚNIK 1: Więc DELETE natury usuwa wszystko. Tak więc podczas gdy SELECT SELECT zajmuje się niektóre kolumny, które mają być zwrócone. Jeśli chcesz wszystko na temat Użytkownik wrócił, użyć gwiazdki. Gwiazda twierdzi, wróć do mnie wszystko od tego użytkownika. Albo jeśli umieścisz WHERE gwiazdy, które oznacza po prostu dać mi wszystko. Ale DELETE natury ma w sobie. Więc jeśli na przykład usunąć z Rachunki których równowaga jest równa 0, to będzie przejść. I wszędzie, że bilans jest równa 0, to z natury rzeczy nie robi. To będzie usunąć wszystko. Gwiazda jest bardziej for-- SELECT i UPDATE to mówi więcej o osobie pól dotyczących użytkownika. Więc jeśli nie zostanie wybrana gwiazda z tabeli WHERE ID równa 1, która zwraca się do Ciebie wszystko na temat użytkownika z ID 1. Jeśli było zrobić wiele SELECT lub SELECT ID nazwę od użytkowników przecinkami GDZIE ID równa 1, które po prostu zwraca swój numer lub ich ID i ich nazwa. OK? Więc używamy w tym przypadku gwiazdy do dać nam wszystko na temat użytkownika. I DELETE z natury nie robi. Nie wystarczy usunąć identyfikator, lub po prostu nazwa, czy cokolwiek innego. Tak, nie. To po prostu usuwa całą użytkownika. Więc nie musisz się martwić o tam gwiazdy. Jeśli chcesz, aby usunąć wszystko, co można było zrobić, i będzie to po prostu rzucić wszystko. Ale zazwyczaj ci, nie chcę tego robić. Ale jeśli kiedykolwiek chcesz usunąć wszystko, co można było zrobić. OK. Czy faceci znaleźć jakieś pytania? Tak. PUBLICZNOŚCI: Czy możesz zrobić 26? GŁOŚNIK 1: 26 po prostu nie. PUBLICZNOŚCI: O, 25, przepraszam. GŁOŚNIK 1: 25. OK. 25. Och. Robią JavaScript. Och, nie mogę w to uwierzyć. Idę do bałaganu nas ponownie, chłopaki. OK. Mamy to. Jedziemy do tej pracy. Ach, jQuery. Zabawa. OK. Tak więc mamy zamiar zakończyć Realizacja strony internetowej w taki sposób, że w razie wizyty, Wejście ich nazwa, i wysłać formularz, mają tę wielką wpisu okno, które będzie wyświetlane. Więc nic z wpisami, wiemy, że mamy zamiar użyć JavaScript. Yay, JavaScript. A jeśli nie, aby wprowadzić wymienić przed wysłaniem formularza, powinny pojawić się żadne czujny. Więc można użyć jQuery, ale nie muszą. Więc zamierzam pozwolić ci ludzie pracują na to tylko na kilka minut. Pomyśl o tym. A potem będziemy go zakodować. Slash mam zamiar spróbować i myśleć Najlepszym sposobem, aby wyjaśnić tę odpowiedź do Ciebie. Dobrze. Dostaniemy go skonfigurować. OK. Tak więc jesteśmy po prostu się przejść przez to, bo wiem, jQuery jest trochę mylące. JavaScript. To trochę tam. Tak więc to, co mamy zamiar zrobić, to [Niesłyszalne] faktycznie rozwiązany problem z jQuery. Tak więc, jeśli pamiętać, jQuery jest po prostu biblioteki że po prostu zbudowany na JavaScript. To oznaczało, aby Państwa życie trochę łatwiejsze. I na pewno, jeśli masz czas, spojrzeć na trochę Dokumentacja dla jQuery. Ale to jest bardzo podobne do JavaScript. Ma podobne paradygmaty, gdzie cię używać kropki wywoływanie operatora na obiektach, które masz. Tak więc to, co mamy tutaj dla jQuery, należy zawsze mieć tego rodzaju papierka do zawijania, która jest $ (Document) .ready (function) Funkcja w nawiasach tutaj. OK. Więc to może być coś chcesz na ściągawki. Ponieważ co najmniej, można mają opakowanie dla jQuery. I będzie to co najmniej uzyskać Ci rozstać tam. Tak więc w taki sam sposób, że Dużo rozmawialiśmy o JavaScripcie i chcemy rozpocząć od na to, co chcemy, aby edytować lub co chcemy zmienić. I to będzie typowo Pierwszą rzeczą, którą chcemy wprowadzić. Więc w tym przypadku, jeśli wrócimy do tego tu i patrzymy na naszego formularza tutaj, mamy to wejść, Dobra, to id wejść. I wiemy, że w oparciu na nasze pytanie, mamy są albo rzuci Błąd, jeśli jest pusta, lub mamy zamiar umieścić to pod wpisem, prawda? Więc na pewno powiedzieć, że jesteśmy mieli do czynienia z wejść tutaj. jQuery jest bardzo podobny, że jeśli myślę o CSS, nic z ID przyjrzymy się z mieszania. Wszystko z klasy my spojrzał z kropką, prawda? Tak więc w ten sam sposób o to, co mówimy o to wejść. Widzieliśmy, że wejście jest ID w ramach naszego formularza. Więc będziemy o nim jako takie. Wejścia. OK? Tak więc w razie wątpliwości, nawet jeśli masz nigdzie, jeśli jesteś naprawdę pewien, jak podejść do tego, A, mają to opakowanie. Więc rozpocząć tam z wrapper dla jQuery. B, upewnij się, że wiesz, co się zmienia. A w razie wątpliwości, umieścić, że w coś, i zrobić kropkę, co myślisz należy robić z nim. PUBLICZNOŚCI: Co to jest opakowanie? GŁOŚNIK 1: wrapper Jest to pierwsza linia. Więc to mówi, poczekaj mój dokument jest gotowy. Następnie uruchom niepożądanym rzeczy. OK? Więc wiemy, jesteśmy brudząc z wejść. Więc jesteśmy jak, OK, wejścia jest naszego formularza. To nasz ID. Więc to, co jesteśmy dzieje się szuka. I chcemy, aby zobaczyć, co się dzieje gdy formularz jest składany, prawda? Więc jak możemy myśleć, mamy kilka .submit. Więc .submit po prostu mówi, OK, ta forma że mamy odwoływać się wejść z cebulą, kiedy jest złożone, wykonać coś innego. Więc będziemy mieć jakieś funkcji. Zauważ, mamy funkcje anonimowe tutaj. Mamy tu anonimową funkcję. Tak. PUBLICZNOŚCI: zawsze będzie .submit, czy jest to tylko dlatego, że w HTML, zrobiliśmy typu przycisk Zatwierdź? GŁOŚNIK 1: Należy .submit, ponieważ jest to jakaś forma które składamy. Ponieważ ten .submit niekoniecznie odpowiada temu, co jest jak przycisk zadzwonić. Ale fakt, że jest to stanowią, że mamy do składania. OK. Więc zauważyć anonimowy Funkcja tutaj says-- PUBLICZNOŚCI: Ja naprawdę nie zrozumieć funkcje anonimowe. 1 głośnik: Tak anonimowy funkcje, są tylko funkcje, które nie mają nazwy. Więc zamiast niektórych głównych funkcji że calls-- moglibyśmy powiedzieć, Jeśli dokument gotowa, to wtedy wejść zadzwonić. A potem, gdy złożone, call-- jak, jeśli tak a tak złożone, my nazywamy jakąś inną funkcję. Funkcja anonimowy po prostu nie ma nazwy, i będzie to po prostu wykonać w ramach tego rodzaju rzeczy. Więc w tym przypadku, co to mówi jest, gdy nasz dokument jest gotowy, wykonania tej funkcji. Funkcja ta składa wszystko w tutaj. A potem następna warstwa jest OK, gdy wejścia jest składany, wykonanie tego. To jest po prostu sposobem denotowania co powinno być wykonywane, gdy. To dosłownie funkcja, która nie mieć nazwę, więc mają tendencję do zagnieżdżać się wzajemnie ponieważ nie można nazwać ich po imieniu. OK? Dosłownie, anonimowa funkcja jest tylko funkcja bez nazwy. To wszystko. Tylko sposób na hermetyzacji różne rzeczy że chcemy wykonywane w określonym czasie. PUBLICZNOŚCI: [niesłyszalne]. GŁOŚNIK 1: odpowietrznik? Gdzie? PUBLICZNOŚCI: W nawiasie po funkcji? GŁOŚNIK 1: Po funkcji. Który? PUBLICZNOŚCI: Zarówno. Jeśli umieścisz, jak, impreza, lub jeśli umieścić argument tam, byłoby to źle? GŁOŚNIK 1: W tym przypadku, jak sądzę można umieścić argument tam. Ale ponieważ nie musimy Argument, że nie powinno być. Jak, to cała, jak, należy tylko mają rzeczy, które są konieczne typu rzeczy. W taki sam sposób, jeśli mamy jakiekolwiek Funkcja, która ma int main void-- jak, z int głównej pustki, ty int arg może zrobić v, cokolwiek. Ale jeśli nie potrzebujesz tych, ci nie powinien mieć je tam. Samo. Emma, ​​nie masz pytanie? OK. Cool. OK. Tak więc to, co mamy do tej pory, gdy nasze Dokument jest gotowy, wykonanie tego. Teraz patrzymy na gdy jest złożony. Więc teraz mamy naprawdę sortowania mięsa naszych rzeczy. Więc musimy uzyskać wartość, która złożone użytkownika, czy to nazwa lub pusta. I wtedy musimy albo zwrot ten alarm lub zgłoszenie błędu. Tak czy inaczej. Więc jak możemy zadeklarować Zmienna w JavaScript? Var. Więc powiedzmy, nazwa zmiennej equals-- lub faktycznie, my będziemy to wartość od Myślę, że to imię. OK. Tak więc mamy tu pewną wartość, że my chcą wyciągnąć od naszego wejścia formie. Tak więc w taki sam sposób, my niby nie wejść, może ktoś mi powiedzieć co my może być wywołanie w ramach tutaj jeśli chcemy uzyskać Nazwa z formularza? A jeśli spojrzeć na naszego formularza tutaj, zauważymy, że mamy identyfikator nazwy. PUBLICZNOŚCI: [niesłyszalne]. GŁOŚNIK 1: Nie ma myśleć o tym jako tablica. Nie musisz się o to martwić. Więc po prostu mieć jakieś imię. A potem, ponieważ JavaScript i rzeczy to dziwne, nie możemy po prostu zrobić "imię". Aktualnie mamy zadzwonić niektórych funkcji, które daje nam, jak wartość tego identyfikatora. OK? Więc to jest właśnie .val. PUBLICZNOŚCI: [niesłyszalne]. GŁOŚNIK 1: OK. Więc z JavaScript, tego rodzaju co tu właśnie przechodzi. I można myśleć o tym as-- to jak prawie w getElementById, gdzie getElementById faktycznie powrót pełną rzeczy dla Ciebie. $ ("# Nazwa") jest jak, OK, mam to, mam do niego dostęp, ale jeśli rzeczywiście chcesz go zwrotu wartości you-- PUBLICZNOŚCI: Czy jak wskaźnik? GŁOŚNIK 1: To trochę jak wskaźnik. Możesz myśleć o tym jak Trochę jak wskaźnik. Jak, to mówi, OK, wiem, jak się tam dostać, ale rzeczywiście dostać się z wartości Opisz musisz wyraźnie o to poprosi. I niestety, oczywiście, że nie zbyt wiele z JavaScript i jQuery. Więc to będzie zejść do, jak bardzo Ci guys--, co pan wie, to, co się stało, że widział, a co można trochę logicznie odgadnąć. Ponieważ niektóre z tych rzeczy, to prawdopodobnie mógłby uzyskać w połowie drogi. Ale aby to całkowicie w porządku, Myślę, że ten problem prawdopodobnie miał jeden z najniższych wyników. PUBLICZNOŚCI: Jak, na przykład, o [niesłyszalne] wejść, dlaczego nie można umieścić val nie? GŁOŚNIK 1: W tym jednym? Publiczność: Tak. 1 głośnik: Tak. Ponieważ jest to rodzaj od lubią, jak powiedzieliśmy, niektóre wskaźnik, i to ja odwołanie to i rzeczywiście coraz nam wartości. PUBLICZNOŚCI: Podczas gdy [niesłyszalne]? GŁOŚNIK 1: Dla wejść, Wejścia tylko some-- to jak jesteśmy tylko patrząc na to jako całość, i to .submit mówi nam, co musimy wiedzieć. jQuery i JavaScript jest dziwne. Wiem. Wiem, chłopaki. Wiem. Nie ma powodu, ja nie programować internetowej. Żartowałem. Nie miałem wystarczającej ekspozycji na niego. PUBLICZNOŚCI: [niesłyszalne] CSS. [Śmiech] GŁOŚNIK 1: OK, to jest CSS. CSS jest po prostu, jak, zrobić rzeczy dość, to nie tak, niech sobie z danymi. Jest różnica istnieje. OK. Więc teraz mam nadzieję, że to part-- także na Problem jak ten, w którym nie może znać składnię, można być podobne, OK, może masz jakąś wartość var i być jak załóżmy I ma wartość poprawnie. A potem można prawdopodobnie napisać tę kolejną część. To kolejna część będzie prawdopodobnie wydaje się o wiele bardziej proste, czy miałoby to logiczne Poczucie do was. Zważywszy, że to, co napisałem do tej pory, Wiem, że będę jak, hmm, tak, Nie wiem, że na quiz. Można całkowicie Napisać psuedocode a następnie przebić się prawdziwym kodzie kiedy you-- to trochę jak matematyka. Jeśli kiedykolwiek miał kilka Problem z podziałem na części, gdzie nie wiem jak ominąć pierwszy krok, ale wszystko inne opiera się na tym pierwszym etapie, po prostu powiedzieć, jak, zakładamy x równa się cztery. A następnie uruchomić z nim, prawda? Możesz zrobić to samo z kodem. Więc można powiedzieć, zakładamy Mam prawo wartości. Następnie zrobić kolejną część tutaj. Ponieważ ta część rzeczywistości powinny być całkiem logiczne. Więc musimy sprawdzić jeśli nasza wartość jest pusta. Albo jeśli jakaś nazwa, faktycznie dać ostrzeżenie. Więc co może chcemy sprawdzić? Chcemy mieć trochę If. Co sądzisz naszym przypadku będzie? Musimy sprawdzić, czy wartość is-- jeśli nie jest pusty. Doskonałe. Dokładnie. OK. Więc jeśli tak jest, co chcemy zrobić? Chcemy rzucić nieco wpisu, prawda? Więc to tylko czujny. A potem, co chcemy w środku. Więc co mamy mieć wewnątrz naszego wpisu? PUBLICZNOŚCI: "Dzień dobry". GŁOŚNIK 1: Przecinek. A potem zrobić wam Pamiętam, jak łączyć? PUBLICZNOŚCI: Plus. GŁOŚNIK 1: Plus. Więc chcemy mieć plus. A potem musimy kolejny plus dla naszego wykrzyknikiem. Cool. OK. W przeciwnym razie, co może chcemy zrobić? Nie chcemy robić nic, prawda? Więc po prostu return false. Nie to, co chcę zrobić. OK. I to te, z course-- co ważne jest, aby pamiętać, aby zamknąć Twoje anonimowe funkcje. Więc jeśli zauważysz, mamy jedne Funkcja tutaj kończy się tutaj. Więc musimy zamknąć ten pierwszy i dodaj średnik. A potem ten tutaj ma zrobić z tej anonimowej funkcji, więc zamknij ją. To reakcja odruchowa oszczędności. Tak. PUBLICZNOŚCI: Czy istnieje powód that-- tylko we wszystkich przykładach w JavaScript które widziałem, mamy pierwsze nawiasy klamrowe na tej samej linii, w funkcji? GŁOŚNIK 1: To stylistyczne. Tak. I rzeczywiście, jeśli wziąć 61, możemy nie wszystkie nasze nawiasy klamrowe w ten sposób. Hę? PUBLICZNOŚCI: Jeśli nie zrobić na PSET, jest złe dla stylu? 1 głośnik: Nie Mamy wyraźnie powiedział faceci to zrobić. Ale faktycznie, jest to rodzaj konwencji dominującej w wielu klasach C i JavaScript i jQuery. Tak oczywiście, jestem sure-- i rzeczywiście, jeśli było zrobić ten problem całkowicie w ciemno bez spojrzał na niego, prawdopodobnie jest bardzo mało sposoby chciałbym mają zdobyć to. I może być jak, OK, może ja trzeba chwycić coś, co jest wejście. I myślę, że mając wiadomo, że jak, OK, jeśli chcę coś z formy, który ma identyfikatora I odnoszą się do niego w ten sposób, I pewnie się tego. Mogłoby mi się to. Ale tak naprawdę, jedyną rzeczą, która myślę, że Chciałbym naprawdę jest to tutaj. Więc to trochę ważne wiadomo, jak z każdym trudnym testu Ci rodzaj wybrać swoje walki, prawda? Jeśli wiesz, że nie dostaniesz że pierwsza część dla jQuery, jak powiedziałem, Zakładam, że masz tę wartość i to, co można z nim. A jeśli masz czas, wrócić i spróbować wypełnić kawałków. Ale nie pozwól takie pytanie to naprawdę bagien Cię. Bo co? To było jedno pytanie jQuery z całego egzaminu. Więc tak, że to będzie super, jeśli go masz. PUBLICZNOŚCI: [niesłyszalne] ci Zapraszamy do korzystania z jQuery. GŁOŚNIK 1: Jesteś Zapraszamy do korzystania z jQuery. PUBLICZNOŚCI: OK. [Niesłyszalne]. GŁOŚNIK 1: Jak byś go nie używać? Musiałbym zajrzeć się wszystkie moje JavaScript. To rzeczywiście dużo łatwiejsze, Myślę, użyć jQuery, ponieważ w rzeczywistości zmniejsza jQuery Kwota JavaScript piszesz chyba przez, na przykład, w połowie. Tak więc nasz kod będzie prawdopodobnie dwa razy dłużej bez tego. Więc jeśli recognize-- największym co zabrać na ten problem są wzorce. Jeśli korzystasz coś z postaci, masz zamiar użyć cudzysłowu, hash, co próbujesz dostępu. Jeśli jest składany, chcesz używać coś jak .submit. Prawdopodobnie będzie korzystać anonimowa funkcja tam. Jeśli rzeczywiście potrzeba wartości coś, masz zamiar zrobić, cytaty, hash, cokolwiek to pole jest, .val. I uznając wzory tak będą daleko bardziej użyteczne niż naprawdę znając piaszczysty Nitty. Tak. PUBLICZNOŚCI: Więc jeśli użytkownik wysyła swoją nazwę i biegnie przez tego oświadczenia woli pójść w dół i return false po tym? GŁOŚNIK 1: Nie, ponieważ alert, można myśleć o tym, jak powrót. Tak. Więc to zakończyć. Tak. PUBLICZNOŚCI: Mógłbyś [? miejsce?] nawiasy od przedstawienia, nawiasów, coś? GŁOŚNIK 1: ja, ja wierzę. Ten jest zamknięta właśnie tutaj. A potem ta zostanie zamknięta tutaj. PUBLICZNOŚCI: Och, nie. Dobrze. GŁOŚNIK 1: Oczywiście, trochę, małe rzeczy składniowe tak, to prawdopodobnie będzie wystarczy zakreślić go i być jak, nie zapomnij nawiasów. Ale tak. OK. Czy mamy jeszcze jeden że chcielibyśmy zrobić? Czy wy się binarną jednego drzewa? Czy chcemy, aby przejść nad tym jednym? Czuję się jak drzew binarnych i DOMS powinny być punkty że chłopaki się dość łatwo. Nie chcę Cię stracić punkty na tym. OK. Zróbmy to DOM tutaj. Żałuję, że mój powierzchni, tak I może po prostu zwrócić na ekranie. To, co robiłem w zeszłym roku. OK. Tak jak wspomniałem, rozmawialiśmy o DOM Document Object Model. Pewnie będzie Ci niektóre trochę jak ten fragment i poprosi, aby utworzyć drzewo dla niego. A to po prostu wszystko ma do czynienia z prowadzeniem przez tagi. Więc spróbujmy to zrobić. Poza tym, jak zwykle, jeśli faceci robić te quizy, jak bardzo zaleca się zrobić w praktyce, żadnego z nich, że jesteś podobny, I naprawdę nie rozumiem, co jest tu dzieje, po prostu, oczywiście, wysłać do mnie e-maila z pytaniem, a ja wyjaśnić najlepiej jak potrafię. OK. Mamy jakiś dokument, a my mamy HTML. OK. Tak więc jesteśmy po prostu analizy tutaj znaczniki, prawda? Tak więc to, co widzimy comes-- jakie są dwie podpozycje poniżej HTML? Zwłaszcza, że oni wcięty prawidłowo? Głowa i Ciało. Ach. Głowa i Ciało. Piękny. Więc zacznijmy tutaj z głową. Co znajduje się pod głową? Co znajduje się nasz kolejny tag? Tytuł. A następnie w ramach tytułu, quizu. OK. Tak dosłownie, to tylko spacery po tagach, OK? Tak więc, jeśli mamy Ciało, jak przejść przez, Ciało ma trzy rzeczy wewnątrz niego, prawda? Ma trzy DIV. Każdy dział ma własne małe pudełko. A co w pierwszym div? [Niesłyszalne] A potem następny jest w srodku, które ja po prostu się skracać. I wtedy ostatni jest na dole. Tak naprawdę, to jest po prostu spacerów. A ponieważ mamy zamiar dać Chcesz HTML, który jest odpowiednio wcięta, można dosłownie uruchomić poprzez i być jak, OK, tutaj jest HTML. Więc to jest najbardziej zewnętrzna rogu, albo najdalej w lewo, tak, że ma być jego własną rzecz. Są to w tym samym wcięcia. Więc wiemy, że głowa musi na tym samym poziomie, co organizm, ale pod spodem HTML. To, co my tu mamy. Głowa i ciało są rodzeństwem, ale są w formacie HTML. A potem po prostu iść do każdego z nich. Więc głowa, która posiada tytuł ma quizu, jak widzimy tutaj. A następnie w tym przypadku mamy ciało, które ma te trzy linie. Więc to wszystko rodzeństwo wszystko pod ciała. OK? Więc mam nadzieję, że gdy zobaczysz coś takiego, jesteś jak, tak, ja po prostu narysować drzewo. To będzie wielki. OK. Więc chciałem się upewnić chłopaki wiedzieli. Więc dlaczego nie idziemy do 32 z naszej binarnego drzewa? Ponieważ po zrozumieniu binarne Wyszukiwarka drzewo, to naprawdę nie jest tak źle. Więc Everett, mogę erase-- I myśli, to wszystko jest w trybie online, też. Więc jeśli masz jakiekolwiek pytania. Stracił trochę miejsca tam, ale jest OK. Więc wyszukiwanie binarne drzewo tylko sposób organizowania danych nie jest w tablicy, w której korzeniem jest zawsze większa od lewej dziecka i korzeń zawsze mniejsze niż prawa dziecka. OK. Mamy więc tutaj to wielkie drzewo wyszukiwania. Mamy te numery, 34, 59, 20, 106, 36 i 52. Musimy zorganizować je w taki sposób, takie, że korzeń jest większa niż wszystko po lewej stronie i mniej niż Wszystko po prawej stronie. I zazwyczaj, co Cię chcesz zrobić, to spróbować znaleźć coś w środku. Z binarne drzewa poszukiwań, możesz mieć poeksperymentować trochę z nim. Ale w tym przypadku, po prostu Zakładamy, że znamy ten pierwszy. Więc 36 to nasz pierwszy tutaj. Zazwyczaj chciałbym spróbować i wybrać coś o w środku, że będzie Prawdopodobnie uzyskując najlepsze wyniki. Teraz wiemy, że wszystko na ta strona powinna być mniejsza niż 36. Ale także, co można zobaczyć jest że mamy dwa miejsca tutaj. Tak więc jeśli wiemy, że musimy dwa numery, które są mniejsze od korzenia, Następnie można po prostu zamówić nich i wybrać numer trzeci. OK. Więc dlaczego nie zacząć od tej strony? Tak więc jeśli wiemy, że wszystko na ta strona musi być mniejsza niż 36-- ale jeśli spojrzymy na ten jeden, Wiemy, że ten numer musi być mniejsza od tej liczby, prawda? Ponieważ liczba ta tutaj znajduje się po prawej stronie. I pamiętaj, tak jak w naszym większy drzewa, wszystko na prawo musi być większa niż korzeń. W ten sposób wiemy, że co jest w tym potrzeb być większa niż co tutaj. OK? Mamy więc dwie możliwości dla tych dwóch pęcherzyków. Mamy 32 i 34-- lub przykro. 20 i 34. Więc jak myślisz możemy umieścić je w? Jeśli ta musi być większy niż ten, to oznacza, że ​​chcesz mają 20 i 34 tutaj tutaj. OK. Tak więc w taki sam sposób, patrzymy w tym rodzaju sub drzewa. I powiedzieć, OK, nie mamy 36. Mamy 106, 52 i 59. Prawda? W tym przypadku tutaj, my wiem, że to jeden potrzeb mieć jedną rzecz, która jest większa niż że i jedna rzecz, która jest mniejsza niż to. Prawda? Jeśli więc umieścić je w porządku, to tylko o ustalenie, że wartość środkową ponownie. Więc nasza wartość środkowa jest 59. Tak więc możemy powiedzieć, OK, co jest mniej niż 59? Dobrze, że to 52. A co jest większe niż 59? Dobrze, że to 106. OK? Więc to tylko nieco jak puzzle. Zwykle umożliwia, zwłaszcza w małych drzew, takich jak ta, jeśli po prostu zamówić, jeśli Ciebie wiedzieć, jak wiele jest w lewo i jak wiele są na Dobrze, że można po prostu pozwalają wybrać co powinna być w katalogu głównym. A potem można rodzaju z pracy tam. Mm-hm. 33? Jasne. OK. Dlatego chcemy, aby utworzyć węzeł lub wyszukiwanie binarne drzewo. I spójrzmy na to, co może być w nim. I myślę, że to wolę faktycznie nasz ostatni problem. Ach. OK. OK. To tak, jakby to, co możemy myśleć jako węzła, prawda? Mamy jakąś wartość, a my wiem, że to będzie albo że lewa i prawa dzieci. Binary search tree-- tego środka że ma co najwyżej dwoje dzieci. OK? Pomyślmy o tym, jak my zdefiniowane połączonej listy, prawda? Mieliśmy trochę int, że reprezentuje wartość. Mieliśmy jakiś wskaźnik, który reprezentowany to, co dzieje się dalej. Binarne drzewo poszukiwań jest bardzo podobny. Mamy jeszcze jakąś wartość, n, że dajemy go, prawda? A potem zwrócił nich bardzo wyraźnie ze strzałkami, ponieważ są skuteczne wskaźniki. OK? Więc n wynosi zwykle co? To jakaś wartość. Czego zazwyczaj je jako? Int. Tak więc mamy trochę int n, int lub wartości, czy jak chcesz to nazwać. A potem mamy w lewo Dziecko i prawa dziecka. Prawda? I wiemy, że to, co oni point-- co oni wskazując? Oni wskazując na inne węzły, prawda? Więc w jaki sposób możemy zadeklarować wskaźnik węzła? PUBLICZNOŚCI: [niesłyszalne]. GŁOŚNIK 1: Mm-hm. A my będziemy mieć dwa z nich, prawda? A potem możemy dosłownie nie pozostawił dla lewego dziecka i tuż na prawo dziecka. Actually-- przykro. Ponieważ potrzebujemy struct. Tak więc struktura jest dlatego, że nie mają zakończył oświadczając jeszcze węzeł. Więc węzeł jest w ramach tutaj. To coś w rodzaju rekurencyjna definicja, prawda? Tak więc, gdy jesteśmy w ta definicja, możemy nie zakończył oświadczając Węzeł jako struktury tak musimy zrobić, struct węzeł po prostu powiedzieć, tak, jesteśmy w rzeczywistości odnosi się z powrotem do Nas typu rzeczy. To tak jak kiedyś to stworzony, będzie dobrze. Więc jak duży myślicie to jest? Jaka jest wielkość tej struktury? 12. Dlaczego? Dokładnie. W istocie, jednym z Pierwsze pytania jedna Quiz One jest o rozmiarach, dlatego zapytałem. Dobrze. Jedziemy do końca, bo DCE będzie krzyczeć na mnie, czy nie. Ale jeśli macie jakieś pytania, Oczywiście, napisz do mnie, daj mi znać. Macie zamiar go kołysać. Jestem bardzo podekscytowany. Wy zostanie wykonane w od środy, a następnie dostaniesz się do pracy w finale projekty, i to będzie super. Będę tu obok tydzień od 04:00 do 04:30 jeśli chcecie przyjść odebrać quizy. Jeśli chcesz znaleźć mi jakiś inny czas lub po prostu koordynować inny czas, prosimy o poinformowanie mnie. W przeciwnym razie, to jest nasz ostatni punkt. Tak wspaniale było was zobaczyć. Poświęć więcej cukierków. Powodzenia na quiz.