[VIDEOPŘEHRÁVÁNÍ] -A Triumf matematický a mechanické dovednosti Je to skvělá nová automatická Kalkulačka na Harvardově univerzitě. Složité problémy v matematice vložit do přístroje v kódované podobě na pásku jsou přesně řešeny v minuta zlomek požadované době pro lidskou výpočtu. Navrženo pro urychlení všech forem matematické a vědecký výzkum, obří mechanický mozek bude pracovat pro námořnictvo Spojených států až do konce války. [END Přehrávání] DAVID J. Malan: To je CS50. Minulost byla magická místo, ale pokud jste někdy přemýšlel, co toto zařízení je v Harvard Science Center, to je opravdu součástí Harvard Mark I, a to je Na displeji se tam teď V posledních mnoho let. A to, co uvidíte vložené do Zadání problému jeden je pohled do zákulisí na to, co udělal, že zařízení, a dělá, profesora Harryho Lewise, který je v věda oddělení zde počítač. Tak o tom více v jen trochu. Ale dnes jsme začali přechod od minulého týdne k tomu, a budeme přinášet zmínku na jedné fotografii zde to je vlastně docela slavný. Ví někdo, co to zde je zobrazeno na obrazovce? Alespoň podle mýtu. Jo. Diváků: První virus. DAVID J. Malan: Takže to byl pravděpodobně úplně první skutečný problém v počítači. Nyní ve skutečnosti slovo chyba, za chybu v programu, byl s námi pro některé čas ve fyzickém světě, a to byl jeden z prvních zdokumentované období, kdy někdo skutečně utrhl velký můra z Mark Počítačový II, vložte jej do pojiva, a pak ji zaznamenal jako první známá chyba aby byly skutečně nalezeny fyzicky. Takže takto byl zadán že do dnešní tradice. Vše od poslední týden je k dispozici on-line. V konkrétních zdrojů, které byste mohli ne nutně všimnout, zejména pokud sem osobně. Takže jeden z vyučovacích chlapíků každý rok dělá kanonický soubor poznámek, takže se nemusíte držet hlavu dolů, snažil přepsat téměř všechno že by se mohlo stát tady ve třídě. Takže si uvědomit, že ti, tzv [? Scribd?] Poznámky jsou on-line, určitě diapozitivy a zdrojový kód, který budeme používat ve třídě. Vyrábíme plné texty přepisy také k dispozici. Takže pokud si matně vzpomínám některé termín, a chcete se podívat to málo snadněji, si uvědomit, že všechny z toho je vyhledávání online. Stejně jako průchody stejně. Opravdu, dnes začneme se dívat na nižší programovací jazyk na úrovni, brzy být známý nám jako C, a to je velmi snadné se nějak ztratit po několika momenty čas, a pak nějak údivu jak jsme se vlastně dostali k nějaké další komplexní příklad z nejjednodušších. A tak si uvědomit, my budeme třešeň vyzvednout během vyučování nějakým reprezentativních příkladů, ale Uvědomuji si, že mnohem víc je také k dispozici on-line, takže můžete pracovat přes to svým vlastním tempem, Nicméně jste nejpohodlnější. Ale my jsme přestali s programy, které byly právě tento. Tak jsem klikněte na zelenou vlajku, a co tento program dělá? Říká, ahoj, svět. To je kočka říká ahoj ve svém malém světě na horní levé straně uživatelského rozhraní Scratch je. Ale začali jsme zavádět některé terminologie minulý týden. A tak, takové věci, co jsme říkali? Co by mohlo být obecný termín pro to? Jo. Způsob nebo prohlášení. Jistě, je to akce. Udělej to. A přesto tam byli jiné tvary na zelené louce, Kromě těchto tzv prohlášení, oni byli také věci, jako je tento, které jsme říkali, co? Jo. Takže smyčka. A v tomto případě, tahle věc opakuje, samozřejmě, 10 krát. Je tu navždy blok. Je tu pár dalších. A dnes budeme vidět, jak se přeložit do více moderního světa, chcete-li, i když je to bude vypadat na první pohled být mnohem tajemné. Ale to byly opravdu smyčky. A pak máme věci jako to, který měl tento tvar, a v podstatě dotazy. A my odkazoval se na tyto jako co? Diváků: logický výraz. DAVID J. Malan: Jo. Logický výraz. Něco, co je buď pravdivé nebo false, ano nebo ne, jedno nebo nula, však budete chtít na svět. Ale jsme nazvali ty Boolean výrazy, a my připojte je do podmínek, nebo pobočkami. A ve světě Scratch, všechno pěkně blokovací zařízení, pokud jde o jeho tvaru, pokud to má logický smysl, aby tak učinily, ale nemusíte zastavit na jen dělat jednu věc podmíněně, můžete mít příslovečná rozcestí a to buď to, nebo že v případě, podmínkou je pravda nebo ne. A pak, jak uvidíte, pokud jste tak již neučinili, Můžete dokonce hnízdo tyto bloky. Takže Scratch roste vyplnit tvary že budete chtít vložit do něj, takže se můžete skutečně vyjádřit většinu logika, které budete chtít dělat. Nyní pár slov oznámení pro oba tady a New Haven. Takže krájení začíná dnes. Adresa URL pro toto je na kurz je webové stránky, pro ty, kteří neznají. Sekce bude příležitost dát dohromady v mnohem intimnější prostředí než [? Sanders?] Umožňuje, s 10 až 20 spolužáků majících výuky kolega na různých tratích, a různých kroků, pokud se tak rozhodnete. Opravdu Kurz poskytuje různé úseky pro ty méně pohodlné více, pohodlné, a někde mezi tím, a role palce tady, je neexistuje žádná formální definice, ale pokud jste méně pohodlné, tak nějak to vědí. Jsi trochu neohrožený o Myšlenka na posílení nohou, snad zpět ve třídě, nebo zobrazení a to až do mezi sekce. Pokud jste byli programování od vás bylo šest let, pohodlnější, Možná na vás. A jestli je to jakýsi přehazovat-up, to je přesně to, co mezi tím má být. Nyní, do té doby, pro třídu této velikosti, to trvá nám nějakou dobu sekce všichni, takže jsme takzvaný, flash sekce, přijde to víkend a začátkem příštího týdne, tak se podívat na webové stránky Course pro ty, které jsou samozřejmě široké, a také filmoval pro ty, kteří nemohou dělat je. A profily sami začnou v týdnu tři CS50 nula indexu. Problém nastavena 0 je již na internetových stránkách Course. A uvědomit si, že máte devět pozdní dní tento semestr. Takže se jedná o upgrade z poslední rok, kdy jsme měli pět pozdní dní. Takže pokud jste zvědaví, Máme devět problém sady. Máte devět pozdní dnů, přičemž každé z nich můžete jen strávit jeden za týden dál. To účinně je všechny Problém nastavuje kvůli Pátek, ale cílem je dát trochu bit psychologického tlaku na vás, aby se pokusili dostat věci v ve čtvrtek protože jak brzy zjistíte, k lepšímu nebo k horšímu, většina vše, co ve světě softwaru skončí přičemž mnohem déle, než očekáváte. Takže zvažte to druh příležitostí pomoci sami na cílové čtvrtek, ale útěchu v tom, že ano, všechno je kvůli pátek. A pokud si předložit je na Čtvrtek, to je skvělé. Neexistuje žádné bonusové body nebo další úvěr pro splnění této lhůty. Je to má být jen berle. A úřední hodiny, a to jak tady a v New Haven, osobně, pokud chcete setkat se s některou z našich kurzů výuky kolegy a certifikační autority pro pomoc. Dobře. Takže teď, pojďme aby to reálnější. A na chvíli, že to bude začátek se trochu víc tajemný, ale velmi rychle v pátek a Příští týden budeme schopný dělat mnohem víc, než jsme mohli doposud v Scratch. Proto jsme zavedli kód poslední týden, i když pictoral. Bylo to dílky puzzle. A my formalizovaná, že je něco, co nazývá zdrojový kód, ale bude to vypadat? No, vypadalo to trochu něco takového. A ve skutečnosti, jen aby druhu škádlit kam můžeme jít s tím. Chystám se jít dopředu a otevřít okno tady, a já jsem prostě jít volit nový soubor. A budu tento soubor uložit něco jako ahoj dot C. Více informací o tomto výběru slova v chvilku. A to je to, jak by se někdo mohl jít o psaní programu. Zahrnout Standard I / O bodů h, int main neplatné, a potom otevřete složená závorka, v blízkosti složená závorka, printf ahoj čárka world, zpětné lomítko n, středník, Uložit, hotovo. DOBŘE. Napsal jsem můj první Program, ale to se děje být neuvěřitelně chladnou protože když jsem vlastně spustit tento program, samozřejmě, od první písemné dělat ahoj, a pak dot lomítko ahoj, a my projít to mnohem podrobněji ve chvíli, to je vše, co dělá. Neobjeví otevřená všechna okna. To nic nedělá zejména fantazie. Vše, co to udělá, je to, co jsem řekl, to ano, ale jak se dostaneme na to? A jak jsme se stavět na to? Dobře, pojďme představit několik odlišné pojmy zde. Takže jeden, my jsme asi na začátku používat program s názvem kompilátor. Kompilátor existuje pro Mac OS, Windows, Linux, libovolný počet operačních systémů, a my brzy představí na prostředí, které budeme používat, ale kompilátor je jen obecný termín pro kus softwaru který bere zdrojový kód a vyrábí objektový kód z něj. Jinými slovy, pokud mají jako vstupní zdroj kód, něco jako to, co jsem právě napsal, to nakonec produkuje objektový kód. A objektový kód je opravdu jen ozdobný způsob, jak říkat, že výstupy nul a jeden je. Jinými slovy, zdroj kód, i když je to bude vypadat trochu tajemné, a trochu méně přátelský Scratch než na první pohled, je to aspoň něco že my lidé mohou rozumět. Je to trochu vypadá a zní jako Angličtina, i když je to velmi stručná. Vzhledem k tomu, programování v nul a něčí, jako naši předkové museli udělat, Před několika lety, nebylo Zvláště zábava výzva. A přesto, to je to, co počítač stále chápe. Takže kompilátor nás dostane z Zdrojový kód objektového kódu. Je to jako otevření souboru s kompilátor, a když ji uložíte, dostanete ty nuly a jedničky. Tak uvidíme, jak to udělat že za chvíli. Ale vraťme se nyní pokusí poskytnout most mezi minulý týden a to, takže i když jsme se zavěsil na věci, jako je složené závorky, a středníky a závorky, a všechny tyto intelektuálně zajímavé aspekty programování, které velmi pochopitelně výlet lidi na začátku, si uvědomit, že všechny myšlenky Dnes, jsou stejné, jako poslední. Takže poslední, viděli jsme tento příklad tady, Hello World programu. No, začíná dnes, pokud chceme, k provedení tohoto stejného programu, to bude vypadat Trochu něco takového. A budeme vysvětlovat před dlouhou, co int, a hlavní, a neplatné, a to vše je, ale aspoň vidím zde již známý Hello World. Mezitím, věci, jako je funkce, řekněme ahoj, je velmi jednoduše Bude to velmi prosté konstatování jako je tento. Printf hello world, s některými cituje, se zpětným lomítkem, středníkem, ale Více o tom přijít. Smyčky, zatím, je to, že smyčka, Samozřejmě, říká ahoj svět navždy, a ten to bude vypadat málo podivnější, než v posledním, ale když řeknu něco stejně jako, když pravda, já pak můžete vytisknout Hello World znovu a znovu a znovu a znovu. A pak, jak můžete laskavý při zahájení odvodit tady, Tato úmluva použití složené závorky je druh jako se objímat členité řádek kódu tam. Printf řádek kódu podobně jako žluté kousek skládačky nahoře. Takže nebudeme říkat navždy, budeme říkat, když pravda, ale uvidíme, proč tomu tak je v jen trochu. Mezitím, máme-li smyčku jako je tento, kde si zopakovat něco konečných číslo časy, to taky, že je to bude trvat trochu zvykat , ale bude to říci int i dostane nula, i méně než 10, i ++, a pak printf znovu. Ale tam to bude vzory. A pro ty z vás znají s AP informatiky, nebo Java, nebo libovolný počet jiných jazyků, téměř všechny z těchto konstruktů tak daleko by měl vypadat většinou povědomý. Tak variabilní. Takže tady je jednoduchý Scratch výňatek, že nastaví proměnnou s názvem čítač na nulu, a pak navždy říká pult, a pak se změní čítač o jednu. Tak začíná nulou, a pak jeden, dva, tři. Tak, jak by jsme se představit, že v tento nový jazyk trochu podobně? Int counter rovná nula, zatímco pravý, což je to, že stejná myšlenka před rokem dělat něco navždy, a já jsem prostě jít do printf. A teď je to stále trochu divné, procent i, ale o tom přijít, ale tyto myšlenky jsou naprosto stejné. Máme teď musí dodržovat syntaxe, zda je počítač bude vyžadovat z nás. Logický výraz, něco jako sx méně než y, popřípadě x menší než y, a y méně než z. Bude to vypadat něco málo takhle, s závorky jen stejně jako v matematice pro dobrou opatření, které jen zajistit, že pořadí operací je, jak jsme v úmyslu. A teď, podmínky. Takže pokud x menší než y, řekněme x je méně než y, else if x je větší než y, říci, x je větší než y, jinak logicky, x musí být rovno y. Takže byste mohli realizovat něco takového v Scratch, nebo byste mohli realizovat že v této syntaxi. A opět, složené závorky jsou druh což nám dává stejný tvar jako puzzle kusy, ale syntaxe, teď, je možná začínají následovat nějaké vzory. Takže, co to dá nám tady? Takže jsme zase pak na našeho hlavního programu. Pojďme ve skutečnosti, teď, udělat něco s ním. Takže v tomto velmi nejprve linka vidíme ostrý patří, Standardní I / O, tečka h, a pak nějaký divný úhel závorky níže, že. int main neplatné, a pak printf hello world. Takže jen krok. Někdo, kdo nikdy předtím naprogramované, alespoň vysvětlit jednoho z těchto řádků. Použití možná některé z žargon z minulého týdne. Co je printf, například? Jo. Diváků: [Neslyšitelné] DAVID J. Malan: Jo. Je to funkce, nebo prohlášení, od terminologie minulý týden. A je to akční to je něco dělat. Nyní je tato funkce, nebo toto prohlášení, dělá Zdá se, že to trvat nějaký vstup? A v jakém smyslu to dělá Zdá se, aby se vstup, pokud ano,? Vstup, co mám na mysli, že? Jo. Diváků: [Neslyšitelné] DAVID J. Malan: Jo. Takže Scratch na několik skládačky kde můžete nastavit parametry jej. Dalo by se říci, opakování blokovat kolikrát opakovat, tak, aby byl vstup druhy, a stejně jako Scratch měl malý bílý zástupný symbol pro číslo byste typu v, takže máme použít v tomto Text svět závorky dát nám, že kruhový tvar do kterých můžeme zapojit naše vstup. Koneckonců, desítky lety pokud tento jazyk, nazvaný C, byl vynalezen nikdo Předpokládá se, že je to jeden z nás, Tyto o několik let později, měli bychom Chcete-funkci, která říká ahoj. Je to tak? Bylo by hezké, kdyby tam bylo kousek skládačky, nebo jen klíčových slov, tomu se říká ahoj, že doslova říká ahoj. Ale my nepotřebujeme to. Můžeme mít něco mnohem nižší úroveň, jako generické potiskem Příkaz, který bere vstup, a tisky, co chceme. Takže si všimnout teď vzor že začne objevovat. Otevřené paren, v blízkosti je paren zřejmě zahrnující vstup, a pak vidím double cituje na obou koncích. Stále je divné zpětné lomítko n, ale doufejme, že teď jste můžete začít představit alespoň, že printf bere v nějaké formě vstupu. Ne tak uživatelsky přívětivý jako Scratch, ale je to jen jako když zapojen tam nějakou hodnotu. Dobře, teď se to vlastně udělat něco s tím. Takže někteří z vás možná znají z mají před nakupoval třídu, povídali s přáteli, , že po mnoho let jsme použili něco, co nazývá CS50 spotřebiče. Jednalo se o termín, který popisuje technologii volal virtuální stroj, který je kus softwaru, který předchůdci by stažení off Webové stránky Kurz je zdarma. Oni by také zdarma stáhnout kus software nazvaný hypervisor, něco, co nazývá jako VMware, nebo VirtualBox, nebo libovolný počet dalších nástrojů, a na jejich PC nebo Mac nebo co počítač měli v loňském roce a v minulých letech, oni by poklepat na ikonu pro spuštění tohoto softwaru volal hypervisor. A pak se uvnitř tohoto programu oni by otevřel CS50 přístroj. A efekt byl, že zda předchůdce tvůj se systémem Mac OS nebo Windows, on nebo ona pak následovně měl nové okno na jejich Obrazovka spuštění prostředí CS50 je. Takže virtuální stroj umožňuje spustit jeden operační systém uvnitř druhého, a to je přesně to, co jsme udělali. Skrz většinu z samozřejmě používat operační systém nazvaný Linux, konkrétně Ubuntu Linux, a to je velmi příjemný způsob, jak v minulých letech z ujistěte se, že všichni v průběhu prostě musel stejné prostředí. A můžete použít jakýkoli druh počítač, který skutečně chtějí. Mezi nevýhody, i když, bylo to jako dva gigabajty stáhnout tuto věc. To přece nemusí nutně fungovat výborný dobře lidé, jejichž počítače, že možná pouze měl koncert nebo tak RAM, nebo ne příliš mnoho gigahertz rychlosti procesoru, a tak tento rok, pro toto a jiné důvody, máme již přechod do tohoto prostředí. Takzvaný CS50 IDE, který je založen na open source software, a podporované platformy že společnost s názvem Cloud9 podporuje v Evropě, že nám umožňuje mít v podstatě že přesně stejné prostředí jako v minulých letech, ale v tzv mrak. Takže to, co je cloud? Pravděpodobně jste klikli jeho ikona na vašem počítači Mac nebo PC. Co je cloud? Jo? Trochu hlasitěji. Jo. Je to jen banda počítačů jinde, které ukládají data a běh software a podobně. Takže je to opravdu jen ke slovu DE jure popisující [? pronajímatelné?] Počítače, které žijí jinde. To jsi ty, sám, nemusí nutně vlastnit. Takže když vaše data, nebo Váš programy, jsou v cloudu, znamená to pouze, že je to na někoho jiného počítače jinde, a ne, s největší pravděpodobností, na svých fyzický notebook nebo desktop. A tak to je to, co CS50 IDE je nyní. Od nynějška budete chodit do určité URL, které vás seznámí se v problému sada 1, v průběhu tohoto týden, které budou následně, po přihlášení, vám toto prostředí. A podobně jako Scratch měl několik různých panely zapojeny, tak dělá IDE CS50 mají přesně to. Na horní levé ruky tady, ty jsi uvidí známou prohlížeč souborů. Takže některý ze souborů, které jste do tohoto prostředí se právě chystá by měly být uvedeny zde. Soubory a složky. Na vrcholu tady, budete vidět místo, kde si můžete skutečně napsat svůj kód. Zpočátku v C, později v termín v PHP a JavaScript, a, možná pro konečné Projekty, Ruby nebo Java nebo Python nebo libovolný počet jazyků jsou podporována v tomto prostředí. Není to vůbec svázaný na CS50 konkrétně. A pak se v dolním rohu tady, zvláště pro ty, pohodlnější, máte něco nazývá okno terminálu. A to okno terminálu umožňuje můžete spustit libovolný příkaz, který vám chtějí v tomto prostředí cloudu. To umožňuje instalaci jakýkoli další software že chcete, protože jste takzvaný kořen, nebo správce oprávnění. Takže jinými slovy, i když toto je nakonec hostil v cloudu, a přestože máme zjednodušil do určité míry Ve výchozím nastavení je doslova zavedení, díky Dan Armendariz, a Dino, a Dan Bradley na CS50 týmu Over The v minulosti mnoho měsíců, méně pohodlný Režim, který skrývá mnoho z zpočátku matoucí rozptýlení. Vše, co existuje na představují typický počítačový systém které můžete použít v reálném světě. Takže co to všechno znamená, a co můžeme skutečně udělat s ním? Pojďme skutečně nahlédnout na programu. Takže já jdu otevřít Skutečná prostředí tady, což je jen naše Chrome browser, který by mohl být Firefox, může být Internet Explorer, nebo nějaký jiný prohlížeč stejně. Je to tu plné screening pro tuto chvíli. A já chci, aby skutečně dráždit kromě toho, co tento program byl. Takže pojďme se podívat, přiblížením nahoru začátek, na to, co jsem udělal, a jak jsem se sem dostal. Tak tady je těch, přesný Stejné řádků kódu. Takže toto je prohlášení, jak jste zmínil dříve. Funkce, která říká, ahoj. Složené závorky, na linka čtyři a linka šest, pravděpodobně druh obalové že linka je sdružovat s podstatou mého programu. Takže ve skutečnosti, toto klíčové slovo hlavní, že to tam nahoře na lince tři, si můžete myslet, že jako rovnocenné , že když zelenou vlajkou klepnutí, blokovat Scratch. Tak to je všechno, co máme tady, je, když zelenou vlajkou klikli, vytisknout, nebo říkat, Ahoj světe. Ale pojďme se hádat, teď, na to, co tato první, ještě tajemný řádek, je. Sharp patří, otevřený úhlová Držák, standardní I / O bod h, zavřít úhlový držák. Co je to snad dělá, zejména pokud jste naprogramován předtím, než v nějakém jiném jazyce. Jo? Diváků: [Neslyšitelné] DAVID J. Malan: Jo. Přesně tak. Tak to dává vám přístup k knihovna, abych tak řekl, funkcí. A knihovna funkcí je funkce, které někdo jiný napsal, a to buď v poslední době nebo už dávno, takže si Nemusíte znovu vynalézat kolo. Například, my ne musí vědět, v roce 2015, jak psát kód, který klade charakter na mé obrazovce. Někdo přišel na které out s funkcí printf takže můžu třídit abstraktní od toho, nebo vrstva Na vrcholu jeho nebo její kódu, a teď jen se za samozřejmé, že každý program, který jsem napsat lze tisknout něco na obrazovku. Takže toto první řádek tam v jednom kroku zahrnuje tzv hlavičkový soubor pro standardní knihovny. Tak vidíte, jazyk v který nyní pracujeme měl standardní knihovny se spoustou funkcí. Printf je jedním z nich, a že první řádek kódu znamená, dej mi přístup k ty funkce, abych Nemusíte znovu vynalézat kolo, že. A teď pojďme do dolního okna a dělat přesně to, co jsem udělal předtím. Před chvílí, když jsem byl svištění prostřednictvím kódu, psát to poprvé, Velmi rychle jsem napsal, aby ahoj. Co to všechno bylo by hádat? Co jsem dělal? Jo? Nevadí. Je to v pohodě. Jo. Diváků: Kompilace jej. DAVID J. Malan: Jo. To bylo prostě kompilaci to. Je to tak? I když je to zcela neznámé pro vás, je to docela anglicky jako. To určitě ne nuly a ty, takže jsem pořád je třeba jej spustit přes to takzvaná Program, kompilátor, který se děje vzít to jako vstup a produkovat výstup. A alespoň pro tuto chvíli, v toto prostředí Linux, ale toto není předpokladem, To je právě tam, kde začneme, je obvykle komunikovat s počítačové systémy, jako je tento pomocí tzv příkazového řádku. Takže s blikajícím rychlé a klávesnice, a ne tolik vaše myš, a nikoli tolik oken a ikony a nabídky, spíš všechno je textový. A i když to cítí, nejprve pohled, možná, jako krok zpět, je to ve skutečnosti mnohem silný a expresivní způsob, ovládání počítače zejména jako vy, sami, se více pohodlná od méně. Bude to vám umožní udělat hodně více věcí, než jen to, co Microsoft nebo Apple vám umožňuje dělat s jejich grafické operační systém. Takže když jsem stiskněte klávesu Enter, nyní, nic se neděje, tentokrát protože zřejmě Program ahoj je aktuální. A jaký byl povel Běžel jsem po tom? Dot lomítko Dobrý den, i hello world. Nyní se pojďme krok zpět na chvilku. Ukazuje se, že dělat ahoj je jen zjednodušený způsob sestavování programu. Pojďme se jen představit jeden kus žargonu, ale pak se vzdálit z ní, protože to není vše, co zajímavé pro dnešní účely. Překladač budeme začít používat se nazývá Clang, pro jazyk C. A to je program, který je právě spuštěn jako jsme to udělali v tam příkazovém řádku. A tak, když chci sestavit program, který jsem psali v souboru s názvem ahoj tečka c, jsem doslova stačí zadat zvonění ahoj c vstoupit. Legrační je, z historických důvodů když nemám zadat Název programu že chci, aby výstup, když to neudělám zadejte název souboru pro ty nuly a ty, velmi podivné Před úmluva byla přijata let kde se cítil tak trochu Dobrá odpověď v té době, no řekněme libovolně volat První program jsme sestavit tečku ven. Je na prvním místě v abecedě. Out, je to výstup. Takže budeme nazývat program Ve výchozím nastavení je tečka ven. A to je v pořádku, protože když budu chtít spustit program v tomto textu na bázi životní prostředí, jen jsem typ dot lomítko tečku ven vstoupit. A bylo by v přesně tak jako dříve. Tak uvidíme, že opravdu rychle. Takže když se vrátím k mému Zdrojový kód v CS50 IDE, a já místo toho to, řinčet ahoj dětská postýlka c vstoupit, oznámení se zdánlivě nic neděje, ale téměř vždy v toto prostředí Linux, Když se nic špatného nestane se zdá, že znamená, že něco dobrého vlastně stalo. Pokud nevidíte chybu poselství, všechno je asi dobře. A skutečně, když jsem teď dělat tečka lomítko tečku out vstoupí, jsem běžet můj stejný program. Stále mám program Hello z dříve, protože ve skutečnosti, že je to Bude tak mnohem hezčí jen typ, aby namísto vzpomínání tyto zaklínání na příkazy, ale uvidíme, jak jsme může zvýšit na to, nicméně. Takže, to je příkaz kompilovat kód. Toto je příkaz ke spuštění potom zkompilovaný kód. Jak lze zadat název souboru? No řekněme, představit jeden kus žargonu. Když jste v této prostředí založené na textu, budete chtít zadat věci zvané argumenty příkazového řádku. Což je jen fantazie způsob, jak říkat, jiná slova na řádku, který vyladit chování bez ohledu Program vedete. Takže konkrétně program, já jsem běh, zadáním názvu řinčení, je program s názvem Clang. Tak to je, nebo staré školy ekvivalent dvojkliku Microsoft Word nebo ikonu nějakého programu. Já jsem místo toho jen zadáním jeho názvu, ale v této verzi příkazu, Pak mám pomlčka ö prostor ahoj ahoj prostor tečka c. Takže i když jste nikdy hrál v tomto světě dříve, stačí se hádat, co se pomlčka o ahoj dělat? Nebo co to říct, řinčení dělat? Jo. Diváků: [Neslyšitelné] DAVID J. Malan: Jo. Je to jen nastaví výstup souboru být ahoj namísto hloupější tečka ven. A opravdu, zkusme to. Takže když jsem se teď dělat, nejprve jdeme na to, r m ahoj. To je odebrat. A to bude říkat odstranit běžný soubor ahoj, který je zbytečně tajemný, ale to jen prostředky chcete smazat soubor, I a Napište A pro Ano. A všimněte si, pokud jste byli s pohledem na vrcholu doleva, to se zmizí ze tam. Dovolte mi nyní dělat zazvoněním pomlčka o, a Chystám se jít dál a dělat ahoj, ve všech velkých písmenech, ahoj tečka c. A teď, když jsem dělat dot lomítko Dobrý den, co by jste čekali? Možná je to velká a malá písmena. Možná to není. Uvidíme. Žádný takový soubor nebo adresář. A můžeme trochu podvádět tím jen při pohledu na levém horním rohu. Co jsem samozřejmě uložit program jako? Všechny čepice ahoj. Takže ve skutečnosti, že to jde aby rozdíl. Takže teď ahoj svět je zpět. Teď je to všechno v pořádku a dobré, a všichni velmi mysli-znecitlivující, na druhu zabřednout v těchto detaily, ale jejich pochopení je dobrý. Psaní z těchto stále dlouhé zaklínání se nebude zvlášť zábava, takže lidé ve světě vynalezl jiný program, Před několika lety, nazvaný dělat, že jednoduše umožňuje psát make, název programu chcete provést, a aby je chytrý v tom, že to bude vypadat v aktuální složka, alias adresáře, a pokud máte soubor volal ahoj dot c, že je soubor, to bude sestavovat pro vás do programu s názvem ahoj. Takže je to mnohem jednodušší způsob, jak dělat více mystické příkazy že jsme dělali dříve. A my jsme přednastaven CS50 IDE vědět že by měl činit pomlčka na o a řadu jiné vlajky, nebo argumenty příkazového řádku, že uvidíme zanedlouho. Ale pojďme teď vlastně dělat něco zajímavější. Jen psát out hello world vše Čas není vše, co přesvědčivé. Tak nech mě jít dopředu a změna tento program a říkají, ahoj David. Teď budu jít sem dolů. Chystám se jít dál a dělat, aby pozdrav. A teď zase vidíte aby se zobrazující delší sekvence příkazů, které je dělá proto, že jsme předem nakonfigurované to tak, ale my Nemusíte se bát teď co to dělá jiný, než je shrnujících dot lomítko Ahoj, ahoj svět. Co je špatně? Jo. Diváků: [Neslyšitelné] DAVID J. Malan: Ano. Takže, noobie chyba. Všiml jsem si, to je super jemný, ale hvězdička tady, na kartě, jen znamená, že jste to chytá, a prohlížeče a další programy to občas stává. Takže ovládání s nebo příkaz s to měli šetřit. Nyní mi dovolte jít napřed a re-spustit program. Recompiled. Správně, takže je to proces, multi-krok. Žádný z nichž je obzvláště složité, ale kdykoli jsme se změnit soubor, musíme změnit výsledný nul a jedniček, a tečka lomítko ahoj. Wow. Tak to je velmi nezaujatý že jsme prostě vytisknout tohle. Pojďme dělat věci trochu dynamičtější, teď. No to dopadá, že rád Scratch, C podporuje proměnné. A ukazuje se, pokud chcete, mít proměnná, která ukládá, není číslo, jako my typicky udělal s Scratch, ale jako slovo, nebo fráze, nebo název, vy Můžete zadat proměnné být typu string. Tak uvidíme více ty za chvíli, ale ukázalo se, že C, a mnoho jazyků, jako je to, mají velmi specifické typy proměnných. Není to stejně jako algebra, kde dostanete X, Y a Z a to jsou právě vždy čísla, v programovacím jazyce můžete uložit čísla, můžete ukládat jednotlivé znaky, můžete uložit celých slov, byste mohli ukládat celé obrázky, celé zvukové soubory, a podobně. Proto musíme upřesnit, co typ naší proměnné je. A konvencí budu volat mé variabilní to jen proto, že je stručné, a s znamená řetězec. A pak budu ukládat uvnitř této proměnné, Stejně jako u Scratch při použití set bloku, Budu používat Operátor přiřazení v C, což dost dobře je rovna podepsat, ale rovnítko to dělá. Pohybuje se něco z pravé strany do levá strana výrazu. Takže to, co jsem udělal, aby bylo jasné, v linka pět, je já jsem deklaroval proměnnou. Řekl jsem počítač, dej mi paměť pro proměnnou, říkají to, a vědět předem, že budu k uvedení řetězec v něm. A řetězec je jen posloupnost znaků. Je to slovo, nebo fráze, nebo bod, ale je to posloupnost znaků. Není to čísla. Co string mám to bude uvedení do této proměnné? No, zřejmě citovat konec citátu, "Hannah". Nyní Všimněte si vzor, ​​který je nově vznikající. K dispozici je levá ruka výraz. Je tu pravá ruka výraz, odděleny rovnítkem. A stačí se hádat, pokud neznámé nicméně, s tím, co středník je dělá. Co to pravděpodobně dělá pro nás? Jo? Diváků: [Neslyšitelné] DAVID J. Malan: Jo. Je to jen o zastavení linky. Je to tak? Počítače chtějí být bez obalu Řekl doslova, co má dělat. Stejně jako arašídové máslo a želé sendvič příklad, pokud nezadáte přesně to, co máte v úmyslu, to by mohlo být ponechána na úsudku nebo chybou. Středník prostředky, to je pro tento příkaz. Je to být mimořádně přesné, a je to velmi jednoduchá věc, odejít pryč. Takže teď tento program se nezdá se chová jinak, než já aby bylo více dynamické. Takže spíše než tvrdě mohl můj vlastní jméno, dovolte mi, abych dal hodnotu zástupný. A ukázalo se, že, a já vím, že to od mít, přečtěte si dokumentaci, a použili funkci léta, že printf byl navržen tak, aby dynamický. Nemusíte znát předem jaká slova chcete dát v něm. Místo toho můžete mít symbol, jako procent s, což se chystá říct, počítač, dát řetězec zde. Jaké řetězec chceme tam dát? Will Ukazuje se, že mezi nimi závorky, které pamatují, vymezit vstup do funkce, pokud máte oddělených čárkou seznam věcí, které zde, jsme vlastně předat násobku vstupy do funkce. Takže stejně jako nějaký Scratch bloky, možná ne hráli s nimi Vaše projekty ještě, nebo vůbec, Stírací některé bloky mají dva vstupy. Dvě bílé krabice můžete zadávat čísla nebo slova do. Takže nemá C má funkce, jako je printf, které může trvat dva vstupy. A opět, to čárka je oddělit je. Takže v angličtině, i když znovu jste nikdy předtím naprogramován, se tím, že logika printf je funkce, trvá dva vstupy, z nichž jedna je zástupný symbol, co byste doufat, printf bude dělat s tímto vstupem? Bude to pozdravit Hannah, doufejme. Takže to udělat, musíme ji uložit. Jdu oddálit. Chystám se jít sem dolů a říkají, aby ahoj vstoupit. Aha. Něco je špatně, a vlastně je to docela zdrcující. Mám šest řádky kódu a jako 12 řádků chyb. Takže, těšíme se na to. Takže to, co se tady děje? Takže to nejlepší pravidlo platí, zvláště když začínáte ven, nenechte se zmást Věci na dně. Ve skutečnosti jsem velmi uváženě jen rolovat nahoru proto, že velmi často, je počítač není všechno, že jasné z přístroje. Bude to zmást. Považuje-li to jedna věc, která nerozumí, to by mohlo splést ostatní řádky kódu jako nesprávné, i když jsou naprosto v pořádku. Takže chcete vždy pracovat nahoru dolů chyby. A sice to je Super Arcane v tuto chvíli. Chyba, využití nehlášené Řetězec identifikátoru. Už jsem na mysli standard v? Ne, myslel jsem řetězec. A je to ukázal na, možná je to překlep. Něco jako, kontrolu pravopisu v velmi geeky způsob, ale důvod, proč tady, a budete vědět to jen praxí, je že se ukáže, že řetězec neexistuje v C. Ve skutečnosti, C je zvláště starý jazyk, a to je velmi nízké úrovni, a to není mnoho funkcí které by vás mohly vyrostli , jestliže máte ve skutečnosti, naprogramované v Javě, jak někteří z vás, ale můžete učit nové věci. A skutečně, jsme udělali tuto CS50, i když na konci semestru, všech těchto koleček bude muset být vzlétlo, co děláme v těchto Prvních pár týdnů zpočátku je máme také zahrnout CS50 dot h. Což je soubor záhlaví. Více o tom v budoucnosti. Je to soubor, který obsahuje funkce že jsme napsali pro vás. A mezi těmito funkcemi je Funkce pro získání vstupu od uživatele, jako struny, a čísla a reálná čísla, a další. Ale také má několik zkratek. Definuje logickou hodnotu jako typ dat. C nemá true nebo false. Ale můžeme dát pojmu true nebo false prostřednictvím této knihovny. A to také nemá řetězec postavený v roce dokud tento řádek. Takže tento řádek kódu říká, kompilátor, hej, Clang, podívej v tomto souboru pro celek banda kódu, který CS50 napsal tak, aby kohokoliv, kdo používá tento soubor může vzít za samozřejmost rysy, které jste přidali. Takže teď nech mě jít napřed a vyčistit obrazovku, a je-li zvědaví Já jen říkám, kontrolu l pokaždé vyčistit obrazovku, nebo můžete zadat jasné. Já jsem prostě jít do toho pusťte a teď typ dělat ahoj, a všechno je v pořádku. Stále tajemné výstup, ale není to chybná zpráva. Teď, když mám dot lomítko ahoj, a jako stranou, tečka lomítkem je neznámá pro většinu. Znamená to jen, dot prostředky aktuální adresář. Takže pokud jste někdy používali DOS, nebo Linux, Unix nebo jsi mohl udělat něco jako jsou CD dot dot, kde dot dot znamená jít zpět v čas, nebo jít zpět, nebo výš v adresáři. Dot prostě znamená podívat aktuální adresář. Chci ahoj, což je tady. A skutečně, teď říká ahoj Hannah. A když jsem to zase změnit Marii, překompilovat bylo by Dobrý den, dot lomítko Dobrý den, program se neustále mění. Ale to je ještě pěkně hloupé programu. Pokud chci, aby loď tento program, nebo dát do přátel nebo to dát Maria nebo Hannah když na to přijde, je to v pořádku. Mohu přizpůsobit ji pro oba, ale to nikdy nebude dynamický. Nemohou to změnit, jakmile je to zkompilovaný dolů do těch nul a jedniček. Takže to, co jsme udělali něco chytřejší? Co kdyby místo hard-kódování do programu jméno této osoby, Co když jsme jen dostat řetězec na požádání? Takže jinými slovy, nech mě to udělat. Chystám se překompilovat tento program. A dovolte mi přiblížit na dně teď. Udělat ahoj tečka lomítko ahoj. Nyní se nic neděje. Můžeme získat rychlý dobrovolníka aby se něco stalo? Pojď nahoru. Jak se jmenuješ? PANCHO: Pancho. DAVID J. Malan: Pacho? Pojď nahoru. Jakmile se dostanete sem, je to bude velmi nezaujatý, ale je to mnohem zajímavější než já napsáním. Chcete-li pokračovat a napište jméno, udělal jsem tento program právě pro vás. Stačí zadat své jméno. Enter. Wonderful. Dobře, děkuji vám. PANCHO: Velice vám děkuji. DAVID J. Malan: OK. [APPLAUSE] To bylo velmi laskavý. Tady máš. Co budeme dělat? Tak jsme konečně, alespoň, dělal tento program dynamický. Teď je to ještě určitě podle návrhu nezaujatý, ale konečně máme schopnost Nyní psát kód v předstihu, hodně jako autoři printf, a pak dynamicky ADAPT založený na vstupu jsme předal, a to buď programátorem, nebo u člověka, který je vlastně interakci s programem. Takže teď pojďme skutečně snaží udělat několik dalších konstrukty a uvidíme, jestli nemůžeme dělat programy sami sofistikovanější. Tak pojďme do toho a místo psaní této úplně od začátku, Chystám se jít do dnešní zdrojový kód, a to vše je k dispozici na kurz je webové stránky, a můžete jej přetáhněte do svého prostředí přijde v pátek jednou problému set 1 vám dává instrukce, nebo byste mohli to na příkazovém řádku jako dobře, ale ještě přijít v p set 1. Podívejme se, co je v tomto programu sem volal, zmije dot c. Teď už jsem poznamenal, to, ale co je nového? Na první pohled, co linka kódu je naprosto nového? Pravděpodobně ne zásadně neznámé teď. Diváků: [Neslyšitelné] DAVID J. Malan: Jo, takže int x rovná se dostat n. Nikdy jsme neviděli nic z toho dříve, ale int je pravděpodobně symbol pro jaký druh variabilní, [? z?] celé číslo. Takže int na celé číslo. Je to prostě být více stručné. x je jen libovolný. x a y a z jsou stále docela rozumné pro čísla, ale obecně my budeme používat slova jednou Naše programy získat složitější. Get int, samozřejmě, podobně jako get řetězec, pravděpodobně dostane int od uživatele, a pak budeme udělat to samé s y. A zdá se, že i když to Poslední řádek, 24, vypadá složitější, to bude říkat součet tohoto a že to je další věc. A Oznámení procent i pravděpodobně znamená co? Jakou roli hraje procent i zdánlivě sloužit? Je to jen zástupné. Je to tak? Procento s byl pro řetězec, procent i je na celé číslo. Tam to bude procent f pro plovoucí bodovou hodnotu, která je jen číslo s desetinnou čárkou. Jinými slovy, je reálné číslo. Takže pojďme se vlastně tato kompilace programovat velice rychle a dělat, aby zmije. Jejda. Dobrá příležitost. Takže tady si všimnout, celou tu dobu své uživatelské jmenovat je tento účet jharvard. Jsem CS50 IDE, aka IDE50. A teď tady modrá, je zmínka, ale z prostředí, kde jsem. A ve skutečnosti, když jsem zoom až na vrchol Zde si všimněte, že mám IDE50 a vidím toto slovo, pokud jste druh otočit hlavu na stranu, pracovní prostor. Stručně řečeno, skutečnost, že Vidím tilda lomítko pracovní prostor Znamená to, že v tomto textu na základě příkazu prostředí, Já jsem do textového ekvivalentu Toto grafické složky sem. Takže když jsem si dot lomítko zmije, je to říkat žádné pravidlo aby cílové výbavu zastavit. Já nevím, co to znamená, ale je to špatné pro nějakého důvodu. Žádný takový soubor nebo adresář je ještě jasnější. Kde je to tedy? O tom, kde jsem klikl na bázi otevřete soubor dříve. Tam, kde to může být? Je to pravděpodobně v zdroji 1 W, na středu, a já to vidím, opravdu, pokud otevřu, že až. Tam je sčítačka dot c, ale v Tento text-based prostředí, Znovu musím být super explicitní. Pokud chci změnit adresáře do source jednu Středa, musím psát, cd prostor zdroj jedním Středa vstoupit a teď moje výzva změny dej mi vizuální podnět, který Jsem opravdu, jinde v mém prostředí, ale teď můžu dělat, aby zmije, zdá se, že práce, dot lomítko výbavu, dej mi celé číslo. One. Dva. Součet jedním a dva jsou tři. Ale když nebudu spolupracovat, pojďme se podívat, co si dělá int. Dej mi celé číslo. Ne. Opakovat. DOBŘE. Dobře. 50. 50. Dobře. Takže to nakonec spolupracuje. A to je některé z funkce, které tyto funkce mohou mít postavena v roce pro vás. Tak uvnitř provádění z dostat int, co programování postavit z minulého týdne je pravděpodobně v tam nutit toto chování opakování, opakovat, opakovat? Jo, je to asi nějaký druh smyčky. Bude to vypadat syntakticky odlišné od bloků Scratch je, ale to je opravdu co je uvnitř souboru. A za pár týdnů potkáme ve skutečnosti se podívat na knihovně CS50 pokud jde o to, co je uvnitř, ale je tu smyčky uložení přesně to. Pojďme si zahrát malou hloupou Hra zde s tímto souborem. Stav nula tečka c. Jsme jen tak všeobecně začne počítat od nuly. A pořád rolování minulost některé věci v horní části. V modré tady, ohraničená se všemi z těchto hvězd a lomítek, ty z vás, kteří programovat předtím, co to je? Proč se máme držet skákání přes to? Cože? Diváků: Je to comment. DAVID J. Malan: Jo. Je to jen poznámka. Toto je komentář pro lidi číst, která v našem případě, nám říká, co název souboru je, kdo to napsal, a co dělá, takže nemáte číst prostřednictvím kódu vědět, co tento soubor je vše kolem. Je to jen popis, ale funkčně je to irelevantní. A já si dokonce odstranit z můj soubor a nemá žádný vliv. Tyto linky jsou tyto šťavnaté První dvě tady a teď. int main void je ekvivalentní našeho když zelenou vlajkou klepnutí, takže budeme nechat to být pro dnešek, a vrátíme se, Nakonec, pokud jde o to, co int a neplatné jsou, ale nyní, Všimněte si, co jsem udělal i zde, můžete také, pokud máte v řadě komentovat, pokud máte myšlenka chcete sdílet o konkrétní řádek kódu, konvence v C je udělat lomítko lomítko, a pak několik stručné slova ne plný trest, obecně není bod, že právě vysvětluje na vás, nebo vaše TF nebo jiné čtečky nebo kolegy, co váš kód dělá. Takže spíše než se dívat na to a vyvodit z linek devět a 10, co je to dělá, v souladu osmi Jen jsem dát komentář k požádejte uživatele o celé číslo, pak nemám myslet příliš tvrdý o čem linky devět a 10 jsou. Já jen vím, že to je to, co kolektivně dělají. Jak na to? No, tady je to výzva. Tady je dostat na int. A na základě předchozí chování, vypadá to, že get int je dost chytrý, aby se ujistil, že lidské spolupracuje a dává ho celé číslo. Ale teď to vidíme. A to je připomínající Scratch. Já jsem tvrdil, že jsem analyzovat vstup uživatele, ale poněkud nepřesně. A to zřejmě v C je, jak vyjadřujeme if jinde, pobočky, vidlice na silnici, ale já říkají poněkud nepřesně. Co je to chyba v tomto programu? O další záda? Jo. Diváků: [neslyšitelný] nulu. DAVID J. Malan: Jo. Takže když jsem psát v nule, uvažujme přesně ten případ, nebo rohová případ, chcete-li. Takže když jsem psát v nule, což z Bloky se chystá zřejmě uchopit? If nebo jinak? Část else, a to bude říkat, sis vybrala záporné číslo. A skutečně, nula se nepředpokládá být pozitivní nebo negativní, a tak, že by byl chybně. To by byla chyba. Tak jak můžeme opravit? Někdo, kdo nikdy předtím naprogramované? Chceš-- Diváků: [Neslyšitelné] DAVID J. Malan: Vyjetí? Diváků: [Neslyšitelné] DAVID J. Malan: Ach, vy máte? Někdo, kdo nikdy předtím naprogramován. Chcete si vyzkoušet si ruku na to, v červené košili? Pojď nahoru. Ach jo, no tak se, pokud vám to nevadí. Takže nikdy naprogramování předtím, Jak se jmenujete? Lauren: Lauren. DAVID J. Malan: Lauren, v pořádku. Takže opravit tuto chybu pro nás. Vy jste neviděl C, pravděpodobně, a pravděpodobně žádný jiný jazyk. Takže opravit tento program pro nás. Nice to meet ya. Žádný tlak. LAUREN: Jo. DAVID J. Malan: Ale opět, pokud je to hazard půjde podle plánu, stánek s jídlem zde bude být, prostě opět na začátek všímat vzory a vyvodit z existující syntaxe jak jinak byste mohli vyjádřit sami, žádná slovní hříčka určena, aby zachytit některé další scénář. Takže říkáme else if. printf, dobře. A všimněte si s CS50 IDE, a frankly-- IDE je zkratka pro integrované Vývojové prostředí. Je to jen fantazie způsob, jak říkat program, který vám pomůže program. To dělá věci, jako je uživatelsky přívětivý když zadáte jeden závorky, To vám dává automaticky druhé. Předpoklad je, že jste nakonec bude chtít psát, že, a to také dělá to s uvozovkami. Takže jsem rád linka 23. 99% tam na cestě. Někdo chce přizvukovat špičkou? Slyšel jsem, že středník z publika. Dobře. Tak, že dokončí to. A teď, jen jsem trochu zděšení se řádku 21. Jak chceme vyjádřit to? Jakou otázku chceme se zeptat, co myslíte? Takže předtím jsme se zeptali na otázku, pokud n je větší než nula, to udělat. Else, to udělat. Proto musíme zvolit na něco zeptat zde. Diváků: [Neslyšitelné] DAVID J. Malan: Dobrý. Takže v případě, n se rovná nule. Výborně. Takže pojďme pozastavit zde. Děkuji moc za Vzdorovat toto. Dovolte mi, abych vám trochu zasloužený stres míček, snad. Tak, že jsme skoro tam. Ve skutečnosti, Lauren, pokud nemáte mysl, dovolte mi, abych jednu štípnout tady, jen aby byly v souladu is to, co jsme viděli v Scratch, co dělat, co chci dělat s linkami 21 a 24, jen opět založeno o tom, jak jsme to udělali v Scratch, snad? Diváků: Pohyb nahoru. DAVID J. Malan: Jo, přesuňte jej nahoru. Takže stav jinak, třetí, nebo čtvrtý, nebo pátý, nebo konečné větev, by měl skutečně přijít později, A to je jen konvencí, jen proto, že chcete-li. Tak jsem si třeba, aby se Tento trik. A já potřebuji, aby můj složená závorka zpátky. A teď, bude tento program zkompilovat. Jsme tak blízko, ale je tu velmi, velmi jemné chyba. Podívejme se, co se stane. Nejprve mi dovolte, abych do toho pusťte a oddálení. Chystám se jít dopředu a zadejte vytvořit stav nula. Oh, lhal jsem. Nyní je kompilátor vlastně docela chytrý. A nemám opravdu pochopit, to je chybová zpráva. Použití výsledek přiřazení jako stav bez závorek, je zřejmě špatné. Ale co to znamená? Tak ještě jednou, hledá vzory V kódu, který jsme viděli dříve, co je linka 17 ve skutečnosti dělá, i když Lauren mírně určeny jinak? Jo. Diváků: [Neslyšitelné] DAVID J. Malan: Jo. Takže nezapomeňte rovnítko, zřejmě jak jsme používali to dříve, není rovná. Jeho úkol, zprava doleva. Takže řádek 17 v okamžiku, kdy je stav, a to je spuštění kódu v závorkách, ale když ten kód spustí, co se děje na hodnotu nula? To, co se děje na hodnotu n? Stát se nule. Takže pokud n je stále nula, a znovu, podle minulého týdne, jsme se obecně říci, že nula je falešný a jeden je pravda, nebo ano, je jeden a není je nula. Tak true a false, jedno a 0. Pokud je n od řádku 17 je s ohledem na hodnotu 0, je nula pravda? Ne. Podle definice, nula je falešný. To je konvence, že jsme bude lpět na posun vpřed. Takže budou linky 18, 19 a 20 někdy se teď, logicky? Oni nemohou. Takže jsme se zeptali na otázku avšak ne zcela přesně, a nebudete vědět, pokud to není jste viděli to, řešení v C je, když chcete vyjádřit rovnost, říkáte rovná rovná. Takže rovnítko byl již vyčerpali postoupením, zprava doleva. Rovná se rovná znamená rovný s rovným. A pokud opravdu chcete svou mysl ohýbané, v JavaScriptu a PHP, tam je rovná rovná se rovná, což znamenat něco jiného dohromady, ale dostaneme se, že zanedlouho. Takže tohle je jednoduchý fix, ale uvědomit, super snadné dělat tuto chybu, a pak se divit a boj pro minuty, ne-li za hodinu, Proč je můj kód není provádění, jak jsem v úmyslu? Je to proto, že jste neřekl je to přesně to, co jste měl na mysli. Tak to bylo téměř perfektní, a to bylo skvělé že narazil na tyto dvě malé věci, protože teď když jsme je opravit, a mám dělat Nula podmínky dot lomítko stav nula, Chtěl bych celé číslo, prosím. Uvidíme. Ne. Bude to mě donutit to udělat. Tak 42. Vybral jsem kladné číslo. Takže teď jak to mám dokázat, tento program správně? Pokud jste matematik, nemůžete Opravdu to dokázal metodou pokusu a omylu, v pořádku? Můžete nejen důkaz o příklad, ale přinejmenším jako programátor nejsme bude snažit dokázat teď , že je to ve skutečnosti správné, ale já měl asi otestovat některé reprezentativní případy. Testoval jsem 42. Mohl bych vyzkoušet 43. Mohl bych vyzkoušet 44. Test 45. Je to tak? Ale já jsem se to mohlo opravdu dlouho dělat. Jaká by měla být asi více zajímavé případy to zkusit? Diváků: [neslyšitelný] nulu. DAVID J. Malan: Takže nula. Jistě. A hodně, máme to tentokrát, díky novému kodexu Lauren. Co je další dobrý případ to zkusit? Diváků: negativní. DAVID J. Malan: negativní, a možná něco trochu větší, takže možná negativní 42, ale obecně, pokud testování vašich programů kupředu, ty jsi bude chtít myslet k sobě, jako to, co jsou základními různé případy. A troufám si říci, negativní věci, pozitivní případ, a nula případ do značné míry doplňuje tyto ven. Pojďme se podívat na variantě tohoto ačkoli. Podmínky on. To je správné řešení tady, takže uvidíte dva a on-line, pokud budete procházet návody, obecně přírůstek těchto krocích, dokud dostanete přesně ten správný přístup. Co kdybychom chtěli zeptat, dvě otázky najednou? Dovolte mi, abych otevřít toto místo. Non-switch, z důvodů, uvidíme jindy. Co je nového syntakticky tady? Já jsem v současné době hraní hry kde je počítač říká mě, dej mi celé číslo mezi jedním a 10, a pak jsem soudit vstup uživatele. V angličtině, na základě kód, který najdete zde v modrém, co se tento program dělá? Diváků: [Neslyšitelné] vybral velký nebo malý počet. DAVID J. Malan: Jo. Je to prostě rozhodování, zda Vybral jsem velký, nebo médium, nebo malé množství na základě velmi libovolná definice malých, středních, a tady velký, ale oznámení syntaxe je to nové, je to. Není méně než int nebo rovno podepsat, nebo větší než nebo rovno podepsat, z nichž jeden je nad druhým, že vy může vyjádřit jako je Microsoft Word. Takže v programovacím jazyce, obvykle prostě dva znaky, jedna po druhé. A co to pravděpodobně představují, ampersand ampersand. Diváků: [Neslyšitelné] DAVID J. Malan: Jo. To jen znamená, a proto, že Ukazuje se, že autoři C použit jeden ampersand, který byste si mohli myslet by bylo ideální pro pojmu a, je již vyčerpána, takže ampersand ampersand vlastně zachycuje případ vlastně chceme. Takže pojďme se teď narazí dvě věci. Nech mě jít dopředu a otevřít jeden. Něco, co je trochu znepokojující. Nepřesnost tečka c. Dovolte mi představit dvě věci zde. Za prvé, všimněte si, že můžeme dělat matematika, as stejně jako předtím, když jsme a ze dvou čísel, x a y. Co je tento program zřejmě dělá? Já jsem to komentoval to ještě, a já jsem představil procent f, ale rychle jsem řekl dříve f procent znamená, že s plovoucí řádovou čárkou hodnota, která je reálné číslo. Něco se desetinná bod, který není celým číslem. Co si myslíte, že tento program je Snaží se mě ukázat na obrazovce? Jo? Diváků: Výsledek jednoho nad 10 let. DAVID J. Malan: Jo. Jaký je výsledek jednoho děleno 10. Jasně, protože všechny z vás má pravděpodobně vyrůstala s vědomím, že jeden přes 10 je co? Jo, je to jen desetina nebo 0,1. Je to tak? Takže pojďme se podívat, co to vlastně je. Tak nech mě jít dopředu a uložit toto. Nech mě jít sem dolů. Udělat nepřesnost dot lomítko nepřesnost, a oznámení, příliš, v prostředí systému Linux, nemáte muset zadat ven nepřesnost a brát celý den. Obecně, pokud Tab hit, to dokončí své myšlenky pro vás, na základě slov, která jsou k dispozici v aktuálním adresáři. DOBŘE. Takže jste měl pravdu. Jeden děleno 10 je, ve skutečnosti, 0,1. Ale já jsem trochu zvědavý. A ukázalo se, printf podporuje některé funkce přičemž můžete určit více než Výchozí počet desetinných míst. Takže pokud chci vidět 10 desetinné místo body, co můžu udělat procent, pro symbol zástupný symbol, dot 10 pro, dej mi 10 desetinných míst, a pak ještě plovoucí desetinnou čárkou hodnota, a, jak stranou, Co je to zpětné lomítko n zřejmě jsme udržet pomocí? Ukazuje se, že je to symbol pro nový řádek. Je to velmi explicitní cesta říkat k počítači, přesuňte kurzor na další řádek po máte hotovo. A uvidíme, co se stane když neděláme to. Dovolte mi, abych překompilovat, aby nepřesnost. Nyní dot lomítko nepřesnost. DOBŘE. Stále v pořádku. Jeden děleno 10. Teď začíná být trochu zvědavý, ačkoli. Co když se podívám 20 desetinné místo poukazuje na to, překompilovat, opakování, a jak stranou pro rychlost, můžete také použít Váš šipky nahoru a dolů se procházet historii, takže se nemusíte držet přepisování těchto příkazů, zadejte. Huh. Nevěděl jsem, že učit na základní škole. Dobře, tak ať mě vidět jako 29 míst ven. Možná je to jen náhoda. Možná, že můj počítač se chová divně. To není věc, že ​​jo? Je to něco deterministicky. Tak, aby nepřesnost. OK, to je zpackal. Takže to, co se děje? Takže zřejmě Váš Učitel byl ležící pro vás všechny tyto doby pro Důvody, které uvidíme zanedlouho. Ale pojďme skončit s jedním dalším programem. To je trochu programy někdo napsal před několika lety, a je to vlastně část soutěže. Nikdo vlastně píše kód jako je toto, a pokud ano, to je stylisticky problém. Ale lidé to pro vychloubání práv. Chcete-li psát nejvíce matoucí hledáte program, který přesto dělá něco zajímavého. A poznámka jsem si myslel, bychom nechat na dnes, než nás Colton hraje tady, je ke spuštění tohoto programu, které i v jen pomocí C v tento text-based životní prostředí, nám to dává. Sakra. [SMÍCH] Připravit. [Neslyšitelný] c pomlčka l m. Budeš vidět magické zaříkadlo, že uvidíme zanedlouho. [Neslyšitelný] V pořádku. A teď můžete dokonce dělat věci, jako je tento. To je to. Pro CS50 my, uvidíte v pátek. [Přehrávání hudby] [APPLAUSE]