1 00:00:00,000 --> 00:00:11,050 2 00:00:11,050 --> 00:00:13,351 >> ROB BOWDEN: jest bardziej komfortowe sekcji, 3 00:00:13,351 --> 00:00:16,309 ale to nie znaczy, że jeśli czujesz, że nie jesteś bardziej komfortowe 4 00:00:16,309 --> 00:00:18,420 nie dowiesz się tutaj rzeczy. 5 00:00:18,420 --> 00:00:20,600 Więc zaczynajmy. 6 00:00:20,600 --> 00:00:22,819 Czy masz slajdy będzie prawo do rzeczy. 7 00:00:22,819 --> 00:00:24,360 Mam zamiar po prostu wziąć go teraz? 8 00:00:24,360 --> 00:00:25,680 9 00:00:25,680 --> 00:00:26,450 Przełączanie laptopów. 10 00:00:26,450 --> 00:00:30,470 11 00:00:30,470 --> 00:00:32,950 >> ALLISON: Nie chcesz, aby przedstawić się, Rob? 12 00:00:32,950 --> 00:00:34,090 >> ROB BOWDEN: Och, Rob. 13 00:00:34,090 --> 00:00:35,182 14 00:00:35,182 --> 00:00:37,470 To jest mój piąty rok TF-ing CS50. 15 00:00:37,470 --> 00:00:38,760 16 00:00:38,760 --> 00:00:39,650 >> GABRIEL: Jestem Gabriel. 17 00:00:39,650 --> 00:00:41,610 Jestem głowa TF z CS50. 18 00:00:41,610 --> 00:00:44,009 Byłem w zeszłym roku i TF w tym roku. 19 00:00:44,009 --> 00:00:46,675 ALLISON: Jestem Alison, i to to mój drugi rok TF-ing CS50. 20 00:00:46,675 --> 00:00:48,510 21 00:00:48,510 --> 00:00:50,825 >> ROB BOWDEN: W porządku, więc to coś po lewej stronie, 22 00:00:50,825 --> 00:00:52,250 miejmy nadzieję, że widziałem go wcześniej. 23 00:00:52,250 --> 00:00:54,112 Jeśli nie z powodu Ciebie pobrać go na własne oczy, 24 00:00:54,112 --> 00:00:55,570 trzeba było widzieć go w wykładzie. 25 00:00:55,570 --> 00:00:56,590 26 00:00:56,590 --> 00:01:01,320 Jest to więc urządzenie CS50, a on zrobił się nieco od jej opis 27 00:01:01,320 --> 00:01:01,880 w wykładzie. 28 00:01:01,880 --> 00:01:06,890 Ale w zasadzie to tylko ty prowadzisz eksploatacji 29 00:01:06,890 --> 00:01:10,550 System w ramach swojej działalności operacyjnej System tak, że możemy dać ci 30 00:01:10,550 --> 00:01:12,540 programy bez konieczności się martwić, o to 31 00:01:12,540 --> 00:01:15,989 będzie działać w systemach Windows i Mac, czy niektórzy z was 32 00:01:15,989 --> 00:01:17,280 są już z Linux, Linux. 33 00:01:17,280 --> 00:01:18,532 34 00:01:18,532 --> 00:01:20,240 To tylko ma być wspólne granie 35 00:01:20,240 --> 00:01:23,010 pola, więc każdy ma dokładnie taki sam środowiska. 36 00:01:23,010 --> 00:01:25,344 >> Więc jeśli nie ma pobrać to już, 37 00:01:25,344 --> 00:01:28,510 należy go ściągnąć, bo jesteś będzie potrzebował go do zestawu problemów. 38 00:01:28,510 --> 00:01:32,335 I to dwa gigabajt pobrać, więc może to chwilę potrwać. 39 00:01:32,335 --> 00:01:33,780 Na Harvardzie będzie to go szybko. 40 00:01:33,780 --> 00:01:35,870 41 00:01:35,870 --> 00:01:37,440 Więc CS50 urządzenie. 42 00:01:37,440 --> 00:01:41,980 >> Teraz na początku, będziemy mówić o tylko kilka linii poleceń 43 00:01:41,980 --> 00:01:46,880 rzeczy, a więc przez to, mam na myśli pracy w tym małym środowisku tutaj. 44 00:01:46,880 --> 00:01:53,230 I zauważyć wszystkie rzeczy Mówię tu teraz 45 00:01:53,230 --> 00:01:56,900 idą do pracy, jeśli jesteś wewnątrz Terminal wewnątrz urządzenia, 46 00:01:56,900 --> 00:02:00,790 lub jeśli jesteś wewnątrz gedit okno terminalu 47 00:02:00,790 --> 00:02:02,090 wewnątrz urządzenia. 48 00:02:02,090 --> 00:02:03,770 Więc te środowiska są identyczne. 49 00:02:03,770 --> 00:02:04,940 50 00:02:04,940 --> 00:02:07,270 >> Ale mam zamiar iść trzecią drogą. 51 00:02:07,270 --> 00:02:12,200 A tu to zauważysz trochę tu adres IP. 52 00:02:12,200 --> 00:02:15,940 Więc nie musisz się to zrobić, ale to IP 53 00:02:15,940 --> 00:02:19,700 address-- teraz jeśli ja-- wyjątkiem to zablokowane przez to coś. 54 00:02:19,700 --> 00:02:22,790 55 00:02:22,790 --> 00:02:27,000 OK, tak, że adres IP powyżej w terminalu 56 00:02:27,000 --> 00:02:31,090 here-- więc zacisk na tutaj jest terminal w komputerze Mac. 57 00:02:31,090 --> 00:02:34,540 Tak więc to nie jest w żaden sposób aktualnie związane z urządzeniem w ogóle. 58 00:02:34,540 --> 00:02:39,360 A jeśli jesteś na Windows, to jesteś będzie trzeba coś ściągnąć 59 00:02:39,360 --> 00:02:44,430 specjalnie do tego celu, w szczególności ludzie mają tendencję użyć Putty, P-U-T T-Y. 60 00:02:44,430 --> 00:02:50,700 >> Więc co mam zamiar zrobić, to rodzaj SSH, a potem, że adres IP. 61 00:02:50,700 --> 00:02:54,030 Cóż, jharvard pod tym adresem IP. 62 00:02:54,030 --> 00:03:00,150 Więc 192.168.24.220. 63 00:03:00,150 --> 00:03:02,127 Ta przerażająca wiadomość, zignoruj ​​go. 64 00:03:02,127 --> 00:03:02,710 Wystarczy wpisać tak. 65 00:03:02,710 --> 00:03:04,550 66 00:03:04,550 --> 00:03:06,030 Jest CS50 w pudełku. 67 00:03:06,030 --> 00:03:07,460 Prosi o podanie hasła. 68 00:03:07,460 --> 00:03:11,910 >> I tak w wielu tych kontekstach gdzie prosi o hasło, [niesłyszalne]. 69 00:03:11,910 --> 00:03:15,670 Mamy wiele pytań gdzie mówi, że to nie jest rzeczywiście wpisując. 70 00:03:15,670 --> 00:03:20,011 Nie pokazać znaków hasło podczas wpisywania, jeśli cokolwiek, 71 00:03:20,011 --> 00:03:23,010 dla funkcji bezpieczeństwa, ponieważ jeśli ktoś patrząc przez ramię 72 00:03:23,010 --> 00:03:25,870 i widzą star star star, potem 73 00:03:25,870 --> 00:03:28,640 wiedzieć, że hasło to cztery znaki. 74 00:03:28,640 --> 00:03:32,660 Więc pomysł jest zapyta o hasło, typ. 75 00:03:32,660 --> 00:03:34,490 To nie będzie pokazać Ci bohaterowie, 76 00:03:34,490 --> 00:03:36,090 ale to faktycznie przyjmując je. 77 00:03:36,090 --> 00:03:39,210 W tym przypadku, w dowolnym momencie kiedykolwiek zobaczysz monit o podanie hasła 78 00:03:39,210 --> 00:03:42,280 do czynienia z urządzeniem, Hasło będzie karmazynowy. 79 00:03:42,280 --> 00:03:43,270 Więc Crimson. 80 00:03:43,270 --> 00:03:44,730 81 00:03:44,730 --> 00:03:50,550 >> A teraz tutaj, w środku tego Okno to jest w moim Mac, 82 00:03:50,550 --> 00:03:54,120 Jestem w zasadzie o dokładnie taki sam widok 83 00:03:54,120 --> 00:03:57,040 jak wewnątrz terminalu w urządzeniu. 84 00:03:57,040 --> 00:03:58,470 Więc nie musisz tego robić. 85 00:03:58,470 --> 00:04:01,300 Możesz zrobić wszystko, co ma wewnątrz urządzenia. 86 00:04:01,300 --> 00:04:05,140 I prawie nigdy nie robić coś w urządzeniu. 87 00:04:05,140 --> 00:04:09,440 I prawie zawsze minimalizować, że i teraz Jestem SSH działa w urządzeniu. 88 00:04:09,440 --> 00:04:11,480 89 00:04:11,480 --> 00:04:14,180 >> Jeśli coś, jeśli ty wolniejszy komputer, 90 00:04:14,180 --> 00:04:15,820 można zauważyć różnicę. 91 00:04:15,820 --> 00:04:18,839 Robię to, bo ja wolę to okno terminala. 92 00:04:18,839 --> 00:04:20,881 Ma kilka funkcji, takich jak Mogę podzielić okno, 93 00:04:20,881 --> 00:04:22,672 i teraz mogę w SSH przez urządzenie. 94 00:04:22,672 --> 00:04:24,105 Mam dwa SSH dzieje się naraz. 95 00:04:24,105 --> 00:04:28,030 96 00:04:28,030 --> 00:04:32,250 Jeśli komputer jest szczególnie powolny i pracujesz w urządzeniu, 97 00:04:32,250 --> 00:04:35,200 i zdajesz sobie sprawę, jest to naprawdę laggy, cokolwiek. 98 00:04:35,200 --> 00:04:38,220 Zazwyczaj znacznie szybciej jeśli jesteś SSH-ed w. 99 00:04:38,220 --> 00:04:40,960 Ale w przeciwnym razie można pracować w obu kierunkach. 100 00:04:40,960 --> 00:04:42,388 >> Publiczność: Co SSH oznacza? 101 00:04:42,388 --> 00:04:43,820 102 00:04:43,820 --> 00:04:47,479 >> ROB BOWDEN: Bezpieczne muszle, coś w tym stylu? 103 00:04:47,479 --> 00:04:48,270 Co SSH oznacza? 104 00:04:48,270 --> 00:04:54,214 105 00:04:54,214 --> 00:04:55,130 GABRIEL: Secure Shell. 106 00:04:55,130 --> 00:04:56,463 ALLISON: To jest po prostu bezpieczna powłoka. 107 00:04:56,463 --> 00:04:57,720 ROB BOWDEN: Secure Shell. 108 00:04:57,720 --> 00:05:03,700 Jest to protokół, który you-- to bezpieczny protokół, więc szyfrowane. 109 00:05:03,700 --> 00:05:06,850 Ludzie nie mogą podsłuchiwać sieć i zobacz, co mówisz do niczego 110 00:05:06,850 --> 00:05:08,120 jesteś SSH-ed do. 111 00:05:08,120 --> 00:05:12,900 I rzeczywiście, w dawnych dni CS50, więc w 2009 112 00:05:12,900 --> 00:05:19,300 kiedy byłem studentem pierwszego roku, tak, że pracowałeś na zbiorach problemowych CS50, 113 00:05:19,300 --> 00:05:22,490 ty SSH-ed do jakiegoś serwera że daliśmy dostęp do, 114 00:05:22,490 --> 00:05:23,497 i pracował tam. 115 00:05:23,497 --> 00:05:25,330 Więc nie ma to Urządzenie graficzne. 116 00:05:25,330 --> 00:05:26,160 Nie masz gedit. 117 00:05:26,160 --> 00:05:28,930 Nie wszystkie te rzeczy, które można wizualnie wskaż i kliknij. 118 00:05:28,930 --> 00:05:30,346 Trzeba było pracować w tym interfejsie. 119 00:05:30,346 --> 00:05:31,580 120 00:05:31,580 --> 00:05:33,716 Wolę pracować w ten interfejs. 121 00:05:33,716 --> 00:05:36,090 Tak więc część z tego, co mamy zamiar się będzie na teraz 122 00:05:36,090 --> 00:05:39,560 to banda Polecenia, które powinny 123 00:05:39,560 --> 00:05:42,095 rozpocząć do zapoznania się z jak iść na kurs. 124 00:05:42,095 --> 00:05:43,190 125 00:05:43,190 --> 00:05:45,790 I szczerze mówiąc, po przyzwyczaić się do nich, to 126 00:05:45,790 --> 00:05:48,220 jest tak dużo szybciej pracować w tym środowisku 127 00:05:48,220 --> 00:05:53,690 niż jest do pracy z wizjera, przeciąganie i klikając rzeczy. 128 00:05:53,690 --> 00:05:55,340 129 00:05:55,340 --> 00:05:57,210 >> Więc jesteśmy. 130 00:05:57,210 --> 00:06:01,779 Teraz tylko SSH-ed w, i tak Domyślna miejscowość-- Cię 131 00:06:01,779 --> 00:06:04,820 widziałem niektóre z tych poleceń w klasie, ale pójdziemy na wszystkie z nich ponownie. 132 00:06:04,820 --> 00:06:08,060 Domyślna lokalizacja jesteśmy Katalog jest w domu. 133 00:06:08,060 --> 00:06:11,520 I katalog, po prostu inne słowo na folderze. 134 00:06:11,520 --> 00:06:13,310 Więc jesteśmy w katalogu domowym. 135 00:06:13,310 --> 00:06:15,889 Wpisz ls, listę plików w tym katalogu. 136 00:06:15,889 --> 00:06:17,430 Widocznie stworzyłem blah.c wcześniej. 137 00:06:17,430 --> 00:06:19,120 138 00:06:19,120 --> 00:06:20,472 Więc mamy katalogu pulpitu. 139 00:06:20,472 --> 00:06:21,930 Można zauważyć, podświetlanie składni? 140 00:06:21,930 --> 00:06:27,400 141 00:06:27,400 --> 00:06:32,900 Światło niebieskie podświetlenie wskazuje Katalog i prosty biały 142 00:06:32,900 --> 00:06:34,380 wskazuje tylko zwykły plik. 143 00:06:34,380 --> 00:06:35,410 144 00:06:35,410 --> 00:06:37,690 Więc nie będą inne kolory widoczne. 145 00:06:37,690 --> 00:06:41,240 Plik wykonywalny prawdopodobnie będzie być zielone lub coś w tym stylu. 146 00:06:41,240 --> 00:06:44,820 OK, więc jesteśmy w katalogu domowym. 147 00:06:44,820 --> 00:06:48,970 >> Teraz, jeśli chcę, aby przejść do innego katalog, cd jest polecenie chcę. 148 00:06:48,970 --> 00:06:52,720 Więc zmiana katalogu, a następnie podać nazwę katalogu 149 00:06:52,720 --> 00:06:54,020 że chcesz iść do. 150 00:06:54,020 --> 00:06:55,780 Więc tutaj mamy cztery opcje. 151 00:06:55,780 --> 00:07:03,397 Mogę iść do pobrania, a teraz widzimy, tutaj zaktualizowała ten nawias 152 00:07:03,397 --> 00:07:04,480 powiedzieć, że jestem w ~ / downloads. 153 00:07:04,480 --> 00:07:05,620 154 00:07:05,620 --> 00:07:06,800 >> Więc co jest tyldy? 155 00:07:06,800 --> 00:07:10,640 Jest to skrót od Twój katalog domowy. 156 00:07:10,640 --> 00:07:15,260 Więc prawie wszystko, co ma robić być w stosunku do swojego katalogu domowego, 157 00:07:15,260 --> 00:07:20,620 i pwd jest tylko polecenie Używam raz w roku, 158 00:07:20,620 --> 00:07:22,420 po prostu drukuje bieżący katalog. 159 00:07:22,420 --> 00:07:25,730 I tak można zobaczyć tutaj ~ / Pliki do pobrania naprawdę rozwiązuje 160 00:07:25,730 --> 00:07:26,896 do / home / jharvard / pliki do pobrania. 161 00:07:26,896 --> 00:07:29,320 162 00:07:29,320 --> 00:07:32,230 Tak / home / jharvard jest mój katalog domowy. 163 00:07:32,230 --> 00:07:33,700 164 00:07:33,700 --> 00:07:39,400 >> Więc możemy cd kropka kropka. 165 00:07:39,400 --> 00:07:47,800 Teraz kropka kropka jest specjalny katalog, który odnosi się zawsze do jednego katalogu w górę. 166 00:07:47,800 --> 00:07:51,730 Więc jeśli jestem w ~ / pliki do pobrania, a następnie cd kropką kropka przyniesie mi tyldy. 167 00:07:51,730 --> 00:07:52,950 168 00:07:52,950 --> 00:07:55,490 Co myślimy cd kropka kropka przyniesie mi teraz? 169 00:07:55,490 --> 00:07:58,740 170 00:07:58,740 --> 00:08:00,570 To będzie doprowadzić mnie do / home. 171 00:08:00,570 --> 00:08:04,450 Więc tyldy przez druku katalogu roboczego, Jestem w obecnie / home / jharvard. 172 00:08:04,450 --> 00:08:06,060 173 00:08:06,060 --> 00:08:08,820 jeden katalog się z tym, teraz mówi tutaj / home. 174 00:08:08,820 --> 00:08:12,330 175 00:08:12,330 --> 00:08:17,180 >> Teraz cd kropka kropka. 176 00:08:17,180 --> 00:08:20,910 Teraz jestem w katalogu głównym, i nie można zrobić to jeszcze raz. 177 00:08:20,910 --> 00:08:23,340 Musisz po prostu pozostać w katalog zawsze korzeń. 178 00:08:23,340 --> 00:08:26,700 Katalog główny ma całą masę rzeczy, które, jeśli chcesz, aby przyjrzeć się 179 00:08:26,700 --> 00:08:27,410 można. 180 00:08:27,410 --> 00:08:29,700 Na przykład, jeśli pójdę w pojemniku, który zawiera 181 00:08:29,700 --> 00:08:35,789 wszystkie te pliki binarne, takie jak ls, i CD, a wszystkie te rzeczy. 182 00:08:35,789 --> 00:08:38,630 Więc te polecenia muszą istnieć gdzieś w systemie 183 00:08:38,630 --> 00:08:40,820 i to jest w katalogu / bin. 184 00:08:40,820 --> 00:08:44,530 Ale prawie wszystko można zrobić, to będzie z katalogu domowego. 185 00:08:44,530 --> 00:08:49,490 I cd bez żadnych argumentów w ogóle, można powiedzieć, cd ~, nie trzeba. 186 00:08:49,490 --> 00:08:51,810 cd przyniesie Państwu z powrotem do swojego katalogu domowego. 187 00:08:51,810 --> 00:08:53,170 188 00:08:53,170 --> 00:08:54,230 >> Jeden ostatni. 189 00:08:54,230 --> 00:09:00,200 cd - przyniesie powrót do ostatni katalog, że jesteś w. 190 00:09:00,200 --> 00:09:04,080 Więc po prostu cd'd dwa razy z rzędu, więc moje ostatnia katalog był katalogiem. 191 00:09:04,080 --> 00:09:11,520 Jeśli pójdę do slash bin, a teraz chodźmy się i do użytkownika. 192 00:09:11,520 --> 00:09:12,550 193 00:09:12,550 --> 00:09:13,280 Akcji użytkownika. 194 00:09:13,280 --> 00:09:14,840 195 00:09:14,840 --> 00:09:15,940 Chodźmy do udziału użytkownika. 196 00:09:15,940 --> 00:09:17,140 Teraz jestem już w akcji użytkownika. 197 00:09:17,140 --> 00:09:19,320 cd - z powrotem w pojemniku. 198 00:09:19,320 --> 00:09:22,980 Więc to dostaje szczególnie przydatne kiedy have-- i będzie to włączyć. 199 00:09:22,980 --> 00:09:25,660 Tak akcję użytkownika, z powrotem bin, bin zakładowego. 200 00:09:25,660 --> 00:09:27,250 >> Więc to dostaje przydatne. 201 00:09:27,250 --> 00:09:33,150 Może znaleźć się o wiele, wiele, wiele zagnieżdżonych katalogów. 202 00:09:33,150 --> 00:09:37,370 I chcesz zrobić coś bardzo szybko w górnej katalogu. 203 00:09:37,370 --> 00:09:40,330 Idziesz do tego katalogu, aby zmiany i takie tam, 204 00:09:40,330 --> 00:09:42,400 a teraz chcesz iść tam, gdzie jesteś. 205 00:09:42,400 --> 00:09:43,660 cd -. 206 00:09:43,660 --> 00:09:47,320 Zawsze jestem sfrustrowany kiedy zdarza mi się iść 207 00:09:47,320 --> 00:09:49,630 I do tego katalogu chciał do pracy w. 208 00:09:49,630 --> 00:09:52,670 Zawsze się sfrustrowany kiedy nie to w dwóch etapach zamiast jednego kroku 209 00:09:52,670 --> 00:09:55,715 bo to oznacza, że ​​cd - będzie wprowadzić w tym miejscu pośrednim 210 00:09:55,715 --> 00:09:57,010 zamiast, gdzie chcę iść. 211 00:09:57,010 --> 00:09:59,350 212 00:09:59,350 --> 00:10:01,450 >> Widzimy więc, wszystkie pliki na liście. 213 00:10:01,450 --> 00:10:03,300 Wiemy, jak się poruszać tak daleko. 214 00:10:03,300 --> 00:10:09,900 Teraz porozmawiajmy o edycji plików. 215 00:10:09,900 --> 00:10:18,790 Więc w tym oczywiście, że jesteś prawie zawsze oczekuje się użyć gedit. 216 00:10:18,790 --> 00:10:24,410 Jeśli chcesz, możesz zrobić następny krok i zacznij się uczyć tekstu wiersza poleceń 217 00:10:24,410 --> 00:10:25,240 redaktor. 218 00:10:25,240 --> 00:10:27,560 Tak więc istnieją różne opcje. 219 00:10:27,560 --> 00:10:31,760 >> I te, które są prawdopodobnie będzie odpowiednie dla Ciebie, 220 00:10:31,760 --> 00:10:35,340 mamy Nano Vim i Emacs. 221 00:10:35,340 --> 00:10:40,196 Więc Nano jest początkujący linii poleceń edytora tekstu. 222 00:10:40,196 --> 00:10:42,985 Więc Nano chodźmy na blah.c stworzyłem wcześniej. 223 00:10:42,985 --> 00:10:44,030 224 00:10:44,030 --> 00:10:46,480 To jest po prostu standard ten plik C. 225 00:10:46,480 --> 00:10:51,540 I widzisz całą masę rzeczy dzieje się w dolnej części ekranu 226 00:10:51,540 --> 00:10:54,100 i najwyraźniej blah.c zawiera ten kod C. 227 00:10:54,100 --> 00:10:55,420 228 00:10:55,420 --> 00:11:00,330 >> Tak więc w tym konkretnym edytorze to, co mówi na bottom-- 229 00:11:00,330 --> 00:11:06,290 teraz ten daszek symbolem, widzimy to ^ G ^ X, ^ O. 230 00:11:06,290 --> 00:11:10,310 Tak, że w prawie wszystkich Kontekst, który widzisz, 231 00:11:10,310 --> 00:11:13,530 można zobaczyć w ten symbol daszka innych miejsc online, na przepełnienie stosu, 232 00:11:13,530 --> 00:11:14,450 coś w tym stylu. 233 00:11:14,450 --> 00:11:16,970 Prawie zawsze odnosi się do kontrolowania. 234 00:11:16,970 --> 00:11:21,590 Tak, aby wyjść chcę zrobić Kontrola X. Kontrola X wychodzi. 235 00:11:21,590 --> 00:11:22,750 236 00:11:22,750 --> 00:11:26,855 I mogę korzystać strzałkę klucze do poruszania się. 237 00:11:26,855 --> 00:11:28,010 238 00:11:28,010 --> 00:11:31,015 Zauważ, że nie można wskazać i kliknąć łatwo. 239 00:11:31,015 --> 00:11:33,000 240 00:11:33,000 --> 00:11:35,010 Musisz użyć strzałek klucze do poruszania się. 241 00:11:35,010 --> 00:11:36,950 Nie może być ustawienie wskaż i kliknij. 242 00:11:36,950 --> 00:11:40,000 >> Ale zróbmy pewne zmiany. 243 00:11:40,000 --> 00:11:42,100 Teraz sterowania X iść wyjście. 244 00:11:42,100 --> 00:11:44,120 To będzie powiedzieć bufor zapisu zmodyfikowanego. 245 00:11:44,120 --> 00:11:47,900 Teraz szybka, y na tak, n na nie. 246 00:11:47,900 --> 00:11:49,900 Kontrola C anulować. 247 00:11:49,900 --> 00:11:50,780 Powiem tylko tak. 248 00:11:50,780 --> 00:11:51,709 Nazwę pliku do zapisu. 249 00:11:51,709 --> 00:11:53,500 Domyślnie jest to plik że już jest. 250 00:11:53,500 --> 00:11:54,230 Naciśnij Enter. 251 00:11:54,230 --> 00:11:54,740 OK. 252 00:11:54,740 --> 00:11:58,580 Teraz już tylko edytować ten plik, zapisane to, i to zostanie zmienione. 253 00:11:58,580 --> 00:11:59,770 254 00:11:59,770 --> 00:12:03,000 >> Tak jest najłatwiej Nano edytor tekstu przyzwyczaić. 255 00:12:03,000 --> 00:12:05,520 Alternatywy są Vim i Emacs. 256 00:12:05,520 --> 00:12:11,250 Są edytory tekstu wyższy poziom że mają bardzo stromą krzywą uczenia. 257 00:12:11,250 --> 00:12:13,740 Więc moje osobiste preferencje jest Vim. 258 00:12:13,740 --> 00:12:17,175 I ma wiele możliwości. 259 00:12:17,175 --> 00:12:18,210 260 00:12:18,210 --> 00:12:24,070 A gdy się przyzwyczaić do niego, nigdy nie 261 00:12:24,070 --> 00:12:26,900 chcę iść do każdego innego edytor tekstu, bo was po prostu 262 00:12:26,900 --> 00:12:29,590 tak wiele rzeczy, dostępne w nich, 263 00:12:29,590 --> 00:12:31,690 ale to trwa naprawdę długo się uczyć. 264 00:12:31,690 --> 00:12:36,000 Więc może po prostu chcesz, aby wymusić się teraz, aby przyzwyczaić się do tego, 265 00:12:36,000 --> 00:12:38,130 ale chciałbym powiedzieć, że warto. 266 00:12:38,130 --> 00:12:39,660 Ale trudno. 267 00:12:39,660 --> 00:12:41,220 >> I wtedy Emacs. 268 00:12:41,220 --> 00:12:44,940 Ja zawsze walczą w Emacs, ponieważ Wiem, jak to zrobić absolutnie nic. 269 00:12:44,940 --> 00:12:47,755 Najwyraźniej Emacs nie jest domyślnie zainstalowane w urządzeniu. 270 00:12:47,755 --> 00:12:49,210 271 00:12:49,210 --> 00:12:51,720 Prawdopodobnie dodać, że jako instalacji domyślnych. 272 00:12:51,720 --> 00:12:59,620 273 00:12:59,620 --> 00:13:02,390 Gdy nauczysz się jednego z Vim lub Emacs, nie 274 00:13:02,390 --> 00:13:04,810 nie powód, aby kiedykolwiek nauczyć innych, 275 00:13:04,810 --> 00:13:07,570 ale to zupełnie inny styl. 276 00:13:07,570 --> 00:13:10,460 OK, więc to edycji plików tekstowych. 277 00:13:10,460 --> 00:13:13,374 >> PUBLICZNOŚCI: Jeśli utknęli w Vima teraz, w jaki sposób we-- 278 00:13:13,374 --> 00:13:18,840 279 00:13:18,840 --> 00:13:20,800 >> ROB BOWDEN: Jest wiele trybów w vim, 280 00:13:20,800 --> 00:13:23,770 i istnieje cała tutoriale dotyczące nauki Vima. 281 00:13:23,770 --> 00:13:27,390 Więc, jeśli zdarzy ci się być w trybie wstawiania w porządku 282 00:13:27,390 --> 00:13:29,930 wpisz tekst, który można który wchodzi na różne sposoby 283 00:13:29,930 --> 00:13:31,610 ale i to, w jaki sposób dostać się do trybu wstawiania. 284 00:13:31,610 --> 00:13:34,780 Lub wyjść z jakieś specjalne Tryb, że jesteś, po prostu uciec. 285 00:13:34,780 --> 00:13:37,640 I po prostu uciec, aby bash z jakichkolwiek zagnieżdżonych trybów twój w. 286 00:13:37,640 --> 00:13:40,360 Po prostu OK, teraz jestem z powrotem w normalnym trybie. 287 00:13:40,360 --> 00:13:43,790 >> I tak, w trybie normalnym, jelita grubego. 288 00:13:43,790 --> 00:13:45,160 Widzisz, że pojawiają się na dole. 289 00:13:45,160 --> 00:13:46,240 A następnie q. 290 00:13:46,240 --> 00:13:52,600 Więc q wyjdzie jeśli już dokonane zmiany, które ja-- mieć zrobiłem zmiany? 291 00:13:52,600 --> 00:13:54,180 Zrobiłem zmiany najwyraźniej. 292 00:13:54,180 --> 00:13:57,264 Więc jeśli już dokonała zmian, to będziesz powiedzieć można umieścić wykrzyknik. 293 00:13:57,264 --> 00:13:58,430 Mam zamiar nazwać huk. 294 00:13:58,430 --> 00:14:02,040 Tak więc można postawić zakaz do tylko rzucić, nie robiąc nic, 295 00:14:02,040 --> 00:14:04,520 lub wq okrężnicy uratuje i wychodzi. 296 00:14:04,520 --> 00:14:06,580 Tak w ogóle to w pisać. 297 00:14:06,580 --> 00:14:08,300 Więc zapisać plik. 298 00:14:08,300 --> 00:14:09,810 Mogę pisać i zamknąć. 299 00:14:09,810 --> 00:14:13,606 Albo może masz po prostu qx slam, q huk tuż 300 00:14:13,606 --> 00:14:16,230 się stamtąd wydostać, niezależnie o wszelkich zmianach, które zostały wykonane. 301 00:14:16,230 --> 00:14:21,310 302 00:14:21,310 --> 00:14:28,940 >> Dobrze, więc teraz niech go-- możemy tworzyć pliki. 303 00:14:28,940 --> 00:14:30,890 Zacznijmy usuwanie plików. 304 00:14:30,890 --> 00:14:35,450 A ja po prostu rzucić w jednym szybkie nowe polecenie, dotyk. 305 00:14:35,450 --> 00:14:38,200 Więc dotykać foo. 306 00:14:38,200 --> 00:14:39,340 Dotykowy pasek. 307 00:14:39,340 --> 00:14:40,220 Dotknij baz. 308 00:14:40,220 --> 00:14:42,810 Gdybym ls, teraz widzimy, że istnieją te pliki. 309 00:14:42,810 --> 00:14:44,315 Oni są zupełnie puste. 310 00:14:44,315 --> 00:14:47,178 Dotykowy jest po prostu tak łatwo sposób jeden, [niesłyszalne]. 311 00:14:47,178 --> 00:14:50,850 312 00:14:50,850 --> 00:14:54,640 Dwa, tylko do stanu technicznego to, że aktualizuje znaczniki czasu. 313 00:14:54,640 --> 00:14:58,470 Więc każdy plik, który ma stworzyć datownik z nim związane. 314 00:14:58,470 --> 00:15:01,330 Tak powstał na baz 14 września na 16:21. 315 00:15:01,330 --> 00:15:02,570 316 00:15:02,570 --> 00:15:06,670 Jest teraz 16:22, więc jeśli I znowu dotknąć baz, mamy 317 00:15:06,670 --> 00:15:11,420 zobaczyć, że był najbardziej baz Ostatnio modyfikowane w 16:22. 318 00:15:11,420 --> 00:15:17,680 Ale poza tym prawie nigdy spojrzeć na znaczniki na plikach. 319 00:15:17,680 --> 00:15:20,490 Więc dotyku, tutaj jestem tylko przy użyciu to stworzyć kilka szybkich plików. 320 00:15:20,490 --> 00:15:21,620 321 00:15:21,620 --> 00:15:27,400 >> Dobrze, więc teraz jest rm Polecenie to dbamy o tutaj. 322 00:15:27,400 --> 00:15:28,665 I możemy rm boo. 323 00:15:28,665 --> 00:15:31,000 Powiedz usunąć regularne pusty plik boo. 324 00:15:31,000 --> 00:15:34,070 I możemy wpisać y, a teraz to Usuwa. 325 00:15:34,070 --> 00:15:34,850 rm baz. 326 00:15:34,850 --> 00:15:35,910 327 00:15:35,910 --> 00:15:38,620 Usuń regularne pusty plik baz i typu n dla nr. 328 00:15:38,620 --> 00:15:40,060 Teraz to nie jest usuwany. 329 00:15:40,060 --> 00:15:41,240 Więc bar i baz nadal istnieją. 330 00:15:41,240 --> 00:15:42,232 Foo nie ma. 331 00:15:42,232 --> 00:15:43,148 GABRIEL: Mów. 332 00:15:43,148 --> 00:15:43,970 333 00:15:43,970 --> 00:15:44,720 ROB BOWDEN: Świetnie. 334 00:15:44,720 --> 00:15:45,800 335 00:15:45,800 --> 00:15:50,370 Tak irytujących wiadomości tutaj, usunąć regularne empty-- 336 00:15:50,370 --> 00:15:52,390 Co ty tam robisz? 337 00:15:52,390 --> 00:15:54,030 Usuń regularne pusty plik. 338 00:15:54,030 --> 00:15:58,840 339 00:15:58,840 --> 00:16:01,610 Jeśli więc nie chcesz być przeszkadza tej wiadomości, 340 00:16:01,610 --> 00:16:05,340 możemy rzucać w -f flagi, a więc to jest siła. 341 00:16:05,340 --> 00:16:11,330 A teraz, jeśli rm -f, to nie będzie powiedzieć chcesz usunąć ten plik. 342 00:16:11,330 --> 00:16:12,040 To będzie po prostu to zrobić. 343 00:16:12,040 --> 00:16:13,720 I ls, nie widzę już tam bar. 344 00:16:13,720 --> 00:16:14,810 345 00:16:14,810 --> 00:16:18,021 >> Teraz to potencjalnie niebezpieczne polecenie. 346 00:16:18,021 --> 00:16:19,020 To raczej nie jest tak źle. 347 00:16:19,020 --> 00:16:22,240 Wrócimy w drugim, jak to może się naprawdę niebezpieczne. 348 00:16:22,240 --> 00:16:28,740 I stwórzmy jakiś katalog tymczasowy. 349 00:16:28,740 --> 00:16:30,880 mkdir, inne polecenie. 350 00:16:30,880 --> 00:16:34,880 Więc jest polecenie mkdir sprawia, że ​​katalog. 351 00:16:34,880 --> 00:16:40,650 A teraz przez ls widzimy ten miły światło niebiesko podświetlone tymczasowym katalogu. 352 00:16:40,650 --> 00:16:42,295 Mogę cd do temp. 353 00:16:42,295 --> 00:16:44,590 I mogę mkdir foo. 354 00:16:44,590 --> 00:16:46,330 cd do foo. bar mkdir. 355 00:16:46,330 --> 00:16:46,860 cd do baru. 356 00:16:46,860 --> 00:16:49,400 357 00:16:49,400 --> 00:16:54,300 >> Widzimy więc możemy łatwo dostać do jakiegoś bardzo głębokiego zagnieżdżenia. 358 00:16:54,300 --> 00:16:56,385 Teraz jak mogę usunąć katalog? 359 00:16:56,385 --> 00:16:57,020 360 00:16:57,020 --> 00:16:57,520 rmdir. 361 00:16:57,520 --> 00:16:59,030 362 00:16:59,030 --> 00:17:03,540 Więc jeśli tylko prosto spróbować rm, jak my z zwykłego pliku, 363 00:17:03,540 --> 00:17:06,420 Pasek ma rm powiedzieć nie można usunąć pasek. 364 00:17:06,420 --> 00:17:07,569 Jest to katalog. 365 00:17:07,569 --> 00:17:10,619 Istnieje specjalne polecenie usuwanie katalogów, rodzaju. 366 00:17:10,619 --> 00:17:12,900 Więc rmdir bar. 367 00:17:12,900 --> 00:17:13,710 Teraz pasek znika. 368 00:17:13,710 --> 00:17:14,980 369 00:17:14,980 --> 00:17:22,680 >> OK, więc rmdir I prawie nigdy nie używać. 370 00:17:22,680 --> 00:17:32,220 Powodem being-- Teraz regularnego tu plik bar. 371 00:17:32,220 --> 00:17:34,780 Więc rmdir boo. 372 00:17:34,780 --> 00:17:35,760 rmdir. 373 00:17:35,760 --> 00:17:36,900 Nie udało się usunąć foo. 374 00:17:36,900 --> 00:17:38,420 Katalog nie jest pusty. 375 00:17:38,420 --> 00:17:43,420 Tak więc nie można używać na usunięcie reż Katalog, który ma wszystko w nim. 376 00:17:43,420 --> 00:17:44,830 >> Więc masz kilka opcji. 377 00:17:44,830 --> 00:17:49,780 Możesz przejść do tego katalogu, usuń wszystko ręcznie, a następnie wyjść 378 00:17:49,780 --> 00:17:51,759 i RMDIR katalogu. 379 00:17:51,759 --> 00:17:53,050 To oczywiście brzmi irytujące. 380 00:17:53,050 --> 00:17:55,000 Co jeśli nie tysiące plików w nie? 381 00:17:55,000 --> 00:17:58,119 Cóż, można rm *. 382 00:17:58,119 --> 00:17:59,410 Porozmawiamy o * w drugim. 383 00:17:59,410 --> 00:18:00,870 To w zasadzie oznacza wszystkie rzeczy. 384 00:18:00,870 --> 00:18:02,030 385 00:18:02,030 --> 00:18:05,470 Ale jeszcze lepiej, więc rm -r. 386 00:18:05,470 --> 00:18:10,220 Więc rm -r-- w wielu konteksty, -r oznacza rekurencyjne, 387 00:18:10,220 --> 00:18:13,810 których będziemy rozmawiać o tym, co rekurencyjne środki w kilka tygodni. 388 00:18:13,810 --> 00:18:18,630 Ale to w zasadzie oznacza trawers Całość katalogu 389 00:18:18,630 --> 00:18:20,190 i usunąć wszystko. 390 00:18:20,190 --> 00:18:24,420 >> Rm -r foo tak powie zejść do katalogu foo? 391 00:18:24,420 --> 00:18:25,210 Tak. 392 00:18:25,210 --> 00:18:26,800 Usuń regularne pusty plik foo / bar? 393 00:18:26,800 --> 00:18:27,880 394 00:18:27,880 --> 00:18:28,540 Tak. 395 00:18:28,540 --> 00:18:29,760 Usuń katalog foo? 396 00:18:29,760 --> 00:18:30,260 Tak. 397 00:18:30,260 --> 00:18:31,470 398 00:18:31,470 --> 00:18:35,020 Więc teraz wszystko foo w niej została usunięta. 399 00:18:35,020 --> 00:18:42,370 >> Teraz to może się szczególnie irytujące when-- niech dotknąć jeden, dotknij dwa dotknij 3. 400 00:18:42,370 --> 00:18:44,400 Może mieć całą masę plików. 401 00:18:44,400 --> 00:18:49,060 Gdybym chciał, mógłbym stworzyć tysiące plików w tutaj. 402 00:18:49,060 --> 00:18:53,340 A rm -r foo będzie być dość irytujące. 403 00:18:53,340 --> 00:18:55,374 Tak, tak, tak, tak, tak, tak. 404 00:18:55,374 --> 00:18:57,540 O wiele więcej plików szybko zobaczyć, jak wiele razy 405 00:18:57,540 --> 00:18:58,581 Będę musiał tak pisać. 406 00:18:58,581 --> 00:19:02,265 Cóż, po prostu zobaczył, jak to możliwe przed pozbyć się konieczności wpisywania tak, -f. 407 00:19:02,265 --> 00:19:03,330 408 00:19:03,330 --> 00:19:07,020 Więc mkdir foo cd foo dotykowy 1 2 3. 409 00:19:07,020 --> 00:19:08,380 410 00:19:08,380 --> 00:19:17,190 OK, więc rmdir foo będzie ślepo usunąć foo całkowicie. 411 00:19:17,190 --> 00:19:17,960 Nie monit. 412 00:19:17,960 --> 00:19:18,650 Nie wszystko. 413 00:19:18,650 --> 00:19:20,040 Foo nie ma. 414 00:19:20,040 --> 00:19:23,830 >> Więc staram się korzystać z tego polecenia przez cały czas. 415 00:19:23,830 --> 00:19:25,120 416 00:19:25,120 --> 00:19:27,830 Powiedział, że jest bardzo niebezpieczne polecenie, 417 00:19:27,830 --> 00:19:33,240 bo jeśli robię coś to nie poprosi. 418 00:19:33,240 --> 00:19:34,730 Będzie on zniknął. 419 00:19:34,730 --> 00:19:40,140 I zdarza się dość często, a nawet wyższy poziom kursów CS. 420 00:19:40,140 --> 00:19:42,070 Czasami zobaczymy gdzie ktoś coś 421 00:19:42,070 --> 00:19:48,360 mówi przypadkowo nasz rm rf-ed mój dom katalog i wszystkie moje P zestawie nie ma. 422 00:19:48,360 --> 00:19:52,422 I to jest katastrofalne, ale nie ma kosza. 423 00:19:52,422 --> 00:19:54,380 Nie ma nic , aby pobrać. 424 00:19:54,380 --> 00:19:55,330 To jest po prostu nie ma. 425 00:19:55,330 --> 00:19:56,529 426 00:19:56,529 --> 00:19:58,320 Jeszcze gorzej będzie coś jak rm -rf /. 427 00:19:58,320 --> 00:19:59,432 428 00:19:59,432 --> 00:20:01,140 Więc po prostu omawiane że katalog główny. 429 00:20:01,140 --> 00:20:03,095 Posiada wszystkie pliki w systemie. 430 00:20:03,095 --> 00:20:04,120 431 00:20:04,120 --> 00:20:07,380 Rzeczy stają się bardzo brudny po usunięciu rzeczy takie jak ls, 432 00:20:07,380 --> 00:20:10,280 i CD, a wszystkie z nich. 433 00:20:10,280 --> 00:20:15,467 >> Publiczność: Jaka jest różnica pomiędzy rm, rf, rm * 434 00:20:15,467 --> 00:20:16,300 ROB BOWDEN: Tak rm * - 435 00:20:16,300 --> 00:20:17,700 436 00:20:17,700 --> 00:20:22,300 >> ALLISON: Pytanie było, co jest Różnica pomiędzy rm, rf, rm *. 437 00:20:22,300 --> 00:20:23,750 438 00:20:23,750 --> 00:20:25,950 >> ROB BOWDEN: Tak rm *. 439 00:20:25,950 --> 00:20:31,910 Gwiazda w ogólnym oznacza wszelkie zawartość tego katalogu. 440 00:20:31,910 --> 00:20:33,540 441 00:20:33,540 --> 00:20:35,540 Starając się myśleć o innych sposoby pokazując gwiazdę. 442 00:20:35,540 --> 00:20:38,280 443 00:20:38,280 --> 00:20:44,780 Cóż, rzeczywiście zwykle gwiazdy Oznacza pasuje do żadnego wzorca. 444 00:20:44,780 --> 00:20:54,930 Więc jeśli mam plik o nazwie dog1, dotykać dog2 dotknij CAT1 dotknij cat2. 445 00:20:54,930 --> 00:20:56,050 446 00:20:56,050 --> 00:21:02,110 Więc ls * 1 będzie drukować i CAT1 dog1, bo gwiazda może być wypełnione 447 00:21:02,110 --> 00:21:06,270 w with-- trzeba tam być, ale gwiazda może być albo kota lub psa. 448 00:21:06,270 --> 00:21:07,247 To dzikie karty. 449 00:21:07,247 --> 00:21:08,580 To słowo szukam. 450 00:21:08,580 --> 00:21:09,120 Dzika karta. 451 00:21:09,120 --> 00:21:10,180 452 00:21:10,180 --> 00:21:13,960 Albo mogę ls psa * i Ja dostałem zobaczyć dog1, dog2. 453 00:21:13,960 --> 00:21:16,870 To są pliki aukcji które odpowiada ten konkretny wzór. 454 00:21:16,870 --> 00:21:18,150 Ls można używać w ten sposób. 455 00:21:18,150 --> 00:21:19,350 456 00:21:19,350 --> 00:21:22,020 >> Ls * gwiazda pasuje wszystko. 457 00:21:22,020 --> 00:21:25,710 Więc to będzie drukować wszystkie zawartość tego katalogu 458 00:21:25,710 --> 00:21:27,290 ponieważ wszystkie z nich pasuje. 459 00:21:27,290 --> 00:21:30,130 To nie będzie nic do wydrukowania w katalogach górnym poziomie. 460 00:21:30,130 --> 00:21:38,680 Jeśli mam katalog sub, bla, i dotykaj 1 2 3-- więc teraz, jeśli rm * gwiazdy, 461 00:21:38,680 --> 00:21:41,450 usunąć CAT1, cat2, dog1, dog2. 462 00:21:41,450 --> 00:21:42,340 Nie można usunąć foo. 463 00:21:42,340 --> 00:21:43,090 Jest to katalog. 464 00:21:43,090 --> 00:21:43,920 465 00:21:43,920 --> 00:21:50,340 >> Tak gwiazda rozszerza się wszystko pliki w katalogu. 466 00:21:50,340 --> 00:21:55,210 Więc technicznie rm * jest jak powiedzenie rm CAT1, cat2, dog1, dog2, bla. 467 00:21:55,210 --> 00:22:03,630 Natomiast rmdir, technicznie gwiazda osiągnąć to, co chcemy, ale rm -rf-- 468 00:22:03,630 --> 00:22:06,090 jeśli pójdę z tym katalogu, rmdir temp, 469 00:22:06,090 --> 00:22:08,890 że pójdzie do temp i rekursywnie usunąć wszystko. 470 00:22:08,890 --> 00:22:11,260 471 00:22:11,260 --> 00:22:21,060 >> Więc gwiazda jest w tym, że oddzielne rozumie by-- tak tej rzeczy 472 00:22:21,060 --> 00:22:25,090 że biegnę w to, co która skłania mnie do poleceń 473 00:22:25,090 --> 00:22:28,770 a następnie wykonanie i robi je, nazywam to moja skorupa. 474 00:22:28,770 --> 00:22:31,930 A więc ta sama powłoka jest Program. 475 00:22:31,930 --> 00:22:35,010 A gdybym chciał, to może uruchomić w / bin / bash. 476 00:22:35,010 --> 00:22:36,930 Powłoki bash jest nazywany. 477 00:22:36,930 --> 00:22:39,340 A teraz widzimy coś został nieznacznie zmieniony, 478 00:22:39,340 --> 00:22:42,200 a to dlatego, że moje ustawienia powłoki są nieco inne. 479 00:22:42,200 --> 00:22:45,415 >> Ale teraz jestem technicznie działa w moim oryginalnej powłoki powłoki, 480 00:22:45,415 --> 00:22:49,570 i mogę wyjść z tej powłoki, a teraz Wracam do mojej górnej skorupy poziomu. 481 00:22:49,570 --> 00:22:55,240 Celem mówiąc że is-- gwiazdę. 482 00:22:55,240 --> 00:22:59,020 Więc gwiazda jest czymś rozumiane przez bash. 483 00:22:59,020 --> 00:23:04,260 Więc rmdir, -rf flaga jest zrozumiałe tylko rm. 484 00:23:04,260 --> 00:23:06,380 Wie, że kiedy zdać -rf że cię 485 00:23:06,380 --> 00:23:09,520 chcesz go usunąć rekursywnie wszystkie pliki bez monitowania. 486 00:23:09,520 --> 00:23:13,960 Gwiazda jest coś rozumieć przez bash, że kiedy mówisz rm *, 487 00:23:13,960 --> 00:23:16,890 bash nie powie hej rm *, usuń gwiazdkę. 488 00:23:16,890 --> 00:23:21,010 Bash powie rm * usunąć CAT1, cat2, dog1, dog2. 489 00:23:21,010 --> 00:23:24,305 To automatycznie będzie poszerzyć wszystkie pliki w katalogu. 490 00:23:24,305 --> 00:23:29,100 491 00:23:29,100 --> 00:23:33,140 >> I podobnie jest kolejnym tyldy Symbol, że bash rozumie. 492 00:23:33,140 --> 00:23:37,130 Kiedy mówisz cd ~ bash rozszerza że do katalogu domowego. 493 00:23:37,130 --> 00:23:38,910 494 00:23:38,910 --> 00:23:40,210 Inne pytania do tej pory? 495 00:23:40,210 --> 00:23:42,760 496 00:23:42,760 --> 00:23:46,060 OK, więc mamy zamiar zacząć chodzić szybko. 497 00:23:46,060 --> 00:23:47,700 498 00:23:47,700 --> 00:23:48,545 >> Zakończenie Tab. 499 00:23:48,545 --> 00:23:49,670 Wystarczy wrzucić go tam. 500 00:23:49,670 --> 00:23:51,530 Wiele osób nie sobie z tego sprawy istnieje. 501 00:23:51,530 --> 00:23:55,060 Więc jeśli mam wpisać cd dow, ja chcę iść do pobrania. 502 00:23:55,060 --> 00:23:56,700 I nie trzeba wpisywać nloads. 503 00:23:56,700 --> 00:23:57,960 504 00:23:57,960 --> 00:24:00,770 Mogę po prostu wciskamy Tab. 505 00:24:00,770 --> 00:24:03,794 Uznaje, że tak dow prefiks, który jest 506 00:24:03,794 --> 00:24:05,710 niczego nie pasuje jeszcze w tym katalogu, 507 00:24:05,710 --> 00:24:07,520 więc będzie wykonać to za Ciebie. 508 00:24:07,520 --> 00:24:08,610 Teraz mogę wejść. 509 00:24:08,610 --> 00:24:10,110 >> Ja też zrobić rekurencyjnie. 510 00:24:10,110 --> 00:24:11,205 Więc mkdir foo. 511 00:24:11,205 --> 00:24:12,480 512 00:24:12,480 --> 00:24:13,300 Chodźmy do foo. 513 00:24:13,300 --> 00:24:14,830 bar mkdir. 514 00:24:14,830 --> 00:24:17,345 Więc wracając do mojego domu katalog, widzę pobieranie. 515 00:24:17,345 --> 00:24:19,040 516 00:24:19,040 --> 00:24:21,860 Teraz kartę ponownie uderzenie, automatycznie będzie wypełnić foo. 517 00:24:21,860 --> 00:24:22,880 To tylko katalog. 518 00:24:22,880 --> 00:24:25,340 Kartę ponownie uderzając, automatycznie będzie wypełnić bar. 519 00:24:25,340 --> 00:24:26,798 Więc teraz jestem w (~ Downloads / foo / bar). 520 00:24:26,798 --> 00:24:27,310 521 00:24:27,310 --> 00:24:31,692 >> Więc to zakończenie zakładka, gdy dostałem się do godzin pracy, 522 00:24:31,692 --> 00:24:33,400 i stoję nad czyjeś ramię, 523 00:24:33,400 --> 00:24:40,470 i oni będą rm D-O-W-N-L-O-A-D-S, ja umieram. 524 00:24:40,470 --> 00:24:41,990 Tylko zakładka, zakładka, zakładka, zakładka. 525 00:24:41,990 --> 00:24:44,550 526 00:24:44,550 --> 00:24:45,630 Więc na pewno wykorzystane kartę. 527 00:24:45,630 --> 00:24:47,890 528 00:24:47,890 --> 00:24:49,840 I podobnie się i w dół, wiele osób 529 00:24:49,840 --> 00:24:51,930 tylko, że stało się nigdy nie uderzył w górę iw dół. 530 00:24:51,930 --> 00:24:54,870 To będzie przejść przez poprzedni polecenia, więc jeśli po prostu zabrakło czegoś, 531 00:24:54,870 --> 00:24:58,300 i chcesz go uruchomić ponownie, tak trzymać, aż się do niego. 532 00:24:58,300 --> 00:24:59,870 533 00:24:59,870 --> 00:25:00,370 OK. 534 00:25:00,370 --> 00:25:01,460 535 00:25:01,460 --> 00:25:03,585 >> Tak szybko, kilka innych rzeczy. 536 00:25:03,585 --> 00:25:04,800 537 00:25:04,800 --> 00:25:05,930 Wróćmy do temp. 538 00:25:05,930 --> 00:25:06,976 539 00:25:06,976 --> 00:25:08,125 Stwórzmy kilka plików. 540 00:25:08,125 --> 00:25:10,480 541 00:25:10,480 --> 00:25:15,215 Więc tutaj, jestem po prostu zamiar wymienić kilka słów. 542 00:25:15,215 --> 00:25:18,460 543 00:25:18,460 --> 00:25:21,035 pies, kot, meow. 544 00:25:21,035 --> 00:25:23,940 545 00:25:23,940 --> 00:25:26,040 Zróbmy psa, ryby. 546 00:25:26,040 --> 00:25:27,500 547 00:25:27,500 --> 00:25:32,320 Więc teraz jest bardzo rep przydatne polecenia, które 548 00:25:32,320 --> 00:25:37,820 użyć, aby szukać w całym pliki dla danego tekstu, 549 00:25:37,820 --> 00:25:40,910 i technicznie można zrobić naprawdę wyrażenia złożone do niego dopasować. 550 00:25:40,910 --> 00:25:44,830 >> Więc, jeśli grep, a co chcę szukać? 551 00:25:44,830 --> 00:25:49,130 Powiedzmy, że szukam dla kotów i Chcę, aby wyszukać wszystkie pliki. 552 00:25:49,130 --> 00:25:50,650 Więc jak to zrobić wszystkie z tych plików? 553 00:25:50,650 --> 00:25:51,900 Gwiazda. 554 00:25:51,900 --> 00:25:54,939 Tak więc, w jednym pliku, mam kota. 555 00:25:54,939 --> 00:25:56,980 Prawdopodobnie może mieć nazywa to coś lepszego, 556 00:25:56,980 --> 00:25:59,063 dlatego, że wygląda na to, numery linii, czy coś. 557 00:25:59,063 --> 00:26:01,590 Ale w jednym pliku mam linię z kotem. 558 00:26:01,590 --> 00:26:04,160 W pliku dwa mam linię z kotem. 559 00:26:04,160 --> 00:26:07,280 Więc teraz mogę zajrzeć do środka i jednego pliku zobaczyć, o tak, że plik nie ma kota. 560 00:26:07,280 --> 00:26:10,210 Zawiadomienie plik nie został dopasowany trzy bo kot nie jest tam. 561 00:26:10,210 --> 00:26:13,882 Mogę grep dla meow. 562 00:26:13,882 --> 00:26:14,840 Plik ma meow tylko dwa. 563 00:26:14,840 --> 00:26:16,120 564 00:26:16,120 --> 00:26:20,640 >> Tak to można połączyć, znowu z -r, które 565 00:26:20,640 --> 00:26:23,580 jak powiedziałem wcześniej często oznacza rekurencyjne. 566 00:26:23,580 --> 00:26:29,800 I tak mogę się tu, grep -r za każdy przypadek of-- niech edytować 567 00:26:29,800 --> 00:26:32,010 to, po prostu wyrzucić kota tam. 568 00:26:32,010 --> 00:26:38,800 Więc grep -r dla każdej instancji kot w niniejszym katalogu. 569 00:26:38,800 --> 00:26:41,600 I będzie rekursywnie szukaj żadnych podkatalogów. 570 00:26:41,600 --> 00:26:43,940 Więc w baz, nie kot. 571 00:26:43,940 --> 00:26:45,570 W temp / 2, nie kot. 572 00:26:45,570 --> 00:26:47,960 A w temp / 1 nie ma kota. 573 00:26:47,960 --> 00:26:50,045 Więc to jest wyszukiwanie w plikach. 574 00:26:50,045 --> 00:26:51,250 575 00:26:51,250 --> 00:26:55,090 >> Teraz możesz również użyć znalezisko. 576 00:26:55,090 --> 00:26:59,640 I tak znaleźliśmy się konkretnie o szuka plików o podanej nazwie. 577 00:26:59,640 --> 00:27:02,490 Więc zróbmy trochę więcej. 578 00:27:02,490 --> 00:27:03,660 Chodźmy do pobrania. 579 00:27:03,660 --> 00:27:04,680 580 00:27:04,680 --> 00:27:05,380 Dotknij dog1. 581 00:27:05,380 --> 00:27:06,840 582 00:27:06,840 --> 00:27:07,770 Dotknij cat2. 583 00:27:07,770 --> 00:27:09,290 584 00:27:09,290 --> 00:27:10,760 Dotknij cat_dog. 585 00:27:10,760 --> 00:27:14,550 586 00:27:14,550 --> 00:27:15,975 Dotknij catcat. 587 00:27:15,975 --> 00:27:18,270 588 00:27:18,270 --> 00:27:23,810 >> Tak, chcę dowiedzieć się więcej Pliki z psem w nazwie. 589 00:27:23,810 --> 00:27:28,060 Więc znaleźć, i najdłużej Czas nigdy nie pamiętał 590 00:27:28,060 --> 00:27:33,760 jak znaleźć pracował, aż w końcu czytać coś, co jest tak oczywiste. 591 00:27:33,760 --> 00:27:35,784 Więc znaleźć, automatycznie rekurencyjnego. 592 00:27:35,784 --> 00:27:36,950 Nie musisz zdać -r. 593 00:27:36,950 --> 00:27:38,090 594 00:27:38,090 --> 00:27:39,110 Więc znaleźć kropkę. 595 00:27:39,110 --> 00:27:40,750 Nie rozmawialiśmy o kropce jeszcze. 596 00:27:40,750 --> 00:27:44,800 Natomiast kropka kropki zawsze oznacza o jeden katalog wyżej. 597 00:27:44,800 --> 00:27:46,960 Dot zawsze oznacza katalog bieżący. 598 00:27:46,960 --> 00:27:51,390 Mogłem więc rm -r kropkę sam sposób mogę rm -rf *. 599 00:27:51,390 --> 00:27:53,140 Ostatecznie oni osiągnąć to samo. 600 00:27:53,140 --> 00:27:56,040 rmdir kropka będzie usunąć Cały katalog bieżący. 601 00:27:56,040 --> 00:27:57,440 602 00:27:57,440 --> 00:27:59,680 >> OK, co nie chcę tam robić. 603 00:27:59,680 --> 00:28:01,490 604 00:28:01,490 --> 00:28:04,320 Ale znaleźć kropkę. 605 00:28:04,320 --> 00:28:07,920 Więc prąd rekurencyjnie wyszukiwania katalogu, a teraz wszystko 606 00:28:07,920 --> 00:28:14,125 po to są kilka flag, które użyć do wyłączenia rzeczy z powrotem. 607 00:28:14,125 --> 00:28:17,250 Więc znaleźć wszystko, kropka to powraca można znaleźć z bieżącego katalogu. 608 00:28:17,250 --> 00:28:19,700 To są wszystkie pliki rekursywnie wyszukiwania. 609 00:28:19,700 --> 00:28:21,250 Zobaczymy, niektóre z nich w drugim. 610 00:28:21,250 --> 00:28:23,150 611 00:28:23,150 --> 00:28:27,140 >> Ale w przypadku, gdy zastanawiasz się, jak to zrobić że, tak Dowodzenia K, co najmniej 612 00:28:27,140 --> 00:28:29,660 w moim terminalu w Mac ściąga piłkę. 613 00:28:29,660 --> 00:28:34,660 Kontrola L zwykle czyści to dla każdego rodzaju terminala. 614 00:28:34,660 --> 00:28:36,480 Możesz również wpisać jasne. 615 00:28:36,480 --> 00:28:38,410 I jeśli kiedykolwiek w dziwnym scenario-- 616 00:28:38,410 --> 00:28:42,790 to zdarzyło mi się para time-- gdzie kolory swoich monitów 617 00:28:42,790 --> 00:28:46,590 są pomieszane, lub ci nie są w stanie zobaczyć niczego 618 00:28:46,590 --> 00:28:51,232 jest wpisane podczas pisania, ponieważ czasem jak kolor tła jest ustawiony 619 00:28:51,232 --> 00:28:53,940 sama, jak kolorem i teraz nie widać czcionki. 620 00:28:53,940 --> 00:28:55,110 621 00:28:55,110 --> 00:28:59,830 Reset jest coś, co po prostu resetuje do domyślnej czarnym tle, 622 00:28:59,830 --> 00:29:01,840 białe z przodu, czy cokolwiek można je ustawić. 623 00:29:01,840 --> 00:29:03,390 624 00:29:03,390 --> 00:29:04,790 >> Więc gdzie byliśmy? 625 00:29:04,790 --> 00:29:05,930 Znajdź punkt. 626 00:29:05,930 --> 00:29:09,360 Więc teraz to wszystko przeszłość punkt ogranicza wyniki 627 00:29:09,360 --> 00:29:11,450 do czegoś, co pasuje dany wzór. 628 00:29:11,450 --> 00:29:16,110 Więc chcę szukać wszystko z imieniem kota. 629 00:29:16,110 --> 00:29:17,300 Nie mam nic. 630 00:29:17,300 --> 00:29:18,390 Dlaczego jest to, że tak jest? 631 00:29:18,390 --> 00:29:21,230 No cóż, jestem po prostu szukają coś z dokładnie nazwą kota. 632 00:29:21,230 --> 00:29:25,150 Jeśli chcę, aby szukać czegoś który posiada pewien wzór, i cat-- 633 00:29:25,150 --> 00:29:28,890 cytaty technicznie nie są konieczne, ale Rzucam je tam. 634 00:29:28,890 --> 00:29:32,720 Więc teraz znajdzie catcat ponieaz to jest jedyna rzecz, która 635 00:29:32,720 --> 00:29:36,040 ma pewne arbitralne wzór następnie kota. 636 00:29:36,040 --> 00:29:41,950 Mogę umieścić kota *, a teraz znaleźć catcat, cat_dog, cat2, 637 00:29:41,950 --> 00:29:45,245 bo to są wszystkie rzeczy z kotem na początku, a następnie wszystko. 638 00:29:45,245 --> 00:29:46,120 Możesz połączyć to. 639 00:29:46,120 --> 00:29:50,480 Jeśli chcesz wyszukać wszystkie pliki C że masz, możesz zrobić * .c. 640 00:29:50,480 --> 00:29:51,960 Mamy blah.c tutaj. 641 00:29:51,960 --> 00:29:53,000 642 00:29:53,000 --> 00:29:55,020 Więc to prace znajdzie. 643 00:29:55,020 --> 00:29:55,770 Możesz szukać. 644 00:29:55,770 --> 00:29:58,270 Ma całą masę flag dla dalszych ograniczeń. 645 00:29:58,270 --> 00:30:00,960 I jeden na nich, powiedzmy, -d. 646 00:30:00,960 --> 00:30:02,110 647 00:30:02,110 --> 00:30:04,435 Tak przestarzałe. 648 00:30:04,435 --> 00:30:05,425 649 00:30:05,425 --> 00:30:06,550 Och, to nie jest to, co chcę. 650 00:30:06,550 --> 00:30:07,730 Nie -d. 651 00:30:07,730 --> 00:30:08,860 Wpisz d. 652 00:30:08,860 --> 00:30:13,820 Więc znaleźć kropkę - wpisz d. 653 00:30:13,820 --> 00:30:17,760 Więc co, że po prostu nie jest Szukam dla wszystkich plików w bieżącym katalogu 654 00:30:17,760 --> 00:30:21,680 z A-- d oznacza directory-- typu katalogu. 655 00:30:21,680 --> 00:30:24,430 Przywraca wszystkie katalogi w bieżącym katalogu. 656 00:30:24,430 --> 00:30:27,670 I typu C jest wszystko regularne Pliki, wszyscy nie katalogi. 657 00:30:27,670 --> 00:30:29,809 Więc to tylko Przykładem innych sposobów można 658 00:30:29,809 --> 00:30:32,350 Można ograniczyć wyszukiwanie innych nie tylko nazwę pliku. 659 00:30:32,350 --> 00:30:34,126 660 00:30:34,126 --> 00:30:35,570 >> To było 30 minut. 661 00:30:35,570 --> 00:30:36,848 Wciąż trwa. 662 00:30:36,848 --> 00:30:38,132 >> ALLISON: Będę wiatr przez. 663 00:30:38,132 --> 00:30:39,670 Będzie dobrze. 664 00:30:39,670 --> 00:30:41,460 >> ROB BOWDEN: Więc kilka innych rzeczy. 665 00:30:41,460 --> 00:30:45,700 Teraz huk, wykrzyknik. 666 00:30:45,700 --> 00:30:50,530 Tak, że generalnie means-- dobrze, zobaczmy przykład. 667 00:30:50,530 --> 00:30:52,230 Tak! F, co jest, że zamierzasz zrobić? 668 00:30:52,230 --> 00:30:53,520 669 00:30:53,520 --> 00:30:57,810 Otóż ​​wydaje się, że powtarzane znalezisko dot -type f. 670 00:30:57,810 --> 00:30:59,240 A co! G? 671 00:30:59,240 --> 00:31:00,760 To właśnie grep -r kota *. 672 00:31:00,760 --> 00:31:02,010 673 00:31:02,010 --> 00:31:05,720 Tak walić można użyć do powtarzania niedawno wykonane polecenie. 674 00:31:05,720 --> 00:31:13,280 Więc jeśli wpisuję! Gre, to będzie ponownie uruchomić polecenia, które rozpoczęły się gre najbardziej 675 00:31:13,280 --> 00:31:14,060 niedawno. 676 00:31:14,060 --> 00:31:17,090 >> I można zobaczyć wszystko Polecenia z historii. 677 00:31:17,090 --> 00:31:17,880 Więc historia. 678 00:31:17,880 --> 00:31:19,630 Wszystko to są Polecenia Zabrakło mi dziś. 679 00:31:19,630 --> 00:31:21,089 680 00:31:21,089 --> 00:31:23,130 I dobrze, to nie jest dosłownie ogranicza się do dziś, 681 00:31:23,130 --> 00:31:25,180 ale użyłem tego tylko urządzenie na dzień dzisiejszy. 682 00:31:25,180 --> 00:31:28,730 To twoja całość Historia twojej powłoki bash, 683 00:31:28,730 --> 00:31:30,433 oprócz tego, że odcina w pewnym momencie. 684 00:31:30,433 --> 00:31:33,474 Publiczność: Co się dzieje, jeśli nie Historia [niesłyszalne] polecenie i błąd 685 00:31:33,474 --> 00:31:35,430 w rezultacie nadal będzie drukować the-- 686 00:31:35,430 --> 00:31:44,110 >> ROB BOWDEN: Tak, jeśli istnieje błąd w jednym z tych commands-- 687 00:31:44,110 --> 00:31:48,090 więc powiedzmy, że jest Nie znaleziono polecenia błąd. 688 00:31:48,090 --> 00:31:49,312 689 00:31:49,312 --> 00:31:50,520 Wciąż pojawia się w historii. 690 00:31:50,520 --> 00:31:52,620 691 00:31:52,620 --> 00:31:53,170 Dobrze. 692 00:31:53,170 --> 00:31:54,750 693 00:31:54,750 --> 00:31:56,040 Inne pytania o cokolwiek? 694 00:31:56,040 --> 00:31:58,760 695 00:31:58,760 --> 00:32:00,300 Więc to jest huk. 696 00:32:00,300 --> 00:32:04,230 >> Teraz bardzo przydatne polecenia, człowiek. 697 00:32:04,230 --> 00:32:07,750 Tak, że daje Instrukcja dla danego polecenia. 698 00:32:07,750 --> 00:32:11,640 Więc powiedzmy, man ls, więc to pokazuje mi ls. 699 00:32:11,640 --> 00:32:13,400 Jest to lista zawartości katalogu. 700 00:32:13,400 --> 00:32:17,150 I to jest, gdy widzę, że nie są te różne flagi, które istnieją. 701 00:32:17,150 --> 00:32:21,340 Widzimy więc, że ls -l istnieje gdybyśmy przeczytać, że. ls -l 702 00:32:21,340 --> 00:32:26,150 daje mi to pełną listę Katalog z kto jest właścicielem pliku, 703 00:32:26,150 --> 00:32:29,750 rozmiar pliku, modyfikowany znacznik czasu. 704 00:32:29,750 --> 00:32:31,130 705 00:32:31,130 --> 00:32:34,980 Więc ls -a jest jeszcze jeden, który mógłby faktycznie korzysta nieco częściej. 706 00:32:34,980 --> 00:32:38,130 -al jest moim najczęstszym flaga Miniony ls. 707 00:32:38,130 --> 00:32:42,520 >> Tak -a, zauważysz wiele więcej plików niż tylko ls. 708 00:32:42,520 --> 00:32:44,170 ls -a. 709 00:32:44,170 --> 00:32:46,170 Co wspólnego z wszystkich tych plików? 710 00:32:46,170 --> 00:32:47,790 Zaczynają się od kropki. 711 00:32:47,790 --> 00:32:54,710 Tak to jest, że konwencja w Linuksie pliki zaczynające się od kropki są ukryte. 712 00:32:54,710 --> 00:32:58,330 Więc to po prostu oznacza, że kiedy po prostu proste ls, 713 00:32:58,330 --> 00:33:04,170 czy jesteśmy tego katalogu przy użyciu wyszukiwania Wyszukiwarka odpowiednik, lub z systemem Windows 714 00:33:04,170 --> 00:33:07,250 Równowartość Explorer, że my nie chcesz widzieć te pliki dot. 715 00:33:07,250 --> 00:33:09,680 Oni po prostu zanieczyszczają widok rzeczy. 716 00:33:09,680 --> 00:33:11,790 Tak więc są one ukryte chyba że wyraźnie 717 00:33:11,790 --> 00:33:14,250 zwrócić je z czymś -a. 718 00:33:14,250 --> 00:33:18,920 Więc mogę cd do .local, i widzę, że jest sam katalog z 719 00:33:18,920 --> 00:33:22,220 udostępniony katalog i aplikacji i bla bla bla. 720 00:33:22,220 --> 00:33:24,520 Więc kropka, oni tylko pliki ukryte. 721 00:33:24,520 --> 00:33:26,250 722 00:33:26,250 --> 00:33:29,355 >> OK, więc inne ważne nich. 723 00:33:29,355 --> 00:33:30,490 724 00:33:30,490 --> 00:33:32,000 Mam kilka mogę pominąć. 725 00:33:32,000 --> 00:33:38,160 Po prostu szybko mówić o prawdziwej rzeczy plik przekierowania. 726 00:33:38,160 --> 00:33:43,020 Więc nie cały kompleks serii rzeczy, które możesz zrobić z nich 727 00:33:43,020 --> 00:33:47,204 ale po prostu je zobaczyć, powiedzmy, echo. 728 00:33:47,204 --> 00:33:47,870 Innym poleceń. 729 00:33:47,870 --> 00:33:48,920 Naprawdę głupie polecenie. 730 00:33:48,920 --> 00:33:50,710 Wszystko to nie jest druk, co mówię do. 731 00:33:50,710 --> 00:33:52,070 Tak echa komentarzy. 732 00:33:52,070 --> 00:33:53,850 To po prostu echem cześć do ekranu. 733 00:33:53,850 --> 00:33:55,170 734 00:33:55,170 --> 00:33:56,390 Witaj świecie. 735 00:33:56,390 --> 00:33:57,890 Echa hello world. 736 00:33:57,890 --> 00:34:02,650 >> Więc jedno polecenie lub jeden Symbol, że bash rozumie 737 00:34:02,650 --> 00:34:07,620 Jest to większa niż symbol i to wyjście do symbolu pliku. 738 00:34:07,620 --> 00:34:10,940 Więc jeśli mi się to wyjście bla, nie teraz plik 739 00:34:10,940 --> 00:34:15,100 nazwie foo, wewnątrz co jest hello world. 740 00:34:15,100 --> 00:34:18,489 Więc zauważyć, że kiedy echo cześć rury świat do foo, 741 00:34:18,489 --> 00:34:19,980 nie echo Hello World. 742 00:34:19,980 --> 00:34:22,630 Zamiast tego został wprowadzony do pliku foo. 743 00:34:22,630 --> 00:34:25,340 I jeszcze tylko polecenia rzucić go na ciebie, kota. 744 00:34:25,340 --> 00:34:29,191 To łatwy sposób, aby po prostu całkowicie wyświetlić zawartość pliku 745 00:34:29,191 --> 00:34:31,440 tak, że nie mam do otwarcia edytor tekstu, żeby go zobaczyć. 746 00:34:31,440 --> 00:34:34,159 Tak więc zawartość plik foo są hello world. 747 00:34:34,159 --> 00:34:38,460 I mogłem kot blah.c, zawartość jest to. 748 00:34:38,460 --> 00:34:42,123 >> Ponownie, to polecenia, które ich nie spełniają oczekiwać, masz je wszystkie na pamięć. 749 00:34:42,123 --> 00:34:43,860 Pomysł jest, że widziałem je. 750 00:34:43,860 --> 00:34:45,735 Może pracujesz na coś, a ty 751 00:34:45,735 --> 00:34:47,230 jak jestem chory otwarcia tego pliku. 752 00:34:47,230 --> 00:34:50,120 Szkoda, że ​​tylko patrzeć na zawartość bardzo szybko. 753 00:34:50,120 --> 00:34:52,320 Można to zrobić, a następnie spojrzeć wstecz i powiedzieć, oh 754 00:34:52,320 --> 00:34:55,250 Pamiętam coś takiego że istnieje, i to kot. 755 00:34:55,250 --> 00:35:00,630 >> Tak, że będzie do pliku. 756 00:35:00,630 --> 00:35:06,639 Teraz nie jest to nic dobrego Przykład odczytu z pliku jeszcze. 757 00:35:06,639 --> 00:35:08,930 Co znajduje się coś, co ma coś od standardu w? 758 00:35:08,930 --> 00:35:10,010 759 00:35:10,010 --> 00:35:11,544 Wszelkie proste polecenie Linux? 760 00:35:11,544 --> 00:35:13,480 761 00:35:13,480 --> 00:35:16,970 Kiedy się do niego, w ciągu kilku tygodni wszyscy piece-- dobrze, 762 00:35:16,970 --> 00:35:20,470 w tym tygodniu masz kawałek, w którym rozpocząć przyjmowanie danych od użytkownika. 763 00:35:20,470 --> 00:35:23,696 I tak zazwyczaj podczas pisania że wejście w klawiaturze. 764 00:35:23,696 --> 00:35:25,570 Zamiast pisać, że Wejście na klawiaturze 765 00:35:25,570 --> 00:35:30,950 możesz zamiast rur z pliku tak, że kiedy robisz Mario, ./mario, 766 00:35:30,950 --> 00:35:35,200 Rura z dowolnego danego pliku, a że zamierza uruchomić program mario. 767 00:35:35,200 --> 00:35:37,300 Wejście na nie spodziewa klawiatura, a nie jest to 768 00:35:37,300 --> 00:35:39,650 po prostu się czytać wiersze z pliku foo. 769 00:35:39,650 --> 00:35:45,230 >> Tak więc większa niż bla umieszcza je w plik bla, bla, a mniej niż 770 00:35:45,230 --> 00:35:50,170 bierze rzeczy z pliku foo i używa tego jako wkład do tego programu. 771 00:35:50,170 --> 00:35:51,520 772 00:35:51,520 --> 00:36:00,630 I po prostu ją zobaczyć, możemy również echo foo bar baz, a następnie zamiast jednego 773 00:36:00,630 --> 00:36:03,850 większa niż, zróbmy dwa do foo. 774 00:36:03,850 --> 00:36:05,610 Co to robić? 775 00:36:05,610 --> 00:36:07,180 To tylko dodaje do pliku. 776 00:36:07,180 --> 00:36:15,360 Więc zamiast zauważyć, jeśli do echo bla do bla bla i kot, to tylko bla. 777 00:36:15,360 --> 00:36:18,285 Gdy więc wyjście do pliku go, całkowicie nadpisuje ten plik. 778 00:36:18,285 --> 00:36:19,330 779 00:36:19,330 --> 00:36:22,740 Jeśli chcesz po prostu dodać, dwukrotnie [? równiarka. ?] 780 00:36:22,740 --> 00:36:24,080 >> I ostatni jest rura. 781 00:36:24,080 --> 00:36:29,590 Rura Pobiera o wiele bardziej skomplikowane, gdzie trwa wyjście jednego polecenia 782 00:36:29,590 --> 00:36:32,320 i przekazuje go do następnego polecenia. 783 00:36:32,320 --> 00:36:36,140 Więc niektóre często rzeczy, historia. 784 00:36:36,140 --> 00:36:37,920 Tak, och, nie chcę patrzeć na to. 785 00:36:37,920 --> 00:36:40,680 786 00:36:40,680 --> 00:36:44,485 Pokaż mi wszystkie polecenia w mojej historii gdzie grep-ed za coś. 787 00:36:44,485 --> 00:36:45,360 Nie, to jest mylące. 788 00:36:45,360 --> 00:36:50,360 Pokaż mi wszystkie polecenia, gdzie znaleźć. 789 00:36:50,360 --> 00:36:52,360 Wszystko znaleźć polecenia kiedykolwiek prowadzili. 790 00:36:52,360 --> 00:36:55,050 >> Więc historia. 791 00:36:55,050 --> 00:36:59,017 Teraz wyjścia historii Ekran ten listę poleceń, 792 00:36:59,017 --> 00:37:00,850 ale ja nie chcę wyjście do ekranu. 793 00:37:00,850 --> 00:37:03,445 Zamiast tego mam zamiar go do rury grep. 794 00:37:03,445 --> 00:37:04,790 795 00:37:04,790 --> 00:37:07,830 Więc grep dla wszystkich wystąpień znaleziska. 796 00:37:07,830 --> 00:37:09,550 797 00:37:09,550 --> 00:37:17,000 Więc teraz, zamiast podejmowania grep wejściowy, zamiast of-- 798 00:37:17,000 --> 00:37:24,360 grep jest w stanie obsłużyć tak input-- jesteśmy za pomocą grep nieco inaczej tutaj. 799 00:37:24,360 --> 00:37:29,550 Więc zamiast pisać listy rzeczy chcieliśmy szukać 800 00:37:29,550 --> 00:37:31,070 i powiedział grep bierze jako wejście. 801 00:37:31,070 --> 00:37:34,810 Więc jeśli ja po prostu znaleźć, to grep czeka na mnie typ rzeczy. 802 00:37:34,810 --> 00:37:37,661 Więc kot cześć znaleźć. 803 00:37:37,661 --> 00:37:38,160 Witam. 804 00:37:38,160 --> 00:37:40,430 805 00:37:40,430 --> 00:37:40,930 Znajdź. 806 00:37:40,930 --> 00:37:43,670 Zauważ, za każdym razem wpisać znaleźć uznaje, że wpisałem znalezisko. 807 00:37:43,670 --> 00:37:44,880 808 00:37:44,880 --> 00:37:49,540 Więc zamiast tego, będzie Pliki wyszukiwania znaleźć. 809 00:37:49,540 --> 00:37:53,930 >> Historia jest teraz tak będzie Wyjście lista wszystkich poleceń. 810 00:37:53,930 --> 00:37:55,200 811 00:37:55,200 --> 00:37:58,100 Jesteśmy wprowadzanie tego wyjścia, a my karmienia to grep, 812 00:37:58,100 --> 00:38:00,180 i tak to wypluwa wszystkie przypadki znalezienia. 813 00:38:00,180 --> 00:38:02,170 814 00:38:02,170 --> 00:38:05,570 Powodem Powiedziałem, że być mylące jest jeśli ja-- to nadal niejasne. 815 00:38:05,570 --> 00:38:07,030 Gdybym grep dla grep. 816 00:38:07,030 --> 00:38:08,755 817 00:38:08,755 --> 00:38:11,130 Zauważ, że to prawie zawsze pokazując polecenie po prostu 818 00:38:11,130 --> 00:38:15,280 prowadził, bo tego polecenia Sam ma grep środku. 819 00:38:15,280 --> 00:38:16,580 820 00:38:16,580 --> 00:38:20,674 >> OK, więc wszelkie pytania na cokolwiek? 821 00:38:20,674 --> 00:38:22,340 A ja przenieść go w tym momencie. 822 00:38:22,340 --> 00:38:24,690 Mam nadzieję, że jest to miłe Przegląd wszystkich poleceń 823 00:38:24,690 --> 00:38:30,100 że nie musisz mieć zapamiętane, ale te stanowią 824 00:38:30,100 --> 00:38:32,950 stałe 95%, co zrobić w linii poleceń. 825 00:38:32,950 --> 00:38:34,310 826 00:38:34,310 --> 00:38:39,140 Należy także pamiętać, że z linii poleceń Sam bash jest językiem programowania, 827 00:38:39,140 --> 00:38:43,070 a więc kiedy się do niego, to Może chcesz zrobić naprawdę skomplikowanych rzeczy. 828 00:38:43,070 --> 00:38:47,522 A więc ma takie rzeczy jak pętle i IFS, i wszystkich tych, 829 00:38:47,522 --> 00:38:50,230 że będziesz się przyzwyczaić ze swoich języków programowania. 830 00:38:50,230 --> 00:38:53,660 Ale to jest poza Zakres niniejszej sekcji. 831 00:38:53,660 --> 00:38:55,520 832 00:38:55,520 --> 00:38:56,985 OK, więc nie ma pytania? 833 00:38:56,985 --> 00:38:57,940 834 00:38:57,940 --> 00:38:58,523 ALLISON: Brak? 835 00:38:58,523 --> 00:38:59,450 GABRIEL: Idziesz to-- 836 00:38:59,450 --> 00:39:01,158 ALLISON: mogę to zrobić na kopalni, jeśli chcesz. 837 00:39:01,158 --> 00:39:02,626 Widzimy, co się dzieje. 838 00:39:02,626 --> 00:39:03,750 ROB BOWDEN: Off, aby Allison. 839 00:39:03,750 --> 00:39:05,090 ALLISON: Woo. 840 00:39:05,090 --> 00:39:07,504 Jesteś trudne do naśladowania, Rob. 841 00:39:07,504 --> 00:39:08,920 Czy chcesz mnie, aby przełączyć się z tobą? 842 00:39:08,920 --> 00:39:10,246 Albo masz, OK. 843 00:39:10,246 --> 00:39:13,590 844 00:39:13,590 --> 00:39:16,990 Zamierzam spróbować i nie bardzo być tam jak długa. 845 00:39:16,990 --> 00:39:20,619 846 00:39:20,619 --> 00:39:22,660 Zobaczymy, czy to będzie działa tak, jak chcemy. 847 00:39:22,660 --> 00:39:26,170 848 00:39:26,170 --> 00:39:26,670 Może? 849 00:39:26,670 --> 00:39:27,760 850 00:39:27,760 --> 00:39:28,296 Haha! 851 00:39:28,296 --> 00:39:28,796 Tak. 852 00:39:28,796 --> 00:39:30,460 853 00:39:30,460 --> 00:39:34,066 >> Więc jestem po prostu się bardzo szybko przejść przez zmienne, pętle, warunkowych, 854 00:39:34,066 --> 00:39:35,440 i trochę na kompilator. 855 00:39:35,440 --> 00:39:38,570 Jeśli masz pytania na za każdym razem, proszę mnie powstrzymać. 856 00:39:38,570 --> 00:39:42,750 Te chłopaki przypominają mi powtórzyć Twoje pytanie w przypadku zapomnę, 857 00:39:42,750 --> 00:39:44,210 ale nie powinno być tak źle. 858 00:39:44,210 --> 00:39:45,850 >> Tak zmiennych, tak. 859 00:39:45,850 --> 00:39:48,060 Nie mamy jeden z twoich Kawałki tutaj nowa. 860 00:39:48,060 --> 00:39:50,440 Jestem pewien, że większość z was, jeśli miałeś jakieś gry 861 00:39:50,440 --> 00:39:53,810 utworzony z Scratch, trzeba było śledzić coś jak wynik, 862 00:39:53,810 --> 00:39:55,870 lub czas, czy coś takiego. 863 00:39:55,870 --> 00:39:58,080 Tak więc ci, jasny pomarańczowy Kawałki, które widzimy tam 864 00:39:58,080 --> 00:40:02,630 to tylko forma zarysowania zmienne, i to na pewno 865 00:40:02,630 --> 00:40:04,640 za pomocą zmiennych waszych programów. 866 00:40:04,640 --> 00:40:07,350 Jeśli nie jesteś, ja naprawdę nie jestem wiesz, co robisz. 867 00:40:07,350 --> 00:40:09,000 868 00:40:09,000 --> 00:40:12,215 >> Ale i tak, wielka rzecz, definiowania zmiennych. 869 00:40:12,215 --> 00:40:13,630 870 00:40:13,630 --> 00:40:16,970 Z C każda zmienna ma mieć rodzaj oświadczył, 871 00:40:16,970 --> 00:40:22,090 więc dałem wam bardzo Ogólnie jeden na wierzchu. 872 00:40:22,090 --> 00:40:24,045 Więc będziesz miał swoje wpisać, a następnie co 873 00:40:24,045 --> 00:40:25,420 zdecydujesz się zadzwonić do zmiennej. 874 00:40:25,420 --> 00:40:27,500 875 00:40:27,500 --> 00:40:29,680 Więc w tym przypadku, typu na liście zmiennych. 876 00:40:29,680 --> 00:40:31,400 >> Mamy trzy przykłady. 877 00:40:31,400 --> 00:40:34,439 Char pewnego stopnia, o A, która jest co 878 00:40:34,439 --> 00:40:36,230 Jestem pewien, że wszyscy chcą aby w tej klasie. 879 00:40:36,230 --> 00:40:37,380 880 00:40:37,380 --> 00:40:40,670 Można zdefiniować wiele zmienne w jednej linii 881 00:40:40,670 --> 00:40:43,880 tak długo, jak są one tego samego typu, który jest naszym drugim przykładzie nie 882 00:40:43,880 --> 00:40:46,409 gdzie masz trzy Zmienne, x, y i z. 883 00:40:46,409 --> 00:40:47,200 Są wszystkie pływaki. 884 00:40:47,200 --> 00:40:49,160 885 00:40:49,160 --> 00:40:53,250 A potem można również w tym ostatnim Przykładem z int i liczba punktów 886 00:40:53,250 --> 00:40:56,510 zespołów, można zainicjować je właśnie tam. 887 00:40:56,510 --> 00:41:01,270 >> Tak więc na przykład, w którym środkowy Wystarczy pływak z X, Y i Z, 888 00:41:01,270 --> 00:41:02,730 tych, którzy nie są jeszcze zainicjowana. 889 00:41:02,730 --> 00:41:04,140 Oni nie mają żadnej wartości. 890 00:41:04,140 --> 00:41:05,600 Albo mają wartości śmieci. 891 00:41:05,600 --> 00:41:07,370 892 00:41:07,370 --> 00:41:10,790 A jeśli spróbujesz i używać ich, kompilator będzie krzyczeć na ciebie. 893 00:41:10,790 --> 00:41:14,727 Musisz zarówno zadeklarować i zainicjować zmienne. 894 00:41:14,727 --> 00:41:16,310 Tak więc w tym ostatnim, robimy jedno i drugie. 895 00:41:16,310 --> 00:41:19,320 Jesteśmy deklarowania zmiennych o wynik i liczba zespołów, 896 00:41:19,320 --> 00:41:24,134 a my ich inicjowanie, dając im ich początkowe wartości 7 i 4 897 00:41:24,134 --> 00:41:24,675 odpowiednio. 898 00:41:24,675 --> 00:41:26,310 899 00:41:26,310 --> 00:41:27,190 Fajne. 900 00:41:27,190 --> 00:41:28,550 Każdy dobry? 901 00:41:28,550 --> 00:41:29,470 Niesamowite. 902 00:41:29,470 --> 00:41:31,690 >> OK, więc pewne konwencje. 903 00:41:31,690 --> 00:41:35,965 Jeśli macie przeczytać poprzez stylu 50, to 904 00:41:35,965 --> 00:41:39,510 są tylko rzeczy, które chcielibyśmy dla do wdrożenia w swoim stylu. 905 00:41:39,510 --> 00:41:41,230 Tak znaczące nazwy. 906 00:41:41,230 --> 00:41:45,700 Jeśli zaczniesz nazywając rzeczy tylko x, y i z, a zwłaszcza 907 00:41:45,700 --> 00:41:47,902 jak masz na dłuższe Programy, jesteś 908 00:41:47,902 --> 00:41:49,610 prawdopodobnie będzie mylić się i być 909 00:41:49,610 --> 00:41:52,930 jak to, co jest ta zmienna odnosi się do. 910 00:41:52,930 --> 00:41:55,880 Nie mam pojęcia, co to oznacza. 911 00:41:55,880 --> 00:41:59,280 >> Więc jeśli to ma trzymać wynik, nazywają to zdobyć. 912 00:41:59,280 --> 00:42:05,720 Jeśli to ma trzymać jakieś odpowiedzi lub spowodować, nadaj mu nazwę takiego. 913 00:42:05,720 --> 00:42:09,920 Pętle, które będą dostać się do następnego slajdu, 914 00:42:09,920 --> 00:42:12,985 pojedyncze zmienne nas są w porządku. 915 00:42:12,985 --> 00:42:16,033 916 00:42:16,033 --> 00:42:18,449 ROB BOWDEN: I, J i K są tylko konwencje pętli 917 00:42:18,449 --> 00:42:22,050 że każdy oczekuje od nich nazywać i, j, k. 918 00:42:22,050 --> 00:42:26,890 Możesz zadzwonić them-- widzę wiersz Kolumna lub połączenie rząd czasem 919 00:42:26,890 --> 00:42:29,450 dla dwóch zagnieżdżonych pętli i to również swego rodzaju standardem. 920 00:42:29,450 --> 00:42:31,450 Ale i oraz j jest całkowicie zrozumiałe. 921 00:42:31,450 --> 00:42:33,670 >> ALLISON: Tak, ja i j jesteś całkowicie w porządku. 922 00:42:33,670 --> 00:42:36,250 Dla jasności, jak w niektórych swoich zbiorów P, 923 00:42:36,250 --> 00:42:39,745 może warto byłoby mieć więcej opisowe rzeczy nie tylko 924 00:42:39,745 --> 00:42:40,920 śledzić niego. 925 00:42:40,920 --> 00:42:45,100 Ale myślę, że i, j oraz k myślę Zdecydowana większość z nas wszystkich wykorzystanie. 926 00:42:45,100 --> 00:42:46,890 927 00:42:46,890 --> 00:42:50,340 >> ROB BOWDEN: Z tych konwencje, więc styl jest ważny. 928 00:42:50,340 --> 00:42:53,520 Jest to jeden z czterech osi na których jesteś oceniany, 929 00:42:53,520 --> 00:42:58,110 i to jest tak łatwo po prostu przejść nad Twój P ustawić na końcu i upewnij 930 00:42:58,110 --> 00:42:59,770 że nie są błędy stylistyczne. 931 00:42:59,770 --> 00:43:01,742 Więc upewnij się, że tabulatorem poprawnie. 932 00:43:01,742 --> 00:43:03,200 Upewnij się, że zmienne są nazwane. 933 00:43:03,200 --> 00:43:04,450 Zostaw kilka uwag. 934 00:43:04,450 --> 00:43:06,677 Jest to bardzo proste, aby te punkty. 935 00:43:06,677 --> 00:43:09,510 Nie musisz myśleć o wszystko, aby zdobyć te punkty. 936 00:43:09,510 --> 00:43:11,093 Nie musisz się dowiedzieć niczego. 937 00:43:11,093 --> 00:43:12,640 To właśnie dzięki czemu wyglądają dość. 938 00:43:12,640 --> 00:43:14,850 >> ALLISON W rzeczywistości, mają styl 50, które 939 00:43:14,850 --> 00:43:17,920 powie Ci, gdzie masz brudząc nawet jeśli brudząc się na stylu 940 00:43:17,920 --> 00:43:21,180 i powie dokładnie to, co ci trzeba naprawić i jak trzeba to naprawić. 941 00:43:21,180 --> 00:43:23,900 To też po prostu dobra wspominając że to jest polityka kursu 942 00:43:23,900 --> 00:43:27,200 że jeśli jesteś w biurze godziny i kod jest bałagan, 943 00:43:27,200 --> 00:43:30,200 możemy odmówić pomocy Ci, aż wygląda ładniej. 944 00:43:30,200 --> 00:43:34,310 Tak zaczynają się dobrze, zachować spójny styl, 945 00:43:34,310 --> 00:43:37,100 ty też po prostu się do Twoje życie o wiele łatwiejsze, gdy 946 00:43:37,100 --> 00:43:38,730 próbujesz przejść debugowania. 947 00:43:38,730 --> 00:43:41,510 Jeśli próbujesz dowiedzieć się, gdzie jesteś brakuje nawias klamrowy 948 00:43:41,510 --> 00:43:44,890 i są w każdym miejscu, jesteś tylko co swoje życie trudniejsze. 949 00:43:44,890 --> 00:43:47,217 Więc być zgodne ze stylem. 950 00:43:47,217 --> 00:43:48,800 Obiecuję, że ułatwi Ci życie. 951 00:43:48,800 --> 00:43:50,330 To będzie uczynić nasze życie łatwiejszym. 952 00:43:50,330 --> 00:43:51,869 Każdy będzie znacznie szczęśliwszy. 953 00:43:51,869 --> 00:43:52,910 I to jest to, co chcesz. 954 00:43:52,910 --> 00:43:54,192 955 00:43:54,192 --> 00:43:55,650 GABRIEL: Twoja klasa będzie wyższa. 956 00:43:55,650 --> 00:43:56,858 ALLISON: Tak, a twoja klasa. 957 00:43:56,858 --> 00:43:58,410 958 00:43:58,410 --> 00:44:01,930 Jeśli TF jak ty, wydaje się być korzystne. 959 00:44:01,930 --> 00:44:02,940 960 00:44:02,940 --> 00:44:05,010 Wszystko w porządku, a potem po prostu Drugi punkt tutaj. 961 00:44:05,010 --> 00:44:06,300 Spójne inicjalizacje. 962 00:44:06,300 --> 00:44:09,605 Tak jak widzieliśmy, można zadeklarować i zainicjować rzeczy. 963 00:44:09,605 --> 00:44:10,750 964 00:44:10,750 --> 00:44:13,180 Wiele zmiennych na tej samej linii. 965 00:44:13,180 --> 00:44:17,930 Jedną z rzeczy, nie chcemy was Wystarczy zadeklarować kilka zmiennych 966 00:44:17,930 --> 00:44:21,360 i nie zainicjować je same linii, które są inicjowania innych. 967 00:44:21,360 --> 00:44:23,960 >> Tak więc w przypadku, wykonana nie ma sensu w ogóle, 968 00:44:23,960 --> 00:44:29,050 mamy tu przykład dokąd deklarując ints 969 00:44:29,050 --> 00:44:31,180 w zmiennych kwartałach dimes i grosze, 970 00:44:31,180 --> 00:44:34,214 ale czwarte i grosze nie mają wartości początkowej. 971 00:44:34,214 --> 00:44:36,630 My ich nie zainicjowany, ale tam w prawo w środku 972 00:44:36,630 --> 00:44:38,600 mamy już zainicjowany dziesięciocentówki do 0. 973 00:44:38,600 --> 00:44:41,650 Więc albo zrobić kwartałach dziesięciocentówki, grosze. 974 00:44:41,650 --> 00:44:43,170 Czy czwarte równa 0. 975 00:44:43,170 --> 00:44:43,930 Dimes równa 0. 976 00:44:43,930 --> 00:44:46,810 Groszy równy 0, lub cokolwiek te wartości początkowe. 977 00:44:46,810 --> 00:44:49,800 >> Wielka rzecz ze stylem, być spójne. 978 00:44:49,800 --> 00:44:51,050 W przypadku wątpliwości, być spójne. 979 00:44:51,050 --> 00:44:52,129 980 00:44:52,129 --> 00:44:53,420 Ale naszego przewodnika styl też. 981 00:44:53,420 --> 00:44:54,710 982 00:44:54,710 --> 00:44:55,317 Fajne. 983 00:44:55,317 --> 00:44:56,150 Wszyscy tam dobrze? 984 00:44:56,150 --> 00:44:57,566 >> Publiczność: Gdzie przewodnik styl? 985 00:44:57,566 --> 00:45:00,800 ALLISON: przewodnik redakcyjny jest on-- co strona internetowa? 986 00:45:00,800 --> 00:45:03,950 >> GABRIEL: Myślę, że to manual.cs50.net/-- 987 00:45:03,950 --> 00:45:04,575 ALLISON: Styl? 988 00:45:04,575 --> 00:45:05,610 989 00:45:05,610 --> 00:45:06,390 >> GABRIEL: Styl. 990 00:45:06,390 --> 00:45:06,920 Tak. 991 00:45:06,920 --> 00:45:07,520 >> ALLISON: Tak. 992 00:45:07,520 --> 00:45:10,150 Więc pytanie, gdzie jest w formie 50. 993 00:45:10,150 --> 00:45:12,250 manual.cs50.net/style. 994 00:45:12,250 --> 00:45:13,639 Tak? 995 00:45:13,639 --> 00:45:16,880 >> Publiczność: Jeśli mamy definiowania zmienne, to jest OK 996 00:45:16,880 --> 00:45:28,145 jeśli stawiamy jak [niesłyszalne] jak int wynik i int celem. 997 00:45:28,145 --> 00:45:29,873 998 00:45:29,873 --> 00:45:35,100 Więc można powiedzieć, że teraz mamy ma zdefiniować ich razem? 999 00:45:35,100 --> 00:45:37,640 >> ALLISON: Więc pytanie, należy masz kodu nadmiarowego 1000 00:45:37,640 --> 00:45:40,940 podczas definiowania Zmienne takie jak int wynik i 1001 00:45:40,940 --> 00:45:43,239 na następnej linii int gry? 1002 00:45:43,239 --> 00:45:46,030 ROB BOWDEN: Na pewno są przypadki, w których zbędny kod jest zły. 1003 00:45:46,030 --> 00:45:47,738 Nie uważam że zbędny kod. 1004 00:45:47,738 --> 00:45:50,970 I prawie nigdy nie deklarują wielokrotnego Zmienne na tej samej linii w historii. 1005 00:45:50,970 --> 00:45:53,736 A jeśli już, to dlatego, zwykle zostawiam jakiś komentarz 1006 00:45:53,736 --> 00:45:55,235 wyjaśniając, co zmienna jest dla. 1007 00:45:55,235 --> 00:45:57,582 Więc powiem int wynik ukośnik ukośnik. 1008 00:45:57,582 --> 00:45:59,350 Śledzi cokolwiek. 1009 00:45:59,350 --> 00:46:00,710 W ogólnej slash slash. 1010 00:46:00,710 --> 00:46:01,790 1011 00:46:01,790 --> 00:46:06,455 Więc jest dużo grubsza w ten sposób umieszczenie ich na tej samej linii. 1012 00:46:06,455 --> 00:46:08,080 Ja po prostu nie umieścić je na tej samej linii. 1013 00:46:08,080 --> 00:46:10,580 >> ALLISON: Czuję się jak to jest osobistych preferencji w tym momencie. 1014 00:46:10,580 --> 00:46:14,900 >> Publiczność: Czy to idź do pętli i rzeczy też? 1015 00:46:14,900 --> 00:46:15,900 ROB BOWDEN: Podobnie jak w środku? 1016 00:46:15,900 --> 00:46:18,282 Jak int i równa 0 przecinek długość równa się coś? 1017 00:46:18,282 --> 00:46:19,490 Że nie mam wyboru. 1018 00:46:19,490 --> 00:46:21,850 1019 00:46:21,850 --> 00:46:25,910 Z pętli inicjalizacji dla part-- więc mógł tylko widziałem 1020 00:46:25,910 --> 00:46:31,520 int i równa 0 średnik i mniej niż cokolwiek średnik ja plus plusem. 1021 00:46:31,520 --> 00:46:33,820 Że int i jest równa 0, można także technicznie 1022 00:46:33,820 --> 00:46:35,770 robić to, co widzieliśmy przed ze składnią przecinkami. 1023 00:46:35,770 --> 00:46:39,790 int i równa 0 j przecinkami wynosi 3 przecinek k równa się pięć. 1024 00:46:39,790 --> 00:46:41,610 1025 00:46:41,610 --> 00:46:44,320 Nie mają wyboru, aby podzielić że się na wiele linii, 1026 00:46:44,320 --> 00:46:46,530 i to jest norma. 1027 00:46:46,530 --> 00:46:47,780 Widząc to nie jest w porządku. 1028 00:46:47,780 --> 00:46:49,182 1029 00:46:49,182 --> 00:46:49,890 ALLISON: Awesome. 1030 00:46:49,890 --> 00:46:52,120 Cóż, wygodne segue w pętle. 1031 00:46:52,120 --> 00:46:54,860 1032 00:46:54,860 --> 00:46:58,980 Więc tak, mamy tutaj kilka przykładów z pętli, że chłopaki widzieli w Scratch. 1033 00:46:58,980 --> 00:47:01,550 I oczywiście wszystkie te może po prostu zostać odtworzony w C. 1034 00:47:01,550 --> 00:47:04,610 I w zasadzie pozwalają powtarzać jakiś fragment kodu 1035 00:47:04,610 --> 00:47:06,740 do pewnego warunku jest spełniony, co my będziemy 1036 00:47:06,740 --> 00:47:09,198 dostać się do prawej po rozmowie o pętle z warunkowych. 1037 00:47:09,198 --> 00:47:11,150 1038 00:47:11,150 --> 00:47:12,570 >> Mamy więc trzy główne typy. 1039 00:47:12,570 --> 00:47:17,500 Dla, while i do chwili, która wszyscy będziemy przejść teraz. 1040 00:47:17,500 --> 00:47:18,860 Tak więc pierwszy jest dla pętli. 1041 00:47:18,860 --> 00:47:20,490 1042 00:47:20,490 --> 00:47:25,034 Więc od jakiegoś warunku, wykonanie tego fragmentu kodu. 1043 00:47:25,034 --> 00:47:27,200 Mamy to fajny mały Schemat tu na dole. 1044 00:47:27,200 --> 00:47:28,230 1045 00:47:28,230 --> 00:47:32,310 Ale w zasadzie masz Twój na, że ​​pierwszy wiersz, 1046 00:47:32,310 --> 00:47:34,240 masz zamiar zainicjować zmienne. 1047 00:47:34,240 --> 00:47:38,260 >> Tak jak mówiliśmy, i to równa 0 lub równa 10. 1048 00:47:38,260 --> 00:47:40,010 Cokolwiek potrzebujesz, że Zmienna jest to 1049 00:47:40,010 --> 00:47:43,970 będzie nie zainicjowany, zadeklarowana i zainicjowana jakąś wartość. 1050 00:47:43,970 --> 00:47:46,760 Tak więc mamy pewne warunkiem, że będzie 1051 00:47:46,760 --> 00:47:48,900 być sprawdzenie naszej zmienna przed czymś. 1052 00:47:48,900 --> 00:47:55,220 Tak więc w przypadku typowy przypadek, w którym może chcesz ten fragment kodu 1053 00:47:55,220 --> 00:47:56,620 wykonać pięciokrotnie. 1054 00:47:56,620 --> 00:48:02,380 Więc musielibyśmy int i jest równa 0, a my ma to być, kiedy jest mniej niż pięć. 1055 00:48:02,380 --> 00:48:04,940 Tak, że warunek jest tylko będzie sprawdzić, że za każdym razem. 1056 00:48:04,940 --> 00:48:07,120 Jeśli tego warunku wartość true, to 1057 00:48:07,120 --> 00:48:11,162 zamierza uruchomić kod, który jest dokładnie to, co ten mały schemat pokazuje. 1058 00:48:11,162 --> 00:48:12,370 1059 00:48:12,370 --> 00:48:13,639 >> I tak to wykonuje go. 1060 00:48:13,639 --> 00:48:15,430 Aktualizuje zmienną, czyli to, co widzimy, 1061 00:48:15,430 --> 00:48:21,020 w ostatniej części naszego, na inicjalizacji nie pętli. 1062 00:48:21,020 --> 00:48:22,370 1063 00:48:22,370 --> 00:48:26,030 Więc po prostu dalej robić to dopóki ten warunek nie jest spełniony, 1064 00:48:26,030 --> 00:48:28,010 i to będzie zamknąć pętli i dalej 1065 00:48:28,010 --> 00:48:29,960 przejściem z resztą programu. 1066 00:48:29,960 --> 00:48:31,320 1067 00:48:31,320 --> 00:48:33,620 Wszyscy tam dobrze? 1068 00:48:33,620 --> 00:48:34,440 Fajne. 1069 00:48:34,440 --> 00:48:37,780 >> Więc oto przykład, bardzo podobne do czegoś po prostu rozmawialiśmy. 1070 00:48:37,780 --> 00:48:42,030 Więc po prostu chcesz wydrukować CS50 jest 10 razy. 1071 00:48:42,030 --> 00:48:44,540 Więc widać tutaj mamy nasz za, a potem 1072 00:48:44,540 --> 00:48:47,450 zainicjować zmienną i powinna być równa 0. 1073 00:48:47,450 --> 00:48:50,610 Naszym warunkiem jest sprawdzenie że jest to mniej niż 10. 1074 00:48:50,610 --> 00:48:55,210 Więc ocenić na true, kiedy pierwszy raz uruchomić, a następnie aktualizuje naszą zmienną 1075 00:48:55,210 --> 00:48:58,985 za każdym razem, że to faktycznie wykonuje i drukuje to CS50. 1076 00:48:58,985 --> 00:49:00,510 1077 00:49:00,510 --> 00:49:02,180 I zakończy się po 10 godzinach. 1078 00:49:02,180 --> 00:49:03,190 1079 00:49:03,190 --> 00:49:04,070 Fajne. 1080 00:49:04,070 --> 00:49:07,130 >> Tak więc, podczas gdy pętle są w przyszłym. 1081 00:49:07,130 --> 00:49:12,400 I jak widać tutaj, musimy po prostu niektóre natomiast to condition-- pytanie? 1082 00:49:12,400 --> 00:49:15,238 >> Odbiorcy: Jak mogę skakać w rzeczywistości po prostu nie jeden numer, 1083 00:49:15,238 --> 00:49:19,030 ale dwa numery [niesłyszalne] ja plus Plus Plus? 1084 00:49:19,030 --> 00:49:23,390 >> ALLISON: Więc pytanie, jak można aktualizacji zmiennej przez więcej niż jednego 1085 00:49:23,390 --> 00:49:24,070 w czasie. 1086 00:49:24,070 --> 00:49:26,860 Więc ja plus Plus zmiana o jeden za każdym razem. 1087 00:49:26,860 --> 00:49:32,310 Jeśli chcesz zaktualizować go przez dwa, można zrobić i Plus wynosi 2. 1088 00:49:32,310 --> 00:49:34,526 >> ROB BOWDEN: Widzieliście oraz odpowiada na wykładzie jeszcze? 1089 00:49:34,526 --> 00:49:35,442 >> PUBLICZNOŚCI: [niesłyszalne]. 1090 00:49:35,442 --> 00:49:37,440 1091 00:49:37,440 --> 00:49:42,110 >> ALLISON: To skutecznie samo jak i ja plus 2 równa. 1092 00:49:42,110 --> 00:49:46,130 Tak to się go wziąć i aktualizować go przez dwie za każdym razem. 1093 00:49:46,130 --> 00:49:49,432 Plus równa jest po prostu coś, nazywamy cukier syntaktyczny. 1094 00:49:49,432 --> 00:49:52,390 ROB BOWDEN: Tak, istnieje dla tych, prawie wszystkie operatory arytmetyczne. 1095 00:49:52,390 --> 00:49:55,830 Więc czasy równej podwoi liczbę. 1096 00:49:55,830 --> 00:50:02,590 j podzielić równy 3 jest taki sam jak j równa j podzielić przez trzy. 1097 00:50:02,590 --> 00:50:07,399 >> ALLISON: minus 2 będzie równa zmniejszyć I przez dwie za każdym razem. 1098 00:50:07,399 --> 00:50:08,565 ROB BOWDEN: Nawet mod równi. 1099 00:50:08,565 --> 00:50:09,690 1100 00:50:09,690 --> 00:50:13,270 Nie widziałeś operatory bitowe, ale daszek równa oraz handlowego równa, 1101 00:50:13,270 --> 00:50:14,560 wszystkie te istnieją. 1102 00:50:14,560 --> 00:50:19,480 >> ALLISON: Tak wiele razy, zwłaszcza z kilku pierwszych zestawów P, 1103 00:50:19,480 --> 00:50:22,527 będziesz prawdopodobnie zwiększając przez jeden, więc ja plus plus, j oraz oraz 1104 00:50:22,527 --> 00:50:24,610 to wszystko masz zamiar się zazwyczaj za pomocą. 1105 00:50:24,610 --> 00:50:28,240 Ale warunek jest aktualizacja całkowicie w kontroli. 1106 00:50:28,240 --> 00:50:32,310 Możesz go zaktualizować za pomocą dowolnych odstępach lub w jakikolwiek sposób zdecydujesz się. 1107 00:50:32,310 --> 00:50:33,389 1108 00:50:33,389 --> 00:50:35,680 Może nawet ma to być liczb losowych czasem. 1109 00:50:35,680 --> 00:50:37,180 1110 00:50:37,180 --> 00:50:39,580 Ale tak, jest wiele rzeczy, które możesz zrobić z tym. 1111 00:50:39,580 --> 00:50:41,280 Nie jesteś ograniczony do ja plus plus. 1112 00:50:41,280 --> 00:50:44,400 >> ROB BOWDEN: Właśnie tak Ciebie wiem, że istnieje, to również 1113 00:50:44,400 --> 00:50:46,960 istnieje w innej formie, oraz plus i. 1114 00:50:46,960 --> 00:50:51,410 Więc jeśli kiedykolwiek szukają w internecie i stanie zobaczyć oraz plus i, 1115 00:50:51,410 --> 00:50:52,870 praktycznie oznacza to samo. 1116 00:50:52,870 --> 00:50:54,377 1117 00:50:54,377 --> 00:50:54,960 ALLISON: Fajne. 1118 00:50:54,960 --> 00:50:56,070 1119 00:50:56,070 --> 00:50:56,740 Dobry? 1120 00:50:56,740 --> 00:50:57,240 Niesamowite. 1121 00:50:57,240 --> 00:50:59,190 1122 00:50:59,190 --> 00:50:59,990 Tak więc, podczas gdy pętle. 1123 00:50:59,990 --> 00:51:01,160 1124 00:51:01,160 --> 00:51:02,570 Bardzo podobne. 1125 00:51:02,570 --> 00:51:03,737 Masz jakiś warunek. 1126 00:51:03,737 --> 00:51:05,820 Najważniejsze, aby zauważyć, o to zamiast 1127 00:51:05,820 --> 00:51:08,540 trzy różne części założyć, mamy jeden. 1128 00:51:08,540 --> 00:51:11,090 Musimy tylko trochę kondycji która jest sprawdzana. 1129 00:51:11,090 --> 00:51:14,920 I w taki sam sposób, tak długo jak że warunek jest spełniony, 1130 00:51:14,920 --> 00:51:16,840 Twój kod będzie działać. 1131 00:51:16,840 --> 00:51:18,870 A jeśli to fałsz, to zakończy, ruch 1132 00:51:18,870 --> 00:51:21,930 do następnej części programu. 1133 00:51:21,930 --> 00:51:25,780 Tak więc jest to rodzaj like-- co Dobrym przykładem sprawdzenia 1134 00:51:25,780 --> 00:51:27,215 z jakiegoś normalnego stanu? 1135 00:51:27,215 --> 00:51:29,402 1136 00:51:29,402 --> 00:51:30,235 GABRIEL: Choć prawda. 1137 00:51:30,235 --> 00:51:32,110 ALLISON: Można to zrobić, podczas gdy prawda. 1138 00:51:32,110 --> 00:51:33,510 No 1 jest równe 1. 1139 00:51:33,510 --> 00:51:34,970 1140 00:51:34,970 --> 00:51:37,642 >> ROB BOWDEN: Można zrobić while-- tylko zamiast za pomocą pętli for, 1141 00:51:37,642 --> 00:51:39,600 zawsze można zakodować do pętli w pętli while, 1142 00:51:39,600 --> 00:51:42,600 więc większa niż 0 lub Podczas gdy mniej niż 10. 1143 00:51:42,600 --> 00:51:45,200 1144 00:51:45,200 --> 00:51:46,010 >> ALLISON: Awesome. 1145 00:51:46,010 --> 00:51:50,640 A potem mamy zrobić, gdy pętle, które jest dobre dla użytkownika, gdzie walidacji 1146 00:51:50,640 --> 00:51:55,370 chcesz dostać coś od Twój użytkownik, sprawdzić, czy jest ważny, 1147 00:51:55,370 --> 00:51:57,060 a następnie kontynuować stamtąd. 1148 00:51:57,060 --> 00:52:04,000 Tak więc jedną z rzeczy, wiedzieć, z zrobić, gdy jest to, że to będzie do wykonania, 1149 00:52:04,000 --> 00:52:08,000 a następnie ponownie uruchomić jeśli warunek ten jest spełniony. 1150 00:52:08,000 --> 00:52:11,240 >> Więc prawdopodobnie najlepszym sposobem, aby to zrobić jest tylko, aby zobaczyć przykład tutaj. 1151 00:52:11,240 --> 00:52:14,620 Tak jak już wspomniałem, użytkownika walidacja jest naprawdę useful-- 1152 00:52:14,620 --> 00:52:17,520 czy chwilami są naprawdę przydatne przy weryfikacji użytkownika. 1153 00:52:17,520 --> 00:52:19,730 Tak więc jest to po prostu będzie ponownie zapyta jakiegoś użytkownika 1154 00:52:19,730 --> 00:52:23,640 aż wprowadzić liczbę dodatnią, które mogą być przydatne dla P zestawie 1155 00:52:23,640 --> 00:52:24,190 w tym tygodniu. 1156 00:52:24,190 --> 00:52:25,850 1157 00:52:25,850 --> 00:52:29,480 I tak w tym przypadku, gdy początkowo uruchomić ten program, 1158 00:52:29,480 --> 00:52:32,260 to będzie drukować wpisz liczbę dodatnią. 1159 00:52:32,260 --> 00:52:34,810 Zapowiada się niektóre Wejście od użytkownika, 1160 00:52:34,810 --> 00:52:38,320 i wtedy to się sprawdzić że wejście na stanie 1161 00:52:38,320 --> 00:52:39,500 które zostały ustawione dla niego. 1162 00:52:39,500 --> 00:52:41,030 >> Więc w tym przypadku to będzie sprawdzić. 1163 00:52:41,030 --> 00:52:44,190 To będzie powiedzieć, OK, to nasz wkład negatywny, 1164 00:52:44,190 --> 00:52:47,175 czy jest to 0 lub ujemny, które byłyby nieważne. 1165 00:52:47,175 --> 00:52:48,300 Tak więc byłoby to ponownie monit. 1166 00:52:48,300 --> 00:52:50,280 1167 00:52:50,280 --> 00:52:50,780 Pytanie? 1168 00:52:50,780 --> 00:52:54,720 >> Publiczność: Czy to samo wtedy jak podczas pętli, jeśli po prostu kopiowane tego kodu 1169 00:52:54,720 --> 00:52:56,680 i umieścić go [niesłyszalne], podczas gdy pętla? 1170 00:52:56,680 --> 00:52:59,620 1171 00:52:59,620 --> 00:53:05,160 >> ALLISON: Więc pytanie będzie to być taki sam, jak tylko chwilę 1172 00:53:05,160 --> 00:53:08,570 Pętla gdybyśmy tylko skopiować pętli while powyżej. 1173 00:53:08,570 --> 00:53:12,440 Więc w tym przypadku, gdy jest twoja pętla będzie najpierw sprawdzić stan. 1174 00:53:12,440 --> 00:53:15,300 Tak więc w tym przypadku, jeśli próbuje pisać jak tylko pętli while, 1175 00:53:15,300 --> 00:53:18,010 to znaczy czasu wejście jest mniejsza niż jeden. 1176 00:53:18,010 --> 00:53:20,801 Ale nie mamy wejście do niego. 1177 00:53:20,801 --> 00:53:24,238 >> PUBLICZNOŚCI: Jeśli [niesłyszalne] pętli while tym ten kod, 1178 00:53:24,238 --> 00:53:28,166 ale potem poradził sobie kod powyżej pętli jednocześnie. 1179 00:53:28,166 --> 00:53:31,052 Po prostu miał ten kod [Niesłyszalne], podczas gdy pętla. 1180 00:53:31,052 --> 00:53:32,760 ALLISON: Byłoby to samo, tak. 1181 00:53:32,760 --> 00:53:37,110 Więc może po prostu write-- zamiast mieć do-- tak. 1182 00:53:37,110 --> 00:53:37,976 1183 00:53:37,976 --> 00:53:39,350 GABRIEL: Ale to jest bardziej elegancki. 1184 00:53:39,350 --> 00:53:41,020 ALLISON: Tak, to jest bardziej elegancki. 1185 00:53:41,020 --> 00:53:44,560 Możesz dostać się do projektowania i etażerka, ale tak, można całkowicie zrobić. 1186 00:53:44,560 --> 00:53:45,850 1187 00:53:45,850 --> 00:53:47,072 Jeszcze jakieś pytania? 1188 00:53:47,072 --> 00:53:49,240 1189 00:53:49,240 --> 00:53:50,250 OK, fajnie. 1190 00:53:50,250 --> 00:53:55,540 >> Więc rozmawialiśmy dużo o warunkach z tych pętli, które mamy, 1191 00:53:55,540 --> 00:53:58,615 więc jesteśmy rzeczywiście dostać się do warunki wyrażeń logicznych. 1192 00:53:58,615 --> 00:53:59,990 1193 00:53:59,990 --> 00:54:03,440 Ponownie, można z nich korzystać w C, tak po prostu rodzaj przejścia 1194 00:54:03,440 --> 00:54:06,050 z graficznym interfejsem więcej faktycznie kodowania. 1195 00:54:06,050 --> 00:54:07,480 1196 00:54:07,480 --> 00:54:09,100 >> Fajne, tak duży jeden, jeśli. 1197 00:54:09,100 --> 00:54:11,130 1198 00:54:11,130 --> 00:54:17,070 W zasadzie tylko pozwala nam na wprowadzenie niektóre logiki do naszego programu i kontroli 1199 00:54:17,070 --> 00:54:17,790 sys warunki. 1200 00:54:17,790 --> 00:54:22,150 Tak więc w tym przypadku, OK, n jest większe niż 0? 1201 00:54:22,150 --> 00:54:24,070 Tak to jest, więc można wykonać to. 1202 00:54:24,070 --> 00:54:28,060 To jest po prostu sprawdzanie niektórych warunkiem, że masz 1203 00:54:28,060 --> 00:54:33,565 ustawić, które myślę, że wszyscy jesteśmy wygodne sprawdzanie warunków. 1204 00:54:33,565 --> 00:54:35,975 1205 00:54:35,975 --> 00:54:36,475 Fajne. 1206 00:54:36,475 --> 00:54:38,760 1207 00:54:38,760 --> 00:54:44,530 Więc jeśli jeszcze jest twój drugi, można powiedzieć, OK, jeśli to prawda, 1208 00:54:44,530 --> 00:54:46,150 zrobić to pierwszą rzeczą. 1209 00:54:46,150 --> 00:54:48,720 W przeciwnym razie chcę ci domyślne i zrobić coś innego. 1210 00:54:48,720 --> 00:54:51,977 1211 00:54:51,977 --> 00:54:55,060 Jak w tym przypadku, albo wybrać liczba dodatnia lub ujemna. 1212 00:54:55,060 --> 00:54:56,500 Masz tylko dwie opcje. 1213 00:54:56,500 --> 00:54:59,550 Musisz to wykonać bez względu co twoje wejścia użytkownika. 1214 00:54:59,550 --> 00:55:02,920 Więc można powiedzieć, dobrze, jest większa niż 0? 1215 00:55:02,920 --> 00:55:03,480 Fajne. 1216 00:55:03,480 --> 00:55:04,480 Wydrukuj liczbę dodatnią. 1217 00:55:04,480 --> 00:55:06,153 Jeśli nie jest, drukowanie negatywne. 1218 00:55:06,153 --> 00:55:06,960 Każdy dobry? 1219 00:55:06,960 --> 00:55:14,920 >> I wtedy jedna rzecz uznania jest że jeśli jeśli warunek jest spełniony, 1220 00:55:14,920 --> 00:55:16,650 jeszcze nigdy nie będzie również wykonać. 1221 00:55:16,650 --> 00:55:19,210 Tylko jeden z nich będzie wykonać w czasie. 1222 00:55:19,210 --> 00:55:20,410 Więc jest to kompromis. 1223 00:55:20,410 --> 00:55:21,720 Nie dostaniesz się mieć obu. 1224 00:55:21,720 --> 00:55:23,566 Trzeba albo pierwszy warunek. 1225 00:55:23,566 --> 00:55:25,440 Trzeba albo jeśli lub innego, nie oba. 1226 00:55:25,440 --> 00:55:26,849 1227 00:55:26,849 --> 00:55:28,890 Które następnie mogą dokonać rzeczy jeszcze bardziej skomplikowana, 1228 00:55:28,890 --> 00:55:31,060 bo można zrobić, jeśli, w przeciwnym wypadku, a następnie innego. 1229 00:55:31,060 --> 00:55:32,810 Tak więc w tym przypadku trzy warunki. 1230 00:55:32,810 --> 00:55:34,830 1231 00:55:34,830 --> 00:55:38,370 I znów, tylko jeden z nich jest skończy wykonywane. 1232 00:55:38,370 --> 00:55:41,030 Więc można się zastanawiać, A co, jeśli ty 1233 00:55:41,030 --> 00:55:45,510 mieć coś, co może spełnić dwa z nich. 1234 00:55:45,510 --> 00:55:49,520 Może co masz wprowadzania spełnia zarówno warunek 1235 00:55:49,520 --> 00:55:51,811 bo jeśli i else if. 1236 00:55:51,811 --> 00:55:53,060 Jedyne, co się dzieje, aby uruchomić 1237 00:55:53,060 --> 00:55:56,240 >> ALLISON: Jak tylko znajdzie coś że spełnia warunek, że 1238 00:55:56,240 --> 00:55:59,790 wartość true, to co to będzie działać i nic więcej. 1239 00:55:59,790 --> 00:56:04,440 Więc jeśli miał to liczba między 0 i 5 dla pierwszego, 1240 00:56:04,440 --> 00:56:10,530 czy jest to liczba z zakresu od 3 i 5 do innego, jeśli części, 1241 00:56:10,530 --> 00:56:15,550 i wejście number-- Powiedziałem, 0 i 5 and-- 4. 1242 00:56:15,550 --> 00:56:18,110 To będzie hit pierwszej. 1243 00:56:18,110 --> 00:56:20,960 To będzie powiedzieć OK, to liczba jest pomiędzy 0 i 5. 1244 00:56:20,960 --> 00:56:22,480 Uruchom i zostawić. 1245 00:56:22,480 --> 00:56:25,340 To nigdy nie trafi do tej drugiej opcji. 1246 00:56:25,340 --> 00:56:26,394 Cool? 1247 00:56:26,394 --> 00:56:27,250 Niesamowite. 1248 00:56:27,250 --> 00:56:31,300 >> OK, mamy także sprawozdania przełącznika, jeśli chcesz dostać nawet more-- lub przykro, 1249 00:56:31,300 --> 00:56:31,965 Przełącznik jest obok. 1250 00:56:31,965 --> 00:56:33,540 1251 00:56:33,540 --> 00:56:34,990 Jestem coraz dalej od siebie tutaj. 1252 00:56:34,990 --> 00:56:36,370 1253 00:56:36,370 --> 00:56:39,210 Ponownie, jeśli wielu bloków gdzie, jak właśnie powiedziałem 1254 00:56:39,210 --> 00:56:45,600 jest jak najszybciej znaleźć warunku że jest spełnione i jeśli inny jeśli inny, 1255 00:56:45,600 --> 00:56:46,630 pozostawia. 1256 00:56:46,630 --> 00:56:49,560 Jeśli potrzebujesz, aby sprawdzić wiele rzeczy, jesteś 1257 00:56:49,560 --> 00:56:53,000 będzie chciał korzystać z tego, ponieważ to sprawdzić za każdym razem tutaj. 1258 00:56:53,000 --> 00:56:58,060 Tak więc będzie przebiegał przez i po jest większa niż lub równa 90, 1259 00:56:58,060 --> 00:56:59,160 to będzie drukować, które. 1260 00:56:59,160 --> 00:57:00,530 1261 00:57:00,530 --> 00:57:03,600 I to będzie działać przez i sprawdzić każdy jeden z nich. 1262 00:57:03,600 --> 00:57:06,444 >> Publiczność: Tak to będzie więcej buggy niż [niesłyszalne]. 1263 00:57:06,444 --> 00:57:07,735 Będzie to jak [niesłyszalne]? 1264 00:57:07,735 --> 00:57:10,990 1265 00:57:10,990 --> 00:57:15,740 >> ALLISON: pytanie będzie to buggy czy ma to zrobić, co chcesz. 1266 00:57:15,740 --> 00:57:19,830 To naprawdę zależy od tego, co chcesz z programu. 1267 00:57:19,830 --> 00:57:22,291 >> PUBLICZNOŚCI: To znaczy jak, jeśli umieścić 90 w. 1268 00:57:22,291 --> 00:57:23,290 ALLISON: Jeśli umieścisz 90-- 1269 00:57:23,290 --> 00:57:24,206 PUBLICZNOŚCI: [niesłyszalne]. 1270 00:57:24,206 --> 00:57:25,584 1271 00:57:25,584 --> 00:57:27,250 GABRIEL: Będziesz się dwie rzeczy. 1272 00:57:27,250 --> 00:57:28,916 ALLISON: Będziesz się dwie rzeczy. 1273 00:57:28,916 --> 00:57:29,420 Tak, dwa. 1274 00:57:29,420 --> 00:57:32,420 1275 00:57:32,420 --> 00:57:33,920 >> ROB BOWDEN: Dwa? 1276 00:57:33,920 --> 00:57:34,580 >> ALLISON: Nie 1277 00:57:34,580 --> 00:57:35,288 >> ROB BOWDEN: Cztery. 1278 00:57:35,288 --> 00:57:37,070 1279 00:57:37,070 --> 00:57:40,070 Jeśli umieścisz 90, to ci powie dostał A, masz B, masz C, 1280 00:57:40,070 --> 00:57:40,545 masz D. 1281 00:57:40,545 --> 00:57:41,461 >> PUBLICZNOŚCI: [niesłyszalne]. 1282 00:57:41,461 --> 00:57:42,196 1283 00:57:42,196 --> 00:57:42,820 ALLISON: Prawo. 1284 00:57:42,820 --> 00:57:44,778 Tak więc w zależności od tego, co chcę od Ciebie programu. 1285 00:57:44,778 --> 00:57:47,050 Czasami trzeba sprawdzić kilka rzeczy. 1286 00:57:47,050 --> 00:57:49,970 1287 00:57:49,970 --> 00:57:55,270 Dostaniesz znacznie głębiej w to, co Dobry projekt to jak iść do przodu. 1288 00:57:55,270 --> 00:57:57,090 Ważne jest, aby zdaje sobie sprawy, że to 1289 00:57:57,090 --> 00:58:01,090 sprawdzi tutaj wszystkie cztery warunki. 1290 00:58:01,090 --> 00:58:05,860 Zważywszy, że gdyby to było w przypadku innego, jeśli inny jeśli jeszcze, że będzie to pierwszy przypadek uderzył, 1291 00:58:05,860 --> 00:58:07,950 to wydrukować masz piątkę i zrobić. 1292 00:58:07,950 --> 00:58:10,250 >> ROB BOWDEN: Nawet jeśli postanowił to zmienić, aby w przypadku 1293 00:58:10,250 --> 00:58:13,880 i większa lub równa 90, jeśli większy lub równy 80, 1294 00:58:13,880 --> 00:58:19,710 i mniej niż lub równa się 89, o ile n większy niż lub równy 70, 1295 00:58:19,710 --> 00:58:23,830 i n mniejszy lub równy 79, tak że będzie prawidłowy. 1296 00:58:23,830 --> 00:58:27,190 Że będą robić to, co chcemy, ale nadal sprawdza każdy to. 1297 00:58:27,190 --> 00:58:34,050 >> Tak więc, podczas gdy w pierwszym scenariuszu, jeśli wprowadzić 90 z tylko jeśli else if else if, 1298 00:58:34,050 --> 00:58:37,300 i wprowadzić 90, a następnie to będzie poprawić. 1299 00:58:37,300 --> 00:58:39,615 Sprawdzi pierwszy jeden, druk masz piątkę, 1300 00:58:39,615 --> 00:58:42,590 pominąć wszystko, bo to już znaleźć taki, który działa. 1301 00:58:42,590 --> 00:58:46,360 Wszystkie przypadki wzajemnie się wykluczają na podstawie, jeśli else if else if. 1302 00:58:46,360 --> 00:58:48,630 Więc to wykonać pierwsze, jeśli to się robi. 1303 00:58:48,630 --> 00:58:49,790 To będzie go do końca. 1304 00:58:49,790 --> 00:58:52,400 >> Natomiast jeśli zmienimy to jest to, co było 1305 00:58:52,400 --> 00:58:54,204 mówiąc, mniej niż lub równa się 89. 1306 00:58:54,204 --> 00:58:55,620 To będzie sprawdzić pierwszy. 1307 00:58:55,620 --> 00:58:56,560 To będzie drukować. 1308 00:58:56,560 --> 00:58:58,010 To będzie sprawdzić drugi. 1309 00:58:58,010 --> 00:58:59,010 To nie będzie drukować. 1310 00:58:59,010 --> 00:58:59,910 Sprawdź trzeci. 1311 00:58:59,910 --> 00:59:00,620 Nie będzie drukować. 1312 00:59:00,620 --> 00:59:01,495 Sprawdź czwartą. 1313 00:59:01,495 --> 00:59:02,420 Teraz do druku. 1314 00:59:02,420 --> 00:59:05,380 Więc w tym przypadku, innego, jeśli wersji, ponieważ te przypadki 1315 00:59:05,380 --> 00:59:09,120 wykluczają się wzajemnie, to lepsze wykorzystanie jeśli else if else if, 1316 00:59:09,120 --> 00:59:12,970 dlatego, że będzie miał mniej kontrole warunków 1317 00:59:12,970 --> 00:59:14,750 od tej wersji. 1318 00:59:14,750 --> 00:59:17,692 1319 00:59:17,692 --> 00:59:18,400 ALLISON: Awesome. 1320 00:59:18,400 --> 00:59:20,580 Tak więc kolejna rzecz, możemy Oświadczenia nie jest przełącznik. 1321 00:59:20,580 --> 00:59:23,104 1322 00:59:23,104 --> 00:59:25,270 Zasadniczo instrukcja switch bierze w pewnym zmiennej, 1323 00:59:25,270 --> 00:59:28,780 w tym przypadku jest to n i określa wówczas wykonać. 1324 00:59:28,780 --> 00:59:33,106 Więc to jest również jednym gdzie swoje sprawy powinien być rodzaj wzajemnie się wykluczają. 1325 00:59:33,106 --> 00:59:35,210 1326 00:59:35,210 --> 00:59:37,940 Tak więc w tym przypadku, jeżeli my mamy jeden, to 1327 00:59:37,940 --> 00:59:42,270 zamierza dopasować cokolwiek to zmienna-- cokolwiek wartość n 1328 00:59:42,270 --> 00:59:48,700 jest, aby jeden z tych przypadków, tak 1, 2, lub 3, i wydrukować odpowiedni wiersz. 1329 00:59:48,700 --> 00:59:51,870 >> A potem, jeśli zauważy się tutaj, mamy także domyślne, 1330 00:59:51,870 --> 00:59:54,670 które można z myślą o jak twój indziej. 1331 00:59:54,670 --> 00:59:58,510 Więc jeśli wybierzesz inny numer Poza 1, 2 i 3 w tym przypadku 1332 00:59:58,510 --> 00:59:59,885 to jest po prostu do druku nieważne. 1333 00:59:59,885 --> 01:00:03,690 1334 01:00:03,690 --> 01:00:08,390 Podejmowanie decyzji, kiedy należy użyć IFS kontra jeśli elses kontra przełączników będzie 1335 01:00:08,390 --> 01:00:12,590 być coś, że chłopaki będą zobacz projekt mądry jak zacząć pisać 1336 01:00:12,590 --> 01:00:15,270 bardziej skomplikowane programy, a nie ma żadnych sztywnych zasad 1337 01:00:15,270 --> 01:00:16,330 od kiedy je stosować. 1338 01:00:16,330 --> 01:00:17,890 To naprawdę zależy od kontekstu. 1339 01:00:17,890 --> 01:00:18,590 >> ROB BOWDEN: I tylko rzucić go tam 1340 01:00:18,590 --> 01:00:20,131 ponieważ jest bardziej komfortowe sekcja. 1341 01:00:20,131 --> 01:00:20,920 1342 01:00:20,920 --> 01:00:25,053 Przełączniki, mają tendencję do być: więc jesteś ograniczony 1343 01:00:25,053 --> 01:00:27,430 w liczbie sposobów można Można z nich korzystać, ponieważ IFS, 1344 01:00:27,430 --> 01:00:30,100 Choroba ta może być dość dużo cokolwiek chcesz. 1345 01:00:30,100 --> 01:00:33,410 Z przełącza przypadki muszą być liczbami 1346 01:00:33,410 --> 01:00:37,770 lub technicznych mogą być znaki, ale znaków, jak zobaczymy, są numery tylko. 1347 01:00:37,770 --> 01:00:44,250 Więc muszą być liczbami, ale przełączniki są rzeczywiście bardziej skuteczne, niż gdyby 1348 01:00:44,250 --> 01:00:50,060 else if else if, bo nawet biorąc przykład before-- dobrze, 1349 01:00:50,060 --> 01:00:51,486 Przykładem klasy wydaje się dobre. 1350 01:00:51,486 --> 01:00:52,550 1351 01:00:52,550 --> 01:00:57,080 >> No powiedzmy, że tutaj, że zamiast robić to jak, jeśli else if else if scenariusz. 1352 01:00:57,080 --> 01:01:00,930 Więc jeśli n jest równa jest równa 1, wydrukować wybrałeś małą liczbę. 1353 01:01:00,930 --> 01:01:04,490 Jeśli inny, jeśli n jest równa jest równa 2, wybrałeś numer średniej. 1354 01:01:04,490 --> 01:01:06,550 Else if równi wynosi 3, na wysokim poziomie. 1355 01:01:06,550 --> 01:01:08,060 Jeszcze nieważny. 1356 01:01:08,060 --> 01:01:09,820 >> Więc powiedzmy, że był nasz scenariusz. 1357 01:01:09,820 --> 01:01:14,060 Więc powiedzmy, że wchodzimy 4, więc spodziewamy się nieważne. 1358 01:01:14,060 --> 01:01:17,410 Sposób, że jeśli inny jeśli inny jeśli podejście będzie działać to 1359 01:01:17,410 --> 01:01:18,740 sprawdza pierwszy warunek. 1360 01:01:18,740 --> 01:01:19,776 To nie jest spełniony. 1361 01:01:19,776 --> 01:01:21,150 Więc sprawdzić drugi warunek. 1362 01:01:21,150 --> 01:01:21,940 To nie jest spełniony. 1363 01:01:21,940 --> 01:01:23,023 Sprawdź trzeci warunek. 1364 01:01:23,023 --> 01:01:23,640 Nie zadowolony. 1365 01:01:23,640 --> 01:01:26,650 Więc idziemy do innego i wydrukować nieważne. 1366 01:01:26,650 --> 01:01:30,169 >> Przełącznik działa tak to kompiluje się 1367 01:01:30,169 --> 01:01:31,960 do tego, co mamy zamiar zadzwonić tabelę skoku. 1368 01:01:31,960 --> 01:01:33,180 1369 01:01:33,180 --> 01:01:37,120 Ideą istota że po wprowadzeniu 4, 1370 01:01:37,120 --> 01:01:39,090 może natychmiast przejść do ustawień. 1371 01:01:39,090 --> 01:01:41,460 To nie musi się sprawdzić, ja mam sprawę jeden? 1372 01:01:41,460 --> 01:01:42,350 Nope, że nie o to chodzi. 1373 01:01:42,350 --> 01:01:42,850 Przypadek 2? 1374 01:01:42,850 --> 01:01:43,240 Nie. 1375 01:01:43,240 --> 01:01:43,770 Przypadek 3? 1376 01:01:43,770 --> 01:01:44,270 Nie. 1377 01:01:44,270 --> 01:01:45,090 Domyślnie. 1378 01:01:45,090 --> 01:01:47,610 OK, to musi być tam, gdzie ja chcą, a następnie wykonać to. 1379 01:01:47,610 --> 01:01:49,590 Nie, to od razu przeskakuje do domyślnie. 1380 01:01:49,590 --> 01:01:51,900 Albo wprowadzić dwa, to natychmiast pójdzie do 2 1381 01:01:51,900 --> 01:01:54,060 bez konieczności przechodzenia przez przypadku 1. 1382 01:01:54,060 --> 01:01:57,820 >> Tak więc w ten sposób Obecnie to realistycznie 1383 01:01:57,820 --> 01:02:00,250 nie, że wiele z przyrost wydajności. 1384 01:02:00,250 --> 01:02:02,880 Zazwyczaj komputery są dość szybko, a to nie jest tak wielka. 1385 01:02:02,880 --> 01:02:07,270 Ale to jest tak, że Przełączniki są szybsze. 1386 01:02:07,270 --> 01:02:10,380 Jeśli jesteś naprawdę próbuje optymalizację, należy użyć przełącznika. 1387 01:02:10,380 --> 01:02:11,980 1388 01:02:11,980 --> 01:02:12,710 >> ALLISON: Fajne. 1389 01:02:12,710 --> 01:02:15,270 A potem mamy operatora potrójny. 1390 01:02:15,270 --> 01:02:19,470 Więc wiem, że wspomniane wcześniej Słowo cukier syntaktyczny. 1391 01:02:19,470 --> 01:02:24,160 Więc to tylko rzeczy, które sprawiają, kod o wiele bardziej zwięzłe. 1392 01:02:24,160 --> 01:02:25,590 Tak więc jest to jeden z tych przypadków. 1393 01:02:25,590 --> 01:02:31,430 >> Więc operator trójoperandowy jest znak zapytania jelita grubego, jak widzimy, w ciągu linii 1394 01:02:31,430 --> 01:02:35,810 s jest równa n większy niż 100 znak zapytania niskie wysokie jelita grubego. 1395 01:02:35,810 --> 01:02:41,800 Więc w zasadzie, jak to działa jest to n większy niż 100 warunek. 1396 01:02:41,800 --> 01:02:43,674 Więc myślę, że to może mieć sens. 1397 01:02:43,674 --> 01:02:44,840 To jest jak zadawanie pytania. 1398 01:02:44,840 --> 01:02:47,320 To mówi o, n jest większa niż 100. 1399 01:02:47,320 --> 01:02:48,340 Kto wie? 1400 01:02:48,340 --> 01:02:50,750 A jeśli ocenia się prawda, to będzie ci 1401 01:02:50,750 --> 01:02:54,270 Pierwszą rzeczą, która jest wymienione tam, który jest wysoki. 1402 01:02:54,270 --> 01:02:55,840 W przeciwnym razie to się daje niskie. 1403 01:02:55,840 --> 01:03:01,210 Więc to jest po prostu bardzo proste i skuteczny sposób to zrobić, jak w przypadku innego. 1404 01:03:01,210 --> 01:03:02,780 To wszystko to jest. 1405 01:03:02,780 --> 01:03:07,450 >> A jeśli były to napisać a jeśli jeszcze warunkowe, 1406 01:03:07,450 --> 01:03:12,480 byłoby jeśli n jest większe niż 100, powrót wysokiej. 1407 01:03:12,480 --> 01:03:14,220 Innego, wrócić niskie. 1408 01:03:14,220 --> 01:03:17,570 To jest po prostu o wiele bardziej zwięzły sposób pisania. 1409 01:03:17,570 --> 01:03:27,090 >> ROB BOWDEN: Więc to szczególny przykład jest kiedy robisz coś 1410 01:03:27,090 --> 01:03:30,190 w ten sposób, to jest wzór których używam bardzo często trójskładnikowej. 1411 01:03:30,190 --> 01:03:31,540 1412 01:03:31,540 --> 01:03:35,460 Więc nie mamy jeszcze rozmawiali o zakresie, ale nienawidzę widząc łańcuch s średnik. 1413 01:03:35,460 --> 01:03:39,150 Jeśli n większe niż 100, s równa wysokości. 1414 01:03:39,150 --> 01:03:40,660 Indziej, s równa niska. 1415 01:03:40,660 --> 01:03:45,070 Tak, że wzór, te pięć linii Kod dosłownie 100% czasu 1416 01:03:45,070 --> 01:03:49,800 mogą być przeniesione do co był tam z trójskładnikowych. 1417 01:03:49,800 --> 01:03:52,340 Więc trójoperandowy jedna linia kodu. 1418 01:03:52,340 --> 01:03:54,640 Jeśli jeszcze, pięć. 1419 01:03:54,640 --> 01:03:56,910 To przykład wskazuję na każdy czas. 1420 01:03:56,910 --> 01:03:59,250 Byłoby to świetne miejsce dla operatora potrójnego. 1421 01:03:59,250 --> 01:04:00,647 To jest tak czyste. 1422 01:04:00,647 --> 01:04:01,980 Ale ludzie mają tendencję, aby nigdy nie używać go. 1423 01:04:01,980 --> 01:04:06,140 1424 01:04:06,140 --> 01:04:08,030 >> ALLISON: Zabierz to Gabe'a. 1425 01:04:08,030 --> 01:04:11,110 >> GABRIEL: Więc teraz wy wszyscy nauczyłem się w tym tygodniu wykład 1426 01:04:11,110 --> 01:04:13,420 że wszystko w Komputer jest binarny, prawda? 1427 01:04:13,420 --> 01:04:14,570 Podobnie jak lampy tutaj. 1428 01:04:14,570 --> 01:04:16,492 Możesz być włączane i wyłączane. 1429 01:04:16,492 --> 01:04:18,450 I wszystko, co mam na myśli dosłownie wszystko. 1430 01:04:18,450 --> 01:04:24,272 Niektóre cyfry i znaki i łańcuchy, a nawet kod, który piszesz, kiedy 1431 01:04:24,272 --> 01:04:26,480 jest kompilowany do maszyny Kod i takie tam, 1432 01:04:26,480 --> 01:04:29,230 tak, to wszystko sprowadza się do 0 i 1 ". 1433 01:04:29,230 --> 01:04:34,540 >> I tak, gdy mamy do czynienia z liczb całkowitych, które 1434 01:04:34,540 --> 01:04:38,000 jest coś, co jest technicznie bardzo prosta, powinniśmy być w stanie zrobić rzeczy 1435 01:04:38,000 --> 01:04:40,630 jak dodanie ich, co jest prawdopodobnie jedna z najprostszych rzeczy 1436 01:04:40,630 --> 01:04:42,300 można zrobić, aby dwóch liczb całkowitych, tak? 1437 01:04:42,300 --> 01:04:47,410 Więc dodawanie i odejmowanie działa tak jak to działa w systemie dziesiętnym, 1438 01:04:47,410 --> 01:04:50,780 wyjątkiem tutaj jest to binarny, prawda? 1439 01:04:50,780 --> 01:04:52,090 Więc jest to w bazie dwóch. 1440 01:04:52,090 --> 01:04:54,070 Więc dodać 1 plus 1. 1441 01:04:54,070 --> 01:04:57,020 To daje 0, a 1 przenosi. 1442 01:04:57,020 --> 01:05:01,335 I po prostu robić to, więc teraz jest bardziej interesujące pytanie. 1443 01:05:01,335 --> 01:05:03,730 1444 01:05:03,730 --> 01:05:07,710 >> Wiemy, jak do reprezentowania wszystkich dodatnich liczb całkowitych w komputerze, 1445 01:05:07,710 --> 01:05:09,870 ale zróbmy to ćwiczenie. 1446 01:05:09,870 --> 01:05:15,240 Udawaj, że chłopaki są w 1960 roku lub coś próbuje stworzyć komputer, 1447 01:05:15,240 --> 01:05:19,950 i trzeba wymyślić od sposób przechowywania minus 1, 1448 01:05:19,950 --> 01:05:22,554 na przykład, lub minus Liczba całkowita o to chodzi. 1449 01:05:22,554 --> 01:05:23,470 Jak to zrobić? 1450 01:05:23,470 --> 01:05:27,820 1451 01:05:27,820 --> 01:05:29,220 Jakieś pomysły? 1452 01:05:29,220 --> 01:05:31,302 Wystarczy rzucić wszystko na mnie. 1453 01:05:31,302 --> 01:05:32,264 Tak? 1454 01:05:32,264 --> 01:05:39,480 >> PUBLICZNOŚCI: [niesłyszalne] wyznaczyć Specjalny jeśli twój [niesłyszalne]. 1455 01:05:39,480 --> 01:05:42,590 >> GABRIEL: Możesz wyznaczyć specjalny bit, który będzie wynosić 0 lub 1. 1456 01:05:42,590 --> 01:05:45,590 Powiedzmy, że jeden, czy to pozytywne i 0, jeśli jest ujemna. 1457 01:05:45,590 --> 01:05:48,171 A następnie reszta bitu jest tylko, aby zapisać numer. 1458 01:05:48,171 --> 01:05:48,670 Fajne. 1459 01:05:48,670 --> 01:05:49,990 Więc to jest bardzo dobry pomysł. 1460 01:05:49,990 --> 01:05:51,550 Mamy, nie wiem, 200. 1461 01:05:51,550 --> 01:05:54,720 A jeżeli pierwszy bit jest włączona, to jest oraz 200. 1462 01:05:54,720 --> 01:05:57,270 Jeśli jest wyłączona, to minus 200. 1463 01:05:57,270 --> 01:05:58,380 Fajne. 1464 01:05:58,380 --> 01:06:01,350 >> Istnieje tylko jedna mała Problem polega na tym, 1465 01:06:01,350 --> 01:06:05,370 co jeśli spróbujemy Podsumowując rzeczy. 1466 01:06:05,370 --> 01:06:18,910 Więc wyobraź sobie, mamy 11111 tutaj, i jesteśmy zsumowanie to z 00.100 cokolwiek. 1467 01:06:18,910 --> 01:06:21,630 Jeśli te dwa są pozytywne, to w porządku. 1468 01:06:21,630 --> 01:06:24,470 Jednak wówczas, gdy jeden z im jest ujemny, podobnie jak 1469 01:06:24,470 --> 01:06:27,410 powiedzmy, że to trochę tutaj to taki, który jest odpowiedzialny 1470 01:06:27,410 --> 01:06:31,390 for-- Zamierzam zrobić separate-- więc ten oznacza, że ​​liczba ta tutaj 1471 01:06:31,390 --> 01:06:31,970 jest dodatni. 1472 01:06:31,970 --> 01:06:34,450 Ten oznacza, że liczba tutaj jest ujemna, prawda? 1473 01:06:34,450 --> 01:06:37,010 >> Ale wtedy, gdy jesteś zamierza je podsumować, to 1474 01:06:37,010 --> 01:06:40,180 potrzebujesz if mówiąc: och, czy to jest 0, 1475 01:06:40,180 --> 01:06:43,479 to suma będzie moja coś innego, prawda? 1476 01:06:43,479 --> 01:06:45,270 Więc nie ma lekko bardziej sprytny sposób zrobić 1477 01:06:45,270 --> 01:06:48,520 to, co jest nazywane uzupełnienie dwójkowe. 1478 01:06:48,520 --> 01:06:52,350 Więc w zasadzie to, co zrobić, to definiujemy minus 1 1479 01:06:52,350 --> 01:06:57,250 jest rzeczą, że jeśli dodamy do 1 daje nam 0. 1480 01:06:57,250 --> 01:06:59,470 1481 01:06:59,470 --> 01:07:00,860 Powtórzę, że. 1482 01:07:00,860 --> 01:07:03,280 Więc powiedzmy, że to tutaj jest jeden. 1483 01:07:03,280 --> 01:07:08,110 1484 01:07:08,110 --> 01:07:13,570 Co to jest rzecz, która naturalnie w dodatnich liczb całkowitych 1485 01:07:13,570 --> 01:07:15,570 dodać do tego daje nam 0? 1486 01:07:15,570 --> 01:07:19,150 1487 01:07:19,150 --> 01:07:21,030 Co zrobić, jeśli staramy się go dodać do tej liczby? 1488 01:07:21,030 --> 01:07:22,830 1489 01:07:22,830 --> 01:07:28,032 Jedziemy do have-- OK, więc dodajmy. 1490 01:07:28,032 --> 01:07:32,820 1491 01:07:32,820 --> 01:07:38,065 Mamy zamiar mieć jeden plus 1 oznacza 0, a następnie przenosi się. 1492 01:07:38,065 --> 01:07:40,160 1493 01:07:40,160 --> 01:07:45,490 A potem będziemy się 0 ponownie. 1494 01:07:45,490 --> 01:07:47,730 1495 01:07:47,730 --> 01:07:48,820 Dostaję mylić. 1496 01:07:48,820 --> 01:07:51,670 I masz zamiar się 0 i 0 i 0 i 0 i 0 i 0. 1497 01:07:51,670 --> 01:07:52,450 Dużo 0-tych. 1498 01:07:52,450 --> 01:07:56,240 >> W ostatniej jednej, nie jesteśmy będzie zdolny do przeprowadzenia go, 1499 01:07:56,240 --> 01:07:59,614 bo powiedzmy, że mamy do czynienia tylko z jednego bajta, więc tylko 8 bitów. 1500 01:07:59,614 --> 01:08:02,780 Więc to, co komputer robi domyślnie jest po prostu zapomina o tym [niesłyszalne], 1501 01:08:02,780 --> 01:08:03,279 OK? 1502 01:08:03,279 --> 01:08:04,530 1503 01:08:04,530 --> 01:08:06,880 Więc to jest to, co nazywa się uzupełnienia do dwóch. 1504 01:08:06,880 --> 01:08:15,180 My po prostu zdefiniować minus 1 za coś tutaj, że jeśli dodać, że do 1 1505 01:08:15,180 --> 01:08:15,995 nie daje 0. 1506 01:08:15,995 --> 01:08:17,609 1507 01:08:17,609 --> 01:08:20,180 I to jest bardzo fajne dlatego, że tak naprawdę nie 1508 01:08:20,180 --> 01:08:24,090 trzeba późno do wdrożenia Inny rodzaj sumy 1509 01:08:24,090 --> 01:08:26,590 w zależności od tego, czy jest to liczby ujemne lub dodatnie. 1510 01:08:26,590 --> 01:08:27,465 Czy to ma sens? 1511 01:08:27,465 --> 01:08:28,740 1512 01:08:28,740 --> 01:08:32,370 >> Więc jedna rzecz, co robimy tu w celu przekształcenia 1513 01:08:32,370 --> 01:08:38,550 pomiędzy dodatni i ujemny całkowita jest wtedy odwrócić wszystko, 1514 01:08:38,550 --> 01:08:40,930 a następnie dodać 1 do tej liczby. 1515 01:08:40,930 --> 01:08:43,140 Jeśli spróbujesz zrobić to sam na kartce papieru, 1516 01:08:43,140 --> 01:08:44,681 masz zamiar zobaczyć, że ma sens. 1517 01:08:44,681 --> 01:08:51,000 Ale jeśli wziąć pod ten numer Tutaj jest to pięć. 1518 01:08:51,000 --> 01:08:54,859 Więc jeśli odwrócić wszystko Tu tak 1, 1, 1, 1, 1. 1519 01:08:54,859 --> 01:08:55,880 1520 01:08:55,880 --> 01:08:57,830 Flip, flip, klapki. 1521 01:08:57,830 --> 01:09:00,130 A następnie dodać 1 do niego. 1522 01:09:00,130 --> 01:09:02,750 Mam zamiar dokładnie minus 5 mają. 1523 01:09:02,750 --> 01:09:03,250 OK? 1524 01:09:03,250 --> 01:09:06,220 >> Ten rodzaj ma sens, bo jeśli spróbować podsumować ten z numerem 1525 01:09:06,220 --> 01:09:10,229 że mieliśmy wcześniej, co was-- niech odwrócić tego ponownie. 1526 01:09:10,229 --> 01:09:12,999 To było 101 i mnóstwo 0 na. 1527 01:09:12,999 --> 01:09:13,795 1528 01:09:13,795 --> 01:09:15,670 Jeśli spróbujesz dodać te dwa numery razem, 1529 01:09:15,670 --> 01:09:16,961 będziesz dokładnie 0 mają. 1530 01:09:16,961 --> 01:09:18,920 1531 01:09:18,920 --> 01:09:19,460 OK. 1532 01:09:19,460 --> 01:09:19,884 Jakieś pytania? 1533 01:09:19,884 --> 01:09:20,759 >> PUBLICZNOŚCI: [niesłyszalne] 1534 01:09:20,759 --> 01:09:25,790 1535 01:09:25,790 --> 01:09:27,280 >> GABRIEL: Co masz na myśli? 1536 01:09:27,280 --> 01:09:29,240 >> Publiczność: Negatyw na pozytywne [niesłyszalne]. 1537 01:09:29,240 --> 01:09:33,215 >> GABRIEL: Nie, klapki i zawsze można dodać jeden. 1538 01:09:33,215 --> 01:09:34,081 1539 01:09:34,081 --> 01:09:34,580 Tak. 1540 01:09:34,580 --> 01:09:36,910 1541 01:09:36,910 --> 01:09:39,680 OK, więc znaki zakodowane także pliki binarne. 1542 01:09:39,680 --> 01:09:42,649 Mamy tabeli ASCII, jak ty również widział w wykładzie, prawda? 1543 01:09:42,649 --> 01:09:45,040 Więc to w zasadzie odwzorowanie rzeczy. 1544 01:09:45,040 --> 01:09:50,960 I tutaj nie mogę podkreślić wystarczająco że na komputer, a 65 1545 01:09:50,960 --> 01:09:52,770 dosłownie to samo. 1546 01:09:52,770 --> 01:10:03,430 Więc jeśli piszę coś char c jest równa, to może jednocześnie 1547 01:10:03,430 --> 01:10:06,890 wystarczy napisać 65 tutaj, i to byłby dokładnie taki sam, ok? 1548 01:10:06,890 --> 01:10:08,470 Nie ma żadnej różnicy. 1549 01:10:08,470 --> 01:10:12,420 >> Zwykle mają tendencję do wprowadzenia znaki w zmiennych typu. 1550 01:10:12,420 --> 01:10:16,770 Char, a nie dlatego, że są w zasadzie się do tego, ale ponieważ 1551 01:10:16,770 --> 01:10:18,050 ludzkich konwencji. 1552 01:10:18,050 --> 01:10:22,410 Ale może po prostu do czynienia z liczbami całkowitymi zamiast zmiennych typu char, 1553 01:10:22,410 --> 01:10:23,490 i wszystko będzie w porządku. 1554 01:10:23,490 --> 01:10:28,410 Tylko rzeczywista różnica między c char i int i 1555 01:10:28,410 --> 01:10:31,960 jest to, że int ma cztery bajty w najbardziej systemy, a char ma jeden bajt. 1556 01:10:31,960 --> 01:10:33,070 1557 01:10:33,070 --> 01:10:35,460 Są zasadniczo To samo w odniesieniu do danych. 1558 01:10:35,460 --> 01:10:36,990 1559 01:10:36,990 --> 01:10:37,990 Więc co będzie drukować tutaj? 1560 01:10:37,990 --> 01:10:43,780 Tutaj mamy do drukowania cyfrę za pomocą printf z plusem 1 i podobnie jak liczby całkowite, 1561 01:10:43,780 --> 01:10:46,240 znaków można podsumować tak, Znaki mogą być sumowane. 1562 01:10:46,240 --> 01:10:47,890 Tak to jest dokładnie 65. 1563 01:10:47,890 --> 01:10:49,950 Więc nie będzie 66, i tutaj mamy 1564 01:10:49,950 --> 01:10:56,860 65 oraz mały minus duży, co będzie, ja naprawdę nie wiem. 1565 01:10:56,860 --> 01:11:00,900 Ale to będzie dokładnie luka między literami 1566 01:11:00,900 --> 01:11:07,800 i oraz mniejsze litery, więc będziemy się mała, prawda? 1567 01:11:07,800 --> 01:11:08,300 Tak. 1568 01:11:08,300 --> 01:11:11,740 Więc to będzie drukować znak, który jest dokładnie ten. 1569 01:11:11,740 --> 01:11:12,260 Dobry? 1570 01:11:12,260 --> 01:11:12,860 Jakieś pytania? 1571 01:11:12,860 --> 01:11:16,320 1572 01:11:16,320 --> 01:11:19,430 >> Tutaj mamy kilka różnych typy zmiennych liczbowych. 1573 01:11:19,430 --> 01:11:20,620 Już mówić o int. 1574 01:11:20,620 --> 01:11:21,740 1575 01:11:21,740 --> 01:11:27,760 Pływak jest tylko sposobem to-- to jest naprawdę zabawne, bo kiedy pierwszy raz dowiedziałem się 1576 01:11:27,760 --> 01:11:32,320 zaprogramować z powrotem w dzień z Python, pierwszy program kiedykolwiek 1577 01:11:32,320 --> 01:11:37,480 próbował pisać, zobaczyłem, że nie było typ nazywany w nazwie typu i pływak. 1578 01:11:37,480 --> 01:11:39,800 I pływak był dla wszystkich liczb rzeczywistych. 1579 01:11:39,800 --> 01:11:43,290 Więc zapytałem, dlaczego Kiedykolwiek używać int wtedy? 1580 01:11:43,290 --> 01:11:45,590 Bo jeśli mogę użyć wszystkich liczby rzeczywiste z pływaka, 1581 01:11:45,590 --> 01:11:47,120 Chciałbym po prostu przestać używać ints, prawda? 1582 01:11:47,120 --> 01:11:49,550 Ponieważ są liczbami rzeczywistymi podobnie jak bardziej ogólne. 1583 01:11:49,550 --> 01:11:51,820 1584 01:11:51,820 --> 01:11:54,060 >> Okazuje się, że jest to nie w przypadku komputerów 1585 01:11:54,060 --> 01:11:58,480 bo są zasadniczo różne rzeczy. 1586 01:11:58,480 --> 01:12:01,470 Tak więc całkowite i pływaków, Operacje, które możesz zrobić z nimi 1587 01:12:01,470 --> 01:12:04,739 są zasadniczo różne, ponieważ na sposób, że są one przechowywane, w porządku? 1588 01:12:04,739 --> 01:12:07,280 Idziemy porozmawiać trochę nieco więcej o tym za chwilę. 1589 01:12:07,280 --> 01:12:09,110 >> Tak właśnie jest dwukrotnie większy pływak. 1590 01:12:09,110 --> 01:12:12,830 Zazwyczaj w większości systemów, pływak to cztery bajty, podobnie jak int. 1591 01:12:12,830 --> 01:12:15,440 I podwójne jest osiem bajtów. 1592 01:12:15,440 --> 01:12:21,450 Dawno to właściwie tylko symbol że dołączenie się do rodzaju, jak int. 1593 01:12:21,450 --> 01:12:24,040 Mówisz, że długo długo int tak. 1594 01:12:24,040 --> 01:12:28,550 Long long int x, aby go dłużej. 1595 01:12:28,550 --> 01:12:32,310 Tak więc w większości systemów, które dadzą osiem bajtów zamiast zwykłej czterech. 1596 01:12:32,310 --> 01:12:35,620 I rzeczywiście można upuścić w, więc może po prostu powiedzieć długo długo, 1597 01:12:35,620 --> 01:12:37,240 i że działa też, OK? 1598 01:12:37,240 --> 01:12:42,850 Możesz też robić inne rzeczy, takie jak unsigned int, lub ponownie tylko niepodpisane 1599 01:12:42,850 --> 01:12:43,680 będzie działać. 1600 01:12:43,680 --> 01:12:49,370 I która stałaby być zmienną x jak wszystko jest pozytywna, 1601 01:12:49,370 --> 01:12:53,231 tak naprawdę nie można mieć negatywne numerów w sposób, który widzieliśmy tutaj. 1602 01:12:53,231 --> 01:12:56,484 1603 01:12:56,484 --> 01:12:58,650 Więc po wspaniałym punkt i precyzji pływających. 1604 01:12:58,650 --> 01:13:01,890 To jeden z powodów, dla was użyć ints zamiast pływaków, 1605 01:13:01,890 --> 01:13:04,370 bo ints są w 100% dokładne, prawda? 1606 01:13:04,370 --> 01:13:06,170 To jest dokładnie to, że liczba. 1607 01:13:06,170 --> 01:13:11,910 Dla punktów pływających, jeśli Ciebie powiedzieć, odpowiedź jest równa 1 przez 10-- 1608 01:13:11,910 --> 01:13:14,690 Zdarza mi się mieć dokładnie ten Program tutaj, float.c. 1609 01:13:14,690 --> 01:13:16,390 1610 01:13:16,390 --> 01:13:19,420 Która drukuje do 20 miejsc po przecinku. 1611 01:13:19,420 --> 01:13:23,270 1 podzielone przez 10, a zazwyczaj wynosi 0,1, prawda? 1612 01:13:23,270 --> 01:13:27,910 Ale tutaj, jeśli robimy unosić się, a potem go uruchomić, 1613 01:13:27,910 --> 01:13:30,320 widzimy, że nie jest to dokładnie 0,1. 1614 01:13:30,320 --> 01:13:33,570 To 0,149 coś. 1615 01:13:33,570 --> 01:13:35,570 >> A to dlaczego? 1616 01:13:35,570 --> 01:13:40,390 Bo tak naprawdę nie można reprezentować każdy Możliwe rzeczywista liczba pojedyncza w pamięci 1617 01:13:40,390 --> 01:13:42,730 ponieważ istnieją uncountably wielu z nich. 1618 01:13:42,730 --> 01:13:48,360 Więc jesteśmy tylko w stanie technicznym stanowią skończoną ilość nimi 1619 01:13:48,360 --> 01:13:50,470 o skończonej ilości danych. 1620 01:13:50,470 --> 01:13:52,050 Ale to jest naprawdę interesujące. 1621 01:13:52,050 --> 01:13:54,920 Teraz błaga kwestia, w jaki sposób będzie 1622 01:13:54,920 --> 01:13:59,299 go o reprezentowanie to z bitów, prawda? 1623 01:13:59,299 --> 01:14:00,340 Więc jak pływaki przechowywane? 1624 01:14:00,340 --> 01:14:01,970 1625 01:14:01,970 --> 01:14:03,730 Z liczb to było łatwe. 1626 01:14:03,730 --> 01:14:06,690 Ale w pływaki chcesz w celu maksymalizacji zasięgu, 1627 01:14:06,690 --> 01:14:10,530 i chcesz być w stanie reprezentować Bardzo duże cyfry i numery, jak małe 1628 01:14:10,530 --> 01:14:14,210 0.000001 w tym samym czasie. 1629 01:14:14,210 --> 01:14:15,180 Więc znowu, sama gra. 1630 01:14:15,180 --> 01:14:20,470 Czy ktoś ma jakiś pomysł, jak się dało go o reprezentowanie pływak w pamięci? 1631 01:14:20,470 --> 01:14:26,820 1632 01:14:26,820 --> 01:14:27,970 Wystarczy rzucić wszystko. 1633 01:14:27,970 --> 01:14:29,930 1634 01:14:29,930 --> 01:14:30,856 Tak, proszę. 1635 01:14:30,856 --> 01:14:33,552 >> PUBLICZNOŚCI: [niesłyszalne] jako jeśli to dwa ints i jeden 1636 01:14:33,552 --> 01:14:36,890 jest [niesłyszalne] i jeden byt wszystko po przecinku. 1637 01:14:36,890 --> 01:14:37,640 GABRIEL: OK, fajnie. 1638 01:14:37,640 --> 01:14:40,300 Tak więc dwa różne liczby całkowite. 1639 01:14:40,300 --> 01:14:45,260 Możesz mieć 12,45, więc to 12 i 45. 1640 01:14:45,260 --> 01:14:45,890 Nicea. 1641 01:14:45,890 --> 01:14:46,973 Co Ere powiesz? 1642 01:14:46,973 --> 01:14:48,420 1643 01:14:48,420 --> 01:14:49,430 Samo? 1644 01:14:49,430 --> 01:14:49,930 Tak? 1645 01:14:49,930 --> 01:14:55,630 >> PUBLICZNOŚCI: [niesłyszalne] notacja gdzie można oddzielić bazy. 1646 01:14:55,630 --> 01:14:58,910 >> GABRIEL: notacja naukowa, tak to jest zwykle to, co się dzieje. 1647 01:14:58,910 --> 01:15:01,350 Więc to jest to, co nazywa mantysa. 1648 01:15:01,350 --> 01:15:06,490 To, co jest w rzeczywistości numer, a następnie wykładnik 1649 01:15:06,490 --> 01:15:08,780 tylko gdzie przecinek jest, prawda? 1650 01:15:08,780 --> 01:15:13,720 Więc to będzie coś w postaci 1, 2, 3, 4, 5 razy po 10 1651 01:15:13,720 --> 01:15:15,000 do minus 4. 1652 01:15:15,000 --> 01:15:17,800 Właśnie uświadomiłem sobie that-- tak, dokładnie. 1653 01:15:17,800 --> 01:15:23,372 I wówczas 10 do minus 4 jest będzie określić, gdzie przecinek jest OK? 1654 01:15:23,372 --> 01:15:24,330 W Brazylii używamy przecinka. 1655 01:15:24,330 --> 01:15:26,795 Tutaj chłopaki używać kropki. 1656 01:15:26,795 --> 01:15:27,640 Więc kropka. 1657 01:15:27,640 --> 01:15:28,860 1658 01:15:28,860 --> 01:15:34,840 >> I to jest fajne, bo wtedy można koncentrować wiele swoich bitów na tego faceta 1659 01:15:34,840 --> 01:15:40,863 tutaj, na mantysy, a następnie, że jest będzie rzeczywisty precyzja. 1660 01:15:40,863 --> 01:15:41,920 1661 01:15:41,920 --> 01:15:47,175 I można to zrobić albo w postaci dziesiętnej lub układu opartego na binarnym. 1662 01:15:47,175 --> 01:15:49,781 Istnieją różne sposoby realizacji tego. 1663 01:15:49,781 --> 01:15:50,280 Pytania? 1664 01:15:50,280 --> 01:15:55,918 1665 01:15:55,918 --> 01:15:56,418 Tak? 1666 01:15:56,418 --> 01:15:57,508 1667 01:15:57,508 --> 01:15:59,841 Publiczność: Ile miejsca po przecinku [niesłyszalne]? 1668 01:15:59,841 --> 01:16:05,240 1669 01:16:05,240 --> 01:16:12,610 >> GABRIEL: To skomplikowane pytanie, bo to nigdy nie 100% dokładny, 1670 01:16:12,610 --> 01:16:15,680 bo jak widać tutaj, na niektóre numery to jest w 100% dokładny. 1671 01:16:15,680 --> 01:16:20,350 Wierzę, że jeśli stawiamy 0,5 tutaj, to będzie w 100% dokładny. 1672 01:16:20,350 --> 01:16:22,220 To będzie 0,500000. 1673 01:16:22,220 --> 01:16:24,170 Więc w tym przypadku, jest to idealne. 1674 01:16:24,170 --> 01:16:27,330 Jednak w innych przypadkach to o wiele mniej doskonałe. 1675 01:16:27,330 --> 01:16:35,010 Z mojego doświadczenia, jak się do czterech, pięciu miejsc po przecinku jest dość precyzyjne. 1676 01:16:35,010 --> 01:16:38,300 Jeśli używasz dwukrotnie, to będzie być sposób bardziej precyzyjny niż, OK? 1677 01:16:38,300 --> 01:16:42,750 >> ROB BOWDEN: Tak po prostu rzucić trochę więcej kontekst na pływaków, 1678 01:16:42,750 --> 01:16:46,320 Nigdy nie pamiętam, jak w 100% Spec od pływaków faktycznie działa, 1679 01:16:46,320 --> 01:16:52,660 ale ja zawsze pamiętać że pływaki zaczną się bałagan. 1680 01:16:52,660 --> 01:16:55,460 1681 01:16:55,460 --> 01:17:00,930 Więc chodzi o to, że kiedy się naprawdę, naprawdę wielkie numery lub naprawdę 1682 01:17:00,930 --> 01:17:03,470 małe liczby, zaczynamy coraz gorzej 1683 01:17:03,470 --> 01:17:05,860 na różnicowanie między dwoma bliskimi pływaków. 1684 01:17:05,860 --> 01:17:09,180 >> Tak jak lubię myśleć o z zmiennoprzecinkowej niedokładności, 1685 01:17:09,180 --> 01:17:11,890 są dwa pływaki, które gdy próbuję je określić 1686 01:17:11,890 --> 01:17:15,150 w ° C, pomimo faktu, że są różne numery, 1687 01:17:15,150 --> 01:17:17,340 że będziemy mieć interpretowane jako taki sam numer, 1688 01:17:17,340 --> 01:17:19,006 ponieważ nie możemy przechowywać je w różny sposób. 1689 01:17:19,006 --> 01:17:20,540 Musimy korzystać z tych samych bitów. 1690 01:17:20,540 --> 01:17:23,220 I tak, gdy mamy do bardzo, bardzo duża liczba, 1691 01:17:23,220 --> 01:17:28,460 mówić jak 10 do 300 lub coś, to w tym momencie 1692 01:17:28,460 --> 01:17:33,240 że od 10 do 300 lub 5 razy 10 do 300 1693 01:17:33,240 --> 01:17:37,020 Nie można odróżnić z 7 razy 10 do 300. 1694 01:17:37,020 --> 01:17:39,660 Więc to jest bardzo duża różnica dwustronnie. 1695 01:17:39,660 --> 01:17:43,830 >> Ale wtedy, gdy pojawi się w dół do normalnych rzeczy zasięgu, 1696 01:17:43,830 --> 01:17:45,770 Ci wydają się być dość dobry w różnicowaniu. 1697 01:17:45,770 --> 01:17:49,020 I wtedy, gdy pojawi się w dół bardzo małe, ty też się bardzo źle ponownie. 1698 01:17:49,020 --> 01:17:52,529 Tak jak cała masa 0,0000, robi się bardzo źle. 1699 01:17:52,529 --> 01:17:53,820 GABRIEL: Tak, tak, szybkie notatki. 1700 01:17:53,820 --> 01:17:54,670 Nie wolno tego robić. 1701 01:17:54,670 --> 01:17:57,590 Nigdy nie próbować porównać pływaków używając równych równa, 1702 01:17:57,590 --> 01:18:02,800 bo nawet jeśli są one niemal tym samym, prawie tak samo nie jest taka sama. 1703 01:18:02,800 --> 01:18:06,360 Tak więc to, co zwykle robią to odjąć je, wziąć wartość bezwzględną, że 1704 01:18:06,360 --> 01:18:12,380 i sprawdzić, czy to jest mniejsze niż 0,0001 lub coś w tym stylu, OK? 1705 01:18:12,380 --> 01:18:12,880 I fajne. 1706 01:18:12,880 --> 01:18:16,630 Wiem, że wiele osób niektóre tła w Javie, 1707 01:18:16,630 --> 01:18:19,700 zwłaszcza tych, którzy zrobili Informatyka AP, prawda? 1708 01:18:19,700 --> 01:18:23,630 I Java to język że w większości oparte na C, 1709 01:18:23,630 --> 01:18:26,570 ma kilka bardzo duże różnice. 1710 01:18:26,570 --> 01:18:31,430 Ale dla pętli i IFS, i takie że są one wszystkie tę samą składnię. 1711 01:18:31,430 --> 01:18:35,240 Mam kilka programów, żeby pokazać. 1712 01:18:35,240 --> 01:18:37,050 >> Tak na przykład, proste hello world. 1713 01:18:37,050 --> 01:18:43,140 1714 01:18:43,140 --> 01:18:46,600 To hello world w C, który cię faceci są z pewnością znane, 1715 01:18:46,600 --> 01:18:49,100 i ten i ten jest w Javie. 1716 01:18:49,100 --> 01:18:53,100 Tak więc mamy w tym Java public class, hello world, 1717 01:18:53,100 --> 01:18:57,050 i public static void args głównym i smyczkowych. 1718 01:18:57,050 --> 01:18:59,665 Args smyczkowych będą do stawienia się w C bardzo krótko. 1719 01:18:59,665 --> 01:19:00,740 1720 01:19:00,740 --> 01:19:01,990 Ale nie idź tam jeszcze. 1721 01:19:01,990 --> 01:19:06,060 Teraz mamy tutaj nieważne, co oznacza, że głównym nie podejmować żadnych argumentów. 1722 01:19:06,060 --> 01:19:09,220 A potem mamy System.out.println, i to 1723 01:19:09,220 --> 01:19:11,140 rodzaj ekwiwalentu dla printf. 1724 01:19:11,140 --> 01:19:17,150 Tu naprawdę nie trzeba backslash n, ponieważ druk ln robi to za Ciebie. 1725 01:19:17,150 --> 01:19:19,680 Dołącza odwrotny ukośnik n na końcu linii. 1726 01:19:19,680 --> 01:19:22,540 1727 01:19:22,540 --> 01:19:30,415 >> Ale jeśli się do coś jak Bo ty 1728 01:19:30,415 --> 01:19:32,590 Można zobaczyć, że są one prawie to samo. 1729 01:19:32,590 --> 01:19:37,390 Tak inicjującego oraz stan i aktualizacja 1730 01:19:37,390 --> 01:19:42,050 is-- brakowało mi miejsca here-- są prawie to samo, z wyjątkiem języka Java 1731 01:19:42,050 --> 01:19:44,430 ma kilka więcej jak wysoki poziom rzeczy. 1732 01:19:44,430 --> 01:19:46,010 1733 01:19:46,010 --> 01:19:49,610 Tutaj możemy zrobić oraz I i Java automatycznie 1734 01:19:49,610 --> 01:19:52,730 zrobić to i tutaj, co jest całkowita, do łańcucha, 1735 01:19:52,730 --> 01:19:55,200 a następnie dodać dwa ciągi razem. 1736 01:19:55,200 --> 01:19:57,570 Tutaj w C musimy zrobić i% d. 1737 01:19:57,570 --> 01:20:15,310 1738 01:20:15,310 --> 01:20:18,170 Linia tutaj, na wygląda dokładnie tak samo. 1739 01:20:18,170 --> 01:20:37,760 >> A jeśli spojrzymy na razie, IFS również wyglądać dokładnie tak samo, prawda? 1740 01:20:37,760 --> 01:20:39,290 1741 01:20:39,290 --> 01:20:44,650 Tak więc prawdziwe są duże różnice w tych rzeczach, które można zobaczyć tutaj. 1742 01:20:44,650 --> 01:20:47,530 Public static, nieważne, i następnie public class jeśli. 1743 01:20:47,530 --> 01:20:48,990 1744 01:20:48,990 --> 01:20:52,360 Więc co to jest Java ma nazywa maszyna wirtualna. 1745 01:20:52,360 --> 01:20:53,560 1746 01:20:53,560 --> 01:21:00,150 I to jest bardzo mocno oparty na co nazywany jest programowanie obiektowe, 1747 01:21:00,150 --> 01:21:04,120 co jest bardzo, bardzo często paradygmat programowania w dzisiejszych czasach. 1748 01:21:04,120 --> 01:21:10,870 A ta klasa jest to, co widzisz, coś z orientacji obiektu, 1749 01:21:10,870 --> 01:21:14,214 jest utworzyć klasę, a potem ci może pochodzić obiekty z tej klasy. 1750 01:21:14,214 --> 01:21:16,380 Nie będziemy mówić zbyt wiele o tym w CS50, 1751 01:21:16,380 --> 01:21:18,213 ale to na pewno coś naprawdę super, 1752 01:21:18,213 --> 01:21:21,440 zwłaszcza, jeśli chcesz, aby przejść do bardziej zaawansowane tworzenie stron internetowych 1753 01:21:21,440 --> 01:21:24,050 Na koniec kursu jak złożyć ostateczny projekt 1754 01:21:24,050 --> 01:21:26,430 i jakieś fajne ramy i rzeczy. 1755 01:21:26,430 --> 01:21:31,250 >> Więc w zasadzie chodzi o to, że ty nie chcą, aby ponownie wdrożyć coś, 1756 01:21:31,250 --> 01:21:36,330 więc stworzyć coś, co jest bardzo ogólne, takie jak kształt, 1757 01:21:36,330 --> 01:21:38,310 a następnie utworzyć różne kształty z niego, 1758 01:21:38,310 --> 01:21:40,240 a następnie od każdego z te kształty, tworzyć 1759 01:21:40,240 --> 01:21:45,110 niektóre bardziej konkretne kształty w trzech wymiary lub coś w tym stylu. 1760 01:21:45,110 --> 01:21:48,799 Mają one tę hierarchię dziedziczą od pozostałych, więc 1761 01:21:48,799 --> 01:21:51,840 wszystkie funkcje i zmienne, kształt ma tu duże, wszystkie z nich 1762 01:21:51,840 --> 01:21:54,110 będziemy mieć, a wszystkie z nich są będzie miał, i tak dalej i tak dalej. 1763 01:21:54,110 --> 01:21:55,640 Więc to jest idea. 1764 01:21:55,640 --> 01:21:59,170 >> C nie ma, ale C ++ ma tego rodzaju funkcji. 1765 01:21:59,170 --> 01:22:02,710 I Java jest pod silnym wpływem o orientacji obiektu, 1766 01:22:02,710 --> 01:22:05,310 więc dlatego widzisz Klasa tutaj cały czas. 1767 01:22:05,310 --> 01:22:10,790 A druga rzecz jest to maszyna wirtualna Java. 1768 01:22:10,790 --> 01:22:13,790 Więc to, jak sądzę, jest bardzo inteligentny pomysł. 1769 01:22:13,790 --> 01:22:17,020 Tak więc to, co ludzie, którzy Java nie jest wymyślona 1770 01:22:17,020 --> 01:22:19,630 oni nie chcą skompilować kod dwa razy 1771 01:22:19,630 --> 01:22:23,990 gdyby mieli go uruchomić w systemie Windows, lub Mac lub Linux, więc to, co robią 1772 01:22:23,990 --> 01:22:26,740 prowadzony jest dosłownie coś takiego urządzenia, 1773 01:22:26,740 --> 01:22:29,630 ale ty nie widzisz, że się dzieje. 1774 01:22:29,630 --> 01:22:32,430 Więc biegną maszyny wirtualnej wewnątrz komputera, który 1775 01:22:32,430 --> 01:22:34,940 jest w zasadzie jak mini system operacyjny. 1776 01:22:34,940 --> 01:22:37,920 I że robocze Celem systemu w życiu 1777 01:22:37,920 --> 01:22:41,430 jest tylko do uruchomienia tzw kod bajtowy. 1778 01:22:41,430 --> 01:22:47,411 >> Więc zamiast w C, sposób, w jaki będzie skompilować to zrobić, jeśli, a następnie uruchom 1779 01:22:47,411 --> 01:22:47,910 ./if. 1780 01:22:47,910 --> 01:22:53,510 1781 01:22:53,510 --> 01:22:55,290 Zapomniałem backslash. 1782 01:22:55,290 --> 01:23:00,240 W Javie, należy zrobić w pierwszej kolejności Java C, aby go skompilować, if.c. 1783 01:23:00,240 --> 01:23:06,440 1784 01:23:06,440 --> 01:23:08,252 To nie jest punkt C. Za java. 1785 01:23:08,252 --> 01:23:09,460 1786 01:23:09,460 --> 01:23:12,140 A potem trzeba uruchomić nie ./. 1787 01:23:12,140 --> 01:23:15,440 Masz ten nowy plik if.class, ale naprawdę nie można 1788 01:23:15,440 --> 01:23:17,980 Teraz wystarczy uruchomić if.class tak jak to robiliśmy wcześniej. 1789 01:23:17,980 --> 01:23:19,440 To nie jest wykonywalny. 1790 01:23:19,440 --> 01:23:20,630 Musisz uruchomić. 1791 01:23:20,630 --> 01:23:23,410 Musisz podać go do Program o nazwie Java, 1792 01:23:23,410 --> 01:23:28,260 i że program jest maszyna wirtualna, a następnie zrobić if.class, czy. 1793 01:23:28,260 --> 01:23:28,760 Tak. 1794 01:23:28,760 --> 01:23:30,890 I to działa. 1795 01:23:30,890 --> 01:23:33,740 OK, więc jest to swego rodzaju Maszyna wirtualna dzieje. 1796 01:23:33,740 --> 01:23:37,700 C nie ma tego, więc jeśli miałbym umieścić ten program w komputerze z systemem Windows, 1797 01:23:37,700 --> 01:23:40,516 to nie będzie działać w C. W Javie robi. 1798 01:23:40,516 --> 01:23:41,015 Pytania? 1799 01:23:41,015 --> 01:23:43,430 1800 01:23:43,430 --> 01:23:44,030 Fajne. 1801 01:23:44,030 --> 01:23:47,160 To, czy dla Super sekcji dzisiaj. 1802 01:23:47,160 --> 01:23:49,462