[Odtwarzanie muzyki] DAVID MALAN: W porządku. Witamy z powrotem. Jest CS50, a to Tydzień One, ciąg dalszy. Tak więc jeden z powodów, który został nam przechodzących wokół technologii, takich jak Google Szkło jest, że pochodzą one z coś znane jako API, Application Programming Interface. A co to oznacza to, że z odpowiednie pliki i z prawej dokumentacja, rzeczywiście można napisać oprogramowania nawet dla urządzeń takich jak te. A więc to, co mamy na myśli stronę koniec semestrów jest, jeśli projekt udziałem, powiedzmy, Szkło Google może odwołanie, zobaczymy co da się zrobić w Warunki podpinania się z niektórych hardware wypożyczenia oraz publicznie dostępne API, dzięki czemu można faktycznie rozpocząć tworzenie oprogramowania , który działa na tej samej szklanki Google. Innym urządzeniem, które graliśmy z późno, że myśleliśmy, że może być zabawa na koniec semestru jest ta mała rzecz tutaj. To się nazywa Motion Leap, a co masz by zobaczyć to technicznie reklama dla urządzenia, ale nie mówi się, co to zwłaszcza Urządzenie jest w stanie. I to też pochodzi z API poprzez co można napisać oprogramowanie do kontrolowania własnego komputera w sposób zupełnie jak ten jednominutowy film. [PLAYBACK VIDEO] [END PLAYBACK VIDEO] Więc teraz, to urządzenie stanie się realizowane jako mały USB łącznik, który można podłączyć do swojego komputer, ale nie zdziwiłbym się, jeśli niedługo mamy te rodzaje technologie w kolejnej partii komputerów i Mac, dzięki czemu można, rzeczywiście, z nim interakcję sposób tak. W rzeczywistości to, co myślałem, że ja, też jest I zatrzymał się mały pokaz Program, który pochodzi z tego oprogramowania. Więc wrzuciłem mały czujnik przed moim laptopie. I jak widać, to już zdaje sobie sprawę, że moja ręka jest tam kontrolowania go. A wszystko to aplikacja nie jest maśle małe rzeczy, takie jak ten. Ale widać, że rzeczywiście Mam pięć palców tam. Jeśli uda nam się to zrobić, wszystkie 10, można sobie wyobrazić, schludny fortepianie Zastosowanie lub tym podobne. Więc jeśli chcesz, aby wymyślić po klasie dzisiaj i to jak zabawa z dobrze, zapraszamy do. Tak bardziej na tym kierunku semestru koniec. Więc kilka administracyjnych Anonse. Jeden, czy punkt przez ten piątek w południe w cs60.net/section. To jest URL na przebieg tych strona główna, jak również. W międzyczasie jednak, supersections zadebiutuje w tę niedzielę. Supersections to jednorazowa sprawa, ponieważ zajmuje nam trochę czasu na pracę kto jest w jakiej sekcji i gdzie. Tak więc w tym roku w niedzielę nie będę jednym sekcja dla tych mniej wygodne, jedna część dla tych, bardziej komfortowe. A ci z was gdzieś w między są mile widziane, aby przejść do jednej lub obu lub nie. Obie te będą filmowane. Będą w większym audytorium niż sekcja normalnie byłoby w. Ale celem jest, aby wyposażyć niektóre komfort z problemu ustawić jeden, z C, z CS50 urządzenia, to weekend, jeszcze przed dowiedzieć się formalnego przypisania. Więc można spotkać się z TF i Twój mniejszy grupa sectionmates w około tygodniowy czas. Godziny pracy, w międzyczasie, zostały dzieje. Do skorzystania z nich dziś wieczorem lub jutro wieczorem, jeśli chcesz. Set Problem 0 przypada na piątek. Jest to dzień później niż regularnie odbyły się w czwartek. Ale z zestawem problemów 1, zobaczysz że zawiera niektóre rozgrzewki ćwiczenia, z którymi sam może rozszerzyć swoją Termin od czwartku do piątku. Problem 1 set Tymczasem zadebiutuje na stronie internetowej to oczywiście nadchodzących Piątek, jeśli chcesz, aby zwinąć się z to tak jak ja kiedyś późnym Piątkowy wieczór w swoim pokoju. Więc cs50.net/appliance jest miejsce, gdzie można uzyskać CS50 urządzenia że zaczęliśmy używać w poniedziałek. Użyjemy go nieco więcej dzisiaj. Ale zapewniamy, że problem ustawić 1 Specyfikacja poprowadzi cię przez dokładnie kroki, jakie należy aby ta i działa. Więc nie martw się o to robić przed Pset 1 jeśli bym raczej nie. Dobrze. Tak wyglądał w poniedziałek w kodzie źródłowym, ale w kontekście nowego język programowania, a mianowicie C i C, w przeciwieństwie do zera, nie jest graficznym. To nie puzzle. To bardziej angielsko-jak składnia. I jest kilka etapów w rzeczywistości pisanie i uruchamianie Program w C, bo oprócz źródła kod tak, trzeba coś zwany kompilator. A w laika, co ma kompilator dla nas zrobić? Tak. STUDENT: To konwertuje kod że piszesz do 0s i 1s. DAVID MALAN: Dobry. Więc to konwertuje kod piszemy do 0s i 1s. Przetwarza on tak zwany kod źródłowy kod obiektu, z czego ten ostatni wygląda trochę coś takiego. I to jest procesor, mózgi wewnątrz komputer, który z powodu ludzie, którzy stworzyli te komputery, wiedzieć, co te sekwencje od średniej 0s i 1s. Być może oznacza to, druk. Być może oznacza to, że dodatek. Być może oznacza to, odejmowanie. Być może oznacza to, wyświetlanie grafiki. Istnieją predefiniowane wzorce bitów że świat postanowił myśli pewne rzeczy. Ale w większości w tym kursie, będziemy pracować na wyższym poziomie, a my przyjąć, że istnieją rzeczy, jak kompilatory, które mogą funkcjonowanie naszych kodu źródłowego w sposób zamierzamy. Więc programie pisaliśmy w zeszłym tygodniu pierwszy a następnie zaczął do portu, tak aby mówić, C to przeszłość Poniedziałek, to było. Gdy zielona flaga kliknięciu przywitać. To, oczywiście, napisany w Scratch. I stwierdził, że ekwiwalent Program w C wyglądał trochę coś takiego. Więc to, co myślałem, że my na początku jest, niech odciąć to, co wygląda na pierwszy rzut oka, co prawda, w dość ezoteryczne składnia, ale można zacząć dostrzegać stanie dość szybko. Co my też dzisiaj zrobić, to zapewnić Ci z modelu niektóre psychiczne kanonicznych, niektóre standardowe konstrukcje w programowaniu. A potem będziemy rzeczywiście dostać w swoje ręce dirty na przykładach, jak również. Tak więc dla tych z Was, bardziej komfortowe, sobie sprawę, że w tym tygodniu, a potem następne tydzień może równie dobrze być nieco recenzji. Ale szczególnie gdy hacker wydanie problemu set 1 wychodzi na Strona Kursu w piątek, ja sądzę, przekonasz się, że nawet, jak wypełnić niektóre półprodukty w kolejnym tygodniu lub dwóch, zaczniesz się coraz bardziej zakwestionowane i spotkać nowe i nowsze rzeczy. Warto więc drażnić program apart kilka linii na raz. Na samej górze, co mamy technicznie nazywa Dyrektywa preprocesora. To jest tylko linii kodu, który mówi obejmować zawartość pliku zwany standard I / N, standardowe wejście - czy, przepraszam, standard I / O, standard wejścia / wyjścia,. h, wewnątrz mojego własnego programu. Więc innymi słowy, jeśli napisał to Program z prostym edytorem tekstu takim jak gedit, prostszy odpowiednik coś jak Microsoft Word, które instrukcja, # include stdio.h, jest po prostu zamierza poinformować kompilator, chwyć Zawartość tego innego pliku, stdio.h, i wklej je tutaj. Teraz, dlaczego mnie to obchodzi? Czego możemy twierdzić jest wewnątrz archiwum nazwie stdio.h, która jest przechowywana gdzieś na dysku twardym lub w tym przypadek, gdzieś w CS50 urządzenia? Ktoś je tam dla mnie. Ale to, co w nim jest? Tak, tak, to jest deklaracja Funkcja o nazwie printf. Więc printf przypomina funkcja wyświetla słowa i znaki i Liczby na ekranie w mojej licytacji. Ale ja nie napisałem. CS50 nie pisać. Lat temu ktoś napisał to, a oni zasadniczo dał nam przepis na niego w pliku o nazwie stdio.h. Tak, że pierwsza linia po prostu daje mi dostęp do funkcji, które ktoś inny napisał rok temu m.in. które są printf. Teraz, następna linia będę machać Moje strony Ręka na, przynajmniej dopóki w przyszłym tygodniu. Ale teraz wiem, że int main (void) jest zasadniczo równoważne tego żółty kawałek układanki, gdy flag green kliknięciu. Świat, rok temu postanowiła, że ​​jeśli piszesz program w język o nazwie C, zaczniesz Twój program z linii , który wygląda tak. W prawie tydzień czasu, to zrobi Poczucie co int jest co nieważne jest. Ale teraz, po prostu myśleć o tym jak ten żółty kawałek układanki. Teraz obok mamy nawias klamrowy następnie innym bliskim klamrą kręcone, że tak powiem. I zobaczymy je w całej programów w języku C, jak również JavaScript i PHP. I te właśnie hermetyzacji związanych z linii kodu. Kręcone w zasadzie open klamra mówi, tutaj jest jakiś kod. I zamknięte klamra kręcone, co jest pochylone w innym kierunku, tak Oznacza to, że jest to dla odpowiedni kod. Więc soczyste linia w tym pierwszym Program jest ostatnim, printf, cytat-cytatu, hello world. I nazywa rzeczy między cytaty, co ostatnim razem? Więc to jest ciąg. A łańcuch jest tylko technika określenie sekwencji znaki, słowa, frazy. Nawet jedna litera może być podwójnie cytowane. Ale to sekwencja zera lub więcej znaków. Backslash-n, choć wygląda trochę dziwne. Ale to po prostu coś znaczyło Prosty do komputera. Co backslash-n? Nowa linia. Więc to tylko sekwencja specjalna znaki, że świat postanowił środki wprowadzone na końcu linii tam, ponieważ kompilator będzie rzeczywiście dostać zmieszany, zazwyczaj, jeśli, bardzo zrozumiałe, ale nieprawidłowo, po prostu rozpocząć naciskając enter, aby umieścić Nowe linie w kodzie. Trzeba być trochę więcej jednoznaczne z backslash-n. I zobaczymy, istnieje kilka innych takich wzorce dla znaków specjalnych. Na przykład, jeśli chcesz, aby twoje umysłowi wędrować do wypadku na rogu, Załóżmy, że chcę, aby wydrukować cudzysłów na ekranie niezależnie od powodu, że wydaje się być nieco problematyczne, prawda? Bo jeśli mogę umieścić cudzysłów w middle of "Hello, World", za co Powodem, dlaczego to się wydaje potencjalnie problematyczne? Rozbija ciąg. Kompilator to tylko program. Program taki jak kompilator jest po prostu będzie czytać górę Kod do dołu, od lewej do prawej. A jeśli widzi trzy cudzysłowy zamiast dwóch, to nie będzie wiedzieć jeśli masz na myśli, że coś się w lewo powinien być ciąg znaków lub rzecz prawo, lub całość. To niejednoznaczne, a więc to, co typowe kompilator to zrobić, to po prostu cudo na zewnątrz, i da ci komunikat o błędzie, a zrobić sobie z tym problemem. Tak więc biorąc pod uwagę, że backslash-n oznacza nowy linii, co by twój instynkt teraz rozpocznie się, jeśli chcesz to coś nietypowe jak double Cytując wnętrze to inaczej cytowany ciąg? Backslash-cudzysłów. A więc zobaczymy tego rodzaj wzorca też. Jeśli chcesz zrobić coś małego dziwne, przekonasz się, że Rozwiązania często zgodne z wzorcem, i odwrotny ukośnik oznacza sekwencję wyjścia. A to po prostu oznacza coś specjalnego że musimy do reprezentowania w inny sposób. Jak dla jak można reprezentować backslash, dobrze, my będziemy wrócić do tego. Ale odpowiedź też jest w rzeczywistości bit oczywiste. Więc teraz przedstawić inny konstrukcje programistyczne że widział w Scratch. Pewnie za pewnik już jeśli już zanurkował Problem ustawić 0. Ale przejdźmy teraz wprowadzić składni w C do nich w inny sposób dość intuicyjny idee, przynajmniej niektóre z nich. Więc to pojęcie warunku lub gałęzi, podczas gdy wcześniej my reprezentował go z kodem, który wyglądał jak to w lewej Scratch - jeśli x jest mniejsze od y, to tak powiedzieć - zamiast teraz w C - pozwól mi doskonalić w sprawie najprostszym przypadku - my po prostu powiedzieć, czy otworzyć nawias, coś jest prawdą - Wyrażenie logiczne jest zamiar iść gdzie powiedziałem warunek - zamknij nawias, to nie to, co jest wewnątrz tych klamrach. Więc i tu nawiasy są trochę jak Scratch-tych U-kształtne kawałki układanki. Czy to, co jest w środku tych klamrach. W tym przypadku, slash slash. I zauważyć, to jest do przodu slash, a nie odwrotny ukośnik. Ukośnik, ukośnik, dla tych, którzy już zaprogramowany przed, po prostu oznacza - to tylko komentarz. Komentarz nie linia jest kodu, per se. To linia angielskiego, które, ludzi, napisałem do siebie, aby może przypominać coś zrobić, aby wyjaśnić sobie, aby wyjaśnić ktoś inny, co kod robi. To tylko opisowy komentarz. Teraz, oczywiście, możemy mieć dwukierunkową rozwidleniu dróg tylko w ten sposób, trójstronna widelec w drodze, wykonując tego, a jeśli nadal tego wzór, można mieć cztery-sposób, Pięć sposób, sześć-way widły w drodze, jeśli trzeba obsłużyć, rzeczywiście, , że wiele warunków. I wtedy dostrzec paralelizm tutaj - if (warunek), else if (warunek), i tylko jedno, że jest trochę dziwne jest ostatnim, który to po prostu inny. Jednak ponownie, to jest identyczne, koncepcyjnie, do tego, co zrobiliśmy wcześniej, chociaż składnia się trochę przyzwyczaić. Teraz, w tym przykładzie, istnieje niektóre inne dziwne składni. Widzimy printf ponownie otwarty nawias, i zamknij nawias. A w środku jest cudzysłowiu. Nawiasy, w kontekście z printf, idź na lewo i prawo, co? Co mamy opisują, że cytowany ciąg jako bardziej ogólnie? Więc to jest argument. Za każdym razem, musisz użyć funkcji, jak printf, a następnie otwarty nawias i zamknij nawias i coś wewnątrz to, czy jest to ciąg znaków lub całkowita, lub cokolwiek innego, co w między te nawiasy nazywa argumentem. A argument, tylko wpływa Zachowanie z funkcji. W tym przypadku, to jest całkiem jasne, w jaki sposób. x