[Musiikki soi] DAVID MALAN: Okei. Tervetuloa takaisin. Tämä on CS50, ja tämä on Viikko sitten, jatkuu. Joten yksi syy olemme ohimennen noin teknologiat, kuten Google Glass on, että ne tulevat jotain tunnetaan API, Application Programming Interface. Ja mitä tämä tarkoittaa, että oikea tiedostoja ja oikea dokumentointi, voit itse kirjoittaa ohjelmisto jopa laitteita kuten nämä. Ja niin mitä meillä on mielessä kohti lukukauden lopussa on, jos hanke mukana vaikkapa Google Glass saattaa valitus, näemme, mitä voimme tehdä kannalta koukkaaminen sinut joitakin raajan laitteita sekä julkisesti saatavilla API jotta voit todella alkaa luoda ohjelmisto joka toimii saman Google Glass. Toinen laite, että olemme pelanneet kanssa myöhään, että luulimme voisi olla hauskaa lukukauden lopussa on tämä pikku juttu täällä. Sitä kutsutaan Leap Motion, ja mitä olet tulleet on teknisesti mainos laite, mutta se ei puhu, mitä tässä laite pystyy. Ja sekin tulee API kautta jossa voit kirjoittaa ohjelmiston hallitsemaan omaa tietokonetta tavalla aivan kuin tämä yksi minuutin elokuva täällä. [VIDEOTOISTOSTA] [END VIDEOTOISTOSTA] Joten nyt, tämä laite sattuu toteutetaan hieman USB liitin, jonka voit liittää oman tietokone, mutta en olisi yllättynyt jos ennen pitkää meillä on tällaisia teknologioiden seuraavan erän tietokoneet ja Macit niin, että voit todellakin vuorovaikutuksessa sen kanssa tavalla kuin että. Itse asiassa, mitä ajattelin tehdä, sekin on Vedin jopa hieman esittelyä ohjelma, joka tulee tämän ohjelmiston. Joten olen koonnut pienen anturin edessä minun laptop. Ja kuten näette, se on jo tajuaa että käteni on olemassa valvoa sitä. Ja kaikki tämä sovellus ei ei sutjakasti vähän asioita, kuten tämä. Mutta voit nähdä, että todellakin, Minulla on viisi sormea ​​siellä. Jos saamme sen tehdä kaikki 10, voitte kuvitella siisti piano sovelluksen tai kuten. Joten jos haluat keksiä tunnin jälkeen tänään ja leikkiä, että hyvin, olet tervetullut. Joten siitä lisää kohti lukukauden lopussa. Joten pari hallinnollisten ilmoitukset. Yksi, tehdä jakson perjantaina keskipäivällä klo cs60.net/section. Että URL on kurssin kotisivu samoin. Sillä välin, kuitenkin, supersections debyytti tänä sunnuntaina. Supersections ovat yhden kerran asia, koska se vie meidät jonkin aikaa työskennellä kuka on, jossa osassa ja missä. Joten tulevana sunnuntaina siellä tulee olla yksi osa niille vähemmän mukava, yksi osa niille mukavampaa. Ja ne teistä jossain välillä ovat tervetulleita mennä jompikumpi tai molemmat tai ei kumpikaan. Molemmat taltioidaan. He olla suurempi auditorio kuin ja tavallisesti olisi sisään Mutta tavoitteemme on varustaa sinulle Joissakin mukavuutta ongelma asettaa yhden, C: n kanssa, jossa CS50 laitteen, tämän viikonloppuna, jopa ennen kuin selvittää oman muodollinen osa tehtävän. Joten voit tavata TF ja pienempiä ryhmä sectionmates noin viikon ajan. Virka puolestaan ovat jatkuneet. Onko hyödyntää niitä tänään tai huomenna jos haluat. Harjoitus 0 johtuu perjantaina. Tämä on päivää myöhemmin kuin säännöllisesti-aikataulun torstaina. Mutta ongelma set 1, näet että se sisältää joitakin warm-up harjoituksia, jotka itse voi laajentaa Torstai määräaikaa perjantaihin. Harjoitus 1 puolestaan ​​debyytti kurssin verkkosivuilla tulevana Perjantai, jos haluat käpertyä sen tein aikoinaan myöhään Perjantai-iltana huoneeseen. Joten cs50.net/appliance on paikka, jossa saat CS50 laitteen että aloimme käyttää maanantaina. Käytämme sitä hieman tänään. Mutta varma, että ongelma asetettu 1 erittely käydään läpi Juuri mitä sinun saada, että vauhtiin. Joten älä ole huolissasi tee sitä ennen Pset 1, jos et halua. Selvä. Joten me katsoimme maanantaina lähdekoodia, mutta osana uutta ohjelmointikieli, nimittäin C. ja C, toisin Scratch, ei ole graafinen. Se ei ole palapelin palaset. Se on enemmän Englanti-syntaksi. Ja siellä on pari askelta mukana vuonna todella kirjoittaa ja käynnissä ohjelma C, koska lisäksi lähde koodi näin, tarvitset jotain kutsutaan kääntäjä. Ja maallikon termein, mitä ei kääntäjä tehdä meille? Joo. Opiskelija: Se muuntaa koodin että kirjoitat 0 ja 1 s. DAVID MALAN: Hyvä. Joten se muuntaa koodin, joka kirjoitamme 0 ja 1 s. Se muuntaa ns lähdekoodin kohdekoodi, joista jälkimmäinen näyttää vähän jotain tällaista. Ja se on teidän CPU, aivot sisällä tietokone, että koska luoneita näillä tietokoneilla tietää, mitä ne sekvenssit 0 ja 1 s keskiarvo. Ehkä se tarkoittaa tulosta. Ehkä se tarkoittaa lisäksi. Ehkä se tarkoittaa vähennyslaskua. Ehkä se tarkoittaa, näyttää graafinen. On ennalta bittikuvioina että maailma on päättänyt tarkoittaa tiettyjä asioita. Mutta suurin osa tämän kurssin, me työtä korkeammalla tasolla, ja me itsestään selvänä, että on olemassa asioita, kuten kääntäjät, jotka voivat tekevät lähdekoodin toiminta tavalla aiomme. Joten ohjelma kirjoitimme ensin viime viikolla ja sitten alkoi satamaan, niin puhua, C viime Maanantai oli tämä. Kun vihreä lippu napsautetaan, tervehtimään. Tämä on tietysti kirjoitettu Scratch. Ja väitin, että vastaava ohjelma C näytti hieman jotain tällaista. Joten mitä ajattelimme tehdä aluksi on, Katsotaanpa erottaa toisistaan, mikä näyttää ensi silmäyksellä, tosin sillä melko mystistä syntaksin, mutta voit alkaa huomata kuvioita melko nopeasti. Mitä me myös tehdä tänään on tarjota sinulle henkistä mallia jostain kanoninen, joitakin standardin konstruktioita ohjelmoinnissa. Ja sitten me itse saada käsiimme likainen joitakin esimerkkejä samoin. Joten ne teistä mukavampaa, ymmärtää, että tällä viikolla ja sitten ensi viikko saattaa hyvinkin olla hieman tarkistaa. Mutta varsinkin kun hakkeri painos Ongelman set 1 sammuu Kurssin verkkosivuilla perjantaina, mielestäni huomaat, että vaikka täytät joitakin aihioita seuraavan viikon tai kaksi, voit alkaa saada yhä enemmän haastoi ja kohdata uusia ja uudempia asioita. Joten kiusaa tämä ohjelma eroaa muutama rivi kerrallaan. Huipulla, meillä on mitä teknisesti kutsutaan preprocessor direktiivi. Tämä on vain rivi koodia, joka kertoo sisällyttää tiedoston sisällön, nimeltään vakio I / N, vakiosyöte - tai, anteeksi, vakio I / O, standardi input / output,. h sisällä oman ohjelman. Eli toisin sanoen, jos kirjoitin tämän Ohjelma on yksinkertainen tekstieditori, kuten gedit, yksinkertaisempi vastaa jotain Microsoft Word, että opetusta, # include stdio.h, on vain kerron kääntäjä, tartu sisältö että muu tiedosto stdio.h, ja liittää ne täällä. Nyt, miksi hoito? Mitä me väitämme on sisällä tätä kuvaa kutsutaan stdio.h, joka on tallennettu jonnekin minun kovalevy, tai tässä tapauksessa jossain CS50 laite? Joku laittaa sen siellä minua. Mutta mitä se sisältää? Joo, niin se ilmoitus toiminto nimeltään printf. Joten printf muistuttaa toiminto näytöt sanat ja merkit ja numerot ruudulla minun hinnoittelua. Mutta en kirjoita sitä. CS50 ei kirjoittanut sitä. Joku vuosi sitten kirjoitti sen, ja he olennaisesti antoi meille resepti se tiedosto nimeltä stdio.h. Niin, että ensimmäinen rivi vain antaa minulle pääsyn toimintoihin, että joku muu kirjoitti vuotta sitten, joukossa jotka ovat printf. Nyt seuraava rivi aion aalto minun käsi, ainakin vasta ensi viikolla. Mutta nyt tiedämme, että int main (void) on olennaisesti vastaa tämän keltainen palapelin pala, kun Vihreä lippu napsautetaan. Maailman vuotta sitten päätti, että jos kirjoitat ohjelman kieltä kutsutaan C, aloitat ohjelman kanssa linja joka näyttää, että. Vain noin viikon ajan, se tulee tehdä mielessä mitä int on, mitä tyhjiö on. Mutta nyt vain ajatella sitä koska tämä keltainen palapelin pala. Nyt seuraava, meillä on kihara ahdin jälkeen toisen lähellä kihara ahdin, niin sanoakseni. Ja näemme nämä koko ohjelmia C, samoin kuin JavaScript ja PHP. Ja nämä vain koteloida liittyvien riviä koodia. Avoin kihara ahdin olennaisesti sanoo, tässä tulee koodia. Ja suljettu kihara ahdin, joka on kulma toiseen suuntaan, vain tarkoittaa, se on siinä vastaavan koodin. Niin mehukas linja tässä ensimmäisessä Ohjelma on viimeinen, printf, quote-lainaus, hello world. Ja pyysin asia välillä lainauksia mitä viime kerralla? Joten se on merkkijono. Ja merkkijono on vain techie termi sekvenssin merkkiä, sana, lause. Jopa yksi kirjain voisi on kaksinkertainen lainattu. Mutta se on sekvenssin nolla tai useampia merkkejä. Kenoviiva-n, vaikka näyttää hieman outo. Mutta se tarkoitti yksinkertaisesti sitä jotain yksinkertainen tietokone. Mitä kenoviiva-n? Uusi linja. Joten se on vain erityinen järjestys merkkejä, että maailma on päättänyt keino laittaa rivinvaihdon oikeassa, koska kääntäjä itse saada sekava, yleensä, jos hyvin ymmärrettävästi, mutta väärin, vain alkaa enteriä laittaa uudet linjat koodissa. Sinun täytyy olla hieman enemmän yksiselitteisenä kenoviiva-n. Ja näemme siellä muutamia muita tällaisia kaavoja erikoismerkkejä. Esimerkiksi jos halusi anna mieli vaeltaa nurkkaan tapauksessa Oletetaan, että halusin tulostaa lainausmerkki ruudulla Jostain syystä, että näyttäisi olla hieman ongelmallista, eikö? Koska jos laitan kaksinkertainen lainaus keskellä "Hello, world" jostain Syy, miksi, jotka näyttävät mahdollisesti ongelmallista? Se rikkoo merkkijono. Kääntäjä on vain ohjelma. Ohjelma kuten kääntäjä on juuri menossa lukea koodin ylhäältä alas, vasemmalta oikealle. Ja jos näkee kolme lainausmerkit sijaan kaksi, se ei tule tietää Jos tarkoitat, että asia vasemmalle pitäisi olla merkkijono tai asia oikealle tai koko juttu. Se on epäselvä, ja niin mitä tyypillinen kääntäjä olisi tehdä, on vain älyttömästi, ja antaa sinulle virheilmoituksen, ja sinut käsitellä ongelmaa. Joten koska kenoviiva-n tarkoittaa uutta line, mitä olisi vaistosi nyt alkaa olla jos halusi sisällyttää jotain epänormaalia kuin kaksinkertainen Lainaan sisällä tässä muuten lainatun merkkijono? Backslash-lainausmerkki. Ja niin näemme tämän Tällainen malli liikaa. Jos haluat tehdä jotain hieman outoa, huomaat, että ratkaisuja usein seurata mallia, ja kenoviiva tarkoittaa ohjausmerkkijonon. Ja se tarkoittaa vain sitä jotain erityistä että meidän täytyy edustaa eri tavalla. Kuten miten te edustatte kenoviiva hyvin, hyvitämme palata asiaan. Mutta vastaus, sekin on oikeastaan hieman selvää. Joten nyt käyttöön joitakin muita ohjelmointi konstruktioita että näit Scratch. Olet varmaan itsestäänselvyytenä jo, jos olet jo sukeltanut Harjoitus 0. Mutta katsotaanpa nyt esitellä syntaksi C Näiden muuten melko intuitiivinen ideoita, ainakin osa niistä. Joten tämä käsite kunnossa tai haara, kun aikaisemmin meillä edustaa sitä koodia, joka näytti näin vasemmalla Scratch - jos x on pienempi kuin y, niin sanoa - sijaan nyt C - haluan hioa sisään yksinkertaisimmillaan - Me olemme todella aikoo sanoa, jos avaa suluissa, jokin on totta - Boolen lauseke on menossa jos olen sanonut kunnossa - lähellä suluissa, niin älä mitä sisällä näitä aaltosulkeita. Niin tässäkin aaltosulkeiden ovat ikään kuin Scratch n U-muotoinen palapelin palaset. Älä mitä sisällä nämä aaltosulkeita. Tässä tapauksessa, Slash Slash. Ja huomaa tämä on eteenpäin slash, ei kenoviiva. Vinoviiva, vinoviiva, niille, jotka ovat ohjelmoitu ennen, tarkoittaa vain sitä, - se on vain mielipide. Kommentti ei ole linjaa koodia, sinänsä. Se on linja Englanti, että te, ihmisen, ovat kirjoittaneet itse ehkä muistuttaa sinua tekemään jotain, jotta selittää itse, selittää joku muu, mitä koodi tekee. Se on vain kuvaava kommentti. Nyt tietenkin voimme olla kaksisuuntainen tienhaarasta vain tekemällä tämän, kolmitie tienhaarasta tekemällä Tämän ja jos jatkat tätä kuvio, voit olla neljä, viisisuuntaisella, kuusi-tie haarautuu tie, jos sinun täytyy käsitellä, todellakin, että monia ehtoja. Ja sitten huomaa rinnakkaisuus täällä - if (ehto), if (ehto), ja ainoa, joka on hieman outoa on viimeinen, joka on juuri sitä muuta. Mutta jälleen kerran, tämä on sama, käsitteellisesti, mitä olemme tehneet jo, vaikka syntaksi kestää hieman totuttelua. Nyt, tässä esimerkissä, on joitakin muita outoja syntaksin. Näemme printf uudelleen, alkusulun, ja lähellä suluissa. Ja sisällä on noteerataan merkkijono. Sulkeissa yhteydessä printf, mene vasemmalla ja oikeus mitä? Mitä me kuvaamme, että lainasi merkkijonon yleisemmin? Joten se argumentti. Aina kun on toiminto, kuten printf, ja sen jälkeen avoimen paren ja lähellä kantatuote ja jotain sisällä se, onko se merkkijono, tai kokonaisluku, tai jotain muuta, asia välillä suluissa kutsutaan argumentti. Ja argumentti juuri vaikuttaa funktion käyttäytymistä. Tässä tapauksessa se on melko selvää miten. x