[Musiikki soi] DAVID MALAN: Okei tämä on CS50 ja tämä on viikon lopussa yksi. Joten haluan esitellä minun entinen advisee, Andelin Duff, joka ei ainoastaan ​​tee iPhone 5 seisoo, sekä tämä lectern, hän tekee myös autoja. ANSEL Duff: Miten menee, kaikille? Haluan vain kertoa teille hieman vähän siitä Formula SAE, josta minä olen kapteeni. Se MIT joukkue. Haluan vain kertoa sinulle kaverit vähän siitä ja toivottavasti tuottaa jonkin verran kiinnostusta. Joten haluan vain ajaa läpi pari asioita tiimiimme. Olemme siis täysin Opiskelija aikavälillä, jolloin kaikki jäsenistä suunnittelu, simuloida, testi, ja valmistaja osajärjestelmä auton. Meillä on oma konepaja ja autotallit ja N52-- tai anteeksi, N51-- joka on samassa rakennuksessa kuten MIT Science Museum. Ja me olemme ihmisiä että ajaa autoa. On kansallinen kilpailu alussa kesän, ja sitten on pienempiä rangaistuspotkukilpailun kilpailuja ympäri vuoden. Ja sitten teemme ajoharjoittelua päivän päästä uusia jäseniä tutustui. Build päivät ovat Lauantaisin klo 11 kaksikymmentä. Lounas ja päivällinen huolehtivat on vuodesta Bertucci ja Beantown vastaavasti. Meillä on viikoittain kokouksen ja seminaari, joka on tietenkin luottoa. Joka on uusi, koska tämän lukukauden, ja se on myös ensi lukukauden, joten voit ristiin reg siitä. Ja sitten meillä on suunnittelu, kauppa, ja CAD viikonpäivinä, kun taas jäsenet itsenäisesti CAD-osat, tilauskanta ja niin edelleen. Niin sähkö insinööriksi joukkue meillä on vetävä, suurjännite-järjestelmä, joka kulkee nimellisellä 300 volttia, joka sisältää moottoreineen, moottorin valvontalaitteita, ja akkuja. Sitten meillä on alhainen jännite järjestelmä, joka kulkee 12 volttia, joka sisältää tarkastukset, CAN solmut, aivot ruutuun, ja kojelauta. Sikäli CS menee, teemme on sivuston ylläpito ettei meidän tarvitse tehdä tapahtumia, jäsenyyden muutoksia, uusia kuvia, ja PR materiaalia. Ja sitten meillä on koodi, joka ohjaa auton meidän luistonesto, käynnistää ohjaus, kojetaulusta, vääntömomentti vectoring, ja jarrutusenergian järjestelmiä, jotka ajaa tyypillisesti MATLAB, Simulink, ja LabView. Kertoa hieman siitä autosta. Niin se on noin 500 kiloa. Se on sääntöjen rajoitettu 85 kilowattia. Se on 2 EMRAX 207 moottorit takaisin, yksi jokaista takapyörää. Se on erikoisvalmisteinen akut alkaen Prismaattinen A123 pussi soluja, yhteensä 300 volttia ja 5.6 kilowattituntia. Ja se on suoraveto kanssa 2,64-1 asemaan suhteessa. Tässä muutamia kuvia meidän otti sen kilpailun. Tässä on takana, nenä kartio, ja tässä ovat moottorit, ne iso musta levyjä alla et miesten Manus. Tässä liukumäki että vedin pois meidän kilpailun järjestelmää. Ja tämä on vain vertaamalla automme pari kaupallisesti saatavilla autoja, kuten KTM XBOW, Ariel Atom, ja Caterha M 7-280. Jos olet perehtynyt hinta, teho vetää painoa, dollaria per hevosvoimaa, dollaria vääntömomentti, ja automme puhaltaa ne kaikki pois vedestä. Jos sinulla on kysyttävää, hiukkaakaan alas tämä sähköpostiosoite. Ampua meille sähköpostia osoitteeseen fsae@mit.edu. Olemme iloisia puhua mitä haluat. Harvardin opiskelijat ovat ystävällisiä vähemmistön joukkue. Jos sinulla on kysyttävää että älä ammu meille sähköpostia, onnellinen puhua, ja aion suunnata takaisin yli Davidille. Kiitos. Arvostan sitä, kaverit. [APPLAUSE] DAVID MALAN: Ansel vietti kesän kanssamme täällä kampuksella CS50 tänä kesänä. Ja lisäksi työtä asioita, kuten binary sipulit, hän oikeastaan ​​todella avasimme eyes-- ja kaivoksen particular-- mitä todella risteyksessä ei laitteisto ja ohjelmisto voi olla. Itse asiassa paljon asioita hän vain kiersi läpi viime kädessä Ensimmäisenä syntynyt ohjelmisto, ja sitten lopulta valmistettu reaalimaailmassa laitteisto. Joten jos olet kiinnostunut tutkimalla, että risteys, ehkä ryhtyä tähän ryhmään. Nyt puolestaan, ne teistä jotka ovat faneja tekniikkaa, ja Applen tuotteita erityisesti tietää, että oli pari ilmoitukset eilen. Mutta ajattelimme näyttää Oletko yksi, joka tuli ulos muutama päivä ennen että et ehkä ole nähnyt. JORGEN EGHAMMER: Tiedätkö, silloin tällöin jotain tulee pitkin että muuttaa tapaamme elää. Laite niin yksinkertainen ja intuitiivinen käyttäen se tuntuu melkein tutulta. Esittelyssä 2015 IKEA-kuvastot. Se ei ole digitaalinen kirja tai e-kirja, se kirja-kirja. Ensimmäinen asia huomata ole kaapeleita, ei edes virtajohtoa. 2015 IKEA-kuvastot tulee täyteen, ja akku on ikuinen. Käyttöliittymä on 7,5 8 tuumaa, mutta voidaan laajentaa 15 8 tuumaa. Navigointi perustuu painallustoiminen tekniikka, että voit todella tuntea. Sisältöä tulee esiasennettuna kautta 328 HD-sivut innostavia kodin sisustamiseen ideoita. Selaimen käytön aloittaminen, yksinkertaisesti koskettamalla ja vetämällä. Oikealta vasemmalle eteenpäin, Vasemmalta oikealle liikkua taaksepäin. Huomaa jotain muuta? Aivan oikein. Ei viiveellä. Kukin kristallinkirkas sivu kuormat välittömästi, ei väliä kuinka nopeasti voit vierittää. Jos haluat saada nopeasti yleiskuvan, vain pidä sitä kämmenelle, ja käyttämällä vain peukalolla, nopeus selata sisältöä. Jos löydät jotain haluat tallentaa myöhemmin, voit merkitä sen suosikiksi. Ja vaikka suljet sovelluksen, voit helposti löytää kirjanmerkki uudelleen. Amazing. [Naurua] [APPLAUSE] Joten tämä tuo meidät viikon lopussa yksi. Muutama ilmoitukset nyt. Joten leikkuu on nyt käynnissä. Siirry osoitteeseen täällä joskus nykyhetkestä ja perjantaina keskipäivällä itse määrittää, oletko joukossa vähemmän mukava, enemmän mukava, tai jotakin siltä väliltä. Tämä on tyypillisesti yksi niistä asioita, joita et juuri sellainen tietää. Ja itse asiassa ne teistä, jotka ovat vähemmän mukava luultavasti tietää yhtä paljon, Niille teistä, jotka ovat enemmän mukava tietää niin paljon, ja uudelleen, jos et ole aivan varma, mikä Näiden kauhat putoat olet luultavasti jossain välissä. Mutta varma et voi vaihtaa jälkeen pari viikkoa, jos tarvetta on. Samalla tulevan viikon emme aloita kohdat sinänsä, mutta Super kohdat, jotka ovat avoimia kaikille opiskelijoille. Tulevana sunnuntaina paikassa Ilmoitetaan kurssin sivuilla meillä on yksi nämä vähemmän mukava, sekä yksi ne mukavampaa. Ja ne jossain välissä voi valita, kumpi näistä kahdesta, tai molempia, jos haluat, istua-in. Ja keskittyä näiden on viime kädessä C, jonka me jatkamme keskustelun tänään. Harjoitus 0 välin on toivottavasti sinun käsissäsi. Virallisesti johtuen huomenna, Torstaina keskipäivällä. Ellet käteistä yhdessä teidän 5 myöhään päivää, mikä toisi perjantaihin klo. Harjoitus 1 välin tulee lähetetty kurssin kotisivuilla. Ja tämä on ensimmäinen ryöstöretki luokkana osaksi C. Ja että ongelma asettaa spec käydään läpi paljon mekaniikkaa mitä aloimme puhua maanantaina ja jatkamme puhumme tänään. C, Linux, CS50 laite, kaikki kyseisen odottaa sinua selityksessä. Toimisto avoinna puolestaan ​​ovat käynnissä, vuonna perustutkintoa ruokasalissa. Suunnata tätä URL tästä nähdäksesi ajoittaa illan ja huomenna, jos haluat nauttia. Kysymyksiä välin, niin että te on mahdollisuus esittää kysymyksiä asynkronisesti, 24/7, ymmärtää olet ei rajoitu kohdat ja toimistoon tuntia, vaan tämä työkalu Täältä CS50 Keskustele tuohon URL tulee olemaan kurssin verkossa ilmoitustaulu ohjelmisto, jonka kautta Voit esittää kysymyksiä luokkatoverit ja myös henkilökuntaa. Niin pitää muistaa, että resurssi samoin. Samaan perinne alkaa tänä perjantaina. Kuten olet ehkä vilaukselta viime keskiviikon teaser video, meillä on perinne eniten joka perjantai lukukausien ottaa noin 50 opiskelijaa ja henkilöstön paikallinen ravintola nimeltään Fire and Ice, jossa olemme tyypillisesti liittynyt noin alumni tai ystäviä teollisuuden yleisesti pyrkiä tehdä suuren luokan tuntuu pienempi. Joten se on täysin rento lounas. Porukalla, henkilöstö varsinkin, pelaavat tuolileikissä ja keskustella oppilaiden kanssa 50, elämän ulkopuolella 50, elämää tulevaisuudessa, todellisessa maailmassa, Puhun työmahdollisuuksia ystävien teollisuudessa. Joten jos haluat liittyä meihin perjantaina, pää tätä URL täällä. Tilaa on rajoitetusti, mutta me teemme tätä recurringly koko ajan. Pää siellä cs50.harvard.edu/rsvp. Ja jos et ota tällä kertaa, ei hätää. Teemme sen uudestaan lähiviikkoina samoin. Joten tämä on kuva me maalattu viime viikolla, ja olet todennäköisesti ollut leikittelevät toistaiseksi. Mutta yritetään yhdistää tämän nyt mitä aiomme tehdä tänään ja eteenpäin. Saisinko yksi vapaaehtoinen? Okei, tai useita. Entä täällä pää, sininen paita. Tule ylös, mikä on nimesi? ALANA: Alana. DAVID MALAN: Alana. Niin Alana, vain moment-- kiva tavata sinä-- aikoo näytellä Tämän toiminnon täältä. Violetti lohko olemme kutsutaan toistaiseksi toimintoa. Joten mitä aion mennä eteenpäin täällä ja tarjoavat Alana on pieni nimilappu, jotta selvää, mitä roolia pelaat. Joten sinun on sanoa lohko. Jos haluat mennä eteenpäin ja laittaa sen päälle. Ja me aiomme pitää tätä erittäin yksinkertaista. Jos tavoite käsillä on yksinkertaisesti nyt panemaan Alana, Tämän niin kutsutun sanoa lohko, Näin se tulee toimimaan. Olen have-- kutsukaamme sitä väitteen tai parametri, se on oikeastaan ​​vain tyhjä paperi. Ja se on valkoinen sellaista tuoda mieleen valkoisen laatikon, johon voit osaa kirjoittaa sanoja. Samalla aion mennä tänne. Aion mennä eteenpäin ja kirjoittaa H-E-L-L-O-pilkku maailmassa. Ja nyt minä, niin sanon ohjelmoija, eivät oikeastaan ​​tiedä miten sanoa jotain. En voi keksiä sanoja, mutta en välttämättä osaa ilmaista itseäni suullisesti tai ruudulla. Ja niin mitä aion tehdä, on ottaa tämä pala toimintoja, joiden input-- tai väitteitä, kuten me sitä kutsumme, Olen kirjoittanut tästä pala paper-- ja aion ulkoistaa sen. Ja tosiaan se rooli, joka toiminnot ohjelmointikieli voi pelata. Jotain sananvaltaa lohko voidaan ulkoistaa joku, joka todella tietää mitä hän tai hän puhuu. Joten jos sinulla askel yli täällä vain hetken, Aion välittää tämän tulo Alana, ja pyytää, että sanot tähän tuloon. ALANA: Hei, maailma. DAVID MALAN: Siinä se. Niin, että on olemassa funktio. Nyt voimme ottaa sen hieman enemmän, voimme ottaa askeleen eteenpäin täällä. Koska se oli selvästi underwhelming. Joten nyt muuttaa tämän jotain hieman kehittyneempiä. Joten tämä on tietenkin meidän C-versio. Joten nyt, jos haluat ottaa sen kertaluonteinen, että nimilappu pois, ja otetaanpa laitat uuden nimen. Mutta pohjimmiltaan olet pelissä sama rooli, se vain niin sattuu kutsua printf nyt. Tarina on tietenkin, menossa olet-- luultavasti aivan kuten underwhelming-- on tulee olemaan seuraava. Olet nyt funktio printf. Olen soittaja, tai ohjelmoija, joka haluaa seistä harteille ihmiset menneisyydessä kuin sinä, jotka olen jo tajunnut, miten todella kirjoittaa jotain alas. Ja niin tällä kertaa, pikemminkin kuin sanoa se katsotaanpa tosiasiallisesti käyttää näytön tänne. Joten jos haluat vaiheeseen tänne, aion siirtää uudelleen tätä tulo minun printf ystäväni. Jos voisit mennä eteenpäin ja tulostaa, että ruudulla, yksinkertaisesti vetämällä kanssa Sormi musta ruutu. Erinomainen. Okei, niin paljon jännitystä varten miten tämä oli menossa pelaamaan. Joten nyt ottakaamme asioita yhdessä lopullinen lovi, jos voisimme seuraavasti. Joten tämä on C-ohjelma kuten sanoimme viime kerralla. Ja tämä vain tekee mitä teit, se tulostaa näyttöön, hei, maailma. Vaikka siellä on selvästi paljon häiritseviä juttuja siellä. Mutta ottakaamme asioita lovi ja käyttöön tämä versio, joka muistuttaa oli kolmas versio, joka päädyimme viime kerralla. Ja nyt on selvästi kaksi käytöt printf. On 2 puhelut Alana Tässä tapauksessa printf, mutta siellä on myös puhelun toisen toiminnon. Mikä tämä toiminto selvästi? Getstring. Saammeko yhden vapaaehtoinen? OK, tule ylös. Mikä sinun nimesi on? JAVIER: Javier. DAVID MALAN: Javier, tule ylös. Joten Javier rooli on tämä paperinpala. Jonka aion soittaa yleisesti s. Nyt tämä on vaihteleva, se on tyypin string, kuten ehdotetun tämän toisen rivin keskellä on. Ja haluan sinun mennä saada minut merkkijono. Erityisesti pää alaspäin orkesteri jakso ja saada minulle nimen joku, ja tulla takaisin muuttuja sisältävät kyseisen arvon. Se voi olla kuka tahansa haluat. Tässä sitä mennään. Kunnossa, Javier on kirjoittaa ylös nimi. Kunnossa. Me kaikki voimme arvata, miten tämä on menossa pelaamaan. Olemme ehkä belaboring piste, mitä toiminto tekee, mutta kuitenkin paljon kiitoksia. Joten Javier on palannut tämän merkkijonon täällä, mikä oikein näe, Jonathan on merkkijono että olemme saaneet. Mitä nyt olen todella menossa toimittamaan Alana vaikka on jotain hieman erilaista. Koska tässä versiossa Ohjelman ensimmäinen siellä nimesi. Joten ensimmäinen väite Minun täytyy antaa Alana kanssa tulee olemaan kirjaimellisesti nimesi. Kunnossa, niin yksinkertaista se on Ojensin tämän sinulle. Ja kun kirjoitan ylös seuraava argumentti, jos haluavat mennä eteenpäin ja kirjoittamaan tämän taululle, mennään eteenpäin ja tehdä lopullinen esimerkki tästä tehdä tyhjentää mitä lopulta sai tapahtua. Joten nimesi, kirjoittaa sen yläosaa kohti jos et mielessä, juuri niin, että meillä on tilaa yhdelle toisen linjan. Koska viimeinen asia, aion nyt tarjota sinulle ei ole yksi, mutta kahden paperiarkin. Kunnossa. H-E-L-L-O-pilkku ja sitten tyhjä rivi. Joten mitä olen aikeissa luovuttaa Alana nyt on jotain hieman erilaista. Ei vain hän saa tämän, jossa täytä tyhjä edustaa että percent-- mikä oli paikanvaraaja olemme käyttäneet? Joo, niin prosentin s. Samalla aion kulkea hänen toinen argumentti, joka Juuri Javier noudetaan Jonathan. Joten annan teille nämä kaksi. Jos haluat, mennä eteenpäin ja tulostaa tästä. Mitä lopulta tapahtuu nyt on, Alana jälleen pelaa rooli printf. Javier pelasi roolia GetString. Niin, että on teidän matkamuisto. Ja lopulta mitä tapahtuu, vaikka Tämän hello-- juu mennä eteenpäin ja pilkku. ALANA: sain tämän vielä vai ei? DAVID MALAN: Jep, saanut ne molemmat kerralla. Joten ajatus on, että te voi nyt kääntää sivulle käsittelemään toista nämä kaksi tuloa. Joten tämä on vain tuoda äänekkäästi huomauttaa, että vaikka Alana teloitettiin Tämän vihreän linjan täällä, ja sitten Javier teki tämä meille ja palata minulle jotain soitamme s, mutta se oli todella vain että paperinpala oman. Ja nyt Alana on tehnyt tämän kolmannen rivin. Ja vaikka tämä kaikki näyttää niin uskomattoman arvoituksellinen ehkä ensi silmäyksellä, se todella on niin yksinkertaista. Syöttäminen tuloa ympärillä, saada tuotoksia, joko on fyysisesti palautettu jotain, tai nähdä sivuvaikutus näin. Jotain visuaalisesti kirjoitettu näytölle. Joten mene eteenpäin ja kiitos Alana ja Javier, joka oli täällä, ja tuloaan tänne. [APPLAUSE] Joten nyt oletetaan itsestäänselvyytenä, kuinka suoraviivainen kaikki tämä voisi olla. Ja katsotaanpa edetä todella tehdä jotain itse koodia. Niin ruudulle tässä kuvakaappaus ja ns CS50 laite. Ja jos oli klo, koska 14:00 keskiviikkona iltapäivällä, selittää jossain kaverille mitä CS50 laite on, Miten määrittelisit sen lauseen? Jokin lause? Joo? Opiskelija: Se on kuin ohjelma joka tekee kaikkien tietokoneeseen ajetaan samaan järjestelmään. DAVID MALAN: Hyvä! Se on ohjelma, joka mahdollistaa kaikkien tietokone ajaa samaa järjestelmää. Se on tavallaan oman kopio toiminta joka sattuu kutsua Ubuntu Linux. Ja se toimii tehokkaasti sisällä ikkuna omalla Mac tai PC, jotta näin oikealle ulos portista viikolla 1, jokainen täällä luokassa on pääsy samoja työkaluja, sama kokoonpano, ja ei ole oppimiskäyrä erityistä Mac tai PC erityisesti. Nyt avautunut sisällä CS50 Laitteen maanantaina, tästä ohjelmasta. Se sattuu olemaan nimeltään gedit. Mutta se on oikeastaan ​​vain graafinen editori. Se on jotain Notepad tai teksti Muokata Windows-tai Mac OS vastaavasti. Ja ehdotin, että siellä oli todella kolme tärkeää osaa tähän näyttöön. Yläpuoli on, jos olisi kirjoittaa koodia. Ja siellä vietimme paljon meidän kolme esimerkkiä maanantain luento. Pohja soitimme mitä, tämä musta ikkuna, joo? Opiskelija: Compiler? DAVID MALAN: Compiler me käsiksi tapa tuosta ikkunasta. Mutta yleisemmin. Joo, se oli vain pääte ikkuna. Tämä on iän vanha käsite, joka vain kuvaa lähinnä Vilkkuva nopea, että vuosia sitten tottunut yksi niistä iso CRT tyyliin näytöt. Mutta nykyään se on eräänlainen virtuaalinen ohjelmisto. Ja terminaali-ikkunaa Katsotaanpa meille kirjoitat komentoja. Se tavallaan yksinkertaistettu versio käyttöliittymän tai UI. Se ei ole graafinen käyttöliittymä tai GUI, se on tekstipohjainen käyttöliittymä tai komentoriviltä. Ja todellakin se on silloin lopulta Pystyin kirjoittamaan koodia. Kun olin kirjoittanut koodia kuitenkin, muistuttaa, että käytin tätä komentoa. Ja koska se nimi Tällainen voi päätellä, tämä antaa minulle mahdollisuuden tehdä ohjelma nimeltä Hei. Mutta mitä se oikeastaan ​​tekee? No make otti minun input, minun lähdekoodi, ja muuntamalla se mitä lopulta? Kohteen koodi. Ja kohdekoodit vain hieno tapa sanoa nollia ja ykkösiä. Ja sitten kun halusin juosta että konekielisessä kerran halusin välittää syöttää ne nollat ​​ja ykköset tietokoneeni aivot, ns CPU tai keskusyksikkö, Jouduin ohjelman suorittamiseen. Mutta se ei ollut aivan yksinkertainen maanantaina kuten tupla klikkaamalla joitakin kuvaketta. Mitä sen sijaan minun piti tehdä, jotta ajaa ohjelmaa? Mikä oli toinen komento? Kuulen vähän viiltää? Kyllä, joo? Opiskelija: Dot slash ja Ohjelman nimi. DAVID MALAN: Aivan. Dot kauttaviiva ja ohjelman nimi. Nyt Mitä tämä tarkoittaa? No piste on vain mystistä tavalla sanoa hakemistossa. Riippumatta kansio olet on Viitattu, on edustettuina piste. Slash on juuri sitä, mitä olet nähnyt Mac OS ja Windows vuosia, se erotin välillä hakemisto tai kansio ja loput jonkin nimen. Windows se sattuu menemään taaksepäin, Linux ja Mac OS se sattuu menemään eteenpäin. Mutta se on vain erotin, joten se on vain mielenkiinnoton syntaktisia yksityiskohtia. Mehukas osa tietenkin on ohjelman nimi, Hei. Ja niinhän tekevät meitä varten. Se tulostetaan tiedoston meille. Mutta kuinka voimme päästä tähän pisteeseen? Katsotaan nyt kysyä kysymys, mikä oli todella täällä, ainakin Tiettyjen tämän syntaksin? Joten lause tai niin, miten voimme selittää pois Tässä ensimmäinen rivi, joka on merkitty vihreällä? Mikä oli ensimmäinen rivi tekee, suhteen oma ohjelma? Joo? Opiskelija: [kuulumaton]. DAVID MALAN: Sano se uudestaan? Opiskelija: Sisältää ja lataamalla viimeisen toiminnot [kuultavissa]. DAVID MALAN: Hyvä. Lukien, en sano lataamista, mutta sanotaanko myös toimintoja, jotka ihmiset olen kirjoittanut aikaisemmin. Ja nämä toiminnot on toteutettu jonnekin minun tietokone. Joku kirjoitti tiedosto vuotta sitten, ja että tiedoston on jossain sisällä CS50 laite, tai kiintolevyllä yleisemmin. Ja niin tämä linja on lähinnä sanomalla, mennä etsimään että tiedosto, vakio-I / O-piste h, ja kopioi ja liitä sen sisältö täällä päälle tietoni joten en tarvitse tehdä manuaalisesti itse. Ja joukossa juiciest kappaletta sisällä että tiedosto me väitti oli mitä toimintoa? Mikä toiminto ei sanomme julistettiin tai mainittujen standardi I / O-piste h todennäköisimmin? Printf, eikö? Emme kirjoittaneet printf päälle Maanantai, se vain oli olemassa. Aivan kuten Alana vain tuli lavalle ja hän vain olemassa ja osasi tehdä jotain ruudulla, joten ei Printf olemassa monta vuotta. Ja niin tämä on miten me käyttää sitä. Nyt jos siirrymme täällä, Tärkein oli analoginen me sanoi palapelin pala kutsutaan, kun vihreä lippu napsautetaan maailmassa Scratch. Se on vain eräänlainen oletusnimellä että ihmiset päätti edustaisi oletuksena alkupisteestä ohjelmaa. Kimpale ohjelmakoodia että saa ensin suoritetaan. Samalla nämä aaltosulkeita ovat ikään kuin kaareva muoto on paljon niitä keltaisia ​​tyhjästä kappaletta. He tavallaan kiteyttää koko nippu ohjeet yhdessä. Niin se vain eräänlainen sitoo yhteen joitakin asiaan liittyviä toimintoja. printf tietenkin on toiminto, joka tulostaa näytön, koska me vain teimme. Entä nämä suluissa? Miten define-- vaikka olet koskaan ohjelmoitu ennen, mutta juuri perustuva nyt yhä toivottavasti intuitio, mitä ovat suluissa tekevät meille täällä? Tai mitä ne ympäröivien? Joo? Opiskelija: He sanovat mitä aiot tulostaa printf. DAVID MALAN: Joo, he sanovat mitä aiot tulostaa printf. Tai yleisemmin, ne ovat ympäröivä panoksia toimintoa. Voit siis melkein ajatella Näiden sulkuja olevan kuin metalli ClipArt tällä leikepöydälle. Se mitä tilalla, se on mitä on aiotaan käyttää antamaan perustelut funktioon, joka Tällöin kutsutaan printf. Niin yleensä lähes kaikki aika kutsumme toiminto, aiomme nähdä parin sulkuja. Ehkä jotain se, kuten nyt ehkä mikään siinä. Mutta se jos voisitte laittaa tuloa tai ns argumentteja toiminnon kohdalle. Tässä yksi tällainen argumentti. Olen korostanut kaiken välillä lainausmerkkejä, koska se kääntyy pois tällä kielellä kutsutaan C, kun haluat edustaa string-- että on sana tai lause tai jopa paragraph-- joudut surround sen lainausmerkkeihin. Ei heittomerkkiä, lainausmerkkeihin. Ja juuri mitä olen tehnyt täällä. Samaan aikaan siellä on outoja symboli loppupuolella siellä. Kenoviiva n. Mitä sanomme, että edustettuna? Joo? Opiskelija: uusi linja. DAVID MALAN: Uusi linja. Aivan, et yleensä paina Enter, kun haluat ohjelman sylkäistä uuden rivin. Pikemminkin kerrot sen nimenomaisesti Tämän tosin mystistä pala syntaksin, kenoviiva n, että haluat uuden rivin mennä sinne. Lopuksi puolipiste. Emme todellakaan puhu liikaa tästä, ja ylivoimaisesti tämä on ikuinen joidenkin oman olemassaolon ensimmäisen ongelman set, kun vain ole ymmärtäneet olet unohtanut jotain niin typerää kuten puolipiste. Ja yleensä laitat sen siellä korjaa tämän ongelman. Mutta mitä se tekee meille, sanoisit? Opiskelija: [kuulumaton]. DAVID MALAN: Anteeksi? Opiskelija: [kuulumaton]. DAVID MALAN: Viimeistely selvitys. Se on tavallaan kuin ajankohtaan loppuun Englanti lause, taas tällä kielellä C se päättyy selvitys. Opetus ohjelmointi koodi, joka haluat vain sanoa, Olen tehnyt tämän. Nyt huomaa, että on vain yksi täällä. Joten et halua saada tapana laittaa puolipistettä välein suljettu sulkeissa. Esimerkiksi siellä yhtään vieressä mitätöidä, ja me palata tulevaisuudessa mitä void keinoin. Mutta tässä tapauksessa sinun printf on toiminto tai ilmoitus käytössä, ja siksi haluamme olla, että päätepysäkki aivan lopussa. Ja olen tietoisesti kiusaa C. Ja rehellisesti paljon kieliä kuten C, C ++ Java, JavaScript, ja rajoittamattoman määrän Muilla kielillä on paljon näitä tavallaan syntaktisen yksityiskohtia. Että varmasti jos olet uusi ohjelmointi voi todella kompastua sinut. Ja te, merkitse minun sanoja, jotkut teistä on tämä kokemus virassa tuntia tai myöhässä yöllä työskennellyt joitakin p-sarja, jossa perhanan ohjelma vain ei kokoa, se ei toimi, joudut ei ole aavistustakaan mikä on vialla, se näyttää täysin loogisesti oikea sinulle. Ja se on, koska olet unohtanut jotain lyömällä puolipiste lopussa joitakin linja. Mutta nämä ovat niitä asioita olet menossa heti oppia näkemään. Ja todellakin nämä ovat asioita että CA: n ja TF: n on on tavallaan koulutettu nähdä paljon nopeammin kuin sinä. Joten tämä on vain sanoa, kun sukeltaa Harjoitus 1 erityisesti, Älä turhaudu tämän kamaa. Kun tavallaan sopeutua maailmalle, sinun alkaa nähdä asioita, joita et ehkä ole nähdä ensi silmäyksellä tällä ensimmäisellä viikolla. Joten lähdekoodi on jotain. Haluamme välittää sen ns kääntäjä. Ja että kääntäjä kuin sanoimme antaa lähtö tunnetaan konekielisessä niin kutsuttu nollia ja ykkösiä. Mutta sieltä, mitä se antaa meille? No se antaa meille nämä kuviot. Ja taas tietokone, Intel sisällä, ymmärtää nämä kuviot nollia ja ykkösiä. Ja joskus kuvio edustaa todellista desimaaliluvuksi kuten näimme viime viikolla, joskus se edustaa kirjain kuten näimme viime viikolla, joskus se merkitsee opetusta, kuten tulostus jotain näyttöä. Joten printf varten instance-- vaan haluan taaksepäin. Olemme ottaneet itsestäänselvyytenä että nämä nollia ja ykkösiä ovat tuotetaan tällä komennolla make. Mutta varmista, ei ole kääntäjä. Tee ei ole asia keskellä joka on tuottaa nollia ja ykkösiä. Pikemminkin tehdä on vain erittäin hyvällä nimetty ohjelma jonka tarkoitus elämässä on lähinnä selvittää Miten kääntää ohjelma. Ja käytämme sitä näissä Ensimmäisten viikkojen koska se vain säästää paljon vaivaa. Mutta mitä tehdä, on todella tekemässä kun käännät Hei, on, kuten sanoimme viime kerralla, se on etsii kiintolevyltä tai nykyisessä kansiossa varten tiedosto nimeltä mitä, ilmeisesti? Hello.c, eikö? Se on juuri sellainen sopimusta. Se on mielivaltainen, mutta se miten asiat ovat. Tee, jos vain määrittää nimi on ohjelma, joka ei vielä ole olemassa, se tulee etsiä lähdekoodia tiedostoon, oletusarvoisesti tarkoittaa hello.c. Ja jos se löytää sen, hienoa. Se tulee muuntaa että lähde koodi kohdekoodi sinulle. Mutta joka kerta kun olen paina Enter juoksun jälkeen tehdä hei, Muistatteko nähdä viimeisen kerran melko pitkä ja kryptinen sekvenssin Muiden valkoisin kirjaimin ja Kuvaruudun merkkien? No se oli todellinen komento, Varsinainen kääntäjä, joka oli käynnissä. Joten todellinen kääntäjä käytämme suurimman osan lukukausi on jotain kutsutaan kalahtaa. Jotkut teistä saattanut käyttää Visual Studio ennen, tai GCC, tai useita muita kerääjiä. Käytämme kalahtaa. Ja kalahtaa avulla voimme todella muuttaa että lähdekoodi vastustaa koodi. Mitä tämä oikeastaan käytännössä tarkoittaa? No anna minun mennä johonkin Omat kansiot viime kerralla. Sisältä CS50 laitteen. Ja anna minun mennä eteenpäin ja luoda tätä Sama tiedosto, kuuluu vakio-I / O piste h. Int main void. Ja me palaamme tulevaisuudessa mitä int tarkoittaa ja mitä mitätön keinoin. Mutta nyt Tehdäänpä hello world kenoviiva n, aivan kuten teimme taululle. Saanen tallenna tiedosto nimeltä hello.c. Ja nyt jos haluan yhdistää nämä Olen could-- haluaisin zoomata in-- nousun tehdä hei enter. Ja tämä taas oli että hyvin arvoituksellinen linja. Mutta nyt ainakin yksi sana luultavasti hyppää ulos sinua. Kalahtaa on, että linja näimme ennen. Nyt siellä on paljon muita juttuja rehellisesti että me aalto kätemme oli tänään. Mutta siellä on muutama osajoukkoja, muutama merkki täällä jotka kiinnostavat. Mutta aion mennä eteenpäin ja tehdä tämän. Aion ensimmäisellä käyttökerralla Hei, vain todistaa että tämä toimii, koska se oli maanantai. Mutta nyt aion poistaa ohjelman. Ja aivan kuten meillä oli näitä lyhyet nimet viime kerralla, komento poistamiseksi jotain on rm, poista, kirjoita. Olet menossa hakemaan melko arvoituksellinen kysymyksiä. Vaikea uskoa, että voit tehdä vaikka tämä kysymys vaikea ymmärtää. Mutta poistaa tavallinen tiedosto hei vain keinot haluat poistaa hei. Ja voin mennä eteenpäin ja kirjoita y Kyllä, Anna, ja nyt se on mennyt. Mitä tämä tarkoittaa nyt jos voin tyhjentää näytön, korvataan: teet tehdä hello-- sinua Tiedätkö mitä, Saan hyvä tässä. Aion ajaa kääntäjä itse. En Tarvitsen ohjelman selvittää, mitä minun tiedosto on nimeltään. Kirjoitin hello.c, minä tiedä sen nimeä, Olen selvästi kykenee kirjoittamalla siitä. Joten aion mennä eteenpäin ja älä clang hello.c Enter. Tuntuu toimivan. Ja ei ole ylimääräisiä lähtö, koska kalahtaa on kääntäjä. Se mitä muuntamalla lähdekoodin nollia ja ykkösiä. Joten jos en nyt tee piste slash Hei Anna, hm. Uusi virheilmoitus tänään. Joten bash on vain nimi vilkkuu nopea että käytämme. Se brutto yksinkertaistamista, mutta nyt siinä kaikki eli se vilkkuu nopea. Ja siksi se huutaa meille. Tiedostoa tai hakemistoa ei hieman yksinkertaisempi. Mutta varmasti tein, että esine koodia. Mutta saalis on, että jos en kirjoita komento luetella sisältö hakemisto, joka on mitä? ls lista. On nippu tavaraa täällä, joista osa tuli laitteen kanssa, mun Työpöytä-kansioon, Downloads kansio, Dropbox-kansioon, ja kaikki että tavaraa. Mutta mikä on mielenkiintoista on hello.c, joka Loin hetki sitten gedit. Ja mikä on oudoin looking nimi täällä, ehkä, että emme Katso viime kerralla ollenkaan? a.out, eikö? Joten takaisin seuraavana päivänä, se on juuri päättänyt, että kun Ohjelmaa käännettäessä ensimmäistä kertaa, ja et määritä nimeä tiedoston, kutsukaamme sitä. Ja a.out juuri sitä tämä oli lähtö kääntäjä. Joten se on kamala nimi ohjelman. Vaan että logiikka, piste slash varten nykyisen hakemiston, slash a.out, pitäisi tarkoittaa siellä on itse asiassa my hello world ohjelman. Nyt hieman lämmetä liikuntaa, liikaa. Jos haluan nimetä tämän tiedosto, osoittautuu, että te siirtää tiedoston yhdeltä nimen toiseen. Niin mv a.out, ja sitten minä voi kutsua sitä hei Enter. Joten tämä on Linux komento. DOS oli tämä vuosia sitten, Windows on pääteikkunassa jonkinlaisia ​​joka näyttää näin, Linux ja Mac tietokoneissa on tämä vilkkuu nopea. Vaikka useimmat meistä luultavasti harvoin, jos koskaan, käytä sitä. Mutta mitä olen tehnyt ajetaan ohjelma, jonka nimi on mv, ja olen antanut sille kaksi väitettä, niin sanoakseni. Kaksi tuloa. a.out on alkuperäinen nimi. Hei on uusi nimi. Joten jos en nyt tee dot slash Hei, Anna, joka on olemassa. Ja jos en tee piste slash a.out, mitä te odotatte minun pitäisi nähdä? Bash, ei Tiedostoa tai hakemistoa. Koska olen vain nimesi sen. Joten tämä vie hieman totuttelua. Mutta ongelma set 1 erittely todella Pidä kätesi kautta joitakin tämän minutae. Koska tämä on täydellinen henkinen häiriötekijä alkaen mielenkiintoisempaa ideoita käsillä, joka on itse luoda jotain koodia. Mutta tehkäämme yksi muutos nyt tähän ohjelmaan. Muistaa, että viime kerralla tein jotain kuten tämä, printf nimesi. Ja todellakin me vain teimme tämän valkokankaalla tuolla. Ja sitten tein merkkijono s saa GetString auki paren, sulje paren. Ja paren vain pika merkintätapa suluissa. Joten ei GetString ota mitään perusteluja? Tuotantopanoksia ei ole, mutta se tarvitsee sulkeissa koska sitähän rajataan kutsuvan funktion. Joten aion mennä eteenpäin ja yrittää ajaa kääntäjä tästä ohjelmasta nyt. Kalahtaa hello.c, koska en ei muuttanut nimensä nyt. Ja sain kasan virheitä. Katsotaanpa loitontaa täältä. Jos minä selaa uudelleen, kuten sanoin viime kerralla, Ensimmäisen, sama virhe että sain viime kerralla. On line 6 hello.c jouduin Pimeän tunniste merkkijono, minä tarkoitan standardi? En. Koska mitä virheen olen tehnyt tässä ohjelma, jos muistatte viime kerralla? Joo, me tarvitsemme niin kutsuttu apupyörät että me vain käyttää muutaman viikon. Mutta minun täytyy täsmentää, että myös, jonnekin kaapin sisällä, on tiedosto, joka kirjoitimme vain muutama vuosi sitten. Jonka sisällä ovat funktioita kuten ilmeisesti GetString. Joten nyt jos palaan tänne, lähentää, ja uusinnassa kalahtaa hello.c. Hitto, toinen virhe. Mutta emme ole nähneet tätä ennen. Tämä yksi on hieman enemmän esoteerinen selvittää. Mutta tämä on tarkoituksella ruudulla, koska halusimme kertoa tämän tarinan. Kun käännät hello.c, aivan kuten kuva ennen ehdotti, olet vain muuntaa tämä lähdekoodin nollia ja ykkösiä. Nyt CS50 henkilökunta muutama vuosi sitten kirjoitti CS50.h, ja vastaavan tiedoston, CS50.c. Ja me, muutama vuosi sitten, koottu kyseiset tiedostot tiedostoon, joka tapahtuu kutsua CS50.o. Tai se voidaan nimetä uudelleen muutamia eri asioita. Mutta se on helppo tapa ajatella sitä. Joten kokosimme CS50: n kirjasto osaksi nollia ja ykkösiä. Mutta missään olen määritellyt että haluan yhdistää minun nollia ja ne minun hello world ohjelma nollia ja ykkösiä että CS50 henkilökunta teki muutama vuosi sitten yhdeksi koko ohjelman. Kaikki Olen määritelty kirjallisesti kalahtaa hello.c on koota hello.c. En ole kertonut kalahtaa sen linkki nollia ja ykkösiä että CS50 henkilöstö luotu teille jokin aika sitten. Joten se on helppo korjata, Dash l linkin, CS50. Ja me taas nähdä tämän ennen pitkää uudelleen ja uudelleen. Mutta huomaa nyt ei ollut mitään valittamista. Joten nyt jos juoksen dot slash Hei, nyt se toimii. Vaikka se on hieman harhaanjohtava koska olen juuri rekonstruoida mitä tiedosto? a.out. Joten haluaisin kelata vain hetken. Ohjelma me vain koottu on kolme riviä koodia. Kun juoksin hello world, hei hetki sitten, en nähnyt nimesi. Ja se johtuu Juoksin vanha versio ohjelmasta. Mutta jos en tosiaan ajaa dot slash a.out Anna, nimesi, Rob, hei, maailmassa. Hm. Sellainen bugi. Luultavasti piti sanoa Rob, eikö? Niin mitä korjata täällä koodia. Opiskelija: [kuulumaton]. DAVID MALAN: Aivan. Joten minun täytyy vain tehdä, että lopullinen nipistää niin että olen ohimennen paikanvaraajassa kuten täytä tyhjä, kuten teimme hetki sitten. Mutta prosentin s on nyt että täytä tyhjä. Joten lopuksi Katsotaanpa paljastaa vielä yhden yksityiskohtaisesti niin, että ei ole taikuutta. Aion mennä eteenpäin ja päästä eroon hellow. Aion mennä eteenpäin ja päästä eroon a.out. Joten nyt minulla ei ole ohjelmia, vain minun lähdekoodia. Ja aion ajaa hieman pidempi komento, kalahtaa viiva o hei hello.c viiva LCS50. Nyt tämä alkaa tavallaan mennä toisesta korvasta sisään ja toisesta ulos ehkä. Mutta vain kiusaa lisäksi mitä tämä tekee. Kalahtaa on kääntäjä, viiva LCS50 tarkoituksella aivan lopussa tekee mitä lause? Linkit CS50 kirjastoon. Nappaa nollat ​​ja Ne, jotka henkilökunta teki ja sulloo heidät minun oma ohjelma. Joten viimeinen kysymys käsillä on, mikä on viiva o hei luultavasti teet, vaikka et olisi koskaan nähnyt tätä syntaksi ennen? Syöttöä ohjelma, joka on ei nimetty oletusarvoisesti a.out. Pikemminkin se on nimetty hei. Joten nyt ei ole a.out. Tiedostoa tai hakemistoa, koska olen nimenomaan sanonut kutsuvat tätä ohjelmaa hei, niin että Voin nyt kirjoittaa nimen tuollainen ja on se käyttäytyy. Nyt rehellisesti, poika on, että mielenkiinnotonta olla muistaa kaikki, että pikku erikoiskohtaa, eikö? Joten mene eteenpäin ja päästä eroon Hei taas. Ja katsotaanpa nyt palata maailmaan mikä todettakoon tehdä hei. Mutta se taika, joka Merkki tekee sinulle, se on puuduttavan että se tekee sinulle. Ja meidän ohjelmia ja ongelmien monimutkaistuessa tekevät todella olla ystäväsi. Koska ei liian kauan nyt olemme menossa on ohjelmia, jotka on kirjoitettu eikä yhden tiedoston, mutta useita tiedostoja, ja tehdä se automatisoida kokoamalla kaikki, että meidät yhteen. Joten nyt tulostaa. printf on sisällä olevan tiedoston, standardi I / O-piste h, että olemme nähneet ennen, mutta siellä on enemmän printf kuin että. On kenoviiva n, mutta siellä on myös joukko muita ohjausmerkkijonoja. Ja ohjausmerkkijonon on vain hieno tapa sanoa jotain joka alkaa kenoviiva ei vinoviiva, kenoviiva, ja tekee jotakin erityistä asiaa. Emmekä asua useimmissa näistä, mutta miksi siinä on kenoviiva lainausmerkki, luulet? Miksi on tämä outo sekvenssi merkkiä, kenoviiva lainausmerkki, miksi se voisi olla hyödyllistä? Opiskelija: [kuulumaton]. DAVID MALAN: Aivan, eikö? Muistelen meidän hello world ohjelman että olemme nähneet aika monta kertaa nyt, joka kerta, kun olemme nähneet, että hello world Ohjelma meillä on ollut lainausmerkkeihin sisällä josta on hei pilkku maailman kenoviiva n. Mutta kysy itseltäsi, mitä jos itse halusi tulostaa lainausmerkit? Ensimmäinen vaisto saattaa olla, en tiedä miksi kannattaa do-- täällä, Voimme olla hieman passiivinen aggressiivinen, hello friend. Meidän kannattaa tehdä jotain. Mutta miksi tämä nyt ongelmallista? Unohtaminen lainausmerkit syrjään että keynote teki meille automaattisesti. Miksi tämä ongelmallista? Täsmälleen. Koska meillä on kuin 4 lainausmerkkejä. No ensimmäinen luultavasti menee toinen, ja ehkä neljäs menee kolmas, tai, en tarkoita En ole edes varma, eikä tietokone olemaan. Tietokoneet uudelleen, kääntäjät uudestaan, ovat melko tyhmä. He vain tekevät mitä kerrot heille tehdä. Ja jos et ole yksiselitteinen he ovat luultavasti menossa heittää virheen. Jos et ole yksiselitteinen siitä, miten tehdä maapähkinävoi ja hyytelöä sandwich outoja asioita voisi saapua. Se on sama idea. Nyt kun todetaan siellä joitakin muita ohjausmerkkijonoja, mutta tulemme niihin ennen pitkää. Pohjimmiltaan nämä paeta sekvenssit edustavat jotain että et ehkä pysty liian helposti näppäimistöllä, sekoittamatta tietokonetta. Nyt välin meillä on paikanvaraajat printf. Prosentti d, joka voi myös olla kirjoitettu lähes kaikissa tapauksissa prosenttia i, on paikkamerkki minkälaisia ​​tietoja? Minkälainen arvo? Desimaaliluku. Joten oikeastaan ​​aloitamme käyttäen prosenttia i, koska se on hieman yksinkertaisempi, kuin kokonaisluku. Prosenttia i. Kokonaisluku, joka sattuu olemaan desimaalin. Prosenttia t sanoimme jo oli paikanpitäjä merkkijono. Joka on vain sana, lause, kohta, essee riippumatta. Se on sekvenssi merkkiä melko pitkään. Ja näemme ennen pitkää joitakin näistä toiset. Mutta prosenttia c on yksi merkki. Prosenttia f on liukuluku, kuin todellinen määrä, joka on desimaalipil- se, joka ei tietenkään ole kokonaisluku. Ja siellä on koko nippu muitakin. Samaan aikaan C, ja on paljon kieliä, meillä on erilaiset tiedot. Erityyppiset lasikulhot jos haluatte. Kulho käytin viimeksi oli ping pong pallot, mutta voimme myös tallentaa erilaisia arvoja, kuten merkkiä ja jouset ja kokonaislukuja astiaan, kuten muuttuja, ja C on nämä. Char on tietojen tyyppi, muuttujan tyyppi, jossa voit tallentaa hahmo. Float on eräänlainen muuttuja johon voit tallentaa reaaliluku. Int on tietenkin int. Ja melko naurettavan nimeltään pitkään pitkään on, jos voit tallentaa olennaisesti todella pitkä numero, jossa jopa enemmän numeroita sitten Tyypillinen int voimin myymälä. Mutta me palaamme että ennen pitkää. Vuonna CS50 dot h välin muut header-tiedosto että olemme nähneet pari kertaa käytössä, siellä on kaksi muuta kuvadatan ei ole olemassa C tyypillisesti. Yksi on merkkijono, ja näemme vuonna muutaman viikon mitä kieliä todella ovat alla huppu. Ja yksi on bool. Ja bool on muuttuja, joka voi vain ottaa tiettyjä arvoja. Ja juuri perustuu viime viikon selitys Scratch, ja viime aikoina C, mitä arvaa ovat kaksi mahdolliset arvot Joissakin kontti että on tyyppiä bool? Kyllä ja ei. Yksi ja nolla. Totta vai tarua. Ja todellakin se viimeinen, joka pyrkii olla tavanomaisia ​​ohjelmointi kieli, sanomalla jotain kuten tosi tai epätosi. Samaan CS50 kirjasto tulee kanssa joukko toimintoja että henkilöstö teille kirjoittanut, lisäksi juuri merkkijono. Kirjoitimme etukäteen toiminnot voi saada kokonaisluku käyttäjä, saat yhden merkin, saada käteisvaroja, että on vain numero desimaalipilkun. Saada pitkään pitkään, todella suuri arvo käyttäjälle. Joten olemme vasta nähneet tämän toiminnan muodossa GetString. Mutta kautta nämä toiminnot voi pian kirjoittaa ohjelmia, jotka saavat käyttäjän syötettä. Samalla pitää tätä ohjelma, ja harkita miten voisimme nyt alkaa lisätä sen uusia rakenteita. Nopea pyörremyrsky kiertue ja sitten me tarkastelemme jossain kirjallisesti joitakin ohjelmat manuaalisesti itse. Vastedes jos haluamme toteuttaa ehdon, se ei tule näyttämään kiva pieni sievä palapelin pala. Se tulee näyttämään hieman mystistä. Mutta tämä on kanoninen rakenne kunnossa C. Sana, jos kaksi Suluissa, jonka sisällä tulee olemaan jonkinlaista Boolen lauseke. Nyt slash slash keskellä, tämä on tällä hetkellä tavallaan kuin pseudokoodilla koodi paikanvaraajaan. Mutta oikeammin, mitään riviä koodia C, joka alkaa slash slash on kommentti. Se on kuin tahmea huomata, että saatat laittaa essee, tulostaa paperille. On merkille itsellesi. Se ei ole toiminnallista vaikutus ohjelmaan. Se on eräänlainen muistutus, se on oma dokumentaatio siitä, mitä on tekeillä. Niin tämä tällä hetkellä on eräänlainen paikanvaraajaan jostain on sisällä Näiden aaltosulkeita lopulta tulee tekemään jotain. Samalla sinulla on kaksi haarukkaa tie, jos muu rakentaa näin. Voit, jos, elseif, muuten. Nyt on syytä huomata, varsinkin jos olet ollut Google-hakuja ympäri online resursseja pois uteliaisuus, tai jos nostat yksi kurssin suositeltava kirjoja C, näette, että ihmisillä on paljon eri mieltymykset miten ilmaisemaan itseään koodi. Jotkut ihmiset haluavat laittaa aaltosulkeita kuten olen tehnyt täällä. Jotkut ihmiset haluavat laittaa kihara henkselit esimerkiksi täällä. Jotkut ihmiset haluavat laittaa elses tänne ja sitten tämä tänne. On niin monta tapaa kirjoittaa koodia, ja mikään niistä ovat oikeassa sinänsä. Vaikka siellä on muutama jotka ovat melko väärässä. Mutta on no--, jos tämä on lopulta hyvin uskonnollinen keskustelu. Itse asiassa yksi eniten harmittaa asioita tietotekniikassa Näin opinionated tietotekniikan tutkijoita voi olla. Ja löydät ajan mittaan vaikka voit kehittää henkilökohtaisia ​​mieltymyksiä miten koodin pitäisi näyttää. Ei vain käyttäytyä, eikä vain luoda tuotos, mutta miten se pitäisi näyttää esteettisesti. Joten mitä teemme on opastaa sinua pitkin tietä kohti, ainakin toistaiseksi, standardi CS50 tyyliin, että ainakin pitää asiat yhtenäinen ja helppolukuinen. Mutta lisää niihin tunnustukset ennen pitkää. Boolen lauseke C, jos Halusin sanoa, jos tämä ehto on tosi ja tämä toinen ehto on totta, et kirjoita sana ja harkiten kuten Englanti. Voit sen sijaan käyttää et-merkki et-merkki, syistä tulemme takaisin. Jos haluat sanoa tai käytät kahta pystypalkki- joka on US näppäimistön on yleensä yli Enter avain vieressä kenoviiva. Ja tämä tarkoittaa vain, jos tämä ehto tai tämä toinen ehto on tosi tehdä tämän. Samalla on tämä hullu juttu, joka sinulla on tilaisuus käyttää silloin tällöin. Mutta se on vain vaihtoehto tapa ilmaista itseäsi. Tämä, nyt, nyt määrätä, se on vain toinen hieno tapa ilmaista jos, if, if, if, if. Se on vain muotoiltu kannalta tapauksista, joissa voit kirjaimellisesti luetella arvoja, kannattaa tarkistaa. Samalla kierroksia. Näimme vertailu Scratch kanssa silmukka. Ja aion heiluttaa käteni mitä kukin näistä asioista tarkoittaa. Mutta huomaa että silmukka hyvin usein aloittaa avainsanan. Tai se alkaa avainsanan aikana. Tai se alkaa avainsanan tehdä, ja päättyy avainsanan aikana. Mutta mitä olemme tulleet On asioita, enemmän kuin tämä. Täällä on yleensä C, miten voit julistaa muuttuja ja antaa sille arvoa. C se ei riitä, kuten Scratch, juuri sano minulle muuttuja nimeltä jotain. Sinun täytyy kertoa C, ja kertoa kääntäjä, tarkemmin sanottuna minkälainen arvo sinä haluavat laittaa lasi kulho. Onko se kokonaisluku? Jos näin on, sinun täytyy kirjaimellisesti sanoa int ja sitten muuttujan nimi, sitten puolipiste. Jos sen sijaan halusi merkkijono ja kehotti se s kuten tein minun koodi täällä tänään, sanoisit merkkijono s puolipiste. Kun haluat antaa sille arvoa voit käyttää yhtäläisyysmerkki, muuten kutsutaan sijoitusoperaattori. Ja huomaa, miten kukin Näiden riviä koodia on puolipiste lopussa. Mutta suoraan sanottuna tämä vain näyttää vähän ruma. Miksi en voi sanoa tietokoneeseen, antaa minulle muuttuja ja alustaa sen nollaan. Eli anna minulle tyhjä lasi kulho. Kun voit. Ja niin yksi tuomion kutsuu sinua täytyy tehdä tyylillisesti ajan on, sinä kirjoittaa koodia näin, tai sinä sellainen puhdista se ja yllättää ihmiset kirjoittamalla kaksi riviä kuin vain yksi. Ja tämä katsotaan yleensä enemmän tyylikäs tapa kirjallisesti oman koodin tyylillisesti. Toiminnot olemme tietenkin nähneet. He aikovat ottaa tässä muodossa. Nimi toiminto, jotkut suluissa, ja sitten ehkä jotkut tavaraa sisällä. Tai saatat nähdä käytöt monikäyttöisyyden puolella rinnan, kuten jotain tällaista. Nyt kun tangentti, ei tämä vitsi nyt järkeä? [Naurua] Se ei tarkoita että se on hauskaa, mutta se ei ehkä tehdä vähän enemmän järkeä. Joten nyt mennään osaksi CS50 laite hetkeksi. Ja haluaisin avata yksi teaser täällä. Ja todellakin yksi syy käyttöönoton IKEA-kuvastot ja vilkkuva kuva iPhone vähän sitten oli todella sitoa yhteen Se, että vain pari vuotta sitten, vuonna 2007, tämä koodinpätkä oli vapautetaan, joka on yksi ensimmäisistä täytäntöönpanon pala ohjelmisto että tekee mitä kutsutaan jailbreaking. Niille tunne, Jailbreaking jotain puhelimeen tai iPhoneen tarkoittaa lähinnä mietitään miten tehdä asioita sitä, että yritys joka teki se aikonut. Kuten haluat asentaa tietyt ohjelmisto, joka ei ole App Store, Jailbreaking puhelimesi joka teet tuollaista ja enemmän. Mutta mikä oli hauskaa 2007-- ja siellä on ollut kymmeniä eri versioita näistä asioista sen jälkeen, kaikenlaisia ​​languages-- on, että tästä ohjelmasta, nimeltään iUnlock, oli todella kirjoitettu C. Ja niin minä revitä lähdekoodi, vain sellainen näyttää joidenkin yhtäläisyyksiä konstrukteilla Olemme keskustelleet toistaiseksi. Nyt on paljon enemmän monimutkaisuutta täällä kuin olemme nähneet jo luokkaan. Saanen selaamalla ylös vain vähän täällä. Mutta huomaa these-- hyvin huomaamme muutamia things-- mutta huomaa näitä rivejä täällä, myös vakio-I / O piste h. Ja all-- linja 24, please-- huomaa vakio-I / O dot h ja koko joukko muita tiedostoja, jotka ilmeisesti muut ihmiset kirjoittanut. Ja jos me selaa läpi Tämän pikku mielivaltaisesti, Ilmoitus En tiedä kuinka kirjoittaa tämän kaiken itse välttämättä vielä, mutta siellä on jos. Joten ilmeisesti tämä on sivuliike. Ja jos minä selaa hieman Lisäksi on toinen, jos. Jos minä vierittää ylös, luulen noin line 100 totesin. Joten en ole aivan varma miten tämä toimii vielä, mutta tämä on silmukka, joka tulee haluan kerrata joitakin kertoja. Ja jos minä selaa kaikki pohjaan Näen, että siellä toimiakseen täällä kutsutaan tärkein, ja joitakin muita hyvityksiä lukemis ilo. Joten tämä on vain say-- ja laitamme Tässä verkossa keskuudessa kurssin lähde koodi today-- että edes jotkut näistä laitteita, jotka otamme itsestäänselvyytenä, lopussa päivä olet vielä Käyttämällä näitä perus rakenteita, jotka olemme alettu jo tähän mennessä. Nyt riittää, että yksi. Okei, joten nyt katsotaanpa itse rakentaa jotain. Mennään pidemmälle jotain hello.c, ja avata tämä, Kirjoitetaan tästä ohjelmasta. Aion mennä eteenpäin ja kirjoittaa ohjelma nimeltä adder.c, jonka tarkoitus elämässä tulee olemaan mun ensimmäinen super yksinkertainen laskin että juuri tuo pari numeroa. Ei siksi, että on vaikea ongelma, mutta koska se avulla voin nyt sitoa yhdessä muutamia asioita. Joten aion mennä eteenpäin ja sisällyttää vakio-I / O-piste h ja CS50 piste tuntia. Aion sanoa int main void. Ja taas tulevaisuudessa Palaamme siihen otetaan tässä yhteydessä ja mitätön keinoin. Ja nyt aion sanoa jotain kuten printf, anna minulle kokonaisluku. Ja nyt minun toinen rivi, miten voin ilmaista itseäni niin että haluan julistaa muuttuja joka tulee säilyttää int? Kirjaimellisesti mitä kirjoitan, jos haluan luoda muuttujan, joka tallentaa int sanoisit? int vastaa getint. Toki niin, että toimii. Ja juuri johdonmukaisuus koodilla voit nähdä verkossa, haluan muutosta tämä x, vain koska x on yhteinen muuttujan nimi käyttää ainakin algebran. Nyt haluaisin mennä eteenpäin ja tehdä printf uudelleen. Anna toinen kokonaisluku. Ja nyt aion laji ja oppia, että malli, Aion sanoa int y saa GetInt. Ja olemme ei käytetä GetInt ennen, mutta vain kuten GetString menee ja saa merkkijonon, kuten Javier teki yleisöstä, Samoin tekee GetInt alkavat vilkkua nopea. Ja tehokkaasti odottaa käyttäjän antaa sille kokonaisluku, kirjoittamalla se ja enteriä. Nyt lopuksi aion tehdä Tämän printf summa of-- ja haluaisin saada fancy now-- prosenttia i ja prosenttia i on läsnä i huutomerkki kenoviiva n. Ja mitä luulet aion laittaa nyt ylimääräistä tuloa to printf? En halua sanoa kirjaimellisesti lainata lainaus x. Haluan luokan x ja sitten, ja nyt mennään fancy ja haluan vain olettaa voimme tehdä mitä haluamme. Mitä haluat sanoa seuraavaksi? x plus y. Ja todellakin, joka toimii. Se on vähän ohjelmointikielet Ymmärrän peruslaskutoimituksia, ja niin tämä pitäisi itse asiassa työtä. Joten anna minun mennä eteenpäin ja tekevät lisätoiminto minun musta ja valkoinen ikkuna tänne, Enter. Kryptinen linjaa, mutta ei virhettä viesti, niin se on hyvä. Dot slash lisätoiminto, anna minulle kokonaisluku, 1. Anna minulle toinen kokonaisluku, 2. Summa 1 ja 2 3. Kunnossa, joten melko vähäpätöinen ohjelma, mutta mitä se on tehnyt? Se saa minut käyttää toimintoa soittaa täällä, soita toinen funktio täällä, kaksi puhelut GetInt, kolmas puhelu printf, ja sitten käyttää näitä paikkamerkeillä. Joten se on hieman enemmän kehittyneempiä kuin viime kerralla. Mutta mitä jos haluan saada vähän hienompaa? Anna minun mennä eteenpäin ja nyt tähän. Anna minun mennä eteenpäin ja luoda uusi tiedosto nimeltä olosuhteissa nolla. Ja aion säästää jonkin aikaa luokissa vuoksi ja vain liittää kyseisessä koodi lähtökohtana. Ja nyt minä aion vain laittaa jotain uutta täällä keskellä. Joten printf Haluaisin kokonaisluku kiitos. Ja kaikki tämä koodi on käytettävissä kurssin kotisivuilla, sinun ei tarvitse kirjoittaa sitä ulos luokassa jos et halua. int, ja nyt aion käyttää, sen sijaan, että x ja y, Aion käyttää n, joka on todennäköisesti yleisin nimi on kokonaisluku tietokoneohjelman. Ja nyt haluan tehdä pikku tuomion täällä. Aion nähdä jos n on suurempi kuin 0, niin Aion sanoa printf-- oho, printf-- nostit positiivinen luku, huutomerkki kenoviiva n. Sulje että. Muuten aion tulostaa printf nostit negatiivinen luku. Nyt ennen kuin huudat minua, juostaan ​​tätä ohjelmaa. Päästä minut tänne. Ja miten voin kääntää ohjelma nimeltään ehdot viiva 0? Tee olosuhteet viiva 0. Sellainen typerä nimi, mutta-- Hemmetti. OK, hyvä opetus hetki. Miksi että tauko? Mitä minä vahingossa soittaa tämän tiedoston? Voit sellaista päätellä hanasta täällä. Joten se ei ole huono, että minä teki tämän, koska tämä tapahtuu ehkä jotkut teistä. Joten olen vahingossa Nimesin lähdekoodin kunto 0. Mutta lähdekoodiin sopimus olisi olla tiedosto nimeltä ehto 0 dash c, tai mitä tahansa piste c. Joten anna minun korjata. Aivan kuten Microsoft Word voin mennä ylös Tallenna nimellä ja tehdä kunnon 0 piste c. Nyt vain olla siisti olen aio mennä eteenpäin ja irrota ehto 0, mikä oli minun vanha versio. Ja nyt Tehdään tehdä ehto 0, Enter. OK, tuntuu hyvältä. Ehto 0, Enter. Haluaisin kokonaisluku kiitos, 50, nostit positiivinen luku. Nyt miten negatiivinen 50? Otit negatiivinen luku. Entä nyt, 0. Melko varmasti 0 ei ole negatiivinen. Joten tämä on tavallaan looginen virhe. Miten ratkaisen tämän? Muuta, jos n on pienempi kuin 0, tehdä tämän, muuta Voimme olla kolme tapaa sivuliike täällä, printf valitsit 0. Joten jos nyt uusintana tämä Ohjelman jälkeen kääntämiseen jälleen tehdä, ja nyt uusintana ehto 0, mitä näen täällä on 0 antaa minulle joka lähtöön. Missä siis olemme menossa tämän? No se on helppo unohtaa metsän puilta. Ja niin salli meidän päätellä Tämän 2 ja 1/2 minuutin video että viime kädessä on vähän mainoksen Google, mutta tämä on todellakin osoitus mitä edes käyttää näitä perus rakennus lohkot voimme lopulta tehdä kerran meillä on hieman ohjelmointi taju alla vyötä. [Musiikki soi] SAROO Brierley (VoiceOver): Se oli 26 vuotta sitten, ja olin juuri aikeissa kääntyä 5. Saimme rautatieasemalle ja nousimme junamme yhdessä. Veljeni sanoi juuri Tulen täällä, ja tulen takaisin. Ja minä vain ajattelin, hyvin tiedätte, Voisin yhtä hyvin mennä nukkumaan ja hän vain herättää minut. Ja kun heräsin seuraavana päivä, koko kuljetus oli tyhjänä Runaway Train, aave juna vie minut En tiedä missä. Olen annettiin pois Australiaan, to Australian perhe. Ja äiti oli koristeltu minun huone karttapalveluun Intiassa, jonka hän laittaa viereen vierellä. Heräsin joka aamu nähdä, että kartta, ja siten se tavallaan piti muistoja. Ihmiset sanovat, että olet yrittää löytää neula heinäsuovasta, Saroo et koskaan löydä sitä. Olisin välähti paikkoja, jotka minä tapana mennä, vilkkuu perheeni kasvot. Oli kuva äitini, istua jalat ristissä, juuri katsomassa häntä itkeä. Elämä on vain niin vaikeaa. Se oli minun aarre. Ja minä katselin Google Map ja tajusi siellä Google Earth samoin. Maailmassa, jossa voit zoomata, Aloin olla kaikki nämä ajatukset ja mitä mahdollisuuksia että tämä voisi tehdä minulle. Sanoin itselleni, tiedät, olet sai kaikki nämä valokuvaus muistot ja maamerkkejä mistä olet kotoisin, ja Tiedätkö mitä kaupunki näyttää. Tämä voisi olla sovellus, joka voit löytää tiesi takaisin. Ajattelin, hyvin laitan piste Kalkutta rautatieasemalta, ja sädeviivan, tiedät, että olet Olisi etsivät ympäri tällä alalla. Olen tavallaan törmäsin Näiden juna kappaleita. Ja aloin seurata sitä, ja Tulin rautatieasemalle, joka näkyy sama kuva että oli minun muistoja. Kaiken yhteen. Ajattelin juu, olen tiedä minne olen menossa. Olen juuri menossa antaa kartta, joka minulla on päässäni johdata minua ja ottaa minut takaisin kotikaupunkiinsa. Tulin kynnyksellä talon että olen syntynyt. Ja käveli noin 15 metrin nurkan takana, siellä oli kolme hyvät seisoo ulkopuolella, vierekkäin. Ja keskimmäinen astui esiin, ja Ajattelin vain, tämä on äitisi. Hän tuli eteen, hän halasi minua, ja olimme siellä noin viisi minuuttia. Hän tarttui käteeni ja hän vei minut talon ja sai puhelimessa, jossa hän soi siskoni ja veljeni sanoa, että te tiedätte, veljesi on juuri kaikki äkilliset ilmestyi kuin haamu. Ja sitten perhe yhdistyi jälleen. Kaikki on hyvä, Autoin äitini ulos, hän ei tarvitse orjina. Hän voi elää loput hänen elämänsä rauhassa. Se oli neulaa heinäsuovasta, mutta neula oli siellä. Kaikki on siellä. Kaikki olemme maailmassa on painikkeen napautuksella. Mutta sinulla on tahtoa ja päättäväisyyttä haluavat sitä. [Musiikki soi] DAVID MALAN: Ihanan makea suosittelu vain mitä voit nyt tehdä tekniikkaa. Nähdään ensi viikolla.