DAVID J. Malan: Torej to je CS50. In to je bil CS50 lastne Colton Ogden, več o tem, kdo je glasba, ki jo lahko prenesti na soundcloud.com/cs50. 

Torej, danes smo se bolj o umetnosti programiranja. In smo kjer smo pustili off zadnjem tednu, ki se osredotočajo na nič, kar je bilo to Grafični programski jezik. In da se stvari navzdol na nižjo raven, uporabo bolj tradicionalno programiranje jezik znan kot C. Vendar poti, zavedajoč da iste ideje, govorili prejšnji petek ponovil ne samo v tem jezik C, vendar v večini vsak drugi da gledamo na ta semester. 

Zato smo poklicali to stvar tu kaj zadnji čas? To je predstavnik izjavi. Zato smo to izjavo se imenuje. In to naredi nekaj. To je navodilo, da računalnik ali Scratch lahko izvrši. In poslej, pa tudi zagon kliče kaj takega funkcija, zaradi razlogov, bomo kmalu videli. 

Medtem smo videli stvari, kot je ta. In to so na splošno znano, kaj zgraditi? 

OBČINSTVO: Loop. 

DAVID J. Malan: Torej zanka. Torej precej preprosta. Dobesedno ne, kaj piše. In v nič, če želite, da strpati več kosov sestavljanke tam, kos bo rasla, tako da bo. In bomo videli, v C, ki lahko storimo enako. 

Druga vrsta zanke, čeprav V Scratch lahko večno, ali je kakšna številka drugih pristopov. Vendar vzemimo več splošnih zdravnikov pogled, z obrazom to je verjetno precej seznanjeni, V zanki na splošno. Mark Zuckerberg: One stvar, da računalniki so res dobri, je ponavljanje ukazov. Kot oseba, ki ste jo dobili res dolgčas, če vas moral storiti isto stvar veliko krat zapored. Ampak računalnik lahko storite isto stvar milijone ali celo milijarde časih, in ne bo dolgčas, in biti sposoben za izvedbo, ki izvajajo zelo dobro. 

Torej za primer, če bi želel, da želim vsem na Facebooku vesel rojstni dan tako da jim pošljete e-pošto, to bi mi lahko traja tudi več kot stoletja dejansko napišete vse te e-pošte za vsakogar. Vendar z le nekaj vrstic kode, ne morem ima sistem za pošiljanje e-pošte za vsakogar on Facebook želi jim vse najboljše. Torej, to je tisto, zanke in zakaj oni so dragocene in nekaj da lahko računalniki zelo dobro. 

DAVID J. Malan: Torej, če ste bili prejemnik nekaterih CS50 in Dropbox je prostor pozno, Ravno to je pravzaprav tisto, kar smo storite z uporabo kode čisto tako. Smo v bistvu imeli velik preglednico, v katero ljudje so bili vnašanjem njihovih imena in e-poštne naslove. In mi je napisal majhen košček kode, ki lahko izbirate preko te naslove in izpljunila edinstvene naslove v vsak primer predložen večkrat. In potem, bomo poslali avtomatizirano e-pošto od CS50 je bot, vključno s kodo kupona. 

Zdaj smo preučevali tudi ta konstrukt zadnjič. In to je zlasti primer kaj? Torej, ja, logični izraz. In je oblika mišljen da zajame tudi to. Vsi taki vprašanja tvorijo true ali false v Scratch bo videti malo kaj takega. In pravimo to logični izraz. To je res, ali ne drži, da ali ne. To je način, da bi odgovorili na vprašanje. 

In Medtem lahko uporabite te Boolean izrazi znotraj gradnikov kot ti, ki se od Seveda so pogoji ali podružnice, pregovorno vilice v cestnem prometu. In jih je mogoče videti ne le kot je ta, lahko pa so tudi so elses povezane z njimi. In lahko dejansko imajo tri tako vilice v cestnem prometu ali štiri način vilice na cesti, preprosto gnezdenja te stvari, kot boste videli v Scratch če že ni. In kot lahko to storite v C, kot tudi. 

Vzemimo še en generalističnega poglej na alumnist, kot tudi, kdo lahko predstavlja drugačen pristop da te stvari imenovanih pogoji. 

Bill Gates: Ljudje delajo Odločitve vsak dan. Na primer, preden greste ven vas vrste imajo, če izjavo, ki pravi, če dežuje, potem sem potrebujete za mojo jakno. In računalniki so neverjetne, ko vas odločijo tiste vrste izjav, da se lahko zanesljivo izvedbo te stvari na neverjetno hitrostjo. Tako računalniški program res je malo matematike in nekaj če izkazov, če Odločitev dobi je. 

DAVID J. Malan: Da morda veste, da je ljudje, kot so Bill Gates, Paul Allen in drugi da resnično sprožil tako imenovani osebni računalnik Revolucija je pred nekaj leti. Mislil sem, preden smo potopili v nekaj administrivia, sva pripovedujejo zgodbo iz Albuquerque, New Mexico muzej Prirodoslovni in znanosti, kjer nekateri Bill Gates " in Prve zgodbe Paula Allena je pripovedoval, kako imamo zdaj današnji računalniki in Maci in še več. Za to pa smo potrebovali dva prostovoljca ki imajo zelo dobre pripovedi glasove prebrati scenarij naglas. 

V redu, kaj pa v tam. Pridi gor. In kako približno pred tukaj. Pridi dol. Svoja mesta tukaj. Kot fantje prišli, par upravnih obvestil. delilna, proces izbire odsek, se bo začela ta Sreda do petka. Več o tem, da prihajajo Sredo v predavanju. 

Super oddelki, medtem, so nekaj, kar vam ponujamo naslednji teden pri čemer je celotna skupina povabljen da sodelujejo v dokaj velikem obsegu profili, ena bolj udoben, ena manj udoben. In bomo objavljali podatke tega, kakor tudi kasneje ta teden. 

Oddelki Medtem, sami, se bo začela v treh tečaja tednu, nič kazalo, kar pomeni, da tisti, so nekaj tednov ven. Torej, ne skrbite. Niste še zamudili kaj v tej smeri. Medtem pa v tem času, če vas Za vsa vprašanja administrativno, sebe in Devon in Gabe email in Rob na tem naslovu tukaj. 

Nazadnje, problem nastaviti 0 je, seveda, ven. Morda ste opazili, na spletni strani seveda je. To vam bi moral zagotoviti vsi odgovori na vprašanja imate morda na poti za kako začeti s problemskega sklopa. Ampak, če se znajdete potrebujejo roko pomoči, z vsemi sredstvi udeležujejo uradnih ur, Ponedeljek, torek, sreda, četrtek tega tedna v večernih urah v štirih jedilnih dvoranah. Oglejte si ta URL tam za podatke kje so uradne ure bo. 

Zdaj Spoznajmo naše dva gosta danes. Kako ti je ime? 

JAY PAUL: Jay Paul. 

DAVID J. Malan: Jay Paul, lepo, da sva se spoznala. 

Hikari: Hikari. 

DAVID J. Malan: Hikari? 

Hikari: Hikari. 

DAVID J. Malan: Hikari. Lepo vas je videti, kot dobro. Jay Paul in Hikari imajo Pred njimi na teh glasbi stoji dve skripte, ki sem natisnjene od danes zjutraj iz Nove Mehike Muzej naravne zgodovine in znanosti. In tisto, kar sem mislil, Jaz bi naredil v zgornjem se spremljajo svoje recitacijo scenarija in s tem zgodovino z nekaj vizualnih podob, brez presenečenj. 

