David J. Malan: Tak tohle je CS50. A to byl CS50 vlastní Colton Ogden, více o tom, kdo je to hudba, kterou můžete stažení na soundcloud.com/cs50. Takže dnes jsme se zaměřili všichni více na umění programování. A my jsme se, kde jsme z minulého týdne, se zaměřením na Scratch, který byl tento grafický programovací jazyk. A brát věci dolů na nižší úrovni, použití více tradiční programování jazyk známý jako C. Ale na cestě, si uvědomil, že stejné myšlenky jsme mluvili o minulého pátku bude opakovat nejen v této jazyk C, ale ve většině každý druhý které se podíváme v tomto semestru. Tak jsme nazvali tuto věc zde to, co minule? To je zástupce prohlášení. Tak jsme volali toto prohlášení. A to něco dělá. Je to poučení, že Počítač nebo Scratch může vykonat. A dále, pojďme také spustit volá něco takového funkce, z důvodů, které se brzy uvidíme. Zatím jsme viděli věci, jako je tato. A tito jsou obecně známý jako co konstrukt? DIVÁKŮ: Loop. David J. Malan: Takže smyčka. Tak docela jednoduché. Je doslova dělá to, co říká. A v Scratch, chcete-li nacpat více dílky tam, kus bude růst, aby se vešly to. A uvidíme, v C, které můžeme udělat totéž. Dalším typem smyčky, i když, V Scratch může být navždy, nebo tam je nějaké číslo jiných přístupů. Ale pojďme se více všeobecný vzhled, s tváří to je pravděpodobné, že dobře obeznámen, na smyčky obecně. Mark Zuckerberg: One věc, že ​​počítače jsou opravdu dobré je opakování příkazů. Jako člověk, měli byste si opravdu nudit, pokud vás musel udělat totéž mockrát v řadě. Ale počítač může udělat totéž miliony nebo dokonce miliardy doby, a ne nudit, a musí být schopen provádět, že se opravdu dobře. Tak například, když chtěl popřát všem na Facebooku všechno nejlepší k narozeninám zaslala jim e-mail, mě to může trvat déle než století skutečně zapsat všechny ty e-maily pro všechny. Ale jen pár řádků kódu, mohu má systém poslat e-mail pro všechny na Facebooku, který si přeje jim všechno nejlepší k narozeninám. Takže to je to, co smyčky a proč jsou cenné a něco že počítače umí velmi dobře. David J. Malan: Takže pokud jste byl příjemcem některých CS50 je a Dropbox je prostor pozdě, to je vlastně přesně to, co jsme ano, pomocí kódu docela rád, že. Máme v podstatě mají velký tabulka, do které lidé byli zadáním jejich jména a e-mailové adresy. A napsal malý kus kódu, který můžete iterovat přes tyto adresy a vyplivnout jedinečné adresy Případ někdo předložil vícekrát. A poté, pošleme automatické e-maily z CS50 je bota, včetně kupon kód. Nyní se také podíval na Tato konstrukce minule. A to je zvláštní příkladem toho, co? Tak jo, Boolean výraz. A tvar je určen zachytit, že stejně. Všechny tyto otázky tvoří true nebo false v Scratch bude vypadat trochu něco takového. A říkáme tomu Boolean výraz. To je skutečně pravda, nebo ne, ano nebo ne. Je to způsob, jak odpovědět na otázku. A mezitím si můžete použít tyto Boolean výrazy uvnitř konstruktů jako ty, které z Samozřejmě, jsou podmínky nebo pobočky, příslovečná vidličky na silnici. A mohou vypadat nejen takhle, ale mohou také se elses jsou s nimi spojeny. A můžete mít ve skutečnosti tři cestu rozcestí, nebo čtyřcestný vidlice na cestě, jednoduše tím, že hnízdění těchto věcí, jak uvidíte v Scratch pokud jste tak již neučinili. A jak si můžete udělat v C i. Vezměme si další všeobecný podívat se na alumnist, jakož i, který může představovat odlišný přístup k těmto věcem se nazývají podmínky. Bill Gates: Lidé dělají rozhodnutí každý den. Například předtím, než jdete ven vás druh mít, jestliže prohlášení, které říká, pokud prší a pak jsem se Potřebuji, aby mi bundu. A počítače jsou úžasné, jakmile se rozhodnout tyto druhy výpisů, , že se může spolehlivě provést ty věci na neuvěřitelnou rychlostí. A tak počítačový program opravdu je trochu matematiky a některé if-li to rozhodnutí dostane vyrobena. David J. Malan: Tak jako možná víte, je to lidé jako Bill Gates, Paul Allen a další že opravdu odstartovala takzvaný osobní počítač revoluce před několika lety. Myslel jsem, že předtím, než se ponoříme do nějaké Administrivia, bychom se týkají příběh z Albuquerque, New Mexico Museum of Natural History a věda, kde někteří z Billa Gatese " a Paul Allen nejstarší příběhy se líčí, jak máme nyní dnešní PC a Mac a další. K tomu však budeme potřebovat dva dobrovolníky kteří mají velmi dobré vyprávění hlasy číst scénář nahlas. Dobře, a co v tam. Pojď nahoru. A co před zde. Pojď dolů. Vezměte si svá místa zde. Jak jste přišli, pár administrativních oznámení. krájení, proces výběru sekce, začne tento Středy do pátku. Více o tom letos Ve středu v přednášce. Super sekce, zatím, jsou něco, co nabízíme příští týden přičemž celá třída je pozván k účasti v poměrně velkém měřítku oddíly, jeden pohodlný, jeden méně pohodlné. A budeme oznámit údaje o tom, jak dobře, později tento týden. Mezitím profily, samy o sobě, začne ve třech kurzu týdne, nulový index, což znamená, že jsou to pár týdnů ven. Tak, aby se nebála. Ještě jste se minul něco v tomto směru. Mezitím se do té doby, pokud máte máte nějaké dotazy administrativní, email sebe a Devon a Gabe a Rob na této adrese zde. Konečně, nastavte problém 0 je, samozřejmě, ven. Možná jste si toho všiml na internetových stránkách kursu je. To by vám měl poskytnout Všechny odpovědi na otázky můžete mít na cestě k Začínáme s problémem sady. Ale pokud se ocitnete potřebují pomocnou ruku, všemi prostředky, účastnit se úřední hodiny, Pondělí, úterý, středa, čtvrtek tohoto týdne ve večerních hodinách ve čtyřech jídelnách. Viz tuto adresu URL tam údajů kde úřední hodiny bude. Nyní se pojďme splnit naše Dva hosté zde dnes. Jak se jmenujete? JAY PAUL: Jay Paul. David J. Malan: Jay Paule, rád tě poznávám. HIKARI: Hikari. David J. Malan: Hikari? HIKARI: Hikari. David J. Malan: Hikari. Těší mě také. Jay Paul a Hikari mají přední z nich na tyto hudební stojí dva skripty, které jsem vytištěných se dnes ráno z Nového Mexika Muzeum přírodní historie a vědy. A to, co jsem si myslel, Já bych to na stropě je doprovázet své recitaci scénáře a tato historie u některých vizuálních obrazů, žádné překvapení. A to, co jsem udělal v předstihu je prehighlight na skriptu co byste měli číst, a to, co byste si měli přečíst. A budeme v podstatě jen alternativní odstavce. Takže je to podobně jako byste mohli udělali v anglické třídě. To je opravdu přimět publikum věřit v příběhu zde. Půjdeme? Takže příběh je zde, máme BASIC, a to začíná v Cambridge. JAY PAUL: Bylo to v zimě, 1974, v Cambridge, Massachusetts kde zimy může být zima. Vousy, dlouhé vlasy vysokoškolský odpadlík jmenován Paul Allen byl vysilující po Harvard Náměstí, pohroužen do svých myšlenek. Jeho hlavním zájmem v těchto dnech bylo, jak dostat svého přítele, Bill Gates, opustit školu a jít do obchodu s ním. HIKARI: dva už pryč prostřednictvím celé řady podnikatelských aktivit dohromady, začíná na břehu jezera škola v Seattlu kde byly vyplaceny ve volném čase počítače se otestovat počítač PDP-10 v místním čase sdílení společnost. Nejnovější plán byl, aby přestal škola a tvoří softwarovou firmu. Allen opustil Washington State University. Ale na poslední chvíli, Gates se rozhodl zůstat s Harvardu. JAY PAUL: Ten den, přes Harvard Náměstí, Allen zahlédl ledna, 1975 vydání populární elektroniky se Zemí zastavení titulku, Jako první na světě minipočítače Kit soupeřit Komerční modely. Pod nadpis se obrázek malé krabičce zdobí světly a spínačem. Říkalo se MITS Altair 8800. A Allen věděl, že to, co on hledal. HIKARI: Days diskuse následovala. Allen a Gates pochopil Význam Altair. Mluvili často o mikroprocesorech a čekali, co by být provedeno s nimi. Teď tam byl minipočítač kit na kryt Popular Electronics. Je to zřejmě měl zatím nemá žádný software. Si představovali národ programátoři sestupně na MITS. A tak nazvali Ed Roberts, šéf společnosti, prohlašovat, že má verzi BASIC programovacího jazyka téměř připraven pro Altair. To se nestalo. A Roberts musel vědět, že ne. Začínal 10 hovorů denně od lidé, kteří měli BASIC téměř připraven. A jeho odpověď skladem byl "první člověk kdo se ukáže s pracovní BASIC dostane smlouvu. " JAY PAUL: Gates a Allen ještě nikdy neviděl Altair. Nikdy ještě neviděl Intel 8080 mikroprocesor v srdci Altair. Ale o pár let dříve Allen psal program na sálovém počítači, který emulované provoz předchozího Intel mikroprocesor. A tentokrát oni by udělal totéž. HIKARI: s procesorem Intel 8080 ruční po jeho boku, Allen se posadil na Harvard PDP-10 počítače a napsal emulátor a software nástroje potřebné k tomu programování. Mezitím Gates přestal chodit tříd a věnoval se k návrhu BASIC, používat každý trik věděl, že se velikost dole 4 KB. JAY PAUL: V Albuquerque, Ed Roberts zavolal Gates s žádostí o informace o tom, jak Altair zacházet specifické rutiny. Nikdo se nikdy nezeptal dřív. A Roberts začal být zájem. HIKARI: S rozvojem nástroje a design připravený, Gates a Allen napsal kód na PDP-10, získávat další Harvard studenta, Monte Davidoff, psát matematické rutiny. Po závěrečné noci programování, Allen dostal do letadla dodávat jejich základní na MITS. Strávil letadlo přečkat znepokojující. A zpět do Cambridge Gates byl znepokojující. Byli testovány jejich základní a že pracoval na emulátoru. Ale co v případě, že emulátor se mýlil? JAY PAUL: Jako v letadle přiblížil Albuquerque, Allen si uvědomil, že jejich BASIC, nyní úhledně obsažena na malé role děrovaný papírovou pásku, by k ničemu bez samostatné Program, nazvaný nakladač, který by se říct, Altair, jak číst papír pásku přivádí do teletype stroje. Vytáhl z kapsy zápisník a rychle načmáral dolů zavaděče programu v jazyce shromáždění, a pak ručně přeložil do 1s a 0s Altair bude rozumět. HIKARI: Allen čekal čistý, malý, high-tech společnost běh muži v oblecích. Takže on byl překvapen, když se setkal Roberts ho na letišti vypadá jako ranči hand. Roberts byl také překvapen. Když se pustil Harvard programátor při dražší hotel, Allen musel přiznat, že si nemohl dovolit místnost. JAY Pavel: MITS, sama o sobě, byla Nachází se v prašném pásu obchoďáku. Uvnitř na přeplněná pracovní stůl byl Altair naloženo s 5 kilobajtů paměti a spojeny kabelem k dálnopisu stroje. Roberts a hlavní inženýr, Bill Yates, čekal s očekáváním jako Allen přepínat své nakladač Program na Altair. Dálnopisu začal supění, jak to vytáhl papírovou pásku přes páskovou čtenáře. Trvalo to asi 15 minut nahrát program. Pak dálnopisu náhle vytisknout paměť výzva, pak připravena výzva, a Allen začal psát Příkazy několik test. K všeobecnému úžasu, Pracoval software. Tam byly chyby, samozřejmě. Ale hlavní věc je, že funguje. HIKARI: Později, na jejich cestě k 3,00 dolarů oběd v Pancho je, vosa letěl V okně vyzvednutí truck a pálily Allen na paži. Ale v tomto bodě nic mohl zkazit náladu. Altair měl nyní své základní, první komerční software pro domácí počítač, natočil Paul Allen a Bill Gates, podnikající pod názvem Microsoft. David J. Malan: Mnoho díky našim dvěma čtenářům. [APPLAUSE] David J. Malan: Teď máte možnost volby, před odjezdem, na jiskřivý nebo záře v dark-- oh, vyčkejte jednu sekundu, počkej jiskřivý a ve tmě slona od CS50 vlastní Cheng Gong. HIKARI: Aw, děkuji. David J. Malan: All Dobře, děkuji moc. [APPLAUSE] David J. Malan: Tak pravdivý příběh. To znamená, že všechny tyto stroje a snadnost, s níž jsme použít nyní a přijmout za samozřejmost, opravdu začal tady, jen pár kroků Z tohoto skutečného divadla. A teď ještě dnes, pokud jste nebyli, To je Maxwell Dworkin, počítač vědy budova, i za rohem. A ve druhém patře tohoto Budova nemá viset tři stránky z původního zdrojového kódu, které Bill Gates a Paul Allen psal. Ve skutečnosti, pokud použití přiblížení na můžete vidět nejen jejich jména v Původní typ, ale také jejich podpisy, které zdobily pár let zpátky, kdy poslední návštěvy. Ale co bylo obzvlášť důležité o to je to, co je uvedeno na to bylo napsat program, který by umožnit ostatním lidem psát vlastní programy. V době, kdy vše bylo s tento stroj Altair vyroben MITS. A vše, co potřeboval, bylo, nějaký způsob, jak takže je snadné pro fandy a lidi, Líbí se nám v této místnosti skutečně programu že aniž by nutně pochopení Montáž kód, nebo stroj kód, nebo nedej bože, 0s a 1s. My programátoři, jako ty v této místnosti jsme chtějí mít možnost vyjádřit sami mnohem více jako pseudo kód i když je to trochu nit vybíravý, než jsme mluvili minulý týden. Nechceme psát kód, jako je toto, které Paul Allen a Bill Gates udělal. My místo toho chcete napsat kód, který vypadá trochu více uživatelsky přívětivé. Teď to je jazyk známý jako BASIC. A čísla řádků jsou to, co vás používat jednoduše číslovat řádky kódu že píšete. Nemáme dokonce ani to, že v těchto dnech. Ale můžete vidět zde jak PRINT "Hello, World" by totiž pravděpodobně tisknout jen to. A tak to, co Bill a Paul udělal, bylo, umožnit lidem psát kód, jako je toto místo of-- pokud jste se podívat na počítačové vědy wall-- kód, jako je toto. Ve skutečnosti, v poslední době CS50 měli příležitost sednout si s profesorem Harry Lewis v informatice oddělení, kteří vlastně učil Bill Gates před několika lety, a stojí zde před tyto tři strany výňatky. Pojďme se podívat. HARRY LEWIS: Co musíte zde výpis rané kus softwaru napsal Bill Gates a Paul Allen, zakladatelé společnosti Microsoft. Takže kód je zajímavý ze dvou důvodů. Za prvé, to se stalo Microsoft je první produkt, který byl tlumočníkem BASIC programovacího jazyka. A za druhé, je to jeden z prvních pokusů vytvořit tlumočníka tak obyčejné lidé mohli využívat osobní počítače. Takže Bill Gates byl vysokoškolák na Harvardu. Začala jsem vyučovat na Harvardu v roce 1974. To bylo provedeno v roce 1975. Tak to bylo brzy v jeho kariéře a brzy ve své kariéře. Vlastně jsem učil Billa Samozřejmě kolem tohoto času. Paul Allen nebyl Harvard student, ale byl na střední škole spolužák Bill Gates. Pokud se přijít podívat v seznamu, budete skutečně najít třetina jméno, Monte Davidoff, který byl Gatese spolužák tady na Harvardu. OK, takže tady je zajímavý komentář tady. To říká, že "Ve 4K můžete odstranit odmocninu ale pro smyčky by měl i nadále pracovat. " OK, takže to, co to znamená, je to, že dva způsoby, jak zkompilovat tento program. Jeden z nich byl běžet na verzi tohoto počítače Altair , která měla jen 4K slova paměť 4096 slov paměti. Ale velká verze měla 8K. A tak, co to říká, že je že ve verzi 4K jste museli odstranit některé kód, aby bylo vhodné. A jedna z věcí, , které by byly odstraněny by odmocnina rutina. Ale zřejmě pro smyčky by měl i nadále pracovat, i když jste sestavování dolů pro jen 4K verze počítače. David J. Malan: Takže jedním z témat, jak uvidíme v informatice, je tento pojem vrstvení a abstrakce, a opravdu stojí na ramenou z lidí, kteří přišli před námi, ne na rozdíl od některých z Billa Gatese a Paul Allen vyprávění zde. A co to znamená, že dnes můžeme vzít na samozřejmé, že věci jsou ve skutečnosti pro nás snazší psát kód. Opravdu kód, jak jsme si řekli v pátek, je více technicky známý jako zdrojový kód. A to je to anglicky jako syntaxe to je víc, řádné a více dobře definované než něco jako pseudo kód, pro který neexistuje žádná formální definice. A dnes, co budeme soustředit se na, je zdrojový kód že vypadá, což sice na první pohled vypadá úplně mystické. A upřímně řečeno, je to způsob, jak esteticky složitější než základní program. To vše program dělá, Připomeňme, je to, co jsme si řekli? Je to prostě vytiskne "hello world". A přesto se na všechny věci, které potřebujeme zabalit kolem toho velmi jednoduché fráze. Ale netrvalo dlouho a všichni tyto řádky a více bude mnohem lepší smysl. A průtok je následující. Co potřebujeme, máme k dispozici je, aby se kód, jako zdroj kód, který jsme právě viděli. A my potřebujeme nový program spustíme ji projít. Potřebujeme algoritmy, které mohou převést zdrojový kód, jako je tento, do objektového kódu, 0s a 1s. Jinými slovy, to, co budeme se učit ještě dnes je, jak to udělat, napsat Zdrojový kód do horní části, předat ho jako vstup na zvláštní Program známý jako kompilátor, a budeme produkovat objektový kód. Což je jen ozdobný způsob, jak že bychom se vzít něco že vypadá takhle, předat ji do programu s názvem kompilátor, produkovat objektový kód že vypadá takhle. Tak to jsou doslova vzory 0s a 1s , které jsou chápány Počítač Intel v těchto dnech, že pokud je vykládán CPU, mozky uvnitř počítače, doslova vytisknout, docela jednoduše, "hello world". Nyní je tu způsob, jak více 0s a 1s, než vás doufá, že by mohly být nezbytné pro to. Ale to je proto, že stavíme o dobré řešení složitosti že můžeme nadále brát jako samozřejmost. Jinými slovy, mnoho chytrých lidí dali nám spoustu skvělých nástrojů a výkonný software, s nimiž Nyní můžete provést projekty sami. Takže začněme. Zatímco minulý pátek, a k problému Set 0 tento týden budete hrát v svět, který vypadá takto. Od dnešního dne a problém Nastavte 1 příští týden, kód bude trochu vypadat mystický, ale funkčně je bude stejná. Tak oznámení, vrchol je Scratch, dno je C. Upřímně Scratch je mnohem více uživatelsky přátelská a přístupná. Ale pokud jste se porovnat vizuálně shora dole, tam je docela prostá korespondence mezi skládačky a jazyk se chystáme hrát. Zejména, řekněme, modrý kousek skládačky do top, je zřejmě odpovídá tomu, co klíčového slova nebo speciální fráze v tomto jazyce volal C? DIVÁKŮ: printf. David J. Malan: printf. To znamená, že formátovaný tisk. A to je jen fantazie způsob, jak říkat printf v C bude příkaz nebo funkci která tiskne něco na obrazovku. Co to vytisknout na obrazovku? Cokoliv řeknete, že se uvnitř uvozovek, uvnitř závorek. Takže znovu, pravda, je tu spousta věcí, , že musíte mít na paměti, závorky, uvozovky, středníky, a to vše. Ale to všechno je trochu z vedlejší. Zajímavý stánek s jídlem teď je to, že řekněme blok Scratch je do značné míry ekvivalentní prohlášení printf v C. Mezitím, žlutá skládačky do horní části, kdy zelená vlajka kliknutí je zřejmě ekvivalentní k tomu, co tady klíčových slov? DIVÁKŮ: Main. David J. Malan: Tak hlavní. Možná, že pravý, možná neplatné. Ale hlavní druhy zvuků, jako je je to důležité, a opravdu je to tak. Takže když se zelenou vlajkou klepnutí je opět kousek skládačky že začíná Celý Scratch programu. Ale budeme se začít volat že hlavní, tato funkce známé jako hlavní. Teď zatím potkáme zobecnit to následujícím způsobem. Bychom mohli nazvat říci funkci. A to může vypadat konkrétně takhle. No, a co smyček? Chceme-li začít konverzi nebo překlady více Scratch na C, tohle tu zřejmě jen říká, že "hello world" navždy. Takže pokud spojíte tyto skripty s kočkou v Scratch, je to jen jde, aby řekl v nějakém kresleném bubliny, "Hello world, hello world, ahoj svět, "ad nauseum, navždy. Chceme-li udělat něco podobného v C, bude to vypadat trochu záhadné. Ale můžeme dosáhnout stejné výsledky, jak jsme si nakonec zjistit, syntax, jako je tento. Budu používat printf znovu, proto, že na konci dne Chci vytisknout "Hello World". A já jsem zřejmě pomocí klíčové slovo, které není navždy. Je to místo, zatímco slovo. Ale jen sémanticky v Anglicky, zatímco druh navrhne nějaké smyčce nebo cyklu. Tak, že se stane, že klíčové slovo, které C používá. A i když pravda, proč chvíli pravda efektivně znamená navždy? No, když, jak jsme brzy vážit více, má tuto v závorkách vedle ní kde si můžete dát logický výraz. A tak dlouho, jak je to výraz je pravdivý, tento kód, jak je označeno mezi těmito dvěma složené závorky, tak jak je to volání, bude jen držet znovu a znovu spustit. Takže pravda je pravda. Takže je sice pravda prostředky Jen to navždy. Je to skoro hloupé postavit se vyjádřit sám sebe. Ale nebylo navždy klíčové slovo v C. Bylo to. A tam byl velmi jednoduchý Boolean výraz jako pravdivý. A tak to, uvidíme, dosahuje stejného výsledku. Jak jinak by mohl implementovat smyčku? No, Scratch byste mohli pevný kód určitý počet iterací ve smyčce zde. A tak to je přesně to, co jsme mohli dělat v této verzi C, čímž máme tzv pro smyčku. A smyčka se zde děje iterovat poněkud záhadně, z hodnoty 0 na up na, ale méně než 10. Nyní proměnné nuly. Možná neměl příležitost k využití těchto. Ale jaký to má smysl, obecně, proměnné jsme si řekli v minulém týdnu? Co je to? Diváků: Body. David J. Malan: na místo? Oh, body. OK, sledování bodů, Například, ve hře. Nebo obecněji dělá co s proměnnou? Co je to nástroj z nich? DIVÁKŮ: Memory. David J. Malan: Jo, tak paměť. Je to něco, co pro ukládání. A tak nějak hloupé vizuální i použité Naposledy to bylo podobné skleněné mísy. A pokud bychom chtěli uložit něco uvnitř proměnné, Například právě teď hodnota je šest, protože tam šest ping pong míčky zde. Je to jen nějaký druh skladování kontejner, který pod kapotou je realizováno s bity, 0s a 1s, ale počítač se stane to udělat. Takže v Scratch, když jsme Chcete mít proměnnou, můžeme použít oranžový blok, jako je tento. Budeme volat, že počítadlo v tomto konkrétním případě. Inicializován jsem to 0. A to, co jsem pak dělat? Navždy, říká čítač, který v případě, budete hrát s tím v Scratch, budete jen vidět Scratch. Kočka nebo co kostým si na ním bude mluvit číslo se jedná. Změna čítač 1 je jako je zvyšování o 1. A tak to bude počítat od tak co, co? Od 0 til nekonečna, nebo do Scratch přestávky, nebo dokud se trochu ztratí zájem o sledování jak vysoko se může skutečně spolehnout. Tak jak můžeme převést to C? Bude to vypadat trochu záhadné. Ale na druhou stranu, když se podíváte na sebe těchto řádků jednotlivě že druh lineup obecně. Takže zřejmě int bude mít nějaký zvláštní význam v C. Uvidíme znovu. Mimochodem to znamená, že celé číslo. Tak to prostě znamená, že číslo. Tak to je druh skleněné mísy Chci, jeden které lze uložit čísla, ne ping pong míčky. A budu používat rovnítko tam přiřadit jí hodnotu 0. Tak to je docela jako sadu proti 0, ale v C. Mezitím, přičemž platí, že je ekvivalent, samozřejmě navždy, i když je to trochu záhadný, a pak uvnitř složených závorek. A vy můžete myslet na těchto složených závorkách, které si můžete psát na klávesnici, jak skutečně jsou, jako je zakřivení Tyto žluté smyčky bloky nuly. To zahrnuje několik řádků kódu. Printf je stále Trochu teď děsivé, protože jsem viz citace nejen v závorkách. Ale co jiného je nového syntakticky v tomto případě? Tam je procento d. A pak zpětné lomítko n je tam. Jsme vidět, že před i i když jsem o tom nezmínil. Pak je tu čárka. A pak je tu pult. Ale uvidíme v několika okamžik, že toto je jen standardní způsob, jak říkat vytisknout "Desetinné číslo," citace, konec citátu, nějaké desetinné číslo. Ale já jsem ti to říct později co to desetinné číslo je. Takže k tomu, že tam je čárka V tomto řádku říká, printf, znamená, že do toho pusťte a tisk nějaké desetinné číslo. Jo, a mimochodem, je číslo Ať už je hodnota této proměnné. A tak, aby se to více jasné, uvidíme příklad zanedlouho zahrnující přesně printf v rámci reálného C programů. Teď už jen stačí zabalit některé z těchto konstruktů. Booleovské výrazy, nemusí mít příležitost k využití těchto ve vašem programu ale můžete velmi dobře, zejména pokud používáte podmínek. A tak se tyto dva příklady z Stírací na mysli, pokud x je menší než y, nebo jestliže x je menší než y a y je méně než z, jak můžeme přeložit? No, v C je to jen bude vypadat takto. A trochu mystické, více závorky, nějaké divné ampersandy, ale v podstatě myšlenky jsou tak jednoduché, jak jsou v puzzle kus světa. Jsme prostě kontrolovat, zda něco je menší než něco jiného. Jak se k podmínkám? Stručně řečeno v angličtině, co to kus Scratch kódu udělat, říkáte? Diváků: Porovná dvě čísla. David J. Malan: Porovná dva čísla, a pokud x je menší než y se říká, že tolik. Jestliže x je větší než y říká tolik, jinak jestliže x je rovno y se říká, že stejně. Tak kde to x a y pocházejí? Kdo ví. Tento kus Scratch kód je vytržené z kontextu. Ale to, co chceme udělat, je přeložit to jen na chvíli vidět. Tak, jak se dostanete pohodlně tento týden v Zadání problému 0 hrát v tomto světě na levé straně, si uvědomují, že myšlenky se nemění tento týden, nebo příští, nebo mimo ni. Jsme prostě bude začněte psát věci jiným způsobem s naším Klávesnice místo našeho myši. Takže, pokud x je menší než y, a Je tam nějaké závorky, pak je tu nějaké složené závorky Dalším druhem zapouzdřit stejně jako žluté skládačky dělat. A budu printf x je menší než y, a tak dále. Co je hezké o C, jak můžete vidět zde, je to, že nemusíte dostat tuto hnízdění, hnízdění, hnízdění je to nezbytně bude tlačit svůj kód vpravo. Místo toho můžete mít vše lineup úhledně takhle. Ale to je jen estetický detail uvidíme zase zanedlouho. V pořádku. Tak, že nás přivádí zpět k tento mystický hledá programu. Pojďme vlastně napsat nějaký kód. Nyní, jak se vám jít o psaní kódu? Všechny ty roky, které jste ve vlastnictví Mac nebo PC, desktop nebo notebook, jste vlastně měl možnost začít psát programový kód. Ale vy jste pravděpodobně chybí speciální typ programu. Určitě můžete psát kód. Ale nemůžeš nutně, po vybalení z krabice, převést, že zdrojový kód na strojovém kódu, 0s a 1s aniž co na vašem počítači? DIVÁKŮ: Compiler. David J. Malan: Takže kompilátor, že jo. Nyní většina z vás asi nemají vlastní kompilátor, Nikdy stáhli kompilátor. Ale uvidíte, můžete si jej stáhnout stejně jako většina jiného kusu softwaru. Ve světě Mac OS, můžete stáhnout nebo si stáhli již něco, co nazývá Xcode nebo GCC nebo Clang. Přijedete-li od Svět Windows by se vám mohlo stáhli Visual Studio, Visual Basic, prostředí, jako je to. Je tu desítky překladačů v těchto dnech, které můžete použít. Ale tady krátké na to, je to, že by bolest a, upřímně řečeno, technologický noční můra pro stovky lidí s různými počítačové konfigurace pro všechny konfigurovat své stroje stejným způsobem, takže můžeme být všichni na stejné stránce. Takže to, co my, místo toho, dělat v CS50 je dáme vám standardní prostředí, Linux prostředí, které je bude vypadat trochu něco takového. Uvidíte víc než to v Problém Set 1 specifikace, které půjde tento pátek v noci on-line. A co to znamená je to, že od nynějška se bude moci stáhnout a nainstalovat program volal CS50 Appliance. A budete-li stáhnout a nainstalovat další program s názvem hypervisor, který je jen ozdobný způsob, jak toho dosáhnout. Ať už vlastníte Mac nebo PC nebo Linux nebo počítač Solaris, nebo cokoliv blázen provozní systém, který používáte, budete stáhnout program nazývá hypervisor, který je chystá spustit CS50 Přístroj na vašem počítači bez ohledu na to, co je váš operační systém. Hypervizor jinými slovy převádí naše věci na jakémkoliv jazyce, bez ohledu na pokyny svého vlastní počítač rozumí. Tak to je vrstvení. A opět, je to druh tematických v počítači věda, budova nad věcí. Můžete mít Windows. Můžete mít Mac OS. Ale od příštího týdne budete bude stáhli volný kus softwaru nazývá hypervisor. Budeš si stáhli kus software s názvem CS50 Appliance. Bude to běh na hypervisoru, který se chystá spustit na vašem počítači. A konečný výsledek je že každý z nás bude mají jednoduché okno, jako je to na vašem počítači Mac nebo PC které nám dává iluzi všechny stejný operační systém, bez jakékoli jiné dopad na vašem počítači. A můžete na celé obrazovce to a v podstatě se chovají jako kdyby se systémem operační systém s názvem Linux, , který je, co CS50 Zařízení je založeno na. Takže pojďme se vlastně použít teď napsat program. Můžete napsat program pomocí aplikace Microsoft Word. Můžete napsat program pomocí TextEditu nebo Poznámkový blok, nebo WordPad, nebo skoro žádné slovo zpracování programu jste někdy používali. Ale skutečnost je taková, neměli byste používat opravdu některý z těchto programů. Určitě neměli používat něco jako Microsoft Word, který má smělé obklad kurzívou, a větší fonty a menších písem, protože počítač není péče o nic z toho. Vše je počítač bude se starat o je Angličtina jako instrukcí napsaných v jazyce C. Takže, co budeme dělat uvnitř o CS50 spotřebiče je použít program volně k dispozici, a to je předinstalovaná v tomto zařízení, volal gedit. A gedit je prostě super jednoduché textový editor, jako je Mac OS je TextEdit, jako je Windows Poznámkový blok, co se děje na podívejte se na něco takového. Takže to vlastně není podívejte se na snímky z této. Ale pojďme skutečně jít do samotné prostředí. Chystám se jít dopředu a přihlásit, v tom druhém okně k mému CS50 Appliance, který jsem pre-nainstalován na mém notebooku zde. Všimněte si, že stejně jako v systému Windows a Mac OS, je to má nějaké nabídky. Stejně jako Windows klade je tam místo Mac OS, což ji řadí tam. Ale realita je taková, že je to všechny druhy stejné. A tady je celý banda software. K dispozici je Dropbox. Je tu celá parta příslušenství, grafické programy, které budeme použít později v termínu pro problémové sady. K dispozici je webový prohlížeč postavený v tak že se jedná o plnohodnotného počítače uvnitř počítače. Ale budu Klepnutím na toto tlačítko vlevo bílá ikona zde což je ikona Gedit. A bude to otevřít okno , že má tři panely k němu, levá, horní jeden, a dole jeden. Teď je to v tomto pravém horním ten, který Chystám se vlastně napsat nějaký kód. Tak pojďme na to ,. Chystám se jít na Soubor, Uložit. A možná nikdy vidět tento konkrétní okno předtím. Ale je to jako Mac OS nebo Windows. Je to jen okno se všechny složky že mám uvnitř počítače. A já budu šetřit soubor jako hello.c. A já jdu dopředu a klepněte na tlačítko Uložit. A teď všimnout mám kartu v levém horním rohu s názvem hello.c. Takže asi dost zná, i když jsem se než použít tento konkrétní program. A teď budu psát v těch docela mystický posloupnost příkazů které jsme viděli před chvílí. Patří standardní I / O.h. Více informací o tom brzy. Int main void, otevřený kudrnaté rovnátka, uzavřená složená závorka. A pak uvnitř jsem tam, že je kde jsme měli "Hello World", středník. A nyní uložit. Takže tohle je napsán v jazyce C program, psáno, tedy ve zdrojovém kódu. Ale nemůžu jen spustit tento program. Jsem tak trochu chtěl zdvojnásobit klikněte na ikonu někde, ale žádný symbol neexistuje jiný než soubor zdrojového kódu. Co zase, je proces, který se Musím spustit tento soubor v? DIVÁKŮ: Compiler. David J. Malan: Takže kompilátor. Takže v různých počítačích, udělat různými způsoby. Ale to, co jsme udělali tady v CS50 Appliance, které je zástupce o tom, jak byste mohli to na mnoha různých systémech to, je, že jsem prostě jít do spustit příkaz s názvem make. A Zkontrolujte, zda je doslova dělat, že. Udělej mi program. Tak, aby se chystá spustit kompilátor pro mě. A název programu Chci, aby je pozdravil. Nyní, aby je program. A aby je dost chytrý Uvědomuji si, že když řeknu, aby ahoj, to bude vypadat automaticky k souboru s názvem hello.c jen proto, že je to způsob, jak je nastaveno. Takže když teď stisknete klávesu Enter tady, to blázen mystický linka zrovna popraven. A věř mi, než dlouho, do několika dní, budete rozumět tomu, co všechno z toho nesmyslu prostředků. Ale teď, jen vím, že dělat spouštěné provádění překladače. Jinými slovy, je zjištěno, překladač na mém počítači to je pre-nainstalovány na CS50 Appliance že budeme ruce, aby vám v problému 1. setu. A pak vzal hello.c jako vstup, a produkoval zřejmě 0s a 1s jako výstup. A standardně to, co dělá, je, že šetří ty 0s a 1s do souboru s názvem Dobrý den. A i když tuto syntaxi také mohlo být pro vás nové, jednoduše tím, tečka lomítko ahoj bude Způsob, jakým jsem spustit tento program. Pro tuto chvíli, a alespoň na pár týdnů, téměř všechny programy píšeme se bude v černé a bílé textové okna. Žádná myš, žádný klikání žádná okna, žádné ikony. Chystáme se, aby to jednoduché a zaměřit se na základní myšlenky zpočátku, než se dostaneme k něčemu vyšší úrovni, například, jako vypuknout hru, kterou jsme si povídali o v první přednášce minulý týden. Takže když jsem stiskněte klávesu Enter tady, je to ekvivalent v textu pouze prostředí zdvojnásobit kliknutím na ikonu s názvem Dobrý den. Co si myslíte, že vůle stane, když stisknete Enter a pak? Diváků: Bude to vypíše "Hello World". David J. Malan: Doufejme, že to bude tisknout "Hello World". A skutečně to udělal. Teď tam byl nějaký mystický syntaxe zde. Pojďme vzad jen za moment, a uvidíme, jestli nelze spustit odvozovat jen tím, že hrát si, snaží a není-li, o tom, co se tady děje. Co když jsem se zbavit zpětného lomítka n? Nyní někteří z vás, kteří si naprogramovat před asi okamžitě vědět, co to znamená. Ale pro ty z vás, kteří si Nikdy naprogramováno, alespoň, že pro sebe, co se děje změnit, když jsem znovu spustit tento program? Takže jsem jít zpátky do mého malé černé a bílé okno, které je okno, ve kterém Mohu sestavit to. Jdu překompilovat ahoj. Chystáme se vidět stejný kryptické sekvence příkazů. A já budu dělat tečka lomítko ahoj. A teď někdo, pokud by, kdo nikdy naprogramováno, co by mohlo být tentokrát jinak? Jo. Diváků: Nebude to zastavit tisk "hello world". David J. Malan: Jde to na-- líto? Diváků: Nezastaví ho tisknout? David J. Malan: nebude zastavit tisk "hello world". Takže není špatný nápad. Další nápady? Jo. DIVÁKŮ: Chybová zpráva? David J. Malan: Chyba zprávy, OK, může být. Co ještě? Diváků: To by mohlo vytisknout držák s středníkem, stejně? David J. Malan: může tisknout držák s středníkem stejně. Takže možná, že zpětné lomítko a pak je nějaká druh terminous to je důležité. Jakékoliv jiné myšlenky? Takže všechno dobré nápady. A ve skutečnosti, to se děje jako chybové hlášení. To je asi nejpravděpodobnější být odpověď obecně v příštích několika týdnech jak se učíme kód zde. Ale teď si uvědomit, že počítače jen to, co řeknete jim to. Stejně jako absurdní arašídy máslo a želé příklad. Naše lidské počítače měly jen dělat to, co jste řekl, je k tomu. Takže v tomto případě, pokud neříkejte počítač pohybovat, aby blikající kurzor další řádek, že to nebude dělat. Takže když jsem spustit tento program Nyní si všimněte rozdílu. Vypadá to jako chyba. Je to estetický problém, snad. Ale co je jiného na to Výstup proti poslední zřejmě? Jo. Diváků: To neudělal nový řádek. David J. Malan: to neudělal nový řádek. Teď ty z vás, kteří mají možná provedené webové stránky předtím, možná víte o BR tag nebo tag odstavce, velmi podobné v duchu. Webový prohlížeč bude ignorovat, dokud to říct, co přesně dělat. Podobně, je jazyk C pouze dělat to, co jste to říct, aby to. Tak z toho důvodu, že Všechny tyto příklady, tak daleko, mají trochu mimochodem měl tento zpětné lomítko tam, že je to prostředek kterou si vyjádřit sám sebe jako znak nového řádku, abych tak řekl. A můžete trochu ocenit, možná, že by to vypadat trochu hloupě když už nic jiného. Pokud bych chtěl nový řádek, jen klávesy Enter a pak druh z porážet kód takového by opravdu třít vám správnou cestu. A i když ne opravdu záleží na tomto místě, budete si uvědomit, že to není zvlášť dobře vypadající kus kódu. A tak to, co svět Před lety se rozhodli je že pokud chcete, aby kurzor na nový řádek výslovně, musíte explicitně říci, nový řádek, zpětné lomítko n. A je tu nějaký jiný symboly, jako je to. Ale teď už si jen zaměřit se na zpětné lomítko n. Teď pojďme, aby program trochu zajímavější. Chystám se jít dopředu a Tentokrát otevřít nový soubor. Jdu uložit jako ahoj-1.C. A jen tak pro legraci, budu jít dát do mé složky Dropbox. Jak uvidíte v CS50 dokumentaci k zařízení, později tento týden problém Nastavte 1, budeme podporovat použít Dropbox nebo nějaký ekvivalent servis, protože pak všechny vaše kód je bude automaticky zálohovat. A tak to je důvod, proč jsem šel do této složky zde. A teď budu psát trochu jiný program. Patří standardní I / O.h, int main neplatné. A pak tady printf, Hello World, což je přesně stejný jako předtím. Ale teď chci něco vytisknout to je trochu jinak. Chci vytisknout, řekl: "Dobrý den, Davide." Tak jo, samozřejmě, to by snad se stát, že když jsem překompilovat tento program, spusťte jej, to bude říkat "Ahoj, Davide." Ale co když chci představit tento druh proměnné, pojem kontejneru, který se děje pro uložení D--v-i-d a není těžké kód je do svého programu. No, co kdybych začal něco takového? Řetězec s, takže to je variabilní. Chcete-li řetězec, také známý jako slovo nebo frázi. Posloupnost znaků je to, co jsme v programování zavolat řetězec. Jsme jen tak obecně volání Je to, protože je to pěkný jednoduchý název. Ale já jsem to mohl říkat cokoli. Chystám se říct řetězec s rovná quote konec citátu: "Davide," středník. A teď chci vložit D--v-i-d na to, co jsem tisk. A než jsme viděli ukázku na obrazovka některé speciální syntaxe která nám umožnila náhradou v hodnotě. Co bylo zvláštní symbol před pár diapozitivy? Tak procent. V té době to bylo procento d na desetinné číslo. To není opravdu zdá, v projednávaném případě relevantní. Ukázalo se, že je tu další symbol procent, který je s procent, což je zkratka pro zástupný řetězec. Takže teď, velmi jednoduše, že jsem jít dělat ahoj-1, protože tento soubor se jmenuje Dobrý den, 1.c, a stiskněte klávesu Enter. A já jsem to podělal. Co se děje? No, tady je místo, kde se musíme začít uvědomit, že jsme v tomto příkazu line prostředí, tento Pouze text životního prostředí. Není kliknutí na ikony jako složky právě teď. A myslím, že zpět před chvílí. V jaké složce jsem řekl Byl jsem záchranu mého kódu? Takže složky Dropbox. Mohl by byli povoláni nic. Ale to se stane být nazýván Dropbox. Tak jsem se nějak muset dvakrát klikněte na že složka Dropbox s cílem získat do něj a dostat se na mé Kód volal ahoj-1.c. Ve skutečnosti, nechte mě jít dopředu a minimalizovat toto okno jen na chvíli. Stejně jako Windows a Mac OS, jsou složky v Linuxu. K dispozici jsou složky v CS50 Appliance. Je to právě teď se omezovat abychom se tohoto textového prostředí. Ale když jsem se dvakrát klikněte na Dropbox, všimněte si, že je soubor, který chci zkompilovat. Ale musím to černá a bílá okno terminálu, abych tak řekl. Ale já potřebuji, proto se pohybovat do této složky nebo adresáře. Tak trochu tajemný, ale zvyknete si na to taky. Ve světě Linuxu, což je opět provozní Systém nám dochází uvnitř CS50 Spotřebič, je tu příkaz s názvem CD. Což znamená, že můžete udělat CD, prostor, Dropbox. CD, změna adresáře. Přesně tak. Zpět v den, kdy byli lidé vynalézat počítače a provoz systémy, jako je toto, oni chtěli typ Nejméně úhozy možné. Takže nejjednodušší způsob, jak říct, Změňte adresář byl CD. Takže když jsem narazila CD, prostor Dropbox, Všimněte si, co se tu změnilo. Uvnitř závorek Přístroj je druh o mě humoring a připomíná mi, kde jsem. Takže otevřená složka Dropbox. Kdybych teď typ LS list, opět stručné, protože lidé nechtěli zadejte Zpět v den l-i-s-t. Takže se místo toho dělal to LS. Enter. Všimněte si, vidím dvě věci, ahoj-1.C, a pak to mystická věc, zdroj 1m. To je jen můj způsob, jak říct Zdrojový kód pro týden 1 v pondělí. Je to složka, Stáhnul jsem si z Webové stránky CS50, že jsem se dnes ráno a stačí dát do zařízení předem. Ale teď to jediné, co máme péče o dělá tento program. Takže když jsem typ, aby ahoj-1, Enter. Sakra. Něco se pokazilo. Takže pojďme škádlit to od sebe. A bohužel to je místo, kde se věci trochu stresující na první, alespoň pokud jste Nikdy předtím naprogramován. Můj bože. Napsal jsem dva řádky programu a Mám čtyři řádky chyb. Takže to, co se tady děje. V první řadě vždy posouvat zpět a najít první chybová zpráva, protože často překladače jen se zmást tím, co vy a já. Překladače jsou dost hloupí. Budou dělat, co jen řekni jim to. A pokud si splést, jsou to jen bude trochu házet své ruce a možná i hodit více chybové zprávy než jsou skutečně relevantní. Tak se pojďme podívat na první. Super mystický na prvním místě. Ale oznámení, tady je název soubor, ve kterém jsem se posral zřejmě. Colon 5, dvojtečka 5 znamená jen na linka 5 v pátém znaku. Takže pátý sloupec znaků, chcete-li, chyba. Použití nehlášené identifikátoru řetězce. Měli jste na mysli standardní n? Ne, myslel jsem řetězec. A pak je to trochu kopírování a vkládání to, co jsem napsal opravdu kreslit můj pozornost tam, kde jsem to zvoral. Takže z nějakého důvodu C, nebo alespoň překladač nerozumí slovo řetězec. A to proto, že jsme si to. Takže řetězec neexistuje v C. Co CS50 dělá, Během prvních několika týdnů pouze třídy, Je nám poskytnout nějaké školení kola, abych tak řekl. A dáme těchto koleček uvnitř speciálního souboru s názvem CS50.h. Takže toto je druhá ze dvou souboru názvy, které zřejmě skončí dot h. Pojďme vzad. Printf je prohlášení nebo funkce že zřejmě tiskne něco na obrazovku. Ale vy jste mě vidět realizovat printf, vpravo. Někdo lety realizován printf. V jakém souboru se vsadit on nebo si dát provádění pro printf, kód pro printf? V souboru s názvem Standard I / O.h. Ve skutečnosti, je to pravděpodobně v dva soubory, standardní I / O.h, což je zkratka pro záhlaví souborů a standardní I / O.c, což je zkratka pro C zdrojového kódu. Takže on nebo ona před několika lety svalil kód, který oni psali do tohoto souboru takže lidé jako my let později mohl zahrnout, abych tak řekl, v našich vlastních programů. A vskutku, to je to, co libry následované slovem patří dělá. Vypadá to na místním pevném disku, najde soubor s názvem Standard I / O.h, a poté účinně kopie a vloží ji do svého vlastního souboru. Takže můj program ví jak tisknout na obrazovku. Takže podle této logiky, kde je řetězec definovaný? Diváků: CS50.h. David J. Malan: CS50.h. A vskutku, to je to, co jsme, jádro personál, udělal. Vymysleli jsme několik datových typů, abych tak řekl, jako řetězec, kromě těch, které dostanete zdarma, jako int. A uvidíme, jiní jako char na charakter a pár dalších. Uvnitř CS50.h zřejmě je alespoň nějaká zmínka řetězce. Takže teď mi dovolte pokračovat a znovu spusťte make ahoj-1. Budu přiblížit znovu a přes prsty. Nyní by mít z jednoho změnit Opravil jsem většinu věcí. Ale sakra. Více procent, než datové argumenty. Co jsem udělal špatně tentokrát? Takže je to stále dost záhadné. Ale tato chyba je na řádek 7 a 21 znaků. Takže pojďme se podívat sem. Je to trochu jemnější. Ale pokud si myslíte, že o tom, co základní myšlenky jsou zde, možná bychom mohli dráždit to od sebe. Takže printf je název funkce. Závorky, tak daleko, je stejně jako to, co jsme dali kolem věci jsme kolem jako vstupy do funkce. V pořádku, jen svévolné lidské konvence. Použít závorky. Uvnitř těchto závorkách jsme byli uvedení v uvozovkách, a pak se jako řetězec "Hello World". Ale v tom předchozím příkladu velmi krátce dělal se podíváme na Scratch. A my jsme měli procent d, co ještě byl uvnitř těchto závorkách že jsem zavolal ústně? Jo. Diváků: Tak to je to, co jste s [Neslyšitelné] v rámci [neslyšitelné] co to [neslyšitelné]? David J. Malan: Přesně tak. Takže jsme měli procent d. Ale pak jsme měli blízko citace, čárka, čítač. Přesně tak. Specifikováno jsme, co chceme dělat jako zástupný symbol. Takže to, co budu dělat tady je čárka, co chceš, abych dal? Diváků: S. David J. Malan: S, proto, že je v tomto případě je název ze zásobní nádoby. To je název této skleněné mísy. Zatímco dříve to bylo kontraproduktivní v tom, že Jednoduchý příklad Scratch jsme se podívali na. Takže teď, který učinil dva změny, dovolte mi, abych přiblížit a zkuste ještě jednou zkompilovat tento program. Teď vidím, že tajemnou řádek. Ale to je vlastně jméno překladače. Clang je název překladače. Zkontrolujte, zda je mi to šetří bolest hlavy někdy psát, že dlouho šílený příkaz ven. Takže teď, když se mi tečka lomítko ahoj-1, Měl bych vidět "Dobrý den, Davide." Docela nezaujatý, že jo? Mohli jsme udělat to mnohem jednodušeji bez mluví o proměnných a CS50.h a všechno. Tak pojďme, aby to trochu zajímavější. Kromě CS50.h, s věcí, jako je řetězec prohlásil, knihovna CS50 má také několik funkcí. Tak jako před lety, někdo napsal printf a vložte jej do standardní I / O.h a nějaký jiný soubor. My, zaměstnanci CS50, napsal funkci volal GetChar, GetDouble, GetFloat, Vezmi_int, GetLongLong, GetString, a dáme ti uvnitř souboru volal CS50.h a CS50.c. A dáme je uvnitř o CS50 Appliance. A lidé mohou také stáhnout on-line, pokud chci dát je na jejich vlastních počítačích stejně. Což znamená, že jsme vytvořili funkce, které se dostanou vstup od uživatele. Nevím, co to všechno těchto údajů typy. Vezmi_int je docela jednoduché, jako získat celé číslo nějak od uživatele. A GetString je pravděpodobně jako get slovo nebo věta od uživatele. Tak se pojďme zaměřit na to. A já jdu zpátky do zařízení a budu pokračovat a tento soubor uložit jako, řekněme je ahoj-2c jako moje druhá verze. A pojďme udělat několik změn. Tentokrát namísto tvrdé kódování David, který je neuvěřitelně konzistentní ale nezaujatý program Co kdybych místo toho dělat getString? Nyní všimnete getString má otevřenou závorku, uzavřená závorka, protože nepotřebuje žádný vstup. Je to jen půjde dostat řetězec od uživatele. A nyní pár slov o druhé syntaxi. Středníky pouze ukončit řádek kódu. Nemusíte je všude. Ale to jen znamená, že jsem provádí se tento řádek kódu. Dovolte mi, abych přesunout na jiný prohlášení nebo funkce. String deklaruje proměnnou. String je jako tvrdit, že dej mi misku, prosím. A dovolte mi, abych dal řetězec v něm. A teď rovnítko. Co je to rovnítko v podstatě rovnocenné? DIVÁKŮ: Přiřadit. David J. Malan: Jo, přiřazení hodnoty. Takže když jsem například volání Tato funkce GetString, a uvidíme, v okamžiku, kdy je bude vyzve uživatele k zadání řetězce. To je jako nechat mě pak napsat D-a-v-i-d na kus papíru. A když říkám, že řetězec s rovná getString, rovná není doopravdy rovná programování C. To znamená, že přiřazení z pravé strany straně na levé straně. Tak jsem se dostal řetězec. A rovnítko znamená dát při skladování kontejneru s názvem s. A předat tuto funkci vypnout, aby printf skutečně dělat svou věc. Takže konečný výsledek pak bude vypadat trochu jinak. Pojďme dělat, aby ahoj-2. Buď by mohlo fungovat. Jste po spolu. Udělat ahoj-2 pracuje. Dot lomítko ahoj-2, Enter. Zdá se mi, mít nekonečný smyčka nebo tak něco. Nic se neděje. Proč? Diváků: Je to dělat nekonečné smyčky. David J. Malan: Je to nekonečná smyčka. Je to trochu na mě čeká na ve skutečnosti poskytnout některé vstupní signály. Tak nech mě jít napřed a zadejte Davida, a stiskněte klávesu Enter. A teď se říká, že "Dobrý den, Davide." Mám-li jej spustit znovu. Pojďme zadejte Rob: "Ahoj, Robe." Nyní je to nejhorší uživatelské rozhraní vůbec. Uživatel je zřejmě měl vědět, co má dělat. Ale bez ohledu na to. Pomocí těchto stejné budově bloky stejně jako v Scratch, můžeme tento problém vyřešit a říct něco jako vaše jméno, prosím, tlustého střeva, prostor, uzavřený citace, v blízkosti závorka, středník. Takže opět mnoho hloupost se syntaxí. Ale všimněte Právě jsem přidal skládačky Nad tímto a nad tento. Takže teď, když jsem opakovat to, ahoj-2, Enter. Počkej chvíli. Co se děje? Není to chová jinak,. Jo. Diváků: nebyl spuštěn, aby znovu. David J. Malan: Já ne spusťte jej znovu, že jo. Tak jsem změnil svůj zdrojový kód. Ale opět je tu ten proud. Zdrojový kód pomocí kompilátoru dává jste nový objektový kód, nebo 0s a 1s. Tak jsem třeba skutečně opakování make ahoj-2 Enter. OK, něco, co se zdá, že se stalo. Dot lomítko ahoj-2. Vaše jméno, prosím. A teď být jasné, proč je kurzor na stejném řádku? Přesně tak. Nechtěl jsem dát zpětné lomítko n tady v mém kódu. Takže teď můžu napsat něco jako Daven, Enter. Můžu to spustit znovu a zadejte něco jako Gabe, Enter, a dostaneme jiný program znovu a znovu a znovu. Teď nakonec budeme potřebovat Chcete-li použít několik různých možností. Musíme zavést nakonec některé Podmínky, kterých je dělat věci podmíněně. Možná smyčky, takže můžeme udělat věci znovu a znovu. Možná, že by bylo hezké, kdybychom mohl realizovat své vlastní funkce, jako bychom mohli realizovat naše vlastní printf nebo naše vlastní verze getString a GetFlow, protože v konečném důsledku i Pomocí tohoto příkazového řádku prostředí můžeme udělat i ty vizuálně zajímavé věci. Opravdu na závěr mi dovolte to. Chystám se jít dopředu a zavřít tato okna a otevřete tuto ikonu zde což je jen větší verzi, který obsahoval okno terminálu. Takže Gedit má nejen místo pro můj kód, ale také postaven v terminálovém okně, černé a bílé okno, kde bych mohl spustit příkazy. Náhodou jsem se otevřít větší verze tohoto. A teď jdu do složka, kterou jsem již dát předem na internetových stránkách kursu je. A já jdu do toho a otevřít soubor s názvem thadgavin.c, který byl napsán někým jiným. A pokud se podíváme na to, to není druh kódu budeme psát, protože Cílem tohoto kódu bylo napsat nejhezčí hledá kód, který on nebo ona by mohl, bez ohledu na to, zda další člověk mohl někdy pochopit tento kód. Ve skutečnosti, každý rok je tu, co je volal obfuscated C soutěž, která je pro skutečné mágů, kteří píší Kód, který nikdo jiný nemůže číst, ale že dělá něco, co buď velmi jednoduché a opravdu úžasné. A jsme si mysleli bychom uzavřít s tímto pohledem na něco, co je docela úžasný jste mohli vidět jednou. Ale my skončíme na to poznámka, tečka lomítko, thadgavin. To je tedy to, co vás čeká. To je pro CS50. Uvidíme se ve středu. [Přehrávání hudby]