[Přehrávání hudby] DAVID Malan: Tak to je CS50 a to je konec jednoho týdne. Takže bych vám představit můj bývalý advisee, Anděl Duff, nejen to, kdo dělá iPhone 5 stojí, stejně jako to řečnický pult, on také dělá auta. ANSEL DUFF: Jak to jde, všichni? Chci jen říct něco něco o Formula SAE, které jsem jsem kapitán. Je to tým z MIT. Chci jen říct, kluci trochu o tom a doufejme, že vytvářet nějaký zájem. Takže jen projít pár věcí, o našem týmu. Takže jsme zcela Student běh, ve kterém všechny o návrhu členů, simulovat, test, a výrobce subsystém vozu. Máme vlastní dílnu a garáží, a N52-- nebo líto, N51-- což je stejné budově jako MIT Science Museum. A my jsme lidé že řídit auto. Tam je národní soutěž na začátku léta, a pak tam jsou menší přestřelka soutěže v průběhu celého roku. A pak budeme dělat školení řidičů dní, aby se noví členové seznámeni. Naše sestavení dny jsou na V sobotu od 11 hodin do 8 hodin. Obědy a večeře se starají z, z Bertucci je a Beantown resp. Máme týdenní setkání a Seminář, který je na zápočet. Což je nového od tohoto semestru, a to bude také pro další pololetí, takže si můžete přes-REG na to. A pak tu máme projektování, obchod, a CAD dny v týdnu, zatímco členové samostatně CAD díly, aby akciové et cetera. Takže pro elektrické engineering týmu máme tažné, vysokého napětí systému, který běží na nominální 300 V, která obsahuje motory, regulátory motorů, a akumulátory. Pak jsme horší napětí systému, který běží na 12 voltů, což zahrnuje kontroly, CAN uzly, mozek box, a palubní deska. Co se týče CS jde, děláme má správa www stránek že musíme udělat pro události, členství změny, nové obrázky a PR materiály. A pak máme kód, který kontroluje auto pro naše kontroly trakce, zahájení kontrola, kontrola pomlčka, točivý moment vektorování, a regenerační brzdové systémy, které běží typicky v MATLABu, Simulink a LabView. Řeknu vám něco o autě. Takže je to asi 500 liber. Je to pravidla omezena na 85 kw. To má 2 EMRAX 207 motorů v zpět, jeden pro každé zadní kolo. Má vlastní vestavěné akumulátory od Hranolové A123 sáčku buněk, v celkové výši 300 voltů a 5,6 kw hodin. A to je přímý pohon s 2,64-1 drive poměr. Zde je několik fotografií my se o tom v soutěži. Tady je zpět, kužel, a tady jsou motory, ty velké černé disky pod et pánské Manus. Zde je snímek, který jsem vytáhl z našeho programu soutěže. A to je jen srovnání naší auto několik komerčně dostupných automobilů, jako KTM XBOW, Ariel Atom a Caterha M 7-280. Pokud jste obeznámeni s cenou, moc táhnout váhu dolarů na koňských sil, dolarů na točivý moment, a naše auto fouká všechny z vody. Pokud máte nějaké dotazy, zapisovat tuto e-mailovou adresu. Střílet nám e-mail na fsae@mit.edu. Jsme rádi, že mluvit o něco, co bys chtěl. Harvard studenti jsou druh menšiny v týmu. Máte-li jakékoli dotazy týkající se že prosím, střílet nám e-mail, šťastný mluvit, a já jdu na hlavu zpátky k Davidovi. Díky. Vážím si toho, chlapi. [APPLAUSE] DAVID Malan: Ansel strávil léto zde s námi spolupracuje na akademické půdě v CS50 letos v létě. A navíc k práci na věci jako binární žárovky on vlastně opravdu otevřeli eyes-- a důl v particular-- na co se opravdu na křižovatce ne hardwaru a softwaru může být. Ve skutečnosti je hodně věcí, které jen cestoval jste po jsou v konečném důsledku nejprve vytvořit v softwaru, a pak nakonec vymyslel v reálném světě v hardwaru. Takže pokud máte zájem zkoumání tohoto křižovatku, třeba přijmout tuto skupinu. Nyní mezitím ti z vás, kteří jsou fanoušky technologií, a produkty Apple v zejména vědět, že existuje bylo pár oznámení včera. Ale mysleli jsme si, že bychom ukázat si ten, který vyšel pár dní před, že jste možná ještě neviděl. Jörgen EGHAMMER: Víte, jednou za čas něco přijde, že mění způsob, jakým žijeme. Zařízení tak jednoduché a intuitivní používat to cítí téměř povědomé. Představujeme 2015 katalog IKEA. Není to digitální kniha nebo e-kniha, je to kniha, kniha. První věc, kterou si uvědomit, není kabely ani napájecí kabel. 2015 Katalog IKEA je plně nabitá, a životnost baterie je věčný. Rozhraní je 7,5 od 8 palce, ale lze rozšířit na 15 o 8 centimetrů. Navigace je založena na taktilní dotek Technologie, které můžete skutečně cítit. Obsah je dodáván s předinstalovaným přes 328 stránek s vysokým rozlišením inspirativních bytový nápady. Chcete-li zahájit procházení stačí stisknout a táhnout. Zprava doleva se pohybovat vpřed, zleva doprava se pohybovat dozadu. Všimněte si něco jiného? To je pravda. Žádné zpoždění. Každý křišťálově čistá strana zatížení okamžitě, bez ohledu na to, jak rychle se pohybovat. Chcete-li získat rychlý přehled, jen držet ji v dlani, a pouze pomocí palcem, rychlost procházení obsahu. Pokud zjistíte něco, co chcete uložit na později, můžete jednoduše vytvořit záložku. A i když zavřete aplikaci, můžete snadno najít záložku znovu. Amazing. [SMÍCH] [APPLAUSE] Takže to nás přivádí k Konec jednoho týdne. Již několik oznámení. Takže řezů je nyní ve vývoji. Přejděte na tuto adresu URL zde někdejší mezi podnikem a pátek v poledne skutečně určit, zda jste Mezi ty méně příjemné, více pohodlné, nebo něco mezi tím. To je obvykle jednou z těch, věci, které jen tak vědět. A ve skutečnosti ty z vás, kteří jsou méně komfortní asi víte tolik, ti z vás, kteří jsou více komfortní vědět co nejvíce, a znovu, pokud si nejste zcela jisti, který z těch lopat se dostanou do jste asi někde mezi. Ale buďte ujištěni, můžete vyměnit Po několika týdnech, pokud to bude nutné. Mezitím se na příští týden nezačneme části samy o sobě, ale flash oddíly, které jsou otevřené pro všechny studenty. Tuto neděli na místě, aby zveřejněny na webových stránkách kurzu budeme mít jeden pro ty méně příjemné, jakož i jedna pro ty pohodlnější. A ti, někde mezi Můžete si vybrat, který z těch dvou, nebo obojí, pokud chcete, aby sit-in na. A zaměření těch, bude nakonec na C, které budeme pokračovat v naší rozhovor dnes. Problém nastavení 0 je mezitím doufejme, že ve vašich rukou. Oficiálně kvůli zítra, Čtvrtek v poledne. Pokud hotovost v jednom Vašich pět pozdních dnech, které by přivést ji až v pátek v poledne. Problém set 1 zatím bude zveřejněny na internetových stránkách kursu je. A tohle bude naše první nájezd jako třída do C. A to je problém nastavit spec, která vás přes mnoho mechaniky, co jsme začali mluvit o pondělí, a budeme pokračovat v rozhovoru o dnes. C, Linux, CS50 zařízení, to vše bude na vás čekají ve specifikaci. Úřední hodiny zatím probíhají, v pregraduální jídelně. Vydejte se na této adrese zde vidět naplánovat pro dnešek a zítřek, pokud byste chtěli podílet. Otázky Mezitím, aby vás mít možnost klást otázky asynchronně, 24/7, uvědomit si, že jste nejsou omezeny na oddíly a kanceláře hodin, ale spíše tento nástroj zde CS50 Diskutujte na této adrese Bude kurzu je on-line bulletin board software, přes který můžete klást otázky spolužáci a také personál. Takže mějte na paměti, že zdroje stejně. Zatím tradice začíná tento pátek. Jak jste možná zahlédli od Minulou středu je teaser video, Máme tradici nejvíce každý pátek během funkčního období braní asi 50 studentů a personál místní restaurace zvané Oheň a led, na který jsme obvykle spojeny některé absolventy nebo přátelé z průmyslu obecně usilovat , aby se velké třídy pocit menší. Takže je to naprosto neformální oběd. Parta z nás, personál zejména bude hrát škatule, hejbejte se a popovídat si se studenty o 50, život mimo 50, život v budoucnu, reálný svět, Mluvím o pracovních příležitostech s přáteli v průmyslu. Takže pokud byste se k nám připojit tento pátek, zamiřte do této adrese zde. Počet míst je omezen, ale my to uděláme recurringly po celou dobu. Zamiřte tam cs50.harvard.edu/rsvp. A pokud se nechcete dostat do tentokrát, ne se bát. Uděláme to znovu následujících týdnech také. Tak to je ten obrázek jsme malovali minulý týden, a pravděpodobně jste byli pustily do tak daleko. Ale zkusme se připojit teď na to, co budeme dělat dnes a dál. Mohl bych mít jeden dobrovolník? V pořádku, nebo více. A co tady na konec, v modré košili. Pojď nahoru, Jak se jmenujete? ALANA: Alana. DAVID Malan: Alana. Takže Alana, jen za moment-- nice to meet ty-- bude hrát roli této funkce zde. Fialový blok máme nazývá se tak daleko funkce. Takže to, co já jdu dopředu tady a nabídnout Alana je trochu jmenovku, aby se jasné, jakou roli hrajete. Takže si bude říkat blok. Chcete-li jít dopředu a dát si to. A jdeme na udržet tento super jednoduché. V případě, že cílem v ruce je prostě nyní realizovat se Alana, Tento takzvaný říkají blok, Zde je návod, jak to bude fungovat. I have-- nazvěme ji argument nebo parametr, je to opravdu jen prázdný list papíru. A je to bílá až trochu připomínat na bílém poli, do kterého jste můžete psát slova. Mezitím jsem jdu sem. Chystám se jít dopředu a napsat H-E-L-L-O čárkou svět. A teď, jak říká programátor, ne skutečně vědí, jak něco říct. Můžu přijít se slovy, ale ne nutně vědět, jak vyjádřit sám sebe ústně nebo na obrazovce. A tak to, co budu udělat, je tento kus funkčnosti, jehož input-- Argument nebo, jak my říkáme, Napsal jsem o tomto kousku paper-- a budu ji zadávat. A opravdu to je role, která funkce v programovacím jazyce může hrát. Něco jako Say Blok může být externě pro někoho, kdo opravdu ví, to, co on nebo ona mluví. Takže pokud budete krok po Zde jen na chvíli, Chystám se předat tento vstup Alana, a zeptejte se, že říkáte, tento vstup. ALANA: Hello, world. DAVID Malan: To je ono. Tak, že je funkce. Nyní můžeme vzít to trochu víc, můžeme vzít krok vpřed zde. Vzhledem k tomu, že bylo jasně nezaujatý. Takže pojďme se nyní převést toto něco trochu sofistikovanější. Tak to je samozřejmě naše C verze. Takže teď, pokud chcete, aby se to jednorázové, že název značky vypnout, a pojďme si na nový název. Ale v podstatě jste hraje stejnou roli, to jen tak se stane, být nazýván printf teď. Příběh je, samozřejmě, bude pravděpodobně bylo-- stejně jako je underwhelming-- bude následující. Ty jsou nyní funkce printf. Jsem volající, nebo programátor, který chce stát na ramenou lidé v minulosti, jako jste vy, který už přišel na to, jak skutečně něco napsat dolů. A tak tentokrát, spíše než, že to pojďme skutečně používat naši obrazovku sem. Takže pokud byste chtěli krok sem, já jdu znovu to vydávat za Vstup do mého printf příteli. Pokud byste mohli jít dopředu a tisku, že na obrazovce, jednoduše tím, že kreslí s vaším prst na černé obrazovce. Výborně. Dobře, takže spousta napětí pro jak to bude hrát ven. Takže teď pojďme vzít věci do jednoho konečné zářez, kdybychom mohli takto. Tak to je program v jazyce C jak jsme řekli minule. A to jen dělá to, co jste udělal, to vypíše na obrazovku, Hello, world. I když tam je jasně hodně na rušivé věci tam. Ale pojďme vzít věci do zářezu a zavést tuto verzi, která připomínají byl třetí verze, která jsme skončili s minule. A teď je tu jasně dvě použití printf. K dispozici je 2 hovory na Alana v tomto případě pro printf, ale je tu i výzva na jinou funkci. Co je to funkce jasně? GetString. Můžeme dostat ještě jeden dobrovolník? OK, pojď nahoru. Jak se jmenujete? Javier: Javier. DAVID Malan: Javier, pojď nahoru. Takže role Javier je na tento kus papíru. Které budu volat obecně s. Teď to je variabilní, je to typu string, jak vyplývá tímto druhým řádku tam uprostřed. A rád bych, abys šel se mi řetězec. Konkrétně hlavou dolů do orchestru část a dejte mi jméno někoho, a vrátit se s proměnnou obsahující tuto hodnotu. Může to být kdokoliv chcete. Jdeme na to. V pořádku, je Javier napíše jméno. V pořádku. Můžeme se všichni asi tušíte, jak to bude hrát ven. Jsme snad hašteřit místo toho, co funkce je dělá, ale Přesto moc děkuji. Takže Javier se vrátil tento řetězec tu, která si není úplně vidět, Jonathan je řetězec , které jsme dostali. Takže teď, co jsem vlastně děje poskytnout Alana když je něco trochu jiného. Vzhledem k tomu, v této verzi program, první je tam uvést své jméno. Takže úplně první argument Musím poskytnout Alana se bude doslova uvést své jméno. Dobře, tak jednoduché, jak to Chtěl bych předat vám to. A jak jsem se sepsat Následující argument, pokud máte chcete pokračovat a psát to na palubě, pojďme do toho a to poslední příklad zde, aby se jasné, co se nakonec dostal k tomu dojde. Takže uvést své jméno, napište ji k vrcholu pokud vám to nevadí, jen proto, aby máme pokoj pro jednu druhém řádku. Vzhledem k tomu, to poslední, co budu se nyní poskytnout vám není jedno, ale dva kusy papíru. V pořádku. H-E-L-L-O čárka a pak prázdný řádek. Takže to, co se chystám předat Alana teď je něco trochu jiného. Nejen, že je to stále to, kde vyplnit prázdné představuje že percent-- to, co bylo zástupný jsme používali? Jo, to procento s. Mezitím jdu projít jí ve druhém argumentu, který je přesně to, co Javier získat od Jonathana. Takže dovolte mi, abych vám tyhle dva. Pokud byste chtěli, jděte do toho a tisku, že efekt. Co se nakonec stalo nyní je, Alana znovu hraje roli printf. Javier hrál role getString. Tak, že bude váš suvenýr. A nakonec, co se děje, a to navzdory tento hello-- yep jít dopředu a čárka. ALANA: jsem obdržel to ještě, nebo ne? DAVID Malan: Jo, ty přijal oba najednou. Takže představa, že vás Nyní můžete otočit stránku pro zpracování druhé z těchto dvou vstupů. Takže je to jen na kladivo domů upozornit, že vzhledem k tomu, Alana popraven tato zelená čára tady, a pak se Javier udělal pro nás a vrátit se ke mně něco zavoláme s, ale to bylo opravdu jen, že kus papíru vlastní. A teď Alana udělal tento třetí řádek. A i když to všechno vypadá tak neuvěřitelně mystické možná na první pohled, je to opravdu je tak jednoduché, jak to. Předávání vstupy kolem, získání výstupy, a to buď byl fyzicky předán zpět něco, nebo vidět vedlejší účinky, jako je tento. Něco vizuálně napsáno na obrazovce. Tak pojďme do toho a Děkuji Alana a Javier, který byl tady, na nám připojila zde. [APPLAUSE] Takže teď pojďme za samozřejmost, jak přímočarý všechny, které by mohly být. A pojďme pokračovat ve skutečnosti dělat něco skutečného kódu. Takže na obrazovce je zde screenshot z takzvaného CS50 spotřebiče. A pokud jste měl na, as 14:00 ve středu odpoledne, vysvětlit nějaký příteli co CS50 spotřebič, jak byste to definovat ve větě? Každý jednou větou? Jo? STUDENT: Je to jako program že je počítač každého běh se stejným systémem. DAVID Malan: Dobrý! Je to program, který umožňuje všem je počítač běžet stejným systémem. Je to tak nějak sami kopie provozních systém, který se stane být nazýván Ubuntu Linux. A běží efektivně uvnitř okno na vašem počítači Mac nebo PC, tak, že tento způsob přímo ven z brány v 1. týdnu, všichni tady ve třídě má přístup ke stejným nástrojů, stejné uspořádání, a neexistuje žádný specifický zaučení na Mac nebo PC, zejména. Nyní jsme otevřeli, uvnitř CS50 spotřebič v pondělí, tento program zde. Stává se to nazvat gedit. Ale to je opravdu jen grafický editor. Je to něco jako Poznámkový blok nebo Text Úprava na Windows nebo Mac OS, resp. A navrhl jsem, že tam bylo opravdu tři důležité části této obrazovky. Vrchní strana je místo, kde vás by se napsat svůj kód. A to je místo, kde jsme strávili většinu našeho tři příklady v pondělní přednášky. Spodní říkáme, co, tato černá okna, jo? STUDENT: Compiler? DAVID Malan: Compiler jsme přistupovat prostřednictvím tohoto okna. Ale obecně. Jo, to bylo jen okno terminálu. To je věk starý termín, který právě popisuje v podstatě blikání výzva, která před lety býval na jeden z těch velkých monitorů CRT stylu. Ale v dnešní době je to trochu virtuálního v softwaru. A terminál okna ať je nám psát příkazy. Je to trochu zjednodušené verze uživatelského rozhraní nebo rozhraní. Není to grafický uživatelské rozhraní, nebo GUI, Je to rozhraní založené na textu nebo rozhraní příkazového řádku. A opravdu to je místo, kde nakonec Byl jsem schopen napsat nějaký kód. Poté, co jsem napsal nějaký kód i když, Připomínám, že jsem použil tento příkaz. A jak to jméno druh naznačuje, toto umožňuje, abych program s názvem Dobrý den. Ale co to opravdu dělá? No make bral můj vstup, můj zdrojový kód, a převedením na to, co nakonec? Kód objektu. A objektový kód je jen fantazie způsob, jak říkat nul a jedniček. A pak, když jsem chtěl spustit tento kód objektu, Jednou jsem chtěl projít jako vstup těchto nuly a jedničky do mého počítače mozku, takzvaný CPU nebo centrální procesorová jednotka, Musel jsem spustit program. Ale nebylo to jednoduché, v pondělí jak jen dvojklikem nějakou ikonku. Co místo toho jsem musel dělat, aby se spustit program? Co to bylo druhý příkaz? Slyším trochu lomítka? Ano, ano? STUDENT: Dot lomítko a název programu. DAVID Malan: Přesně tak. Dot lomítko a název programu. A teď, co to znamená? No tečka je jen způsob, jak tajemný říkat aktuální adresář. Ať už jste ve složce je uváděný jako, je reprezentován jako tečka. Lomítkem je přesně to, co jste viděli v systémech Mac OS a Windows pro let, je oddělovač mezi adresáři nebo složku a zbytek nějaké jméno. Ve Windows se to stane jít dozadu, Linux a Mac OS se to stane, jít dopředu. Ale je to jen oddělovač, takže je to jen nezajímavé syntaktická detail. Šťavnaté Součástí kurzu je název programu, Dobrý den. A to je to, co dělají vytvořena pro nás. Je to výstup tento soubor pro nás. Ale jak jsme se dostali do tohoto bodu? Pojďme se tedy zeptat, otázka, co bylo ve skutečnosti děje, alespoň ohledem na některé z těchto syntaxe? Takže ve větě, nebo tak, jak jsme se vysvětlit tato první linie, která je zvýrazněny zeleně? Co to bylo za první řádek dělá, s ohledem na můj program? Jo? STUDENT: [neslyšitelné]. DAVID Malan: Řekni to ještě jednou? STUDENT: Včetně a stahování Posledních funkce [neslyšitelné]. DAVID Malan: Dobrý. Včetně, nebudu říkat stahování, ale řekněme, že včetně funkcí, které lidé psali v minulosti. A tyto funkce jsou implementovány někde v mém počítači. Někdo napsal soubor před lety, a tento soubor je někde uvnitř CS50 zařízení, nebo na mém pevném disku obecněji. A tak tato linka je v podstatě říká, jít zjistit, že soubor, standardní I / O bod h, a kopírovat a vložit jeho obsah tady na vrcholu mého souboru takže nemám na udělat ručně sám. A mezi nejšťavnatější kousky uvnitř na tento soubor jsme tvrdili, bylo to, co funguje? Jaké funkce si řekneme byla vyhlášena nebo je uvedeno ve standardním I / O dot h s největší pravděpodobností? Printf, že jo? Nechtěli jsme napsat printf na Pondělí, prostě neexistoval. Stejně jako Alana právě přišel na jevišti a ona jen existoval a věděl, jak k tomu něco na obrazovce, takže se po mnoho let printf existují. A tak to je, jak se k němu dostaneme. Nyní, když jsme se přesunout na tu, Hlavní bylo analogické jsme řekl puzzle volána, když zelená vlajka klepnutí ve světě Scratch. Je to jen trochu výchozí jméno, které lidé rozhodl se představují výchozí vstupní bod do programu. Kus programového kódu že dostane popraven jako první. Zatím jsou tyto složené závorky jsou něco jako zakřivený tvar z mnoha těchto žlutých poškrábání kusů. Jsou druh zapouzdřit celou banda pokynů společně. Tak to jen tak spojuje některé související funkce. printf samozřejmě je funkce, která vytiskne na obrazovku, jak to udělal. Co o těchto závorkách? Jak byste define-- i když jste nikdy naprogramované dříve, ale jen na základě nyní na rostoucí doufejme, že intuice, co jsou závorky tady pro nás? Nebo co se jim okolí? Jo? STUDENT: Říkají, že to, co budete tisknout pomocí printf. DAVID Malan: Jo, říkají, co budete tisknout pomocí printf. Nebo obecněji, jsou obklopující vstupy do funkce. Takže můžete téměř myslet z těchto závorkách jako například kov klip na této schránky. To je to, co drží, je to to, co je děje, které mají být použity na argumenty do funkce, která v v tomto případě se nazývá printf. Takže obecně téměř každý Doba nazýváme funkci, budeme vidět dvojici závorek. Možná, že něco v něm, jako teď, v tom snad nic není. Ale to je místo, kde byste dát vstupy nebo takzvané argumenty na funkci. Zde je jeden takový argument. Jsem zvýrazní vše mezi uvozovkami, , protože se ukazuje, v tomto jazyce s názvem C, pokud chcete reprezentovat string--, že je slovo nebo fráze nebo dokonce paragraph-- musíte uzavřete ho do uvozovek. Není jednoduché uvozovky, dvojité uvozovky. A to je přesně to, co jsem tady udělal. Zatím tam je funky symbol směrem tam do konce. Zpětné lomítko n. Co jsme si řekli, že představoval? Jo? STUDENT: nová řada. DAVID Malan: Nová řada. Jasně, že ne obvykle stisknutím klávesy Enter, pokud chcete program vyplivnout nový řádek. Spíše to říct explicitně s tímto sice tajemné kus syntaxe, znak zpětného lomítka n, že Chcete nový řádek tam jít. Nakonec středník. Neměli jsme mluvit příliš mnoho o tom, a pokud to bude prokletím některých vaší existence na první problém nastavení, když jste právě neuvědomil jste zapomněli něco jako hloupý jako středníkem. A obecně je uvedení tam bude opravit tento problém. Ale co to dělá Pro nás by to řekl? STUDENT: [neslyšitelné]. DAVID Malan: Sorry? STUDENT: [neslyšitelné]. DAVID Malan: Dokončovací prohlášení. Je to něco jako období na konec anglické věty, že v tomto jazyce C je to konec prohlášení. Výuka programování kód, který si jen chcete říct, Skončil jsem s tím. Nyní si všimněte, že je zde jediná. Takže nechcete se dostat do zvyk uvedení středníky po každé uzavřené závorkách. Například tam nic není další močit, a budeme vrátit v budoucnu na to, co znamená neplatné. Ale v tomto případě, že váš printf je funkce, nebo prohlášení používán, a tak chceme, aby toto terminus na samém konci. A já jsem záměrně výběrem na C a upřímně řečeno, mnoho jazyků, jako je C, C ++ Java, JavaScript, a libovolný počet Jiné jazyky mají hodně z nich druh syntaktických detailů. Jistě, že pokud jste na nové programování je skutečně podrazit vás. A vy, označte můj slovy, že někteří z vás tuto zkušenost v úředních hodinách nebo pozdě v noci pracuje na nějakém p-set, kde váš zatracený program pouze neshromažďuje, neběží, budete muset ani ponětí, co se děje, Zdá se, že zcela logicky správný pro vás. A je to proto, že jste zapomněli něco jako bít středník na konci určité linie. Ale to jsou druhy, co jste nablízku bude okamžitě naučit vidět. A opravdu to jsou věci, To, že CA a TF mají byl trochu trénoval se, aby vidět mnohem rychleji než vy. A tak je to jen říci, jak Ponořte se do problému nastavení 1, zejména, nechápu frustrovaný této věci. Jakmile se trochu aklimatizovat na celém světě, je začnete vidět věci, které jste možná ještě viz na první pohled to první týden. Takže zdrojový kód je něco takového. Chceme, aby to projít do tzv kompilátor. A že kompilátor jako jsme si řekli, poskytuje výkon známý jako objektový kód, takzvané nuly a jedničky. Ale odtud, co to nám dá? No to nám dává tyto vzory. A opět počítač, Váš Intel uvnitř, chápe tyto vzory nul a jedniček. A někdy vzor představuje skutečné číslo v desítkové soustavě jak jsme viděli minulý týden, někdy představuje písmeno jako jsme viděli minulý týden, někdy představuje instrukci, jako je tisk něco na obrazovku. Takže printf pro instance-- ale spíše, dovolte mi, abych vzad. Byli jsme s samozřejmost že ty nuly a jedničky jsou vytvořený tímto příkazem make. Ale make není kompilátor. Ujistěte se, není věc ve středu to je produkovat nul a jedniček. Spíše udělat, je jen velmi výhodnou jmenoval program, jehož smysl života je v podstatě zjistit, jak sestavit svůj program. A my ho použít v těchto První týdny, protože to prostě ušetří nám spoustu problémů. Ale to, co udělat, je opravdu dělat při kompilaci Dobrý den, je, jak jsme řekli minule, je to hledat na pevném disku nebo v aktuální složce pro Soubor s názvem, co, zdá se? Hello.c, že ​​jo? To je jen trochu úmluvy. To je libovolná, ale To je způsob, jak se věci mají. Ujistěte se, jestli stačí zadat jméno programu, který ještě neexistuje, to bude vypadat na zdrojový kód v souboru, ve výchozím nastavení znamená hello.c. A pokud najde, skvělé. Bude to převést tento zdroj Kód do objektového kódu pro vás. Ale pokaždé, když jsem stiskněte klávesu Enter po spuštění provést Dobrý den, Vzpomínáte si viděl poslední době poměrně dlouhý a mystické sekvence jiných bílými písmeny a znaky na obrazovce? No, to byl skutečný příkaz, skutečný kompilátor, který byl spuštěn. Takže skutečný kompilátor budeme používat většinu semestr je něco, co nazývá zvonění. Někteří z vás mohou být použita Visual Studio před, nebo GCC, nebo libovolný počet jiných kompilátorů. Budeme používat řinčení. A řinčení nám umožňuje skutečně převést že zdrojový kód objektového kódu. Co to vlastně znamená v praxi? Tak nech mě jít do jednoho z Mé složky z minulého času. Uvnitř CS50 spotřebiče. A nech mě jít dopředu a vytvořit tento Stejný soubor obsahuje standardní I / O dot h. Int main neplatné. A vrátíme se v budoucnu jako na to, co int znamená a jaké void prostředky. Ale teď pojďme dělat hello world zpětné lomítko n, stejně jako jsme to udělali na palubě. Dovolte mi, abych tento soubor uložit s názvem hello.c. A teď, když chci zkompilovat I mohli-- dovolte mi přiblížit v-- běh aby ahoj vstoupit. A to byl opět že velmi záhadné linie. Ale nyní alespoň jedno slovo pravděpodobně vyskočí na vás. Clang je, že vedení jsme viděli předtím. Teď je tu spousta dalších věcí upřímně že budeme mávat rukou na pro dnešek. Ale je tu několik podskupin, několik znaků zde které jsou předmětem zájmu. Ale já jdu do toho a to. Jdu na první spuštění Dobrý den, jen aby dokázal, že toto funguje, jak to bylo v pondělí. Ale teď jdu vymazat program. A stejně jako jsme měli tito krátké názvy Minule Příkaz pro odstraňování něco rm, odstranit, zadejte. Budeš získat některé docela mystické otázky. Těžko uvěřit, že můžete dělat i na tuto otázku těžké pochopit. Ale odstranit pravidelné souboru ahoj jen znamená to, že chcete smazat ahoj. A můžu jít dál a typ Y pro ano, Enter, a teď je to pryč. Co to znamená, že nyní, pokud mohu vymazat obrazovku, je, že namísto dělá make hello-- vás Víte co, já jsem stále dobrý. Chystám se spustit kompilátor sám. Nepotřebuji nějaký program pro zjistit, co můj soubor se nazývá. Napsal jsem hello.c jsem vědět, jak se jmenuje, Jsem jednoznačně schopen psát, že. Takže budu pokračovat a to zvonit hello.c Enter. Zdá se, že se do práce. A neexistuje žádný dodatečný výstup, protože zvonění je kompilátor. To je to, co je konverze Zdrojový kód nul a jedniček. Takže když jsem teď udělat tečku lomítko ahoj Zadejte, hm. New chybová zpráva dnes. Takže bash je jen název blikání výzvy, která jsme pomocí. To je hrubým zjednodušením, ale teď to je všechno, co je, je to bliká řádek. A to je důvod, proč je to křičí na nás. Žádný takový soubor nebo adresář trochu jednodušší. Ale určitě jsem, že objektový kód. Ale úlovek je, že kdybych zadejte příkaz zobrazit obsah této adresář, což je to, co? ls pro seznam. Je tu spousta věcí tady, z nichž některé přišel s přístrojem, jako můj složky Desktop, ke stažení složka, složka Dropbox, a všechny ty věci. Ale co je zajímavé, je hello.c, který Vytvořil jsem před chvílí s gedit. A co je nejdivnější hledá jméno zde, Možná, že ne viz poslední době vůbec? a.out, že jo? Takže zpět v den, to Právě se rozhodl, že když kompilaci programu poprvé, a neurčíte název souboru, nazvěme to je. A a.out prostě znamená to výstup kompilátoru. Takže je to hrozný název programu. Ale do té logiky, tečka lomítko pro aktuální adresář, lomítko a.out, by mělo znamenat, že je to ve skutečnosti můj hello world programu. Teď trochu zahřát cvičení, taky. Pokud budu chtít přejmenovat tento soubor, ukázalo se, že vás přesunout soubor z jednoho jména k druhému. Takže mv a.out, a pak jsem může říkat ahoj Enter. Tak to je příkaz Linux. DOS měl před lety, Windows má terminálové okno nějakého druhu, který vypadá jako je tento, Linux a Mac počítače mají tuto blikající řádek. I když většina z nás pravděpodobně zřídka, pokud vůbec, použijte ji. Ale to, co jsem udělal je provozován Program, jehož jméno je mv, a já jsem za předpokladu, s dva argumenty, abych tak řekl. Dva vstupy. a.out je původní název. Dobrý den, je nový název. Takže když jsem teď dělat tečka lomítko Dobrý den, zadejte, že existuje. A když to udělám dot lomítko a.out, to, co si myslíte, že bych měl vidět? Bash, žádný takový soubor nebo adresář. Protože jsem přejmenoval ji. Tak to trvá trochu zvykat. Ale problém set 1 specifikace bude skutečně držet za ruku přes některé z těchto minutae. Protože se jedná o kompletní duševního rozptýlení od zajímavější nápady na ruce, které je ve skutečnosti vytvoření něco z kódu. Ale pojďme udělat jednu změnu Nyní k tomuto programu. Připomeňme si, že minule jsem udělal něco, co takhle, printf uvést své jméno. A opravdu jsme právě udělali na velké obrazovce támhle. A pak jsem se řetězec s dostane GetString otevřené závorka, v blízkosti závorka. A závorka jen zkratka zápis pro závorkách. Takže to GetString žádné argumenty? Žádné vstupy Ne, ale potřebuje závorky, protože to je to, co vymezuje volání funkce. Takže budu pokračovat a pokusit se spuštění kompilátoru k tomuto programu nyní. Zvonění hello.c, protože jsem nezměnila svůj název pro tuto chvíli. A já mám spoustu chyb. Pojďme oddálit zde. Mám-li procházet znovu nahoru, jak jsem řekl minule, na první, stejné chyby že jsem minule. Na řádku 6 hello.c jsem měl načerno Řetězec identifikátoru, jsem na mysli standard v? Já ne. Protože to, co jsem udělal chybu mají v tomto programu, pokud si vzpomenete, od minule? Ano, potřebujeme takzvané tréninkové kola že budeme jen používat po dobu několika týdnů. Ale musím upřesnit, že také někde uvnitř spotřebiče, je soubor, který jsme napsali pár lety. Uvnitř které jsou funkcí jako zjevně getString. Takže teď, když jsem jít sem dolů, přiblížit, a re-run zvonění hello.c. Sakra, další chyba. Ale my jsme nikdy neviděl tenhle. To je trochu víc esoterický zjistit. Ale to je záměrně na obrazovce, protože jsme chtěli vyprávět tento příběh. Při kompilaci hello.c, stejně jako obrázek z dříve navrhl, jste jen převod, který Zdrojový kód nul a jedniček. Nyní zaměstnanci CS50 před několika lety napsal CS50.h a odpovídající soubor, CS50.c. A my jsme před několika lety, sestaveny soubory do souboru, který se stane být nazýván CS50.o. Nebo to může být přejmenován několik různých věcí. Ale to je jednoduchý způsob, jak přemýšlení o tom. Takže jsme sestavili CS50'S knihovna do nul a jedniček. Ale nikde jsem je uvedeno že chci spojit své nuly a ty na mém hello world Program se nul a jedniček že CS50 zaměstnanci vytvořili několik let před do jednoho kompletního programu. Všechno, co jsem specifikován písemně řinčet hello.c je sestavit hello.c. Já jsem neřekl, řinčení se odkaz do nul a jedniček že CS50 personál vytvořil pro vás před časem. Takže je to snadné opravit, pomlčka l na odkaz, CS50. A budeme opět vidět Netrvalo dlouho a znovu a znovu. Povšimněme si ale teď tam byl žádné stížnosti. Takže teď, když spustím tečka lomítko Dobrý den, teď to funguje. I když je to trochu zavádějící, protože jsem znovu, co soubor? a.out. Tak ať mi přetočit na chvíli. Program, který jsme právě sestaven má tři řádky kódu. Když jsem běžel Hello World, ahoj moment Před Neviděl jsem uvést své jméno. A to proto, že jsem běžel starou verzi programu. Ale jestli opravdu spustit tečka lomítko a.out Zadejte, uveďte své jméno, Rob, ahoj, svět. Hm. Je to druh chyby. Asi chtěl říct Roba, že jo? Takže to, co je oprava tady v kódu. STUDENT: [neslyšitelné]. DAVID Malan: Přesně tak. Tak jsem třeba, aby se toto konečné vyladit tak, že jsem kolem v zástupném symbolu, jako vyplnit prázdné, jako jsme to udělali před chvílí. Ale procent s je nyní že vyplnit prázdné. Tak konečně pojďme odhalit jeden poslední detail, takže tam žádné kouzlo. Chystám se jít dopředu a zbavit Halo. Chystám se jít dopředu a zbavit a.out. Takže teď nemám žádné programy, jen můj zdrojový kód. A já budu běžet mírně delší příkaz, zvonění uhánět o Hello hello.c přístrojovou LCS50. Teď to začíná trochu jet jedním uchem tam a druhým ven možná. Ale jen odhalit, co to dělá. Clang je kompilátor, pomlčka LCS50 záměrně na samém konci dělá to, co ve větě? Odkazy na knihovny CS50. Chytne nuly a ty, které zaměstnanci z a crams je do svého vlastního programu. Takže poslední otázka po ruce je, co je pomlčka o ahoj pravděpodobně dělá, i když jste nikdy viděl tuto syntaxi? Výstup programu, který je ne pojmenovaný výchozí a.out. Spíše je to s názvem Dobrý den. Takže teď není a.out. Žádný takový soubor nebo adresář, protože jsem výslovně řekl, tento program volání Dobrý den, tak, že Nyní mohu zadat název takového a mají se chová. Teď upřímně, chlapec, je to, že nezajímavé mít mít na paměti, to vše málo markant, že jo? Tak pojďme do toho a se opět zbavit ahoj. A pojďme se vrátit do světa, ve které stačí říct, aby ahoj. Ale to je kouzlo, které Zkontrolujte, zda je dělá pro vás, to je nuda, že to dělá pro vás. A jak naše programy a problémy dostat složitější, jak bude skutečně váš přítel. Vzhledem k tomu, ne příliš dlouho od této chvíle budeme mít programy, které jsou napsané ne s jedním souborem, ale několik souborů, a aby se automatizovat proces sestavování všechno pro nás dohromady. Takže teď tisknout. printf je uvnitř tohoto souboru, standardní I / O bod h, že jsme neviděli, ale je tu víc než to printf. K dispozici je zpětné lomítko n, ale je tu také spoustu dalších escape sekvencí. A escape sekvence je jen ozdobný způsob, jak říkat něco který začíná zpětným lomítkem, není lomítko, zpětné lomítko, a dělá nějaký zvláštní věc. A nebudeme zabývat většina z nich, ale proč je tam zpětné lomítko dvojité uvozovky, myslíš? Proč je to divný sled znaky, zpětné lomítko dvojité uvozovky, proč by to mohlo být užitečné? STUDENT: [neslyšitelné]. DAVID Malan: Přesně tak, jo? Vzpomeňte si na naše hello world programu že jsme viděli docela několikrát teď, pokaždé, když jsme viděli, že hello world Program jsme měli dvojité uvozovky uvnitř který je ahoj čárka svět zpětné lomítko n. Ale myslíte, že se na sebe, Co vás, jestli skutečně chtěl vytisknout uvozovky? Váš první instinkt může být, vůbec se mi nelíbí vědět, proč jsem chtít do-- zde můžeme být trochu pasivní agresivní, hello friend. Mohli bychom udělat něco takového. Ale proč je to teď problematické? Ignorování kudrnaté citace stranou, která keynote automaticky z nás. Proč je to problematické? Přesně tak. Protože máme jako 4 uvozovkách. No první, kdo pravděpodobně jde s druhou, a možná i čtvrtý jde s třetí, nebo, myslím, že jsem si ani jistý, ani počítač bude. Počítače znovu, překladače znovu, jsou docela hloupé. Budou dělat, co jen řekni jim to. A pokud si nejste jednoznačné, že se pravděpodobně bude hodit chybu. Pokud si nejste jednoznačné, jak se udělat arašídové máslo a želé sendvič podivné věci může přijít. Je to stejný nápad. Nyní stačí, když řeknu, že je to některé další escape sekvence, ale my přijdeme k těm zanedlouho. V podstatě to útěk sekvence představují něco , že nemusí být schopni příliš snadno na klávesnici, bez matoucích počítače. Teď zatím máme zástupné symboly v printf. Procent d, která může být také psáno téměř ve všech případech jako procento i, je zástupný symbol pro jaký typ dat? Jaký typ hodnoty? Desetinné číslo. Takže vlastně začneme pomocí procent i proto, že je Trochu jednodušší, stejně jako celé číslo. Procenta i. Číslo, které se stane být desetinná. Procent s už řekl, že zástupný řetězec. Což je jen slovo, fráze, odstavec, esej, cokoliv. To je sled znaky určité délky. A uvidíme zanedlouho některé z těchto druhých. Ale procent c je pro jeden znak. Procent f je pro číslo s plovoucí čárkou, jako reálné číslo, které má desetinná tečka v ní, což samozřejmě není celé číslo. A je tu celá banda i ostatním. Mezitím v C, a v mnoha jazycích, máme různé datové typy. Různé typy skleněné mísy, pokud chcete. Mísa jsem použil minule bylo pro ping pong míčky, ale můžeme také ukládat různé hodnoty, jako jsou znaky a řetězce a celá čísla v kontejneru, jako proměnné a C má ty. Char je typ dat, typ proměnné, ve kterém můžete uložit znak. Plovák je typ proměnné v které si můžete uložit reálné číslo. Int je samozřejmě pro int. A poněkud směšně jmenoval long long je místo, kde si můžete uložit v podstatě opravdu dlouhé číslo, s ještě více čísel pak Typický int síla obchod. Ale vrátíme se k tomu zanedlouho. V CS50 dot h mezitím jiný soubor záhlaví že jsme viděli pár krát v použití, tam je Další dva typy dat, které ne v C existují obvykle. Jedním z nich je řetězec, a uvidíme, v pár týdnů co řetězce opravdu jsou pod kapotou. A jeden je bool. A bool je proměnná, která se může uskutečnit pouze na určité hodnoty. A právě na základě minulý týden vysvětlení Scratch, a v poslední době, C, co byste asi jsou dvě možné hodnoty pro nějaký kontejner, který je typu bool? Ano i ne. Jedna a nula. True nebo false. A opravdu je to poslední, který má tendenci být konvenční v programování jazyk, říká něco jako true nebo false. Mezitím knihovna CS50 přichází s partou funkcí že zaměstnanci napsal pro vás, kromě toho jen dostat řetězec. Psali jsme v pokročilých funkcí, které může získat celé číslo od uživatele, získání jednoho znaku, se plovák, který je jen číslo s desetinnou čárkou. Získat long long, opravdu Velkou hodnotu od uživatele. Takže jsme jen svědky v akce v podobě getString. Ale prostřednictvím těchto funkcí brzy bude schopen napsat Programy, které se dostanou vstup od uživatele. Zatím to považují programu, a zvážit jak se nyní může začít přidávat k tomu s novými konstrukcemi. Rychlý vichřice tour a pak se podíváme na některé písemné některé programy ručně sami. Od té doby, pokud chceme realizovat stav, že to nebude vypadat jako pěkný malý pěkný kousek skládačky. Bude to vypadat trochu tajemný. Ale to je kanonický Struktura stavu v C. Slovo, pokud, dva závorky, uvnitř které bude nějaká o logický výraz. Nyní lomítko lomítko ve středu, to je v okamžiku, kdy něco jako pseudokód kód zástupný symbol. Ale přesněji každý řádek kódu v jazyce C, který začíná lomítkem lomítkem je komentář. Je to jako rychlé poznámky, které vám mohou kladen na esej, vytištěné na papíře. To je poznámka pro sebe. To nemá žádný funkční dopad na programu. Je to něco jako připomenutí, že je to vaše vlastní dokumentace o tom, co se děje. Tak to v současné době je jakýsi zástupný symbol pro co je uvnitř těchto složených závorek nakonec bude něco dělat. Zatím máte dvě vidličky v silnice, pokud ještě postavit takhle. Můžete-li, elseif, jinak. Teď je to stojí za zmínku, a to zejména pokud jste googling kolem online zdrojů mimo zvědavost, nebo pokud si vyzvednout jeden kurz je Doporučené knihy o C, uvidíte, že lidé mají spoustu z různých preferencí, jak vyjádřit se v kódu. Někteří lidé chtěli, aby složené závorky, jak jsem to udělal tady. Někteří lidé chtěli, aby se kudrnaté šle například tady. Někteří lidé chtěli, aby elses sem a pak to sem. Je nějaká řada způsobů, jak psát kód, a žádný z nich pravdu o sobě. Ačkoli tam je několik že jsou dost špatné. Ale jsou tu ne--, pokud je to v konečném důsledku velmi náboženský diskuse. Ve skutečnosti, jeden z nejvíce obtěžující věci, o informatice je, jak tvrdohlavý počítačoví odborníci mohou být. A zjistíte, že v průběhu času dokonce si vytvořit osobní preference o tom, jak váš kód by měl vypadat. Není to jen chovat, ne jen vytvořit výstup, ale jak by to vypadalo esteticky. Takže to, co budeme dělat, je vás po způsob, jak se k, alespoň prozatím, standardní CS50 stylu, že alespoň udržuje věci jednotný a snadno čitelné. Ale o těch, rozdíly před dlouho. Boolean výraz v C, pokud máte chtěl říci, zda je tato podmínka pravdivá a ta druhá podmínka je pravda, nemusíte napsat slovo a jak byste v angličtině. Můžete použít místo ampersand ampersand, z důvodů, vrátíme se. Pokud chcete říct, nebo můžete použít dvě vertikální pruhy, které se na klávesnici v USA je obecně vyšší Enter Klíčem vedle zpětného lomítka. A to právě znamená, že pokud tuto podmínku nebo ta druhá podmínka je pravda to. Zatím tam je to šílená věc, která budete mít příležitost jednou použít na chvíli. Ale je to jen alternativa způsob, jak vyjádřit sám sebe. To teď, pojďme stanoveno, že je to jen další funky způsob, jak vyjádřit pokud elseif, elseif, elseif, elseif. Je to jen ve formátu, pokud jde případů, kdy vás doslova výčet hodnot, které možná budete chtít zkontrolovat. Zatím smyčky. Viděli jsme srovnání Stírací smyčkou. A já budu mávat mou ruku na co každá z těchto věcí znamená. Ale všimněte si, že smyčka bude velmi často začínají s klíčového slova. Nebo to bude začínat klíčovým slovem chvíli. Nebo to bude začínat klíčovým slovem dělat, a končí klíčovým slovem chvíli. Ale to, co se chystáme vidět je věcí další, jako je tento. Tady je obecně v C, jak byste mohli deklarovat proměnnou a dát mu hodnotu. V jazyce C to nestačí, jako v Scratch, stačí říkají mi dát proměnnou s názvem něco. Musíš říct, C, a řekni váš kompilátor, konkrétněji, jaký typ hodnoty, kterou do chcete dát do skleněné mísy. Je to číslo? Pokud ano, budete muset Doslova řekl int a pak název proměnné, pak středník. Pokud místo toho chtěl řetězec a vyzval Je to, jako jsem to udělal můj kód zde dnes, byste řekl řetězci s středník. Pokud chcete opravdu dát mu hodnotu pak můžete použít rovnítko, jinak známý jako Operátor přiřazení. A všimněte si, jak každý z těchto řádků kódu má středník na konci. Ale upřímně řečeno, to jen vypadá trochu ošklivé. Proč se nemohu říci k počítači, aby me variabilní a inicializovat na nulu. To je, dej mi prázdnou skleněnou mísu. I když můžete. A tak jeden z rozsudku hovory budete muset stylisticky v průběhu času je, že píšete kód, jako je tento, nebo si trochu vyčistit a zapůsobit lidé od psaní dva řádky jen jako jeden. A to by bylo považováno obecně více elegantní způsob, jak psaní kódu stylisticky. Funkce jsme samozřejmě vidět. Chystají se v tomto formátu. Název funkce, některé závorky, a pak možná nějaký věci uvnitř. Nebo můžete vidět použití více funkcí na straně sebe, jako něco, jako je tohle. Nyní jako tangens, dělá Tento vtip teď smysl? [SMÍCH] To neznamená, že je to vtipné, ale je to to snad udělat trochu větší smysl. Takže teď pojďme do CS50 přístroj na chvíli. A dovolte mi, abych otevřela jednu ukázku zde. A skutečně jedním z důvodů, pro zavedení Katalog IKEA a blikající obraz z iPhone před trochu bylo ve skutečnosti navazují spolu Skutečnost, že jen před několika lety, v roce 2007, tento kus kódu byl uvolní, který byl jeden z prvního provedení z kusu softwaru , že dělá to, co se nazývá Jailbreaking. Pro ty neznámé, jailbreaking něco jako telefon nebo iPhone znamená, že v podstatě zjišťuje na to, jak dělat věci s tím, že společnost kdo dělal to neměl v úmyslu. Jako chcete nainstalovat určitý software, který není v App Store, jailbreaking telefon, který dělat věci, jako že i více. Ale to, co bylo zábavné v 2007-- a tam to bylo desítky různých verzích z těchto věcí od té doby, ve všech druzích z languages-- je, že Tento program zde, nazvaný iUnlock, byl vlastně napsán v C a tak jsem vytáhl zdrojový kód k tomu, jen trochu ukázat některé podobnosti s konstrukcí jsme diskutovali tak daleko. Nyní je tu mnohem více složitost zde než jsme viděli už ve třídě. Dovolte mi, abych rolovat nahoru jen trochu tady. Ale všimněte these-- také můžeme všimnout několika věci-- nevšimnout tyto řádky zde, včetně standardní I / O dot h. A all-- linka 24, please-- Všimněte si, standardní I / O dot h a celá parta z jiných Soubory, které zřejmě jiní lidé psali. A pokud se procházejte to málo libovolně, Všiml jsem si, nevím, jak psát to vše ještě sám nutně, ale je-li. Takže zřejmě to má pobočku. A kdybych přejděte dolů trochu Dále je tu ještě jeden, pokud. Mám-li rolovat nahoru, myslím, že kolem řádku 100 jsem viděl. Tak si nejsem zcela jist, jak to funguje ještě, ale to je pro smyčce, co se děje na dovolte mi, abych opakovat určitý počet opakování. A když jsem procházet všechny cesta na dno Vidím, že je tu fungovat sem volal Hlavní, a některé další úvěry pro vaše potěšení čtení. Takže to je jen say-- a dáme Tento on-line mezi zdroji stránce kurzu Kód today--, že i některé z nich zařízení, které bereme jako samozřejmost, Na konci dne si pořád Pomocí těchto základních konstruktů, které jsme bylo zavedení již tak daleko. To je dost, že jeden. Dobře, takže teď pojďme skutečně něco postavit. Pojďme za něco hello.c a otevřít to, pojďme napsat tento program zde. Chystám se jít dopředu a napsat program s názvem adder.c, jehož smyslem života bude jako moje první super jednoduché kalkulačky že jen přidává pár čísel. Ne proto, že je to těžké problém, ale proto, že umožňuje mi nyní svázat dohromady několik věcí. Takže budu pokračovat a zahrnují Standardní I / O bod h a CS50 tečka h. Já jsem chtěl říct, int main neplatné. A v budoucnu znovu vrátíme se k němu na v tomto kontextu a prázdnými prostředky. A teď něco říct jako printf, dej mi číslo. A teď se na mém druhém řádku, Jak mohu vyjádřit sám sebe, jako že chci deklarovat proměnnou že to bude ukládat int? Doslova to, co mám psát, když chci, aby vytvořit proměnnou, která ukládá int byste řekli? int rovná vezmi_int. Jasně, tak to funguje. A právě konzistence s kódem, budete viz on-line, ať mi změna to x, jen proto, že x je společný název proměnné použít, alespoň v algebře. Nyní mi dovolte pokračovat a to printf znovu. Dej mi ještě číslo. A teď budu druhu o učit se od tohoto vzoru, Já jsem chtěl říct, int y dostane do vezmi_int. A my jsme se použít Vezmi_int dříve, ale jen jako GetString jde a dostane řetězec, jako Javier udělal z publika, podobně dělá vezmi_int začne blikat na řádku. A účinně čekání uživatele aby to celé číslo, zadáním do a stisknutím klávesy Enter. Teď konečně budu dělat to, printf součet of-- a dovolte mi, abych se fantazie teď-- procent i a procenta i je přítomen i vykřičník zpětné lomítko n. A co si myslíte, že budu dát do teď jako další vstupy printf? Nechci říci, doslovně citovat konec citátu x. Chci do třídy X a pak, a teď pojďme fantazie a pojďme se jen předpokládat, můžeme dělat, co chceme. Co chcete říct dál? x plus y. A opravdu to bude fungovat. Je to minimálně programovací jazyky to pochopit základní aritmetické operace, a tak by to ve skutečnosti práce. Tak nech mě jít dopředu a dělat, aby zmije v mé černé a bílé okně sem, Enter. Cryptic linka, ale žádná chyba zprávy, tak to je dobrý. Dot lomítko výbavu, dej mi celé číslo, 1. Dej mi ještě celé číslo, 2. Součet 1 a 2 je 3. Dobře, takže docela triviální programu, ale co to dělá? Je mi umožnilo použít funkci sem volat, volat jinou funkci zde, dva hovory na vezmi_int, A Třetí výzva k printf, a pak pomocí těchto zástupných symbolů. Takže je to trochu víc sofistikovanější, než minule. Ale co když chci trochu milovník? Nech mě jít napřed a teď tohle. Nech mě jít napřed a vytvořit nový soubor s názvem podmínky nulu. A já budu šetřit nějaký čas pro kategorie zájmu a stačí vložit v tom, že kód jako výchozí bod. A teď jen tak dal něco nového tady uprostřed. Takže printf bych celé číslo, prosím. A to vše kód je k dispozici na internetových stránkách kursu je, nemusíte psát to všechno ve třídě, pokud nechcete. int, a teď jdu použití, místo toho, aby X a Y Chystám se použít n, což je Pravděpodobně nejčastější název k je celé číslo v počítačovém programu. A teď chci udělat málo rozsudek zde. Jdu zjistit, jestli n je větší než 0, potom Chystám se říct printf-- Jejda, printf-- si vybral kladné číslo, vykřičník zpětné lomítko n. Ukončete to. Jinak jdu vytisknout printf jste si vybral záporné číslo. Teď před vámi na mě křičet, pojďme spustit tento program. Nech mě jít sem. A jak mám sestavit program volal podmínky pomlčka 0? Vytvářet podmínky pomlčka 0. Trochu hloupé jméno, ale-- sakra. OK, dobré vyučování moment. Proč se to zlomit? Co jsem náhodou zavolat tento soubor? Můžete trochu odvodit Na kartě tady. Takže to není špatné, že jsem to udělal, protože to se stane, možná některé z vás. Tak jsem se náhodou jmenoval můj Zdrojový kód stavu 0. Ale můj zdrojový kód podle úmluvy by měla být v souboru s názvem stav 0 pomlčka c, nebo cokoliv tečka c. Takže dovolte mi, abych tento problém odstranit. Stejně jako Microsoft Word můžu jít nahoru na příkaz Uložit jako a dělat stav 0 dot c. Teď už jen stačí, aby byl pořádek, že jsem jít dopředu a vyjměte stav 0, což byla moje stará verze. A teď pojďme dělat, aby stav 0, Enter. OK, se zdá být dobré. Stav 0, Enter. Rád bych celé číslo, prosím, 50, jste si vybral kladné číslo. Nyní, jak o negativní 50? Jste si vybral záporné číslo. Jak teď, 0. Jsem si jistý, 0 to není negativní. Tak to je docela logické chyby. Jak mohu tento problém vyřešit? Jinak, pokud n je menší než 0, to, jinak provést můžeme mít třícestného větev tady, printf sis vybral 0. Takže teď, když jsem znovu spustit tento program po kompilaci ji opět s make, a teď znovu spustit stav 0, co uvidím tady 0 mi dává tento výstup. Tak kam jedeme s tím? No, je to velmi snadné ztratit ze zřetele v lese mezi stromy. A tak lze usuzovat, s tímto 2 a 1/2 minuty videa že v konečném důsledku je to trochu z reklamy od společnosti Google, ale je to opravdu svědčí o co i pomocí těchto základních stavebních bloky se můžeme nakonec udělat jednou máme trochu programování znalým pod našimi pásy. [Přehrávání hudby] SAROO BRIERLEY (HLAS): Bylo to před 26 lety, a já jsem se chystal otočit 5. Dostali jsme se na nádraží a jsme nastoupili naši vlaku spolu. Můj bratr právě řekl, budu zůstat tady a já se vrátím. A já jsem si myslel, dobře víte, Bych mohl stejně dobře spát a on si jen mě vzbudit. A když jsem se probudil další den, celý vozík byla prázdná na splašený vlak, duch Vlak mě bereš nevím kde. Jsem byl přijat se do Austrálie, australské rodiny. A máma se zdobí můj pokoj s mapou Indie, která položila vedle mé postele. Probudil jsem se každé ráno viděl tu mapu, a proto to nějak stále vzpomínky naživu. Lidé by řekli, že jste se snaží najít jehlu v kupce sena, Saroo nikdy najít. Já bych se zablesklo z míst, které jsem chodil, bliká mé rodiny tváře. Tam byl obraz mé matky, sedět s nohama zkříženýma jen sledoval její výkřik. Život je to tak těžké. To byl můj poklad. A já jsem se díval na Google mapy a si uvědomil, že je Google Earth stejně. Ve světě, kde byste mohli přiblížit, Začal jsem mít všechny z těchto myšlenek a jaké možnosti že to pro mě mohl udělat. Řekl jsem si, víte, vy jste mám všechny ty fotografické vzpomínky a památek, kde jsi, a Víte, co město vypadá. To by mohla být aplikace, která můžete použít k najít cestu zpět. Myslel jsem si, dobře, že jsem si dal tečka na nádraží Kalkata, a poloměr linka, víte, že vás by měla být vyhledávání kolem této oblasti. Tak nějak jsem narazil na Tyto koleje. A začal jsem po to, a Přišel jsem na nádraží, které odráží stejný obrázek to bylo v mých vzpomínkách. Všechno uzavřeno. Myslel jsem, že jo, já vědět, kam jdu. Já jsem jen tak nechat Mapa, že mám v hlavě veď mě a vem mě zpět do mého rodného města. Přišel jsem až ke dveřím dům, který jsem se narodil. A chodil asi 15 metrů za rohem, tam byly tři dámy stojící mimo, vedle sebe. A prostřední krok vpřed, a Jen jsem si myslel, je to tvoje matka. Přišla dopředu, mě objala a byli jsme tam asi pět minut. Popadla mě za ruku a ona mě vzala do domu a dostal se na telefonu, kde se zavolal mou sestru a mého bratra říci, že víte, tvůj bratr má jen Najednou se objevil jako duch. A pak byla rodina opět sešel. Všechno je dobré, Pomohl jsem svou matku ven, že nemusí být zotročení pryč. Ona může žít po zbytek svého života v klidu. Byla to jehla v kupce sena, ale jehla tam byl. Všechno, co tam je. Vše, co se ve světě je na ťuknutí na tlačítko. Ale musíš mít vůli a odhodlání, kteří chtějí to. [Přehrávání hudby] DAVID Malan: Nádherně sweet posudek jen to, co můžete Nyní to s technikou. Uvidíme se příští týden.