In kaj sem naredil vnaprej je prehighlight vašem scenariju kaj bi morali prebrati, in kaj bi morali prebrati. In bomo v bistvu samo nadomestne točke. Torej, to je veliko, kot si morda storili v angleškem razredu. To je res prisilijo občinstvo verjeti v pravljice tukaj. Prav? Torej zgodba tu imamo BASIC, in se začne v Cambridgeu. 

JAY PAUL: Bilo je pozimi leta 1974, v Cambridgeu, Massachusetts kjer je pozimi mrzlo. Bradati, dolgolasi kolegij osipa imenom Paul Allen je drudging čez Harvardu Square, zatopljen v svoje misli. Njegova glavna skrb v teh dneh je, kako priti do svojega prijatelja, Bill Gates, zapustiti šolo in iti v poslovanju z njim. Hikari: dva sta že odšla s pomočjo številnih poslovnih podvigov skupaj, z začetkom ob Lakeside šoli v Seattlu, kjer je so bili plačani v prostem času računalniškem preizkusite PDP-10 računalnik po lokalnem času delitev podjetja. Je bil najnovejši načrt za izhod šolo in tvorijo programsko podjetje. Allen je zapustil Washington State University. Ampak v zadnjem trenutku, Gates odločil, da se držijo z Harvardu. 

JAY PAUL: Tisti dan, prečkanje Harvard Square, Allen opazil januar, 1975 vprašanje Popular Electronics z zemljo ustavljanja vrv, Prvi svetovni miniračunalniku Kit tekmec poslovni modeli. Pod je bil naslov slika majhne škatle okrašena z luči in stikal. To je bil imenovan MITS Altair 8800. Allen je vedel da je to tisto, kar ga je iskal. 

Hikari: Dnevi razpravi sledili. Allen in Gates razume Pomen Altair. Ti so pogosto govorili O mikroprocesorjev in čakala, da vidim, kaj bi bilo treba storiti z njimi. Zdaj je bil kit Minikompjuter na pokrov Popular Electronics. Je očitno imela še nobene programske opreme. Jih zamislili narod programerji spušča Mits. In tako so pozvali Ed Roberts, vodja podjetja, trdijo, da so različice BASIC programski jezik skoraj pripravljena za Altair. Niso. Roberts je moral znani niso. Bil je že 10 klicev na dan od ljudje, ki so imeli BASIC skoraj pripravljena. In njegov odgovor zalogi je bil "prva oseba ki se pokaže z delovanjem BASIC dobi pogodbo. " 

JAY PAUL: Gates in Allen še nikoli ni videl Altair. Niso nikoli niti videl Intel 8080 mikroprocesor V središču Altair. Vendar je nekaj let prej Allen je napisal program na glavnem računalniku, ki posnemajo delovanje prejšnje Intel mikroprocesor. In tokrat so bi naredil isto. 

Hikari: Z Intel 8080 priročnik na njegovi strani, Allen usedel Harvard PDP-10 računalnik in napisal emulator in programske opreme orodja, ki so potrebni, da to programiranje. Medtem Gates ustavil dogaja za razrede in se posvetil za oblikovanje osnovne, uporabljajo vsak trik vedel je, da bi dobili velikost spodaj 4 kilobajtov. 

JAY PAUL: Out v Albuquerque, Ed Roberts dobila klic od Gates prosi za informacije o tem, kako Altair obravnavajo posebne rutine. Nihče ni nikoli zahteval, da pred tem. Roberts je začela zanimati. 

Hikari: Z razvojem orodja in zasnova pripravljena, Gates in Allen napisal koda na PDP-10, novačenja še študent Harvarda, Monte Davidoff, da napišete math rutino. Po zaključnem večeru programiranje, Allen dobil na letalu za zagotavljanje njihovega BASIC za Mits. On je preživel letalo vozi ven zaskrbljujoče. In nazaj v Cambridgeu Gates je zaskrbljujoče. Ki so jih testirali njihovih osnovnih in je delal na emulator. Toda kaj, če je emulator narobe? JAY PAUL: Kot ravnini približal Albuquerque, Allen spoznali, da njihova BASIC, zdaj lepo vsebovala na majhnem zvitka udaril papir trak, bi neuporabna brez samostojne Program, ki se imenuje nakladač, ki bi povedati, kako Altair prebrati počutje papirnatega traku dovaja v Dalekopisač stroj. Vzel je ven svojo beležko in hitro pisal določitvi programa nakladač v jeziku skupščine, nato ročno prevesti, da v 1s in 0s Altair bi razumel. 

Hikari: Allen je pričakoval čisto malo, visokotehnološko podjetje moških v poslovnih oblekah teči. Torej je bil presenečen, ko Roberts izpolnjeni ga na letališču, ki je videti kot ranču ročno. Roberts je bil tudi presenečen. Ko je padla na Harvard programer je drago hotelu, Allen je moral priznati, da ni mogel privoščiti sobe. 

JAY PAUL: MITS sama, je bilo se nahaja v prašnem strip mall. Inside na nered Delovna miza je Altair naložen z 5 kilobajtov pomnilnik in povezana s kablom na Dalekopisač stroju. Roberts in glavni inženir, Bill Yates, čakala pričakujoče kot Allen preklopiti svoj nakladač Program v Altair. Dalekopisač začel chugging kot je potegnil trak papirja prek čitalca traku. Trajalo je morda 15 minut naložiti program. Potem Dalekopisač nenadoma natisnjen spomin hitro, nato pripravljeni hitro, Allen in začel tipkati Nekaj ​​preizkus ukaze. Za veliko presenečenje vseh je, software delal. Bilo bugs, seveda. Ampak glavna stvar je bila, da je delovalo. 

Hikari: Kasneje, na poti do 3,00 $ kosilo Goba, osa priletela v oknu Pickup tovornjak in pičil Allen na roko. Toda na tej točki nič lahko pokvari razpoloženje. Altair zdaj imela svojo osnovno, Prva komercialna programska oprema za dom računalnik, ki ga Paul Allen in Bill Gates, ki poslujejo kot Microsoft. 

DAVID J. Malan: Veliko zaradi naših dveh bralcev. 

[APLAVZ] 

DAVID J. Malan: Zdaj imate možnost izbire, preden greš, od iskriv ali sijaj v dark-- oh, počakajte eno sekundo, wait-- iskriv in sij v temni slona od CS50 lastne Cheng Gong. Hikari: Ah, hvala vam. DAVID J. Malan: All V redu, hvala lepa. [APLAVZ] DAVID J. Malan: Torej resnična zgodba. To pomeni, da vse te stroji in enostavnost, s katero smo jih uporabljajo zdaj in sprejeti za samoumevno, v resnici začel tu, le nekaj korakov stran od tega dejanskega gledališča. In zdaj je danes, če si ne bi bilo, to je Maxwell Dworkin, računalnik Znanost stavba, tudi za vogalom. In na drugem nadstropju tem Stavba ne visi tri strani od prvotne izvorne kode, ki Bill Gates in Paul Allen napisal. V bistvu, če uporaba povečate leta si lahko ogledate ne samo njihova imena v prvotna tipa, ampak tudi njihovi podpisi, ki jih krasijo Nekaj ​​let nazaj, ko so nazadnje obiskali. 

