ZAMYLA Chandler: Hey, wszyscy.
Zapraszamy do sekcji.
Dziś jest po prostu wszystko będzie quizu przeglądu do quizu w środę.
Mam nadzieję, że każdy pamięta, że mają quiz na środę.
A jeśli nie, cóż, teraz już przypomniał.
Więc środa upewnij się pokazać dla klasy lub inne miejsca noclegowe jak
konieczne.
Chłopaki będą niesamowite.
To będzie wielki.
I mam zamiar zrobić wszystko co mogę pomoc w przygotowaniu się dziś do quizu
teraz.
A także w przypadku, gdy nie wiem, istnieje szeroki przegląd sesji kurs
dzisiaj o 7 rano w Northwest laboratoria pokój B103.
Możesz zobaczyć mnie ponownie na bis, jako Będę prowadzić część tej sesji przeglądu
również.
Więc jeśli nie masz dość mnie teraz można przyjść ponownie wieczorem.
>> W porządku, więc pierwsze rzeczy pierwsze.
Zaledwie kilka wskazówek, zanim quizów rzeczywiście nurkować w do opinii.
Tak jak w przypadku każdego egzaminu, praktyki z pewnością pomogą Ci się.
Są to egzaminy z przeszłości sześć lub siedem lat na nie,
więc to dużo praktyki materiały dla was mieć.
I rzeczywiście, dzisiaj jest tak naprawdę będzie będzie ponad wszelkie tematy
że macie pytania na temat, jak również w praktyce przez problemy pracy
z quizu zera.
Więc rzucę się quizu zera z ubiegłego roku tutaj,
i możemy pracować przez problemy że chłopaki chcą.
>> Tak ćwiczyć.
Masz zamiar zacząć robić to dzisiaj.
Kod na papierze.
Więc tak, jeśli wszyscy może rzeczywiście dostać się
papier, to będzie wielki, bo nie jesteś
będzie musiał na swój komputer egzamin i wypisując kod ręcznie
Często jest znacznie trudniejsze niż można się było spodziewać.
Jesteś przyzwyczajony do tak widząc go i wpisując go,
i masz kompilator pomóc, gdy masz błędy,
ale nie rozumiem, że na egzaminie.
Więc to jest bardzo ważne, aby faktycznie być w stanie napisać kod,
i że pamięć mięśni robi będzie ręcznie naprawdę pomóc.
>> Więc jesteśmy już trochę do siebie.
Jest poniedziałek.
Egzamin jest w środę.
Ale jeśli masz czas, zdecydowanie przyjąć jedną
egzaminów z ubiegłego roku lub Rok wcześniej w ramach ograniczeń czasowych
na godzinę i pół.
Wystarczy wybić godzinę i pół czasu,
i siedzieć sobie w dół, a po prostu pracować przez problemy
jakbyś był rzeczywiście biorąc go, ponieważ jeden
z największych rzeczy, które słyszymy o quizy, że są one bardzo długo.
Jest dużo materiału.
Istnieje wiele pytań, i większość ludzi nie może skończyć.
Wiem, że całkowicie nie zakończył moje quizy kiedy wziąłem klasę.
>> W tym pamiętać, jako mniej wygodne sekcji,
Rozumiemy, że ten kurs jest przeznaczony aby zaspokoić dla osób na wszystkich poziomach.
Cały powód, musimy podzielić mniej wygodne, gdzieś pomiędzy,
i wygodniejsze jest rodzaj uczynić go bardziej sprawiedliwy.
A jeśli są mniej wygodne, to sam w sobie nie jest konieczne, aby dostać wszystko.
Jak jeśli były coraz wszystko, prawdopodobnie
być bardziej wygodnym sekcji.
Tak oczywiście nie pokonać samych siebie zbyt trudne, jeśli nie można zakończyć egzamin.
Weź go ode mnie, ja tego nie zrobiłem.
Jestem jeszcze koncentrator.
Jestem wciąż pomaga uczyć kurs.
Będzie dobrze.
Dobrze.
I wreszcie, trochę się przespać.
Oczywiście z każdym egzaminem zawsze powiedzieć.
Wkuwania noc przed i nie otrzymuję żadnych snu
Może jeśli nie not-- że działa dla Ciebie, idź do niego.
Jednak dla większości ludzie, coraz przespać,
pozwalając swój mózg i odzyskać resztę przed wejściem w do egzaminu
będzie naprawdę pomóc.
Również nie będzie prawie cukierki na pewno będzie na egzaminie,
więc trzeba się doczekać.
Wy zamiar zrobić wielki.
To będzie dobrze.
A teraz w następnej półtorej godziny I spróbuje prep was najlepiej jak mogę.
>> Więc mam slajdy z zasadniczo wszystkie części aż do teraz.
Nie zamierzam przejść wszystkie z nich, ponieważ nie jest
wykonalne w godzinę i pół, jak również jak działa poprzez problemów praktycznych.
Zamiast więc mam listę tematów.
Są to wszystkie rzeczy, że możemy quiz na.
Jeśli jest coś, że naprawdę wyskakuje
że chcesz przejść, że Ciebie chce mi się iść na pojęciowo,
Mogę spróbować i dać tam przegląd.
Albo, jeśli chcesz, aby przejść w prawo, aby robi problemy praktyki razem,
możemy to zrobić.
To do was.
Nie jest to, że wielu z was.
Więc to, co faceci lubią robić.
Chcę być najbardziej pomocne ku was.
Więc dam ci po prostu patrzeć.
>> Publiczność: Jedno jest Wykres, który trzymamy
mówią o stosu i sterty.
Tylko cała idea że i co to oznacza.
ZAMYLA Chandler: Tak, OK.
To wszystko jest sposób na koniec, więc pozwól mi przewijać.
>> Publiczność: Nie mamy do Zrób to teraz, ale co tam.
>> ZAMYLA Chandler: Czy istnieje anything-- tego.
Czy tego rodzaju rozmytej dla ludzi?
Publiczność: Tak, drugi, że.
I możemy również nie przepełnienia buforu?
ZAMYLA Chandler: Przepełnienie bufora?
OK.
Więc jest całkiem przepełnienie bufora proste po prostu rozmawiać.
Jest to w zasadzie buforuje myślisz o część pamięci tablica, że ​​masz, prawda?
Zwykle mówimy o przepełnienie bufora, gdy
nie masz kontroli, jak wiele użytkownik jest wprowadzenie, prawda?
A pomysł jest jest przepełnienie buforu
ich wprowadzenie daleko zbyt wiele danych na przestrzeni
które zostały przydzielone do nich, prawda?
>> Więc jeśli mówisz, dać mi jakiś komunikat, że jesteśmy
przy założeniu, że są one zamiar dać nam rozsądne wiadomość długość.
Może kilka linii, etażerka.
Tak więc nie sprawdzić.
Zamiast karmić nas Cała książka to wiadomość,
i przelewa kwotę miejsca, które mamy przeznaczone na ten.
A co się dzieje, to może nadpisać miejsca, które nie miało.
>> Tak wiem, że profesor Malan coś o atakami przepełnienia bufora.
Tak więc to, gdzie użytkownik będzie wejście niektóre ogromne ilości danych, w nadziei,
że zastępuje przeszłość koniec swojego bufora
i zastępuje something-- Zastanawiam I mamy te slajdy tutaj.
Nie sądzę, że mamy te slajdy tutaj.
Ale w zasadzie on nadpisuje pewna część pamięci
który umożliwia mu dostęp do części komputera
że nie będzie zazwyczaj mają dostęp do.
>> Najważniejsza rzecz, z Przepełnienie bufora jest tylko
do zrozumienia, że ​​to się dzieje, gdy nie są
sprawdzenie, ile użytkownik jest wprowadzenie.
Gdy nie jesteś rodzaju zabezpieczenie przed tym.
I w najprostszej rzeczy, to tylko twój użytkownik
wprowadzanie ogromnej ilości danych w próbie
nadpisać jakiś bezpieczeństwo część pamięci.
To wszystko to jest.
>> Więc to tutaj, stos i sterty.
W zasadzie to wszystko jest tylko reprezentacja pamięci
i gdzie rzeczy są przechowywane.
To naprawdę rodzaj wszystko, co musisz wiedzieć.
Największe rzeczy musisz wiedzieć, to
that-- pozwól mi zobaczyć, czy tam better-- tutaj.
Więc to jest stos tutaj.
>> Więc stos ma do czynienia z wszystkich swoich funkcji
że dzwonisz w danym momencie.
I co ważne, aby pamiętać, schodzili z ostatniego tygodnia z malloc
jest to, że tak naprawdę nie ma potrzeby kontroli nad nim.
Wszystko zależy od tego, kiedy pewna funkcje wykonywania.
A gdy realizują one mają tak zwane ramki stosu
że go tutaj.
>> Więc to wszystko trochę się dzieje bez prawdziwego wkładu ze ciebie.
Napisać program, i uruchomić ją,
i stos rodzaju trwa dbać o siebie, ponieważ musi.
Więc jeśli w magistrali dzwonisz kostki, które będą przekazywane tutaj.
To będzie utworzyć ramkę.
Ale nie ma nic jawnie robić aby stworzyć ramkę stosu innych niż
Napisać funkcję, aby rozpocząć, OK?
>> Jaki jest twój rodzaj pod kontrola jest kupa z malloc.
Jeśli więc malloc coś, wszystkich przyjmowanych aktualnie pamięci ze sterty.
I to jest pamięć, która Cię mają, z braku lepszego słowa,
wyraźna kontrola, bo pamiętam z malloc
to w zasadzie nie aż można powiedzieć inaczej.
Dla tych z Was, którzy oglądałem odcinek w zeszłym tygodniu,
to tam, aż powiesz to odejść.
Będzie tam chyba być inaczej nie powiedział.
Tak jest po prostu coś kupie można myśleć jako pamięć
że masz kontrolę.
A to są tylko dwa wielkie rzeczy.
>> Poza tym, nie powinien mieć martwić się zbytnio o stosu i sterty
pytania lub po prostu zazwyczaj więcej jeśli parametry lokalne
Funkcja lub byłoby na stosie lub na stercie.
Oczywiście w tym przypadku byłoby stos.
Jeśli mallocing coś, gdzie jest, że pochodzi z?
Sterty.
Jeśli spojrzeć na praktyki quizy, tych, są zasadniczo typu pytań
że mają.
>> Nie musisz się martwić zbyt wiele o nim.
Dostać się do bardziej wyraźnie o stosu i sterty
później lub w innych klasach CS.
Więc po prostu rodzaj Generalnie pomysł co to jest
będzie dobry, co mam tylko rodzaj podszedł.
Wszelkie inne tematy?
Tak?
>> Publiczność: Czy możesz przejść wskaźnikami ponownie bardzo szybko?
ZAMYLA Chandler: Wskaźniki?
Chcesz koncepcyjne przegląd wskaźników
lub trenujesz ze wskaźnikami?
Publiczność: Trochę jak składni.
ZAMYLA Chandler: składnia?
Tak.
OK, mamy się tam dostać.
Tak, więc jest to po prostu rodzaj coś gdy masz funkcji rekurencyjnej,
za każdym razem, że funkcja jest rekurencyjna nazywa, to tylko dodaje inny ramkę stosu.
Dość dużo przykładów od tego, jak tak naprawdę nie
mieć kontrolę nad ramki na swoim stosie.
>> OK, wskaźniki.
W porządku, więc tworzenie wskaźników.
Pamiętaj, to jest po prostu wpisać gwiazdkę.
Tak więc, niezależnie od typu danych, które masz zamiar być skierowane do.
Więc będzie to wskaźnik do int.
Byłby to wskaźnik do char.
Byłby to wskaźnik do pływaka.
Więc to w zasadzie cokolwiek chcesz to być wskazując,
Gwiazda jest jak zadeklarować wskaźnik, OK?
>> Ale to oczywiście robi się trochę trudne, gdy masz wskaźnik
lub masz gwiazda cokolwiek.
Tak duża różnica jest kiedy declaring--
tak więc mamy some-- to zajmuje trochę int gwiazdę.
Więc to jest jakaś wskazówka wzywa x do int, prawda?
Więc pamiętaj, co to robi Jest to wymaga systemu z x.
I to będzie mieć jakiś adres, prawda?
Więc powiedzmy, że to jest nasz adres.
Wskaźniki posiadają adresów.
Więc, co to mówi, jest to, że w tym lokalizacja, jesteśmy przechowywania int.
>> Tak więc kolejny sposób możemy myśleć o jest to, że pewne int.
Tak naprawdę nie przypisane do jeszcze coś, ale to jest po prostu int.
Tak więc możemy zrobić, to jeśli mamy gwiazda x wynosi 5, to staje się 5, OK?
To, co mówi, iść do x jest wskazując, więc idź na ten adres
i sprawiają, że równe 5.
Tak więc możemy przypisać 5 na ten adres, prawda?
>> A potem, jeśli to zrobisz, to daje nam adres.
To jest adres wykonawcy.
Więc jaki jest adres x?
Nie wiemy.
Nie przypisany mu adres.
Można powiedzieć, że to some-- teraz daliśmy to adres, więc adres jest 4.
I rzeczywiście, jeśli mamy przejść przez coś tak, niby to, co zrobiliśmy.
Tak działa przez here-- znaleźć to pomaga, jeśli wyciągnąć wskaźniki.
Jeśli jesteś na egzaminie, ja bardzo polecam rysunek pudełka.
>> Więc ten pierwszy, int x jest równe 5.
To po prostu oznacza, że ​​mamy pewne miejsce w pamięci, że jest 5, prawda?
I nasz stolik tutaj mówi nam że jest pod adresem 0x04.
A następnie tworzymy jakiś wskaźnik.
Warto więc podzielenie go jednym na raz.
Więc to tworzy część pudełko na int, prawda?
To będzie trzymać jakiś adres na nim.
Więc to jest jakaś wskazówka.
I ta kreda jest naprawdę mała.
Tak więc mamy tu wskaźnik.
I mówi nam nasz stół to adres jest 0x08.
Fajne.
A my przypisujemy na adres x.
>> Pamiętaj, wskaźniki posiadają adresy, OK?
Więc jeśli chcemy trzymać x, mamy użycie operatora adres, który
jest ampersand, aby uzyskać adres x, który w tym przypadku 0x04.
A potem, jeśli mamy niektóre int kopia, to po prostu
tworzy pole, które w inny posiada int o nazwie kopii.
A jeśli przypisać mu this-- tak to jest odwołanie go.
Więc to, co mówi, idź do Wskaźnik adres posiada.
Wskaźnik posiada ten adres, tak, że idziemy tutaj,
i powiedzieć, OK, co w niej jest?
To 5.
Więc kopia staje się 5.
Ma sens?
>> Co zrobić, gdy próbował przypisać to tylko wskaźnik.
Co oznacza wskaźnik rzeczywiście równe?
Byłoby to po prostu być cokolwiek Wskaźnik zawiera, prawda?
A potem co, gdybym to zrobił?
Co by kopia będzie teraz?
>> Publiczność: 0x08.
ZAMYLA Chandler: Tak, Adres naszego wskaźnika.
Każda część, że musi być ponownie wyjaśnić?
Fajne.
Jest to z pewnością bardzo zabawa problem na jednym quizu
że możemy nad tym daje więcej praktyki.
Chłopaki z ostatniego tygodnia można powiedzieć, że nie było tak źle.
Mamy przez cały wykres, i każdy zrobił wielki.
>> OK, więc to przegląd od składni wskaźników.
Najważniejszą rzeczą jest zrozumienie, w jaki sposób ich tworzenia, czy odwołanie,
i adres, OK?
Fajne.
Wszelkie inne tematy przed zagłębimy się w praktyce.
Także jeśli jedziemy przez problemy praktyczne
i jest coś, co chcesz przypominające, możemy to zrobić też.
Czy masz coś?
>> Publiczność: strukturach i związane listy.
ZAMYLA Chandler: strukturach i związane listy, OK.
Więc elemencie.
Rzeczywiście będziemy nad tym dzisiaj też.
OK, więc elemencie.
Struktury są w zasadzie tylko sposobem, aby utrzymać
wiele wartości różnych typów.
Więc z tablicą jesteśmy zwężony tylko do jednego typu danych.
Nasza tablica albo musi być tylko numery, lub po prostu być znaków, lub po prostu pływa.
>> Ale może trzeba zawierać więcej niż to.
Może trzeba hold-- jeśli mówisz o studenta,
masz zamiar mieć swój dom, swoje Numer ID, ich wiek, w którym żyją,
prawda?
A wszystko to są różne rodzaje typów.
Więc nie można zapisać wszystkich osób w tablicy.
>> Więc co można zrobić, to można można utworzyć struct, który
można myśleć jak twój własny rodzaj danych osobowych.
Więc zamiast tylko o ints i zamiast po prostu o pływaków,
możesz mieć typ, że student ma wszystkie z tych pól w nim.
Tak więc sposób możemy zainicjować rzeczywiście nasi structury is--
ponieważ moje pisanie jest straszne, że zamiar przejścia do pisania.
Woo.
>> OK, więc jeśli chcemy stworzyć struct-- Ja po prostu się do niego tutaj.
Pomijać w głównym cokolwiek które będziemy używać później.
Więc tak, jak chcesz to zrobić to jest z typedef struct.
I niech po prostu nazwać to studenta ponieważ to, co używałem.
OK, więc znaczy, że jesteś typedef definiowania nowego typu, OK?
Są niuanse do kiedy nie tylko struktura kontra struct typedef.
Dla wszystkich zamiarów i cele, chłopaki są po prostu
zakładam, że są w przybliżeniu takie same i po prostu
użyć typedef struct teraz.
Będzie się dużo bardziej widoczne w twoim następny P ustawić co te różnice,
ale nie sądzę, trzeba martw się o to już teraz.
Chciałbym bardzo, a ty wiedzieć, jak utworzyć,
uzyskać do niego dostęp, i przypisać [? wartość. ?]
>> Nowy typ struct, i wzywamy go uczeń.
Więc po tym jak skończysz tworzenie tego, dla wszystkich zamiarów i celów,
będziesz miał typ nazwie uczeń.
I można myśleć o nim tylko jako rodzaj jak int lub float, lub char.
To jest po prostu inny typ, OK?
>> Więc w tym jednym, co mamy?
Mamy być może nazwę.
Więc może chcemy nazwę ciągu.
I mamy może int, który jest ID.
I mamy kolejny w to numer telefonu.
I mamy some-- zobaczmy.
Co jeszcze możemy mieć?
Zjemy łańcuch na jego domu.
Wszystkie rzeczy, które uczeń ma.
>> Więc to tworzy struct teraz.
Więc jak możemy stworzyć studenta?
Jeśli mamy jakąś zmienną, która jest Porozmawiamy o Walker tutaj,
więc have-- jesteśmy tylko Zadzwonię do tego walker.
On potrzebuje typ.
Jaki jest Twój typ?
Odbiorcy: Student.
ZAMYLA Chandler: Student.
Więc to po prostu tworzy obiekt co możliwe pomyśleć, że ma to wszystko.
Po prostu stworzył student walker.
Więc teraz musimy być w stanie przypisać wszystko, prawda?
Więc ma ktoś pamięta jak mamy dostęp w ramach struct?
Grupa docelowa: Okres.
ZAMYLA Chandler: Okres Dokładnie.
Więc jeśli chcemy przypisać mu imię, możemy to zrobić.
Oczywiście to będzie być: tu by tę część
znajdować się w głównym, więc faktycznie pozwól mi to zrobić.
Oświadczam, tak to powyżej głównym że możemy używać go w głównym.
Więc teraz chcę to zrobić, identyfikator, a my po prostu zrobić coś tam,
a następnie będziemy przypisać dom.
Bam.
Fajne.
>> Teraz powinniśmy potrzebować dostępu coś później on-- może we--
jeśli kiedykolwiek potrzebują dostępu do niczego, niech po prostu zrobić identyfikator int kopiowania.
I chcę, aby skopiować ID do tego Walkera.
Jak mogę to zrobić?
Musisz wejść w walker struct do [? przejść do?] [? E?].
I w ten sam sposób, że my przypisać go tutaj, jak
możemy uzyskać do niego dostęp, gdy chcemy podać tę wartość na coś innego?
Publiczność: Walker.id.
ZAMYLA Chandler: Tak, dokładnie.
Więc to jest dość dużo wszystko musisz wiedzieć o elemencie.
Trzeba tylko myśleć je jako inną zmienną.
Zasadniczo tworzyć swoje własny typ zmiennej, OK?
Go używać do ogłoszenia zmienne w żaden sposób.
Tutaj jest jeszcze walker zmienna.
To po prostu ma teraz zamiast typu studenta z int typ, lub ciąg typu,
lub typ char.
Jeśli był to łatwy sposób, aby porozmawiać o strukturach, to jest dosłownie
stworzyć własny typ danych który pozwala na grupy
Wszystkie te różne rodzaj danych razem.
Czy to ma sens?
OK.
To i dostępu z kropkami.
Prawie wszystko, czego potrzebujesz.
>> OK, skąd mój PowerPoint iść?
Oto ona.
No to jest dziwne.
Aha.
OK, fajnie.
Wszelkie inne rzeczy, czy też chciał udać się do praktyki?
Ćwiczyć?
OK.
Niesamowite.
Mam zamiar zakończyć to.
Jeżeli w dowolnym momencie podczas Pytania praktyki,
Cieszę zreorganizować i przejść przez rzeczy.
Więc mam Quiz zera tutaj.
Jeśli chcecie, aby wyciągnąć to się na komputerze,
po prostu lubię mieć pięć minut, aby przeglądać.
Może wybrać jakąś górę Pytania chcesz przejść.
Jeśli ludzie nie mogą się zdecydować, musimy po prostu powoli rozpocząć pracę za ich pośrednictwem,
ale jestem pewien, że będą pewne pytania, które są szczególnie
pragnie mówić i mieć mi pracować przez z wami wszystkimi.
Więc po prostu iść do przodu i trwać pięć minut.
Przewijać.
I to jest quiz z roku 2013.
>> Publiczność: Zero?
>> ZAMYLA Chandler: Tak, quiz, zero.
Nie robimy quiz jeden rzeczy.
Zrobimy to w ciągu kilku tygodni.
Również dla tych z was, którzy przyszedł późno, mamy cukierki,
tak czy faceci chcą cukierki?
>> Publiczność: Jasne.
>> ZAMYLA Chandler: Jestem po prostu przejdzie się.
Hej, czy wy się tutaj wcześnie, można dostać więcej cukierków.
To dobrze.
Ben, chcesz cukierka?
Chcesz, niektóre z nich?
Jest też Snickers jeśli ktoś chce Snickers.
Będę je zostawić tutaj i tutaj.
Zapraszam.
Chcesz więcej?
Publiczność: Wszystko gotowe.
Dziękuję.
>> ZAMYLA Chandler: A ja miałem ładny kupka tam na początku.
Chłopaki dostać się do quizu i Mogę mieć quizu klasyfikacji partii.
To chaos.
900 egzaminów.
To będzie świetna zabawa.
Będzie super.
Jestem pewien, że to jest jeden największego pracowników klejenia
dni w roku.
Czy ktoś zrobić od zera quizu w zeszłym roku jeszcze z ciekawości?
>> Publiczność: części.
>> ZAMYLA Chandler: Części nim OK.
Czy masz pytania dotyczące któregokolwiek z nich?
Publiczność: Ja już udał się do godzin pracy.
Dziękuję jednak.
ZAMYLA Chandler: Cóż, miejmy nadzieję, to jeszcze trochę pomocne.
Kiedy udać się do godziny pracy do tego?
Publiczność: Mój TF miał im tego popołudnia.
ZAMYLA Chandler: Oh.
Kto jest twoim TF?
Publiczność: Fred [? Wujaya?].
ZAMYLA Chandler: Jest tak wiele TFS.
Tak wielu.
Dobrze.
Każdy, kto ma jakiekolwiek zacząć, że mogę zanotować, że chcemy pracować?
Zakładam, że te wskaźniki jeden z tabeli.
Idź do niego.
>> Publiczność: Może przełącznik jeden.
ZAMYLA Chandler: Więc liczba 12?
Zakładam, numer 8 i 9 są prawdopodobnie Ones ludzie chcą przejść.
>> Publiczność: A 10 i 11.
>> ZAMYLA Chan: I znacie masz jedną stronę notatek, prawda?
>> Publiczność: Tak, tak, jakie są wolno nam założyć, że.
>> ZAMYLA Chandler: Masz prawo umieścić cokolwiek chcesz.
I to może być wpisany.
O ile pamiętam, nasz były wpisane.
>> Publiczność: Można zrobić tył i obie strony?
>> ZAMYLA Chandler: Tak, obie strony.
Więc coś w stercie i [? back-end?] kupie Twoja praca
razy.
Przydatne.
Może trochę rzeczy o wskazówek, aby pamiętać.
Składnia rzeczy.
Mając tak jak szkielet Program może być bardzo przydatny.
Wiem, że zapomniałem dokładnie to, co zawsze Miałem napisać na int main,
bo zawsze wystarczy skopiować wklej z mojego poprzedniego zestawu P
czy to już nie, więc Tak naprawdę nigdy nie napisał,
więc o co może być bardzo przydatne.
>> OK, więc dlaczego nie my rozpocząć z numerem 8 potem?
Dobrze.
OK.
Więc rozważyć poniżej program.
Tak oczywiście, gdy widzimy wskaźniki, to prawdopodobnie
to dobry pomysł, aby rozpocząć rysowanie, prawda?
Chcę wiedzieć, gdzie wszystkie moje duże kawałki kredy poszedł.
Jest to trochę denerwujące.
>> Tak więc mamy tutaj kilka funkcji wymiany że zajmie się dwoma wskaźnikami.
Tak więc w tym przypadku mają one powinny być rzeczywiście przełączania
rzeczy w porównaniu naszej pierwotnej wymiany Funkcja tylko wziął w kopii.
Więc co to będzie zrobić is-- zacznijmy głównym,
bo tam 1.
>> Więc mamy trochę int x 1.
Mamy pewne y, która jest równa 2.
A potem mamy kilka swapa że zajmie ci.
I zobaczmy, co my tu mamy.
A w naszej table-- oh boy.
Jak mam to zrobić?
Mam zamiar wyciągnąć mój stolik tutaj.
Ledwo co tam.
Ledwo co.
1, 2, 3, 4, 5, 6, 7.
I dają nam, że 1 1 i 1 2.
Fajne.
Niesamowite.
Więc 3.
I nie [? 1.?]
>> Dobrze.
A następnie adres x jest 0x123.
I y jest Ox127.
Fajne.
Dobrze.
Chcę Ci ludzie pracują nad tym za jedyne like-- pracy na niej
z ludzi wokół ciebie.
Żałuję, że nie powiedział, że a ja stworzenie.
Prace nad nim.
Spróbuj i pracować na nim przez się na kilka minut,
i wtedy będę nad nim pracować z tobą.
Bo tylko w ten sposób jesteś naprawdę dzieje się nauczyć wykonując go samodzielnie.
Nie przejmuj się.
Powodzenia.
>> OK, dlaczego nie wolno rozpoczęcia pracy przez to.
Tak więc każdy dostaje po jednej linii, x oznacza 1.
Po drugiej linii, x i y są 1 i 2, tak?
Fajne.
Więc gdzie jest linia trzy rzeczy uzyskać interesujące oczywiście.
>> Więc co zrobiliśmy tutaj to mamy teraz zamienione.
Mówimy, że X i Y mają te punkty, lub mają adres z X i Y,
prawda?
Tak więc w tym przypadku, trzy co jest wartością?
został przekazany, nadano Wartość adresu x, prawda?
>> Publiczność: 1?
>> ZAMYLA Chandler: Więc możemy dodać go do x?
Co znajduje się adres X.?
>> Publiczność: 0x123.
>> ZAMYLA Chandler: Dokładnie.
Ale to, co jest rzeczywiście wskazuje?
Gdybyśmy mieli do nieprawidłowego, jaką wartość to daje nam.
Publiczność: 1.
ZAMYLA Chandler: To będzie daje nam jedno, bo to, co
mówimy to jest iść do adres, powiedz nam, co wartość.
Więc co będzie b?
>> Publiczność: 0x127.
ZAMYLA Chandler: Dokładnie.
Więc jest to adres y.
I co wtedy [? dereference? ?]
Publiczność: 2.
ALLISON BUCHHOLTZ-AU: OK, więc teraz cztery.
Powiedzieliśmy to equal-- dobrze teraz mamy zrobić int temp jest równa gwiazda.
Więc co się zmienia?
Jest tylko jedna rzecz, że zmiany tutaj.
Co to jest?
>> Grupa docelowa: Temp.
ZAMYLA Chandler: Temp.
Możemy więc przepisać wszystkich.
Dobra strategia dla nich jest po prostu dowiedzieć się,
jakie zmiany, bo najczęściej Jest tylko jedna rzecz, która jest
zamiar zmienić w dowolnym momencie, OK?
Więc mamy przypisane temp.
>> Teraz nasz następny punkt, pięć, mamy dokonały gwiazda równa gwiazdkowe pensjonaty.
Więc to, co zmienia się teraz?
>> Publiczność: Gwiazda.
>> ZAMYLA Chandler: Gwiazda, więc wszystko pozostaje takie samo.
A co gwiazda równa?
>> Publiczność: 2.
ZAMYLA Chandler: 2.
Piękny.
Niesamowite.
OK, a następnie teraz mamy Start B jest równa temp.
Więc jest to tylko zmiana gwiazda b.
Wszystko inne pozostaje takie samo.
A co to jest gwiazda b równa się teraz?
I ukończeniu tabeli.
Bo teraz na końcu, jeśli mówimy x i y, wiemy, że w tym point--
Wiemy, że kiedy zmieniły się gwiazdy na 2,
co to zrobił to powiedział OK, na adres 0x123 tu zmienić.
Teraz było to 2.
A następnie w tym momencie, my powiedzieliśmy OK, przejdź do gwiazdy b.
Więc idź na adres w 0x127 i zrobić to 1.
Więc teraz, na samym końcu, gdy rzeczywiście powrócić do głównego,
rzeczywiście mają, że x jest równe 2, a y jest równe 1.
Wszyscy dobrze się z tym?
OK, fajnie.
Numer 9.
Chłopaki nad tym pracować.
Mam zamiar założyć płytę więc można wyciągnąć przez to.
To będzie super.
Wielkie tabele mogą być Naprawdę straszne, wiem.
Ale jeśli po prostu wziąć je w jeden wiersz czas, dostają dużo mniej przerażające.
Dobrze.
>> Więc wiesz, że będzie to miało przeszedł główną pierwsze, prawda?
Inicjuje i x i y następnie próbuje zamienić je.
Więc nawet wymiany jest powyżej, to realny sposób idzie się, że jedziemy przez główny,
a potem dzwoni do wymiany, wszystko w porządku?
Tak każdy wie, że.
>> Więc który z nich prawda faceci chcą zacząć?
Czy ktoś naprawdę pewien, o jednym z nich?
Lub nawet częściowo na pewno?
Dlaczego nie zacząć od x?
Co myślimy x jest?
>> Publiczność: 1.
ZAMYLA Chandler: 1.
Więc dlaczego to 2.
A to dlatego, duża różnica tutaj
jest to, że jesteśmy tylko przekazywanie kopii, prawda?
Nie jesteśmy przez referencję.
Tak więc, nawet po zakończeniu Program ten x i y
przebywał sam, ponieważ są tylko kopie w funkcji swap.
W rzeczywistości nie zmienia, prawda?
>> Więc co o, b, i temp?
>> Publiczność: jest b.
>> ZAMYLA Chandler: jest b.
Tak więc w tym przypadku była x, który jest jeden, prawda?
Więc, niech przez nie przejść.
Więc na początek, i b są 1 i 2 i nieokreślone.
Więc początkowo temp dostaje przypisane tak, temp 1.
jest równe b, więc mamy 2, a b jest równa temperaturze.
Teraz mamy jeden.
>> Publiczność: W poprzednim jednej niego zamienione ampersand x i y. Ampersand
Co to właściwie znaczy?
ZAMYLA Chandler: Więc to oznacza, że jesteś przechodzącą przez odniesienie.
To znaczy, że jesteś naprawdę przekazując adresy gdzie
x i y są zachowywane.
Publiczność: Ale nie jesteś zamiana adresu.
ZAMYLA Chandler: Nie jesteś zamiana adresów.
Jesteś swapping co w nich.
Jak to, co jest pod tym adresem, i dlatego to działa.
W porównaniu w tym programie tutaj co robisz to tworzysz kopie.
Więc masz x i y, które istnieją jak własnych zmiennych tutaj.
Ale wtedy, gdy przechodzą je do wymiany, to
jak tworzysz to zupełnie inny zestaw.
Tak więc nigdy nie jesteś w rzeczywistości wzruszające x i y.
>> Publiczność: Jeśli znaku & x jest to, co jest w adres x, co gwiazda x być?
>> ZAMYLA Chandler: Ampersand x jest o co adres x, a następnie dobrze star--,
w tym przypadku, x jest wskaźnikiem.
PUBLICZNOŚCI: Oh, OK.
Więc tylko to zrobić bo to nie jest wskazówka.
ZAMYLA Chandler: Racja.
Można tylko zrobić gwiazdę coś, co jest wskaźnikiem.
Być może można zrobić, aby rzeczy, które nie są, ale że ci kompilacji
robić szalone rzeczy, by się stało.
I nie jestem dokładnie wiesz, co by się stało.
Zawsze można wziąć adres czymś,
ale nie można dereference coś, co nie jest wskazówka.
Jeśli to ma sens, że jest dobre rozróżnienie mieć.
>> Więc nie jest tak źle, prawda?
Tabele są nadzieją się nieco mniej przerażające.
Dobrze.
Ach, te zabawy.
Więc teraz, pisania własnego kodu.
Więc zamierzam pozwolić ci ludzie pracują na to około czterech minut
i wtedy możemy rozmawiać temat, jak to podejście.
Zapraszam do rozmowy z ludźmi wokół ciebie.
Także to jest interesujące.
To jak wszystkich dziewcząt Sekcja teraz.
Bardzo ekscytujące.
Wyjątkiem Chang.
Ale Chang nie jest tak naprawdę częścią sekcji.
Niesamowite.
Doskonały.
Więc dam ci kilka wskazówek.
W przypadku, gdy masz więcej niż jeden znak, gdzie
masz coś innego jak 123 lub 1000 czegoś,
trzeba mieć możliwość pętli przez i przekonwertować każdy z nich.
Więc jest kilka sposobów można to zrobić,
ale jesteś na pewno będzie mieć gdzieś w pętli do pętli nie
przez nie, który jest trochę jak gratisów
z nawet jeśli zadzwonisz strlen, która jest trochę jak oh
Może chcesz skorzystać długość łańcucha w jakiś sposób.
>> Dobrze.
Więc co o tym myślicie może być jedną z pierwszych rzeczy, które chcemy zrobić?
Jest kilka przypadków, w tutaj musimy wyjaśnić, prawda?
Albo mamy coś, co jest puste.
Co mamy?
Przypadki.
Null.
Mamy sprawę, że ma coś innego niż 09, prawda?
Więc powiedzmy, że ma liter.
Albo mamy sprawę, że to ważne.
Trzy przypadki myśleć.
Więc który z nich sądzisz może być Najprostszym jeden zająć w pierwszej kolejności?
Publiczność: Null.
ZAMYLA Chandler: Sprawa jest null.
Więc co będziemy tam robić?
PUBLICZNOŚCI: [niesłyszalne].
ZAMYLA Chandler: Tak.
A co zrobić, chcę zrobić?
>> PUBLICZNOŚCI: Powrót 0.
>> ZAMYLA Chandler: Dokładnie.
Niesamowite.
OK.
Więc teraz tak, że ma liter i tak, że to jest ważne.
Możemy właściwie dbać to w obrębie jednej pętli, OK?
Więc jeden sposób it-- co może być prosty sposób, by sprawdzić, czy to ważne.
Chcemy przejść przez każda litera i zrobić co?
>> PUBLICZNOŚCI: Sprawdź, czy jest to in--
>> ZAMYLA Chandler: Tak, można sprawdzić czy to od 0 do 9, prawda?
A następnie w razie że to jest ważne, że jesteśmy
skończy się iteracja nasz ciąg jakikolwiek, prawda?
Więc dlaczego nie spróbować połączyć je w jedno.
Jedziemy do iteracji przez się, ciąg, i jak my
to zrobić, będziemy pierwszym zrobić test, by sprawdzić, czy to pismo
lub jeśli postać jest ważna.
Jeśli tak, to mamy zamiar wykonać Operacja, że ​​musimy go przekonwertować.
W przeciwnym razie będzie to zwraca 0, prawda?
>> Więc zanim to zrobimy, możemy prawdopodobnie chcesz jakąś zmienną
że możemy wrócić na koniec że to będzie nasza rzeczywista wartość.
Więc mamy zamiar zainicjować niektóre wartości się 0.
A to, jak zacząć.
Więc mam zamiar pozbyć się tego.
Więc jak będziemy iterację tego łańcucha.
Odbiorcy: Dla pętli.
ZAMYLA Chandler: na pętli.
Więc co jest dla naszego?
>> PUBLICZNOŚCI: i 0.
ZAMYLA Chandler: Mm-hm.
A co mamy iteracji aż?
>> PUBLICZNOŚCI: długość str od s.
>> ALLISON BUCHHOLTZ-AU: OK, teraz pamiętam nie ma lepszego sposobu. [Niesłyszalne].
>> Publiczność: Tak, możemy to zrobić n równa.
ZAMYLA Chandler: Dokładnie.
>> Odbiorcy: i jest mniejsze niż n.
ZAMYLA Chandler: A dlaczego chcielibyśmy, aby to zrobić?
Pamiętasz powód?
Publiczność: Musimy to przeliczyć.
ZAMYLA Chandler: becasue ten sposób tylko obliczyć strlen raz.
Jeśli nie i jest mniejsze niż strlen s, to oznacza to, że przeliczy
Długość za każdym razem uruchomienia pętli,
co nie jest ogromny koszt energii, ale
lepiej spróbować i praktyka robić takie rzeczy, które kiedyś.
Chyba, że ​​masz szalony ciąg to się zmienia w każdej iteracji.
Ale jeśli jest to pobyt sam, zapisać go.
Dobrze.
A potem ja plus plusem.
Niesamowite.
Jesteśmy w drodze.
PUBLICZNOŚCI: Naprawdę szybko.
Po pierwsze, więc powiedzmy, że po prostu ja mniej niż strlen S,
ich klasyfikacji nas na projekt w ogóle lub tylko odpowiedzialności ani?
Nie są.
Jesteśmy na poprawności klasyfikacji dla quizy o ile mi wiadomo.
Nie mogę zrobić pełnego na gwarancja, ale dla większości
Zdecydowana większość jest prawidłowość, ponieważ jesteś w dużo czasu ograniczeń.
Konstrukcja oznacza zwykle masz czas do namysłu
o elegancji Twojej sytuacji.
>> OK, więc mamy iteracja.
Musimy więc albo sprawdź zobaczyć, czy ten znak jest ważny
czy możemy wykonać nasze normalny [? do i?] funkcja.
Możemy martwić się o to, co to jest w drugim.
Więc dlaczego nie take-- czy ktoś może myśleć
o sposób, aby sprawdzić, do sprawdzić, czy to jest ważne.
Wiemy, że to będzie niektórzy, jeśli warunek, prawda?
I pamiętaj, to jest w ASCII, tak jak może
widzimy, jeśli nie jest to 0,1, 2, 3, 4, 5, 6, 7, 8 lub 9.
Publiczność: Jeśli alfa.
>> ZAMYLA Chandler: Więc jeśli będzie alfa tylko daj nam znać, czy to pismo.
A jeśli nam się symbol, to nadal nie do końca będzie sprawdzić.
Więc jeśli podciągnąć swój ASCII Stół, wiemy, że od 0 do 9
w jednym segmencie.
Powiedz mi, że numery odpowiadać jeśli to możliwe.
Grupa docelowa: 40.
>> ZAMYLA Chandler: Więc zakres jest jak 40--
Publiczność: Może.
48 do 57.
Nie jestem pewien.
>> ZAMYLA Chandler: 40 do 57?
>> Grupa docelowa: 48, myślę.
ZAMYLA Chandler: 48 do 57.
Wiemy więc, że ci, ASCII symbols-- jeśli wartość nie jest ASCII
między 48 i 57, to nie jest ważne, prawda?
Więc możemy używać, aby Naszym atutem może?
Jak będziemy się ten list, po pierwsze?
Jak mamy dostępu to ten znak?
>> Publiczność: s uchwyt i.
>> ZAMYLA Chandler: Mm-hm.
Ponieważ możemy myśleć struny jak tablice, pamiętam.
Więc to, co chcemy powiedzieć?
Chcemy powiedzieć, czy to is-- Dam wam wskazówkę.
To mniej niż.
Co ci się, że musi być mniejsza niż?
Grupa docelowa: 57?
>> ZAMYLA Chandler: 47, prawda?
Ale to również oznacza, że ​​w miarę 0 w jednej [? szprychy?], bo to
charakter 0.
Można również umieścić 47.
Mając tabelę ASCII, jak widzisz, to po prostu coś,
należy mieć na swojej karcie quizu.
>> Tak więc, jeśli jest to przypadku, jeśli jest to mniej niż 0-- niekoniecznie i.
To tylko albo będzie mniejsza lub większa niż 9.
Więc można wypełnić ten ostatni dla mnie?
Tak czy s z I jest co, Rhea?
>> PUBLICZNOŚCI: ponad 9.
>> ZAMYLA Chandler: Nie.
Czy to ma sens wszyscy, jak tam dotarliśmy?
Problemy te, są jak kiedyś Ciebie zobacz rozwiązania, to jak Oh, OK.
I dlatego praktyka pomoże.
OK, więc zwraca 0.
Piękny.
Dobrze.
W przeciwnym razie to, co chcemy zrobić?
Jest to interesująca część gdzie jest trochę więcej
jak matematyka kontra CS w mojej opinii.
Czy ktoś ma pomysł w jaki sposób możemy to zrobić?
Tak więc ważne jest, aby zdaje sobie sprawy, pierwszy znak
Bierzemy będzie najwyższa cyfra celu, prawda?
Więc jeśli patrzymy na konwersję 123, pierwszy raz iteracji
to będzie jeden, ale musimy że za 100 do końca, prawda?
Tak więc jedno można zrobić, jest to, że z każdym kolejnym cyfry
podjąć, należy pomnożyć swoją wartość o 10, tak, że w momencie dojdziesz do końca,
wszystko było przesunięty w górę, prawda?
>> Tak więc po raz pierwszy można uruchomić to masz jeden jako wartości.
Drugi raz go uruchomić, ci pomnożyć swoją wartość o 10.
Będzie ją aktualizować, tak aby to teraz 10, i dodać w następnej wartości.
A następnie pomnożyć przez 10 i dodać w następnej wartości.
A to dlatego, że to powiedzieć jest o wiele bardziej jak testowania
algorytm matematyczny w porównaniu CS, ale błądzić.
Nie piszę quizy.
>> Więc jedno możemy zrobić, to my powiedzieć razy wartość równa 10.
Więc to będzie przesunięcie Twój cyfrowy raz za każdym razem.
A potem po prostu chcesz dodać.
Chcemy, aby dodać w co po prostu ma, prawda?
Jak więc naprawdę przekształcić nasze ASCII na liczby
że stanowi?
>> Tak więc wiemy, że 0 jest równa 47, prawda?
Więc jeśli 0 to 47, co musielibyśmy zrobić, aby to
aby rzeczywiście zrobić to int od 0?
>> Publiczność: To 48.
ZAMYLA Chandler: 48?
Przepraszam.
Chcemy odjąć 48, prawda?
Pamiętaj ASCII matematyki?
Możemy traktować je po prostu jak zwykłe numery.
Jeśli traktujesz je jak liczby, stają się numery skutecznie.
Więc jeśli mamy s I, którego możemy znaczy w tym przypadku jest równa 0.
Tak więc ów z I w tym przypadku byłaby ASCII--
int ASCII dla niego będzie 47.
Więc możemy subtract-- lub 48.
Można to zrobić, jest jednym ze sposobów.
Czy ktoś wie lepiej sposób możemy zrobić 48?
Po prostu powiedział 0 is-- przejść do ASCII można zrobić wycenę 0.
Więc nie to niby zrobić poczucie, jak to działa?
>> Publiczność: W tym momencie jest to wartość 0 bo nawet jeśli pomnożyć przez 10,
ty zaczynasz od zera, tak powinno być włączone?
>> ZAMYLA Chandler: Tak, w tym przypadku, chcą pomnożyć ją przed dodaniem,
ponieważ w tym przypadku tak, że będzie nadal być: mój wskaźnik brakuje.
Wartość w tym przypadku, pierwszy razem go uruchomić będzie zero.
Więc jesteś po prostu dodanie na tej pierwszej cyfry.
Ważne jest to, następnym razem iteracyjne, chcesz, aby przenieść go w górę
przed dodaniem kolejnej cyfry na.
Czy to wyjaśnienie dla Ciebie?
OK.
>> Czasami będziesz się dziwne więcej rzeczy Mathy.
Jeśli dominował to, jesteś wciąż trwa
do get-- masz zamiar zrobić całkiem dobrze.
Częściowe kredyt jest bardzo wielka rzecz na quizy CS50.
Więc napisz co wiesz.
Jeśli masz wszystko wyjątkiem tutaj, jesteś
jeszcze zrobić Naprawdę dobrze problem.
Bo jesteś pokazując, OK, prawie wiem.
Wiem, że muszę iterację.
Wiem, co muszę sprawdzić.
Ja po prostu nie dość uzyskać jak go przekonwertować.
Masz zamiar być OK.
Tak, masz zamiar stracić kilka punktów,
ale jesteś jeszcze dostanie Spora liczba punktów za coś
tak, jeśli jesteś brakuje tych dwóch linii.
Chciałbym być jak OK, to osoby wie, co robią.
Matematyka jest trudna.
Więc powiedziałbym, że będzie dobrze.
>> OK, więc faceci gotowi spróbuj teraz strlen ze wskaźnikami
że faceci są wskaźnik mistrzowie?
Więc dam chłopaki pracują na, że ​​na trochę.
Jeśli ktoś potrzebuje odświeżające.
Więc chcesz użyć wskaźnika arytmetyka, a następnie, jeśli s jest null,
implementacja powinna zwrócić 0.
Takie rzeczy, które sprawiają ci bardzo szczęśliwy po prostu zadzwonić strlen
na koniec dnia.
Myślę, że ten może być trochę łatwiejsze niż ostatni, który
jest dobry.
Dam wam jeszcze minutę, a następnie będziemy pracować przez nią.
A potem mamy iść do przełączników.
>> OK, gotowe faceci?
Może trochę.
Więc dałem wam wasze dwie opcje, prawda?
Albo sprawdzić wartość null i zwraca 0, jeśli jest to, czy rzeczywiście obliczyć długość.
Więc kto chce pisać sprawdzić wartość null?
Idź do niego.
>> Publiczność: Jeśli nawiasów s równa jest równa null, powrót 0.
ZAMYLA Chandler: Piękny.
Uwielbiam, gdy pół problemu jest po prostu sprawdzanie null.
Wiem, ze wy w zeszłym tydzień byłem jak czek na wartość null
dosłownie za każdym razem.
OK, SO-
>> Publiczność: Jeśli return 0 jest tylko jedna linia, my nadal potrzebujemy nawiasu?
>> ZAMYLA Chandler: Nie technicznie Potrzebujemy ich, jak długo jesteś konsekwentny.
To po prostu dobre praktyki dostać w zwyczaju
z użyciem nawiasów klamrowych, ale technicznie nie.
Nie trzeba ich do jednej linii.
Po prostu mają tendencję do polecam dla osób rozpoczynających program.
>> Więc teraz, co może chcemy zrobić tutaj?
Więc teraz wiemy, że nasz ciąg jest prawidłowy.
Chcemy utrzymać obliczyć długość.
Co znajduje się prawdopodobnie pierwszy co chcemy zrobić?
>> Odbiorcy: Tworzenie int to długość.
ZAMYLA Chandler: Dokładnie.
Publiczność: Chcemy ustawić go?
ZAMYLA Chandler: 0.
Doskonały.
Dobrze.
Teraz to, co chcesz robić?
To naprawdę większość z nich.
Idź do niego.
>> Publiczność: Tak pewnie zrobić na pętli.
A potem, ponieważ podczas rozmowy s jesteś uzyskanie adresu pierwszą rzeczą,
by zacząć i jest równa 0.
A następnie, o ile x plus i nie powraca slash 0.
ZAMYLA Chandler: terminator null.
Publiczność: terminator null.
Następnie dodać jeden do długości.
>> ZAMYLA Chandler: Tak.
OK, więc pozwala z kolei, że na kod bardzo konkretny.
Ale to doskonały pomysł.
To jest dokładnie to, co robimy.
Mamy zamiar być powtarzanie za pomocą wskaźnika.
Więc to, co chcemy zrobić to zamiast int
tutaj, ponieważ jesteśmy nie odnosi się do niego.
Mamy na myśli początek Łańcuch, który rozpocznie jedne adres,
prawda?
>> Dlatego chcemy, wskaźnik.
Więc będziemy mieć jakąś gwiazdę char, ponieważ odpowiada na nasze s, prawda?
Więc to jest jakiś punkt jesteśmy inicjowanie na początku łańcucha, OK?
Więc zadzwoń do mnie to.
Jeśli to początek łańcucha, co to ma być przypisany do?
Nie 0.
Chcemy być rozpoczęcie naszego łańcucha.
Co oznacza początek Ciąg że nasza została nam dana?
>> Publiczność: Tak s.
>> ZAMYLA Chandler: s.
Więc to tworzy jakiś nowy wskaźnik, który stanowi początek naszego łańcucha, OK?
Innym sposobem, aby myśleć o tym, jest jak tu jest nasza tablica.
To nasz łańcuch, s.
Więc powiedzmy, że jest to pierwsze miejsce, a to jest 0x4.
04.
To jest nasz s, który posiada ten adres.
A my po prostu stworzył inny nazwie i że po prostu odnosi się do tego samego.
Więc oni zarówno po prostu wskazując na początku naszej ciąg.
To jest po prostu graficzne przedstawienie.
>> Więc teraz to, co chcemy zrobić, to chcemy iteracji
nasz warunek iteracji za pośrednictwem naszego łańcucha.
Teraz zakupy.
Masz sklep, chłopaki.
Czy chcemy, aby do czasu aktualizacji docieramy NUL, prawda?
Więc co to może wyglądać?
Czy chcemy i, czy też chcemy gwiazda i jest pytanie?
Czy terminator null adres lub coś znajduje się pod adresem?
Znajduje się pod adresem, prawda?
>> Więc wszystko, co jest potrzebne dereference tutaj, bo to jest po prostu jakiś adres.
Rzeczywiście dostać się do początku musimy dereference to
tak, że rzeczywiście dostać co jest w tym pierwszym miejscu.
Więc jeśli robimy gwiazdy i, co Nie chcemy, aby równe?
Publiczność: Powrót ukośnik?
>> ZAMYLA Chandler: Nie.
Czy to ma sens dla każdego?
Musimy udać się do naszego łańcucha i upewnić się, że to nie koniec.
A potem możemy po prostu aktualizować tak.
Normalna aktualizacja.
Tak długo, jak są one met, co musimy zrobić?
>> Publiczność: Długość oraz plusem.
>> ZAMYLA Chandler: Mm-hm.
A potem po pętli kończy się, co chcemy wrócić?
Publiczność: Długość?
ZAMYLA Chandler: Długość.
Proszę bardzo.
Oczywiście mięso z tym jednym jest zrozumienie tej pętli.
Czy wszyscy się, jak to działa?
Jestem szczęśliwy, aby przejść przez to jeszcze raz.
>> Publiczność: drugi część, więc i tam gwiazdy,
to adres first--
ZAMYLA Chandler: To nie jest adres.
To, co jest na.
PUBLICZNOŚCI: To rzeczywiście tam.
ZAMYLA Chandler: To co właściwie tam.
Więc niech to saying-- mi zrobić to lepiej.
Więc to jest 0x04, a ja po prostu się powiedzieć, mam zamiar zrobić to moje imię.
OK.
Tak, wiem, że mam opinię Quiz dzisiaj.
Dużo przeglądu quizu.
Więc powiedzmy, że ten ciąg jest moje imię, Allison.
Trochę bałagan, ale to tam.
I s oznacza lokalizację gdzie zaczyna się łańcuch,
tak mam zamiar zrobić to real-- jest to adres,
gdzie zaczyna się łańcuch, prawda?
>> Więc co robimy tutaj, to chcemy użyć wskaźników do iteracji.
Więc stworzyć jakiś wskaźnik, i, że również wynosi na początku łańcucha.
I w każdym punkcie, chcemy nadal przechodzi tablicy
tu, aż trafiliśmy NUL.
Więc zawsze warto sprawdzić, co jest przy czym każdy z tych adresów.
>> Więc wyłuskiwania i tak, że Pierwszy raz robimy to my
powiedzieć, OK, co jest pod adresem 0x04?
Jest.
OK, jesteśmy dobrzy.
Długość przyrostu.
Przejść do następnego.
Więc ja-- pamiętać wskaźniki wzrost o wielkość co oni wskazując.
Tak więc w tym przypadku, ponieważ jest to char, to będzie aktualizacji o jeden.
Więc teraz mamy zamiar spojrzeć na 5, co oznacza, że ​​będzie tutaj.
Więc to mówi OK, przejdź do 0x05.
Co tam jest?
To l.
I będzie to robić, że dopóki nie natrafi tego.
I to mówi OK, co jest w co to jest adres?
Terminator null, OK.
Wyjdź.
I tylko długość powrócić.
Bo trzeba co rzeczywiście w ten adres, a nie sam adres.
>> Istnieje bardzo niewiele miejsc, gdzie rzeczywiście trzeba adres.
Większość czasu, gdy używasz i to
gdy jesteś pierwszy przypisanie wskaźnika lub gdy
jesteś przekazaniem go do innej funkcji.
OK, wszyscy tam dobrze?
Rodzaj?
OK.
>> Wygląda więc na to mamy ma około 12 minut w lewo,
tak pójdziemy na może nasz ostatni problem,
i wtedy jest jakaś koncepcje, które pojawiły się
w międzyczasie możemy szybko przejść nad tym.
>> Więc przełączania biegów jest ostatnia problemem, switch.
Tak więc twoim zadaniem jest przerobić to tak, że zachowuje się same
ale nie korzysta z przełączników.
Kredowe ręce.
Więc wszelkie pytania o to off the bat?
Brak?
OK.
Czy wszyscy rozumieją, że jeśli Sprawa nie ma nic po nim,
oznacza to, że powinno przejdź do następnego etapu?
Tak więc obudowę 1 i 2, w tym przypadku zrobić dokładnie to samo.
Czasami punkt zamieszania.
>> Dobrze.
Ktoś ma jakieś pomysły?
Tak?
>> Publiczność: Tak można po prostu zrobić, gdy sprawozdania.
>> ZAMYLA Chandler: Mm-hm.
Więc co jest nasz pierwszy?
>> Publiczność: Jeśli n jest równa jest równa 1, i dwie linie do n równych lub
wynosi 2, a następnie wydrukować małe.
A potem można zrobić inaczej, jeśli?
Albo może po prostu zrobić, jeśli?
>> ZAMYLA Chandler: Można zrobić inaczej, jeśli?
>> Publiczność: Czy to ważne, jeśli nie, jeśli?
ZAMYLA Chandler: Więc to robi.
Czy anyone-- tak, to będzie taki sam efekt
jeśli używasz tylko IFS kontra jeśli używasz indziej IFS.
Czy myślicie o przyczynie Dlaczego warto skorzystać z innego
jeśli kontra wielu IFS?
Musi z wydajnością.
Tak?
>> Publiczność: To sprawdź wszystkie IFS każdym razem.
>> ZAMYLA Chandler: Tak, nawet jeśli trafił ten pierwszy,
byłoby to na sprawdzenie co drugi.
Więc chcesz użyć innego w razie przypadków IFS w którym tylko jeden z nich będzie nigdy zastosowania.
Więc jest wzajemne wykluczanie co mamy tendencję do powiedzenia.
Jeśli masz kilka funduszy inwestycyjnych, oznacza to, że być może więcej niż jeden z nich
sprawy, a może więcej niż jeden z nich może być prawda.
I chcesz oboje do wykonania, jeśli są prawdziwe.
Jeśli chcesz tylko jeden z nich do pracy w tych wzajemnie wykluczających przypadkach
chcesz używać innego, jeżeli z powodu to wszystko ma wspólnego z wydajnością.
Twój kod jest po prostu lepiej zaprojektowany jeśli przylega do tej praktyki.
Więc w tym przypadku będziemy mieli innego jeśli.
I to będzie?
>> Publiczność: n równa jest równa 3.
ZAMYLA Chandler: Idealny.
Nośnika druku.
A następnie w nasz ostatni Sprawa, co mamy?
Inny albo jeśli?
Publiczność: Else.
>> ZAMYLA Chandler: Czy mamy want-- Chcesz else if bo mamy konkretne przypadki.
To nie jest rodzaj połowu wszystkich.
Jeśli miał domyślne w switch-- Pamiętam, że w przełączniki można mieć sprawę,
i wtedy masz domyślne.
Jeśli miał domyślne, to rodzaj Twojego else tam.
Jeśli jednak ma tylko przypadków co oznacza, że ​​trzeba
aby sprawdzić, czy to każdy z nich.
Tak więc w tym przypadku, może 4 lub 5.
Chcemy wydrukować.
To duża.
I proszę.
I że będzie program.
>> Więc w tym przypadku, jeśli miał coś domyślny,
nie mamy innego w co chciał nam zrobić.
Więc to jest dobre rozróżnienie wiedzieć, aby zrozumieć.
Czy to pomoże w przełączniki dla Ciebie?
Doskonały.
Dobrze.
>> Mamy około ośmiu minut przed końcem.
Czy macie jakiekolwiek inne koncepcje wysokiego poziomu?
Pytania w ogóle?
Tak?
>> Publiczność: miałem pytanie o jednego z nich
że chodziło o przypadkowe generator liczb na quizie zera.
ZAMYLA Chandler: Oh, że jeden.
Że jest inny, gdzie to jest więcej matematyki than-- tak.
Rozwiązaniem that-- nawet ja, kiedy Widzę, że jestem jak co to jest.
>> Publiczność: To był numer 7.
>> ZAMYLA Chandler: To dziwne, w mojej opinii.
Więc w zasadzie chcesz używać drand48, który
daje pewne liczba między 0 a 1.
I chcesz go używać tak że jakoś A--
i jest to o wiele większy problem z matematyki do mnie, niż myślę problem CS.
>> Sposób, że robisz it-- i Czasami to po prostu być.
Ponownie są one przypadki, w których jest to rodzaj
z jak napisać to, co może i mniejszą liczbę punktów.
Więc jeśli chcemy powrotu, Wiemy, że jesteśmy
będzie za pomocą drand48 w jakiś sposób, prawda?
Więc dlaczego nie możemy po prostu zanotować, że w dół.
Używamy go w jakiś sposób.
Sposób, że mają one Ci faceci to wykorzystać
jak to, które będę się starał i wyjaśnić.
>> Więc w zasadzie to, co dzieje się tutaj Jest tak, ponieważ znajduje się pomiędzy 0 i 1,
co robisz to jesteś pomnożenie by-- to bardzo pytanie matematyki.
Tylko pełne zastrzeżenie, to jest całkowicie kwestia matematyki.
To, co robisz jest względu 0 i 1 i
ma to być w ciągu ten zakres, to faktycznie
dowiedzieć się, jak duży Zakres jest, a następnie
w zasadzie skalować w górę, co jest, co to robi.
>> b minus daje ten zakres, Różnica między tymi liczbami.
Można mnożyć między 0 i 1, a następnie dodanie po prostu
Oznacza to, że twój skalowanie go tak, że znajduje się pomiędzy i B
które tak naprawdę nie lubię tego problemu.
Jak już powiedziałem, to quizu ma obejmować
ludzi, którzy są mniej wygodne, gdzieś pomiędzy,
i bardziej komfortowe.
Więc jeśli oni zrobili to tak że to było coś
że wszyscy w mniej wygodne miejsce dostanie,
nie mamy zbyt wiele ludzie punktacji doskonali,
i bardziej komfortowo będzie się nudzić.
>> Oni zawsze mają te rodzaj mózgu pytania teaser
które mają być trochę trudniej że trochę twórczego myślenia.
Kiedy je zobaczyć, nie zbyt zakłopotany.
I na pewno powiedzieć, klapki przez pierwszy quiz.
Rozwiązania problemów że wiesz, możesz,
bo nie ma sensu utknięcie na problem, gdy istnieją trzy
lub cztery lub pięć na stronie po które można łatwo zrobić.
>> Publiczność: Dlaczego właśnie prawda pomnożyć przez zakres?
>> ZAMYLA Chandler: pomnożyć, że zakres Ci know-- to jak, ile po
chcesz?
Więc można myśleć, bo to Zwraca liczbę pomiędzy 0 i 1,
można myśleć o nim jako procent.
Więc to w zasadzie mówiąc, jeśli mamy nasza linia numer tutaj, tutaj,
i b jest tutaj.
Jesteś jak, ile za to?
To wszystko robimy.
Więc jesteś po prostu z prośbą o procent tego zakresu, który
to co to daje wam.
I wtedy w zasadzie tylko przeskalować ją, dodając.
To zapowiedź matematyka mózg.
>> Czy jest jakaś ostatnia rada minut, ja powiedziałbym przerzucać pytania,
dowiedzieć się, które z nich wiem, że jak, no mam to.
Prawie na pewno, że będą są pytania, na które nie znamy
lub, że będziesz mieć czas na, więc uderzyć swoje mocne, dobrze?
Chłopaki będą wielkie.
Istnieje wiele pytania do przyczyny,
tak, że masz czas, aby rodzaju mają możliwość
wykazać co jesteś naprawdę dobry.
Więc to jest OK, jeśli jesteś nie jest dobre na wszystko.
Graj do swoich mocnych stron.
Tak?
>> Publiczność: Tak to będzie coś, co obcięte wrócić?
Tak, to będzie, bo drand powraca między 0 a 1.
To będzie powrót int, ponieważ będzie to obciąć
kiedy dodać lub pomnożyć przez niego.
Fajne.
Jakieś ostatnie pytania minut?
>> Wy zamiar zrobić wielki.
Będziesz mieć wspaniały.
A nawet jeśli nie, to nie będzie być cukierki tutaj w przyszłym tygodniu.
A ja cię kocham.
Ja kocham was niezależnie.
W porządku, wszyscy, powodzenia.
Mieć wielki czas.
Masz zamiar być w porządku.
I wiesz co?
W ciągu dwóch dni to będzie się skończy, a ja
dwa midterms w czwartek, więc przynajmniej chłopaki będą wykonywane.
Dobra, ja zobaczę was w przyszłym tygodniu.