>> [MUZYKA GRA]
>> DAVID MALAN: Dobra to CS50 i jest koniec jednego tygodnia.
Więc chciałbym przedstawić mój były advisee, Andel Duff, który nie tylko sprawia, że
iPhone 5 oznacza, jak to mównica, robi również samochody.
ANSEL DUFF: Jak idzie, wszyscy?
Chcę tylko powiedzieć, że mało nieco o Formula SAE, z którą
jestem kapitanem.
To zespół z MIT.
Chcę tylko powiedzieć, Chłopaki trochę o tym
i miejmy nadzieję wygenerować pewne zainteresowanie.
>> Więc pozwól mi po prostu uruchomić poprzez Kilka rzeczy o naszej drużynie.
Więc jesteśmy całkowicie bieg studentów, w którym wszystkie
wzoru członków, symulacji, testu, a producent podsystemu
samochodu.
Mamy własny warsztat i garaży i N52-- lub przykro,
N51-- który jest w tym samym budynku jak Muzeum Nauki MIT.
A my ludem że prowadzić samochód.
Nie Konkurs na początku lata,
i wtedy są mniejsze strzelanina konkursy w ciągu roku.
A następnie robimy szkolenia kierowców dni, aby nowi członkowie zapoznali.
>> Nasze dni są na budować W soboty od 11 rano do 8 wieczorem.
Obiad i kolacja są dbanie z, z Bertucci jest i Beantown
odpowiednio.
Mamy cotygodniowe spotkanie i Seminarium, które jest na kredyt oczywiście.
Co jest nowe, a od tego semestru, a będzie to również na kolejny semestr,
więc można przejechać-reg za to.
A potem mamy projektowania, sklep, CAD i dni w tygodniu,
natomiast członkowie będą niezależnie Części CAD, zamów photography et cetera.
>> Tak na elektryczne Technika w drużynie
mamy pociągowa System wysokiego napięcia,
który działa na nominalne 300 V, który obejmuje
silnikami, sterowniki silnika, i akumulatory.
Następnie mamy niski System napięcia, która biegnie
przy 12 V, która zawiera Kontrola, CAN węzły, mózg
skrzynki i deski rozdzielczej.
CS idzie tak daleko, robimy mają utrzymanie strony internetowej
że musimy zrobić na imprezy, członków zmiany, nowe zdjęcia i materiały PR.
A potem mamy kod, który steruje Samochód dla naszej kontroli trakcji, uruchomienie
kontrola, kontrola kreska, vectoring moment, i regeneracyjne, które układy hamulcowe
prowadzony zwykle w programie MATLAB Simulink i LabView.
>> Opowiem wam trochę o samochodzie.
Więc jest to około 500 funtów.
To zasady ograniczone do 85 kilowatów.
Posiada 2 EMRAX 207 silniki w tyłu, po jednym dla każdego koła tylnego.
Ma na zamówienie akumulatorów pryzmatyczne komórek A123 z etui,
na łączną kwotę 300 V i 5.6 kilowat godziny.
I to jest napęd bezpośredni z Współczynnik 2,64 do 1 napęd.
Oto kilka zdjęć my wziął go w konkursie.
Oto stożek powrotem, nos, i tu są silniki,
te duże tarcze czarny pod i męskie Manus.
Oto slajd, że wyciągnąłem z naszego systemu konkurencji.
I to jest tylko porównanie do naszego samochodu Kilka dostępnych w handlu samochodów
jak KTM XBOW Ariel Atom i Caterha M 7-280.
Jeśli jesteś zaznajomiony z ceny, moc ciągnąć ciężar, dolarów za koni mechanicznych,
dolarów na moment, a nasz samochód wydmuchuje je wszystkie w wodzie.
Jeśli masz jakiekolwiek pytania, zanotować ten adres e-mail.
Strzelać do nas maila na fsae@mit.edu.
>> Jesteśmy szczęśliwi, aby porozmawiać o cokolwiek chcesz.
Studentów Harvardu są mili mniejszości w zespole.
Jeśli masz jakiekolwiek pytania dotyczące że proszę strzelać do nas maila,
na rozmowy, a ja zamierzam aby wrócić na Dawidowi.
Dzięki.
Doceniam to, chłopaki.
[Aplauz]
>> DAVID MALAN: Ansel spędziłem lato pracy z nami tutaj na kampusie w CS50
latem tego roku.
A ponadto działa na rzeczy takie jak żarówki binarnych,
on rzeczywiście bardzo otworzyliśmy eyes-- i kopalni w szczególności do:
na to, co naprawdę skrzyżowaniu nie sprzętu i oprogramowania może być.
W rzeczywistości wiele z tych rzeczy, po prostu koncertował pan przez to ostatecznie
tworzone najpierw w oprogramowaniu a na koniec wytwarzane
w świecie rzeczywistym w sprzęcie.
Więc jeśli jesteś zainteresowany odkrywania tego skrzyżowania,
może podjąć tę grupę.
>> Teraz zaś, ci z was, którzy są fanami technologii,
i produkty Apple w zwłaszcza, że ​​istnieje
Było kilka Anonse wczoraj.
Ale myśleliśmy, że będziemy pokazać Ci, który wyszedł
że kilka dni przed może nie widziałem.
>> JORGEN EGHAMMER: Wiesz, raz na jakiś czas coś
przychodzi, że zmienia sposób, w jaki żyjemy.
Urządzenie tak proste i intuicyjne używając go czuje się niemal znajomo.
Przedstawiamy 2015 katalog IKEA.
To nie jest książka cyfrowa lub e-book, to książka-książka.
>> Pierwszą rzeczą, aby pamiętać, nie jest kable, nawet kabel zasilający.
Katalog IKEA 2015 jest w pełni naładowany,
i żywotność baterii jest wieczna.
Interfejs 7,5 o 8 cali ale można rozszerzyć do 15, 8 cali.
Nawigacja oparta jest na dotykowej kontakcie technologii, które można poczuć.
>> Zawartość jest preinstalowany przez 328 stron o wysokiej rozdzielczości
inspirujących pomysłów wyposażenia wnętrz.
Aby rozpocząć przeglądanie, wystarczy dotknąć i przeciągnąć.
Od prawej do lewej, aby przejść do przodu, od lewej do prawej, aby przejść do tyłu.
>> Zauważyć coś innego?
Zgadza się.
Nie lag.
Każdy krystalicznie czysta strona ładunki natychmiast,
bez względu na to, jak szybko przewinąć.
Jeśli chcesz uzyskać szybki przegląd, po prostu trzymać go w dłoni,
i przy użyciu tylko kciuk, Prędkość przeglądać zawartość.
>> Jeśli znajdziesz coś chcesz zapisać na później, można łatwo zakładka to.
I nawet jeśli zamknąć aplikację, można łatwo znaleźć zakładkę ponownie.
Niesamowite.
>> [Śmiech]
[Aplauz]
Tak, że prowadzi nas do Koniec tydzień.
Kilka Anonse teraz.
Więc cięcia jest teraz w toku.
Przejdź do tego adresu URL tutaj sometime między teraz i piątek w południe
faktycznie określić, czy jesteś wśród tych, mniej wygodne, więcej
wygodne, albo gdzieś pomiędzy.
>> Zwykle jest to jeden z tych rzeczy, które po prostu rodzaj znać.
A w rzeczywistości tych, którzy są mniej wygodne zapewne wiesz jak wiele,
tych, którzy są bardziej wygodne wiedzieć jak najwięcej,
i znowu, jeśli nie jesteś pewien, które z tych wiader wpadniesz jesteś
prawdopodobnie gdzieś pomiędzy.
Ale pewny, można zamienić po kilku tygodniach, jeśli zajdzie taka potrzeba.
>> Tymczasem na nadchodzący tydzień nie zaczniemy sekcje per se,
ale super sekcje, które są otwarte dla wszystkich studentów.
Najbliższą niedzielę w miejscu do zostaną ogłoszone na stronie internetowej kursu
będziemy mieć jeden dla te mniej wygodne,
jak również jeden na ci bardziej komfortowe.
A ci, gdzieś pomiędzy Można wybrać, które z tych dwóch,
lub obu, jeśli chcesz, aby usiąść w sprawie.
I celem tych będzie ostatecznie C
które będziemy kontynuować nasze rozmowa z dzisiaj.
>> Tymczasem problem jest ustawiony 0 miejmy nadzieję, że w Twoich rękach.
Oficjalnie na jutro, Czwartek, w południe.
Jeśli nie zarobić jednego Twoje 5 późnych dni
co to przyniesie do piątku w południe.
Tymczasem problem ustawić 1 będzie publikowane na stronie internetowej oczywiście za.
I to będzie nasz pierwszy wypad jako klasa w C
I że specyfikacja będzie problemu ustawić cię chodzić przez wiele mechaniki co
Zaczęliśmy rozmawiać o poniedziałek, a my w dalszym ciągu mówimy o dzisiaj.
C, Linux, CS50 Urządzenie, które wszyscy
czekają na Ciebie w tej specyfikacji.
>> Godziny pracy w międzyczasie są w toku, w licencjackich jadalni.
Udaj się do tego adresu URL, aby zobaczyć zaplanować na dzisiaj i jutro,
jeśli chcesz wziąć udział.
Pytania Tymczasem, tak aby mają możliwość zadawania pytań
asynchronicznie, 24/7, uświadomić sobie, że jesteś nie ogranicza się do sekcji i biura
godzin, ale raczej narzędzie tu, w tym CS50 Omów URL
będzie przebieg w Internecie Biuletyn oprogramowanie zarządu, poprzez które
można zadawać pytania koledzy, a także personel.
Tak więc należy pamiętać, że zasoby, jak również.
Tymczasem tradycja rozpoczyna się w ten piątek.
Jak można dostrzec z Środowa zapowiedź ostatniego filmu,
że większość z nich ma tradycję w każdy piątek w trakcie kadencji
podejmowania około 50 uczniów i Personel do lokalnej restauracji o nazwie
Ogień i lód, na którym jesteśmy zazwyczaj połączone przez niektórych absolwentów
lub przyjaciele z branży na ogół dążą
do szerokiej klasy czuć mniejsze.
Więc to jest zupełnie co dzień obiad.
Kilka z nas, pracowników zwłaszcza, zagra muzyczne krzesła
i porozmawiać z uczniami na temat 50, życie poza 50,
życie w przyszłości, w prawdziwym świecie, Mówię o ofertach pracy
z przyjaciółmi w branży.
>> Więc jeśli chcesz do nas dołączyć w ten piątek, udać się do tego adresu URL tutaj.
Liczba miejsc jest ograniczona, ale będziemy to robić recurringly całej kadencji.
Udać się tam, aby cs50.harvard.edu/rsvp.
A jeśli nie dostaniesz w tym razem, nie martw się.
Zrobimy to jeszcze raz w na nadchodzące tygodnie, jak również.
>> Więc to jest obraz malowaliśmy w zeszłym tygodniu,
i na pewno nie było dabbling w dotychczas.
Ale spróbujmy połączyć to teraz do tego, co mamy zamiar zrobić dziś
i nowsze.
Mogę mieć jednego wolontariusza?
Wszystko w porządku, lub kilka.
Jak się tutaj na koniec, w niebieskiej koszuli.
Chodź na górę, jak masz na imię?
ALANA: Alana.
DAVID MALAN: Alana.
Więc Alana, tylko dla moment-- miło ty--
będzie odgrywać rolę z tej funkcji tutaj.
Blok mamy fioletowy zwana dotąd funkcji.
Więc co mam zamiar iść przed tutaj i oferują Alana
Nazwa jest trochę tag, aby jasne, jaką rolę grasz.
>> Tak będziecie blok słownie.
Jeśli chcesz iść do przodu i umieścić, że na.
I będziemy mieć to bardzo proste.
Jeśli celem jest po prostu pod ręką teraz wdrożyć w Alana,
to znaczy, tak zwanego bloku oto jak to będzie działać.
Have-- I nazwijmy to Argument lub parametru,
to naprawdę tylko pusty arkusz papieru.
I to białe do rodzaju przypominałby na białym polu, do którego
może napisać słowa.
>> Tymczasem mam zamiar udać się tutaj.
Mam zamiar iść do przodu i Napisać e-H-L-L-O przecinkami świat.
A teraz, jak mówią, programista, nie faktycznie wie, jak coś powiedzieć.
Mogę wymyślić słów, ale nie muszą
wie, jak wyrazić siebie ustnie lub na ekranie.
A więc to, co mam zamiar zrobić, to wziąć ten kawałek
funkcjonalności, której input-- lub argumentów, jak my to nazywamy,
Pisałem na ten kawałek paper-- i mam zamiar go outsourcingu.
>> I rzeczywiście to jest rola, jaką Funkcje w języku programowania
może grać.
Coś jak Say Blok może być zlecone
do kogoś, kto nie wie, co ona lub on mówi.
Więc jeśli będziesz przechodzić nad tu tylko na chwilę,
Mam zamiar przekazać to wejście do Alana, i prosi, aby powiedzieć to wejście.
>> ALANA: Witaj, świecie.
DAVID MALAN: To jest to.
Tak że nie działa.
Teraz możemy go trochę więcej, możemy zrobić krok naprzód tutaj.
Dlatego, że był wyraźnie rozczarowująca.
Więc teraz przekonwertować to do coś nieco bardziej wyrafinowane.
>> Więc to jest oczywiście nasza wersja C.
Więc teraz, jeśli chcesz wziąć to jeden się, że nazwa znacznika off,
i niech mają na siebie włożyć nową nazwą.
Ale zasadniczo jesteś gra tę samą rolę,
tak się do nazwać printf teraz.
>> Fabuła jest, oczywiście, Prawdopodobnie dzieje się być:
Jest tak underwhelming-- będzie następujący.
Jesteś teraz printf funkcja.
Jestem rozmówcy, lub Programista, który chce
stanąć na ramionach ludzie w przeszłości, jak ty,
którzy już zorientowali się, jak faktycznie coś zapisać.
A więc razem, zamiast powiedzieć, że niech
Korzystając z ekranu faktycznie tutaj.
Więc jeśli chcesz do kroku tu, idę
przejść ponownie to jako Wejście do mojego przyjaciela printf.
Jeśli można śmiało druku, że na ekranie
po prostu rysunek z Twojego palec na czarnym ekranie.
Doskonałe.
W porządku, więc wiele niepewności dla jak to się dzieje na zabawę.
>> Teraz weźmy rzeczy jeden Ostateczna poziomie, jeśli można, w następujący sposób.
Więc to jest program w C jak mówiliśmy ostatnio.
A to po prostu robi to, co zrobiłeś, to wypisuje na ekranie, Witaj, świecie.
Mimo, że jest wyraźnie dużo z rozpraszać rzeczy tam.
Ale weźmy się w garść i wprowadzenie tej wersji, które przypominają
Była to trzecia wersja, że skończyło się na ostatnim czasie.
>> I teraz jest wyraźnie dwa zastosowania printf.
Jest 2 rozmowy do Alana w tym przypadku dla printf,
ale jest także wezwaniem do innej funkcji.
Co to jest funkcja wyraźnie?
GetString.
>> Możemy dostać jeszcze jeden wolontariusz?
OK, dalej w górę.
Jak masz na imię?
>> JAVIER: Javier.
>> DAVID MALAN: Javier, chodź na górę.
Więc rola Javiera jest ten kawałek papieru.
Które mam zamiar zadzwonić ogólnie s.
Teraz to jest zmienna, to typu ciąg, jak sugeruje
przez tę drugą linię tam pośrodku.
I chciałbym, żebyś się do mnie ciąg.
Specjalnie udać się do orkiestry punkt i daj mi nazwisko osoby,
i wrócić ze zmienną zawierające tę wartość.
To może być ktoś, kogo chcesz.
>> Zaczynamy.
Dobrze, Javier jest zapisując nazwę.
Wszystko w porządku.
Wszyscy możemy się domyślić, jak to będzie grać z.
Jesteśmy chyba belaboring Temperatura co
funkcja robi, ale mimo wszystko bardzo dziękuję.
>> Więc Javier wrócił ten ciąg tu, który nie dość zobaczyć,
Jonathan jest ciąg że dotarłeś.
I co teraz mam naprawdę dzieje dostarczenie do Alana choć
to coś trochę innego.
Ponieważ w tej wersji Program najpierw tam podać swoje imię i nazwisko.
Więc pierwszego argumentu Muszę dostarczyć Alana
ze będzie dosłownie podać swoje imię i nazwisko.
Dobrze, że tak proste, jak Chciałbym oddać ci tego.
I jak napisać Kolejnym argumentem, jeśli Ciebie
chcą iść dalej i napisać to na pokładzie, idziemy do przodu
i zrobić ostateczny przykład tutaj, aby jasne, co ostatecznie ma się wydarzyć.
Tak, podać nazwę, Napisać go ku górze
jeśli nie masz nic przeciwko, tylko po to, mamy pokój na jedną drugą linię.
Ponieważ ostatnią rzeczą, idę do teraz zapewnić Państwu nie jeden,
ale dwa kawałki papieru.
>> Wszystko w porządku.
H-E-P-L-O przecinek, a następnie pusty wiersz.
Więc co mam pod ręką teraz Alana to coś trochę innego.
Nie tylko jest ona coraz to gdzie wypełnić puste reprezentuje
że percent-- co było zastępczy używaliśmy?
Tak, tak, procent y.
Tymczasem mam zamiar przejść niej w drugim argumencie, który
właśnie Javier pobierane z Jonatanem.
>> Więc pozwól mi dać te dwa.
Jeśli chcesz, aby przejść do przodu i wydruku, że efekt.
Co się w końcu dzieje teraz jest, Alana ponownie
gra rolę printf.
Javier grał Rola getString.
Tak, że będzie twoim pamiątkami.
I ostatecznie, co się dzieje, mimo to hello-- Tak śmiało i przecinek.
ALANA: Czy mogę otrzymać to jeszcze czy nie?
DAVID MALAN: Tak, ty otrzymał je obie na raz.
Więc chodzi o to, że ty Można teraz obrócić stronę
obsłużyć drugi z tych dwóch wejść.
Więc jest to tylko do młota domu wskazują, że o ile wykonywane Alana
ta zielona linia tutaj, a następnie Javier to zrobił dla nas
i wróć do mnie coś zadzwonimy s, ale to było naprawdę
tylko, że kawałek papieru z jego własnej.
A teraz Alana zrobiła to trzecią linię.
>> I mimo, że wszystko to wygląda Być może tak bardzo tajemnicze
na pierwszy rzut oka, to naprawdę jest takie proste.
Wokół przechodząc wejść, się wyjść, albo
fizycznie oddał coś, lub widząc efekt uboczny takiego.
Coś wizualnie napisane na ekranie.
Więc idź naprzód i Dziękuję Alana i Javier,
który był tu, na Dołączy do nas tutaj.
>> [Aplauz]
>> Teraz weźmy za pewnik, jak proste, wszystko to może być.
I przejdźmy do rzeczywistości zrobić coś rzeczywistego kodu.
Więc się na ekranie Oto zrzut ekranu z tak zwanego urządzenia CS50.
I jeśli trzeba było na, jak 14:00 w środę po południu,
wyjaśnić jakiegoś znajomego co urządzenie CS50 jest,
jak można określić, że w jednym zdaniu?
Wszelkie jedno zdanie?
Tak?
Student: To jak program sprawia, że ​​wszystkich komputerach
uruchomiony z tego samego systemu.
DAVID MALAN: Dobra!
Jest to program, który umożliwia wszystkim na komputer do pracy z tym samym systemem.
To coś w rodzaju własnego kopia eksploatacji
System, który stanie się nazwać Ubuntu Linux.
I działa skutecznie wewnątrz Okno na własnym komputerze Mac lub PC,
tak, że w ten sposób prawo z bramy w ciągu 1 tygodnia, wszyscy tutaj w klasie
ma dostęp do tych samych narzędzi, sama konfiguracja
i nie ma krzywej uczenia się specyficzne na komputerze Mac lub PC w szczególności.
>> Teraz otwarte, wewnątrz CS50 Urządzenie w poniedziałek, ten program tutaj.
Zdarza się nazywać gedit.
Ale to tak naprawdę tylko Edytor graficzny.
To coś jak Notatnik lub Tekst Edytować w systemie Windows lub Mac OS odpowiednio.
I zaproponowałem, że było naprawdę trzy ważne elementy do tego ekranu.
Górna strona jest tam, gdzie by napisać kod.
I to, gdzie spędziliśmy większość naszych trzy przykłady w poniedziałkowym wykładzie.
Dno nazwaliśmy co, to czarne okno, tak?
>> STUDENT: Compiler?
>> DAVID MALAN: Compiler my dostęp w drodze tego okna.
Ale bardziej ogólnie.
Tak, to było po prostu okno terminala.
Jest to wiek stary termin, który właśnie opisuje zasadniczo migającym
monit, że lata temu Kiedyś na jeden z tych wielkich monitorów typu CRT.
Ale w dzisiejszych czasach jest to rodzaj z wirtualnego oprogramowania.
I okna terminala niech nam wpisać polecenia.
To rodzaj uproszczonej wersji interfejsu użytkownika lub interfejsu użytkownika.
To nie jest graficzny Interfejs użytkownika lub GUI,
Interfejs jest oparty na tekście lub interfejs wiersza poleceń.
>> I rzeczywiście to, gdzie ostatecznie Udało mi się napisać kod.
Raz napisałem trochę kodu choć Przypomnijmy, że użyłem tego polecenia.
I jak to nazwa rodzaj sugeruje to
Pozwala mi to zrobić Program o nazwie Halo.
Ale co tak naprawdę robi?
Oraz producent brał mój wejście, mój kod źródłowy,
i przekształcenie go do tego, co w ostatecznym rozrachunku?
>> Kod obiektu.
I kod obiektu jest tylko wyobraźnia sposób mówienia zer i jedynek.
A następnie raz chciałem uruchomić ten kod obiektu,
raz chciałem przekazać jako wkład tych Zera i jedynki do mojego komputera
mózgu, tzw CPU lub jednostka centralna,
Musiałem uruchomić program.
Ale to nie było dość proste, w poniedziałek jak tylko dwukrotnie klikając jakąś ikonę.
Co zamiast nie muszę zrobić, aby uruchomić program?
>> Co było to, że drugie polecenie?
Słyszę trochę ukośniki?
Tak, tak?
>> STUDENT: Dot slash i Nazwa programu.
DAVID MALAN: Dokładnie.
Dot slash i nazwa programu.
Teraz jakie to ma znaczenie?
Cóż to tylko kropka tajemna droga mówić bieżący katalog.
Cokolwiek jesteś w folderze jest określanej jako jest reprezentowany jako kropki.
Ukośnik jest tylko to, co widziałeś w systemie Mac OS i Windows na lata,
to separator między katalogu lub folder, a reszta jakiegoś imienia.
W Windows zdarza się, aby przejść do tyłu, w systemie Linux i Mac
OS zdarza się, aby przejść do przodu.
Ale to tylko separator, więc po prostu nieciekawe składniowym szczegóły.
>> Soczyste częścią kursu jest Nazwa programu, Witam.
I to jest to, co czynią stworzony dla nas.
Jest wyprowadzany ten plik za nami.
Ale jak dostać się do tego punktu?
Załóżmy teraz zapytać pytanie, co było naprawdę
dzieje, co najmniej z odniesieniu do niektórych z tych składni?
>> Tak więc w zdaniu lub tak, Jak udało się wyjaśnić
to pierwsza linia to podświetlone na zielono?
Co było to, że pierwsza linia robi, w odniesieniu do mojego programu?
Tak?
>> STUDENT: [niesłyszalne].
DAVID MALAN: Powiedz to jeszcze raz?
STUDENT: Włączanie i pobierania Wcześniejsze funkcje [niesłyszalne].
DAVID MALAN: Dobra.
Tym, nie powiem pobierania, ale powiedzmy, że
w tym funkcje, które ludzie Napisałem w przeszłości.
I te funkcje są realizowane gdzieś w moim komputerze.
Ktoś napisał plik lat temu, i że plik
jest gdzieś wewnątrz CS50 urządzenia lub na dysku twardym
bardziej ogólnie.
I tak ta linia jest zasadniczo mówiąc, go znaleźć tego pliku, Standard I / O kropkę
h, i skopiować i wkleić jego zawartość tu na górze mojego pliku
tak, że nie mam do zrobić to ręcznie sobie.
>> I wśród najbardziej soczyste kawałki wewnątrz z twierdził, że plik był co nam funkcja?
Co nie powiedzieć, funkcja została zadeklarowana lub wymienione w Standard I / O dot h
najbardziej prawdopodobne?
Printf, prawda?
Nie pisać na printf Poniedziałek, po prostu istnieje.
Podobnie jak Alana właśnie przyszedł się na scenie, a ona po prostu
istniał i wiedział jak narysować coś na ekranie
tak nie printf istnieje od wielu lat.
I tak to jest, jak do niego dostęp.
Teraz, gdy przejdziemy tutaj, Głównym analogicznie my
powiedział na kawałek układanki wywoływana po kliknięciu zielona flaga
w świecie podstaw.
To tylko rodzaj Domyślna nazwa, że ​​ludzie
zdecydowała, że ​​stanowią domyślny punkt wejścia do programu.
Fragment kodu programowania który zostanie wykonany pierwszy.
>> Tymczasem są te nawiasy klamrowe jakby zakrzywionego kształtu
z dużo tych żółtych sztuk zdrapek.
Ich rodzaj enkapsulacji cały kilka wskazówek razem.
Więc to po prostu rodzaj wiąże ze sobą niektóre związane funkcjonalność.
printf oczywiście jest funkcja drukuje ekran, jak to zrobiłeś.
>> Co o tych nawiasach?
Jak byś define-- nawet jeśli masz nie zaprogramowane wcześniej, ale tylko w oparciu
teraz na zwiększenie mam nadzieję, że intuicja, co
nawiasy są dla nas robi?
Lub co oni okolic?
Tak?
>> STUDENT: Mówią, co masz zamiar drukować z printf.
>> DAVID MALAN: Tak, mówią, co masz zamiar drukować z printf.
Lub, bardziej ogólnie, są otaczającego wejść do funkcji.
Tak, że można prawie z tych nawiasach
jako o metalu clip na tym schowku.
To co się trzyma, to, co jest będzie wykorzystane do zapewnienia argumentów
do funkcji, które w tym przypadku jest nazywana printf.
>> Tak w ogóle prawie każdy Czas nazywamy funkcję,
chcemy, aby zobaczyć nawiasów pary.
Może coś w nim, jak teraz, może w nim nic.
Ale to, gdzie będzie można umieścić wejścia lub tak zwane argumenty
do funkcji.
>> Oto jeden z takich argumentów.
Wszystko mam podświetlone między cytatami,
ponieważ okazuje w tym języku nazwie
C, gdy chcesz do reprezentowania string-- to słowo lub fraza
lub nawet paragraph-- trzeba otaczają go w cudzysłowy.
Nie pojedyncze cytaty, cudzysłowy.
I to jest dokładnie to, co zrobiłem tutaj.
>> Tymczasem jest modny Symbol w kierunku tam końca.
Backslash n.
Co możemy powiedzieć, że reprezentowane?
Tak?
>> STUDENT: nowa linia.
>> DAVID MALAN: Nowa linia.
Dobra, nie ogólnie naciśnij Enter, gdy
chcesz program wypluć nowej linii.
Raczej można powiedzieć to wyraźnie z tego co prawda tajemnej sztuki
składni, backslash n, że chcesz nowa linia tam.
Wreszcie średnik.
Tak naprawdę nie mówić zbyt wiele na ten temat,
i zdecydowanie będzie to zmorą niektórych swojego istnienia do pierwszego problemu
ustawić, kiedy po prostu nie udało się zrealizować zapomniałeś coś tak głupiego
jak średnikiem.
I ogólnie wprowadzenie go nie rozwiąże tego problemu.
Ale co to robi dla nas, można by powiedzieć?
>> STUDENT: [niesłyszalne].
>> DAVID MALAN: Przepraszam?
>> STUDENT: [niesłyszalne].
DAVID MALAN: Wykończenie oświadczenie.
To trochę jak w okresie końcówkę zdania angielskiego,
podczas gdy w tym języku C to kończy oświadczenie.
Instrukcja programowania Kod, że chcesz po prostu powiedzieć,
Skończyłem z tym.
Zauważcie, że to tylko jeden tutaj.
Więc nie chcesz, aby w zwyczaj wprowadzenie średnikami
po każdym zamkniętym nawiasie.
Na przykład nie ma nic obok unieważnić, a my
wrócić w przyszłości do tego, co nieważne środki.
Ale w tym przypadku jest twój printf Funkcja lub stwierdzenie, używane,
i tak chcemy mieć, że końcu na samym końcu.
>> A ja celowo wybierając na C i szczerze mówiąc wiele języków, takich jak C, C ++
Java, JavaScript dowolna liczba Inne języki mają wiele z nich
rodzaj składniowych szczegółów.
To z pewnością, jeśli jesteś nowy w Programowanie może naprawdę zadziałać cię.
I będzie, zapamiętaj moje słowa, niektórzy z was
to doświadczenie w godzinach pracy urzędu lub późno
w nocy pracuje na jakimś p-set, gdzie Twój cholernie Program po prostu nie skompilować,
to nie działa, trzeba nie wiem co jest nie tak,
wydaje się całkowicie logicznie poprawne Ciebie.
A to dlatego, że zapomniał coś jak uderzenie
średnik na końcu niektórych linii.
>> Ale to są takie rzeczy mozesz będzie natychmiast nauczyć się widzieć.
I rzeczywiście, to są rzeczy, że CA i TF mają
był rodzaj przeszkoleni, aby zobaczyć znacznie szybciej niż ty.
I tak jest to tylko powiedzieć, jak ty Zanurz się problemu ustaw 1, zwłaszcza,
Nie denerwować przez te rzeczy.
Po rodzaju aklimatyzować na świecie,
zaczynamy widzieć rzeczy, które nie mogą zobaczyć na pierwszy rzut oka ten pierwszy tydzień.
>> Więc kod źródłowy jest coś takiego.
Chcemy przekazać ją do tzw kompilatora.
I że kompilator jako powiedzieliśmy zapewnia wyjście
znany kod obiektu, tzw zer i jedynek.
Ale od tego, co nam to daje?
No to daje nam te wzorce.
I ponownie komputer, Twój Intel Inside,
rozumie te wzory zer i jedynek.
A czasem wzór reprezentuje rzeczywistą liczbę dziesiętną
jak widzieliśmy w zeszłym tygodniu, czasami reprezentuje literę
jak widzieliśmy w zeszłym tygodniu, czasami stanowi dyspozycję,
jak drukowanie coś na ekranie.
>> Więc printf dla instance-- ale raczej niech tyłu.
Byliśmy biorąc za pewnik, że te zera i jedynki są
produkowane przez tego uczynić polecenia.
Ale marka nie jest kompilator.
Sprawdź, co nie jest w środku który jest wytwarzania zer i jedynek.
Raczej zrobić jest po prostu bardzo wygodnie nazwie programu, którego celem w życiu
jest w istocie dowiedzieć się, jak skompilować program.
I używamy go w nich Pierwsze tygodnie, bo to po prostu
oszczędza nam wiele kłopotów.
>> Ale to, co się naprawdę robi podczas kompilacji komentarzy,
jest, jak powiedział ostatnio, że to patrząc na dysku twardym
lub w bieżącym folderze, do Plik nazywa się to, co, jak widać?
Hello.c, prawda?
To tylko rodzaj konwencji.
To arbitralne, ale to rzeczy mają.
Dokonać, jeśli tylko podać nazwę programu, który jeszcze nie istnieje,
to będzie wyglądać w kodzie źródłowym w pliku, domyślnie oznacza hello.c.
A jeśli go znajdzie, to świetnie.
To będzie przekształcić to źródło kod do kodu wynikowego dla Ciebie.
>> Ale za każdym razem mam naciśnij Enter po uruchomieniu się witam,
Pamiętasz widząc ostatni razem dość długi i tajemniczy ciąg
z białymi literami i innych znaków na ekranie?
Cóż to była rzeczywista komenda, rzeczywisty kompilator, który został uruchomiony.
Tak więc rzeczywisty kompilator użyjemy większość Semestr jest coś, co nazywa dzyń.
Niektórzy z was mogą być używane Visual Studio przed lub GCC,
lub dowolną liczbą innych kompilatorów.
Użyjemy szczęk.
>> I szczęk pozwala nam rzeczywiście przekształcić że kod źródłowy do kodu wynikowego.
Co to właściwie oznacza w praktyce?
No daj mi odejść do jednego z katalogi z ostatniego czasu.
Wewnątrz urządzenia CS50.
I pozwól mi iść dalej i stworzyć ten sam plik, to Standard I / O dot godz.
Int main nieważne.
I wrócimy w przyszłości jako co int void środki i jakie środki.
Ale teraz zróbmy hello world backslash n,
tak jak to zrobiliśmy na płycie.
>> Pozwól mi zapisać ten plik o nazwie hello.c.
A teraz, czy chcę skompilować ten Could-- I pozwól mi przybliżyć in-- run
Marka komentarzy wejść.
I to znowu był że bardzo tajemniczy wiersz.
Ale teraz przynajmniej jedno słowo prawdopodobnie wyskakuje na ciebie.
Clang to, że linia widzieliśmy wcześniej.
Teraz jest wiele innych rzeczy szczerze że będziemy w nasze ręce fala na dziś.
Ale jest kilka podgrup, kilka znaków tutaj
, które są interesujące.
Ale mam zamiar iść do przodu i to zrobić.
Idę do pierwszego biegu witam, po prostu udowodnić,
że to działa, jak to było w poniedziałek.
Ale teraz mam zamiar usunięcia programu.
I podobnie jak mieliśmy to krótkie nazwy ostatnim razem,
Polecenie do usuwania coś jest rm, usunąć, wprowadzić.
Masz zamiar uzyskać pewne dość tajemnicze pytania.
Trudno uwierzyć, że można zrobić nawet to pytanie trudno zrozumieć.
Ale usunąć plik po prostu regularnie cześć środki chcesz usunąć komentarzy.
>> I mogę śmiało i wpisz y dla tak, Enter, a teraz go nie ma.
Oznacza to teraz jeśli wyczyścić ekran,
że zamiast robi ci się hello--
wiesz co, ja się w tym dobry.
Zamierzam uruchomić kompilator sam.
Nie potrzebuję jakiegoś programu do dowiedzieć się, co mój plik nazywa.
Napisałem hello.c, ja wiem jak to się nazywa,
Jestem w stanie pisać wyraźnie, że.
Więc mam zamiar iść do przodu i nie Clang hello.c Enter.
>> Wydaje się działać.
I nie ma dodatkowe wyjście, bo dzyń jest kompilator.
To, co się konwersji Kod źródłowy do zer i jedynek.
Więc jeśli teraz zrobić kropkę slash komentarzy Enter, hm.
Nowy komunikat dzisiaj.
Więc bash jest tylko nazwa migający znak zachęty, które używamy.
To jest uproszczeniem, ale na razie to wszystko, to znaczy,
to szybka migać.
A to dlatego, że krzyczy na nas.
>> Nie ma takiego pliku lub katalogu jest trochę bardziej proste.
Ale na pewno zrobiłem ten kod wynikowy.
Ale haczyk jest, że jeśli wpisz polecenie
aby wyświetlić zawartość tego katalogu, który jest co?
Czy na liście.
Jest kilka rzeczy tutaj, niektóre z nich przyszedł wraz z urządzeniem,
jak mój folderu Pulpit, Pobieranie folderów, folderu Dropbox, a wszystkie
że rzeczy.
Ale to, co jest interesujące jest hello.c, które
Stworzyłem chwilą z gedit.
A co najdziwniejsze patrząc nazwę tutaj,
być może, że nie zobaczyć po raz ostatni w ogóle?
>> a.out, prawda?
Więc z powrotem w dzień, to właśnie postanowiłem, że gdy
kompilacji Po raz pierwszy
i nie podać nazwę z pliku, nazwijmy to.
I a.out tylko oznacza to Wyjście z kompilatora.
Więc to jest straszna nazwa dla programu.
Ale w tym logiki, na kropka slash aktualny katalog, slash a.out,
powinno oznaczać, że jest w rzeczywistości moja cześć programu świat.
Teraz trochę rozgrzać ćwiczeń, zbyt.
Jeśli chcę zmienić nazwę tego Plik, okazuje się, że Ciebie
przenieść plik z jednego do drugiego imienia.
Więc mv a.out, a potem Można to nazwać komentarzy Enter.
Więc to jest polecenie Linux.
DOS miał to lat temu, Windows ma okno terminala
jakiegoś, który wygląda jak ten, Linux i Mac
komputery mają ten migający znak zachęty.
Mimo, że większość z nas prawdopodobnie Rzadko, jeśli w ogóle, użyj go.
>> Ale to, co zrobiłem jest prowadzony Program, którego nazwa jest mv
a ja pod warunkiem jej dwa argumenty, że tak powiem.
Dwa wejścia.
a.out jest oryginalna nazwa.
Witam jest nowa nazwa.
Więc jeśli teraz zrobić kropka ukośnik witam, Enter, co istnieje.
A jeśli ja dot slash a.out, czego można się spodziewać mam zobaczyć?
>> Bash, nie ma takiego pliku lub katalogu.
Bo właśnie zmienił nazwę.
Więc to zajmuje trochę przyzwyczaić.
Jednak problemem zestaw 1 Specyfikacja będzie dobrze
trzymać rękę przez niektóre z tych minutae.
Ponieważ jest to pełna rozproszenia intelektualnej
z bardziej interesujące pomysły na strony, które
jest rzeczywiście tworzenie coś z kodem.
Ale zróbmy jedną modyfikację teraz do tego programu.
>> Przypomnijmy, że ostatni raz robiłam coś tak, printf podać swoje imię i nazwisko.
I rzeczywiście, po prostu to zrobił na dużym ekranie nad tam.
A potem zrobiłem łańcuch s dostaje GetString otwarte paren, zamknij paren.
I nawias tylko skrót Zapis na nawiasie.
Więc nie GetString podjąć żadnych argumentów?
Brak wejść, ale to nie wymaga nawiasów,
ponieważ to, co rozgranicza wywołanie funkcji.
>> Więc mam zamiar iść do przodu i starają się uruchomić kompilator o tym programie teraz.
Dzyń hello.c, bo nie zmieniła swoją nazwę na teraz.
I mam kilka błędów.
Miejmy pomniejszyć tutaj.
Gdybym przewijać się znowu, jak powiedziałem ostatnim razem,
do pierwszego, tego samego błędu że mam ostatnio.
Na linii 6 hello.c miałem nierejestrowana ciąg identyfikatora,
nie mam na myśli standard?
Ja nie.
Bo co ma zrobiłem błąd w tym Program, jeśli przypomnieć, od ostatniego razu?
Tak, musimy tzw kółka
że będziemy tylko używać przez kilka tygodni.
Ale trzeba wskazać, że również, gdzieś wewnątrz urządzenia,
Jest to plik, który napisaliśmy zaledwie kilka lat temu.
Wewnątrz które są funkcjami jak najwyraźniej getString.
Więc teraz, jeśli wrócę tu, powiększyć, i ponownie uruchomić dzyń hello.c.
Cholera, kolejny błąd.
Ale nie widziałem tego.
>> Ten jest trochę bardziej ezoteryczne, aby dowiedzieć się.
Jest to jednak celowo na ekranie bo chcieliśmy opowiedzieć tę historię.
Po kompilacji hello.c, tak jak obraz z przed zasugerował,
jesteś tylko, że konwersja Kod źródłowy do zer i jedynek.
Teraz pracownicy CS50 kilka lat temu napisał CS50.h i odpowiedniego pliku
CS50.c.
A my, kilka lat temu, skompilowany te pliki
do pliku, co dzieje się nazywać CS50.o.
>> Lub może być zmieniona kilka różnych rzeczy.
Ale to prosty sposób o tym myśleć.
Więc skompilowany CS50-tych Biblioteka do zer i jedynek.
Ale nigdzie nie mogę określić że chcę połączyć moje zera
i te, dla mojej Hello World Program z zer i jedynek
że personel CS50 stworzony kilka lat temu do jednego pełnego programu.
Wszystko co określa piśmie dzyń hello.c jest skompilować hello.c.
>> Ja nie mówiłem szczęk do Link w zer i jedynek
że personel CS50 utworzony dla Ciebie jakiś czas temu.
Więc jest to łatwo naprawić, kreska l do linku, CS50.
A my znowu zobaczyć niedługo znowu i znowu.
Ale zauważ, teraz nie było żadnych skarg.
Więc teraz, jeśli uruchomię dot ukośnik witam, teraz to działa.
Mimo, że jest trochę mylące ponieważ po prostu odtworzone co plik?
a.out.
>> Więc pozwól mi do tyłu na chwilę.
Program po prostu skompilowany ma trzy linie kodu.
Kiedy wpadłem Witaj, świecie, witaj chwila temu, nie widzę podać swoje imię i nazwisko.
A to dlatego, że prowadził starą wersję programu.
Ale jeśli rzeczywiście uruchomić slash a.out kropka Wpisz, podać swoje imię i nazwisko, Rob, komentarzy,
świat.
Hm.
To jest rodzaj błędu.
Prawdopodobnie chciał powiedzieć Roba, prawda?
Więc co tu się naprawić kodu.
STUDENT: [niesłyszalne].
DAVID MALAN: Dokładnie.
Więc po prostu trzeba zrobić ten ostateczny uszczypnąć tak, że ja przechodząc w zastępczym,
jak wypełnić puste, tak jak my przed chwilą.
Jednak procent s jest że wypełnić puste.
Więc wreszcie niech ujawniają jedną ostatnią szczegóły tak, że nie ma magii.
Mam zamiar iść do przodu i pozbyć Hellow.
Mam zamiar iść do przodu i pozbyć a.out.
Więc teraz nie mam żadnych programów, tylko mój kod źródłowy.
I idę do pracy nieco dłuższy polecenie, dzyń
kreska O witaj hello.c kreska LCS50.
>> Teraz zaczyna to jakby go w jednym uchu i inne być może.
Ale po prostu odciąć, co to robi.
Clang to kompilator, kreska LCS50 celowo na samym końcu
robi to, co w zdaniu?
Linki do biblioteki CS50.
Chwyta zera i Te, które pracownicy wykonane
i crams je do mojego programu.
Tak więc ostatnie pytanie pod ręką jest, co to jest kreska o cześć prawdopodobnie
robi, nawet jeśli nigdy wcześniej nie widziałem tej składni przed?
>> Wyprowadzanie programu, który jest nie nazwany domyślny a.out.
Raczej nie jest to nazwane komentarzy.
Więc teraz nie ma a.out.
Nie ma takiego pliku lub katalogu, bo wyraźnie powiedział
wywołać ten program cześć, tak że Mogę teraz wpisać nazwę takiego
i mają zachowywać.
>> Teraz szczerze mówiąc, jest to, że chłopak nieciekawe mieć
pamiętać, że wszystkie trochę minucja, prawda?
Więc idź naprzód i pozbyć Witam ponownie.
I niech teraz powrócić do świata, w które wystarczy powiedzieć, aby przywitać.
Ale to jest magia, która się robi dla Ciebie,
to nuda, że to robi dla Ciebie.
I jak nasze programy i Problemy się bardziej złożone,
Marka będzie naprawdę być twoim przyjacielem.
Bo nie za długo od teraz będziemy
mieć programy, które są zapisywane nie z jednego pliku, ale kilka plików,
i uczynić będzie zautomatyzować proces kompilacji wszystko to dla nas razem.
>> Więc teraz drukować.
printf jest w środku tego pliku, średnia I / O kropka h, które widzieliśmy wcześniej,
ale nie więcej niż do printf.
Jest backslash n, ale nie ma też kilka innych sekwencji specjalnych.
I sekwencja ucieczki jest po prostu fantazyjny sposób na powiedzenie czegoś
że zaczyna się odwrotnym ukośnikiem, nie ukośnik, backslash,
i robi jakieś specjalne rzeczy.
I nie będziemy mieszkać na większość z nich, ale dlaczego jest interpretacja odwrotnego ukośnika podwójny cudzysłów,
o tym sądzisz?
Dlaczego jest to dziwne, sekwencja znaków, backslash cudzysłów,
dlatego, że może być przydatne?
STUDENT: [niesłyszalne].
DAVID MALAN: Dokładnie, tak?
Wróć myślami do naszego programu hello world które widzieliśmy kilka razy teraz,
każdym razem, kiedy widziałem, że Hello World Program mieliśmy cudzysłowów wewnątrz
z których cześć jest przecinek Świat backslash n.
Ale myślę sobie, Co zrobić, jeśli rzeczywiście
chciał wydrukować cudzysłów?
Twój może być pierwszy instynkt, ja nie wiem dlaczego może chcę do-- tutaj,
możemy być trochę pasywny agresywne, witaj przyjacielu.
Może chcemy zrobić coś takiego.
>> Ale dlaczego to jest teraz problem?
Ignorując cudzysłowy na bok, że Keynote automatycznie wykonane przez nas.
Dlaczego jest to problem?
>> Dokładnie.
Ponieważ mamy jak 4 cudzysłowie.
Cóż prawdopodobnie pierwsza idzie w parze z drugim,
a może czwarty idzie z trzeciego,
lub, to znaczy, że nie jestem nawet pewien, ani to komputer będzie.
Ponownie komputery, kompilatory ponownie, są dość głupie.
Zrobią tylko co powiedz im to zrobić.
A jeśli nie jesteś ich jednoznaczne Prawdopodobnie będzie rzucał błąd.
>> Jeśli nie jesteś jednoznaczne co do sposobu zrobić masło orzechowe i galaretce kanapek
dziwne rzeczy może przyjechać.
To ten sam pomysł.
Teraz wystarczy powiedzieć nie inne znaki specjalne,
ale my się do tych, przed długo.
Zasadniczo te ucieczki Sekwencje reprezentują coś
że może nie być w stanie zbyt łatwo na klawiaturze
bez mylące komputer.
>> Teraz zaś mamy zastępcze w printf.
Procent d, które mogą być również zapisywane W prawie wszystkich przypadkach, w procentach i,
jest symbolem zastępczym dla jakiego typu danych?
Jaki rodzaj wartości?
Liczba po przecinku.
Więc faktycznie zaczniemy stosując procent I dlatego, że jest
trochę prostsze, jak całkowita.
Procent i.
Całkowita, która dzieje się po przecinku.
>> Procent a już mówi się zastępczym ciągu znaków.
Który jest tylko słowo, zdanie, pkt, esej, cokolwiek.
Jest to sekwencja postacie z jakiejś długości.
I zobaczymy niedługo Niektóre z tych innych.
Ale procent c jest dla pojedynczego znaku.
Procent f jest liczbę zmiennoprzecinkową,
jak prawdziwy numer, który ma przecinka w tym, co
nie jest oczywiście całkowitą.
I jest cała grono innych.
>> Tymczasem, w C, w wielu językach,
mamy różne rodzaje danych.
Różne rodzaje szklane misy, jeśli będzie.
Miskę Kiedyś ostatni raz był dla piłek do ping-ponga,
ale możemy również przechowywać różne wartości, jak i ciągi znaków
i całkowite w pojemniku jak zmienna i C ma te.
Char jest typem danych, typ zmiennej
, w którym można przechowywać charakter.
Pływak jest typ zmiennej w które można zapisać liczbę rzeczywistą.
>> Int jest oczywiście dla wew.
I raczej śmiesznie nazwany długo długo
to gdzie można przechowywać w zasadzie bardzo długi numer, z jeszcze
więcej cyfr, a następnie Typowy sklep mógłby int.
Ale wrócimy do tego niebawem.
>> W CS50 dot godziny w międzyczasie inny plik nagłówka
które widzieliśmy kilka razy w użytku, nie
Dwa inne typy danych, które nie istnieją w C zazwyczaj.
Jednym z nich jest łańcuch, a my zobaczymy w Co kilka tygodni naprawdę łańcuchy
się pod wyciągiem.
I jeden jest bool.
I bool jest zmienna może tylko w niektórych wartości.
I właśnie na podstawie zeszłotygodniowej wyjaśnienie podstaw,
a ostatnio C co by się domyślić,
są dwie możliwe wartości że jest jakiś pojemnik typu bool?
>> Tak i nie.
Jedynką i zerem.
Prawdziwe, czy fałszywe.
I rzeczywiście jest to ostatni, który ma tendencję być konwencjonalny programowaniem
język, mówiąc coś jak prawdziwe lub fałszywe.
>> Tymczasem przychodzi biblioteka CS50 z wieloma funkcjami
że personel napisał dla Ciebie, Poza tym dopiero się ciąg.
Napisaliśmy, że w funkcji zaliczek może uzyskać liczbę całkowitą od użytkownika,
się pojedynczy znak, się pływaka, że
Jest to tylko numer z przecinku.
Pobierz długo długo, naprawdę duża wartość dla użytkownika.
Więc widzieliśmy tylko w ten działania w postaci getString.
Ale przez te funkcje wkrótce będzie w stanie napisać
Programy, które się danych od użytkownika.
>> Tymczasem pod tym Program, i rozważyć
jak możemy teraz zacząć dodawać się to z nowymi konstrukcjami.
Szybkie zwiedzanie wicher a potem zobaczymy
w niektórych pisanie niektórych programy ręcznie siebie.
Stąd, jeśli chcemy wprowadzić warunku
to nie będzie wyglądać ładny, mały ładny kawałek układanki.
To będzie wyglądać trochę bardziej zaawansowanych.
Ale to jest kanoniczny Struktura stanu w C.
>> Słowo, jeśli dwa nawiasów, wewnątrz
będzie jakiś z wyrażenia Boolean.
Teraz ukośnik ukośnik w środku, to jest
w tej chwili coś w rodzaju Kod pseudokod zastępczy.
Ale właściwie, każda linia kodu w C, który zaczyna się ukośnik ukośnik
jest komentarz.
>> To jak karteczki, które mógłby umieścić na esej, drukowane na papierze.
To uwaga do siebie.
To nie ma funkcjonalny Wpływ na programu.
To coś w rodzaju przypomnienia, to twoja dokumentacji, co się dzieje.
Tak jak to w tej chwili jest coś w rodzaju zastępczego
na co jest w środku tych klamrach
w końcu będzie coś zrobić.
>> Tymczasem masz dwa widelce w Droga, jeśli jeszcze skonstruować tak.
Możesz, jeśli, elseif, else.
Teraz warto zauważyć, zwłaszcza jeśli już Googling wokół
online dla zasobów spośród ciekawość, lub jeśli podnieść
jednym z przedmiotów jest Polecane książki o C,
widać, że ludzie mają wiele o różne preferencje, jak
wypowiadania się w kodzie.
Niektórzy ludzie lubią, aby umieścić nawiasy klamrowe jak zrobiłem tutaj.
Niektórzy ludzie lubią umieścić kręcone szelki na przykład tutaj.
>> Niektórzy ludzie lubią umieścić elses się tutaj, a następnie to tutaj.
Nie na wiele sposobów, aby Kod zapisu, i żaden z nich nie
rację per se.
Chociaż istnieje kilka że są całkiem złe.
Ale istnieje nie-- jeśli jest ostatecznie debata bardzo religijny.
W rzeczywistości, jeden z najbardziej irytujących rzeczy o informatyce
jest jak uparty informatycy mogą być.
A znajdziesz się w czasie, że nawet rozwijać osobiste preferencje
, jak Twój kod powinien wyglądać.
>> Nie tylko zachowywać, a nie tylko tworzenie kopii, ale jak to powinno wyglądać estetycznie.
Więc co możemy zrobić, to Cię wzdłuż droga w kierunku, przynajmniej na razie,
średnia stylu CS50, że co najmniej utrzymuje rzeczy jednolity i łatwy do odczytania.
Ale o tych, wyróżnienia przed długi.
>> Wyrażenie logiczne w C, jeśli Ciebie chciał powiedzieć, czy ten warunek jest spełniony
i ten drugi warunek jest prawda, nie napisać słowo
i, tak jak w języku angielskim.
Zamiast tego użyć ampersand ampersanda, z powodów wrócimy do.
Jeśli chcesz powiedzieć lub używać dwóch pionowe pasy, które na klawiaturze US
jest na ogół powyżej Enter klucz obok backslash.
A to po prostu oznacza, że ​​jeśli tego warunku albo ten drugi warunek jest spełniony to zrobić.
>> Tymczasem jest to szalona rzecz, która
będziesz miał okazję raz na jakiś czas używać.
Ale to tylko alternatywa sposób wyrazić siebie.
To, na razie, niech zastrzec, że to tylko
kolejny modny sposób wyrażania jeśli, elseif, elseif, elseif, elseif.
To tylko sformatowane w kategoriach przypadków, w których dosłownie
wyliczyć wartości, które warto sprawdzić.
>> Tymczasem pętle.
Widzieliśmy porównanie Scratch z pętlą.
I mam zamiar pomachać ręką na co każda z tych rzeczy oznacza.
Ale zauważ, że pętla będzie bardzo często rozpoczyna się od słów kluczowych dla.
Lub rozpocznie się czas kluczowym.
Albo zacznie się od słowa kluczowego zrobić, a kończy się na chwilę kluczowego.
>> Ale to, co mamy zamiar zobaczyć to rzeczy podobne.
Oto, w ogóle w C, jak to polubisz zadeklarować zmienną i nadać mu wartość.
W C nie wystarczy, jak w początku, po prostu
powiedzieć mi coś o zmiennej nazwie.
Musisz powiedzieć C, i powiedz kompilator, bardziej szczegółowo,
jaki rodzaj wartości prawda chcesz umieścić w szklanej misce.
>> Jest liczbą całkowitą?
Jeśli tak, to musisz dosłownie powiedzieć, int, a następnie
Nazwa zmiennej następnie średnik.
Jeśli zamiast tego chciał ciąg i nazwał to s jak ja mój kod tutaj dzisiaj,
powiedziałbyś String s średnik.
Gdy chcesz, aby nadać mu wartość można użyć znaku równości,
zwie operator przypisania.
I zauważyć, jak każdy tych linii kodu
posiada średnik na końcu.
>> Ale szczerze mówiąc to tylko wygląda trochę brzydki.
Dlaczego nie mogę powiedzieć do komputera, dają ja zmienna i zainicjować go do zera.
Oznacza to, że dał mi pustą szklaną miskę.
Póki możesz.
I tak jeden z wyroku zwraca będziesz trzeba wprowadzać z czasem stylistycznie
jest, piszesz kod jak poniżej, lub masz trochę posprzątać i zaimponować
ludzie pisząc dwie linie jako jednego.
A to uznać ogólnie bardziej elegancki sposób
pisania kodu stylistycznie.
>> Funkcje jesteśmy oczywiście widziałem.
Zamierzają zabrać ten format.
Nazwa funkcji niektórych nawiasie, a następnie być może niektóre
rzeczy wewnątrz.
Lub można zobaczyć zastosowania Wielorakie funkcje po stronie
przez strony, jak coś takiego.
Teraz jako stycznej, nie to żart, teraz ma sens?
>> [Śmiech]
To nie znaczy, że to śmieszne, ale to nie może zarobić trochę więcej sensu.
Teraz idziemy do Urządzenie CS50 chwilę.
I pozwól mi otworzyć jeden zwiastun tutaj.
>> I rzeczywiście jedna z przyczyn Katalog IKEA na wprowadzenie
i migający obraz iPhone nieco temu
było faktycznie powiązać razem Fakt, że zaledwie kilka lat temu, w 2007 roku,
ten kawałek kodu był zwolniony, który został
jedna z pierwszych realizacji kawałek oprogramowania
że robi to, co się nazywa jailbreaking.
Dla osób niezaznajomionych, jailbreaking coś w telefonie lub iPhone
oznacza w istocie dowiedzieć się, jak robić rzeczy,
z tym, że firma , który sprawiał, że nie zamierza.
Jak chcesz zainstalować pewne oprogramowanie, które nie jest w App Store,
jailbreaking telefonu, który robisz takich rzeczy i więcej.
Ale to, co było zabawne w 2007-- i nie było
dziesiątki różnych wersjach z tych rzeczy, od tego czasu,
w różnego rodzaju languages-- jest to, że ten program tutaj, zwany iUnlock,
został faktycznie napisany w C. I tak zatrzymał się kod źródłowy do tego,
tylko rodzaj pokazać niektóre z podobieństwa z konstruktów
my omawialiśmy do tej pory.
Teraz jest o wiele bardziej złożony tutaj niż widzieliśmy już w klasie.
Pozwól mi przejść się tylko trochę tutaj.
>> Ale zauważ these-- dobrze zauważamy kilka things-- nie zauważyć tych linii tutaj,
w tym Standard I / O dot godz.
I all-- linia 24, please-- zawiadomienia Standard I / O
punkt H i cała masa innych Pliki, które najwyraźniej inni
napisałem.
A jeśli przewinąć w dół to trochę arbitralny,
Zauważ, że nie wiem, jak napisać wszystko to jednak ja zawsze,
ale nie wtedy, gdy.
Więc najwyraźniej ma oddział.
>> A jeśli trochę przewinąć w dół dalej jest jeszcze jeden, jeśli.
Gdybym przewijania w górę, myślę, wokół linii 100 widziałem na.
Więc nie jestem pewien, jak jeszcze to działa,
ale to jest na pętli, która będzie pozwól mi iteracyjne jakąś liczbę razy.
A jeśli przewinąć wszystkie aż do dna
Widzę, że nie ma działało tu nazywane
Głównym, i kilka dodatkowych kredytów dla przyjemności czytania.
>> Więc to jest tylko say-- a my umieścić to w Internecie wśród źródła kursu w
Kod today-- że nawet niektóre z nich Urządzenia, które bierzemy za pewnik,
na koniec dnia nadal jesteś korzystania z tych podstawowych elementów, na które mamy
było wprowadzenie już do tej pory.
To tyle z tego.
Dobrze, więc teraz niech faktycznie zbudować coś.
>> Chodźmy poza czymś takim hello.c i otwarcie to,
napiszmy program tutaj.
Mam zamiar iść do przodu i Napisać program o nazwie adder.c,
którego celem w życiu będzie jak mój pierwszy bardzo prosty kalkulator
że po prostu dodaje kilka liczb.
Nie dlatego, że jest ciężko problem, ale dlatego, że
Pozwala mi to teraz powiązać ze sobą kilka rzeczy.
Więc mam zamiar iść do przodu i obejmują Standard I / O i CS50 kropka kropka h h.
Idę powiedzieć int main pustkę.
I ponownie w przyszłości wrócimy do tego
się w tym kontekście i utratę środków.
>> A teraz mam zamiar coś powiedzieć jak printf, dają mi całkowitą.
A teraz na mojej drugiej linii, jak mogę wyrazić siebie takie
że chcę zadeklarować zmienną że będzie przechowywać int?
Dosłownie co mam wpisać, jeśli chcę utworzyć zmienną, która przechowuje int
można by powiedzieć?
int równa getint.
Jasne więc, że działa.
I właśnie dla spójności z kodem będziesz
zobacz online, pozwól mi zmienić to x, tylko dlatego, że x
jest wspólna nazwa zmiennej używać przynajmniej algebraicznie.
Teraz pozwól mi iść do przodu i nie printf ponownie.
Daj mi jeszcze całkowitą.
A teraz idę do rodzaju z uczenia się od tego wzoru,
Idę powiedzieć int y dostaje GetInt.
>> I nie używałem GetInt wcześniej, ale po prostu
jak GetString idzie i dostaje ciąg, jak Javier sam z publicznością,
Podobnie robi GetInt zacznie migać monitu.
I skutecznie czeka na użytkownika dać mu liczbę całkowitą, wpisując go w
i nacisnąć Enter.
Teraz wreszcie mam zamiar zrobić tego, printf sumę of--
i niech mi ochotę teraz-- procent i oraz procent i jest obecny
i wykrzyknik backslash n.
A co ty myślisz, że zamierzam wprowadzić teraz jako dodatkowe wejścia
do printf?
>> Nie chcę powiedzieć, dosłownie cytatu x.
Chcę w X i klasy wtedy, a teraz przejdźmy fantazyjne
i niech po prostu założyć, możemy robić, co chcemy.
Co chcesz powiedzieć dalej?
x dodać y.
I rzeczywiście, że będzie działać.
Jest minimalnie języków programowania rozumiem podstawowe działania arytmetyczne,
i tak to powinno w rzeczywistości praca.
>> Więc pozwól mi iść do przodu i rób dodatek w moim czarnym i białym oknie
tu, Enter.
Cryptic linia, ale nie błąd wiadomość, więc to jest dobre.
Dot slash adder, dają mi całkowitą, 1.
Daj mi jeszcze jedną liczbę całkowitą, 2.
Suma 1 i 2 jest 3.
>> W porządku, więc dość banalna programu, ale co to się robi?
To pozwoliło mi użyć funkcji zadzwoń tutaj, wywołać inną funkcję tutaj,
dwie rozmowy, a do GetInt trzecie zaproszenie do printf,
a następnie za pomocą tych symboli zastępczych.
Więc jest to trochę bardziej wyrafinowane niż ostatnim razem.
Ale co, jeśli chcę trochę hodowcy?
>> Pozwólcie mi iść do przodu i teraz to zrobić.
Pozwólcie mi iść do przodu i tworzyć nowy plik o nazwie warunki zera.
I mam zamiar zapisać jakiś czas ze względu na klasy
i po prostu wkleić, że Kod jako punktu startowego.
A teraz jestem po prostu zamiar umieścić coś nowego się tu w środku.
Więc printf Chciałbym liczbę całkowitą proszę.
A wszystko to dostępne jest kod na stronie kursu, w
nie musisz wpisać to wszystko w klasie, jeśli raczej nie.
int, i teraz mam zamiar używać zamiast x i y,
Zamierzam użyć n, która jest prawdopodobnie najczęściej nazwę
o oznacza liczbę całkowitą w programie komputerowym.
A teraz chcę zrobić mały wyrok tutaj.
Idę zobaczyć, czy n jest większa niż 0, wtedy
Idę powiedzieć printf-- okrzyki, printf-- wybrałeś liczbę dodatnią,
wykrzyknik backslash n.
Zamknij to.
Jeszcze mam zamiar wydrukować printf wybrałeś liczbę ujemną.
>> Teraz przed krzycz na mnie, niech uruchomić ten program.
Puść mnie tutaj.
I jak mogę skompilować program zwane warunki kreska 0?
Dodać warunki kreskę 0.
To za głupia nazwa, ale-- cholera.
OK, dobry moment nauczania.
Dlaczego, że złamać?
>> Co ja przypadkowo nazywają ten plik?
Niby można wywnioskować, z zakładki tutaj.
Więc nie jest źle, że zrobił, ponieważ
stanie się być może dla niektórych z was.
Tak przypadkowo nazwany moim Kod źródłowy stan 0.
Ale mój kod źródłowy powinien umownie się w pliku o nazwie Stan 0 kreska c,
lub cokolwiek kropka c.
>> Więc pozwól mi to naprawić.
Podobnie jak Microsoft Word można iść polecenie Zapisz jako, a nie stan 0 dot c.
Teraz po prostu być schludny jestem zamiar iść do przodu i wyjmij
Stan 0, która była moja stara wersja.
A teraz robią Stan 0, Enter.
OK, wydaje się dobry.
>> Stan 0, Enter.
Chciałbym liczbę całkowitą proszę, 50, wybrałeś liczbę dodatnią.
Teraz jak o ujemnej 50?
Wybrałeś liczbę ujemną.
Jak się teraz, 0.
Prawie pewien, 0 nie jest negatywna.
>> Tak więc jest to rodzaj logicznego błędu.
Jak mogę rozwiązać ten problem?
Else if n jest mniejsze niż 0, to jeszcze zrobić możemy mieć trzech sposób oddział tutaj,
printf wybrałeś 0.
Więc teraz, jeśli ponownie uruchomić ten Program, to po kompilacji
ponownie marki, a teraz ponownie uruchomić Stan 0, co zobaczymy tutaj
jest 0 daje mi ten wynik.
Więc gdzie jedziemy z tym?
>> Dobrze, że to bardzo łatwo stracić z oczu lasu dla drzew.
I tak pozwalają stwierdzić, z tego 2 i pół minuty filmu
który jest ostatecznie nieco z reklamy w Google,
ale to naprawdę jest świadectwem co nawet przy użyciu tych podstawowych budynku
Bloki można ostatecznie zrobić raz mamy trochę programowania
Savvy ramach naszych pasów.
>> [MUZYKA GRA]
>> SAROO BRIERLEY (głos w tle): To było 26 lat temu,
a ja po prostu z kolei o 5.
Dotarliśmy do stacji kolejowej i wsiedliśmy nasz pociąg razem.
Mój brat powiedział, że będzie po prostu tu, i wrócę.
I pomyślałem, dobrze wiesz, Równie dobrze mogę po prostu iść spać
a on po prostu mnie obudzić.
A kiedy się obudziłem obok dzień, cały wózek
był pusty na uciekający pociąg, duch Pociąg zabiera mnie nie wiem gdzie.
>> I został przyjęty do Australii, do australijskiej rodziny.
I moja mama nie urządzone pokój z mapą Indii,
która położyła obok mojego łóżka.
Obudziłem się rano widząc, że mapy, a tym samym
to jakby trzymane wspomnienia żywe.
Ludzie mówią, że jesteś próbuje znaleźć igłę
w stogu siana, Saroo nigdy nie znajdziesz go.
>> Bym błysnął z miejsc, które ja chodziłem miga mojej rodziny
twarze.
Był obraz mojej matki, siedzi z nogami skrzyżowanymi,
tylko oglądanie jej krzyk.
Życie jest tak trudne.
To był mój skarb.
I szukałem w Google Map i realizowany jest program Google Earth, jak również.
W świecie, gdzie można przybliżyć, Zacząłem mieć wszystkie te myśli
i jakie możliwości że może to dla mnie zrobić.
Powiedziałem sobie, wiesz, masz Ma wszystkie te wspomnienia fotograficzne
i punktów orientacyjnych, gdzie jesteś, i wiesz co miasto wygląda.
To może być wniosek, że można użyć, aby znaleźć się z powrotem.
>> Myślałem, jak włożę kropka na stacji kolejowej Kalkuty,
i linia promienia, wiesz, że ty powinno być wyszukiwanie wokół tego obszaru.
I jakby natknął te tory kolejowe.
I zacząłem po nim, i Doszedłem do dworca kolejowego, który
odzwierciedlenie tego samego obrazu to było w moich wspomnieniach.
Wszystko dopasowane.
Pomyślałem, Tak, ja wiem, dokąd idę.
Idę do wynajęcia Mapa, że ​​mam w głowie
prowadzi mnie i weź mnie z powrotem do mojego rodzinnego miasta.
>> Doszedłem do progu dom, że się urodziłem.
I chodził po około 15 metrów za rogiem,
tam trzy panie stoi zewnątrz, obok siebie.
I jeden krok do przodu w średnim i Pomyślałem, to twoja matka.
Podeszła do przodu, ona przytuliła mnie i byliśmy tam przez około pięć minut.
>> Złapała mnie za rękę i wzięła mnie do domu
i mam w telefonie, gdzie zadzwonił moją siostrę i brata
powiedzieć, że, wiesz, Twój brat ma tylko
wszyscy nagle pojawił się jak duch.
A następnie została ponownie zjednoczona rodzina.
Wszystko jest dobre, Pomogłam matce z,
Nie musi być slaving dalej.
Ona może żyć przez resztę jej życia w pokoju.
>> To było igły w stogu siana, ale igła było.
Wszystko tam jest.
Wszystko, co mamy na świecie jest na dotknięcia.
Ale musisz mieć wolę i determinacja chcąc go.
>> [MUZYKA GRA]
DAVID MALAN: Cudownie słodkie opinię
się tylko to, co można teraz zrobić z technologią.
Będziemy zobaczenia w przyszłym tygodniu.