[Přehrávání hudby] DAVID Malan: Dobře. Vítej zpátky. To je CS50, a to je První týden, pokračování. Takže jeden z důvodů, proč jsme se složit kolem technologií, jako Google Sklo je, že přicházejí s něco známý jako API, Application Programming Interface. A co to znamená, že se správné soubory a se správným dokumentaci, můžete skutečně psát software i pro zařízení, jako jsou tyto. A tak to, co máme na mysli, k semestry konec je, pokud je projekt zahrnující, řekněme, Google Sklo může odvolání, uvidíme, co můžeme udělat v podmínky hákování vás s některými loaner hardware, jakož i veřejně přístupné API, takže můžete skutečně začít vytváření softwaru které běží na stejné sklo Google. Další zařízení, které hrajeme s dobou, že jsme si mysleli, by mohla být zábava na konci semestru je tato maličkost tady. Je to tzv. Leap Motion, a to, co jste asi vidět je technicky reklama na zařízení, ale se mluví, co to zejména Zařízení je schopné. A je to také přichází s API, pomocí který můžete psát software ovládat svůj počítač takovým způsobem, Docela se mi líbí tento minutu filmu najdete ZDE. [PŘEHRÁVÁNÍ] [END PŘEHRÁVÁNÍ] Takže teď, tento přístroj se stane být realizovány jako malý USB konektor, který můžete připojit do vaší počítač, ale já bych se nedivil když zanedlouho máme tyto druhy technologie v příštím šarže PC a Mac, takže můžete skutečně s ní pracovat způsobem, jako to. Ve skutečnosti to, co jsem myslel, že to je také Zastavil jsem se trochu demonstraci program, který je dodáván s tímto softwarem. Tak jsem dal malý snímač v přední části mého notebooku. A jak můžete vidět, že už si uvědomuje, že moje ruka je zde ovládání. A to všechno dělá, je aplikace hladce maličkosti, jako je tento. Ale vidíte, že skutečně Mám pět prstů tam. Pokud se nám podaří dostat to udělat vše, 10, můžete si představit elegantní piano aplikace nebo podobně. Takže pokud byste chtěli přijít po hodině dnes a hrát s tím, jak dobře, jste vítáni. Tak o tom více ke konci semestru. Takže pár administrativní oznámení. Jednou, to Výřezem tento pátek v poledne na cs60.net/section. To URL je na kurzu je Domovská stránka stejně. Do té doby, i když, supersections bude mít premiéru tuto neděli. Supersections jsou jednorázová záležitost, , protože to nám zabere nějaký čas na práci , kdo je v které části a kde. Takže Tuto neděli, bude tam jeden sekce pro ty méně pohodlné, jedna sekce pro ty, pohodlnější. A ti z vás, někde mezi vítáni jít jeden nebo oba nebo žádný. Oba z nich bude natočen. Budou ve větším sále, než část by za normálních okolností se dovnitř Ale cílem je vybavit vás některé komfort s problémem nastavit jednu, s C, s CS50 zařízení, tento víkend, ještě předtím, než zjistili, že vaše formální přiřazení sekce. Takže budete splnit vaše TF a vaše menší skupina sectionmates asi týdenní dobu. Úřední hodiny, zatím, byly děje. Do využít z nich dnes večer nebo zítra večer, pokud byste chtěli. Problém nastavení 0 je splatná v pátek. Jedná se o den později, než pravidelně plánovaným čtvrtek. Ale problém sada 1, uvidíte že zahrnuje některé warm-up cvičení, se kterými si sami lze rozšiřovat Čtvrtek termín do pátku. Problém sada 1, mezitím bude mít premiéru na hřišti internetových stránkách to přichází Pátek, pokud byste chtěli schoulit to, jak jsem kdysi dávno pozdě V pátek večer ve svém pokoji. Takže cs50.net/appliance je místo, kde můžete získat CS50 spotřebiče že jsme začali používat v pondělí. Budeme používat trochu více dnes. Ale buďte ujištěni, že problém nastavit 1 Specifikace vás provede přesně kroky, které potřebujete se dostat, že nahoru a běh. Takže nebojte se o tom, že před Pset 1, pokud byste raději ne. Dobrá. Tak jsme se v pondělí na zdrojový kód, ale v souvislosti s novou programovací jazyk, a to C. A a C, Na rozdíl od nuly, není grafický. Není to skládačky. Je to spíš anglicky jako syntax. A je tu pár kroků zapojených ve skutečnosti písemně a běží Program v C, protože kromě zdroje Kód takhle, budete potřebovat něco volal kompilátor. A Laicky řečeno, to, co nemá kompilátor udělat pro nás? Jo. STUDENT: Převádí kód že píšete na 0s a 1s. DAVID Malan: Dobrý. Tak to převede kód, který píšeme 0s a 1s. Převádí tzv. zdrojový kód kód objektu, latter který vypadá Trochu něco takového. A je to váš procesor, mozek vnitřní část počítač, že z důvodu lidi, kteří vytvořili tyto počítače, vědět, co tyto sekvence 0s a 1s průměru. Možná to znamená, že tisk. Možná to znamená, že navíc. Možná to znamená, že odčítání. Možná to znamená, že zobrazení grafiky. K dispozici jsou předem definované vzory bitů že se svět rozhodl znamenat určité věci. Ale z větší části v tomto kurzu, budeme pracovat na vyšší úrovni, a budeme brát za samozřejmost, že existují věci, jako kompilátory, které mohou aby náš zdrojový kód funkce tak, jak jsme v úmyslu. Takže programu jsme napsali první poslední týden a pak začal do přístavu, tak mluvit, C letos Pondělí, to bylo. Když zelená vlajka kliknutí pozdravit. To bylo, samozřejmě, zapsaný Scratch. A já jsem tvrdil, že ekvivalentní Program v C vypadal trochu něco takového. Takže to, co jsem myslel, že bych udělal je nejprve, pojďme šprýmaři odděleně, co vypadá na první pohled sice jako docela tajemný syntax, ale začnete všímat vzory docela rychle. Co budeme dělat i dnes, je poskytnout ty s duševní model pro některé kanonický některé standardní konstrukce v programování. A pak budeme skutečně dostat své ruce špinavé s některými příklady stejně. Takže pro ty z vás pohodlnější, si uvědomit, že tento týden a pak další týden může velmi dobře být trochu přezkumu. Ale zejména při hacker vydání problému set 1 zhasne Samozřejmě web v pátek, já si myslím, zjistíte, že i když se budete vyplnit některé mezery v příštím týdnu nebo dvou, Začnete se dostat stále více napadal a setkání nové a novější věci. Takže pojďme dráždit tento program sebe několik řádků najednou. Na samém vrcholu, máme to, co je odborně nazývá direktiva preprocesoru. To je jen řádek kódu, který říká, zahrnout do obsahu souboru, takzvané standardní I / N, standardní vstup - nebo, je mi líto, standardní I / O, standardní vstup / výstup,. h, uvnitř mého vlastního programu. Takže jinými slovy, když jsem to psal Program s jednoduchým textovým editorem, jako gedit je jednodušší ekvivalent něco jako Microsoft Word, které instrukce # include stdio.h, je jen chystá říci kompilátoru, uchopit Obsah tohoto jiného souboru, stdio.h, a vložit je přímo tady. A teď, proč mě to zajímá? Co tvrdíme, že je uvnitř tohoto souboru tzv. stdio.h, který je uložen někde na mém pevném disku nebo v této případ, někde v CS50 zařízení? Někdo ji tam pro mě. Ale to, co je v něm? Jo, je to prohlášení volána funkce printf. Takže printf připomíná, že funkce zobrazuje slova a znaky a čísla na obrazovce v mé nabídky. Ale já jsem to nenapsal. CS50 to nenapsal. Někdo lety napsal, a oni v podstatě nám recept na to v souboru nazvaném stdio.h. Takže první řádek jen mi dává přístup na funkce, které někdo jiný napsal před lety, mezi které jsou printf. Teď, další řádek budu mávat moji duši ruka s minimálně do příštího týdne. Ale teď vím, že int main (void) je v podstatě ekvivalent této žluté skládačky, kdy zelená vlajka klikli. Svět před lety rozhodl, že pokud píšete program jazyka C s názvem, můžete začít váš program s řadou která vypadá takhle. Za pouhých asi za týden, bude to dělat smysl pro to, co je int, co je neplatné. Ale teď, jen myslet na to, jak této žluté puzzle. Teď další, máme složená závorka následuje další úzké složenou závorku, abych tak řekl. A uvidíme to po celou dobu programy v jazyce C, jakož i JavaScript a PHP. A to jen zapouzdřit související řádky kódu. Otevřená složená závorka v podstatě říká, tady je nějaký kód. A uzavřená složená závorka, která je pod úhlem v opačném směru, jen znamená, že je to pro odpovídající kód. Takže šťavnaté řádek v této první Program je poslední, printf, quote-konec citátu, hello world. A já jsem volal věc mezi cituje, co minule? Takže je to řetězec. A řetězec je jen techie termín pro posloupnost znaky, slovo, fráze. Dokonce i jediný dopis by mohl být dvakrát citován. Ale je to posloupnost nula nebo více znaků. Zpětné lomítko-n, i když vypadá trochu divné. Ale je to prostě něco znamená jednoduchý k počítači. Co je zpětné lomítko, n? Nová linka. Tak to je jen zvláštní sled znaky, které se svět rozhodl znamená, vložení zalomení řádku tam, protože kompilátor bude skutečně mít zmatený, obvykle, pokud jste velmi pochopitelně, ale nesprávně, stačí začít klávesy Enter, aby nové řádky v kódu. Musíte být trochu víc explicitní zpětným lomítkem-n. A uvidíme tu několik dalších, jako vzory pro speciální znaky. Například, pokud jste chtěli, aby vaše mysl bloudit na rohový případě, Předpokládám, že jsem chtěl vytisknout dvojité uvozovky na obrazovce z jakéhokoli důvodu, že se zdá, že být trochu problematické, ne? Protože když jsem dal uvozovky v uprostřed "Hello, world", z jakéhokoliv Důvodem, proč se zdá, že potenciálně problematické? Láme řetězec. Kompilátor je jen program. Program jako kompilátor právě děje číst své heslo shora dolů, zleva doprava. A když vidí tři uvozovky místo dvou, že to nebude vědět, pokud máte na mysli, že ta věc vlevo by měl být řetězec nebo věc právo, nebo celou věc. Je to nejednoznačné, a tak, jak typické kompilátor by udělat, je jen šílet, a dá vám nějaké chybové hlášení a aby se vypořádat s tímto problémem. Tak vzhledem k tomu, lomítko, n znamená, že nový linka, co by váš instinkt nyní začnou být, pokud byste chtěli zahrnout něco neobvyklého, jako double citovat uvnitř tohoto jinak citovaná string? Zpětné lomítko-dvojité uvozovky. A tak budeme vidět druh vzoru také. Pokud chcete udělat něco trochu divné, zjistíte, že řešení často následuje vzor, a zpětným lomítkem označuje sekvenci escape. A znamená to něco speciálního že musíme zastupovat ve odlišným způsobem. Pokud jde o tom, jak si představují zpětné lomítko, dobře, budeme vrátit se na to. Ale odpověď je také ve skutečnosti trochu zřejmé. Takže pojďme se představit některé další programovací konstrukty které jste viděli v Scratch. Pravděpodobně jste již považována za samozřejmost již pokud jste již ponořil do Problém nastavení 0. Ale pojďme teď představit syntaxe C pro tyto jinak poměrně intuitivní nápady, alespoň některé z nich. Takže tato představa o stavu, nebo větev, zatímco dříve jsme to pomocí kódu, který vypadal takhle vlevo v Scratch - pokud x je menší než y, pak se to tak říct - místo toho se v C - dovolte mi, abych zdokonalovat v v nejjednodušším případě - jsme prostě říkat, pokud otevřete závorka, je něco pravda - Logický výraz je jít kde jsem řekl podmínku - zavřít závorka, pak to, co je Uvnitř těchto složených závorek. Takže i zde, složené závorky jsou něco jako Scratch je U tvaru skládačky. To, co je uvnitř těchto složených závorek. V tomto případě, lomítko lomítko. A všimněte si, to je dopředu lomítko, nikoli zpětné lomítko. Lomítko, lomítko, pro ty, kteří si naprogramovaný předtím, prostě znamená - je to jen komentář. Komentář není linka kódu, samo o sobě. Je to řada angličtiny, který, člověk, psali pro sebe, aby možná připomene, že máte něco udělat, aby vysvětlit sebe, vysvětlovat někdo jiný, co váš kód dělá. Je to jen popisný komentář. Teď, samozřejmě, můžeme mít dva-cesta rozcestí, jen tím, že dělá to, třícestný rozcestí tím to, a pokud budete pokračovat v tomto vzor, ​​můžete mít čtyři-cesta, Pětisměrná, šest-cesta vidličky v cestě, pokud budete muset zvládnout, opravdu, že mnoho podmínek. A pak si všimnout podobnost zde - if (podmínka) else if (podmínka), a jediná, která to trochu divné je poslední, který je právě to jinde. Ale opět, to je stejný, koncepčně, s tím, co jsme udělali již, přestože syntaxe bude trvat trochu zvykat. Nyní, v tomto příkladu, jsou jiné zvláštní syntaxe. Vidíme printf opět otevřené závorky, a blízko závorky. A uvnitř je řetězec v uvozovkách. Závorky, v souvislosti printf, přejděte vlevo a právo na to, co? Co si popíšeme ty, které byly string jako obecně? Takže je to argument. Kdykoliv budete mít funkce, jako je printf, a pak otevřít závorka a zavřít závorka a něco uvnitř to, zda je to řetězec nebo celé číslo, nebo cokoliv jiného, ​​co v mezi tyto závorky se nazývá argument. A argument, jen ovlivňuje Funkce chování. V tomto případě, je to docela jasné, jak. x