Toda kaj je bilo še posebej prepričljiv O tem je tisto, kar so si zadali, da storijo je bil napisati program, ki bi omogočajo druge ljudi, da napišete svoje programe. V času vse, kar je bilo z to Altair stroj, ki ga Mits. In vse, kar so potrebovali je bil nek način zaradi česar je enostaven za hobi in ljudi nam je všeč v tej sobi, da se dejansko program, da ni nujno, da razumevanje Koda skupščina, ali stroj code, ali bog ne daj, 0S in 1s. Mi programerji, kot tistih, ki v tem prostoru, smo želijo biti sposoben izraziti sami veliko več kot psevdo kodo tudi če je malo bolj nit izbirčen, kot smo se pogovarjali prejšnji teden. Ne želimo, da napišete kodo, kot je ta, ki je naredil Paul Allen in Bill Gates. Mi namesto tega želeli napisati kodo, ki zgleda malo bolj prijazen do uporabnika. 

Zdaj je to jezik, znan kot BASIC. In številke vrstic ni tisto, kar vas uporabite za preprosto oštevilčiti vrstic kode da pišeš. Nimamo niti za storiti, da v teh dneh. Vendar pa si lahko ogledate tukaj kako print "Hello, world" res verjetno bi natisniti samo to. Pa kaj, Bill in Paul naredil, je bilo usposobiti ljudi, da napišete kodo, kot je ta Namesto o-- če ste vzeli pogled na računalništvo wall-- kodo, kot je ta. 

V bistvu, CS50 nedavno imeli priložnost usesti s profesorjem Harry Lewis v Computer Science oddelka, ki je pravzaprav učil Bill Gates je pred nekaj leti, in stoji tu pred te tri strani odlomkih. Oglejmo pogled. 

HARRY LEWIS: Kaj ste tu seznam zgodnji kos programske opreme Bill Gates in Paul napisal Allen, ustanovitelji Microsoft. Torej koda je zanimiva iz dveh razlogov. Najprej, je postalo Prvi Microsoftov izdelek, ki je bil tolmač za BASIC programski jezik. In drugič, da je to eden prvih poskusov ustvariti tolmača, tako navadne ljudje lahko uporabljajo osebne računalnike. 

Torej je bil Bill Gates dodiplomski na Harvardu. Začel sem poučeval na Harvardu leta 1974. To je bilo narejeno leta 1975. Tako je bilo v začetku svoje kariere in zgodaj v moji karieri. Pravzaprav sem učil Billa Seveda v tem času. Paul Allen ni bilo Harvard študent, vendar je je bila visoka šola sošolec Bill Gates. Če prideš in poglej na kotacijo, boste dejansko našli tretji Ime, Monte Davidoff, ki je bil Gates sošolec Tukaj na Harvardu. 

OK, tako da tukaj je Zanimiv komentar tukaj. Piše "V 4K mogoče izbrisati kvadratnega korena vendar bi morale zanke še vedno dela. " OK, kaj to pomeni, da obstaja sta dva načina, kako zbrati ta program. Ena je bila, da deluje na različici te računalnik Altair da je imel le 4K besede spomin, 4096 besede spomina. Ampak velika različica imel 8k. In kaj to pove, je , ki v različici 4K si moral zbrisati nekaj koda, da bi bilo primerno. In ena od stvari, da bi se črta bi kvadratni koren rutina. Ampak očitno za zanke, naj še deluje, tudi ko ste zbiranje navzdol za samo različico 4K računalnika. DAVID J. Malan: Torej, ena od tem, kot bomo videli v računalništvu, je ta pojem plastenje in abstrakcija, in res stoji na ramenih od ljudi, ki so prišli pred nami, ne za razliko od nekaterih Bill Gates in Paul Allen pripoved tukaj. In kaj to pomeni, je da danes lahko za samoumevno, da so stvari v resnici lažje za nas, za pisanje kode. Dejansko kodo, kot smo rekli v petek, je tehnično bolj znan kot izvorne kode. In to je to, kot je angleški skladnji da je bolj pravilno in bolj natančno opredeljena kot nekaj podobnega psevdo kodo za ki ne obstaja formalna definicija. 

In danes, kaj bomo osredotočiti na je izvorna koda da je videti tako, ki sicer na prvi pogled Izgleda popolnoma nejasen. In odkrito povedano, da je pot bolj estetsko zapleten kot osnovni program. Vse to ne počne, odpoklic, je tisto, kar smo rekli? Samo natisne "zdravo svet". In še pogled na vse stvari, ki jih potrebujete da se ovije okoli tega zelo preprostega stavka. Vendar je kmalu vse te vrstice in več bo veliko boljši občutek za vas. 

In tok je, kot sledi. Kaj moramo na razpolago je, da kodo, kot vir kodo, ki smo pravkar videli. In potrebujemo nov program da bi sistem deloval skozi. Potrebujemo algoritme, ki lahko pretvorbo izvorne kode, kot je ta, v kodi, 0s in 1s. Z drugimi besedami, kaj bomo naučili danes je, kako to storiti, pisati Izvorna koda up top, dajati kot prispevek k posebni Program znan kot prevajalnik, in da bomo za izdelavo predmeta kodo. Ki je samo fancy način rekel, da se bo nekaj da je videti takole, ga posredovati v program, imenovan prevajalnik, proizvaja objektno kodo da je videti takole. 

Torej, to so dobesedno vzorci 0s in 1s da se razume Intel računalnik v teh dneh, da če CPU razlaga, možgani v notranjosti računalnika, bo dobesedno izpisal, preprosto, "zdravo svet". Zdaj obstaja način, več 0S in 1s od tebe upam, da bo morda potrebna za to. Ampak to je zato, ker gradimo na dobro kupčijo zahtevnosti da bomo lahko odslej jemljemo za samoumevno. Z drugimi besedami, veliko pametnih ljudi so nam dali veliko kul orodij in zmogljiva programska oprema, s katero smo lahko zdaj projektov naše. 

Torej, začnimo. Ker je prejšnji petek, in Za Problem Set 0 ta teden, igral boš v svet, ki izgleda takole. Od danes naprej in za Problem Set 1 naslednji teden kodo bo pogledati malo bolj skrivnosten, vendar je funkcionalno bo enaka. Tako obvestilo, top je Scratch, Dno je C. Odkrito Scratch je veliko bolj uporabniku prijazen in dostopen. Ampak, če ste zdaj primerjavo vizualno top za dno, da je nekako enega za drugim korespondenca med kosov sestavljanke in jezik smo na tem, da igrajo z. Zlasti pravijo, blue puzzle piece up top, očitno ustreza, kaj ključne ali posebni izraz v tem jeziku imenovano C? OBČINSTVO: printf. DAVID J. Malan: printf. To pomeni, formatirano tiskanje. In to je samo fancy način rekel printf v C se bo izjavo ali funkcijo da natisne nekaj zaslonu. Kaj natisniti na zaslonu? Karkoli vam je povedal, da se v notranjosti od citatov, znotraj oklepajev. Torej še enkrat, seveda, tam je veliko stvari da moraš imeti v mislih, oklepaji, narekovaji, podpičja, in vse to. Ampak vse to je neke o poleg točke. Zanimivo takeaway za zdaj je, da recimo blok v Scratch je precej enakovredna Izjava printf v C. 

Medtem, rumena puzzle piece do vrha, ko je zelena zastava kliknili, je verjetno ekvivalent na tisto, kar ključno besedo tukaj? OBČINSTVO: Main. DAVID J. Malan: Torej glavni. Mogoče int, morda neveljaven. Ampak glavna vrsta zveni kot je pomembno, in res je. Torej, ko zelena zastava kliknili je, še enkrat, puzzle piece da začenja Celoten program Scratch. Vendar se bomo zdaj začeli kliče da je bil glavni, ta funkcija znana kot glavna. 

