>> DAVID MALAN: To CS50, a to Jest to początek jednego tygodnia.
I to, co myśleliśmy, że możemy zrobić, to pociągnąć Kurtyna urządzenia, które wielu
z masz prawdopodobnie minął teraz lat, ale nigdy nie może całkowicie
Wiadomo, co to jest.
Więc to urządzenie będzie prawdopodobnie wyglądać znany większości z was teraz.
>> [PLAYBACK VIDEO]
>> -Triumf matematycznych i mechaniczne umiejętności jest ta wielka nowa
Kalkulator na automatyczne Harvard University.
Skomplikowane problemy w matematyce umieścić przez urządzenie w postaci zakodowanej na
taśmy są dokładnie rozwiązany w minutę ułamek czasu wymaganego
ludzka kalkulacja.
>> Zaprojektowany w celu przyspieszenia wszelkich form matematyczne i naukowe,
giant mechaniczny mózg pracują dla Stanów Zjednoczonych
Navy aż do końca wojny.
>> [END PLAYBACK VIDEO]
>> DAVID MALAN: Więc to jest to, co można zobaczyć w Science Center, czyli tam, gdzie
że maszyna znajduje się obecnie.
Tak naprawdę tylko zobaczyć część.
Tylko część jest obecnie na wystawie, i to nazywa się urządzenie
Mark I, i to było w zasadzie naprawdę ogromny kalkulator.
Jego następcą został Mark II, to od Mark II, że faktycznie
się nieco z leksykonu.
>> Jest to pierwszy odnotowany przypadek coś masz zamiar stać się wszystko
zbyt dobrze na Przebieg semestrze -
mianowicie błąd.
Tak więc okazało się w pewnym momencie znaku Urządzenie II nie funkcjonuje
prawidłowo, a po bliższym przyjrzeniu, był rzeczywiście błąd - ćma -
że ćma -
wewnątrz.
I od tego czasu, mamy określone błędy w programach, jak robaki.
Tak bardziej na tym, by przyjść.
>> Mówiąc o filmie, a także, jeśli nie już, że CS50 jest
oczywiście sfilmowane.
Wykłady zazwyczaj idą w górę tuż po class w rodzaju pre-release
bez edycji format, a następnie dzień lub dwa później kładziemy się wyższą rozdzielczość
i wyższa wersja jakości.
Można przypomnieć, Vanessa, który miał majątek grając z Google Glass,
które pamiętam do naliczyć czas.
Więc jeśli chcesz pochodzić po lekcjach i grać, powinny działać już dziś.
A jeśli chcesz zobaczyć, co Vanessa zobaczył drugi dzień, co zobaczysz
tutaj - chciałbym zwiększyć głośność tutaj, na moim laptopie.
>> [PLAYBACK VIDEO]
>> -Więc pozwól mi stać w kolejce to się.
Dobrze.
Więc dotykaj tego.
Dobrze.
OK, szkło.
Nagrywanie wideo.
>> Dobrze.
Vanessa?
>> [END PLAYBACK VIDEO]
>> DAVID MALAN: Dobrze, więc powód , że to nie działa dla większości z was na
koniec klasy dlatego udałem aby nagrać godzinę że
footage, wskazując na siebie po Włożyłem okulary dół.
Więc dziś, zostawię je, ale dzięki Ci Vanessa za to, że takie
okrutni.
>> Tymczasem para ogłoszeń przed posunąć się naprzód dzisiaj.
Tak jeden, CS50 ma tradycję robi co możemy, aby starać się bardzo
Duża klasa czują mniejszy.
I ku tym celu najbardziej każdy piątek, gromadzimy się w restauracji w
square, Fire and Ice, z 30 lub 40 z kolegami, ja, niektórzy z
kadry nauczycielskiej, a my po prostu mają bardzo nieformalny lunch.
Często zapraszamy przyjaciół z branży, Absolwenci tej klasy, absolwenci
uczelni, tak naprawdę porozmawiać każdego inne się, porozmawiać o życiu po
college, życie w college'u, i tym podobne.
Więc jeśli chcesz wziąć udział w tym Pierwszy taki w ten piątek na obiad
13:15, do głowy, że URL w pewnym momencie.
>> Przestrzeń jest ograniczona, więc zrobimy kto pierwszy ten lepszy.
Ale zrobimy to jeszcze raz na powtarzające bazy, więc się martwić, jeśli nie
uczynić go do tej pierwszej partii.
>> Teraz, pod względem zasobów, pod warunkiem, curricularly według kursu
tam jest całe mnóstwo, a jeśli nie mają podciągnął kursu GG
już w szczególności, w ramach wykładów, przekonasz się, że wszystko
udało nam się w zeszłym tygodniu jest tam, zarówno wideo i pewnego rodzaju
w formie elektronicznej.
Ale poza wideo, znajdziesz że obecnie pełny tekst
transkrypcji, na przykład, każdego wykładu.
>> Jeśli więc rzeczywiście powrócić do tego ekranu tutaj z Vanessą i nawigacja
do dolnego rogu ekranu, przekonasz się, że w rzeczywistości, a nie dla
Piątkowy wykład, ale jeśli wrócimy do Środa, ponieważ funkcja ta ma
Kilka dni, przekonasz się, że możesz faktycznie podciągnąć, na dobre i na
gorzej, każde słowo, że ja lub Wolontariusz na scenie powiedział.
I więcej niż tylko to.
Rzeczywiście można sprawdzić to można Kliknij na jeden z tych zdań, skakać
do tego punktu w filmie, wszystko ku i koniec udostępniania materiałów wszystkie
bardziej żeglowna.
>> Ale jeśli nie chcesz po nim tak szczegółowo, znajdziesz na
instancji, to małe menu tutaj 1.5x prędkość, 2x prędkość, lub i f i już
mówić za szybko, 0,75 x prędkość.
Więc sobie sprawę, że to wszystko dostępne dla ciebie.
>> Ale poza tym, na wykłady, uświadomić sobie, że również te zasoby
również dostępne.
Slajdy, przykładowy kod, wszystko, co mam zrobić na scenie lub przed klasą,
będziemy zamieszczać tam tak, że można grać razem w domu lub w Sanders.
Ale co my też myślałem, że możemy to zrobić roku po raz pierwszy również
dostarczy Ci solucje z tych przykładów.
Coraz częściej, jak już odzwierciedlenie na wartość wykładów CS50 jest, Zacząłem
na pytanie, jak przydatne jest to dla wy tam siedzieć, na mnie stać
tu, i dla mnie, aby porozmawiać na ciebie, zwłaszcza jako materiału,
przykłady, uzyskać bardziej złożone.
Bo zawsze, po pewnej liczbie minut, ktoś będzie strefa, i
wtedy przegapić jakąś kluczową wiedzę niektórych przykładem, a następnie jesteś w istocie
boisko do pozostałej części grupy, które nie najlepsze wykorzystanie jest
Twój czas, lub, rzeczywiście, nasze zbiorczo jako klasy.
>> A więc to, co myśleliśmy, że będziemy starać się zrobić, w szczególności dla niektórych bardziej
złożone przykłady, że nie może zrobić sprawiedliwości w klasie, że nie może
ma czasu na w klasie, albo może tylko strefa w czasie, to będziemy produkować
Seria solucje z tych przykłady tak, że jeśli się do, na
instancji, strona ostatnia piątkowa film tutaj poniżej przykłady, przekonasz się, że
na piątek, to jest teraz link do solucje.
I format tych zmienia się w czasie.
Na razie używamy proste YouTube odtwarzania.
>> Ale to, co zrobił z naszego zespołu produkcyjnego potem było przejść przez każdy
i każdy z tych przykładów ponownie, miejmy nadzieję, wskazując na znacznie większe
jasność dokładnie to, co dania na wynos może być albo powinny być od siebie.
Więc znajdziesz, na przykład, od ostatniego tygodniu, we wszystkich przykładach podstaw
przeszliśmy wykonywane są liniowo w tym modzie.
Dlatego zachęcamy do zaangażowania się, czy nie angażować się w tym materiale.
Naprawdę temat tego konkretnego przedmiotu jest to, że nie ma chyba więcej
w drodze środków niż ty mogłoby wchłonąć w ciągu
trakcie semestru.
>> Ale to jest celowe.
To ma być tak, że jako Poszczególne studenci mogą samodzielnie wybrać
na podstawie swojego stylu uczenia się.
Więc jeśli zajęcia pracować dla Ciebie, to świetnie.
Jeśli części działa, świetnie.
Jeśli solucje pracy dla lepiej, to świetnie.
To naprawdę będzie do ciebie, aby wybrać Jakie zasoby dla Ciebie najlepszy.
>> Wreszcie, dzięki wychowanek Oczywiście, oferujemy również kanonicznej
zestaw notatek pisarza.
Zamiast więc mają chłopaki głowy w wykładach scribbling dół
rzeczy, które pojawią się w klasie, my, personel, zapewni Ci to, co
czuję to kanoniczny zbiór informacji dodatkowej do uwolnić się od tego szaleństwa, tak że
jeśli jesteś tu i zaangażowany, jesteś naprawdę zaangażowany w to, co się dzieje,
z kolegami robią się na etapie, z tym, co się dzieje na ekranie,
a nie tylko spisanie verbatim co się stało, że zostało powiedziane.
Więc zrealizować wszystkich tych zasobów są dostępne dla Ciebie.
>> Cięcie, w odpowiedzi na FAQ, rozpocznie się w środę.
My w zasadzie czekać, aż po najbardziej inne klasy są zrobione tak, że możemy
zminimalizować liczbę zmian że musimy zrobić.
Ale zbliża się w ten weekend, począwszy Niedziela, będzie jedna instancja czas
Super nazywamy sekcje.
Te będą filmowane dla tych, którzy nie mogą udziału, a zasadniczo,
Oczywiście szefowie poprowadzi nas przez niektóre z części C w trakcie,
w kierunku końca Zadanie w jednej, która będzie nasz pierwszy oparty C
zestaw problemem.
A to będzie tylko opcjonalne sekcje w oczekiwaniu na to, co będzie
Sekcje doprowadziły powtarzających się wg kursu na 50 plus
nauczania chłopcy tygodniu.
W niedziele i poniedziałki lub wtorki, my mają 90 minut sekcje w bardzo
tradycyjnym sensie, który będzie szanse na rękach na więcej
kameralny przegląd Materiał Kursu.
>> Bez zbędnych ceregieli, chciałbym przedstawić Kurs szefowie, którzy są
za kulisami ze mną, czyni wszystko, co się stało.
Jeśli ci, dzisiaj może dołączyć do mnie, Rob i Lauren i Joseph i Lucas, wszystko
z nich zostały z Kurs na jakiś czas.
RJ jest trzecią tego typu członek naszego zespołu.
Nie mógł być tu dzisiaj, ale zapytał mnie, aby pokazać zdjęcie z nim.
Nie jestem pewien, czy chce tego jeden, ale tam jest.
>> I niech mi tylko umożliwić zespołowi powiedzieć witam i przedstawiają się tak, że
poznać je jak swoje własny kumpel nauczania tego terminu.
>> LAUREN CARVALHO: Hi.
Nazywam się Lauren Carvalho.
Jestem mieszkańcem tutor w Leverett House.
Jestem również bardzo podniecony być TV głowy dla CS50 tego roku.
>> CS50 jest bardzo trudne, jak również klasy jako klasa bardzo duża, więc jeśli
masz jakieś obawy, jeśli masz ochotę jesteś w tyle, nie krępuj się
dotrzeć do każdego z nas w heads@cs50.het, lub do mnie, jeśli bym
lubię grać z moim golden szczenię.
Oto Lucas.
>> LUCAS FREITAS: Hej, ludzie.
Nazywam się Lucas Freitas.
Jestem młodszy [niesłyszalne]
informatyka i medycyna.
Jestem faktycznie z Brazylii, a ja również realizacji studiów wschodnioazjatyckich.
Więc jeśli masz jakieś pytania dotyczące informatyka lub język lub
nic, po prostu daj mi znać.
Lub CS50, szczególnie.
>> JOSEPH ONG: Hi.
Jestem Joseph.
Jestem starszy komputer studia Nauka w Elliott House.
Więc, zobaczmy.
Zobaczysz mnie po realizacji jedna z tych dużych kamer.
Jestem mieszkańcem fotograf personel do 50, jak również, a studenci często
czasami mylą mnie Asian turystyczny.
>> Więc jeśli zobaczysz mnie z aparatem, nie uciekaj.
Wystarczy uśmiech i nie wstydź się.
I mam nadzieję, że lubisz 50.
I jesteśmy bardzo zadowoleni, gdy wziąłem go, i dlatego byłem TFing dla
te trzy lata.
>> ROB BOWDEN: Hi.
Jestem Rob.
To mój czwarty semestr z CS50.
I właśnie ukończył w maju.
Byłem w Kirkland.
Jestem podekscytowany tym semestrze, i mam nadzieję, że też.
>> DAVID MALAN: Dziękujemy tym roku głowy, i do gniazda RJ oraz.
>> Więc kilka uwagi końcowe na temat zasobów.
One, p set 0 jest już w górę.
To taki istnieje tylko w standardzie edycja, która jest przeznaczona na
Całość klasy.
Począwszy p zestaw 1, nie będzie edycje hakerów większości zestawów problem,
co znów obejmie materiał z nieco większym wyzwaniem, a
wciąż dotykając na niektóre z tych samych tematów.
Czy spojrzeć na stronie internetowej kursu do tej specyfikacji, do zestawu p 0.
>> Godziny pracy, zbyt, rozpocznie się w tym tygodniu, dzisiaj, jutro, środa,
i czwartek w różnych restauracji hale na terenie kampusu.
Sprawdź cs50.net/ohs dla biura godzin dla kursu, a to zrealizować
będzie bardzo przypadkowi szans, Oczywiście, na początku
semestr, aby przyjść z telefonem laptop podczas przerwy mózgu.
Weź ze sobą przyjaciół i porozmawiać up Oczywiście w TFS i CAS z którymkolwiek
pytania, na które można mieć.
>> I nie mogę podkreślić wystarczająco dużo, nawet dla set scratch i problemem 0, istnieje
naprawdę nie jest głupie pytanie.
Nie ma zbyt niewygodne uczeń do zadawania pytań.
Zapraszamy do skorzystania tego zasobu.
Będzie to nie recurringly przez cały semestr,
jak będzie CS50 Omów.
To trakcie dyskusji w Internecie Fora w tej adresu.
>> Co będziemy też robić podczas wykładów jest również monitorować to, dzięki
przebiegiem kursu zespół nauczycieli.
I tak, jeśli masz pytanie podczas wykład, bo powiedział coś
słabo lub wcale, na wszelkie sposoby, zapytaj , które w czasie rzeczywistym, jeśli masz
laptop lub telefon na stronie internetowej, a dołożymy wszelkich starań, niemal w czasie rzeczywistym do
odpowiedzieć.
>> Czy są jakieś pytania o CS 50?
Wtedy jeden z moich ostatnie nuty.
To kwestia SAT UNSAT.
Jak sfinalizować swoje karty badań, jeśli nie już sobie sprawę, że
Nadrzędnym wizja SAT UNSAT, dostępne dla wszystkich studentów, jest naprawdę
aby pomóc stępić kursu w ten sposób, że tak powiem, tak, że jeśli
znaleźć się późno w nocy, 2AM, 3 nad ranem, naprawdę walić głową przeciwko
Ściana, gdzie wiesz, że 99% sposób nie do końca, ale
mają tak wiele innych rzeczy do zrobienia, Myślę, że lepsze wykorzystanie, często z
Czas uczniów jest rzeczywiście przejść do te inne rzeczy, tak, że można
optymalizacji czasu dookoła.
I SAT UNSAT jest jeden mechanizm, za pośrednictwem której można się pocieszyć faktem
, że 99% z tej drodze występuje nadal cholernie dobry.
>> Podobnie też, jeśli już wchodzą w Kurs bez uprzedniej tle lub
nie tak bardzo jak ty background że twoi koledzy mogą mieć, prawda
lub fałszywe, uświadomić sobie, że jest to możliwość ubrudzić sobie ręce
z kursu, umieścić swoje palce w wody, by tak rzec, tak jak ja
A rok temu z pass / fail.
Jak powiedziałem w zeszłym tygodniu, miał ten kurs, jak inni, nie był dostępny
pass / fail w czasie, pewnie bym Nie kiedykolwiek weszliśmy w
Klasa, choć ja, pięć tygodni później zmienić zdanie, które
może równie dobrze, i przełączyć się na lub list stopniowanej statusu.
>> Dobrze.
Więc spojrzał na rzeczy, jak to na Piątek, a my bardzo szybko idzie
do przejścia na coś, co wygląda bardziej tajemniczo dzisiaj.
Ale to jednak same podstawowe pomysł.
Jaki był ogólny termin, że używane do opisania kawałek układanki
że wyglądało to?
>> Więc stwierdzenie.
I możesz nazwać każdy wiele rzeczy.
Ale my po prostu nazwać to oświadczenie, oraz oświadczenie
tylko że program -
lub w przypadku podstaw sprite -
coś zrobić.
Przywitaj się w tym przypadku.
>> Coś jak to my zamiast nazywa co?
Tak więc wyrażenie logiczne.
Wyrażenie logiczne jest tylko coś to jest prawdziwe, czy fałszywe, a więc Scratch
przyciąga je z tym kształcie, ale także ze znakiem zapytania, aby przekazać
Pomysł, że odpowiedź na to pytanie jest albo prawdziwe, albo fałszywe, tak lub nie
jeden, 1 lub 0.
>> I używamy tych wyrażeń logicznych wewnątrz konstrukcji takich jak te, które
nazwaliśmy co?
Tak więc, stan lub oddział.
I stan można zobaczyć tutaj w Scratch ma trochę zastępczy dla
kawałek układanki z tego kształtu, celem które jest tak, że można
przeciągnij i upuść go na górze, a następnie dyktować programu, jeśli Boolean
wyrażenie jest prawdziwe, czy ten zestaw instrukcje, to zestaw wypowiedzi,
inny zrobi to inny zestaw instrukcji.
>> I przypominają, że można gniazdo tych rzeczy.
Mimo, że nie ma wiele miejsca jest wizualnie w tym kawałek układanki, Scratch
rosną i kurczą się, co Puzzle można przeciągnąć i upuścić w
tam więc można faktycznie to i gniazdo posiada trzy widelec sposób w drodze.
Jeśli, else if, else.
A może nawet ponad to przez gniazdowania dalej i dalej w razie potrzeby.
>> Więc wreszcie zobaczyliśmy konstrukcje, takie jak ta, inaczej znane jako pętli.
I to jest właśnie coś, co robi coś znowu i znowu i znowu.
W tym przypadku, okazuje się być ograniczone Ilość czasu, ale także
zobaczyłem przykład gdzie liczba razy przyszedł ze zmiennej, więc
może się zmienić.
I my także zobaczyliśmy zupełnie inny blok nazywa zawsze blok, który
pozwoliło nam na pętli nieskończenie długo.
>> Więc jedna konstrukt Scratch 2,0 ma - i ci z was, więcej
wygodne z wcześniejszego tle są już dobrze zaznajomieni z tym
budowy -
te rzeczy, które nazywa co?
Więc zadzwoniliśmy tych funkcji, w przeciwnym razie znany jako procedur.
Jest niewielka różnica semantyczna, ale my nazywamy je tylko funkcje.
>> I funkcji, w przypadku podstaw jest kawałek układanki, który na zlecenie
można samemu stworzyć, mając nowy kawałek układanki, że w tym
Sprawa, która zostanie nazwana kaszel, że pojawia się wśród wszystkich innych
dostępne puzzle w Scratch.
Chociaż MIT nie wymyślił ten kawałek układanki, zrobiłeś.
>> Więc funkcja pozwala na tworzenie nowych zachowanie, nadać mu nazwę funkcji, a
Następnie nazwać to, że tak powiem.
Naprawdę używać go w programach ponownie i znowu i znowu, bez konieczności oczekiwania
dla kogoś takiego jak MIT w dół drogi do wymyślać nowe funkcjonalności od podstaw.
Można samemu zbudować te puzzle kawałki siebie, a następnie ponownie je
w swoich programach.
I zobaczymy przykład cyklicznego o tym już dziś i nowsze.
>> Więc dzisiaj, przejście teraz na coś bardziej tajemnej.
A na koniec dnia, coś bardziej wydajne i bardziej ekspresyjny i
Przedstawiciel ścieżce, że będziemy na wszystkich semestru w całym szeregu
języków -
że kodu lub kodu źródłowego.
I kod źródłowy, jak się okazuje, nie jest to, co komputer
zazwyczaj faktycznie działa.
Kod źródłowy wygląda tak.
>> Tak jest, ponownie, chyba najłatwiejsze Program możemy zapisać w
Język nazywa C. Zaczniemy dokuczać to apart niedługo, a jeśli
to naprawdę nie wygląda jak grecki do ciebie teraz, zaufaj mi.
W zaledwie tydzień lub dwa w czasie, to będzie zbyt dobrze i faktycznie
dość przedstawiciel coraz złożone przykłady, z którymi będziesz
również uzyskać bardziej komfortowe.
>> Ale nie można po prostu uruchomić to rodzaj kodu zwykle.
Trzeba przekształcić go w coś, co Komputer sam rozumie.
I tak, że musimy coś idziemy do wywołania kompilatora.
Kompilator to program, który ma Kod źródłowy, jakbyś zobaczył, jak
Wejście i produkuje zer i te, jako wyjście, inaczej
znany kod obiektu.
I to te zera i jedynki, że może wyglądać zupełnie tak, że
ostatecznie rozumie od komputera Mac lub komputera.
>> Jeśli kiedykolwiek słyszał obrotu Wyrażenie Intel Inside, że tylko
Oznacza to, że firma o nazwie Intel produkuje
mózg komputera -
zwie procesora, jednostka centralna -
i to jest właśnie to, że rozumie wzory
zer i jedynek.
I tak przez konwersję kodu źródłowego do kod obiektu w tym procesie tutaj
że zrobimy z kilku komend za chwilę, jesteś
tworzenie wzorców zer i jedynek że pracownicy Intela mają
postanowił reprezentować pewne stwierdzenia.
>> Teraz nie bardzo wiem co jest co po prostu patrząc na
te zera i jedynki.
Większość ludzi w dzisiejszych czasach nie.
Ale gdzieś istnieje wzór zer i jedynek, które reprezentuje
print oświadczenie.
Gdzieś tam może być inna zestaw zer i jedynek, które
reprezentują pojęcia forever lub powtórz 10 razy lub nawet Miau, jeśli jest to
rzeczywistości program, który może m.in. kilka dźwięków.
>> Tak w skrócie, ludzie po prostu postanowił, podobnie jak to było w przypadku ASCII -
dla liter alfabetu w zeszłym tygodniu - ludzie zdecydowali, że nawet
bardziej skomplikowane wzory zer i jedynek reprezentują bardziej złożone zachowania
jak drukowanie lub mówiąc lub miauczy.
I tak do dziś, w dużej mierze dalszy w semestrze, weźmiemy na
pewnik, że ktoś zorientowali się, jak to zrobić mapowanie.
Ale, zgodnie z tym pomysłem warstwy na wierzchu pracy ludzi
którzy już się przed nami, będzie dla przyznała, że ​​to się dzieje
pod maską.
Ale my jesteśmy bardziej zainteresowani rzeczy budowlanych, które są bardziej
ciekawe na szczycie tego wszystkiego.
>> I tak rzeczywiście, pierwszy program my napisał w Scratch to było super proste
jeden, Hello World.
A może myślisz o tym jako Głównym programem, który reguluje Scratch-tych
zachowanie z ostatniego piątku.
>> Dzisiaj mamy zamiar zacząć tłumaczyć Scratch puzzle do
Kod źródłowy w nazwie języka C tak, że to, co wyglądało to na
Piątek, począwszy od dzisiaj naprzód, jest teraz będzie wyglądać tak.
Wprawdzie bardziej tajemnicze.
To dość rozpraszające i rodzaj umysłu paraliżujący zobaczyć wszystkie cytaty
i średniki i nawiasy i tak dalej.
>> Ale jeśli zaczniesz zignoruj nie rozumiem, i naprawdę wyglądają
w istocie białej tekst na Ekran, na pewno widzisz, tak jak ja,
"Hello, world". Że linii z purple oświadczenie się góry, a okazuje
się, że kluczowe będzie głównym w kolejce po zielone koncepcyjnie z
flag kliknięciu.
>> Tak więc, innymi słowy, podczas gdy w podstaw wdrażamy to Hello World
z tych dwóch fragmentów układanki, w C, mamy zamiar wdrożyć go z nich
cztery nieco tajemnicze linie.
Ale jak nurkować głębiej w to, będziesz zobaczyć, że każda z tych
białe znaki na ekranie faktycznie ma jakieś istotne znaczenie,
i większość z naszych programów będą wyglądają strukturalnie całkiem same.
Tak więc stwierdzenie, być jasne, co wyglądał jak "Say Hello world" na
Piątek to będzie zacząć szukać jak to w poniedziałek.
printf ("hello, world").
I jest jakiś dziwny backslash n, nie ma nawiasów, jest
średniki.
>> A na koniec dnia, klucz sobą dzisiaj jest to, że wszystko robimy
tłumaczy rzeczy z obrazka tworząc w formie tekstowej.
Więc pętla że wyglądało to w zeszłym tygodniu będzie wyglądać
coś takiego.
>> I pozwól, że zrzekają się, podobnie jak w Scratch, jest różne sposoby
osiągnięcia tego samego celu.
Sama w C. Nie jestem pokazując tylko sposób, aby robić rzeczy, ale jednym ze sposobów
przełożyć to na zawsze zablokować do pętli w C
>> Ten tutaj, powtórz 10 razy.
To naprawdę rodzaj zakrętów myśl po raz pierwszy można zobaczyć go.
Ale do realizacji, że odtąd, będziemy korzystać
dla pętli, że tak powiem.
I wyraźnie jest jakaś składnia to trochę na terenie hotelu znajduje się I i
równe i 0, ale raz zanurzyć się, że naprzód dzisiaj, jesteś po prostu będzie
aby zobaczyć, że to wszystko po prostu jakiejś podstawowe działania arytmetyczne, aby nas od 0
na maksymalnie 9 lub 10 w tym przypadku.
>> Wreszcie, ze zmiennymi przypomnijmy sobie, że zmienna jest Kawałek przechowywania.
Cóż, to, co mieliśmy na lewo tam w zeszłym tydzień będzie wyglądać trochę
coś jak to w tym tygodniu.
Ale znowu, bardziej na tym, by przyjść.
>> Mieliśmy wyrażeń logicznych, które w zeszłym tygodniu, wyglądało to.
Ten dalszy tydzień, że będziemy zaczynają wyglądać trochę tak.
>> A ten jest naprawdę mało pocieszające.
To rzeczywiście prawie tak proste jak zielone bloki.
Ale tu mamy znowu jakiś nowy składni z Ampersands, ale można
może odgadnąć podczas gdy w Scratch, to powiedzmy A-N-D, najwyraźniej w C, jesteśmy
powie ampersand znak handlowego.
Ale to wszystko będzie naturalne przed długi.
>> Warunki.
Ostatni tydzień, to wyglądało ta po lewej.
W tym tygodniu, po prawej stronie, to będzie wyglądać tak.
Ale znowu, kluczem jest to, że na wynos jak widać takie rzeczy na
prawo, a zwłaszcza, jeśli mniej wygodne, to rodzaj nad
głowy, można się trochę przytłoczony, że I naprawdę nie mam pojęcia, jak mogłem,
może pochodzić z , które od podstaw -
gra słów nie przeznaczonych -
po prostu sobie sprawę, że to naprawdę same Pomysł, że prawdopodobnie było tak dużo więcej
naturalne w poprzednim tygodniu.
A nawet jeśli nie zanurkował zestaw problemem 0, śmiem twierdzić znajdziesz
że puzzle są dość intuicyjna, lub co najmniej
się więc w czasie.
>> Więc nurkowania w.
Chodźmy nasze ręce brudne tutaj z ten pierwszy prosty program.
I proste jest, oczywiście, względne.
Aby to zrobić, mam zamiar zmienić ekrany do tego urządzenia Zadzwoniłem
CS50 urządzenie.
CS50 Urządzenie jest kawałek oprogramowania, który biegnie wewnątrz
Okno na moim Macu, można również uruchomić to w oknie wewnątrz komputera, który
Pozwala mi to mieć dokładnie taki sam Komputer, jak każde środowisko TF, jak
każdy CA, jak każdego ucznia w klasie.
Ponieważ CS50 Urządzenie jest dosłownie inny system operacyjny
nazwie Linux -
specjalnie Fedora Linux -
a my, pracownicy, zostały skonfigurowane Proces instalacji tego
działania systemu w taki sposób, że jeden, jest trochę CS50 logo w
środek, dwa, jest menu na zamówienie dno, a trzy, pedagogicznie,
mamy uproszczony interfejs użytkownika, jak na ile to możliwe, tak aby po
Pierwszy rozruch to coś się na własną rękę Mac lub PC, masz same
środowisko, jak wszyscy inni, a ty posiada wszystkie narzędzia, które trzeba
na kurs bez konieczności dowiedzieć się, jak zainstalować każdy, a
każde narzędzie indywidualnie.
>> Tak to wygląda na stosunkowo jak Mac OS lub Windows.
W dolnym lewym rogu, ty zasadniczo ma menu Start
rodzaju lub menu Apple.
I wtedy masz co podejrzewamy będzie być Twoje trzy najczęstsze ikony.
Jednym z nich jest Chrome.
Jest przeglądarka wewnątrz z urządzenia.
>> Two jest program o nazwie gedit, które widzieliśmy krótko w zeszłym tygodniu, co jest
tylko edytor graficzny.
A trzy to program Terminal, który Jest to czarno-białe okno z
pionier, który pozwala nam wpisać więcej tajemnicze, ale bardziej wydajne polecenia w
nasza klawiatury.
Więc mam zamiar iść do przodu i kliknij gedit, i mieć pewność, że problemu
ustawić 1, należy wydany w piątek, będzie przejść przez te wszystkie etapy samych.
>> Zauważ, że mam dość proste Interfejs użytkownika z trzech części.
Po lewej stronie, mam duży pusty okno o nazwie kod źródłowy.
To gdzie mam zamiar zobaczyć podsumowanie jakiegokolwiek kodu, który piszę.
Z prawej strony, mam duży Zakładka, aktualnie niezapisane, i to
gdzie jest mój kod pójdzie.
A na dole, mam wbudowany Okno terminala, czarne i białe
zapyta, w którym można wpisać polecenia skompilować i uruchomić swoje programy - które
jest do wykonania i uruchomić moje programy.
>> Zacznijmy więc prosty.
Pozwólcie mi iść do Plik, Zapisz.
Mam zamiar iść do przodu i przejdź do jharvard.
Tak więc urządzenia, niezależnie od tego, co Twoje imię, należy do faceta o nazwie
John Harvard, który ma jharvard domu wewnątrz katalogu, który wszystkie swoje
files pójdzie.
To twoja kopia jego rachunku, więc nie jesteśmy wszystkim dzielenie
sam dysk.
Musisz tylko złudzenie z własnego Johna Harvardu.
>> W góry, faktycznie zainstalowany Dropbox.
Urządzenie jest wstępnie przetworzone z Dropbox tak, że jeśli coś pójdzie nie tak
w trakcie semestru, jeśli masz skonfigurowaniu urządzenia z darmo
Konto Dropbox, wszystkie pliki będą być automatycznie kopie zapasowe, więc
można bardzo łatwo je odzyskać.
I zamierzam iść do mojego Dropbox katalog, a tam już będzie
jest kilka innych rzeczy tam.
>> Ale mam zamiar iść do przodu i przejdź do menu Plik, Zapisz.
Mam zamiar iść do jharvard, Dropbox, i tutaj, mam zamiar
daje mój program jest super proste name, hello.c, a następnie zapisać.
Więc mam ten sam interfejs teraz.
Jedyne, co się zmieniło jest karta do góry.
Jestem więc bardzo szybko będzie odtworzyć ten program z
slajdy chwilą.
>> Więc do main (void), a następnie printf, "Hello, world", nieco tajemniczy
backslash n, blisko cytat, zamknij nawias, średnik, a
następnie Ctrl S, aby zapisać.
I zauważ Tak na marginesie, co się pojawiły się tu w lewym górnym rogu.
A nie jest to przydatne dziś, ale będą przydatne w czasie.
Po prostu patrz, znowu, podsumowanie Kod, który napisałeś.
I dlatego, że napisał coś, co nazywa Głównym, dlatego głównym pojawiło się słowo
się tam.
Jednak w większości przypadków, że nie trzeba, że ​​dziś.
>> W porządku, więc twierdzę, że to jest mój Pierwszy program napisany w programowaniu
Język nazywa C. Wiemy od piątku że to, co to coś zrobi
I obojętnie, gdy bardzo prowadzony jest tylko wyświetlać -
innymi słowy, drukowania, jak komputer Naukowiec powie -
hello world na ekranie.
Tak więc, aby to zrobić, można zauważyć, że mam iść na dół do mojego terminalu
okno, a teraz mam miga prompt.
Ale teraz jest to wersja klawiatura mój John katalog domowy Harvard.
Jest to sposób, za pośrednictwem której keyboard aby poruszać się dysk twardy.
>> Więc tak naprawdę nie mogą wpisać tak jak ja w zeszłym tygodniu, aby przywitać, bo to
powie żadnej reguły, aby cel -
coś jest nie tak.
I nie bardzo wiem, co to wiadomość środki, ale to dlatego, domyślnie
kiedy to czarno-białe okno jest otwarte, jestem wewnątrz John Harvard-tych
katalog domowy.
Ale gdzie się zapisać do tego programu?
W moim folderze Dropbox.
>> Teraz wszyscy wyrośli z komputery, gdzie po prostu kliknij dwukrotnie
na ikonę folderu, to otwiera, i voila.
To miejsce, gdzie plik o nazwie hello.c będzie.
Faktycznie więc, zróbmy to.
>> Pozwólcie mi iść do przodu i zminimalizować gedit tak jak byś na
Windows lub Mac OS.
Pozwólcie mi iść do domu folderu w lewym górnym rogu.
Zobaczymy tutaj kilka folderów.
Oto mój folder Dropbox.
W checkmarks oznacza to zostało zsynchronizowane.
I jest kilka rzeczy tutaj, ale zauważ, że hello.c jest
rzeczywiście tam.
>> I tak w Mac OS lub Windows, zazwyczaj, Chciałbym kliknij dwukrotnie, że otwiera się w
bez względu na program, a ja jestem dobry, aby przejść.
Ale teraz, przynajmniej począwszy od dzisiaj, trzeba zrobić krok do tyłu, tak, aby
podać kilka podstawowych narzędzi dla Twojego Zestaw narzędzi, z którymi zrobić więcej
potężne rzeczy przed długi.
>> Tak więc w tym miejscu, co muszę zrobić odpowiednik podwójne kliknięcie
Folderze Dropbox.
A do tego, mam zamiar wpisać CD dla zmienić katalog, Dropbox, wprowadź.
A teraz uwaga nawiasy w moim tzw. prompt teraz mówi, że jestem w
Tylda, trochę falowane symbol w lewym górnym rogu
większości klawiatur / Dropbox.
To jest tylko oznaczenie skrótowe mówiąc, człowiek, jesteś teraz w środku
folder Dropbox, tak jakby trzeba było podwójne kliknięcie na nim.
>> Więc teraz, jeśli pójdę do przodu i make witam, podaj, widzę bardzo tajemnicze
polecenie, ale nie komunikat o błędzie, Wydaje się, a następnie
kolejny miga prompt.
I jeśli pamiętamy, nigdy tak szybko Piątek, zrobiliśmy to. . / Hello.
>> Co masz zamiar zobaczyć jest wynikiem mojego działania programu, lub w Mac
OS i PC warunki, gdybym normalnie dwukrotnie kliknij na programie -. app
program lub. exe, otwiera okna i działa.
Wpisując. / Hello jest jak podwójna kliknięcie programu, aby go uruchomić, ale
korzystanie z mojej klawiatury.
>> Wpisz, hello world.
I to jest to.
Warto więc drażnić to od siebie, aby więc nie czuje się zbyt wiele jak grecki.
>> Tak. / Znaczy co?
Każdy, kto kiedykolwiek żeglował klawiaturę środowisko jak to, co dot
dotyczy?
Katalog bieżący.
>> Więc jest tylko katalog bieżący synonimem folderze.
Więc mówiąc kropka ukośnik, mówię, poszukaj programu o nazwie witaj w
katalog bieżący -
w bieżącym folderze.
Innymi słowy, mój folder Dropbox.
I dlatego wciskającENTER później faktycznie działa ten program.
>> Jeśli teraz typu LS, zauważysz, że widzę wszystko w moim folderze Dropbox.
Pierwsze Started.pdf, który Dropbox daje za darmo, moich zdjęć
katalog, katalog publiczny, niezapisane Dokument 1, które zrobiłem przez pomyłkę do
chwilą, foo.c, które zrobiłem wcześniej dzisiaj, a następnie dwie linie -
hello.c i cześć.
>> Hello.c jest program napisałem z gedit i co to jest cześć w kolorze zielonym?
Witam na zielono jest wykonywalny.
Innymi słowy, kiedy dostał tę komendę chwilą - pozwól mi rzucić
Cofnij się w czasie -
kiedy wpadłem zrobić hello, to średnim krokiem tutaj.
I zajęło hello.c jako wejście -
AKA kod źródłowy - i produkowane Plik o nazwie cześć jako wyjście, które
zawiera wszystkich tych zer i jedynek.
I dlatego, w końcu, mogę faktycznie uruchomić polecenie podobne. / hello.
Ponieważ Intel Inside, mój operacyjnego systemu Linux, otwiera te zera
i te, podaje je do mózg komputera -
CPU -
i że procesor wie, oh, oto wzór zer i jedynek, które mówi
wydrukować następujące rzeczy na ekranie.
>> Co jest następujące rzeczy?
Cytat cytatu, "hello world".
>> W porządku, więc szybkie podsumowanie niektórych te polecenia, tak, że możemy zaczynać
biorąc je za pewnik.
Pozwól mi przejść od razu do w którym skończyliśmy.
A przypomnijmy sobie, że mieliśmy płytę w naszym tyłu końca chwilą.
Są to, śmiem twierdzić, że dla dzisiejsze cele -
być może w tym tygodniu - tylko polecenia my może trzeba wpisać w wierszu
zapyta oprócz zrobić.
>> Tak CD stanął na co?
Zmień katalog.
To jest po prostu odpowiednikiem double kliknięcie na folderze.
I jak na bok, jeśli się stracił kiedykolwiek wewnętrznej stronie
Urządzenie takie, że Dropbox -
Chcę wrócić do mojego katalog jharvard -
w razie wątpliwości, CD, wejść, bez innych słowa, i to właśnie zamki Tobą
gdzie zacząłeś, które jest ładny, mały skrót.
>> Dobrze, więc teraz inne polecenia.
LS.
Wpisałem, że chwilę temu.
Co sądzisz LS oznacza?
>> Tak, lista, prawda?
Powrót w dzień, kiedy ludzie przychodzili się z tych poleceń, że
starali się być skuteczne, a raczej wpisz się L-I-S-T Enter, że
postanowiła LS.
To dobrze.
Brzmi to dość podobnie jak liście.
Miejmy typu LS wprowadzić, a które listę plików lub folderów w moim
bieżący folder.
>> mkdir, można się domyślić.
Sprawdź katalog.
Tak więc nie pójść do jakiegoś menu pliku i wybrać nowy folder w tym środowisku.
Przeciwnie, należy wpisać polecenie mkdir przestrzeń a następnie nazwa folderu
, które chcesz utworzyć, i będzie to zrobione.
>> rm, można się domyślić.
Usuń lub usunąć.
Więc jeśli chcesz usunąć plik, będziesz zobacz w zestawie problemu, w jaki sposób
może to zrobić.
I rmdir, usuń katalog.
>> Tak więc raz jeszcze, ja zazwyczaj latać przez niektóre z tych informacji, z których jeden, ponieważ
nie są one aż tak dużo zabawy, aby spędzić raz, ale dwa, podamy Ci w
wiele bardziej szczegółowo w dowolnym Problem Kursu zestawy, szczególnie
standardowe wersje, żadnych etapów że być może trzeba wpisać tak
, które stają się coraz bardziej wygodne z tych rzeczy.
>> Ale teraz pozwólcie mi odciąć jeszcze jedno.
Gdy wpisaliśmy zrobić cześć chwilą widzieliśmy tajemnicze sekwencji poleceń.
Widzieliśmy, znowu zrobić cześć.
OK, zróbmy to.
I miał popełnić błąd, ale [Niesłyszalne] teraz przyznać, że miał
i robią to celowo.
>> Co zrobiłem nie tak właśnie teraz?
Tak, więc nie jestem w Dropbox katalog, bo chwilę temu
wpisywanych CD i po prostu wciskamy Enter.
To powiększony mnie tam, gdzie zacząłem, które nie gdzie mój plik jest
jest, tak naprawdę trzeba zrobić CD Dropbox wejść, a teraz mogę zrobić rm Witaj
wprowadzić, usunąć zwykły plik komentarzy.
Nie wiem, dlaczego to jest tak tajemnicze.
To oznacza, że ​​jesteś pewien, chcesz usunąć komentarzy
Możesz wpisać y na tak, podaj, a teraz go nie ma.
>> A teraz, jeśli make Witam ponownie, jest to zamiar odtworzyć mój kod obiektu,
odtworzenia tych zer i jedynek.
Ale o co chodzi z Polecenie to bardzo długo?
Cóż, będziemy dokuczać to apart Wkrótce jednak zrobić -
Mówiłem trochę białego kłamstwa przed -
nie jest kompilator.
Marka to program, który automatycznie domyśla się, jak uruchomić
kompilator dla Ciebie.
>> Tak więc polecenie, które naprawdę powinny być działa w celu przekształcenia hello.c
do komentarzy rzeczywiście wygląda trochę tak.
I broń Boże musimy faktycznie Pamiętaj, aby zawsze wpisać, że cała
sekwencja poleceń obecnie.
Celem zrobić w życiu jest pamiętać, że stopień skomplikowania dla
nam i automatyzacji, co w przeciwnym razie być bardzo żmudne etapy.
>> Ale mogę w przybliżeniu, że.
Więc na tej małej ściągawki tutaj, I można w przybliżeniu co to polecenie jest
robi by po prostu brzękiem pisania, który jest nazwa kompilatora będziemy
używając w tym semestrze.
Jeśli ktoś z was kiedykolwiek zrobiłem iOS rozwoju dla iPhone lub iPad,
Szczęk jest program, który został użyty w ciągu Xcode zrobić swoje aplikacje.
Szczęk, choć jest po prostu inny program którego nazwisko można wpisać w wierszu
zapyta, oraz poprzez wprowadzenie tego teraz, Mogę przedstawić coś, co jest
mało reprezentatywne poleceń przyjść.
Więc pozwól mi to zrobić ręcznie.
>> Więc rm hello, a teraz zawiadomienia w przypadku I tak, jak zdrowy rozsądek sprawdzić -
. / Hello, co myślisz I Należy sprawdzić, czy mogę to zrobić?
Jakiś rodzaj błędu.
Nie ma takiego katalogu plik.
Tak, że jeden jest rzeczywiście bardzo bezpośredni.
>> Więc teraz pozwól mi wyczyścić ekran.
Kontrola S prostu czyści ekran usunąć niektóre rozrywki.
A teraz idę do ręcznego Rodzaj dzyń-o cześć hello.c.
Więc co to jest o robić?
Dokładnie to samo, które sprawiają, że nie dla nam, ale nie wyrzucić niektóre
słowa zbędne.
>> Szczęk jest program, który będzie podjąć. pliku C jako wejścia i wytwarzają
zer i jedynek jako wyjścia.
Ale-o odtąd będzie wywoływać switch lub flag.
To jest tylko technika żargonie mówiąc to jest słowo, wpisz w wierszu
że w jakiś sposób wpływa na zachowanie programu używasz.
Więc czy ktoś chce zgadywać co-o przekazuje?
>> Wyjście.
To po prostu ktoś postanowił-o oznacza wyjściowy plik o nazwie cześć i przyjąć jako
input cokolwiek ostatnie słowo prompt jest hello.c, tak, że jeśli uderzę
Wprowadź teraz, nic się nie dzieje.
I co dziwne, w tym świecie programowanie, jeśli nic się nie dzieje,
to chyba dobrze, bo nie ma błędu
komunikatu na ekranie.
Witaj, Enter.
Mój program ma teraz uruchomić.
>> Ale mogę zrobić głupie małe rzeczy jak ta. dzyń-o, hihihi, hello.c,
wejść, a teraz mam identyczne Program nazwany hihihi.
To działa tak samo, ale nazwa jest inna.
>> Więc jest to tylko powiedzieć, że jeśli chcesz aby wpływać na zachowanie
Program, będziemy coraz bardziej zobaczyć rzeczy nazywane
Argumenty wiersza poleceń.
To jest linia.
Wpisywania poleceń.
Ergo, z linii poleceń.
A argumenty wiersza poleceń są tylko słowa lub małe kawałki składni
w jakiś sposób wpływać na zachowanie programy, które są uruchomione.
>> Dobrze, że jest być może najbardziej nudny program, możemy napisać i zobaczyć.
Załóżmy teraz coś zrobić bardziej interesujące.
Pozwólcie mi iść dalej i utworzyć nowy plik.
Mam zamiar iść do przodu i zapisać to w John Harvard, jak katalog domowy,
nazwijmy to custom.c, być mały specjalny program.
Mam zamiar powiększyć w moim szczycie występy tu i zacząć od nowa.
>> Zawierają standardowe stdio.h.
Więcej o tym za chwilę.
int main (void), więcej na że w jednej chwili.
printf ("hello, David").
Znacznie bardziej interesujące, prawda?
>> Więc teraz, gdy - nie ze względu na moje imię i nazwisko, tylko dlatego, że jest inaczej -
zrobić zwyczaj wprowadzić.
Niestandardowy, hello, David.
Ale nawet to też jest kłamstwo.
Program ten może być również nazywana david.c, bo to nie jest zwyczaj
Zachowanie w ogóle.
Naprawdę, chcę program, który pyta użytkownikowi na ich nazwę.
>> Więc jak to zrobić?
Cóż, pozwól mi przejść się tutaj.
I zanim używam oświadczenie, w Scratch, przed użyciem printf,
zwie funkcji, pozwól mi najpierw poprosić użytkownika o pewnym wejścia.
>> Tak więc, aby to zrobić, muszę zrobić kilka rzeczy.
Jeden, potrzebuję miejsca do przechowywania Instrukcja wymienić po Poprosiłem go lub
jej za to.
Co konstrukt muszę użyć prawdopodobnie do przechowywania wartości w tym stylu?
Zmienna.
>> Tak więc w przeciwieństwie do zera, gdzie można po prostu ładny kawałek układanki, tutaj mamy do
użyć oczywiście słowa wyrazić siebie.
I od tej pory, kiedy tylko chcesz słowo lub frazę, w programowaniu,
mamy zamiar zadzwonić, że ciąg.
Tak więc ciąg jest słowo lub wyrażenie.
To sekwencja zero lub więcej znaków, bardziej formalnie.
>> A jeśli chcesz taką zmienną do istnieje, trzeba powiedzieć, daj mi jeden.
A sposób w jaki to robisz jest powiedzieć String s średnik, gdzie S można
cokolwiek chcesz.
W rzeczywistości, a jest trochę rozczarowująca.
Pozwólcie mi iść do przodu i więcej wyraźnie nazywają to nazwisko.
Daj mi ciąg o nazwie nazwa.
>> Ale teraz, co osoby Nazwa domyślnie?
Cóż, jeśli człowiek nie ma nic pisać w, oczywiście, nie będzie
być brak wartości w nazwie.
I okazuje się, w C, jeśli nie dają Zmienna wartość, to będzie
mają wartość śmieci.
To może mieć pewne losowe zer i nich, więc jesteś po prostu żeby zobaczyć
śmieci, naprawdę, na ekranie jeśli spróbujesz go wyświetlić.
>> Ale mogę to naprawić, mówiąc właściwie, wewnątrz sklepu z nazwą tej
po wartości.
Sposób przechowywania wartości w zmiennych jest jeśli masz nazwę zmiennej na
w lewo, trzeba w jakiś sposób umieścić to, co Aby zapisać w nim na prawo i
składnia, że ​​będzie się w następujący sposób.
>> Nie widziałem tego wcześniej, ale się na wiarę na chwilę, że nie
istnieje inne oświadczenie na świecie że mam zamiar ponownie wywołać funkcję,
i funkcja ta jest nazywa uzyskać ciąg.
I to nie dosłownie, że.
Jakoś ma sekwencję znaków od człowieka, a następnie
ma coś z nim.
>> I to nie wygląda tajemnicze składnia.
Zazwyczaj, jeśli używasz znaki równości - jesteś w świecie, mówią,
algebra, i jesteś naprawdę x mówiąc równa 1.
Tu nie mówimy, że Nazwa równa uzyskać ciąg.
Mówimy sklep w imię tego, co znajduje się z prawej strony
tego znaku równości.
Znak równości oznacza Operator przypisania.
To składnia, że ​​mówi umieścić co jest na z prawej strony do środka, co jest
z lewej strony.
Więc łańcuch jest nowy kawałek Funkcjonalność, że nie tylko
coś -
pyta użytkownika o ciąg -
również zwraca go, że tak powiem.
>> Zobaczmy więc, co się dzieje zdarzyć się tutaj.
Mam zamiar iść do przodu i teraz pomniejszyć, i mam zamiar dostać parę
błędy w moje polecenia.
Idę na make zwyczaj wprowadzić.
Wow.
Cała masa błędów.
>> W porządku, więc jest to rodzaj przytłaczające, z pewnością na początku, ale
Okazuje się wszystkie te bardzo wprawdzie tajemnicze komunikaty o błędach są
odnosząc się do pewnych wzorców, które zaczniemy widzieć w czasie.
Więc ten jeden będę zrywać off, bo to pierwsze.
Korzystanie z nielegalnego łańcucha identyfikatora.
>> To po prostu oznacza, że ​​gedit lub dzyń, w tym przypadku, nie wie,
co mam na myśli ciąg.
A to dlatego, że w C, programowania język, tam faktycznie
nie jest zmienna typu string.
C nie wie, że łańcuchy istnieje.
>> Ale my, CS50 personel, zrobić.
I to wcześniej, klasy, że utworzony plik o nazwie CS50.h.
A w środku tego pliku - i Więcej na temat składni, aby przyjść -
wewnątrz tego pliku jest definicja z tego, co właśnie zdefiniowane
ustnie jako ciąg.
Więc po prostu zakończymy tę jedną linię kodu w moim programie, jestem teraz
Nauczanie gedit i zrobić i szczęk wszystko z kolei, co ciąg jest.
>> Nie wiem, jak jeszcze.
W ciągu kilku tygodni, my będziemy peel z powrotem, że warstwa.
Ale teraz wiem, że to uczy kompilator, co
Łańcuch jest w rzeczywistości.
>> Więc teraz pozwól mi wyczyścić Terminal tutaj.
Pozwól mi ponownie uruchomić make zwyczaj, a ja rozwiązać wszystkie z tych problemów.
Więc to też będzie być powracającym tematem.
Ja tylko napisałem 9 linii programu, a jeszcze miałem 18 linii błędów.
To rodzaj zastraszenia.
Ale sobie sprawę, że często takie kaskady że jeden mały błąd powoduje
Zamieszanie na kompilator, i wygląda o wiele gorzej, niż jest.
>> Więc teraz wiem, bystry obserwator że jestem coraz ciąg od
użytkownika, ale nie jestem w rzeczywistości robi to, co z nim?
Nie jestem rzeczywiście robi coś z tym.
Więc jeśli faktycznie uruchomić custom znowu to się po prostu siedzieć.
Co się dzieje?
Mój program wydaje się być zatrzymany na co linia, można by powiedzieć?
>> Więc to rzeczywiście zatrzymany na linii 7.
I nie widziałem tego wcześniej, ale na linii 7, jest, ponownie, to
oświadczenie, uzyskać ciąg.
I robi to, co mówi.
Czeka teraz na człowieka podjąć ciąg.
To jest dla mnie kompletnie nieintuicyjne, ludzi, bo nie powiedziano
co robić.
>> Ale pozwól mi iść dalej w wierze i pozwól mi udawać, że Rob.
Wprowadź.
To nie program I przeznaczone jest.
Tak więc mamy pierwszy blog.
>> Ale spróbujmy rozumować przez dlaczego jest to przypadek.
Po pierwsze, pozwól mi rozwiązać ten pierwszy problem.
Dodam tutaj, że wiersz mówi printf, jak się nazywasz?
Zróbmy ścisłą ofertę, zamknąć nawias.
>> Teraz pozwól mi ponownie uruchomić program.
Problem.
Nie widzę tego.
>> Racja.
I nie przekompilować.
Tak więc w języku, jak C, ponieważ zmienić kod źródłowy nie znaczy
że zmieniłeś kod obiektu wygenerować nowy kod obiektu,
Nowe zer i jedynek.
Trzeba przebudować.
Jeśli teraz ponownie uruchomić niestandardowe wprowadź, ah, trochę bardziej jasne.
Nazywam się Rob.
Still buggy.
>> A ja twierdzą, że jest a błędy para teraz.
To wygląda po prostu ohydny, szczerze mówiąc.
Jak, w minimalnym stopniu, powinien mieć przestrzeń tam, lub przenieść
kursor do nowej linii.
>> I rzeczywiście, nowa linia.
To jest swego rodzaju kluczem frazy tutaj widzieliśmy, ale nie zdefiniowane.
Sposób, w jaki można uzyskać tekst , aby przejść do następnej linii,
nie rób tego.
To jest mylące do komputera.
To wygląda jak dwie oddzielne linie kodu, z których żadna
jest całkowicie poprawne.
Państwo zamiast być bardziej wyraźne i powiedzieć, daj mi nową linię, którą
reprezentowania w C z backslash n.
>> Więc jest kilka takich znaków.
Backslash n będzie naprawić tę estetykę.
Pozwól mi skompilować mój program.
Pozwól mi ponownie uruchomić mój program.
>> To wygląda lepiej.
Jest jeszcze dość prymitywne, ale także nadal buggy.
Więc jest jeden -
nawet jeśli nigdy nie zaprogramowany wcześniej, prawdopodobnie można zgadywać
, dlaczego ten program jest nadal wadliwy.
Co muszę zrobić, że Nie zrobiłem jeszcze?
>> Muszę więc faktycznie coś z nazwą.
Podobnie jak w zera, to może faktycznie przypisać zmienną jak N lub
przeciwdziałać tak jak my w zeszłym tydzień - wartość.
Ale jeśli nie masz nic z to nic się nie stanie.
>> W porządku, więc niech naprawić.
Pozwól mi wpisać moje zmiennej tam, i pozwól mi przejść tutaj.
Pozwól mi skompilować, pozwól mi re-run, Rob.
Teraz jestem po prostu idiotą, prawda?
>> Więc to nie jest tak naprawdę coraz mnie dalej.
Ale to było zupełnie naturalne instynkt, ja twierdzą, prawda?
Jeśli zmienna nazywa się nazwa, a ja ma się tam, dlaczego nie mogę po prostu
wpisz go tam?
>> Cóż, oczywiście, mamy odróżniać się
między tym, co jest ciąg?
Zauważ, że Koniec cytatu tutaj, witam na imię?
To rzeczywiście jest sam napis.
Ciężko jest kodowany.
To nie od człowieka.
To ode mnie, przy programista, ale to jeszcze łańcuch.
>> Więc jeśli dosłownie napisać N-A-m-E wewnątrz z ciągu, co się
wypisywane?
Cóż, N--M-E. Zamiast tego należy powiedzieć printf, nie są drukowane
się dosłownie nazwać.
Wydrukuj wartość nazwy.
>> A do tego, co robimy, co następuje.
I to jest właśnie ludzka konwencja.
My zamiast powiedzieć,% s, a oznacza ciąg znaków.
A potem na koniec moich bliskich cudzysłowie, Zamierzam postawić przecinek i
przekazać drugi argument w tym oświadczeniu.
Zamierzam wpisać nazwę tam.
>> Więc teraz zauważyć, mamy nieznacznie nowa składnia.
Mamy jeszcze dwa nawiasy i odtąd chciałbym powiedzieć, że rzeczy
w nawiasach oznacza argumenty do funkcji -
wejścia, które są w jakiś sposób dzieje wpływać na jego zachowanie.
Tak więc według tej logiki, jak wiele argumentów nie wydaje się printf
biorąc w tej chwili?
>> Tak więc wydaje się, że przy dwóch, i to rzeczywiście dorozumianych
przez przecinek tutaj.
Więc to jest jeden argument w cudzysłowie.
Nawet jeśli ma przecinka w tym, wszystko jest w cudzysłowie, co oznacza,
jest to jeden długi ciąg.
Przecinek, nazwa zmiennej.
>> Więc teraz niech pomniejszyć.
Pozwól, że ponownie go uruchomić.
Rob.
Cholera, co zrobiłem źle?
>> W porządku, więc trzeba przebudować.
Więc jeszcze raz, aby łatwo błędy na początku jeszcze raz i jeszcze raz.
Więc teraz ponownie uruchomić custom, Rob, enter i voila.
Teraz mamy własny program.
>> Więc teraz mam program, który za pomocą kilku cech
Warto zwrócić uwagę, że.
One, używam CS50.h, inaczej znany jako CS50 biblioteki.
A wewnątrz CS50 biblioteki są Funkcje, które inni ludzie pisali -
czyli pracownicy -
do użycia, a otrzymasz Ciąg jest jednym z nich.
>> Wewnątrz linii 2 jest stdio.h, i dlaczego to jest?
Zgadnij.
To, co istnieje wewnątrz średnia IO rodzicem?
Printf.
Więc printf, nie widać go w dowolnym miejscu indziej na ekranie.
To musi pochodzić z komputer w jakiś sposób.
Skąd to się bierze?
To jest w środku - to oświadczył, że tak powiem, w środku
Plik o nazwie stdio.h.
>> Teraz, dla tych rzeczy, wrócimy na końcu, bo to nieco
rozpraszać teraz.
Odnosi się to do naszego typu powrotną.
To odnosi się do argumentu.
Ale na dziś, jesteśmy skupieni tylko tutaj, na tych liniach.
>> Więc string nazwa, tylko podsumować, czego to dla mnie zrobić?
Więc to zadeklarowane zmiennej typu string.
Więc to ma być dla słów, nie dla liczb.
Podobnie jak na bok, jeśli ja chcę że jest to liczba, powiedziałbym
coś jak int.
Gdybym chciał być zmiennoprzecinkowe wartość, coś z przecinkiem,
Powiedziałbym pływaka.
Ale na dzisiaj, właśnie powiedziałem ciąg.
>> I dałem tę zmienną Nazwa nazwą, ale mogłem
nazwali to coś.
W rzeczywistości, pierwotnie nazwałem go S.
>> To tutaj jest po prostu inne zdanie.
Ile to argumenty Ochrona przy?
Więc to tylko przy jednym, i że jest po prostu estetyczne szczegóły
wyświetlania coś na Ekran do mnie.
Co to jest 8 linii robi w laika?
>> Robi się wartość z użytkownik - a mianowicie, string -
i to, co on robi z tym?
To w istocie przekazanie go do facet z lewej strony
znak równości tak, że w tym przypadku, Nazwa zmiennej może faktycznie przechowywać.
>> A potem printf jest inny wystąpienie funkcji.
A my mówimy do wywołania funkcji.
Aby korzystać z funkcji jest do wywołania funkcji.
To coś najwyraźniej przyjmuje dwa argumenty.
Ten jeden, przecinek, ten jeden.
>> Ten sam w sobie jest po prostu ciąg że zawiera zastępczy.
% S oznacza, stawiać kolejny ciąg tutaj.
I tak przez umieszczenie nazwy po przecinek, który jest włożenie
to coś dla mnie.
>> Więc mogę robić inne rzeczy nadal.
Pozwólcie mi iść do przodu i teraz zrobić trochę głupi program, ale pozwól mi usunąć,
i niech mi stworzyć pętlę.
Choć prawdą.
Symbol prawda jest oczywiście zawsze będzie prawdziwe.
Więc jaki rodzaj pętli mam wywołania pisząc taką linię?
>> Tak więc pętla nieskończona, tak?
Wystarczy natomiast prawdą.
Nie sposób mogę zmienić słowo prawdą jest coś innego, więc to jest
po prostu będzie trwać wiecznie.
Więc jeśli kiedykolwiek faktycznie miał program w komputerze Mac lub PC, który wydaje
się, że zamknięty, lub to robi coś i coś, i po prostu
nie można uzyskać coś, aby zamknąć chyba że uruchom ponownie komputer lub podciągnąć
Menedżer zadań itp., tu jest taki przykład.
>> Mogę powiedzieć: "Jestem buggy program." Zamknij cytat, zamknij
nawias, średnik.
Więc jeszcze raz, zwróć uwagę na wzory.
Mimo, że niektóre z naszych składni jest nowy, natomiast słowo kluczowe, kluczowe prawdziwe,
Zauważ, że mają takie same rodzaj klamrach.
Mam średnik i nawiasów.
>> Więc teraz idziemy naprzód i skompilować.
Dodać niestandardowe, niestandardowe.
Tak więc w tym momencie nie musisz się ponownie uruchomić urządzenie, dobrze?
Więc łatwo stąd wniosek, z dwa palce, sterowania C,
my zamknąć ten program.
Ale można zobaczyć dokładnie, dlaczego to coś powtarzał się ponownie i ponownie.
>> Mogę zrobić coś trochę bardziej złożone, jak teaser.
Mam zamiar iść do przodu i powiedzieć, co następuje.
Dla Int., która jest liczbą całkowitą, to jest po prostu generic name dajemy najbardziej
Zmienne w programowaniu, kiedy jesteĹ tylko liczenie, jest równa 0.
Pozwólcie mi iść dalej i powiedzieć, a ja to, powiedzmy, mniej niż 100, i Plus Plus.
Będziemy z powrotem do tej składni, ale to tylko oznacza,
inkrementacja i znowu i znowu.
>> I co chcę zrobić tutaj?
Printf, "mogę liczyć na i". To buggy programu.
Co ja właściwie zamierzam tutaj?
>> Procent nie s, ale nie przypuszczam ta. % D jest liczbą całkowitą.
Przecinek i.
Pozwól mi cofnąć.
>> Chciałbym teraz przebudować z make.
Chciałbym teraz powtórka z obyczajem.
Mogę liczyć naprawdę cholernie szybko, gdy I napisać taki program.
>> Teraz zróbmy coś trochę niezamierzone.
Jak o zróbmy to, a ja jest większa lub równa 0.
Co to będzie wywoływać?
Więc logicznie, to nie jest tak mądry, bo gdybym powtórzenie tego, opowiadać,
Teraz mogę liczyć naprawdę na wysokim poziomie.
Niestety, o tak wysokie, jak to możliwe Ilość jest 4000000000, tak to się dzieje
do trochę potrwać.
>> Więc dlaczego nie zostawić tego, jak nasze cliffhanger, obiecując, że w dniu
Środa, zobaczymy, czy ten program jest zrobione.
Dwa dowiemy, w jaki sposób się wyraź swoją funkcję tak, że bardzo
szybko, w środę, my będziemy, jak my Przejście od podstaw w C, start
pisanie coraz bardziej złożone programy, które robią wiele,
o wiele więcej niż to.
Będziemy zobaczenia.
>> [APPLAUSE]
>> SPEAKER 1: Na następnym CS50, Day Puzzle był sukcesem.