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.