Zdaj medtem se bomo posplošitev to, kot sledi. Kličemo lahko rekli funkcijo. In bi bilo videti posebej, kot je ta. No, kaj pa zank? Če želimo, da začnete pretvorbo ali prevajanje bolj v Scratch do C, ta stvar tukaj očitno le pravi, "zdravo svet" za vedno. Torej, če ste povezali ti skripte z mačko v Scratch, to je le, da bo kar naprej govorijo v neke vrste risanih balona, "Zdravo svet, zdravo svet, zdravo svet, "ad nauseum, vedno. Če želimo narediti nekaj podobnega C, da se dogaja, da si malce skrivnosten. Vendar pa lahko dosežemo enako rezultati, saj se bomo na koncu izvedeti, s sintakso, kot je ta. Bom ponovno uporabiti printf, ker na koncu dneva Želim print "Hello World". In jaz sem očitno s pomočjo ključna beseda, ki je ni večno. To je namesto besede, medtem ko. Ampak samo v semantično Angleščina, medtem ko vrsta predlaga neke vrste zanke ali cikla. 

Tako da se zgodi, da bo Ključna beseda, ki uporablja C. In čeprav je res, zakaj ne časa Res dejansko pomeni za vedno? No, medtem ko je, kot bomo kmalu cenimo toliko bolj, ima ta oklepajih poleg nje kjer si lahko dal logični izraz. In tako dolgo, kot da izraz je res, to kodo, kot je to navedeno med tema dvema zavitimi oklepaji, kot smo jih bom poklical, bo kar naprej znova in znova zagnati. 

Torej, res je res. Torej, medtem ko pravih sredstev Samo to storijo vedno. To je skoraj neumno zgraditi za izražanje sebe. Ampak ni bilo vedno Ključna beseda v C. Ni bilo časa. In tam je bil zelo preprost Logični izraz, kot je res. In tako je to, bomo videli, doseže enak rezultat. 

Kako pa boste morda izvesti zanko? No, v Scratch boste morda hard code določeno število iteracij v zanko tukaj. In to je točno tisto, kar smo lahko storite v tej različici C, pri čemer imamo tako imenovane zanke. In zanke tukaj se dogaja Ponovil bi, nekoliko cryptically, od vrednosti 0 na gor do, vendar manj kot 10. 

Zdaj spremenljivk v nič. Si morda ne bi imel priložnost uporabljati. Toda kaj je točka, na splošno, spremenljivke smo rekli prejšnji teden? Kaj je to? 

Ciljna publika: Točke. 

DAVID J. Malan: Da bi izpostavili? Oh, poudarja. OK, sledenja točk, na primer, v igri. Ali bolj na splošno počne kaj s spremenljivko? Kakšna je korist od njih? 

OBČINSTVO: Memory. 

DAVID J. Malan: Ja, tako spomin. To je za shranjevanje nekaj. In nekako neumno vizualne I uporablja zadnji čas je bil, kot je ta stekleno skledo. In če bomo želeli, da shranite nekaj v spremenljivke, na primer zdaj vrednost je šest ker tam šest ping pong žogice v tukaj. To je samo nekakšna shranjevanje posoda, ki pod pokrovom se izvaja s bitov, 0s in 1s, pa računalnik se zgodi, da to storim. 

Torej, v nič, če bomo želeli imeti spremenljivko lahko uporabimo oranžen blok, kot je ta. Poklicali bomo, da se števec v tem primeru. Sem ga inicializiran na 0. In kaj sem potem naredil? Forever, recimo števec, ki bi, če igrate s tem v nič, boste šele videli praske. Mačka ali karkoli kostum si dal na mu bo govoril številko v vprašanju. 

Spremeni števec za 1, je kot povečevanje za 1. In tako bo to štejte od kar tako, kaj? Od 0 til neskončnost, ali dokler odmori Scratch, oziroma dokler vas nekako izgubijo zanimanje za gledanje kako visoko je dejansko lahko računamo. 

Torej, kako bi lahko pretvorili v C? To se dogaja, poglej malo skrivnosten. Ampak še enkrat, če pogledaš na vsakem teh vrstic posamično so nekako postavitvijo splošno. Torej očitno int bo nekaj poseben pomen v C Bomo spet videli. Kot prahi, to pomeni celo število. Torej to pomeni le številko. Torej, to je vrsta steklene posode želim, ena da lahko shranite številke, ne ping pong žogice. In bom uporabila enačaj tam, da mu dodeli vrednost 0. Tako da je precej podobno niz števec na 0, ampak v C. 

Medtem, medtem ko velja, da je enakovredno, seveda, za večno, čeprav je malo nejasen, in nato v notranjosti od zavitimi oklepaji. In lahko si misliš o teh zavitimi oklepaji, ki jih lahko vtipkate na tipkovnici, kot res da kot ukrivljenosti v ti rumenih blokov zanke v nič. To zajema več vrstic kode. 

Printf postaja Malo zdaj strašljivo, ker I glej navaja ne le v oklepajih. Ampak kaj je novega skladenjsko v tem primeru? Tam odstotkov d. In nato poševnica nazaj n je tam. Smo videli, da je pred celo čeprav ga nisem omenil. Potem je vejica. In potem je števec. 

Ampak bomo videli v pravkar Trenutek, da je to le standardni način rekel natisnete "Decimalno številko", citiram, konec citata, nekateri decimalno število. Ampak jaz ti bom kasneje povedal, kaj je to decimalno število je. Torej dejstvo, da obstaja vejica V skladu s tem razmišljali printf, pomeni iti naprej in print nekateri decimalno število. Oh, in mimogrede, številka ne glede na vrednost te spremenljivke. In tako, da bo ta bolj Jasno, bomo videli zgled Pred dolgo, ki vključuje natančno printf v okviru programov realnem C. 

Zdaj pa samo zaviti nekateri teh konstruktov. Logične izraze, morda nimate priložnost uporabiti v svojem programu lahko pa bi zelo dobro, še posebej, če uporabljate pogoje. In tako sta ti dve primeri iz Scratch pomeni, če je x manj kot y, ali če je x manj kot y in y je manj kot z, kako bi lahko to prevedli? 

No, v C pa je samo bo izgledala takole. Malo kriptirni, več oklepaji, nekatere čudne ampersands, vendar bistveno ideje so tako enostavno, kot so so v svetu puzzle kos. Mi smo enostavno preverjanje, če se kaj manj kot kaj drugega. 

Kaj pa pogoji? Na kratko v angleščini, kaj to kos Scratch kode ne bi rekel? 

OBČINSTVO: Primerja dve številki. 

DAVID J. Malan: Primerja dva številke, in če je x manj kot y piše toliko. Če je x večji od y se pravi toliko, ostalo če je x enak y pravi toliko. Zdaj, ko je x in y prišel? Kdo ve. Ta kos Scratch koda je izven konteksta. Ampak, kaj hočemo storiti zdaj je translate to samo za trenutek videti. 

Torej, kot ste dobili udobno ta teden Problem Set 0 igranje na tem svetu na levi strani, spoznali da se ideje ne spreminja ta teden ali naslednji ali še dlje. Mi preprosto bo začnite pisati stvari na drugačen način z našimi tipkovnico namesto naše miši. 

Torej, če je x manj kot y, in tam je nekaj oklepaje tam, potem je tu še nekaj zavitimi oklepaji spet nekako zaobjeti tako kot rumeno kosov sestavljanke storiti. In bom printf x je manj kot y in tako naprej. 

Kaj je lepo o C, kot lahko vidite tukaj, je, da ne boste dobili to gnezdenje, gnezdenje, gnezdenje, da je nujno gre za potiskanje kodo na desni. Lahko namesto tega imate vse lineup lepo všeč. Ampak to je samo estetska Podatek, da bomo spet videli kmalu. 

