1 00:00:00,000 --> 00:00:02,742 >> [MUZYKI] 2 00:00:02,742 --> 00:00:05,030 3 00:00:05,030 --> 00:00:09,090 >> ANDI PENG: Jest CS50 i Zapraszamy do tygodnia dwóch sekcji. 4 00:00:09,090 --> 00:00:11,740 To jest rzeczywiście, podczas gdy tydzień dwie rzeczywistości naszych class--, 5 00:00:11,740 --> 00:00:14,550 w pierwszym tygodniu mieliśmy sekcję. 6 00:00:14,550 --> 00:00:18,897 Pokaż rąk, jak wielu z was wszystkich Super sekcji przyszedł w zeszłym tygodniu? 7 00:00:18,897 --> 00:00:19,480 OK, to jest OK. 8 00:00:19,480 --> 00:00:20,020 Dobrze. 9 00:00:20,020 --> 00:00:23,110 Jak wielu z was oglądał Super rozdział w zeszłym tygodniu? 10 00:00:23,110 --> 00:00:23,610 OK. 11 00:00:23,610 --> 00:00:25,702 I zrobiliście dobrze od problemu ustawić jeden? 12 00:00:25,702 --> 00:00:28,660 Więc mam zamiar wziąć to, że mamy kilka bardzo inteligentnych dzieci 13 00:00:28,660 --> 00:00:32,310 w tej klasie i rzeczy będzie dobrze. 14 00:00:32,310 --> 00:00:33,180 OK. 15 00:00:33,180 --> 00:00:33,980 Więc first-- 16 00:00:33,980 --> 00:00:37,900 17 00:00:37,900 --> 00:00:41,090 >> Po pierwsze, jesteśmy po prostu będzie krótko przejść do porządku obrad dzisiejszego. 18 00:00:41,090 --> 00:00:42,700 Porozmawiamy o logistyce kursu. 19 00:00:42,700 --> 00:00:45,480 Wielu z was zapewne pytań dotyczących 20 00:00:45,480 --> 00:00:46,920 jak rzeczy działają w tym kursie. 21 00:00:46,920 --> 00:00:47,897 Będziemy na nie odpowiedzieć. 22 00:00:47,897 --> 00:00:49,730 Idziemy na krótko przejść na pętli w przypadku 23 00:00:49,730 --> 00:00:51,410 którykolwiek z was brakowało super-punkt. 24 00:00:51,410 --> 00:00:53,240 Porozmawiamy o mapowanie ASCII. 25 00:00:53,240 --> 00:00:56,180 Porozmawiamy o tablicach, funkcji, argumenty wiersza poleceń. 26 00:00:56,180 --> 00:01:00,210 I wreszcie, co faceci chyba wszystko naprawdę chcesz być tutaj, aby dowiedzieć się o, 27 00:01:00,210 --> 00:01:01,270 jest twoja pset2. 28 00:01:01,270 --> 00:01:04,209 Będziemy mieć jakieś fajne sztuczki i porad, jak to zrobić. 29 00:01:04,209 --> 00:01:07,910 30 00:01:07,910 --> 00:01:08,690 >> OK. 31 00:01:08,690 --> 00:01:11,450 Ponadto, po drugie, mamy wiele cukierki tutaj. 32 00:01:11,450 --> 00:01:13,583 Każdy, kto lubi słodycze, właśnie tutaj. 33 00:01:13,583 --> 00:01:14,430 Zdobędą. 34 00:01:14,430 --> 00:01:15,100 Mam kilka. 35 00:01:15,100 --> 00:01:16,390 Mamy mnóstwo w biurze. 36 00:01:16,390 --> 00:01:18,230 I naprawdę nie chcę jeść słodycze przez cały dzień. 37 00:01:18,230 --> 00:01:20,300 Powinniście zjeść wszystkie cukierki, bo przywiózł go tutaj dla was. 38 00:01:20,300 --> 00:01:20,990 Wystarczy jeść słodycze. 39 00:01:20,990 --> 00:01:24,080 Będzie cukierki każda sekcja. 40 00:01:24,080 --> 00:01:25,330 >> Więc po pierwsze, kim jestem? 41 00:01:25,330 --> 00:01:27,080 Nazywam się Andi Peng. 42 00:01:27,080 --> 00:01:30,270 Jestem głową TA z CS50 tutaj w Yale. 43 00:01:30,270 --> 00:01:32,540 I oprócz że ja również być: 44 00:01:32,540 --> 00:01:35,600 czy ktoś like-- swój bieg kolego, twoje ramię płakać się. 45 00:01:35,600 --> 00:01:39,140 Jeśli w nocy Due to Twój pset, w nie masz pojęcia, co się dzieje, 46 00:01:39,140 --> 00:01:40,080 hit me up. 47 00:01:40,080 --> 00:01:42,770 Będziemy litować razem, et cetera. 48 00:01:42,770 --> 00:01:46,100 Wystarczy wiedzieć, że jestem tutaj jako zasobów dla Ciebie, jako pierwszej linii 49 00:01:46,100 --> 00:01:51,830 w pomoc chłopaki dowiedzieć się, jak do rozwiązywania problemów w CS50 i poza nią. 50 00:01:51,830 --> 00:01:54,590 >> Mój e-mail jest andi.peng@yale.edu. 51 00:01:54,590 --> 00:01:58,390 Ja też wysłać osobę emaila z moim numerem telefonu w nim 52 00:01:58,390 --> 00:02:01,860 tak, że nie każdy na Internet może zobaczyć mój numer telefonu. 53 00:02:01,860 --> 00:02:03,640 Zapraszam do mnie zadzwonić w każdej chwili. 54 00:02:03,640 --> 00:02:07,510 Poważnie, mój telefon jest zwykle montowane na mojej dłoni. 55 00:02:07,510 --> 00:02:10,240 I może nie odpowiadać w ciągu kilku minut. 56 00:02:10,240 --> 00:02:11,984 I nie może odpowiedzieć w ciągu kilku godzin. 57 00:02:11,984 --> 00:02:14,400 Ale mogę ci zagwarantować, jeśli mi e-mail, jeśli mnie zadzwonić, 58 00:02:14,400 --> 00:02:17,404 mnie tekst, będę odpowiedzi w ciągu 24 godzin. 59 00:02:17,404 --> 00:02:19,820 Często będę odpowiadać przed , że ponieważ rozumiem 60 00:02:19,820 --> 00:02:23,900 że każdy ma jakieś problemy, i chcesz swoje odpowiedzi 61 00:02:23,900 --> 00:02:26,110 należy odpowiedzieć bardzo szybko. 62 00:02:26,110 --> 00:02:28,945 >> Jednakże, jeśli zadzwonisz mnie na 30 minut przed 63 00:02:28,945 --> 00:02:31,570 że kawałek, który jest spowodowany czwartek night-- być jak Andi, pomóż mi, 64 00:02:31,570 --> 00:02:35,380 Nie started-- może dam ci, że ramię w wypłakać. 65 00:02:35,380 --> 00:02:41,520 Ale może to być czas, aby pomyśleć o jak tego nie robić, że następnym razem. 66 00:02:41,520 --> 00:02:44,040 OK. 67 00:02:44,040 --> 00:02:44,944 Ups. 68 00:02:44,944 --> 00:02:45,850 Jak mogę wrócić? 69 00:02:45,850 --> 00:02:48,140 No to jedziemy. 70 00:02:48,140 --> 00:02:52,310 >> Więc w tym oczywiście, mamy ton wsparcia dla każdego. 71 00:02:52,310 --> 00:02:54,640 Oprócz prostu sekcje tutaj, co cię 72 00:02:54,640 --> 00:02:57,000 co tydzień się spędzić 90 wspaniałe minut ze mną, 73 00:02:57,000 --> 00:02:58,330 mamy także dyżury. 74 00:02:58,330 --> 00:03:01,021 Jak wielu z Was już byłem w godzinach pracy urzędu o pomoc? 75 00:03:01,021 --> 00:03:01,520 Wielki. 76 00:03:01,520 --> 00:03:05,700 To jest naprawdę dobry, aby zobaczyć, bo posiada ponad 45 pracowników i TAs urzędów 77 00:03:05,700 --> 00:03:11,780 przeszkoleni w tym oczywiście, że są tutaj za pomoc chłopaki ze swoimi psets. 78 00:03:11,780 --> 00:03:14,580 >> Poniedziałki są one przechowywane w TEAL W klasie 17 Hill House tutaj 79 00:03:14,580 --> 00:03:15,350 w Yale. 80 00:03:15,350 --> 00:03:17,349 Wtorki i czwartki, są one przechowywane w świetlicy. 81 00:03:17,349 --> 00:03:20,010 08:00 do 11:00 prawie codziennie. 82 00:03:20,010 --> 00:03:21,620 Chodź, chodź. 83 00:03:21,620 --> 00:03:24,030 Każdy problem, nie problem-- po prostu wejdź, 84 00:03:24,030 --> 00:03:26,650 a następnie pomożemy Ci się z tym. 85 00:03:26,650 --> 00:03:31,640 >> Po drugie, oprócz godzin biurowych i sekcje, mamy także szorty. 86 00:03:31,640 --> 00:03:35,930 Czy ktoś kiedykolwiek widział kilka z Szorty i solucje w wideo 87 00:03:35,930 --> 00:03:36,750 na stronie internetowej? 88 00:03:36,750 --> 00:03:37,250 OK. 89 00:03:37,250 --> 00:03:39,510 Więc oni są naprawdę pomocne. 90 00:03:39,510 --> 00:03:42,470 Nasz piękny produkcji Harvard zespół tam na tej szkole 91 00:03:42,470 --> 00:03:47,910 północy, mają nakręcony i wyprodukowany Te niesamowite filmy przeglądowych. 92 00:03:47,910 --> 00:03:52,290 >> Zabiorą Cię krok po kroku przez jak go o rozwiązanie problemu. 93 00:03:52,290 --> 00:03:56,340 Często, jeśli mylić temat prosty pomysł, to wyjątkowa koncepcja, 94 00:03:56,340 --> 00:03:59,780 spojrzeć, bo prawdopodobnie krótkie na nim gdzieś na naszej stronie internetowej. 95 00:03:59,780 --> 00:04:03,800 I to zazwyczaj wielki zasób szukać, gdy jesteś pierwszy 96 00:04:03,800 --> 00:04:06,510 stracił na jak radzić sobie problem. 97 00:04:06,510 --> 00:04:09,750 >> Po trzecie, mamy także study50 i reference50. 98 00:04:09,750 --> 00:04:15,650 Więc studiować 50 na strona jest po prostu link. 99 00:04:15,650 --> 00:04:21,500 Jest to, jak sądzę, study.cs50.net czy coś takiego. 100 00:04:21,500 --> 00:04:22,860 Wystarczy google. 101 00:04:22,860 --> 00:04:24,229 Mamy wiele slajdów przygotowanych. 102 00:04:24,229 --> 00:04:26,770 Mamy wiele szorty i walkthroughs-- rzeczy wszystkie skompilowane 103 00:04:26,770 --> 00:04:31,070 bardzo ładne i miłe dla wszystkich was przeglądać, zobaczyć koncepcje 104 00:04:31,070 --> 00:04:32,860 że jesteś zagubiony. 105 00:04:32,860 --> 00:04:35,920 To by chyba być pokryte tam w study50. 106 00:04:35,920 --> 00:04:37,640 >> Reference50-- podobna. 107 00:04:37,640 --> 00:04:41,510 Mamy wiele różnych notatek łatwo dostępne do Państwa dyspozycji. 108 00:04:41,510 --> 00:04:44,450 I wreszcie, mamy to, co jest nazywa CS50 Omów, 109 00:04:44,450 --> 00:04:48,082 forum, na którym, jeśli w nocy robisz swoje problemy, powiedzmy, 110 00:04:48,082 --> 00:04:49,880 masz pytanie. 111 00:04:49,880 --> 00:04:52,340 Zaloguj się, by CS50 Omów. 112 00:04:52,340 --> 00:04:53,190 Zamieść swoje pytanie. 113 00:04:53,190 --> 00:04:55,820 I wtedy jeden z hundreds-- być może, thousands-- rówieśników 114 00:04:55,820 --> 00:04:57,960 przy tej klasy Internecie będzie zalogować. 115 00:04:57,960 --> 00:05:01,182 A może ktoś może uzyskać Twoja odpowiedź, zanim puszki TA. 116 00:05:01,182 --> 00:05:03,390 Jest to w zasadzie tylko forum internetowe, które wszyscy możemy 117 00:05:03,390 --> 00:05:04,556 używać, aby omówić swoje problemy. 118 00:05:04,556 --> 00:05:06,483 To super. 119 00:05:06,483 --> 00:05:10,660 120 00:05:10,660 --> 00:05:11,550 >> OK. 121 00:05:11,550 --> 00:05:13,220 Więc problemem ustawia. 122 00:05:13,220 --> 00:05:17,840 Jesteśmy na temat prawa w grube problemu ustawić dwa. 123 00:05:17,840 --> 00:05:20,570 Już Wiele z nas ma zmagały poprzez problemu ustawić jedną. 124 00:05:20,570 --> 00:05:24,460 Wiemy już, że być może czeka na ostatniej nocy, aby zrobić swoje pset 125 00:05:24,460 --> 00:05:28,170 nie jest najmądrzejszą rzeczą do zrobienia w CS50. 126 00:05:28,170 --> 00:05:32,380 >> Porady i wskazówki głównie dla Sukces jest przeczytać całą specyfikację. 127 00:05:32,380 --> 00:05:36,270 Jak wielu z Was już przeczytać specyfikację dla pset 2? 128 00:05:36,270 --> 00:05:36,770 OK. 129 00:05:36,770 --> 00:05:39,840 To solidny kwotę. 130 00:05:39,840 --> 00:05:43,210 Wiem, że faceci mają zapewne uznane teraz specyfikacje są naprawdę długie. 131 00:05:43,210 --> 00:05:45,700 Są bardzo, bardzo długo. 132 00:05:45,700 --> 00:05:49,630 >> To naprawdę trudne, aby przeczytać każdy wiersz tego starannie słowo po słowie. 133 00:05:49,630 --> 00:05:52,780 Chcesz po prostu przejrzeć gdzie mówi ci coś zrobić. 134 00:05:52,780 --> 00:05:54,459 Gwarantuję wam, nie rób tego. 135 00:05:54,459 --> 00:05:56,750 Jeśli to zrobisz, jesteś prawdopodobnie będzie miss gdzieś 136 00:05:56,750 --> 00:05:58,458 gdzie mówi, jak rozpocząć problem 137 00:05:58,458 --> 00:06:01,140 i mówi, co nazwa Twój problem i mówi ci, 138 00:06:01,140 --> 00:06:03,720 jest to chyba najlepszy sposób zacząć robić problemu. 139 00:06:03,720 --> 00:06:05,050 A potem będziesz utracone. 140 00:06:05,050 --> 00:06:08,219 >> Podczas próby, aby przeczytać w połowie spec,, 141 00:06:08,219 --> 00:06:10,510 wiele ważne information-- się, że nie jesteś 142 00:06:10,510 --> 00:06:12,260 będzie w stanie naprawdę dostępem. 143 00:06:12,260 --> 00:06:13,219 Więc przeczytać całą specyfikację. 144 00:06:13,219 --> 00:06:15,468 Spróbuj przeczytać całą specyfikację przed przyjazdem do sekcji, 145 00:06:15,468 --> 00:06:17,360 bo wtedy, gdy mówić o pset, 146 00:06:17,360 --> 00:06:21,070 wszyscy możemy mieć pomysł z tego, co się dzieje. 147 00:06:21,070 --> 00:06:25,169 >> Po drugie, jest to koncepcja że będę chciał odwołać 148 00:06:25,169 --> 00:06:26,710 dużo przez cały semestr kursu. 149 00:06:26,710 --> 00:06:30,070 Ale zasadniczo, z nami spotkać w połowie drogi, prawda? 150 00:06:30,070 --> 00:06:33,970 Ja, jako TA i Jason jako oczywiście Menedżer i Scaz jako profesor 151 00:06:33,970 --> 00:06:37,120 i David jako profesor i wszystkie inne piękne TAs w tym kursie, 152 00:06:37,120 --> 00:06:39,830 pomocnicy w tym course-- zrobimy co w naszej mocy 153 00:06:39,830 --> 00:06:42,965 aby upewnić się, że są ustawione się do osiągnięcia sukcesu w tym kursie. 154 00:06:42,965 --> 00:06:43,840 Będziemy trzymać sekcji. 155 00:06:43,840 --> 00:06:44,870 Będziemy trzymać godziny pracy. 156 00:06:44,870 --> 00:06:47,087 Odpowiemy na telefon wzywa odpowiedzieć na wiadomości e-mail, 157 00:06:47,087 --> 00:06:49,670 zrobić wszystko, aby się, że Twoje pytania. 158 00:06:49,670 --> 00:06:51,460 >> Jednak nam pomóc też. 159 00:06:51,460 --> 00:06:52,450 Spotkaj się z nami w połowie drogi. 160 00:06:52,450 --> 00:06:56,040 Jeśli przyjeżdża się do godzin pracy biura Nie udała się do sekcji, nie 161 00:06:56,040 --> 00:07:02,060 widząc na wykłady, nie mając pomysł, co się dzieje, jest tak, pomóż mi. 162 00:07:02,060 --> 00:07:04,350 Mam zamiar być jak, dobrze, przepraszam. 163 00:07:04,350 --> 00:07:06,410 To może być czas pożyczać że się płakać na ramieniu, 164 00:07:06,410 --> 00:07:08,959 bo nie jestem pewien, co można zrobić, aby pomóc 165 00:07:08,959 --> 00:07:12,000 jeśli nie spróbować co najmniej pomoc się trochę na początku. 166 00:07:12,000 --> 00:07:12,910 Spotkaj się z nami w połowie drogi. 167 00:07:12,910 --> 00:07:15,020 Wiesz, proszę przyjść przygotowany do odpowiedzi i uzyskać 168 00:07:15,020 --> 00:07:16,353 gotowa zaangażować się w materiale. 169 00:07:16,353 --> 00:07:19,342 To sprawia, że ​​rzeczy tak dużo łatwiejsze dla wszystkich zaangażowanych. 170 00:07:19,342 --> 00:07:22,970 Tak, to dość dużo. 171 00:07:22,970 --> 00:07:23,720 >> Klasa. 172 00:07:23,720 --> 00:07:29,250 Więc na programie nauczania, to całkiem szczegółowe dotyczące Jak klasę. 173 00:07:29,250 --> 00:07:32,440 Ale zasadniczo, podział w tym jest 50% swojej klasie 174 00:07:32,440 --> 00:07:34,530 będą psets, które jest piękny, bo to 175 00:07:34,530 --> 00:07:37,400 gdzie jesteś wydatków zdecydowana Większość swojego czasu kurs na. 176 00:07:37,400 --> 00:07:39,854 Quizy 40%, a swoje Ostateczny projekt będzie 10%. 177 00:07:39,854 --> 00:07:42,520 Będą dwa konkursy w całej przebieg semestru. 178 00:07:42,520 --> 00:07:47,050 Myślę, że czas i data są również wymienione w programie nauczania. 179 00:07:47,050 --> 00:07:49,210 >> Sposób, w jaki będziemy być klasyfikacji swoich psets 180 00:07:49,210 --> 00:07:53,930 jest to, że mamy w zasadzie cztery wartości, które możemy przypisać do każdej klasy. 181 00:07:53,930 --> 00:07:57,250 Mamy wartości zakresu, poprawności, design i styl. 182 00:07:57,250 --> 00:08:01,530 Tak więc, jak widać, jest to rodzaj naszego wzór na obliczenie psets. 183 00:08:01,530 --> 00:08:03,640 Trzy dajemy najbardziej wagi do poprawności, 184 00:08:03,640 --> 00:08:06,140 bo oczywiście trenera Należy badania przypadków 185 00:08:06,140 --> 00:08:08,480 że chcemy, aby przetestować. 186 00:08:08,480 --> 00:08:11,000 >> Chłopaki mają check50 do Państwa dyspozycji. 187 00:08:11,000 --> 00:08:13,730 Jest to bardzo przydatna funkcja że chłopaki mogą wszystko 188 00:08:13,730 --> 00:08:17,560 przesłać kod do naszych serwerów, gdzie sprawdzimy to za Ciebie. 189 00:08:17,560 --> 00:08:20,800 A widzieliście te frowny twarze, buźki. 190 00:08:20,800 --> 00:08:22,119 Oni są naprawdę pomocne. 191 00:08:22,119 --> 00:08:23,910 Proszę nie być Student, który lubi prób 192 00:08:23,910 --> 00:08:26,230 hardcode we wszystkich odpowiedzi na nie. 193 00:08:26,230 --> 00:08:30,050 Ja na pewno widział pset gdzie ktoś widział wszystkie wartości check50 194 00:08:30,050 --> 00:08:33,429 i po prostu ciężko kodowane in-- jeśli ta liczba, wydrukować ten numer. 195 00:08:33,429 --> 00:08:35,080 Jeśli ten numer, wydrukować tego numeru. 196 00:08:35,080 --> 00:08:36,090 Nie rób tego. 197 00:08:36,090 --> 00:08:39,360 >> Nawet jeśli technicznie check50 jest prawidłowe, 198 00:08:39,360 --> 00:08:41,809 Twój sposób rozwiązania Problemem nie jest poprawne. 199 00:08:41,809 --> 00:08:45,770 Więc po prostu użyć check50 oszczędnie. 200 00:08:45,770 --> 00:08:48,497 Ale również upewnić się, że zrozumieć, jak to działa, 201 00:08:48,497 --> 00:08:50,580 program funkcjonuje Oprócz check50, 202 00:08:50,580 --> 00:08:53,120 ponieważ nie możemy przetestować każdy możliwe przypadek check50. 203 00:08:53,120 --> 00:08:55,440 Będziemy testować niektóre z nich. 204 00:08:55,440 --> 00:09:00,390 >> Projekt jest w istocie, jak dobrze zaprojektowane jest kod? 205 00:09:00,390 --> 00:09:04,150 Jeśli jesteś kopiowaniem wklejanie wielu linii kodu wiele, wiele razy. 206 00:09:04,150 --> 00:09:06,960 Może nie mają dość najlepszy projekt w kodzie. 207 00:09:06,960 --> 00:09:09,470 Może nadszedł czas, aby dodać tę pętlę. 208 00:09:09,470 --> 00:09:12,090 Zasadniczo, tutaj to jest po prostu wszystko o próbuje zrobić swój kod, 209 00:09:12,090 --> 00:09:17,010 próbuje pisać kod tak skutecznie, jak to możliwe, że program działa 210 00:09:17,010 --> 00:09:19,630 jak najszybciej. 211 00:09:19,630 --> 00:09:20,996 >> Wreszcie, mamy styl. 212 00:09:20,996 --> 00:09:24,360 Więc styl jest swego rodzaju arbitralne, subiektywne określenie. 213 00:09:24,360 --> 00:09:27,470 Wiem, że oficjalnie ma styl 50 Podręcznik dla CS50, 214 00:09:27,470 --> 00:09:30,050 gdzie mówi ci, oh, Należy mieć tu miejsca. 215 00:09:30,050 --> 00:09:32,220 Powinieneś rodzaj formatu Twój kod w ten sposób. 216 00:09:32,220 --> 00:09:34,070 Należy wymienić rzeczy w ten sposób. 217 00:09:34,070 --> 00:09:38,180 >> I naprawdę nie obchodzi, per se, jak wybrać do stylu kodu, 218 00:09:38,180 --> 00:09:39,840 tylko tak długo, jak pobyt spójne. 219 00:09:39,840 --> 00:09:43,732 Na przykład, jeśli chcesz opuścić swoje miejsce po czterech 220 00:09:43,732 --> 00:09:45,690 przed czterech pętli, po prostu to zrobić za każdym razem. 221 00:09:45,690 --> 00:09:46,523 Nie rodzaju zrobić. 222 00:09:46,523 --> 00:09:47,730 Nie rób tego innym razem. 223 00:09:47,730 --> 00:09:51,046 Jeśli chcesz zachować kręcone szelki miejsca w pewien sposób, 224 00:09:51,046 --> 00:09:52,170 tak zawsze robią to w ten sposób. 225 00:09:52,170 --> 00:09:54,628 Nie rodzaju zrobić to gdzieś tu i gdzieś tam nie ma. 226 00:09:54,628 --> 00:09:57,010 Gdy mamy do klasyfikacji, to naprawdę trudne 227 00:09:57,010 --> 00:09:59,420 jeśli nie mam pojęcia, jak jesteś formatowanie kodu, 228 00:09:59,420 --> 00:10:02,064 rzeczy są głupi i nie na miejscu. 229 00:10:02,064 --> 00:10:04,980 Jeśli tylko zachować spójny, to znacznie łatwiejsze dla mnie, tym większa 230 00:10:04,980 --> 00:10:06,310 aby być w stanie odczytać kodu. 231 00:10:06,310 --> 00:10:09,393 Jest to o wiele łatwiejsze dla Ciebie jako student aby być w stanie spojrzeć przez kod 232 00:10:09,393 --> 00:10:11,720 i zobaczyć, co się dzieje z to slash, dlaczego nie ma problemów. 233 00:10:11,720 --> 00:10:15,740 Styl jest jednym z najłatwiejszych rzeczy Chłopaki można zrobić, aby uzyskać pełne wyniki. 234 00:10:15,740 --> 00:10:18,770 Zasadniczo, jeśli tylko obchodzi, jeśli płacisz pięć minut uwagi 235 00:10:18,770 --> 00:10:22,760 do kod każdego tygodnia, należy być uzyskanie pełnych punktów za styl. 236 00:10:22,760 --> 00:10:26,020 >> Wreszcie, mamy to, co się nazywa mnożnik zakresu. 237 00:10:26,020 --> 00:10:28,890 Scope-- Wiem, że to duża tekstu, szczególnie w tej klasie. 238 00:10:28,890 --> 00:10:31,030 Ale zakres, to wszystko środki jest to, że próbujesz 239 00:10:31,030 --> 00:10:33,670 z psets do najlepiej jak potrafisz. 240 00:10:33,670 --> 00:10:37,180 Jeśli z kolei w trzech z swoich czterech problemów 241 00:10:37,180 --> 00:10:39,460 i nawet nie próba ostatni, prawdopodobnie jesteś 242 00:10:39,460 --> 00:10:41,630 stracić kilka punktów na zakres. 243 00:10:41,630 --> 00:10:44,560 >> Nawet jeśli po prostu zacząć ten problem, jak najlepiej, aby przejść przez to. 244 00:10:44,560 --> 00:10:47,691 Nawet jeśli to nie działa, włącz je w, dlatego, że pokazuje, i pokazuje, 245 00:10:47,691 --> 00:10:50,190 nam, że starasz, że próbowano problemu ustawić 246 00:10:50,190 --> 00:10:51,430 najlepiej, jak potrafisz. 247 00:10:51,430 --> 00:10:53,800 I wtedy możemy dać ci pełne punkty dla zakresu. 248 00:10:53,800 --> 00:10:58,715 >> Zakres jest również bardzo ważne, bo gdy my mówić o najniższym wynikiem pset spadku. 249 00:10:58,715 --> 00:11:02,010 Tak więc w ciągu z Semestr, macie dziewięć psets. 250 00:11:02,010 --> 00:11:05,340 A my faktycznie spada najniższy wynik spośród tych dziewięciu, 251 00:11:05,340 --> 00:11:07,670 ale tylko wtedy, gdy masz pełne punkty zakresie. 252 00:11:07,670 --> 00:11:11,120 >> Więc jeśli skręcić w niepełnej pset, niestety, nie możemy spaść, że jeden, 253 00:11:11,120 --> 00:11:13,540 ponieważ swoim zakresem punkty nie zostały zakończone. 254 00:11:13,540 --> 00:11:16,570 Więc nawet jeśli masz okropny tydzień dokąd się wybierasz, umierania i jesteś chory 255 00:11:16,570 --> 00:11:20,040 lub pies umiera, twój kot umiera, i jesteś przeciążony w odrabianiu prac domowych, 256 00:11:20,040 --> 00:11:21,074 po prostu próba pset. 257 00:11:21,074 --> 00:11:22,490 Zrób to najlepiej jak potrafisz. 258 00:11:22,490 --> 00:11:23,840 Jeśli to nie działa, to nie ma znaczenia. 259 00:11:23,840 --> 00:11:24,506 Wystarczy włączyć go. 260 00:11:24,506 --> 00:11:26,590 Przynajmniej możemy dać Ci punkty za wysiłek. 261 00:11:26,590 --> 00:11:28,510 >> A dla wysiłku w tej klasie. 262 00:11:28,510 --> 00:11:30,170 Co najmniej najniższym spadku ocenę wysiłku. 263 00:11:30,170 --> 00:11:32,354 O tak. 264 00:11:32,354 --> 00:11:33,270 To dość dużo. 265 00:11:33,270 --> 00:11:36,521 Czy ktoś ma pytania, tak Jak daleko od stopnia w klasie? 266 00:11:36,521 --> 00:11:37,187 Lub któregokolwiek z nich? 267 00:11:37,187 --> 00:11:41,220 Każdy z nich tak far-- sekcje, godziny pracy? 268 00:11:41,220 --> 00:11:41,720 Chłodny. 269 00:11:41,720 --> 00:11:46,720 270 00:11:46,720 --> 00:11:47,800 OK. 271 00:11:47,800 --> 00:11:51,260 >> Więc to jest to temat, który nie naprawdę lubi rozmawiać. 272 00:11:51,260 --> 00:11:53,084 Naprawdę nie lubię o tym mówić. 273 00:11:53,084 --> 00:11:55,250 Wy naprawdę nie chcę usłyszeć mi o tym mówić. 274 00:11:55,250 --> 00:11:57,690 Ale niestety, wszyscy trzeba o tym mówić. 275 00:11:57,690 --> 00:12:00,110 David spędził 20 minut wykład o tym mówić. 276 00:12:00,110 --> 00:12:02,580 I to jest przedmiotem uczciwości akademickiej. 277 00:12:02,580 --> 00:12:08,110 >> Więc my wszyscy tutaj, prawdopodobnie napisał kiedyś esej w naszej karierze Yale. 278 00:12:08,110 --> 00:12:11,800 Mamy prawdopodobnie dostał rozmowę, gdzie mamy kazano nie popełnić plagiat nasz esej, 279 00:12:11,800 --> 00:12:13,940 dlatego, że praca nie jest nasza. 280 00:12:13,940 --> 00:12:18,109 W informatyce, mamy tego samego rodzaju koncepcji. 281 00:12:18,109 --> 00:12:20,150 Wszystkie prace, które można złożyć, cały kod, który piszesz 282 00:12:20,150 --> 00:12:21,900 powinien być kod, który napisałeś. 283 00:12:21,900 --> 00:12:24,280 Nie powinien być kod, który już skopiowane z innego miejsca. 284 00:12:24,280 --> 00:12:26,777 Nie powinien być kod, który masz google i koleś w 285 00:12:26,777 --> 00:12:28,360 i naprawdę nie wiem, czy to działa. 286 00:12:28,360 --> 00:12:32,440 Jesteś rodzaju mają poczucie co robi, ale nie do końca. 287 00:12:32,440 --> 00:12:36,562 W przypadku wątpliwości, w zasadzie, to jest po prostu rozsądne. 288 00:12:36,562 --> 00:12:38,520 Na naszym programie nauczania, mamy cała lista rzeczy 289 00:12:38,520 --> 00:12:40,560 widzimy, jak rozsądne w porównaniu nie rozsądne. 290 00:12:40,560 --> 00:12:43,820 >> Na przykład, racjonalne to ty i twój przyjaciel 291 00:12:43,820 --> 00:12:47,360 Omawiając jaki jest najlepszy sposób, aby przejść o logiczne rozwiązanie problemu. 292 00:12:47,360 --> 00:12:48,910 To dość rozsądne. 293 00:12:48,910 --> 00:12:53,244 Co nie byłoby rozsądne jest, jeśli dostaliście razem, wpisany ten sam kod, 294 00:12:53,244 --> 00:12:54,410 i zwrócił się w tym samym kodzie. 295 00:12:54,410 --> 00:12:56,302 To nie jest rozsądne. 296 00:12:56,302 --> 00:12:57,510 Samo, rodzaj eseju. 297 00:12:57,510 --> 00:12:59,290 Jeśli chcesz, aby omówić z przyjacielem, hej, 298 00:12:59,290 --> 00:13:00,220 to jest to, co chcę pisać. 299 00:13:00,220 --> 00:13:02,500 Oto kroki, które chcę się o tym pisać, to świetnie. 300 00:13:02,500 --> 00:13:03,208 Wspaniale. 301 00:13:03,208 --> 00:13:04,790 Proszę współpracują ze sobą. 302 00:13:04,790 --> 00:13:06,540 Jeśli faceci zaczynają pisząc to samo, 303 00:13:06,540 --> 00:13:10,020 z kolei w tym samym eseju, to mniej OK. 304 00:13:10,020 --> 00:13:13,200 Tak więc w razie wątpliwości, po prostu nie rób tego. 305 00:13:13,200 --> 00:13:16,940 >> Tutaj, w CS50, mamy skrypty że prowadzony do automatyzacji przetestować 306 00:13:16,940 --> 00:13:21,740 nie tylko poprawność kodu, ale także niepowtarzalność kodu. 307 00:13:21,740 --> 00:13:25,920 Więc proszę nie stawia nas w pozycji z konieczności odnoszą sprawę do ExComm. 308 00:13:25,920 --> 00:13:31,110 Proszę, po prostu dla wszystkich, po prostu uczynić to wspaniałe doświadczenie. 309 00:13:31,110 --> 00:13:33,600 Każdy uczy się lepiej, wszyscy są szczęśliwsi, 310 00:13:33,600 --> 00:13:37,926 i są ustawione do skorzystać z kursu. 311 00:13:37,926 --> 00:13:39,800 Coś, co jest bardzo Wyjątkowość tej klasie 312 00:13:39,800 --> 00:13:42,660 że myślę, że każdy powinien naprawdę zwrócić uwagę na to, że mamy 313 00:13:42,660 --> 00:13:44,930 co nazywa żal Klauzula w naszym programie nauczania. 314 00:13:44,930 --> 00:13:50,010 Więc zasadniczo, w ciągu 72 godzin, jeśli uważasz, że zrobiłeś coś 315 00:13:50,010 --> 00:13:53,240 nie jesteś pewien, został stosowne, proszę przyjść do nas. 316 00:13:53,240 --> 00:13:57,220 Obiecujemy, że w ciągu 72 godzin będziemy sobie sprawę sami 317 00:13:57,220 --> 00:13:59,820 bez odnoszenia się do poziomu wyższego organ administracji. 318 00:13:59,820 --> 00:14:03,100 >> Więc jeśli przychodzą do mnie i mówią: Andi, hej, naprawdę mi przykro, 319 00:14:03,100 --> 00:14:07,620 ale myślę, że istnieje kilka linii w moim Kod ostatniej nocy, że trochę google, 320 00:14:07,620 --> 00:14:10,120 Wysiedliśmy Stack Przepełnienie, kopiować i wklejać, 321 00:14:10,120 --> 00:14:13,680 i jestem bardzo, bardzo przykro o tym, daj mi znać. 322 00:14:13,680 --> 00:14:16,900 Proszę, nie tylko niech jątrzyć i po prostu nadzieję, że złapię go. 323 00:14:16,900 --> 00:14:17,784 Będziemy go złapać. 324 00:14:17,784 --> 00:14:18,450 Wystarczy przyjść do mnie. 325 00:14:18,450 --> 00:14:20,520 Daj mi znać, w ciągu 72 godzin. 326 00:14:20,520 --> 00:14:22,240 Dowiemy się rozwiązanie. 327 00:14:22,240 --> 00:14:26,679 I obiecujemy, że nie będziemy odnosić się do Władze uczelni zasadniczo. 328 00:14:26,679 --> 00:14:29,220 Więc jest to w najlepszym interesie, po prostu być uczciwym wobec siebie 329 00:14:29,220 --> 00:14:31,720 zaangażowane w czasie. 330 00:14:31,720 --> 00:14:34,630 >> OK. 331 00:14:34,630 --> 00:14:35,240 OK. 332 00:14:35,240 --> 00:14:37,800 Więc teraz, szybko, zanim I przejść, czy ktoś 333 00:14:37,800 --> 00:14:42,670 pytań dotyczących logistyki od tego, jak kursy mamy zamiar uruchomić, 334 00:14:42,670 --> 00:14:45,982 jak sekcje będą do pracy, z tego? 335 00:14:45,982 --> 00:14:46,711 OK. 336 00:14:46,711 --> 00:14:47,210 Tak. 337 00:14:47,210 --> 00:14:48,126 >> PUBLICZNOŚCI: [niesłyszalne]? 338 00:14:48,126 --> 00:14:50,414 339 00:14:50,414 --> 00:14:51,080 ANDI PENG: Tak. 340 00:14:51,080 --> 00:14:54,850 Więc quizzes--, jak wielu z was jest w sekcji poniedziałek / środa? 341 00:14:54,850 --> 00:14:56,700 Jak wielu z was jest w we wtorek / czwartek? 342 00:14:56,700 --> 00:14:58,550 OK, więc jest to stałe podzielone tutaj. 343 00:14:58,550 --> 00:15:00,900 Tak więc sposób, w jaki prowadzimy że w Yale jest to, że 344 00:15:00,900 --> 00:15:04,040 będziemy mieć dwa oddzielne quizzes-- jeden dla każdego section--, że 345 00:15:04,040 --> 00:15:06,160 będą podejmowane podczas zajęć. 346 00:15:06,160 --> 00:15:09,310 Myślę, że to październik, koniec października, coś takiego, jak jeden tydzień 347 00:15:09,310 --> 00:15:10,794 quizu. 348 00:15:10,794 --> 00:15:11,960 Tak, tak, po prostu przyjść na zajęcia. 349 00:15:11,960 --> 00:15:13,920 Na tej poniedziałek lub środę, weźmiesz udział w quizie. 350 00:15:13,920 --> 00:15:16,336 Na tej wtorek lub czwartek, musisz podjąć inną quiz. 351 00:15:16,336 --> 00:15:18,570 Ale ten sam materiał będzie pokryty. 352 00:15:18,570 --> 00:15:19,160 Tak. 353 00:15:19,160 --> 00:15:20,660 Dobre pytanie. 354 00:15:20,660 --> 00:15:21,160 Tak. 355 00:15:21,160 --> 00:15:23,260 >> PUBLICZNOŚCI: Dokąd przejść, by sprawdzić nasze oceny? 356 00:15:23,260 --> 00:15:23,926 >> ANDI PENG: Tak. 357 00:15:23,926 --> 00:15:28,420 Więc będzie Wysyłając e-mail, co w tygodniu 358 00:15:28,420 --> 00:15:31,460 kiedy quizy są graded-- lub, Przepraszam, jeśli psets są klasyfikowane. 359 00:15:31,460 --> 00:15:34,120 Psets są zwykle okazało przed południem lub w piątek. 360 00:15:34,120 --> 00:15:37,540 Więc obiecuję, że będę postarać się je z powrotem do Ciebie 361 00:15:37,540 --> 00:15:40,000 od południa następnego piątku. 362 00:15:40,000 --> 00:15:44,950 >> Ilekroć Grade A pset, poślę z powiadomienia na książki gatunku 363 00:15:44,950 --> 00:15:47,070 które mówi, swój wynik można przeglądać online. 364 00:15:47,070 --> 00:15:52,022 Tak dobrze w tym tygodniu, po I zakończenie klasyfikacji zeszłotygodniowe psets, 365 00:15:52,022 --> 00:15:54,230 chłopaki dostaną e-mail zawiadomienie z informacją, 366 00:15:54,230 --> 00:15:55,870 hej, to jest, gdy cię przejść do przeglądania klas. 367 00:15:55,870 --> 00:15:57,680 I można zobaczyć, co podział swoich klasach. 368 00:15:57,680 --> 00:15:58,555 Możesz zobaczyć komentarze. 369 00:15:58,555 --> 00:16:00,360 Och, szybkie rzeczą również. 370 00:16:00,360 --> 00:16:03,060 Sekcja komentarz w wielkim Książka jest gdzie będę prawdopodobnie 371 00:16:03,060 --> 00:16:05,300 spędzają większość mojego czasu klasyfikacji. 372 00:16:05,300 --> 00:16:07,094 Więc jedna rzecz, która jest bardzo ważne, kiedy 373 00:16:07,094 --> 00:16:09,010 Ci faceci są sprawdzające twoje stopnie na swoim psets 374 00:16:09,010 --> 00:16:11,400 jest nie tylko patrząc w wyniku fizycznego 375 00:16:11,400 --> 00:16:14,630 ale także poświęcenie czasu na naprawdę przeczytać moje komentarze. 376 00:16:14,630 --> 00:16:17,820 >> Często, który daje informacje zwrotne o tym, jak masz rozwiązanie problemu. 377 00:16:17,820 --> 00:16:20,480 Jeśli trzeba zrobić coś nieco lepiej, 378 00:16:20,480 --> 00:16:24,080 konstruktywna krytyka jest zwykle najlepiej podane w tych komentarzach. 379 00:16:24,080 --> 00:16:26,950 Więc proszę, proszę, będę spędzić czas pisania komentarzy. 380 00:16:26,950 --> 00:16:30,440 Proszę, ja naprawdę wdzięczny jeśli faceci będą czytać te komentarze. 381 00:16:30,440 --> 00:16:31,170 OK. 382 00:16:31,170 --> 00:16:34,150 Chłodny. 383 00:16:34,150 --> 00:16:34,680 >> W porządku. 384 00:16:34,680 --> 00:16:40,680 Tak więc mamy zamiar zacząć mówić i po prostu przeglądając szybko 385 00:16:40,680 --> 00:16:45,040 część materiału z Tydzień zera tak jesteśmy 386 00:16:45,040 --> 00:16:48,760 po prawej stronie dla począwszy tego tygodnia problemów. 387 00:16:48,760 --> 00:16:52,600 Więc pętli while jest jednym z trzech rodzajów pętli 388 00:16:52,600 --> 00:16:54,510 omówiono wcześniej w tej klasie. 389 00:16:54,510 --> 00:16:57,060 >> Pętla natomiast zasadniczo jest napisane w składni 390 00:16:57,060 --> 00:17:00,666 W przypadku, gdy podczas pewnego warunku to zrobić wielokrotnie, prawda? 391 00:17:00,666 --> 00:17:02,040 Pomyśl o tym w tej grafice tutaj. 392 00:17:02,040 --> 00:17:04,780 Masz zamiar rozpocząć się pewien punkt w kodzie. 393 00:17:04,780 --> 00:17:09,030 Masz zamiar wprowadzić warunek pętli if-- Nie know-- x jest mniejsza niż jeden. 394 00:17:09,030 --> 00:17:11,677 >> Jeśli to prawda, masz zamiar wykonać ciała pętli. 395 00:17:11,677 --> 00:17:14,010 I masz zamiar to robić to ponownie, ponownie, ponownie 396 00:17:14,010 --> 00:17:17,900 nad i over--, dlatego, że jest to loop-- aż warunek staje się 397 00:17:17,900 --> 00:17:19,079 fałszywe. 398 00:17:19,079 --> 00:17:22,140 Tak więc w ten sposób pętli jest prostsze sposoby 399 00:17:22,140 --> 00:17:25,619 napisać jakikolwiek warunkiem, że musi powtarzać w kółko. 400 00:17:25,619 --> 00:17:28,109 Wystarczy być ostrożnym, gdy piszesz jakiejkolwiek pętli 401 00:17:28,109 --> 00:17:32,140 że masz warunek wyjścia, jak oraz jako aktualizacja cokolwiek to 402 00:17:32,140 --> 00:17:36,714 jest tak, że pętla nie tylko uruchomić w kółko w nieskończoność. 403 00:17:36,714 --> 00:17:38,630 W każdym razie, będziesz chce, aby upewnić 404 00:17:38,630 --> 00:17:42,670 że jesteś zmieniając pewne aspekty kod lub na końcu pętli 405 00:17:42,670 --> 00:17:46,680 by upewnić się, że masz sposób od postępu w kierunku stanu 406 00:17:46,680 --> 00:17:48,400 że chcesz się spotkać do końca. 407 00:17:48,400 --> 00:17:50,239 Czy to ma sens dla każdego? 408 00:17:50,239 --> 00:17:52,530 Po prostu nie chcę być wciągnąć w spiralę gdzie 409 00:17:52,530 --> 00:17:55,710 idziemy dookoła i nie ma sposobu, aby przerwać pętlę. 410 00:17:55,710 --> 00:17:58,844 I każda pętla zasadniczo ma sposób to robić. 411 00:17:58,844 --> 00:17:59,344 OK. 412 00:17:59,344 --> 00:18:03,030 413 00:18:03,030 --> 00:18:06,060 >> Po drugie, wielu z was w Twoich psets Mario 414 00:18:06,060 --> 00:18:08,910 prawdopodobnie miał zatrudniać Ten rodzaj pętli. 415 00:18:08,910 --> 00:18:11,802 To się nazywa robić podczas pętli. 416 00:18:11,802 --> 00:18:14,510 Przede wszystkim, może ktoś mi powiedzieć, jaka jest różnica między zrobienia 417 00:18:14,510 --> 00:18:16,586 pętli while i pętli while jest? 418 00:18:16,586 --> 00:18:17,086 Tak. 419 00:18:17,086 --> 00:18:21,030 >> PUBLICZNOŚCI: The Do pętli while pracuje na pierwszym [niesłyszalne]. 420 00:18:21,030 --> 00:18:22,120 >> ANDI PENG: Tak, dokładnie. 421 00:18:22,120 --> 00:18:27,130 Więc zrób while zawsze robi cokolwiek jest wewnątrz do, wewnątrz nawiasów 422 00:18:27,130 --> 00:18:30,520 tam i robi tego warunku przed sprawdzeniem the-- przykro, 423 00:18:30,520 --> 00:18:32,940 robi tego kodu przed sprawdzanie warunku. 424 00:18:32,940 --> 00:18:37,200 A jest to szczególnie istotne dla nas tutaj, w tej klasie, bo większość czasu 425 00:18:37,200 --> 00:18:41,450 będziemy chcieli skłonić użytkownik z jakiegoś rodzaju wejścia. 426 00:18:41,450 --> 00:18:43,520 A następnie, w zależności od wejście dają nam, 427 00:18:43,520 --> 00:18:46,150 wtedy możemy ocenić, oh, nie musimy skłonić je ponownie? 428 00:18:46,150 --> 00:18:49,930 >> Tak więc w Mario, jeżeli użytkownik dała ci ujemna wysokości, na przykład, 429 00:18:49,930 --> 00:18:52,990 idziesz do pierwszego wiersza i robić, co jest w środku. 430 00:18:52,990 --> 00:18:54,820 Potem idziesz do sprawdzenia czasu. 431 00:18:54,820 --> 00:18:57,570 Wiesz, jest ujemna 1, jest to, że liczbę dodatnią? 432 00:18:57,570 --> 00:19:00,680 Jeśli tak nie jest, mam zamiar iść z powrotem i powtórzyć zrobić i powtórki 433 00:19:00,680 --> 00:19:03,950 i powtarzać i powtarzać, dopóki nie wreszcie daje liczbę, która Ci się podoba, 434 00:19:03,950 --> 00:19:07,002 że wszyscy możemy zatrudnić w naszym kodzie. 435 00:19:07,002 --> 00:19:09,210 Jest to dość ważne dla zasadniczo wprowadzania danych przez użytkownika. 436 00:19:09,210 --> 00:19:11,760 Mogę zagwarantować żadnej Czas w pset gdzie 437 00:19:11,760 --> 00:19:15,070 prosimy o wejście każdy rodzaj kodu, jesteśmy 438 00:19:15,070 --> 00:19:17,540 Prawdopodobnie będzie Ci przypadek testowy, w którym jesteśmy 439 00:19:17,540 --> 00:19:21,200 zamiar dać ci coś złego, że to zamiar spróbować złamać kod. 440 00:19:21,200 --> 00:19:25,044 >> Jeśli staramy się prosić o wejście całkowitą, może po prostu dać ciąg 441 00:19:25,044 --> 00:19:26,460 i zobaczyć, jak można sobie z tym poradzić. 442 00:19:26,460 --> 00:19:30,610 Jeśli poprosimy Cię zatrudnić wiek, możemy daje liczbę ujemną 443 00:19:30,610 --> 00:19:32,340 aby zobaczyć, jak można sobie z tym poradzić. 444 00:19:32,340 --> 00:19:37,260 Wystarczy upewnić się, chłopaki są badania dla przypadki, w których nie dostaniesz najlepszy 445 00:19:37,260 --> 00:19:38,590 wejście, powiedzmy. 446 00:19:38,590 --> 00:19:40,510 I zrób pętli while jest często najlepszym 447 00:19:40,510 --> 00:19:45,260 sposób zaprojektować swój kod tak że spełnia ten zakres. 448 00:19:45,260 --> 00:19:45,760 OK. 449 00:19:45,760 --> 00:19:48,930 450 00:19:48,930 --> 00:19:49,470 >> OK. 451 00:19:49,470 --> 00:19:53,270 Więc to jest chyba najbardziej Kompleks pętli z trzech 452 00:19:53,270 --> 00:19:54,990 że poznaliśmy już tak daleko. 453 00:19:54,990 --> 00:19:56,689 I wydaje się bardzo przerażające na początku. 454 00:19:56,689 --> 00:19:59,730 Ale gwarantuję Ci, po was się zawiesić, jak korzystać z pętli for, 455 00:19:59,730 --> 00:20:03,320 jest to jeden z najbardziej przydatnych rzeczy, najbardziej użytecznych narzędzi w arsenale 456 00:20:03,320 --> 00:20:05,300 do przesuwania do przodu w tej klasie. 457 00:20:05,300 --> 00:20:09,920 >> Tak na przykład, w zera, mieliśmy to bardzo prosty blok 458 00:20:09,920 --> 00:20:13,180 że po prostu powiedział powtórzyć pewne Określenie pewną liczbę razy. 459 00:20:13,180 --> 00:20:16,260 Przy okazji, SAJ-- to Scaz Andi Jason. 460 00:20:16,260 --> 00:20:18,740 My często podpisać nasze maile Saj. 461 00:20:18,740 --> 00:20:20,360 Jeśli mówimy Saj, nie należy mylić. 462 00:20:20,360 --> 00:20:22,630 To tylko my. 463 00:20:22,630 --> 00:20:28,600 >> Tak więc w Scratch, mogliśmy mieć blok, który powiedział, powtarzam kocham Saj! 464 00:20:28,600 --> 00:20:29,430 10 razy. 465 00:20:29,430 --> 00:20:30,130 Bardzo prosta. 466 00:20:30,130 --> 00:20:32,302 Logika, że ​​jest bardzo, bardzo proste, prawda? 467 00:20:32,302 --> 00:20:35,260 Chcę najpierw przejść przez pierwszy czas i zobaczyć, że po raz drugi 468 00:20:35,260 --> 00:20:38,510 i zobaczyć, że po raz trzeci, itd i tak dalej, aż dojdziesz do 10. 469 00:20:38,510 --> 00:20:41,960 >> A sposób, które reprezentujemy, że w Kod jest tylko poprzez proste dla pętli. 470 00:20:41,960 --> 00:20:45,440 Więc dla, masz zamiar zadeklarować zmienna tutaj, w tym przypadku, 471 00:20:45,440 --> 00:20:46,349 przy wew. 472 00:20:46,349 --> 00:20:47,390 Jedziemy do jej nazwiska. 473 00:20:47,390 --> 00:20:49,500 Mamy zamiar zainicjować go na 0. 474 00:20:49,500 --> 00:20:52,490 I edycja zatrzymanie jest Będzie i mniej niż 10. 475 00:20:52,490 --> 00:20:54,622 A aktualizacja będzie i ++. 476 00:20:54,622 --> 00:20:57,750 >> I w pętli, to będzie wykonać aż ostatecznie 477 00:20:57,750 --> 00:21:01,490 uderza koniec condition-- w którym przypadku, to będzie złamać pętli. 478 00:21:01,490 --> 00:21:04,600 Nie powinno być rzeczy, które Cię faceci mają wszelkiego rodzaju widział 479 00:21:04,600 --> 00:21:07,270 i miał do czynienia z problem ustawione. 480 00:21:07,270 --> 00:21:12,310 Czy ktoś ma jakieś pytania dotyczące tej chwili dla pętli? 481 00:21:12,310 --> 00:21:12,930 OK. 482 00:21:12,930 --> 00:21:13,430 Wielki. 483 00:21:13,430 --> 00:21:17,520 484 00:21:17,520 --> 00:21:18,620 >> OK. 485 00:21:18,620 --> 00:21:22,270 Więc dla tych z was, którzy mają przeczytać specyfikację pset na ten tydzień 486 00:21:22,270 --> 00:21:27,690 wiemy, że będziemy musieli zatrudnić coś, co nazywa ASCII i tabela ASCII. 487 00:21:27,690 --> 00:21:32,380 Dawid w wykładzie podszedł krótko w jaki sposób komputery essentially-- wszystko 488 00:21:32,380 --> 00:21:35,410 zakodowana jest w komputer, w binarny, w zer i jedynek. 489 00:21:35,410 --> 00:21:39,740 A sposób, że komputery są w stanie do przechowywania różnych wartości oprócz 490 00:21:39,740 --> 00:21:44,360 z zer i jedynek są poprzez określanie te numery do reprezentowania innych cyfry 491 00:21:44,360 --> 00:21:47,220 lub zasadniczo inne znaki. 492 00:21:47,220 --> 00:21:49,810 >> Tak więc w tym przypadku, ASCII table-- wszystko robi 493 00:21:49,810 --> 00:21:53,600 jest mapa znaków lub znaków, do liczb. 494 00:21:53,600 --> 00:21:57,385 Więc pliku kodu źródłowego w Twój computer-- widzi, 495 00:21:57,385 --> 00:22:00,010 hej, kilka zer i jedynek, zer i jedynek, zer i jedynek. 496 00:22:00,010 --> 00:22:02,350 To, co zapisane w Rzeczywista pamięć komputera. 497 00:22:02,350 --> 00:22:04,750 >> Ale kiedy my, ludzie chcą komunikować się z komputerem 498 00:22:04,750 --> 00:22:08,249 want-- to znaczy, na przykład, jeśli chcę z wielkiej litery A, 499 00:22:08,249 --> 00:22:10,540 Mam zamiar potrzebny jakiś sposób opowiadania komputer, oh, 500 00:22:10,540 --> 00:22:16,300 po wpisaniu wielkiej litery A, to znaczy reprezentacja w formacie binarnym. 501 00:22:16,300 --> 00:22:22,260 >> I tak, jak nam się to, że jest rzucił dowolna rzecz zwana tablicę ASCII, 502 00:22:22,260 --> 00:22:25,020 gdzie my, jako ludzie, jako programiści, jakiś czas temu, 503 00:22:25,020 --> 00:22:28,660 arbitralnie postanowił, że my zamierzali przypisać te liczby 504 00:22:28,660 --> 00:22:30,960 wartości do tych znaków. 505 00:22:30,960 --> 00:22:32,720 >> Więc chłopaki mogą google to on-line. 506 00:22:32,720 --> 00:22:37,120 Myślę, że link do niego w swoich pset-- tabeli ASCII tylko mapa, ASCII 507 00:22:37,120 --> 00:22:37,720 stół. 508 00:22:37,720 --> 00:22:40,722 To po prostu przekłada binarny numery na znaki. 509 00:22:40,722 --> 00:22:42,930 I to będzie bardzo przydatne do zestawu problemów 510 00:22:42,930 --> 00:22:45,470 gdy chcesz obliczyć coś lub jeśli 511 00:22:45,470 --> 00:22:47,880 Aby wyświetlić pewne znaków lub liczbami całkowitymi 512 00:22:47,880 --> 00:22:50,327 lub manipulować niektórych znaków. 513 00:22:50,327 --> 00:22:52,160 To będzie bardzo ważne, aby wszystkie 514 00:22:52,160 --> 00:22:55,140 wiedzieć, jak poruszać tablicę ASCII. 515 00:22:55,140 --> 00:23:01,260 >> Tak więc, na przykład, z wielkimi A jest reprezentowany przez liczbę 65. 516 00:23:01,260 --> 00:23:04,207 A małe reprezentowany przez 97. 517 00:23:04,207 --> 00:23:07,040 Dlatego tak ważne jest, aby wiedzieć, że Różnica pomiędzy tymi dwoma wartościami 518 00:23:07,040 --> 00:23:08,320 jest 32. 519 00:23:08,320 --> 00:23:13,210 Często, jeśli chcesz przekonwertować z jednego do drugiego, z tą różnicą, 32. 520 00:23:13,210 --> 00:23:15,710 I nie martw się, jeśli jesteś miły mylić w tej sprawie na początku. 521 00:23:15,710 --> 00:23:20,230 Pójdziemy nad tym, jak to będzie Zatrudniamy to w rzeczywistym kodzie. 522 00:23:20,230 --> 00:23:24,700 523 00:23:24,700 --> 00:23:26,380 >> OK. 524 00:23:26,380 --> 00:23:30,770 Więc dla tych z laptopami na zewnątrz, nie krępuj się podciągnąć tablicę ASCII, 525 00:23:30,770 --> 00:23:36,030 bo to będzie prawdopodobnie wymagają wy odwołać 526 00:23:36,030 --> 00:23:38,100 jakie znaki są. 527 00:23:38,100 --> 00:23:38,640 OK. 528 00:23:38,640 --> 00:23:42,840 >> Więc wiedząc, że pewne znaków map do określonych numerów, 529 00:23:42,840 --> 00:23:47,240 gdybym miał działać tylko pierwszy linia, która code-- printf a, 530 00:23:47,240 --> 00:23:50,900 małe litery na minus wielkie litery A. Czy ktoś 531 00:23:50,900 --> 00:23:55,880 mają odgadnąć, co będzie drukowanie teraz z ekranu? 532 00:23:55,880 --> 00:23:58,190 >> Tak więc przede wszystkim, co czyni w małe reprezentują? 533 00:23:58,190 --> 00:24:00,990 Jaki numer jest, że kodowane w tabeli ASCII. 534 00:24:00,990 --> 00:24:01,490 Przepraszam? 535 00:24:01,490 --> 00:24:02,630 >> PUBLICZNOŚCI: 97? 536 00:24:02,630 --> 00:24:03,630 >> ANDI PENG: 97, świetnie. 537 00:24:03,630 --> 00:24:05,077 I to, co jest wielkie litery A? 538 00:24:05,077 --> 00:24:06,330 >> PUBLICZNOŚCI: 65. 539 00:24:06,330 --> 00:24:08,255 >> ANDI PENG: Więc co jest 97 minus 65? 540 00:24:08,255 --> 00:24:09,227 >> PUBLICZNOŚCI: 32. 541 00:24:09,227 --> 00:24:09,810 ANDI PENG: OK. 542 00:24:09,810 --> 00:24:13,530 Więc co myślicie będzie stanie, gdy wejście że linia kodu 543 00:24:13,530 --> 00:24:14,670 do mojego komputera? 544 00:24:14,670 --> 00:24:17,981 545 00:24:17,981 --> 00:24:19,896 >> PUBLICZNOŚCI: [niesłyszalne]. 546 00:24:19,896 --> 00:24:21,020 ANDI PENG: Niestety, mówić. 547 00:24:21,020 --> 00:24:22,520 Bez obaw. 548 00:24:22,520 --> 00:24:25,750 Jest to bardzo bezpieczne środowiska, minus aparat. 549 00:24:25,750 --> 00:24:27,550 Wszyscy będziemy to-- bez obaw. 550 00:24:27,550 --> 00:24:30,940 Po prostu wszyscy będziemy udawać, jak to jest po prostu nam krew w żyłach w tym pokoju. 551 00:24:30,940 --> 00:24:31,480 Bez obaw. 552 00:24:31,480 --> 00:24:33,410 Nie pytanie jest zbyt głupi. 553 00:24:33,410 --> 00:24:35,300 Brak odpowiedzi jest głupia odpowiedź. 554 00:24:35,300 --> 00:24:38,260 Jestem prawdopodobnie będzie popełniać błędy w trakcie mojego nauczania. 555 00:24:38,260 --> 00:24:40,740 Poważnie, chłopaki, po prostu wygadać go. 556 00:24:40,740 --> 00:24:43,092 Bądź pewny siebie, wiesz? 557 00:24:43,092 --> 00:24:43,800 Więc co to było? 558 00:24:43,800 --> 00:24:47,990 Kto powiedział, że ostatni odpowiedź? 559 00:24:47,990 --> 00:24:48,540 OK. 560 00:24:48,540 --> 00:24:50,380 Krzyczeć, że ładne i jasne. 561 00:24:50,380 --> 00:24:51,220 >> PUBLICZNOŚCI: 32? 562 00:24:51,220 --> 00:24:51,850 >> ANDI PENG: 32. 563 00:24:51,850 --> 00:24:54,141 OK, niech ten kod i sprawdzić, czy to co się dzieje. 564 00:24:54,141 --> 00:25:00,260 565 00:25:00,260 --> 00:25:00,760 OK. 566 00:25:00,760 --> 00:25:03,300 567 00:25:03,300 --> 00:25:06,360 Jak tak chłopaki mogą rodzaju zobacz, typowy zapis skończyłem 568 00:25:06,360 --> 00:25:12,250 założyć tutaj jak będziemy zatrudniać każdy rodzaj programu w naszym komputerze. 569 00:25:12,250 --> 00:25:14,770 Mamy funkcję main w naszej głównej funkcji. 570 00:25:14,770 --> 00:25:17,265 Mam zamiar po prostu skopiować i wklej wiersz kodu. 571 00:25:17,265 --> 00:25:21,082 572 00:25:21,082 --> 00:25:23,540 Należy także uważać, kiedy faceci kopiowania i wklejania kodu. 573 00:25:23,540 --> 00:25:28,750 Czasami niektórzy operatorzy Nie wklej ponad poprawnie. 574 00:25:28,750 --> 00:25:31,397 W tym przypadku, minus znak był rzeczywiście myślnik. 575 00:25:31,397 --> 00:25:32,980 A więc komputer nie go podnieść. 576 00:25:32,980 --> 00:25:35,870 Musiałem więc wrócić i fizycznie wpisywać tego. 577 00:25:35,870 --> 00:25:37,846 Wystarczy być ostrożnym, gdy wy robicie to. 578 00:25:37,846 --> 00:25:41,178 579 00:25:41,178 --> 00:25:42,660 >> OK. 580 00:25:42,660 --> 00:25:43,980 Mamy zamiar uruchomić to tutaj. 581 00:25:43,980 --> 00:25:45,670 Więc jedziemy do cd do naszego sekcja2. 582 00:25:45,670 --> 00:25:50,470 583 00:25:50,470 --> 00:25:52,030 Zadzwoniłem ten program asciimath. 584 00:25:52,030 --> 00:25:55,690 Więc pamiętaj, kiedy uruchomić dowolny Program, chcemy skompilować go 585 00:25:55,690 --> 00:25:57,150 poprzez uruchomienie go za pośrednictwem naszej marki. 586 00:25:57,150 --> 00:26:00,030 A potem chcemy faktycznie uruchomić program wykonując dot-slash. 587 00:26:00,030 --> 00:26:01,280 Więc będziemy ./asciimath. 588 00:26:01,280 --> 00:26:05,780 589 00:26:05,780 --> 00:26:06,590 >> Racja, nie idziemy. 590 00:26:06,590 --> 00:26:07,410 I widzimy 32. 591 00:26:07,410 --> 00:26:07,930 Bardzo dobrze. 592 00:26:07,930 --> 00:26:10,340 Zasługujesz na cukierka. 593 00:26:10,340 --> 00:26:11,160 Cukierki dla Ciebie. 594 00:26:11,160 --> 00:26:11,900 Przepraszam. 595 00:26:11,900 --> 00:26:13,100 W porządku. 596 00:26:13,100 --> 00:26:13,670 OK. 597 00:26:13,670 --> 00:26:18,070 Tak więc możemy wrócić do naszego przykładu tutaj. 598 00:26:18,070 --> 00:26:23,530 599 00:26:23,530 --> 00:26:24,345 Ach, nie. 600 00:26:24,345 --> 00:26:29,147 601 00:26:29,147 --> 00:26:31,090 Aaa. 602 00:26:31,090 --> 00:26:32,490 OK. 603 00:26:32,490 --> 00:26:34,610 Idę do utrzymania go w taki sposób. 604 00:26:34,610 --> 00:26:48,520 605 00:26:48,520 --> 00:26:51,240 OK. 606 00:26:51,240 --> 00:26:51,740 OK. 607 00:26:51,740 --> 00:26:55,340 Tak jak wy może zobaczyć, co możemy zrobić, wiele bardzo ciekawych rzeczy, 608 00:26:55,340 --> 00:26:58,880 wiele bardzo fajnych rzeczy, dużo bardzo skomplikowane rzeczy z udziałem 609 00:26:58,880 --> 00:27:02,720 Znaków ASCII i numery. 610 00:27:02,720 --> 00:27:05,890 Gdy dojdziesz do linii pięć, to dużo, aby podążać. 611 00:27:05,890 --> 00:27:07,640 Nie zamierzamy iść po rozdziale. 612 00:27:07,640 --> 00:27:10,720 Zapraszam do, jeśli możesz, Przyczyną tego, że na papierze 613 00:27:10,720 --> 00:27:14,750 najpierw na to, co dzieje się, kiedy należy wybierzemy taki łańcuch wartości. 614 00:27:14,750 --> 00:27:19,720 Na przykład w tym ostatnim wierszu mamy z-- która reprezentuje pewną number-- 615 00:27:19,720 --> 00:27:24,740 A-- który również reprezentuje pewne number-- plus 1 modulos 26 616 00:27:24,740 --> 00:27:26,750 oraz małe litery a. 617 00:27:26,750 --> 00:27:29,220 >> Jeśli faceci czytaj dalej przez nich, ci 618 00:27:29,220 --> 00:27:34,009 mogą zobaczyć wzór pojawią się w jak mamy manipulować kod. 619 00:27:34,009 --> 00:27:36,050 Gorąco, gorąco polecam po rozdziale was wszystkich 620 00:27:36,050 --> 00:27:38,160 faceci iść do przodu i wejście wszystkich osób w komputerze 621 00:27:38,160 --> 00:27:40,060 i zobaczyć, jakie numery wychodzą 622 00:27:40,060 --> 00:27:43,090 i rozumowania poprzez dlaczego te są dzieje, bo dla psets 623 00:27:43,090 --> 00:27:45,060 to będzie bardzo ważne aby zrozumieć 624 00:27:45,060 --> 00:27:47,132 dlaczego pewne rzeczy się dzieją. 625 00:27:47,132 --> 00:27:48,590 Wszystkie te slajdy będzie online. 626 00:27:48,590 --> 00:27:51,510 Więc nie ma obaw o próby fizycznie skopiować notatki. 627 00:27:51,510 --> 00:27:52,510 Wszystko jest w Internecie. 628 00:27:52,510 --> 00:27:54,050 Ten sam odcinek będzie online. 629 00:27:54,050 --> 00:27:57,500 Cały mój kod źródłowy, który Używam będzie online. 630 00:27:57,500 --> 00:27:58,180 Tak. 631 00:27:58,180 --> 00:27:59,430 Czy masz jeszcze pytania? 632 00:27:59,430 --> 00:28:00,587 PUBLICZNOŚCI: Co to jest modulos? 633 00:28:00,587 --> 00:28:01,170 ANDI PENG: OK. 634 00:28:01,170 --> 00:28:05,620 Więc modulo jest operator, który będzie być bardzo ważne, aby pset twoich ludzi damska 635 00:28:05,620 --> 00:28:06,690 tutaj. 636 00:28:06,690 --> 00:28:12,280 Więc sposób, że operatorzy w C, w pracy programowania 637 00:28:12,280 --> 00:28:16,360 jest to, że masz to, co się nazywa symbol podziału i symbol modułu, 638 00:28:16,360 --> 00:28:18,350 która jest jak znak procent. 639 00:28:18,350 --> 00:28:24,840 >> Tak więc w C, kiedy to zrobić liczbę całkowitą podzielona przez liczbę całkowitą z kreską, 640 00:28:24,840 --> 00:28:27,720 C ma tendencję do wycięcia od wszystkich miejsc po przecinku, 641 00:28:27,720 --> 00:28:30,290 ponieważ liczba całkowita chce do konwersji na liczbę całkowitą. 642 00:28:30,290 --> 00:28:33,550 To nie będzie chciał być podwójne z kilka dziesiętnych wszystko po to. 643 00:28:33,550 --> 00:28:39,322 >> Więc jeśli mam 3 podzielone przez 2, to będzie do odcięcia 0,5 i po prostu daje 1. 644 00:28:39,322 --> 00:28:41,530 Więc to jest coś być bardzo ostrożnym, gdy jesteś 645 00:28:41,530 --> 00:28:45,294 robi jakiejkolwiek matematyki w zakresie programowania, jest to, że numery można dostać 646 00:28:45,294 --> 00:28:47,210 Nie mogą być numery że można było myśleć, 647 00:28:47,210 --> 00:28:50,190 dlatego też zaokrąglanie w twoim ostatnia pset jest tak ważne. 648 00:28:50,190 --> 00:28:51,980 >> Modulo daje resztę. 649 00:28:51,980 --> 00:28:56,200 Tak na przykład, jeśli zrobiłem 3 modulo 2-- więc 3 procent podpisania 2-- 650 00:28:56,200 --> 00:28:58,020 to daje resztę tego. 651 00:28:58,020 --> 00:29:00,460 Więc 3 podzielone przez 2 1.5. 652 00:29:00,460 --> 00:29:01,410 Jest 1 pozostała część 1. 653 00:29:01,410 --> 00:29:04,600 To daje 1, w którym Jest to pozostałą część. 654 00:29:04,600 --> 00:29:07,361 >> Więc kiedy chłopaki idą poprzez tabeli ASCII, 655 00:29:07,361 --> 00:29:09,735 modulo będzie w końcu jest coś, co jest bardzo ważne, 656 00:29:09,735 --> 00:29:11,240 i omówimy to później. 657 00:29:11,240 --> 00:29:17,750 658 00:29:17,750 --> 00:29:19,040 >> OK. 659 00:29:19,040 --> 00:29:27,300 Więc coś, co jest ładne, całkiem nowy i dość wyjątkowy 660 00:29:27,300 --> 00:29:31,920 że mamy omówione w tym tygodniu jest pojęcie, co tablica jest. 661 00:29:31,920 --> 00:29:34,370 Tak więc tablica jest pierwszą typ struktury danych 662 00:29:34,370 --> 00:29:36,320 że będziemy spotkać się w tej klasie. 663 00:29:36,320 --> 00:29:40,010 Wszystko jest to struktura danych jakaś arbitralna, 664 00:29:40,010 --> 00:29:43,370 dosłownie rzeczy takie jak struktury że my jako programiści stworzyli, 665 00:29:43,370 --> 00:29:47,890 które umieściliśmy w naszym kodzie, że mogą zawierać inne fragmenty kodu. 666 00:29:47,890 --> 00:29:51,090 >> Więc w tym sensie, w array-- myśleć o tym jak szafka, 667 00:29:51,090 --> 00:29:53,470 gdzie po otwarciu inna półki swojej szafce, 668 00:29:53,470 --> 00:29:55,630 można uzyskać dostęp do różnych rzeczy. 669 00:29:55,630 --> 00:29:58,630 W pamięci, tablica jest po prostu robi to samo na komputerze. 670 00:29:58,630 --> 00:30:01,730 Możesz mieć inny blocks-- my Nazywamy je indices-- tablicy. 671 00:30:01,730 --> 00:30:04,210 To tak jak w bloku, półka pamięci 672 00:30:04,210 --> 00:30:07,580 które stworzyliśmy w swoim komputer, który można wprowadzić 673 00:30:07,580 --> 00:30:10,270 pewne rzeczy w różnych miejscach. 674 00:30:10,270 --> 00:30:18,000 >> Więc z tablicy, można Zawsze trzeba specify-- 675 00:30:18,000 --> 00:30:22,360 musisz określić uznającej Tablica w następującym formacie. 676 00:30:22,360 --> 00:30:24,290 Będziesz pierwszy określić typ danych 677 00:30:24,290 --> 00:30:25,831 które chcesz utworzyć tablicy. 678 00:30:25,831 --> 00:30:28,870 Jeśli chcę tablicę liczb całkowitych, Mam zamiar umieścić int tam. 679 00:30:28,870 --> 00:30:32,079 Jeśli chcę tablicę łańcuchów, Mam zamiar umieścić tam sznurki, 680 00:30:32,079 --> 00:30:34,995 nazwa macierzy, a następnie będziesz mieć nawiasów kwadratowych. 681 00:30:34,995 --> 00:30:39,580 I wewnątrz nawiasów kwadratowych, jesteś będzie mieć rozmiar macierzy. 682 00:30:39,580 --> 00:30:42,900 >> Coś, co naprawdę ważne, aby należy pamiętać podczas tworzenia macierzy jest 683 00:30:42,900 --> 00:30:46,530 , że po utworzeniu Tablica, że ​​rozmiar nie może zmienić. 684 00:30:46,530 --> 00:30:50,180 Więc jeśli wiesz, że teraz masz tablicę wielkości 10, 685 00:30:50,180 --> 00:30:54,550 wiesz, że ja będę miała 10 komórek wewnątrz lub 10 indeksów w tej tablicy, 686 00:30:54,550 --> 00:30:56,830 i nigdy nie będzie rozszerzyć lub zmniejszyć 687 00:30:56,830 --> 00:30:59,850 nie wiem co, i że nie ma obecnie zaledwie 10 przecznic od miejsca 688 00:30:59,850 --> 00:31:04,490 przydzielone w pamięci, które mogą przechowywać do 10 rzeczy, bez względu na już wprowadzone. 689 00:31:04,490 --> 00:31:08,790 >> Więc w ten sposób, typ danych tablicy, Struktura danych, która jest tablicą 690 00:31:08,790 --> 00:31:13,392 bardzo różni się od niektórych innych będziemy być obejmujące później w tym kursie. 691 00:31:13,392 --> 00:31:15,170 Tak. 692 00:31:15,170 --> 00:31:20,080 Na przykład, jeśli chcesz utworzyć tablicę wielkości 3, które 693 00:31:20,080 --> 00:31:23,670 zawarte zmienne integer-- Oh, przepraszam, od temperature-- 694 00:31:23,670 --> 00:31:25,640 i temperatury, z Oczywiście, jest liczbą całkowitą. 695 00:31:25,640 --> 00:31:28,710 >> Więc tworzymy int, który jest typ danych, co chcemy zapisać. 696 00:31:28,710 --> 00:31:32,680 Jedziemy do wywołania tej temperatury ze względu na nomenklaturę nazewnictwa 697 00:31:32,680 --> 00:31:34,200 coś, co wszyscy rozumiemy. 698 00:31:34,200 --> 00:31:35,900 A my będziemy mieć nawiasów kwadratowych. 699 00:31:35,900 --> 00:31:37,200 I chcemy trzy numery. 700 00:31:37,200 --> 00:31:39,000 Tak więc mamy zamiar umieścić trzy w jej wnętrzu. 701 00:31:39,000 --> 00:31:41,041 >> Coś, co naprawdę Ważne, aby pamiętać, 702 00:31:41,041 --> 00:31:43,530 jest to, że tablice są indeksowane zera. 703 00:31:43,530 --> 00:31:46,410 Wszystko to oznacza, że ​​Ciebie rozpoczyna się wskaźnikiem 0, 704 00:31:46,410 --> 00:31:49,800 i uruchomić się poprzez rozmiar tablicy minus 1. 705 00:31:49,800 --> 00:31:52,730 Tak na przykład tutaj, tablicę o rozmiarze 3. 706 00:31:52,730 --> 00:31:54,680 To będzie w stanie trzymać trzy wartości. 707 00:31:54,680 --> 00:31:57,450 Ale numery themselves--, że Numer, tablica, że ​​indeks, 708 00:31:57,450 --> 00:32:00,271 tablica, są 0 do 2. 709 00:32:00,271 --> 00:32:03,520 Więc chłopaki, jest bardzo, bardzo ostrożny, gdy przechodzisz problemów przedstawionych 710 00:32:03,520 --> 00:32:06,500 i tworzenia jakiejkolwiek tablicy, ponieważ wiele razy, że to 711 00:32:06,500 --> 00:32:08,490 bardzo, bardzo łatwo zapomnieć, że. 712 00:32:08,490 --> 00:32:11,840 I rzeczywiście nie mają indeks 3, że obecnie tylko 713 00:32:11,840 --> 00:32:13,130 mają indeks 2. 714 00:32:13,130 --> 00:32:16,046 A jeśli spróbujesz dostęp trzeci indeks, 715 00:32:16,046 --> 00:32:18,170 to będzie, co to nazywa terminator null. 716 00:32:18,170 --> 00:32:19,990 To nie dzieje się naprawdę istnieje w tablicy. 717 00:32:19,990 --> 00:32:21,781 A komputer jest nie spodoba. 718 00:32:21,781 --> 00:32:24,570 Dlatego należy zachować ostrożność, kiedy masz dostęp do rzeczy, po prostu 719 00:32:24,570 --> 00:32:28,070 aby upewnić się, że pamiętasz że tablice są indeksowane zera. 720 00:32:28,070 --> 00:32:28,880 >> OK. 721 00:32:28,880 --> 00:32:34,030 Tak więc pierwszym przykładem jest to jednym ze sposobów tworzenia tablicy. 722 00:32:34,030 --> 00:32:36,790 Drugi przykład mam Poniżej znajduje się oddzielny sposób 723 00:32:36,790 --> 00:32:40,210 tworzenia co ma te same dane Struktura, że ​​my właśnie wprowadzane. 724 00:32:40,210 --> 00:32:44,347 Więc zamiast fizycznie działa przez i wprowadzenie w temperaturze od 0 725 00:32:44,347 --> 00:32:47,180 równa się cokolwiek, temperatura 1 równa się niezależnie, Temperatura 2 równa 726 00:32:47,180 --> 00:32:50,950 cokolwiek, mogłem właściwie tylko bezpośrednio stworzyć to wszystko w jednej linii 727 00:32:50,950 --> 00:32:53,010 do temperatury nawiasach kwadratowych równa. 728 00:32:53,010 --> 00:32:56,536 >> Oraz zawiadomienie w tej sprawie, nie trzeba określić jak duży tablica jest, 729 00:32:56,536 --> 00:32:59,160 ponieważ komputer będzie przejść i zobaczyć, że nie jest 730 00:32:59,160 --> 00:33:01,570 trzy elementy w tych klamrach. 731 00:33:01,570 --> 00:33:04,000 I to będzie wiedzieć, OK, Potrzebuję tablicę wielkości 3. 732 00:33:04,000 --> 00:33:07,440 Nie masz zamiar trzeba Wejście to w następujący sposób. 733 00:33:07,440 --> 00:33:10,170 >> A także, tak, w ten sposób. 734 00:33:10,170 --> 00:33:12,610 Czy ktoś ma pytania dotyczące sposobu robimy tablice 735 00:33:12,610 --> 00:33:17,391 lub jak struktura tablicy działa? 736 00:33:17,391 --> 00:33:17,890 Tak. 737 00:33:17,890 --> 00:33:18,806 >> PUBLICZNOŚCI: [niesłyszalne]? 738 00:33:18,806 --> 00:33:21,649 739 00:33:21,649 --> 00:33:22,690 ANDI PENG: Tak, dokładnie. 740 00:33:22,690 --> 00:33:26,150 Więc jeśli było zadeklarować i zainicjować tablica następującej metody, 741 00:33:26,150 --> 00:33:28,477 który jest drugi sposób, można po prostu zostawić tych. 742 00:33:28,477 --> 00:33:30,310 I komputer automatycznie wie, że to 743 00:33:30,310 --> 00:33:33,950 musi liczyć, jak wiele elementów są w tych klamrach, oddzielając 744 00:33:33,950 --> 00:33:34,930 przecinkami. 745 00:33:34,930 --> 00:33:37,517 >> Więc tutaj widzą 65, 87, 30. 746 00:33:37,517 --> 00:33:39,600 Więc komputer wie, oh, tam trzy liczby całkowite. 747 00:33:39,600 --> 00:33:45,960 Wiem, że aby stworzyć nazwę tablicy Temperatura trzy elementy w nim. 748 00:33:45,960 --> 00:33:46,590 Dobre pytanie. 749 00:33:46,590 --> 00:33:47,090 Tak. 750 00:33:47,090 --> 00:33:51,590 >> PUBLICZNOŚCI: Czy to nie jest możliwe, aby stworzyć tablicą różnych typów danych 751 00:33:51,590 --> 00:33:53,021 które mogą być wprowadzone do niego? 752 00:33:53,021 --> 00:33:56,746 Na przykład, z liczb całkowitych [niesłyszalne]? 753 00:33:56,746 --> 00:33:59,120 ANDI PENG: Dla celów tej klasy, nie teraz. 754 00:33:59,120 --> 00:34:03,070 Podczas tworzenia danych struktury jak tablica, 755 00:34:03,070 --> 00:34:04,990 mówisz komputer, hej, potrzebuję cię 756 00:34:04,990 --> 00:34:08,159 przeznaczyć tyle Pamięć w moim dysku twardym, 757 00:34:08,159 --> 00:34:10,690 przy czym każda komórka będąc Pewna liczba bitów. 758 00:34:10,690 --> 00:34:13,429 >> Pamiętaj, dowiedzieliśmy się w tym tygodniu zerowej, że różne dane 759 00:34:13,429 --> 00:34:15,300 typy mają różne rozmiary? 760 00:34:15,300 --> 00:34:17,630 Tak na przykład, ciągiem jest różna ilość 761 00:34:17,630 --> 00:34:20,719 przestrzeni niż char, który jest różna ilość miejsca 762 00:34:20,719 --> 00:34:21,830 od liczby całkowitej. 763 00:34:21,830 --> 00:34:25,534 A więc jeśli nie podasz i mieszać i łączyć, jakie rodzaje zmiennych 764 00:34:25,534 --> 00:34:27,659 masz komputer z systemem użytkownika będzie bardzo zdezorientowany. 765 00:34:27,659 --> 00:34:29,950 A to nie będzie wiedzieć ile pamięci dać. 766 00:34:29,950 --> 00:34:32,480 Tak więc dla celów prawej teraz, komputery mogą tylko 767 00:34:32,480 --> 00:34:36,120 rozpoznaje jeden rodzaj tablicy. 768 00:34:36,120 --> 00:34:37,940 Dobre pytanie. 769 00:34:37,940 --> 00:34:38,440 OK. 770 00:34:38,440 --> 00:34:45,179 771 00:34:45,179 --> 00:34:47,120 >> Więc Naturalnie, Pytanie drugie mamy 772 00:34:47,120 --> 00:34:50,760 to dobrze, że teraz mamy stworzył Tablica i umieściliśmy wszystkie te rzeczy 773 00:34:50,760 --> 00:34:54,190 w tablicy, jak my jesteśmy będzie miał do niego dostępu? 774 00:34:54,190 --> 00:34:59,710 Więc typowa struktura, że ​​zawsze dostęp do tablicy jest nasz piękny na pętli. 775 00:34:59,710 --> 00:35:03,830 Obiecuję, chłopaki, że będziemy zobaczyć wiele tego faceta tutaj. 776 00:35:03,830 --> 00:35:06,470 >> Zasadniczo, kiedy tylko chcesz aby wprowadzić wartości do tablicy 777 00:35:06,470 --> 00:35:09,940 lub chcesz ich dostępu, Najlepszym sposobem na to jest dla pętli, 778 00:35:09,940 --> 00:35:13,730 bo w pętli for, to wiem, ile razy jesteś 779 00:35:13,730 --> 00:35:17,290 będzie chciał uruchomić przez tablicę, bo masz edycję zatrzymania, prawda? 780 00:35:17,290 --> 00:35:19,680 I za każdym razem uruchomić za pośrednictwem, można uzyskać dostęp do 781 00:35:19,680 --> 00:35:21,310 inny element tablicy. 782 00:35:21,310 --> 00:35:26,920 >> A także, że jest to powód, dla którego zwykle zaczynamy pętli na wartość 0, 783 00:35:26,920 --> 00:35:30,080 bo gdy masz dostęp do tablic, można uzyskać dostęp do wskaźnika zerowego. 784 00:35:30,080 --> 00:35:32,070 I tak to paralele bardzo ładnie. 785 00:35:32,070 --> 00:35:35,295 Wy nie chciał się Napisać do int i jest równa 1. 786 00:35:35,295 --> 00:35:37,330 i jest mniejsza lub równa 3. 787 00:35:37,330 --> 00:35:39,890 >> Ale to nie działa już tak dobrze tutaj, bo tylko 788 00:35:39,890 --> 00:35:42,010 mają elementy się z 0, 1 i 2. 789 00:35:42,010 --> 00:35:45,815 I tak, jeśli były, aby rozpocząć Twój i na elemencie 1, 2 i 3, 790 00:35:45,815 --> 00:35:48,440 masz zamiar skończyć z systemem poza granicami macierzy, 791 00:35:48,440 --> 00:35:50,440 i złe rzeczy się wydarzy. 792 00:35:50,440 --> 00:35:54,480 >> Więc mam nadzieję, że chłopaki zobaczyć segue dlaczego we wcześniejszych klasach 793 00:35:54,480 --> 00:35:58,560 my was uczyć jak prowadzić i sformatować pętli for sposób, że byliśmy. 794 00:35:58,560 --> 00:36:01,900 To dlatego, że teraz mamy przesiedli się do tablic, 795 00:36:01,900 --> 00:36:06,760 można zobaczyć, dlaczego 0 pożycza Sam bardzo ładnie do dostępu. 796 00:36:06,760 --> 00:36:09,880 >> Tak, jak nam się to, że jest that-- jestem tylko drukowanie go tutaj dla dobra 797 00:36:09,880 --> 00:36:10,830 drukowania go. 798 00:36:10,830 --> 00:36:13,750 Ale mam zastępczy, przecinek. 799 00:36:13,750 --> 00:36:15,645 A rzeczywista użytkowanie Część dzieje. 800 00:36:15,645 --> 00:36:17,520 Nazwa tablicy nazwano temperatury. 801 00:36:17,520 --> 00:36:21,570 Więc jest to temperatura i i-ty element tablicy. 802 00:36:21,570 --> 00:36:24,400 >> Więc jak dla pętli biegnie, to będzie zaczynać się od 0. 803 00:36:24,400 --> 00:36:27,640 To będzie wydrukować 0-ty wskaźnik tej tablicy. 804 00:36:27,640 --> 00:36:29,599 Wtedy to będzie drukować na pierwszym elemencie. 805 00:36:29,599 --> 00:36:31,431 Wtedy to będzie drukować z drugiej. 806 00:36:31,431 --> 00:36:32,880 A potem mamy zamiar złamać. 807 00:36:32,880 --> 00:36:36,718 Czy wszyscy są jasne jak to się dzieje? 808 00:36:36,718 --> 00:36:37,217 Wielki. 809 00:36:37,217 --> 00:36:43,230 810 00:36:43,230 --> 00:36:44,100 >> W porządku. 811 00:36:44,100 --> 00:36:47,270 Więc tutaj mamy drogę mówiąc, jeśli nie chcemy 812 00:36:47,270 --> 00:36:50,020 do twardego kod in-- mnie jako programista. 813 00:36:50,020 --> 00:36:53,320 Nie chciałem, aby faktycznie fizycznie umieścić w każdy pojedynczy element 814 00:36:53,320 --> 00:36:54,020 tej tablicy. 815 00:36:54,020 --> 00:36:56,500 Gdybym chciał, a nie mają wartości wejściowych użytkownika, 816 00:36:56,500 --> 00:36:58,100 jaki jest najlepszy sposób to zrobić? 817 00:36:58,100 --> 00:37:00,920 >> Cóż, tutaj Stworzyłem ten piękny funkcji, 818 00:37:00,920 --> 00:37:03,560 w którym mogę zadeklarować tablicę. 819 00:37:03,560 --> 00:37:06,210 Więc int scores-- niech po prostu powiedzieć, że chcesz, aby 820 00:37:06,210 --> 00:37:10,660 tablicą, która odbyła się gatunki wszystkich 18 od tutaj w tej części studentów. 821 00:37:10,660 --> 00:37:12,670 Myślę, że mamy trochę więcej niż 18 dzieci dzisiaj. 822 00:37:12,670 --> 00:37:16,460 Ale ze względu na przykład, w niech po prostu założyć, że mieliśmy 18. 823 00:37:16,460 --> 00:37:21,580 Chciałbym stworzyć wyniki nazwą tablicy z Typ int, ponieważ wyniki, oczywiście, 824 00:37:21,580 --> 00:37:22,987 są liczbami. 825 00:37:22,987 --> 00:37:24,820 I zamierzam mieć 18 w nawiasach kwadratowych, 826 00:37:24,820 --> 00:37:29,900 bo to, jak wielu studentów I Chcesz być w stanie przechowywać dziesiątki. 827 00:37:29,900 --> 00:37:32,206 >> I sposób chciałbym wypełnić tablica jest, że będę 828 00:37:32,206 --> 00:37:35,572 uruchomić go za pomocą pętli for, z Oczywiście, gdzie 0 oznacza mój 0-ty indeksu. 829 00:37:35,572 --> 00:37:38,030 A następnie 18 jest moja zatrzymując edycję, bo nie ma 830 00:37:38,030 --> 00:37:39,690 18 elementów w tablicy. 831 00:37:39,690 --> 00:37:44,620 A potem mam zamiar zrobić printf, Enter wynik dla student-- bla bla bla. 832 00:37:44,620 --> 00:37:51,171 >> Czy ktoś może mi powiedzieć, dlaczego tu jestem drukowania ja plus 1, a nie ja? 833 00:37:51,171 --> 00:37:52,920 To trochę trick Pytanie, raczej nie. 834 00:37:52,920 --> 00:37:56,020 Faktycznie nie fizycznie wpływa na funkcjonowanie kodu. 835 00:37:56,020 --> 00:37:56,520 Tak. 836 00:37:56,520 --> 00:37:57,909 >> PUBLICZNOŚCI: [niesłyszalne] 0? 837 00:37:57,909 --> 00:37:58,950 ANDI PENG: Tak, dokładnie. 838 00:37:58,950 --> 00:38:02,620 Jest to trochę niewygodne powiedzieć, hej, jesteś 0-ci uczeń w tej klasie. 839 00:38:02,620 --> 00:38:03,780 To trochę dziwne. 840 00:38:03,780 --> 00:38:08,340 Tak więc my, jako ludzie, nie lubię myśleć o tym, jak komputery myśleć. 841 00:38:08,340 --> 00:38:10,930 Dlatego, mimo że w komputer, to przechowywania wartości 842 00:38:10,930 --> 00:38:13,310 W 0-tym indeksie, kiedy Jesteśmy ludźmi, nie bardzo 843 00:38:13,310 --> 00:38:15,520 odnieść się do siebie jako zero. 844 00:38:15,520 --> 00:38:18,119 Kiedy więc po prostu wydrukować, że Mam zamiar wydrukować i dodaj 845 00:38:18,119 --> 00:38:19,410 1 dla zachowania jasności. 846 00:38:19,410 --> 00:38:22,447 Więc podczas drukowania, mam zamiar być w stanie wydrukować studentów 1 do 18. 847 00:38:22,447 --> 00:38:24,530 Faktycznie nie wpływ bieg kodu 848 00:38:24,530 --> 00:38:27,110 w żaden sposób, sposób wydrukować. 849 00:38:27,110 --> 00:38:30,380 >> Ale uważaj, gdy jesteś faktycznie dostępu do tablicy. 850 00:38:30,380 --> 00:38:32,780 Kiedy widzisz wyniki I, zauważyć tutaj, że jestem naprawdę 851 00:38:32,780 --> 00:38:38,200 dostępu do indeksu 0TH i nie 1 plus 0-- lub 1 plus 1, 852 00:38:38,200 --> 00:38:45,530 w tym przypadku, indeks tak że to rzeczywiście jasne. 853 00:38:45,530 --> 00:38:48,870 Czy każdy rodzaj OK jak to działa poprzez 854 00:38:48,870 --> 00:38:51,470 iz każdym indeksie jestem wprowadzenie wartości do tablicy 855 00:38:51,470 --> 00:38:55,340 i tworząc tablicę z 18 liczb że użytkownik zamierza wprowadzić? 856 00:38:55,340 --> 00:38:58,780 857 00:38:58,780 --> 00:38:59,821 OK. 858 00:38:59,821 --> 00:39:00,321 Chłodny. 859 00:39:00,321 --> 00:39:05,380 860 00:39:05,380 --> 00:39:07,400 >> OK. 861 00:39:07,400 --> 00:39:12,220 Przechodzimy teraz do czegoś, co jest dość istotne dla tego kawałka ustawić, jak również. 862 00:39:12,220 --> 00:39:15,020 Wiem, że w wykładzie David-- Przepraszam, że masz pytanie? 863 00:39:15,020 --> 00:39:16,840 >> PUBLICZNOŚCI: Czy można je powiększyć? 864 00:39:16,840 --> 00:39:18,080 >> ANDI PENG: Tak, więc spróbowałem. 865 00:39:18,080 --> 00:39:18,788 Ale nie wiem. 866 00:39:18,788 --> 00:39:21,437 Z jakiegoś powodu, to wersja programu PowerPoint 867 00:39:21,437 --> 00:39:23,270 to naprawdę nie działa oraz z wyświetlaczem. 868 00:39:23,270 --> 00:39:25,260 Więc my po prostu się aby utrzymać go w ten sposób. 869 00:39:25,260 --> 00:39:27,280 Wszystkie te będą przesyłane w Internecie. 870 00:39:27,280 --> 00:39:28,218 Przepraszam chłopaki. 871 00:39:28,218 --> 00:39:30,090 Tak. 872 00:39:30,090 --> 00:39:30,980 OK. 873 00:39:30,980 --> 00:39:35,530 >> Tak więc możemy również ciągi. 874 00:39:35,530 --> 00:39:39,320 Więc jeśli rzeczywiście faceci notice-- I wiem, Rob podszedł to w tym wykładzie 875 00:39:39,320 --> 00:39:43,652 że did-- ciąg jest faktycznie po prostu tablica znaków, 876 00:39:43,652 --> 00:39:44,860 jeśli myślisz o tym, prawda? 877 00:39:44,860 --> 00:39:47,500 Łańcuch jest nazwa lub zdanie lub słowo, prawda? 878 00:39:47,500 --> 00:39:52,975 >> Gdybym miał stworzyć ciąg nazwie Tylko Andi-- moje imię, A-N-D-I. 879 00:39:52,975 --> 00:39:55,460 Myślisz, że jak tylko jednej zmiennej. 880 00:39:55,460 --> 00:39:58,630 Ale tak naprawdę, to w podziale do zaledwie tablicy znaków. 881 00:39:58,630 --> 00:40:01,910 Więc nie ma to postać z zapisanego w wartości tablicy. 882 00:40:01,910 --> 00:40:05,420 Ma charakter n przechowywane w drugi indeks i tak dalej, i tak dalej. 883 00:40:05,420 --> 00:40:08,660 >> Tak więc w taki sposób, że rzeczywiście tego rodzaju 884 00:40:08,660 --> 00:40:10,970 struktury ustawić w miejsce dla naszych strun. 885 00:40:10,970 --> 00:40:14,660 Więc, gdybym wejścia w Słowo "jeść" - tak słowa ciąg jest równy 886 00:40:14,660 --> 00:40:15,540 uzyskać ciąg. 887 00:40:15,540 --> 00:40:19,260 Gdybym był wprowadzić słowo "jeść", które jest fizycznie sposób, że mój komputer 888 00:40:19,260 --> 00:40:21,870 zapisuje ten ciąg w mojej pamięci. 889 00:40:21,870 --> 00:40:27,140 >> A jeśli chcę uruchomić poprzez które i drukiem, że out-- więc na na I 890 00:40:27,140 --> 00:40:30,890 równa zero, pamiętam, w wykładzie, że pokryte czymś, co się nazywa strlen, 891 00:40:30,890 --> 00:40:32,990 lub długość łańcucha. 892 00:40:32,990 --> 00:40:36,520 Bo w rzeczywistości nie wiedzieć, jak duża tablica jest 893 00:40:36,520 --> 00:40:38,210 niezależnie od ich inputting-- użytkownika 894 00:40:38,210 --> 00:40:40,370 >> Na przykład, wprowadzane słowo "jeść", i wiem, 895 00:40:40,370 --> 00:40:41,870 to długo, trzy znaki, prawda? 896 00:40:41,870 --> 00:40:44,700 Więc może umieścić tam w trzech i wszystko będzie dobrze. 897 00:40:44,700 --> 00:40:49,290 Ale jeśli coś wejściowego użytkownika to inna liczba wartości, 898 00:40:49,290 --> 00:40:52,760 będziesz nie być w stanie naprawdę wiedzieć, że podczas programowania kodu. 899 00:40:52,760 --> 00:40:56,040 >> Tak więc sposób, w jaki traktujemy przypadków testowych jak to jest, że mamy coś 900 00:40:56,040 --> 00:41:00,070 nazywa strlen, który jest po prostu funkcja który mówi, jak długo ciąg jest. 901 00:41:00,070 --> 00:41:02,080 Więc strlen słowa. 902 00:41:02,080 --> 00:41:03,470 Moje słowo jest jeść. 903 00:41:03,470 --> 00:41:05,990 n wynosi strlen o słowa. 904 00:41:05,990 --> 00:41:08,930 Czy ktoś może mi powiedzieć, co to wartość rzeczywiście jest tam? 905 00:41:08,930 --> 00:41:12,550 Co n reprezentujący prawo teraz, w tym przypadku, gdybym miał jeść? 906 00:41:12,550 --> 00:41:13,530 >> PUBLICZNOŚCI: 3. 907 00:41:13,530 --> 00:41:14,520 >> ANDI PENG: 3, dokładnie. 908 00:41:14,520 --> 00:41:18,820 Mamy więc do int i równa zero, n jest równe 3, zasadniczo. 909 00:41:18,820 --> 00:41:22,355 A ja ma zamiar uruchomić dopóki jest to mniej niż 3i ++. 910 00:41:22,355 --> 00:41:24,980 I to będzie w zasadzie przejść przez i zrobić to samo. 911 00:41:24,980 --> 00:41:26,979 To będzie wydrukować każda wartość i daje 912 00:41:26,979 --> 00:41:29,700 E-A-T. To tylko oznaczający inny sposób pisania. 913 00:41:29,700 --> 00:41:31,170 To będzie bardzo pomocne. 914 00:41:31,170 --> 00:41:31,670 Tak. 915 00:41:31,670 --> 00:41:35,174 PUBLICZNOŚCI: Co korzyści z wprowadzenia n wynosi strlen słowo wewnątrz, że 916 00:41:35,174 --> 00:41:36,894 pętli [niesłyszalne]? 917 00:41:36,894 --> 00:41:37,560 ANDI PENG: Tak. 918 00:41:37,560 --> 00:41:44,880 Więc gdybym to-- powiedzieć, na przykład, gdybym miał to zrobić, a następnie 919 00:41:44,880 --> 00:41:51,935 do-- oop--, że w moim kodu, byłoby faktycznie robi tak samo. 920 00:41:51,935 --> 00:41:55,060 , Tak, że Dawid wyjaśnił jednak to podczas wykładu, jeśli ktoś z was chłopaki 921 00:41:55,060 --> 00:41:57,854 pamiętam, było to, że, jak ludzie, jak programistów, 922 00:41:57,854 --> 00:42:00,270 naprawdę spróbować programie Nasi kod tak, że nasz komputer ma 923 00:42:00,270 --> 00:42:04,070 do pracy możliwie jak najmniejszy, więc że nasz kod jest bardzo wydajny. 924 00:42:04,070 --> 00:42:06,850 >> Więc gdybym miał, że nie, co by się stało w moim pętli for 925 00:42:06,850 --> 00:42:10,790 jest to, że ja pierwszy zadeklarować zmienna o nazwie i będzie 0. 926 00:42:10,790 --> 00:42:13,350 Mam zamiar sprawdzić, oh, co jest strlen od słowa? 927 00:42:13,350 --> 00:42:15,000 Och, strlen 3. 928 00:42:15,000 --> 00:42:16,191 Tak jest i mniej niż trzy? 929 00:42:16,191 --> 00:42:16,690 Tak to jest. 930 00:42:16,690 --> 00:42:17,870 Idę biegać. 931 00:42:17,870 --> 00:42:21,130 >> A potem drugi raz z powrotem około pętla, mam zamiar zwiększyć i. 932 00:42:21,130 --> 00:42:22,550 i będzie jeden. 933 00:42:22,550 --> 00:42:25,600 A ja ma zamiar sprawdzić, oh, ale co to jest strlen słowa? 934 00:42:25,600 --> 00:42:26,839 Och, to trzy. 935 00:42:26,839 --> 00:42:29,880 A nie, że wydają rodzaju marnotrawstwa, za każdym razem poprzez pętlę, 936 00:42:29,880 --> 00:42:33,340 do kontroli funkcji, chociaż z strlen o słowie 937 00:42:33,340 --> 00:42:35,490 nigdy nie zmieni? 938 00:42:35,490 --> 00:42:38,590 >> Więc jest to dodatkowa moc dla komputera. 939 00:42:38,590 --> 00:42:42,180 Kiedy zaczynasz mówić o rzeczach, że są miliardy i miliardy 940 00:42:42,180 --> 00:42:44,431 i miliardy miejsc długie, wyobrazić sobie komputer 941 00:42:44,431 --> 00:42:47,430 konieczności fizycznego przejść i sprawdzić wszystko to za każdym razem. 942 00:42:47,430 --> 00:42:53,170 Dlatego, aby po prostu ze względu na efektywność, 943 00:42:53,170 --> 00:42:57,620 mamy tendencję, aby to zrobił, ponieważ w ten sposób jesteśmy tylko 944 00:42:57,620 --> 00:42:59,850 wywołanie funkcji raz na początku 945 00:42:59,850 --> 00:43:01,766 a każdy czas przechodzi przez to będzie 946 00:43:01,766 --> 00:43:03,789 do przechowywania wartości 3 tam, że nie 947 00:43:03,789 --> 00:43:05,330 trzeba ciągle sprawdzać za każdym razem. 948 00:43:05,330 --> 00:43:05,743 Tak. 949 00:43:05,743 --> 00:43:06,409 >> PUBLICZNOŚCI: Niestety. 950 00:43:06,409 --> 00:43:09,070 Tylko [niesłyszalne]. 951 00:43:09,070 --> 00:43:13,985 Można to zrobić int n wynosi strlen i umieścić że wyżej zewnątrz pętli for 952 00:43:13,985 --> 00:43:15,364 równie dobrze? 953 00:43:15,364 --> 00:43:16,030 ANDI PENG: Tak. 954 00:43:16,030 --> 00:43:17,100 Można to zrobić, absolutnie. 955 00:43:17,100 --> 00:43:19,970 Powodem mamy to tutaj jest dlatego, że sposób, w jaki na prace pętli 956 00:43:19,970 --> 00:43:23,500 jest to, że się nazywa zmienna lokalna w tym sensie, 957 00:43:23,500 --> 00:43:26,150 że wszystko, co masz tworząc wewnątrz pętli for 958 00:43:26,150 --> 00:43:27,890 istnieje tylko wewnątrz pętli for. 959 00:43:27,890 --> 00:43:31,530 >> Więc zmienna i tylko istnieje w tych wsporników. 960 00:43:31,530 --> 00:43:35,260 I tu zmienne n także istnieje tylko w tych wsporników. 961 00:43:35,260 --> 00:43:39,350 Więc jeśli było używać strlen z słowo kilka razy w dół poniżej, 962 00:43:39,350 --> 00:43:42,230 absolutnie najlepszym sposobem, aby to zrobić byłoby zadeklarować go na szczyt 963 00:43:42,230 --> 00:43:43,563 więc nie musisz robić to raz. 964 00:43:43,563 --> 00:43:45,420 Tak. 965 00:43:45,420 --> 00:43:47,670 PUBLICZNOŚCI: Dlaczego masz Nowa linia po procentach 966 00:43:47,670 --> 00:43:51,300 widząc, jeśli chcesz umieścić wszystkie litery obok oddzielić? 967 00:43:51,300 --> 00:43:54,140 >> ANDI PENG: Och, chciałem wydrukować je wszystkie na każdej linii. 968 00:43:54,140 --> 00:43:54,890 To nie ma znaczenia. 969 00:43:54,890 --> 00:43:55,890 Tak, to jest formatowanie. 970 00:43:55,890 --> 00:43:57,181 To dobre pytanie, choć. 971 00:43:57,181 --> 00:43:59,360 Tak, jeśli chcę wydrukować to wszystko tylko na jednej linii, 972 00:43:59,360 --> 00:44:02,731 Nie chciałbym mieć myślnik w. 973 00:44:02,731 --> 00:44:03,230 OK. 974 00:44:03,230 --> 00:44:06,880 Każdy dobry? 975 00:44:06,880 --> 00:44:07,500 OK. 976 00:44:07,500 --> 00:44:08,000 Chłodny. 977 00:44:08,000 --> 00:44:12,080 978 00:44:12,080 --> 00:44:14,750 >> Więc myślę, że mówił mało. 979 00:44:14,750 --> 00:44:20,040 Kolej chłopaki do uruchomienia poprzez Kod i powiedz mi, co jest nie tak tutaj. 980 00:44:20,040 --> 00:44:21,560 Gdzie jest błąd? 981 00:44:21,560 --> 00:44:26,920 Więc jak widać, już uznany za Nowa tablica typu String o nazwie klasy. 982 00:44:26,920 --> 00:44:30,220 A ja wprowadzane Sam, Jess, i Kim do niego. 983 00:44:30,220 --> 00:44:33,400 A ja próbuje wydrukować wszystkie elementy tablicy. 984 00:44:33,400 --> 00:44:36,796 Czy ktoś może mi powiedzieć, dlaczego ma dać mi problemy? 985 00:44:36,796 --> 00:44:39,320 Dam ci faceci 10 sekundy, aby myśleć o tym. 986 00:44:39,320 --> 00:44:55,490 987 00:44:55,490 --> 00:44:56,619 >> OK. 988 00:44:56,619 --> 00:44:57,118 Tak? 989 00:44:57,118 --> 00:45:01,972 >> PUBLICZNOŚCI: Czy lewica centrum równe 3 lub [niesłyszalne]? 990 00:45:01,972 --> 00:45:02,680 ANDI PENG: Racja. 991 00:45:02,680 --> 00:45:06,784 Więc ile razy jest to rzeczywiście będzie prowadzony przez tę pętlę? 992 00:45:06,784 --> 00:45:07,620 >> PUBLICZNOŚCI: Cztery. 993 00:45:07,620 --> 00:45:08,070 >> ANDI PENG: Dokładnie. 994 00:45:08,070 --> 00:45:09,445 Zapowiada się poprzez cztery razy. 995 00:45:09,445 --> 00:45:12,250 To będzie przebiegać przez w 0, 1, 2 i 3, 996 00:45:12,250 --> 00:45:15,200 ponieważ ich elementem jest i jest mniejsza niż lub równa 3. 997 00:45:15,200 --> 00:45:16,960 To się nie zatrzymać, kiedy to 2. 998 00:45:16,960 --> 00:45:18,800 Zapowiada się utrzymać dzieje, dopóki nie natrafi 3. 999 00:45:18,800 --> 00:45:21,720 A jak wiemy, jest tylko trzy elementy w naszej rzeczywistej tablicy. 1000 00:45:21,720 --> 00:45:27,260 >> Jeśli staramy się, aby uzyskać dostęp czwarty Element lub indeks 3, 1001 00:45:27,260 --> 00:45:30,357 masz zamiar uderzyć gdzieś w pamięci, które nie istnieją. 1002 00:45:30,357 --> 00:45:31,690 To się nazywa terminator null. 1003 00:45:31,690 --> 00:45:32,856 Nic ci się nie będzie. 1004 00:45:32,856 --> 00:45:35,324 Komputer nie będzie być bardzo szczęśliwy z tobą. 1005 00:45:35,324 --> 00:45:36,170 Tak. 1006 00:45:36,170 --> 00:45:38,430 Czy ktoś ma pytania dlaczego to się dzieje? 1007 00:45:38,430 --> 00:45:39,679 To wspólny obszar, aby uniknąć. 1008 00:45:39,679 --> 00:45:40,712 Tak. 1009 00:45:40,712 --> 00:45:45,777 >> PUBLICZNOŚCI: Nie pierwszy przesuń również ciąg 2? 1010 00:45:45,777 --> 00:45:46,360 ANDI PENG: Nie 1011 00:45:46,360 --> 00:45:49,610 Więc zasadniczo, gdy robisz tablicę, 1012 00:45:49,610 --> 00:45:51,540 że prawy nawias tam, że number-- wszystkie 1013 00:45:51,540 --> 00:45:53,480 to jest informacją, jest to, jak wiele elementów mam. 1014 00:45:53,480 --> 00:45:55,840 To nie jest właściwie mówi mi indeksy niczego. 1015 00:45:55,840 --> 00:45:58,760 Więc w tym przypadku, wiem, że chcesz pisać w trzech miejscach, 1016 00:45:58,760 --> 00:46:02,690 w trzech miejscach fizycznych do posiadać co chcę trzymać. 1017 00:46:02,690 --> 00:46:04,510 Więc dlatego liczba trzy jest tam. 1018 00:46:04,510 --> 00:46:06,560 Jednak gdybym chciał rzeczywiście do niego dostęp, 1019 00:46:06,560 --> 00:46:11,220 gdybym chciał powiedzieć, printf Numer Uchwyt klasy, a następnie 1020 00:46:11,220 --> 00:46:14,560 masz zamiar faktycznie wprowadzone indeks fizyczna nie. 1021 00:46:14,560 --> 00:46:16,330 Tak, dobre pytanie. 1022 00:46:16,330 --> 00:46:20,065 >> PUBLICZNOŚCI: Tak jest fizyczne Strona ma być [niesłyszalne]? 1023 00:46:20,065 --> 00:46:20,940 ANDI PENG: Przykro mi. 1024 00:46:20,940 --> 00:46:21,500 Można mówić trochę? 1025 00:46:21,500 --> 00:46:24,208 >> PUBLICZNOŚCI: Więc to indeks fizyczna [Niesłyszalne] każdy z pudełka? 1026 00:46:24,208 --> 00:46:25,260 [Niesłyszalne]? 1027 00:46:25,260 --> 00:46:26,040 >> ANDI PENG: Tak. 1028 00:46:26,040 --> 00:46:28,970 Więc mam zamiar wrócić do tutaj. 1029 00:46:28,970 --> 00:46:31,120 Pomyśl o tutaj. 1030 00:46:31,120 --> 00:46:32,820 Mamy tablicę wielkości 3. 1031 00:46:32,820 --> 00:46:35,540 Są trzy miejsca, jak, fizyczne zastępcze tutaj. 1032 00:46:35,540 --> 00:46:37,620 Ale są nazwany 0, 1 i 2. 1033 00:46:37,620 --> 00:46:40,700 Więc gdybym chciał uzyskać do nich dostęp, sposób, w jaki do nich dostęp 1034 00:46:40,700 --> 00:46:43,480 jest printf od co chciałem tutaj. 1035 00:46:43,480 --> 00:46:45,485 Trzeba by wydrukować z nazwą tego, 1036 00:46:45,485 --> 00:46:47,610 Bo wtedy komputera wie, oh, muszę szukać 1037 00:46:47,610 --> 00:46:51,391 w tej tablicy dla indeksu 0TH. 1038 00:46:51,391 --> 00:46:51,890 Tak. 1039 00:46:51,890 --> 00:46:53,306 Ale wielkość tego nie zmieni. 1040 00:46:53,306 --> 00:46:55,492 Rozmiar jest 3, niezależnie w jaki sposób można je oznaczyć. 1041 00:46:55,492 --> 00:46:58,321 1042 00:46:58,321 --> 00:46:58,820 OK. 1043 00:46:58,820 --> 00:47:01,387 Każdy dobry? 1044 00:47:01,387 --> 00:47:02,970 PUBLICZNOŚCI: Więc za każdym razem [niesłyszalne]? 1045 00:47:02,970 --> 00:47:06,357 1046 00:47:06,357 --> 00:47:06,940 ANDI PENG: OK. 1047 00:47:06,940 --> 00:47:13,270 Więc w tym przypadku naprawdę nie dostać się do niego w tej chwili w toku. 1048 00:47:13,270 --> 00:47:16,760 Ale wiem, że string-- jak ja powiedziałem, ciąg jest zasadniczo 1049 00:47:16,760 --> 00:47:18,440 tablica znaków. 1050 00:47:18,440 --> 00:47:21,430 Więc jeśli utworzyć tablicę strun, I rodzaju 1051 00:47:21,430 --> 00:47:24,430 mają tablicę tablicy znaków, prawda? 1052 00:47:24,430 --> 00:47:27,720 >> Tak więc w tym przypadku, bo mają tablicę łańcuchów, 1053 00:47:27,720 --> 00:47:31,340 jeśli były do ​​wejścia naprawdę długie słowo, które nadal zajmuje tylko jedno miejsce, 1054 00:47:31,340 --> 00:47:33,230 ponieważ jest to jeden ciąg. 1055 00:47:33,230 --> 00:47:37,492 Ale jeśli było myśleć o postacie z tej tablicy, 1056 00:47:37,492 --> 00:47:40,450 to, że bierze się dużo więcej znaków niż każdy z pozostałych słów 1057 00:47:40,450 --> 00:47:41,372 są. 1058 00:47:41,372 --> 00:47:42,830 Nie bardzo ważne teraz. 1059 00:47:42,830 --> 00:47:44,921 Ale to tylko ogólnie jak to działa. 1060 00:47:44,921 --> 00:47:49,750 1061 00:47:49,750 --> 00:47:50,560 >> OK. 1062 00:47:50,560 --> 00:47:55,840 Więc to jest coś, dam ci zrobić dużo w ciągu semestru. 1063 00:47:55,840 --> 00:47:57,500 Muszę odpocząć mój głos. 1064 00:47:57,500 --> 00:47:59,530 Chłopaki muszą stymulować siebie. 1065 00:47:59,530 --> 00:48:02,300 Wielu z was zapewne spać teraz. 1066 00:48:02,300 --> 00:48:05,960 Jestem wprowadzania losowych problemów gdzie jako klasy lub 1067 00:48:05,960 --> 00:48:09,480 z partnerem, obok Ciebie idą spędzić kilka minut rozmowy 1068 00:48:09,480 --> 00:48:14,980 o tym, jak pójdziemy na temat rozwiązywania lub tworzenia programu, takich jak ten. 1069 00:48:14,980 --> 00:48:17,100 >> Więc teraz, chcemy stworzyć program-- 1070 00:48:17,100 --> 00:48:19,560 będziemy nazywać upper.c--, że konwertyci 1071 00:48:19,560 --> 00:48:24,787 mała litera słowa do wyższej klasy string-- wielkie, przepraszam. 1072 00:48:24,787 --> 00:48:26,370 Słowo w warkoczach, przepraszam, jest synonimem. 1073 00:48:26,370 --> 00:48:28,370 Mam zamiar je zmienić oznacza to samo. 1074 00:48:28,370 --> 00:48:32,270 1075 00:48:32,270 --> 00:48:33,499 >> Tak. 1076 00:48:33,499 --> 00:48:34,540 Potrwać kilka minut. 1077 00:48:34,540 --> 00:48:37,130 Nie muszą być napisany w dowolnym języku. 1078 00:48:37,130 --> 00:48:39,890 Wystarczy w kodzie pseudokod lub logicznie jak będzie nawet 1079 00:48:39,890 --> 00:48:42,083 zabrać taki problem. 1080 00:48:42,083 --> 00:48:42,583 Tak. 1081 00:48:42,583 --> 00:48:49,881 1082 00:48:49,881 --> 00:48:52,780 >> [SIDE ROZMOWA] 1083 00:48:52,780 --> 00:49:18,680 1084 00:49:18,680 --> 00:49:22,130 >> Zauważyłem również, że chłopaki can-- I niby zobaczyć już program. 1085 00:49:22,130 --> 00:49:24,600 Myślę, że mój brak Tryb prezenter jest problem. 1086 00:49:24,600 --> 00:49:27,410 Ale jest ok. 1087 00:49:27,410 --> 00:49:30,410 >> [SIDE ROZMOWA] 1088 00:49:30,410 --> 00:50:03,589 1089 00:50:03,589 --> 00:50:04,380 Tak, proszę, chłopaki. 1090 00:50:04,380 --> 00:50:05,400 Przyjdź po słodycze. 1091 00:50:05,400 --> 00:50:06,372 Przyjdź po słodycze. 1092 00:50:06,372 --> 00:50:07,698 >> PUBLICZNOŚCI: Tak! 1093 00:50:07,698 --> 00:50:09,958 >> [SIDE ROZMOWA] 1094 00:50:09,958 --> 00:50:16,101 1095 00:50:16,101 --> 00:50:18,100 ANDI PENG: Również, tak, Zacznę rzucać cukierki 1096 00:50:18,100 --> 00:50:20,280 na ludzi, którzy nie odpowiadają na pytania. 1097 00:50:20,280 --> 00:50:22,260 Więc powinny odpowiedzieć na pytania. 1098 00:50:22,260 --> 00:50:24,895 Albo Przypuszczam ludzi, którzy należy odpowiedzieć na pytania. 1099 00:50:24,895 --> 00:50:26,070 Tak, odwrót. 1100 00:50:26,070 --> 00:50:28,570 >> [SIDE ROZMOWA] 1101 00:50:28,570 --> 00:51:13,399 1102 00:51:13,399 --> 00:51:14,274 PUBLICZNOŚCI: [niesłyszalne] 1103 00:51:14,274 --> 00:51:17,300 1104 00:51:17,300 --> 00:51:18,340 >> ANDI PENG: Tak. 1105 00:51:18,340 --> 00:51:19,340 Tak. 1106 00:51:19,340 --> 00:51:22,840 >> [SIDE ROZMOWA] 1107 00:51:22,840 --> 00:51:40,700 1108 00:51:40,700 --> 00:51:41,590 >> Dobra, chłopaki. 1109 00:51:41,590 --> 00:51:44,731 Weźmy, na przykład, jeszcze 10 sekund. 1110 00:51:44,731 --> 00:51:48,210 >> [SIDE ROZMOWA] 1111 00:51:48,210 --> 00:52:10,600 1112 00:52:10,600 --> 00:52:11,750 >> OK, chłopaki. 1113 00:52:11,750 --> 00:52:14,920 Więc zanim zaczniemy próby faktycznie fizycznie napisać kod, 1114 00:52:14,920 --> 00:52:20,650 dobry zwyczaj, aby rozwijać to, że chcemy pierwszego rodzaju powodu 1115 00:52:20,650 --> 00:52:22,737 logicznie jak by to zrobić. 1116 00:52:22,737 --> 00:52:24,570 Chcesz, aby upewnić się, przed tobą fizycznie 1117 00:52:24,570 --> 00:52:27,210 rozpocząć próby do kodu w Mario, które sprawiają, 1118 00:52:27,210 --> 00:52:28,870 pamiętaj, że masz swój Pseudokod. 1119 00:52:28,870 --> 00:52:31,235 Że bierze cię przez co jest potrzebne do stworzenia tak 1120 00:52:31,235 --> 00:52:33,360 , że kiedy fizycznie Napisać program później, 1121 00:52:33,360 --> 00:52:36,640 jesteś w stanie lepiej wychwycić błędy w kodzie i tego typu rzeczy. 1122 00:52:36,640 --> 00:52:40,460 >> Więc będziemy po prostu zacząć by-- w języku angielskim, w Pseudokod, 1123 00:52:40,460 --> 00:52:43,320 Czy ktoś chce dać mi ogólny wyjaśnienie 1124 00:52:43,320 --> 00:52:46,250 od tego, jak będziemy za to zabrać? 1125 00:52:46,250 --> 00:52:48,102 Tak. 1126 00:52:48,102 --> 00:52:49,664 >> PUBLICZNOŚCI: [niesłyszalne]. 1127 00:52:49,664 --> 00:52:50,830 ANDI PENG: Jasne, nie ma obaw. 1128 00:52:50,830 --> 00:52:57,233 PUBLICZNOŚCI: Czy można zwrócić się do niego i zapytać ktoś, aby uzyskać ciąg 1-- Tak, ciąg, 1129 00:52:57,233 --> 00:52:58,160 i wtedy-- 1130 00:52:58,160 --> 00:52:59,826 >> ANDI PENG: Tak, tak, to jest to dobry początek. 1131 00:52:59,826 --> 00:53:01,972 Zacznę pisanie, przepraszam, jak mówisz. 1132 00:53:01,972 --> 00:53:02,471 Więc-- 1133 00:53:02,471 --> 00:53:05,698 >> PUBLICZNOŚCI: --The małe Liczby są wyższe, prawda? 1134 00:53:05,698 --> 00:53:08,519 Lub małe litery mają wysokie numery? 1135 00:53:08,519 --> 00:53:09,310 ANDI PENG: Dokładnie. 1136 00:53:09,310 --> 00:53:16,156 PUBLICZNOŚCI: Więc odejmiemy 32 z tego co [niesłyszalne]. 1137 00:53:16,156 --> 00:53:28,600 1138 00:53:28,600 --> 00:53:29,870 >> ANDI PENG: Świetnie. 1139 00:53:29,870 --> 00:53:35,020 Więc my niby mają ogólny sens od tego, jak pracować nad tym problemem. 1140 00:53:35,020 --> 00:53:40,060 Wiedząc, że mamy trochę nauczyłem sposób fizyczny, że struny 1141 00:53:40,060 --> 00:53:43,320 są przechowywane w pamięci, Co ty już 1142 00:53:43,320 --> 00:53:45,920 wiem, że będziesz prawdopodobnie napisać w kodzie 1143 00:53:45,920 --> 00:53:48,288 aby poruszać się w ciągu? 1144 00:53:48,288 --> 00:53:49,259 >> PUBLICZNOŚCI: Dla pętli. 1145 00:53:49,259 --> 00:53:50,550 ANDI PENG: A dla pętli, dokładnie. 1146 00:53:50,550 --> 00:53:56,540 1147 00:53:56,540 --> 00:53:57,220 Wielki. 1148 00:53:57,220 --> 00:54:00,539 Więc my niby mają ogólny pseudokod zapisane 1149 00:54:00,539 --> 00:54:02,330 że niby daje Ci zauważa tego, jak 1150 00:54:02,330 --> 00:54:03,900 ruszy o rozwiązaniu problemu. 1151 00:54:03,900 --> 00:54:06,150 Teraz, że masz to, ci może odwołać go na później 1152 00:54:06,150 --> 00:54:08,233 kiedy starasz się właściwie napisać kod. 1153 00:54:08,233 --> 00:54:10,240 Tak naprawdę możemy go tutaj. 1154 00:54:10,240 --> 00:54:25,130 A ja mam funkcję o nazwie upper.c-- tam to jest-- się tylko z pustego szablonu 1155 00:54:25,130 --> 00:54:28,510 teraz, że chłopaki będą mi pomóc dowiedzieć się, w jaki sposób napisać 1156 00:54:28,510 --> 00:54:30,430 ta linia nie code-- linii kodu. 1157 00:54:30,430 --> 00:54:32,890 To będzie kilka linii kodu. 1158 00:54:32,890 --> 00:54:35,710 >> Podczas uruchamiania jakichkolwiek pusty pset, co jest 1159 00:54:35,710 --> 00:54:37,418 pierwszą rzeczą, którą trzeba pamiętać, aby zrobić? 1160 00:54:37,418 --> 00:54:39,290 >> PUBLICZNOŚCI: [niesłyszalne]. 1161 00:54:39,290 --> 00:54:41,000 >> ANDI PENG: Wielka Tak. 1162 00:54:41,000 --> 00:54:41,500 Zawierać. 1163 00:54:41,500 --> 00:54:44,850 1164 00:54:44,850 --> 00:54:47,130 stdio.h. 1165 00:54:47,130 --> 00:54:49,640 Często jest to jeden z najbardziej proste błędy ludzi 1166 00:54:49,640 --> 00:54:51,598 będzie, gdy są pisania, że ​​Będą 1167 00:54:51,598 --> 00:54:54,180 zapomnij zawierać ważne biblioteki muszą. 1168 00:54:54,180 --> 00:54:57,689 Więc jeśli to godziny pracy i jesteś podobny, Nie wiem, dlaczego mój kod nie działa. 1169 00:54:57,689 --> 00:54:59,230 Czy możesz mi powiedzieć, dlaczego to nie działa? 1170 00:54:59,230 --> 00:55:00,730 Mamy zamiar powiedzieć, czy #include? 1171 00:55:00,730 --> 00:55:02,520 Należy go #include. 1172 00:55:02,520 --> 00:55:03,270 OK. 1173 00:55:03,270 --> 00:55:07,230 >> Mamy więc standard I / O tutaj. 1174 00:55:07,230 --> 00:55:10,740 Jest to, że tylko biblioteki będziemy potrzebować tutaj? 1175 00:55:10,740 --> 00:55:12,681 Co jeszcze możemy zrobić? 1176 00:55:12,681 --> 00:55:13,180 Przepraszam. 1177 00:55:13,180 --> 00:55:14,562 Ktoś po prostu krzyczeć go? 1178 00:55:14,562 --> 00:55:15,666 >> PUBLICZNOŚCI: [niesłyszalne]. 1179 00:55:15,666 --> 00:55:16,666 ANDI PENG: Proszę bardzo. 1180 00:55:16,666 --> 00:55:20,320 1181 00:55:20,320 --> 00:55:21,440 OK. 1182 00:55:21,440 --> 00:55:26,070 A jak mam go o rozpoczęciu jakiejkolwiek funkcji, każdy rodzaj funkcji głównego 1183 00:55:26,070 --> 00:55:28,760 w naszym programie? 1184 00:55:28,760 --> 00:55:30,020 Int main. 1185 00:55:30,020 --> 00:55:34,531 1186 00:55:34,531 --> 00:55:35,030 OK. 1187 00:55:35,030 --> 00:55:35,970 Co mogę umieścić wewnątrz tutaj? 1188 00:55:35,970 --> 00:55:37,640 Co jest pierwszą rzeczą, którą chcesz zrobić? 1189 00:55:37,640 --> 00:55:39,910 Jeśli chcemy uzyskać ciąg od użytkownika, 1190 00:55:39,910 --> 00:55:43,870 co będziemy mieć robić na pierwszej linii? 1191 00:55:43,870 --> 00:55:46,120 Niestety, chłopaki po prostu czuć swobodnie mówić i głośno. 1192 00:55:46,120 --> 00:55:47,123 Wystarczy krzyknąć cokolwiek. 1193 00:55:47,123 --> 00:55:48,772 >> PUBLICZNOŚCI: Zapytaj użytkownika? 1194 00:55:48,772 --> 00:55:49,980 ANDI PENG: Jak mamy to zrobić? 1195 00:55:49,980 --> 00:55:51,873 Ask-- mam zamiar wpisać "zwrócić się do użytkownika"? 1196 00:55:51,873 --> 00:55:52,600 >> PUBLICZNOŚCI: printf. 1197 00:55:52,600 --> 00:55:54,341 >> ANDI PENG: OK. 1198 00:55:54,341 --> 00:55:54,840 Printf. 1199 00:55:54,840 --> 00:55:57,372 Co chcę do printf? 1200 00:55:57,372 --> 00:55:58,776 >> PUBLICZNOŚCI: Wpisz coś. 1201 00:55:58,776 --> 00:56:02,760 1202 00:56:02,760 --> 00:56:03,840 >> ANDI PENG: Jak to? 1203 00:56:03,840 --> 00:56:05,430 Chłopaki, udawać, że jestem komputer. 1204 00:56:05,430 --> 00:56:08,475 Fizycznie mi na każdym kroku że muszę wpisać tutaj? 1205 00:56:08,475 --> 00:56:09,600 Czy robię coś źle? 1206 00:56:09,600 --> 00:56:10,743 Powinienem był wpisany coś? 1207 00:56:10,743 --> 00:56:11,690 >> PUBLICZNOŚCI: Musisz cytaty. 1208 00:56:11,690 --> 00:56:12,380 >> ANDI PENG: Muszę cytaty? 1209 00:56:12,380 --> 00:56:12,880 OK. 1210 00:56:12,880 --> 00:56:15,520 1211 00:56:15,520 --> 00:56:16,297 OK. 1212 00:56:16,297 --> 00:56:17,698 >> PUBLICZNOŚCI: A potem nowa linia. 1213 00:56:17,698 --> 00:56:21,434 1214 00:56:21,434 --> 00:56:22,465 Średnik. 1215 00:56:22,465 --> 00:56:23,340 ANDI PENG: średnikiem? 1216 00:56:23,340 --> 00:56:24,060 OK. 1217 00:56:24,060 --> 00:56:24,560 Dobry. 1218 00:56:24,560 --> 00:56:27,060 >> PUBLICZNOŚCI: A może określić że chcesz go małymi literami? 1219 00:56:27,060 --> 00:56:30,120 1220 00:56:30,120 --> 00:56:31,415 >> ANDI PENG: Świetnie. 1221 00:56:31,415 --> 00:56:33,540 Chłopaki śmieją się ze mnie zapominając umieścić średnik. 1222 00:56:33,540 --> 00:56:36,350 Gwarantuję, gdzieś w toku tej klasie 1223 00:56:36,350 --> 00:56:38,260 będziesz zapomnij umieścić średnik, i to 1224 00:56:38,260 --> 00:56:41,116 zajmie Ci trzy godziny, aby dowiedzieć dlaczego kod nie działa. 1225 00:56:41,116 --> 00:56:42,240 To stało się dla nas wszystkich. 1226 00:56:42,240 --> 00:56:43,950 To prawdopodobnie będzie ci się stało. 1227 00:56:43,950 --> 00:56:46,352 Pobierz w dobrym zwyczaju używając średników. 1228 00:56:46,352 --> 00:56:46,852 OK. 1229 00:56:46,852 --> 00:56:49,010 >> PUBLICZNOŚCI: Czy chcesz zrobić ukośnik w? 1230 00:56:49,010 --> 00:56:50,398 >> ANDI PENG: Jasne. 1231 00:56:50,398 --> 00:56:51,856 Chcesz zrobić ukośnik w? 1232 00:56:51,856 --> 00:56:53,020 >> PUBLICZNOŚCI: Tak. 1233 00:56:53,020 --> 00:56:54,330 >> ANDI PENG: Świetnie. 1234 00:56:54,330 --> 00:56:54,830 OK. 1235 00:56:54,830 --> 00:56:57,872 Co mam teraz zrobić? 1236 00:56:57,872 --> 00:56:58,964 >> PUBLICZNOŚCI: Uzyskaj ciąg. 1237 00:56:58,964 --> 00:56:59,880 ANDI PENG: Uzyskaj ciąg. 1238 00:56:59,880 --> 00:57:03,080 1239 00:57:03,080 --> 00:57:03,830 Więc co mam wpisać? 1240 00:57:03,830 --> 00:57:04,233 Ktoś? 1241 00:57:04,233 --> 00:57:05,040 >> PUBLICZNOŚCI: String s. 1242 00:57:05,040 --> 00:57:05,873 >> ANDI PENG: String s. 1243 00:57:05,873 --> 00:57:07,251 PUBLICZNOŚCI: GetString. 1244 00:57:07,251 --> 00:57:09,000 ANDI PENG: Ktoś, może mi, gdzie możesz powiedzieć 1245 00:57:09,000 --> 00:57:12,000 funkcja ta GetString pochodzi? 1246 00:57:12,000 --> 00:57:13,660 >> PUBLICZNOŚCI: string.h. 1247 00:57:13,660 --> 00:57:15,256 >> ANDI PENG: string.h? 1248 00:57:15,256 --> 00:57:16,715 Myślisz, że to od string.h? 1249 00:57:16,715 --> 00:57:17,830 >> PUBLICZNOŚCI: [niesłyszalne]. 1250 00:57:17,830 --> 00:57:18,830 >> ANDI PENG: Proszę bardzo. 1251 00:57:18,830 --> 00:57:21,280 To od CS50.h. 1252 00:57:21,280 --> 00:57:24,530 Jeśli zawsze mylić na którym plik biblioteki jest lub pliku nagłówka jest, 1253 00:57:24,530 --> 00:57:28,450 google dosłownie string.h, i powiem ci 1254 00:57:28,450 --> 00:57:30,450 jakie są wszystkie funkcje które są w string.h. 1255 00:57:30,450 --> 00:57:31,340 OK. 1256 00:57:31,340 --> 00:57:35,210 >> Więc teraz, że stworzyłem ciąg i mam skłonić użytkownika do niego, 1257 00:57:35,210 --> 00:57:38,770 I już zapisana w zmiennej nazwanych s, co muszę teraz zrobić? 1258 00:57:38,770 --> 00:57:40,652 >> PUBLICZNOŚCI: Sprawdź, czy to małymi literami. 1259 00:57:40,652 --> 00:57:41,360 ANDI PENG: Słucham? 1260 00:57:41,360 --> 00:57:42,545 PUBLICZNOŚCI: Sprawdź, czy to małymi literami. 1261 00:57:42,545 --> 00:57:44,045 ANDI PENG: Dobra, zróbmy to. 1262 00:57:44,045 --> 00:57:45,857 Jak mogę to zrobić? 1263 00:57:45,857 --> 00:57:47,940 W rzeczywistości, dla celów klasy teraz, 1264 00:57:47,940 --> 00:57:50,330 jesteśmy po prostu będzie Zakładam, że wszystko 1265 00:57:50,330 --> 00:57:52,620 Wejście to jest, że już małe. 1266 00:57:52,620 --> 00:57:55,430 Jeśli chcesz sprawdzić, byś wystarczy dodać instrukcji warunkowej 1267 00:57:55,430 --> 00:57:59,640 że sprawdził, że przebiegł każdy element tablicy 1268 00:57:59,640 --> 00:58:02,540 i sprawdzić, czy jest to pomiędzy pewnymi wartościami. 1269 00:58:02,540 --> 00:58:05,627 Nie pamiętam, co liczba od wartości małymi literami są. 1270 00:58:05,627 --> 00:58:07,210 Możesz to sprawdzić w tabeli ASCII. 1271 00:58:07,210 --> 00:58:08,800 Ale tak, to jest bardzo dobry punkt. 1272 00:58:08,800 --> 00:58:11,758 Ale teraz, jesteśmy po prostu będzie Zakładamy, że wszystkie sznurki mamy wejście 1273 00:58:11,758 --> 00:58:13,130 są małymi literami. 1274 00:58:13,130 --> 00:58:13,870 OK. 1275 00:58:13,870 --> 00:58:18,069 >> Więc jak pójdę temat ten problem dalej? 1276 00:58:18,069 --> 00:58:18,860 PUBLICZNOŚCI: Dla pętli. 1277 00:58:18,860 --> 00:58:19,340 ANDI PENG: Dla pętli? 1278 00:58:19,340 --> 00:58:19,839 OK. 1279 00:58:19,839 --> 00:58:20,847 Powiedz mi, co wpisać. 1280 00:58:20,847 --> 00:58:25,230 >> PUBLICZNOŚCI: Dla int i jest równa 0. 1281 00:58:25,230 --> 00:58:27,230 >> ANDI PENG: OK. 1282 00:58:27,230 --> 00:58:36,350 >> PUBLICZNOŚCI: Och, faktycznie, to ci zrobić przecinek i zrobić n równa strlen. 1283 00:58:36,350 --> 00:58:38,940 >> ANDI PENG: Tak ważną rzeczą że myślę, że ona zauważyłem tutaj 1284 00:58:38,940 --> 00:58:42,936 jest to, że nie mają do powiedzenia int n drugi raz to zrobił. 1285 00:58:42,936 --> 00:58:45,060 Wystarczy wiedzieć, że w sposób dla Pętla kiedy oświadczając, 1286 00:58:45,060 --> 00:58:47,934 faktycznie nie potrzebujesz INT drugi raz zrobić zmienną. 1287 00:58:47,934 --> 00:58:51,202 Można powiedzieć, n strlen. 1288 00:58:51,202 --> 00:58:52,620 >> PUBLICZNOŚCI: S. 1289 00:58:52,620 --> 00:58:53,510 >> ANDI PENG: s. 1290 00:58:53,510 --> 00:58:54,706 OK. 1291 00:58:54,706 --> 00:58:58,370 >> PUBLICZNOŚCI: Wtedy średnik. 1292 00:58:58,370 --> 00:59:00,130 >> ANDI PENG: Jasne. 1293 00:59:00,130 --> 00:59:04,050 >> PUBLICZNOŚCI: A potem [niesłyszalne] n. 1294 00:59:04,050 --> 00:59:07,480 1295 00:59:07,480 --> 00:59:09,460 Wtedy i ++. 1296 00:59:09,460 --> 00:59:11,780 >> ANDI PENG: Świetnie. 1297 00:59:11,780 --> 00:59:12,280 W porządku. 1298 00:59:12,280 --> 00:59:14,690 Co chcemy wewnątrz tego pętli teraz? 1299 00:59:14,690 --> 00:59:17,820 Pamiętaj, że jeśli mamy zamiar uruchomić poprzez ciąg i uruchomić za pomocą tablicy, 1300 00:59:17,820 --> 00:59:19,287 chcemy, by sprawdzić, co się w nim. 1301 00:59:19,287 --> 00:59:20,370 Co będziemy potrzebować? 1302 00:59:20,370 --> 00:59:23,070 1303 00:59:23,070 --> 00:59:26,900 Jest to rodzaj Najtrudniejsze teraz. 1304 00:59:26,900 --> 00:59:27,960 Każdy, kto ma przypuszczenie? 1305 00:59:27,960 --> 00:59:34,160 1306 00:59:34,160 --> 00:59:34,690 >> OK. 1307 00:59:34,690 --> 00:59:37,830 Więc po pierwsze, w jaki sposób możemy nawet uzyskać dostęp? 1308 00:59:37,830 --> 00:59:41,610 Jak możemy nawet najpierw sprawdzić, czy dostęp do elementu w tablicy? 1309 00:59:41,610 --> 00:59:42,920 Jak mamy to zrobić? 1310 00:59:42,920 --> 00:59:47,120 Co znajduje się zapis używamy, aby to zrobić? 1311 00:59:47,120 --> 00:59:50,920 Jaka jest nazwa tej tablicy o nazwie? 1312 00:59:50,920 --> 00:59:52,400 To się nazywa ów, prawda? 1313 00:59:52,400 --> 00:59:54,850 >> Pamiętaj, dowolny ciąg jest zawsze tablicą. 1314 00:59:54,850 --> 00:59:58,210 Więc s uchwyt i, prawda? 1315 00:59:58,210 --> 01:00:01,360 Bo to jest aktualna wartość lub wartość indeksu sprawdzamy. 1316 01:00:01,360 --> 01:00:05,156 I mamy zamiar ustawić, że równe to-- chcemy wartość małą, prawda? 1317 01:00:05,156 --> 01:00:07,530 Chcemy to zmienić lower-- Przepraszamy, ale chcą się wielkimi literami. 1318 01:00:07,530 --> 01:00:10,014 Chcemy, aby włączyć małe litery Wartość w wielką literą. 1319 01:00:10,014 --> 01:00:11,805 I tak like-- Przykro mi, jak masz na imię? 1320 01:00:11,805 --> 01:00:12,580 >> PUBLICZNOŚCI: Heidi. 1321 01:00:12,580 --> 01:00:12,940 >> ANDI PENG: Słucham? 1322 01:00:12,940 --> 01:00:13,280 >> PUBLICZNOŚCI: Heidi. 1323 01:00:13,280 --> 01:00:13,988 >> ANDI PENG: Heidi. 1324 01:00:13,988 --> 01:00:15,850 Podobnie jak Heidi powiedział początkowo, że jesteśmy prawdopodobnie 1325 01:00:15,850 --> 01:00:20,330 będzie potrzebował the-- jesteśmy Prawdopodobnie będzie musiał odjąć 1326 01:00:20,330 --> 01:00:22,630 32 ze wszelkich charc, że jest, prawda? 1327 01:00:22,630 --> 01:00:24,680 Ze względu na ASCII Stół, różnica 1328 01:00:24,680 --> 01:00:27,790 od małej litery i wielka litera jest 32. 1329 01:00:27,790 --> 01:00:31,290 Więc kiedy to robimy, jesteśmy prawdopodobnie będzie chciał odjąć 32, prawda? 1330 01:00:31,290 --> 01:00:33,910 >> Tak więc mamy zamiar zrobić S I. 1331 01:00:33,910 --> 01:00:37,590 1332 01:00:37,590 --> 01:00:41,200 Czy wszyscy zrozumieć, dlaczego to zrobiłem? 1333 01:00:41,200 --> 01:00:45,760 Bo teraz, w naszej tablicy, sprawdzamy indeks 0TH, prawda? 1334 01:00:45,760 --> 01:00:49,190 A w 0TH indeks łańcuch, to jest pierwszy znak. 1335 01:00:49,190 --> 01:00:51,820 A to znak jedziemy założyć, że to małe. 1336 01:00:51,820 --> 01:00:55,980 Jeśli chcemy, aby to wielkie, że trzeba odjąć 32 od jego wartości, 1337 01:00:55,980 --> 01:00:58,620 ponieważ w naszym ASCII Stół, to jak mamy to 1338 01:00:58,620 --> 01:01:01,600 do następnego odpowiadającej wartość, która sprawia, że ​​wielkie litery. 1339 01:01:01,600 --> 01:01:03,714 Czy wszyscy rozumieją, że? 1340 01:01:03,714 --> 01:01:04,213 Tak. 1341 01:01:04,213 --> 01:01:06,530 >> PUBLICZNOŚCI: Można również czy małe litery w minus-- 1342 01:01:06,530 --> 01:01:08,080 >> ANDI PENG: Tak, tak, to jest rzeczywiście bardzo dobre. 1343 01:01:08,080 --> 01:01:10,455 Mam zamiar wrócić do tego, pytanie po tym jak to zrobić. 1344 01:01:10,455 --> 01:01:11,060 Tak. 1345 01:01:11,060 --> 01:01:13,940 A potem, jeśli chcę zobaczyć, co się dzieje, 1346 01:01:13,940 --> 01:01:16,180 Jestem prawdopodobnie będzie Aby wydrukować, prawda? 1347 01:01:16,180 --> 01:01:19,930 Ktoś mi powiedzieć, co Chcę wydrukować tutaj. 1348 01:01:19,930 --> 01:01:29,160 >> PUBLICZNOŚCI: printf procent c odwrotny ukośnik [niesłyszalne]. 1349 01:01:29,160 --> 01:01:33,570 To wartość [niesłyszalne] s i. 1350 01:01:33,570 --> 01:01:34,614 >> ANDI PENG: s i, przepraszam? 1351 01:01:34,614 --> 01:01:35,530 PUBLICZNOŚCI: [niesłyszalne]. 1352 01:01:35,530 --> 01:01:38,550 1353 01:01:38,550 --> 01:01:39,550 ANDI PENG: Nie wiem. 1354 01:01:39,550 --> 01:01:40,600 Co myślisz? 1355 01:01:40,600 --> 01:01:44,016 >> PUBLICZNOŚCI: Cóż, ja wouldn't-- Myślę, że nie będzie bring-- 1356 01:01:44,016 --> 01:01:46,944 Wziąłbym go przez wewnątrz, ponieważ [niesłyszalne]. 1357 01:01:46,944 --> 01:01:49,726 1358 01:01:49,726 --> 01:01:51,392 ANDI PENG: Och, zrobiłby to? 1359 01:01:51,392 --> 01:01:53,867 PUBLICZNOŚCI: Tak. 1360 01:01:53,867 --> 01:01:56,700 ANDI PENG: Zostawmy to tak to jest, a ja wyjaśnić, dlaczego później. 1361 01:01:56,700 --> 01:01:58,533 Pamiętaj, nawet jeśli posiada uchwyt na miejsce, 1362 01:01:58,533 --> 01:02:00,701 chcesz umieścić nawiasy wokół niego. 1363 01:02:00,701 --> 01:02:01,200 W porządku. 1364 01:02:01,200 --> 01:02:04,810 Tak to powinno być tu solidną funkcję. 1365 01:02:04,810 --> 01:02:06,370 Załóżmy, uruchom go i zobacz czy to kompiluje. 1366 01:02:06,370 --> 01:02:08,750 Sprawdź, górna. 1367 01:02:08,750 --> 01:02:09,250 O o. 1368 01:02:09,250 --> 01:02:12,030 1369 01:02:12,030 --> 01:02:13,340 To nie wygląda zbyt dobrze. 1370 01:02:13,340 --> 01:02:14,507 Czemu to się dzieje? 1371 01:02:14,507 --> 01:02:17,340 Jak w przypadku każdego błędu, chcesz iść z powrotem i zacząć od pierwszego, 1372 01:02:17,340 --> 01:02:20,630 ponieważ powoduje zazwyczaj jeden błąd wiele innych błędów po niej. 1373 01:02:20,630 --> 01:02:26,700 Tutaj widzimy upper.c: 18: 25, który mówi mi w tym programie o nazwie upper.c, 1374 01:02:26,700 --> 01:02:33,800 na linii 18, błąd niejawnie deklarując biblioteka funkcji strlen z typem 1375 01:02:33,800 --> 01:02:36,330 unassigned-- bla, nie wiem, co się dzieje po tym. 1376 01:02:36,330 --> 01:02:39,990 >> Wszystko to mówi mi teraz jest że coś się dzieje na strlen. 1377 01:02:39,990 --> 01:02:43,520 I komputer się mylić, bo To jak, nie wiem, co strlen jest? 1378 01:02:43,520 --> 01:02:45,520 Co oznacza, że ​​prawdopodobnie powiedzieć ci brakuje? 1379 01:02:45,520 --> 01:02:46,490 >> PUBLICZNOŚCI: tracisz [niesłyszalne]. 1380 01:02:46,490 --> 01:02:47,630 >> ANDI PENG: Masz rację. 1381 01:02:47,630 --> 01:02:49,510 Dokładnie. 1382 01:02:49,510 --> 01:02:52,140 Tak to jest, gdy jest to ważne jest, aby upewnić się, 1383 01:02:52,140 --> 01:02:56,970 że każda funkcja używać w Kod jest o prawidłową nagłówek 1384 01:02:56,970 --> 01:02:59,660 plik do biblioteki, albo masz zamiar uzyskać wiele błędów 1385 01:02:59,660 --> 01:03:01,150 a kod nie będzie wiedzieć, co się dzieje. 1386 01:03:01,150 --> 01:03:03,050 Tak więc mamy zamiar to string.h tutaj. 1387 01:03:03,050 --> 01:03:06,270 >> Teraz, gdy staramy się skompilować górnej. 1388 01:03:06,270 --> 01:03:08,410 Skompilować poprawnie. 1389 01:03:08,410 --> 01:03:09,960 Miejmy uruchomić ten program. 1390 01:03:09,960 --> 01:03:12,000 Więc wpisać coś w małej litery. 1391 01:03:12,000 --> 01:03:14,920 Co ty faceci chcą wpisać? 1392 01:03:14,920 --> 01:03:16,546 Krzyczeć coś. 1393 01:03:16,546 --> 01:03:17,920 Dobrze, Charly właśnie wszedł. 1394 01:03:17,920 --> 01:03:18,990 Będziemy wpisać nazwę Charly jest. 1395 01:03:18,990 --> 01:03:21,670 1396 01:03:21,670 --> 01:03:22,840 >> Charly małymi literami. 1397 01:03:22,840 --> 01:03:27,742 I miejmy nadzieję, miejmy nadzieję, że jest to będzie krzyczeć i wypluć 1398 01:03:27,742 --> 01:03:28,575 Charly wielkimi literami. 1399 01:03:28,575 --> 01:03:30,830 Hura! 1400 01:03:30,830 --> 01:03:33,430 czy wszyscy zrozumieć, jak Poszedłem na temat rozwiązywania tego? 1401 01:03:33,430 --> 01:03:36,190 Sposób, że mogę manipulować za pomocą liczb całkowitych 1402 01:03:36,190 --> 01:03:39,410 rozwiązać coś, Chcę to zrobić w struny, 1403 01:03:39,410 --> 01:03:44,390 dlatego, znaków i liczb całkowitych odwoływać się w taki sam sposób, ponieważ 1404 01:03:44,390 --> 01:03:45,540 mapowanie ASCII. 1405 01:03:45,540 --> 01:03:52,890 >> Tak, aby wrócić do punktu, jeśli chciał umieścić tutaj zamiast 32 1406 01:03:52,890 --> 01:03:58,959 wielkie Minusem małe litery sprawiedliwy jak że, że będzie działać równie dobrze, 1407 01:03:58,959 --> 01:04:01,750 bo to jest po prostu tylko Różnica pomiędzy tymi dwiema wartościami. 1408 01:04:01,750 --> 01:04:09,570 Jeśli chcę, aby ten again-- Charly. 1409 01:04:09,570 --> 01:04:10,320 O nie. 1410 01:04:10,320 --> 01:04:11,820 Myślę, że poszliśmy w złym kierunku, tak? 1411 01:04:11,820 --> 01:04:13,260 >> PUBLICZNOŚCI: [niesłyszalne] małe litery a. 1412 01:04:13,260 --> 01:04:14,260 >> ANDI PENG: Proszę bardzo. 1413 01:04:14,260 --> 01:04:22,380 1414 01:04:22,380 --> 01:04:22,880 Tak. 1415 01:04:22,880 --> 01:04:24,920 A z pluje Charly. 1416 01:04:24,920 --> 01:04:28,020 Dlatego należy zachować ostrożność podczas jesteś odjęcie wartości 1417 01:04:28,020 --> 01:04:30,400 pamiętać, który z nich jest większa niż druga. 1418 01:04:30,400 --> 01:04:35,220 Na przykład, tutaj zapomniałem że mała litera a jest w rzeczywistości 1419 01:04:35,220 --> 01:04:38,540 większe niż wielkie litery A więc kiedy próbował odjąć im w inny sposób 1420 01:04:38,540 --> 01:04:40,600 ok, mam negatywny 32. 1421 01:04:40,600 --> 01:04:42,800 I mój komputer to: Nie wiem co to jest. 1422 01:04:42,800 --> 01:04:45,810 To prawdopodobieństwo tylko niektóre losowo wartość, która nie jest bardzo dobra. 1423 01:04:45,810 --> 01:04:48,760 A więc upewnij się, że jesteś odjęcie w odpowiedniej długości 1424 01:04:48,760 --> 01:04:52,831 aby znaleźć żądany znak. 1425 01:04:52,831 --> 01:04:53,330 OK. 1426 01:04:53,330 --> 01:04:58,550 Czy ktoś wiedzą jak my udał się do pisania tej funkcji? 1427 01:04:58,550 --> 01:04:59,180 OK. 1428 01:04:59,180 --> 01:05:04,830 Tak właściwie, to funkcja już istnieje w bibliotece nazywa ctype.h. 1429 01:05:04,830 --> 01:05:06,417 Biblioteki nazywa ctype.h. 1430 01:05:06,417 --> 01:05:08,500 Funkcja ta w rzeczywistości jest już napisane dla Ciebie. 1431 01:05:08,500 --> 01:05:10,820 To się nazywa, aby górne. 1432 01:05:10,820 --> 01:05:13,027 >> A więc dla celów Ten zbior, będziesz 1433 01:05:13,027 --> 01:05:15,860 do stwierdzenia, że ​​naprawdę chcesz używać wiele funkcji zawartych 1434 01:05:15,860 --> 01:05:17,390 w bibliotece ctype. 1435 01:05:17,390 --> 01:05:21,040 Do górnej, w celu obniżenia, jest górna, jest lower-- są to wszystkie funkcje 1436 01:05:21,040 --> 01:05:24,914 że będziesz w stanie używać bardzo, bardzo szybko w swoim własnym kodem, który 1437 01:05:24,914 --> 01:05:26,080 robi dokładnie to, co to robi. 1438 01:05:26,080 --> 01:05:28,941 Pisaliśmy, jak konwertować ciąg znaków na wielkie litery. 1439 01:05:28,941 --> 01:05:31,440 Ale w rzeczywistości jest to kod że ktoś inny napisał 1440 01:05:31,440 --> 01:05:33,800 i że można uzyskać dostęp do przez inną funkcję. 1441 01:05:33,800 --> 01:05:34,300 Tak? 1442 01:05:34,300 --> 01:05:39,570 >> PUBLICZNOŚCI: Tak po prostu skopiować tam jest i zrobić to dla każdej litery? 1443 01:05:39,570 --> 01:05:42,070 >> ANDI PENG: Tak, bo ja nie dbają o wartości a. 1444 01:05:42,070 --> 01:05:44,540 Właśnie obchodzi, że różnica między nimi jest 32, prawda? 1445 01:05:44,540 --> 01:05:48,210 Różnica pomiędzy małymi literami b i wielkie litery B jest również 32. 1446 01:05:48,210 --> 01:05:50,860 I różnica pomiędzy C i wielkie litery C jest zawsze 32. 1447 01:05:50,860 --> 01:05:53,235 >> Muszę dbać o Różnica pomiędzy tymi dwoma, 1448 01:05:53,235 --> 01:05:56,666 ponieważ wszystkie litery według tego samego wzoru, prawda? 1449 01:05:56,666 --> 01:05:58,540 Jeśli mam różnicę pomiędzy jednym z nich, 1450 01:05:58,540 --> 01:06:01,050 Wiem, jaka jest różnica pomiędzy nimi jest. 1451 01:06:01,050 --> 01:06:01,740 Dobre pytanie. 1452 01:06:01,740 --> 01:06:04,090 Tak. 1453 01:06:04,090 --> 01:06:06,660 Każdy dobry? 1454 01:06:06,660 --> 01:06:09,080 OK. 1455 01:06:09,080 --> 01:06:09,580 Oop. 1456 01:06:09,580 --> 01:06:14,380 1457 01:06:14,380 --> 01:06:15,270 >> OK. 1458 01:06:15,270 --> 01:06:20,310 Więc to jest inna koncepcja będzie bardzo przydatne, jak ty 1459 01:06:20,310 --> 01:06:22,570 dalej rozwijać Twój kod jest ta idea 1460 01:06:22,570 --> 01:06:25,430 tworzenia funkcji i abstrakcji. 1461 01:06:25,430 --> 01:06:28,479 Więc teraz, my wszyscy podjęte algebry. 1462 01:06:28,479 --> 01:06:31,770 W algebrze, to uczy, że nie ma to wspaniała rzecz nazywa funkcję 1463 01:06:31,770 --> 01:06:35,300 Maszyna, gdzie jeśli Ciebie Wejście jeden rodzaj numeru, 1464 01:06:35,300 --> 01:06:38,720 przebiega przez tego wspaniałego funkcji i się pojawia innego wyjścia, prawda? 1465 01:06:38,720 --> 01:06:42,220 W kodzie, to samo dzieje się w jakiejkolwiek funkcji. 1466 01:06:42,220 --> 01:06:48,230 >> Więc mogłem fizycznie Napisać w moim ciele mojego kodu 1467 01:06:48,230 --> 01:06:52,357 głównym stwierdzenie, że faktycznie robi co organizm kodu robi. 1468 01:06:52,357 --> 01:06:54,940 Ale poza tym, mogę również Napisać wiele różnych funkcji 1469 01:06:54,940 --> 01:06:56,320 że zrobić wiele różnych rzeczy. 1470 01:06:56,320 --> 01:06:58,570 Na przykład, już ve rozpocząć korzystanie z niektórych z nich. 1471 01:06:58,570 --> 01:07:00,610 Printf-- czyli Funkcja, że ​​ktoś inny 1472 01:07:00,610 --> 01:07:02,870 napisał już, że możemy wywołać w naszym kodzie. 1473 01:07:02,870 --> 01:07:05,410 Do upper-- w tym wypadku upper-- jest inna funkcja 1474 01:07:05,410 --> 01:07:07,330 pisaliśmy, że my może wywołać w naszym kodzie. 1475 01:07:07,330 --> 01:07:09,520 A więc myślę, dlaczego mamy nawet funkcje? 1476 01:07:09,520 --> 01:07:12,100 Dlaczego nie możemy po prostu rzuć go w tej samej linii kodu? 1477 01:07:12,100 --> 01:07:13,730 To sprawia, że ​​łatwo dla każdego. 1478 01:07:13,730 --> 01:07:19,200 >> Cóż, rozumowanie, że Jest to przede wszystkim organizacji. 1479 01:07:19,200 --> 01:07:21,880 To naprawdę irytujące dzieje poprzez kod czyjejś 1480 01:07:21,880 --> 01:07:25,110 i jedna funkcja jak printf. 1481 01:07:25,110 --> 01:07:28,570 Jeśli faceci rzeczywiście wiedział, co Funkcja printf wiązało się pisać, 1482 01:07:28,570 --> 01:07:30,530 to, jak, 1000 linii kodu. 1483 01:07:30,530 --> 01:07:32,357 >> Jeśli za każdym razem chciałem do printf coś, 1484 01:07:32,357 --> 01:07:35,440 Miałem napisać 1000 linii kodu, to byłoby naprawdę denerwujące czytać, 1485 01:07:35,440 --> 01:07:36,290 dobrze? 1486 01:07:36,290 --> 01:07:38,860 Dlatego właśnie stworzył ten abstrakcyjny funkcji 1487 01:07:38,860 --> 01:07:41,670 że mamy już kogoś inny napisał gdzieś indziej. 1488 01:07:41,670 --> 01:07:44,920 I za każdym razem musimy użyć go w nasz kod, musimy po prostu powiedzieć printf. 1489 01:07:44,920 --> 01:07:48,070 I to jest w stanie korzystać z funkcji ktoś napisał w naszym kodzie. 1490 01:07:48,070 --> 01:07:51,020 To sprawia, że ​​łatwiej organizacyjnie do odczytu kodu. 1491 01:07:51,020 --> 01:07:53,460 >> Po drugie, jest to uproszczenie. 1492 01:07:53,460 --> 01:07:56,750 Upraszcza czynności mamy podjąć, aby rozwiązać nasz problem. 1493 01:07:56,750 --> 01:07:59,300 Printf, funkcje takie jak printf, Funkcje takie jak do górnej 1494 01:07:59,300 --> 01:08:03,560 Są to wszystko rzeczy, które pozwalają nam uproszczenia naszego kodu w dół, tak jest łatwiej. 1495 01:08:03,560 --> 01:08:05,830 I ostatnia rzecz to możliwość ponownego użycia. 1496 01:08:05,830 --> 01:08:08,710 >> Tak więc fakt, że mamy funkcja nazywa się printf 1497 01:08:08,710 --> 01:08:11,990 które możemy nazwać wiele różnych Czasy i pozwala się do wielokrotnego użytku. 1498 01:08:11,990 --> 01:08:14,980 Gdybym miał napisać printf, Ja napiszę tylko raz. 1499 01:08:14,980 --> 01:08:16,439 Istnieje tylko w tym jednym miejscu. 1500 01:08:16,439 --> 01:08:19,890 Gdybym chciał zrobić to ponownie, chciałbym trzeba skopiować i wkleić wszystko to 1501 01:08:19,890 --> 01:08:21,760 do mojej drugiej linii kodu. 1502 01:08:21,760 --> 01:08:24,880 Dlatego jeśli utworzyć funkcję że istnieje poza naszym głównym, 1503 01:08:24,880 --> 01:08:26,880 możemy po prostu wezwać go i ponownego wykorzystania go, gdy 1504 01:08:26,880 --> 01:08:29,604 musimy więc, że jest to dużo łatwiejsze Programy dla nas pisać. 1505 01:08:29,604 --> 01:08:32,220 1506 01:08:32,220 --> 01:08:35,549 >> Więc sposób, że my rzeczywiście Napisać funkcja jest bardzo podobny, prawda? 1507 01:08:35,549 --> 01:08:37,590 Jest to rodzaj pierwszy przypadek, w którym będziesz 1508 01:08:37,590 --> 01:08:42,830 zobaczyć ujęcie funkcji w stylu różni się od naszej int main pustkę. 1509 01:08:42,830 --> 01:08:46,779 W tym przypadku, gdybym chciał Napisać funkcję o nazwie q, prawda? 1510 01:08:46,779 --> 01:08:49,370 >> A wartość int tutaj to wszystko mówi mi, 1511 01:08:49,370 --> 01:08:51,649 co chcę tego funkcjonować, aby powrócić do mnie? 1512 01:08:51,649 --> 01:08:54,484 Jeśli chcę kostka liczbę całkowitą, Będę chciał wejścia. 1513 01:08:54,484 --> 01:08:55,525 Są to parametry. 1514 01:08:55,525 --> 01:08:58,490 Zamierzam wejść wartość typu int. 1515 01:08:58,490 --> 01:09:01,300 I mam zamiar wrócić inna wartość typu int. 1516 01:09:01,300 --> 01:09:03,050 I tutaj, jak ty widać, wszystko robię 1517 01:09:03,050 --> 01:09:07,300 jest powieszchnia co mój wkład jest w mojej mocy, a jego zwrot. 1518 01:09:07,300 --> 01:09:10,790 >> Więc wszystko, funkcja ta nie jest ma jakieś liczby całkowitej. 1519 01:09:10,790 --> 01:09:14,979 Mnoży je przez siebie dwa razy tak, że kostki w mocy. 1520 01:09:14,979 --> 01:09:17,729 A następnie powraca cokolwiek to wyjście jest. 1521 01:09:17,729 --> 01:09:20,540 Więc w tym przypadku, to dwie linie Kod, który mieliśmy napisać extra. 1522 01:09:20,540 --> 01:09:22,880 Ale jeśli chcemy zadzwonić od tego wiele razy, 1523 01:09:22,880 --> 01:09:26,210 jest to dużo łatwiejsze do wpisania, że ​​jeden Linia tutaj to w kostce niż 1524 01:09:26,210 --> 01:09:28,830 muszą przejść wiele razy. 1525 01:09:28,830 --> 01:09:34,180 >> Więc sposób, że w zasadzie dowolny formatowania jakiejkolwiek funkcji 1526 01:09:34,180 --> 01:09:36,420 będzie istnieć, to jak tutaj. 1527 01:09:36,420 --> 01:09:38,659 Mamy więc nazwę funkcji. 1528 01:09:38,659 --> 01:09:39,950 W tym przypadku, to się nazywa kostki. 1529 01:09:39,950 --> 01:09:42,033 A my nazwiemy to sześcian, ponieważ jest to łatwe do zapamiętania. 1530 01:09:42,033 --> 01:09:44,220 Możesz nazwać to kwadrat i może rzeczywiście być pokrojone w kostkę. 1531 01:09:44,220 --> 01:09:45,500 Nie ma znaczenia. 1532 01:09:45,500 --> 01:09:48,020 Tylko nazwa, że ​​jesteś przypisując swoją funkcję. 1533 01:09:48,020 --> 01:09:51,660 >> Prawo to tutaj, int, jest Typ parametru trzeba. 1534 01:09:51,660 --> 01:09:54,149 Więc co z tej funkcji potrzebują w celu prowadzenia? 1535 01:09:54,149 --> 01:09:55,990 Cóż, to musi wejście. 1536 01:09:55,990 --> 01:09:56,704 Nazwałam go wejście. 1537 01:09:56,704 --> 01:09:58,120 Możesz nazwać to, co chcesz. 1538 01:09:58,120 --> 01:10:00,500 Ale muszę coś z typu int. 1539 01:10:00,500 --> 01:10:03,730 To będzie właściwie wykonywać to, co jest wewnątrz tutaj, 1540 01:10:03,730 --> 01:10:04,990 Ciało funkcji. 1541 01:10:04,990 --> 01:10:07,847 A następnie zwracany typ tu, to int-- 1542 01:10:07,847 --> 01:10:09,680 wszystko, co każe mi się że ta funkcja jest 1543 01:10:09,680 --> 01:10:11,250 zamiar wrócić do mnie w int. 1544 01:10:11,250 --> 01:10:14,460 Więc to będzie podjąć w int, i to będzie oddać int. 1545 01:10:14,460 --> 01:10:17,750 Czy wszyscy rozumieją, w jaki sposób Formatowanie tego typu działa? 1546 01:10:17,750 --> 01:10:18,250 Chłodny. 1547 01:10:18,250 --> 01:10:24,690 1548 01:10:24,690 --> 01:10:25,740 >> OK. 1549 01:10:25,740 --> 01:10:31,770 Więc nie martwi się, czy to wydaje trochę abstrakcyjne teraz. 1550 01:10:31,770 --> 01:10:33,450 To jest coś, co będziemy mówić. 1551 01:10:33,450 --> 01:10:36,310 Będziemy nurkować głębiej później w toku. 1552 01:10:36,310 --> 01:10:41,170 Sposób, że każdy rodzaj wyższym poziomie abstrakcja z tych rzeczy działają 1553 01:10:41,170 --> 01:10:43,530 jest to, że w pamięci w komputer, wszystko 1554 01:10:43,530 --> 01:10:47,660 przechowuje się w tym typie stosu, powiem. 1555 01:10:47,660 --> 01:10:49,070 >> Dlatego tam na górze. 1556 01:10:49,070 --> 01:10:50,861 Nie wiem, czy Ciebie chłopaki widzą, że dobrze. 1557 01:10:50,861 --> 01:10:52,590 Postaram się przybliżyć. 1558 01:10:52,590 --> 01:10:55,111 Tutaj, na górze, to mają tekst fizycznej 1559 01:10:55,111 --> 01:10:57,860 z tego, co komputer jest interpreting-- wszystkie zera i jedynki, że 1560 01:10:57,860 --> 01:10:59,540 istnieje w naszym komputerze. 1561 01:10:59,540 --> 01:11:03,390 A potem mamy zainicjowany niezainicjalizowane danych i danych, 1562 01:11:03,390 --> 01:11:05,340 co nazywamy zmienne globalne. 1563 01:11:05,340 --> 01:11:08,200 Więc zmiennych, które istnieją we wszystkich programach 1564 01:11:08,200 --> 01:11:11,815 i przez cały, zasadniczo, kod. 1565 01:11:11,815 --> 01:11:13,940 Nie martw się, jeśli jesteście rodzaj wiadomo na ten temat. 1566 01:11:13,940 --> 01:11:16,060 To naprawdę nie ma znaczenia teraz. 1567 01:11:16,060 --> 01:11:18,680 >> A potem mamy to, co jest nazywany sterty w stosie. 1568 01:11:18,680 --> 01:11:21,140 Pomyśl o stos dosłownie jak stos rzeczy, 1569 01:11:21,140 --> 01:11:23,098 stos inaczej rzeczy pchanych na szczycie 1570 01:11:23,098 --> 01:11:27,870 od siebie, które przechowują różne zmienne i składni w kodzie. 1571 01:11:27,870 --> 01:11:31,460 A potem tutaj na samym dole, mamy zmienne środowiskowe 1572 01:11:31,460 --> 01:11:35,480 z tego, co realizujemy w ciągu tylko twoja mała linia kodu. 1573 01:11:35,480 --> 01:11:40,510 >> A my po prostu będzie, aby powiększyć w od rzeczywistej części stosu. 1574 01:11:40,510 --> 01:11:43,880 Więc tutaj, jeśli były, aby powiększyć w na tym obszarze tylko stos, 1575 01:11:43,880 --> 01:11:45,140 jest to, na co wygląda. 1576 01:11:45,140 --> 01:11:48,590 I to jest rzeczywiście bardzo ważne kiedy ludzie mówią o funkcji, 1577 01:11:48,590 --> 01:11:52,330 ponieważ informacja, że pamięci komputera 1578 01:11:52,330 --> 01:11:55,600 jest przechowywanie zmiennych oraz funkcje 1579 01:11:55,600 --> 01:11:58,790 i parametry zarówno twój Funkcja oraz główne zmienne 1580 01:11:58,790 --> 01:12:00,190 w różnych miejscach. 1581 01:12:00,190 --> 01:12:03,390 >> Więc teraz, głównym jest rzeczywistej funkcji 1582 01:12:03,390 --> 01:12:04,780 że jesteś wykonywania w kodzie. 1583 01:12:04,780 --> 01:12:08,050 Zapisaniu tutaj jego parametry i przechowywane tutaj jego zmienne lokalne. 1584 01:12:08,050 --> 01:12:12,270 Zmienna lokalna po prostu oznacza każdą zmienną które istnieją tylko wewnątrz tej funkcji. 1585 01:12:12,270 --> 01:12:15,610 I na górze to, masz to oddzielna funkcja o nazwie Cube. 1586 01:12:15,610 --> 01:12:18,240 Musisz to parametry a także tych mieszkańców. 1587 01:12:18,240 --> 01:12:21,540 >> A powód można zobacz tutaj jest to, że to, co 1588 01:12:21,540 --> 01:12:25,030 Sześcian ma się dzieje, gdy w sposób wartość z funkcji main 1589 01:12:25,030 --> 01:12:27,640 jest to, że w rzeczywistości jest to, że przez kopiowanie. 1590 01:12:27,640 --> 01:12:31,470 Więc gdybym chciał sześcianu 2 i powrót 8, że 2 1591 01:12:31,470 --> 01:12:33,730 jest rzeczywiście wprowadzane jako parametr i to 1592 01:12:33,730 --> 01:12:37,690 skopiowane tak, że masz to istniejąca w dwóch różnych miejscach w pamięci. 1593 01:12:37,690 --> 01:12:40,520 I trzeba być bardzo ostrożnym na zapamiętywaniu, które jeden z tych, 1594 01:12:40,520 --> 01:12:42,520 jesteś rzeczywiście manipulacji. 1595 01:12:42,520 --> 01:12:47,170 A przykładem tego, co się stało to byłoby bardzo, bardzo źle 1596 01:12:47,170 --> 01:12:48,050 istnieje tutaj. 1597 01:12:48,050 --> 01:12:50,760 1598 01:12:50,760 --> 01:12:58,650 >> Więc tutaj, mam, w teorii, program tutaj, główną funkcją 1599 01:12:58,650 --> 01:13:02,180 że jestem deklarując int x jest równa 1. 1600 01:13:02,180 --> 01:13:04,505 Jestem deklarując kolejny int y jest równa 2. 1601 01:13:04,505 --> 01:13:06,380 A potem biegnę go dzięki tej funkcji 1602 01:13:06,380 --> 01:13:09,647 zwane wymiany, gdzie zakładamy, że to zamiana dwóch wartości. 1603 01:13:09,647 --> 01:13:11,480 A potem mam zamiar wydrukować je, prawda? 1604 01:13:11,480 --> 01:13:13,220 To jest to, co chcę zrobić ten program. 1605 01:13:13,220 --> 01:13:15,180 >> Warto więc przyjść i spojrzeć. 1606 01:13:15,180 --> 01:13:18,200 Więc jeśli rzeczywiście napisać inny funkcji, jak widać, 1607 01:13:18,200 --> 01:13:19,750 Mamy tu naszą główną funkcję. 1608 01:13:19,750 --> 01:13:22,860 A potem mamy swoje Druga funkcja tutaj. 1609 01:13:22,860 --> 01:13:24,520 Void Swap. 1610 01:13:24,520 --> 01:13:27,090 Nieważne, po prostu oznacza, że ​​jest to Nie zamierzam powrócić niczego. 1611 01:13:27,090 --> 01:13:28,930 Nazwa funkcji jest zwane wymiany, a to 1612 01:13:28,930 --> 01:13:33,730 będzie wlotowych dwóch zmiennych, int a i int b, z [niesłyszalne] funkcji. 1613 01:13:33,730 --> 01:13:39,010 >> Więc zasadniczo tu jesteśmy przechodząc X i Y do tej funkcji. 1614 01:13:39,010 --> 01:13:40,760 A gdybyśmy tworzenie this-- więc chcemy 1615 01:13:40,760 --> 01:13:42,420 do tworzenia wartości tymczasowe, prawda? 1616 01:13:42,420 --> 01:13:43,930 Mamy zamiar przypisać ją do a. 1617 01:13:43,930 --> 01:13:45,388 A potem będzie teraz równe b. 1618 01:13:45,388 --> 01:13:47,660 Oraz b będzie powrotem gdzie wartość temperatura była, 1619 01:13:47,660 --> 01:13:51,070 który jest a, bo gdy chcesz wymieniać rzeczy, 1620 01:13:51,070 --> 01:13:52,320 nie można po prostu lubię ich wymiany. 1621 01:13:52,320 --> 01:13:54,360 >> Musisz zachować jedną z nich tutaj tak, że zapamiętuje 1622 01:13:54,360 --> 01:13:56,485 co to, ponieważ po zamienić, zapomnienia 1623 01:13:56,485 --> 01:13:58,200 co to oryginalna wartość było, prawda? 1624 01:13:58,200 --> 01:14:00,990 Tak w teorii, tym programie powinien działać, prawda? 1625 01:14:00,990 --> 01:14:03,630 Gdybym chciał zamienić dwa, powinni zamienić. 1626 01:14:03,630 --> 01:14:05,490 Więc uruchom go i zobacz czy działa. 1627 01:14:05,490 --> 01:14:11,130 1628 01:14:11,130 --> 01:14:16,940 >> Tak jak chłopaki widzą, x był kiedyś 1 i y był kiedyś 2. 1629 01:14:16,940 --> 01:14:21,475 A jeśli go wydrukować, x jest jeszcze 1 i Y 2. 1630 01:14:21,475 --> 01:14:25,970 Hmm, ten program nie wydaje się być działa tak, że chcę go do pracy. 1631 01:14:25,970 --> 01:14:29,950 Czy ktoś chce zrobić zdjęcie na zgadywać, dlaczego tak się dzieje? 1632 01:14:29,950 --> 01:14:34,430 Ma to związek ze sposobem, że różne rzeczy są 1633 01:14:34,430 --> 01:14:38,172 przechowywane w różnych miejscach pamięci. 1634 01:14:38,172 --> 01:14:39,377 >> OK. 1635 01:14:39,377 --> 01:14:41,960 Więc chłopaki nie muszą się martwić za dużo teraz o tym. 1636 01:14:41,960 --> 01:14:46,610 Ale wiem, że Cube lokalne zmienne a, b, 1637 01:14:46,610 --> 01:14:49,230 bo tutaj w naszej funkcji, my oświadczył aib 1638 01:14:49,230 --> 01:14:53,570 jako zmiennych występujących w obrębie kostki, że funkcja. 1639 01:14:53,570 --> 01:14:59,490 Ale jak widać, parametry to biorąc w były przechowywane są tutaj. 1640 01:14:59,490 --> 01:15:01,370 Ale nie były w rzeczywistości powrocie nic. 1641 01:15:01,370 --> 01:15:03,120 Nie byliśmy rzeczywiście się zmienia x i y. 1642 01:15:03,120 --> 01:15:04,440 Byliśmy po prostu zmienia a i b. 1643 01:15:04,440 --> 01:15:08,340 >> Mieliśmy kopiowane x i y w coś, co nazywa a i b. 1644 01:15:08,340 --> 01:15:11,092 Ale my nigdy nie manipulowane x i y sami. 1645 01:15:11,092 --> 01:15:12,800 Czy wy widząc jak to się dzieje? 1646 01:15:12,800 --> 01:15:16,140 Jest to, że my po prostu skopiować go powyżej, ale nie właściwie utrzymane 1647 01:15:16,140 --> 01:15:18,030 tor, gdzie były one w pamięci. 1648 01:15:18,030 --> 01:15:20,127 >> A więc teraz komputer szuka, och, mam 1649 01:15:20,127 --> 01:15:21,960 uruchomić tę rzecz przez ten piękny funkcji. 1650 01:15:21,960 --> 01:15:23,690 Ale xiy są nadal x i y. 1651 01:15:23,690 --> 01:15:26,240 Nic się nie stało je ze względu na fakt 1652 01:15:26,240 --> 01:15:28,340 że tych parametrów i zmienne lokalne 1653 01:15:28,340 --> 01:15:30,150 są przechowywane w innej miejsce w pamięci. 1654 01:15:30,150 --> 01:15:32,030 I to jest na wyższym poziomie Koncepcja, że ​​będziesz 1655 01:15:32,030 --> 01:15:34,300 zacząć widzieć później w toku. 1656 01:15:34,300 --> 01:15:36,950 Ale po prostu wiem, że to jest problem, że może się zdarzyć 1657 01:15:36,950 --> 01:15:41,400 i że uda nam się wymyślić sposoby, w jaki sposób sobie z tym w dalszej części kursu. 1658 01:15:41,400 --> 01:15:41,900 OK. 1659 01:15:41,900 --> 01:15:47,750 1660 01:15:47,750 --> 01:15:48,250 W porządku. 1661 01:15:48,250 --> 01:15:51,780 Tak więc ostatnia koncepcja jesteśmy naprawdę będzie obejmować 1662 01:15:51,780 --> 01:15:53,880 że będzie przydatna dla pset w tym tygodniu 1663 01:15:53,880 --> 01:15:56,060 są tak zwane Argumenty wiersza poleceń. 1664 01:15:56,060 --> 01:16:00,820 Więc Rob w swoim wykładzie przeszedł rodzaj krótko, jak te prace. 1665 01:16:00,820 --> 01:16:02,770 Zasadniczo wiem, że kiedy piszesz 1666 01:16:02,770 --> 01:16:06,280 jak głównej funkcji, kiedy napisał funkcje wcześniej w przeszłości, 1667 01:16:06,280 --> 01:16:07,804 mieliśmy int main pustkę. 1668 01:16:07,804 --> 01:16:10,470 A powód mieliśmy nieważne istnieje dlatego, że nasze programy nie 1669 01:16:10,470 --> 01:16:12,520 potrzeba wartości wejściowych do pracy, prawda? 1670 01:16:12,520 --> 01:16:16,020 Kiedy wpadłem Mario, nie muszę faktycznie wystarczy wpisać coś 1671 01:16:16,020 --> 01:16:16,970 kiedy prowadził Mario. 1672 01:16:16,970 --> 01:16:20,170 Mógłbym poprosi użytkownika później. 1673 01:16:20,170 --> 01:16:22,450 Ale nie zawsze tak było. 1674 01:16:22,450 --> 01:16:24,980 >> Na przykład, w tym Problem tygodnia zestawy, 1675 01:16:24,980 --> 01:16:28,365 masz zamiar zostać poproszony, że w Oprócz uruchamiania programu, 1676 01:16:28,365 --> 01:16:30,990 będziesz chciał wejścia pewne rzeczy prosto jak Ciebie 1677 01:16:30,990 --> 01:16:32,050 uruchomić program. 1678 01:16:32,050 --> 01:16:34,720 Więc sposób to zrobić nazywa argument linii poleceń, które 1679 01:16:34,720 --> 01:16:37,280 jest jak argument można wprowadzić bezpośrednio 1680 01:16:37,280 --> 01:16:39,260 jak próbujesz uruchomić program. 1681 01:16:39,260 --> 01:16:44,680 >> Zatem zapis tego, to jest dość skomplikowane, patrząc, 1682 01:16:44,680 --> 01:16:47,320 ale to naprawdę nie jest, że trudne. Więc int main-- 1683 01:16:47,320 --> 01:16:48,910 to tylko twoja główną funkcją. 1684 01:16:48,910 --> 01:16:52,110 Do argc przecinkami nawiasach łańcuch argv. 1685 01:16:52,110 --> 01:16:56,040 Więc wszystko, co mówi, że to int wszystko argc-- się informacją, 1686 01:16:56,040 --> 01:17:00,560 jest to, że są to liczba Argumenty komputer powinien spodziewać. 1687 01:17:00,560 --> 01:17:03,130 >> Więc jedna rzecz, która jest naprawdę ważne, aby śledzić 1688 01:17:03,130 --> 01:17:07,080 jest fizyczne nazwa programu liczy się jako jeden z tych argumentów. 1689 01:17:07,080 --> 01:17:11,080 Więc jeśli chciałem mieć swój program uruchomić plus jeden dodatkowy wiersz polecenia 1690 01:17:11,080 --> 01:17:13,310 Argument, że jestem naprawdę będziemy mieć dwa. 1691 01:17:13,310 --> 01:17:15,080 Argc rzeczywiście będzie dwa. 1692 01:17:15,080 --> 01:17:18,010 I wtedy łańcuch argv bracket-- wszystko, co robi, 1693 01:17:18,010 --> 01:17:20,410 to daje mi tablica łańcuchów to 1694 01:17:20,410 --> 01:17:24,870 będzie po prostu wyświetlić i zapisać to, co wszystkie te argumenty wiersza poleceń są. 1695 01:17:24,870 --> 01:17:34,090 >> Tak na przykład, jeśli chcę mieć to Program, ./copy plik_wejściowy plik_wy, prawda? 1696 01:17:34,090 --> 01:17:37,330 To po prostu typowy poleceń Linuksa. 1697 01:17:37,330 --> 01:17:38,830 Czym właściwie jest argc? 1698 01:17:38,830 --> 01:17:41,320 Jak wiele argumentów wiersza poleceń są tam rzeczywiście w tym jest? 1699 01:17:41,320 --> 01:17:45,130 Wszystko to robi, to zrobić kopię plik_we nazwy jednego pliku 1700 01:17:45,130 --> 01:17:47,070 i kopiuje go do inny plik, prawda? 1701 01:17:47,070 --> 01:17:48,700 To wszystko to robi. 1702 01:17:48,700 --> 01:17:53,080 Jak widać, robię to w jednej linii bez faktycznie potrzeby programu. 1703 01:17:53,080 --> 01:17:55,380 >> Jaki jest nasz argc w tym przypadku? 1704 01:17:55,380 --> 01:17:58,968 Jak wiele argumentów mamy? 1705 01:17:58,968 --> 01:17:59,634 PUBLICZNOŚCI: Trzy? 1706 01:17:59,634 --> 01:18:01,200 ANDI PENG: Mamy trzy, dokładnie. 1707 01:18:01,200 --> 01:18:05,030 Więc to jest bardzo intuicyjny w po prostu uważam, że to jest po prostu 1708 01:18:05,030 --> 01:18:06,290 plik_we i plik_wy. 1709 01:18:06,290 --> 01:18:10,190 Ale wiem, że nazwa fizycznego z Program używasz liczy się jako jeden. 1710 01:18:10,190 --> 01:18:13,220 Tak więc w tym przypadku argc faktycznie trzy. 1711 01:18:13,220 --> 01:18:15,860 Jak o to, co jest argv 0? 1712 01:18:15,860 --> 01:18:18,180 Pamiętać, wszystkie z Argumenty wiersza poleceń 1713 01:18:18,180 --> 01:18:20,500 były przechowywane w tablicy ciągów. 1714 01:18:20,500 --> 01:18:24,140 Więc jeśli spróbuję do niego dostęp, co by argv Uchwyt 0 mi dać? 1715 01:18:24,140 --> 01:18:25,364 >> PUBLICZNOŚCI: [niesłyszalne]. 1716 01:18:25,364 --> 01:18:26,155 ANDI PENG: Dokładnie. 1717 01:18:26,155 --> 01:18:28,550 To daje mi kropkę slash kopię, bo to 1718 01:18:28,550 --> 01:18:31,070 element 0-te, Pierwszym elementem mojej tablicy. 1719 01:18:31,070 --> 01:18:33,236 Co argv 1? 1720 01:18:33,236 --> 01:18:33,945 >> PUBLICZNOŚCI: plik_we. 1721 01:18:33,945 --> 01:18:35,070 ANDI PENG: plik_we, dokładnie. 1722 01:18:35,070 --> 01:18:36,272 Co argv 2? 1723 01:18:36,272 --> 01:18:37,022 PUBLICZNOŚCI: plik_wy. 1724 01:18:37,022 --> 01:18:38,190 ANDI PENG: plik_wy. 1725 01:18:38,190 --> 01:18:39,290 To jest trochę skomplikowane. 1726 01:18:39,290 --> 01:18:42,630 Co myślicie argv 3 będzie dając mnie 1727 01:18:42,630 --> 01:18:45,522 gdybym próbował wydrukować, że na zewnątrz? 1728 01:18:45,522 --> 01:18:48,260 >> PUBLICZNOŚCI: [niesłyszalne]? 1729 01:18:48,260 --> 01:18:50,164 >> ANDI PENG: Czy masz rękę? 1730 01:18:50,164 --> 01:18:50,663 Tak. 1731 01:18:50,663 --> 01:18:51,550 >> PUBLICZNOŚCI: Alternatywą. 1732 01:18:51,550 --> 01:18:52,341 >> ANDI PENG: Dokładnie. 1733 01:18:52,341 --> 01:18:55,440 Więc pamiętaj, w wykładzie, że ma na końcu coś prąd 1734 01:18:55,440 --> 01:18:56,640 terminator null nazywa? 1735 01:18:56,640 --> 01:18:58,890 Zajmiemy się tym również dalej w klasie. 1736 01:18:58,890 --> 01:19:02,472 Ale wiem, że w zapisie, sposób, w jaki komputer 1737 01:19:02,472 --> 01:19:04,430 wie, że to koniec tablicy jest to, że to 1738 01:19:04,430 --> 01:19:07,310 wrzuca coś zwane null terminator lub myślnik zero. 1739 01:19:07,310 --> 01:19:12,047 >> Więc jeśli próbujesz uzyskać dostęp do argv 3, masz zamiar uderzyć tą kreskę 0. 1740 01:19:12,047 --> 01:19:13,630 Jest to tym bardziej podchwytliwe pytanie. 1741 01:19:13,630 --> 01:19:17,020 Co argv 4? 1742 01:19:17,020 --> 01:19:20,920 Więc to jest przeszłość terminator null, przeszłości granice naszej tablicy. 1743 01:19:20,920 --> 01:19:24,380 Co sądzisz będzie stanie, gdy staramy się zrobić? 1744 01:19:24,380 --> 01:19:25,842 >> PUBLICZNOŚCI: [niesłyszalne]? 1745 01:19:25,842 --> 01:19:26,550 ANDI PENG: Słucham? 1746 01:19:26,550 --> 01:19:28,025 Powiedzieć, że nieco głośniej? 1747 01:19:28,025 --> 01:19:29,086 >> PUBLICZNOŚCI: [niesłyszalne]. 1748 01:19:29,086 --> 01:19:29,710 ANDI PENG: Tak. 1749 01:19:29,710 --> 01:19:32,420 To jest nazwa z Obszar będziesz najprawdopodobniej uzyskać. 1750 01:19:32,420 --> 01:19:36,610 Ale wiem, że argv 4-- , który pozwala na dostęp 1751 01:19:36,610 --> 01:19:38,610 miejsca w Twoim komputerze pamięci, że naprawdę 1752 01:19:38,610 --> 01:19:41,650 nie powinny stykać się ze względu teraz wiesz, co argv jest. 1753 01:19:41,650 --> 01:19:46,220 Wiesz, że jest to tablica wielkości 3 że ma dot kopiowania, plik_we i outfile. 1754 01:19:46,220 --> 01:19:50,200 >> Jeśli staramy się iść tak daleko poza to, że jesteś obok null terminator, 1755 01:19:50,200 --> 01:19:53,050 komputer ma prawdopodobnie przechowywać coś w argv 4. 1756 01:19:53,050 --> 01:19:55,790 I naprawdę nie powinno być posiadać dostęp do argv 4, 1757 01:19:55,790 --> 01:19:58,130 bo masz plik Szafa i jesteś tylko 1758 01:19:58,130 --> 01:19:59,790 prawo dostępu do tych trzech półkach. 1759 01:19:59,790 --> 01:20:02,870 Ale jeśli starają się dotrzeć daleko poza półka od tego, gdzie są dopuszczone, 1760 01:20:02,870 --> 01:20:04,930 masz zamiar zacząć ingerować inne rzeczy w pamięci komputera. 1761 01:20:04,930 --> 01:20:06,690 To będzie naprawdę, naprawdę zły. 1762 01:20:06,690 --> 01:20:07,440 Więc po prostu wiedzieć. 1763 01:20:07,440 --> 01:20:10,370 Należy być bardzo ostrożnym, że Ciebie nie po prostu losowo zacząć 1764 01:20:10,370 --> 01:20:14,772 dostęp do elementów w tablicy, że nie były w to, co chcieliśmy stworzyć. 1765 01:20:14,772 --> 01:20:17,114 Tak. 1766 01:20:17,114 --> 01:20:18,430 >> OK. 1767 01:20:18,430 --> 01:20:26,360 Tak więc mamy zamiar zrobić kolejny Terminal przykładem. 1768 01:20:26,360 --> 01:20:27,300 OK. 1769 01:20:27,300 --> 01:20:29,900 Więc Rob szybko w wykładzie na drugi dzień poszedł 1770 01:20:29,900 --> 01:20:35,040 z tego przykładu, gdzie miał int main int argc łańcuch argv 1771 01:20:35,040 --> 01:20:39,090 wsporniki, które mówi mi, że jestem będzie mieć argumenty wiersza polecenia. 1772 01:20:39,090 --> 01:20:41,860 >> Ma, jeśli argc równa równa 2-- pamiętać, 1773 01:20:41,860 --> 01:20:45,070 równa równi oznacza porównanie. 1774 01:20:45,070 --> 01:20:47,980 Jeśli jest równa 2, to jestem do druku hello, 1775 01:20:47,980 --> 01:20:51,190 co pierwszy element tablicy jest. 1776 01:20:51,190 --> 01:20:54,100 Else print, hello world. 1777 01:20:54,100 --> 01:20:56,300 Co to będzie stało w istocie? 1778 01:20:56,300 --> 01:21:00,570 Może ktoś po prostu wyjaśnić w Angielski co ten program robi? 1779 01:21:00,570 --> 01:21:01,272 Tak. 1780 01:21:01,272 --> 01:21:08,160 >> PUBLICZNOŚCI: Jeśli ktoś wpisaniu polecenia i powiedział, że ich imię i nazwisko, 1781 01:21:08,160 --> 01:21:12,096 nie będzie po prostu wydrukować Pierwszy z nich i powiedzieć cześć, 1782 01:21:12,096 --> 01:21:14,090 co twoje imię ma. 1783 01:21:14,090 --> 01:21:15,410 >> ANDI PENG: OK, niech go uruchomić. 1784 01:21:15,410 --> 01:21:22,470 Tak na przykład, gdybym miał zrobić ten plik, aby przywitać to-- komentarzy 1785 01:21:22,470 --> 01:21:24,500 to-- co chcesz mi wejście? 1786 01:21:24,500 --> 01:21:25,900 >> PUBLICZNOŚCI: Imię i nazwisko. 1787 01:21:25,900 --> 01:21:27,280 >> ANDI PENG: Imię i nazwisko? 1788 01:21:27,280 --> 01:21:28,180 Przeznaczone? 1789 01:21:28,180 --> 01:21:29,690 >> PUBLICZNOŚCI: Tak. 1790 01:21:29,690 --> 01:21:33,490 >> ANDI PENG: Czy ktoś mógłby mi teraz, co jest argc? 1791 01:21:33,490 --> 01:21:35,630 Właśnie tam? 1792 01:21:35,630 --> 01:21:36,290 UPS przepraszam. 1793 01:21:36,290 --> 01:21:37,920 Pozwól mi wrócić. 1794 01:21:37,920 --> 01:21:40,740 Jak wiele argumentów wiersza poleceń are-- wy naprawdę nie można zobaczyć. 1795 01:21:40,740 --> 01:21:43,760 Ale postaram się przybliżyć. 1796 01:21:43,760 --> 01:21:44,290 Próbuję. 1797 01:21:44,290 --> 01:21:45,414 Tak, nie trzy, prawda? 1798 01:21:45,414 --> 01:21:48,750 To kropka ukośnik witam, to Andi, i to Peng. 1799 01:21:48,750 --> 01:21:51,870 >> Więc co myślicie tego Program ma być drukowanie? 1800 01:21:51,870 --> 01:21:55,550 1801 01:21:55,550 --> 01:21:56,060 Och. 1802 01:21:56,060 --> 01:21:57,120 Przepraszam. 1803 01:21:57,120 --> 01:21:57,810 Błędna nazwa. 1804 01:21:57,810 --> 01:22:03,630 1805 01:22:03,630 --> 01:22:06,130 To drukowanie, hello world. 1806 01:22:06,130 --> 01:22:09,603 Czy ktoś chce wyjaśnić dlaczego tak się dzieje? 1807 01:22:09,603 --> 01:22:10,103 Tak? 1808 01:22:10,103 --> 01:22:11,019 >> PUBLICZNOŚCI: [niesłyszalne]. 1809 01:22:11,019 --> 01:22:14,439 1810 01:22:14,439 --> 01:22:15,230 ANDI PENG: Dokładnie. 1811 01:22:15,230 --> 01:22:19,940 Więc tutaj są uzależnione to, że jeżeli argc równa równa 2. 1812 01:22:19,940 --> 01:22:23,650 Tak tylko w przypadku, gdy istnieje dwa argumenty wiersza poleceń. 1813 01:22:23,650 --> 01:22:25,850 Potem idę do drukowania, witam, cokolwiek to jest. 1814 01:22:25,850 --> 01:22:28,210 Ale jeszcze, mam zamiar wydrukować tylko, Hello World. 1815 01:22:28,210 --> 01:22:30,040 Więc czy ktoś chce dać mi przykład 1816 01:22:30,040 --> 01:22:35,050 od tego, jak będę w stanie rzeczywiście dostać to, aby wydrukować wartość argv 1? 1817 01:22:35,050 --> 01:22:38,600 >> Co musiałbym wejścia tutaj? 1818 01:22:38,600 --> 01:22:39,840 Tylko jedna rzecz, prawda? 1819 01:22:39,840 --> 01:22:42,900 Ponieważ kropka hello to już liczy się jako pierwszy argument. 1820 01:22:42,900 --> 01:22:43,930 Mam tylko jeden. 1821 01:22:43,930 --> 01:22:46,470 Więc dot witam, czy po prostu zrobić Andi. 1822 01:22:46,470 --> 01:22:47,270 Witaj, Andi. 1823 01:22:47,270 --> 01:22:49,186 Czy wszyscy rozumieją dlaczego tak się dzieje? 1824 01:22:49,186 --> 01:22:49,602 Tak. 1825 01:22:49,602 --> 01:22:52,500 >> PUBLICZNOŚCI: Tak przestrzeni między Komenda line-- jest [niesłyszalne]? 1826 01:22:52,500 --> 01:22:56,247 1827 01:22:56,247 --> 01:22:56,830 ANDI PENG: Nie 1828 01:22:56,830 --> 01:23:03,810 Więc przestrzeni w linii poleceń Argument, x, aby powiedzieć komputer 1829 01:23:03,810 --> 01:23:06,820 że jest to początek nowego łańcucha. 1830 01:23:06,820 --> 01:23:11,130 Więc łańcuch argv here-- Przechowuje wszystkich argumentów wiersza poleceń 1831 01:23:11,130 --> 01:23:13,110 w łańcuchach. 1832 01:23:13,110 --> 01:23:17,420 I tak przestrzeń, w wierszu poleceń argument-- wszystko, co robi, jest powiedzieć, 1833 01:23:17,420 --> 01:23:21,030 to jest na końcu jednego łańcucha i nadszedł czas, aby przejść do innego. 1834 01:23:21,030 --> 01:23:21,990 >> Tak. 1835 01:23:21,990 --> 01:23:23,530 To jest bardzo ważne dla Twój pset, bo jesteś 1836 01:23:23,530 --> 01:23:24,613 będzie testowanie tych. 1837 01:23:24,613 --> 01:23:29,300 Więc czy ktoś ma Wszelkie pytania w tej sprawie? 1838 01:23:29,300 --> 01:23:30,016 Ok fajnie. 1839 01:23:30,016 --> 01:23:30,515 Tak? 1840 01:23:30,515 --> 01:23:35,008 >> PUBLICZNOŚCI: Więc byłoby powodu umieścić całkowitą calc argumentów zamiast 1841 01:23:35,008 --> 01:23:40,059 z [niesłyszalne] będzie, gdy chcesz do wpisania dodatkowych informacji 1842 01:23:40,059 --> 01:23:41,030 [Niesłyszalne]? 1843 01:23:41,030 --> 01:23:42,090 >> ANDI PENG: Tak, dokładnie. 1844 01:23:42,090 --> 01:23:45,370 Niektóre programy wymagają wprowadzić argument wiersza poleceń 1845 01:23:45,370 --> 01:23:47,732 które przechodzi i który wykorzystuje to. 1846 01:23:47,732 --> 01:23:49,035 Tak. 1847 01:23:49,035 --> 01:23:50,410 PUBLICZNOŚCI: Co z tego, [niesłyszalne]? 1848 01:23:50,410 --> 01:23:55,440 1849 01:23:55,440 --> 01:23:58,870 >> ANDI PENG: No i co mam zmienić to w moim programie? 1850 01:23:58,870 --> 01:23:59,870 >> PUBLICZNOŚCI: Tylko 3. 1851 01:23:59,870 --> 01:24:12,460 1852 01:24:12,460 --> 01:24:15,020 >> ANDI PENG: Dlaczego jest to, że dzieje, o tym sądzisz? 1853 01:24:15,020 --> 01:24:18,940 >> PUBLICZNOŚCI: Ponieważ [niesłyszalne]. 1854 01:24:18,940 --> 01:24:22,370 >> PUBLICZNOŚCI: Musiałbyś zmienić na 2 [niesłyszalne]. 1855 01:24:22,370 --> 01:24:23,484 >> PUBLICZNOŚCI: 1 i 2. 1856 01:24:23,484 --> 01:24:24,650 ANDI PENG: 1 i 2, dokładnie. 1857 01:24:24,650 --> 01:24:29,150 Więc w tym przypadku, prawdopodobnie chcesz mieć dwa printf statements-- 1858 01:24:29,150 --> 01:24:32,601 który drukowane argv 1 i ten, który wydrukowany argv 2. 1859 01:24:32,601 --> 01:24:33,100 Tutaj. 1860 01:24:33,100 --> 01:24:34,516 Może faktycznie zrobić bardzo szybko. 1861 01:24:34,516 --> 01:24:46,720 1862 01:24:46,720 --> 01:24:47,320 Proszę bardzo. 1863 01:24:47,320 --> 01:24:48,287 Och. 1864 01:24:48,287 --> 01:24:49,370 Nie do końca to, czego chciał. 1865 01:24:49,370 --> 01:24:52,590 Ale jeśli faceci poeksperymentować z formatowanie, to wyjdzie. 1866 01:24:52,590 --> 01:24:54,981 Tak. 1867 01:24:54,981 --> 01:24:55,480 Chłodny. 1868 01:24:55,480 --> 01:24:57,670 Wiem, że jesteśmy nieco mało czasu. 1869 01:24:57,670 --> 01:25:02,469 Ale ja po prostu się szybko wydać Kilka minut przechodzi helpful-- 1870 01:25:02,469 --> 01:25:03,760 PUBLICZNOŚCI: Masz dwie minuty. 1871 01:25:03,760 --> 01:25:05,010 ANDI PENG: Mam dwie minuty? 1872 01:25:05,010 --> 01:25:06,340 Dziękuję. 1873 01:25:06,340 --> 01:25:09,180 Kilka krótkich porad pset. 1874 01:25:09,180 --> 01:25:13,100 Więc dla tego pset, bardzo polecam, jak powiedziałem, każdy przeczytać specyfikację. 1875 01:25:13,100 --> 01:25:16,804 Będziesz pisać trzy programs-- jednego nazywa initials.c, jeden o nazwie caesar.c, 1876 01:25:16,804 --> 01:25:17,720 jeden o nazwie vigenere.c. 1877 01:25:17,720 --> 01:25:20,465 1878 01:25:20,465 --> 01:25:22,340 Kilka ważnych wskazówek, które wy naprawdę chcą 1879 01:25:22,340 --> 01:25:25,040 do utrzymania w mind-- tak istnieje funkcja 1880 01:25:25,040 --> 01:25:27,770 nazywa atoi-- jak chciałbym powiedzieć, trois. 1881 01:25:27,770 --> 01:25:29,520 Jasne, czy to właściwie jak to powiedzieć. 1882 01:25:29,520 --> 01:25:32,510 Ale wszystko, co robi, to wprowadzanie. 1883 01:25:32,510 --> 01:25:34,320 Konwertuje ciąg do int. 1884 01:25:34,320 --> 01:25:37,490 Tak więc reprezentuje ASCII do I liczby całkowitej. 1885 01:25:37,490 --> 01:25:40,310 To tylko konwersja ASCII wartości do liczby całkowitej wartości. 1886 01:25:40,310 --> 01:25:44,510 Więc pamiętaj argv, tablicy, która zawiera wszystkich komend linii arguments-- 1887 01:25:44,510 --> 01:25:46,300 przechowuje je wszystkie jako łańcuchy. 1888 01:25:46,300 --> 01:25:50,010 I tak, jeśli chcesz być w stanie mają jeden z nich stanie się całkowitą, 1889 01:25:50,010 --> 01:25:52,750 będziesz mieć używać o tej wartości. 1890 01:25:52,750 --> 01:25:56,690 >> Modulo, jak omówiliśmy wcześniej w klasie dzisiaj, 1891 01:25:56,690 --> 01:25:59,550 pozwala mieć reszta co masz. 1892 01:25:59,550 --> 01:26:03,620 Więc jeśli mamy naprawdę duża liczba w Cezara, 1893 01:26:03,620 --> 01:26:06,117 co, jeśli mamy do końca z ciągu Vigenère? 1894 01:26:06,117 --> 01:26:08,450 Jak masz zamiar być w stanie aby ta owinąć wokół? 1895 01:26:08,450 --> 01:26:11,330 Jeśli uderzę oo a chcę to, aby wrócić do a, 1896 01:26:11,330 --> 01:26:13,650 jak ja mam się że do zawinięcia? 1897 01:26:13,650 --> 01:26:15,960 Prawdopodobnie chcesz użyć modulo gdzieś tam. 1898 01:26:15,960 --> 01:26:19,190 >> Po drugie, rozglądając biblioteka. ctype.h. 1899 01:26:19,190 --> 01:26:20,680 To nowa biblioteka mamy. 1900 01:26:20,680 --> 01:26:25,270 Znajdziesz wiele naprawdę przydatne functions-- isupper, islower, 1901 01:26:25,270 --> 01:26:27,681 toupper, tolower, isalpha, et cetera. 1902 01:26:27,681 --> 01:26:30,680 Wszystkie funkcje, które będą bardzo przydatne kiedy próbuje dowiedzieć się, 1903 01:26:30,680 --> 01:26:33,780 jest postać małą literą? 1904 01:26:33,780 --> 01:26:35,730 Jak przekonwertować ten Ciąg na wielkie litery? 1905 01:26:35,730 --> 01:26:38,146 Wszystkie te rzeczy będzie bardzo, bardzo pomocne dla zbior. 1906 01:26:38,146 --> 01:26:42,720 1907 01:26:42,720 --> 01:26:45,500 OK. 1908 01:26:45,500 --> 01:26:49,644 >> Godziny urzędowania tonight są od 8:00 do 11:00 w klasie TEAL jutro 1909 01:26:49,644 --> 01:26:51,310 a także w środę i czwartek wieczorem. 1910 01:26:51,310 --> 01:26:53,280 Godziny pracy są w świetlicy. 1911 01:26:53,280 --> 01:26:56,180 Bardzo proponuję wam wszystko zacząć od razu, 1912 01:26:56,180 --> 01:27:00,490 dlatego, że nie chcę być, że Dzieciak, który w czwartek wieczorem ma problemy 1913 01:27:00,490 --> 01:27:03,870 złożeniem pset i jest jak, nie wiem, co robić. 1914 01:27:03,870 --> 01:27:05,870 Zacząłem, skończyłem, składane. 1915 01:27:05,870 --> 01:27:09,737 Spróbuj dać sobie trochę miejsca, ponieważ zawsze występują problemy kodu. 1916 01:27:09,737 --> 01:27:11,570 Chcesz się upewnić, że sobie 1917 01:27:11,570 --> 01:27:14,810 dużo czasu, aby móc aby zakończyć psets. 1918 01:27:14,810 --> 01:27:15,310 Chłodny. 1919 01:27:15,310 --> 01:27:16,720 Będę obijać się tutaj. 1920 01:27:16,720 --> 01:27:18,226 >> PUBLICZNOŚCI: Czy to w Internecie już? 1921 01:27:18,226 --> 01:27:20,850 ANDI PENG: Nie wiem, czy to już w Internecie, ale to będzie. 1922 01:27:20,850 --> 01:27:23,500 Będę obijać się tutaj, jeśli ktoś ma jakieś pytania już. 1923 01:27:23,500 --> 01:27:25,390 Dziękuję za przyjście. 1924 01:27:25,390 --> 01:27:27,105