David J. MALAN: Więc to jest CS50. I to był CS50 własnej Colton Ogden, bardziej od tego, kto jest muzyka można pobierz na soundcloud.com/cs50. Więc dzisiaj stawiamy bardziej w dziedzinie programowania. I bierzemy gdzie zostawiliśmy od ostatniego tygodnia, koncentrując na początku, co było tego graficzny język programowania. I wziąć sprawy w dół do niższego poziomu, stosując bardziej tradycyjne programowanie język znany jako C. Jednak po drodze, zdając sobie sprawę, że mamy te same pomysły rozmawiali o ostatni piątek będą się powtarzać, nie tylko w tym Język C, a w większości każdy inny że patrzymy na ten semestr. Tak nazwaliśmy tę rzecz tutaj co raz ostatni? Jest przedstawicielem oświadczeniu. Tak nazwaliśmy to oświadczenie. I to coś robi. To wskazówki, które komputer lub zarysowania może wykonać. I od tej pory, niech również uruchomić nazywając coś takiego funkcji, przyczyn wkrótce zobaczymy. Tymczasem widzieliśmy takie rzeczy. A te są na ogół Wiadomo jak to, co zbudować? PUBLICZNOŚCI: Loop. David J. MALAN: Więc pętla. Tak całkiem proste. To dosłownie robi to, co mówi. I Scratch, jeśli chcesz dopchać więcej puzzli tam, Kawałek będzie rosnąć, aby go dopasować. I zobaczymy, że w C możemy zrobić to samo. Inny rodzaj pętli, chociaż w Scratch może być na zawsze, czy jest jakiś numer innych podejść. Ale weźmy więcej ogólnym, wygląd, z twarzą to prawdopodobnie dość dobrze, w pętli, bardziej ogólnie. Mark Zuckerberg: Jeden rzeczą, że komputery to jest naprawdę dobry powtórzenie polecenia. Jako osoba, można uzyskać jeśli ty naprawdę nudzi musiał zrobić to samo wiele razy z rzędu. Ale komputer może zrobić to samo miliony, a nawet miliardy razy, i nie nudzić, i być w stanie do realizacji, że się naprawdę dobrze. Tak na przykład, jeśli chciałem życzyć wszystkim na Facebooku z okazji urodzin wysyłając wiadomość e-mail, może to zająć więcej niż mnie wieku rzeczywiście pisać wszystkie te e-maile do wszystkich. Ale tylko kilka linijek kodu, mogę mają układ wysłać e-mail do wszystkich na Facebooku, które chcą im wszystkiego najlepszego. Więc to, co i dlaczego są pętle są one cenne i coś że komputery mogą robić bardzo dobrze. David J. MALAN: Więc jeśli byłeś odbiorcą niektórych CS50 jest i Przestrzeń Dropbox za późno, to jest dokładnie to, co faktycznie zrobić, używając kodu całkiem tak. My w zasadzie mają duży arkusz kalkulacyjny, do którego ludzi zostało wprowadzanie ich Nazwy i adresy e-mail. I pisaliśmy odrobinę kodu Można przejść przez wszystkie te adresy i wypluć unikalnych adresów w Sprawa ktoś składać wielokrotnie. A następnie wysyłamy automatyczny e-mail z bota CS50, w wraz z kodem kuponu. Teraz również spojrzał na to skonstruować ostatni. A jest szczególnie przykład co? Tak, tak, wyrażenie logiczne. I kształt rozumie aby uchwycić oraz. Wszystkie te kwestie tworzą prawdziwe lub fałszywe w Scratch będzie wyglądać trochę coś takiego. I nazywamy to wyrażenie logiczne. To rzeczywiście prawda, czy fałsz, tak lub nie. To sposób odpowiedzi na pytanie. A tymczasem można korzystać z tych Boolean Wyrażenia wewnątrz konstruktów jak te, które z Oczywiście są warunki lub oddziałów, przysłowiowym widły w drodze. I mogą wyglądać nie tylko tak, ale może również nie elses z nimi związane. I rzeczywiście można mieć trzech sposób widelec w drodze lub cztery sposób widelec w drodze, po prostu gniazdowania tych rzeczy, jak zobaczysz w Scratch jeśli jeszcze tego nie zrobiłeś. I jak można to zrobić w C, jak również. Weźmy innego lekarza ogólnego spojrzeć na alumnist, jak również, który może przedstawić inne podejście do tych rzeczy zwane warunki. Bill Gates: Ludzie popełniają decyzje każdego dnia. Na przykład, przed wyjazdem poza tobą rodzaju mają if, który mówi, jeśli pada deszcz to ja trzeba dostać kurtkę. I komputery są niesamowite Po zdecydować, tego rodzaju sprawozdania, które można niezawodnie wykonywać te rzeczy w niewiarygodną prędkością. I tak naprawdę program komputerowy jest trochę matematyki i niektóre jeżeli sprawozdania gdzie Decyzja zostanie wykonany. David J. MALAN: Więc jak wiesz, że to ludzie tacy jak Bill Gates, Paul Allen i inni że naprawdę rozpoczął się tzw komputer osobisty Rewolucja kilka lat temu. Myślałem, zanim zagłębimy do jakiegoś Administrivia, my związane opowieść z Albuquerque, New Mexico Museum of Natural History i nauki, gdzie niektóre z Bill Gates " i najwcześniejsze opowiadania Paula Allena są opowiadał, jak mamy teraz dzisiejsze komputery PC i Mac i nie tylko. Za to, że potrzebujemy dwóch ochotników , którzy mają bardzo dobre głosy narracji czytać skrypt głośno. Dobra, jak tam się w. Chodź na górę. A co z przodu tutaj. Zejdź na dół. Weź swoje miejsca tutaj. Jak wam wymyślić, para ogłoszeń administracyjnych. cięcia, procesu od wyboru sekcji rozpocznie w tym Od środy do piątku. Więcej na ten temat w tym roku w Środę w wykładzie. Super odcinki, w międzyczasie, są coś, co oferujemy w przyszłym tygodniu przy czym cała klasa jest proszona do udziału w dość dużej skali działy, jeden bardziej wygodne, jeden mniej wygodne. I podamy dane o tym, jak dobrze, jeszcze w tym tygodniu. Tymczasem działy sami, rozpocznie W trzech trakcie tygodni, wskaźnik zera co oznacza, że ​​są to dwa tygodnie z. Więc nie martw się. Jeszcze nie brakowało coś w tym kierunku. Tymczasem w międzyczasie, jeśli Wszelkie pytania administracyjnym, napisz do mnie i Devon i Gabe i Rob na ten adres tutaj. Wreszcie zestaw problemem 0 oznacza, oczywiście, na zewnątrz. Można zauważyć go na stronie internetowej oczywiście za. Powinien dostarczyć Wszystkie odpowiedzi na pytania może masz po drodze do rozpoczęcie pracy z zestawem problemów. Ale jeśli znajdziesz się w potrzebie pomocną dłoń, na wszelkie sposoby uczestniczyć godziny pracy, Poniedziałek, wtorek, środa, czwartek w tym tygodniu w godzinach wieczornych w czterech salach jadalnych. Zobacz, że adres URL jest za dane szczegółowe z którym dyżur będzie. Teraz spełnia naszych dwie osoby dzisiaj. Jak masz na imię? JAY PAUL: Jay Paul. David J. MALAN: Jay Paweł, miło cię poznać. Hikari: Hikari. David J. MALAN: Hikari? Hikari: Hikari. David J. MALAN: Hikari. Miło cię poznać, jak również. Jay Paul i Hikari mają w przed nimi na tych muzyki stoi dwóch skryptów, że drukowane z tego rano z Nowego Meksyku Muzeum Historii Naturalnej. I myślałem Zrobiłbym na napowietrznych jest towarzyszyć recytacja skryptu i tej historii z niektórych wizualnych obrazów, bez niespodzianek. I co robiłem wcześniej jest prehighlight na skrypcie co należy przeczytać, i co należy czytać. A my w zasadzie tylko alternatywne ust. Więc to jest tak jak to polubisz zrobili w angielskiej klasie. To naprawdę zmusić publiczność wierzyć w opowieści tutaj. Idziemy? Tak więc opowieść o to, mamy BASIC, i to zaczyna się w Cambridge. JAY PAUL: To była zima, 1974, w Cambridge, Massachusetts gdzie zimy może być zimno. Brodaty, długowłosy wyjscie z mroku nazwie Paul Allen został drudging całej Harvardzie Kwadrat, pochłonięty myślami. Jego głównym zajęciem w tych dniach było jak uzyskać jego przyjaciel, Bill Gates, rzucić szkołę i iść do biznesu z niego. Hikari: dwa już nie było poprzez szereg przedsięwzięć gospodarczych razem, począwszy od Lakeside gdzie szkoła w Seattle zostały zapłacone w wolnym czasie do komputera przetestować komputer PDP-10 w czasie lokalnym dzielenie firmę. Najnowszy plan był zamknąć szkoły i tworzą firmę oprogramowania. Allen opuścił Waszyngton State University. Ale w ostatniej chwili, Gates postanowił trzymać się z Harvardu. JAY PAUL: To dzień, przejście Harvard Kwadrat, Allen zauważył styczeń 1975 problem z Popular Electronics z nagłówkiem ziemia zatrzymania, Największa Zestaw pierwszej minikomputerów rywalizować modele komercyjne. Nagłówek był pod obraz z małego pudełka ozdobione światłami i przełączników. Nazwano MITS Altair 8800. I Allen wiedział, że to, co on szukał. Hikari: Dni dyskusji następuje. Allen i Gates zrozumiał Znaczenie Altair. Rozmawiali często o mikroprocesory i czekali, aby zobaczyć, co będzie już potrzebne. A była o minikomputer zestaw Okładka Popular Electronics. To widocznie miał jeszcze żadnej oprogramowania. Wyobrażali sobie naród Programiści malejąco na MITS. I tak nazwali Ed Roberts, Szef firmy, twierdząc mieć wersję Język programowania BASIC prawie gotowy dla Altair. Nie. I Roberts musiał wiedzieć, że nie. On był już 10 połączeń dziennie z ludzie, którzy mieli BASIC prawie gotowy. I jego odpowiedź photography była "pierwsza osoba , który pojawia się w pracy PODSTAWOWE dostaje umowę. " JAY PAUL: Gates i Allen nigdy nie widział Altair. Oni nawet nigdy nie widział Mikroprocesor Intel 8080 w samym sercu Altair. Ale kilka lat wcześniej Allen napisał program na komputerze typu mainframe, które naśladowane Operacja poprzedniego Intel mikroprocesor. I tym razem oni by zrobić to samo. Hikari: z procesorem Intel 8080 Instrukcja u jego boku, Allen usiadł przy Harvard komputer PDP-10 i napisał emulator i oprogramowania narzędzia niezbędne do wykonania programowania. Tymczasem Gates przestał chodzić do klas i poświęcił się do projektowania BASIC, stosując wszelkie sztuczki Wiedział, aby uzyskać rozmiar w dół poniżej 4 kilobajtów. JAY PAUL: Out w Albuquerque, Ed Roberts dostaje telefon od Gatesa z prośbą o szczegółowe informacje o tym, jak Altair obsługiwane konkretnych procedur. Nikt nigdy nie zapytał, że przed. I Roberts zaczął się interesować. HIKARI: Wraz z rozwojem Konstrukcja narzędzia i gotowe, Gates i Allen napisał Kod na PDP-10, poznanie innego studenta Harvardu, Monte Davidoff, pisanie procedur matematycznych. Po nocy z końcowym programowanie, Allen dostał w samolocie dostarczyć ich podstawowych do MITS. Spędził samolot jeździć martwić. I z powrotem w Cambridge Gates był niepokojący. Mieli ich podstawowe i testowane że pracował na emulatorze. Ale co, jeśli emulator nie tak? JAY PAUL: W samolocie zbliżył Albuquerque, Allen sobie sprawę, że ich BASIC, teraz starannie zawarte na małą rolkę perforowane taśmy papieru, by być bezużyteczne bez oddzielnego Program o nazwie loader, że powie Altair jak do zapoznania się z istotą taśmie papierowej podawany do urządzenia dalekopisowej. Wyjął notes i szybko zapisała się do programu ładującego w asemblerze, a następnie ręcznie tłumaczone, że do wartości 1 i 0 Altair zrozumie. Hikari: Allen spodziewałem czysty, mały, wysoki tech prowadzony przez mężczyzn w garniturach. Był więc zaskoczony, gdy Roberts spotkał go na lotnisku patrząc jak ranczo ręcznie. Roberts był również zaskoczony. Kiedy spadł Harvard programista w drogim hotelu, Allen miał wyznać, że nie mógł sobie pozwolić na pokój. JAY PAUL: MITS, sam, było znajduje się w zakurzonym centrum handlowym. Wewnątrz na bałagan Workbench był Altair załadowany z 5 kilobajtów Pamięć i połączone kablem do maszyny dalekopisu. Roberts i główny inżynier, Bill Yates, czekał wyczekująco jak Allen przełączać swój ładowacz Program do Altaira. Dalekopis zaczął chugging jak pociągnął taśma papierowa poprzez czytnik taśmy. To trwało może 15 minut załadowania programu. Następnie dalekopis nagle drukowane szybka pamięć, a następnie gotowe polecenia, i Allen zaczął pisać Polecenia kilka testów. Ku zaskoczeniu, Oprogramowanie działa. Były błędy, oczywiście. Ale najważniejsze było to działało. Hikari: Później, w drodze do 3,00 dolarów lunch w Pancho, osa poleciała w okna odbioru Wózki i ukąszony Allen na ramieniu. Ale nic w tym punkcie może zepsuć nastrój. Altair miał teraz jego podstawowego, pierwsze komercyjne oprogramowanie dla domu komputer, wykonany przez Paul Allen i Bill Gates, prowadzenia działalności gospodarczej, jak Microsoft. David J. MALAN: Wiele dzięki naszymi czytelnikami. [Aplauz] David J. MALAN: Teraz masz wybór, przed wyjazdem, z połyskiem i blask w dark-- oh, odczekać jedną sekundę, wait-- świecący i blask w ciemności słonia z CS50 własnej Cheng Gong. Hikari: Och, dziękuję. David J. MALAN: Wszystkie Dobrze, dziękuję bardzo. [Aplauz] David J. MALAN: Więc prawdziwa historia. Znaczy to, że wszystkie z tych Maszyny oraz łatwość, z jaką wykorzystać je teraz i podjąć za pewnik, naprawdę rozpoczął tutaj, zaledwie kilka kroków od tego rzeczywistego teatru. A teraz już, jeśli nie byli, to Maxwell Dworkin komputer Budynek nauki, również za rogiem. I na drugim piętrze tego Budynek ma trzy strony powiesić z oryginalnego kodu źródłowego, które Bill Gates i Paul Allen napisał. W rzeczywistości, jeśli stosowanie powiększania , można zobaczyć nie tylko ich nazwy w Oryginalny typ, ale również ich podpisy, które są zdobione Kilka lat temu, kiedy ostatnio tam byłem. Ale to, co było szczególnie istotne o to, co określone zrobić było napisać program, który umożliwić osobom napisać własne programy. W tym czasie wszystko było z maszyna wykonana przez MITS Altair. I wszystkie potrzebne było jakiś sposób co ułatwia dla hobbystów i osób podoba nam się w tym pokoju, aby rzeczywiście programu że niekoniecznie rozumiejąc Kod zespół lub urządzenie kod, albo nie daj Boże, 0 i 1. Jak my, programiści, ci, w tym pokoju, Chcesz być w stanie wyrazić sami o wiele bardziej jak pseudo kod nawet jeśli jest to nieco bardziej nit wybredni niż rozmawialiśmy w zeszłym tygodniu. Nie chcemy, aby napisać kod tak, który zrobił Paul Allen i Bill Gates. My natomiast chcemy napisać kod, który wygląda trochę bardziej przyjazny użytkownikowi. Teraz jest to język znany jako podstawowego. I numery linii nie są tym, co was użyć po prostu ponumerować wiersze kodu że piszesz. Nie trzeba nawet zrobić te dni. Ale można zobaczyć tutaj jak print "Witaj, świecie" rzeczywiście prawdopodobnie wydrukować tylko to. A więc to, co Bill i Paul nie był dawać ludziom pisać kod tak zamiast of-- jeśli przyjrzeć się informatyka wall-- kod jak poniżej. W rzeczywistości, niedawno CS50 miał okazję usiąść z profesorem Harry Lewis w dziale Informatyki, który faktycznie uczy Bill Gates kilka lat temu, i stoi tu przed te trzy strony fragmentów. Rzućmy okiem. HARRY LEWIS: Co musisz o to wykaz wczesnym kawałek oprogramowania napisany przez Billa Gatesa i Paula Allen, założyciele Microsoftu. Więc kod jest ciekawa z dwóch powodów. Przede wszystkim okazało się, Pierwszym produktem firmy Microsoft, który był tłumaczem język programowania BASIC. A po drugie, to był jeden z pierwszych prób stworzyć tłumacza tak zwyczajne ludzie mogli korzystać z komputerów osobistych. Więc Bill Gates był licencjackich na Uniwersytecie Harvarda. Zacząłem naukę na Harvardzie w 1974 roku. Dokonano tego w 1975. Tak było na początku swojej kariery i na początku mojej kariery. I rzeczywiście nauczył Billa Oczywiście w tym czasie. Paul Allen nie było Studenta Harvardu, ale była szkoła średnia kolega Bill Gates. Jeśli przyjść i spojrzeć na szczegóły, które będziesz rzeczywiście znaleźć trzeci nazwa Monte Davidoff, który był kolega Gatesa tutaj na Harvardzie. OK, więc tutaj jest ciekawy komentarz tutaj. Mówi: "W 4K możesz usuwać pierwiastek kwadratowy ale pętle powinny nadal pracować. " OK, więc co to oznacza to, że nie były dwa sposoby, aby skompilować ten program. Jeden był do pracy w wersji z tego komputera Altair że miał tylko słowa 4K pamięci, 4096 słowa pamięci. Ale duża wersja miała 8K. A więc to, co mówi, jest to że w tej wersji 4K trzeba było usunąć kilka kod, aby to pasuje. A jedną z rzeczy, które będą usunięte będzie pierwiastek kwadratowy rutyna. Ale widocznie na pętle powinny nadal działać, nawet gdy jesteś kompilacji dół w wersji tylko 4K komputera. David J. MALAN: Tak jeden z tematów, jak zobaczymy w informatyce, jest to pojęcie warstw i abstrakcji, i naprawdę stojąc na ramionach z ludzi, którzy przybyli przed nami, a nie W przeciwieństwie do Billa Gatesa i Paul Allen narracji tutaj. I oznacza to, że dzisiaj możemy podjąć dla pewnik, że rzeczy są w rzeczywistości nam łatwiej napisać kod. Rzeczywiście kod, jak powiedział w piątek, jest bardziej technicznie znany jako kod źródłowy. I to jest to po angielsku, jak składni to bardziej właściwe i bardziej dobrze zdefiniowane niż coś jak pseudo kod, na który nie ma formalnej definicji. A dziś co mamy zamiar skupić się na to kod źródłowy że wygląda to, co co prawda na pierwszy rzut oka wygląda zupełnie tajemnicze. I szczerze mówiąc, to jest o wiele bardziej estetycznie Program złożony niż bazowy jest. Ten program robi wszystko, Przypomnijmy, jest to, co mówiliśmy? To po prostu wypisuje "Hello World". I jeszcze patrzeć na wszystkie rzeczy musimy owinąć wokół tego bardzo prostego zdania. Ale niedługo wszystkie te linie i więcej będzie o wiele lepszy zmysł do Ciebie. I przepływ jest następujące. To, czego potrzebujemy do naszej dyspozycji ma mieć kod, na przykład źródła Kod, który właśnie zobaczył. I potrzebujemy nowego programu aby go uruchomić poprzez. Musimy algorytmów, które mogą konwersji kodu źródłowego, jak ten, do kodu wynikowego, 0 i 1. Innymi słowy, mamy zamiar nauczyć się dzisiaj jest, jak to zrobić, napisz Kod źródłowy do góry, przekazać ją jako wkład do specjalnego Program znany jako kompilatora, i będziemy produkować kod obiektu. Który jest tylko fantazyjny sposób mówiąc coś zrobimy , który wygląda tak, przekazać go do programu o nazwie kompilator, produkcji kod obiektu , który wygląda tak. To są dosłownie wzory 0 i 1 które są zrozumiałe Komputer Intel te dni, że jeśli interpretowany przez CPU mózgi wewnątrz z komputera, dosłownie wydrukować, po prostu, "Hello World". Teraz nie sposób więcej 0 i 1 niż ty ma nadzieję, może być konieczne do tego. Ale to dlatego, że budujemy na dobrą ofertę złożoności że możemy teraz wziąć za pewnik. Inaczej mówiąc, wiele inteligentnych ludzi dały nam wiele ciekawych narzędzi i wydajne oprogramowanie, z którym mogą teraz projekty własne. Więc zaczynajmy. Natomiast ostatni piątek i Ustaw 0 dla Problem w tym tygodniu, będziesz grać w świat, który wygląda tak. Począwszy od dziś, a do problemu Zestaw 1 w przyszłym tygodniu, kod będzie wyglądać trochę bardziej tajemnicze, ale funkcjonalnie jest dzieje się tak samo. Tak więc informacja, top jest na zarysowania, Dno jest C. Szczerze Scratch jest o wiele bardziej użytkownik przyjazny i przystępny. Ale jeśli teraz porównać wizualnie do góry dno, jest rodzajem 12:59 korespondencja między puzzle i język mamy zamiar grać. W szczególności, mówią, niebieski puzzle do góry, jest podobno odpowiednik jakim hasła lub specjalnego w tym języku zdanie zwany C? PUBLICZNOŚCI: printf. David J. MALAN: printf. Oznacza to, że drukowanie sformatowana. A to tylko fantazja sposób mówienia printf w C będzie oświadczenie lub funkcji że drukuje coś na ekranie. Co to wydrukować na ekranie? Cokolwiek powiesz do wewnątrz cytatów, wewnątrz nawiasów. Więc jeszcze raz, co prawda, tam wiele rzeczy że trzeba mieć na uwadze, nawiasy, notowania, średniki, i to wszystko. Ale wszystko to jest rodzaj z obok punktu. Ciekawe teraz na wynos jest to, że blok powiedzmy w Scratch jest prawie równoważna Instrukcja printf w C Tymczasem żółty kawałek układanki do góry, gdy zielone flagi kliknięciu jest chyba odpowiednikiem do tego, co słowo kluczowe tutaj? PUBLICZNOŚCI: Główny. David J. MALAN: Więc głównym. Może int, może nieważne. Ale główny rodzaj dźwięków, takich jak ważne jest, i rzeczywiście jest. Kiedy tak kliknięciu zielona flaga jest znowu kawałek logiczna że rozpoczyna się Cały program Scratch. Ale mamy zamiar teraz zacząć dzwonić że głównym, funkcja ta znana jako główny. Tymczasem my będziemy teraz uogólnić ten sposób następujący. Możemy zadzwonić powiedzieć funkcję. I to może wyglądać specjalnie tak. A co z pętli? Jeśli chcemy, aby rozpocząć konwersji lub tłumaczenia więcej w Scratch do C, to coś tu najwyraźniej tylko mówi "hello world" na zawsze. Więc jeśli skojarzyć te skrypty z kotem w Scratch, to po prostu będzie powtarzają w jakiejś kreskówki bańki, "Hello world, hello world, witam świat, "reklama nauseum, zawsze. Jeśli chcemy zrobić coś podobnego w C, to będzie wyglądać trochę tajemnicze. Ale możemy osiągnąć to samo wyniki, jak będzie ostatecznie dowiedzieć się, jak to ze składnią. Zamierzam ponownie użyć printf, ponieważ na koniec dnia Chcę wydrukować "Hello World". A ja widocznie za pomocą słów kluczowych, które nie jest na zawsze. Jest to słowo, podczas gdy zamiast. Ale tylko w semantycznie Angielski, a rodzaj sugeruje jakieś pętli lub cyklu. Tak, że dzieje się słów kluczowych, że C używa. I choć prawdą, dlaczego chwilę prawda skutecznie znaczy zawsze? Cóż, podczas gdy, jak będzie wkrótce docenić to, więcej ma to w nawiasach obok gdzie można umieścić wyrażenie logiczne. I tak długo, jak wyrażenie jest prawdziwe, to kod, jak wskazano między tymi dwoma nawiasy klamrowe, jak my je nazywamy, po prostu biec ponownie i ponownie. Więc prawda jest prawdą. Tak więc, podczas gdy prawdziwi pomocą po prostu to zrobić zawsze. To prawie głupi konstruować, aby wyrazić siebie. Ale tam nie było zawsze słów kluczowych w C. Nie było czasu. I był bardzo prosty Wyrażenie logiczne jak prawdziwe. A więc to, zobaczymy, osiągnięcie tego samego rezultatu. Jak inaczej można wdrożyć pętlę? Cóż, w Scratch to polubisz mocno specyficzny numer kodu iteracji w pętli tutaj. I tak to jest dokładnie to, co my może zrobić w tej wersji C, przy czym mamy tzw pętli. I pętli tutaj dzieje iteracyjne, nieco tajemniczo, z wartości 0 na górę do, lecz mniej niż 10. Teraz zmienne podstaw. Może nie miałeś okazja, by z nich korzystać. Ale o co chodzi, w ogóle, zmiennej mówiliśmy w zeszłym tygodniu? Co to jest? WIDOWNI: Punkty. David J. MALAN: Aby wskazać? Oh, wskazuje. OK, śledzenie punktów, Na przykład, w grze. Lub bardziej ogólnie robi co ze zmienną? Co znajduje się narzędzie z nich? PUBLICZNOŚCI: Pamięć. David J. MALAN: Tak, tak, pamięć. To do przechowywania czegoś. I rodzaj wizualnej Kiedyś głupie Ostatni raz było jak tego szklanej misce. A jeśli chcemy zapisać coś w zmiennej, na przykład teraz wartość jest sześć, ponieważ nie sześć piłek do ping ponga w tutaj. To jest po prostu jakiś rodzaj magazynowania Pojemnik, że pod maską realizowany jest z bitów, 0 i 1, jednak komputer się stanie to zrobić. Więc w Scratch, jeśli chcesz mieć zmienną, możemy użyć bloku pomarańczowy takiego. Zadzwonimy, że licznik w tym konkretnym przypadku. I inicjowane na 0. I co mam następnie zrobić? Zawsze mówią licznik, który jeśli grasz, że w Scratch, musisz po prostu zobaczyć Scratch. Można umieścić na kostium kot czy cokolwiek mu będzie mówić numer, o którym mowa. Zmiana jest o 1 licznik jak zwiększany o 1. I tak to będzie liczyć z co tak co? Od 0 aż w nieskończoność, lub aż do przerwy zera, lub do momentu rodzaju tracą zainteresowanie oglądaniem jak wysoko może faktycznie liczyć. Więc jak możemy przekonwertować to do C? To będzie wyglądać trochę tajemnicze. Ale znowu, jeśli spojrzeć na siebie z tych linii indywidualnie ich rodzaj spisu ogólnie. Więc najwyraźniej int będzie mieć jakieś specjalne znaczenie w C Zobaczymy, że znowu. Tak na marginesie to oznacza całkowitą. Tak, to po prostu oznacza numer. Więc to jest typ klosz chcę, jeden które mogą przechowywać liczby, nie ping pong piłki. I mam zamiar używać znaku równości tam, aby przypisać mu wartość 0. Więc to jest zupełnie jak zestaw Licznik 0, ale C. Tymczasem, podczas gdy prawda, że ​​był odpowiednik, oczywiście, zawsze nawet jeśli jest to trochę tajemnicze, a następnie wewnątrz nawiasy. A może myślisz o tych klamrach, który można wpisać na klawiaturze, tak naprawdę są jak krzywizny te żółte bloki pętli zera. Obejmuje ona kilka linijek kodu. Printf jest coraz trochę przerażające, bo teraz zobacz cytuje nie tylko w nawiasach. Ale co innego jest nowy składniowo w tym przykładzie? Jest procent d. A następnie backslash n ma. Widzieliśmy, że wcześniej, nawet choć nie ma za co. Potem jest przecinek. A potem jest licznik. Ale zobaczymy się po prostu Moment który jest po prostu standardowy sposób powiedzenia wydrukować "Liczba po przecinku," cytat, cytatu, niektóre liczba dziesiętna. Ale powiem ci później co to liczba dziesiętna jest. Tak więc fakt, że nie ma przecinka w tym mówiący printf, oznacza, iść do przodu i drukuj niektóre liczba dziesiętna. Aha, i przy okazji, liczba ta jest bez względu na wartość tej zmiennej jest. I tak, aby ten bardziej jasne, zobaczymy przykład wkrótce z udziałem dokładnie printf w kontekście programów prawdziwe C. Teraz wystarczy, by zakończyć niektóre z tych konstrukcji. Wyrażenia logiczne, że nie może mieć okazja, by wykorzystać je w swoim programie ale może być bardzo dobrze, szczególnie w przypadku korzystania z warunków. I tak te dwa przykłady z Scratch znaczy jeśli x jest mniejsze niż Y albo jeśli x jest mniejsze niż R i R jest mniejszy niż z, jak możemy tłumaczyć, że? Cóż, w C to tylko będzie wyglądać tak. Trochę tajemnicze, więcej nawiasów, dziwne Ampersands, lecz w gruncie pomysły są tak proste, jak oni są w kawałek układanki świata. Jesteśmy po prostu sprawdzenie, czy coś jest mniejsza niż coś innego. Jak o warunkach? W skrócie, w języku angielskim, co to fragment kodu Scratch nie chcesz powiedzieć? PUBLICZNOŚCI: Porównuje dwie liczby. David J. MALAN: Porównuje dwa numerów, gdy x jest mniejsze niż y mówi tak samo. Jeśli x jest większe od y mówi tak dużo, inny jeśli x jest równe y to mówi więcej. Teraz skąd x i y pochodzi? Kto wie. Ten fragment Scratch Kod jest wyrwane z kontekstu. Ale to, co chcemy zrobić, to przetłumaczyć to na chwilę, aby zobaczyć. Tak, masz wybór Problem w tym tygodniu zestaw 0 w tym świecie gry po lewej stronie, sprawę że idee nie zmieniają w tym tygodniu albo w przyszłym lub poza nią. Jesteśmy po prostu będzie zacząć pisać rzeczy w inny sposób, z naszymi Klawiatura zamiast naszej myszki. Tak więc, gdy x jest mniejszy od y, a jest tam kilka nawiasów, A jeszcze kilka nawiasy klamrowe ponownie, aby go rodzaj enkapsulacji jak żółte puzzle zrobić. I idę do printf x jest mniejsze niż R i tak dalej. Co jest ładne o C, jak widać tutaj, jest to, że nie dostaniesz tej zagnieżdżania, gniazdowania, gniazdowania, że ​​koniecznie zamiar pchnąć swój kod w prawo. Zamiast tego można mieć wszystkiego skład starannie tak. Ale to tylko estetyczny szczegółowo zobaczymy ponownie wkrótce. Wszystko w porządku. Tak, że prowadzi nas z powrotem do to tajemnicze spojrzenie programu. Niech faktycznie napisać kod. Teraz, jak go o pisanie kodu? Przez te wszystkie lata, że ​​już w posiadaniu Mac lub PC, komputera stacjonarnego lub laptopa, się, że rzeczywiście miał możliwość zacząć pisać kod programu. Ale pewnie brakuje specjalny rodzaj programu. Z pewnością można napisać kod. Ale koniecznie nie może, po wyjęciu z pudełka, przekonwertować kod źródłowy do kodu wynikowego, 0 i 1 bez czego na komputerze? PUBLICZNOŚCI: Compiler. David J. MALAN: Więc kompilator, rację. Teraz większość z was prawdopodobnie nie właścicielem kompilatora, nigdy nie pobrać kompilator. Ale zobaczysz, możesz go pobrać jak większość jakiejkolwiek innej części oprogramowania. W świecie Mac OS, to polubisz pobranie lub już pobranych coś o nazwie Xcode lub GCC lub Clang. Jeśli pochodzą z Świat, który może Cię okna pobraniu programu Visual Studio, Visual Basic, środowiska, takie jak to. Jest dziesiątki kompilatorów te dni, które można użyć. Ale brakuje go tutaj jest to, że to ból i, szczerze mówiąc, technologicznego koszmarem dla setek ludzi z różnych Komputer do wszystkich konfiguracji skonfigurować swoje maszyny w taki sam sposób, tak, że wszyscy mogą być na tej samej stronie. Więc co my, zamiast robić w CS50 jest dać ci standardowe środowisko, Środowisko to jest linux będzie wyglądać trochę coś takiego. Zobaczysz więcej o tym w Problem Set 1 specyfikacji, które będzie w trybie online to w piątek wieczorem. I co to oznacza jest to, że od tej pory będą mogli pobrać i zainstalować program nazywa CS50 Appliance. I masz zamiar pobrać i zainstalować inny program o nazwie hypervisor, który jest po prostu fantazyjny sposób na osiągnięcie tego celu. Czy jesteś właścicielem Mac lub PC lub Komputerze z systemem Linux lub komputer Solaris czy jak szalony operacyjny systemu używasz, masz zamiar pobrać program nazwie hypervisor, który jest zamierza uruchomić CS50 Urządzenie w komputerze bez względu na system operacyjny jest. Hypervisor czyli przekształca nasze rzeczy do jakiegokolwiek języka, cokolwiek się instrukcjami własny komputer rozumie. Więc to jest warstw. I znowu, jest to rodzaj tematycznych w komputerze nauki, opierając się na górę rzeczy. Możesz mieć Windows. Może masz Mac OS. Ale od przyszłego tygodnia jesteś będzie pobraniu wolne oprogramowanie, nazwie hypervisor. Masz zamiar się pobrać kawałek oprogramowania o nazwie CS50 Appliance. Że zamierza uruchomić w hypervisor, która będzie działać na Twoim komputerze. I efekt końcowy jest że każdy z nas będzie mają prosty okno jak to na komputerze Mac lub PC który daje nam iluzję wszystko działa ten sam system operacyjny, bez żadnego innego Wpływ na komputerze. I można na pełnym ekranie to i zasadniczo zachowują jakby używasz system operacyjny o nazwie Linux, co jest, co CS50 Urządzenie jest oparte. Więc właściwie to wykorzystać teraz napisać program. Można napisać program przy użyciu programu Microsoft Word. Można napisać program używając TextEdit lub Notatniku lub WordPad, lub prawie każdy wyraz edytor kiedykolwiek używałeś. Ale rzeczywistość jest, że nie należy korzystać naprawdę każdy z tych programów. Na pewno nie powinno się używać coś jak Microsoft Word, które ma odważne wprost i kursywy oraz Mniejsze i większe czcionki, fonty ponieważ komputer nie dbają o żadnej z tych rzeczy. Komputer jest wszystko będzie dbać o to, Angielski jak instrukcji napisanych w C Więc co zrobimy wewnątrz urządzenia CS50 jest swobodnie korzystać z programu dostępne, i to preinstalowany w tym Urządzenie, zwane gedit. I Gedit jest tylko bardzo prosty edytor tekstu jak TextEdit Mac OS, w jak Notatnik systemu Windows, które będzie wyglądać trochę coś takiego. Więc faktycznie nie spojrzeć na slajdach tego. Ale niech rzeczywiście iść do Samo środowisko. Mam zamiar iść do przodu i zaloguj się w tym drugim oknie, do mojego CS50 Appliance, które mam preinstalowany na moim laptopie tutaj. Zauważ, że, podobnie jak Windows i Mac OS, to ma jakieś menu. Jak Windows stawia to tam, a nie Mac OS, co stawia go na dół. Ale rzeczywistość jest to wszelkiego rodzaju samo. I tu jest cały Pęczek oprogramowania. Jest Dropbox. Jest cała masa akcesoriów, programy graficzne, które będziemy wykorzystywać później w okresie do zbiorów problemowych. Jest przeglądarka zbudowany w tak że jest to pełnoprawny komputer wewnątrz komputera. Ale mam zamiar kliknąć ten od lewej białą ikonę tutaj, który jest ikona Gedit. I to się dzieje, aby otworzyć okno , która ma trzy panele do niego lewa, góra jeden, i dolny. Teraz jest w tym, że górną prawą Będę naprawdę napisać kod. Więc zróbmy to ,. Mam zamiar iść do pliku, Zapisz. I nie może nigdy nie widziałem ten konkretny okno przed. Ale to jest jak Mac OS lub Windows. To tylko okno z wszystkich folderów że mam wewnątrz komputera. I mam zamiar zapisać Plik jako hello.c. I mam zamiar iść dalej i kliknij przycisk Zapisz. A teraz zauważyć Mam kartę na górze po lewej stronie nazywa hello.c. Więc chyba dość zna, nawet jeśli nie mam zanim użył tego konkretnego programu. A teraz mam zamiar wpisać te dość zagadkowa sekwencja poleceń które widzieliśmy przed chwilą. Obejmują, standard I / O.h. Więcej o tym wkrótce. Int main nieważne, otwarty kręcone klamra, zamknięty nawias klamrowy. A następnie wewnątrz jest nie myślę gdzie mieliśmy "Hello World", średnik. A teraz zapisać. Więc jest to program napisany w języku C, napisano zatem w kodzie źródłowym. Ale nie mogę po prostu uruchomić ten program. I niby chcą podwoić kliknij na ikonę gdzieś, ale nie istnieje inna ikona niż plik z kodem źródłowym. , Co, ponownie, jest procesem teraz Trzeba uruchomić ten plik za pośrednictwem? PUBLICZNOŚCI: Compiler. David J. MALAN: Więc kompilator. Tak więc w różnych komputerach to zrobić różnymi sposobami. Ale to, co zrobiliśmy tutaj Urządzanie CS50 to Przedstawiciel jak to polubisz zrobić to w wielu systemach jest mi po prostu będzie uruchomić polecenie o nazwie marka. A marka jest dosłownie zamiar zrobić. Mnie programu. Tak będzie się uruchomienia kompilatora dla mnie. I nazwę programu Chcę, aby to cześć. A teraz jest to program. I zrobić to na tyle sprytny, aby sobie sprawę, że jeśli powiem, aby przywitać, to będzie wyglądać na bieżąco pliku o nazwie hello.c tylko dlatego, że sposób to skonfigurować. Więc kiedy teraz hit Wprowadź tutaj, to szalony tajemniczy wiersz właśnie został wykonany. I uwierz mi, przed długo, w ciągu zaledwie kilku dni, zrozumiesz, co to wszystko z tym, że środki nonsens. Ale teraz, po prostu wiem, że aby wyzwalany wykonanie kompilatora. Innymi słowy, stwierdzono, Kompilator na moim komputerze to jest preinstalowany na urządzeniu CS50 że uda nam przekazać Państwu w Problem 1. secie. A następnie wziął hello.c jako wejście, a produkowane podobno 0s i 1s jako wyjścia. I domyślnie co robi jest to oszczędność te 0 i 1 w pliku o nazwie komentarzy. I choć to też mógłby składni być dla ciebie nowa, po prostu mówiąc, kropka slash komentarzy będzie za pomocą których mogę uruchomić ten program. Teraz i przez co najmniej kilka tygodni prawie wszystkich programów Piszemy będą w czarne i białe okna tekstowe. Nie myszy, bez klikania, nie ma okien, nie ma ikony. Jedziemy do keep it simple i skupić się na idei leżących u podstaw początkowo, zanim przejdziemy do czegoś wyższym poziomie, na przykład, jak wyrwać się z gry, rozmawialiśmy o w pierwszym wykładzie w zeszłym tygodniu. Więc kiedy hit Wprowadź tutaj, to równowartość w tekście tylko środowiska podwoić klikając ikonę o nazwie komentarzy. Czego oczekujesz woli się zdarzyć, kiedy nacisnąć klawisz Enter, a następnie? PUBLICZNOŚCI: To będzie drukować "Hello World". David J. MALAN: Mam nadzieję, że to wydrukować "Hello World". I rzeczywiście tak się stało. Teraz nie było pewne tajemnicze składnia tutaj. Miejmy tylko przewinąć do chwilę i zobaczyć, czy Nie można uruchomić wnioskowanie tylko przez majstrować, próbuje i braku, co do tego, co się tutaj dzieje. Co zrobić, jeśli pozbyć się backslash n? Teraz niektórzy z was, którzy już zaprogramowane wcześniej prawdopodobnie wiedzieć od razu, co to znaczy. Ale dla tych z was, którzy nie zaprogramowane wcześniej, przynajmniej pomyśleć, co się dzieje zmienić, kiedy ponownie uruchomić ten program? Więc mam zamiar wrócić do mojego małe czarne i białe okna, które jest okno, w którym Mogę skompilować tego. Idę do rekompilacji cześć. Jedziemy zobaczyć sam tajemniczy ciąg poleceń. I mam zamiar zrobić kropki ukośnik komentarzy. A teraz ktoś, jeśli możesz, kto nigdy nie zaprogramowane wcześniej, co może tym razem będzie inaczej? Tak. PUBLICZNOŚCI: To nie zatrzyma druk "hello world". David J. MALAN: To będzie to-- przykro? PUBLICZNOŚCI: Nie zatrzyma go wydrukować? David J. MALAN: To nie będzie przerwać drukowanie "hello world". Więc nie jest to zły pomysł. Inne pomysły? Tak. PUBLICZNOŚCI: Komunikat o błędzie? David J. MALAN: Błąd wiadomość, OK, może być. Co jeszcze? PUBLICZNOŚCI: To może drukować Uchwyt z średnikiem, a? David J. MALAN: Może drukować Uchwyt z średnikiem oraz. Więc może, że to jest jakiś lewy ukośnik rodzaj terminous, że to ważne. Wszelkie inne myśli? Więc wszystkie dobre pomysły. A w rzeczywistości, to będzie się komunikat o błędzie. To prawdopodobnie najbardziej prawdopodobne jako odpowiedź na ogół w ciągu najbliższych kilku tygodni jak uczymy się tutaj kod. Ale teraz pamiętam, że komputery tylko nie to, co im powiedzieć, zrobić. Podobnie jak śmieszne orzechowe przykład masło i galareta. Nasze ludzkie ma tylko komputery do tego, co powiedział im zrobić. Tak więc w tym przypadku, jeśli nie mów komputer aby przenieść się migający kursor Następna linia, to nie będzie to zrobić. Więc kiedy uruchomić ten program teraz, zauważą różnicę. Wygląda jak błąd. To estetyczne błąd, być może. Ale co to jest inny temat Moc w stosunku do ostatniego oczywiście? Tak. PUBLICZNOŚCI: To nie zrobić nową linię. David J. MALAN: To nie zrobić nową linię. Teraz tych z Was, którzy Może mieć wykonane strony internetowe wcześniej, może znasz Znacznik BR lub tag pkt, bardzo podobne w duchu. Przeglądarka zignoruje cię aż do powiedz jej, co robić. Podobnie jest tylko język jak C zamierza zrobić to, co mu powiesz zrobić. Tak dlatego, że Wszystkie te przykłady dotąd mają rodzaj przypadkowo miał to odwrotny ukośnik tam, to środki przez które można wyrazić siebie jako nowego wiersza, że ​​tak powiem. I można trochę docenić, być może, że będzie to wyglądać głupio jeśli nic innego. Gdybym chciał nową linię, po prostu nacisnąć Enter, a następnie rodzaj z rzezi kod takiego Naprawdę nie powinno trzeć Ci właściwą drogę. A nawet jeśli nie obchodzi w tym momencie, zdasz sobie sprawę, że nie jest szczególnie przystojny kawałek kodu. I co z tego świata lat temu zdecydowały się że gdy chcesz umieścić kursor na nowej linii wyraźnie, trzeba wyraźnie powiedzieć, Nowa linia, backslash n. I jest jakiś inny symbole tak. Ale teraz musimy po prostu skupić się na backslash n. Teraz zróbmy program trochę bardziej interesująca. Mam zamiar iść do przodu i tym razem otworzyć nowy plik. Mam zamiar zapisać to jako Hello-1.C. I tylko dla zabawy, będę go umieścić go w moim folderze Dropbox. Jak zobaczysz w CS50 Dokumentacja dla urządzenia, jeszcze w tym tygodniu do problemu Zestaw 1, będziemy zachęcać używanie Dropbox lub niektóre równoważne usługi, bo wtedy wszystko jest kod będzie wspierane automatycznie. A więc dlatego mam już w tym folderze tutaj. A teraz mam zamiar napisać nieco inny program. Obejmują, standard I / O.h, int main nieważne. A następnie tutaj printf, Hello World, który jest dokładnie taka sama jak poprzednio. Ale teraz chcę wydrukować coś to jest trochę inaczej. Chcę wydrukować, powiedzieć: "Witaj, David." Wszystko w porządku, więc oczywiście, mam nadzieję, że powinna ona być tak, że jeśli ponownie skompilować ten program, uruchom go, to będzie powiedzieć "cześć, David." Ale co, jeśli chcę, aby wprowadzić ten rodzaj zmiennej, Pojęcie pojemniku, który będzie przechowywać D--v-i-d i kod to nie trudno w moim programie. No i co jeśli zacznę robić coś takiego? String s, więc jest zmienna. Jeśli chcesz ciąg, a.k.a. słowo lub frazę. Sekwencja znaków jest co my w programowaniu nazywamy ciąg. Jesteśmy po prostu się do ogólnie zadzwoń to s, bo to ładne proste nazwy. Ale mogę nazwać to coś. Idę powiedzieć String s równych cytatu: "David," średnik. A teraz chcę wstawić D--v-i-d do czego jestem drukowanie. I przed widzieliśmy teaser na Ekran z jakiegoś szczególnego składni że pozwolił nam Zastępstwo w wartości. Jaki był specjalny Symbol kilka zjeżdżalnie temu? Więc proc. W tym czasie był procent d na liczbę dziesiętną. Że tak naprawdę nie wydają się tu istotne. Okazuje się, że jest inny symbol procent, który jest procent s, co oznacza na zastępczy dla łańcucha. Więc teraz, po prostu, jestem zamiar iść się przywitać-1, bo ten plik nazywa hello-1.c, i naciśnij klawisz Enter. I nie przejmował się. Co się dzieje? Cóż, tutaj, gdzie musimy zacząć Doceniam to, że jesteśmy w tym poleceniu środowiska linia, to Tylko tekst środowiska. Nie klikaj na ikony nie jak foldery teraz. I pomyśl chwilę temu. W jakim folderze nie powiem Byłem uratowanie mi kod? Więc folder Dropbox. Mógł być nazywany niczego. Ale zdarza się nazywać Dropbox. Więc jakoś trzeba dwukrotnie kliknąć na ten folder Dropbox, aby uzyskać do niego i się na mój Kod nazwie hello-1.c. W rzeczywistości, pozwól mi iść do przodu i zminimalizować okno na chwilę. Podobnie jak w systemie Windows i Mac OS, istnieją foldery w systemie Linux. Są to foldery w CS50 Appliance. To właśnie teraz jesteśmy ograniczając sami do tego środowisku tekstowym. Ale jeśli podwójne kliknięcie na Dropbox, zauważysz jest plik, który chcę skompilować. Ale muszę to czarno-biały okno terminalu, że tak powiem. Jednak trzeba zatem poruszać do tego folderu lub katalogu. Więc nieco ezoteryczne, ale Przyzwyczaisz się do tego zbyt. W świecie Linuksa, co znowu jest operacyjnego System kończy nam wnętrze CS50 Urządzenie, jest polecenie o nazwie CD. Co oznacza, że ​​mogę zrobić płytę, przestrzeń, Dropbox. CD, zmiana katalogu. Prawo. Powrót w dzień, kiedy ludzie byli wynalezienie komputerów i działających Systemy takie jak ten, chcieli wpisz Najmniej klawiszy możliwe. Tak więc najprostszy sposób powiedzieć zmiana katalogu był CD. Więc jeśli uderzę CD, miejsca Dropbox, zauważyć, co się zmieniło tutaj. Wewnątrz nawiasów Urządzenie jest rodzajem z humoring mnie i przypominając mi, gdzie jestem. Tak otwarty folder jest Dropbox. Gdybym teraz wpisz ls za lista, ponownie zwięzłe, bo ludzie nie chcą wpisz powrotem w dzień l-i-s-t. Więc zamiast się to ls. Enter. Zauważ, widzę dwie rzeczy, hello-1.C, a potem to tajemnicze rzeczy, źródło 1m. To po prostu mój sposób na powiedzenie Kod źródłowy 1 tygodniu poniedziałek. To ja pobrać z folderu Strona CS50, że dziś zrobiłem wcześniej i po prostu umieścić go w Urządzenie z góry. Ale teraz jedyną rzeczą, dbają o to, co ten program. Gdy więc make hello-1, Enter. Cholera. Coś poszło nie tak. Warto więc drażnić to od siebie. I niestety to jest, gdy rzeczy trochę stresujące na początku, przynajmniej jeśli masz nie zaprogramowany wcześniej. Mój Boże. Napisałem program, dwóch linii i Mam cztery linie błędów. Więc co tu się dzieje. Przede wszystkim zawsze przewijania i znaleźć pierwszy komunikat o błędzie, ponieważ często kompilatory tylko się martwić o to, co i ja. Kompilatory są dość głupie. Zrobią tylko co powiedz im to zrobić. A jeśli ich mylić, są one po prostu będzie trochę rzucać swoje ręce a może rzucić więcej komunikatów o błędach niż są rzeczywiście istotne. Więc spójrzmy na pierwsze. Bardzo tajemniczy na początku. Ale informacja, oto nazwa plik, w którym wkręca się widocznie. Colon 5, okrężnicy 5 oznacza po prostu na linia 5 na piątym znaku. Więc piąta kolumna znaków, jeśli chcesz, błąd. Korzystanie z nielegalnej identyfikator łańcucha. Czy chodziło Ci o standardowe n? Nie, mam na myśli ciąg. I to jest to rodzaj kopiowanie i wklejanie co mam wpisane naprawdę wyciągnąć mój uwagę na gdzie wkręca się. Więc z jakiegoś powodu C, lub co najmniej kompilator nie rozumiem ciąg słów. A to dlatego, że zrobiliśmy to. Tak więc nie istnieje ciąg w C. Co CS50 robi, przez pierwszych kilka tygodni Tylko w klasie jest zapewniamy szkolenie w zakresie felgi, że tak powiem. I kładziemy te kółka wewnątrz specjalnym pliku o nazwie CS50.h. Więc jest to drugi z dwóch plików Nazwy, które najwyraźniej kończą się kropką godz. Miejmy tyłu. Printf jest oświadczenie lub funkcja że widocznie coś drukuje na ekranie. Ale nie mnie wdrożenia printf, prawda. Lat temu ktoś realizowane printf. W jaki plik chcesz postawić on lub położyła realizacji do printf, kodzie printf? W pliku o nazwie standard I / O.h. W rzeczywistości, to prawdopodobnie w dwa pliki, standard I / O.h, co oznacza cel plik, a standard I / O.c, co oznacza kod źródłowy C. Więc on kilka lat temu koleś Kod, który pisali w tym pliku tak, że ludzie tacy jak my później lat może to go, że tak powiem, w naszych programach. I rzeczywiście, to właśnie znak funta następnie słowo obejmują nie. To wygląda na lokalnym dysku twardym, znajduje się plik o nazwie standard I / O.h, a następnie skutecznie kopiuje i wklei go wewnątrz mojego pliku. Więc teraz mój program wie jak wydrukować na ekranie. Więc w tej logice, gdzie jest określony ciąg znaków? PUBLICZNOŚCI: CS50.h. David J. MALAN: CS50.h. I rzeczywiście, to co my, Pracownicy rdzeń, zrobili. Mamy wynalazł kilka typów danych, że tak powiem, jak struna, poza te, które Ci dostać za darmo, podobnie jak int. I zobaczymy jak char innych na charakter i niewiele więcej. Wewnątrz CS50.h najwyraźniej jest przynajmniej niektóre wzmianki o ciąg. Więc teraz pozwól mi iść do przodu i uruchom make hello-1. Będę powiększyć ponownie i kciuki. Teraz w dokonaniu jednego zmienić Poprawiłem większość rzeczy. Ale cholera. Więcej procenty niż argumenty danych. Co zrobiłem nie tak tym razem? Więc to jest wciąż dość tajemnicze. Ale ten błąd jest na linia 7 i charakter 21. Więc chodźmy spojrzeć tutaj. To trochę subtelny. Ale jeśli myślisz o tym, co podstawowe idee są tutaj, być może możemy drażnić to od siebie. Tak więc printf jest nazwa funkcji. Nawiasy, jak dotąd, jest podobnie jak to, co mamy na około rzeczy przekazujemy jak wejść do funkcji. Wszystko w porządku, po prostu arbitralna konwencja ludzki. Użyj nawiasów. Wewnątrz tych nawiasów byliśmy oddanie cudzysłowy, a następnie ciąg jak "Hello World". Ale w tym wcześniejszym przykład bardzo krótko nie przyjrzymy się podstaw. I mieliśmy procent d, co jeszcze był wewnątrz tych nawiasów że nazywa się werbalnie? Tak. PUBLICZNOŚCI: Więc to jest to, co bierzesz [Niesłyszalne] od wewnątrz [niesłyszalne] co to [niesłyszalne]? David J. MALAN: Dokładnie. Więc mieliśmy procent d. Ale wtedy mieliśmy blisko cytat, przecinek, licznik. Prawo. Możemy określić, co chcemy zrobić jako zastępczy. Więc, co mam zamiar zrobić, o to przecinek, co chcesz mi postawić? PUBLICZNOŚCI: S. David J. MALAN: S, , ponieważ w tym przypadku s jest nazwą pojemnika. To jest nazwa tej szklanej misce. , Podczas gdy wcześniej było to tym, że licznik Prosty przykład Scratch przyjrzeliśmy. Więc teraz po dokonaniu dwóch zmiany, pozwól mi przybliżyć i spróbuj jeszcze raz skompilować program. Teraz widzę, że tajemnicze linie. Ale to faktycznie nazwę kompilatora. Clang to nazwa kompilatora. Upewnij się tylko uratowanie mnie ból głowy z historii wpisując tę ​​komendę z długim szalony. Więc teraz, jeśli mam kropka slash hello-1, Powinny widzę "cześć, David." Dość rozczarowująca, prawda? Mogliśmy zrobić to po prostu dużo więcej bez mówienia o zmiennych i CS50.h i to wszystko. Więc zróbmy to trochę bardziej interesująca. Poza CS50.h, posiadania rzeczy jak ciąg oświadczył, biblioteka CS50 posiada również kilka funkcji. Tak więc podobnie jak rok temu, ktoś napisał printf i umieścić go w standardzie I / O.h i kilka innych plików. My, pracownicy CS50, napisał funkcję nazywa getchar, GetDouble odwołują, GetFloat, GetInt, GetLongLong, GetString, i kładziemy te wewnątrz pliku nazywa CS50.h i CS50.c. A my je wewnątrz z CS50 Appliance. A ludzie mogą również pobrać je w Internecie, jeśli chcesz umieścić je na własne komputery, jak również. To znaczy, że udało nam się stworzyć Funkcje, które się danych od użytkownika. Nie wiem, co to wszystko z tych danych są typy. GetInt niby proste, jak uzyskać całkowitą jakoś od użytkownika. I GetString prawdopodobnie Uzyskaj słowo lub zdanie od użytkownika. Warto więc skupić się na tym. I mam zamiar wrócić do Urządzenie i mam zamiar iść do przodu i zapisz plik jako, nazwijmy to cześć-2.c jak mojej drugiej wersji. I zróbmy parę zmian. Tym razem, zamiast twarde kodowania Dawid, który sprawia, że ​​niezwykle spójne ale rozczarowująca programu, Co zrobić, jeśli zamiast robić getString? Zauważcie getString ma otwarty nawias, zamknięty nawias, bo nie wymaga żadnego wkładu. To po prostu się go dostać ciąg od użytkownika. A teraz słowo o innej składni. Średniki właśnie końca linii kodu. Nie trzeba ich wszędzie. Ale to oznacza, że ​​jestem po prostu zrobić z tej linii kodu. Pozwól mi przejść do innego Oświadczenie lub funkcji. Ciąg deklaruje zmienną. Ciąg jest jak powiedzenie daj mi miskę, proszę. I pozwól mi położyć ciąg w nim. A teraz znak równości. Co to jest znak równości zasadniczo równoważne? PUBLICZNOŚCI: Przypisywanie. David J. MALAN: Tak, przypisanie wartości. Więc jeśli, na przykład, połączenie funkcja ta GetString, i zobaczymy za chwilę, że za będzie wymagać od użytkownika ciąg znaków. To jest jak pozwalając mi to pisać D-v-l-d na kawałku papieru. I kiedy mówię ciąg s wynosi getString, równa naprawdę nie znaczy równa w programowaniu C. Oznacza to przypisanie z prawej strony do lewej strony. Więc stałam się ciąg. I znak równości oznacza umieścić go Pojemnik do przechowywania nazywane s. A następnie przekazać tę opcję, aby printf do rzeczywistości, co robi. Tak więc efekt końcowy jest następnie idzie wyglądać trochę inaczej. Niech robią komentarzy-2. Albo może pracować. Jesteś po wzdłuż. Dodać do komentarzy-2 pracował. Dot slash hello-2, Enter. I wydają się mieć nieskończoną pętli czy coś. Nic się nie dzieje. Dlaczego? PUBLICZNOŚCI: To co w nieskończoną pętlę. David J. MALAN: To jest nieskończona pętla. To trochę dla mnie czeka faktycznie zapewnić mu jakiegoś wejścia. Więc pozwól mi iść dalej i wpisz Dawida, i naciśnij klawisz Enter. A teraz mówi "cześć, David." Jeśli uruchomić go ponownie. Miejmy wpisać Roba: "Witaj, Rob." Teraz to jest najgorsze Interfejs użytkownika w historii. Najwyraźniej użytkownika wiedzieć, co robić. Ale nie ważne. Stosując te same budynku bloki jak w Scratch, możemy rozwiązać ten problem i powiedzieć coś w swoim imieniu proszę, jelita grubego, przestrzeń, zamknięta cytat, blisko nawias, średnik. Ponownie więc sporo głupota ze składnią. Ale zauważ Właśnie dodałem kawałek układanki powyżej tego jednego i powyżej tego. Więc teraz, jeśli ponownie uruchomić to, hello-2, Enter. Chwileczkę. Co jest nie tak? To nie zachowuje się inaczej. Tak. PUBLICZNOŚCI: Nie uruchomić się ponownie. David J. MALAN: Nie uruchomić się ponownie, w porządku. Więc zmieniłem mój kod źródłowy. Ale znowu, nie ma, że ​​przepływ. Kod źródłowy przez kompilator daje Ci nowy kod obiektu, czy 0s i 1s. Więc muszę faktycznie powtórka marka hello-2 Enter. OK, wydaje się, że coś się stało. Dot slash hello-2. Twoje imię i nazwisko proszę. I być teraz jasne, dlaczego jest kursora w tej samej linii? Dokładnie. Nie umieścić odwrotny ukośnik n tu w moim kodu. Więc teraz mogę napisać coś Daven, Enter. I można go uruchomić ponownie i wpisz coś jak Gabe, Enter, i mamy inny program znowu i znowu i znowu. Teraz ostatecznie będziemy potrzebować używać kilka różnych możliwości. Musimy wprowadzić ostatecznie niektóre warunki, aby robić rzeczy, warunkowo. Może pętle więc możemy zrobić rzeczy, znowu i znowu. Może byłoby miło, jeśli my może realizować swoje własne funkcje, jak możemy realizować nasze własne printf lub nasza własna wersja getString i GetFlow, ponieważ ostatecznie nawet za pomocą tego wiersza polecenia środowiska możemy zrobić, nawet najbardziej wizualnie interesujące rzeczy. Rzeczywiście w zawarciu pozwól mi to zrobić. Mam zamiar iść do przodu i zamknąć te okna i otworzyć tę ikonę tutaj, który znajduje się większa wersja, że ​​osadzony okno terminalu. Więc nie tylko Gedit miejsce dla mojego kodu, ale również zbudowany w oknie terminala, czarne i białe okna, w którym można uruchomić Polecenia. Ja po prostu się otworzyć większa wersja tego. A teraz mam zamiar iść do folder, który już mam umieścić z góry na stronie internetowej oczywiście za. I mam zamiar iść do przodu i otwórz plik o nazwie thadgavin.c, , który został napisany przez kogoś innego. A jeśli spojrzymy na to, nie jest to rodzaj kodu będziemy pisać od Celem tego kodu było napisać najładniejsza patrząc kod, który on lub ona mogli,, niezależnie od tego, czy inny człowiek mógł kiedykolwiek zrozumieć ten kod. Rzeczywiście, z roku na rok jest co zwany zaciemniony C konkurs, który jest dla prawdziwych maniaków, którzy piszą Kod, że nikt inny nie może czytać, ale, że coś robi albo bardzo proste i naprawdę niesamowite. I myśleliśmy, że zawrzeć z tym wyglądem na coś, co jest zdumiewające Może widzieliście kiedyś. Ale my na tym kończy uwaga, kropka ukośnik, thadgavin. To wtedy to, co czeka. To jest to dla CS50. Do zobaczenia w środę. [MUZYKA GRA]