V redu. Torej, to nas pripelje nazaj do To skrivnostno videti programa. Kaj je dejansko napisati nekaj kode. Zdaj, kako si šel o pisanju kode? Vsa ta leta, ki ste jih v lasti Mac ali PC, namizni ali prenosni računalnik, da ste dejansko imeli zmožnost , da začnete pisati programsko kodo. Vendar ste verjetno manjka posebna vrsta programa. Lahko zagotovo napisati kodo. Ampak ne moreš pa nujno, iz škatle, pretvarjati, da je izvorno kodo v kodi, 0s in 1s ne da bi kaj na vašem računalniku? OBČINSTVO: Compiler. DAVID J. Malan: Torej prevajalnik, kajne. Zdaj večina od vas verjetno ne lastno prevajalnik, nikoli prenesli prevajalnik. Ampak boste videli, ga lahko prenesete kot najbolj koli drugi kos opreme. V svetu Mac OS, boste morda prenesete ali so prenesli že nekaj, kar se imenuje Xcode ali GCC ali Jek. Če prihajate iz Windows svetu, boste morda so prenesli Visual Studio, Visual Basic, okolja, kot je to. Obstaja ducate prevajalniki v teh dneh, ki jih lahko uporabite. Ampak kratko o tem tukaj je, da bi bilo bolečina in, odkrito povedano, tehnološki nočna mora za sto ljudi z različnimi Računalniške konfiguracije vsem nastaviti svoje stroje na enak način, tako da smo lahko vsi na isti strani. 

Torej, kaj smo, namesto, naredite v CS50 se vam dajejo standardni okolje, Linux okolje, ki je bo izgledalo malo kaj takega. Videli boste več o tem v Problem Set 1 specifikacija, ki bo šel na spletu v petek zvečer. 

In kaj to pomeni je, da odslej se bo sposoben prenesti in namestiti program imenovano CS50 Appliance. In ti boš, da prenesete in namestiti drug program, imenovan Hypervisor, ki je le fancy način za dosego tega cilja. Ali ste lastnik Mac ali PC-ju ali Linux računalnik ali računalnik Solaris, ali karkoli noro poslovanja Sistem tečete, boš, da prenesete program imenuje hypervisor, ki je tekoč teči CS50 Naprava na vašem računalniku ne glede na to, kaj je vaš operacijski sistem. Hipervizor z drugimi besedami pretvarja naša roba do kakršnega koli jeziku, ne glede na navodila, ki vam lasten računalnik razume. 

Torej je to plastenje. In še enkrat, to je nekako tematskega v računalniku znanost, stavba na vrhu stvari. Morda imate Windows. Morda imate Mac OS. Vendar pa se začne naslednji teden, da si dogaja, da so prenesli brezplačno kos programske opreme imenovano Hipervizor. Boste prenesli kos programske opreme, ki se imenuje CS50 Appliance. 

To se dogaja, da delujejo v hipervizor, , ki se bo izvajal na vašem računalniku. In končni rezultat je da bomo vsi imajo preprosto okno kot to na vašem Mac ali PC ki nam daje iluzijo vse izvajajo isti operacijski sistem, brez kakršnega koli drugega Vpliv na vašem računalniku. In lahko celoten zaslon to in v bistvu se obnašajo kot da tečeš operacijski sistem, imenovan Linux, ki je tisto, kar CS50 Naprava temelji na. 

Torej, kaj je dejansko uporablja to Zdaj napisati program. Lahko napišete program uporabljate Microsoft Word. Lahko napišete program uporabo TextEdit ali beležnici ali WordPad, ali precej koli beseda Program, ki ste jih kdaj uporabili za predelavo. Vi, ampak realnost je, ne bi smeli uporabiti resnično katero koli od teh programov. Vi zagotovo ne bi smela uporabljati nekaj podobnega Microsoft Word, ki ima krepko sooča, in ležeče in Večje pisave in manjših pisav, ker računalnik ne skrbi me, da je. Vse računalnik dogaja, da skrbi, je Angleščina kot navodila napisana v C. 

Torej, kaj bomo naredili v notranjosti od CS50 Appliance se uporabi program prosto na voljo, in to je vnaprej nameščen v tem naprava, imenovana gedit. In gedit je samo super enostavna urejevalnik besedila, kot Mac OS je TextEdit, kot Windows Beležnica, ki se dogaja, da poglej malo kaj takega. 

Torej Dovolite dejansko ne poglej diapozitivov to. Ampak kaj je dejansko šel v okolje sama. Jaz grem naprej in prijavi, v tem drugem oknu mojemu CS50 Appliance, ki sem jih vnaprej nameščen na moj laptop tukaj. 

Opazimo, da, tako kot Windows in Mac OS, to je dobil nekatere menije. Kot so Windows postavlja je tam namesto Mac OS, ki ga postavi tja. Ampak realnost je, da je vse vrste enaka. In tu je cela kup opreme. Tam je Dropbox. Obstaja cel kup dodatkov, grafične programe, da bomo uporabite pozneje v izraz za problematičnih sklopov. Obstaja spletni brskalnik zgrajena tako, da je to v celoti razvit računalnik znotraj računalnika. 

Ampak bom kliknite to Skrajna leva belo ikono tukaj, ki je ikona za gedit. In to se dogaja, da se odpre okno da ima tri plošče z njim, leva, vrh enega, in spodaj en. 

Zdaj je v tem zgornjem desnem tisti, ki Bom dejansko napisati nekaj kode. Torej, kaj je to storiti ,. Jaz grem na File, Save. In ne boš nikoli videl to posebno okno, preden. Ampak to je tako kot Mac OS ali Windows. To je samo okno z vse mape da imam znotraj tega računalnika. 

In bom, da shranite Datoteka kot hello.c. In jaz grem naprej in kliknite Shrani. In zdaj sem opazil še jeziček V zgornjem levem kotu se imenuje hello.c. Tako da verjetno precej seznanjeni tudi če ste ne Pred uporablja ta program. 

In zdaj bom tip v tiste precej skrivnosten zaporedje ukazov da smo videli pred nekaj trenutki. Vključujejo standardne I / O.h. Več o tem kmalu. Int main nična, odprt curly brace, zaprta skodrane opornico. In nato v notranjosti pa mislim, da je kjer smo imeli "Hello World", podpičje. In zdaj shranite. 

Torej, to je program napisan v C, napisano, torej v izvorni kodi. Vendar ne morem zagnati ta program. Nekako želite podvojiti kliknite na ikono nekje, vendar ne icon obstajajo drugi kot izvorno kodo datoteke. Kaj, še enkrat, je postopek sedaj, Moram teči to datoteko skozi? OBČINSTVO: Compiler. DAVID J. Malan: Torej prevajalnik. Torej, v različnih računalnikih, ki jih To storite na različne načine. Toda kaj smo tukaj naredili v CS50 Appliance, ki je Predstavnik kako lahko To storite na več različnih sistemov, se bom enostavno na zagnati ukaz, imenovan make. In da je dobesedno to storili. Naredi me programa. 

Torej, da se dogaja, da teči prevajalnik za mene. In ime programa Hočem, da je zdravo. Zdaj bi se programa. In da je dovolj pameten Zavedam se, da če rečem, da pozdravi, se dogaja, da samodejno poiščete za datoteke imenovane hello.c samo zato, ker je to Tako je bilo nastavljeno. 

