[Muusika mängib] DAVID Malan: Olgu. Tere tulemast tagasi. See on CS50, ja see on Esimene nädal jätkus. Nii et üks põhjus, miks me olen möödaminnes umbes tehnoloogiad nagu Google Glass on see, et nad tulevad koos midagi, mida nimetatakse API, Application Programming Interface. Ja mida see tähendab, on see, et õige faili ja õigus dokumendid, mida saab tegelikult kirjutada tarkvara isegi selline seade. Ja mis meil meeles suunas semestrit lõpuks on, kui projekti seotud, ütlevad, Google Klaas võib kaebus, siis me vaatame, mida me saame teha poolest kinnihakkamine sind mõne loaner riistvara samuti avalikult kättesaadav API, et saaksite tegelikult alustada luua tarkvara mis töötab sama Google Klaas. Teine seade, et oleme mänginud koos hilja, et me arvasime, võib olla lõbus semestri lõpus on see väike asi siin. Seda nimetatakse hüpe Motion, ja see, mida sa oled kohta, et näha, on tehniliselt reklaam seade, kuid see ei räägi, mida see konkreetne Seade on võimeline. Ja see ka, kaasas API kaudu mis saab kirjutada tarkvara kontrollida oma arvuti nii, päris meeldib selle üheminutilise film siin. [VIDEO PLAYBACK] [END VIDEO PLAYBACK] Nii kohe, see seade juhtub rakendatakse vähe USB connector et saad ühendada oma arvuti, kuid ma ei oleks üllatunud, kui enne kaua meil selliseid tehnoloogiate järgmise partii arvutid ja Mac nii, et saate tõepoolest suhelda seda viisil, nagu seda. Tegelikult ma arvasin, et ma teeksin, liiga, on Ma tõmbasin natuke meeleavaldus programm, mis on selle tarkvara. Nii et ma olen panna väike sensor ees oma sülearvuti. Ja nagu näete, see juba mõistab et mu käsi on seal reguleerimiseks. Ja kõik see taotlus ei ole, libedasti vähe asju niimoodi. Aga näed, et tõepoolest, Mul on viis sõrme seal. Kui me ei saa seda teha, kõik 10 võite ette kujutada, puhas klaver taotlus vms. Nii et kui soovite tulla pärast klassi täna ja mängida, et kui hästi, olete teretulnud. Seega rohkem, et poole semestri lõpus. Nii paar haldus teadaandeid. Üks tee osa selle reede keskpäeval cs60.net/section. See URL on kursuse kodulehe samuti. Vahepeal aga supersections teeb debüüdi sel pühapäeval. Supersections on ühekordne asi, sest see viib meid aega, et töötada välja kes, kus osa ja kus. Niisiis sel pühapäeval, siis tuleb üks osa neile vähem mugav, üks osa nende mugavamaks. Ja neile, kuskil vahel on hea meel, et minna üks või mõlemad või mitte kumbagi. Mõlemad on filmitud. Nad olla suurem auditoorium kui , tavaliselt oleks sisse Aga eesmärk siin on varustada teid mõned mugavust probleem määrata ühe, C-ga, koos CS50 aparaat, see nädalavahetusel, isegi enne sa teada oma ametlik osa loovutamisega. Nii et sa rahuldada oma TF ja oma väiksemate rühma sectionmates umbes nädala jooksul. Vastuvõtuajad vahepeal on kestnud. Kas ära neid täna või homme õhtul, kui soovite. Ülesanded 0 põhjuseks reedel. See on päev hiljem, kui regulaarselt graafikuga neljapäeval. Aga probleem set 1, näete et see sisaldab mõningaid soojenduseks harjutusi, mis sa ise saab laiendada oma Neljapäev tähtaeg reedeni. Ülesanded 1, vahepeal teeb debüüdi rajal veebilehte tuleval Reede, kui soovite käppyrässä seda ma tegin ammu hiljaks Reede õhtul oma toas. Nii cs50.net/appliance on koht, kus saad CS50 seade et me hakkasime kasutama esmaspäeval. Me kasutame seda natuke rohkem täna. Aga kindel, et probleem on seatud 1 spetsifikatsioon sõelub täpselt, mida te peate saada see üles ja töötab. Nii et ärge muretsege seda, et enne Erksa 1 kui te ei soovi. Hea küll. Nii me vaatasime esmaspäeval lähtekoodi, kuid seoses uue programmeerimiskeel, nimelt C ja C, erinevalt Scratch, ei ole graafiline. See ei ole puzzle tükki. See on rohkem inglise keelt nagu süntaks. Ja seal on mõned sammud kaasatud aastal tegelikult kirjalikult ja töötab programmi C, sest peale allika kood niimoodi, sa pead midagi kutsutud tõlkija. Ja üldarusaadavat mõttes, mida ei kompilaator teha meie jaoks? Jah. Üliõpilane: See muundab kood et kirjutad 0. ja 1s. DAVID Malan: Hea. Nii et see muudab koodi me kirjutame 0. ja 1s. See muudab nn lähtekoodi objekti kood, millest viimane näeb natuke midagi sellist. Ja see on teie CPU, aju sees arvuti, et kuna inimesed, kes on loonud need arvutid, tea, mida need järjestused on 0. ja 1s keskmine. Võib-olla tähendab see printida. Võib-olla tähendab see lisaks. Võib-olla tähendab see lahutamine. Võib-olla tähendab see kuvada pilti. On eelnevalt mustrid bitti et maailm on otsustanud tähenda teatud asju. Aga enamasti on see muidugi me töö kõrgemal tasandil, ja me enesestmõistetavaks, et on olemas asjad nagu koostajad, mis võib muuta meie lähtekoodi funktsioon , kuidas me kavatseme. Nii programmi kandsime esimese eelmisel nädalal ja siis hakkas sadama, nii et kõnelda, et C möödunud Esmaspäev, oli see. Kui roheline lipp klõpsatud, tere öelda. See oli muidugi kirjutatud nullist. Ja ma väita, et samaväärne programmi C vaatasin natuke midagi sellist. Niisiis, mida ma arvasin, et me tahaks teha esimesel on olgem tease peale mida ootab, esimesel pilgul küll, sest üsna keerulisse süntaks, kuid hakkate märkama mustrid üsna kiiresti. Mida me teha ka täna on pakkuda Teile vaimne mudel mõnda kanooniline mõned standard konstrueerib programmeerimisel. Ja siis me tegelikult saame oma käed määrdunud mõned näited ka. Nii neile, mugavam, aru, et see nädal ja siis järgmine nädal võib väga hästi olla natuke vaadata. Aga eriti kui häkker väljaanne Probleemse set 1 kustub Muidugi kodulehel reedel, ma arvan, leiad, et isegi kui te täidate mõned toorikud üle järgmisel nädalal või kaks, saate alustada saada üha rohkem vaidlustada ning kogevad uued ja uuemad asjad. Teeme õrritama selle programmi peale paar rida korraga. Tipus, meil on see, mida on tehniliselt nimetatakse eeltöötluse direktiiv. See on lihtsalt rida koodi, mis ütleb, lisada faili sisu, nimetatakse standard I / N, standard input - või, vabandust, standard I / O, standard sisend / väljund,. h sees minu enda programmi. Nii teisisõnu, kui ma kirjutasin selle programmi lihtne tekstiredaktor nagu gedit, lihtsam samaväärne midagi nagu Microsoft Word, mis juhendamise # include stdio.h, on lihtsalt ütlen kompilaator, ostke sisu, et muud faili, stdio.h, ja kleebi need siin. Nüüd, miks ma hoolima? Mida me nõuda on sees selle faili nimetatakse stdio.h, mis on salvestatud kuskil minu kõvakettale või selles juhul kusagil CS50 seade? Keegi teine ​​pane see minu jaoks olemas. Aga mis see on? Jah, nii see on deklaratsiooni funktsioon nimega printf. Nii printf meenutab funktsiooni kuvab sõnade ja märkide ja numbrid ekraanil minu pakkumine. Aga ma ei kirjuta seda. CS50 ei kirjutanud seda. Keegi aastat tagasi kirjutas ta, ja nad sisuliselt andis meile retsept see aastal fail nimega stdio.h. Nii et esimene rida lihtsalt annab mulle juurde funktsioonidele, mis keegi teine kirjutas aastat tagasi, nende hulgas mis on printf. Nüüd järgmine rida ma siputan kätt, vähemalt kuni järgmisel nädalal. Aga nüüd tean, et int main (void) on sisuliselt samaväärsed käesoleva kollane puzzle tükk kui roheline lipp klõpsatud. Maailmas, aastaid tagasi, otsustasin, et kui sa oled kirjutamise programmi keeles nimetatakse C, kui hakkate oma programmi rida , mis näeb välja selline. Vaid umbes nädala pärast, see teeb mõttes mida int on, mida void on. Aga nüüd, lihtsalt arvan, et see kui see kollane puzzle tükk. Nüüd järgmine, meil on lokkis traksidega järgneb teise lähedal lokkis traksidega, nii rääkida. Ja me näeme neid kõikjal programmide C, samuti JavaScript ja PHP. Ja need lihtsalt kapseldada seotud rida koodi. Avatud lokkis traksidega põhiliselt ütleb, siin on natuke koodi. Ja suletud lokkis traksidega, mis on nurga teises suunas, just vahendid, mis on selle asjakohane kood. Nii mahlane line see esimene Programm on viimane, printf, viisi kraami, tere. Ja ma helistasin asi vahel tsitaadid mida viimasel ajal? Nii et see on string. Ja string on lihtsalt techie termin jada märki, sõna, fraas. Isegi ühe kirja saanud kahekordselt tsiteeritud. Aga see on jada nullist või enam märki. Längkriipsu-n, kuigi tundub natuke imelik. Aga see lihtsalt tähendas midagi lihtne arvuti. Mis Kenoviiva-n? Uus liin. Nii see on lihtsalt eri jada märki, et maailm on otsustanud vahenditega panna line break seal, kuna kompilaator tegelikult saada segaduses, tavaliselt, kui te, väga arusaadavalt, kuid valesti, lihtsalt alustada Enterin panna Uute liinide oma koodi. Sa pead olema natuke rohkem selgesõnaline koos Kenoviiva-n. Ja me näeme seal on mõni muu selline patterns erimärke. Näiteks, kui sa tahad, et lasta oma meelt hulkuma nurgalöögiks juhul oletame, et ma tahtsin printida jutumärke ekraanile Mingil põhjusel, et tundub olla pisut problemaatiline, kas pole? Sest kui ma panin jutumärke sisse keskel "Tere, maailm," mis tahes põhjus, miks, mis tunduvad Probleemseks? See murrab string. Koostaja on lihtsalt programmi. Programmi nagu kompilaator lihtsalt läheb lugeda oma koodi ülevalt alla, vasakult paremale. Ja kui näeb kolme jutumärkide asemel kahe, ta ei kavatse teada kui sa mõtled, et asi vasakule peaks olema string, või asi õige või kogu asi. On ebaselge, ja mis siis tüüpiline koostaja teeks lihtsalt närvi, ja annab sulle mõned veateate, ja sind probleemiga tegelema. Seega, arvestades, et Kenoviiva-n-uus line, mis oleks oma instinkte nüüd hakkavad olema, kui sa tahad, et hõlmata midagi anomaalset nagu topelt Tsiteerin sees see muidu tsiteeritud string? Längkriipsu-jutumärke. Ja nii me näeme, see mingi muster ka. Kui sa tahad midagi veidi imelik, siis leiad, et lahendused järgivad sageli muster, ja Kenoviiva tähistab sümboliga. Ja see tähendab, midagi erilist et me peame esindama teistmoodi. Nagu kuidas sa esindama längkriipsu, hästi, me tagasi tulla seda. Aga vastus, liiga, on tegelikult natuke ilmne. Niisiis olgem nüüd mõningaid teisi programmeerimine konstrueerib et nägid Scratch. Te olete ilmselt enesestmõistetavaks juba siis, kui olete juba sukeldus probleem määrata 0. Kuid olgem nüüd tutvustada süntaks C nende muidu üsna intuitiivne ideid, vähemalt mõned neist. Nii et see mõiste tingimus või filiaali, arvestades, et varem me esindab see kood, mis nägi Asjalik vasakul Scratch - kui x on väiksem kui y, siis nii öelda - asemel nüüd C - andke luisk sisse lihtsamal juhul - me lihtsalt ütlen, kui avatud sulgudes midagi on tõsi - Loogiline avaldis lähe kus ma olen öelnud tingimus - Lõpusulg, siis seda, mis on sees need looksulg. Nii ka siin looksulg on selline nagu Scratch on U-kujuline puzzle tükki. Kas see, mis seal sees on need looksulg. Sel juhul kärpida kärpida. Ja teate see on tulevikku kärpida, ei längkriipsu. Kaldkriips, kaldkriips, neile, kes pole programmeeritud enne, lihtsalt tähendab - see on lihtsalt kommentaar. Kommentaar ei ole kooskõlas koodi, per se. See on rida Inglise, et teie, inimese, olen kirjutanud ise ehk meelde, et sa teeksid midagi, mis selgitada ise, et selgitada keegi, milline on sinu kood teeb. See on lihtsalt kirjeldav kommentaari. Nüüd, muidugi, meil on kahesuunaline teelahkmele ainult seda teed, kolmeastmelise teelahkmele tehes seda, ja kui te jätkate seda muster, sul võib olla neli-viis, viis-viis, kuus-viis kahvlid maantee kui pead hakkama tõepoolest et paljud tingimused. Ja siis märkate parallelism siin - if (tingimus), else if (tingimus), ja ainus, mis on veidi imelik on viimane, mis on just see teine. Aga jälle, see on sama, kontseptuaalselt, et see, mida me oleme teinud juba, kuigi süntaks võtab natuke harjumist. Nüüd, selle näiteks on mõned teised kummaline süntaks. Näeme printf taas avatud sulgudes ja Lõpusulg. Ja sees on jutumärkide. Sulgudes kontekstis printf minge vasakul ja õigus, mida? Mida me kirjeldada, et noteeritud stringi üldisemalt? Nii et see on argument. Iga kord, kui on funktsioon, nagu printf ja seejärel avatud paren ja Sulge paren ja midagi sees see, kas see on string, või täisarv, või midagi muud, asi vahel need sulud nimetatakse argument. Ja argument vaid mõjutab funktsiooni käitumist. Sel juhul on see päris selge, kuidas. x