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