>> 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]