[Predvajanje glasbe] DAVID Malan: Dobro to je CS50 in to je konec enega tedna. Torej, jaz bi rada uvedla moj nekdanji advisee, Andel Duff, ki ne omogoča samo iPhone 5 stoji, kot to govorniški pult, on naredi tudi avtomobile. ANSEL DUFF: Kako gre, vsi? Rad bi vam povedal, malo bit okoli Formula SAE, v kateri sem sem kapetan. To je MIT ekipa. Rad bi ti povedal fantje malo o tem in upajmo, da ustvari nekaj interesa. Torej, povej mi samo teče skozi Par stvari o naši ekipi. Tako da smo v celoti študent rok, v katerem vsi zasnove članov, simulacijo, test, in proizvajalec podsistem avtomobila. Imamo lastno stroj shop in garaže in N52-- ali žal, N51--, ki je v isti zgradbi kot Prirodoslovni muzej MIT. In smo ljudje, da vozi avto. Tam je državno tekmovanje v začetku poletja, in potem so tu še manjši shootout tekmovanja skozi vse leto. In potem smo storili usposabljanje voznikov dni, da se novi člani seznanili. Naši graditi dnevi so na Sobotah 11:00-20:00. Kosilo in večerja skrbijo od od Bertucci in Beantown oz. Imamo tedenski sestanek in seminar, ki je namenjen seveda kredit. Ki je nova, kot je to semestru, in bo tudi za naslednji semester, tako da boste lahko čez-reg za to. In potem imamo projektiranje, trgovina, CAD dni v tednu, ker so člani bodo neodvisno CAD delov, da bi stock et cetera. Tako za električno inženiring na ekipo imamo vlečno, sistem za visoke napetosti, ki deluje pri nazivni 300 voltov, ki vključuje motorji, krmilniki, in baterijskih vložkov. Potem imamo nizko napetost sistema, ki teče na 12 voltov, ki vključuje Nadzor, CAN vozlišča, možgane polje, in armaturna plošča. Kolikor CS gre, delamo imajo vzdrževanje spletne strani da moramo storiti za dogodke, članstvo spremembe, nove slike in PR materiala. In potem imamo kodo, ki nadzoruje avto za naše trakcijska kontrola, začetek Nadzor, nadzor dash, vektorsko navora, in regeneracijski zavorni sistemi, ki teči običajno v MATLAB, Simulink in LabView. Povem vam nekaj o avtu. Torej, to je okoli 500 funtov. To je pravila omejena na 85 kilovatov. Ima 2 EMRAX 207 motorjih nazaj, ena za vsako zadnje kolo. To je po meri zgrajen akumulatorje s prizmatično A123 vrečka celic, v skupni vrednosti 300 voltov in 5.6 kilovatnih ur. In to je direktni pogon z Razmerje 2,64-1 pogon. Tukaj je nekaj slik smo je od njega na konkurenco. Tukaj je stožec nazaj, nos, in tukaj so motorji, tiste velike črne diski pod et mens manus. Tukaj je posnetek, ki sem potegnil iz našega programa konkurence. In to je samo primerjamo naš avto Nekaj ​​komercialno dostopnih avtomobilov, kot KTM XBOW, Ariela Atom in Caterha M 7-280. Če ste seznanjeni s ceno, moč potegnite težo, dolarjev na konjskih moči, dolarjev na navoru in najin avto jih vse piha iz vode. Če imate kakršnakoli vprašanja, zapišete ta e-poštni naslov. Ustreli nam e-pošto na fsae@mit.edu. Veseli nas, da govorimo o kaj bi radi. Harvard študenti so prijazni manjšine v ekipi. Če imate kakršna koli vprašanja o da vas prosimo, da ustreli nam e-pošto, vesel, da govori, in bom da glavo nazaj čez Davidu. Hvala. Cenim to, fantje. [APLAVZ] DAVID Malan: Ansel preživel poletje delajo z nami, tukaj na kampusu v CS50 to poletje. In poleg dela na stvari, kot binarnih čebulice, je dejansko res odprli eyes-- in mine v particular-- K resnično križišče ne strojne in programske opreme lahko. V resnici veliko stvari, ki jih je pravkar gostovala ste skozi, so na koncu ustvaril prvi v programski opremi, in nato končno izdelani v resničnem svetu v strojno opremo. Torej, če ste zainteresirani raziskuje to križišče, morda prevzame to skupino. Zdaj medtem, tiste, ki ste ki so ljubitelji tehnologije, in Apple proizvodi predvsem vedeti, da obstaja so nekaj Sporočila včeraj. Vendar smo menili, da se bo prikazal si tisti, ki je prišel ven Nekaj ​​dni prej, da si morda ne bi videl. Jörgen EGHAMMER: Veš, enkrat v nekaj časa nekaj prihaja skupaj, da spreminja naš način življenja. Naprava tako preprosto in intuitivno uporabljate počuti skoraj seznanjeni. Predstavljamo 2015 IKEA katalog. To ni digitalna knjiga ali e-knjige, to je knjiga, knjiga. Prva stvar je tudi omeniti no kabli, niti napajalni kabel. IKEA katalog 2015 prihaja povsem napolnjena, in življenjska doba baterije je večna. Vmesnik je 7.5 za 8 cm, vendar pa lahko razširite do 15 za 8 centimetrov. Navigacija temelji na taktilno dotik Tehnologija, ki jo lahko dejansko počutijo. Vsebina je vnaprej nameščena preko 328 visoko ločljivostjo strani spodbuja k opremljanju doma ideje. Zagon brskalnika, enostavno dotaknite in povlecite. Desne na levo, da se premaknete naprej, od leve proti desni, da se pomaknete nazaj. Opazili nekaj drugega? Tako je prav. No lag. Vsako kristalno jasen stran obremenitve sprašuje, ne glede na to, kako hitro se premikate. Če želite hiter pregled, Pravkar jo držite v dlani, in z uporabo le palcem, hitro iskanje po vsebini. Če ste našli nekaj, kar želite shraniti za pozneje, lahko preprosto zaznamek. In tudi če zaprete aplikacijo, lahko enostavno spet našli zaznamek. Neverjetno. [Smeh] [APLAVZ] Tako, da nas pripelje do Konec enega tedna. Nekaj ​​Sporočila zdaj. Torej na odseke je zdaj v teku. Pojdite na ta URL tukaj sometime od danes in v petek opoldne dejansko določite, ali ste med tistimi manj udoben, bolj udobno, ali nekje vmes. To je tipično eden od tistih stvari, ki jih nekako veš. In v resnici tiste, ki so manj udobno verjetno veste toliko, tiste, ki so bolj udobna vedeti toliko, in spet, če niste povsem prepričani, katera od teh vedrih padeš v ti verjetno nekje vmes. Toda prepričani ste lahko zamenja Po nekaj tednih, če bo to potrebno. Medtem pa v prihajajočem tednu ne začnemo odsekov po sebi, ampak super profili, ki so odprti za vse študente. Ta prihaja nedelja, na lokaciji, na bodo objavljeni na spletni strani predmeta bomo imeli eno za tiste manj udoben, kot tudi ena za tiste bolj udobno. In tiste nekje vmes lahko izbere, katero od teh dveh, ali oba, če želite, da bi sedel-in naprej. In poudarek tistim, bo na koncu na C, kateri bomo nadaljevali našo pogovor danes. Problem nastavite 0 medtem je upajmo, da v vaših rokah. Uradno jutri, Četrtek opoldne. Razen, če si denar v eno vaših 5 poznih dni, ki bi ga prinesla do petka opoldne. Problem nastavite 1 Medtem bo objavljene na spletni strani seveda je. In to bo naš prvi plenilec kot razred v C In da je problem določiti spec vas bo vodil skozi veliko mehanike kaj smo začeli govoriti o tem v ponedeljek, in bomo še naprej govorili o danes. C, Linux, CS50 Naprava, vse to vas čakajo v specifikaciji. Uradne ure so medtem v teku, v dodiplomskem jedilnici. Glavo na tem URL-tu za ogled urnik za danes in jutri, Če bi radi, da sodelujejo. Vprašanja Medtem, tako da vas imajo možnosti postavljanja vprašanj asinhrono, 24/7, zavedaš, da si ni omejena na oddelke in pisarno ur, temveč je to orodje tukaj, CS50 Razprava na tej URL bo tekom na spletu oglasna deska software, preko katerega lahko postavljajo vprašanja sošolci in tudi osebje. Torej, ne pozabite, da z viri, kot dobro. Medtem tradicija prične ta petek. Kot ste morda zagledali od teaser video prejšnjo sredo je, smo najbolj ima tradicijo Vsak petek v času mandata sprejemanja približno 50 študentov in osebje v lokalni restavraciji, imenovano Fire and Ice, na katerem smo običajno pridružili nekateri alumni ali prijatelji iz industrije na splošno prizadevajo narediti velik razred počutijo manjši. Torej, to je povsem priložnostno kosilo. Nekaj ​​nas, osebje še posebej, bo igral glasbenih stolov in klepet s študenti o 50, življenje zunaj 50, življenje v prihodnosti, realni svet, Govorim o možnostih zaposlitve s prijatelji v industriji. Torej, če bi želeli, da se nam pridružite ta petek, glavo na ta URL tukaj. Prostor je omejen, vendar bomo to storili recurringly v celotnem obdobju. Glavo tam cs50.harvard.edu/rsvp. In če ne boste dobili v ta čas, ne skrbi. Ga bomo še enkrat v V prihodnjih tednih kot dobro. Torej je to slika smo naslikal prejšnji teden, in ste verjetno že ukvarjali v doslej. Ampak poskusimo povezati to zdaj s tem, kar bomo storili danes in naprej. Lahko dobim enega prostovoljca? Vse v redu, ali več. Kaj pa tu na end, v modri srajci. Pridi gor, kako ti je ime? ALANA: Alana. DAVID Malan: Alana. Torej Alana, za samo moment-- lepo, da izpolnjujejo ti-- se dogaja, da igra vlogo te funkcije tukaj. Purple block smo jih Doslej se imenuje funkcija. Torej, kaj bom šel pred nami tukaj in ponujajo Alana je malo tablico z imenom, da bi jasno, kakšno vlogo igraš. Torej ste se recimo blok. Če želite, da gredo naprej in dal tole. In bomo da je to super enostavno. Če je cilj pri roki, je preprosto zdaj izvajajo z Alana, to ti rečem blok, Tukaj je, kako bo delovalo. I have-- dajmo ga pokličete argument ali parameter, to je res samo prazen list papirja. In to je bela do nekako se spominja na belem polju, v katerega ste Lahko napišete besed. Medtem bom šel tukaj. Jaz grem naprej in pisati H-E-L-L-O vejico svetu. In zdaj, kot pravi programer, ne pravzaprav vem, kako naj ti povem nekaj. Lahko pridem gor z besedami, ampak jaz ne nujno vem, kako naj se izrazim ustno ali na zaslonu. In kaj bom storiti, je, da ta kos funkcionalnosti, katere input-- ali argument, ki ga bomo poklical, Sem napisal na ta kos paper-- in bom, da ga oddajajo. In res, da je vloga, ki jo funkcije v programskem jeziku lahko igrajo. Nekaj ​​takega kot reči Blok se lahko seli da nekdo, ki res ve kaj ona ali on je govoril. Torej, če boste stopite tu le za trenutek, Bom prestal to prispevek k Alana, in prosim, da rečeš ta prispevek. ALANA: Hello, world. DAVID Malan: To je to. Tako, da je funkcija. Zdaj bomo lahko vzamete malo več, bomo lahko naredili korak naprej tukaj. Ker je bilo to jasno underwhelming. Torej, kaj je sedaj pretvarjati, da je to nekaj malo bolj prefinjeno. Torej, to je seveda naša različica C. Torej, zdaj, če želite, da bi, da je en off, da name tag off, in imejmo si dal na novo ime. Vendar je bistveno, da si igrajo enako vlogo, je prav tako se zgodi, da se imenuje printf zdaj. Zgodba je, seveda, bo verjetno bilo-- prav tako underwhelming-- je bo naslednji. Zdaj ste funkcija printf. Jaz sem klicatelja, ali Programer, ki želi stati na ramenih ljudje v preteklosti, kot si ti, ki je že ugotovil, kako dejansko napisati nekaj navzdol. In zato je ta čas, kot pravijo, da dajva dejansko uporabite zaslon tukaj. Torej, če želite, da okrepijo sem, da bom spet ta prenese kot Vhod na moj printf prijatelja. Če bi lahko šel naprej in tiskanje, ki na zaslonu, zgolj s črpanjem z vašim prst na črnem zaslonu. Odlično. V redu, torej veliko suspenza za kako da se bo to igra ven. Sedaj vzemimo stvari ena končno zarezo, če bi lahko, kot sledi. Torej, to je program, C kot smo rekli zadnjič. In to samo počne tisto, kar si storil, je izpiše na zaslonu, Zdravo, svet. Čeprav je nedvomno veliko od moteča stvar tam. Vendar vzemimo stvari zarezo in uvedbo te različice, ki opozarjajo, je tretja različica, ki smo se znašli v zadnjem času. In zdaj je jasno Dve uporabi printf. Tukaj je 2 klici Alana v tem primeru za printf, vendar pa tudi klic na drugo delovno mesto. Kaj je to funkcija jasno? Getstring. Bomo dobili še eno prostovoljca? OK, pridi gor. Kako ti je ime? JAVIER: Javier. DAVID Malan: Javier, pridi gor. Torej vloga Javier je na ta kos papirja. Ki bom na splošno imenujemo s. Zdaj je to spremenljivka, to je tip string, kot je predvideno navedeni drugi vrstici v sredini tam. In jaz bi rad, da mi prinesi niz. Posebej glavo navzdol, da orkester oddelek in mi ime nekoga, in prišel nazaj s spremenljivko vsebujejo te vrednosti. To je lahko kdorkoli želite. Gremo. V redu, Javier je zapisala imena. V redu. Bomo lahko vsi verjetno lahko uganiti, kako to bo igra ven. Mi smo morda belaboring točka kaj funkcija počne, vendar vseeno najlepša hvala. Torej je Javier vrnil ta niz tu, ki ne more povsem glej Jonathan je niz da smo gotten. Torej, zdaj, kaj sem dejansko dogaja zagotoviti, da Alana, čeprav je nekaj malo drugačen. Ker je v tej različici Program, prvič pa je svoje ime. Torej zelo prvi argument Moram zagotoviti Alana s se bo dobesedno navesti svoje ime. V redu, tako preprosto je to Jaz bi to roko za vas. In kot sem napisal Naslednji argument, če vas želijo, da gredo naprej in to napisali na krovu, gremo naprej in ne končni primer tukaj, da bi jasno, kaj je na koncu dobil, da se zgodi. Torej svoje ime, napisati proti vrhu Če vas ne moti, samo zato, da imamo prostor za eno drugo vrstico. Ker je zadnja stvar, bom zdaj vam ni ena, ampak dva kosa papirja. V redu. H-E-L-L-O vejica, nato pa prazna vrstica. Torej, kaj bom v roke Alana zdaj je nekaj malo drugačen. Ne samo, da je ona že to, kjer polnilo v prazno predstavlja da percent--, kar je bilo Ograda smo bili z uporabo? Ja, tako odstotkov s. Medtem grem mimo ji na drugem mestu, ki je natančno tisto, Javier Vzpostavljeno iz Jonathana. Torej, naj ti dam te dve. Če želite, gredo naprej in tiska, da učinek. Kaj se dogaja na koncu Zdaj je, Alana znova igra vlogo printf. Javier igral Vloga GetString. Tako da se bo vaš spomin. In na koncu, kaj se dogaja, kljub temu, to hello-- yep gredo naprej in vejico. ALANA: Sem to ali še ni prejel? DAVID Malan: Yep, ti oba prejela naenkrat. Torej ideja je, da vas Sedaj lahko flip strani Ravnanje z drugo od teh dveh vhodov. Torej, to je le kladivo domov poudariti, da medtem Alana usmrčen ta zelena črta tukaj, in potem Javier je to storil eden za nas in se vrniti k meni nečesa bomo poklical ov, vendar je bilo res samo, da je kos papirja za svojega. In zdaj je Alana naredil to tretjo linijo. In čeprav vse to zgleda tako zelo skrivnosten morda na prvi pogled, je res je tako enostavno, kot da. Mimo vhoda okrog, pridobivanje izhode, bodisi fizično izroči nazaj nekaj, ali vidi stranski učinek, kot je ta. Nekaj ​​vizualno napisana na zaslonu. Torej, gremo naprej in hvala Alana Javier, ki je bil tukaj, za nam pridružili tukaj. [APLAVZ] Torej, zdaj pa si vzemite za samoumevno, kako enostavno vse to lahko. In naj nadaljuje z dejansko storiti nekaj v dejanskem kodo. Torej na zaslonu tukaj je screenshot tako imenovanega-CS50 aparata. In če bi moral na, kot 2:00 PM v sredo popoldne, razložiti nekaj prijatelju kaj CS50 aparat, kako bi se to opredeli v stavku? Enem stavku? Ja? ŠTUDENT: To je kot program da naredi vsakogar računalnik teči z istim sistemom. DAVID Malan: Dobro! To je program, ki omogoča vsakogar računalnik zaženete z enakim sistemom. To je nekako sami Kopija za poslovanje Sistem, ki se zgodi, da se imenuje Ubuntu Linux. In to dejansko deluje znotraj okno na vašem Mac ali PC, tako da se na ta način desno od vrat v 1 tednu, vsi tukaj v razredu ima dostop do istih orodij, enako konfiguracijo, in ni krivulja učenja specifične na Mac ali PC posebej. Zdaj smo odprli notranjost CS50 aparat v ponedeljek, ta program tukaj. To se zgodi, da se imenuje gedit. Ampak to je res samo grafični urednik. To je nekaj podobnega kot Beležnica ali Besedilo Uredite na Windows ali Mac OS oz. In predlagal sem, da je bilo v resnici trije pomembni deli na tem zaslonu. Zgornja stran je, če vas bi napisati svojo kodo. In to je, če smo preživeli veliko naših trije primeri v ponedeljek predavanje. Dno smo poklicali kaj, to črno okno, ja? ŠTUDENT: Compiler? DAVID Malan: Compiler smo dostopen preko tega okna. Ampak bolj na splošno. Ja, to je samo okno terminal. To je starost star izraz, ki pravkar v bistvu opisuje utripanje poziv, da je pred leti nekoč na eden od tistih velikih monitorjev CRT slog. Danes pa je nekako virtualnih v programski opremi. In okna terminala kaj je nam vpisovati ukaze. Nekako poenostavljeno različico uporabniškega vmesnika ali vmesnika. To ni grafični uporabniški vmesnik ali GUI, to je besedilo, ki temelji vmesnik ali vmesnik v ukazni vrstici. In res, da je, kjer na koncu Bil sem sposoben napisati nekaj kode. Ko sem napisal nekaj kode, čeprav, spomnim, da sem ta ukaz. In kot se ime vrsta predlaga ta Omogoča mi, da Program se imenuje Pozdravljeni. Toda kaj se je v resnici počne? No znamka je bila ob mojem input, moja izvorna koda, in ga preusmeri na kaj, na koncu? Object code. In objektni kodi je samo fancy način rekel ničel in enic. In potem, ko sem si želel teči, da se kodi, Nekoč sem želel prenesti kot vhod tistih ničle in tisti v mojem računalniku možganov, tako imenovano CPU ali centralna procesna enota, Sem moral zagnati program. Ampak to ni bilo čisto preprosto ponedeljek kot samo dvojno kliknite nekaj ikono. Namesto tega sem moral storiti, da bi prost program? Kaj je bilo, da je drugi ukaz? Slišim malo poševnico? Ja, ja? ŠTUDENT: Dot poševnica in ime programa. DAVID Malan: Točno tako. Dot poševnica in ime programa. Zdaj kaj to pomeni? No dot je le starinski način rekel trenutni imenik. Karkoli mapa ste se sklicujemo, kot je zastopana kot piko. Slash je samo tisto, kar ste jih videli Mac OS in Windows za let, je ločilo med imenik ali mapo in ostali nekaj imena. V operacijskem sistemu Windows se zgodi, da gredo nazaj, v Linux in Mac OS se zgodi, da gredo naprej. Ampak to je samo ločilo, tako da je samo nezanimiv skladenjska podrobnost. Sočen del je seveda ime programa, Hello. In to je tisto, zaradi česar ustvarjen za nas. Je na izhodu to datoteko za nas. Toda, kako smo prišli do te točke? Pojdimo zdaj vprašati Vprašanje, kaj je bilo v resnici dogaja, vsaj z Za nekatere to sintakso? Torej, v stavku ali tako, kako smo razložiti ta prva linija, ki je obarvana zeleno? Kaj je bilo to prvo linijo početje, v zvezi z mojim programom? Ja? ŠTUDENT: [neslišno]. DAVID Malan: Reci še enkrat? ŠTUDENT: Vključno in nalaganje pretekle funkcije [neslišno]. DAVID Malan: Dobro. Vključno z, ne bom rekel nalaganje, ampak recimo, vključno s funkcijami, da ljudje so napisali v preteklosti. In so te funkcije izvajajo nekje v mojem računalniku. Nekdo je napisal datoteko pred leti, in da datoteka je nekje v notranjosti CS50 aparat, ali na mojem trdem disku bolj na splošno. In zato je ta linija je v bistvu rekel, poišči to datoteko, Standard I / O dot h, in kopiraj in prilepi njeno vsebino tukaj na vrhu moje datoteke , tako da mi ne bi bilo treba narediti, da ročno sam. In med juiciest kosov notranjosti od Ta datoteka smo trdili, je, kakšno funkcijo? Kakšno funkcijo smo rekli je bila razglašena ali omenjena v standardni I / O dot h najverjetneje? Printf, kajne? Mi ni napisal printf na Ponedeljek, je samo obstajala. Podobno kot Alana ravno prišel na odru in je samo obstajalo in je vedel, kako pripraviti nekaj na zaslonu, tako da ne printf obstaja že več let. In tako je to, kako smo do nje dostopate. Zdaj, če gremo tukaj, Glavni je bil analogen smo rekel puzzle kos poklical, ko zelena zastava kliknili v svetu nič. To je nekako privzeto ime, ki ga ljudje odločil, bi pomenilo privzeto vstopno točko za program. Kos programske kode da dobi najprej izvršiti. Medtem ti zavitimi oklepaji so nekako kot ukrivljeno obliko partije teh rumenih praske kosov. Te vrste zajame celotna kup navodil skupaj. Tako da nekako povezuje nekatere povezane funkcionalnosti. printf seveda je funkcija, ki natisne zaslon, kot smo pravkar storil. Kaj pa ti oklepaji? Kako bi define-- tudi če ste nikoli programirana prej, vendar le na osnovi zdaj naprej narašča upajmo, intuicija, kaj oklepajem delaš za nas? Ali kaj so obkroža? Ja? ŠTUDENT: Pravijo, kar greš za tiskanje z printf. DAVID Malan: Ja, pravijo, kaj greš za tiskanje z printf. Ali bolj na splošno, so okolica vhode v funkciji. Tako da lahko skoraj misliš teh oklepajih kot kot kovine posnetek na odložišče. To je tisto, kar drži, to je tisto, kar je bo treba uporabiti za zagotavljanje argumente v funkciji, ki je v V tem primeru se imenuje printf. Tako na splošno skoraj vsako Tokrat smo pokličete funkcijo, bomo videli par oklepajev. Morda z nekaj v njem, kot sedaj, morda ni nič v njem. Ampak to je, če bi si dal vložki ali tako imenovane argumente na funkcijo. Tukaj je en tak argument. Sem izpostavil vse med narekovaji, ker se je izkazalo, v tem jeziku imenovano C, če želite, da predstavljajo string--, da je beseda ali fraza ali celo paragraph-- morate ga obdajajo z dvojnimi narekovaji. Ne posamezni citati, dvojni narekovaji. In to je točno to, kar sem tukaj naredil. Medtem pa je funky Simbol proti koncu tam. Nagibnica n. Kaj smo rekli, da bo zastopal? Ja? ŠTUDENT: nova linija. DAVID Malan: Nova linija. Prav, pa ne splošno pritisnite tipko Enter, ko želite, da program pljuvati ven novo linijo. Namesto da jo povem izrecno s tem seveda Skrivnosten kosu sintakse, poševnica nazaj n, da želite novo linijo do tja. Končno podpičje. Mi pa res ne govori preveč o tem, in daleč bo to bane nekaterih svojega obstoja za prvo težavo nastavljena, ko si ni uspelo realizirati Pozabil si nekaj tako neumnega kot podpičjem. In na splošno ga je dala tam bo popraviti to težavo. Toda kaj je to početje za nas, bi rekli? ŠTUDENT: [neslišno]. DAVID Malan: Oprostite? ŠTUDENT: [neslišno]. DAVID Malan: Zaključna izjavo. To je nekako tako kot v opazovanem obdobju konec angleškega stavka, ker se v tem jeziku C se je končala izjavo. Pouk programiranja koda, da si samo želim povedati, Končal sem s tem. Sedaj opazili, da je edini tukaj. Tako da ne želite, da bi dobili v navado dajanje podpičji po vsakem zaprtem oklepaju. Na primer obstaja nobena poleg ničen, mi pa bomo prišel nazaj v prihodnost s tem, kar void sredstva. Toda v tem primeru vaš printf je funkcijo, ali izjava, ki se uporablja, in zato želimo imeti, da terminus na samem koncu od tega. In sem namerno spravljati C in odkrito veliko jezikov, kot so C, C ++ Java, JavaScript ter poljubno število drugi jeziki imajo veliko teh nekako skladenjskih podrobnosti. To vsekakor, če ste novi na programiranje vam lahko resnično spotakniti up. In boste, zapomnite si moje besede, bodo nekateri od vas imeli to izkušnjo v uradnih urah ali pozno ponoči delal na neki p-set, kjer tvoj prekleti Program samo ne pripravijo, to ne deluje, morate ne vem, kaj je narobe, popolnoma zdi logično pravilna za vas. In to zato, ker si pozabil nekaj podobnega hitting podpičjem konec neke vrstice. Toda to so vrste stvari, s katerimi boste bo takoj naučijo videti. In res to so stvari, da imajo v CA in TF je je nekako usposobljeni za prikaz veliko hitreje od tebe. In zato je to samo reči, kot ti Potopite se v problem nastaviti 1 posebej, Ne bodi uničen s temi stvarmi. Ko boste nekako aklimatizirati v svet, ki ga začeli videti stvari, ki jih morda ne videti na prvi pogled to prvi teden. Torej, izvorna koda je nekaj takega. Želimo, da se vanjo uvajajte tako imenovani prevajalnik. In da prevajalnik kot smo rekli, daje izhod znan kot kodi, ti ničle in narave. Ampak od tam, kaj to nam daje? No, to nam daje te vzorce. In spet računalnik, vaš Intel notri, razume te vzorce ničel in enic. In včasih vzorec predstavlja dejansko decimalno število kot smo videli prejšnji teden, včasih predstavlja črko kot smo videli prejšnji teden, včasih predstavlja navodilo, kot nekaj, tiskanje na zaslonu. Torej printf za instance-- ampak, kaj me nazaj. Smo bili ob za samoumevne da so ti ničel in enic ki jih proizvaja ta ukaz make. Ampak znamka ni prevajalnik. Da ni stvar v sredini ki se proizvajajo ničel in enic. Namesto, da je samo zelo prikladno poimenovali program, katerega namen v življenju je v bistvu ugotoviti, kako sestaviti svoj program. In smo ga uporabili v teh Prve tedne, ker je samo nam prihrani veliko težav. Toda kaj bi se v resnici počeli, ko ste zbrati zdravo, je, kot smo rekli zadnjič, da je videti na trdem disku ali v mapi, za datoteka z imenom, kaj, očitno? Hello.c, kajne? To je nekako konvencije. To je samovoljno, ampak to je, kako stvari so. Da, če si določite ime programa, ki še ne obstaja, to se dogaja, da si za izvorno kodo v datoteko, ki jo privzeto pomeni hello.c. In če ga najde, super. To se dogaja, da spremenijo to vir kodo v kodi za vas. Toda vsakič, ko sem pritisnite tipko Enter po zagonu da zdravo, Se spomnite videnje zadnji čas, ki ga precej dolg in skrivnosten zaporedje drugih belimi črkami in Znaki na zaslonu? No, da je dejanski ukaz, Dejanska prevajalnik, ki je bil zagnan. Torej dejansko prevajalnik bomo uporabili večino semester je nekaj, kar se imenuje Jek. Nekateri od vas bi lahko uporabili Visual Studio pred ali GCC, ali poljubno število drugih prevajalnikov. Bomo uporabili Jek. In Zvoka nam omogoča, da pretvorite da izvorne kode v objektno kodo. Kaj to dejansko pomeni v praksi? No, mi gremo v eno moje mape iz zadnjega časa. Znotraj CS50 aparata. In mi gremo naprej in ustvariti to Ista datoteka, vsebuje standardne I / O dot h. Int main neveljavne. In se bomo vrnili v prihodnosti kot s tem, kar int pomeni in kakšne so nična sredstva. Ampak za zdaj naredimo Zdravo svet Nagibnica n, tako kot smo to storili na krovu. Dovolite mi, da shranite to datoteko hello.c. In zdaj, če hočem, da pripravijo to I lahko-- mi povečavo noter-- tek da zdravo vstopiti. In to spet bilo da je zelo skrivnosten linija. Toda zdaj vsaj ena beseda Verjetno skoči ven na vas. Jek je, da je linija smo videli prej. Zdaj obstaja veliko drugih stvari odkrito da bomo mahati z rokami na za danes. Ampak tam je nekaj dele, nekaj znakov tukaj da so v interesu. Ampak bom, da gredo naprej in to. Jaz bom prvi vožnji zdravo, samo zato, da dokaže da to deluje, kot bi bil v ponedeljek. Ampak zdaj bom izbrisati program. In podobno kot smo to kratka imena zadnji čas, Ukaz za odstranitev Nekaj ​​je rm, odstranite, vnesite. Boste dobili nekaj dokaj kriptirni vprašanja. Težko verjeti, da si lahko tudi to vprašanje je težko razumeti. Ampak odstraniti redno datoteke pozdravi samo sredstva želite izbrisati zdravo. In sem lahko šel naprej in vnesite d, za ja, Enter, in zdaj ga ni več. Kaj to pomeni zdaj, če sem zbistriti zaslon, je, da namesto tem, da hello-- vas Veš kaj, jaz sem že dober v tem. Jaz grem teči prevajalnik sam. Ne rabim nekaj programa za ugotovimo, kaj je moja datoteka z imenom. Napisal sem hello.c, I vem, kako se imenuje, Jaz sem očitno sposoben tipkanje da. Torej, jaz grem naprej in ne Jek hello.c Enter. Zdi, da dela. In ni dodatnih izhod, ker Jek je prevajalnik. To je tisto, kar pretvorbo Izvorna koda za ničel in enic. Torej, če bom zdaj naredil piko poševnica zdravo Enter, hm. Novo sporočilo o napaki danes. Torej, bash je samo ime utripa poziv, ki smo ga uporabljate. To je bruto poenostavljanje, ampak za zdaj je to vse, kar je, to je utripa poziv. In to je razlog, zakaj je kričal na nas. No takšno datoteko ali imenik Malo bolj enostavna. Ampak zagotovo sem to kodi. Ampak catch je, da če sem tip ukaz na seznam vsebine tega imenik, ki je kaj? ls za seznam. Tam je kup stvari tukaj, nekateri, ki ste ga dobili z napravo, kot moj Desktop mapi Downloads mapo, mapo Dropbox in vse te stvari. Ampak kaj je zanimivo je hello.c, ki Ustvaril sem pred nekaj trenutki z gedit. In kaj je usoden išče ime tukaj, morda, da nismo glej zadnji čas sploh? a.out, kajne? Torej nazaj v dan, ga je le odločil, da se pri vam pripravijo program prvič, in ne podate imena datoteke, dajmo ga je poklical. In a.out samo pomeni, da je to izhod prevajalnik. Torej, to je grozno ime za program. Vendar s to logiko, dot poševnica za trenutni imenik, poševnica a.out, naj bi pomenilo, da je v resnici my zdravo svet programa. Zdaj pa malo ogreje vadbe, preveč. Če želim preimenovati to Datoteka, izkaže se, da vas premikanje datoteke iz ene v drugo ime. Torej mv a.out, potem pa sem Lahko ga pokličete zdravo Enter. Torej je ta ukaz Linux. DOS je imel pred leti, Windows ima terminalsko okno neke vrste, ki je videti kot je ta, Linux in Mac računalniki imajo to utripa poziv. Čeprav je večina od nas verjetno redko, če sploh kdaj, jo uporabite. Ampak, kaj sem naredil, vodi Program, katerega ime je mv, in sem ji dala dva argumenta, tako rekoč. Dva vhoda. a.out je originalno ime. Pozdravljeni, je novo ime. Torej, če bom zdaj naredil dot slash Pozdravljeni, Enter, da obstaja. In če jaz dot slash a.out, kaj pa si pričakoval sem moral videti? Bash, takšno datoteko ali imenik ne. Ker sem ga preimenoval. Torej, to traja nekaj pridobivanje vajeni. Ampak problem je določil 1. specifikacija bo resnično držite roko skozi nekaj tega minutae. Ker je to popolna intelektualne moteča od bolj zanimivo ideje pri roki, ki je pravzaprav ustvarja nekaj iz kode. Ampak kaj je naredil eno modifikacijo Zdaj tega programa. Spomnimo se, da je zadnjič, ko sem naredil nekaj kot je ta, printf svoje ime. In res smo samo to storil na velikem zaslonu, tam. In potem sem dobil niz s GetString odprte paren, blizu paren. In paren samo okrajšava Zapis v oklepaju. Torej ne GetString sprejme nobenega argumenta? Ni vhodi no, vendar je potrebuje oklepaja, ker to je tisto, kar razmejuje Sklic funkcije. Torej bom, da gredo naprej in poskusite teči prevajalnik o tem programu zdaj. Jek hello.c, ker I ni spremenila svoje ime za zdaj. In imam kup napak. Pojdimo pomanjšati tukaj. Če sem se pomaknete navzgor spet Kot sem rekel zadnjič, s prvim, iste napake da sem dobil zadnjič. Na liniji 6 hello.c sem imel neprijavljeno identifikator niz, pa mislim standard? Nisem. Ker tisto napako sem naredil, v tem programa, če se spomnimo od zadnjega obiska? Ja, moramo tako imenovani kolesa usposabljanje da bomo samo uporabo za nekaj tednov. Ampak moram navesti, da je prav, nekje v notranjosti aparata, je datoteka, ki smo pisali le nekaj let nazaj. Znotraj katerega so funkcije kot očitno GetString. Torej, zdaj, če sem šel nazaj dol, povečate, in ponovno zagnati Jek hello.c. Prekleto, drugo napako. Vendar smo že nisem videl tega. Ta je malo bolj ezoterična ugotoviti. Ampak to je namerno na zaslonu, zato, ker smo želeli, da povem to zgodbo. Ko ste zbrati hello.c, tako kot Slika iz prej predlagal, ste pretvorbo le, da Izvorna koda za ničel in enic. Zdaj osebje CS50 pred nekaj leti napisal CS50.h, in ustrezno dokumentacijo, CS50.c. In mi je pred nekaj leti, zbrati te datoteke v datoteko, ki se zgodi da se imenuje CS50.o. Ali se lahko preimenovali nekaj različnih stvari. Ampak to je preprost način, razmišljanja o tem. Tako smo sestavili CS50-jev Knjižnica v ničel in enic. Ampak nikjer sem določeno da želim združiti svoje ničle in tisti, za moje Hello World Program z ničel in enic da CS50 sodelavci ustvaril nekaj let nazaj v en celoten program. Vse, kar sem določil pisno Jek hello.c je zbrati hello.c. Nisem rekel, da Jek povezava v ničel in enic da CS50 sodelavci ustvaril za vas nekaj časa nazaj. Torej, to je enostavno določiti, dash l za povezavo, CS50. In bomo spet videti kmalu spet in spet. Opazil sedaj ni bilo nobenih pritožb. Torej, zdaj, če sem teči dot poševnica Pozdravljeni, sedaj deluje. Kljub temu, da je malce zavajajoče saj sem poustvarili kaj pila? a.out. Zato mi dovolite, previjanje le za trenutek. Program smo le pripravljeni ima tri vrstice kode. Ko sem tekel Hello World, zdravo moment nazaj, nisem videl svoje ime. In to zato, ker sem tekel staro verzijo programa. Ampak, če sem zares teči dot slash a.out Vnesite, navesti svoje ime, Rob, zdravo, svet. Hm. To je vrsta hrošča. Verjetno je želel povedati, Rob, kajne? Torej, kaj je fix tukaj v kodi. ŠTUDENT: [neslišno]. DAVID Malan: Točno tako. Tako da sem moral narediti, da končno poteg tako da sem mimo v ogrado, kot polnilo v prazno, kot smo pred nekaj trenutki. Toda odstotkov y je zdaj da izpolnite v prazno. Torej, na koncu pa razkrivajo eno zadnjo Podatek, da ni čarobna. Jaz grem naprej in se znebite Pozdravljeni. Jaz grem naprej in se znebite a.out. Tako da zdaj nimam nobenih programov, samo moja izvorna koda. In grem teči nekoliko daljši ukaz, Jek dash o Hello hello.c dash LCS50. Zdaj se je to začelo nekako iti v eno uho in ven druge morda. Ampak samo draži narazen, kaj je to. Jek je prevajalnik, dash LCS50 namenoma na samem koncu dela kaj v stavku? Povezave do knjižnici CS50. Zagrabi ničle in tiste, ki so zaposleni, ki in jih crams v svojem programu. Torej zadnje vprašanje na dlani je, kaj je dash o zdravo verjetno delaš, tudi če ste nikoli videla to sintakso? Prikazovanje program, ki je ni imenovan privzeto a.out. Namesto da je to poimenoval zdravo. Torej sedaj ni a.out. No takšno datoteko ali imenik, ker sem izrecno rekel, imenujemo ta program zdravo, tako da Zdaj lahko vpišete ime, kot je ta in so se obnašali. Zdaj odkrito, fant je, da nezanimivo, da imajo da se spomnimo vseh, ki malo pretirane, kajne? Torej, gremo naprej in priti spet znebite zdravo. In kaj je zdaj vrnil na svetu ki je dovolj reči, da zdravo. Ampak to je čarovnija, ki da je delal za vas, da je Monotonija da to počne za vas. In kot naših programih in Težave dobili bolj zapleten, da bo resnično biti tvoj prijatelj. Ker ni predolg Od zdaj gremo da imajo programi, ki so napisana ne pri eni datoteki, ampak več datotek, in da bo avtomatizirati postopek zbiranje vse to za nas skupaj. Torej, zdaj natisniti. printf je znotraj te datoteke, standardni I / O dot h, da smo videli, ampak to še ni vse, da printf kot to. Tam je n poševnica nazaj, vendar pa tudi kup drugih zaporedij pobega. In sekvenca je le fancy način rekel nekaj ki se začne s poševnico nazaj, ne poševnica, poševnica nazaj, in ne nekaj posebno stvar. In mi ne bo spuščala v večini teh ampak zakaj je tam Nagibnica dvojni narekovaj, misliš? Zakaj je to čudno zaporedje znaki, poševnica nazaj dvojni narekovaj, zakaj bi to lahko bil koristen? ŠTUDENT: [neslišno]. DAVID Malan: Točno tako, kajne? Pomisli nazaj v našo Hello World programa da smo videli že kar nekaj časa sedaj, vsakič, ko smo videli, da je Hello World Program smo imeli dvojne narekovaje znotraj od katerih je zdravo vejica svet Nagibnica n. Ampak mislim, da si, Kaj pa, če dejansko želeli natisniti narekovaj? Vaš prvi instinkt je lahko, jaz pa ne vem, zakaj bi jaz rad tu do--, smo lahko malo pasivno agresivni, zdravo prijatelj. Mi bi želeli narediti kaj takega. Toda zakaj je to sedaj problematično? Ignoriranje zavite narekovaje prahi, da keynote je za nas samodejno. Zakaj je to problematično? Točno tako. Ker imamo kot 4 narekovajih. No, prvi je verjetno gre z drugo, in morda četrti gre s tretjo, ali pa, mislim, da nisem niti prepričan, niti je računalnik bo. Spet računalniki, prevajalniki spet so precej neumno. Naredili bodo le kaj povej jim, da storijo. In če niste nedvoumne so verjetno bo vrgel napako. Če niste nedvoumna, kako narediti arašidovo maslo in žele sendvič čudne stvari, ki bi lahko prišli. To je ista ideja. Zdaj pa zadostuje, da pravijo, da je nekatere druge sekvence za izhod v sili, ampak bomo prišli do tiste pred dolgo. V bistvu to escape zaporedja predstavljajo nekaj da morda ne boste mogli prelahko na tipkovnici, brez zmedeno računalnik. Zdaj medtem imamo ograd v printf. Odstotek d, ki je lahko napisana tudi V skoraj vseh primerih so odstotnim i, je ograda za kakšen tip podatkov? Kakšen tip vrednosti? Decimalno število. Tako dejansko bomo začeli uporabo odstotno i, ker je malo enostavnejši, kot celo število. Odstotkov i. Celo, da se zgodi, da bo decimalko. Odstotkov s smo že rekli, da je Ograda za niz. Ki je le beseda, stavek, odstavek, esej, karkoli. To zaporedje znakov neke dolžine. In bomo videli kmalu nekatere od teh drugih. Toda odstotkov c za eno značaja. Odstotek f za plavajočo vejico, kot realno število, ki ima decimalno vejico v njej, ki seveda ni celo število. In tam je cela kup drugih. Medtem v C, in v veliko jezikov, imamo različne vrste podatkov. Različne vrste steklene sklede, če hočete. Skleda sem zadnjič je za ping pong žogice, vendar pa lahko shranite tudi drugačna vrednote, kot znakov in godala in cela števila v posodi, kot spremenljivko, in C je ti. Char je vrsta podatkov, tip spremenljivke, , v katerem lahko shranite značaj. Plovec je vrsta spremenljivko ki jih lahko shranite realno število. Int je seveda za notr. In precej smešno imenovan dolgo dolgo je, kjer lahko shranite v bistvu res dolga številka, s še več cifre potem Tipičen premoč int store. Ampak se bomo vrnili na to kmalu. V CS50 dot h medtem druga glava datoteke da smo videli nekaj krat v uporabi, pa je drugi dve podatkovni tipi, ki ne obstajajo v C običajno. Ena je niz, in bomo videli, v nekaj tednov kakšne strune zares so pod pokrovom. In ena je bool. In bool je spremenljivka, ki lahko samo na določenih vrednotah. In temelji le na prejšnji teden je razlaga Scratch, in v zadnjem času C, kaj bi si ugibati sta možni vrednosti nekateri posoda, ki je tipa bool? Da in ne. Eno in nič. Drži ali ne drži. In res, da je zadnji, ki se nagiba je konvencionalen pri programiranju jezika, ki pravi nekaj kot resnična ali neresnična. Medtem knjižnica CS50 prihaja s kopico funkcionalnosti da osebje napisal za vas, poleg tega pravkar dobili niz. Smo pisali vnaprej funkcij, ki nivoju celo število od uporabnika, dobili en znak, dobil plovec, ki je le število z decimalno vejico. Get dolgo dolgo, res velika vrednost od uporabnika. Tako smo videli le to ukrepi v obliki GetString. Ampak preko teh funkcij Kmalu bo lahko napisali Programi, ki dobijo prispevek od uporabnika. Medtem pa, da je to Program, in menijo, kako bi mi zdaj začeli dodati da se z novimi konstrukti. Hitro tornado turnejo in potem bomo pogledali, na nekatere pisanju nekaterih Programi ročno sami. Od zdaj naprej, če želimo izvajanje pogoja, to ne bo videti kot lepo lepo puzzle piece. To se dogaja, poglej malo bolj skrivnostne. Toda to je kanonično struktura pogoja C. Beseda, če dva oklepaji, znotraj katere se bo nekakšna Boolove izražanja. Zdaj slash slash v sredini, to je Trenutno nekako podobnega psevdokoda koda ograda. Ampak bolj pravilno, vsaka vrstica kode v C-ju, ki se začne z slash slash je komentar. To je kot lepljive opombe, ki jih lahko dal na eseju, ki je natisnjena na papirju. To je bankovec za sebe. To nima nobene funkcionalne vpliv na program. To je neke vrste opomnik, da je svoje Dokumentacija o tem, kaj se dogaja. Torej, to storiti v tem trenutku je neke vrste ogrado za vse, kar je notri teh zavitimi oklepaji sčasoma se bo nekaj storiti. Medtem imate dve vilice v road, če drug konstrukt, kot je ta. Lahko, če elseif, drugje. Zdaj je treba omeniti predvsem če ste bili Googling okoli spletu za sredstva od radovednost, ali če ste pick up eden Seveda je Priporočene knjige o C, boste videli, da imamo ljudje veliko z različnimi preferencami, kako izražajo v kodi. Nekateri ljudje radi dajo zavitimi oklepaji, kot sem tukaj naredil. Nekateri ljudje radi dal kodrasti naramnice na primer tukaj. Nekateri ljudje radi dajo elses tu gor in potem je to tukaj. Tam je poljubno število načinov pisati kodo, in nobeden od njih Prav po sebi. Kljub temu, da je nekaj da so precej narobe. Vendar pa obstajajo ne--, če je to navsezadnje zelo verna razprava. V bistvu, eden od najbolj moteč stvari o računalništvu je, kako nepopustljivi računalniški znanstveniki lahko. In boste ugotovili, čez čas, da tudi ti razviti osebne preference o tem, kako bi vaša koda poglej. Ne samo obnašajo, ne samo ustvariti donos, ampak kako naj bi bilo videti estetsko. Torej, kaj bomo storili je, ki vas bo vodil po pot v smeri, za zdaj vsaj standardna CS50 slog, ki je vsaj ohranja stvari enoten in enostaven za branje. Ampak bolj na tiste, razlike pred dolgo. Logični izraz v C, če vas hotel povedati, če je ta pogoj izpolnjen in ta drugi pogoj Res, ne boste napisali besedo in, tako kot v angleščini. Ste namesto tega uporabite ampersand 'znak, razlogov, se bomo vrnili k. Če hočeš povedati, ali boste uporabili dva navpične črte, ki na tipkovnici ZDA je na splošno nad Enter Ključ poleg poševnica nazaj. In to samo pomeni, da če je ta pogoj ali je ta drugi pogoj je res to. Medtem pa je to nora stvar, ki boste imeli priložnost enkrat uporabiti v nekaj časa. Ampak to je samo alternativa način za izražanje sebe. Ta, za zdaj, dajva določajo, da je samo en funky način izražanja če elseif, elseif, elseif, elseif. To je samo formatiran v smislu primerov, kjer vas dobesedno naštevajo vrednote, ki boste morda želeli preveriti. Medtem zank. Videli smo primerjavo Scratch z zanko. In bom pomahati z roko na kar pomeni, da vsako od teh stvari. Ampak obvestilo, da se zanka bo zelo pogosto začnejo s ključno besedo za. Ali bo začela s ključno besedo časa. Ali bo začela s ključno besedo storiti, in na koncu s ključno besedo časa. Ampak kaj bomo pa videli je več stvari, kot je ta. Tukaj je na splošno v C, kako lahko razglasi spremenljivko in ji dati vrednost. V C ne zadostuje, kot v Scratch, ki ste jo pravkar pravijo, da mi spremenljivo imenuje nekaj. Moraš povedati, C, in povejte prevajalnik, natančneje, kakšen tip vrednosti kajne želijo dati v stekleno skledo. Je celo število? Če je temu tako, boste morali dobesedno pravijo int in nato ime spremenljivke, nato podpičje. Če boste namesto tega želeli niz in pozval to je tako, kot sem svojo kodo danes tukaj, bi rekli, String s podpičjem. Ko želite, da bi to vrednost lahko nato uporabite enačaj, sicer znan kot operator naloga. In opazili, kako vsak teh vrstic kode ima podpičjem na koncu tega. Vendar odkrito povedano je to le zgleda malo grdo. Zakaj ne morem reči, da se z računalnikom, daj me spremenljiva in jo inicializirati na nič. To pomeni, da mi prazno stekleno skledo. Medtem ko lahko. In tako eden od sodbe ste klice boste morali slogovno sčasoma je, ne da napišete kodo, kot je ta, ali ti nekako počistiti in navdušil ljudje s pisanjem dveh vrstic kot samo enega. In bi se to šteje na splošno bolj eleganten način pisanje kodo slogovno. Funkcije bomo seveda videli. Oni bodo to obliko. Ime funkcije, nekateri oklepaje, nato pa morda nekaj stvari notri. Ali lahko vidite uporabe več funkcij stran s strani, kot nekaj podobnega. Zdaj kot tangenta, ne to šala zdaj smiselna? [Smeh] To ne pomeni, da je smešno, ampak pa morda bi malo bolj smiselno. Torej, zdaj gremo v CS50 aparata za trenutek. In mi odprla eno teaser tukaj. In res eden od razlogov, za uvedbo IKEA katalog in utripajoče slike iPhone bit nazaj je bil dejansko povezati skupaj Dejstvo, da je pred nekaj leti, leta 2007, Ta del kode je sprosti, ki je bil eden od zelo prvi izvedbi kosa opreme , da naredi tisto, kar se imenuje beg iz zapora. Za tiste neznane, beg iz zapora nekaj podobnega telefon ali iPhone pomeni v bistvu kipec izvedeti, kako narediti stvari s tem, da je družba ki je ne namerava. Kot si želite namestiti nekatere programsko opremo, ki je ni v App Store, beg iz zapora telefon, ki počneš stvari, kot to in še več. Toda kaj je bilo zabavno 2007-- in da je bilo desetine različnih verzij od teh stvari od takrat, v vseh vrst, je, da languages-- ta program tukaj, imenovano iUnlock, je bila dejansko napisana v C. In tako sem potegnil do izvorne kode za to, samo da bi nekako pokazal nekaj podobnosti z konstrukti smo že razpravljali doslej. Zdaj obstaja način, več kompleksnosti tukaj kot smo videli že v razredu. Dovolite mi, da se pomaknete gor samo malo tukaj. Opazil these-- pa smo opazili nekaj stvari-- Opazil sem te vrstice, vključno standardne I / O dot h. In all-- linija 24, prosim-- Opazili Standard I / O dot h in cel kup drugih datoteke, da očitno drugi ljudje so napisali. In če smo se pomaknite navzdol skozi to malo poljubno Opazil sem, ne vem, kako napisati vse to še sam nujno, vendar pa, če. Torej očitno ima to podružnico. In če sem se pomaknite navzdol malo nadalje pa je drugo, če. Če sem se pomaknite navzgor, mislim, okoli vrstice 100 Videl sem za. Torej, nisem čisto prepričan, kako to deluje še ampak to je za zanko, ki se dogaja, da Naj ponoviti določeno število krat. In če sem se pomaknete vse do dna Vidim, da obstaja deluje tukaj imenuje Glavni in nekaj dodatnih kreditov za vaš užitek branja. Torej, to je le say-- in bomo dal Ta spletna med virom teku je Koda today-- da tudi nekatere od teh naprave, ki jih imamo za samoumevne, ob koncu dneva si še uporabo te osnovne konstrukte, ki smo jih že uvaja doslej. To je dovolj, da je eden. V redu, zdaj pojdiva dejansko zgraditi nekaj. Pojdimo presegajo nekaj podobnega hello.c in odpiranje tem, kaj je napisal ta program tukaj. Jaz grem naprej in napisati program, imenovan adder.c, katerih namen v življenju se bo kot moj prvi super kalkulator da samo dodaja nekaj številk. Ne zato, ker je to težko problem, ampak zato, ker je Omogoča mi, da tie skupaj nekaj stvari. Torej bom, da gredo naprej in vključi Standard I / O dot h in CS50 dot h. Jaz bom rekel, int main praznino. In še enkrat v prihodnosti bomo prišli nazaj na to sprejetih v zvezi s tem in praznih sredstvi. In zdaj bom povedal nekaj kot printf, daj mi celo število. In zdaj na moji drugi vrstici, kako izraziti sebe kot da želim, da razglasi spremenljivko da se dogaja, da shranite int? Dobesedno kaj naj vpišem, če želim ustvariti spremenljivko, ki shranjuje int bi rekel? int enaka getint. Prepričan, da deluje. In ravno zaradi doslednosti s kodo, ki jo bom glej na spletu, naj mi spremeniti to x, samo zato, ker x je skupno ime spremenljivke uporabiti, vsaj v algebre. Zdaj pa grem naprej in se spet printf. Daj mi še eno celo število. In zdaj bom naravi od naučili iz tega vzorca, Jaz bom rekel, int y dobi GetInt. In smo se ne uporablja GetInt prej, ampak samo kot GetString gre in dobi niz, kot Javier storil iz občinstva, Podobno počne GetInt začne utripati na poziv. In dejansko čaka na uporabnika da ga celo, da ga vnesete v in pritisnemo Enter. Zdaj na koncu bom naredil to printf vsoto o-- in kaj mi fancy sedaj-- odstotka i in odstotka i prisoten i klicaj ubežnimi n. In kaj misliš, da bom dal v zdaj kot dodatne vhode da printf? Nočem reči dobesedno citiram konec citata x. Želim razred v x in takrat in zdaj gremo fancy in kaj je samo prevzeti lahko počnemo, kar hočemo. Kaj hočeš povedati zraven? x plus y. In res, da bo delovalo. To je minimalno programskih jezikov Razumem osnovne aritmetične, in da naj bi to v resnici dela. Zato naj gredo naprej in ne predstavljajo adder v mojem črno-belem oknu dol, Enter. Cryptic linija vendar nobena napaka sporočilo, da je dobro. Dot poševnica seštevalnik, daj mi celo, 1. Daj mi še eno celo število, 2. Vsota 1 in 2 je 3. V redu, torej precej trivialna Program, ampak kaj je to naredil? To mi je omogočila, da uporabite funkcijo poklicati tukaj, pokličite drugo funkcijo tukaj, dve klici GetInt, a Tretji klic printf, in nato z uporabo te ograde. Torej, to je malo več zapletena kot zadnjič. Kaj pa, če želim malo Ljubitelj? Dovolite mi, da gredo naprej in zdaj to. Dovolite mi, da gredo naprej in ustvariti novo datoteko z imenom razmere nič. In bom, da shranite nekaj časa za razrede zaradi in samo paste, da kodo kot izhodišče. In zdaj bom samo, da dajo nekaj novega, tukaj v sredini. Torej printf Rad bi celo prosim. In vse to koda je na voljo na spletni strani seveda je, vam ni treba vse tip out v razredu, če raje ne bi. int, in zdaj bom uporabo, namesto x in y, Bom uporabila n, ki je Verjetno najpogostejše ime za celo število v računalniškem programu. In sedaj želim narediti Malo sodba tukaj. Bom videl, če n je večji od 0, potem Jaz bom rekel, printf-- Ops, printf-- si izbral pozitivno število, Klicaj Nagibnica n. Zaprite to. Else bom izpisal printf si izbral negativno število. Zdaj pa, preden vpij name, kaj je zagon tega programa. Pusti me tukaj. In kako sestaviti program imenovano pogoji dash 0? Naredite pogoji pomišljaj 0. Nekako neumno ime, ampak-- prekleto. OK, dobro poučevanje trenutek. Zakaj je, da je prekinil? Kaj sem slučajno poklical to sliko? Lahko nekako sklepati v zavihku tukaj. Tako da to ni slabo, da sem to storil, ker ta se bo zgodilo, morda za nekatere od vas. Zato sem pomotoma poimenoval moj Izvorna koda stanje 0. Ampak moja izvorna koda z dogovorom naj bi v datoteki pogoj 0 armatura C, ali karkoli dot c. Torej naj to popravim. Tako kot so Microsoft Word lahko grem gor na Save As in ne pogoj 0 dot c. Zdaj pa samo, da je urejeno, da sem dogaja, da gredo naprej in odstranite stanje 0, kar je bila moja stara verzija. In zdaj pa ne bo stanje 0, Enter. OK, se zdi dobra. Stanje 0, Enter. Rad bi celo prosim, 50, si izbral pozitivno število. Zdaj kaj pa negativno 50? Izbral si negativno število. Kaj pa zdaj, 0. Precej prepričan 0 ni negativen. Torej, to je nekako logično napako. Kako naj to popravim? Else če je n manj kot 0, to drug ne lahko imamo trismerni podružnico tukaj, printf si izbral 0. Torej, zdaj, če sem to ponovi Program, potem ko je sestavljanje spet z znamko, in zdaj ponovno zaženite stanje 0, kaj bom videl tukaj 0 mi daje ta izhod. Torej, kam gremo s tem? No, to je zelo enostavno izgubiti izpred oči gozda za drevesa. In tako nam omogočajo, da sklene s tem 2 in 1/2 minuti video da je na koncu malo z oglasom iz Googla, ampak to je res dokaz, da kaj sploh uporabljajo te osnovne stavbe bloki v resnici lahko storite enkrat imamo malo programiranja zdrava pamet v okviru naših pasov. [Predvajanje glasbe] SAROO Brierley (VoiceOver): To je bilo pred 26 leti, in sem bil tik pred obrniti 5. Smo prišli do železniške postaje in smo se vkrcali naš vlak skupaj. Moj brat je pravkar rekel, da bom ostati tukaj, in bom prišel nazaj. In sem mislil, dobro veste, Jaz bi tudi samo za spanje in on bo samo zbudi me. In ko sem se zbudil naslednji dan, cel prevoz je bil prazen na pobegli vlak, duh Vlak me pelješ ne vem kje. I je bil sprejet iz Avstralije, do avstralske družine. In je mama okrašena my soba z zemljevidom Indije, ki je dal zraven moji postelji. Zbudil sem se vsako jutro vidim, da je zemljevid, in zato nekako ohranil spomine živ. Ljudje bi rekli, da ste poskuša najti iglo v senu, Saroo ne boste nikoli našli. Jaz bi zasvetil od krajev, ki sem hodil, utripa moje družine sooča. Prišlo je podoba moje matere, sedel z nogami čez, samo gledal jokati. Življenje je samo tako težko. To je bil moj zaklad. In sem gledal na Google Map in ugotovil, da je Google Earth, kot dobro. V svetu, kjer si lahko povečate, Začel sem, da so vse te misli in kakšne možnosti da bi to naredil zame. Rekel sem si, saj veš, ki ste jih dobil vse tiste fotografske spomine in znamenitosti, od kod si, in Veste, kaj mesto izgleda. To bi lahko bila aplikacija, ki lahko uporabite, da bi našli svojo pot nazaj. Mislil sem, pa bom dal dot na Kalkuti železniške postaje, in polmer črta, saj veste, da vas treba iskati okoli tega območja. Nekako sem prišel čez ta vlak skladbe. In sem začel po njej, in Prišel sem do železniške postaje, ki kaže isto sliko da je bilo v mojih spominih. Vse se ujema. Mislil sem, da ja, sem vem, kam grem. Jaz bom samo pustite Načrt, da imam v glavi vodi me in odpelji me nazaj v mojem rodnem mestu. Prišel sem na pragu hiša, ki sem se rodil. In hodil okoli 15 metrov okoli kota je bil tri dame stoječe zunaj, v bližini drug drugega. In sredinska stopil naprej, in Mislil sem, da je to tvoja mama. Ona se je javilo, da me je objela in smo bili tam za približno pet minut. Zgrabila me za roko in ona me je v hišo in imam na telefonu, kjer je Zazvonil mojo sestro in brata reči, da veš, Tvoj brat ima samo se naenkrat pojavil kot duh. In potem se je družina ponovno združena. Vse, kar je vse dobro, Pomagal sem svojo mamo ven, ji ni treba slaving proč. Ona lahko živi ostalo njenega življenja v miru. V senu je bilo igle, vendar igla bil tam. Vse, kar je tam. Vse, kar imamo na svetu je iz pipe na gumb. Ampak moraš imeti voljo in odločenost, da si ga želi. [Predvajanje glasbe] DAVID Malan: Čudovito sladko pričevanju samo tisto, kar lahko zdaj storiti s tehnologijo. Vam bomo videli naslednji teden.