DAVID J. Malan: Dakle, ovo je CS50. A to je CS50 vlastiti Colton Ogden, više o tome tko je glazba možete preuzeti na soundcloud.com/cs50. Dakle, danas ćemo se usredotočiti sve više na umjetnost programiranja. I mi smo se gdje smo ostavili off prošlog tjedna, s naglaskom na očekivanoj razini, što je to grafički programski jezik. I uzeti stvari dolje na nižu razinu, korištenjem više tradicionalni programiranje jezik poznat kao C. No, usput, shvativši da je ista ideja mi govorio o prošlog petka neće se ponoviti, ne samo u ovom jezik C, ali u većini svaki drugi kako mi gledamo na tom semestru. Tako smo nazvali ovu stvar Ovdje ono zadnji put? To prikazuje priopćenju. Tako smo se zove ova izjava. I to ne nešto. To je upute da Računalo ili Scratch moglo izvršiti. A sada, neka je početi nazivajući nešto ovako funkcija, iz razloga što je prije ćemo vidjeti. U međuvremenu, vidjeli smo stvari kao što je ovaj. A to su u pravilu poznat i kao što izgraditi? PUBLIKA: Petlja. DAVID J. Malan: Pa petlje. Dakle, prilično jednostavan. To doslovno čini ono što kaže. A u nule, ako želite nagurati više slagalice tamo, Komad će narasti na to stane. I vidjet ćemo u C koji možemo učiniti istu stvar. Druga vrsta petlje, ipak, u Scratch moglo biti zauvijek, ili postoji bilo koji broj od drugih pristupa. No, uzmimo više generalist izgled, s lica to je vjerojatno prilično upoznat, kod petlje općenito. Mark Zuckerberg: Jedan stvar da računala su stvarno dobri u je ponavljanje naredbe. Kao osoba, što biste dobili stvarno je dosadno, ako vas morao učiniti istu stvar puno puta za redom. No, računalo može učiniti istu stvar milijune ili čak milijarde puta, a ne dosadi, i biti u mogućnosti nositi da se jako dobro. Tako na primjer, ako ja Htio bih svima Facebook sretan rođendan slanjem e-pošte, možda mi se više nego stoljeća zapravo zapisati sve te e-mailove svima. No, sa samo nekoliko linija koda, što mogu imaju sustav pošaljite e-mail svima na Facebook želi im sretan rođendan. Dakle, to je ono što su petlje i zašto oni su vrijedni i nešto da računala mogu učiniti vrlo dobro. DAVID J. Malan: Dakle, ako ti si bio primatelj nekih od CS50-a i Dropbox je prostor kasno, to je zapravo upravo ono što smo učiniti, pomoću koda sasvim tako. Mi u biti imamo veliki proračunske tablice u koje ljudi su bili unosom njihova imena i adrese e-pošte. I pisali smo mali dio koda koji može ponoviti preko te adrese i ispljunuti jedinstvene adrese u Slučaj netko podnio više puta. A nakon toga, šaljemo automatizirani e-mail od CS50 je bot, uključujući i kupon. Sada smo i pogledao to izgraditi zadnji put. A to je posebno primjer čega? Dakle, da, logički izraz. I oblik je značilo uhvatiti to kao dobro. Svi takvi pitanja tvore točno ili netočno u Scratch će izgledati malo nešto poput ovoga. I mi to nazivamo logički izraz. To je doista istinita ili lažna, da ili ne. To je način da odgovorite na pitanje. A u međuvremenu možete koristiti ove Boolean izrazi unutar konstrukata poput ove, koja je od Naravno, uvjeti ili grane, poslovična vilice na cesti. I oni mogu tražiti ne samo kao što je ovaj, ali oni također mogu su drukčije povezani s njima. A zapravo možete imati tri put vilica na cesti ili četiri način vilica na cesti, jednostavnim gniježđenje ove stvari, kao što ćete vidjeti u Scratch Ako to već niste učinili. I kao što se može učiniti u C kao dobro. Uzmimo još jedan općem Pogledajmo alumnist, kao i, koji mogli predstaviti drugačiji pristup na takve stvari nazivaju uvjeti. Bill Gates: Ljudi čine odluke svaki dan. Na primjer, prije nego što idete van tebe vrste imaju IF, ako pada kiša onda sam potreban da bi jaknu. I računala su nevjerojatna jednom vas odlučite one vrste izvještaja, da se pouzdano može izvršiti te stvari na nevjerojatnom brzinom. I tako je računalni program uistinu je malo matematike i neke ako je izjava gdje Odluka dobiva napravio. DAVID J. Malan: Dakle, kao što možda znate, to je bio ljudi poput Billa Gatesa, Paul Allen, a drugi da je uistinu započeo Takozvani osobno računalo Revolucija prije nekoliko godina. Mislio sam, prije nego što zaronite u neku Administrativno, mi bismo se odnose na priču iz Albuquerquea, Novi Meksiko Prirodoslovni muzej i znanosti, gdje su neki od Billa Gatesa ' i Paul Allen je najraniji priče pripovijedaju kako smo sada današnja računala i Macove i više. Za to, međutim, moramo dva volontera koji imaju vrlo dobre naracije glasove čitati skriptu naglas. Dobro, o tome kako se u tamo. Dođi gore. A što je ispred ovdje. Dođi dolje. Zauzmite svoja mjesta ovdje. Kao što ste vi došli gore, par administrativnih najave. secira proces odabira sekciju, će započeti ove Srijeda u petak. Više o tome ovaj dolazak U srijedu u predavanju. Super sekcije, u međuvremenu, su nešto što nudimo sljedeći tjedan pri čemu cijeli razred je pozvan sudjelovati u prilično velikim razmjerima sekcije, jedan više udoban, jedan manje ugodno. A mi ćemo objaviti pojedinosti toga, kao i, kasnije ovog tjedna. U međuvremenu sekcije, sami, će početi U tjedan dana tri tečaja, nula indeks, što znači da su to dva tjedna van. Tako da se ne brinem. Niste propustili ništa u tom smjeru. U međuvremenu, u međuvremenu, ako vas Za sva pitanja administrativno, ja i Devon i Gabea e-mail i Rob na ovoj adresi ovdje. Konačno, problema postaviti 0 je, naravno, se. Možda ste to primijetili na web stranici tečaja je. To bi trebalo pružiti Svi odgovori na pitanja možda ste na putu za kako započeti s problemom setu. Ali, ako se nađete u potrebi za ruku pomoći, svim sredstvima prisustvuju radno vrijeme, Ponedjeljak, utorak, srijeda, četvrtak od ovog tjedna u večernjim satima u četiri blagovaona dvoranama. Pogledajte taj URL tamo pojedinostima gdje radno vrijeme mora biti. Sada ćemo u skladu s našim dva gosta danas ovdje. Koje je tvoje ime? JAY PAUL: Jay Paul. DAVID J. Malan: Jay Pavao, lijepo da zadovolji vas. Hikari: Hikari. DAVID J. Malan: Hikari? Hikari: Hikari. DAVID J. Malan: Hikari. Drago mi je što je dobro. Jay Paul i Hikari imati u Ispred njih na ovim glazbe stoji dvije skripte koje sam ispisane jutros iz Novog Meksika Prirodoslovni muzej i znanosti. I ono što sam mislio Ja bih to na pretek je pratiti recitiranje skripte i ove povijesti s nekim vizualnim slikama, bez iznenađenja. I ono što sam učinio u unaprijed je prehighlight na vašem pismu ono što bi trebao pročitati, a ono što bi trebao pročitati. A mi ćemo biti Samo Alternativna stavci. Dakle, to je slično kao što bi mogao učinili na engleskom klasi. To je stvarno natjerati publiku da vjeruju u svoj priči ovdje. Hoćemo li? Dakle, priča je ovdje, imamo BASIC, a počinje u Cambridgeu. JAY PAUL: Bila je zima, 1974, u Cambridgeu, Massachusetts gdje su zime može biti hladno. Bradat, duge kose koledž ispad nazvana Paul Allen je drudging preko Harvardu Trg, zaokupljen svojim mislima. Njegova glavna preokupacija u tim danima je kako se njegov prijatelj, Bill Gates, napustiti školu i otići u poslovanju s njim. Hikari: dvojica već otišao kroz brojne poslovne pothvate zajedno, s početkom u Lakeside Škola u Seattleu gdje je su isplaćene u slobodno vrijeme računala na testirati PDP-10 računala na lokalnoj vrijeme dijeljenje tvrtku. Najnovija plan bio je da prestanu Škola i formira softversku tvrtku. Allen je napustio Washington Državno sveučilište. No, u posljednji trenutak, Gates odlučio staviti sa Harvarda. JAY PAUL: Tog dana, prelazeći s Harvarda Trg, Allen uočio siječnja, 1975 Pitanje Popular Electronics s naslovom Zemlja zaustavljanja, Prvi svjetski miniračunalne Kit konkurirati komercijalnim modelima. Ispod naslov bio slika maloj kutiji ukrašena svjetlima i prekidačima. To je bio nazvan MITS Altair 8800. I Allen je znao da je to ono što on je tražio. Hikari: Dani rasprave slijedio. Allen i Gates razumio Značaj Altair. Oni su razgovarali često O mikroprocesora i čekali da vide što će biti učinjeno s njima. A bilo je Miniračunalo kit na cover popularnog elektroniku. To očito nije imao softver još. Oni su zamislili nacija programeri silaznom na rukavice. I tako su zvali Ed Roberts, šef tvrtke, tvrdeći da ima verziju Osnovni programski jezik gotovo spreman za Altair. Nisu. I Roberts morao znati da nije. On je dobivao 10 poziva dnevno od ljudi koji su imali OSNOVNI gotovo spreman. I njegov dioničko odgovor je, "prva osoba koji se pojavi sa rad OSNOVNA dobiva ugovor. " JAY PAUL: Gates i Allen nikada nije vidio Altair. Oni nikada nisu ni vidjeli Intel 8080 mikroprocesor u srcu Altair. No, nekoliko godina ranije Allen je napisao program na mainframe računala koja simuliranom Rad prethodnog Intelom mikroprocesora. I ovaj put oni će učiniti istu stvar. Hikari: S Intelom 8080 upotrebu na njegovoj strani, Allen je sjeo na Harvard PDP-10 računala i napisao emulator i softver alate potrebne za napraviti programiranje. U međuvremenu Gates zaustavio ide na nastavu i posvetio za projektiranje osnovne, korištenjem svaki trik Znao je da se veličina dolje ispod 4 kilobajta. JAY PAUL: Out u Albuquerque, Ed Roberts dobila je poziv od Gatesa molba za detalje o tome kako Altair obrađene određene rutine. Nitko nikada nije zatražio da se prije. I Roberts je počeo da se zainteresirani. Hikari: S razvojem alati i dizajn spremni, Gates i Allen je napisao Kod na PDP-10, angažiranja još jedan student s Harvarda, Monte Davidoff, pisati matematičke rutine. Nakon pravomoćne noći programiranje, Allen je dobio na avion dostaviti Njihov temeljni na rukavice. Proveo je zrakoplov voziti se brinuti. I još u Cambridgeu Gates je zabrinjavajuće. Oni su testirali njihovim osnovnim i to je radio na emulator. No, što ako emulator je bio u krivu? JAY PAUL: Kako je u zrakoplovu prilazi Albuquerque, Allen je shvatio da je njihova BASIC, sada uredno sadržane na maloj role bušena papirna traka, bi biti beskoristan bez zasebna Program pod nazivom punjača, koji će reći kako Altair čitati papirna traka biće plasirao u teleprinter stroj. On je izvadio svoju bilježnicu i brzo pisao niz programa za učitavanje u Skupštini jeziku, a zatim ručno prevedene da u 1s i 0s Altair bi razumjeli. Hikari: Allen je očekivao čista, mala, high-tech tvrtke trčanje po muškaraca u poslovnim odijelima. Dakle, on je bio iznenađen kada je Roberts upoznao ga je u zračnoj luci izgleda kao ranču ruka. Roberts je bio iznenađen. Kad je pao na Harvard programer na skup hotel, Allen je morao priznati da nije mogao priuštiti sobu. JAY Pavla: MITS, sama po sebi, bio je nalazi u prašnjavim trgovački centar. Unutra se na pretrpan radni stol bio Altair učitan s 5 kilobajta od memorije i povezan kabelom na teleprinter stroj. Roberts i glavni inženjer, Bill Yates, čekao iščekivanjem kao što je Allen izabiru svoje utovarivač Program u Altair. Teleprinter počeo chugging kako se izvukao Papirna traka preko trake čitatelja. To je možda i 15 minuta za učitavanje programa. Zatim teleprinter naglo tiskana memorije redak, a zatim spremni brz, Allen i počeo tipkati Nekoliko ispitivanja naredbe. Za svačiji čuđenje, Softver je radio. Bilo je bugova, naravno. Ali glavna stvar je to radio. Hikari: Kasnije, na putu prema 3,00 dolara ručak kod Pavla, osa letio u prozoru kamioneta kamiona i ubola Allen na ruci. No, u tom trenutku ništa mogao pokvariti raspoloženje. Altair je sada imao svoj osnovni, Prvi komercijalni softver za dom Računalo, izradio Paul Allen i Bill Gates, posluju kao Microsoft. DAVID J. Malan: Mnogi Zahvaljujući našim čitateljima dva. [Pljesak] DAVID J. Malan: Sada imate izbor, Prije nego što napustite, od svjetlucavi ili sjaj u dark-- Oh, pričekajte jednu sek, wait-- svjetlucavi i svijetle u mraku slona iz CS50 vlastite Cheng Gonga. Hikari: Ah, hvala ti. DAVID J. Malan: Sve U redu, hvala vam toliko. [Pljesak] DAVID J. Malan: Tako istinita priča. To će reći da je sve to strojevi i lakoća s kojom smo koristiti ih sada i uzeti zdravo za gotovo, stvarno počelo ovdje, samo nekoliko koraka iz tog stvarnog kazališta. A sada je danas, ako ne sam, ovo je Maxwell Dworkin, računalo Zgrada znanosti, također iza ugla. A na drugom katu ova Zgrada se objesiti tri stranice iz izvornog koda koji Bill Gates i Paul Allen je napisao. U stvari, ako je uporaba zumirate u možete vidjeti ne samo njihova imena Izvorni tipa, ali njihovi potpisi da su ukrašavale Nekoliko godina unatrag kada su zadnji put posjetili. No, ono što je posebno uvjerljiv O to je ono što su krenuli raditi bio je napisati program koji će bi ostali korisnici mogli pisati vlastite programe. U to vrijeme sve je bilo s to Altair stroj izrađen od strane rukavice. A sve što im je potrebno je neki način što ga čini lako za hobisti i ljudi Sviđa nam se u ovoj sobi zapravo Program da ne mora nužno razumijevanje Kod skupština, ili stroj broj, ili ne daj Bože, 0s i 1s. Mi programeri, kao što su oni u ovoj sobi, mi želim biti u mogućnosti izraziti i sami mnogo više kao pseudo kodu čak i ako je malo više gnjida izbirljiva nego što smo razgovarali prošlog tjedna. Mi ne želimo pisati kod ovako, koja Paul Allen i Bill Gates učinio. Mi, umjesto toga, želim napisati kod koji izgleda malo više user friendly. Sada je to jezik poznat kao BASIC. A brojeve redaka postoje ono što vas koristiti za jednostavno numeriranje redaka koda da pišete. Mi čak ne moraju to učiniti ovih dana. No, možete vidjeti ovdje Kako PRINT "Zdravo, svijete" bi doista vjerojatno ispisati upravo to. I tako ono što Bill i Pavao učinio je osnažiti ljude da pisati kod ovako umjesto of-- ako pogledamo informatika wall-- kod ovako. Naime, nedavno je CS50 imali priliku sjesti s profesorom Harryjem Lewis u Computer Science odjela, koji zapravo učio Bill Gates je prije nekoliko godina, i stoji ovdje pred te tri stranice izvadaka. Idemo pogledati. HARRY LEWIS: Ono što imamo ovdje je popis ranoj komad softvera napisao je Bill Gates i Paul Allen, osnivači Microsoft. Dakle kod je zanimljiva iz dva razloga. Prije svega, on postaje Microsoft prvi proizvod, koji je bio tumač za osnovni programski jezik. A kao drugo, ovo je bio jedan od prvih pokušaja stvoriti tumača tako obična ljudi bi mogli koristiti osobna računala. Dakle, Bill Gates je preddiplomskog studija na Harvardu. Počela sam predavao na Harvardu 1974. To je učinjeno u 1975. Tako je bilo rano u svojoj karijeri i rano u svojoj karijeri. Ja sam zapravo učio Billa Naravno, u ovo vrijeme. Paul Allen nije bio Harvardski student, ali on je bio u srednjoj školi kolegica Billa Gatesa. Ako ste došli i tražiti na popisu, vi ćete zapravo pronaći treći ime, Monte Davidoff, koji je Gates je kolegica ovdje na Harvardu. U redu, pa evo Zanimljiv komentar ovdje. On kaže: "U 4K možete izbrisati korijen ali za petlje treba i dalje raditi. " U redu, pa što to znači da postoji su dva načina da se prevedu ovaj program. Jedan je bio za rad na verziji ove Altair računala koji je imao samo 4K riječi memorije, 4.096 riječi memorije. No, velika verzija imala 8K. I stoga, što to govori je da je u verziji 4K morali ste izbrisali neki kod kako bi ga stane. A jedna od stvari da će se brisati bi korijen rutinu. No, očito za petlje i dalje treba raditi čak i kad ste u sastavljanju dolje za samo 4K verziji računalu. DAVID J. Malan: Dakle, jedna od tema, kao što ćemo vidjeti u računalnoj znanosti, je taj pojam raslojavanje i apstrakcija, i stvarno stoji na ramenima od ljudi koji su došli prije nas, a ne za razliku od nekih od Billa Gatesa i Paul Allen narativni ovdje. A što to znači da danas možemo uzeti za gotovo da su stvari zapravo lakše za nas da pisanje koda. Doista broj, kao što smo rekli, u petak, je više tehnički poznat kao izvornog koda. I to je taj engleski kao sintakse to je više pravilan i dobro definirana nego nešto poput pseudo kodu, za što ne postoji formalna definicija. I danas je ono što ćemo da se usredotočite na je izvorni kod da izgleda ovako, što doduše na prvi pogled izgleda potpuno zagonetan. I iskreno, to je daleko više estetski složeniji nego temeljni program. Sve to program radi, Podsjetimo, je ono što smo rekli? To samo ispisuje "Pozdrav svijetu". A ipak pogledati sve stvari trebamo omotati oko tog vrlo jednostavnog izraza. Ali ne zadugo sve ove linije i više učinit će puno bolji osjećaj za vas. A protok je kako slijedi. Ono što nam je potrebno na raspolaganju je da se kod, kao izvor kod koje smo upravo vidjeli. I mi trebamo novi program da ga pokrenuti kroz. Trebamo algoritme koji mogu pretvoriti izvorni kod, kao što je ovaj, u objektnom kodu, 0s i 1s. Drugim riječima, ono što ćemo saznati danas je kako to učiniti, pisati Izvorni kod do vrha, to prođe kao ulaz u poseban Program poznat kao prevodilac, i mi ćemo proizvoditi objekt kod. Koji je samo fancy način rekavši da će se nešto da izgleda ovako, to prođe u programu pod nazivom prevodilac, proizvodnju objekt kod da izgleda ovako. Dakle, to su doslovno obrasci 0s i 1s koje razumiju Intel računalo ovih dana, da, ako tumači CPU, mozak unutar računala, Doslovno će ispisati, vrlo jednostavno, "Pozdrav svijetu". Sada postoji način više 0s i 1s od tebe bi se nadamo da će biti potrebno za to. Ali to je zato što gradimo na podosta složenosti da smo od sada može uzeti zdravo za gotovo. Drugim riječima, puno pametnih ljudi su nam dali puno cool alata i moćan softver s kojim smo Sada možete napraviti projekte naše. Pa počnimo. Dok je prošlog petka, i Problem za Set 0 ovaj tjedan, vi ćete se igrati u svijet koji izgleda ovako. Počevši od danas, a za problem Set 1 sljedećeg tjedna, kod će izgledati malo više tajanstven, ali funkcionalno je će biti isti. Dakle obavijest, vrh je ispočetka, Dno je C. Iskreno Scratch je puno više user prijateljski i pristupačan. Ali ako sada usporediti vizualno vrha do Dno, tu je vrsta jedan prema jedan podudarnost između slagalice i jezik Uskoro igrati. Konkretno, kažu, plava zagonetka komad do vrha, je očito ekvivalent kojoj ključnu riječ ili posebni izraz u tom jeziku pod nazivom C? PUBLIKA: printf. DAVID J. Malan: printf. To znači formatirani ispis. A to je samo fantazija način govoreći printf u C će biti izjava ili funkciju koji ispisuje nešto na zaslonu. Što se ispisati na ekranu? Što god vam reći da unutar citati, unutar zagrada. Pa opet, doduše, postoji puno stvari da imate na umu, zagrade, citati, zarezom, i sve to. No, sve to je vrsta od bespredmetno. Zanimljivo takeaway za sada je da je recimo blok u Scratch je prilično ekvivalentno printf izjavu u C U međuvremenu, žuta zagonetka komad do vrha, kada je zelena zastava kliknuli, Vjerojatno je ekvivalent onome što Ključna riječ ovdje? PUBLIKA: Glavni. DAVID J. Malan: Pa glavni. Možda int, možda nevažeće. No, glavna vrsta zvukova kao što su važno je, i doista je. Dakle, kada zelena zastava kliknuli je, opet, zagonetka komad koji započinje Cijeli Scratch programu. No, mi ćemo sada početi zovete da je glavni, ova funkcija poznat kao glavna. Sada je u međuvremenu ćemo se generalizirati to na sljedeći način. Bismo mogli nazvati reći funkciju. I to može izgledati posebno kao što je ovaj. Pa, što je s petlje? Ako želimo pokrenuti pretvaranje ili prevodio više u Scratch do C, ova stvar ovdje očito samo kaže: "Pozdrav svijetu" zauvijek. Dakle, ako ste to povezati skripte s mačkom u Scratch, To samo će zadržati govoreći u nekoj vrsti crtani mjehura, "Pozdrav svijetu, Pozdrav svijetu, Pozdrav Svijet, "ad nauseum, zauvijek. Ako želimo napraviti nešto slično u C, to će izgledati pomalo zagonetan. Ali možemo postići isti rezultata, jer ćemo na kraju saznati, sa sintaksom kao što je ovaj. Ja ću opet koristiti printf, jer je na kraju dan Želim ispisati "Pozdrav svijetu". I ja sam očito pomoću ključna riječ koja se ne zauvijek. To je umjesto riječi dok. Ali samo semantički u Engleski, dok je vrsta sugerira neku vrstu petlje ili ciklusa. Tako da se događa da se ključna riječ koja C koristi. I dok je istina, zašto vrijeme Istina učinkovito znači zauvijek? Pa, dok su, kao i mi uskoro Cijenim sve više, ima tu zagradi pored njega gdje možete staviti Boolean izraza. I tako dugo dok to Izraz je istina, ovaj broj, koji je označen između ove dvije kovrčava aparatić kao i mi ćemo ih nazvati, samo će se držati i opet radi. Dakle, istina je istina. Dakle, dok pravih sredstava Upravo to zauvijek. To je gotovo glupo izgraditi izraziti sebe. No, tu nije bio zauvijek ključna riječ u C. Tu je bio dok. A tu je bila vrlo jednostavna Logički izraz kao što je istina. I tako to, vidjet ćemo, postiže isti rezultat. Kako inače možda provesti petlju? Pa, u Scratch možda ćete Teško kod određeni broj iteracija u petlji ovdje. I to je upravo ono što smo mogao učiniti u ovoj verziji C, pri čemu imamo tzv for petlje. I za petlju ovdje će kako bi ponoviti, nešto skriveno, od vrijednosti 0 Na gore da, ali manje od 10. Sada varijable u nule. Vi ne bi imali Povod za korištenje tih. No, ono što je poanta, u cjelini, varijable smo rekli prošli tjedan? Što je to? Publika: Bodovi. DAVID J. Malan: Za istaknuti? Oh, ističe. U redu, praćenje točaka, Na primjer, u igri. Ili općenito rade što je s varijablom? Koja je korist od njih? PUBLIKA: memorije. DAVID J. Malan: Da, tako memorije. To je za spremanje nešto. I vrsta glupog vizualnog sam koristio Posljednji put je bio poput ove staklene zdjele. A ako smo htjeli pohraniti nešto unutar varijable, primjerice upravo sada Vrijednost je šest, jer postoji Šest je ping pong loptice u ovdje. To je samo neka vrsta pohrane Kontejner da se ispod haube provodi se s bitova, 0s i 1s, Međutim, računalo će se dogoditi za to. Tako je u nule, ako smo Želite imati varijablu, možemo koristiti naranče blok kao što je ovaj. Nazvat ćemo taj brojač u ovom konkretnom slučaju. Ja ga inicijalno 0. I ono što sam tada učiniti? Zauvijek, kažu brojač, koji, ako igrate s tim u Scratch, samo ćete vidjeti nule. Mačka ili bilo kostim ste stavili na on će govoriti broj u pitanju. Promjena brojač za 1 je kao i povećavati za 1. I tako to ide računati s Pa što što? Od 0 til beskonačnosti, ili do nule pauze, ili dok ne vrsta gube interes za promatranje koliko visoko on zapravo može računati. Pa kako bismo mogli pretvoriti u C? To će izgledati malo zagonetan. Ali opet, ako pogledate svako ovih redaka pojedinačno oni vrsta lineup općenito. Dakle, očito int će imaju neki poseban smisao u C Mi ćemo opet vidjeti. Kao na stranu, to znači cijeli broj. Dakle, to samo znači broj. Dakle, to je vrsta staklene zdjele želim, jedan koji može pohraniti brojeve, Ne ping pong loptice. A ja ću koristiti znak jednakosti tamo je dodijeliti vrijednost 0. Tako da je sasvim kao set brojač na 0, ali u C. U međuvremenu, dok je istina, to je bilo ekvivalent, naravno, da se zauvijek, iako je pomalo zagonetan, a onda unutar vitičastih zagrada. A možete se sjetiti tih vitičastim zagradama, koji možete upisati na tipkovnici, kao što je stvarno bio poput zakrivljenosti u ove žute blokove petlja u nule. On obuhvaća više linija koda. Printf je dobivanje pomalo zastrašujuće sada jer sam vidjeti ne samo citati u zagradama. No, ono što je još novo sintaktički u ovom primjeru? Postoji posto d. A onda Obrnuta kosa crta n postoji. Nismo prije vidjeli da je, čak i iako nisam to spomenuo. Zatim tu je zarez. A tu je i brojač. No, vidjet ćemo u samo Trenutak da je to samo standardni način govoreći ispisati "Decimalni broj", citat, završiti citat, Neki decimalni broj. Ali ja ću ti poslije što to decimale broj. Dakle, činjenica da postoji zarez U ovoj liniji izreka printf, znači ići naprijed i ispis Neki decimalni broj. Oh, i usput, broj bez obzira na vrijednost ove varijable. I tako da bi se ova više Jasno, mi ćemo vidjeti primjer prije dugo uključuje točno printf U kontekstu stvarnom C programa. Sada samo završiti neke od tih konstrukata. Boolean izrazi, možda nećete imati Povod za korištenje ove u svom programu ali možda vrlo dobro, pogotovo ako koristite uvjete. I tako ta dva primjera iz Zagrebite znači ako je x manji od y, ili ako je x manja od y i y je manja od z, kako bismo mogli prevesti to? Pa, u C to je samo će izgledati ovako. A mali grobni, više zagrade, neke čudne znakove za, ali u osnovi Ideje su jednostavne kao što su u puzzle komad svijeta. Mi jednostavno provjere da li se nešto manji je od nečeg drugog. Kako o uvjetima? U Ukratko na engleskom jeziku, što čini komad Scratch koda ne biste rekli? PUBLIKA: Uspoređuje dva broja. DAVID J. Malan: Uspoređuje dva te, ako je x manja od y to govori koliko. Ako je x veći od y ona kaže koliko, inače ako je x jednak y ona kaže koliko. Sada gdje je X i Y dolaze iz? Tko zna. Ovaj komad ispočetka kod je izvan konteksta. No, ono što želimo učiniti sada je prevesti to samo na trenutak vidjeti. Dakle, kao što ste dobili udobna ovaj tjedan u problem Set 0 igranja u ovom svijetu na lijevoj strani, shvatite da se ideje ne mijenjaju ovaj tjedan ili sljedeći ili izvan nje. Mi jednostavno idemo u početi pisati stvari na drugačiji način s našim tipkovnica umjesto našeg miša. Dakle, ako je x manji od y, a postoji neki zagrade tamo, onda postoji neki vitičastim zagradama opet na neki način ga zatvoriti u kućište baš kao i žuta slagalice učiniti. A ja ću printf x manji od Y i tako dalje. Što je lijepo o C, kao što možete vidjeti ovdje, je da ne dobijete tu se gnijezdi, gniježđenje, gniježđenje to je nužno će gurati svoj kod na desnoj strani. Umjesto toga možete imati sve postava uredno sviđa. No, to je samo estetski Detalj ćemo opet vidjeti prije dugo. U redu. Dakle, što nas vraća na ovaj grobni potrazi programa. Idemo zapravo pisati neki kod. Sada kako idete o pisanju koda? Sve ove godine kada ste u vlasništvu Mac ili PC, stolno ili prijenosno računalo, ste zapravo imali sposobnost za početak pisanja programskog koda. Ali ste vjerojatno nedostaje posebna vrsta programa. Vi naravno možete pisati kod. Ali ne možete nužno, iz kutije, pretvoriti taj izvorni kod u odredišni kod, 0s i 1s bez čega na računalu? PUBLIKA: prevodilac. DAVID J. Malan: Dakle, prevodilac, zar ne. Sada većina vas vjerojatno ne posjedujete prevodilac, nikada nisu preuzeli prevodilac. No, vidjet ćete možete ga preuzeti kao i većina bilo koji drugi komad softvera. U svijetu Mac OS, možda ćete preuzimanje ili su već preuzeli nešto što se zove Xcode ili GCC i jeka. Ako dolazite iz Windows vam svijet mogao preuzeli Visual Studio, Visual Basic, okruženja kao što je to. Postoji deseci prevodiocima ovih dana da bi moglo koristiti. No, kratko je to ovdje je da bi bilo boli i, iskreno govoreći, tehnološki noćna mora za stotine osoba s različitim računalnih konfiguracija svima podesiti strojeve na isti način tako da svi možemo biti na istoj stranici. Dakle, ono što mi, umjesto toga, učinite u CS50 se možemo vam dati standardni okoliš, Linux okruženje koje je će izgledati malo nešto kao što je ovaj. Vidjet ćete više o tome u Problem Set 1 specifikacije koje će ići online ovog petka navečer. A što to znači je da ubuduće će biti u stanju preuzeti i instalirati program nazvao CS50 Appliance. I vi ćete preuzeti i instalirate neki drugi program koji se zove hipervizor, što je samo fancy način postizanja toga. Bilo da posjedujete Mac ili PC ili Linux računalo ili Solaris računalo, ili što god luda operativnog Sustav radite, ti ćeš skinuti program zove hypervisor koji je će pokrenuti CS50 Uređaj se na računalu bez obzira na vaš operativni sustav. Hipervizor drugim riječima pretvara naše stvari da se bez obzira na jezik, bez obzira na upute svog vlastito računalo razumije. Dakle, ovo je raslojavanje. I opet, to je neka vrsta tematskih u računalu znanost, zgrada na vrhu stvari. Možda ste Windows. Možda ste Mac OS. No, početkom idućeg tjedna si će se skinuti besplatni komad softvera zove hipervizor. Ti ćeš se skinuti komad softvera zove CS50 Appliance. To će se izvoditi u hypervisor, koji će se izvoditi na vašem računalu. A krajnji rezultat je da svatko od nas će se imaju jednostavan prozor poput ovo na vašem Mac ili PC koje nam daje iluziju sve i isti operacijski sustav, bez bilo koje druge Utjecaj na vašem računalu. A možete preko cijelog zaslona to i bitno se ponašati kao da radite operativni sustav pod nazivom Linux, što je ono što CS50 Uređaj je temeljen na. Tako ćemo zapravo koristiti taj sada napisati program. Možete napisati program korištenjem Microsoft Word. Možete napisati program korištenjem TextEdit, ili Notepad, ili WordPad, ili prilično mnogo bilo riječi Program za obradu ste ikada koristili. No, stvarnost je da ne bi trebali koristiti stvarno bilo koji od tih programa. Vi sigurno ne bi trebao koristiti nešto poput Microsoft Word, koji ima podebljano s kojima se suočavaju i kurziv i veće fontove i manje fontove, jer računalo ne stalo bilo koji od toga. Sve računalo će se stalo je Engleski kao i upute pisane u C Pa što ćemo učiniti unutar od CS50 Appliance se koristiti program slobodno na raspolaganju, a to je unaprijed instaliran u ovom Uređaj, nazvan gedit. I gedit je samo super jednostavna tekst editor kao što je Mac OS-a TextEdit, kao što je Windows Notepad da će se to izgleda malo nešto ovako. Tako ćemo zapravo i nije pogled na slajdovima od toga. Ali neka se zapravo ide u Sama okolina. Ja ću ići naprijed i prijavite se, u ovom drugom prozoru, mom CS50 Appliance, što sam unaprijed instaliran na laptopu ovdje. Uočite da, kao što su Windows i Mac OS, to je dobio neki od izbornika. Kao i Windows stavlja je tamo dolje, umjesto Mac OS, što ga stavlja tamo dolje. No, stvarnost je da je sve vrste isto. I ovdje je cijeli Hrpa softvera. Tu je Dropbox. Postoji cijela hrpa pribora, grafički programi koji ćemo koristiti kasnije u roku za problematične setovima. Tu je web preglednik izgrađen u tako da je to punopravnog računalo unutar računala. Ali ću kliknite ovaj leftmost bijelu ikonu ovdje, koji je simbol za gedit. I to će se otvoriti prozor koji ima tri panela na njega, lijeva, gornja jedan, a dno je jedan. Sada je u tom gornjem desnom onaj koji Idem zapravo pisati neki kod. Tako ćemo to učiniti ,. Ja ću ići na File, Save. A možda ne ikada vidjeli Prije nego ovaj prozor. No, to je kao Mac OS ili Windows. To je samo prozor sa svim mapama da imam unutar ovog računala. A ja ću spasiti Datoteka kao hello.c. I ja ću otići naprijed i kliknite Spremi. I sada primijetiti imam karticu u gornjem lijevom zove hello.c. Dakle, vjerojatno prilično upoznati, čak i ako ste ne iskorišten ovaj program prije. A sada ću upisati u onima prilično zagonetan niz naredbi kako smo vidjeli maloprije. Uključiti, standardni ja / O.h. Više o tome uskoro. Int main void, otvoren kovrčava Brace, zatvorena kovrčavu braće. I onda unutar postoji ja mislim da je gdje smo imali "Pozdrav svijetu", sa zarezom. I sad spremili. Dakle, ovo je program napisan u C, napisao, dakle, u izvornom kodu. Ali ja ne mogu samo pokrenuti ovaj program. Nekako mi želimo udvostručiti kliknite na ikonu negdje, ali ne postoji druga ikona od izvornog koda datoteke. Što, opet, je proces sada da Moram pokrenuti ovu datoteku putem? PUBLIKA: prevodilac. DAVID J. Malan: Pa prevodilac. Dakle, u različitim računalima ste učinite to na različite načine. Ali ono što smo učinili ovdje u CS50 Appliance to je Predstavnik kako biste mogli to učiniti na mnogo različitih sustava, Ja se jednostavno ću pokrenuti naredbu zove marka. I napraviti doslovno će to učiniti. Učini me programa. Tako da će se pokrenuti prevodilac za mene. A ime programa Želim da se pozdravi. Sada bi je program. A da je dovoljno da se pametna shvatiti da ako kažem da pozdravi, to će izgledati automatski za datoteke zove hello.c Upravo zato što je način na koji je konfiguriran. Dakle, kad sam sad pogodio Enter ovdje, ovo luda grobni linija upravo je dobio pogubljeni. I vjerujte mi, prije dugo, u roku od samo nekoliko dana, vi ćete shvatiti što sve od te gluposti sredstvima. No, za sada, samo znam da bi Pokrenute izvršenje prevodilac. Drugim riječima, utvrdio prevodilac na mom računalu to je unaprijed instaliran na CS50 Appliance da ćemo predati vama u problem Set 1. I onda je hello.c kao ulaz, a producirao očito 0s i 1s kao izlaz. I po defaultu što je to ipak štedi ti 0s i 1s u datoteku pod nazivom Pozdrav. I premda ove sintakse također mogu biti novo za vas, jednostavno govoreći točku slash Pozdrav će biti znači kojim sam pokrenuti ovaj program. Za sada i za barem par tjedana, gotovo sve programe Pišemo će biti u crno-bijeli tekst prozora. Ne miševi, ne klikanje, nema prozora, nema ikone. Mi ćemo i dalje ostane jednostavan i usredotočiti se na temeljne ideje početku prije nego dođemo do nečega višoj razini, na primjer, poput break out igre koji smo razgovarali o je u prvom predavanju prošlog tjedna. Dakle, kada sam pogodio Enter ovdje, to je ekvivalent u tekstu samo okoliša udvostručiti klikom na ikonu pod nazivom Pozdrav. Što očekujete volju dogoditi kad sam udario Unesite onda? PUBLIKA: To će ispisati "Pozdrav svijetu". DAVID J. Malan: Nadam to će ispisati "Pozdrav svijetu". I doista je to učinio. Sada je došlo do neke grobni sintakse ovdje. Idemo natrag za samo trenutak i vidjeti možemo li Ne mogu početi zaključiti samo po petljaju, težak i pogreške, o tome što se ovdje događa. Što ako se osloboditi od obrnute kose crte n? Sada neki od vas koji ste programirani prije vjerojatno znam odmah što to znači. No, za one od vas koji ste Nikada prije programirani, barem mislim na sebe što se događa za promjenu, kada sam ponovno održati ovaj program? Tako da ću se vratiti dolje na mom Malo crno-bijeli prozor, koji je prozor u kojem Ja mogu sastaviti to. Idem rekompilirati zdravo. Idemo vidjeti ista grobni niz naredbi. A ja ću učiniti dot crta pozdraviti. I sada netko, ako bi, tko nikada nije programiran prije, Što bi moglo biti drugačije ovaj put? Da. PUBLIKA: To neće zaustaviti ispis "Pozdrav svijetu". DAVID J. Malan: To se događa to-- žao? PUBLIKA: To neće zaustaviti ga ispisujete? DAVID J. Malan: Neće zaustavljanje ispisa "Pozdrav svijetu". Dakle, nije loša ideja. Ostale ideje? Da. PUBLIKA: Poruka o pogrešci? DAVID J. Malan: Greška Poruka, u redu, mogao biti. Što još? PUBLIKA: To bi moglo ispisati nosač sa zarezom, kao i? DAVID J. Malan: Možda ispis nosač sa zarezom, kao i. Pa možda da Obrnuta kosa crta onda je neki vrsta čena i to je važno. Bilo koji drugi misli? Dakle, sve dobre ideje. A u stvari, to se događa se poruka o pogrešci. To je vjerojatno najvjerojatnije biti odgovor u cjelini u idućih nekoliko tjedana kao što smo saznali da se kod ovdje. No, za sada ne zaboravite da računala samo ne ono što im kažem. Slično kao i smiješnim kikirikija maslac i žele primjer. Naša ljudska računala su samo trebali učiniti ono što im je činiti. Dakle, u ovom slučaju, ako nemojte reći računalo za pomicanje kursora na to treptanje Sljedeći linija, to neće to učiniti. Dakle, kada sam pokrenuti ovaj program Sada, primijetiti razliku. Izgleda kao kukac. To je estetski bug, možda. No, ono što je drugačije o tome izlaz u odnosu na posljednji očito? Da. PUBLIKA: To nije učinio novu liniju. DAVID J. Malan: To nije učinio novu liniju. Sada one od vas koji ima možda napravio web stranice prije, možda znate BR oznaku ili stavka oznaka, vrlo slični u duhu. Web preglednik će vas ignorirati dok ti to točno reći što učiniti. Slično tome, je jezik poput C samo će učiniti ono što vam reći da učinite. Dakle, iz razloga što sve ove primjere, Do sada, imamo vrsta ležerno je ovu kosu crtu tamo, to je sredstva kojim se izraziti kao novi redak karakter, da se tako izrazim. A možete vrsta cijeniti, možda, da će to izgledati glupo ako ništa drugo. Ako sam htjela novu liniju, samo tipke Enter, a zatim vrsta od klanja kod kao što je to Ne treba stvarno trljati vam na pravi način. A čak i ako ne stvarno briga u ovom trenutku, shvatit ćete da to nije posebno dobro izgleda dio koda. I tako ono što svijet Prije odlučili godina je da kada želite staviti kursor na novoj liniji izrijekom, morate izričito reći Nova linija, Obrnuta kosa crta n. I tu je neki drugi simboli poput toga. No, za sada samo ćemo usredotočiti se na obrnute kose crte n. Sada ćemo napraviti program Malo više zanimljiv. Ja ću ići naprijed i ovaj put otvoriti novu datoteku. Ja ću spasiti ovu kao HELLO-1.c. I samo za slatkiš, idem idi stavi ga u moju Dropbox mapu. Kao što ćete vidjeti u CS50 Dokumentacija za aparat, kasnije ovaj tjedan za problem Set 1, mi ćemo poticati li koristiti Dropbox ili Neki ekvivalent usluga, jer tada sve vaše Kodeksa će biti podupirač gore automatski. I to je razlog zašto sam otišao u tu mapu ovdje. A sada ću napisati malo drugačiji program. Uključiti, standardni ja / O.h, int main void. I onda ovdje printf, Pozdrav svijetu, što je točno isto kao i prije. Ali sada želim ispisati nešto to je malo drugačije. Želim ispisati, kažu, "Halo, je David." U redu, tako očito, što bi trebao, nadamo biti slučaj da ako sam kompilirati Ovaj program, repriza ga, to će reći: "Zdravo, Davida." Ali što ako želim uvesti ova vrsta varijable, pojam kontejner koji će pohraniti D--V-I-D i nije teško kod ga u mom programu. Pa što ako sam početak radi nešto poput ovoga? Gudački e, pa to je promjenjiva. Ako želite niz, a.k.a. riječ ili frazu. Redoslijed likova je što smo u programiranju nazvati niz. Samo ćemo se općenito poziva to je zato što je lijepo jednostavan naziv. Ali mogu ga nazvati ništa. Ja ću reći String s dosegne Citat završiti citat, "David", zarez. A sada želim da ubacite D--V-I-d u ono što sam tisak. I prije nego što smo vidjeli teaser na Ekran neke posebne sintakse koje nam je omogućilo da zamjena u vrijednosti. Ono što je posebna Simbol nekoliko slajdova prije? Dakle posto. U to vrijeme je bilo posto d za decimalni broj. To zapravo ne čini relevantnom ovdje. Ispostavilo se da postoji još jedan odsto simbol, što je s odsto, što je kratica za rezervirano mjesto za nizu. Tako sada, vrlo jednostavno, ja sam ići napraviti Hello-1, jer ova datoteka se zove Pozdrav-1.c, i pritisnite Enter. I sam zeznuo. Što se događa? Pa, evo gdje moramo početi Cijenimo da smo u ovom naredbom Linija okruženje, ovo Samo tekst okoliš. Nema klikom na ikone kao što je mapa sada. I mislim natrag trenutak prije. U ono mapu sam ti rekao Bio sam spas moj broj? Tako Dropbox mapu. Mogao biti pozvan ništa. No, to će se dogoditi da se zove Dropbox. Tako sam nekako potrebno je dvostrukim klikom na da Dropbox mapu kako bi dobili u njega i doći kod mene Kod naziva Hello-1.c. Zapravo, neka mi ići naprijed i smanjili Ovaj prozor samo na trenutak. Baš kao i Windows i Mac OS, tu su mape u Linuxu. Postoje mape u CS50 Appliance. To je samo sada smo ograničavajućeg da nas ovaj tekst okruženju. Ali, ako sam dvaput kliknite na Dropbox, primijetit postoji je datoteka koja želim sastaviti. Ali, moram to crno-bijelo terminala prozor, da se tako izrazim. Ali moram, dakle, da se presele u tu mapu ili katalog. Tako nešto kompliciranih, ali ćete se naviknuti na ovo previše. U svijetu Linuxa, što opet je operativni Sustav vodimo unutar CS50 Aparati, postoji naredba zove cd. Što znači da možete napraviti CD, prostor, Dropbox. CD-a, promjena imenik. Točno. Natrag u dan, kada su ljudi bili izmišljanje računala i operativni Sustavi kao što je ovaj, oni su htjeli Upišite Najmanje tipke moguće. Dakle, najlakši način za reći Uđite bio cd. Dakle, ako sam pogodio CD, svemirska Dropbox, primijetiti ono što je ovdje promijenio. Unutar zagrada Uređaj je vrsta od mene na ruku i podsjećajući me gdje sam ja. Dakle, otvorena mapa Dropbox. Ako ja sada upisati ls za Popis, opet jasna, jer ljudi nisu htjeli upišite natrag u dan L-i-s-t. Tako su umjesto toga napravio je LS. Unesite. Obavijest vidim dvije stvari, HELLO-1.c, i onda je to zagonetan stvar, izvor 1m. To je samo moj način da se kaže izvorni kod za tjedan 1 u ponedjeljak. To je mapa sam skinuti s CS50 stranice koje sam napravio ranije danas i samo ga stavite u Uređaj unaprijed. No, za sada jedino što možemo stalo je stvaranje ovog programa. Dakle, kada sam tip da pozdravi-1, Enter. Dovraga. Nešto je pošlo po zlu. Tako ćemo zafrkavati ovaj apart. I na žalost, ovo je mjesto gdje se stvari dobiti malo stresno na početku, barem ako ste Nikada prije programirani. Moj Bože. Napisao sam program za dvije linije i Imam četiri linije pogreške. Dakle, ono što se ovdje događa. Prvo i najvažnije je uvijek dođite natrag i naći prvu poruku o pogrešci, jer nerijetko prevodiocima samo dajte se zbuniti ono što i ja. Sastavljači su prilično glupi. Oni će raditi samo ono što reci im da rade. A ako ih zbuniti, oni su samo će vrsta povratiti svoje ruke a možda i baciti više poruka o pogrešci nego što su zapravo relevantno. Pa pogledajmo prvo. Super grobni na prvom mjestu. No, obavijest, ovdje je ime Datoteka u kojoj sam zeznuo očito. Colon 5, kolona 5 samo znači da se na Linija 5 na petom karaktera. Dakle, peta kolona od likova, ako hoćete, pogreška. Korištenje neprijavljenog identifikator string. Jeste li mislili standardni n? Ne, mislio sam niz. A onda je to vrsta kopiranje i lijepljenje ono što sam upisali stvarno privući moju pozornost na mjesto gdje sam se zeznuo. Dakle, iz nekog razloga C, ili barem prevodilac ne razumijem riječi string. A to je zato što smo ga čine. Dakle string ne postoji u C Što CS50 radi, za prvih nekoliko tjedana samo u klasi, se možemo dati neki trening kotači, da se tako izrazim. I stavili smo osposobljavanja kotačima unutar posebne datoteke zove CS50.h. Dakle, ovo je drugi od dva datoteke Imena koja očito završavaju dot h. Idemo natrag. Printf je izjava ili funkcija da je očito nešto ispisuje na zaslonu. Ali niste me vidjeli provedbu printf, zar ne. Netko je prije nekoliko godina provedena printf. U ono slika bi li on kladiti ili ona stavi provedbu za printf, koda za printf? U datoteci se zove standardni Ja / O.h. U stvari, to je vjerojatno u dvije datoteke, standardni I / O.h, koja se zalaže za zaglavlju datoteke, i standardna i / O.c, koja se zalaže za C izvorni kod. Dakle, on ili ona je nekoliko godina prije ubacio kod koje su napisali u tu datoteku tako da ljudi poput nas godina kasnije ga možete uključiti, da se tako izrazim, u našim vlastitim programima. I doista, to je ono što funta znak te riječ su se. Izgleda na lokalnom tvrdom disku, pronalazi datoteku pod nazivom standardni Ja / O.h, a zatim učinkovito primjeraka i lijepi se unutar moje vlastite datoteke. Tako sada moj program zna kako ispisati na zaslon. Dakle, po toj logici, gdje je niz definira? PUBLIKA: CS50.h. DAVID J. Malan: CS50.h. I doista, to je ono što mi, Jezgra osoblje, učinili. Mi smo izmislili nekoliko vrsta podataka, da se tako izrazim, poput niza, osim onih koje dobiti besplatno, poput int. I vidjet ćemo drugima kao char za karakter i malo više. Unutar CS50.h očito je bar neki spomen niza. Pa sad neka mi ići naprijed i ponovno napraviti Hello-1. Ja ću povećavanje opet i prelaze prstima. Sada su nakon što je jedan promijeniti fiksna sam većinu stvari. Ali, dovraga. Više postotaka od podatkovnih argumenata. Ono što sam učinio u krivu ovaj put? Dakle, to je još uvijek prilično zagonetan. No, to je pogreška na Linija 7 i 21 znakova. Dakle, idemo pogledati ovdje. To je malo suptilniji. No, ako mislite o tome temeljne ideje ovdje su, Možda možemo zafrkavati ovo osim. Dakle printf je naziv funkcije. Zagrade, do sada, je baš kao što smo stavili oko stvari mi prolaze kao ulazi u funkciji. U redu, samo proizvoljna ljudska konvencija. Koristite zagrade. Unutar tih zagrada mi smo bili stavljajući dvostruke navodnike, a zatim niz poput "Pozdrav svijetu". No, u tom ranijem primjeru vrlo Kratko je gledamo s nule. I mi smo imali posto d, što drugo bio je unutar tih zagrada da sam pozvao verbalno? Da. PUBLIKE: Dakle, to je ono što ste uzimajući [Nečujan] unutar [nečujan] što je to [nečujan]? DAVID J. Malan: Točno. Tako smo imali posto d. No, tada smo imali bliski citat, zarez, brojač. Točno. Specificirano smo ono što želimo raditi kao rezervirano mjesto. Dakle, ono što ću učiniti je ovdje zarez, ono što želiš staviti? PUBLIKA: S. DAVID J. Malan: S, zato i je u ovom slučaju je naziv spremniku. To je ime tog staklene zdjele. Budući da prije nego što je bio obrnuto, da Jednostavan Scratch primjer smo pogledali. Dakle, sada nakon što je dva Promjene, neka mi uvećali i pokušati još jednom sastaviti ovaj program. Sada vidim da je grobni liniju. Ali, to je zapravo naziv prevodilac. Zveket je naziv prevodilac. Napravite samo mi uštedu glavobolje ikad tipkanje tu dugo ludu naredbu van. Pa sad, ako sam ne slash dot 'bok-1, Ja bi trebao vidjeti "Zdravo, David." Prilično underwhelming, zar ne? Mogli smo učinili to puno jednostavnije ne govorimo o varijabli i CS50.h i sve to. Tako ćemo učiniti Malo više zanimljiv. Osim CS50.h, ima stvari poput niza proglašena, CS50 knjižnica također ima nekoliko funkcija. Prije Dakle, baš kao i godina, netko je napisao printf i staviti ga u standardnoj I / O.h i neke druge datoteke. Mi, djelatnici CS50, napisao je funkciju zove GetChar, GetDouble, GetFloat, GetInt, GetLongLong, GetString, i mi stavili one unutar datoteke nazvao CS50.h i CS50.c. I mi smo ih stavili unutar od CS50 Appliance. I ljudi također mogu preuzeti ih online, ako oni žele ih staviti na svoje vlastita računala, kao dobro. Što će reći da smo stvorili Funkcije koje dobivaju informacije od korisnika. Ne znam što je sve tih podataka tipovi. GetInt je vrsta jednostavna, kao što su dobiti cijeli broj nekako od korisnika. I GetString je vjerojatno kao što je get riječ ili rečenica iz korisnika. Tako ćemo se usredotočiti na to. A ja ću se vratiti u aparata, a ja ću ići naprijed i spremiti ovu sliku kao, nazovimo to Halo-2.c kao moj drugoj verziji. I neka je napraviti nekoliko promjena. Ovaj put umjesto Teško kodiranja David, koji je čini nevjerojatno dosljedna ali underwhelming programa, Što ako sam umjesto toga napraviti GetString? Sada primijetiti GetString ima otvorenu zagradu, zatvorena zagrada, jer ne treba nikakav ulaz. To samo će ići dobiti Niz od korisnika. A sada riječ o drugoj sintakse. Zarezom samo kraj liniju koda. Ne trebate ih posvuda. No, to samo znači da sam učinjeno s ove linije koda. Dopustite mi da se presele na drugo Izjava ili funkcija. Gudački deklarira varijablu. Gudački kao što je rekao daj mi zdjelu, molim te. I neka mi stavi niz u njemu. A sada znak jednakosti. Što je znak jednakosti biti jednak? PUBLIKA: Dodjela. DAVID J. Malan: Da, dodjeljivanje vrijednosti. Dakle, ako ja, na primjer, poziv ova funkcija GetString, pa ćemo vidjeti u trenutku koji je će brz korisnik za niz. To je kao da ste me onda pisati D--V-I-d na komad papira. A kad kažem string a jednako GetString, jednaka zapravo ne znači jednaka u C programiranje. To znači dodijeliti s desne strane bočno na lijevoj strani. Tako sam dobio niz. A znak jednakosti znači da ga stavi u spremnik za pohranu i naziva. A onda će proći ovaj off printf zapravo raditi svoj stvar. Dakle, krajnji rezultat onda ide gledati malo drugačije. Idemo to napraviti Hello-2. Ili bi mogao raditi. Vi ste sljedeće zajedno. Make-Halo 2 radio. Dot Slash bok-2, Enter. Čini mi se da ima beskonačan petlje ili nešto. Ništa se nije događalo. Zašto? PUBLIKA: To što beskonačnu petlju. DAVID J. Malan: To je beskonačna petlja. To je vrsta čeka za mene zapravo dati ga s nekim ulaz. Pa neka mi ići naprijed i upišite u Davidu, i pritisnite Enter. I sada se kaže "Zdravo, David." Ako sam ga ponovo pokrenuti. Idemo upisati Rob, "Bok, Rob." A ovo je najgora korisničko sučelje ikada. Korisnik je očito trebao bi znati što učiniti. No, bez obzira na to. Korištenje tih istih zgrada blokovi baš kao u Scratch, možemo riješiti taj problem i reći: nešto poput tvoje ime molim te, debelog crijeva, prostor, zatvoren citat, u neposrednoj blizini zagrada, točka i zarez. Dakle, opet puno gluposti s sintakse. No primijetite Upravo sam dodao zagonetka komad iznad ovoga i iznad ove. Pa sad, ako sam to ponoviti, zdravo-2, Enter. Čekaj malo. Što ne valja? Nije bilo drugačije ponaša. Da. PUBLIKA: Niste instalirali napraviti opet. DAVID J. Malan: Nisam pokrenuti bi ponovno, zar ne. Tako sam promijenio moj izvorni kod. Ali opet, tu je da protok. Izvorni kod kroz prevodilac daje ti novi objekt kôd, ili 0s i 1s. Dakle, trebam zapravo ponoviti make bok-2 Enter. U redu, nešto čini da se dogodilo. Dot Slash HELLO-2. Vaše ime molim te. I da bude jasno sad, zašto je kursor na istoj liniji? Točno. Nisam staviti kosu crtu n ovdje u mom kodu. Tako da sada mogu pisati nešto poput Daven, Enter. Mogu ga ponovno pokrenuti i upišite nešto poput Gabea, Enter, a mi smo dobili neki drugi program opet i opet i opet. Sada konačno ćemo morati koristiti nekoliko različitih mogućnosti. Moramo uvesti neke konačnici Uvjeti za napraviti stvari uvjetno. Možda petlje tako da možemo napraviti uvijek iznova stvari. Možda bi bilo lijepo da smo mogao provoditi svoje funkcije, kao što smo mogli provesti naše vlastite printf ili naša vlastita verzija GetString i GetFlow, jer u konačnici čak i Korištenjem ove naredbe okoliš možemo učiniti čak i većina vizualno zanimljivi stvari. Doista se u zaključku neka mi to učiniti. Ja ću ići naprijed i zatvorite prozore te i otvoriti ovu ikonu ovdje, što je samo veći verzija da je ugrađen Terminal prozor. Dakle gedit ima ne samo mjesto za moj broj, , ali je također izgrađen u prozor terminala, crno-bijeli prozor gdje mogu izvoditi naredbe. Upravo sam se dogodilo da otvorite veća verzija toga. A sada ću ići u mapa koje sam već staviti u unaprijed na web stranici tečaja je. I ja ću ići naprijed i otvoriti datoteku pod nazivom thadgavin.c, koji je napisao netko drugi. A ako pogledamo to, to nije vrsta koda ćemo pisati, jer Cilj ovog koda bio napisati najljepši potrazi kôd koji on ili ona može, bez obzira na to jesu li ili ne drugo ljudsko biće ikada mogli razumiju ovaj kod. Zapravo, svake godine tu je ono što je zove nerazumljivi C natjecanje, koje je za prave geeks koji pišu Kod da nitko drugi ne može pročitati, ali da se nešto bilo stvarno jednostavan ili stvarno nevjerojatna. I mislili smo da ćemo zaključiti s ovim izgledom na nešto što je prilično iznenađujuće možda ste vidjeli jednom prije. No, mi ćemo završiti na tome napomena, dot slash, thadgavin. To je dakle ono što čeka. To je to za CS50. Mi ćemo vas vidjeti u srijedu. [Muziciranja]