Torej, ko sem zdaj zadeti nastopiti tukaj, to crazy Grobni linija je pravkar usmrtili. In verjemite mi, preden dolga, v le nekaj dni, boste razumeli, kaj vse od tega neumnosti sredstvi. Ampak za zdaj, samo vem, da bi triggering izvršitev prevajalnik. Z drugimi besedami, ugotovljeno prevajalnik na mojem računalniku , ki je vnaprej nameščena na CS50 Appliance da bomo roko, da vas v Problem Set 1. In nato je trajalo hello.c kot input, in proizvaja navidezno 0s in 1s kot izhod. 

In privzeto, kaj počne, je, da prihrani ti 0s in 1s v datoteko, imenovano zdravo. In čeprav to sintakso tudi morda je novo za vas, preprosto izgovorite pika poševnica pozdravite se bo sredstva, s katerimi sem teči ta program. 

Za zdaj in za vsaj nekaj tednov, skoraj vse programe zapisujemo se bodo v črni in beli text okna. Ne miši, ne klikanje brez oken, brez ikon. Bomo, da ga bo enostavno in se osredotočiti na osnovnih idejah na začetku, preden bomo prišli do nečesa višji nivo, na primer, kot odmor od igre, ki smo govorili pa je v prvem predavanju prejšnji teden. 

Torej, ko sem zadeti nastopiti tukaj, to je ekvivalent v besedilu le okolju podvojiti s klikom na ikono, imenovano zdravo. Kaj pričakujete volje zgodilo, ko sem zadeti nastopiti potem? 

OBČINSTVO: Vse bo print "Hello World". 

DAVID J. Malan: Upajmo bo print "Hello World". In res se je. Zdaj je bilo nekaj Grobni sintakso tukaj. Pojdimo previjanje za samo trenutek, in videli, če bomo Ne moreš začeti sklepali samo po krpanje, poskuša in če, o tem, kaj se dogaja tukaj. Kaj pa, če znebim Nagibnica n? Zdaj pa nekateri med vami, ki ste programirano pred verjetno veš takoj, kaj to pomeni. Toda za tiste, ki ste jih nikoli programirana pred, vsaj mislim, da si, kaj se dogaja spremeniti, ko sem ponovila ta program? Tako da bom šel nazaj na moj malo črno-belo okno, ki je okno, v katerem To lahko zbere. Bom prevesti zdravo. Bomo videli isto Grobni zaporedje ukazov. In bom naredil dot poševnica zdravo. In zdaj nekdo, če bi, ki ni nikoli programirana pred, kaj bi bilo tokrat drugače? Ja. 

OBČINSTVO: To ne bo ustavilo tiskanje "zdravo svet". 

DAVID J. Malan: To se dogaja da-- žal? 

OBČINSTVO: To ne bo ustavilo tiskanjem? 

DAVID J. Malan: To ne bo ustavite tiskanje "zdravo svet". Torej, ni slaba ideja. Druge ideje? Ja. 

OBČINSTVO: Sporočilo o napaki? 

DAVID J. Malan: Napaka sporočilo, v redu, bi lahko. Kaj še? OBČINSTVO: Lahko natisnete nosilec s podpičjem, kot tudi? DAVID J. Malan: Lahko natisnete nosilec s podpičjem, kot tudi. Mogoče, da poševnica nazaj, potem je nekaj nekako prekrivata, da je to pomembno. Kakršne koli druge misli? 

Tako da vse dobre ideje. In v resnici gre da se sporočilo o napaki. To je verjetno najbolj verjetno da je odgovor na splošno Za naslednjih nekaj tednih kot smo izvedeli, da sem kodo. 

Ampak za zdaj ne pozabite, da računalniki samo, da tisto, kar si jim povedal, da naredim. Podobno kot smešno arašide maslo in žele primer. Naši človekovih računalniki so samo domneva da to, kar jim je povedal, da storiti. Torej, v tem primeru, če ne povej računalnik premakniti, da utripajočega kazalca Naslednja postavka, da je ne bo, da to storite. Torej, ko sem teči ta program sedaj opazili razliko. 

Izgleda kot hrošča. To je estetsko napako, morda. Toda kaj je drugačno o tem Izhodna primerjavi zadnjega očitno? Ja. 

OBČINSTVO: To ni naredil novo linijo. 

DAVID J. Malan: To ni naredil novo linijo. Zdaj pa tisti, ki ste imajo morda izdelane spletne strani prej, morda veste o BR tag ali odstavek tag, Zelo podobno v duhu. Spletni brskalnik vas bo ignorirala dokler vam povedati točno, kaj naj naredim. Podobno je jezik kot C, samo dogaja, da to, kar vam je povedal, da storiti. 

Torej razlog, da vsi ti primeri, Do sedaj so nekako mimogrede imel to poševnico nazaj tam, to je sredstva , s katerimi si izraziti sebe kot nove linije značaja, tako rekoč. In lahko nekako cenim, morda, da bi bilo to videti nekako neumno če nič drugega. Če bi želel novo črto, pritisnete tipko Enter in nato nekako od butchering kodo takega vam res ne bi smeli zbadanje v napačno smer. In tudi če ne briga na tej točki, boste spoznali, da to ni posebej Lep del kode. 

In kaj svet Pred leti so se odločili, da, če želite, da dajo kazalec na novi liniji eksplicitno, morate izrecno povedati, Nova linija, poševnica nazaj n. In tu je nekaj drugega simboli, kot je ta. Ampak za zdaj bom samo osredotočiti na poševnica nazaj n. 

Zdaj pa bo program malo bolj zanimivo. Jaz grem naprej in tokrat odpreti novo datoteko. Bom shranite Hello-1.C. In samo za brcne, bom za iti jo položi v mojo Dropbox mapo. 

Kot boste videli v CS50 Dokumentacija za napravo, kasneje ta teden Problem Set 1, bomo spodbujali vas, da uporabite Dropbox ali nekateri enakovredno storitev, ker potem vsa vaša koda je bo treba podpreti samodejno. In da je, zakaj imam šli v to mapo tukaj. 

In zdaj bom napisati nekoliko drugačen programa. Vključujejo standardne I / O.h, int main neveljavne. In potem je tukaj printf, Hello World, ki je povsem enako kot prej. 

Ampak zdaj hočem natisniti nekaj to je malo drugačna. Želim natisniti, rekel: "Zdravo, David." V redu, torej je očitno, bi morala upajmo se zgodi, da če sem prevedem ta program, ga zaženite, to bo rekel "Zdravo, David." 

Kaj pa, če želim, da uvedejo Ta vrsta spremenljivke, Pojem posodo, ki se dogaja Shranjevanje D-proti-i-d, in ni težko koda je v mojem programu. Pa kaj, če začnem počne kaj takega? 

Niz je, da je ta spremenljivka. Če želite niz, alias besedo ali frazo. Zaporedje znakov je, kaj smo v programskem pokličite niz. Mi smo le, da bo na splošno klic je to, ker je to lepo, preprosto ime. Vendar bi jaz poklical karkoli. 

Jaz bom rekel, String s enaka quote citata: "David," podpičje. In zdaj bi rad, da vstavite D-a-v-i-d v to, kar sem tiskanje. In preden smo videli teaser na zaslon kakšnega posebnega sintakse , ki nam je omogočilo, da nadomestek v vrednosti. Kaj je bilo posebnega Simbol nekaj diapozitivov nazaj? 

Torej odstotkov. Takrat je bilo odstotka d za decimalno številko. Da v resnici ne zdi pomembno tukaj. Izkazalo se je tam drugo odstotka simbol, ki je odstotka e, ki stoji za ogrado za niz. 

