1 00:00:00,000 --> 00:00:11,952 2 00:00:11,952 --> 00:00:13,800 >> David J. MALAN: Więc to jest CS50. 3 00:00:13,800 --> 00:00:18,970 I to był CS50 własnej Colton Ogden, bardziej od tego, kto jest muzyka można 4 00:00:18,970 --> 00:00:22,820 pobierz na soundcloud.com/cs50. 5 00:00:22,820 --> 00:00:26,690 >> Więc dzisiaj stawiamy bardziej w dziedzinie programowania. 6 00:00:26,690 --> 00:00:28,980 I bierzemy gdzie zostawiliśmy od ostatniego tygodnia, koncentrując 7 00:00:28,980 --> 00:00:31,660 na początku, co było tego graficzny język programowania. 8 00:00:31,660 --> 00:00:35,490 I wziąć sprawy w dół do niższego poziomu, stosując bardziej tradycyjne programowanie 9 00:00:35,490 --> 00:00:38,420 język znany jako C. Jednak po drodze, zdając sobie sprawę, 10 00:00:38,420 --> 00:00:40,730 że mamy te same pomysły rozmawiali o ostatni piątek 11 00:00:40,730 --> 00:00:44,390 będą się powtarzać, nie tylko w tym Język C, a w większości każdy inny 12 00:00:44,390 --> 00:00:46,350 że patrzymy na ten semestr. 13 00:00:46,350 --> 00:00:50,247 >> Tak nazwaliśmy tę rzecz tutaj co raz ostatni? 14 00:00:50,247 --> 00:00:51,830 Jest przedstawicielem oświadczeniu. 15 00:00:51,830 --> 00:00:53,080 Tak nazwaliśmy to oświadczenie. 16 00:00:53,080 --> 00:00:54,100 I to coś robi. 17 00:00:54,100 --> 00:00:56,910 To wskazówki, które komputer lub zarysowania może wykonać. 18 00:00:56,910 --> 00:00:59,910 I od tej pory, niech również uruchomić nazywając coś takiego funkcji, 19 00:00:59,910 --> 00:01:02,070 przyczyn wkrótce zobaczymy. 20 00:01:02,070 --> 00:01:03,681 >> Tymczasem widzieliśmy takie rzeczy. 21 00:01:03,681 --> 00:01:05,680 A te są na ogół Wiadomo jak to, co zbudować? 22 00:01:05,680 --> 00:01:06,240 >> PUBLICZNOŚCI: Loop. 23 00:01:06,240 --> 00:01:06,860 >> David J. MALAN: Więc pętla. 24 00:01:06,860 --> 00:01:07,943 Tak całkiem proste. 25 00:01:07,943 --> 00:01:09,470 To dosłownie robi to, co mówi. 26 00:01:09,470 --> 00:01:12,210 I Scratch, jeśli chcesz dopchać więcej puzzli tam, 27 00:01:12,210 --> 00:01:13,950 Kawałek będzie rosnąć, aby go dopasować. 28 00:01:13,950 --> 00:01:16,790 I zobaczymy, że w C możemy zrobić to samo. 29 00:01:16,790 --> 00:01:20,000 >> Inny rodzaj pętli, chociaż w Scratch może być na zawsze, 30 00:01:20,000 --> 00:01:21,820 czy jest jakiś numer innych podejść. 31 00:01:21,820 --> 00:01:24,150 Ale weźmy więcej ogólnym, wygląd, z twarzą 32 00:01:24,150 --> 00:01:27,402 to prawdopodobnie dość dobrze, w pętli, bardziej ogólnie. 33 00:01:27,402 --> 00:01:29,110 Mark Zuckerberg: Jeden rzeczą, że komputery 34 00:01:29,110 --> 00:01:31,860 to jest naprawdę dobry powtórzenie polecenia. 35 00:01:31,860 --> 00:01:33,910 Jako osoba, można uzyskać jeśli ty naprawdę nudzi 36 00:01:33,910 --> 00:01:36,730 musiał zrobić to samo wiele razy z rzędu. 37 00:01:36,730 --> 00:01:40,530 Ale komputer może zrobić to samo miliony, a nawet miliardy razy, 38 00:01:40,530 --> 00:01:43,290 i nie nudzić, i być w stanie do realizacji, że się naprawdę dobrze. 39 00:01:43,290 --> 00:01:45,650 >> Tak na przykład, jeśli chciałem życzyć wszystkim 40 00:01:45,650 --> 00:01:48,840 na Facebooku z okazji urodzin wysyłając wiadomość e-mail, 41 00:01:48,840 --> 00:01:51,550 może to zająć więcej niż mnie wieku rzeczywiście pisać 42 00:01:51,550 --> 00:01:53,000 wszystkie te e-maile do wszystkich. 43 00:01:53,000 --> 00:01:57,780 Ale tylko kilka linijek kodu, mogę mają układ wysłać e-mail do wszystkich 44 00:01:57,780 --> 00:01:59,930 na Facebooku, które chcą im wszystkiego najlepszego. 45 00:01:59,930 --> 00:02:02,730 Więc to, co i dlaczego są pętle są one cenne i coś 46 00:02:02,730 --> 00:02:04,740 że komputery mogą robić bardzo dobrze. 47 00:02:04,740 --> 00:02:05,630 >> David J. MALAN: Więc jeśli byłeś odbiorcą 48 00:02:05,630 --> 00:02:07,820 niektórych CS50 jest i Przestrzeń Dropbox za późno, 49 00:02:07,820 --> 00:02:10,590 to jest dokładnie to, co faktycznie zrobić, używając kodu całkiem tak. 50 00:02:10,590 --> 00:02:12,600 My w zasadzie mają duży arkusz kalkulacyjny, do którego 51 00:02:12,600 --> 00:02:15,016 ludzi zostało wprowadzanie ich Nazwy i adresy e-mail. 52 00:02:15,016 --> 00:02:18,160 I pisaliśmy odrobinę kodu Można przejść przez wszystkie te adresy 53 00:02:18,160 --> 00:02:21,860 i wypluć unikalnych adresów w Sprawa ktoś składać wielokrotnie. 54 00:02:21,860 --> 00:02:25,120 A następnie wysyłamy automatyczny e-mail z bota CS50, w 55 00:02:25,120 --> 00:02:27,190 wraz z kodem kuponu. 56 00:02:27,190 --> 00:02:29,290 >> Teraz również spojrzał na to skonstruować ostatni. 57 00:02:29,290 --> 00:02:33,100 A jest szczególnie przykład co? 58 00:02:33,100 --> 00:02:35,050 Tak, tak, wyrażenie logiczne. 59 00:02:35,050 --> 00:02:37,050 I kształt rozumie aby uchwycić oraz. 60 00:02:37,050 --> 00:02:39,966 Wszystkie te kwestie tworzą prawdziwe lub fałszywe w Scratch 61 00:02:39,966 --> 00:02:41,590 będzie wyglądać trochę coś takiego. 62 00:02:41,590 --> 00:02:43,200 I nazywamy to wyrażenie logiczne. 63 00:02:43,200 --> 00:02:46,170 To rzeczywiście prawda, czy fałsz, tak lub nie. 64 00:02:46,170 --> 00:02:49,150 To sposób odpowiedzi na pytanie. 65 00:02:49,150 --> 00:02:52,420 >> A tymczasem można korzystać z tych Boolean Wyrażenia wewnątrz konstruktów 66 00:02:52,420 --> 00:02:54,720 jak te, które z Oczywiście są warunki 67 00:02:54,720 --> 00:02:57,259 lub oddziałów, przysłowiowym widły w drodze. 68 00:02:57,259 --> 00:02:59,550 I mogą wyglądać nie tylko tak, ale może również 69 00:02:59,550 --> 00:03:02,080 nie elses z nimi związane. 70 00:03:02,080 --> 00:03:05,820 I rzeczywiście można mieć trzech sposób widelec w drodze lub cztery sposób widelec 71 00:03:05,820 --> 00:03:08,340 w drodze, po prostu gniazdowania tych rzeczy, 72 00:03:08,340 --> 00:03:10,510 jak zobaczysz w Scratch jeśli jeszcze tego nie zrobiłeś. 73 00:03:10,510 --> 00:03:13,550 I jak można to zrobić w C, jak również. 74 00:03:13,550 --> 00:03:16,810 >> Weźmy innego lekarza ogólnego spojrzeć na alumnist, jak również, który 75 00:03:16,810 --> 00:03:21,490 może przedstawić inne podejście do tych rzeczy zwane warunki. 76 00:03:21,490 --> 00:03:24,060 >> Bill Gates: Ludzie popełniają decyzje każdego dnia. 77 00:03:24,060 --> 00:03:27,530 Na przykład, przed wyjazdem poza tobą rodzaju mają if, który mówi, 78 00:03:27,530 --> 00:03:31,480 jeśli pada deszcz to ja trzeba dostać kurtkę. 79 00:03:31,480 --> 00:03:36,820 I komputery są niesamowite Po zdecydować, tego rodzaju sprawozdania, 80 00:03:36,820 --> 00:03:42,280 które można niezawodnie wykonywać te rzeczy w niewiarygodną prędkością. 81 00:03:42,280 --> 00:03:48,240 I tak naprawdę program komputerowy jest trochę matematyki i niektóre 82 00:03:48,240 --> 00:03:53,050 jeżeli sprawozdania gdzie Decyzja zostanie wykonany. 83 00:03:53,050 --> 00:03:55,020 >> David J. MALAN: Więc jak wiesz, że to 84 00:03:55,020 --> 00:03:57,880 ludzie tacy jak Bill Gates, Paul Allen i inni 85 00:03:57,880 --> 00:04:00,240 że naprawdę rozpoczął się tzw komputer osobisty 86 00:04:00,240 --> 00:04:01,990 Rewolucja kilka lat temu. 87 00:04:01,990 --> 00:04:04,140 Myślałem, zanim zagłębimy do jakiegoś Administrivia, 88 00:04:04,140 --> 00:04:09,920 my związane opowieść z Albuquerque, New Mexico Museum of Natural History 89 00:04:09,920 --> 00:04:13,650 i nauki, gdzie niektóre z Bill Gates " i najwcześniejsze opowiadania Paula Allena 90 00:04:13,650 --> 00:04:17,470 są opowiadał, jak mamy teraz dzisiejsze komputery PC i Mac i nie tylko. 91 00:04:17,470 --> 00:04:22,390 Za to, że potrzebujemy dwóch ochotników , którzy mają bardzo dobre głosy narracji 92 00:04:22,390 --> 00:04:23,735 czytać skrypt głośno. 93 00:04:23,735 --> 00:04:25,530 >> Dobra, jak tam się w. 94 00:04:25,530 --> 00:04:26,120 Chodź na górę. 95 00:04:26,120 --> 00:04:27,770 A co z przodu tutaj. 96 00:04:27,770 --> 00:04:28,340 Zejdź na dół. 97 00:04:28,340 --> 00:04:29,600 Weź swoje miejsca tutaj. 98 00:04:29,600 --> 00:04:32,444 Jak wam wymyślić, para ogłoszeń administracyjnych. 99 00:04:32,444 --> 00:04:34,360 cięcia, procesu od wyboru sekcji 100 00:04:34,360 --> 00:04:36,068 rozpocznie w tym Od środy do piątku. 101 00:04:36,068 --> 00:04:38,400 Więcej na ten temat w tym roku w Środę w wykładzie. 102 00:04:38,400 --> 00:04:41,770 >> Super odcinki, w międzyczasie, są coś, co oferujemy w przyszłym tygodniu 103 00:04:41,770 --> 00:04:45,310 przy czym cała klasa jest proszona do udziału w dość dużej skali 104 00:04:45,310 --> 00:04:47,690 działy, jeden bardziej wygodne, jeden mniej wygodne. 105 00:04:47,690 --> 00:04:51,340 I podamy dane o tym, jak dobrze, jeszcze w tym tygodniu. 106 00:04:51,340 --> 00:04:53,310 >> Tymczasem działy sami, rozpocznie 107 00:04:53,310 --> 00:04:57,241 W trzech trakcie tygodni, wskaźnik zera co oznacza, że ​​są to dwa tygodnie 108 00:04:57,241 --> 00:04:57,740 z. 109 00:04:57,740 --> 00:04:58,450 Więc nie martw się. 110 00:04:58,450 --> 00:05:01,014 Jeszcze nie brakowało coś w tym kierunku. 111 00:05:01,014 --> 00:05:03,930 Tymczasem w międzyczasie, jeśli Wszelkie pytania administracyjnym, 112 00:05:03,930 --> 00:05:08,120 napisz do mnie i Devon i Gabe i Rob na ten adres tutaj. 113 00:05:08,120 --> 00:05:10,320 >> Wreszcie zestaw problemem 0 oznacza, oczywiście, na zewnątrz. 114 00:05:10,320 --> 00:05:12,320 Można zauważyć go na stronie internetowej oczywiście za. 115 00:05:12,320 --> 00:05:14,840 Powinien dostarczyć Wszystkie odpowiedzi na pytania 116 00:05:14,840 --> 00:05:18,250 może masz po drodze do rozpoczęcie pracy z zestawem problemów. 117 00:05:18,250 --> 00:05:21,430 Ale jeśli znajdziesz się w potrzebie pomocną dłoń, 118 00:05:21,430 --> 00:05:25,020 na wszelkie sposoby uczestniczyć godziny pracy, Poniedziałek, wtorek, środa, czwartek 119 00:05:25,020 --> 00:05:27,290 w tym tygodniu w godzinach wieczornych w czterech salach jadalnych. 120 00:05:27,290 --> 00:05:31,650 Zobacz, że adres URL jest za dane szczegółowe z którym dyżur będzie. 121 00:05:31,650 --> 00:05:34,000 >> Teraz spełnia naszych dwie osoby dzisiaj. 122 00:05:34,000 --> 00:05:34,740 Jak masz na imię? 123 00:05:34,740 --> 00:05:35,290 >> JAY PAUL: Jay Paul. 124 00:05:35,290 --> 00:05:36,880 >> David J. MALAN: Jay Paweł, miło cię poznać. 125 00:05:36,880 --> 00:05:37,330 >> Hikari: Hikari. 126 00:05:37,330 --> 00:05:37,975 >> David J. MALAN: Hikari? 127 00:05:37,975 --> 00:05:38,250 >> Hikari: Hikari. 128 00:05:38,250 --> 00:05:38,810 >> David J. MALAN: Hikari. 129 00:05:38,810 --> 00:05:39,790 Miło cię poznać, jak również. 130 00:05:39,790 --> 00:05:42,123 Jay Paul i Hikari mają w przed nimi na tych muzyki 131 00:05:42,123 --> 00:05:45,100 stoi dwóch skryptów, że drukowane z tego rano z Nowego Meksyku 132 00:05:45,100 --> 00:05:46,692 Muzeum Historii Naturalnej. 133 00:05:46,692 --> 00:05:48,400 I myślałem Zrobiłbym na napowietrznych 134 00:05:48,400 --> 00:05:52,830 jest towarzyszyć recytacja skryptu i tej historii 135 00:05:52,830 --> 00:05:54,700 z niektórych wizualnych obrazów, bez niespodzianek. 136 00:05:54,700 --> 00:05:57,512 >> I co robiłem wcześniej jest prehighlight na skrypcie 137 00:05:57,512 --> 00:05:59,470 co należy przeczytać, i co należy czytać. 138 00:05:59,470 --> 00:06:00,920 A my w zasadzie tylko alternatywne ust. 139 00:06:00,920 --> 00:06:03,211 Więc to jest tak jak to polubisz zrobili w angielskiej klasie. 140 00:06:03,211 --> 00:06:06,875 To naprawdę zmusić publiczność wierzyć w opowieści tutaj. 141 00:06:06,875 --> 00:06:07,600 Idziemy? 142 00:06:07,600 --> 00:06:13,272 Tak więc opowieść o to, mamy BASIC, i to zaczyna się w Cambridge. 143 00:06:13,272 --> 00:06:18,750 >> JAY PAUL: To była zima, 1974, w Cambridge, Massachusetts 144 00:06:18,750 --> 00:06:20,240 gdzie zimy może być zimno. 145 00:06:20,240 --> 00:06:22,800 Brodaty, długowłosy wyjscie z mroku nazwie 146 00:06:22,800 --> 00:06:27,280 Paul Allen został drudging całej Harvardzie Kwadrat, pochłonięty myślami. 147 00:06:27,280 --> 00:06:31,050 Jego głównym zajęciem w tych dniach było jak uzyskać jego przyjaciel, Bill Gates, 148 00:06:31,050 --> 00:06:34,974 rzucić szkołę i iść do biznesu z niego. 149 00:06:34,974 --> 00:06:37,890 Hikari: dwa już nie było poprzez szereg przedsięwzięć gospodarczych 150 00:06:37,890 --> 00:06:40,850 razem, począwszy od Lakeside gdzie szkoła w Seattle 151 00:06:40,850 --> 00:06:45,220 zostały zapłacone w wolnym czasie do komputera przetestować komputer PDP-10 w czasie lokalnym 152 00:06:45,220 --> 00:06:46,580 dzielenie firmę. 153 00:06:46,580 --> 00:06:50,930 Najnowszy plan był zamknąć szkoły i tworzą firmę oprogramowania. 154 00:06:50,930 --> 00:06:53,440 Allen opuścił Waszyngton State University. 155 00:06:53,440 --> 00:06:58,380 Ale w ostatniej chwili, Gates postanowił trzymać się z Harvardu. 156 00:06:58,380 --> 00:07:02,080 >> JAY PAUL: To dzień, przejście Harvard Kwadrat, Allen zauważył styczeń 157 00:07:02,080 --> 00:07:07,530 1975 problem z Popular Electronics z nagłówkiem ziemia zatrzymania, 158 00:07:07,530 --> 00:07:11,900 Największa Zestaw pierwszej minikomputerów rywalizować modele komercyjne. 159 00:07:11,900 --> 00:07:14,430 Nagłówek był pod obraz z małego pudełka 160 00:07:14,430 --> 00:07:16,160 ozdobione światłami i przełączników. 161 00:07:16,160 --> 00:07:19,770 Nazwano MITS Altair 8800. 162 00:07:19,770 --> 00:07:24,100 I Allen wiedział, że to, co on szukał. 163 00:07:24,100 --> 00:07:26,350 >> Hikari: Dni dyskusji następuje. 164 00:07:26,350 --> 00:07:30,170 Allen i Gates zrozumiał Znaczenie Altair. 165 00:07:30,170 --> 00:07:32,480 Rozmawiali często o mikroprocesory 166 00:07:32,480 --> 00:07:35,250 i czekali, aby zobaczyć, co będzie już potrzebne. 167 00:07:35,250 --> 00:07:39,770 A była o minikomputer zestaw Okładka Popular Electronics. 168 00:07:39,770 --> 00:07:42,830 To widocznie miał jeszcze żadnej oprogramowania. 169 00:07:42,830 --> 00:07:46,830 Wyobrażali sobie naród Programiści malejąco na MITS. 170 00:07:46,830 --> 00:07:49,590 I tak nazwali Ed Roberts, Szef firmy, 171 00:07:49,590 --> 00:07:53,330 twierdząc mieć wersję Język programowania BASIC prawie gotowy 172 00:07:53,330 --> 00:07:54,710 dla Altair. 173 00:07:54,710 --> 00:07:55,570 Nie. 174 00:07:55,570 --> 00:07:58,910 I Roberts musiał wiedzieć, że nie. 175 00:07:58,910 --> 00:08:03,170 On był już 10 połączeń dziennie z ludzie, którzy mieli BASIC prawie gotowy. 176 00:08:03,170 --> 00:08:05,570 I jego odpowiedź photography była "pierwsza osoba 177 00:08:05,570 --> 00:08:11,090 , który pojawia się w pracy PODSTAWOWE dostaje umowę. " 178 00:08:11,090 --> 00:08:13,910 >> JAY PAUL: Gates i Allen nigdy nie widział Altair. 179 00:08:13,910 --> 00:08:17,600 Oni nawet nigdy nie widział Mikroprocesor Intel 8080 180 00:08:17,600 --> 00:08:19,060 w samym sercu Altair. 181 00:08:19,060 --> 00:08:21,470 Ale kilka lat wcześniej Allen napisał program 182 00:08:21,470 --> 00:08:25,220 na komputerze typu mainframe, które naśladowane Operacja poprzedniego Intel 183 00:08:25,220 --> 00:08:26,217 mikroprocesor. 184 00:08:26,217 --> 00:08:28,300 I tym razem oni by zrobić to samo. 185 00:08:28,300 --> 00:08:31,530 186 00:08:31,530 --> 00:08:34,380 >> Hikari: z procesorem Intel 8080 Instrukcja u jego boku, 187 00:08:34,380 --> 00:08:37,770 Allen usiadł przy Harvard komputer PDP-10 188 00:08:37,770 --> 00:08:42,010 i napisał emulator i oprogramowania narzędzia niezbędne do wykonania programowania. 189 00:08:42,010 --> 00:08:45,820 Tymczasem Gates przestał chodzić do klas i poświęcił się 190 00:08:45,820 --> 00:08:48,120 do projektowania BASIC, stosując wszelkie sztuczki 191 00:08:48,120 --> 00:08:53,130 Wiedział, aby uzyskać rozmiar w dół poniżej 4 kilobajtów. 192 00:08:53,130 --> 00:08:55,870 >> JAY PAUL: Out w Albuquerque, Ed Roberts dostaje telefon od Gatesa 193 00:08:55,870 --> 00:08:59,754 z prośbą o szczegółowe informacje o tym, jak Altair obsługiwane konkretnych procedur. 194 00:08:59,754 --> 00:09:01,170 Nikt nigdy nie zapytał, że przed. 195 00:09:01,170 --> 00:09:02,670 I Roberts zaczął się interesować. 196 00:09:02,670 --> 00:09:05,240 197 00:09:05,240 --> 00:09:07,970 >> HIKARI: Wraz z rozwojem Konstrukcja narzędzia i gotowe, 198 00:09:07,970 --> 00:09:10,780 Gates i Allen napisał Kod na PDP-10, 199 00:09:10,780 --> 00:09:16,060 poznanie innego studenta Harvardu, Monte Davidoff, pisanie procedur matematycznych. 200 00:09:16,060 --> 00:09:19,450 Po nocy z końcowym programowanie, Allen dostał w samolocie 201 00:09:19,450 --> 00:09:22,970 dostarczyć ich podstawowych do MITS. 202 00:09:22,970 --> 00:09:25,800 Spędził samolot jeździć martwić. 203 00:09:25,800 --> 00:09:28,490 I z powrotem w Cambridge Gates był niepokojący. 204 00:09:28,490 --> 00:09:32,100 Mieli ich podstawowe i testowane że pracował na emulatorze. 205 00:09:32,100 --> 00:09:35,444 Ale co, jeśli emulator nie tak? 206 00:09:35,444 --> 00:09:37,360 JAY PAUL: W samolocie zbliżył Albuquerque, 207 00:09:37,360 --> 00:09:40,070 Allen sobie sprawę, że ich BASIC, teraz starannie zawarte 208 00:09:40,070 --> 00:09:42,460 na małą rolkę perforowane taśmy papieru, by 209 00:09:42,460 --> 00:09:44,970 być bezużyteczne bez oddzielnego Program o nazwie loader, że 210 00:09:44,970 --> 00:09:47,550 powie Altair jak do zapoznania się z istotą taśmie papierowej 211 00:09:47,550 --> 00:09:49,620 podawany do urządzenia dalekopisowej. 212 00:09:49,620 --> 00:09:52,970 Wyjął notes i szybko zapisała się do programu ładującego 213 00:09:52,970 --> 00:09:56,819 w asemblerze, a następnie ręcznie tłumaczone, że do wartości 1 i 0 214 00:09:56,819 --> 00:09:57,985 Altair zrozumie. 215 00:09:57,985 --> 00:10:00,530 216 00:10:00,530 --> 00:10:03,830 >> Hikari: Allen spodziewałem czysty, mały, wysoki tech 217 00:10:03,830 --> 00:10:05,470 prowadzony przez mężczyzn w garniturach. 218 00:10:05,470 --> 00:10:09,210 Był więc zaskoczony, gdy Roberts spotkał go na lotnisku patrząc jak ranczo 219 00:10:09,210 --> 00:10:10,270 ręcznie. 220 00:10:10,270 --> 00:10:12,070 Roberts był również zaskoczony. 221 00:10:12,070 --> 00:10:16,340 Kiedy spadł Harvard programista w drogim hotelu, 222 00:10:16,340 --> 00:10:20,790 Allen miał wyznać, że nie mógł sobie pozwolić na pokój. 223 00:10:20,790 --> 00:10:24,510 >> JAY PAUL: MITS, sam, było znajduje się w zakurzonym centrum handlowym. 224 00:10:24,510 --> 00:10:27,040 Wewnątrz na bałagan Workbench był Altair 225 00:10:27,040 --> 00:10:30,390 załadowany z 5 kilobajtów Pamięć i połączone kablem 226 00:10:30,390 --> 00:10:32,030 do maszyny dalekopisu. 227 00:10:32,030 --> 00:10:37,200 Roberts i główny inżynier, Bill Yates, czekał wyczekująco 228 00:10:37,200 --> 00:10:40,660 jak Allen przełączać swój ładowacz Program do Altaira. 229 00:10:40,660 --> 00:10:44,980 Dalekopis zaczął chugging jak pociągnął taśma papierowa poprzez czytnik taśmy. 230 00:10:44,980 --> 00:10:47,215 To trwało może 15 minut załadowania programu. 231 00:10:47,215 --> 00:10:52,110 Następnie dalekopis nagle drukowane szybka pamięć, a następnie gotowe polecenia, 232 00:10:52,110 --> 00:10:55,340 i Allen zaczął pisać Polecenia kilka testów. 233 00:10:55,340 --> 00:10:57,400 Ku zaskoczeniu, Oprogramowanie działa. 234 00:10:57,400 --> 00:10:58,525 Były błędy, oczywiście. 235 00:10:58,525 --> 00:11:02,070 Ale najważniejsze było to działało. 236 00:11:02,070 --> 00:11:06,570 >> Hikari: Później, w drodze do 3,00 dolarów lunch w Pancho, osa poleciała 237 00:11:06,570 --> 00:11:10,470 w okna odbioru Wózki i ukąszony Allen na ramieniu. 238 00:11:10,470 --> 00:11:13,070 Ale nic w tym punkcie może zepsuć nastrój. 239 00:11:13,070 --> 00:11:17,210 Altair miał teraz jego podstawowego, pierwsze komercyjne oprogramowanie dla domu 240 00:11:17,210 --> 00:11:23,260 komputer, wykonany przez Paul Allen i Bill Gates, prowadzenia działalności gospodarczej, jak Microsoft. 241 00:11:23,260 --> 00:11:25,336 >> David J. MALAN: Wiele dzięki naszymi czytelnikami. 242 00:11:25,336 --> 00:11:30,690 >> [Aplauz] 243 00:11:30,690 --> 00:11:32,520 >> David J. MALAN: Teraz masz wybór, 244 00:11:32,520 --> 00:11:35,880 przed wyjazdem, z połyskiem i blask w dark-- oh, 245 00:11:35,880 --> 00:11:40,810 odczekać jedną sekundę, wait-- świecący i blask w ciemności słonia 246 00:11:40,810 --> 00:11:42,534 z CS50 własnej Cheng Gong. 247 00:11:42,534 --> 00:11:43,450 Hikari: Och, dziękuję. 248 00:11:43,450 --> 00:11:45,324 David J. MALAN: Wszystkie Dobrze, dziękuję bardzo. 249 00:11:45,324 --> 00:11:49,855 [Aplauz] 250 00:11:49,855 --> 00:11:51,105 David J. MALAN: Więc prawdziwa historia. 251 00:11:51,105 --> 00:11:54,380 Znaczy to, że wszystkie z tych Maszyny oraz łatwość, z jaką 252 00:11:54,380 --> 00:11:56,270 wykorzystać je teraz i podjąć za pewnik, naprawdę 253 00:11:56,270 --> 00:12:00,070 rozpoczął tutaj, zaledwie kilka kroków od tego rzeczywistego teatru. 254 00:12:00,070 --> 00:12:03,930 A teraz już, jeśli nie byli, to Maxwell Dworkin komputer 255 00:12:03,930 --> 00:12:05,810 Budynek nauki, również za rogiem. 256 00:12:05,810 --> 00:12:09,760 I na drugim piętrze tego Budynek ma trzy strony powiesić 257 00:12:09,760 --> 00:12:12,740 z oryginalnego kodu źródłowego, które Bill Gates i Paul Allen napisał. 258 00:12:12,740 --> 00:12:14,770 W rzeczywistości, jeśli stosowanie powiększania , można zobaczyć nie tylko 259 00:12:14,770 --> 00:12:17,350 ich nazwy w Oryginalny typ, ale również 260 00:12:17,350 --> 00:12:22,100 ich podpisy, które są zdobione Kilka lat temu, kiedy ostatnio tam byłem. 261 00:12:22,100 --> 00:12:25,800 >> Ale to, co było szczególnie istotne o to, co określone zrobić 262 00:12:25,800 --> 00:12:29,760 było napisać program, który umożliwić osobom napisać 263 00:12:29,760 --> 00:12:30,950 własne programy. 264 00:12:30,950 --> 00:12:34,280 W tym czasie wszystko było z maszyna wykonana przez MITS Altair. 265 00:12:34,280 --> 00:12:40,020 I wszystkie potrzebne było jakiś sposób co ułatwia dla hobbystów i osób 266 00:12:40,020 --> 00:12:45,300 podoba nam się w tym pokoju, aby rzeczywiście programu że niekoniecznie rozumiejąc 267 00:12:45,300 --> 00:12:49,060 Kod zespół lub urządzenie kod, albo nie daj Boże, 0 i 1. 268 00:12:49,060 --> 00:12:51,190 Jak my, programiści, ci, w tym pokoju, 269 00:12:51,190 --> 00:12:54,070 Chcesz być w stanie wyrazić sami o wiele bardziej jak pseudo kod 270 00:12:54,070 --> 00:12:57,330 nawet jeśli jest to nieco bardziej nit wybredni niż rozmawialiśmy w zeszłym tygodniu. 271 00:12:57,330 --> 00:13:00,970 Nie chcemy, aby napisać kod tak, który zrobił Paul Allen i Bill Gates. 272 00:13:00,970 --> 00:13:04,850 My natomiast chcemy napisać kod, który wygląda trochę bardziej przyjazny użytkownikowi. 273 00:13:04,850 --> 00:13:07,150 >> Teraz jest to język znany jako podstawowego. 274 00:13:07,150 --> 00:13:11,497 I numery linii nie są tym, co was użyć po prostu ponumerować wiersze kodu 275 00:13:11,497 --> 00:13:12,330 że piszesz. 276 00:13:12,330 --> 00:13:14,038 Nie trzeba nawet zrobić te dni. 277 00:13:14,038 --> 00:13:16,060 Ale można zobaczyć tutaj jak print "Witaj, świecie" 278 00:13:16,060 --> 00:13:18,660 rzeczywiście prawdopodobnie wydrukować tylko to. 279 00:13:18,660 --> 00:13:22,710 A więc to, co Bill i Paul nie był dawać ludziom pisać kod tak 280 00:13:22,710 --> 00:13:27,240 zamiast of-- jeśli przyjrzeć się informatyka wall-- kod jak poniżej. 281 00:13:27,240 --> 00:13:29,290 >> W rzeczywistości, niedawno CS50 miał okazję 282 00:13:29,290 --> 00:13:32,540 usiąść z profesorem Harry Lewis w dziale Informatyki, który 283 00:13:32,540 --> 00:13:34,640 faktycznie uczy Bill Gates kilka lat temu, 284 00:13:34,640 --> 00:13:38,460 i stoi tu przed te trzy strony fragmentów. 285 00:13:38,460 --> 00:13:39,560 Rzućmy okiem. 286 00:13:39,560 --> 00:13:45,520 >> HARRY LEWIS: Co musisz o to wykaz wczesnym kawałek oprogramowania 287 00:13:45,520 --> 00:13:50,240 napisany przez Billa Gatesa i Paula Allen, założyciele Microsoftu. 288 00:13:50,240 --> 00:13:52,570 Więc kod jest ciekawa z dwóch powodów. 289 00:13:52,570 --> 00:13:55,480 Przede wszystkim okazało się, Pierwszym produktem firmy Microsoft, 290 00:13:55,480 --> 00:14:01,810 który był tłumaczem język programowania BASIC. 291 00:14:01,810 --> 00:14:04,940 A po drugie, to był jeden z pierwszych prób 292 00:14:04,940 --> 00:14:10,580 stworzyć tłumacza tak zwyczajne ludzie mogli korzystać z komputerów osobistych. 293 00:14:10,580 --> 00:14:12,670 >> Więc Bill Gates był licencjackich na Uniwersytecie Harvarda. 294 00:14:12,670 --> 00:14:14,820 Zacząłem naukę na Harvardzie w 1974 roku. 295 00:14:14,820 --> 00:14:16,560 Dokonano tego w 1975. 296 00:14:16,560 --> 00:14:20,180 Tak było na początku swojej kariery i na początku mojej kariery. 297 00:14:20,180 --> 00:14:23,790 I rzeczywiście nauczył Billa Oczywiście w tym czasie. 298 00:14:23,790 --> 00:14:27,130 Paul Allen nie było Studenta Harvardu, ale 299 00:14:27,130 --> 00:14:31,020 była szkoła średnia kolega Bill Gates. 300 00:14:31,020 --> 00:14:33,740 Jeśli przyjść i spojrzeć na szczegóły, które będziesz 301 00:14:33,740 --> 00:14:36,230 rzeczywiście znaleźć trzeci nazwa Monte Davidoff, 302 00:14:36,230 --> 00:14:39,260 który był kolega Gatesa tutaj na Harvardzie. 303 00:14:39,260 --> 00:14:41,340 >> OK, więc tutaj jest ciekawy komentarz tutaj. 304 00:14:41,340 --> 00:14:47,150 Mówi: "W 4K możesz usuwać pierwiastek kwadratowy ale pętle powinny nadal pracować. " 305 00:14:47,150 --> 00:14:53,080 OK, więc co to oznacza to, że nie były dwa sposoby, aby skompilować ten program. 306 00:14:53,080 --> 00:14:57,860 Jeden był do pracy w wersji z tego komputera Altair 307 00:14:57,860 --> 00:15:04,310 że miał tylko słowa 4K pamięci, 4096 słowa pamięci. 308 00:15:04,310 --> 00:15:07,050 Ale duża wersja miała 8K. 309 00:15:07,050 --> 00:15:09,770 A więc to, co mówi, jest to że w tej wersji 4K 310 00:15:09,770 --> 00:15:12,770 trzeba było usunąć kilka kod, aby to pasuje. 311 00:15:12,770 --> 00:15:14,790 A jedną z rzeczy, które będą usunięte 312 00:15:14,790 --> 00:15:16,290 będzie pierwiastek kwadratowy rutyna. 313 00:15:16,290 --> 00:15:20,360 Ale widocznie na pętle powinny nadal 314 00:15:20,360 --> 00:15:26,392 działać, nawet gdy jesteś kompilacji dół w wersji tylko 4K komputera. 315 00:15:26,392 --> 00:15:29,350 David J. MALAN: Tak jeden z tematów, jak zobaczymy w informatyce, 316 00:15:29,350 --> 00:15:31,430 jest to pojęcie warstw i abstrakcji, 317 00:15:31,430 --> 00:15:34,670 i naprawdę stojąc na ramionach z ludzi, którzy przybyli przed nami, a nie 318 00:15:34,670 --> 00:15:37,890 W przeciwieństwie do Billa Gatesa i Paul Allen narracji tutaj. 319 00:15:37,890 --> 00:15:40,080 I oznacza to, że dzisiaj możemy podjąć dla 320 00:15:40,080 --> 00:15:43,490 pewnik, że rzeczy są w rzeczywistości nam łatwiej napisać kod. 321 00:15:43,490 --> 00:15:47,170 Rzeczywiście kod, jak powiedział w piątek, jest bardziej technicznie znany jako kod źródłowy. 322 00:15:47,170 --> 00:15:52,210 I to jest to po angielsku, jak składni to bardziej właściwe i bardziej dobrze zdefiniowane 323 00:15:52,210 --> 00:15:55,480 niż coś jak pseudo kod, na który nie ma formalnej definicji. 324 00:15:55,480 --> 00:15:58,320 >> A dziś co mamy zamiar skupić się na to kod źródłowy 325 00:15:58,320 --> 00:16:01,010 że wygląda to, co co prawda na pierwszy rzut oka 326 00:16:01,010 --> 00:16:02,690 wygląda zupełnie tajemnicze. 327 00:16:02,690 --> 00:16:08,540 I szczerze mówiąc, to jest o wiele bardziej estetycznie Program złożony niż bazowy jest. 328 00:16:08,540 --> 00:16:13,300 Ten program robi wszystko, Przypomnijmy, jest to, co mówiliśmy? 329 00:16:13,300 --> 00:16:14,990 To po prostu wypisuje "Hello World". 330 00:16:14,990 --> 00:16:19,600 I jeszcze patrzeć na wszystkie rzeczy musimy owinąć wokół tego bardzo prostego zdania. 331 00:16:19,600 --> 00:16:21,750 Ale niedługo wszystkie te linie i więcej 332 00:16:21,750 --> 00:16:24,800 będzie o wiele lepszy zmysł do Ciebie. 333 00:16:24,800 --> 00:16:26,940 >> I przepływ jest następujące. 334 00:16:26,940 --> 00:16:31,220 To, czego potrzebujemy do naszej dyspozycji ma mieć kod, na przykład źródła 335 00:16:31,220 --> 00:16:32,340 Kod, który właśnie zobaczył. 336 00:16:32,340 --> 00:16:35,060 I potrzebujemy nowego programu aby go uruchomić poprzez. 337 00:16:35,060 --> 00:16:39,130 Musimy algorytmów, które mogą konwersji kodu źródłowego, jak ten, 338 00:16:39,130 --> 00:16:41,932 do kodu wynikowego, 0 i 1. 339 00:16:41,932 --> 00:16:43,890 Innymi słowy, mamy zamiar nauczyć się dzisiaj 340 00:16:43,890 --> 00:16:46,620 jest, jak to zrobić, napisz Kod źródłowy do góry, 341 00:16:46,620 --> 00:16:49,930 przekazać ją jako wkład do specjalnego Program znany jako kompilatora, 342 00:16:49,930 --> 00:16:52,140 i będziemy produkować kod obiektu. 343 00:16:52,140 --> 00:16:54,600 Który jest tylko fantazyjny sposób mówiąc coś zrobimy 344 00:16:54,600 --> 00:16:58,350 , który wygląda tak, przekazać go do programu o nazwie kompilator, 345 00:16:58,350 --> 00:17:01,210 produkcji kod obiektu , który wygląda tak. 346 00:17:01,210 --> 00:17:04,720 >> To są dosłownie wzory 0 i 1 347 00:17:04,720 --> 00:17:08,550 które są zrozumiałe Komputer Intel te dni, 348 00:17:08,550 --> 00:17:12,480 że jeśli interpretowany przez CPU mózgi wewnątrz z komputera, 349 00:17:12,480 --> 00:17:16,130 dosłownie wydrukować, po prostu, "Hello World". 350 00:17:16,130 --> 00:17:19,670 Teraz nie sposób więcej 0 i 1 niż ty ma nadzieję, może być konieczne do tego. 351 00:17:19,670 --> 00:17:22,520 Ale to dlatego, że budujemy na dobrą ofertę złożoności 352 00:17:22,520 --> 00:17:24,270 że możemy teraz wziąć za pewnik. 353 00:17:24,270 --> 00:17:27,869 Inaczej mówiąc, wiele inteligentnych ludzi dały nam wiele ciekawych narzędzi 354 00:17:27,869 --> 00:17:32,480 i wydajne oprogramowanie, z którym mogą teraz projekty własne. 355 00:17:32,480 --> 00:17:33,400 >> Więc zaczynajmy. 356 00:17:33,400 --> 00:17:36,640 Natomiast ostatni piątek i Ustaw 0 dla Problem w tym tygodniu, 357 00:17:36,640 --> 00:17:39,000 będziesz grać w świat, który wygląda tak. 358 00:17:39,000 --> 00:17:42,180 Począwszy od dziś, a do problemu Zestaw 1 w przyszłym tygodniu, kod 359 00:17:42,180 --> 00:17:45,410 będzie wyglądać trochę bardziej tajemnicze, ale funkcjonalnie jest 360 00:17:45,410 --> 00:17:46,940 dzieje się tak samo. 361 00:17:46,940 --> 00:17:50,770 Tak więc informacja, top jest na zarysowania, Dno jest C. Szczerze Scratch 362 00:17:50,770 --> 00:17:52,780 jest o wiele bardziej użytkownik przyjazny i przystępny. 363 00:17:52,780 --> 00:17:56,890 Ale jeśli teraz porównać wizualnie do góry dno, jest rodzajem 12:59 364 00:17:56,890 --> 00:17:59,690 korespondencja między puzzle i język 365 00:17:59,690 --> 00:18:00,870 mamy zamiar grać. 366 00:18:00,870 --> 00:18:04,420 W szczególności, mówią, niebieski puzzle do góry, 367 00:18:04,420 --> 00:18:08,370 jest podobno odpowiednik jakim hasła lub specjalnego w tym języku zdanie 368 00:18:08,370 --> 00:18:09,062 zwany C? 369 00:18:09,062 --> 00:18:09,770 PUBLICZNOŚCI: printf. 370 00:18:09,770 --> 00:18:10,728 David J. MALAN: printf. 371 00:18:10,728 --> 00:18:12,140 Oznacza to, że drukowanie sformatowana. 372 00:18:12,140 --> 00:18:15,240 A to tylko fantazja sposób mówienia printf w C 373 00:18:15,240 --> 00:18:18,615 będzie oświadczenie lub funkcji że drukuje coś na ekranie. 374 00:18:18,615 --> 00:18:19,990 Co to wydrukować na ekranie? 375 00:18:19,990 --> 00:18:23,627 Cokolwiek powiesz do wewnątrz cytatów, wewnątrz nawiasów. 376 00:18:23,627 --> 00:18:25,460 Więc jeszcze raz, co prawda, tam wiele rzeczy 377 00:18:25,460 --> 00:18:27,990 że trzeba mieć na uwadze, nawiasy, notowania, średniki, 378 00:18:27,990 --> 00:18:28,656 i to wszystko. 379 00:18:28,656 --> 00:18:30,600 Ale wszystko to jest rodzaj z obok punktu. 380 00:18:30,600 --> 00:18:33,660 Ciekawe teraz na wynos jest to, że blok powiedzmy w Scratch 381 00:18:33,660 --> 00:18:37,520 jest prawie równoważna Instrukcja printf w C 382 00:18:37,520 --> 00:18:41,390 >> Tymczasem żółty kawałek układanki do góry, gdy zielone flagi kliknięciu 383 00:18:41,390 --> 00:18:44,736 jest chyba odpowiednikiem do tego, co słowo kluczowe tutaj? 384 00:18:44,736 --> 00:18:45,360 PUBLICZNOŚCI: Główny. 385 00:18:45,360 --> 00:18:46,359 David J. MALAN: Więc głównym. 386 00:18:46,359 --> 00:18:47,410 Może int, może nieważne. 387 00:18:47,410 --> 00:18:51,280 Ale główny rodzaj dźwięków, takich jak ważne jest, i rzeczywiście jest. 388 00:18:51,280 --> 00:18:54,080 Kiedy tak kliknięciu zielona flaga jest znowu kawałek logiczna 389 00:18:54,080 --> 00:18:56,390 że rozpoczyna się Cały program Scratch. 390 00:18:56,390 --> 00:19:02,140 Ale mamy zamiar teraz zacząć dzwonić że głównym, funkcja ta znana jako główny. 391 00:19:02,140 --> 00:19:06,410 >> Tymczasem my będziemy teraz uogólnić ten sposób następujący. 392 00:19:06,410 --> 00:19:08,780 Możemy zadzwonić powiedzieć funkcję. 393 00:19:08,780 --> 00:19:10,580 I to może wyglądać specjalnie tak. 394 00:19:10,580 --> 00:19:11,770 A co z pętli? 395 00:19:11,770 --> 00:19:16,540 Jeśli chcemy, aby rozpocząć konwersji lub tłumaczenia więcej w Scratch do C, 396 00:19:16,540 --> 00:19:19,400 to coś tu najwyraźniej tylko mówi "hello world" na zawsze. 397 00:19:19,400 --> 00:19:23,060 Więc jeśli skojarzyć te skrypty z kotem w Scratch, 398 00:19:23,060 --> 00:19:26,560 to po prostu będzie powtarzają w jakiejś kreskówki bańki, 399 00:19:26,560 --> 00:19:29,922 "Hello world, hello world, witam świat, "reklama nauseum, zawsze. 400 00:19:29,922 --> 00:19:33,130 Jeśli chcemy zrobić coś podobnego w C, to będzie wyglądać trochę tajemnicze. 401 00:19:33,130 --> 00:19:35,463 Ale możemy osiągnąć to samo wyniki, jak będzie ostatecznie 402 00:19:35,463 --> 00:19:36,861 dowiedzieć się, jak to ze składnią. 403 00:19:36,861 --> 00:19:39,360 Zamierzam ponownie użyć printf, ponieważ na koniec dnia 404 00:19:39,360 --> 00:19:42,040 Chcę wydrukować "Hello World". 405 00:19:42,040 --> 00:19:45,610 A ja widocznie za pomocą słów kluczowych, które nie jest na zawsze. 406 00:19:45,610 --> 00:19:47,320 Jest to słowo, podczas gdy zamiast. 407 00:19:47,320 --> 00:19:49,650 Ale tylko w semantycznie Angielski, a rodzaj 408 00:19:49,650 --> 00:19:52,120 sugeruje jakieś pętli lub cyklu. 409 00:19:52,120 --> 00:19:55,070 >> Tak, że dzieje się słów kluczowych, że C używa. 410 00:19:55,070 --> 00:20:00,700 I choć prawdą, dlaczego chwilę prawda skutecznie znaczy zawsze? 411 00:20:00,700 --> 00:20:04,240 Cóż, podczas gdy, jak będzie wkrótce docenić to, więcej 412 00:20:04,240 --> 00:20:08,140 ma to w nawiasach obok gdzie można umieścić wyrażenie logiczne. 413 00:20:08,140 --> 00:20:11,360 I tak długo, jak wyrażenie jest prawdziwe, to kod, 414 00:20:11,360 --> 00:20:14,750 jak wskazano między tymi dwoma nawiasy klamrowe, jak my je nazywamy, 415 00:20:14,750 --> 00:20:16,880 po prostu biec ponownie i ponownie. 416 00:20:16,880 --> 00:20:18,410 >> Więc prawda jest prawdą. 417 00:20:18,410 --> 00:20:20,900 Tak więc, podczas gdy prawdziwi pomocą po prostu to zrobić zawsze. 418 00:20:20,900 --> 00:20:23,480 To prawie głupi konstruować, aby wyrazić siebie. 419 00:20:23,480 --> 00:20:26,590 Ale tam nie było zawsze słów kluczowych w C. Nie było czasu. 420 00:20:26,590 --> 00:20:29,390 I był bardzo prosty Wyrażenie logiczne jak prawdziwe. 421 00:20:29,390 --> 00:20:32,210 A więc to, zobaczymy, osiągnięcie tego samego rezultatu. 422 00:20:32,210 --> 00:20:33,890 >> Jak inaczej można wdrożyć pętlę? 423 00:20:33,890 --> 00:20:36,980 Cóż, w Scratch to polubisz mocno specyficzny numer kodu 424 00:20:36,980 --> 00:20:39,430 iteracji w pętli tutaj. 425 00:20:39,430 --> 00:20:43,210 I tak to jest dokładnie to, co my może zrobić w tej wersji C, 426 00:20:43,210 --> 00:20:46,140 przy czym mamy tzw pętli. 427 00:20:46,140 --> 00:20:49,850 I pętli tutaj dzieje iteracyjne, nieco tajemniczo, 428 00:20:49,850 --> 00:20:54,100 z wartości 0 na górę do, lecz mniej niż 10. 429 00:20:54,100 --> 00:20:55,955 >> Teraz zmienne podstaw. 430 00:20:55,955 --> 00:20:57,830 Może nie miałeś okazja, by z nich korzystać. 431 00:20:57,830 --> 00:21:02,516 Ale o co chodzi, w ogóle, zmiennej mówiliśmy w zeszłym tygodniu? 432 00:21:02,516 --> 00:21:03,015 Co to jest? 433 00:21:03,015 --> 00:21:03,780 >> WIDOWNI: Punkty. 434 00:21:03,780 --> 00:21:05,200 >> David J. MALAN: Aby wskazać? 435 00:21:05,200 --> 00:21:05,700 Oh, wskazuje. 436 00:21:05,700 --> 00:21:07,620 OK, śledzenie punktów, Na przykład, w grze. 437 00:21:07,620 --> 00:21:09,510 Lub bardziej ogólnie robi co ze zmienną? 438 00:21:09,510 --> 00:21:10,450 Co znajduje się narzędzie z nich? 439 00:21:10,450 --> 00:21:10,825 >> PUBLICZNOŚCI: Pamięć. 440 00:21:10,825 --> 00:21:11,750 >> David J. MALAN: Tak, tak, pamięć. 441 00:21:11,750 --> 00:21:13,000 To do przechowywania czegoś. 442 00:21:13,000 --> 00:21:17,336 I rodzaj wizualnej Kiedyś głupie Ostatni raz było jak tego szklanej misce. 443 00:21:17,336 --> 00:21:19,710 A jeśli chcemy zapisać coś w zmiennej, 444 00:21:19,710 --> 00:21:21,918 na przykład teraz wartość jest sześć, ponieważ nie 445 00:21:21,918 --> 00:21:23,450 sześć piłek do ping ponga w tutaj. 446 00:21:23,450 --> 00:21:26,158 To jest po prostu jakiś rodzaj magazynowania Pojemnik, że pod maską 447 00:21:26,158 --> 00:21:30,030 realizowany jest z bitów, 0 i 1, jednak komputer się stanie to zrobić. 448 00:21:30,030 --> 00:21:32,900 >> Więc w Scratch, jeśli chcesz mieć zmienną, 449 00:21:32,900 --> 00:21:34,840 możemy użyć bloku pomarańczowy takiego. 450 00:21:34,840 --> 00:21:37,050 Zadzwonimy, że licznik w tym konkretnym przypadku. 451 00:21:37,050 --> 00:21:38,890 I inicjowane na 0. 452 00:21:38,890 --> 00:21:41,080 I co mam następnie zrobić? 453 00:21:41,080 --> 00:21:44,780 Zawsze mówią licznik, który jeśli grasz, że w Scratch, 454 00:21:44,780 --> 00:21:45,780 musisz po prostu zobaczyć Scratch. 455 00:21:45,780 --> 00:21:49,920 Można umieścić na kostium kot czy cokolwiek mu będzie mówić numer, o którym mowa. 456 00:21:49,920 --> 00:21:52,840 >> Zmiana jest o 1 licznik jak zwiększany o 1. 457 00:21:52,840 --> 00:21:56,580 I tak to będzie liczyć z co tak co? 458 00:21:56,580 --> 00:21:59,114 Od 0 aż w nieskończoność, lub aż do przerwy zera, 459 00:21:59,114 --> 00:22:01,030 lub do momentu rodzaju tracą zainteresowanie oglądaniem 460 00:22:01,030 --> 00:22:02,650 jak wysoko może faktycznie liczyć. 461 00:22:02,650 --> 00:22:04,800 >> Więc jak możemy przekonwertować to do C? 462 00:22:04,800 --> 00:22:06,480 To będzie wyglądać trochę tajemnicze. 463 00:22:06,480 --> 00:22:08,896 Ale znowu, jeśli spojrzeć na siebie z tych linii indywidualnie 464 00:22:08,896 --> 00:22:10,410 ich rodzaj spisu ogólnie. 465 00:22:10,410 --> 00:22:13,526 Więc najwyraźniej int będzie mieć jakieś specjalne znaczenie w C 466 00:22:13,526 --> 00:22:14,400 Zobaczymy, że znowu. 467 00:22:14,400 --> 00:22:15,810 Tak na marginesie to oznacza całkowitą. 468 00:22:15,810 --> 00:22:16,990 Tak, to po prostu oznacza numer. 469 00:22:16,990 --> 00:22:18,920 Więc to jest typ klosz chcę, jeden 470 00:22:18,920 --> 00:22:21,120 które mogą przechowywać liczby, nie ping pong piłki. 471 00:22:21,120 --> 00:22:25,520 I mam zamiar używać znaku równości tam, aby przypisać mu wartość 0. 472 00:22:25,520 --> 00:22:29,440 Więc to jest zupełnie jak zestaw Licznik 0, ale C. 473 00:22:29,440 --> 00:22:32,840 >> Tymczasem, podczas gdy prawda, że ​​był odpowiednik, oczywiście, zawsze 474 00:22:32,840 --> 00:22:35,980 nawet jeśli jest to trochę tajemnicze, a następnie wewnątrz nawiasy. 475 00:22:35,980 --> 00:22:39,188 A może myślisz o tych klamrach, który można wpisać na klawiaturze, 476 00:22:39,188 --> 00:22:43,110 tak naprawdę są jak krzywizny te żółte bloki pętli zera. 477 00:22:43,110 --> 00:22:45,700 Obejmuje ona kilka linijek kodu. 478 00:22:45,700 --> 00:22:48,120 >> Printf jest coraz trochę przerażające, bo teraz 479 00:22:48,120 --> 00:22:51,120 zobacz cytuje nie tylko w nawiasach. 480 00:22:51,120 --> 00:22:55,160 Ale co innego jest nowy składniowo w tym przykładzie? 481 00:22:55,160 --> 00:22:57,300 Jest procent d. 482 00:22:57,300 --> 00:22:58,551 A następnie backslash n ma. 483 00:22:58,551 --> 00:23:00,883 Widzieliśmy, że wcześniej, nawet choć nie ma za co. 484 00:23:00,883 --> 00:23:01,886 Potem jest przecinek. 485 00:23:01,886 --> 00:23:03,010 A potem jest licznik. 486 00:23:03,010 --> 00:23:05,010 >> Ale zobaczymy się po prostu Moment który jest po prostu 487 00:23:05,010 --> 00:23:09,080 standardowy sposób powiedzenia wydrukować "Liczba po przecinku," cytat, cytatu, 488 00:23:09,080 --> 00:23:10,500 niektóre liczba dziesiętna. 489 00:23:10,500 --> 00:23:13,370 Ale powiem ci później co to liczba dziesiętna jest. 490 00:23:13,370 --> 00:23:16,835 Tak więc fakt, że nie ma przecinka w tym mówiący printf, 491 00:23:16,835 --> 00:23:18,710 oznacza, iść do przodu i drukuj niektóre liczba dziesiętna. 492 00:23:18,710 --> 00:23:23,110 Aha, i przy okazji, liczba ta jest bez względu na wartość tej zmiennej jest. 493 00:23:23,110 --> 00:23:25,880 I tak, aby ten bardziej jasne, zobaczymy przykład 494 00:23:25,880 --> 00:23:30,930 wkrótce z udziałem dokładnie printf w kontekście programów prawdziwe C. 495 00:23:30,930 --> 00:23:33,472 >> Teraz wystarczy, by zakończyć niektóre z tych konstrukcji. 496 00:23:33,472 --> 00:23:36,680 Wyrażenia logiczne, że nie może mieć okazja, by wykorzystać je w swoim programie 497 00:23:36,680 --> 00:23:39,450 ale może być bardzo dobrze, szczególnie w przypadku korzystania z warunków. 498 00:23:39,450 --> 00:23:43,460 I tak te dwa przykłady z Scratch znaczy jeśli x jest mniejsze niż Y 499 00:23:43,460 --> 00:23:48,770 albo jeśli x jest mniejsze niż R i R jest mniejszy niż z, jak możemy tłumaczyć, że? 500 00:23:48,770 --> 00:23:50,810 >> Cóż, w C to tylko będzie wyglądać tak. 501 00:23:50,810 --> 00:23:55,300 Trochę tajemnicze, więcej nawiasów, dziwne Ampersands, lecz w gruncie 502 00:23:55,300 --> 00:23:59,160 pomysły są tak proste, jak oni są w kawałek układanki świata. 503 00:23:59,160 --> 00:24:02,690 Jesteśmy po prostu sprawdzenie, czy coś jest mniejsza niż coś innego. 504 00:24:02,690 --> 00:24:03,910 >> Jak o warunkach? 505 00:24:03,910 --> 00:24:09,710 W skrócie, w języku angielskim, co to fragment kodu Scratch nie chcesz powiedzieć? 506 00:24:09,710 --> 00:24:11,050 >> PUBLICZNOŚCI: Porównuje dwie liczby. 507 00:24:11,050 --> 00:24:13,760 >> David J. MALAN: Porównuje dwa numerów, gdy x jest mniejsze niż y 508 00:24:13,760 --> 00:24:14,860 mówi tak samo. 509 00:24:14,860 --> 00:24:18,080 Jeśli x jest większe od y mówi tak dużo, inny 510 00:24:18,080 --> 00:24:20,740 jeśli x jest równe y to mówi więcej. 511 00:24:20,740 --> 00:24:22,180 Teraz skąd x i y pochodzi? 512 00:24:22,180 --> 00:24:22,680 Kto wie. 513 00:24:22,680 --> 00:24:25,380 Ten fragment Scratch Kod jest wyrwane z kontekstu. 514 00:24:25,380 --> 00:24:29,050 Ale to, co chcemy zrobić, to przetłumaczyć to na chwilę, aby zobaczyć. 515 00:24:29,050 --> 00:24:31,660 >> Tak, masz wybór Problem w tym tygodniu zestaw 516 00:24:31,660 --> 00:24:34,190 0 w tym świecie gry po lewej stronie, sprawę 517 00:24:34,190 --> 00:24:36,940 że idee nie zmieniają w tym tygodniu albo w przyszłym lub poza nią. 518 00:24:36,940 --> 00:24:38,690 Jesteśmy po prostu będzie zacząć pisać rzeczy 519 00:24:38,690 --> 00:24:41,240 w inny sposób, z naszymi Klawiatura zamiast naszej myszki. 520 00:24:41,240 --> 00:24:44,577 >> Tak więc, gdy x jest mniejszy od y, a jest tam kilka nawiasów, 521 00:24:44,577 --> 00:24:47,160 A jeszcze kilka nawiasy klamrowe ponownie, aby go rodzaj enkapsulacji 522 00:24:47,160 --> 00:24:48,970 jak żółte puzzle zrobić. 523 00:24:48,970 --> 00:24:53,000 I idę do printf x jest mniejsze niż R i tak dalej. 524 00:24:53,000 --> 00:24:56,540 >> Co jest ładne o C, jak widać tutaj, 525 00:24:56,540 --> 00:25:00,480 jest to, że nie dostaniesz tej zagnieżdżania, gniazdowania, gniazdowania, że ​​koniecznie 526 00:25:00,480 --> 00:25:02,220 zamiar pchnąć swój kod w prawo. 527 00:25:02,220 --> 00:25:04,990 Zamiast tego można mieć wszystkiego skład starannie tak. 528 00:25:04,990 --> 00:25:08,960 Ale to tylko estetyczny szczegółowo zobaczymy ponownie wkrótce. 529 00:25:08,960 --> 00:25:09,660 >> Wszystko w porządku. 530 00:25:09,660 --> 00:25:13,290 Tak, że prowadzi nas z powrotem do to tajemnicze spojrzenie programu. 531 00:25:13,290 --> 00:25:15,180 Niech faktycznie napisać kod. 532 00:25:15,180 --> 00:25:16,830 Teraz, jak go o pisanie kodu? 533 00:25:16,830 --> 00:25:21,310 Przez te wszystkie lata, że ​​już w posiadaniu Mac lub PC, komputera stacjonarnego lub laptopa, 534 00:25:21,310 --> 00:25:24,520 się, że rzeczywiście miał możliwość zacząć pisać kod programu. 535 00:25:24,520 --> 00:25:27,050 Ale pewnie brakuje specjalny rodzaj programu. 536 00:25:27,050 --> 00:25:28,470 Z pewnością można napisać kod. 537 00:25:28,470 --> 00:25:30,740 Ale koniecznie nie może, po wyjęciu z pudełka, 538 00:25:30,740 --> 00:25:34,210 przekonwertować kod źródłowy do kodu wynikowego, 0 i 1 539 00:25:34,210 --> 00:25:35,619 bez czego na komputerze? 540 00:25:35,619 --> 00:25:36,410 PUBLICZNOŚCI: Compiler. 541 00:25:36,410 --> 00:25:37,630 David J. MALAN: Więc kompilator, rację. 542 00:25:37,630 --> 00:25:39,730 Teraz większość z was prawdopodobnie nie właścicielem kompilatora, 543 00:25:39,730 --> 00:25:41,259 nigdy nie pobrać kompilator. 544 00:25:41,259 --> 00:25:44,300 Ale zobaczysz, możesz go pobrać jak większość jakiejkolwiek innej części oprogramowania. 545 00:25:44,300 --> 00:25:47,470 W świecie Mac OS, to polubisz pobranie lub już pobranych 546 00:25:47,470 --> 00:25:50,437 coś o nazwie Xcode lub GCC lub Clang. 547 00:25:50,437 --> 00:25:52,270 Jeśli pochodzą z Świat, który może Cię okna 548 00:25:52,270 --> 00:25:56,190 pobraniu programu Visual Studio, Visual Basic, środowiska, takie jak to. 549 00:25:56,190 --> 00:25:59,200 Jest dziesiątki kompilatorów te dni, które można użyć. 550 00:25:59,200 --> 00:26:01,940 Ale brakuje go tutaj jest to, że to ból 551 00:26:01,940 --> 00:26:04,480 i, szczerze mówiąc, technologicznego koszmarem dla setek 552 00:26:04,480 --> 00:26:07,680 ludzi z różnych Komputer do wszystkich konfiguracji 553 00:26:07,680 --> 00:26:09,800 skonfigurować swoje maszyny w taki sam sposób, 554 00:26:09,800 --> 00:26:11,700 tak, że wszyscy mogą być na tej samej stronie. 555 00:26:11,700 --> 00:26:15,240 >> Więc co my, zamiast robić w CS50 jest dać ci 556 00:26:15,240 --> 00:26:18,349 standardowe środowisko, Środowisko to jest linux 557 00:26:18,349 --> 00:26:20,140 będzie wyglądać trochę coś takiego. 558 00:26:20,140 --> 00:26:22,980 Zobaczysz więcej o tym w Problem Set 1 specyfikacji, które 559 00:26:22,980 --> 00:26:25,330 będzie w trybie online to w piątek wieczorem. 560 00:26:25,330 --> 00:26:28,360 >> I co to oznacza jest to, że od tej pory 561 00:26:28,360 --> 00:26:32,060 będą mogli pobrać i zainstalować program 562 00:26:32,060 --> 00:26:33,650 nazywa CS50 Appliance. 563 00:26:33,650 --> 00:26:36,275 I masz zamiar pobrać i zainstalować inny program o nazwie 564 00:26:36,275 --> 00:26:40,300 hypervisor, który jest po prostu fantazyjny sposób na osiągnięcie tego celu. 565 00:26:40,300 --> 00:26:44,600 Czy jesteś właścicielem Mac lub PC lub Komputerze z systemem Linux lub komputer Solaris 566 00:26:44,600 --> 00:26:46,830 czy jak szalony operacyjny systemu używasz, 567 00:26:46,830 --> 00:26:49,820 masz zamiar pobrać program nazwie hypervisor, który jest 568 00:26:49,820 --> 00:26:53,350 zamierza uruchomić CS50 Urządzenie w komputerze 569 00:26:53,350 --> 00:26:55,430 bez względu na system operacyjny jest. 570 00:26:55,430 --> 00:27:00,640 Hypervisor czyli przekształca nasze rzeczy do jakiegokolwiek języka, 571 00:27:00,640 --> 00:27:03,850 cokolwiek się instrukcjami własny komputer rozumie. 572 00:27:03,850 --> 00:27:04,962 >> Więc to jest warstw. 573 00:27:04,962 --> 00:27:06,920 I znowu, jest to rodzaj tematycznych w komputerze 574 00:27:06,920 --> 00:27:08,722 nauki, opierając się na górę rzeczy. 575 00:27:08,722 --> 00:27:09,680 Możesz mieć Windows. 576 00:27:09,680 --> 00:27:10,710 Może masz Mac OS. 577 00:27:10,710 --> 00:27:12,960 Ale od przyszłego tygodnia jesteś będzie pobraniu 578 00:27:12,960 --> 00:27:14,980 wolne oprogramowanie, nazwie hypervisor. 579 00:27:14,980 --> 00:27:17,800 Masz zamiar się pobrać kawałek oprogramowania o nazwie CS50 Appliance. 580 00:27:17,800 --> 00:27:21,050 >> Że zamierza uruchomić w hypervisor, która będzie działać na Twoim komputerze. 581 00:27:21,050 --> 00:27:23,030 I efekt końcowy jest że każdy z nas będzie 582 00:27:23,030 --> 00:27:26,220 mają prosty okno jak to na komputerze Mac lub PC 583 00:27:26,220 --> 00:27:30,160 który daje nam iluzję wszystko działa ten sam system operacyjny, 584 00:27:30,160 --> 00:27:32,800 bez żadnego innego Wpływ na komputerze. 585 00:27:32,800 --> 00:27:34,870 I można na pełnym ekranie to i zasadniczo zachowują 586 00:27:34,870 --> 00:27:37,550 jakby używasz system operacyjny o nazwie Linux, 587 00:27:37,550 --> 00:27:40,270 co jest, co CS50 Urządzenie jest oparte. 588 00:27:40,270 --> 00:27:42,930 >> Więc właściwie to wykorzystać teraz napisać program. 589 00:27:42,930 --> 00:27:45,450 Można napisać program przy użyciu programu Microsoft Word. 590 00:27:45,450 --> 00:27:48,160 Można napisać program używając TextEdit lub Notatniku 591 00:27:48,160 --> 00:27:51,880 lub WordPad, lub prawie każdy wyraz edytor kiedykolwiek używałeś. 592 00:27:51,880 --> 00:27:55,174 Ale rzeczywistość jest, że nie należy korzystać naprawdę każdy z tych programów. 593 00:27:55,174 --> 00:27:57,840 Na pewno nie powinno się używać coś jak Microsoft Word, które 594 00:27:57,840 --> 00:28:01,120 ma odważne wprost i kursywy oraz Mniejsze i większe czcionki, fonty 595 00:28:01,120 --> 00:28:03,560 ponieważ komputer nie dbają o żadnej z tych rzeczy. 596 00:28:03,560 --> 00:28:05,600 Komputer jest wszystko będzie dbać o to, 597 00:28:05,600 --> 00:28:09,040 Angielski jak instrukcji napisanych w C 598 00:28:09,040 --> 00:28:12,050 >> Więc co zrobimy wewnątrz urządzenia CS50 599 00:28:12,050 --> 00:28:14,290 jest swobodnie korzystać z programu dostępne, i to 600 00:28:14,290 --> 00:28:17,360 preinstalowany w tym Urządzenie, zwane gedit. 601 00:28:17,360 --> 00:28:22,280 I Gedit jest tylko bardzo prosty edytor tekstu jak TextEdit Mac OS, w 602 00:28:22,280 --> 00:28:26,200 jak Notatnik systemu Windows, które będzie wyglądać trochę coś takiego. 603 00:28:26,200 --> 00:28:28,910 >> Więc faktycznie nie spojrzeć na slajdach tego. 604 00:28:28,910 --> 00:28:32,580 Ale niech rzeczywiście iść do Samo środowisko. 605 00:28:32,580 --> 00:28:36,090 Mam zamiar iść do przodu i zaloguj się w tym drugim oknie, 606 00:28:36,090 --> 00:28:40,910 do mojego CS50 Appliance, które mam preinstalowany na moim laptopie tutaj. 607 00:28:40,910 --> 00:28:43,771 >> Zauważ, że, podobnie jak Windows i Mac OS, to ma jakieś menu. 608 00:28:43,771 --> 00:28:45,520 Jak Windows stawia to tam, a nie 609 00:28:45,520 --> 00:28:47,020 Mac OS, co stawia go na dół. 610 00:28:47,020 --> 00:28:48,930 Ale rzeczywistość jest to wszelkiego rodzaju samo. 611 00:28:48,930 --> 00:28:50,770 I tu jest cały Pęczek oprogramowania. 612 00:28:50,770 --> 00:28:51,770 Jest Dropbox. 613 00:28:51,770 --> 00:28:54,780 Jest cała masa akcesoriów, programy graficzne, które będziemy 614 00:28:54,780 --> 00:28:56,430 wykorzystywać później w okresie do zbiorów problemowych. 615 00:28:56,430 --> 00:28:59,650 Jest przeglądarka zbudowany w tak że jest to pełnoprawny komputer 616 00:28:59,650 --> 00:29:01,240 wewnątrz komputera. 617 00:29:01,240 --> 00:29:04,170 >> Ale mam zamiar kliknąć ten od lewej białą ikonę tutaj, 618 00:29:04,170 --> 00:29:05,890 który jest ikona Gedit. 619 00:29:05,890 --> 00:29:09,650 I to się dzieje, aby otworzyć okno , która ma trzy panele do niego 620 00:29:09,650 --> 00:29:12,590 lewa, góra jeden, i dolny. 621 00:29:12,590 --> 00:29:16,071 >> Teraz jest w tym, że górną prawą Będę naprawdę napisać kod. 622 00:29:16,071 --> 00:29:16,820 Więc zróbmy to ,. 623 00:29:16,820 --> 00:29:19,040 Mam zamiar iść do pliku, Zapisz. 624 00:29:19,040 --> 00:29:22,100 I nie może nigdy nie widziałem ten konkretny okno przed. 625 00:29:22,100 --> 00:29:23,620 Ale to jest jak Mac OS lub Windows. 626 00:29:23,620 --> 00:29:25,490 To tylko okno z wszystkich folderów 627 00:29:25,490 --> 00:29:27,290 że mam wewnątrz komputera. 628 00:29:27,290 --> 00:29:30,320 >> I mam zamiar zapisać Plik jako hello.c. 629 00:29:30,320 --> 00:29:32,690 I mam zamiar iść dalej i kliknij przycisk Zapisz. 630 00:29:32,690 --> 00:29:36,364 A teraz zauważyć Mam kartę na górze po lewej stronie nazywa hello.c. 631 00:29:36,364 --> 00:29:38,280 Więc chyba dość zna, nawet jeśli nie mam 632 00:29:38,280 --> 00:29:40,240 zanim użył tego konkretnego programu. 633 00:29:40,240 --> 00:29:44,890 >> A teraz mam zamiar wpisać te dość zagadkowa sekwencja poleceń 634 00:29:44,890 --> 00:29:46,360 które widzieliśmy przed chwilą. 635 00:29:46,360 --> 00:29:49,330 Obejmują, standard I / O.h. 636 00:29:49,330 --> 00:29:50,600 Więcej o tym wkrótce. 637 00:29:50,600 --> 00:29:55,670 Int main nieważne, otwarty kręcone klamra, zamknięty nawias klamrowy. 638 00:29:55,670 --> 00:30:01,570 A następnie wewnątrz jest nie myślę gdzie mieliśmy "Hello World", średnik. 639 00:30:01,570 --> 00:30:03,100 A teraz zapisać. 640 00:30:03,100 --> 00:30:08,780 >> Więc jest to program napisany w języku C, napisano zatem w kodzie źródłowym. 641 00:30:08,780 --> 00:30:10,720 Ale nie mogę po prostu uruchomić ten program. 642 00:30:10,720 --> 00:30:13,390 I niby chcą podwoić kliknij na ikonę gdzieś, 643 00:30:13,390 --> 00:30:16,390 ale nie istnieje inna ikona niż plik z kodem źródłowym. 644 00:30:16,390 --> 00:30:20,359 , Co, ponownie, jest procesem teraz Trzeba uruchomić ten plik za pośrednictwem? 645 00:30:20,359 --> 00:30:21,150 PUBLICZNOŚCI: Compiler. 646 00:30:21,150 --> 00:30:22,399 David J. MALAN: Więc kompilator. 647 00:30:22,399 --> 00:30:24,890 Tak więc w różnych komputerach to zrobić różnymi sposobami. 648 00:30:24,890 --> 00:30:27,480 Ale to, co zrobiliśmy tutaj Urządzanie CS50 to 649 00:30:27,480 --> 00:30:31,260 Przedstawiciel jak to polubisz zrobić to w wielu systemach 650 00:30:31,260 --> 00:30:34,036 jest mi po prostu będzie uruchomić polecenie o nazwie marka. 651 00:30:34,036 --> 00:30:35,660 A marka jest dosłownie zamiar zrobić. 652 00:30:35,660 --> 00:30:36,640 Mnie programu. 653 00:30:36,640 --> 00:30:39,060 >> Tak będzie się uruchomienia kompilatora dla mnie. 654 00:30:39,060 --> 00:30:42,160 I nazwę programu Chcę, aby to cześć. 655 00:30:42,160 --> 00:30:43,510 A teraz jest to program. 656 00:30:43,510 --> 00:30:47,170 I zrobić to na tyle sprytny, aby sobie sprawę, że jeśli powiem, aby przywitać, 657 00:30:47,170 --> 00:30:50,980 to będzie wyglądać na bieżąco pliku o nazwie hello.c 658 00:30:50,980 --> 00:30:53,420 tylko dlatego, że sposób to skonfigurować. 659 00:30:53,420 --> 00:31:00,300 >> Więc kiedy teraz hit Wprowadź tutaj, to szalony tajemniczy wiersz właśnie został wykonany. 660 00:31:00,300 --> 00:31:02,720 I uwierz mi, przed długo, w ciągu zaledwie kilku dni, 661 00:31:02,720 --> 00:31:05,590 zrozumiesz, co to wszystko z tym, że środki nonsens. 662 00:31:05,590 --> 00:31:11,150 Ale teraz, po prostu wiem, że aby wyzwalany wykonanie kompilatora. 663 00:31:11,150 --> 00:31:13,290 Innymi słowy, stwierdzono, Kompilator na moim komputerze 664 00:31:13,290 --> 00:31:14,820 to jest preinstalowany na urządzeniu CS50 665 00:31:14,820 --> 00:31:16,560 że uda nam przekazać Państwu w Problem 1. secie. 666 00:31:16,560 --> 00:31:20,990 A następnie wziął hello.c jako wejście, a produkowane podobno 667 00:31:20,990 --> 00:31:23,040 0s i 1s jako wyjścia. 668 00:31:23,040 --> 00:31:29,410 >> I domyślnie co robi jest to oszczędność te 0 i 1 w pliku o nazwie komentarzy. 669 00:31:29,410 --> 00:31:33,180 I choć to też mógłby składni być dla ciebie nowa, po prostu mówiąc, kropka 670 00:31:33,180 --> 00:31:37,110 slash komentarzy będzie za pomocą których mogę uruchomić ten program. 671 00:31:37,110 --> 00:31:40,360 >> Teraz i przez co najmniej kilka tygodni prawie wszystkich programów 672 00:31:40,360 --> 00:31:44,230 Piszemy będą w czarne i białe okna tekstowe. 673 00:31:44,230 --> 00:31:47,006 Nie myszy, bez klikania, nie ma okien, nie ma ikony. 674 00:31:47,006 --> 00:31:49,630 Jedziemy do keep it simple i skupić się na idei leżących u podstaw 675 00:31:49,630 --> 00:31:52,490 początkowo, zanim przejdziemy do czegoś wyższym poziomie, na przykład, 676 00:31:52,490 --> 00:31:56,410 jak wyrwać się z gry, rozmawialiśmy o w pierwszym wykładzie w zeszłym tygodniu. 677 00:31:56,410 --> 00:32:00,820 >> Więc kiedy hit Wprowadź tutaj, to równowartość w tekście tylko środowiska 678 00:32:00,820 --> 00:32:03,272 podwoić klikając ikonę o nazwie komentarzy. 679 00:32:03,272 --> 00:32:05,480 Czego oczekujesz woli się zdarzyć, kiedy nacisnąć klawisz Enter, a następnie? 680 00:32:05,480 --> 00:32:07,120 >> PUBLICZNOŚCI: To będzie drukować "Hello World". 681 00:32:07,120 --> 00:32:10,000 >> David J. MALAN: Mam nadzieję, że to wydrukować "Hello World". 682 00:32:10,000 --> 00:32:11,370 I rzeczywiście tak się stało. 683 00:32:11,370 --> 00:32:13,690 Teraz nie było pewne tajemnicze składnia tutaj. 684 00:32:13,690 --> 00:32:15,950 Miejmy tylko przewinąć do chwilę i zobaczyć, czy 685 00:32:15,950 --> 00:32:19,530 Nie można uruchomić wnioskowanie tylko przez majstrować, próbuje i braku, 686 00:32:19,530 --> 00:32:21,130 co do tego, co się tutaj dzieje. 687 00:32:21,130 --> 00:32:23,609 Co zrobić, jeśli pozbyć się backslash n? 688 00:32:23,609 --> 00:32:25,650 Teraz niektórzy z was, którzy już zaprogramowane wcześniej prawdopodobnie 689 00:32:25,650 --> 00:32:27,054 wiedzieć od razu, co to znaczy. 690 00:32:27,054 --> 00:32:29,220 Ale dla tych z was, którzy nie zaprogramowane wcześniej, 691 00:32:29,220 --> 00:32:34,052 przynajmniej pomyśleć, co się dzieje zmienić, kiedy ponownie uruchomić ten program? 692 00:32:34,052 --> 00:32:37,010 Więc mam zamiar wrócić do mojego małe czarne i białe okna, które 693 00:32:37,010 --> 00:32:39,290 jest okno, w którym Mogę skompilować tego. 694 00:32:39,290 --> 00:32:41,130 Idę do rekompilacji cześć. 695 00:32:41,130 --> 00:32:43,520 Jedziemy zobaczyć sam tajemniczy ciąg poleceń. 696 00:32:43,520 --> 00:32:45,719 I mam zamiar zrobić kropki ukośnik komentarzy. 697 00:32:45,719 --> 00:32:48,260 A teraz ktoś, jeśli możesz, kto nigdy nie zaprogramowane wcześniej, 698 00:32:48,260 --> 00:32:49,770 co może tym razem będzie inaczej? 699 00:32:49,770 --> 00:32:50,020 Tak. 700 00:32:50,020 --> 00:32:51,840 >> PUBLICZNOŚCI: To nie zatrzyma druk "hello world". 701 00:32:51,840 --> 00:32:52,660 >> David J. MALAN: To będzie to-- przykro? 702 00:32:52,660 --> 00:32:54,210 >> PUBLICZNOŚCI: Nie zatrzyma go wydrukować? 703 00:32:54,210 --> 00:32:55,810 >> David J. MALAN: To nie będzie przerwać drukowanie "hello world". 704 00:32:55,810 --> 00:32:56,560 Więc nie jest to zły pomysł. 705 00:32:56,560 --> 00:32:58,633 Inne pomysły? 706 00:32:58,633 --> 00:32:59,132 Tak. 707 00:32:59,132 --> 00:33:00,060 >> PUBLICZNOŚCI: Komunikat o błędzie? 708 00:33:00,060 --> 00:33:01,750 >> David J. MALAN: Błąd wiadomość, OK, może być. 709 00:33:01,750 --> 00:33:02,250 Co jeszcze? 710 00:33:02,250 --> 00:33:05,479 PUBLICZNOŚCI: To może drukować Uchwyt z średnikiem, a? 711 00:33:05,479 --> 00:33:08,270 David J. MALAN: Może drukować Uchwyt z średnikiem oraz. 712 00:33:08,270 --> 00:33:11,950 Więc może, że to jest jakiś lewy ukośnik rodzaj terminous, że to ważne. 713 00:33:11,950 --> 00:33:14,860 Wszelkie inne myśli? 714 00:33:14,860 --> 00:33:16,412 >> Więc wszystkie dobre pomysły. 715 00:33:16,412 --> 00:33:18,370 A w rzeczywistości, to będzie się komunikat o błędzie. 716 00:33:18,370 --> 00:33:20,400 To prawdopodobnie najbardziej prawdopodobne jako odpowiedź na ogół 717 00:33:20,400 --> 00:33:22,420 w ciągu najbliższych kilku tygodni jak uczymy się tutaj kod. 718 00:33:22,420 --> 00:33:27,680 >> Ale teraz pamiętam, że komputery tylko nie to, co im powiedzieć, zrobić. 719 00:33:27,680 --> 00:33:30,400 Podobnie jak śmieszne orzechowe przykład masło i galareta. 720 00:33:30,400 --> 00:33:33,860 Nasze ludzkie ma tylko komputery do tego, co powiedział im zrobić. 721 00:33:33,860 --> 00:33:36,250 Tak więc w tym przypadku, jeśli nie mów komputer 722 00:33:36,250 --> 00:33:41,190 aby przenieść się migający kursor Następna linia, to nie będzie to zrobić. 723 00:33:41,190 --> 00:33:45,390 Więc kiedy uruchomić ten program teraz, zauważą różnicę. 724 00:33:45,390 --> 00:33:46,900 >> Wygląda jak błąd. 725 00:33:46,900 --> 00:33:49,190 To estetyczne błąd, być może. 726 00:33:49,190 --> 00:33:53,310 Ale co to jest inny temat Moc w stosunku do ostatniego oczywiście? 727 00:33:53,310 --> 00:33:53,810 Tak. 728 00:33:53,810 --> 00:33:54,920 >> PUBLICZNOŚCI: To nie zrobić nową linię. 729 00:33:54,920 --> 00:33:56,586 >> David J. MALAN: To nie zrobić nową linię. 730 00:33:56,586 --> 00:33:58,740 Teraz tych z Was, którzy Może mieć wykonane strony internetowe 731 00:33:58,740 --> 00:34:01,910 wcześniej, może znasz Znacznik BR lub tag pkt, 732 00:34:01,910 --> 00:34:03,120 bardzo podobne w duchu. 733 00:34:03,120 --> 00:34:06,680 Przeglądarka zignoruje cię aż do powiedz jej, co robić. 734 00:34:06,680 --> 00:34:10,020 Podobnie jest tylko język jak C zamierza zrobić to, co mu powiesz zrobić. 735 00:34:10,020 --> 00:34:12,730 >> Tak dlatego, że Wszystkie te przykłady 736 00:34:12,730 --> 00:34:15,350 dotąd mają rodzaj przypadkowo miał to odwrotny ukośnik 737 00:34:15,350 --> 00:34:18,560 tam, to środki przez które można wyrazić siebie 738 00:34:18,560 --> 00:34:21,380 jako nowego wiersza, że ​​tak powiem. 739 00:34:21,380 --> 00:34:26,219 I można trochę docenić, być może, że będzie to wyglądać głupio 740 00:34:26,219 --> 00:34:27,070 jeśli nic innego. 741 00:34:27,070 --> 00:34:29,150 Gdybym chciał nową linię, po prostu nacisnąć Enter, a następnie rodzaj 742 00:34:29,150 --> 00:34:32,219 z rzezi kod takiego Naprawdę nie powinno trzeć Ci właściwą drogę. 743 00:34:32,219 --> 00:34:33,830 A nawet jeśli nie obchodzi w tym momencie, 744 00:34:33,830 --> 00:34:35,830 zdasz sobie sprawę, że nie jest szczególnie 745 00:34:35,830 --> 00:34:37,870 przystojny kawałek kodu. 746 00:34:37,870 --> 00:34:39,969 >> I co z tego świata lat temu zdecydowały się 747 00:34:39,969 --> 00:34:43,420 że gdy chcesz umieścić kursor na nowej linii wyraźnie, 748 00:34:43,420 --> 00:34:46,332 trzeba wyraźnie powiedzieć, Nowa linia, backslash n. 749 00:34:46,332 --> 00:34:48,040 I jest jakiś inny symbole tak. 750 00:34:48,040 --> 00:34:50,719 Ale teraz musimy po prostu skupić się na backslash n. 751 00:34:50,719 --> 00:34:53,790 >> Teraz zróbmy program trochę bardziej interesująca. 752 00:34:53,790 --> 00:34:59,200 Mam zamiar iść do przodu i tym razem otworzyć nowy plik. 753 00:34:59,200 --> 00:35:02,520 Mam zamiar zapisać to jako Hello-1.C. 754 00:35:02,520 --> 00:35:05,540 I tylko dla zabawy, będę go umieścić go w moim folderze Dropbox. 755 00:35:05,540 --> 00:35:09,030 >> Jak zobaczysz w CS50 Dokumentacja dla urządzenia, 756 00:35:09,030 --> 00:35:11,210 jeszcze w tym tygodniu do problemu Zestaw 1, będziemy zachęcać 757 00:35:11,210 --> 00:35:13,230 używanie Dropbox lub niektóre równoważne usługi, 758 00:35:13,230 --> 00:35:15,430 bo wtedy wszystko jest kod będzie wspierane automatycznie. 759 00:35:15,430 --> 00:35:17,830 A więc dlatego mam już w tym folderze tutaj. 760 00:35:17,830 --> 00:35:20,230 >> A teraz mam zamiar napisać nieco inny program. 761 00:35:20,230 --> 00:35:24,740 Obejmują, standard I / O.h, int main nieważne. 762 00:35:24,740 --> 00:35:29,660 A następnie tutaj printf, Hello World, który jest dokładnie taka sama jak poprzednio. 763 00:35:29,660 --> 00:35:32,450 >> Ale teraz chcę wydrukować coś to jest trochę inaczej. 764 00:35:32,450 --> 00:35:34,800 Chcę wydrukować, powiedzieć: "Witaj, David." 765 00:35:34,800 --> 00:35:37,590 Wszystko w porządku, więc oczywiście, mam nadzieję, że powinna ona 766 00:35:37,590 --> 00:35:40,360 być tak, że jeśli ponownie skompilować ten program, uruchom go, 767 00:35:40,360 --> 00:35:41,840 to będzie powiedzieć "cześć, David." 768 00:35:41,840 --> 00:35:45,160 >> Ale co, jeśli chcę, aby wprowadzić ten rodzaj zmiennej, 769 00:35:45,160 --> 00:35:49,240 Pojęcie pojemniku, który będzie przechowywać D--v-i-d i kod to nie trudno 770 00:35:49,240 --> 00:35:50,600 w moim programie. 771 00:35:50,600 --> 00:35:53,430 No i co jeśli zacznę robić coś takiego? 772 00:35:53,430 --> 00:35:57,120 >> String s, więc jest zmienna. 773 00:35:57,120 --> 00:36:00,250 Jeśli chcesz ciąg, a.k.a. słowo lub frazę. 774 00:36:00,250 --> 00:36:03,485 Sekwencja znaków jest co my w programowaniu nazywamy ciąg. 775 00:36:03,485 --> 00:36:06,610 Jesteśmy po prostu się do ogólnie zadzwoń to s, bo to ładne proste nazwy. 776 00:36:06,610 --> 00:36:08,010 Ale mogę nazwać to coś. 777 00:36:08,010 --> 00:36:12,920 >> Idę powiedzieć String s równych cytatu: "David," średnik. 778 00:36:12,920 --> 00:36:18,330 A teraz chcę wstawić D--v-i-d do czego jestem drukowanie. 779 00:36:18,330 --> 00:36:23,720 I przed widzieliśmy teaser na Ekran z jakiegoś szczególnego składni 780 00:36:23,720 --> 00:36:26,050 że pozwolił nam Zastępstwo w wartości. 781 00:36:26,050 --> 00:36:29,250 Jaki był specjalny Symbol kilka zjeżdżalnie temu? 782 00:36:29,250 --> 00:36:30,040 >> Więc proc. 783 00:36:30,040 --> 00:36:33,830 W tym czasie był procent d na liczbę dziesiętną. 784 00:36:33,830 --> 00:36:35,850 Że tak naprawdę nie wydają się tu istotne. 785 00:36:35,850 --> 00:36:38,650 Okazuje się, że jest inny symbol procent, 786 00:36:38,650 --> 00:36:42,810 który jest procent s, co oznacza na zastępczy dla łańcucha. 787 00:36:42,810 --> 00:36:49,350 >> Więc teraz, po prostu, jestem zamiar iść się przywitać-1, 788 00:36:49,350 --> 00:36:54,210 bo ten plik nazywa hello-1.c, i naciśnij klawisz Enter. 789 00:36:54,210 --> 00:36:56,230 I nie przejmował się. 790 00:36:56,230 --> 00:36:57,394 Co się dzieje? 791 00:36:57,394 --> 00:37:00,560 Cóż, tutaj, gdzie musimy zacząć Doceniam to, że jesteśmy w tym poleceniu 792 00:37:00,560 --> 00:37:02,810 środowiska linia, to Tylko tekst środowiska. 793 00:37:02,810 --> 00:37:06,114 Nie klikaj na ikony nie jak foldery teraz. 794 00:37:06,114 --> 00:37:07,280 I pomyśl chwilę temu. 795 00:37:07,280 --> 00:37:10,740 W jakim folderze nie powiem Byłem uratowanie mi kod? 796 00:37:10,740 --> 00:37:11,657 Więc folder Dropbox. 797 00:37:11,657 --> 00:37:12,989 Mógł być nazywany niczego. 798 00:37:12,989 --> 00:37:14,530 Ale zdarza się nazywać Dropbox. 799 00:37:14,530 --> 00:37:18,380 Więc jakoś trzeba dwukrotnie kliknąć na ten folder Dropbox, aby uzyskać 800 00:37:18,380 --> 00:37:21,657 do niego i się na mój Kod nazwie hello-1.c. 801 00:37:21,657 --> 00:37:24,490 W rzeczywistości, pozwól mi iść do przodu i zminimalizować okno na chwilę. 802 00:37:24,490 --> 00:37:27,560 Podobnie jak w systemie Windows i Mac OS, istnieją foldery w systemie Linux. 803 00:37:27,560 --> 00:37:29,410 Są to foldery w CS50 Appliance. 804 00:37:29,410 --> 00:37:32,380 To właśnie teraz jesteśmy ograniczając sami do tego środowisku tekstowym. 805 00:37:32,380 --> 00:37:34,700 >> Ale jeśli podwójne kliknięcie na Dropbox, zauważysz 806 00:37:34,700 --> 00:37:37,210 jest plik, który chcę skompilować. 807 00:37:37,210 --> 00:37:41,430 Ale muszę to czarno-biały okno terminalu, że tak powiem. 808 00:37:41,430 --> 00:37:45,750 Jednak trzeba zatem poruszać do tego folderu lub katalogu. 809 00:37:45,750 --> 00:37:48,290 Więc nieco ezoteryczne, ale Przyzwyczaisz się do tego zbyt. 810 00:37:48,290 --> 00:37:50,430 >> W świecie Linuksa, co znowu jest operacyjnego 811 00:37:50,430 --> 00:37:54,860 System kończy nam wnętrze CS50 Urządzenie, jest polecenie o nazwie CD. 812 00:37:54,860 --> 00:37:58,310 Co oznacza, że ​​mogę zrobić płytę, przestrzeń, Dropbox. 813 00:37:58,310 --> 00:37:59,900 CD, zmiana katalogu. 814 00:37:59,900 --> 00:38:00,400 Prawo. 815 00:38:00,400 --> 00:38:02,890 Powrót w dzień, kiedy ludzie byli wynalezienie komputerów i działających 816 00:38:02,890 --> 00:38:05,806 Systemy takie jak ten, chcieli wpisz Najmniej klawiszy możliwe. 817 00:38:05,806 --> 00:38:08,760 Tak więc najprostszy sposób powiedzieć zmiana katalogu był CD. 818 00:38:08,760 --> 00:38:13,910 >> Więc jeśli uderzę CD, miejsca Dropbox, zauważyć, co się zmieniło tutaj. 819 00:38:13,910 --> 00:38:16,480 Wewnątrz nawiasów Urządzenie jest rodzajem 820 00:38:16,480 --> 00:38:19,360 z humoring mnie i przypominając mi, gdzie jestem. 821 00:38:19,360 --> 00:38:21,480 Tak otwarty folder jest Dropbox. 822 00:38:21,480 --> 00:38:24,950 Gdybym teraz wpisz ls za lista, ponownie zwięzłe, 823 00:38:24,950 --> 00:38:27,540 bo ludzie nie chcą wpisz powrotem w dzień l-i-s-t. 824 00:38:27,540 --> 00:38:29,300 Więc zamiast się to ls. 825 00:38:29,300 --> 00:38:30,110 >> Enter. 826 00:38:30,110 --> 00:38:35,740 Zauważ, widzę dwie rzeczy, hello-1.C, a potem to tajemnicze rzeczy, źródło 1m. 827 00:38:35,740 --> 00:38:38,310 To po prostu mój sposób na powiedzenie Kod źródłowy 1 tygodniu poniedziałek. 828 00:38:38,310 --> 00:38:42,020 To ja pobrać z folderu Strona CS50, że dziś zrobiłem wcześniej 829 00:38:42,020 --> 00:38:43,990 i po prostu umieścić go w Urządzenie z góry. 830 00:38:43,990 --> 00:38:47,550 >> Ale teraz jedyną rzeczą, dbają o to, co ten program. 831 00:38:47,550 --> 00:38:50,440 Gdy więc make hello-1, Enter. 832 00:38:50,440 --> 00:38:51,320 Cholera. 833 00:38:51,320 --> 00:38:53,060 Coś poszło nie tak. 834 00:38:53,060 --> 00:38:54,580 Warto więc drażnić to od siebie. 835 00:38:54,580 --> 00:38:58,489 I niestety to jest, gdy rzeczy trochę stresujące na początku, 836 00:38:58,489 --> 00:39:00,280 przynajmniej jeśli masz nie zaprogramowany wcześniej. 837 00:39:00,280 --> 00:39:00,980 >> Mój Boże. 838 00:39:00,980 --> 00:39:04,990 Napisałem program, dwóch linii i Mam cztery linie błędów. 839 00:39:04,990 --> 00:39:07,180 Więc co tu się dzieje. 840 00:39:07,180 --> 00:39:11,370 Przede wszystkim zawsze przewijania i znaleźć pierwszy komunikat o błędzie, 841 00:39:11,370 --> 00:39:15,730 ponieważ często kompilatory tylko się martwić o to, co i ja. 842 00:39:15,730 --> 00:39:17,000 Kompilatory są dość głupie. 843 00:39:17,000 --> 00:39:18,360 Zrobią tylko co powiedz im to zrobić. 844 00:39:18,360 --> 00:39:21,484 A jeśli ich mylić, są one po prostu będzie trochę rzucać swoje ręce 845 00:39:21,484 --> 00:39:25,010 a może rzucić więcej komunikatów o błędach niż są rzeczywiście istotne. 846 00:39:25,010 --> 00:39:26,380 >> Więc spójrzmy na pierwsze. 847 00:39:26,380 --> 00:39:27,540 Bardzo tajemniczy na początku. 848 00:39:27,540 --> 00:39:31,050 Ale informacja, oto nazwa plik, w którym wkręca się widocznie. 849 00:39:31,050 --> 00:39:36,570 Colon 5, okrężnicy 5 oznacza po prostu na linia 5 na piątym znaku. 850 00:39:36,570 --> 00:39:39,760 Więc piąta kolumna znaków, jeśli chcesz, błąd. 851 00:39:39,760 --> 00:39:41,870 Korzystanie z nielegalnej identyfikator łańcucha. 852 00:39:41,870 --> 00:39:43,120 Czy chodziło Ci o standardowe n? 853 00:39:43,120 --> 00:39:44,850 >> Nie, mam na myśli ciąg. 854 00:39:44,850 --> 00:39:47,640 I to jest to rodzaj kopiowanie i wklejanie 855 00:39:47,640 --> 00:39:50,700 co mam wpisane naprawdę wyciągnąć mój uwagę na gdzie wkręca się. 856 00:39:50,700 --> 00:39:54,260 Więc z jakiegoś powodu C, lub co najmniej kompilator 857 00:39:54,260 --> 00:39:56,470 nie rozumiem ciąg słów. 858 00:39:56,470 --> 00:39:57,890 A to dlatego, że zrobiliśmy to. 859 00:39:57,890 --> 00:40:01,440 Tak więc nie istnieje ciąg w C. Co CS50 robi, 860 00:40:01,440 --> 00:40:03,380 przez pierwszych kilka tygodni Tylko w klasie 861 00:40:03,380 --> 00:40:05,700 jest zapewniamy szkolenie w zakresie felgi, że tak powiem. 862 00:40:05,700 --> 00:40:11,160 I kładziemy te kółka wewnątrz specjalnym pliku o nazwie CS50.h. 863 00:40:11,160 --> 00:40:14,970 >> Więc jest to drugi z dwóch plików Nazwy, które najwyraźniej kończą się kropką godz. 864 00:40:14,970 --> 00:40:16,300 Miejmy tyłu. 865 00:40:16,300 --> 00:40:19,360 Printf jest oświadczenie lub funkcja że widocznie coś drukuje 866 00:40:19,360 --> 00:40:20,580 na ekranie. 867 00:40:20,580 --> 00:40:23,470 Ale nie mnie wdrożenia printf, prawda. 868 00:40:23,470 --> 00:40:26,360 Lat temu ktoś realizowane printf. 869 00:40:26,360 --> 00:40:30,420 W jaki plik chcesz postawić on lub położyła realizacji 870 00:40:30,420 --> 00:40:34,270 do printf, kodzie printf? 871 00:40:34,270 --> 00:40:36,860 >> W pliku o nazwie standard I / O.h. 872 00:40:36,860 --> 00:40:39,930 W rzeczywistości, to prawdopodobnie w dwa pliki, standard I / O.h, 873 00:40:39,930 --> 00:40:42,650 co oznacza cel plik, a standard I / O.c, 874 00:40:42,650 --> 00:40:44,060 co oznacza kod źródłowy C. 875 00:40:44,060 --> 00:40:48,220 Więc on kilka lat temu koleś Kod, który pisali w tym pliku 876 00:40:48,220 --> 00:40:51,240 tak, że ludzie tacy jak my później lat może to go, 877 00:40:51,240 --> 00:40:53,040 że tak powiem, w naszych programach. 878 00:40:53,040 --> 00:40:56,320 >> I rzeczywiście, to właśnie znak funta następnie słowo obejmują nie. 879 00:40:56,320 --> 00:41:00,250 To wygląda na lokalnym dysku twardym, znajduje się plik o nazwie standard I / O.h, 880 00:41:00,250 --> 00:41:03,840 a następnie skutecznie kopiuje i wklei go wewnątrz mojego pliku. 881 00:41:03,840 --> 00:41:07,210 Więc teraz mój program wie jak wydrukować na ekranie. 882 00:41:07,210 --> 00:41:11,120 >> Więc w tej logice, gdzie jest określony ciąg znaków? 883 00:41:11,120 --> 00:41:12,260 >> PUBLICZNOŚCI: CS50.h. 884 00:41:12,260 --> 00:41:13,290 >> David J. MALAN: CS50.h. 885 00:41:13,290 --> 00:41:15,540 I rzeczywiście, to co my, Pracownicy rdzeń, zrobili. 886 00:41:15,540 --> 00:41:19,590 Mamy wynalazł kilka typów danych, że tak powiem, jak struna, 887 00:41:19,590 --> 00:41:22,370 poza te, które Ci dostać za darmo, podobnie jak int. 888 00:41:22,370 --> 00:41:26,010 I zobaczymy jak char innych na charakter i niewiele więcej. 889 00:41:26,010 --> 00:41:30,670 Wewnątrz CS50.h najwyraźniej jest przynajmniej niektóre wzmianki o ciąg. 890 00:41:30,670 --> 00:41:34,980 >> Więc teraz pozwól mi iść do przodu i uruchom make hello-1. 891 00:41:34,980 --> 00:41:37,100 Będę powiększyć ponownie i kciuki. 892 00:41:37,100 --> 00:41:41,370 Teraz w dokonaniu jednego zmienić Poprawiłem większość rzeczy. 893 00:41:41,370 --> 00:41:42,100 Ale cholera. 894 00:41:42,100 --> 00:41:44,290 Więcej procenty niż argumenty danych. 895 00:41:44,290 --> 00:41:45,980 Co zrobiłem nie tak tym razem? 896 00:41:45,980 --> 00:41:47,420 >> Więc to jest wciąż dość tajemnicze. 897 00:41:47,420 --> 00:41:51,560 Ale ten błąd jest na linia 7 i charakter 21. 898 00:41:51,560 --> 00:41:53,880 Więc chodźmy spojrzeć tutaj. 899 00:41:53,880 --> 00:41:55,350 To trochę subtelny. 900 00:41:55,350 --> 00:41:59,167 Ale jeśli myślisz o tym, co podstawowe idee są tutaj, 901 00:41:59,167 --> 00:42:00,500 być może możemy drażnić to od siebie. 902 00:42:00,500 --> 00:42:02,300 >> Tak więc printf jest nazwa funkcji. 903 00:42:02,300 --> 00:42:04,960 Nawiasy, jak dotąd, jest podobnie jak to, co mamy na około 904 00:42:04,960 --> 00:42:07,005 rzeczy przekazujemy jak wejść do funkcji. 905 00:42:07,005 --> 00:42:08,921 Wszystko w porządku, po prostu arbitralna konwencja ludzki. 906 00:42:08,921 --> 00:42:09,919 Użyj nawiasów. 907 00:42:09,919 --> 00:42:12,460 Wewnątrz tych nawiasów byliśmy oddanie cudzysłowy, 908 00:42:12,460 --> 00:42:14,810 a następnie ciąg jak "Hello World". 909 00:42:14,810 --> 00:42:18,160 >> Ale w tym wcześniejszym przykład bardzo krótko nie przyjrzymy się podstaw. 910 00:42:18,160 --> 00:42:22,590 I mieliśmy procent d, co jeszcze był wewnątrz tych nawiasów 911 00:42:22,590 --> 00:42:23,730 że nazywa się werbalnie? 912 00:42:23,730 --> 00:42:24,230 Tak. 913 00:42:24,230 --> 00:42:28,166 >> PUBLICZNOŚCI: Więc to jest to, co bierzesz [Niesłyszalne] od wewnątrz [niesłyszalne] 914 00:42:28,166 --> 00:42:30,200 co to [niesłyszalne]? 915 00:42:30,200 --> 00:42:31,200 David J. MALAN: Dokładnie. 916 00:42:31,200 --> 00:42:32,700 Więc mieliśmy procent d. 917 00:42:32,700 --> 00:42:36,620 Ale wtedy mieliśmy blisko cytat, przecinek, licznik. 918 00:42:36,620 --> 00:42:37,120 Prawo. 919 00:42:37,120 --> 00:42:40,680 Możemy określić, co chcemy zrobić jako zastępczy. 920 00:42:40,680 --> 00:42:44,621 Więc, co mam zamiar zrobić, o to przecinek, co chcesz mi postawić? 921 00:42:44,621 --> 00:42:45,120 PUBLICZNOŚCI: S. 922 00:42:45,120 --> 00:42:46,828 David J. MALAN: S, , ponieważ w tym przypadku s 923 00:42:46,828 --> 00:42:48,700 jest nazwą pojemnika. 924 00:42:48,700 --> 00:42:50,180 To jest nazwa tej szklanej misce. 925 00:42:50,180 --> 00:42:53,610 , Podczas gdy wcześniej było to tym, że licznik Prosty przykład Scratch przyjrzeliśmy. 926 00:42:53,610 --> 00:42:56,630 Więc teraz po dokonaniu dwóch zmiany, pozwól mi przybliżyć 927 00:42:56,630 --> 00:42:59,800 i spróbuj jeszcze raz skompilować program. 928 00:42:59,800 --> 00:43:01,596 >> Teraz widzę, że tajemnicze linie. 929 00:43:01,596 --> 00:43:03,470 Ale to faktycznie nazwę kompilatora. 930 00:43:03,470 --> 00:43:04,886 Clang to nazwa kompilatora. 931 00:43:04,886 --> 00:43:07,100 Upewnij się tylko uratowanie mnie ból głowy z historii 932 00:43:07,100 --> 00:43:09,830 wpisując tę ​​komendę z długim szalony. 933 00:43:09,830 --> 00:43:14,900 Więc teraz, jeśli mam kropka slash hello-1, Powinny widzę "cześć, David." 934 00:43:14,900 --> 00:43:16,450 >> Dość rozczarowująca, prawda? 935 00:43:16,450 --> 00:43:18,158 Mogliśmy zrobić to po prostu dużo więcej 936 00:43:18,158 --> 00:43:20,940 bez mówienia o zmiennych i CS50.h i to wszystko. 937 00:43:20,940 --> 00:43:23,080 Więc zróbmy to trochę bardziej interesująca. 938 00:43:23,080 --> 00:43:31,010 >> Poza CS50.h, posiadania rzeczy jak ciąg 939 00:43:31,010 --> 00:43:34,550 oświadczył, biblioteka CS50 posiada również kilka funkcji. 940 00:43:34,550 --> 00:43:38,520 Tak więc podobnie jak rok temu, ktoś napisał printf i umieścić go w standardzie I / O.h 941 00:43:38,520 --> 00:43:39,530 i kilka innych plików. 942 00:43:39,530 --> 00:43:44,010 >> My, pracownicy CS50, napisał funkcję nazywa getchar, GetDouble odwołują, GetFloat, 943 00:43:44,010 --> 00:43:47,610 GetInt, GetLongLong, GetString, i kładziemy te wewnątrz pliku 944 00:43:47,610 --> 00:43:49,890 nazywa CS50.h i CS50.c. 945 00:43:49,890 --> 00:43:51,880 A my je wewnątrz z CS50 Appliance. 946 00:43:51,880 --> 00:43:53,880 A ludzie mogą również pobrać je w Internecie, jeśli 947 00:43:53,880 --> 00:43:55,880 chcesz umieścić je na własne komputery, jak również. 948 00:43:55,880 --> 00:44:00,880 To znaczy, że udało nam się stworzyć Funkcje, które się danych od użytkownika. 949 00:44:00,880 --> 00:44:02,930 Nie wiem, co to wszystko z tych danych są typy. 950 00:44:02,930 --> 00:44:06,490 GetInt niby proste, jak uzyskać całkowitą jakoś od użytkownika. 951 00:44:06,490 --> 00:44:09,980 I GetString prawdopodobnie Uzyskaj słowo lub zdanie od użytkownika. 952 00:44:09,980 --> 00:44:11,770 >> Warto więc skupić się na tym. 953 00:44:11,770 --> 00:44:14,710 I mam zamiar wrócić do Urządzenie i mam zamiar iść do przodu 954 00:44:14,710 --> 00:44:20,790 i zapisz plik jako, nazwijmy to cześć-2.c jak mojej drugiej wersji. 955 00:44:20,790 --> 00:44:23,030 I zróbmy parę zmian. 956 00:44:23,030 --> 00:44:25,800 >> Tym razem, zamiast twarde kodowania Dawid, który 957 00:44:25,800 --> 00:44:29,120 sprawia, że ​​niezwykle spójne ale rozczarowująca programu, 958 00:44:29,120 --> 00:44:32,640 Co zrobić, jeśli zamiast robić getString? 959 00:44:32,640 --> 00:44:35,660 Zauważcie getString ma otwarty nawias, 960 00:44:35,660 --> 00:44:38,500 zamknięty nawias, bo nie wymaga żadnego wkładu. 961 00:44:38,500 --> 00:44:40,850 To po prostu się go dostać ciąg od użytkownika. 962 00:44:40,850 --> 00:44:42,460 >> A teraz słowo o innej składni. 963 00:44:42,460 --> 00:44:45,439 Średniki właśnie końca linii kodu. 964 00:44:45,439 --> 00:44:46,730 Nie trzeba ich wszędzie. 965 00:44:46,730 --> 00:44:48,896 Ale to oznacza, że ​​jestem po prostu zrobić z tej linii kodu. 966 00:44:48,896 --> 00:44:51,080 Pozwól mi przejść do innego Oświadczenie lub funkcji. 967 00:44:51,080 --> 00:44:53,010 Ciąg deklaruje zmienną. 968 00:44:53,010 --> 00:44:55,920 Ciąg jest jak powiedzenie daj mi miskę, proszę. 969 00:44:55,920 --> 00:44:57,940 I pozwól mi położyć ciąg w nim. 970 00:44:57,940 --> 00:44:59,430 >> A teraz znak równości. 971 00:44:59,430 --> 00:45:03,510 Co to jest znak równości zasadniczo równoważne? 972 00:45:03,510 --> 00:45:04,500 >> PUBLICZNOŚCI: Przypisywanie. 973 00:45:04,500 --> 00:45:06,190 >> David J. MALAN: Tak, przypisanie wartości. 974 00:45:06,190 --> 00:45:09,872 Więc jeśli, na przykład, połączenie funkcja ta GetString, 975 00:45:09,872 --> 00:45:12,830 i zobaczymy za chwilę, że za będzie wymagać od użytkownika ciąg znaków. 976 00:45:12,830 --> 00:45:17,810 To jest jak pozwalając mi to pisać D-v-l-d na kawałku papieru. 977 00:45:17,810 --> 00:45:21,060 I kiedy mówię ciąg s wynosi getString, 978 00:45:21,060 --> 00:45:24,140 równa naprawdę nie znaczy równa w programowaniu C. 979 00:45:24,140 --> 00:45:27,880 Oznacza to przypisanie z prawej strony do lewej strony. 980 00:45:27,880 --> 00:45:29,510 >> Więc stałam się ciąg. 981 00:45:29,510 --> 00:45:32,785 I znak równości oznacza umieścić go Pojemnik do przechowywania nazywane s. 982 00:45:32,785 --> 00:45:36,730 A następnie przekazać tę opcję, aby printf do rzeczywistości, co robi. 983 00:45:36,730 --> 00:45:39,790 >> Tak więc efekt końcowy jest następnie idzie wyglądać trochę inaczej. 984 00:45:39,790 --> 00:45:40,840 Niech robią komentarzy-2. 985 00:45:40,840 --> 00:45:43,940 986 00:45:43,940 --> 00:45:45,260 Albo może pracować. 987 00:45:45,260 --> 00:45:46,450 Jesteś po wzdłuż. 988 00:45:46,450 --> 00:45:47,940 Dodać do komentarzy-2 pracował. 989 00:45:47,940 --> 00:45:52,640 Dot slash hello-2, Enter. 990 00:45:52,640 --> 00:45:54,620 >> I wydają się mieć nieskończoną pętli czy coś. 991 00:45:54,620 --> 00:45:55,453 Nic się nie dzieje. 992 00:45:55,453 --> 00:45:56,134 Dlaczego? 993 00:45:56,134 --> 00:45:57,805 >> PUBLICZNOŚCI: To co w nieskończoną pętlę. 994 00:45:57,805 --> 00:45:59,430 David J. MALAN: To jest nieskończona pętla. 995 00:45:59,430 --> 00:46:02,710 To trochę dla mnie czeka faktycznie zapewnić mu jakiegoś wejścia. 996 00:46:02,710 --> 00:46:05,800 Więc pozwól mi iść dalej i wpisz Dawida, i naciśnij klawisz Enter. 997 00:46:05,800 --> 00:46:07,230 A teraz mówi "cześć, David." 998 00:46:07,230 --> 00:46:09,040 Jeśli uruchomić go ponownie. 999 00:46:09,040 --> 00:46:11,530 Miejmy wpisać Roba: "Witaj, Rob." 1000 00:46:11,530 --> 00:46:13,900 >> Teraz to jest najgorsze Interfejs użytkownika w historii. 1001 00:46:13,900 --> 00:46:16,110 Najwyraźniej użytkownika wiedzieć, co robić. 1002 00:46:16,110 --> 00:46:17,120 Ale nie ważne. 1003 00:46:17,120 --> 00:46:19,570 Stosując te same budynku bloki jak w Scratch, 1004 00:46:19,570 --> 00:46:24,980 możemy rozwiązać ten problem i powiedzieć coś w swoim imieniu proszę, jelita grubego, 1005 00:46:24,980 --> 00:46:27,820 przestrzeń, zamknięta cytat, blisko nawias, średnik. 1006 00:46:27,820 --> 00:46:30,680 Ponownie więc sporo głupota ze składnią. 1007 00:46:30,680 --> 00:46:34,040 >> Ale zauważ Właśnie dodałem kawałek układanki powyżej tego jednego 1008 00:46:34,040 --> 00:46:35,280 i powyżej tego. 1009 00:46:35,280 --> 00:46:38,870 Więc teraz, jeśli ponownie uruchomić to, hello-2, Enter. 1010 00:46:38,870 --> 00:46:41,180 Chwileczkę. 1011 00:46:41,180 --> 00:46:41,830 Co jest nie tak? 1012 00:46:41,830 --> 00:46:43,570 To nie zachowuje się inaczej. 1013 00:46:43,570 --> 00:46:44,200 Tak. 1014 00:46:44,200 --> 00:46:46,010 >> PUBLICZNOŚCI: Nie uruchomić się ponownie. 1015 00:46:46,010 --> 00:46:47,968 >> David J. MALAN: Nie uruchomić się ponownie, w porządku. 1016 00:46:47,968 --> 00:46:49,430 Więc zmieniłem mój kod źródłowy. 1017 00:46:49,430 --> 00:46:50,638 Ale znowu, nie ma, że ​​przepływ. 1018 00:46:50,638 --> 00:46:54,530 Kod źródłowy przez kompilator daje Ci nowy kod obiektu, czy 0s i 1s. 1019 00:46:54,530 --> 00:47:00,209 Więc muszę faktycznie powtórka marka hello-2 Enter. 1020 00:47:00,209 --> 00:47:01,750 OK, wydaje się, że coś się stało. 1021 00:47:01,750 --> 00:47:04,220 Dot slash hello-2. 1022 00:47:04,220 --> 00:47:05,390 Twoje imię i nazwisko proszę. 1023 00:47:05,390 --> 00:47:09,990 I być teraz jasne, dlaczego jest kursora w tej samej linii? 1024 00:47:09,990 --> 00:47:10,490 Dokładnie. 1025 00:47:10,490 --> 00:47:13,020 Nie umieścić odwrotny ukośnik n tu w moim kodu. 1026 00:47:13,020 --> 00:47:16,110 Więc teraz mogę napisać coś Daven, Enter. 1027 00:47:16,110 --> 00:47:18,710 I można go uruchomić ponownie i wpisz coś jak Gabe, Enter, 1028 00:47:18,710 --> 00:47:22,250 i mamy inny program znowu i znowu i znowu. 1029 00:47:22,250 --> 00:47:28,940 >> Teraz ostatecznie będziemy potrzebować używać kilka różnych możliwości. 1030 00:47:28,940 --> 00:47:32,860 Musimy wprowadzić ostatecznie niektóre warunki, aby robić rzeczy, warunkowo. 1031 00:47:32,860 --> 00:47:35,550 Może pętle więc możemy zrobić rzeczy, znowu i znowu. 1032 00:47:35,550 --> 00:47:38,220 >> Może byłoby miło, jeśli my może realizować swoje własne funkcje, 1033 00:47:38,220 --> 00:47:41,355 jak możemy realizować nasze własne printf lub nasza własna wersja getString 1034 00:47:41,355 --> 00:47:45,870 i GetFlow, ponieważ ostatecznie nawet za pomocą tego wiersza polecenia środowiska 1035 00:47:45,870 --> 00:47:49,780 możemy zrobić, nawet najbardziej wizualnie interesujące rzeczy. 1036 00:47:49,780 --> 00:47:51,950 >> Rzeczywiście w zawarciu pozwól mi to zrobić. 1037 00:47:51,950 --> 00:47:54,020 Mam zamiar iść do przodu i zamknąć te okna 1038 00:47:54,020 --> 00:47:57,400 i otworzyć tę ikonę tutaj, który znajduje się większa 1039 00:47:57,400 --> 00:48:00,020 wersja, że ​​osadzony okno terminalu. 1040 00:48:00,020 --> 00:48:02,329 Więc nie tylko Gedit miejsce dla mojego kodu, 1041 00:48:02,329 --> 00:48:05,620 ale również zbudowany w oknie terminala, czarne i białe okna, w którym można uruchomić 1042 00:48:05,620 --> 00:48:06,230 Polecenia. 1043 00:48:06,230 --> 00:48:08,600 >> Ja po prostu się otworzyć większa wersja tego. 1044 00:48:08,600 --> 00:48:11,170 A teraz mam zamiar iść do folder, który już mam 1045 00:48:11,170 --> 00:48:13,150 umieścić z góry na stronie internetowej oczywiście za. 1046 00:48:13,150 --> 00:48:16,720 I mam zamiar iść do przodu i otwórz plik o nazwie thadgavin.c, 1047 00:48:16,720 --> 00:48:18,710 , który został napisany przez kogoś innego. 1048 00:48:18,710 --> 00:48:21,220 >> A jeśli spojrzymy na to, nie jest to rodzaj kodu 1049 00:48:21,220 --> 00:48:24,370 będziemy pisać od Celem tego kodu 1050 00:48:24,370 --> 00:48:28,450 było napisać najładniejsza patrząc kod, który on lub ona mogli,, 1051 00:48:28,450 --> 00:48:31,290 niezależnie od tego, czy inny człowiek mógł kiedykolwiek 1052 00:48:31,290 --> 00:48:33,660 zrozumieć ten kod. 1053 00:48:33,660 --> 00:48:37,050 >> Rzeczywiście, z roku na rok jest co zwany zaciemniony C konkurs, który 1054 00:48:37,050 --> 00:48:39,570 jest dla prawdziwych maniaków, którzy piszą Kod, że nikt inny nie może czytać, 1055 00:48:39,570 --> 00:48:42,050 ale, że coś robi albo bardzo proste i naprawdę niesamowite. 1056 00:48:42,050 --> 00:48:43,890 I myśleliśmy, że zawrzeć z tym wyglądem 1057 00:48:43,890 --> 00:48:48,300 na coś, co jest zdumiewające Może widzieliście kiedyś. 1058 00:48:48,300 --> 00:48:52,650 Ale my na tym kończy uwaga, kropka ukośnik, thadgavin. 1059 00:48:52,650 --> 00:48:53,860 To wtedy to, co czeka. 1060 00:48:53,860 --> 00:48:57,140 1061 00:48:57,140 --> 00:48:58,500 >> To jest to dla CS50. 1062 00:48:58,500 --> 00:48:59,935 Do zobaczenia w środę. 1063 00:48:59,935 --> 00:49:04,284 1064 00:49:04,284 --> 00:49:10,016 >> [MUZYKA GRA] 1065 00:49:10,016 --> 00:53:31,883