David J. Malan: Tak toto je CS50. A to bol CS50 vlastné Colton Ogden, viac o tom, kto je to hudba, ktorú môžete stiahnutie na soundcloud.com/cs50. Takže dnes sme sa zamerali všetci viac na umenie programovania. A my sme sa, kde sme z minulého týždňa, so zameraním na Scratch, ktorý bol tento grafický programovací jazyk. A brať veci dole na nižšej úrovni, použitie viac tradičné programovanie jazyk známy ako C. Ale na ceste, si uvedomil, že rovnaké myšlienky sme hovorili o minulého piatku bude opakovať nielen v tejto jazyk C, ale vo väčšine každý druhý ktoré sa pozrieme v tomto semestri. Tak sme nazvali túto vec tu to, čo minule? To je zástupca vyhlásenia. Tak sme volali toto vyhlásenie. A to niečo robí. Je to poučenie, že Počítač alebo Scratch môže vykonať. A ďalej, poďme tiež spustiť volá niečo také funkcie, z dôvodov, ktoré sa čoskoro uvidíme. Zatiaľ sme videli veci, ako je táto. A títo sú všeobecne známy ako čo konštrukt? DIVÁKOV: Loop. David J. Malan: Takže slučka. Tak celkom jednoduché. Je doslova robí to, čo hovorí. A v Scratch, ak chcete napchať viac dieliky tam, kus bude rásť, aby sa zmestili to. A uvidíme, v C, ktoré môžeme urobiť to isté. Ďalším typom slučky, aj keď, V Scratch môže byť navždy, alebo tam je nejaké číslo iných prístupov. Ale poďme sa viac všeobecný vzhľad, s tvárou to je pravdepodobné, že dobre oboznámený, na slučky všeobecne. Mark Zuckerberg: One vec, že ​​počítače sú naozaj dobré je opakovanie príkazov. Ako človek, mali by ste si naozaj nudiť, ak vás musel urobiť to isté mockrát v rade. Ale počítač môže urobiť to isté milióny alebo dokonca miliardy doby, a nie nudiť, a musí byť schopný vykonávať, že sa naozaj dobre. Tak napríklad, keď chcel popriať všetkým na Facebooku všetko najlepšie k narodeninám poslala im e-mail, ma to môže trvať dlhšie ako storočia skutočne zapísať všetky tie e-maily pre všetky. Ale len pár riadkov kódu, môžem má systém poslať e-mail pre všetkých na Facebooku, ktorý si želá im všetko najlepšie k narodeninám. Takže to je to, čo slučky a prečo sú cenné a niečo že počítače vie veľmi dobre. David J. Malan: Takže ak ste bol príjemcom niektorých CS50 je a Dropbox je priestor neskoro, to je vlastne presne to, čo sme áno, pomocou kódu celkom rád, že. Máme v podstate majú veľký tabuľka, do ktorej ľudia boli zadaním ich mená a e-mailové adresy. A napísal malý kus kódu, ktorý môžete iterovat cez tieto adresy a vypľuť jedinečné adresy Prípad niekto predložil viackrát. A potom, pošleme automatické e-maily z CS50 je topánka, vrátane kupon kód. Teraz sa tiež pozrel na Táto konštrukcia minule. A to je zvláštne príkladom toho, čo? Tak jo, Boolean výraz. A tvar je určený zachytiť, že rovnako. Všetky tieto otázky tvorí true alebo false v Scratch bude vyzerať trochu niečo také. A hovoríme tomu Boolean výraz. To je skutočne pravda, alebo nie, áno alebo nie. Je to spôsob, ako odpovedať na otázku. A medzitým si môžete použiť tieto Boolean výrazy vnútri konštruktov ako tie, ktoré z Samozrejme, sú podmienky alebo pobočky, príslovečná vidličky na ceste. A môžu vyzerať nielen takto, ale môžu tiež sa elses sú s nimi spojené. A môžete mať v skutočnosti tri cestu rázcestí, alebo štvorcestný vidlica na ceste, jednoducho tým, že hniezdenia týchto vecí, ako uvidíte v Scratch ak ste tak už neurobili. A ako si môžete urobiť v C i. Zoberme si ďalší všeobecný pozrieť sa na alumnist, ako aj, ktorý môže predstavovať odlišný prístup k týmto veciam sa nazývajú podmienky. Bill Gates: Ľudia robia rozhodnutia každý deň. Napríklad predtým, než idete von vás druh mať, ak vyhlásenie, ktoré hovorí, ak prší a potom som sa Potrebujem, aby mi bundu. A počítače sú úžasné, akonáhle sa rozhodnúť tieto druhy výpisov, , Že sa môže spoľahlivo vykonať tie veci na neuveriteľnou rýchlosťou. A tak počítačový program naozaj je trochu matematiky a niektoré if ak to rozhodnutie dostane vyrobená. David J. Malan: Tak ako možno viete, je to ľudia ako Bill Gates, Paul Allen a ďalší že naozaj odštartovala takzvaný osobný počítač revolúcia pred niekoľkými rokmi. Myslel som, že predtým, než sa ponoríme do nejakej Administrivia, by sme sa týkajú príbeh z Albuquerque, New Mexico Museum of Natural History a veda, kde niektorí z Billa Gatesa " a Paul Allen najstaršie príbehy sa líči, ako máme teraz dnešné PC a Mac a ďalšie. K tomu však budeme potrebovať dva dobrovoľníkmi ktorí majú veľmi dobré rozprávanie hlasy čítať scenár nahlas. Dobre, a čo v tam. Poď hore. A čo pred tu. Poď dole. Vezmite si svoje miesta tu. Ako ste prišli, pár administratívnych oznámenia. krájanie, proces výberu sekcie, začne tento Stredy do piatku. Viac o tom tento rok V stredu v prednáške. Super sekcie, zatiaľ, sú niečo, čo ponúkame budúci týždeň pričom celá trieda je pozvaný k účasti v pomerne veľkom meradle oddiely, jeden pohodlný, jeden menej pohodlné. A budeme oznámiť údaje o tom, ako dobre, neskôr tento týždeň. Medzitým profily, samy o sebe, začne v troch kurzu týždňa, nulový index, čo znamená, že sú to pár týždňov von. Tak, aby sa nebála. Ešte ste sa minul niečo v tomto smere. Medzitým sa do tej doby, pokiaľ máte máte nejaké otázky administratívne, email seba a Devon a Gabe a Rob na tejto adrese tu. Konečne, nastavte problém 0 je, samozrejme, von. Možno ste si to všimol na internetových stránkach kurzu je. To by vám mal poskytnúť Všetky odpovede na otázky môžete mať na ceste k Začíname s problémom sady. Ale ak sa ocitnete potrebujú pomocnú ruku, všetkými prostriedkami, zúčastniť sa úradné hodiny, Pondelok, utorok, streda, štvrtok tohto týždňa vo večerných hodinách v štyroch jedálňach. Pozri túto adresu URL tam údajov kde úradné hodiny bude. Teraz sa poďme splniť naše Dvaja hostia tu dnes. Ako sa voláte? JAY PAUL: Jay Paul. David J. Malan: Jay Paul, rád ťa spoznávam. HIKARI: Hikari. David J. Malan: Hikari? HIKARI: Hikari. David J. Malan: Hikari. Teší ma tiež. Jay Paul a Hikari majú predné z nich na tieto hudobné stoja dva skripty, ktoré som vytlačených sa dnes ráno z Nového Mexika Múzeum prírodnej histórie a vedy. A to, čo som si myslel, Ja by som to na strope je sprevádzať svoje recitácii scenáre a táto história u niektorých vizuálnych obrazov, žiadne prekvapenie. A to, čo som urobil v predstihu je prehighlight na skriptu čo by ste mali čítať, a to, čo by ste si mali prečítať. A budeme v podstate len alternatívne odseku. Takže je to podobne ako by ste mohli urobili v anglickej triede. To je naozaj prinútiť publikum veriť v príbehu tu. Pôjdeme? Takže príbeh je tu, máme BASIC, a to začína v Cambridge. JAY PAUL: Bolo to v zime, 1974, v Cambridge, Massachusetts kde zimy môže byť zima. Fúzy, dlhé vlasy vysokoškolský odpadlík menovaný Paul Allen bol vysiľujúce po Harvard Námestia, pohrúžený do svojich myšlienok. Jeho hlavným záujmom v týchto dňoch bolo, ako dostať svojho priateľa, Bill Gates, opustiť školu a ísť do obchodu s ním. HIKARI: dvaja už preč prostredníctvom celého radu podnikateľských aktivít dohromady, začína na brehu jazera škola v Seattli kde boli vyplatené vo voľnom čase počítača sa otestovať počítač PDP-10 v miestnom čase zdieľanie spoločnosť. Najnovšie plán bol, aby prestal škola a tvorí softvérovú firmu. Allen opustil Washington State University. Ale na poslednú chvíľu, Gates sa rozhodol zostať s Harvarde. JAY PAUL: Ten deň, cez Harvard Námestie, Allen zazrel januára, 1975 vydanie populárnej elektroniky so Zemou zastavenie titulku, Ako prvý na svete minipočítače Kit súperiť Komerčné modely. Pod nadpis sa obrázok malej krabičke zdobia svetlami a spínačom. Hovorilo sa MITS Altair 8800. A Allen vedel, že to, čo on hľadal. HIKARI: Days diskusia nasledovala. Allen a Gates pochopil Význam Altair. Hovorili často o mikroprocesoroch a čakali, čo by byť vykonané s nimi. Teraz tam bol minipočítač kit na kryt Popular Electronics. Je to zrejme mal zatiaľ nemá žiadny softvér. Si predstavovali národ programátori zostupne na MITS. A tak nazvali Ed Roberts, šéf spoločnosti, vyhlasovať, že má verziu BASIC programovacieho jazyka takmer pripravený pre Altair. To sa nestalo. A Roberts musel vedieť, že nie. Začínal 10 hovorov denne od ľudia, ktorí mali BASIC takmer pripravený. A jeho odpoveď skladom bol "prvý človek kto sa ukáže s pracovnou BASIC dostane zmluvu. " JAY PAUL: Gates a Allen ešte nikdy nevidel Altair. Nikdy ešte nevidel Intel 8080 mikroprocesor v srdci Altair. Ale o pár rokov skôr Allen písal program na mainframe, ktorý emulovanej prevádzka predchádzajúceho Intel mikroprocesor. A tentoraz oni by urobil to isté. HIKARI: s procesorom Intel 8080 ručný po jeho boku, Allen sa posadil na Harvard PDP-10 počítača a napísal emulátor a softvér nástroje potrebné k tomu programovania. Medzitým Gates prestal chodiť tried a venoval sa k návrhu BASIC, používať každý trik vedel, že sa veľkosť dole 4 KB. JAY PAUL: V Albuquerque, Ed Roberts zavolal Gates so žiadosťou o informácie o tom, ako Altair zaobchádzať špecifické rutiny. Nikto sa nikdy nespýtal skôr. A Roberts začal byť záujem. HIKARI: S rozvojom nástroje a dizajn pripravený, Gates a Allen napísal kód na PDP-10, získavať ďalšie Harvard študenta, Monte Davidoff, písať matematické rutiny. Po záverečnej noci programovanie, Allen dostal do lietadla dodávať ich základné na MITS. Strávil lietadlo prečkať znepokojujúce. A späť do Cambridge Gates bol znepokojujúce. Boli testované ich základné a že pracoval na emulátora. Ale čo v prípade, že emulátor sa mýlil? JAY PAUL: Ako v lietadle priblížil Albuquerque, Allen si uvedomil, že ich BASIC, teraz úhľadne obsiahnutá na malé rolky dierovaný papierovú pásku, by k ničomu bez samostatnej Program, nazvaný nakladač, ktorý by sa povedať, Altair, ako čítať papier pásku privádza do teletype stroja. Vytiahol z vrecka zápisník a rýchlo načmáral nadol zavádzača programu v jazyku zhromaždení, a potom ručne preložil do 1s a 0s Altair bude rozumieť. HIKARI: Allen čakal čistý, malý, high-tech spoločnosť beh muži v oblekoch. Takže on bol prekvapený, keď sa stretol Roberts ho na letisku vyzerá ako ranči hand. Roberts bol tiež prekvapený. Keď sa pustil Harvard programátor pri drahšie hotel, Allen musel priznať, že si nemohol dovoliť miestnosť. JAY Pavel: MITS, sama o sebe, bola Nachádza sa v prašnom pásu obchodaku. Vnútri na preplnená pracovný stôl bol Altair naložený s 5 kilobajtov pamäte a spojené káblom k ďalekopisu stroja. Roberts a hlavný inžinier, Bill Yates, čakal s očakávaním ako Allen prepínať svoje nakladač Program na Altair. Ďalekopisu začal šúpanie, ako to vytiahol papierovú pásku cez páskovú čitateľa. Trvalo to asi 15 minút nahrať program. Potom ďalekopisu náhle vytlačiť pamäť výzva, potom pripravená výzva, a Allen začal písať Príkazy niekoľko test. K všeobecnému úžasu, Pracoval softvér. Tam boli chyby, samozrejme. Ale hlavná vec je, že funguje. HIKARI: Neskôr, na ich ceste k 3,00 dolárov obed v Pancho je, osa letel V okne vyzdvihnutie truck a pálili Allen na paži. Ale v tomto bode nič mohol pokaziť náladu. Altair mal teraz svoje základné, prvý komerčný softvér pre domáce počítač, natočil Paul Allen a Bill Gates, podnikajúca pod názvom Microsoft. David J. Malan: Veľa vďaka našim dvom čitateľom. [APPLAUSE] David J. Malan: Teraz máte možnosť voľby, pred odchodom, na iskrivý alebo žiara v dark-- oh, počkajte jednu sekundu, počkaj iskrivý a v tme slona od CS50 vlastné Cheng Gong. HIKARI: Aw, ďakujem. David J. Malan: All Dobre, ďakujem moc. [APPLAUSE] David J. Malan: Tak pravdivý príbeh. To znamená, že všetky tieto stroje a ľahkosť, s ktorou sme použiť teraz a prijať za samozrejmosť, naozaj začal tu, len pár krokov Z tohto skutočného divadla. A teraz ešte dnes, ak ste neboli, To je Maxwell Dworkin, počítač vedy budova, aj za rohom. A na druhom poschodí tohto Budova nemá visieť tri stránky z pôvodného zdrojového kódu, ktoré Bill Gates a Paul Allen písal. V skutočnosti, ak použitie priblíženia na môžete vidieť nielen ich mená v Pôvodný typ, ale tiež ich podpisy, ktoré zdobili pár rokov späť, kedy poslednej návštevy. Ale čo bolo obzvlášť dôležité o to je to, čo je uvedené na to bolo napísať program, ktorý by umožniť ostatným ľuďom písať vlastné programy. V čase, keď všetko bolo s tento stroj Altair vyrobený MITS. A všetko, čo potreboval, bolo, nejaký spôsob, ako takže je ľahké pre fanatikov a ľudí, Páči sa nám v tejto miestnosti skutočne programu že bez nevyhnutne pochopenie Montáž kód, alebo stroj kód, alebo nedaj bože, 0s a 1s. My programátori, ako tie v tejto miestnosti sme chcú mať možnosť vyjadriť sami oveľa viac ako pseudo kód aj keď je to trochu niť vyberavý, než sme hovorili minulý týždeň. Nechceme písať kód, ako je toto, ktoré Paul Allen a Bill Gates urobil. My namiesto toho chcete napísať kód, ktorý vyzerá trochu viac užívateľsky prívetivé. Teraz to je jazyk známy ako BASIC. A čísla riadkov sú to, čo vás používať jednoducho číslovať riadky kódu že píšete. Nemáme dokonca ani to, že v týchto dňoch. Ale môžete vidieť tu ako PRINT "Hello, World" by totiž pravdepodobne tlačiť len to. A tak to, čo Bill a Paul urobil, bolo, umožniť ľuďom písať kód, ako je toto miesto of-- ak ste sa pozrieť na počítačovej vedy wall-- kód, ako je toto. V skutočnosti, v poslednej dobe CS50 mali príležitosť sadnúť si s profesorom Harry Lewis v informatike oddelení, ktorí vlastne učil Bill Gates pred niekoľkými rokmi, a stojí tu pred tieto tri strany výňatky. Poďme sa pozrieť. HARRY LEWIS: Čo musíte tu výpis ranej kus softvéru napísal Bill Gates a Paul Allen, zakladatelia spoločnosti Microsoft. Takže kód je zaujímavý z dvoch dôvodov. Po prvé, to sa stalo Microsoft je prvý produkt, ktorý bol tlmočníkom BASIC programovacieho jazyka. A za druhé, je to jeden z prvých pokusov vytvoriť tlmočníka tak obyčajné ľudia mohli využívať osobné počítače. Takže Bill Gates bol vysokoškolák na Harvarde. Začala som vyučovať na Harvarde v roku 1974. To bolo vykonané v roku 1975. Tak to bolo čoskoro v jeho kariére a čoskoro vo svojej kariére. Vlastne som učil Billa Samozrejme okolo tohto času. Paul Allen nebol Harvard študent, ale bol na strednej škole spolužiak Bill Gates. Ak sa prísť pozrieť v zozname, budete skutočne nájsť tretina meno, Monte Davidoff, ktorý bol Gatesa spolužiak tu na Harvarde. OK, takže tu je zaujímavý komentár tu. To hovorí, že "Vo 4K môžete odstrániť odmocninu ale pre slučky by mal aj naďalej pracovať. " OK, takže to, čo to znamená, je to, že dva spôsoby, ako skompilovať tento program. Jeden z nich bol bežať na verziu tohto počítača Altair , Ktorá mala len 4K slová pamäť 4096 slov pamäti. Ale veľká verzia mala 8K. A tak, čo to hovorí, že je že vo verzii 4K ste museli odstrániť niektoré kód, aby bolo vhodné. A jedna z vecí, , Ktoré by boli odstránené by odmocnina rutina. Ale zrejme pre slučky by mal aj naďalej pracovať, aj keď ste zostavovanie dole pre len 4K verzie počítača. David J. Malan: Takže jednou z tém, ako uvidíme v informatike, je tento pojem vrstvenie a abstrakcie, a naozaj stojí na ramenách z ľudí, ktorí prišli pred nami, nie na rozdiel od niektorých z Billa Gatesa a Paul Allen rozprávanie tu. A čo to znamená, že dnes môžeme vziať na samozrejmé, že veci sú v skutočnosti pre nás ľahšie písať kód. Naozaj kód, ako sme si povedali v piatok, je viac technicky známy ako zdrojový kód. A to je to anglicky ako syntaxe to je viac, riadne a viac dobre definované než niečo ako pseudo kód, pre ktorý neexistuje žiadna formálna definícia. A dnes, čo budeme sústrediť sa na, je zdrojový kód že vyzerá, čo síce na prvý pohľad vyzerá úplne mystické. A úprimne povedané, je to spôsob, ako esteticky zložitejšie ako základný program. To všetko program robí, Pripomeňme, je to, čo sme si povedali? Je to jednoducho vytlačí "hello world". A napriek tomu sa na všetky veci, ktoré potrebujeme zabaliť okolo toho veľmi jednoduché frázy. Ale netrvalo dlho a všetci tieto riadky a viac bude oveľa lepší zmysel. A prietok je nasledujúci. Čo potrebujeme, máme k dispozícii je, aby sa kód, ako zdroj kód, ktorý sme práve videli. A my potrebujeme nový program spustíme ju prejsť. Potrebujeme algoritmy, ktoré môžu previesť zdrojový kód, ako je tento, do objektového kódu, 0s a 1s. Inými slovami, to, čo budeme sa učiť ešte dnes je, ako to urobiť, napísať Zdrojový kód do hornej časti, odovzdať ho ako vstup na zvláštne Program známy ako kompilátor, a budeme produkovať objektový kód. Čo je len ozdobný spôsob, ako že by sme sa vziať niečo že vyzerá takto, odovzdať ju do programu s názvom kompilátor, produkovať objektový kód že vyzerá takto. Tak to sú doslova vzory 0s a 1s , Ktoré sú chápané Počítač Intel v týchto dňoch, že ak je vykladaný CPU, mozgy vnútri počítača, doslova vytlačiť, celkom jednoducho, "hello world". Teraz je tu spôsob, ako viac 0s a 1s, než vás dúfa, že by mohli byť potrebné pre to. Ale to je preto, že staviame o dobré riešenie zložitosti že môžeme naďalej brať ako samozrejmosť. Inými slovami, veľa chytrých ľudí dali nám veľa skvelých nástrojov a výkonný softvér, s ktorými Teraz môžete vykonať projekty sami. Takže začnime. Kým minulý piatok, a k problému Set 0 tento týždeň budete hrať v svet, ktorý vyzerá takto. Od dnešného dňa a problém Nastavte 1 budúci týždeň, kód bude trochu vyzerať mystický, ale funkčne je bude rovnaká. Tak oznámenia, vrchol je Scratch, dno je C. Úprimne Scratch je oveľa viac užívateľsky priateľská a prístupná. Ale ak ste sa porovnať vizuálne zhora dole, tam je celkom prostá korešpondencia medzi skladačky a jazyk sa chystáme hrať. Najmä, povedzme, modrý kúsok skladačky do top, je zrejme zodpovedá tomu, čo kľúčového slova alebo špeciálne frázy v tomto jazyku volal C? DIVÁKOV: printf. David J. Malan: printf. To znamená, že formátovaný tlač. A to je len fantázia spôsob, ako hovoriť printf v C bude príkaz alebo funkciu ktorá tlačí niečo na obrazovku. Čo to vytlačiť na obrazovku? Čokoľvek poviete, že sa vo vnútri úvodzoviek, vnútri zátvoriek. Takže znova, pravda, je tu veľa vecí, , Že musíte mať na pamäti, zátvorky, úvodzovky, bodkočiarka, a to všetko. Ale to všetko je trochu z vedľajšej. Zaujímavý stánok s jedlom teraz je to, že povedzme blok Scratch je do značnej miery ekvivalentné vyhlásenie printf v C. Medzitým, žltá skladačky do hornej časti, kedy zelená vlajka kliknutí je zrejme ekvivalentná k tomu, čo tu kľúčových slov? DIVÁKOV: Main. David J. Malan: Tak hlavné. Možno, že pravý, možno neplatné. Ale hlavné druhy zvukov, ako je je to dôležité, a naozaj je to tak. Takže keď sa zelenou vlajkou kliknutie je opäť kúsok skladačky že začína Celý Scratch programu. Ale budeme sa začať volať že hlavné, táto funkcia známe ako hlavné. Teraz zatiaľ stretneme zovšeobecniť to nasledujúcim spôsobom. By sme mohli nazvať povedať funkciu. A to môže vyzerať konkrétne takto. No, a čo slučiek? Ak chceme začať konverziu alebo preklady viac Scratch na C, toto tu zrejme len hovorí, že "hello world" navždy. Takže ak spojíte tieto skripty s mačkou v Scratch, je to len ide, aby povedal v nejakom kreslenom bubliny, "Hello world, hello world, ahoj svet, "najmenších podrobností, navždy. Ak chceme urobiť niečo podobné v C, bude to vyzerať trochu záhadné. Ale môžeme dosiahnuť rovnaké výsledky, ako sme si nakoniec zistiť, syntax, ako je tento. Budem používať printf znovu, preto, že na konci dňa Chcem vytlačiť "Hello World". A ja som zrejme pomocou kľúčové slovo, ktoré nie je navždy. Je to miesto, kým slovo. Ale len sémanticky v Anglicky, zatiaľ čo druh navrhne nejaké slučke alebo cyklu. Tak, že sa stane, že kľúčové slovo, ktoré C používa. A aj keď pravda, prečo chvíľu pravda efektívne znamená navždy? No, keď, ako sme skoro vážiť viac, má túto v zátvorkách vedľa nej kde si môžete dať logický výraz. A tak dlho, ako je to výraz je pravdivý, tento kód, ako je označené medzi týmito dvoma zložené zátvorky, tak ako je to volanie, bude len držať znova a znova spustiť. Takže pravda je pravda. Takže je síce pravda prostriedky Len to navždy. Je to skoro hlúpe postaviť sa vyjadriť sám seba. Ale nebolo navždy kľúčové slovo v C. Bolo to. A tam bol veľmi jednoduchý Boolean výraz ako pravdivý. A tak to, uvidíme, dosahuje rovnaký výsledok. Ako inak by mohol implementovať slučku? No, Scratch by ste mohli pevný kód určitý počet iterácií v slučke tu. A tak to je presne to, čo sme mohli robiť v tejto verzii C, čím máme tzv pre slučku. A slučka sa tu deje iterovat trochu záhadne, z hodnoty 0 na up na, ale menej ako 10. Teraz premenné nuly. Možno nemal príležitosť na využitie týchto. Ale aký to má zmysel, všeobecne, premenné sme si povedali v minulom týždni? Čo je to? Divákov: Body. David J. Malan: na miesto? Oh, body. OK, sledovanie bodov, Napríklad, v hre. Alebo všeobecnejšie robí čo s premennou? Čo je to nástroj z nich? DIVÁKOV: Memory. David J. Malan: Jo, tak pamäť. Je to niečo, čo pre ukladanie. A tak nejako hlúpe vizuálne i použité Naposledy to bolo podobné sklenenej misy. A ak by sme chceli uložiť niečo vnútri premenné, Napríklad práve teraz hodnota je šesť, pretože tam šesť ping pong loptičky tu. Je to len nejaký druh skladovanie kontajner, ktorý pod kapotou je realizované s bitmi, 0s a 1s, ale počítač sa stane to urobiť. Takže v Scratch, keď sme Chcete mať premennú, môžeme použiť oranžový blok, ako je tento. Budeme volať, že počítadlo v tomto konkrétnom prípade. Inicializovaný som to 0. A to, čo som potom robiť? Navždy, hovorí čítač, ktorý v prípade, budete hrať s tým v Scratch, budete len vidieť Scratch. Mačka alebo čo kostým si na ním bude hovoriť číslo sa jedná. Zmena čítač 1 je ako je zvyšovanie o 1. A tak to bude počítať od tak čo, čo? Od 0 til nekonečna, alebo do Scratch prestávky, alebo kým sa trochu stratí záujem o sledovanie ako vysoko sa môže skutočne spoľahnúť. Tak ako môžeme previesť to C? Bude to vyzerať trochu záhadné. Ale na druhú stranu, keď sa pozriete na seba týchto riadkov jednotlivo že druh lineup všeobecne. Takže zrejme int bude mať nejaký zvláštny význam v C. Uvidíme znova. Mimochodom to znamená, že celé číslo. Tak to jednoducho znamená, že číslo. Tak to je druh sklenenej misy Chcem, jeden ktoré možno uložiť čísla, nie ping pong loptičky. A budem používať znamienko rovnosti tam priradiť jej hodnotu 0. Tak to je celkom ako sadu proti 0, ale v C. Medzitým, pričom platí, že je ekvivalent, samozrejme navždy, aj keď je to trochu záhadný, a potom vnútri zložených zátvoriek. A vy môžete myslieť na týchto zložených zátvorkách, ktoré si môžete písať na klávesnici, ako skutočne sú, ako je zakrivenie Tieto žlté slučky bloky nuly. To zahŕňa niekoľko riadkov kódu. Printf je stále Trochu teraz desivé, pretože som viď citácie nielen v zátvorkách. Ale čo iného je nové syntakticky v tomto prípade? Tam je percento d. A potom spätné lomítko n je tam. Sme vidieť, že pred aj aj keď som o tom nezmienil. Potom je tu čiarka. A potom je tu pult. Ale uvidíme v niekoľkých okamih, že toto je len štandardný spôsob, ako hovoriť vytlačiť "Desatinné číslo," citácie, koniec citátu, nejaké desatinné číslo. Ale ja som ti to povedať neskôr čo to desatinné číslo je. Takže na to, že tam je čiarka V tomto riadku hovorí, printf, znamená, že do toho pustite a tlač nejaké desatinné číslo. Jo, a mimochodom, je číslo Či už je hodnota tejto premennej. A tak, aby sa to viac jasné, uvidíme príklad onedlho zahŕňajúce presne printf v rámci reálneho C programov. Teraz už len stačí zabaliť niektoré z týchto konštruktov. Booleovské výrazy, nemusí mať príležitosť na využitie týchto vo vašom programe ale môžete veľmi dobre, najmä ak používate podmienok. A tak sa tieto dva príklady z Stieracie na mysli, ak x je menšie ako y, alebo ak x je menšie ako y a y je menej ako z, ako môžeme preložiť? No, v C je to len bude vyzerať takto. A trochu mystické, viac zátvorky, nejaké divné ampersand, ale v podstate myšlienky sú tak jednoduché, ako sú v puzzle kus sveta. Sme jednoducho kontrolovať, či niečo je menšia než niečo iné. Ako sa k podmienkam? Stručne povedané v angličtine, čo to kus Scratch kódu urobiť, hovoríte? Divákov: Porovná dve čísla. David J. Malan: Porovná dva čísla, a ak x je menšie ako y sa hovorí, že toľko. Ak x je väčšie ako y hovorí toľko, inak ak x je rovné y sa hovorí, že rovnako. Tak kde to x a y pochádzajú? Kto vie. Tento kus Scratch kód je vytrhnuté z kontextu. Ale to, čo chceme urobiť, je preložiť to len na chvíľu vidieť. Tak, ako sa dostanete pohodlne tento týždeň v Zadanie problému 0 hrať v tomto svete na ľavej strane, si uvedomujú, že myšlienky sa nemení tento týždeň, alebo budúci, alebo mimo nej. Sme jednoducho bude začnite písať veci iným spôsobom s naším Klávesnice namiesto nášho myši. Takže, ak x je menšie ako y, a Je tam nejaké zátvorky, potom je tu nejaké zložené zátvorky Ďalším druhom zapouzdřit rovnako ako žlté skladačky robiť. A budem printf x je menšie ako y, a tak ďalej. Čo je pekné o C, ako môžete vidieť tu, je to, že nemusíte dostať túto hniezdenia, hniezdenia, hniezdenia je to nevyhnutne bude tlačiť svoj kód vpravo. Namiesto toho môžete mať všetko lineup úhľadne takhle. Ale to je len estetický detail uvidíme zase onedlho. V poriadku. Tak, že nás privádza späť k tento mystický hľadá programu. Poďme vlastne napísať nejaký kód. Teraz, ako sa vám ísť o písaní kódu? Všetky tie roky, ktoré ste vo vlastníctve Mac alebo PC, desktop alebo notebook, ste vlastne mal možnosť začať písať programový kód. Ale vy ste pravdepodobne chýba špeciálny typ programu. Určite môžete písať kód. Ale nemôžeš nutne, po vybalení z krabice, previesť, že zdrojový kód na strojovom kóde, 0s a 1s bez toho čo na vašom počítači? DIVÁKOV: Compiler. David J. Malan: Takže kompilátor, že jo. Teraz väčšina z vás asi nemajú vlastný kompilátor, Nikdy stiahli kompilátor. Ale uvidíte, môžete si ho stiahnuť rovnako ako väčšina iného kusu softvéru. Vo svete Mac OS, môžete stiahnuť alebo si stiahli už niečo, čo nazýva Xcode alebo GCC alebo Clang. Ak prídete od Svet Windows by sa vám mohlo stiahli Visual Studio, Visual Basic, prostredie, ako je to. Je tu desiatky prekladačov v týchto dňoch, ktoré môžete použiť. Ale tu krátke na to, je to, že by bolesť a, úprimne povedané, technologický nočná mora pre stovky ľudí s rôznymi počítačovej konfigurácie pre všetky konfigurovať svoje stroje rovnakým spôsobom, takže môžeme byť všetci na rovnakej stránke. Takže to, čo my, namiesto toho, robiť v CS50 je dáme vám štandardné prostredie, Linux prostredie, ktoré je bude vyzerať trochu niečo také. Uvidíte viac než to v Problém Set 1 špecifikácie, ktoré pôjde tento piatok v noci on-line. A čo to znamená je to, že odteraz sa bude môcť stiahnuť a nainštalovať program volal CS50 Appliance. A ak budete stiahnuť a nainštalovať ďalší program s názvom hypervisor, ktorý je len ozdobný spôsob, ako to dosiahnuť. Či už vlastníte Mac alebo PC alebo Linux alebo počítač Solaris, alebo čokoľvek blázon prevádzkové systém, ktorý používate, budete stiahnuť program nazýva hypervisor, ktorý je chystá spustiť CS50 Prístroj na vašom počítači bez ohľadu na to, čo je váš operačný systém. Hypervisor inými slovami prevádza naše veci na akomkoľvek jazyku, bez ohľadu na pokyny svojho vlastný počítač rozumie. Tak to je vrstvenie. A opäť, je to druh tematických v počítači veda, budova nad vecou. Môžete mať Windows. Môžete mať Mac OS. Ale od budúceho týždňa budete bude stiahli voľný kus softvéru nazýva hypervisor. Budeš si stiahli kus softvér s názvom CS50 Appliance. Bude to beh na hypervisora, ktorý sa chystá spustiť na vašom počítači. A konečný výsledok je že každý z nás bude majú jednoduché okno, ako je to na vašom počítači Mac alebo PC ktoré nám dáva ilúziu všetky rovnaký operačný systém, bez akejkoľvek inej vplyv na vašom počítači. A môžete na celej obrazovke to a v podstate sa správajú ako keby sa systémom operačný systém s názvom Linux, , Ktorý je, čo CS50 Zariadenie je založené na. Takže poďme sa vlastne použiť teraz napísať program. Môžete napísať program pomocou aplikácie Microsoft Word. Môžete napísať program pomocou TextEdit alebo Poznámkový blok, alebo WordPad, alebo skoro žiadne slovo spracovanie programu ste niekedy používali. Ale skutočnosť je taká, nemali by ste používať naozaj niektorý z týchto programov. Určite nemali používať niečo ako Microsoft Word, ktorý má smelé obklad kurzívou, a väčšie fonty a menších písiem, pretože počítač nie je starostlivosť o nič z toho. Všetko je počítač bude sa starať o ich Angličtina ako inštrukcií napísaných v jazyku C. Takže, čo budeme robiť vo vnútri o CS50 spotrebiče je použiť program voľne k dispozícii, a to je predinštalovaná v tomto zariadenie, volal gedit. A gedit je proste super jednoduché textový editor, ako je Mac OS je TextEdit ako je Windows Poznámkový blok, čo sa deje na pozrite sa na niečo také. Takže to vlastne nie je pozrite sa na fotografie z tejto. Ale poďme skutočne ísť do samotné prostredie. Chystám sa ísť dopredu a prihlásiť, v tom druhom okne k môjmu CS50 Appliance, ktorý som pre-nainštalovaný na mojom notebooku tu. Všimnite si, že rovnako ako v systéme Windows a Mac OS, je to má nejaké ponuky. Rovnako ako Windows kladie je tam miesto Mac OS, čo ju radí tam. Ale realita je taká, že je to všetky druhy rovnaké. A tu je celý banda softvér. K dispozícii je Dropbox. Je tu celá partia príslušenstvo, grafické programy, ktoré budeme použiť neskôr v termíne pre problémové sady. K dispozícii je webový prehliadač postavený v tak že sa jedná o plnohodnotného počítača vnútri počítača. Ale budem Kliknutím na toto tlačidlo vľavo biela ikona tu čo je ikona Gedit. A bude to otvoriť okno , Že má tri panely k nemu, ľavá, horná jeden, a dole jeden. Teraz je to v tomto pravom hornom ten, ktorý Chystám sa vlastne napísať nejaký kód. Tak poďme na to,. Chystám sa ísť na Súbor, Uložiť. A možno nikdy vidieť tento konkrétny okno predtým. Ale je to ako Mac OS alebo Windows. Je to len okno sa všetky zložky že mám vnútri počítača. A ja budem šetriť súbor ako hello.c. A ja idem dopredu a kliknite na tlačidlo Uložiť. A teraz všimnúť mám kartu v ľavom hornom rohu s názvom hello.c. Takže asi dosť pozná, aj keď som sa ako použiť tento konkrétny program. A teraz budem písať v tých docela mystický postupnosť príkazov ktoré sme videli pred chvíľou. Patria štandardné I / O.h. Viac informácií o tom čoskoro. Int main void, otvorený kučeravé rovnátka, uzavretá zložená zátvorka. A potom vnútri som tam, že je kde sme mali "Hello World", bodkočiarka. A teraz uložiť. Takže toto je napísaný v jazyku C program, napísané, teda v zdrojovom kóde. Ale nemôžem len spustiť tento program. Som tak trochu chcel zdvojnásobiť kliknite na ikonu niekde, ale žiadny symbol neexistuje iný ako súbor zdrojového kódu. Čo zase, je proces, ktorý sa Musím spustiť tento súbor v? DIVÁKOV: Compiler. David J. Malan: Takže kompilátor. Takže v rôznych počítačoch, urobiť rôznymi spôsobmi. Ale to, čo sme urobili tu v CS50 Appliance, ktoré je zástupcu o tom, ako by ste mohli to na mnohých rôznych systémoch to, je, že som jednoducho ísť do spustiť príkaz s názvom make. A Skontrolujte, či je doslova robiť, že. Urob mi program. Tak, aby sa chystá spustiť kompilátor pre mňa. A názov programu Chcem, aby ich pozdravil. Teraz, aby ich program. A aby je dosť šikovný Uvedomujem si, že keď poviem, aby ahoj, to bude vyzerať automaticky k súboru s názvom hello.c len preto, že je to spôsob, ako je nastavené. Takže keď teraz stlačíte klávesu Enter tu, to blázon mystický linka zrovna popravený. A ver mi, ako dlho, do niekoľkých dní, budete rozumieť tomu, čo všetko z toho nezmyslu prostriedkov. Ale teraz, len viem, že robiť spúšťané vykonávanie prekladača. Inými slovami, je zistené, prekladač na mojom počítači to je pre-nainštalované na CS50 Appliance že budeme ruky, aby vám v probléme 1. sete. A potom vzal hello.c ako vstup, a produkoval zrejme 0s a 1s ako výstup. A štandardne to, čo robí, je, že šetrí tie 0s a 1s do súboru s názvom Dobrý deň. A aj keď túto syntax tiež mohlo byť pre vás nové, jednoducho tým, bodka lomítko ahoj bude Spôsob, akým som spustiť tento program. Pre túto chvíľu, a aspoň na pár týždňov, takmer všetky programy píšeme sa bude v čiernej a bielej textové okná. Žiadna myš žiadny klikanie žiadna okná, žiadne ikony. Chystáme sa, aby to jednoduché a zamerať sa na základné myšlienky spočiatku, než sa dostaneme k niečomu vyššej úrovni, napríklad, ako vypuknúť hru, ktorú sme si rozprávali o v prvej prednáške minulý týždeň. Takže keď som stlačte klávesu Enter tu, je to ekvivalent v texte len prostredí zdvojnásobiť kliknutím na ikonu s názvom Dobrý deň. Čo si myslíte, že vôľa stane, keď stlačíte Enter a potom? Divákov: Bude to vypíše "Hello World". David J. Malan: Dúfajme, že to bude tlačiť "Hello World". A skutočne to urobil. Teraz tam bol nejaký mystický syntaxe tu. Poďme vzad len za moment, a uvidíme, či nemožno spustiť odvodzovať len tým, že hrať sa, snaží a ak nie je, o tom, čo sa tu deje. Čo keď som sa zbaviť spätného lomítka n? Teraz niektorí z vás, ktorí si naprogramovať pred asi okamžite vedieť, čo to znamená. Ale pre tých z vás, ktorí si Nikdy naprogramované, aspoň, že pre seba, čo sa deje zmeniť, keď som znova spustiť tento program? Takže som ísť späť do môjho malé čierne a biele okno, ktoré je okno, v ktorom Môžem zostaviť to. Idem prekompilovať ahoj. Chystáme sa vidieť rovnaký kryptické sekvencie príkazov. A ja budem robiť bodka lomítko ahoj. A teraz niekto, ak by, kto nikdy naprogramované, čo by mohlo byť tentoraz inak? Jo. Divákov: Nebude to zastaviť tlač "hello world". David J. Malan: Ide to na-- ľúto? Divákov: Nezastaví ho tlačiť? David J. Malan: nebude zastaviť tlač "hello world". Takže nie je zlý nápad. Ďalšie nápady? Jo. DIVÁKOV: Chybové hlásenie? David J. Malan: Chyba správy, OK, môže byť. Čo ešte? Divákov: To by mohlo vytlačiť držiak s bodkočiarkou, rovnako? David J. Malan: môže tlačiť držiak s bodkočiarkou rovnako. Takže možno, že spätné lomítko a potom je nejaká druh terminous to je dôležité. Akékoľvek iné myšlienky? Takže všetko dobré nápady. A v skutočnosti, to sa deje ako chybové hlásenie. To je asi najpravdepodobnejšia byť odpoveď všeobecne v najbližších niekoľkých týždňoch ako sa učíme kód tu. Ale teraz si uvedomiť, že počítače len to, čo poviete im to. Rovnako ako absurdné arašidy maslo a želé príklad. Naše ľudské počítače mali len robiť to, čo ste povedal, je k tomu. Takže v tomto prípade, ak nehovorte počítač pohybovať, aby blikajúci kurzor ďalší riadok, že to nebude robiť. Takže keď som spustiť tento program Teraz si všimnite rozdielu. Vyzerá to ako chyba. Je to estetický problém, snáď. Ale čo je iné na to Výstup proti posledná zrejme? Jo. Divákov: To neurobil nový riadok. David J. Malan: to neurobil nový riadok. Teraz tých z vás, ktorí majú možno uskutočnenej webové stránky predtým, možno viete o BR tag alebo tag odseku, veľmi podobné v duchu. Webový prehliadač bude ignorovať, kým to povedať, čo presne robiť. Podobne, je jazyk C len robiť to, čo ste to povedať, aby to. Tak z toho dôvodu, že Všetky tieto príklady, tak ďaleko, majú trochu mimochodom mal tento spätné lomítko tam, že je to prostriedok ktorú si vyjadriť sám seba ako znak nového riadku, aby som tak povedal. A môžete trochu oceniť, možno, že by to vyzerať trochu hlúpo keď už nič iné. Ak by som chcel nový riadok, len klávesy Enter a potom druh z porážať kód takého by naozaj trieť vám správnu cestu. A aj keď nie naozaj záleží na tomto mieste, budete si uvedomiť, že to nie je zvlášť dobre vyzerajúci kus kódu. A tak to, čo svet Pred rokmi sa rozhodli ich že ak chcete, aby kurzor na nový riadok výslovne, musíte explicitne povedať, nový riadok, spätné lomítko n. A je tu nejaký iný symboly, ako je to. Ale teraz už si len zamerať sa na spätné lomítko n. Teraz poďme, aby program trochu zaujímavejšie. Chystám sa ísť dopredu a Tentoraz otvoriť nový súbor. Idem uložiť ako ahoj-1.C. A len tak pre srandu, budem ísť dať do mojej zložky Dropbox. Ako uvidíte v CS50 dokumentáciu zariadenia, neskôr tento týždeň problém Nastavte 1, budeme podporovať použiť Dropbox alebo nejaký ekvivalent servis, pretože potom všetky vaše kód je bude automaticky zálohovať. A tak to je dôvod, prečo som išiel do tejto zložky tu. A teraz budem písať trochu iný program. Patria štandardné I / O.h, int main neplatné. A potom tu printf, Hello World, čo je presne rovnaký ako predtým. Ale teraz chcem niečo vytlačiť to je trochu inak. Chcem vytlačiť, povedal: "Dobrý deň, David." Tak jo, samozrejme, to by snáď sa stať, že keď som prekompilovať tento program, spustite ho, to bude hovoriť "Ahoj, David." Ale čo keď chcem predstaviť tento druh premenné, pojem kontajnera, ktorý sa deje pre uloženie D - v-i-d a nie je ťažké kód je do svojho programu. No, čo keby som začal niečo také? Reťazec s, takže to je variabilný. Ak chcete reťazec, tiež známy ako slovo alebo frázu. Postupnosť znakov je to, čo sme v programovaní zavolať reťazec. Sme len tak všeobecne volanie Je to, pretože je to pekný jednoduchý názov. Ale ja som to mohol hovoriť čokoľvek. Chystám sa povedať reťazec s rovná quote koniec citátu: "David," bodkočiarka. A teraz chcem vložiť D - v-i-d na to, čo som tlač. A ako sme videli ukážku na obrazovka niektoré špeciálne syntaxe ktorá nám umožnila náhradou v hodnote. Čo bolo zvláštne symbol pred pár diapozitívy? Tak percent. V tej dobe to bolo percento d na desatinné číslo. To nie je naozaj zdá, v tomto prípade relevantná. Ukázalo sa, že je tu ďalšie symbol percent, ktorý je s percent, čo je skratka pre zástupný reťazec. Takže teraz, veľmi jednoducho, že som ísť robiť ahoj-1, pretože tento súbor sa volá Dobrý deň, 1.c, a stlačte Enter. A ja som to pokašlal. Čo sa deje? No, tu je miesto, kde sa musíme začať uvedomiť, že sme v tomto príkaze line prostredie, tento Iba text životného prostredia. Niet kliknutí na ikony ako zložky práve teraz. A myslím, že späť pred chvíľou. V akej zložke som povedal Bol som záchranu môjho kódu? Takže zložky Dropbox. Mohol by boli povolaní nič. Ale to sa stane byť nazývaný Dropbox. Tak som sa nejako musieť dvakrát kliknite na že zložka Dropbox s cieľom získať do neho a dostať sa na mojej Kód volal ahoj-1.c. V skutočnosti, nechajte ma ísť dopredu a minimalizovať toto okno len na chvíľu. Rovnako ako Windows a Mac OS, sú zložky v Linuxe. K dispozícii sú zložky v CS50 Appliance. Je to práve teraz sa obmedzovať aby sme sa tohto textového prostredia. Ale keď som sa dvakrát kliknite na Dropbox, všimnite si, že je súbor, ktorý chcem skompilovať. Ale musím to čierna a biela okno terminálu, aby som tak povedal. Ale ja potrebujem, preto sa pohybovať do tejto zložky alebo adresára. Tak trochu tajomný, ale zvyknete si na to taky. Vo svete Linuxu, čo je opäť prevádzkové Systém nám dochádza vnútri CS50 Spotrebič, je tu príkaz s názvom CD. Čo znamená, že môžete urobiť CD, priestor, Dropbox. CD, zmena adresára. Presne tak. Späť v deň, kedy boli ľudia vynájsť počítače a prevádzku systémy, ako je toto, oni chceli typ Najmenej úhozy možné. Takže najjednoduchší spôsob, ako povedať, Zmeňte adresár bol CD. Takže keď som narazila CD, priestor Dropbox, Všimnite si, čo sa tu zmenilo. Vnútri zátvoriek Prístroj je druh o ma humoring a pripomína mi, kde som. Takže otvorená zložka Dropbox. Keby som teraz typ LS list, opäť stručné, pretože ľudia nechceli zadajte Späť v deň l-i-s-t. Takže sa namiesto toho robil to LS. Enter. Všimnite si, vidím dve veci, ahoj-1.C, a potom to mystická vec, zdroj 1m. To je len môj spôsob, ako povedať Zdrojový kód pre týždeň 1 v pondelok. Je to zložka, Stiahol som si z Webové stránky CS50, že som sa dnes ráno a stačí dať do zariadení vopred. Ale teraz to jediné, čo máme starostlivosť o robí tento program. Takže keď som typ, aby ahoj-1, Enter. Sakra. Niečo sa pokazilo. Takže poďme podpichovať to od seba. A bohužiaľ to je miesto, kde sa veci trochu stresujúce na prvý, aspoň pokiaľ ste Nikdy predtým naprogramovaný. Môj bože. Napísal som dva riadky programu a Mám štyri riadky chýb. Takže to, čo sa tu deje. V prvom rade vždy posúvať späť a nájsť prvé chybové hlásenie, pretože často prekladača len sa zmiasť tým, čo vy a ja. Prekladača sú dosť hlúpi. Budú robiť, čo len povedz im to. A ak si pomýliť, sú to len bude trochu hádzať svoje ruky a možno aj hodiť viac chybové správy než sú skutočne relevantné. Tak sa poďme pozrieť na prvú. Super mystický na prvom mieste. Ale oznámenia, tu je názov súbor, v ktorom som sa posral zrejme. Colon 5, dvojbodka 5 znamená len na linka 5 v piatom znaku. Takže piaty stĺpec znakov, ak chcete, chyba. Použitie nelegálnej identifikátora reťazca. Mali ste na mysli štandardné n? Nie, myslel som reťazec. A potom je to trochu kopírovanie a vkladanie to, čo som napísal naozaj kresliť môj pozornosť tam, kde som to posral. Takže z nejakého dôvodu C, alebo aspoň prekladač nerozumie slovo reťazec. A to preto, že sme si to. Takže reťazec neexistuje v C. Čo CS50 robí, Počas prvých niekoľkých týždňov iba triedy, Je nám poskytnúť nejaké školenie kolesá, aby som tak povedal. A dáme týchto koliesok vnútri špeciálneho súboru s názvom CS50.h. Takže toto je druhá z dvoch súboru názvy, ktoré zrejme skončí dot h. Poďme vzad. Printf je vyhlásenie alebo funkcia že zrejme tlačí niečo na obrazovku. Ale vy ste ma vidieť realizovať printf, vpravo. Niekto rokmi realizovaný printf. V akom súbore sa staviť on alebo si dať vykonávania pre printf, kód pre printf? V súbore s názvom Standard I / O.h. V skutočnosti, je to pravdepodobne v dva súbory, štandardné I / O.h, čo je skratka pre hlavičky súborov a štandardné I / O.c, čo je skratka pre C zdrojového kódu. Takže on alebo ona pred niekoľkými rokmi zvalil kód, ktorý oni písali do tohto súboru takže ľudia ako my rokov neskôr mohol zahrnúť, aby som tak povedal, v našich vlastných programov. A vskutku, to je to, čo libry nasledované slovom patrí robí. Vyzerá to na miestnom pevnom disku, nájde súbor s názvom Standard I / O.h, a potom účinne kópie a vloží ju do svojho vlastného súboru. Takže môj program vie ako tlačiť na obrazovku. Takže podľa tejto logiky, kde je reťazec definovaný? Divákov: CS50.h. David J. Malan: CS50.h. A vskutku, to je to, čo sme, jadro personál, urobil. Vymysleli sme niekoľko dátových typov, aby som tak povedal, ako reťazec, okrem tých, ktoré dostanete zadarmo, ako int. A uvidíme, iní ako char na charakter a pár ďalších. Vnútri CS50.h zrejme je aspoň nejaká zmienka reťazca. Takže teraz mi dovoľte pokračovať a znova spustite make ahoj-1. Budem priblížiť znova a cez prsty. Teraz by mať z jedného zmeniť Opravil som väčšinu vecí. Ale sakra. Viac percent, než dátové argumenty. Čo som urobil zle tentoraz? Takže je to stále dosť záhadné. Ale táto chyba je na riadok 7 a 21 znakov. Takže poďme sa pozrieť sem. Je to trochu jemnejšie. Ale ak si myslíte, že o tom, čo základné myšlienky sú tu, možno by sme mohli dráždiť to od seba. Takže printf je názov funkcie. Zátvorky, tak ďaleko, je rovnako ako to, čo sme dali okolo veci sme okolo ako vstupy do funkcie. V poriadku, len svojvoľné ľudskej konvencie. Použiť zátvorky. Vnútri týchto zátvorkách sme boli uvedení v úvodzovkách, a potom sa ako reťazec "Hello World". Ale v tom predchádzajúcom príklade veľmi krátko robil sa pozrieme na Scratch. A my sme mali percent d, čo ešte bol vo vnútri týchto zátvorkách že som zavolal ústne? Jo. Divákov: Tak to je to, čo ste s [Nepočuteľné] v rámci [nepočuteľné] čo to [nepočuteľné]? David J. Malan: Presne tak. Takže sme mali percent d. Ale potom sme mali blízko citácie, čiarka, čítač. Presne tak. Špecifikované sme, čo chceme robiť ako zástupný symbol. Takže to, čo budem robiť tu je čiarka, čo chceš, aby som dal? Divákov: S. David J. Malan: S, preto, že je v tomto prípade je názov zo zásobnej nádoby. To je názov tejto sklenenej misy. Zatiaľ čo predtým to bolo kontraproduktívne v tom, že Jednoduchý príklad Scratch sme sa pozreli na. Takže teraz, ktorý urobil dva zmeny, dovoľte mi, aby som priblížiť a skúste ešte raz skompilovať tento program. Teraz vidím, že tajomnú riadok. Ale to je vlastne meno prekladača. Clang je názov prekladača. Skontrolujte, či je mi to šetrí bolesť hlavy niekedy písať, že dlho šialený príkaz von. Takže teraz, keď sa mi bodka lomítko ahoj-1, Mal by som vidieť "Dobrý deň, David." Celkom nezaujatý, že jo? Mohli sme urobiť to oveľa jednoduchšie bez hovorí o premenných a CS50.h a všetko. Tak poďme, aby to trochu zaujímavejšie. Okrem CS50.h, s vecou, ​​ako je reťazec vyhlásil, knižnica CS50 má tiež niekoľko funkcií. Tak ako pred rokmi, niekto napísal printf a vložte ho do štandardnej I / O.h a nejaký iný súbor. My, zamestnanci CS50, napísal funkciu volal getchar, GetDouble, GetFloat, Vezmi_int, GetLongLong, GetString, a dáme ti vnútri súboru volal CS50.h a CS50.c. A dáme je vnútri o CS50 Appliance. A ľudia môžu tiež stiahnuť on-line, ak chcem dať ich na ich vlastných počítačoch rovnako. Čo znamená, že sme vytvorili funkcie, ktoré sa dostanú vstup od užívateľa. Neviem, čo to všetko týchto údajov typy. Vezmi_int je celkom jednoduché, ako získať celé číslo nejako od užívateľa. A GetString je pravdepodobne ako get slovo alebo veta od užívateľa. Tak sa poďme zamerať na to. A ja idem späť do zariadení a budem pokračovať a tento súbor uložiť ako, povedzme je ahoj-2c ako moja druhá verzia. A poďme urobiť niekoľko zmien. Tentoraz namiesto tvrdé kódovanie David, ktorý je neuveriteľne konzistentný ale nezaujatý program Čo keby som namiesto toho robiť getString? Teraz všimnete getString má otvorenú zátvorku, uzavretá zátvorka, pretože nepotrebuje žiadny vstup. Je to len pôjde dostať reťazec od užívateľa. A teraz pár slov o druhej syntax. Bodkočiarkami iba ukončiť riadok kódu. Nemusíte ich všade. Ale to len znamená, že som vykonáva sa tento riadok kódu. Dovoľte mi, aby som presunúť na iný vyhlásenie alebo funkcie. String deklaruje premennú. String je ako tvrdiť, že daj mi misku, prosím. A dovoľte mi, aby som dal reťazec v ňom. A teraz znamienko rovnosti. Čo je to znamienko rovnosti v podstate rovnocenné? DIVÁKOV: Priradiť. David J. Malan: Jo, priradenie hodnoty. Takže keď som napríklad volanie Táto funkcia GetString, a uvidíme, v okamihu, keď je bude vyzve užívateľa na zadanie reťazca. To je ako nechať ma potom napísať D-a-v-i-d na kus papiera. A keď hovorím, že reťazec s rovná getString, rovná nie je naozaj rovná programovanie C. To znamená, že priradenie z pravej strany strane na ľavej strane. Tak som sa dostal reťazec. A znamienko rovnosti znamená dať pri skladovaní kontajnera s názvom s. A odovzdať túto funkciu vypnúť, aby printf skutočne robiť svoju vec. Takže konečný výsledok potom bude vyzerať trochu inak. Poďme robiť, aby ahoj-2. Buď by mohlo fungovať. Ste po spolu. Urobiť ahoj-2 pracuje. Dot lomítko ahoj-2, Enter. Zdá sa mi, mať nekonečný slučka alebo tak niečo. Nič sa nedeje. Prečo? Divákov: Je to robiť nekonečnej slučky. David J. Malan: Je to nekonečná slučka. Je to trochu na mňa čaká na v skutočnosti poskytnúť niektoré vstupné signály. Tak nechaj ma ísť napred a zadajte Davida, a stlačte Enter. A teraz sa hovorí, že "Dobrý deň, David." Ak mám ho spustiť znova. Poďme zadajte Rob: "Ahoj, Robe." Teraz je to najhoršie užívateľské rozhranie vôbec. Užívateľ je zrejme mal vedieť, čo má robiť. Ale bez ohľadu na to. Pomocou týchto rovnakej budove bloky rovnako ako v Scratch, môžeme tento problém vyriešiť a povedať niečo ako vaše meno, prosím, hrubého čreva, priestor, uzavretý citácie, v blízkosti zátvorka, bodkočiarka. Takže opäť mnoho hlúposť so syntaxou. Ale všimnite Práve som pridal skladačky Nad týmto a nad tento. Takže teraz, keď som opakovať to, ahoj-2, Enter. Počkaj chvíľu. Čo sa deje? Nie je to správa inak ,. Jo. Divákov: nebol spustený, aby znova. David J. Malan: Ja nie spustite ho znova, že jo. Tak som zmenil svoj zdrojový kód. Ale opäť je tu ten prúd. Zdrojový kód pomocou kompilátora dáva ste nový objektový kód, alebo 0s a 1s. Tak som potrebné skutočne opakovanie make ahoj-2 Enter. OK, niečo, čo sa zdá, že sa stalo. Dot lomítko ahoj-2. Vaše meno, prosím. A teraz byť jasné, prečo je kurzor na rovnakom riadku? Presne tak. Nechcel som dať spätné lomítko n tu v mojom kóde. Takže teraz môžem napísať niečo ako Daven, Enter. Môžem to spustiť znovu a zadajte niečo ako Gabe, Enter, a dostaneme iný program znovu a znovu a znovu. Teraz nakoniec budeme potrebovať Ak chcete použiť niekoľko rôznych možností. Musíme zaviesť nakoniec niektoré Podmienky, ktorých je robiť veci podmienečne. Možno slučky, takže môžeme urobiť veci znova a znova. Možno, že by bolo pekné, keby sme mohol realizovať svoje vlastné funkcie, ako by sme mohli realizovať naše vlastné printf alebo naše vlastné verzie getString a GetFlow, pretože v konečnom dôsledku aj Pomocou tohto príkazového riadka prostredia môžeme urobiť aj tie vizuálne zaujímavé veci. Naozaj na záver mi dovoľte to. Chystám sa ísť dopredu a zavrieť tieto okná a otvorte túto ikonu tu čo je len väčší verzii, ktorý obsahoval okno terminálu. Takže Gedit má nielen miesto pre môj kód, ale tiež postavený v terminálovom okne, čierne a biele okno, kde by som mohol spustiť príkazy. Náhodou som sa otvoriť väčšia verzia tohto. A teraz idem do zložka, ktorú som už dať vopred na internetových stránkach kurzu je. A ja idem do toho a otvoriť súbor s názvom thadgavin.c, ktorý bol napísaný niekým iným. A ak sa pozrieme na to, to nie je druh kódu budeme písať, pretože Cieľom tohto kódu bolo napísať najkrajší hľadá kód, ktorý on alebo ona by mohol, bez ohľadu na to, či ďalší človek mohol niekedy pochopiť tento kód. V skutočnosti, každý rok je tu, čo je volal obfuscated C súťaž, ktorá je pre skutočné mágov, ktorí píšu Kód, ktorý nikto iný nemôže čítať, ale že robí niečo, čo buď veľmi jednoduché a naozaj úžasné. A sme si mysleli by sme uzavrieť s týmto pohľadom na niečo, čo je celkom úžasný ste mohli vidieť raz. Ale my skončíme na to poznámka, bodka lomítko, thadgavin. To je teda to, čo vás čaká. To je pre CS50. Uvidíme sa v stredu. [Prehrávanie hudby]