Torej, zdaj, zelo enostavno, sem šel bi zdravo-1, ker ta datoteka imenuje Zdravo-1.c in pritisnite tipko Enter. In jaz sem zamočil. Kaj se dogaja? No, tukaj je, kjer moramo začeti cenili, da smo v tem ukazu linija okolje, to Samo besedilo okolje. Ni klikom na ikone kot mapah zdaj. In pomislite na trenutek nazaj. V kakšnem mapa nisem rekel, Sem rešil kodo? Torej mapo Dropbox. Bi lahko bil imenovan ničesar. Ampak to se zgodi, da se imenuje Dropbox. Tako sem nekako morali dvakrat kliknite na da Dropbox mapo, da bi dobili vanjo in se na moje code imenovano zdravo-1.c. V bistvu, mi gremo naprej in zmanjša okno za trenutek. Tako kot Windows in Mac OS, obstajajo mape v Linuxu. Obstajajo mape v CS50 Appliance. To je samo zdaj smo omejili da bomo to besedilno okolje. 

Ampak, če sem dvakrat kliknite na Dropbox, opazili pa je datoteka, ki želim, da pripravijo. Vendar moram to črno-belo terminal okno, če se tako izrazim. Ampak moram zato, da se premaknete v to mapo ali imenik. Torej nekoliko starinski, vendar boste navaditi na to preveč. 

V svetu Linuxa, ki je spet operativna Sistem smo teče v notranjosti CS50 Appliance, tam je ukaz, CD. Kar pomeni, da ne morem narediti CD, prostor, Dropbox. CD, sprememba imenika. Prav. Nazaj na dan, ko so bili ljudje izumljanja računalnikov in deluje Sistemi, kot je ta, so želeli tip mogoče Najmanj pritiskov na tipke. Tako najlažje reči Imenik sprememba je CD. 

Torej, če sem udaril CD, prostor Dropbox, opazili, kaj se je tu spremenilo. Znotraj oklepajev Aparat je nekako da mi ugajajo in me spomnila, kje sem. Tako odprta mapa Dropbox. Če bom sedaj tip LS Seznam, spet kratka, ker ljudje niso želeli tip nazaj v dan l-i-s-t. Torej, namesto tega je bilo ls. 

Enter. Opazil sem, vidim dve stvari, Hello-1.C, in potem ta skrivnosten stvar, vir 1m. To je samo moj način rekel Izvorna koda za teden 1 ponedeljek. To je mapa, ki sem jo prenesel iz Spletna stran CS50, da sem danes prej iz in jo pravkar postavili v aparat vnaprej. 

Ampak za zdaj edino stvar, ki smo mar se bi ta program. Torej, ko sem tipa, da pozdravi-1, Enter. Prekleto. Nekaj ​​je šlo narobe. Torej, kaj je to draži narazen. In na žalost to je, če se stvari malo stresno na prvi, vsaj če ste nikoli programirana prej. 

Moj bog. Napisal sem program za dva linije in Imam štiri vrstice napak. Torej, kaj se dogaja tukaj. Najprej in predvsem vedno pomaknete nazaj in najti prvo sporočilo o napaki, ker velikokrat prevajalnika samo zbunjeni s tem, kar sem naredil. Prevajalniki so precej neumno. Naredili bodo le kaj povej jim, da storijo. In če jih zmedlo, oni so samo bo nekako vrgel svoje roke in morda vrgel več sporočil o napakah kot so dejansko pomembne. 

Torej, poglejmo najprej. Super Grobni na prvi. Ampak obvestilo, tukaj je ime Datoteka, v kateri sem zamočil očitno. Colon 5, kolona 5 pomeni le na linija 5 na peti značaja. Torej peta kolona znakov, če hočete, napaka. Uporaba neprijavljenega identifikator niza. Ali ste mislili standardni n? 

Ne, mislil sem niz. In potem je nekako kopiranje in lepljenje kaj sem tipkal res pripravi my pozornost, ko sem zamočil. Torej, iz neznanega razloga C, ali vsaj prevajalnik ne razume besedo niz. In to zato, ker smo si jo je izmislil. Torej niz ne obstaja v C. Kaj CS50 počne, za prvih nekaj tednih le razreda, je ponujamo nekaj usposabljanj kolesa, tako rekoč. In mi dal ta kolesa vadbenih notranjost posebni datoteki imenovani CS50.h. 

Torej je to drugi dveh datoteke Imena, ki očitno končajo v dot h. Pojdimo nazaj. Printf je izjava ali funkcija da očitno natisne nekaj na zaslonu. Vendar me niste videli izvajati printf, prav. Nekdo pred leti izvajal printf. V kakšnem slika bi on stavil ali pa si je nadela izvajanja za printf, kode za printf? 

V datoteki z imenom Standard I / O.h. Dejstvo je, da je verjetno v dve datoteki, standardne I / O.h, ki stoji za glavo Datoteka, in standardni I / O.c, ki stoji za C izvorne kode. Torej on ali ona pred nekaj leti plopped kodo, ki so pisali v to datoteko tako da ljudje, kot smo mi let kasneje lahko vključite, tako rekoč, v naših programih. 

In res, to je tisto, lojtra sledi beseda vključujejo počne. Videti je na lokalnem trdem disku, najde datoteko z imenom Standard I / O.h, in nato učinkovito izvodov in jo prilepi v notranjosti moje datoteke. Torej, zdaj moj program ve kako natisniti na zaslon. 

Torej s to logiko, kjer je niz opredeljen? 

OBČINSTVO: CS50.h. 

DAVID J. Malan: CS50.h. In res, da je to, kar smo, Jedro osebje, so storili. Mi smo izumili nekaj vrst podatkov, tako rekoč, kot niz, poleg tistih, ki jih dobili zastonj, tako kot int. In bomo videli, druge kot char za znak in nekaj več. Znotraj CS50.h očitno je vsaj nekaj omenjena niza. 

Torej, zdaj mi daj in ponovitev make zdravo-1. Bom povečate znova in čez prste. Zdaj v izdelavi enega spremenite Popravil sem večino stvari. Ampak prekleto. Več procenti od argumentov podatkov. Kaj sem naredil narobe tokrat? 

Torej je še vedno zelo skrivnosten. Ampak ta napaka je na vrstica 7 in 21 znakov. Torej, pojdimo poglej tukaj. To je malo subtilno. Ampak, če mislite, da o tem, kaj temeljne ideje so tukaj, morda lahko to draži narazen. 

Torej printf je ime funkcije. Oklepaje, tako daleč, je tako kot tisto, kar smo se namenili okrog stvari bomo mimo kot vložka v funkciji. V redu, samo samovoljno človek konvencija. Uporabljajte oklepaje. Znotraj teh oklepajih smo bili dajanje dvojne narekovaje, nato pa niz, kot je "Hello World". 

Toda v tej zgodnejši primer zelo Na kratko si bomo ogledali, z Scratch. In smo imeli odstotkov d, kaj je znotraj teh oklepajih da sem zaklical verbalno? Ja. 

OBČINSTVO: Torej, to je tisto, kar ste ob [Neslišno] od znotraj [neslišno] kaj ti [neslišno]? DAVID J. Malan: Točno tako. Torej smo imeli odstotkov d. Potem pa smo imeli blizu quote, vejica, števec. Prav. Določeno smo, kaj želimo narediti kot ogrado. Torej, kaj bom storiti, je tu vejica, kaj hočeš dati? OBČINSTVO: S. DAVID J. Malan: S, ker je v tem primeru je ime shranjevalne posode. To je ime te stekleno skledo. Ker je, preden je bila v nasprotju s tem, da Preprost primer Scratch smo pogledal. Torej, zdaj, ko je dva Spremembe, naj povečavo in poskusite še enkrat zbere ta program. 

