1 00:00:00,000 --> 00:00:05,530 2 00:00:05,530 --> 00:00:09,790 >> PROFESOR: Więc porządek obrad w tym tygodniu, a nie, że wiele rzeczy. 3 00:00:09,790 --> 00:00:12,801 Ale mam nadzieję, że bardzo, bardzo pomocne i istotne dla was w tym tygodniu. 4 00:00:12,801 --> 00:00:15,550 Ale mamy zamiar spędzić może 15, 20 minut po prostu szybko talking 5 00:00:15,550 --> 00:00:17,370 o listy linków. 6 00:00:17,370 --> 00:00:19,694 Listy linków zamiar być pokryte w quizie. 7 00:00:19,694 --> 00:00:22,610 Więc może to być bardzo pomocne aby dowiedzieć się trochę o tym, co to jest. 8 00:00:22,610 --> 00:00:25,210 >> Mamy zamiar wydać ogromna Większość dzisiejszym odcinku 9 00:00:25,210 --> 00:00:27,640 będzie ponad Quiz zero problemów praktycznych. 10 00:00:27,640 --> 00:00:30,970 I wtedy będziemy zapisać może 20, 30 minut Na koniec dla jakichkolwiek pytań zalegających 11 00:00:30,970 --> 00:00:32,850 ktoś ma. 12 00:00:32,850 --> 00:00:34,610 >> A potem, w ostatnim pięć minut, idę 13 00:00:34,610 --> 00:00:36,467 wygłosi przemówienie pompy aż do quizu. 14 00:00:36,467 --> 00:00:38,050 Wy wszyscy chcą tu być za to. 15 00:00:38,050 --> 00:00:39,591 Dlatego, że będzie to dobry czas. 16 00:00:39,591 --> 00:00:42,650 17 00:00:42,650 --> 00:00:49,230 >> W porządku, więc niektóre Materiał na liście linków. 18 00:00:49,230 --> 00:00:52,620 Jak oni zwykle skonstruowane jest masz, co się nazywa węzeł, prawda? 19 00:00:52,620 --> 00:00:54,870 Musisz te rzeczy zwanych węzły, które są structury. 20 00:00:54,870 --> 00:00:57,360 Pójdę na temat tworzenia węzeł w następnym slajdzie. 21 00:00:57,360 --> 00:01:00,680 Ale przede wszystkim związane list jest to dane 22 00:01:00,680 --> 00:01:03,340 zostały połączone razem za pomocą wskaźników. 23 00:01:03,340 --> 00:01:09,110 >> I tak atutem mamy korzystania z połączonej listy powyżej, 24 00:01:09,110 --> 00:01:11,280 Być może, podobnie jak tablica, jest fakt, że w tablicy 25 00:01:11,280 --> 00:01:15,000 potrzebny jest jeden ciągły blok Pamięć w tym samym miejscu, jeden 26 00:01:15,000 --> 00:01:16,870 po drugie, aby być w stanie mieć. 27 00:01:16,870 --> 00:01:20,200 Natomiast połączonej listy, można losowych trochę bitów pamięci 28 00:01:20,200 --> 00:01:23,020 całego komputera nawleczone razem przez wskaźniki. 29 00:01:23,020 --> 00:01:26,270 >> I w ten sposób może uzyskać dostęp do informacji 30 00:01:26,270 --> 00:01:28,610 że przychodzi jeden po drugiej po kolei 31 00:01:28,610 --> 00:01:32,720 bez potrzeby tylko ogromny kawał Pamięć gdzieś w komputerze. 32 00:01:32,720 --> 00:01:35,910 I tak jest to jeden z głównych powodów, dla których używamy listę linków. 33 00:01:35,910 --> 00:01:40,300 >> Po drugie, jest to bardzo łatwe do dynamicznie zmienić rozmiar listę linków, ponieważ w tablicy, 34 00:01:40,300 --> 00:01:44,720 kiedy zadeklarować tablicę, masz pewną wartość. 35 00:01:44,720 --> 00:01:47,340 Powiedzmy, że chciał stworzyć tablica z 10 liczb. 36 00:01:47,340 --> 00:01:49,970 Utworzyć tablicę 10 liczby całkowite, i to jest to. 37 00:01:49,970 --> 00:01:50,580 To 10. 38 00:01:50,580 --> 00:01:52,038 Nie wiem, co robić po tym. 39 00:01:52,038 --> 00:01:53,680 Gdybym chciał zrobić z niego 11, nie może tego zrobić. 40 00:01:53,680 --> 00:01:55,710 Jeśli chcę, aby on 9, nie może tego zrobić. 41 00:01:55,710 --> 00:01:59,910 >> Podczas gdy w liście łączy, można dodać i usunąć i wstawić tam, gdzie chcesz. 42 00:01:59,910 --> 00:02:04,940 Możesz dynamicznie zmienić rozmiar zorganizować tu swoją strukturę danych. 43 00:02:04,940 --> 00:02:08,370 A to daje nam wiele więcej dodał elastyczność 44 00:02:08,370 --> 00:02:11,320 że zazwyczaj nie mają z tablicami. 45 00:02:11,320 --> 00:02:15,210 >> Każdy mylić się na podstawowym struktura, jak lista link jest 46 00:02:15,210 --> 00:02:17,930 i dlaczego musimy użyć jeden na tablicy? 47 00:02:17,930 --> 00:02:20,330 Tak, pójdziemy nad szczegółowo jak faktycznie stworzyć. 48 00:02:20,330 --> 00:02:24,121 Ale to tylko rodzaj ogólny sens teraz. 49 00:02:24,121 --> 00:02:24,620 Chłodny. 50 00:02:24,620 --> 00:02:28,770 I tak tablice są nawleczone razem z tych ślicznych małych rzeczy 51 00:02:28,770 --> 00:02:29,960 zwane węzły. 52 00:02:29,960 --> 00:02:32,210 Cały węzeł jest to typ struktury. 53 00:02:32,210 --> 00:02:36,090 Pamiętaj, że struktura jest jeśli chcesz w celu utworzenia pewnego rodzaju zmienną 54 00:02:36,090 --> 00:02:39,850 w C, który nie ma już istnieje, Ty, jako programista, 55 00:02:39,850 --> 00:02:42,030 może faktycznie stworzyć go sam. 56 00:02:42,030 --> 00:02:46,540 >> A więc ten typ danych strukturę nazywa się węzeł 57 00:02:46,540 --> 00:02:50,770 została rzeczywiście stworzony przez nas, że nie istnieje w C na własną rękę. 58 00:02:50,770 --> 00:02:53,150 A sposób, że cię stworzyć jeden to masz 59 00:02:53,150 --> 00:02:57,170 nagłówek typedef struct, która informuje kompilator jestem 60 00:02:57,170 --> 00:02:59,640 o w celu utworzenia Struct. 61 00:02:59,640 --> 00:03:00,830 >> Jedziemy nazwę to "węzeł". 62 00:03:00,830 --> 00:03:03,350 A w środku będziemy zadeklarować zmienną w, 63 00:03:03,350 --> 00:03:05,060 który będzie przechowywać wartość. 64 00:03:05,060 --> 00:03:09,320 A potem mamy również zamiar mają wskaźnik nazywany "obok" 65 00:03:09,320 --> 00:03:12,090 który wskazuje na następny węzeł listy łącza. 66 00:03:12,090 --> 00:03:14,730 A potem dokończyć off po prostu powtarzając węzeł znowu tak 67 00:03:14,730 --> 00:03:17,490 kompilator wie, OK że to koniec mojej struktury. 68 00:03:17,490 --> 00:03:22,540 >> I tak, w ten sposób, jesteśmy rodzajem tworzenia śliczny tablicę 69 00:03:22,540 --> 00:03:25,450 Takie rzeczy z Wartość i ze wskaźnikiem. 70 00:03:25,450 --> 00:03:27,757 I można połączyć je wszystkie razem z tymi wskaźnikami. 71 00:03:27,757 --> 00:03:30,090 Tak, że wszystkie one mogą być miły połączone razem w łańcuchu. 72 00:03:30,090 --> 00:03:32,920 73 00:03:32,920 --> 00:03:34,162 >> Chłodny. 74 00:03:34,162 --> 00:03:35,453 Słychać, że nieco lepiej? 75 00:03:35,453 --> 00:03:36,140 >> PUBLICZNOŚCI: Tak. 76 00:03:36,140 --> 00:03:38,540 >> PROFESOR: Wszystko w porządku. 77 00:03:38,540 --> 00:03:44,280 Więc sposób, że jak chłopaki widzą, typowa lista Link jest skonstruowany 78 00:03:44,280 --> 00:03:45,500 to masz głowę. 79 00:03:45,500 --> 00:03:49,460 Musisz wartość głowy, która nie jest wskazywanego przez inny wskaźnik. 80 00:03:49,460 --> 00:03:53,177 Ale to będzie wskazywać na, lub odniesienie, inny węzeł. 81 00:03:53,177 --> 00:03:56,510 Węzeł po zamierza odwoływać się Węzeł po tym, i tak dalej, i tak dalej 82 00:03:56,510 --> 00:03:59,170 aż w końcu trafić koniec listy linków. 83 00:03:59,170 --> 00:04:00,980 I po prostu nie będzie miał tam wskaźnik. 84 00:04:00,980 --> 00:04:04,659 >> I tak, myśleć jak, na łańcuchu, a nawet jeśli ktoś z was facetów wykonane, nie wiem, 85 00:04:04,659 --> 00:04:06,450 jak z Loops owocowe kiedy byłeś mały. 86 00:04:06,450 --> 00:04:08,590 Byś ciąg je razem i nosić je na szyi. 87 00:04:08,590 --> 00:04:09,840 Że to jest dokładnie to samo. 88 00:04:09,840 --> 00:04:12,964 Masz te małe rzeczy, które Ciąg razem, że może do jednego punktu 89 00:04:12,964 --> 00:04:15,291 Po tym, w jednej po go, i tak dalej, i tak dalej 90 00:04:15,291 --> 00:04:17,040 dopóki masz łańcuch struktury danych 91 00:04:17,040 --> 00:04:21,190 że można używać jak chcesz. 92 00:04:21,190 --> 00:04:27,370 >> Więc sposób, że to my by zazwyczaj wstawić lub usunąć 93 00:04:27,370 --> 00:04:30,020 każdy węzeł z linkiem Lista jest bardzo różne 94 00:04:30,020 --> 00:04:31,970 w zależności od miejsca, że ​​węzeł jest. 95 00:04:31,970 --> 00:04:34,880 Tak więc, na przykład, ponieważ Wskaźniki są zawsze 96 00:04:34,880 --> 00:04:38,645 wskazując na określonej wartości, podczas usuwania lub wstawiania węzła, 97 00:04:38,645 --> 00:04:41,770 chcesz, aby upewnić się, że wskaźnik to wszystko wskazuje na właściwe rzeczy. 98 00:04:41,770 --> 00:04:46,200 >> Więc jeśli chcesz potencjalnie wstawienia nowy węzeł o wartości jednej 99 00:04:46,200 --> 00:04:48,379 wewnątrz segregowanych linku lista, wszyscy wiemy tutaj 100 00:04:48,379 --> 00:04:51,170 z obrazu, który będzie przejść między głową a dwa, prawda? 101 00:04:51,170 --> 00:04:52,620 Ponieważ jeden pasuje tam. 102 00:04:52,620 --> 00:04:59,060 Ale sposób, w jaki to robimy jest pierwszym dereferencji wskaźnika 103 00:04:59,060 --> 00:05:02,160 od głowy i wysyłania, że ​​do jednego. 104 00:05:02,160 --> 00:05:05,040 >> Ale dochodzimy do problemu tutaj. 105 00:05:05,040 --> 00:05:08,280 Czy każdy może zobaczyć, co problem jest gdybyśmy pierwszej dereference 106 00:05:08,280 --> 00:05:10,090 wskaźnik od głowy do jednego? 107 00:05:10,090 --> 00:05:14,202 Jaki problem może wpadniemy jeśli spróbujemy dodać to do przodu naszej tablicy? 108 00:05:14,202 --> 00:05:15,409 >> PUBLICZNOŚCI: [niesłyszalne] 109 00:05:15,409 --> 00:05:16,200 PROFESOR: Dokładnie. 110 00:05:16,200 --> 00:05:20,000 Więc tutaj mamy wskaźnik, który był raz wskazując od głowy do dwóch. 111 00:05:20,000 --> 00:05:23,120 Ale jeśli pozbyć się, że wskaźnik, skieruj go do jednego, 112 00:05:23,120 --> 00:05:26,500 teraz nie mam pojęcia gdzie się udać, aby znaleźć dwa. 113 00:05:26,500 --> 00:05:29,850 Ponieważ, jak już mówiłem, że masz Olbrzym fragment pamięci w komputerze. 114 00:05:29,850 --> 00:05:31,860 Wszystkie te węzły mogłyby losowo przeplatane 115 00:05:31,860 --> 00:05:33,350 w dowolnym miejscu na komputerze. 116 00:05:33,350 --> 00:05:36,140 I nie wiem jak aby go o znalezienie tego. 117 00:05:36,140 --> 00:05:40,420 >> I tak trzeba mieć wskaźniki skierowaną do wszystkich węzłów w końcu. 118 00:05:40,420 --> 00:05:42,420 Albo jeśli przypadkowo dereference jednym 119 00:05:42,420 --> 00:05:44,485 bez pierwszej przypisywania wartość pierwsze, jesteś 120 00:05:44,485 --> 00:05:47,410 po prostu stracić wszystko później. 121 00:05:47,410 --> 00:05:49,720 >> Więc co mamy zamiar zrobić to, byś pierwszy 122 00:05:49,720 --> 00:05:53,270 Aby utworzyć wskaźnik na węzeł chcesz wstawić. 123 00:05:53,270 --> 00:05:55,270 Skierować go do miejsca, gdzie chce, aby wstawić go do, 124 00:05:55,270 --> 00:05:59,410 i potem ci może wskazywać głowę do jednego. 125 00:05:59,410 --> 00:06:02,800 >> Czy to ma sens, aby wszyscy tutaj? 126 00:06:02,800 --> 00:06:03,346 Wielki. 127 00:06:03,346 --> 00:06:04,720 Pomyśl o tym, jak po prostu jak łańcuch. 128 00:06:04,720 --> 00:06:07,420 Jeśli dodać łańcuch, jest to swego rodzaju intuicyjne 129 00:06:07,420 --> 00:06:10,742 jak bym go o wstawienie tego. 130 00:06:10,742 --> 00:06:15,274 >> OK, więc, że jest o wiele krótszy niż myślałem, że będzie, 131 00:06:15,274 --> 00:06:16,690 Spiel pięć minut na listach link. 132 00:06:16,690 --> 00:06:19,960 Wystarczy więc chłopaki mają Podstawową ideą, co to jest. 133 00:06:19,960 --> 00:06:23,580 >> Tutaj mamy porządek quizie zera. 134 00:06:23,580 --> 00:06:24,895 Nie pozwól zastraszyć. 135 00:06:24,895 --> 00:06:26,270 Wiem, że jest wiele informacji. 136 00:06:26,270 --> 00:06:27,580 To wygląda bardzo groźnie. 137 00:06:27,580 --> 00:06:33,130 To także wiele, I myślę, CSC rodzaju warunkach. 138 00:06:33,130 --> 00:06:37,440 Rzeczy takie jak struny w systemie szesnastkowym, wskaźniki, alokacje pamięci dynamicznej 139 00:06:37,440 --> 00:06:40,120 Warunki są bardzo groźnie brzmiące. 140 00:06:40,120 --> 00:06:42,700 >> Ale mamy zamiar je łamać w dół, zrobić jakieś problemy praktyczne 141 00:06:42,700 --> 00:06:44,980 tak, że wy wszyscy są gotowe do tego testu. 142 00:06:44,980 --> 00:06:47,104 Jak wielu z was ma już rozpoczął studia? 143 00:06:47,104 --> 00:06:50,040 144 00:06:50,040 --> 00:06:53,670 >> OK, chłopaki prawdopodobnie chcesz rozpocząć się zaczyna 145 00:06:53,670 --> 00:06:56,480 na tym, ponieważ quiz jest jutro. 146 00:06:56,480 --> 00:06:58,739 Lub czwartek dla niektórych z was. 147 00:06:58,739 --> 00:07:01,030 Tak, więc mamy zamiar iść na niektórych problemów praktycznych. 148 00:07:01,030 --> 00:07:04,600 Jeśli wy wszyscy chcą brać na kartce papieru, ołówek. 149 00:07:04,600 --> 00:07:07,310 Jedziemy po prostu spędzić Zdecydowana większość dzisiejszego odcinka 150 00:07:07,310 --> 00:07:11,590 dzieje się tak, że niektórzy faceci mają pomysł, czego się spodziewać w quizie. 151 00:07:11,590 --> 00:07:14,957 152 00:07:14,957 --> 00:07:16,890 >> OK. 153 00:07:16,890 --> 00:07:19,730 Kilka logistyczne Szczegóły, jak również, dla każdego 154 00:07:19,730 --> 00:07:25,120 która nie jest do tego połączenia jest, jeżeli idziesz do cs50.yale.edu, z przodu 155 00:07:25,120 --> 00:07:28,566 tej strony znajduje się link że mówi: "O Quiz Zero". 156 00:07:28,566 --> 00:07:29,440 Link zabierze cię tam. 157 00:07:29,440 --> 00:07:31,065 Jeśli nie masz go odczytać, należy ją przeczytać. 158 00:07:31,065 --> 00:07:34,470 Bo to mówi, naprawdę ważne informacje dotyczące quizu. 159 00:07:34,470 --> 00:07:37,410 >> Mam zamiar wyciągnąć na to uwagę od że tylko dlatego, fizycznie, 160 00:07:37,410 --> 00:07:40,200 jeśli ludzie nie wiedzą, gdzie iść, będziemy mieli problemy. 161 00:07:40,200 --> 00:07:44,220 I tak, jeśli chodzi o ostatnią A N, przejdź do auli szkoły prawniczej. 162 00:07:44,220 --> 00:07:47,500 A jeśli Twoja ostatnia zaczyna się od P do Z, przejdź do Davies Auditorium. 163 00:07:47,500 --> 00:07:50,240 I to dotyczy tylko osób w dziale środę. 164 00:07:50,240 --> 00:07:53,420 >> Jeśli bierzesz udział w quizie na temat Czwartek, idziesz do SSS 114 165 00:07:53,420 --> 00:07:55,078 Wykład, gdzie zazwyczaj jest. 166 00:07:55,078 --> 00:07:55,953 PUBLICZNOŚCI: [niesłyszalne] 167 00:07:55,953 --> 00:07:59,316 168 00:07:59,316 --> 00:08:01,940 PROFESOR O do Z, będziesz aby przejść do sali Davies. 169 00:08:01,940 --> 00:08:03,273 Mam zamiar to zmienić, prawda? 170 00:08:03,273 --> 00:08:05,670 171 00:08:05,670 --> 00:08:09,698 >> Och, tak, po prostu nie automatycznie. 172 00:08:09,698 --> 00:08:11,753 >> O tak, to jesteś Christa. 173 00:08:11,753 --> 00:08:15,190 174 00:08:15,190 --> 00:08:16,030 Tak, mój błąd. 175 00:08:16,030 --> 00:08:17,610 Tak, O do Z, będziesz aby przejść do Davies Auditorim. 176 00:08:17,610 --> 00:08:19,140 Mam zamiar rozwiązać ten problem raz przesłać. 177 00:08:19,140 --> 00:08:20,320 Tak. 178 00:08:20,320 --> 00:08:22,160 >> I wtedy też coś Ważne, aby pamiętać, 179 00:08:22,160 --> 00:08:25,290 jest to, że środa, jeśli są oficjalnie uczestniczących w sekcji środę, 180 00:08:25,290 --> 00:08:26,832 trzeba wziąć quiz w środę. 181 00:08:26,832 --> 00:08:29,706 A jeśli uczestniczących w czwartek, trzeba wziąć quiz czwartek. 182 00:08:29,706 --> 00:08:31,000 I to w czasie zajęć. 183 00:08:31,000 --> 00:08:35,970 Gdzie, myślę, że to jest jak 1:00 do 02:15 w środy i 02:30 do 03:45 184 00:08:35,970 --> 00:08:37,220 w czwartki. 185 00:08:37,220 --> 00:08:41,710 >> Jeśli masz nierozwiązywalne konflikty, Wymówek Deana są jedyną rzeczą, 186 00:08:41,710 --> 00:08:43,030 niestety, możemy podjąć. 187 00:08:43,030 --> 00:08:45,560 Dlatego, że miał Zdecydowana większość wniosków 188 00:08:45,560 --> 00:08:47,970 aby przełączyć ze środy na czwartek. 189 00:08:47,970 --> 00:08:51,265 Których nie możemy uczcić chyba mamy wniosek dziekana. 190 00:08:51,265 --> 00:08:52,650 >> OK. 191 00:08:52,650 --> 00:08:57,000 Więc zanim zaczniemy na zasadzie Kilka problemów praktycznych, 192 00:08:57,000 --> 00:09:00,540 Idę tylko przejść Pomocne wskazówki Andy'ego sukcesu. 193 00:09:00,540 --> 00:09:04,140 Wy, kiedy uczysz się, że naprawdę chcesz ćwiczyć pisanie kodu ręcznie. 194 00:09:04,140 --> 00:09:07,050 Po raz pierwszy kiedykolwiek wziął quiz CS, nie miałem 195 00:09:07,050 --> 00:09:09,960 Praktyka pisania kodu ręcznie przed i to było bardzo 196 00:09:09,960 --> 00:09:11,890 szokujące, jak trudne to było. 197 00:09:11,890 --> 00:09:16,125 >> Kiedy wy nie dostać się do zwyczaj wpisywania się wszystkiego, 198 00:09:16,125 --> 00:09:20,260 chodzi bardzo naturalny sposób bycia stanie się autocompleted 199 00:09:20,260 --> 00:09:22,015 wsporniki i średniki tam. 200 00:09:22,015 --> 00:09:23,890 Kiedy piszesz go ręcznie, czasami jest to 201 00:09:23,890 --> 00:09:27,100 bardzo, bardzo łatwo zapomnieć, średnik, lub zapomnij zamknąć nawias, 202 00:09:27,100 --> 00:09:30,970 lub zapomnij zamknąć dwukropek, czy coś takiego. 203 00:09:30,970 --> 00:09:34,322 >> Więc kiedy piszesz kod ręcznie, to jest bardzo różny charakter. 204 00:09:34,322 --> 00:09:37,280 Więc chłopaki, podczas pracy przez niektóre z problemów praktycznych, 205 00:09:37,280 --> 00:09:38,904 byłoby dobrze, aby naprawdę ćwiczyć dzisiaj. 206 00:09:38,904 --> 00:09:41,770 Lub jutro, przypuszczam, jeśli jesteś biorąc udział w quizie na czwartek. 207 00:09:41,770 --> 00:09:45,280 >> Po drugie, mamy ostatni, jak, Osiem roku warto praktyce 208 00:09:45,280 --> 00:09:47,070 quizy on-line. 209 00:09:47,070 --> 00:09:50,759 Tegoroczna quizu będzie prawdopodobnie bardzo podobne do wszystkich z nich. 210 00:09:50,759 --> 00:09:51,800 Wszyscy są bardzo podobne. 211 00:09:51,800 --> 00:09:54,220 Ci rodzaj dostać się do styl rodzaju pytań 212 00:09:54,220 --> 00:09:57,250 o co prosimy, rodzaj Funkcje, które będziemy pisać je, 213 00:09:57,250 --> 00:09:58,580 et cetera, et cetera. 214 00:09:58,580 --> 00:10:01,980 >> Więc weź quizy praktyce w szczególności w ramach ograniczeń czasowych. 215 00:10:01,980 --> 00:10:05,390 75 minut zrobić quiz jest nie dużo czasu. 216 00:10:05,390 --> 00:10:07,254 To bardzo, bardzo długo. 217 00:10:07,254 --> 00:10:09,670 A więc wy naprawdę chcesz aby upewnić się, że chłopaki są 218 00:10:09,670 --> 00:10:11,990 w zwyczaju pisania Kod ręcznie szybko. 219 00:10:11,990 --> 00:10:15,070 Bo nie chcesz pierwszy czas, aby zobaczyć, quiz o tej długości 220 00:10:15,070 --> 00:10:16,560 być na quiz. 221 00:10:16,560 --> 00:10:20,540 Chłopaki naprawdę chcesz się upewnić, że ćwiczysz wcześniej. 222 00:10:20,540 --> 00:10:24,550 >> Po czwarte, chcesz przeglądu Sekcja wykładowe i slajdy. 223 00:10:24,550 --> 00:10:25,980 Nie musisz zapamiętać rzeczy. 224 00:10:25,980 --> 00:10:30,430 Właściwie każdy pozwolił jeden arkusz białego papieru notatki, 225 00:10:30,430 --> 00:10:31,090 przód i tył. 226 00:10:31,090 --> 00:10:32,920 Możecie piszesz. 227 00:10:32,920 --> 00:10:37,070 Jeśli znajdziesz się potrzeby, aby zapamiętać coś, umieścić go w dół na tej kartce. 228 00:10:37,070 --> 00:10:40,810 >> Gwarantuję Ci, że nie chcesz, aby utknąć w środku tego quizu 229 00:10:40,810 --> 00:10:43,890 jest podobny, oh yeah, co jest czas pracy tego rodzaju porównaniu tego rodzaju. 230 00:10:43,890 --> 00:10:46,490 Wystarczy umieścić go w dół i skopiuj go prosto z blachy notatki. 231 00:10:46,490 --> 00:10:50,420 Wtedy może faktycznie wystarczy użyć mózg, aby myśleć o problemach 232 00:10:50,420 --> 00:10:52,190 zamiast przypomnieć fakty. 233 00:10:52,190 --> 00:10:55,250 I tak naprawdę skorzystać wszelkich informacji niszowych 234 00:10:55,250 --> 00:11:00,140 , że uważasz, że potrzebujesz do zapamiętania, rzuć go na karcie przeglądu. 235 00:11:00,140 --> 00:11:02,680 >> OK, wszelkie pytania logistycznie dotyczące quizu 236 00:11:02,680 --> 00:11:05,510 zanim zaczniemy niektóre Problemy quizów ćwiczyć? 237 00:11:05,510 --> 00:11:06,416 Tak? 238 00:11:06,416 --> 00:11:10,040 >> PUBLICZNOŚCI: Nie miałem szansy patrzeć na quizu [niesłyszalne] 239 00:11:10,040 --> 00:11:11,757 ale to będzie Program zazwyczaj, 240 00:11:11,757 --> 00:11:14,090 Czy jest tam też będzie, jak, pytania wiedzy? 241 00:11:14,090 --> 00:11:14,940 >> PROFESOR To dużo. 242 00:11:14,940 --> 00:11:16,731 Tak, tak, że będzie opisany w quizie 243 00:11:16,731 --> 00:11:18,810 jest-- ułożyła niektóre problemy praktyczne 244 00:11:18,810 --> 00:11:20,960 które wyciągnąłem ze wszystkich quizów. 245 00:11:20,960 --> 00:11:25,210 Ale zobaczysz, że nie ma dwóch głównych rodzaje pytań będziemy was pytać. 246 00:11:25,210 --> 00:11:28,750 >> Jeden szczegół bardzo niski poziom rzeczy. 247 00:11:28,750 --> 00:11:31,720 Damy Ci mały kawałek kodu i powiedzieć, czy jest błąd tutaj? 248 00:11:31,720 --> 00:11:33,110 Co będzie drukowanie tutaj? 249 00:11:33,110 --> 00:11:35,980 Jaki będzie ten kod produkcji, et cetera. 250 00:11:35,980 --> 00:11:38,710 Tak szczegółowe informacje dotyczące bardzo niskim poziomie. 251 00:11:38,710 --> 00:11:42,700 >> A w odwrotną stronę, będziemy mieć bardzo Wysoki poziom pytań opartych na wiedzy. 252 00:11:42,700 --> 00:11:45,190 Czy możesz wyjaśnić, co Różnica pomiędzy poszukiwania binarnego 253 00:11:45,190 --> 00:11:46,148 i przeszukiwanie liniowe jest? 254 00:11:46,148 --> 00:11:48,500 Dlaczego mielibyśmy używać jednego nad innymi? 255 00:11:48,500 --> 00:11:49,960 Być może to, co jest GDB? 256 00:11:49,960 --> 00:11:51,560 Dlaczego chcemy używać GDB? 257 00:11:51,560 --> 00:11:54,590 Wyższy poziom, bardziej fundamentalne zrozumienie pytania. 258 00:11:54,590 --> 00:11:58,240 Więc zobaczysz mieszaninę dwa z nich na quiz. 259 00:11:58,240 --> 00:12:01,462 >> Coś jeszcze, zanim prosto do niego? 260 00:12:01,462 --> 00:12:02,879 OK. 261 00:12:02,879 --> 00:12:03,670 PUBLICZNOŚCI: Jeszcze jedno. 262 00:12:03,670 --> 00:12:04,030 PROFESOR: Aha, jeszcze jedno. 263 00:12:04,030 --> 00:12:04,340 Przepraszam. 264 00:12:04,340 --> 00:12:05,631 >> PUBLICZNOŚCI: Tak, to wszystko w porządku. 265 00:12:05,631 --> 00:12:10,140 Więc mówisz, że 75 minut jest zbyt krótki, jak to jest mało prawdopodobne, 266 00:12:10,140 --> 00:12:11,640 że skończymy? 267 00:12:11,640 --> 00:12:13,571 Czy, jak, 75 minut Jest dokładnie tak, jak wiele czasu 268 00:12:13,571 --> 00:12:15,700 tak musielibyśmy gdybyśmy byli odpowiednio przygotowane? 269 00:12:15,700 --> 00:12:17,450 PROFESOR: OK, więc Quiz jest wyzwaniem. 270 00:12:17,450 --> 00:12:19,550 Jest to z pewnością wyzwanie. 271 00:12:19,550 --> 00:12:21,092 Znajdą się na krótki czas. 272 00:12:21,092 --> 00:12:24,341 Prawdopodobnie będzie hit, jak 10, 15 minut, aby przejść, i jest jak cholera. 273 00:12:24,341 --> 00:12:25,520 Mam tak dużo do zrobienia. 274 00:12:25,520 --> 00:12:26,520 I to jest całkowicie w porządku. 275 00:12:26,520 --> 00:12:28,740 Każdy będzie czuć się w ten sam sposób. 276 00:12:28,740 --> 00:12:31,074 >> Wystarczy być bardzo świadomi ile masz czasu. 277 00:12:31,074 --> 00:12:33,490 A więc dlatego mówię ci faceci quizy praktyk. 278 00:12:33,490 --> 00:12:36,672 Bo to naprawdę daje wielkie poczucie czego quiz będzie podobne. 279 00:12:36,672 --> 00:12:39,130 Więc jeśli znajdziesz się być stanie zakończeniu praktyki 280 00:12:39,130 --> 00:12:41,671 quizy w dobrej ilości Czas, można chodzić się dobrze, 281 00:12:41,671 --> 00:12:45,695 to nie będzie problem w środę lub czwartek. 282 00:12:45,695 --> 00:12:46,575 >> Chłodny. 283 00:12:46,575 --> 00:12:49,200 Więc jeśli wszyscy wants-- myślę większość ludzi ma arkuszy papieru 284 00:12:49,200 --> 00:12:49,810 się już. 285 00:12:49,810 --> 00:12:52,604 Mam zamiar w zasadzie tylko daje przykładowe pytania, 286 00:12:52,604 --> 00:12:54,520 Ci faceci, podobnych, kilka minut, aby je zrobić. 287 00:12:54,520 --> 00:12:59,610 I pójdziemy nad jako klasy co odpowiedzi na nie są. 288 00:12:59,610 --> 00:13:02,860 >> Więc jest to bardzo typowe na początku pytanie, które będziesz 289 00:13:02,860 --> 00:13:06,720 proszę cię, tylko konwersja liczby pomiędzy różnymi systemami. 290 00:13:06,720 --> 00:13:09,070 Binarne, jak faceci mogą Przypomnijmy, jest bazą dwóch. 291 00:13:09,070 --> 00:13:12,470 Dziesiętny jest bazą 10, lub co jak ludzie zwykle interpretują. 292 00:13:12,470 --> 00:13:17,120 Szesnastkowy jest bazą 16, która jest równa zero do dziewięciu, a także przez F. 293 00:13:17,120 --> 00:13:19,990 >> Więc nie cztery numery jestem prosząc was do konwersji tutaj. 294 00:13:19,990 --> 00:13:23,909 Dam chcesz, trzy do czterech minut na przemyślenie, jak 295 00:13:23,909 --> 00:13:25,200 pójdziemy na temat rozwiązywania tego. 296 00:13:25,200 --> 00:13:32,832 297 00:13:32,832 --> 00:13:35,710 >> PUBLICZNOŚCI: Czy wolno kalkulatory? 298 00:13:35,710 --> 00:13:37,630 >> PROFESOR: Nie będzie trzeba kalkulatory, tak. 299 00:13:37,630 --> 00:13:42,420 Myślę, że podstawowym dodatkiem, jak sądzę, jest wszyscy faceci będą proszeni zrobić. 300 00:13:42,420 --> 00:14:41,700 301 00:14:41,700 --> 00:14:45,070 >> I tak I niby mają poczucie od kiedy każdy jest zrobione, spojrzeć w górę, 302 00:14:45,070 --> 00:14:47,429 fala, nie wiem, uśmiech, wygląda na szczęśliwego, gdy skończysz. 303 00:14:47,429 --> 00:14:47,929 Tak. 304 00:14:47,929 --> 00:17:21,680 305 00:17:21,680 --> 00:17:23,945 Może jeszcze kilka minut. 306 00:17:23,945 --> 00:18:28,080 307 00:18:28,080 --> 00:18:29,600 >> OK, niech wprowadzą go w. 308 00:18:29,600 --> 00:18:31,580 Ja celowo będzie Ci faceci mniej czasu 309 00:18:31,580 --> 00:18:33,760 niż to prawdopodobnie trzeba zrobić niektóre z tych problemów, 310 00:18:33,760 --> 00:18:37,124 po prostu dlatego, że chcę, aby upewnić się, że mamy przez kilka problemów. 311 00:18:37,124 --> 00:18:39,290 Jeśli nie więc nie ma obaw mają szansę, aby zakończyć. 312 00:18:39,290 --> 00:18:43,770 Całkowicie OK, tak długo, jak trzeba pomysł, jak go o to. 313 00:18:43,770 --> 00:18:45,850 Więc zrób pierwszy. 314 00:18:45,850 --> 00:18:52,690 315 00:18:52,690 --> 00:18:57,870 >> Więc po pierwsze, czy ktoś chce mi powiedzieć binarnie, co zrobić, każdy z tych cyfr 316 00:18:57,870 --> 00:19:00,484 stanowią z punktu widzenia ich wartości? 317 00:19:00,484 --> 00:19:01,250 Tak? 318 00:19:01,250 --> 00:19:03,349 >> PUBLICZNOŚCI: Dwa do Moc zero, dwa do jednego. 319 00:19:03,349 --> 00:19:04,140 PROFESOR: Dokładnie. 320 00:19:04,140 --> 00:19:04,640 Więc. 321 00:19:04,640 --> 00:19:13,430 322 00:19:13,430 --> 00:19:16,430 >> Dobra, więc zazwyczaj kiedy jesteśmy w bazie 10 323 00:19:16,430 --> 00:19:20,580 wszystkie te reprezentują to, jak, 10 do podstawy zera, co? 324 00:19:20,580 --> 00:19:21,810 To twoja czyjeś miejsce. 325 00:19:21,810 --> 00:19:24,520 Wszystkie twoje miejsce 10 jest to 10 do zasilania jednego. 326 00:19:24,520 --> 00:19:26,600 Miejsce Ci 100 jest 10 do potęgi dwóch. 327 00:19:26,600 --> 00:19:29,570 >> Cokolwiek baza jesteś w będzie do czynienia z dokładnie tej samej rzeczy, 328 00:19:29,570 --> 00:19:31,480 po prostu w innej bazie. 329 00:19:31,480 --> 00:19:34,130 Więc binarny, wszystko to jest baza dwa. 330 00:19:34,130 --> 00:19:37,110 Idziesz do konwersji wszystkich cyfry na dwa, aby cokolwiek mocy 331 00:19:37,110 --> 00:19:38,190 tej cyfry. 332 00:19:38,190 --> 00:19:41,450 I tak, w tym sensie, że może mieć łatwiejszy sposób 333 00:19:41,450 --> 00:19:43,800 jest w stanie dodać lub Podsumowując wszystkie numery w porządku 334 00:19:43,800 --> 00:19:46,010 do przeliczenia na podstawie 10. 335 00:19:46,010 --> 00:19:50,362 >> Więc czy ktoś chce mi powiedzieć, co Odpowiedź na pierwsze z nich jest w bazie dziesięciu? 336 00:19:50,362 --> 00:19:51,674 >> PUBLICZNOŚCI: Dwa, [niesłyszalne] 337 00:19:51,674 --> 00:19:52,340 PROFESOR: Tak. 338 00:19:52,340 --> 00:19:53,230 PUBLICZNOŚCI: 42. 339 00:19:53,230 --> 00:19:56,560 PROFESOR: 42, proszę. 340 00:19:56,560 --> 00:20:00,660 Więc sposób mamy tę odpowiedź była przez robi dwóch pierwszych, które jest dwa. 341 00:20:00,660 --> 00:20:02,760 Plus dwa trzecie, które jest osiem. 342 00:20:02,760 --> 00:20:07,590 Plus dwa do piątej, która to co pozostało ponad. 343 00:20:07,590 --> 00:20:09,390 Zsumować je i jest to 42. 344 00:20:09,390 --> 00:20:12,000 >> Czy ktoś jest zdezorientowany, w jaki sposób mamy to? 345 00:20:12,000 --> 00:20:15,630 Tak więc podstawowym dodatkiem, jak Powiedziałem, powinno być OK. 346 00:20:15,630 --> 00:20:17,410 Jeśli nie, cóż, możemy praktykować, że zbyt. 347 00:20:17,410 --> 00:20:18,720 Ale to wszystko jest w porządku. 348 00:20:18,720 --> 00:20:20,560 Chłodny. 349 00:20:20,560 --> 00:20:25,570 >> Czy ktoś chce dać mi odpowiedzieć na drugim, jak również? 350 00:20:25,570 --> 00:20:26,860 >> 50? 351 00:20:26,860 --> 00:20:27,600 Dobry. 352 00:20:27,600 --> 00:20:30,044 Każdy mylić na temat mamy, że albo? 353 00:20:30,044 --> 00:20:31,960 Fajne, będę mieć odpowiedzi na następnym slajdzie. 354 00:20:31,960 --> 00:20:34,440 Więc nie ma obaw, jeśli Ciebie należy skopiować go w dół. 355 00:20:34,440 --> 00:20:38,860 >> OK, więc szesnastkowy jest nieco trudniejsze. 356 00:20:38,860 --> 00:20:41,840 ale mam zamiar pokazać wam skrót dla, jak to zrobić. 357 00:20:41,840 --> 00:20:44,800 Więc szesnastkowym, jak ty pamiętaj, że wszystko to jest być 16. 358 00:20:44,800 --> 00:20:48,920 A ponieważ my jako ludzie faktycznie nie mają 16 numerów do reprezentowania, że 359 00:20:48,920 --> 00:20:56,940 możemy przejść od zera do dziewięciu, które nasz pierwszy 10 wartości, a następnie robimy od A do F, 360 00:20:56,940 --> 00:20:58,630 które są następne sześć wartości. 361 00:20:58,630 --> 00:21:03,040 >> A więc najprostszym sposobem, aby przejść od dowolną liczbę binarną na szesnastkowy 362 00:21:03,040 --> 00:21:05,350 jest przełamanie ich na pół. 363 00:21:05,350 --> 00:21:10,042 A więc każda liczba binarna damy że prawdopodobnie będzie osiem cyfr. 364 00:21:10,042 --> 00:21:11,750 Możesz po prostu złamać je się w środku. 365 00:21:11,750 --> 00:21:17,460 >> Więc pierwsze jedno- jeden jeden, jeden jeden, jeden, jeden, jeden jeden. 366 00:21:17,460 --> 00:21:21,340 Niby, że go, wiesz, rysować ukośnik lub przecinek między nimi. 367 00:21:21,340 --> 00:21:23,800 A może po prostu konwersji bezpośrednio cokolwiek 368 00:21:23,800 --> 00:21:26,670 to jest do pierwszej liczba szesnastkowy, 369 00:21:26,670 --> 00:21:29,880 a co tu jest drugi z szesnastkowym. 370 00:21:29,880 --> 00:21:37,584 >> Więc pamiętaj, ze wspólnej notacji, co wartości szesnastkowe zacząć? 371 00:21:37,584 --> 00:21:38,460 >> PUBLICZNOŚCI: Zero. 372 00:21:38,460 --> 00:21:39,270 >> PROFESOR 0X. 373 00:21:39,270 --> 00:21:45,210 Tak więc wiemy, że za każdym razem prosić, przekonwertować dowolną liczbę do szesnastkowy, 374 00:21:45,210 --> 00:21:48,230 lub w dowolnym momencie widać żadnej Numer, który zaczyna się od 0X, 375 00:21:48,230 --> 00:21:50,230 wiesz, że jest to wartość szesnastkowa. 376 00:21:50,230 --> 00:21:54,160 >> I wtedy masz zamiar zostać poproszony o ustalić, co te dwie cyfry to. 377 00:21:54,160 --> 00:21:59,690 I tak, jak to zrobić, liczenie się że połowa i liczenie się, że połowa. 378 00:21:59,690 --> 00:22:02,870 Tak więc w tym przykładzie, jaki będzie jeden, jeden, jeden, jeden być? 379 00:22:02,870 --> 00:22:04,890 Jaką wartość miałoby to być? 380 00:22:04,890 --> 00:22:06,040 Byłoby F, prawda? 381 00:22:06,040 --> 00:22:08,050 To byłoby 15. 382 00:22:08,050 --> 00:22:11,780 >> Tak więc będzie to F. One Jeden z nich, jeden, jeden tu również 383 00:22:11,780 --> 00:22:21,270 F. Tak jeden, jeden, jeden, jeden, jeden, jeden, jeden, jeden w systemie szesnastkowym, wszystko to jest 0xFF. 384 00:22:21,270 --> 00:22:25,350 Bo to połowa reprezentowany F, wartość 15, 385 00:22:25,350 --> 00:22:27,331 a to połowa reprezentowany F, wartość 15. 386 00:22:27,331 --> 00:22:29,456 Bo pamiętam, że jesteśmy licząc od zera do dziewięciu. 387 00:22:29,456 --> 00:22:35,290 A jest, jak 10, B jest jak 11, F 15. 388 00:22:35,290 --> 00:22:41,690 >> Czy to ma sens dla wszystkich how mamy z dwójkowego na szesnastkowy? 389 00:22:41,690 --> 00:22:44,595 >> PUBLICZNOŚCI: A więc jak mamy 15 od jednego, jeden, jeden, jeden? 390 00:22:44,595 --> 00:22:46,220 PROFESOR: Tak, to jest binarny, prawda? 391 00:22:46,220 --> 00:22:48,090 Wyobraź sobie, to tylko liczba binarna. 392 00:22:48,090 --> 00:22:50,792 Więc masz dwa do zerowego, które jest jednym. 393 00:22:50,792 --> 00:22:51,500 PUBLICZNOŚCI: Och, OK. 394 00:22:51,500 --> 00:22:51,670 Więc po prostu wynieść go na zewnątrz. 395 00:22:51,670 --> 00:22:52,670 >> PROFESOR: Tak, a następnie w sumie, że po prostu się. 396 00:22:52,670 --> 00:22:53,380 To wszystko to jest. 397 00:22:53,380 --> 00:22:54,890 >> PUBLICZNOŚCI: OK. 398 00:22:54,890 --> 00:22:55,830 >> PROFESOR OK. 399 00:22:55,830 --> 00:23:00,740 >> PUBLICZNOŚCI: Więc idziesz z binarny na dziesiętne na szesnastkowe? 400 00:23:00,740 --> 00:23:04,590 >> PROFESOR: To jest Najprostszym sposobem, aby to zrobić, tak. 401 00:23:04,590 --> 00:23:11,390 Nie idziesz na dziesiętne, ponieważ dziesiętny ma tylko zera do dziewięciu. 402 00:23:11,390 --> 00:23:13,410 Jesteśmy po prostu rodzaj Ten podział na dwa. 403 00:23:13,410 --> 00:23:15,201 >> PUBLICZNOŚCI: [niesłyszalne] używając po przecinku znaleźć 404 00:23:15,201 --> 00:23:17,809 co pasuje do w systemie szesnastkowym. 405 00:23:17,809 --> 00:23:20,100 PROFESOR: To znaczy, że jesteś liczenie się za pomocą podstawy matematyki. 406 00:23:20,100 --> 00:23:20,725 PUBLICZNOŚCI: Tak. 407 00:23:20,725 --> 00:23:22,300 PROFESOR: Tak, bardzo dużo. 408 00:23:22,300 --> 00:23:23,630 To jest nieco mylące. 409 00:23:23,630 --> 00:23:26,410 Ale wiem, że Ciebie może podzielić się niezależnie 410 00:23:26,410 --> 00:23:28,160 wartość ta jest w zaledwie pół. 411 00:23:28,160 --> 00:23:29,570 Spójrz, co to jest w formacie binarnym? 412 00:23:29,570 --> 00:23:30,610 Jaki numer jest? 413 00:23:30,610 --> 00:23:33,270 To będzie coś od zera do F. 414 00:23:33,270 --> 00:23:35,722 >> Tu również będzie coś od zera do F. 415 00:23:35,722 --> 00:23:37,722 I wtedy można po prostu umieścić tych dwóch tam. 416 00:23:37,722 --> 00:23:38,263 >> PUBLICZNOŚCI: OK. 417 00:23:38,263 --> 00:23:38,910 PROFESOR: Tak. 418 00:23:38,910 --> 00:23:39,410 OK. 419 00:23:39,410 --> 00:23:42,320 Więc chłopaki chcą spróbować następny wtedy? 420 00:23:42,320 --> 00:23:49,601 Zero, jeden, zero on, jednego, zero, jeden zero. 421 00:23:49,601 --> 00:23:52,350 Dam wam jak 30 sekund, ponieważ zapewne nie wiedział, 422 00:23:52,350 --> 00:23:53,850 sztuczka się, jak to zrobić wcześniej. 423 00:23:53,850 --> 00:24:24,950 424 00:24:24,950 --> 00:24:27,381 >> OK, ktoś chce uzyskać to można sobie strzelać? 425 00:24:27,381 --> 00:24:28,774 >> 0X5A. 426 00:24:28,774 --> 00:24:29,440 PROFESOR 0X5A. 427 00:24:29,440 --> 00:24:30,470 5a. 428 00:24:30,470 --> 00:24:31,340 Dobry. 429 00:24:31,340 --> 00:24:37,050 Więc to tutaj, by być: chcesz nam powiedzieć, jak masz to? 430 00:24:37,050 --> 00:24:38,920 Po pierwsze, jak nie masz pięć? 431 00:24:38,920 --> 00:24:42,030 >> PUBLICZNOŚCI: Ponieważ zera, jeden, zero, jeden jest pięć. 432 00:24:42,030 --> 00:24:45,170 >> PROFESOR: Czy wszyscy rozumieją Dlatego zero, jeden, zero, jeden pięć? 433 00:24:45,170 --> 00:24:46,260 Masz je tutaj. 434 00:24:46,260 --> 00:24:48,010 Nie masz nic w dwa do pierwszej. 435 00:24:48,010 --> 00:24:50,300 W dwóch do drugiego, ci mieć jeden, który jest cztery. 436 00:24:50,300 --> 00:24:52,600 Więc dodać Four Plus jeden, masz pięć. 437 00:24:52,600 --> 00:24:53,600 Każdy dobry? 438 00:24:53,600 --> 00:24:54,100 OK. 439 00:24:54,100 --> 00:24:56,570 A potem, co to było i dlaczego? 440 00:24:56,570 --> 00:24:58,350 Jaki numer robi odpowiadać? 441 00:24:58,350 --> 00:24:59,350 >> PUBLICZNOŚCI: 10. 442 00:24:59,350 --> 00:25:00,976 >> PROFESOR: A co to na podstawie dwóch? 443 00:25:00,976 --> 00:25:01,850 PUBLICZNOŚCI: [niesłyszalne] 444 00:25:01,850 --> 00:25:03,010 PROFESOR: Dokładnie. 445 00:25:03,010 --> 00:25:06,370 Więc ta druga wartość tutaj byłoby 0X5A. 446 00:25:06,370 --> 00:25:08,410 >> Wszyscy dobrze na jak konwertować? 447 00:25:08,410 --> 00:25:10,770 To dużo prostsze, niż myślisz, że jest. 448 00:25:10,770 --> 00:25:13,330 Chcę tylko, aby upewnić się, wiesz, pomocne wskazówki 449 00:25:13,330 --> 00:25:14,950 i sztuczki dla, jak to zrobić. 450 00:25:14,950 --> 00:25:18,432 >> PUBLICZNOŚCI: Dlaczego po prostu podzielić jest w środku takiego? 451 00:25:18,432 --> 00:25:21,390 Wystarczy być tak, OK, idę tylko dbają o tych pierwszych [niesłyszalne]? 452 00:25:21,390 --> 00:25:24,240 >> PROFESOR Bo to rzeczywiście sposób wartości szesnastkowe są reprezentowane. 453 00:25:24,240 --> 00:25:26,890 0X, że faktycznie oznacza nic innego, jak mówi ci 454 00:25:26,890 --> 00:25:28,710 że jest to liczba szesnastkowa. 455 00:25:28,710 --> 00:25:31,580 A to zawsze oznacza pierwsze cztery cyfry. 456 00:25:31,580 --> 00:25:34,330 A to zawsze oznacza cztery ostatnie cyfry. 457 00:25:34,330 --> 00:25:37,835 I tak te dwie cyfry po prostu odpowiadać różnym bitów. 458 00:25:37,835 --> 00:25:39,200 >> PUBLICZNOŚCI: Więc będziemy always-- 459 00:25:39,200 --> 00:25:41,830 >> PROFESOR: Jesteś zawsze dostanie osiem bitów wartości. 460 00:25:41,830 --> 00:25:44,580 >> PUBLICZNOŚCI: Czy to jest po prostu lubię rzeczy tutaj lub, że rzeczy na całym? 461 00:25:44,580 --> 00:25:46,883 PROFESOR: To tylko rzecz w komputerach, yep. 462 00:25:46,883 --> 00:25:47,424 PUBLICZNOŚCI: OK. 463 00:25:47,424 --> 00:25:48,240 Niesamowite. 464 00:25:48,240 --> 00:25:51,290 >> PROFESOR także, więc w tym przykładzie mamy przeliczone z binarnego na dziesiętny, 465 00:25:51,290 --> 00:25:53,290 i od dwójkowego na szesnastkowy. 466 00:25:53,290 --> 00:25:56,610 Chcecie, aby upewnić się, że również ćwiczyć będzie na odwrót. 467 00:25:56,610 --> 00:26:03,370 Więc jeśli dałem ci 0xFF, można wyciągnąć, że w pliku binarnego, prawda? 468 00:26:03,370 --> 00:26:06,820 >> Konwertowanie F na binarny, który jest jeden, jedna, jeden, 469 00:26:06,820 --> 00:26:09,380 konwersji F na binarny, który jest jeden, jeden, jeden, jeden. 470 00:26:09,380 --> 00:26:11,310 >> Więc możemy poprosić zrobić na odwrót. 471 00:26:11,310 --> 00:26:14,817 Więc dziesiętny na binarny, lub szesnastkowy na binarny. 472 00:26:14,817 --> 00:26:16,650 Więc chcesz, aby trzeba wiedzieć, w obie strony. 473 00:26:16,650 --> 00:26:19,371 Będziemy prawdopodobnie zadać ci Połączenie tych dwóch. 474 00:26:19,371 --> 00:26:20,660 >> Tak, masz pytanie? 475 00:26:20,660 --> 00:26:22,724 Mogę see-- jesteś dobry? 476 00:26:22,724 --> 00:26:23,348 PUBLICZNOŚCI: Tak. 477 00:26:23,348 --> 00:26:24,560 PROFESOR OK. 478 00:26:24,560 --> 00:26:26,101 Czy jestem dobra, aby usunąć ten? 479 00:26:26,101 --> 00:26:26,600 Wielki. 480 00:26:26,600 --> 00:26:33,965 481 00:26:33,965 --> 00:26:40,437 >> W porządku, więc odpowiedzi są tutaj, jeśli ktoś jest ciekawa później i się mylić. 482 00:26:40,437 --> 00:26:41,844 OK. 483 00:26:41,844 --> 00:26:46,070 >> PUBLICZNOŚCI: Czy to ważne, jeśli założymy nasze listy w stolicy lub małymi literami? 484 00:26:46,070 --> 00:26:50,360 >> PROFESOR: To nie, ponieważ w systemie szesnastkowym, zgodnie z konwencją, 485 00:26:50,360 --> 00:26:52,840 Wszystkie znaki są wielkie litery. 486 00:26:52,840 --> 00:26:54,650 Więc od A do F są będzie wielkie. 487 00:26:54,650 --> 00:26:58,660 Jeśli umieścisz małe litery a, nie wiem, jeśli chcemy koniecznie zaznaczyć to źle. 488 00:26:58,660 --> 00:27:00,679 Ale teoretycznie, to nie jest technicznie 489 00:27:00,679 --> 00:27:01,970 jak powinniśmy go mieć. 490 00:27:01,970 --> 00:27:03,303 Tak więc wszystkie one powinny być wielkie. 491 00:27:03,303 --> 00:27:05,910 Tak, dobre pytanie. 492 00:27:05,910 --> 00:27:07,780 >> OK. 493 00:27:07,780 --> 00:27:08,790 Drugie pytanie. 494 00:27:08,790 --> 00:27:12,750 Rozważmy ten piękny program, tutaj. 495 00:27:12,750 --> 00:27:15,180 Zadam pytanie, Przyjdę ten powrót. 496 00:27:15,180 --> 00:27:23,170 >> Tak więc, po pierwsze, co jest w środku standardu io.h to interesujące dla programu? 497 00:27:23,170 --> 00:27:26,640 Po drugie, co to nieważne oznacza w trójce? 498 00:27:26,640 --> 00:27:30,572 I po trzecie, co powoduje powrót do zera z Głównym, jak linia sześciu, na ogół oznacza? 499 00:27:30,572 --> 00:27:33,280 Jeśli chcecie napisać te w dół, ponieważ muszę wrócić 500 00:27:33,280 --> 00:27:36,810 do slajdu, tak więc można zobaczyć kod. 501 00:27:36,810 --> 00:27:40,400 Jest to przykład jak, może wyższy poziom, gdzie pytanie, prosimy 502 00:27:40,400 --> 00:27:42,435 jakie rzeczy oznacza w programie. 503 00:27:42,435 --> 00:27:47,290 504 00:27:47,290 --> 00:27:49,215 >> Każdy dobry dla mnie wróć do slajdu? 505 00:27:49,215 --> 00:27:53,400 506 00:27:53,400 --> 00:27:54,361 Ok fajnie. 507 00:27:54,361 --> 00:27:57,610 Więc dam wam jak może trzy minut, aby spojrzeć na ten jeden bardzo szybko. 508 00:27:57,610 --> 00:28:41,330 509 00:28:41,330 --> 00:28:44,140 >> OK, więc ten jeden jest jak dość łatwe, koncepcyjnie. 510 00:28:44,140 --> 00:28:49,280 Czy ktoś chce mi powiedzieć, co jest Pierwszy wewnątrz przez hash tym 511 00:28:49,280 --> 00:28:52,630 nasz standardowy plik biblioteki io.h? 512 00:28:52,630 --> 00:28:55,510 Dlaczego potrzebujemy tej biblioteki zawarte w tym programie? 513 00:28:55,510 --> 00:28:56,930 Co tutaj mamy to potrzebne? 514 00:28:56,930 --> 00:28:56,980 >> Tak? 515 00:28:56,980 --> 00:28:58,340 >> PUBLICZNOŚCI: Czy to jest, gdy umieścić że printf? 516 00:28:58,340 --> 00:28:59,131 >> PROFESOR: Dokładnie. 517 00:28:59,131 --> 00:29:01,780 Więc printf, w dowolnym momencie brać dane od użytkownika 518 00:29:01,780 --> 00:29:04,140 i wydrukować coś na ekranie, to 519 00:29:04,140 --> 00:29:05,600 standardowe wejście, wyjście biblioteki. 520 00:29:05,600 --> 00:29:07,170 Pomyśl o tym, że way-- wejście, wyjście. 521 00:29:07,170 --> 00:29:08,430 >> Czy mam wyjście? 522 00:29:08,430 --> 00:29:09,207 Tak. 523 00:29:09,207 --> 00:29:12,040 Więc wiem, że zawsze będę się Potrzebuję biblioteki NORMALIZUJ i.o. 524 00:29:12,040 --> 00:29:16,400 >> Tak printf jest funkcją przez które musimy przejść 525 00:29:16,400 --> 00:29:19,370 i hashtag obejmują Standardowa biblioteka i.o. 526 00:29:19,370 --> 00:29:20,280 OK. 527 00:29:20,280 --> 00:29:22,660 >> Po drugie, co to nieważne oznacza? 528 00:29:22,660 --> 00:29:26,970 Mamy int main (void), co robi unieważnić tu na myśli na linii trzech? 529 00:29:26,970 --> 00:29:28,080 Tak, w plecy. 530 00:29:28,080 --> 00:29:29,020 >> PUBLICZNOŚCI: [niesłyszalne] 531 00:29:29,020 --> 00:29:29,920 >> PROFESOR: Dokładnie. 532 00:29:29,920 --> 00:29:33,320 Więc pamiętaj, nauczyliśmy począwszy od naszej pset 533 00:29:33,320 --> 00:29:35,360 że można rzeczywiście określić wiersza poleceń 534 00:29:35,360 --> 00:29:39,010 Argumenty, że program, który Ciebie Główną funkcją, trwa w was, użytkownik, 535 00:29:39,010 --> 00:29:39,650 nazwać. 536 00:29:39,650 --> 00:29:42,650 Jeśli mamy nieważne, to znaczy, że Ciebie może po prostu uruchomić program bezpośrednio 537 00:29:42,650 --> 00:29:44,680 bez żadnych argumentów wiersza poleceń. 538 00:29:44,680 --> 00:29:46,160 Każdy jasne, że? 539 00:29:46,160 --> 00:29:46,660 OK. 540 00:29:46,660 --> 00:29:52,850 >> I wreszcie dlaczego męczyć się robi ten powrót zera tutaj? 541 00:29:52,850 --> 00:29:54,740 Dlaczego mamy nawet int main? 542 00:29:54,740 --> 00:29:57,330 Dlaczego nie możemy po prostu void main pustkę? 543 00:29:57,330 --> 00:29:59,216 Tak? 544 00:29:59,216 --> 00:30:01,590 PUBLICZNOŚCI: Tak, tak, że możemy mieć pewność, że program jest 545 00:30:01,590 --> 00:30:04,247 wychodzenia z powodzeniem, jak przeciwny, jeżeli został zaliczony. 546 00:30:04,247 --> 00:30:06,580 A my wiemy, że to jest inny rodzaj błędu. 547 00:30:06,580 --> 00:30:07,621 >> PROFESOR: Tak, dokładnie. 548 00:30:07,621 --> 00:30:10,670 To jest po prostu bardzo konwencjonalne rzeczy, które robimy, 549 00:30:10,670 --> 00:30:13,840 jest to, że tylko na koniec Twój program, tak aby upewnić się, 550 00:30:13,840 --> 00:30:15,830 że swojej głównej funkcji działa poprawnie, 551 00:30:15,830 --> 00:30:17,940 zawsze chcemy zrobić zerową rentowność. 552 00:30:17,940 --> 00:30:21,160 Mimo, że może niekoniecznie nie widzisz, że drukowane w dowolnym miejscu. 553 00:30:21,160 --> 00:30:25,092 >> Bo jak programistów, wiesz, jeśli masz wiele różnych linii kodu 554 00:30:25,092 --> 00:30:27,050 i nie wiesz, gdzie są one nie tak, 555 00:30:27,050 --> 00:30:30,240 i jeśli błąd się dzieje chcesz upewnij się, że masz ten błąd. 556 00:30:30,240 --> 00:30:33,240 I tak zazwyczaj, jeśli coś pójdzie nie tak będziemy mieli powrót jednego tylko 557 00:30:33,240 --> 00:30:34,669 aby upewnić się, wiemy, że to jest. 558 00:30:34,669 --> 00:30:36,460 Więc jeśli widzisz powrót zero, które zwykle 559 00:30:36,460 --> 00:30:38,293 oznacza, że ​​program jest wykonane pomyślnie. 560 00:30:38,293 --> 00:30:40,490 561 00:30:40,490 --> 00:30:40,990 Dobry? 562 00:30:40,990 --> 00:30:45,180 563 00:30:45,180 --> 00:30:45,680 Chłodny. 564 00:30:45,680 --> 00:30:48,710 565 00:30:48,710 --> 00:30:52,680 >> OK, drugi program tutaj. 566 00:30:52,680 --> 00:30:54,827 Uważają, że. 567 00:30:54,827 --> 00:30:56,910 A jeśli faceci zobaczyć float, chłopaki mogą prawdopodobnie 568 00:30:56,910 --> 00:31:00,810 mieć dobry pomysł, co Mam zamiar poprosić. 569 00:31:00,810 --> 00:31:05,200 >> Więc kiedy ten program wykonuje, jak widać, 570 00:31:05,200 --> 00:31:09,330 Oświadczam pływaka w mojej głównej funkcji. 571 00:31:09,330 --> 00:31:13,470 Jestem nazywając to "odpowiedź", a ja ustawienie że równa jeden podzielone przez 10. 572 00:31:13,470 --> 00:31:17,860 Jestem drukowania, do jednego miejsca po przecinku, że pływak. 573 00:31:17,860 --> 00:31:19,880 A potem wracam do zera. 574 00:31:19,880 --> 00:31:24,470 >> Więc przy realizacji programu, że powrót do chciwy teraz 575 00:31:24,470 --> 00:31:26,550 Ten program wypisuje 0.0. 576 00:31:26,550 --> 00:31:29,993 Jak wszyscy wiemy, mam nadzieję, że wszyscy wiem, jeden podzielone przez 10 nie jest 0,00, 577 00:31:29,993 --> 00:31:32,350 to 0,1. 578 00:31:32,350 --> 00:31:37,810 Ale dlaczego ten program myśli że 1 dzieli się przez 10 odbitek do 0,1 innym 579 00:31:37,810 --> 00:31:39,504 niż 0,1? 580 00:31:39,504 --> 00:31:42,545 Dam wam chłopaki może jak 30 sekundy po prostu szybko o tym myśleć 581 00:31:42,545 --> 00:31:43,878 i wrócę do programu. 582 00:31:43,878 --> 00:32:17,800 583 00:32:17,800 --> 00:32:20,290 >> OK. 584 00:32:20,290 --> 00:32:22,205 Każdy, kto chce dać mu szansę? 585 00:32:22,205 --> 00:32:24,330 W trzech zdaniach lub mniej, bo zazwyczaj jesteśmy 586 00:32:24,330 --> 00:32:27,650 zamierza ograniczyć wszystkie odpowiedzi do trzech zdaniach lub mniej 587 00:32:27,650 --> 00:32:31,130 więc nie tylko regurgitate losowe rzeczy na quiz. 588 00:32:31,130 --> 00:32:32,740 >> Tak, zrobić zdjęcie. 589 00:32:32,740 --> 00:32:36,390 >> PUBLICZNOŚCI: Więc myślę, że jest to coś o nazwie, jak, [niesłyszalne] 590 00:32:36,390 --> 00:32:42,320 Tak, że może być, na przykład, nie może być, na przykład, 0,09, 591 00:32:42,320 --> 00:32:47,250 że tam, gdzie można wydrukować pierwszy cyfrowy, to byłoby na 0.0? 592 00:32:47,250 --> 00:32:49,100 >> PROFESOR: Zamknij, nie całkiem. 593 00:32:49,100 --> 00:32:49,810 Christabell? 594 00:32:49,810 --> 00:32:51,770 >> PUBLICZNOŚCI: Jesteś podzielenie jednego i 10, i są one zarówno liczby całkowite. 595 00:32:51,770 --> 00:32:54,610 I tak droga, że ​​to będzie przechowywanie jest liczbą całkowitą. 596 00:32:54,610 --> 00:32:56,480 I tak najbliższej liczby całkowitej byłoby 0.0. 597 00:32:56,480 --> 00:32:57,471 I tak to jest 0,1. 598 00:32:57,471 --> 00:32:58,970 PROFESOR: Tak, to jest naprawdę dobry. 599 00:32:58,970 --> 00:33:00,040 To jest prawidłowa odpowiedź. 600 00:33:00,040 --> 00:33:03,597 Więc jest to bardzo mylące Koncepcja dla wielu dzieci. 601 00:33:03,597 --> 00:33:06,680 A ja naprawdę chcę, aby upewnić się, że ten jest wzmocniony w głowie każdego z nas. 602 00:33:06,680 --> 00:33:10,090 >> Więc to, co nazywamy pływające Punkt nieścisłości, 603 00:33:10,090 --> 00:33:12,800 gdy powodem, dlaczego wiele z programów w chciwi 604 00:33:12,800 --> 00:33:17,010 Początkowo nie było, bo pracują zapomniałeś oddać zmiennej. 605 00:33:17,010 --> 00:33:19,370 Więc co Christabell powiedział była całkowicie poprawne. 606 00:33:19,370 --> 00:33:21,990 >> Pływak jest z natury nieprecyzyjne. 607 00:33:21,990 --> 00:33:26,400 Ponieważ w komputerze, w prawo, mamy skończoną ilość bitów pamięci 608 00:33:26,400 --> 00:33:28,480 możemy użyć do reprezentowania liczb. 609 00:33:28,480 --> 00:33:33,480 Tak więc, na przykład, to CS50 ID jest-- Myślę, że to komputer 64-bitowy. 610 00:33:33,480 --> 00:33:37,520 >> Pływak może być reprezentowany tylko przez skończoną ilość tych bitów. 611 00:33:37,520 --> 00:33:42,260 I tak 0,1 z nieskończoną zer, To było 0,1 jest, prawda? 612 00:33:42,260 --> 00:33:45,450 Ale nie możemy właściwie przechowywać ta liczba w naszym komputerze. 613 00:33:45,450 --> 00:33:47,810 Po prostu nie mają mało pamięci, aby to zrobić. 614 00:33:47,810 --> 00:33:52,340 >> I tak najbliższym przybliżeniem co jest przechowywane w pamięci w rzeczywistości 615 00:33:52,340 --> 00:33:55,390 coś 0,000 czegoś, coś, coś, coś. 616 00:33:55,390 --> 00:34:01,240 Która, gdy obcina Opisz zaokrągla się do 0,0. 617 00:34:01,240 --> 00:34:05,640 >> A więc w tym przykładzie tylko jeden które wykazuje wiele problemów 618 00:34:05,640 --> 00:34:08,469 mamy gdy jesteśmy starając się niewłaściwie zrobić matematyki 619 00:34:08,469 --> 00:34:11,000 bez rzucania jako inny liczby całkowitej. 620 00:34:11,000 --> 00:34:14,870 Więc po prostu uważać na tego happeningu. 621 00:34:14,870 --> 00:34:18,239 >> Na quizy, jeśli daje blok kodu i to jak, 622 00:34:18,239 --> 00:34:19,510 co wypisuje na końcu? 623 00:34:19,510 --> 00:34:24,096 A jeśli to jakiś przypadkowy wartość, którą Powinniście wiedzieć, dlaczego tak się dzieje. 624 00:34:24,096 --> 00:34:24,909 Tak? 625 00:34:24,909 --> 00:34:27,926 >> PUBLICZNOŚCI: Obetnij się pozbyć wszystko po pewnym momencie? 626 00:34:27,926 --> 00:34:28,513 [NIESŁYSZALNY] 627 00:34:28,513 --> 00:34:30,929 PROFESOR: Tak, tak, rzeczywiście jest to bardzo zły przykład, 628 00:34:30,929 --> 00:34:37,870 bo 0,100, co właściwie by obciąć do 0,1. 629 00:34:37,870 --> 00:34:41,389 Ale jeśli było uruchomić it-- ja nie Pamiętam, bo w zeszłym roku, że 630 00:34:41,389 --> 00:34:42,830 prowadził ją w innym programie. 631 00:34:42,830 --> 00:34:45,300 Biegli go w coś, co nazywa CS50 Urządzenie, które 632 00:34:45,300 --> 00:34:46,389 różni się od identyfikatora. 633 00:34:46,389 --> 00:34:48,520 To był system 32-bitowy, jak sądzę. 634 00:34:48,520 --> 00:34:50,290 I tak były różne numery. 635 00:34:50,290 --> 00:34:53,330 >> Ale w zasadzie, po prostu wiem, że cała koncepcja obcinania 636 00:34:53,330 --> 00:34:54,815 i jak to po prostu odcina od rzeczy. 637 00:34:54,815 --> 00:34:55,690 I tak, jeśli to rounds-- 638 00:34:55,690 --> 00:34:56,300 >> PUBLICZNOŚCI: Bez zaokrąglenia. 639 00:34:56,300 --> 00:34:57,370 >> PROFESOR: Dokładnie. 640 00:34:57,370 --> 00:34:57,870 Tak. 641 00:34:57,870 --> 00:35:02,330 642 00:35:02,330 --> 00:35:04,380 Chłodny. 643 00:35:04,380 --> 00:35:05,250 >> Witam, w plecy. 644 00:35:05,250 --> 00:35:07,634 Jesteśmy po prostu się na niektóre PYTANIA Quiz. 645 00:35:07,634 --> 00:35:08,430 >> W porządku. 646 00:35:08,430 --> 00:35:10,150 Więc rozważyć inny program tutaj. 647 00:35:10,150 --> 00:35:12,797 648 00:35:12,797 --> 00:35:15,380 Mam zamiar dać ci faceci kilka minut do zapoznania się nad tym. 649 00:35:15,380 --> 00:35:18,588 To jest coś, co było dla bardzo niedawno, że myślę, że wiał dużo z was 650 00:35:18,588 --> 00:35:19,142 umysły facetów jest. 651 00:35:19,142 --> 00:35:21,100 Ale będziemy rozmawiać przez to ponownie tylko 652 00:35:21,100 --> 00:35:24,152 Aby upewnić się, rozumiem tego do końca. 653 00:35:24,152 --> 00:35:24,652 OK. 654 00:35:24,652 --> 00:35:41,280 655 00:35:41,280 --> 00:35:41,780 OK. 656 00:35:41,780 --> 00:35:44,342 Każdy, kto potrzebuje więcej czasu na przeczytać tego kodu? 657 00:35:44,342 --> 00:35:45,650 OK. 658 00:35:45,650 --> 00:35:50,630 >> Więc wydaje mi się, że w tym programie jestem 659 00:35:50,630 --> 00:35:53,460 tworząc dwa ciągi używając getString. 660 00:35:53,460 --> 00:35:55,180 Jeden zwane s oraz jeden o nazwie t. 661 00:35:55,180 --> 00:35:58,680 A jeśli są one równe wynosi wzajemnie 662 00:35:58,680 --> 00:36:00,880 powinien wydrukować "You wpisz to samo. " 663 00:36:00,880 --> 00:36:04,170 >> Ale elsewise, to wydrukować, "You wpisane różne rzeczy ", prawda? 664 00:36:04,170 --> 00:36:05,990 Wydaje się bardzo, bardzo proste. 665 00:36:05,990 --> 00:36:08,720 Ale jednak, gdybym rzeczywiście spróbować napisać program, 666 00:36:08,720 --> 00:36:12,230 wydaje się, że nawet wtedy, gdy wejściowe dokładnie te same struny, 667 00:36:12,230 --> 00:36:15,490 nadal drukuje, "You wpisane różne rzeczy! " 668 00:36:15,490 --> 00:36:18,020 Czy ktoś chce wziąć Strzał, dlaczego ten program zawsze 669 00:36:18,020 --> 00:36:20,370 odpowiada, że ​​wejścia różnią się, nawet 670 00:36:20,370 --> 00:36:22,090 kiedy same słowa są takie same? 671 00:36:22,090 --> 00:36:24,870 672 00:36:24,870 --> 00:36:29,170 >> Więc gdybym input-- David miłość używać przykład jak mamy, prawda? 673 00:36:29,170 --> 00:36:37,890 Małe litery M-O-M do S, T równa małą M-O-M. 674 00:36:37,890 --> 00:36:40,340 Jeśli wpadłem to poprzez że kod, dlaczego to 675 00:36:40,340 --> 00:36:44,180 wydrukować "wpisane różne rzeczy?" 676 00:36:44,180 --> 00:36:46,336 >> Czy ktoś potrzebuje więcej czas, aby pomyśleć o tym? 677 00:36:46,336 --> 00:36:47,294 OK, myślę, że jesteśmy dobrzy. 678 00:36:47,294 --> 00:36:48,716 Tak? 679 00:36:48,716 --> 00:36:53,930 >> PUBLICZNOŚCI: OK, więc jest to coś, o gdzie jest przechowywany w pamięci, prawda? 680 00:36:53,930 --> 00:36:54,890 >> PROFESOR: Tak. 681 00:36:54,890 --> 00:37:00,400 >> PUBLICZNOŚCI: Gdzie to jest jak, jeśli to ciąg s jest przechowywany w pamięci spot-- 682 00:37:00,400 --> 00:37:01,689 Jestem wynalezienie this-- wynosi zero. 683 00:37:01,689 --> 00:37:02,355 PROFESOR: Jasne. 684 00:37:02,355 --> 00:37:05,290 PUBLICZNOŚCI: A ciąg t przechowuje się w miejscu pamięci 685 00:37:05,290 --> 00:37:11,000 jak, 167, a następnie zera nie równa 167. 686 00:37:11,000 --> 00:37:12,610 >> PROFESOR: Dokładnie. 687 00:37:12,610 --> 00:37:18,350 OK, więc pamiętam to niesamowite Objawienie wyjaśniliśmy was 688 00:37:18,350 --> 00:37:21,530 w ubiegłym tygodniu, że struny naprawdę nie istnieje? 689 00:37:21,530 --> 00:37:25,380 Gdy tworzymy coś, co nazywa Ciąg jesteśmy w rzeczywistości, 690 00:37:25,380 --> 00:37:29,330 tworząc coś, co nazywa gwiazda char. 691 00:37:29,330 --> 00:37:34,470 Które wszystkim jest to wskaźnik do ciąg lub tablicy znaków. 692 00:37:34,470 --> 00:37:39,480 >> A więc w tym przykładzie, jeśli były do ​​wejścia M-O-M drodze 693 00:37:39,480 --> 00:37:49,350 że mój komputer będzie przechowywać to w obrębie pamięci backslashem zera, prawda? 694 00:37:49,350 --> 00:37:53,180 Te cztery litery, znaki, będą przechowywane gdzieś. 695 00:37:53,180 --> 00:37:59,290 >> A potem te cztery znaków, backslash zero, 696 00:37:59,290 --> 00:38:01,275 są przechowywane gdzie indziej, prawda? 697 00:38:01,275 --> 00:38:04,685 Nie mam pojęcia, gdzie adresy to, że są gdzieś w moim komputerze. 698 00:38:04,685 --> 00:38:07,080 Ale ja nie wiem dokładnie, gdzie się znajdują. 699 00:38:07,080 --> 00:38:10,170 >> Kiedy utworzyć ciąg s, wszystko, co jest naprawdę 700 00:38:10,170 --> 00:38:15,550 jest wskaźnikiem do zacząć od tego ciągu. 701 00:38:15,550 --> 00:38:21,130 A gdy tworzę ten t wartość, wszystko, co jest wskaźnikiem do tutaj. 702 00:38:21,130 --> 00:38:23,980 I tak, gdy starasz zrównywanie i sprawdzić, 703 00:38:23,980 --> 00:38:27,710 aby sprawdzić, czy s jest równe równa t, komputer 704 00:38:27,710 --> 00:38:31,635 jest tak naprawdę powrót do masz adres tego m 705 00:38:31,635 --> 00:38:33,390 i adres tego m. 706 00:38:33,390 --> 00:38:36,230 I dlatego, że są dwa oddzielne kawałki danych 707 00:38:36,230 --> 00:38:38,750 które są przechowywane w dwóch różnych Adresy w komputerze, 708 00:38:38,750 --> 00:38:41,750 komputer nigdy nie będzie rozpoznaje je jako takie same. 709 00:38:41,750 --> 00:38:43,500 Czy ktoś chce daje szansę na to, co 710 00:38:43,500 --> 00:38:46,900 musiałby zrobić, jeśli chcemy poprawić to i mają prawidłową uruchomiony program 711 00:38:46,900 --> 00:38:49,360 w zamian? 712 00:38:49,360 --> 00:38:52,070 Pomyśl o tym przez kilka sekund. 713 00:38:52,070 --> 00:38:54,929 Czego potrzebujemy, aby zmienić uzyskać ten funkcjonowania programu 714 00:38:54,929 --> 00:38:56,220 sposób, w jaki ma to działać? 715 00:38:56,220 --> 00:39:17,260 716 00:39:17,260 --> 00:39:18,918 >> Tak, chcę wziąć ukłucie na to? 717 00:39:18,918 --> 00:39:24,082 >> PUBLICZNOŚCI: Czy możemy spróbować dereference wskaźnik i sprawdzić przez tablicę? 718 00:39:24,082 --> 00:39:25,540 PROFESOR: To jeden ze sposobów, aby to zrobić. 719 00:39:25,540 --> 00:39:27,880 Więc, jak masz na imię jeszcze raz? 720 00:39:27,880 --> 00:39:29,010 Przykro mi, przypominają mi. 721 00:39:29,010 --> 00:39:29,589 >> Zee: Zee. 722 00:39:29,589 --> 00:39:32,130 PROFESOR: Tak, tak, to, co Zee Sugeruje absolutnie działa. 723 00:39:32,130 --> 00:39:32,629 Dobrze? 724 00:39:32,629 --> 00:39:35,730 Moglibyśmy wyłuskanie wskaźnika i rzeczywiście iść i dostęp 725 00:39:35,730 --> 00:39:38,460 Dane fizyczne wewnątrz tutaj. 726 00:39:38,460 --> 00:39:40,300 A może po prostu porównać cały ekran. 727 00:39:40,300 --> 00:39:43,670 >> Można powiedzieć, OK, wskaźnik, daj mi co jest w środku tutaj. 728 00:39:43,670 --> 00:39:44,960 To zwróci m. 729 00:39:44,960 --> 00:39:47,168 I chciałbym powiedzieć, wskaźnik, daj mi co jest w środku tutaj. 730 00:39:47,168 --> 00:39:47,750 Zwraca m. 731 00:39:47,750 --> 00:39:48,410 Czy te spotkanie? 732 00:39:48,410 --> 00:39:49,410 Tak. 733 00:39:49,410 --> 00:39:50,340 Następnie przejdziemy. 734 00:39:50,340 --> 00:39:54,240 >> Wciąż sprawdzenie całą dwa struny aż do góry do końca 735 00:39:54,240 --> 00:39:56,635 i sprawdzić, czy te są równe, jeśli wszystkie wartości są równe. 736 00:39:56,635 --> 00:39:59,680 A jeśli wszystkie wartości są równe, to wiemy, słowa są prawdziwe. 737 00:39:59,680 --> 00:40:01,600 Absolutnie, to w jaki sposób to zrobić? 738 00:40:01,600 --> 00:40:03,930 >> Czy ktoś mylić na cokolwiek z tego? 739 00:40:03,930 --> 00:40:06,970 Cała koncepcja tego, jak struny są naprawdę tylko wskaźniki, 740 00:40:06,970 --> 00:40:08,440 i jak tak naprawdę nie istnieje? 741 00:40:08,440 --> 00:40:10,480 I dlaczego mamy błędy jak sposób, w jaki ją dostać? 742 00:40:10,480 --> 00:40:15,070 Bo gwarantuję ci faceci, wskaźniki i przydział ciąg i pamięć 743 00:40:15,070 --> 00:40:16,470 będą pochodzić. 744 00:40:16,470 --> 00:40:17,410 >> Tak? 745 00:40:17,410 --> 00:40:21,072 >> PUBLICZNOŚCI: [niesłyszalne] dereference to, po prostu umieścić gwiazdę [niesłyszalne] 746 00:40:21,072 --> 00:40:21,780 PROFESOR: Racja. 747 00:40:21,780 --> 00:40:28,430 Więc derererence środek do pointer aby przejść do tego adresu wskaźnika 748 00:40:28,430 --> 00:40:30,390 i uzyskania danych, wartość istnieje. 749 00:40:30,390 --> 00:40:32,700 A sposobem na to jest gwiazda wskaźnik. 750 00:40:32,700 --> 00:40:34,262 Nie należy mylić tego. 751 00:40:34,262 --> 00:40:35,186 >> PUBLICZNOŚCI: [niesłyszalne]. 752 00:40:35,186 --> 00:40:35,852 >> PROFESOR: Tak. 753 00:40:35,852 --> 00:40:39,750 PUBLICZNOŚCI: Więc może po prostu napisać jeśli gwiazdy s równe równi gwiazda t. 754 00:40:39,750 --> 00:40:40,630 >> PROFESOR: No, nie. 755 00:40:40,630 --> 00:40:40,960 Nie. 756 00:40:40,960 --> 00:40:41,640 >> PUBLICZNOŚCI: To nie jest wystarczająco dobre, prawda? 757 00:40:41,640 --> 00:40:43,760 >> PROFESOR: Nie, bo jesteś tylko sprawdzanie pierwszą literę. 758 00:40:43,760 --> 00:40:46,010 Prawdopodobnie będzie trzeba jakąś pętlę, że 759 00:40:46,010 --> 00:40:49,055 iteracji każdy znaków w obu ciągów. 760 00:40:49,055 --> 00:40:49,837 Tak. 761 00:40:49,837 --> 00:40:52,920 Więc jeśli chcesz po prostu sprawdzić, jeśli zaczęło się to samo, 762 00:40:52,920 --> 00:40:58,220 możesz zrobić, jeśli, gwiazdy s jest równa Star T. 763 00:40:58,220 --> 00:41:01,300 Wtedy wiesz, że przynajmniej Zaczęło się od tego samego znaku. 764 00:41:01,300 --> 00:41:01,952 >> Tak? 765 00:41:01,952 --> 00:41:04,056 >> PUBLICZNOŚCI: Tak droga robisz, że będzie 766 00:41:04,056 --> 00:41:06,064 jak wbudowany do pętli lub wskaźnik? 767 00:41:06,064 --> 00:41:06,730 PROFESOR: Tak. 768 00:41:06,730 --> 00:41:08,170 Dość dużo tylko do pętli. 769 00:41:08,170 --> 00:41:12,430 Pamiętaj, Dawid w klasie wspomniano wolny lukrem składniowym? 770 00:41:12,430 --> 00:41:17,690 I miał to bardzo mylące rzeczą Star T 771 00:41:17,690 --> 00:41:22,030 plus jeden, gdzie byłoby zintegrowanie przez i przesuń wskaźnik? 772 00:41:22,030 --> 00:41:29,910 Łatwiejszy sposób prowadzenia jest to po prostu t i. 773 00:41:29,910 --> 00:41:31,090 >> Więc to tylko tablicą. 774 00:41:31,090 --> 00:41:34,630 Sposób, że masz do Pętla, która biegła od zera do i, gdzie 775 00:41:34,630 --> 00:41:36,580 i ma długość z ciąg, można po prostu 776 00:41:36,580 --> 00:41:39,510 Napisać, że zamiast robi Cała wskaźnik, rzeczą odniesienia. 777 00:41:39,510 --> 00:41:43,510 Więc te rzeczy są dokładnie równowartość w komputerze. 778 00:41:43,510 --> 00:41:45,905 >> Wy prawdopodobnie nie będzie musisz wiedzieć, że 779 00:41:45,905 --> 00:41:48,280 ale dobrze jest po prostu rodzaj mają z tyłu swój umysł. 780 00:41:48,280 --> 00:41:52,630 Wystarczy wiedzieć, że komputer rozpoznaje różne bloki kodu 781 00:41:52,630 --> 00:41:53,890 tak samo. 782 00:41:53,890 --> 00:41:57,510 Bo to jest po prostu znacznie bardziej użytkownik przyjazny dla nas, aby przedstawić to jak jest 783 00:41:57,510 --> 00:41:58,150 tablica. 784 00:41:58,150 --> 00:42:00,990 To jest po prostu łatwiejsze. 785 00:42:00,990 --> 00:42:02,719 >> PUBLICZNOŚCI: Więc używać strlen lubić, get-- 786 00:42:02,719 --> 00:42:03,385 PROFESOR: Tak. 787 00:42:03,385 --> 00:42:03,926 PUBLICZNOŚCI: OK. 788 00:42:03,926 --> 00:42:05,940 PROFESOR: Mógłbyś używać strlen lub, jeśli 789 00:42:05,940 --> 00:42:10,420 nie mają strlen można po prostu zrobić się aż trafisz ukośnik zerowe dla obu stron. 790 00:42:10,420 --> 00:42:11,568 Albo będzie działać. 791 00:42:11,568 --> 00:42:12,068 Tak. 792 00:42:12,068 --> 00:42:14,871 793 00:42:14,871 --> 00:42:17,996 PUBLICZNOŚCI: Więc jest to, aby każdy dereference pojedynczy znak, jakbyśmy byli w rzeczywistości 794 00:42:17,996 --> 00:42:21,044 pisząc ten kod, możemy może po prostu zrobić t wsporniki I 795 00:42:21,044 --> 00:42:22,460 jak z gwiazdą przed nim? 796 00:42:22,460 --> 00:42:27,700 >> PROFESOR: Tak, równa jest równa s Uchwyt ja, a potem ruszać I 797 00:42:27,700 --> 00:42:29,790 w dół, aż dojdziesz do końca. 798 00:42:29,790 --> 00:42:31,286 Tak, to co byś zrobił. 799 00:42:31,286 --> 00:42:33,660 A ja rzeczywiście następny przykład, gdy w rzeczywistości 800 00:42:33,660 --> 00:42:36,740 Napisać strlen więc chłopaki będą rodzajem z dostać się bawić z nim trochę. 801 00:42:36,740 --> 00:42:43,567 >> Tak jest z każdym, jasne tylko pamięci, smyczki, wskaźniki, adresy jakości? 802 00:42:43,567 --> 00:42:46,650 Niektóre koncepcje wyższego poziomu, które można będzie na pewno muszą wiedzieć, na quizu 803 00:42:46,650 --> 00:42:48,928 jutro. 804 00:42:48,928 --> 00:42:49,904 >> W porządku. 805 00:42:49,904 --> 00:42:50,404 Dobry. 806 00:42:50,404 --> 00:42:54,824 807 00:42:54,824 --> 00:42:55,324 Tak. 808 00:42:55,324 --> 00:42:58,770 809 00:42:58,770 --> 00:43:04,180 OK, więc jedna rzecz, że będziemy też zapytać Ci, jak to zrobić, co roku w quizie, jest, 810 00:43:04,180 --> 00:43:08,340 Przypuszczam, że zapomniałeś (co wydaje się zapominać robić raz w roku) 811 00:43:08,340 --> 00:43:10,810 w którym plik nagłówka strlen jest zadeklarowana. 812 00:43:10,810 --> 00:43:13,860 A więc musimy go przepisać siebie. 813 00:43:13,860 --> 00:43:16,350 >> Oto lista wytycznych że możemy przedstawić Państwu 814 00:43:16,350 --> 00:43:20,660 faceci, gdy pojawi się założyć, że y ciąg nie będzie null. 815 00:43:20,660 --> 00:43:23,830 Możesz założyć, że ów będzie zakończona lewym ukośnikiem zera. 816 00:43:23,830 --> 00:43:26,670 Więc wiesz, że to, co to się kończy. 817 00:43:26,670 --> 00:43:29,500 >> I, na przykład, że długość cześć będzie pięć. 818 00:43:29,500 --> 00:43:32,890 Tak więc można przyjąć, że cześć będzie pięć, H-E-L-L-O. 819 00:43:32,890 --> 00:43:35,890 Nie musisz zakładać, że backside braku kont dla długości. 820 00:43:35,890 --> 00:43:39,720 821 00:43:39,720 --> 00:43:42,300 >> To ostatnia rzecz, tu nie martwić się o całkowitą przepełnienia. 822 00:43:42,300 --> 00:43:45,270 Czy ktoś pamięta co jest liczbą całkowitą przepełnienia? 823 00:43:45,270 --> 00:43:48,041 >> PUBLICZNOŚCI: wykracza poza Długość [niesłyszalne]. 824 00:43:48,041 --> 00:43:50,740 >> PROFESOR: Tak, można wyjaśnić nieco, co to oznacza? 825 00:43:50,740 --> 00:43:55,330 >> PUBLICZNOŚCI: Tak, myślę, że wraca na przykład obcinanie wcześniej. 826 00:43:55,330 --> 00:43:58,380 Ale jeśli masz tylko tyle numerów które wykraczają poza ilość bitów 827 00:43:58,380 --> 00:44:01,409 że rzeczywiście można przypisać że to po prostu rodzaj odcięty. 828 00:44:01,409 --> 00:44:04,242 PROFESOR: Tak, tak, na typowy komputer, ile bitów mamy? 829 00:44:04,242 --> 00:44:05,306 PUBLICZNOŚCI: 32? 830 00:44:05,306 --> 00:44:06,430 PROFESOR: Tak, 32, tuż. 831 00:44:06,430 --> 00:44:10,030 A więc to, co cztery miliard, dwa miliardy? 832 00:44:10,030 --> 00:44:13,579 Cztery miliardy, do czterech miliardów całkowite dodatnie, prawda? 833 00:44:13,579 --> 00:44:15,370 Dwa miliardy negatywne, dwa miliardy pozytywne, 834 00:44:15,370 --> 00:44:16,900 zależy od tego, jak chcesz to zrobić. 835 00:44:16,900 --> 00:44:21,470 >> I tak w zasadzie możemy mieć wystarczającej liczby całkowite, które mogą pójść w górę 836 00:44:21,470 --> 00:44:25,800 do dwóch do 31 minus 1, prawda? 837 00:44:25,800 --> 00:44:27,980 Bo raz trafiliśmy dwa do 32-giej, my nie 838 00:44:27,980 --> 00:44:30,040 ma tego dużo pamięci w naszym komputerze. 839 00:44:30,040 --> 00:44:32,310 >> A więc, teoretycznie, ja może pochodzić z wielu 840 00:44:32,310 --> 00:44:34,560 że jest, jak, dwa do 46.. 841 00:44:34,560 --> 00:44:38,040 Jest to liczba ogromna dupa, ale teoretycznie można. 842 00:44:38,040 --> 00:44:42,730 I tak jest w przypadku przepełnienia całkowita próba stworzyć liczbę całkowitą, która wykracza poza to, co 843 00:44:42,730 --> 00:44:44,790 komputer jest w stanie przechowywać. 844 00:44:44,790 --> 00:44:46,590 >> I tak wy dla ten przykład nie mają 845 00:44:46,590 --> 00:44:51,330 martwić się o nas dając giganta ciąg znaków, który jest dwa do 32. znaków 846 00:44:51,330 --> 00:44:51,830 długi. 847 00:44:51,830 --> 00:44:54,010 To byłoby naprawdę oznacza. 848 00:44:54,010 --> 00:44:59,430 >> Dobrze, więc ja tylko da wy struktury podłoża tego. 849 00:44:59,430 --> 00:45:02,020 Masz zamiar stworzyć Funkcja o nazwie int strlen gdzie 850 00:45:02,020 --> 00:45:08,436 przepustkę, gwiazda znak lub ciąg znaków, wskaźnik do łańcucha nazywane s. 851 00:45:08,436 --> 00:45:10,820 >> Wszystko w porządku, każdy skopiować że w dół. 852 00:45:10,820 --> 00:45:13,550 853 00:45:13,550 --> 00:45:14,850 Chłodny. 854 00:45:14,850 --> 00:45:17,020 Oops-- inny sposób. 855 00:45:17,020 --> 00:45:21,360 >> Więc to jest trochę jak trudniejszy kawałek problemu, 856 00:45:21,360 --> 00:45:25,320 więc dam wam może pięć do Sześć minut do rodzaju burzy mózgów 857 00:45:25,320 --> 00:45:27,478 i pisać tej funkcji na zewnątrz. 858 00:45:27,478 --> 00:45:29,710 >> PUBLICZNOŚCI: Nie Konto dla [niesłyszalne], 859 00:45:29,710 --> 00:45:30,200 nie musimy korzystać z całkowitą? 860 00:45:30,200 --> 00:45:31,241 >> PROFESOR: Nie, nie. 861 00:45:31,241 --> 00:48:05,847 862 00:48:05,847 --> 00:48:06,930 Dam ci faceci podpowiedź. 863 00:48:06,930 --> 00:48:12,325 Pętli while może być tutaj bardzo przydatne. 864 00:48:12,325 --> 00:48:12,825 Tak. 865 00:48:12,825 --> 00:48:44,995 866 00:48:44,995 --> 00:48:45,495 Oto 867 00:48:45,495 --> 00:48:45,995 słodycze. 868 00:48:45,995 --> 00:48:49,980 869 00:48:49,980 --> 00:48:53,410 Cukierki będą również dostępne quizu, myślę. 870 00:48:53,410 --> 00:48:55,315 Więc chłopaki będą wszystkie słodzone się jutro. 871 00:48:55,315 --> 00:49:01,110 872 00:49:01,110 --> 00:49:02,962 Czy ja-- masz go. 873 00:49:02,962 --> 00:49:03,718 >> PUBLICZNOŚCI: OK. 874 00:49:03,718 --> 00:49:04,384 PROFESOR: Tak. 875 00:49:04,384 --> 00:49:10,550 876 00:49:10,550 --> 00:49:11,870 >> Być może 30 sekund lub tak. 877 00:49:11,870 --> 00:50:02,220 878 00:50:02,220 --> 00:50:07,340 >> W porządku, jeśli jesteś nie zrobił, nie ma obaw. 879 00:50:07,340 --> 00:50:08,810 Będziemy poruszać się przez to razem. 880 00:50:08,810 --> 00:50:09,310 OK. 881 00:50:09,310 --> 00:50:13,800 Więc mam zamiar tylko Layout Podstawowa struktura tej funkcji tutaj. 882 00:50:13,800 --> 00:50:17,255 Int strlen. 883 00:50:17,255 --> 00:50:20,040 884 00:50:20,040 --> 00:50:23,460 Po pierwsze, nie każdy chce powiedzieć mi, co to int oznacza? 885 00:50:23,460 --> 00:50:25,160 Musimy mieć w tej funkcji. 886 00:50:25,160 --> 00:50:26,709 >> PUBLICZNOŚCI: strlen [niesłyszalne]. 887 00:50:26,709 --> 00:50:27,500 PROFESOR: Dokładnie. 888 00:50:27,500 --> 00:50:31,140 Więc cokolwiek się dzieje tutaj, musimy zwrócić liczbę całkowitą. 889 00:50:31,140 --> 00:50:36,367 I tak jak określono w Spec, chcemy return-- 890 00:50:36,367 --> 00:50:37,700 Idź do niego facetów, po prostu wracamy. 891 00:50:37,700 --> 00:50:40,480 Wszystko jest dobrze. 892 00:50:40,480 --> 00:50:42,960 Jedz wszystko tak nie mam aby zabrać ją z powrotem, faktycznie. 893 00:50:42,960 --> 00:50:46,022 894 00:50:46,022 --> 00:50:48,855 Int prostu oznacza, że ​​jesteś będzie powrót liczbę całkowitą. 895 00:50:48,855 --> 00:50:55,350 896 00:50:55,350 --> 00:50:57,106 >> Co to jest znak gwiazdki s? 897 00:50:57,106 --> 00:50:58,640 Co to znaczy? 898 00:50:58,640 --> 00:51:00,879 >> PUBLICZNOŚCI: Jak, co jest wejście w. 899 00:51:00,879 --> 00:51:01,670 PROFESOR: Dokładnie. 900 00:51:01,670 --> 00:51:04,142 A co jest niemal samo, jak gwiazdy char? 901 00:51:04,142 --> 00:51:04,850 PUBLICZNOŚCI: String? 902 00:51:04,850 --> 00:51:05,641 PROFESOR: Dokładnie. 903 00:51:05,641 --> 00:51:09,080 Więc robimy to daje ten wskaźnik do łańcucha. 904 00:51:09,080 --> 00:51:09,580 OK. 905 00:51:09,580 --> 00:51:12,860 906 00:51:12,860 --> 00:51:13,360 Chłodny. 907 00:51:13,360 --> 00:51:16,650 >> Nie należy również zapominać, gdy zapomnimy dać te wsporniki, 908 00:51:16,650 --> 00:51:18,330 nie zapomnij, aby to zrobić sam. 909 00:51:18,330 --> 00:51:20,720 Bo teoretycznie, kod jest nieprawidłowe, jeśli zapomnisz je pisać. 910 00:51:20,720 --> 00:51:21,803 Tylko zawsze zwracać uwagę. 911 00:51:21,803 --> 00:51:23,750 Podobne, małe rzeczy że nie zauważysz 912 00:51:23,750 --> 00:51:26,917 gdy jesteś programowania na komputerze przenośnym, bo twój laptop nie jest dla Ciebie? 913 00:51:26,917 --> 00:51:28,624 Nie zapomnij, kiedy piszesz ręcznie. 914 00:51:28,624 --> 00:51:29,170 Tak? 915 00:51:29,170 --> 00:51:30,954 >> PUBLICZNOŚCI: Ale jak błędna? 916 00:51:30,954 --> 00:51:33,190 Jak, nie mamy całego problemu złego? 917 00:51:33,190 --> 00:51:34,190 >> PROFESOR: Nie, nie. 918 00:51:34,190 --> 00:51:34,860 Nie martw się. 919 00:51:34,860 --> 00:51:39,270 To rzeczywiście teoretycznie możliwe aby uzyskać maksymalną liczbę punktów na pytanie 920 00:51:39,270 --> 00:51:41,980 nawet jeśli kod będzie nigdy nie zabraknie w prawdziwym życiu. 921 00:51:41,980 --> 00:51:46,052 Proponuję nie próbuj aby tak się stało. 922 00:51:46,052 --> 00:51:48,260 Na przykład, jak gdyby wszystko to tutaj ma rację, 923 00:51:48,260 --> 00:51:51,850 ale zapomnieć dwukropek lub nawias, Twój kod nie będzie właściwie działać. 924 00:51:51,850 --> 00:51:53,740 Ale możemy być miłosierni. 925 00:51:53,740 --> 00:51:54,394 >> Tak? 926 00:51:54,394 --> 00:51:56,050 >> PUBLICZNOŚCI: Czy trzeba wypowiedzieć się na temat naszego pisma? 927 00:51:56,050 --> 00:51:57,758 >> PROFESOR: Nie, nie, nie martwi się o to. 928 00:51:57,758 --> 00:51:58,440 Nie komentując. 929 00:51:58,440 --> 00:51:59,400 Styl powinien być dobry. 930 00:51:59,400 --> 00:52:01,470 Jak, nie smush wszystko na jednej linii. 931 00:52:01,470 --> 00:52:04,580 My nie będzie zadowolony z wami, jeśli to zrobisz. 932 00:52:04,580 --> 00:52:07,250 >> Czy ktoś chce dał mi pierwszą linię? 933 00:52:07,250 --> 00:52:08,633 Wskazówkę, że to bardzo łatwe. 934 00:52:08,633 --> 00:52:09,320 >> Tak? 935 00:52:09,320 --> 00:52:11,920 >> PUBLICZNOŚCI: Int, n równa się zero. 936 00:52:11,920 --> 00:52:13,734 Wystarczy ustawić licznik. 937 00:52:13,734 --> 00:52:15,900 PROFESOR Dlatego chcemy niektóre rodzaj licznika, prawda? 938 00:52:15,900 --> 00:52:19,780 Idę go nazwać "liczyć" ze względu na czytelność. 939 00:52:19,780 --> 00:52:21,265 Co chcemy aby ustawić go równa? 940 00:52:21,265 --> 00:52:21,890 >> PUBLICZNOŚCI: Zero. 941 00:52:21,890 --> 00:52:23,840 PROFESOR: Tak. 942 00:52:23,840 --> 00:52:24,340 Średnik. 943 00:52:24,340 --> 00:52:26,250 Jest również bardzo dziwne średniki rysowania. 944 00:52:26,250 --> 00:52:28,870 Wystarczy ćwiczyć robić. 945 00:52:28,870 --> 00:52:31,990 >> Dlatego chcemy, aby najpierw licznik typu int. 946 00:52:31,990 --> 00:52:35,360 Ponieważ chcemy, aby policzyć, jak wiele znaków lub liter 947 00:52:35,360 --> 00:52:36,780 w tym ciągu, prawda? 948 00:52:36,780 --> 00:52:38,330 Bardzo łatwe pierwszy krok. 949 00:52:38,330 --> 00:52:42,140 >> OK, może trochę bardziej skomplikowane teraz, jak będziemy to robić? 950 00:52:42,140 --> 00:52:45,400 Czy ktoś chce daj mi wiersz kodu 951 00:52:45,400 --> 00:52:48,450 który może być w stanie pomóc pętli po co to jest? 952 00:52:48,450 --> 00:52:54,540 953 00:52:54,540 --> 00:52:56,900 >> Tak, odważna dusza w plecy? 954 00:52:56,900 --> 00:53:06,832 >> PUBLICZNOŚCI: OK, więc gdy punkt gwiazdki, Yeah, gwiazda s, 955 00:53:06,832 --> 00:53:09,465 nie jest równa zeru, to coś zrobić? 956 00:53:09,465 --> 00:53:11,090 PROFESOR: To jest bardzo, bardzo blisko. 957 00:53:11,090 --> 00:53:11,835 Naprawdę blisko. 958 00:53:11,835 --> 00:53:13,710 Więc mam zamiar zająć dwie rzeczy z tym. 959 00:53:13,710 --> 00:53:18,240 Przede wszystkim, to nie jest dokładnie zero. 960 00:53:18,240 --> 00:53:20,110 Co to jest? 961 00:53:20,110 --> 00:53:22,550 To terminator null, który jest odwrotny ukośnik zero. 962 00:53:22,550 --> 00:53:24,960 Tak więc są one różne w warunki jak są one przechowywane. 963 00:53:24,960 --> 00:53:26,270 Więc jesteś naprawdę blisko. 964 00:53:26,270 --> 00:53:30,330 >> A po drugie, nie chcemy po prostu przesuń wskaźnik. 965 00:53:30,330 --> 00:53:32,320 Chcemy, aby faktycznie Dostęp do wartości, prawda? 966 00:53:32,320 --> 00:53:34,050 I tak, w jaki sposób to zrobić? 967 00:53:34,050 --> 00:53:34,550 Bardzo łatwe. 968 00:53:34,550 --> 00:53:36,841 Nie myśl o wskazówki, nie myśl o wspomnieniach. 969 00:53:36,841 --> 00:53:38,525 Wróć do tygodnia dwóch tego kursu. 970 00:53:38,525 --> 00:53:39,555 >> PUBLICZNOŚCI: [niesłyszalne]. 971 00:53:39,555 --> 00:53:40,680 PROFESOR dzień, pamiętasz? 972 00:53:40,680 --> 00:53:41,400 Jakie struny? 973 00:53:41,400 --> 00:53:42,650 Jak są one przechowywane w pamięci? 974 00:53:42,650 --> 00:53:43,300 >> PUBLICZNOŚCI: Oni podniósł. 975 00:53:43,300 --> 00:53:43,810 >> PROFESOR Są one hodowane. 976 00:53:43,810 --> 00:53:45,550 Więc jak mamy dostęp każda postać w środku? 977 00:53:45,550 --> 00:53:46,466 >> PUBLICZNOŚCI: [niesłyszalne]. 978 00:53:46,466 --> 00:53:47,530 PROFESOR: Dokładnie. 979 00:53:47,530 --> 00:53:53,195 Więc while-- co wnika tutaj? 980 00:53:53,195 --> 00:53:54,940 S z - 981 00:53:54,940 --> 00:53:55,920 >> PUBLICZNOŚCI: I. 982 00:53:55,920 --> 00:53:58,216 >> PROFESOR: Och, ja nie istnieje, prawda? 983 00:53:58,216 --> 00:53:59,620 >> PUBLICZNOŚCI: Och, liczyć? 984 00:53:59,620 --> 00:54:01,640 >> PROFESOR: Możemy tylko używać liczyć, nie możemy? 985 00:54:01,640 --> 00:54:03,050 >> PUBLICZNOŚCI: Przykro mi, ale nazywa się I. 986 00:54:03,050 --> 00:54:04,341 >> PROFESOR: Tak, to wszystko jest dobre. 987 00:54:04,341 --> 00:54:06,710 988 00:54:06,710 --> 00:54:10,760 Mamy zmienną tutaj to już zadeklarowana jako naszego licznika. 989 00:54:10,760 --> 00:54:13,650 Więc dlaczego nie możemy po prostu użyć, że Do przemieszczania się po pętli while? 990 00:54:13,650 --> 00:54:15,230 Czy to ma sens? 991 00:54:15,230 --> 00:54:20,864 >> Tak więc, podczas gdy ów z count-- czy ktoś chce dać mi, co się dzieje po tutaj? 992 00:54:20,864 --> 00:54:22,030 PUBLICZNOŚCI: To nie równa. 993 00:54:22,030 --> 00:54:23,405 PROFESOR: Nie jest równe, prawda? 994 00:54:23,405 --> 00:54:26,200 To huk jest równy, Wykrzyknik równa, 995 00:54:26,200 --> 00:54:28,500 co faceci chcą Nazywamy to nie equal-- 996 00:54:28,500 --> 00:54:29,496 >> PUBLICZNOŚCI: [niesłyszalne]. 997 00:54:29,496 --> 00:54:30,990 >> PROFESOR: Tak. 998 00:54:30,990 --> 00:54:37,110 Pamiętaj apostrof jest dla char, cudzysłowy są na sznurku. 999 00:54:37,110 --> 00:54:38,630 Należy uważać, aby podczas korzystania z nich. 1000 00:54:38,630 --> 00:54:42,430 Więc kiedy patrzymy przez tablica, ostatni znak, 1001 00:54:42,430 --> 00:54:46,420 wiemy, że nie chcemy to być odwrotny ukośnik zero. 1002 00:54:46,420 --> 00:54:47,340 >> Tak więc, podczas gdy. 1003 00:54:47,340 --> 00:54:48,840 Nie jesteśmy na końcu łańcucha. 1004 00:54:48,840 --> 00:54:52,335 Co chcemy zrobić w środku? 1005 00:54:52,335 --> 00:54:55,269 >> PUBLICZNOŚCI: Chcemy, aby dodać do Licznik więc liczy Plus Plus? 1006 00:54:55,269 --> 00:54:56,060 PROFESOR: Dokładnie. 1007 00:54:56,060 --> 00:55:03,064 Więc tutaj mamy zamiar zrobić liczyć, liczyć oraz plusem. 1008 00:55:03,064 --> 00:55:03,980 Brakuje jeszcze jedną linię. 1009 00:55:03,980 --> 00:55:05,090 Jesteśmy prawie na miejscu. 1010 00:55:05,090 --> 00:55:07,398 Co my zapominając zrobić? 1011 00:55:07,398 --> 00:55:08,770 >> PUBLICZNOŚCI: Wracając do zera? 1012 00:55:08,770 --> 00:55:10,820 >> PROFESOR: Chcesz wrócić do zera? 1013 00:55:10,820 --> 00:55:12,962 >> PUBLICZNOŚCI: Nie, wracając do strlen. 1014 00:55:12,962 --> 00:55:13,511 Czekać. 1015 00:55:13,511 --> 00:55:14,760 PROFESOR: Co jest przechowywane w? 1016 00:55:14,760 --> 00:55:15,090 PUBLICZNOŚCI: hrabia. 1017 00:55:15,090 --> 00:55:15,589 Liczyć. 1018 00:55:15,589 --> 00:55:17,150 PROFESOR: Dokładnie. 1019 00:55:17,150 --> 00:55:20,760 Więc będziemy liczyć powrócić. 1020 00:55:20,760 --> 00:55:23,450 1021 00:55:23,450 --> 00:55:25,380 >> Bo to, co jesteśmy tu robisz ultimately-- 1022 00:55:25,380 --> 00:55:29,780 mamy zmienną licznika, który jest zamierza zwiększyć za pośrednictwem naszego łańcucha. 1023 00:55:29,780 --> 00:55:33,050 Mamy zamiar jechać dalej, utrzymać dzieje, dookoła w tej pętli. 1024 00:55:33,050 --> 00:55:37,700 I choć nie jesteśmy na końcu tego Łańcuch, który jest terminator null. 1025 00:55:37,700 --> 00:55:40,410 >> I za każdym razem idziemy przez to, dodajemy do naszego licznika. 1026 00:55:40,410 --> 00:55:42,640 I jedziemy dalej wzdłuż w tej tablicy. 1027 00:55:42,640 --> 00:55:44,880 I na koniec, kiedy już hit NUL, 1028 00:55:44,880 --> 00:55:48,469 wiemy, oh, możemy przerwa, powrót liczyć. 1029 00:55:48,469 --> 00:55:49,260 Mamy strlen. 1030 00:55:49,260 --> 00:55:52,280 1031 00:55:52,280 --> 00:55:56,400 >> Czy wszyscy się jak ten został wdrożony? 1032 00:55:56,400 --> 00:55:58,830 Podczas loops-- Wiem, że nie mają zrobić zbyt wiele z nich, 1033 00:55:58,830 --> 00:56:01,240 ale są zazwyczaj bardzo, bardzo przydatne, jeśli 1034 00:56:01,240 --> 00:56:05,390 nie wiem co masz zatrzymania Warunkiem niekoniecznie musi być. 1035 00:56:05,390 --> 00:56:06,220 >> Pytanie? 1036 00:56:06,220 --> 00:56:10,080 >> PUBLICZNOŚCI: możemy napisać pusty pod warunkiem, podczas gdy? 1037 00:56:10,080 --> 00:56:10,940 >> PROFESOR ile? 1038 00:56:10,940 --> 00:56:15,304 Tak, więc w tym problemu miałem cię ludzie zakładają, że ów nie będzie null. 1039 00:56:15,304 --> 00:56:17,220 Bo pamiętam, teoretycznie, gdybym dał ci 1040 00:56:17,220 --> 00:56:21,180 wskaźnik, który był zbyt duży, pamięci, to daje null, prawda? 1041 00:56:21,180 --> 00:56:23,770 To właśnie operacyjny System zrobi. 1042 00:56:23,770 --> 00:56:26,960 >> Więc jeśli nie trzeba by założyć, s będzie null, trzeba sprawdzić. 1043 00:56:26,960 --> 00:56:32,050 Więc tu, byś zrobił, gdyby ów równa jest równa null, powrót jednego. 1044 00:56:32,050 --> 00:56:33,028 Coś takiego. 1045 00:56:33,028 --> 00:56:34,153 PUBLICZNOŚCI: [niesłyszalne] do zera. 1046 00:56:34,153 --> 00:56:37,287 1047 00:56:37,287 --> 00:56:39,370 PROFESOR: OK, powiem Ci, dlaczego nie możemy tego zrobić. 1048 00:56:39,370 --> 00:56:43,357 Bo pamiętam, w pamięci, w prawo, tutaj. 1049 00:56:43,357 --> 00:56:43,940 Pójdziemy tutaj. 1050 00:56:43,940 --> 00:56:49,940 1051 00:56:49,940 --> 00:56:54,090 >> Masz gigantyczne bloki pamięci wszystkich z sieci 1052 00:56:54,090 --> 00:56:56,680 które przechowują różne wartości, prawda? 1053 00:56:56,680 --> 00:57:00,110 A więc wszystko ciąg jest-- dla przykład, jeśli mamy wejście witam, 1054 00:57:00,110 --> 00:57:05,490 byłoby H-E-L-L-O backslash zero, prawda? 1055 00:57:05,490 --> 00:57:09,570 A potem, kto wie, jak przypadkowe rzeczy, które są tu po nim. 1056 00:57:09,570 --> 00:57:11,220 >> My właściwie nie wiem, co tam jest. 1057 00:57:11,220 --> 00:57:13,350 I tak, jeśli były do ​​zrobienia zamiast backslashem zerowej, 1058 00:57:13,350 --> 00:57:15,590 null, to nie może być null. 1059 00:57:15,590 --> 00:57:17,680 Bo to po prostu może oznaczać, niektóre losowe inne rzeczy 1060 00:57:17,680 --> 00:57:19,270 które nie należą w ciąg. 1061 00:57:19,270 --> 00:57:23,219 I tak droga, że ​​zawsze wiemy, że ciąg kończy się odwrotnym ukośnikiem zera. 1062 00:57:23,219 --> 00:57:25,760 I tak, że zawsze jak my sprawdzić, na koniec łańcucha. 1063 00:57:25,760 --> 00:57:30,820 >> Null, oznacza to wszystko, jeśli masz nieistniejące wskaźnik przede wszystkim 1064 00:57:30,820 --> 00:57:36,160 lub jeśli twoja pamięć jest tak duża, że nie możesz go zwrócić, to byłoby puste. 1065 00:57:36,160 --> 00:57:40,150 Więc być bardzo ostrożnym przy różnicowaniu różnica wartości null 1066 00:57:40,150 --> 00:57:42,130 i backslash zero. 1067 00:57:42,130 --> 00:57:43,670 Tak. 1068 00:57:43,670 --> 00:57:46,886 >> Każdy OK z tym? 1069 00:57:46,886 --> 00:57:48,150 OK. 1070 00:57:48,150 --> 00:57:50,440 >> Miałem więc chłopaki napisać strlen. 1071 00:57:50,440 --> 00:57:53,790 Realnie możemy również poprosić piszesz z A do I należy pamiętać, że "Atwoa" 1072 00:57:53,790 --> 00:57:55,400 lub cokolwiek chcecie to nazwać? 1073 00:57:55,400 --> 00:57:58,010 Ta funkcja w Vigenère i Cezara, które 1074 00:57:58,010 --> 00:58:00,900 konwertuje wartość ASCII na liczbę całkowitą? 1075 00:58:00,900 --> 00:58:04,360 To także ma pochodzić na ostatnie konkursy funkcji prosiliśmy was napisać. 1076 00:58:04,360 --> 00:58:08,280 >> Prawie żadnej funkcji że już używany i jest 1077 00:58:08,280 --> 00:58:11,660 Bardzo łatwo napisać samemu, Czujniki jak jest niższa, 1078 00:58:11,660 --> 00:58:14,620 jest wyższa, aby obniżyć do cholewki. 1079 00:58:14,620 --> 00:58:17,964 Funkcje, które będą przekształcały Łańcuch z małych liter na wielkie litery. 1080 00:58:17,964 --> 00:58:19,380 Wszyscy wiemy, jak to zrobić, prawda? 1081 00:58:19,380 --> 00:58:21,100 To całkiem proste. 1082 00:58:21,100 --> 00:58:24,770 Po prostu chcę, aby upewnić się, że can-- to ten sam proces myślowy. 1083 00:58:24,770 --> 00:58:26,940 Po prostu iterację i kolei rzeczy. 1084 00:58:26,940 --> 00:58:30,190 Albo liczyć lub gdy włączeniu rzeczy inaczej. 1085 00:58:30,190 --> 00:58:32,280 >> Chciałbym suggest-- I Nie wiem, czy będziemy 1086 00:58:32,280 --> 00:58:39,080 zapytać zapamiętać co kapitałowych, lub Z kapitału lub małe litery A lub małe 1087 00:58:39,080 --> 00:58:42,640 z są w ASCII, ale chciałbym zaproponować chyba pisać, że w przypadku 1088 00:58:42,640 --> 00:58:44,124 my robimy. 1089 00:58:44,124 --> 00:58:45,540 Tak macie odniesienie. 1090 00:58:45,540 --> 00:58:47,180 Jak wielkie litery A jest, co, 197? 1091 00:58:47,180 --> 00:58:51,320 A potem małe jest jak 50 coś. 1092 00:58:51,320 --> 00:58:52,492 65, tak, proszę. 1093 00:58:52,492 --> 00:58:54,950 Więc po prostu bardzo dużo wiedzieć, Różnica między nimi jest 32. 1094 00:58:54,950 --> 00:58:57,670 To bardzo ważne. 1095 00:58:57,670 --> 00:58:58,170 Tak. 1096 00:58:58,170 --> 00:59:01,445 Jestem dobry w tej sprawie? 1097 00:59:01,445 --> 00:59:01,945 OK. 1098 00:59:01,945 --> 00:59:03,109 >> PUBLICZNOŚCI: Moglibyśmy teoretycznie napisać 1099 00:59:03,109 --> 00:59:04,410 z nich w dół, a także na naszej little-- 1100 00:59:04,410 --> 00:59:07,035 >> PROFESOR się teoretycznie może po prostu skopiować funkcję dół. 1101 00:59:07,035 --> 00:59:08,482 To prawda. 1102 00:59:08,482 --> 00:59:11,080 >> PUBLICZNOŚCI: Nie [niesłyszalne]. 1103 00:59:11,080 --> 00:59:12,720 >> Profesor: Macie arkusz. 1104 00:59:12,720 --> 00:59:14,194 Macie arkusz notatki. 1105 00:59:14,194 --> 00:59:14,860 Możesz go wpisać. 1106 00:59:14,860 --> 00:59:15,490 Można go napisać. 1107 00:59:15,490 --> 00:59:17,031 Możesz robić, co chcesz z nim. 1108 00:59:17,031 --> 00:59:18,530 Tak. 1109 00:59:18,530 --> 00:59:21,406 Więc teoretycznie, jeśli chcesz, idź. 1110 00:59:21,406 --> 00:59:23,338 >> PUBLICZNOŚCI: [niesłyszalne] ale tak naprawdę nie 1111 00:59:23,338 --> 00:59:25,994 koniecznie trzeba pamiętać wartość, możemy po prostu 1112 00:59:25,994 --> 00:59:28,914 użyć do górnej lub niższe funkcji, prawda? 1113 00:59:28,914 --> 00:59:29,580 PROFESOR: Tak. 1114 00:59:29,580 --> 00:59:32,740 Ale jeśli daliśmy ci pytanie które mówi, napisz do górnej, 1115 00:59:32,740 --> 00:59:34,350 wtedy musiałby napisać. 1116 00:59:34,350 --> 00:59:38,150 Więc chłopaki można zakładać, że Ciebie faceci mają dostęp do wszystkich funkcji, 1117 00:59:38,150 --> 00:59:41,523 ale jeśli chcesz używać do górnej lub niższa, co masz również zrobić? 1118 00:59:41,523 --> 00:59:43,840 >> PUBLICZNOŚCI: [niesłyszalne] używać CS50 [niesłyszalne] 1119 00:59:43,840 --> 00:59:44,840 >> PROFESOR Czy CS50.h? 1120 00:59:44,840 --> 00:59:47,320 1121 00:59:47,320 --> 00:59:48,310 Należy uważać, aby nie. 1122 00:59:48,310 --> 00:59:50,640 >> Tak więc, aby górne, na mniejsze, jest wyższa jest niższa 1123 00:59:50,640 --> 00:59:52,990 funkcje, które wymagają manipulacji ciąg są 1124 00:59:52,990 --> 00:59:55,490 wszystkie w obu ASCII lub w bibliotece matematycznej 1125 00:59:55,490 --> 00:59:57,350 lub w bibliotece smyczkowy. 1126 00:59:57,350 --> 01:00:00,290 Więc jeśli faceci używać tych funkcje, należy uważać, aby pamiętać, 1127 01:00:00,290 --> 01:00:01,451 uwzględnienie tego nagłówka. 1128 01:00:01,451 --> 01:00:03,950 Więc może też coś cię chcesz dołączyć do arkusza, 1129 01:00:03,950 --> 01:00:04,892 jakie są nagłówek? 1130 01:00:04,892 --> 01:00:06,600 Jakie są biblioteki używałeś? 1131 01:00:06,600 --> 01:00:08,550 Jakie funkcje są wewnątrz tych bibliotek? 1132 01:00:08,550 --> 01:00:09,230 To ważne. 1133 01:00:09,230 --> 01:00:10,420 >> Tak? 1134 01:00:10,420 --> 01:00:12,570 >> PUBLICZNOŚCI: Moglibyśmy Policjant na zewnątrz i zrobić hashtag 1135 01:00:12,570 --> 01:00:14,955 przez absolutnie każda litera, jaką kiedykolwiek 1136 01:00:14,955 --> 01:00:17,340 widać jak na wszystkie pytania? 1137 01:00:17,340 --> 01:00:18,320 >> PROFESOR: Można było. 1138 01:00:18,320 --> 01:00:20,361 Nie wiem, jak szczęśliwy będziemy mieć do stopnia 1139 01:00:20,361 --> 01:00:25,090 że quizu kiedy każdy kawałek kodu jest dwa razy tak długo jak to musi być. 1140 01:00:25,090 --> 01:00:27,200 Nie wiem, moglibyśmy zdjąć punkty za styl. 1141 01:00:27,200 --> 01:00:28,790 Ale teoretycznie swojej Kod byłoby w porządku. 1142 01:00:28,790 --> 01:00:30,915 Wy mogli policjanta na zewnątrz i po prostu to wszystko. 1143 01:00:30,915 --> 01:00:32,044 To też dobrze, tak. 1144 01:00:32,044 --> 01:00:32,960 PUBLICZNOŚCI: [niesłyszalne]. 1145 01:00:32,960 --> 01:00:33,270 PROFESOR: Tak. 1146 01:00:33,270 --> 01:00:34,900 Proponuję nie robić, że choć. 1147 01:00:34,900 --> 01:00:35,505 Tak. 1148 01:00:35,505 --> 01:00:36,130 PUBLICZNOŚCI: Spoko. 1149 01:00:36,130 --> 01:00:36,620 PROFESOR: Dobre pytanie. 1150 01:00:36,620 --> 01:00:37,480 PUBLICZNOŚCI: Tak, najgorszy scenariusz. 1151 01:00:37,480 --> 01:00:38,563 PROFESOR: W najgorszym przypadku. 1152 01:00:38,563 --> 01:00:40,350 Jeśli całkowicie zapomnieć, może to zrobić. 1153 01:00:40,350 --> 01:00:40,850 Tak. 1154 01:00:40,850 --> 01:00:43,870 1155 01:00:43,870 --> 01:00:45,400 >> Tak, kod jest właśnie tam. 1156 01:00:45,400 --> 01:00:49,176 Kiedyś n zamiast liczyć, ale ci wiesz, co płynie swoim statkiem. 1157 01:00:49,176 --> 01:00:51,092 PUBLICZNOŚCI: Czekaj, więc nie trzeba Hashtag 1158 01:00:51,092 --> 01:00:53,460 to dlatego, że jesteśmy począwszy od int? 1159 01:00:53,460 --> 01:00:56,150 1160 01:00:56,150 --> 01:00:59,924 >> PROFESOR: Tak, ja po prostu założyć, że poproszono nas napisać funkcję. 1161 01:00:59,924 --> 01:01:02,340 Jeśli chcesz być bezpieczne, prawdopodobnie mógłby ją tam umieścić. 1162 01:01:02,340 --> 01:01:05,650 Ale ja po prostu nie przeszkadzało, tak. 1163 01:01:05,650 --> 01:01:09,919 >> Ja nawet nie wiem, czy Ciebie potrzebuje biblioteki do tego. 1164 01:01:09,919 --> 01:01:12,710 Ponieważ nie jesteś naprawdę drukowania z niczego, ani nic, prawda? 1165 01:01:12,710 --> 01:01:16,500 1166 01:01:16,500 --> 01:01:19,568 Tak, nie wiem, czy trzeba bibliotekę. 1167 01:01:19,568 --> 01:01:22,400 >> OK. 1168 01:01:22,400 --> 01:01:26,020 Jest to również nieco bardziej wraz linie manipulacji pamięci. 1169 01:01:26,020 --> 01:01:27,400 Taki trochę skomplikowane. 1170 01:01:27,400 --> 01:01:28,960 Pomyśl o tym. 1171 01:01:28,960 --> 01:01:30,580 Masz funkcję o nazwie func. 1172 01:01:30,580 --> 01:01:33,570 Mogłem nazwał go cokolwiek, ale ja wybieram nazwać func. 1173 01:01:33,570 --> 01:01:36,000 Mam go ponad moim głównym. 1174 01:01:36,000 --> 01:01:39,790 Pamiętaj, że chcesz mieć funkcja po głównym, 1175 01:01:39,790 --> 01:01:42,370 chcesz się upewnić, że to prototyp góry. 1176 01:01:42,370 --> 01:01:45,750 >> Jednak w tym przypadku tak krótki że czułem, że mogłem po prostu 1177 01:01:45,750 --> 01:01:47,260 umieścić go na szczycie głównej. 1178 01:01:47,260 --> 01:01:51,170 Nie trzeba mieć prototyp, bo to już napisane powyżej. 1179 01:01:51,170 --> 01:01:55,430 Więc wszystko robię w moim głównym funkcji tworzy całkowitą x jest równa 10. 1180 01:01:55,430 --> 01:02:00,490 Dzwonię do mojej funkcji FUNC a następnie drukować coś. 1181 01:02:00,490 --> 01:02:02,840 >> A następnie, że rzeczywiście co func robi. 1182 01:02:02,840 --> 01:02:04,340 Chcecie przemyśleć to. 1183 01:02:04,340 --> 01:02:05,423 Bo to jest trochę skomplikowane. 1184 01:02:05,423 --> 01:02:07,220 Jest to bardzo, bardzo trudne, w rzeczywistości. 1185 01:02:07,220 --> 01:02:09,549 Zastanów się, co to Program będzie wyprowadzanie. 1186 01:02:09,549 --> 01:02:10,840 Dam ci faceci dwie minuty. 1187 01:02:10,840 --> 01:03:36,660 1188 01:03:36,660 --> 01:03:37,891 >> Dobre rozmowy? 1189 01:03:37,891 --> 01:03:38,853 >> PUBLICZNOŚCI: Tak. 1190 01:03:38,853 --> 01:03:39,815 >> PROFESOR: Tak. 1191 01:03:39,815 --> 01:03:42,220 W porządku, więc jest to trudne powodu. 1192 01:03:42,220 --> 01:03:44,845 I dlatego chciałem przynieść to uwagę wszystkich. 1193 01:03:44,845 --> 01:03:47,870 1194 01:03:47,870 --> 01:03:51,147 Czy ktoś chce mi dać sugestia, próba? 1195 01:03:51,147 --> 01:03:52,230 Co by to wydrukować? 1196 01:03:52,230 --> 01:03:53,930 Całkowicie w porządku, jeśli jesteś w błędzie. 1197 01:03:53,930 --> 01:03:55,619 Tak? 1198 01:03:55,619 --> 01:03:59,483 >> PUBLICZNOŚCI: Myślę, że to 100 a następnie 10 na dwie oddzielne linie. 1199 01:03:59,483 --> 01:04:00,940 >> PROFESOR I 10? 1200 01:04:00,940 --> 01:04:03,154 Czy ktoś ma jakieś inne domysły? 1201 01:04:03,154 --> 01:04:04,150 Tak? 1202 01:04:04,150 --> 01:04:09,040 >> PUBLICZNOŚCI: Może tylko 10, ponieważ func nic nie wraca? 1203 01:04:09,040 --> 01:04:11,610 >> PROFESOR: OK, więc mają liczbę domysły jeden 1204 01:04:11,610 --> 01:04:14,990 Domyślam się, że numer dwa to po prostu będzie wydrukować 10. 1205 01:04:14,990 --> 01:04:17,623 Czy ktoś ma jakieś inne domysły? 1206 01:04:17,623 --> 01:04:19,654 OK. 1207 01:04:19,654 --> 01:04:21,070 Warto więc przejść przez to, prawda? 1208 01:04:21,070 --> 01:04:23,903 Zawsze, gdy masz kawałek kodu, nie tylko patrzeć na niego i być jak, 1209 01:04:23,903 --> 01:04:25,060 ah, to jest tyle rzeczy! 1210 01:04:25,060 --> 01:04:26,460 Jestem tak zdezorientowany! 1211 01:04:26,460 --> 01:04:28,220 Jak, uspokoić się w dół. 1212 01:04:28,220 --> 01:04:31,602 Po prostu wiem, że można po prostu patrzeć przez linię kodu po linii. 1213 01:04:31,602 --> 01:04:32,310 To wszystko to jest. 1214 01:04:32,310 --> 01:04:33,840 To jak czytanie książki. 1215 01:04:33,840 --> 01:04:38,000 >> Więc z dowolnej funkcji, zawsze zaczynają się głównym. 1216 01:04:38,000 --> 01:04:40,860 Więc będziemy zaczynają się int main pustkę, 1217 01:04:40,860 --> 01:04:43,010 nawet programu już zaniedbany, prawda? 1218 01:04:43,010 --> 01:04:45,070 Zaczynają się w głównym pustkę. 1219 01:04:45,070 --> 01:04:48,030 Int x jest równa 10. 1220 01:04:48,030 --> 01:04:50,400 >> Więc mam zamiar usunąć ten. 1221 01:04:50,400 --> 01:04:55,179 1222 01:04:55,179 --> 01:04:58,470 Mam zamiar wyciągnąć pamięć tak Ciebie faceci mogą rodzaj zobaczyć co się dzieje. 1223 01:04:58,470 --> 01:05:02,190 >> Pamiętaj, tu mamy stos? 1224 01:05:02,190 --> 01:05:05,810 Tutaj mamy nasze kupie gdzieś tutaj. 1225 01:05:05,810 --> 01:05:07,470 Stos rośnie, prawda? 1226 01:05:07,470 --> 01:05:10,150 I w stos, masz funkcjonować zasilania, jak również 1227 01:05:10,150 --> 01:05:12,230 wszystkie sieciowego zmiennych lokalnych. 1228 01:05:12,230 --> 01:05:14,310 >> Więc tutaj, int x równa 10. 1229 01:05:14,310 --> 01:05:17,670 W ramach naszej głównej funkcji jesteśmy tworząc zmienną x. 1230 01:05:17,670 --> 01:05:20,590 Jesteśmy ustawienie, które wynosi 10. 1231 01:05:20,590 --> 01:05:24,200 Tutaj masz trochę x, i jesteś ustawienie, które wynosi 10, w prawo, 1232 01:05:24,200 --> 01:05:25,400 ciągu głównym. 1233 01:05:25,400 --> 01:05:27,430 Każdy dobry? 1234 01:05:27,430 --> 01:05:28,070 >> Funkcjonować. 1235 01:05:28,070 --> 01:05:30,330 Więc teraz, w ramach naszego głównego Funkcja, że ​​dzwonisz 1236 01:05:30,330 --> 01:05:31,810 funkcja pisaliśmy powyżej. 1237 01:05:31,810 --> 01:05:34,550 Więc my teraz wprowadzić drugą funkcję. 1238 01:05:34,550 --> 01:05:40,120 Mamy zamiar stworzyć inny zmienna int x równa 100. 1239 01:05:40,120 --> 01:05:42,410 Co tu się dzieje na stosie? 1240 01:05:42,410 --> 01:05:46,980 Co się dzieje, gdy nazywasz Funkcja, która tworzy nowe zmienne? 1241 01:05:46,980 --> 01:05:50,038 Co dzieje się tutaj na stosie? 1242 01:05:50,038 --> 01:05:52,134 >> PUBLICZNOŚCI: [niesłyszalne] pali na górze? 1243 01:05:52,134 --> 01:05:52,800 PROFESOR: Tak. 1244 01:05:52,800 --> 01:05:54,050 Więc faktycznie tworzy kopię. 1245 01:05:54,050 --> 01:05:56,560 1246 01:05:56,560 --> 01:05:57,740 A to niby stosach na górze. 1247 01:05:57,740 --> 01:06:00,700 Pomyśl z stack-- stos książek, stos wszystko. 1248 01:06:00,700 --> 01:06:06,520 Pale na górze, najpierw w zeszłym się, trwać, pierwsze wyszło. 1249 01:06:06,520 --> 01:06:08,471 >> Więc to będzie stworzyć x tutaj. 1250 01:06:08,471 --> 01:06:12,080 1251 01:06:12,080 --> 01:06:14,450 >> Że będzie musiał wszystkie funcs zmienne. 1252 01:06:14,450 --> 01:06:14,950 Wielki. 1253 01:06:14,950 --> 01:06:20,980 Więc teraz mamy dwie różne x, że stanowią dwie bardzo różne rzeczy. 1254 01:06:20,980 --> 01:06:24,470 Następnie jedziemy do wydrukowania z liczby całkowitej x. 1255 01:06:24,470 --> 01:06:26,430 Warto więc wydrukować 100, prawda? 1256 01:06:26,430 --> 01:06:29,389 Bo tutaj jest to 100. 1257 01:06:29,389 --> 01:06:31,680 Więc to jest pierwsza rzecz, że to będzie wydrukować. 1258 01:06:31,680 --> 01:06:35,710 Jak to funkcja zwraca nic, teraz, że funkcja, że ​​linia w głównym 1259 01:06:35,710 --> 01:06:37,070 skończone. 1260 01:06:37,070 --> 01:06:39,160 Wszyscy dobrze się ze mną do tej pory? 1261 01:06:39,160 --> 01:06:43,034 >> Więc jesteśmy teraz przez dwa z trzy linie naszej głównej funkcji. 1262 01:06:43,034 --> 01:06:44,450 Teraz jedziemy do trzeciej linii. 1263 01:06:44,450 --> 01:06:46,350 Jedziemy do printf. 1264 01:06:46,350 --> 01:06:48,222 Co to jest x ciągu głównym? 1265 01:06:48,222 --> 01:06:49,263 Co oznacza, że ​​reprezentują? 1266 01:06:49,263 --> 01:06:52,720 1267 01:06:52,720 --> 01:06:54,280 >> Jaką wartość ma x teraz? 1268 01:06:54,280 --> 01:06:55,220 >> PUBLICZNOŚCI: 100. 1269 01:06:55,220 --> 01:06:56,799 >> PROFESOR: To jest 100? 1270 01:06:56,799 --> 01:06:57,590 PUBLICZNOŚCI: Jeszcze 10. 1271 01:06:57,590 --> 01:06:58,878 PROFESOR: Jeszcze 10. 1272 01:06:58,878 --> 01:07:00,870 Tak. 1273 01:07:00,870 --> 01:07:06,810 Bo pamiętam, w ramach nasz func, x jest równa 100. 1274 01:07:06,810 --> 01:07:09,690 Ale jeśli wrócimy z powrotem do naszej głównej funkcji, 1275 01:07:09,690 --> 01:07:12,440 zmienna jest przechowywane w inne miejsce na naszej stosie. 1276 01:07:12,440 --> 01:07:16,250 >> Więc teraz musimy wrócić do Głównym stos, zasilacz zmiennych lokalnych. 1277 01:07:16,250 --> 01:07:18,460 I tu x jest równa 10. 1278 01:07:18,460 --> 01:07:20,300 I tak mamy zamiar wydrukować 10. 1279 01:07:20,300 --> 01:07:22,530 >> Więc była absolutną rację. 1280 01:07:22,530 --> 01:07:25,053 Mamy zamiar mieć Wyjście 100 i 10. 1281 01:07:25,053 --> 01:07:25,553 Tak? 1282 01:07:25,553 --> 01:07:28,700 PUBLICZNOŚCI: Kiedy malloc, to, że jest to sterty lub stos, który jest [niesłyszalne]? 1283 01:07:28,700 --> 01:07:31,950 PROFESOR: Kiedy malloc, bierzesz pamięci ze sterty 1284 01:07:31,950 --> 01:07:32,830 i alokację. 1285 01:07:32,830 --> 01:07:34,950 Tak, że nie trzeba zadzierać ze nic z tego. 1286 01:07:34,950 --> 01:07:38,100 Sądzę więc, że większy wynos tutaj jest coś, co nazywa zakres. 1287 01:07:38,100 --> 01:07:39,650 >> Dla tych z Was, którzy byli na sesja opinię w nocy, 1288 01:07:39,650 --> 01:07:41,080 rozmawialiśmy o tym przez chwilę. 1289 01:07:41,080 --> 01:07:45,380 Zakres określa, jak i gdy istnieją zmienne. 1290 01:07:45,380 --> 01:07:48,050 Lub w co ramek nie istnieją zmienne. 1291 01:07:48,050 --> 01:07:51,690 >> Dość dużo zasada ogólnie jest twój variables-- jeśli ich tworzenia 1292 01:07:51,690 --> 01:07:56,660 wewnątrz kręcone braces-- istnieją tylko wewnątrz tych klamrach. 1293 01:07:56,660 --> 01:08:00,312 >> Tak na przykład w naszym funkcji func, widzisz te dwie klamry. 1294 01:08:00,312 --> 01:08:02,020 Jeśli tworzysz coś w jej wnętrzu, 1295 01:08:02,020 --> 01:08:06,500 Szanse są robisz jest tworząc stos i przechowywania, które nie. 1296 01:08:06,500 --> 01:08:07,430 Samo w głównym. 1297 01:08:07,430 --> 01:08:09,950 To tylko przechowywany wewnątrz główne. 1298 01:08:09,950 --> 01:08:13,560 >> Także chcesz być bardzo, bardzo ostrożny. 1299 01:08:13,560 --> 01:08:18,310 Ponieważ zakres nadaje również Sam różnych przykładach. 1300 01:08:18,310 --> 01:08:25,950 Tak więc na przykład dla Pętla, na int i jest równa 0. 1301 01:08:25,950 --> 01:08:28,460 I jest mniejsza niż, nie wiem, 10. 1302 01:08:28,460 --> 01:08:32,111 Ja plus plusem. 1303 01:08:32,111 --> 01:08:34,560 I masz kodu wewnątrz niego, prawda? 1304 01:08:34,560 --> 01:08:38,830 >> Skąd ta zmienna, I właściwie tylko istnieje? 1305 01:08:38,830 --> 01:08:40,510 Tylko wewnątrz twój pętli. 1306 01:08:40,510 --> 01:08:43,640 Więc założę wielu z was ma prawdopodobnie napotkał ten błąd, gdy 1307 01:08:43,640 --> 01:08:45,930 robisz programów w swoich psets. 1308 01:08:45,930 --> 01:08:49,990 Ilu z was próbowało wykorzystać I poza pętli for i miał błąd? 1309 01:08:49,990 --> 01:08:53,310 Jak przypisań liczb całkowitych czy coś takiego? 1310 01:08:53,310 --> 01:08:56,069 >> Powodem, dla którego tak się dzieje dlatego tutaj jesteś 1311 01:08:56,069 --> 01:08:59,109 tworząc coś, że tylko istnieje w twój pętli. 1312 01:08:59,109 --> 01:09:01,972 A jeśli spróbujesz go używać, i nie rzeczywiście istnieją poza nim. 1313 01:09:01,972 --> 01:09:04,930 Więc w zasadzie komputer, mówiąc: nie wiem, co mówisz. 1314 01:09:04,930 --> 01:09:08,689 Wiem tylko, że byłem tutaj, ale teraz już nie. 1315 01:09:08,689 --> 01:09:12,580 >> Więc gdybym miał stworzyć dla pętli wewnątrz, prawda? 1316 01:09:12,580 --> 01:09:19,080 I mam zamiar stworzyć kolejny, jak int j, i to zrobić cokolwiek. 1317 01:09:19,080 --> 01:09:23,689 I masz kod wewnątrz od że pętla, tylko j istnieje tutaj. 1318 01:09:23,689 --> 01:09:26,029 Ale istnieje również w i. 1319 01:09:26,029 --> 01:09:29,310 I tak j istnieje tylko w ramach tej pętli, 1320 01:09:29,310 --> 01:09:33,850 podczas gdy ja istnieje w całej sprawie. 1321 01:09:33,850 --> 01:09:34,500 >> Każdy, jasne? 1322 01:09:34,500 --> 01:09:37,416 To samo z instrukcji warunkowych jeśli chcesz stworzyć niczego. 1323 01:09:37,416 --> 01:09:40,390 To samo z pętli natomiast jeśli chcesz stworzyć coś. 1324 01:09:40,390 --> 01:09:42,390 To coś się bardzo, bardzo ostrożny. 1325 01:09:42,390 --> 01:09:45,681 Więc to był naprawdę dobry problemem w Wyczuwam, że wykazała dwie rzeczy. 1326 01:09:45,681 --> 01:09:47,160 Wykazano pierwsze, zakres. 1327 01:09:47,160 --> 01:09:49,550 I wykazał również alokacji pamięci. 1328 01:09:49,550 --> 01:09:54,130 Bo faceci powinni wiedzieć, że funkcje rosną w górę stosu. 1329 01:09:54,130 --> 01:09:56,710 I że podczas rozmowy funkcje, tworzysz 1330 01:09:56,710 --> 01:09:59,060 zasadniczo nowy stos pamięci. 1331 01:09:59,060 --> 01:10:02,100 To bardzo różni się od jaka jest twoja pamięć sieci. 1332 01:10:02,100 --> 01:10:03,300 Tak. 1333 01:10:03,300 --> 01:10:03,800 Uff! 1334 01:10:03,800 --> 01:10:05,470 Każdy OK na to? 1335 01:10:05,470 --> 01:10:06,750 To było mylące. 1336 01:10:06,750 --> 01:10:09,380 Bardzo dobre tematy przejść, bo pewnie masz 1337 01:10:09,380 --> 01:10:12,255 dostanie niektóre trudne takie rzeczy w quizie. 1338 01:10:12,255 --> 01:10:13,350 Tak. 1339 01:10:13,350 --> 01:10:13,850 Chłodny. 1340 01:10:13,850 --> 01:10:16,014 1341 01:10:16,014 --> 01:10:18,430 Powiem masz 100 na jednym Linia i 10 z drugiej strony. 1342 01:10:18,430 --> 01:10:21,468 Tak, bardzo dobrze. 1343 01:10:21,468 --> 01:10:26,350 >> OK, teraz chłopaki dostaną szansę być TAS. 1344 01:10:26,350 --> 01:10:30,600 Otrzymasz odpowiedzi na wszystkie piękne e-maile, że czasami. 1345 01:10:30,600 --> 01:10:34,290 >> Tak więc, drodzy Andi, widzę, myślę, że coś jest nie tak z moim kompilatora. 1346 01:10:34,290 --> 01:10:37,910 Jestem pewien, że mój kod jest poprawny, ale wciąż otrzymuję błąd segmentacji 1347 01:10:37,910 --> 01:10:39,074 za każdym razem uruchomić. 1348 01:10:39,074 --> 01:10:39,740 Co się dzieje? 1349 01:10:39,740 --> 01:10:42,844 Proszę o pomoc, dużo miłości. 1350 01:10:42,844 --> 01:10:45,740 1351 01:10:45,740 --> 01:10:49,410 >> Jeśli dostaliście coś takiego że jak byś odpowiedział? 1352 01:10:49,410 --> 01:10:51,860 Są to w rzeczywistości bardzo często pytania, które cię zapytać. 1353 01:10:51,860 --> 01:10:54,090 Czy w przypadku, damy ci Scenariusz, damy nas 1354 01:10:54,090 --> 01:10:56,350 najlepiej Domyślam się, co się dzieje. 1355 01:10:56,350 --> 01:11:00,710 Każdy, kto ma ukłucie na to, co się dzieje? 1356 01:11:00,710 --> 01:11:02,654 Tak? 1357 01:11:02,654 --> 01:11:06,056 >> PUBLICZNOŚCI: Może dereferencjonowane null, coś takiego jak wskaźnik 1358 01:11:06,056 --> 01:11:08,924 wskazuje na coś zerowej. 1359 01:11:08,924 --> 01:11:11,590 PROFESOR: Tak, to by być Przykładem, kiedy to się stanie. 1360 01:11:11,590 --> 01:11:14,467 Ale co jest tym większy obraz z tego, co tu się dzieje? 1361 01:11:14,467 --> 01:11:17,050 PUBLICZNOŚCI: Czy starasz aby uzyskać dostęp do pamięci, że nie jesteś 1362 01:11:17,050 --> 01:11:18,175 ma mieć dostęp? 1363 01:11:18,175 --> 01:11:19,200 PROFESOR: Dokładnie. 1364 01:11:19,200 --> 01:11:24,800 Więc myślę usterki seg, pozabilansowym limity, ograniczonego obszaru w pamięci 1365 01:11:24,800 --> 01:11:27,780 że nie powinno być wzruszające. 1366 01:11:27,780 --> 01:11:31,670 >> Więc dość dużo, gdy starasz do index-- jak na przykład 1367 01:11:31,670 --> 01:11:34,110 już ogłoszony Tablica od zera do dziewięciu. 1368 01:11:34,110 --> 01:11:37,360 Ale spróbować dotknąć tego 10th wartości, nie masz dostępu do tego. 1369 01:11:37,360 --> 01:11:38,694 Ponieważ nie zadeklarował go. 1370 01:11:38,694 --> 01:11:40,943 A więc komputer będzie przyjrzeć się, że będzie jak, 1371 01:11:40,943 --> 01:11:43,440 uh oh, starasz się iść poza granice indeksu. 1372 01:11:43,440 --> 01:11:45,270 Mam zamiar dać ci usterka segmentacji. 1373 01:11:45,270 --> 01:11:46,590 >> Pomyśl, jak segmencie, prawda? 1374 01:11:46,590 --> 01:11:49,665 Dodatkowy odcinek, usterka podczas próby naruszenia coś 1375 01:11:49,665 --> 01:11:50,790 i nie powinno tam być. 1376 01:11:50,790 --> 01:11:53,660 Segmentacja jest usterka w każdej chwili spróbuj dotknąć rzeczy 1377 01:11:53,660 --> 01:11:54,970 że nie powinno być wzruszające. 1378 01:11:54,970 --> 01:11:56,815 >> Tak częste przykłady indeks. 1379 01:11:56,815 --> 01:11:58,940 Oczywiście, jeśli starasz dotykać, że był pusty, 1380 01:11:58,940 --> 01:12:00,220 które również działa tak dobrze. 1381 01:12:00,220 --> 01:12:02,300 Jeśli wskaźnik próbował dotykać rzeczy, które nie powinny dotykać, 1382 01:12:02,300 --> 01:12:03,730 że może również pracować jako dobrze. 1383 01:12:03,730 --> 01:12:07,120 Najczęściej będziesz Widać to w tablicy. 1384 01:12:07,120 --> 01:12:07,740 Każdy dobry? 1385 01:12:07,740 --> 01:12:10,374 >> PUBLICZNOŚCI: Więc jeśli chcesz aby uzyskać dostęp do 10-punkt 1386 01:12:10,374 --> 01:12:12,290 i nie tylko granica dziewięciu czy coś. 1387 01:12:12,290 --> 01:12:13,160 >> PROFESOR: Tak, dokładnie. 1388 01:12:13,160 --> 01:12:13,660 Dość dużo. 1389 01:12:13,660 --> 01:12:15,930 1390 01:12:15,930 --> 01:12:16,430 Chłodny. 1391 01:12:16,430 --> 01:12:19,070 1392 01:12:19,070 --> 01:12:19,920 >> Szanowny Andi. 1393 01:12:19,920 --> 01:12:23,440 Mamy więc te wspaniałe rzeczy nazywane rodzaju. 1394 01:12:23,440 --> 01:12:25,472 Jeśli Merge sort-- jak my Piła w przykładzie, kiedy 1395 01:12:25,472 --> 01:12:27,180 Dawid cały rzecz w class-- dlaczego, 1396 01:12:27,180 --> 01:12:29,760 czy to o wiele szybciej niż każdy z innych rodzajów, 1397 01:12:29,760 --> 01:12:33,310 dlaczego nawet trudu, wiedząc, każdy z innych rodzajów? 1398 01:12:33,310 --> 01:12:35,100 >> Co to jest to pytanie bardzo prośbą? 1399 01:12:35,100 --> 01:12:36,659 Co znajduje się w trzech word-- 1400 01:12:36,659 --> 01:12:37,950 PUBLICZNOŚCI: Co to jest kompromis? 1401 01:12:37,950 --> 01:12:38,530 PROFESOR: Dokładnie. 1402 01:12:38,530 --> 01:12:39,946 Właśnie to pytanie pyta. 1403 01:12:39,946 --> 01:12:43,682 Co to jest kompromis między Sortowanie przez scalanie wierszy innych rodzajów? 1404 01:12:43,682 --> 01:12:45,850 >> PUBLICZNOŚCI: Bierze pamięć, prawda? 1405 01:12:45,850 --> 01:12:47,720 >> PROFESOR: Czy wyjaśnić, że nieco więcej? 1406 01:12:47,720 --> 01:12:49,490 Najpierw wyjaśnijmy sklep seryjnej. 1407 01:12:49,490 --> 01:12:50,970 Jak Scalanie rodzaj pracy? 1408 01:12:50,970 --> 01:12:55,220 >> PUBLICZNOŚCI: Tak to działa, dzieląc wszystko na pół 1409 01:12:55,220 --> 01:13:00,660 a następnie wprowadzenie go razem i realokacji go w porządku, 1410 01:13:00,660 --> 01:13:02,862 jak w każdym czasie scalania zestawów. 1411 01:13:02,862 --> 01:13:03,820 PROFESOR: Dość dużo. 1412 01:13:03,820 --> 01:13:06,861 Więc mogę zwrócić na to uwagę, ale to będzie zabrać mi pięć minut, aby wyciągnąć go na zewnątrz. 1413 01:13:06,861 --> 01:13:10,220 Spójrz na slajdach sekcji gdzie pokryte sortowanie przez scalanie. 1414 01:13:10,220 --> 01:13:10,790 Dokładnie. 1415 01:13:10,790 --> 01:13:13,406 >> Więc sposób Merge prace sortowania jest to dzieli rzeczy na pół, 1416 01:13:13,406 --> 01:13:15,780 a potem po prostu patrzy na Pierwsze wartości wszystkich z nich 1417 01:13:15,780 --> 01:13:17,000 i sortuje tylko. 1418 01:13:17,000 --> 01:13:20,364 Stale tworzy nowe tablice i stawia rzeczy bardziej i bardziej w porządku. 1419 01:13:20,364 --> 01:13:23,030 I tak, podczas gdy to jest naprawdę, naprawdę szybko, bo it's-- wiesz, 1420 01:13:23,030 --> 01:13:25,380 wyszukiwanie binarne jest n log n. 1421 01:13:25,380 --> 01:13:27,880 Tworzysz tak wielu różne tablice, że jesteś 1422 01:13:27,880 --> 01:13:29,700 przy użyciu dużej ilości pamięci. 1423 01:13:29,700 --> 01:13:33,080 I tak, podczas gdy jest to szybsze, kompromis tutaj jest to, że używasz więcej pamięci. 1424 01:13:33,080 --> 01:13:38,490 >> I tak, wskazówkę, sortuje i wyszukiwania zostały pokryte dużo więcej w tym roku 1425 01:13:38,490 --> 01:13:41,610 niż miało to miejsce w poprzednich latach. 1426 01:13:41,610 --> 01:13:45,100 Powinniście zobaczyć, że odpowiednio w quizie odzwierciedlenie. 1427 01:13:45,100 --> 01:13:49,160 I na pewno spędzić czas będzie nad tym, co wszystkich innych rodzajów 1428 01:13:49,160 --> 01:13:52,320 są, wyszukiwania, jak binarny, jak liniowa praca wyszukiwarek. 1429 01:13:52,320 --> 01:13:54,750 Jak może pseudocode kodować te na zewnątrz. 1430 01:13:54,750 --> 01:13:55,950 Jaki jest czas uruchomione? 1431 01:13:55,950 --> 01:13:59,210 Coś w czasie uruchomionych jest bardzo łatwe do kopiowania w dół na arkuszu notatki, 1432 01:13:59,210 --> 01:13:59,710 dobrze? 1433 01:13:59,710 --> 01:14:01,420 >> To naprawdę trudne, gdy jesteś w środku testy 1434 01:14:01,420 --> 01:14:02,390 i masz do tego dowiedzieć. 1435 01:14:02,390 --> 01:14:03,160 Skopiuj go w dół. 1436 01:14:03,160 --> 01:14:05,550 Gwarantuję Ci, że jesteś będzie trzeba wiedzieć. 1437 01:14:05,550 --> 01:14:06,860 Jakie są kompromisy? 1438 01:14:06,860 --> 01:14:10,064 Najgorszy przypadek, najlepsze scenariusze dla wszystkich z nich, bardzo poznać. 1439 01:14:10,064 --> 01:14:10,564 Tak? 1440 01:14:10,564 --> 01:14:12,730 >> PUBLICZNOŚCI: Czy musimy wiesz jak kod sortowanie przez scalanie? 1441 01:14:12,730 --> 01:14:15,470 Podobnie jak, nie musimy pamiętam rekurencyjnych? 1442 01:14:15,470 --> 01:14:18,950 >> PROFESOR I bardzo wątpię, po prostu bo to jak dość skomplikowane. 1443 01:14:18,950 --> 01:14:22,282 Ale to nie może być niemożliwe, jeśli my prosimy użyć pseudocode go. 1444 01:14:22,282 --> 01:14:22,781 Tak. 1445 01:14:22,781 --> 01:14:25,470 1446 01:14:25,470 --> 01:14:29,170 >> Tak, OK, jeszcze jedno. 1447 01:14:29,170 --> 01:14:31,387 To może pochodzić w Ci ostatni kawałek w nieco. 1448 01:14:31,387 --> 01:14:42,101 1449 01:14:42,101 --> 01:14:43,090 Tak? 1450 01:14:43,090 --> 01:14:44,930 Czy wszyscy słyszeć? 1451 01:14:44,930 --> 01:14:48,360 >> OK, więc dość dużo przede wszystkim, jaki rodzaj programu 1452 01:14:48,360 --> 01:14:51,000 będzie co daje moc takiego? 1453 01:14:51,000 --> 01:14:54,350 Pamiętaj poprosiliśmy was poznać ten nowy typ debugowania narzędzie? 1454 01:14:54,350 --> 01:14:57,340 Jaka była nazwa tego? 1455 01:14:57,340 --> 01:14:59,460 Valgrind, tuż 1456 01:14:59,460 --> 01:15:02,600 >> Był to program, w którym można nazwać, że mogłem 1457 01:15:02,600 --> 01:15:05,940 śledzić wszystkie pamięci jesteś używając w swoim programie i się dzieje. 1458 01:15:05,940 --> 01:15:11,090 Więc jeśli masz coś, jak, zdecydowanie stracił, 40 bajtów w jednym bloku. 1459 01:15:11,090 --> 01:15:14,870 Prawdopodobnie nie jesteś pamiętając, aby go uwolnić. 1460 01:15:14,870 --> 01:15:18,710 Bo jeśli używasz bajtów pamięci, co oznacza, że ​​masz dostęp do tej pamięci, 1461 01:15:18,710 --> 01:15:20,240 ale nie udało się uwolnić. 1462 01:15:20,240 --> 01:15:21,948 Więc chcesz, aby pamiętaj, że jesteś również 1463 01:15:21,948 --> 01:15:31,420 za pomocą free-- że to function-- aby uwolnić wszystkich 1464 01:15:31,420 --> 01:15:34,930 pamięci przesunięte przez malloc. 1465 01:15:34,930 --> 01:15:35,500 >> Chłodny. 1466 01:15:35,500 --> 01:15:37,140 Więc tym slajdzie, będę musiał go. 1467 01:15:37,140 --> 01:15:41,050 Jest wszędzie w wielu wykłady w wielu slajdach sekcji. 1468 01:15:41,050 --> 01:15:44,254 Naprawdę chcesz się upewnić, po prostu wiem wszystko. 1469 01:15:44,254 --> 01:15:47,170 Albo w arkuszu notatki czy Ciebie chcesz go zapamiętać, nie krępuj się. 1470 01:15:47,170 --> 01:15:48,836 To naprawdę, naprawdę, naprawdę ważne. 1471 01:15:48,836 --> 01:15:53,200 1472 01:15:53,200 --> 01:15:56,890 >> Również bardzo dobry Pytanie, które możemy poprosić. 1473 01:15:56,890 --> 01:16:00,320 Dlaczego wygląd Selection sort-- jest Wybór sort-- wszystkie czasy pracy 1474 01:16:00,320 --> 01:16:02,060 są n do kwadratu. 1475 01:16:02,060 --> 01:16:06,714 Niezależnie od tego, w jaki sposób lista przychodzi do Ci, jak, dlaczego więc jest wybór sort-- 1476 01:16:06,714 --> 01:16:08,630 Dam ci faceci 30 Drugi o tym myśleć. 1477 01:16:08,630 --> 01:16:10,700 Bo to trochę mylące. 1478 01:16:10,700 --> 01:16:12,710 Wiąże się to trochę myślenia pojęciowego. 1479 01:16:12,710 --> 01:16:16,470 Dlaczego czasów pracy byłby taki sam w zarówno najgorsze i najlepsze scenariusze? 1480 01:16:16,470 --> 01:16:28,850 1481 01:16:28,850 --> 01:16:30,000 >> Tak? 1482 01:16:30,000 --> 01:16:38,084 >> PUBLICZNOŚCI: Ponieważ Wybór rodzaju każdego pozycji lub miejsca w tej małej tablicy 1483 01:16:38,084 --> 01:16:40,350 rzecz, albo cokolwiek. 1484 01:16:40,350 --> 01:16:44,430 Tak więc nawet w najlepszym przypadku, nawet jeśli jest to całkowicie sortowane, 1485 01:16:44,430 --> 01:16:47,380 to nadal ma być jak, OK, jeden. 1486 01:16:47,380 --> 01:16:49,000 W moim pierwszym miejscu mam jeden. 1487 01:16:49,000 --> 01:16:50,250 I przejść przez wszystkie z nich. 1488 01:16:50,250 --> 01:16:51,249 OK jeden jest najmniejsza. 1489 01:16:51,249 --> 01:16:53,053 A potem to idzie jeszcze raz i jest tak, OK, dwa 1490 01:16:53,053 --> 01:16:54,594 to najmniejsza z wszystkich rzeczy. 1491 01:16:54,594 --> 01:16:56,804 Ale to musi jeszcze sprawdzić każdy jeden. 1492 01:16:56,804 --> 01:16:57,470 PROFESOR: Tak. 1493 01:16:57,470 --> 01:17:00,490 Tak na przykład, powiedzmy, Mamy listę, już klasyfikowane, 1494 01:17:00,490 --> 01:17:03,390 tablica jeden do pięciu. 1495 01:17:03,390 --> 01:17:07,100 Sposób, w rodzaju wyboru jest to, że przechodzi przez sprawdza te dwa. 1496 01:17:07,100 --> 01:17:08,234 Następnie sprawdza te dwa. 1497 01:17:08,234 --> 01:17:09,650 A następnie sprawdza i sprawdza. 1498 01:17:09,650 --> 01:17:13,285 To ciągle sprawdzanie wszystkich z nich, niezależnie od tego, czy 1499 01:17:13,285 --> 01:17:14,160 to faktycznie sortowane. 1500 01:17:14,160 --> 01:17:16,450 Bo to jest po prostu sposób, w jaki to rodzaj działa. 1501 01:17:16,450 --> 01:17:19,530 >> A tak, to pytanie jest trochę jak koncepcyjne pytanie poprosimy. 1502 01:17:19,530 --> 01:17:21,430 W przypadku, gdy po pierwsze, do wiem, jakiego rodzaju wyboru 1503 01:17:21,430 --> 01:17:23,304 jest, w prawo, aby być w stanie odpowiedzieć na pytanie. 1504 01:17:23,304 --> 01:17:26,200 Musisz być w stanie zrozumieć koncepcyjnie, co się dzieje. 1505 01:17:26,200 --> 01:17:30,760 A potem można go stosować i myślę, OK niech po prostu wyobrazić sobie najgorszy scenariusz. 1506 01:17:30,760 --> 01:17:32,230 Oni wszyscy są w porządku malejącym. 1507 01:17:32,230 --> 01:17:33,290 Jak to wpływa na to? 1508 01:17:33,290 --> 01:17:34,650 >> Co jeśli to zamówienie rosnąco? 1509 01:17:34,650 --> 01:17:35,640 Jeśli to już klasyfikowane? 1510 01:17:35,640 --> 01:17:37,240 Jak to wpływa na czas pracy? 1511 01:17:37,240 --> 01:17:40,270 A następnie Wybór rodzaju, można zauważyć, które w rzeczywistości nie ma znaczenia. 1512 01:17:40,270 --> 01:17:43,500 Ponieważ jesteś sprawdzanie wszystkich wartości bez względu na to, co się dzieje. 1513 01:17:43,500 --> 01:17:45,810 >> I tak dobre rzeczy do zapamiętania. 1514 01:17:45,810 --> 01:17:50,290 Dlaczego niektóre rodzaje różnią się od innych i jak najlepsze i najgorsze scenariusze 1515 01:17:50,290 --> 01:17:52,740 wpłynie na wszystkie z nich. 1516 01:17:52,740 --> 01:17:56,700 >> Będę naprawdę strzałem w rodzaju dlatego, że będzie na quiz. 1517 01:17:56,700 --> 01:17:57,199 Tak. 1518 01:17:57,199 --> 01:18:00,820 1519 01:18:00,820 --> 01:18:01,320 OK. 1520 01:18:01,320 --> 01:18:05,590 Jest sześć minut przed końcem. 1521 01:18:05,590 --> 01:18:09,880 Mogę wziąć trzy minuty pytań. 1522 01:18:09,880 --> 01:18:12,290 Mogę też obijać się jak 20 minut po sekcji 1523 01:18:12,290 --> 01:18:13,850 jeśli chcesz zadać pytania, jak również. 1524 01:18:13,850 --> 01:18:16,330 Czy ktoś po prostu bardzo krótkie pytania lub problemy koncepcyjne 1525 01:18:16,330 --> 01:18:17,360 są jasne, w tej chwili? 1526 01:18:17,360 --> 01:18:17,832 Tak? 1527 01:18:17,832 --> 01:18:19,720 >> PUBLICZNOŚCI: Czy możesz opowiedzieć trochę Trochę o Operatory bitowe? 1528 01:18:19,720 --> 01:18:20,280 >> PROFESOR: Tak. 1529 01:18:20,280 --> 01:18:22,446 Operatory bitowe są tak coś, co prawdopodobnie 1530 01:18:22,446 --> 01:18:24,170 może po prostu chcesz umieścić na swojej karcie. 1531 01:18:24,170 --> 01:18:27,540 Więc quickly-- nie chcę iść za dużo w głębi 1532 01:18:27,540 --> 01:18:31,164 dlatego, Harvardzie, w ich przeglądu Sesja, pokryte go całkiem dobrze. 1533 01:18:31,164 --> 01:18:33,080 Operatory bitowe, nie pięć z nich, prawda? 1534 01:18:33,080 --> 01:18:41,370 >> Jest to, co jest x lub funkcji, nie ma znaku &, który jest i. 1535 01:18:41,370 --> 01:18:44,050 Rura, która jest albo. 1536 01:18:44,050 --> 01:18:46,790 I wtedy masz dwa różne rodzaje zmian. 1537 01:18:46,790 --> 01:18:50,610 >> Jeśli dam ci dwie wartości, o ile Daję wam, jak, jeden do jeden. 1538 01:18:50,610 --> 01:18:52,390 Co by to ocenić na? 1539 01:18:52,390 --> 01:18:55,490 Jeśli dam ci prawdziwe i prawdziwe, prawda? 1540 01:18:55,490 --> 01:18:56,930 Co prawda czy fałsz? 1541 01:18:56,930 --> 01:18:57,830 Mimo to prawda, prawda? 1542 01:18:57,830 --> 01:18:59,762 Ponieważ nie OR. 1543 01:18:59,762 --> 01:19:01,220 Będziemy najprawdopodobniej daje numery. 1544 01:19:01,220 --> 01:19:03,780 Więc pamiętaj, jeden równa prawda, zero równa się fałszywe. 1545 01:19:03,780 --> 01:19:07,407 I możemy dać ci te rzeczy i proszę nam powiedzieć, co się dzieje. 1546 01:19:07,407 --> 01:19:10,240 Harvard obejmuje go w pierwszym 10 minut z ich sesji studyjnej 1547 01:19:10,240 --> 01:19:11,230 naprawdę, naprawdę dobrze. 1548 01:19:11,230 --> 01:19:14,260 Więc chłopaki chcą, aby upewnij się, spojrzeć wstecz na to. 1549 01:19:14,260 --> 01:19:16,387 >> PUBLICZNOŚCI: Czy pisa5 będzie na quiz? 1550 01:19:16,387 --> 01:19:16,970 PROFESOR: Nie 1551 01:19:16,970 --> 01:19:18,240 Nawet nie patrzeć na pisa5 teraz. 1552 01:19:18,240 --> 01:19:18,810 To trudne. 1553 01:19:18,810 --> 01:19:22,830 Wystarczy nawet nie patrząc na pisa5. 1554 01:19:22,830 --> 01:19:25,665 >> Jednak, jak kilka wskazówek i sugestie, ja 1555 01:19:25,665 --> 01:19:28,320 proponuję zacząć pisa5 tak szybko, jak quiz jest skończona. 1556 01:19:28,320 --> 01:19:30,319 To będzie najtrudniejsza tygodniu, ale wtedy ludzie 1557 01:19:30,319 --> 01:19:34,590 będą przekazywane go na wzgórzach toczenia zielony i szczenięta, 1558 01:19:34,590 --> 01:19:36,115 i to jest w porządku. 1559 01:19:36,115 --> 01:19:39,810 >> Ta klasa dostaje znaczące łatwiejsze po piątym pset. 1560 01:19:39,810 --> 01:19:41,560 Godziny urzędowania: PUBLICZNOŚCI jest niedziela, poniedziałek? 1561 01:19:41,560 --> 01:19:44,260 PROFESOR: Tak, tak, godziny pracy będzie w niedzielę do poniedziałku do zbior. 1562 01:19:44,260 --> 01:19:47,009 Godziny urzędowania tonight zasadniczo będzie tylko przegląd w quizie. 1563 01:19:47,009 --> 01:19:50,350 Jeśli ktoś chce przyjść i zapytać TAS pytanie, będziemy tam. 1564 01:19:50,350 --> 01:19:53,220 >> Wezmę może jeszcze jedno pytanie jeśli ktoś ma pytanie? 1565 01:19:53,220 --> 01:19:53,809 Tak? 1566 01:19:53,809 --> 01:19:55,850 PUBLICZNOŚCI: Kiedy jesteś określające węzły, [niesłyszalne] 1567 01:19:55,850 --> 01:20:00,700 jeśli powiesz gwiazdę węzła, a następnie obok, automatycznie wykonuje komputer 1568 01:20:00,700 --> 01:20:03,610 Rozumiem, że jesteś odwołując się do innego wskaźnika? 1569 01:20:03,610 --> 01:20:04,580 >> PROFESOR: Nie 1570 01:20:04,580 --> 01:20:06,710 >> PUBLICZNOŚCI: Musisz ponownie połączyć go [niesłyszalne]? 1571 01:20:06,710 --> 01:20:09,270 >> PROFESOR: Więc w zasadzie struktura węzła jest, pamiętaj, 1572 01:20:09,270 --> 01:20:12,620 to jak utworzyć węzeł i to masz wskaźnik zwany dalej. 1573 01:20:12,620 --> 01:20:14,630 Wszystko robisz jest o struktura istnieje. 1574 01:20:14,630 --> 01:20:16,387 Musisz przypisać że wyżeł gdzieś. 1575 01:20:16,387 --> 01:20:18,470 Więc komputery nie wiedzieć, co robi jeszcze. 1576 01:20:18,470 --> 01:20:20,250 Trzeba rzeczywiście przypisać go, gdy tworzysz swoją połączonej listy. 1577 01:20:20,250 --> 01:20:22,170 I to właśnie przede wszystkim zbior 5 będzie dalej. 1578 01:20:22,170 --> 01:20:24,106 Więc nie ma obaw o którykolwiek z tym już teraz. 1579 01:20:24,106 --> 01:20:26,380 >> PUBLICZNOŚCI: Więc nie trzeba koncentrują się zbytnio na liście łączy, po prostu 1580 01:20:26,380 --> 01:20:27,440 ogólna koncepcja? 1581 01:20:27,440 --> 01:20:30,980 >> PROFESOR Zaledwie dość dużo stosy, Link kolejki, listy, drzewa, tablice z cebulą. 1582 01:20:30,980 --> 01:20:33,639 Wystarczy być w stanie wiedzieć, czym one są. 1583 01:20:33,639 --> 01:20:35,680 Nie będziemy prosić chcesz coś konkretnego 1584 01:20:35,680 --> 01:20:39,300 dlatego, że tak naprawdę nie zrobić już pset że obejmuje żadnej z tych rzeczy jeszcze. 1585 01:20:39,300 --> 01:20:45,540 >> Tak więc w ostatnim dwie minuty przed I was wyzwoli zabić ten quiz. 1586 01:20:45,540 --> 01:20:49,370 Dość dużo, jak, zastanowić się, jak znacznie wy doszli w tej klasie. 1587 01:20:49,370 --> 01:20:52,820 >> Pamiętam, że kiedy tydzień dwa tej klasy, niektórzy z was 1588 01:20:52,820 --> 01:20:55,720 spędzić trzy godziny pisania wody. 1589 01:20:55,720 --> 01:20:57,970 Jak długo zajmie ci faceci pisać teraz wodę? 1590 01:20:57,970 --> 01:20:59,670 30 sekund, może być? 1591 01:20:59,670 --> 01:21:01,810 Pomyśl o tym, jak bardzo chłopaki nauczyli. 1592 01:21:01,810 --> 01:21:04,320 CS jest naprawdę ciężko, z zastrzeżeniem. 1593 01:21:04,320 --> 01:21:06,190 Nie ma co do tego wątpliwości. 1594 01:21:06,190 --> 01:21:09,160 Trudno, to dlaczego nikt nie bada go. 1595 01:21:09,160 --> 01:21:10,730 To jest po prostu ciężko. 1596 01:21:10,730 --> 01:21:11,650 I to jest całkowicie w porządku. 1597 01:21:11,650 --> 01:21:14,150 >> I jestem bardzo dumny, że wszyscy tak daleko. 1598 01:21:14,150 --> 01:21:16,380 Psets nie są łatwe. 1599 01:21:16,380 --> 01:21:17,790 Biorą dużo czasu. 1600 01:21:17,790 --> 01:21:22,580 Chłopaki, ja nigdy nie poprosi Cię o Napisać gra 15 lub Vigenère na zbior. 1601 01:21:22,580 --> 01:21:24,160 Nie trzeba się po prostu wariować o tym. 1602 01:21:24,160 --> 01:21:28,080 Wszystko testujemy tutaj jest ocena Twój koncepcyjne wiedzy, jak również 1603 01:21:28,080 --> 01:21:31,524 jako jedne z podstawowych umiejętności kodowania. 1604 01:21:31,524 --> 01:21:33,440 Ten test jest przeznaczony do być naprawdę trudne. 1605 01:21:33,440 --> 01:21:36,180 Podobnie jak to jest przeznaczone , aby nie dostać 100. 1606 01:21:36,180 --> 01:21:39,880 Jest przeznaczony również dla Ciebie, aby pewnie nie być w stanie do końca w 75 minut. 1607 01:21:39,880 --> 01:21:41,995 I to jest całkowicie w porządku. 1608 01:21:41,995 --> 01:21:42,870 Jestem studentem ja. 1609 01:21:42,870 --> 01:21:45,960 Wiem, Nienawidzę, kiedy idę z quizie być jak cholera. 1610 01:21:45,960 --> 01:21:47,044 To było naprawdę trudne. 1611 01:21:47,044 --> 01:21:49,460 Prawdopodobnie co się happen-- i to jest całkowicie w porządku, 1612 01:21:49,460 --> 01:21:50,751 Mówię wam teraz. 1613 01:21:50,751 --> 01:21:53,190 Środki na te rzeczy nie są wysokie w ogóle. 1614 01:21:53,190 --> 01:21:55,360 >> A dla tych z was, którzy zostały uzyskanie, jak, 1615 01:21:55,360 --> 01:21:57,870 trójek na swoich zbiorów problemowych, to nie znaczy, że jesteś 1616 01:21:57,870 --> 01:21:59,536 dostanie 60 procent w tej klasie. 1617 01:21:59,536 --> 01:22:01,440 Jeśli masz 60% na Quiz, że nie 1618 01:22:01,440 --> 01:22:03,330 znaczy masz zamiar dostać D w tej klasie. 1619 01:22:03,330 --> 01:22:05,740 Widzimy, zwłaszcza ja, na tych, w moim dziale, 1620 01:22:05,740 --> 01:22:07,406 Widzę, jak bardzo wy wszyscy pracujemy. 1621 01:22:07,406 --> 01:22:09,190 I śledzić, że. 1622 01:22:09,190 --> 01:22:11,420 >> Wy będzie dobrze. 1623 01:22:11,420 --> 01:22:14,580 Nie ma pamięci instytucjonalnej szczęście na koniec semestru. 1624 01:22:14,580 --> 01:22:16,840 Bo wszystkie dzieci z Harvardu mówią ich przyjaciele, oh, wszystko będzie w porządku. 1625 01:22:16,840 --> 01:22:18,381 Nikt nie mówi wam, że tutaj. 1626 01:22:18,381 --> 01:22:20,950 Więc muszę powiedzieć wam, że tutaj. 1627 01:22:20,950 --> 01:22:22,280 >> Wy będzie dobrze. 1628 01:22:22,280 --> 01:22:24,080 Jestem bardzo dumny z wszystkich was. 1629 01:22:24,080 --> 01:22:25,680 Test będzie trudno. 1630 01:22:25,680 --> 01:22:28,140 Badania dla niego, a potem po prostu wyrzucić. 1631 01:22:28,140 --> 01:22:31,280 Przygotuj się uczyć nowych rzeczy. 1632 01:22:31,280 --> 01:22:33,990 I jeść słodycze. 1633 01:22:33,990 --> 01:22:35,940 Mamy mieć dużo cukierków. 1634 01:22:35,940 --> 01:22:37,760 >> Pobierz sen sen. 1635 01:22:37,760 --> 01:22:40,420 Nie, nie spać, ponieważ To byłoby naprawdę źle. 1636 01:22:40,420 --> 01:22:41,490 CS jest dużo logiki. 1637 01:22:41,490 --> 01:22:44,960 Jeśli nie spać, nie może działać, i mózg nie może funkcjonować. 1638 01:22:44,960 --> 01:22:48,780 I będę tutaj następnym 20 minut, jeśli ktoś chce obijać. 1639 01:22:48,780 --> 01:22:51,150 Macie zamiar go zabić. 1640 01:22:51,150 --> 01:22:53,000 Powodzenia. 1641 01:22:53,000 --> 01:22:55,663