Zdaj pa vidim, da je prikrit linijo. Ampak to je pravzaprav ime sestavljalca. Jek je ime prevajalnik. Da se mi samo varčevanje glavobol kdaj tipkanje, da dolgo nor ukaz ven. Torej, zdaj, če mi dot poševnica zdravo-1, Moral bi videti "zdravo, David." 

Pretty underwhelming, kajne? Smo lahko naredili to veliko bolj preprosto ne govorim o spremenljivkah in CS50.h in vse to. Torej bi bilo malo bolj zanimivo. 

Poleg CS50.h, imajo stvari kot niz izjavil, knjižnica CS50 ima tudi nekaj funkcij. Pred tako preprosto, kot let, je nekdo napisal printf in ga dal v standardni I / O.h in nekatere druge datoteke. 

Mi, osebje CS50, napisal funkcijo imenovano GetChar, GetDouble, GetFloat, GetInt, GetLongLong, GetString, in mi dal tiste v datoteko imenovano CS50.h in CS50.c. In mi jih dal noter od CS50 Appliance. In ljudje lahko tudi jih naložite na spletu, če želijo, da jih na njihovo lastnih računalnikih, kot tudi. Kar pomeni, da smo ustvarili Funkcije, ki so dobili prispevek od uporabnika. Ne vem, kaj vse teh podatkov so vrste. GetInt je nekako enostavno, kot dobili celo nekako od uporabnika. In GetString je verjetno kot get beseda ali stavek od uporabnika. 

Torej, dajmo se osredotočiti na to. In jaz grem nazaj v aparat in bom, da gredo naprej in shranite to datoteko kot, recimo je zdravo-2.c kot moj drugi različici. In naredimo nekaj sprememb. 

Tokrat namesto težko kodiranje David, ki naredi neverjetno skladni vendar underwhelming program Kaj pa, če namesto tega GetString? Zdaj obvestilo GetString ima odprto oklepajev, zaprti oklepaj, ker ne potrebuje nobenega vnosa. To bo le pojdi niz od uporabnika. 

In sedaj beseda o drugih skladnje. Podpičja šele na koncu vrstico kode. Jih ne potrebujemo povsod. Ampak to samo pomeni, da sem storiti s to vrstico kode. Dovolite mi, da se premaknete na drugo izjavo ali funkcijo. String izjavlja spremenljivko. String je, kot pravi daj mi skledo, prosim. In mi dal niz v njem. 

In zdaj enačaj. Kaj je enačaj v bistvu ustreza? 

OBČINSTVO: Dodeli. 

DAVID J. Malan: Ja, dodelitev vrednosti. Torej, če se, na primer, klic ta funkcija GetString, in bomo videli, v trenutku, ki je bo poziv uporabniku za niz. To je kot dajanje v najem mi potem napisali D-proti-i-d na kos papirja. In ko rečem niz je enaka GetString, enako v resnici ne pomeni enako C programiranja. To pomeni, da dodelite z desne roko stran na levi strani. 

Tako sem dobil niz. In enačaj pomeni ga v zalogovnikom imenovano e. In potem prenese ta off printf dejansko pa svojo stvar. 

Torej, končni rezultat pa se bo pogledati malo drugačen. Naredimo lahko pozdravi-2. Ali bi lahko delali. Ste po skupaj. Da pozdravi-2 delal. Dot poševnica zdravo-2, Enter. 

Zdi se mi, da imajo neskončno zanka ali kaj podobnega. Nič se ne dogaja. Zakaj? 

OBČINSTVO: To je tako neskončno zanko. DAVID J. Malan: To je neskončna zanka. To je nekako me čaka, da dejansko priskrbel nekaj vhodu. Zato naj gredo naprej in vnesite v Davidovem, in pritisnite tipko Enter. In zdaj je pravi "zdravo, David." Če sem ga ponovno zaženite. Kaj je tip v Rob, "Zdravo, Rob." 

Zdaj je to najslabša uporabniški vmesnik doslej. Uporabnik je očitno naj bi vedel, kaj naj naredim. Pa ni važno. Z uporabo te isti stavbi bloki, tako kot v nič, bomo lahko rešili ta problem in pravijo, nekaj takega kot vaše ime prosim, debelega črevesa, prostor, zaprt quote, close oklepaj, podpičje. Torej, veliko več norčavosti s sintakso. 

Opazil sem samo dodal puzzle piece zgoraj tale in nad tem. Torej, zdaj, če sem ponovila to, zdravo-2, Enter. Počakaj malo. Kaj je narobe? To se ne obnašajo nič drugače. Ja. 

OBČINSTVO: Niste teči znova narediti. 

DAVID J. Malan: Nisem teči znova narediti, kajne. Tako sem spremenil moje izvorno kodo. Ampak še enkrat, da je to tok. Izvorna koda skozi prevajalnik daje ste nov objektni kodi ali 0s in 1s. Tako da moram dejansko ponovitev make zdravo-2 Enter. OK, se zdi, kaj se je zgodilo. Dot poševnica Hello-2. Vaše ime, prosim. In da je zdaj jasno, zakaj je kazalec na isti liniji? Točno tako. Nisem dal poševnico nazaj n tu gor v mojo kodo. Torej, zdaj znam nekaj podobnega Daven, Enter. Lahko ga ponovno zaženite in tip nekaj podobnega Gabe, Enter in smo dobili drug program znova in znova in znova. 

Zdaj na koncu bomo morali uporabljati nekaj različnih zmogljivosti. Moramo uvesti končno nekaj Pogoji delati stvari pogojno. Mogoče zank, tako da lahko vedno znova stvari. 

Mogoče bi bilo lepo, če bi lahko izvaja lastne funkcije, kot smo lahko izvaja lastne printf ali lastna različica GetString in GetFlow, ker na koncu celo uporabljate to ukazno vrstico okolje lahko storimo tudi najbolj vizualno zanimive stvari. 

Dejansko na koncu mi je to naredil. Jaz grem naprej in zapiranje teh oken in odprite to ikono tukaj, ki je samo večji Različica, ki vgrajenih terminal window. Torej gedit nima le prostor za mojo kodo, ampak tudi vgrajen v terminalnem oknu črno-belo okno, kjer lahko tečem ukaze. 

Pravkar sem se je zgodilo, da se odpre večja različica tega. In zdaj bom šel v mape, ki sem jih že dal vnaprej na spletni strani seveda je. In jaz grem naprej in Datoteko odprete tako imenovano thadgavin.c, ki ga je napisal nekdo drug. 

In če se ozremo na to, to ni vrsta kode bomo lahko pisati, ker Cilj tega kodeksa je bil napisati najlepše iščete kodo, ki je on ali ona bi lahko, ali je ali ni drugo človeško bitje lahko kdaj razumeli to kodo. 

Dejansko, vsako leto pa je tisto, kar je imenovano obfuscated tekmovanje C, ki je za prave geeke, ki pišejo koda, da nihče drug ne more prebrati, ampak, da naredi nekaj, bodisi zelo enostavna, ali res neverjetno. In smo menili, da bi skleniti s tem videzom na nekaj, kar je precej neverjetno ste morda opazili že enkrat prej. Vendar pa bomo na koncu o tem note, pika slash, thadgavin. To pa je tisto, kar čaka. 

To je to za CS50. Vas bomo videli v sredo. 

[Predvajanje glasbe]