DAVID J. MALAN: Eli tämä on CS50. Ja tämä oli CS50 oma Colton Ogden, enemmän ja kuka musiikkia voit ladata soundcloud.com/cs50. Joten tänään keskitymme entistä taiteeseen ohjelmointia. Ja otamme jossa jätimme pois viime viikolla, keskittyen on Scratch, joka oli tätä graafinen ohjelmointikieli. Ja ottaa asiat alemmalla tasolla, käytetään enemmän perinteisiä ohjelmointi kieli tunnetaan C. Mutta matkan varrella, ymmärtämättä että samoja ideoita me puhui viime perjantaina uusiutuisi ei ainoastaan ​​tässä C-kieli, mutta useimmissa joka toinen että katsomme tämän lukukauden. Joten soitimme tämä asia tässä mitä viime kerralla? Tämä on tyypillinen lausuma. Niin me kutsutaan tätä julkilausuman. Ja se tekee jotain. Se on käsky, joka tietokone tai Scratch voisi toteuttaa. Ja tästä lähtien, nyt myös aloittaa soittaa jotain tällaista toimintoa, syistä voi pian. Samalla näimme asioita, kuten tämä. Ja nämä ovat yleensä tunnetaan mitä rakentaa? Yleisö: Loop. DAVID J. MALAN: Niin silmukka. Joten melko suoraviivaista. Se kirjaimellisesti mitä se sanoo. Ja Scratch, jos haluat ahtaa enemmän palapelin palaset siellä, pala kasvaa asenna se. Ja näemme C, että Voimme tehdä sama asia. Toinen tyyppi silmukan, vaikka, Scratch ehkä ikuisesti, tai siellä mitään numero Muiden lähestymistapoja. Mutta otetaanpa lisää yleis ilme kasvot se on todennäköisesti varsin tuttuja, klo kierroksia yleisemmin. Mark Zuckerberg: Yksi asia, että tietokoneet ovat todella hyvä on toistuvia komentoja. Koska henkilö, voit saada todella tylsää jos täytyi tehdä sama asia monta kertaa peräkkäin. Mutta tietokone voi tehdä saman asian miljoonia tai jopa miljardeja kertoja, ja ei kyllästy, ja kyettävä sen toteuttamiseen todella hyvin. Niinpä esimerkiksi, jos saan halusi toivottaa kaikille Facebookissa hyvää syntymäpäivää lähettämällä heille sähköpostia, se saattaa kestää minua enemmän kuin luvulla todella kirjoittaa ulos kaikki nämä sähköpostit kaikille. Mutta vain muutaman rivin koodia, voin on järjestelmä lähettää sähköpostia kaikille Facebook haluaa heille hyvää syntymäpäivää. Niin, että mitä silmukat ovat ja miksi he ovat arvokkaita ja jotain että tietokoneet voivat tehdä hyvin. DAVID J. MALAN: Joten jos olet ollut vastaanottaja joidenkin CS50: n ja Dropbox: n tila myöhään, joka on oikeastaan ​​juuri me tehdä käyttäen koodia aivan niin. Meillä lähinnä on suuri laskentataulukko, johon ihmiset ovat syöttämällä niiden nimet ja sähköpostiosoitteet. Ja kirjoitimme pikkuisen koodia, joka voi kerrata yli osoitteet ja sylkemään ainutlaatuinen osoitteet jos joku esittänyt useita kertoja. Ja sen jälkeen lähetämme automatisoitu sähköpostia CS50: n botti, lukien kuponkikoodi. Nyt tarkasteltiin myös tämä rakentaa viime kerralla. Ja tämä on erityisen Esimerkiksi mitä? Niin, joo, Boolen lauseke. Ja muoto on tarkoitettu kaapata, että samoin. Kaikki tällaiset kysymykset muodostavat totta vai tarua Scratch näyttävät hieman jotain tällaista. Ja me kutsumme tätä Boolen lauseke. Se on todellakin totta vai tarua, kyllä ​​tai ei. Se on keino vastata kysymykseen. Ja välin voit käyttää näitä Boolen ilmauksia sisällä konstruktioita kuten nämä, mitkä Tietenkin ovat edellytyksiä tai oksat, sananlaskun haarautuu tie. Ja he voivat katsoa paitsi näin, mutta ne voivat myös ovat elses niihin liittyviä. Ja voit itse olla kolmialueisella tienhaaraan tai neljän tapa haarukka tien, yksinkertaisesti pesintä näitä asioita, kuten näet Scratch jos et ole jo. Ja kuten voit tehdä C samoin. Otetaan toinen yleis katsokaa alumnist, samoin, joka saattavat aiheuttaa erilaisen lähestymistavan näihin asioihin nimeltään olosuhteissa. Bill Gates: Ihmiset tekevät päätöksiä joka päivä. Esimerkiksi, ennen kuin mennä ulos sinua sellainen on, jos ilmoitus, joka sanoo, jos sataa niin minä täytyy saada takkini. Ja tietokoneet ovat uskomattomia, kun olet päättää tuollaiset lausunnot, että he voivat luotettavasti toteuttaa niitä asioita uskomattoman nopeasti. Ja niin tietokoneohjelman todella on hieman matematiikkaa ja joidenkin jos lausunnot, joissa päätöksen saa tehdä. DAVID J. MALAN: Niin kuin ehkä tiedätte, se oli ihmiset kuten Bill Gates, Paul Allen, ja toiset että todella potkittiin pois niin sanottu henkilökohtainen tietokone vallankumous joitakin vuosia sitten. Ajattelin, ennen kuin sukeltaa johonkin Administrivia, olimme liittyvät tarina päässä Albuquerque, New Mexico Museum of Natural History ja tiede joissa jotkut Bill Gates " ja Paul Allenin aikaisintaan tarinoita ovat selostaneet meillä on nyt nykypäivän tietokoneet ja Macit ja enemmän. Tätä, vaikka tarvitsemme kaksi vapaaehtoista joilla on erittäin hyvä kerronta ääniä lukea käsikirjoituksen ääneen. Okei, entä tuolla. Tule ylös. Ja entä edessä täällä. Tulkaa alas. Ota paikkoja täällä. Kuten te keksiä, pari hallinnollisten ilmoitukset. leikkaamista, prosessi valita osio, alkaa tästä Keskiviikosta perjantaihin. Siitä lisää ensi Keskiviikkona luento. Super kohdat puolestaan ​​ovat jotain, että tarjoamme ensi viikolla jolloin koko luokan kehotetaan osallistua melko suuressa mittakaavassa kohdat, yksi enemmän mukavia, yksi vähemmän mukava. Ja kerromme tiedot Kyseisen sekä myöhemmin tällä viikolla. Samalla kohdat, itse, alkaa viikolla kolme tietenkin nolla indeksi, mikä tarkoittaa ne ovat pari viikkoa ulos. Joten ei hätää. Et ole vielä menetetty jotain tämänsuuntaista. Samaan sillä välin, jos on kysyttävää hallinnollisesti, email itseäni ja Devonin ja Gabe ja Rob tässä osoitteessa täällä. Lopuksi, ongelma asetetaan 0 on tietenkin ulos. Olet ehkä huomannut sitä kurssin kotisivuilla. Sen pitäisi antaa sinulle kaikki vastauksia kysymyksiin saatat olla matkan varrella aloittanut ongelmaan asetettu. Mutta jos huomaat tarvitsevat auttavaa kättä, kaikin keinoin osallistumaan virka, Maanantai, tiistai, keskiviikko, torstai Tämän viikon illalla neljä ruokasalia. Katso, että URL siellä tiedot missä virka on. Nyt Tavataan meidän kaksi vierasta täällä tänään. Mikä sinun nimesi on? JAY PAUL: Jay Paul. DAVID J. MALAN: Jay Paul, hauska tavata. Hikari: Hikari. DAVID J. MALAN: Hikari? Hikari: Hikari. DAVID J. MALAN: Hikari. Hauska tavata myös. Jay Paul ja Hikari ovat eteensä näitä musiikki seisoo kaksi skriptejä, että olen painettu tänä aamuna New Mexico Museum of Natural History ja tiede. Ja mitä ajattelin Tekisin sen yläpuolella on mukana teidän lausunta käsikirjoituksen ja tätä historiaa joitakin visuaalisia kuvia, ei yllätyksiä. Ja mitä olen tehnyt etukäteen on prehighlight oman käsikirjoituksen mitä pitäisi lukea, ja mitä pitäisi lukea. Ja me lähinnä vain varajäsen kohdat. Niin se on paljon kuin saatat ovat tehneet Englanti luokassa. Se on todella pakottaa yleisö uskoa teidän tarina täällä. Mennäänkö? Joten tarina tässä, meillä on BASIC, ja se alkaa Cambridge. JAY PAUL: Oli talvi, 1974, Cambridge, Massachusetts jossa talvet voivat olla kylmiä. Parrakas, pitkäkarvainen college keskeyttäneiden nimetty Paul Allen on drudging poikki Harvardin Neliö, imeytyy hänen ajatuksensa. Hänen suurin huolenaihe näinä päivinä oli miten saada hänen ystävänsä, Bill Gates, lopettaa koulun ja mennä liiketoiminnaksi hänen kanssaan. Hikari: kaksi oli jo mennyt läpi useita yrityshankkeita yhdessä, alkaa Lakeside koulu Seattlessa, jossa ne maksettiin ilmainen tietokone aika Testaa PDP-10 tietokoneen paikallista aikaa jakaminen yritys. Tuorein suunnitelma oli lopettaa koulu ja muodostavat ohjelmistoyritys. Allen oli lähtenyt Washington State University. Mutta viime hetkellä, Gates päätti pitäytyä Harvard. JAY PAUL: Sinä päivänä, ylittäessään Harvard Neliö, Allen huomasi tammikuussa 1975 kysymystä Popular Electronics maan kanssa lopettamisesta otsikko, Maailman ensimmäinen Minicomputer Kit Rival Kaupalliset mallit. Beneath otsikko oli kuva pieni laatikko koristeltu valot ja kytkimet. Se oli nimeltään MITS Altair 8800. Ja Allen tiesi tämä oli mitä hän oli etsinyt. Hikari: Days of käytiin keskustelu. Allen ja Gates ymmärtänyt merkityksen Altair. He olivat puhuneet usein noin mikroprosessorien ja odottivat mitä tehtäisiin niiden kanssa. Nyt siellä oli minitietokonejärjestelmäinsinöörinä pakki kansi Popular Electronics. Se ilmeisesti ei ollut ohjelmistoa vielä. He kuvittelivat kansakunta ohjelmoijat laskeutui MITS. Ja niin he kutsuivat Ed Roberts, johtaja yhtiö, väitetään olevan version BASIC-ohjelmointikielen lähes valmis varten Altair. He eivät. Ja Roberts on täytynyt tietää, he eivät. Hän oli saamassa 10 puhelua päivässä ihmisiä, joilla oli BASIC melkein valmis. Ja hänen varastossa vastaus oli "ensimmäinen henkilö joka näkyy kanssa työskentely BASIC saa sopimuksen. " JAY PAUL: Gates ja Allen ollut koskaan nähnyt Altair. He eivät olleet koskaan edes nähnyt Intel 8080 mikroprosessori ytimessä Altair. Mutta pari vuotta aikaisemmin Allen oli kirjoittanut ohjelman on suurtietokone joka emuloi toiminta edellisen Intel mikroprosessori. Ja tällä kertaa he tekisi samoin. Hikari: With Intel 8080 ohjeen vierellään, Allen istui Harvard PDP-10 tietokone ja kirjoitti emulaattori ja ohjelmistot tarvittavat välineet tehdä ohjelmointia. Samalla Gates lakkasi käymästä luokkiin ja omistautui suunnitteluun BASIC, käyttää kaikki mahdolliset keinot hän tiesi saada kokoon alhaalla 4 kilotavua. JAY PAUL: Out in Albuquerque, Ed Roberts sai puhelun Gates pyytää lisätietoja siitä, miten Altair hoidetaan tiettyjä rutiineja. Kukaan ei ollut koskaan pyytänyt, että ennen. Roberts alkoi kiinnostua. Hikari: Kehittämisen työkalut sekä suunnittelun valmiiksi, Gates ja Allen kirjoitti koodi PDP-10, kutsumalla toinen Harvardin opiskelija, Monte Davidoff, kirjoittaa matematiikka rutiinit. Jälkeen viimeinen yö ohjelmointi, Allen sai lentokoneessa toimittamaan BASIC MITS. Hän vietti kone ratsastaa ulos huolestuttava. Ja takaisin Cambridge Gates oli huolestuttava. He olivat testanneet perus-ja se oli työskennellyt emulaattori. Mutta entä jos emulaattori oli väärässä? JAY PAUL: Kun kone lähestyi Albuquerque, Allen tajusi, että heidän BASIC, nyt siististi sisälsi pieni rulla rei'itetty paperi nauha, olisi hyödytön ilman erillistä ohjelma, nimeltään kuormaaja, joka kertoisi Altair miten lukea paperiteipillä olento syötetään Teletype koneeseen. Hän otti esiin kannettavan ja nopeasti intiimissä alas kuormaajasarjassa Assembly kieli, sitten manuaalisesti käännetty että osaksi 1s ja 0s Altair ymmärtäisi. Hikari: Allen odotti puhdas, pieni, korkean teknologian yritys hoitaa miesten puku. Joten hän oli yllättynyt, kun Roberts tapasi hänet lentokentällä näköisenä karjatila käsin. Roberts oli myös yllättynyt. Kun hän putosi Harvardin ohjelmoijana kallis hotelli, Allen oli tunnustettava, että Hän ei ollut varaa huone. JAY PAUL: MITS, itse, oli sijaitsevat pölyisessä nauhat mall. Sisällä on sekainen Workbench oli Altair lastattuna enintään 5 kilotavua muistin ja yhdistetty kaapelilla to Teletype koneeseen. Roberts ja konepäällikkö, Bill Yates, odottivat kuten Allen toggled hänen kuormaaja ohjelma Altair. Teletype alkoi chugging kuin se vedetään paperi nauha nauhan läpi lukija. Kesti ehkä 15 minuuttia ladata ohjelman. Sitten Teletype äkillisesti painettu muistin nopea, sitten valmis ajallaan, ja Allen alkoi kirjoittaa Muutama testi komentoja. Jotta kaikkien hämmästykseksi, ohjelmisto toimi. Oli vikoja, tietenkin. Mutta tärkeintä oli se toimi. Hikari: Myöhemmin, matkalla 3,00 dollari lounas Torressa, ampiainen lensi ikkunassa pickup kuorma-ja pisti Allen käsivarteen. Mutta siinä vaiheessa mitään voisi pilata tunnelman. Altair oli nyt perustehtävänsä, Ensimmäinen kaupallinen ohjelmisto kotiin tietokone, teki Paul Allen ja Bill Gates, liiketoimintaa kuin Microsoft. DAVID J. MALAN: Monet kiitos kahden lukijoille. [APPLAUSE] DAVID J. MALAN: Nyt olet valintasi, Ennen kuin lähdet, ja kuohuvaa tai hehkuu dark-- OH, odota sekuntia, odota-- hapokas ja loistaa pimeässä norsu alkaen CS50 oma Cheng Gong. Hikari: Oi, kiitos. DAVID J. MALAN: Kaikki oikea, kiitos paljon. [APPLAUSE] DAVID J. MALAN: Niin tositarina. Tämä tarkoittaa sitä, että kaikki nämä koneet ja helppous, jolla me käyttää niitä nyt ja kestää itsestäänselvyytenä, todella alkoi täällä, vain muutaman askeleen Tämän todellisen teatterin. Ja nyt tänään, jos et ole ollut, tämä on Maxwell Dworkin, tietokone tieteiden rakennus, Myös nurkan takana. Ja toisessa kerroksessa tämän Rakennuksessa ei roikkua kolme sivua alkuperäisestä lähdekoodista Bill Gates ja Paul Allen kirjoitti. Itse asiassa, jos käyttö zoomatessasi teihin voi nähdä paitsi niiden nimet alkuperäinen tyyppi, mutta myös allekirjoituksensa että ne koristavat Muutama vuosi sitten, kun he viimeksi käynyt. Mutta mikä oli erityisen vakuuttava tästä on mitä he lähtivät tekemään oli kirjoittaa ohjelma, joka jotta muut ihmiset kirjoittamaan omia ohjelmia. Tuolloin kaikki oli kanssa Tämän Altair koneen tekemät MITS. Ja kaikki he tarvitsivat oli jotenkin mikä helpottaa harrastajat ja ihmiset pidä meistä tässä salissa todella ohjelmaan että ilman välttämättä ymmärrystä Assembly, tai kone koodia, tai Jumala varjelkoon, 0s ja 1s. Meidän ohjelmoijat, kuten ne tässä huoneessa, me haluavat pystyä ilmaisemaan itse paljon enemmän kuin pseudokoodin vaikka se on hieman nit nirso kuin puhuimme viime viikolla. Emme halua kirjoittaa koodia näin, jonka Paul Allen ja Bill Gates teki. Me sen sijaan halua kirjoittaa koodia, joka näyttää hieman käyttäjäystävällisempi. Nyt tämä on kieli tunnetaan BASIC. Ja linja numerot on mitä käyttää vain numero riviä koodia että olet kirjoittamassa. Emme edes tarvitse tehdä näinä päivinä. Mutta näet tästä miten PRINT "Hello, world" todellakin oletettavasti tulostaa juuri sitä. Ja niin mitä Bill ja Paavali oli voimaannuttaa ihmisiä kirjoittamaan koodia näin sijaan of-- jos katsomaan tietojenkäsittelytiede wall-- koodia näin. Itse asiassa, CS50 äskettäin oli tilaisuus istua alas professori Harry Lewis in Computer Science osasto, joka todella opetti Bill Gates joitakin vuosia sitten, ja seisoo täällä ennen nämä kolme sivua otteita. Katsotaanpa katsomaan. HARRY LEWIS: Mitä olet tässä listaus varhain pala ohjelmisto kirjoittanut Bill Gates ja Paul Allen, perustajat Microsoft. Joten koodi on mielenkiintoinen kahdesta syystä. Ensinnäkin, se muuttui Microsoftin ensimmäinen tuote, joka oli tulkin BASIC-ohjelmointikielen. Ja toiseksi, tämä oli yksi ensimmäisistä yrityksistä luoda tulkki niin tavallinen ihmiset voisivat käyttää henkilökohtaisia ​​tietokoneita. Joten Bill Gates oli perustutkintoa Harvardissa. Aloin opettaa Harvardissa vuonna 1974. Tämä tapahtui vuonna 1975. Joten se oli alussa uransa ja varhain urallani. Olen itse opettanut Bill Tietenkin aikoihin. Paul Allen ei ollut Harvardin opiskelija, mutta hän oli lukion luokkatoveri Bill Gates. Jos tulet ja katsoa klo listalle, sinun itse löytää kolmasosaa nimi, Monte Davidoff, joka oli Gatesin luokkatoveri täällä Harvardissa. OK, joten tässä on mielenkiintoinen kommentti tänne. Se sanoo "4K voi poistaa neliöjuuri mutta silmukoita pitäisi silti toimia. " OK, niin mitä se tarkoittaa, että on olemassa oli kaksi tapaa kääntää tämän ohjelman. Yksi oli ajaa versio Tämän Altair tietokone että oli vain 4K sanat muistin, 4096 sanaa muistia. Mutta iso versio oli 8K. Ja niin mitä tämä sanoo, on että 4K-versio sinun piti poistaa joitakin koodin, jotta se sopii. Ja yksi niistä asioista joka poistetaan olisi neliöjuuri rutiinia. Mutta ilmeisesti silmukoita pitäisi vielä toimi, vaikka olet kokoamisessa alas vain 4K versio tietokoneen. DAVID J. MALAN: Eli yksi teemoista, kuten tulemme näkemään tietotekniikassa, tämä käsite kerrospukeutuminen ja abstraktio, ja todella seisoo hartiat ihmisiä, jotka ovat tulleet ennen meitä, ei toisin kuin jotkut Bill Gates ja Paul Allen kerronnan täällä. Ja mitä tämä tarkoittaa että tänään voimme ottaa varten myöntää, että asiat ovat todella helpompaa meille kirjoittaa koodia. Itse koodi, kuten sanoimme perjantaina, on teknisesti kutsutaan lähdekoodia. Ja se on tämä Englanti syntaksi joka on enemmän oikea ja paremmin määritellyt kuin jotain pseudo koodi, joka ei ole virallista määritelmää. Ja tänään me menemme keskittyä lähdekoodia joka näyttää tältä, mikä tosin ensi silmäyksellä näyttää täysin arvoituksellinen. Ja suoraan sanottuna, se tie esteettisesti monimutkaisempi kuin taustalla ohjelma on. Kaikki tämä ohjelma tekee, muistaa, on se, mitä me sanoa? Se vain tulostaa "Hello World". Ja vielä tarkastella kaikkia juttuja meidän kietoa että hyvin yksinkertainen lause. Mutta ennen pitkää kaikki nämä linjat ja enemmän tekee paljon paremmin järkeä sinulle. Ja virtaus on seuraava. Mitä me tarvitsemme käytössämme on ottaa koodia, kuten lähde koodi että me juuri näin. Ja tarvitsemme uutta ohjelmaa ajaa se läpi. Tarvitsemme algoritmeja, jotka voivat muuntaa lähdekoodia, kuten tämä, osaksi kohdekoodi, 0s ja 1s. Toisin sanoen, mitä aiomme oppia tänään on, miten tämä, kirjoittaa lähdekoodin alkuun asti, siirtää se tulona erityinen Ohjelma tunnetaan kääntäjä, ja aiomme tuottaa objektin koodi. Joka on vain hieno tapa sanoen otamme jotain joka näyttää tältä, vie se tulee ohjelma nimeltä kääntäjä, tuottavat kohdekoodi joka näyttää tältä. Nämä ovat siis kirjaimellisesti malleja 0s ja 1s että ymmärtävät Intel tietokone näinä päivinä, että jos tulkitsee CPU, aivot sisällä tietokoneen, kirjaimellisesti tulostaa, yksinkertaisesti, "Hello World". Nyt on paljon enemmän 0s ja 1s kuin sinä toivoo, saattaa olla tarpeen, että. Mutta se johtuu siitä olemme rakentamassa on paljon monimutkaisia että voimme vastedes itsestäänselvyytenä. Toisin sanoen, paljon fiksuja ihmisiä ovat antaneet meille paljon hienoja työkaluja ja tehokas ohjelma, jolla me voi nyt tehdä projekteja omaa. Joten pääset alkuun. Ottaa huomioon, että viime perjantaina, ja varten Harjoitus 0 tällä viikolla, tulet pelaamaan maailma, joka näyttää tältä. Alkaa tänään ja Problem Set 1 ensi viikolla, koodi tulee näyttämään hieman arvoituksellinen, mutta toiminnallisesti on olemaan sama. Joten ilmoitus, alkuun on Scratch, pohja on C. Suoraan sanottuna Scratch on paljon enemmän käyttäjän ystävällinen ja helposti. Mutta jos nyt vertaa visuaalisesti ylhäältä pohjaan, siellä on tavallaan yksi yhteen välinen kirjeenvaihto palapelin palaset ja kieli aiomme pelata. Erityisesti sanoa, sininen palapelin pala alkuun asti, on ilmeisesti vastaa mitä avainsanan tai erityinen ilmaus tällä kielellä nimeltään C? Yleisö: printf. DAVID J. MALAN: printf. Tämä tarkoittaa alustettu tulostusta. Ja tämä on vain hieno tapa sanoa printf C tulee olemaan lausunto tai toiminto joka tulostaa jotain näyttöä. Mitä se tulostaa näytölle? Mitä kerrot sen sisällä lainauksia, sisällä sulkeissa. Joten jälleen, tosin siellä on paljon tavaraa että sinun täytyy pitää mielessä, sulkuja, lainausmerkit, puolipiste ja kaikki tämä. Mutta kaikki tämä on tavallaan on sivuseikka. Mielenkiintoinen takeaway nyt on, että vaikkapa lohko Scratch on melko vastaa printf lausuman C. Samaan aikaan, keltainen palapelin pala alkuun asti, jolloin vihreä lippu napsautetaan, on todennäköisesti vastaava mitä avainsanan täällä? Yleisö: Main. DAVID J. MALAN: Niin tärkein. Ehkä int, ehkä mitätön. Mutta tärkein laji kuulostaa on tärkeää, ja se todellakin on. Joten kun vihreä lippu napsautetaan on, jälleen, palapelin pala että käynnistymässä koko Scratch-ohjelma. Mutta aiomme nyt aloittaa kutsuvan että tärkein, tämä toiminto tunnetaan tärkein. Nyt välin jaamme yleistää tämän seuraavasti. Voisimme kutsua sanoa toimintoa. Ja se voisi näyttää nimenomaan näin. No, entä silmukoita? Jos haluamme aloittaa muuntamalla tai kääntäminen enemmän Scratch C, tämä asia täällä ilmeisesti vain sanoo "Hello World" ikuisesti. Joten jos yhdistää nämä skriptejä kissa Scratch, se vaan jatkaa sanomalla jonkinlaisessa sarjakuva kupla, "Hei maailma, hello world, hei maailmassa ", loputtomiin, ikuisesti. Jos haluamme tehdä jotain vastaavaa C, se tulee näyttää hieman arvoituksellinen. Mutta voimme saavuttaa saman tuloksia, kuten tulemme lopulta selvittää, syntaksin näin. Aion käyttää printf uudelleen, koska loppujen lopuksi Haluan tulostaa "Hello World". Ja olen ilmeisesti käyttäen avainsana, joka ei ole ikuisesti. Se on sen sijaan sana taas. Mutta vain semanttisesti vuonna Englanti, vaikka sellainen ehdottaa jonkinlainen silmukka tai pyöräillä. Niin että sattuu olemaan avainsana, C käyttää. Ja vaikka totta, miksi taas tosi tehokkaasti tarkoittaa ikuisesti? No, vaikka, kuten tulemme pian Arvostan sitäkin, on tämä sulkulausekkeen vieressä jossa voit laittaa Boolen lauseke. Ja niin kauan kuin lauseke on tosi, tämä koodi, kuten on merkitty näiden kahden aaltosulkeita kuin soitamme heille, vain pitää näkyä uudelleen ja uudelleen. Niin totta on totta. Joten vaikka totta välineet vain tehdä tätä ikuisesti. Se on melkein tyhmä rakentaa ilmaista itseäsi. Mutta ei ollut ikuisesti Hakusanalla C. Oli taas. Ja siellä oli hyvin yksinkertainen Boolen lauseke kuin totta. Ja niin tämä, näemme, samaan lopputulokseen. Miten muuten voisit toteuttaa silmukka? No, Scratch saatat kova koodi tietty määrä toistojen silmukan täällä. Ja niin se on juuri sitä, mitä me voisi tehdä tässä versiossa C, jolloin meillä on niin kutsuttu silmukka. Ja silmukka täällä on menossa kerrata hieman arvoituksellisesti, arvosta 0 ylös on kuitenkin vähemmän kuin 10. Nyt muuttujat Scratch. Et ehkä ole ollut tilaisuus käyttää näitä. Mutta mitä järkeä yleensä muuttujan ei sanomme viime viikolla? Mikä se on? Yleisö: Points. DAVID J. MALAN: pisteeseen? Voi, kohdat. OK, pitää seurata pistettä, Esimerkiksi peli. Tai yleisemmin tekee mikä on muuttuja? Mikä hyöty niistä? Yleisö: Muisti. DAVID J. MALAN: Joo, niin muisti. Se säilytykseen jotain. Ja tavallaan typerä visuaalinen käytin viime kerralla oli kuin tämä lasi kulho. Ja jos haluaisimme tallentaa jotain sisällä muuttuja, Esimerkiksi juuri nyt arvo on kuusi, koska siellä kuusi ping pong pallot täällä. Se on vain jonkinlainen varastointi kontti että alla huppu on toteutettu bittiä, 0s ja 1s, Kuitenkin tietokone sattuu tekemään sitä. Niin Scratch, jos me haluavat olla vaihteleva, voimme käyttää oranssi lohko näin. Soitamme että laskuri tässä nimenomaisessa tapauksessa. Olen alustetaan sen 0. Ja mitä se minä sitten teen? Ikuisesti, sanovat laskuri, joka jos pelaat että Scratch, näette pelkän Scratch. Kissa tai mitä puku laitat hänelle puhuu numero kyseessä. Muuta laskuri 1 on kuten kasvattamalla 1. Ja niin tämä tulee laskea mitä niin mitä? 0 til infinity, tai kunnes Scratch taukoja, tai kunnes tavallaan menettää kiinnostuksensa katsomassa kuinka korkealle hän voi todella luottaa. Joten miten me saatamme muuttaa tämän C? Se tulee näyttää hieman arvoituksellinen. Mutta jälleen kerran, jos tarkastellaan kunkin Näiden linjojen erikseen ne tavallaan kokoonpanolla yleensä. Joten ilmeisesti int on menossa on jokin erityinen merkitys C. Näemme, että taas. Sivuhuomautuksena se tarkoittaa kokonaisluku. Niin se vain tarkoittaa numero. Niin, että tyyppi lasi kulho Haluan, yksi johon voi tallentaa numeroita, ei ping pong pallot. Ja aion käyttää yhtäläisyysmerkki siellä määrittää sen arvo 0. Joten on aivan kuin joukko laskuri 0, mutta C. Samaan aikaan, vaikka totta, että oli vastaava, tietenkin ikuisesti, vaikka se on hieman arvoituksellinen, ja sitten sisällä aaltosulkumerkkien. Ja voit ajatella näitä aaltosulkeita, johon voit kirjoittaa näppäimistöllä, sillä todella olevan kuin kaarevuus Näiden keltainen silmukkalohkojen Scratch. Se kattaa useita riviä koodia. Printf on tulossa Pelottavaa nyt, koska olen nähdä paitsi siteeraa suluissa. Mutta mitä muuta uutta syntaktisesti tässä esimerkissä? On prosenttia d. Ja sitten kenoviiva n on siellä. Emme katso, että ennen, vaikka vaikka en maininnut sitä. Sitten on pilkku. Ja sitten on laskuri. Mutta näemme vain hetki, että tämä on vain standardi tapa sanoa tulosta "Desimaaliluku," lainaus, lainaus, Joissakin desimaaliluku. Mutta minä kerron sinulle myöhemmin mitä tämä desimaaliluku on. Niin että siellä on pilkku tätä linjaa sanonta printf, tarkoittaa mennä eteenpäin ja tulosta Joissakin desimaaliluku. Niin, ja muuten, määrä on arvosta riippumatta tämä muuttuja on. Ja niin tehdä tästä enemmän selkeä, näemme esimerkin ennen pitkää mukana tasan printf yhteydessä todellinen C-ohjelmia. Nyt vain kääriä joitakin Näiden rakenteiden. Boolen operaattoreilla, sinulla ei ehkä ole tilaisuus käyttää näitä teidän ohjelmaan mutta ehkä erittäin hyvin, varsinkin jos käytät olosuhteissa. Ja niin nämä kaksi esimerkkiä Raaputa tarkoittaa jos x on pienempi kuin y, tai jos x on pienempi kuin y, ja y on vähemmän kuin z, miten me saatamme kääntää sen? No, C se on vain tulee näyttämään tätä. Hieman arvoituksellinen, enemmän sulkuja, outoja ja-merkkejä, mutta pohjimmiltaan ajatukset ovat niin yksinkertaisia ​​kuin ne ovat palapelin pala maailmaa. Olemme vain tarkistaa, jos jotain on vähemmän kuin jotain muuta. Entä olosuhteissa? Pähkinänkuoressa Englanti, mitä tämä kimpale Scratch koodi do sanoisit? Yleisö: Vertaa kahta numeroa. DAVID J. MALAN: Vertaa kahta numeroita, ja jos x on pienempi kuin y se kertoo niin paljon. Jos x on suurempi kuin y se sanoo niin paljon, muuta Jos x on yhtä kuin y sanotaan niin paljon. Nyt jos ei x ja y tulevat? Kuka tietää. Tämä kimpale Scratch koodi on irrotettu asiayhteydestään. Mutta mitä me haluamme tehdä nyt kääntää tämä vain hetki nähdä. Niin saat mukavan tällä viikolla Harjoitus 0 pelaa tässä maailmassa vasemmalla, ymmärtää että ajatukset eivät ole muuttumassa tällä viikolla tai ensi tai sen jälkeen. Olemme yksinkertaisesti menossa alkaa kirjoittaa asioita eri tavalla meidän näppäimistön sijasta meidän hiiri. Joten jos x on pienempi kuin y, ja siellä on joitakin suluissa siellä, sitten on joitakin aaltosulkeita jälleen sellainen kiteyttää sen aivan kuten keltainen palapelin palaset tehdä. Ja aion printf x on pienempi kuin y, ja niin edelleen. Mikä on mukavaa noin C, kuten voitte nähdä täällä, on, että et saa tätä pesintä, pesintä, pesintä se välttämättä aio työntää koodin oikealle. Voit sen sijaan on kaikkea Uusimmat siististi pidä tästä. Mutta se on vain esteettinen yksityiskohta näemme taas ennen pitkää. Kunnossa. Niin että tuo meidät takaisin tämä arvoituksellinen näköinen ohjelma. Katsotaanpa itse kirjoittaa koodia. Nyt miten te sitten kirjoittaa koodia? Kaikki nämä vuodet, että olet omistama Mac tai PC, pöytäkone tai kannettava, olet todella ollut kyky kirjoittaminen aloitetaan ohjelmakoodia. Mutta olet todennäköisesti puuttuu erityinen ohjelma. Voit varmasti kirjoittaa koodia. Mutta et voi välttämättä, kättelyssä, muuntaa että lähdekoodi osaksi kohdekoodi, 0s ja 1s ilman mitä tietokoneessa? Yleisö: Compiler. DAVID J. MALAN: Eli kääntäjä, oikea. Nyt useimmat ehkä eivät omista kääntäjä, ole koskaan ladannut kääntäjä. Mutta näet voit ladata sen kuten useimmat muut pala ohjelmisto. Kun maailma Mac OS, saatat ladata tai ladannut jo jotain kutsutaan Xcode tai GCC tai kalahtaa. Jos tulet Windows maailmassa saatat ladannut Visual Studio, Visual Basic, ympäristöjä niin. On kymmeniä kerääjiä näinä päivinä, että voit käyttää. Mutta lyhyt täällä on, että se olisi kipua ja, suoraan sanottuna, teknologinen painajainen satoja erilaisista ihmisistä tietokonekokoonpanoista kaikille määrittää niiden koneiden täsmälleen samalla tavalla jotta voimme kaikki olla samalla sivulla. Joten mitä me, vaan tee vuonna CS50 on annamme sinulle standardin ympäristö, Linux-ympäristössä, joka on menossa katsomaan hieman jotain tällaista. Näet lisää tästä Harjoitus 1 erittelyä, jossa menee verkossa tämä perjantai-iltana. Ja mitä tämä tarkoittaa on, että te vastedes ovat menossa pystyä Lataa ja asenna ohjelma nimeltään CS50 Appliance. Ja aiot ladata ja asentaa toinen ohjelma nimeltä hypervisor, joka on vain hieno tapa saavuttaa tämä. Onko sinulla Mac tai PC tai Linux-tietokone tai Solaris tietokone, tai mitä tahansa hullu toiminta järjestelmä käytät, aiot ladata ohjelman nimeltään hypervisor, joka on juokse CS50 Laite tietokoneeseen mitä käyttöjärjestelmä on. Hypervisor eli muuntaa meidän juttuja mitä kieltä, mitä ohjeita oman oma tietokone ymmärtää. Joten tämä on kerrospukeutuminen. Ja vielä, tämä on tavallaan temaattisia tietokoneen tiede, rakennuksen päälle asioita. Saatat olla Windows. Saatat olla Mac OS. Mutta alkaa ensi viikolla olet menossa ladannut vapaa pala ohjelmisto nimeltään hypervisor. Olet menossa ladannut pala Ohjelmistojen kutsutaan CS50 Appliance. Että menee ajaa hypervisor, joka tulee toimimaan tietokoneessasi. Ja lopputulos on että me kaikki on yksinkertainen ikkuna kuin tämä Macin tai PC: joka antaa meille illuusion kaikki käynnissä sama käyttöjärjestelmä, ilman muita vaikutusta tietokoneeseen. Ja voit koko näytön sen ja pääosin käyttäytymään ikään kuin käytät käyttöjärjestelmä nimeltään Linux, joka on mitä CS50 Laite perustuu. Joten todellakin käyttävät tätä nyt kirjoittaa ohjelman. Voit kirjoittaa ohjelman Microsoft Word. Voit kirjoittaa ohjelman käyttäen TeXturissa, tai Notepad, tai WordPad, tai melko paljon tahansa sana suorittamaan ohjelman olet koskaan käytetty. Mutta todellisuus on sinun ei pitäisi käyttää todella kyseisiä ohjelmia. Et varmasti tule käyttää jotain Microsoft Word, joka on rohkea päin ja kursiivilla, ja isompi fontit ja pienempiä fontteja, koska tietokone ei välitä mitään siitä. Kaikki tietokone on menossa huolta on Englanti kuten ohjeet kirjoitettu C. Joten mitä me teemme sisällä ja CS50 Appliance on käyttää ohjelmaa vapaasti saatavilla, ja se on esiasennettuna tässä laite, nimeltään Gedit. Ja Gedit on vain super yksinkertainen tekstieditori, kuten Mac OS: n TextEdit kuten Windowsin Notepad, joka tulee näyttää hieman jotain tällaista. Joten oikeastaan ​​ole tarkastella dioja tämän. Mutta katsotaanpa itse mennä ympäristö itse. Aion mennä eteenpäin ja kirjaudu sisään, tässä muut ikkunassa minun CS50 Appliance, jonka olen valmiiksi asennettu minun laptop täällä. Huomaa, että, kuten Windows ja Mac OS, se on jotain valikoita. Kuten Windows se asettaa se siellä sijaan Mac OS, joka laittaa sen sinne. Mutta todellisuus on se kaikenlaisia ​​sama. Ja tässä koko nippu ohjelmisto. On Dropbox. On koko joukko lisävarusteita graafisia ohjelmia, jotka jaamme käyttää myöhemmin aikavälillä ongelma sarjaa. On web-selain rakennettu niin että tämä on täysin toimiva tietokone sisällä tietokoneen. Mutta aion napsauttamalla tätä vasemmanpuoleisin valkoinen kuvake täällä, joka on kuvake Gedit. Ja se tulee avata ikkuna että on kolme paneelit siihen, vasen, alkuun yksi, ja pohja yksi. Nyt se on tässä oikeassa yläkulmassa joka Aion itse kirjoittaa koodia. Tehdäänpä tämä ,. Aion mennä File, Save. Ja et ehkä ole koskaan nähnyt tässä ikkunassa ennen. Mutta tämä on kuin Mac OS tai Windows. Se on vain ikkuna kanssa kaikki kansiot että minulla on sisällä tämän tietokoneen. Ja aion säästää tiedosto hello.c. Ja aion mennä eteenpäin ja valitse Tallenna. Ja nyt huomaan on välilehti vasemmassa yläkulmassa nimeltään hello.c. Niin luultavasti melko tuttu vaikka et ole käyttää kyseistä ohjelmaa ennen. Ja nyt aion kirjoittaa ne melko arvoituksellinen komentojen sarja että näimme hetki sitten. Kuuluvat vakio-I / O.h. Siitä lisää pian. Int main mitätön, avoin kihara ahdin, suljettu kihara ahdin. Ja sitten sisällä on mielestäni jossa meillä oli "Hello World", puolipiste. Ja nyt tallentaa. Niin tämä on ohjelma kirjoitettu C, kirjoitettu, siksi lähdekoodia. Mutta en voi vain ajaa ohjelman. Olen sellainen halua kaksinkertaistaa klikkaa kuvaketta jonnekin, mutta ei kuvaketta olemassa muita kuin lähdekooditiedostoa. Mikä taas on prosessi nyt Minun täytyy suorittaa tämän tiedoston kautta? Yleisö: Compiler. DAVID J. MALAN: Niin kääntäjä. Joten eri tietokoneissa tehdä tämän eri tavoin. Mutta mitä olemme tehneet täällä CS50 Appliance se edustaja, kuinka voisit tehdä tämän monissa eri järjestelmissä, on Olen yksinkertaisesti menossa suorita komento nimeltään tehdä. Ja merkki on kirjaimellisesti aio tehdä sitä. Tee minulle ohjelman. Joten on menossa ajaa kääntäjä minulle. Ja ohjelman nimi Haluan tehdä on hei. Nyt tehdä on ohjelma. Ja tee on niin fiksu ymmärtää, että jos sanon tehdä hei, se tulee näyttämään automaattisesti varten tiedosto nimeltä hello.c vain koska se on miten se on määritetty. Joten kun nyt osui Anna tähän, tämä hullu kryptinen linja sai juuri suoritettu. Ja luottaa minuun, ennen pitkä, sisällä vain päivän, sinun ymmärtää, mitä kaikki Kyseisen hölynpölyä keinoin. Mutta nyt, juuri tietää, että tekevät laukeava suorittamisen kääntäjä. Toisin sanoen, se löytyi kääntäjä minun tietokone joka on esiasennettuna on CS50 Appliance että me ojentaa sinulle Harjoitus 1. Ja se sitten otti hello.c kuin tulo, ja tuotettu ilmeisesti 0s ja 1s tuotokseksi. Ja oletuksena mitä se tekee on se säästää ne 0s ja 1s tiedostoon nimeltä hei. Ja vaikka tämä syntaksin liian might ovat sinulle uusia, yksinkertaisesti sanomalla piste slash hei tulee olemaan tarkoitetaan millä suorita tämä ohjelma. Nyt ja ainakin pari viikkoa, lähes kaikki ohjelmat Kirjoitamme tulevat olemaan vuonna musta ja valkoinen teksti ikkunat. Ei Hiirillä ei napsauttamalla, ole ikkunoita, kuvakkeita. Aiomme pitää asiat yksinkertaisina ja keskittyä olevia ideoita aluksi ennen kuin saamme jotain korkeampi, esimerkiksi, kuten puhkeaa peli, että puhuimme noin ensimmäisellä luennolla viime viikolla. Joten kun lyön Anna täällä, se on vastaava vain teksti ympäristö kaksinkertaistaa napsauttamalla kuvaketta nimeltään hei. Mitä odotatte tapahtuu, kun osuin Anna sitten? Yleisö: Se tulostaa "Hello World". DAVID J. MALAN: Toivottavasti se tulostaa "Hello World". Ja se todellakin teki. Nyt siellä on ollut jonkin verran arvoituksellinen syntaksin täällä. Katsotaan taaksepäin vain hetki ja katso jos voimme voi aloittaa päätellä pelkästään puuhastelun, yrittää ja se ei ole, siitä, mitä täällä tapahtuu. Mitä jos pääsen eroon kenoviiva n? Nyt jotkut teistä, jotka olemme ohjelmoitu ennen luultavasti tietää heti mitä se tarkoittaa. Mutta ne teistä, jotka olemme koskaan ohjelmoitu ennen, ainakin itseltäsi, mitä tapahtuu muuttua kun uusintana tämän ohjelman? Joten aion mennä takaisin alas minun pieni musta ja valkoinen ikkuna, joka on ikkuna, jossa Voin kääntää tämän. Aion kääntää hei. Menemme nähdä sama arvoituksellinen komentojen sarja. Ja aion tehdä piste slash hei. Ja nyt joku, jos olisit, joka ei ole koskaan ohjelmoitu ennen, mikä voisi olla erilainen tällä kertaa? Joo. Yleisö: Se ei lopu tulostus "Hello World". DAVID J. MALAN: Se menee to-- anteeksi? Yleisö: Se ei lopeta tulostamista? DAVID J. MALAN: se ei Keskeytä tulostus "Hello World". Joten ei ole huono idea. Muita ideoita? Joo. Yleisö: Virheilmoitus? DAVID J. MALAN: Virhe viestin, OK, voisi olla. Mitä muuta? Yleisö: Se voi tulostaa pidike puolipisteellä samoin? DAVID J. MALAN: saattaa tulostaa pidike puolipisteellä samoin. Joten ehkä kenoviiva sitten on joitakin Tällainen terminous se on tärkeää. Muita ajatuksia? Joten kaikki hyvät ideat. Ja itse asiassa, se menee olevan virheilmoituksen. Se on luultavasti todennäköisin olevan vastaus yleensä varten lähiviikkoina kun opimme koodi tähän. Mutta nyt muistaa, että tietokoneet vain sen mitä kerrot heille tehdä. Aivan kuten naurettava maapähkinä voita ja hyytelöä esimerkki. Meidän ihmisten tietokoneita vain tarkoitus tehdä mitä kerroit niitä tekemään. Joten tässä tapauksessa, jos älä kerro tietokonetta Siirrä että vilkkuva kohdistin seuraavalle riville, se ei aio tehdä sitä. Joten kun käytän tätä ohjelmaa nyt, huomaat eron. Näyttää bugi. Se on esteettinen vika, ehkä. Mutta mikä on erilaista tästä ulostulo vs. viimeinen ilmeisesti? Joo. Yleisö: Se ei tee uutta linjaa. DAVID J. MALAN: Se ei tee uutta linjaa. Nyt niille teistä, jotka on ehkä tehty verkkosivuja ennen, saatat tietää BR tag tai kappaleen tunnisteen, hyvin samankaltaisia ​​hengessä. Web-selain sivuuttaa, kunnes kerrot sen mitä tehdä. Samoin on kieli kuin C vain aiomme tehdä mitä kerrot sen tehdä. Niin siitä syystä, että Kaikissa näissä esimerkeissä, toistaiseksi, on eräänlainen rennosti oli tämä kenoviiva siellä, se on keino jolla voit ilmaista itseäsi koska uusi rivi hahmo, niin sanoakseni. Ja voit sellaista arvostaa, ehkä, että tämä näyttäisi typerää jos ei muuta. Jos haluaisin uuden linjan, vain enteriä ja sitten laji ja butchering koodia että ei pitäisi oikeastaan ​​hieroa sinua oikealla tavalla. Ja vaikka et välitä tässä vaiheessa, huomaat, että Tämä ei ole erityisen hyvännäköinen koodinpätkä. Ja niin mitä maailma päätti vuosi sitten on että kun haluat laittaa kohdistin uuden linjan selvästi, sinun täytyy erikseen sanoa Uusi linja, kenoviiva n. Ja siellä on joitakin muita merkkejä, kuten että. Mutta nyt meidän täytyy vain keskittyä kenoviiva n. Nyt tehdä ohjelman hieman mielenkiintoisemman. Aion mennä eteenpäin ja tällä kertaa avata uuden tiedoston. Aion tallentaa tämän hei-1.c. Ja ihan vain huvin vuoksi, aion mennä laittaa se minun Dropbox-kansioon. Kuten näet on CS50 dokumentaatio laitteen, Myöhemmin tällä viikolla ongelma Set 1, me kannustaa voit käyttää Dropbox tai Joissakin vastaavaa palvelua, koska silloin kaikki koodin menossa varmuuskopioidaan automaattisesti. Ja joten siksi olen mennyt tähän kansioon täällä. Ja nyt aion kirjoittaa hieman erilainen ohjelma. Kuuluvat vakio-I / O.h, int main void. Ja sitten täällä printf, hello world, joka on täsmälleen sama kuin ennen. Mutta nyt haluan tulostaa jotain Se on hiukan erilainen. Haluan tulostaa, sanoa, "Hei, David." Kunnossa, niin on selvää, se toivottavasti olla, että jos minä uudelleenkääntää Tässä ohjelmassa uusintana se, se tulee sanoa "hei, David." Mutta mitä jos haluan esitellä tällainen muuttuja, käsite säiliö, joka on menossa tallentaa D--v-i-d eikä kovaa koodia se minun ohjelmaan. No mitä jos aloitan tehdä jotain tällaista? String s, joten tämä on vaihteleva. Jos haluat merkkijono, alias sana tai lause. Merkkijono on mitä me ohjelmoinnin soittaa merkkijono. Olemme juuri menossa yleisesti puhelu se s, koska se on mukava yksinkertainen nimi. Mutta voisin kutsua sitä jotain. Aion sanoa merkkijono vertaisuuden lainaus lainaus, "David" puolipiste. Ja nyt haluan lisätä D--v-i-d, mitä olen tulostusta. Ja ennen kuin näimme teaser näytön joidenkin syntaksinsa joka antoi meille mahdollisuuden korvikkeena arvo. Mikä oli erityisen symboli muutama dioja sitten? Niin prosenttia. Tuolloin se oli prosenttia d desimaaliluku. Se ei todellakaan tunnu asiaa täällä. Käynyt ilmi n Toisessa prosenttia symboli, mikä on prosentin s, joka seisoo varten paikanpitäjä merkkijono. Joten nyt hyvin yksinkertaisesti, olen menossa tekemään hei-1, koska tämän tiedoston nimi on Hei-1.c, ja paina Enter. Ja minä mokasin. Mitä on tekeillä? No, täällä on, jos meidän täytyy alkaa Arvostan sitä, että olemme tässä komennossa verkkoympäristöön, tämä tekstiksi vain ympäristö. Ei ole kuvakkeita kuten kansioita juuri nyt. Ja muistelen hetki sitten. Millä kansio Sanoinko Säästin koodia? Niin Dropbox-kansioon. Olisi voitu kutsua mitään. Mutta se sattuu olemaan nimeltään Dropbox. Joten olen jotenkin täytyy kaksoisnapsauttaa että Dropbox-kansioon saadakseen siihen ja saada minun koodi kutsutaan hei-1.c. Itse haluan mennä eteenpäin ja minimoida tämä ikkuna vain hetken. Aivan kuten Windows ja Mac OS, kansiot ovat Linuxissa. On kansioita CS50 Appliance. Se on vain juuri nyt olemme rajoituta itseämme tämän tekstin ympäristössä. Mutta jos minä Tuplaklikkaa Dropbox, huomaa siellä on tiedosto, että haluan koota. Mutta tarvitsen tätä mustavalkoinen pääteikkunassa, niin sanoakseni. Mutta tarvitsen siis liikkua kyseiseen kansioon tai hakemistoon. Joten hieman harvinaisempaa, mutta Totut tähänkin. Kun maailma Linux, joka taas on käyttöjärjestelmä järjestelmä kuljemme sisällä CS50 Laite, siellä komennon nimeltä CD. Eli en voi tehdä CD, tilaa, Dropbox. CD, muutos hakemistoon. Oikea. Takaisin seuraavana päivänä, kun ihmiset olivat keksimällä tietokoneet ja toimivat järjestelmät kuten tämä, he halusivat kirjoita vähiten painalluksia mahdollista. Joten helpoin tapa sanoa change directory oli CD. Joten jos osuin CD, tilaa Dropbox, huomaa, mitä on muuttunut täällä. Sisällä sulkuja Laite on eräänlainen sekä humoring minua ja muistuttaa missä olen. Niin avoin kansio on Dropbox. Jos en nyt kirjoita ls lista, jälleen ytimekäs, koska ihmiset eivät halua kirjoita takaisin päivän L-i-s-t. Niin he sen sijaan tehnyt ls. Enter. Huomaa Näen kaksi asiaa, hei-1.c, ja sitten tämä arvoituksellinen asia, lähde 1m. Se on vain minun tapani sanoa lähdekoodi viikko 1 maanantaina. Tuo kansio Latasin CS50: n verkkosivuilla, että tein aiemmin tänään ja vain laittaa se laite etukäteen. Mutta nyt ainoa asia, jota välitä tekee tästä ohjelmasta. Joten kun kirjoitan tehdä hei-1, Enter. Hitto. Jokin meni pieleen. Joten kiusaa tällä toisistaan. Ja valitettavasti tämä on, jos asiat saada hieman stressaavaa aluksi, ainakin jos olet koskaan ohjelmoida ennen. Minun jumalani. Kirjoitin kaksi linja-ohjelman ja Minulla on neljä riviä virheitä. Joten mitä täällä tapahtuu. Ensinnäkin aina siirry takaisin ja löytää ensimmäisen virheilmoituksen, koska Usein kääntäjät vain hämmentyä, mitä sinä ja minä. Kääntäjät ovat melko tyhmiä. He vain tekevät mitä kerrot heille tehdä. Ja jos hämmentää heitä, he vain menossa eräänlainen heittää kätensä ja ehkä heittää lisää virheilmoituksia kuin ovat todella merkityksellisiä. Joten katsokaamme ensin. Super arvoituksellinen aluksi. Mutta ilmoitus, tässä on nimi tiedosto, johon minä mokasin ilmeisesti. Colon 5, paksusuoli 5 vain keinoja rivi 5 viidennessä luonnetta. Joten viidennessä sarakkeessa merkkiä, jos haluatte, virhe. Käytä pimeän tunnisteen merkkijono. Tarkoititko vakio n? Ei, tarkoitin merkkijono. Ja sitten se on eräänlainen kopiointia ja liittämistä mitä olen kirjoittanut todella tehdä minun huomiota siihen, missä minä mokasin. Niin jostain syystä C, tai ainakin kääntäjä ei ymmärrä sanaa merkkijono. Ja se johtuu teimme sen. Joten jono ei ole olemassa C. Mikä CS50 tekee, että ensimmäisten viikkojen vain luokan, on meillä tarjota joitakin koulutus pyörät, niin sanoakseni. Ja laitamme nämä apupyörät sisällä erityinen tiedosto nimeltä CS50.h. Joten tämä on toinen kahdesta tiedosto nimiä, jotka ilmeisesti päättyy dot tuntia. Katsotaanpa taaksepäin. Printf on ilmoitus tai toiminto että ilmeisesti tulostaa jotain näyttöön. Mutta et näe minua toteuttaa printf, oikea. Joku vuosi sitten toteutettu printf. Millä tiedosto olisi pelaat hän tai hän laittaa täytäntöönpanon varten printf, koodi printf? Tiedostoon nimeltä vakio I / O.h. Itse asiassa se on luultavasti kaksi kuvaa, vakio-I / O.h, joka tarkoittaa otsikkoa tiedosto, ja vakio-I / O.c, joka tarkoittaa C lähdekoodia. Joten hän joitakin vuosia sitten plopped koodin että he kirjoittivat tuohon tiedostoon niin, että ihmiset pitävät meitä vuotta myöhemmin voi olla se, niin sanotusti omissa ohjelmissa. Ja todellakin, sitähän ruutumerkillä jälkeen sana kuuluu tekee. Se näyttää kovalevylle, havaitsee tiedoston nimeltä standardi I / O.h, ja sitten tehokkaasti kopiot ja pastat se sisällä oman tiedoston. Joten nyt minun ohjelma tietää miten tulostaa näytölle. Niin, että logiikka, jossa on merkkijono määritellään? Yleisö: CS50.h. DAVID J. MALAN: CS50.h. Ja todellakin, että me, pysyvä henkilöstö, ovat tehneet. Olemme keksineet muutamia tietotyyppejä, niin sanotusti, kuten merkkijono, lisäksi itse olet saada ilmaiseksi, kuten int. Ja näemme toiset, kuten nieriä varten merkin ja muutaman lisää. Sisältä CS50.h ilmeisesti on ainakin jotkut mainita merkkijono. Joten nyt anna minun mennä eteenpäin ja uusintana make hei-1. Tulen zoomata uudelleen ja rajat sormet. Now tehtyään yhden muuttaa Korjasin useimmat asiat. Mutta perkele. Enemmän prosentteja kuin tiedot argumentteja. Mitä tein väärin tällä kertaa? Niin se on silti aika arvoituksellinen. Mutta tämä virhe on rivi 7 ja luonne 21. Joten mennään etsiä täältä. Se on vähän hienovarainen. Mutta jos ajattelee mitä perusajatuksista täällä ovat, ehkä voimme kiusata tämän toisistaan. Joten printf on funktion nimi. Suluissa tähän mennessä on aivan kuten mitä laitamme ympärillä juttuja olemme ohimennen tuloina toimintoa. Okei, vain mielivaltainen ihmisen sopimusta. Käytä sulkuja. Sisältä ne sulkeissa olemme pistäneet lainausmerkkeihin, ja sitten merkkijono kuten "Hello World". Mutta että aikaisemmin esimerkiksi hyvin lyhyesti teki katsomme Scratch. Ja meillä oli prosentin d, mitä muuta oli sisällä niitä sulkuja että Huusin suullisesti? Joo. Yleisö: Eli se mitä olet ottaen [Äänetön] sisällä [kuulumaton] mitä nämä [kuulumaton]? DAVID J. MALAN: Aivan. Joten jouduimme prosenttia d. Mutta sitten meillä oli lähellä lainaus, pilkku, laskuri. Oikea. Me määritelty, mitä haluamme tehdä niin paikanvaraajaan. Joten mitä aion tehdä tässä pilkku, mitä haluat minun laittaa? Yleisö: S. DAVID J. MALAN: S, koska s tässä tapauksessa on nimi säilytysrasiassa. Se on nimi, että lasi kulho. Kun ennen se oli laskuri, joka yksinkertainen Scratch Esimerkiksi me katsoimme. Joten nyt se on tehnyt kaksi muutoksia, haluan zoomata ja yrittää vielä kerran kokoamaan tätä ohjelmaa. Nyt näen, että arvoituksellinen linja. Mutta se on oikeastaan nimeksi kääntäjä. Kalahtaa on nimi kääntäjä. Tee on vain pelastamisestani päänsärky koskaan kirjoittamalla, että pitkä hullu komento ulos. Joten nyt jos en dot slash hei-1, Haluan nähdä "Hei, David." Melko underwhelming kuitenkin, eikö? Olisimme voineet tehdä tämä paljon yksinkertaisemmin puhumatta muuttujista ja CS50.h ja kaikki tämä. Joten tehkäämme se hieman mielenkiintoisemman. Lisäksi CS50.h, ottaa asioita, kuten merkkijono julisti, CS50 kirjasto on myös muutamia tehtäviä. Joten aivan kuten vuosi sitten, joku kirjoitti printf ja laita se vakio I / O.h ja jonkin muun tiedoston. Me, CS50 henkilökunta kirjoitti toiminto nimeltään getchar, GetDouble, GetFloat, GetInt, GetLongLong, GetString, ja laitoimme ne sisällä tiedosto nimeltään CS50.h ja CS50.c. Ja laitamme heidät sisälle ja CS50 Appliance. Ja ihmiset voivat myös ladata niitä verkossa, jos he halua laittaa heitä oma kone samoin. Joka on sanoa, että olemme luoneet toimintoja, jotka saavat käyttäjän syötettä. En tiedä mitä kaikkia Näiden tietojen tyypit ovat. GetInt on sellainen suoraviivainen, kuten saada kokonaisluku jotenkin käyttäjältä. Ja GetString on luultavasti kuin get sana tai lause käyttäjältä. Joten keskittyä siihen. Ja aion mennä takaisin laitteen ja aion mennä eteenpäin ja tallentaa tiedoston, kutsukaamme se hei-2.c kuin minun toinen versio. Ja tehkäämme pari muutoksia. Tällä kertaa sen sijaan, kova koodaus David, joka tekee uskomattoman johdonmukainen mutta underwhelming ohjelma, mitä jos en sen sijaan tehdä GetString? Nyt huomaa GetString on sulkeen, suljettu suluissa, koska se ei tarvitse mitään panosta. Se on vain menossa saada merkkijonon käyttäjältä. Ja nyt sana muiden syntaksin. Puolipisteet vain loppuun rivi koodia. Et tarvitse niitä kaikkialla. Mutta se vain tarkoittaa, olen tehnyt tämän riviä koodia. Saanen siirtyä johonkin toiseen lausunto tai toiminto. String julistaa muuttuja. Merkkijono on kuin sanoisi anna minulle kulhoon, kiitos. Ja haluaisin laittaa merkkijonon siinä. Ja nyt yhtäläisyysmerkki. Mikä on yhtäläisyysmerkki vastaavat käytännössä? Yleisö: Määritä. DAVID J. MALAN: Joo, arvon määrityksessä. Jos siis esimerkiksi puhelun Tämän toiminnon GetString, ja näemme hetken, joka on menossa pyytää käyttäjältä merkkijonon. Tämä on kuin kerroit minulle sitten kirjoittaa D--v-i-d pala paperia. Ja kun sanon merkkijono s vastaa GetString, sama ei todellakaan tarkoita yhtä C-ohjelmointi. Se tarkoittaa antaa oikean käden puolelta vasemmalle puolelle. Joten olen saanut merkkijono. Ja yhtäläisyysmerkki merkitsee asian säilytysrasiassa nimeltään s. Ja sitten siirtää pois printf todella tehdä sen asian. Niin lopputulos sitten on menossa näyttää hieman erilaiselta. Tehdään tehdä hei-2. Joko voisi toimia. Olet jälkeen pitkin. Tee hei-2 toimi. Dot slash hei-2, Enter. Olen ilmeisesti ääretön silmukka tai jotain. Mitään ei tapahdu. Miksi? Yleisö: Se tekee päättymättömään silmukkaan. DAVID J. MALAN: Se on päättymättömään silmukkaan. Se on tavallaan odotti minua todella tarjoavat sitä joillakin tuloilla. Joten anna minun mennä eteenpäin ja kirjoita David, ja paina Enter. Ja nyt se sanoo "hei, David." Jos juoksen sen uudelleen. Katsotaanpa kirjoita Rob, "Hei, Rob." Nyt tämä on pahin käyttöliittymä koskaan. Käyttäjä on ilmeisesti pitäisi tietää, mitä tehdä. Mutta ei väliä. Näiden samassa rakennuksessa lohkojen kuten Scratch, voimme ratkaista tämän ongelman ja sanoa jotain nimenne, paksusuoli, tilaa, suljettu lainaus, sulje sulkuja, puolipiste. Niin paljon taas typeryyttä kanssa syntaksin. Mutta huomaa Olen juuri lisännyt palapelin pala yli tämän yhden ja ennen tätä. Joten jos nyt uusintana tämän, hei-2, Enter. Hetkinen. Mikä on vialla? Se ei käyttäydy eri tavalla. Joo. Yleisö: Et juossut tee uudestaan. DAVID J. MALAN: en suorita make taas oikealle. Joten Muutin lähdekoodia. Mutta jälleen kerran, siellä tuo virtaus. Lähdekoodi kautta kääntäjä antaa voit uusi kohde-koodin tai 0s ja 1s. Joten minun täytyy todella uusintana make hei-2 Enter. OK, jotain näyttää tapahtuneen. Dot slash hei-2. Nimenne. Ja tehdä selväksi nyt, miksi kursori samalla linjalla? Täsmälleen. En laittanut kenoviiva n tänne minun koodi. Joten nyt voin kirjoittaa jotain Daven, Enter. Voin käyttää sitä uudelleen ja kirjoita jotain Gabe, Anna, ja saamme eri ohjelmaa uudestaan ​​ja uudestaan ​​ja uudestaan. Nyt lopulta olemme menossa tarvitsevat käyttää muutamia eri ominaisuuksia. Meidän on otettava käyttöön lopulta joitakin edellytykset tehdä asioita ehdollisesti. Ehkä kierroksia jotta voimme tehdä asioita uudelleen ja uudelleen. Ehkä se olisi mukavaa, jos me voisi toteuttaa omia toimintoja, kuten voisimme toteuttaa omia printf tai oman version GetString ja GetFlow, koska loppujen lopuksi jopa tämän komennon verkkoympäristöön voimme tehdä jopa kaikkein visuaalisesti kiinnostavia asioita. Itse lopuksi haluan tehdä tämän. Aion mennä eteenpäin ja sulje nämä ikkunat ja avaa tämä kuvake täällä, joka on vain isompi versio että sulautettujen pääteikkunassa. Joten Gedit ei ole vain paikka minun koodi, mutta myös rakennettu terminaali-ikkunassa, musta ja valkoinen ikkuna jossa voin ajaa komentoja. Satuin avaamaan isompi versio tästä. Ja nyt aion mennä kansio, että olen jo laittaa etukäteen kurssin kotisivuilla. Ja aion mennä eteenpäin ja Avaa tiedosto nimeltä thadgavin.c, joka on kirjoittanut joku muu. Ja jos katsomme tätä, tämä ei ole sellaista koodia me voidaan kirjallisesti, koska Tavoitteena Tämän koodin oli kirjoittaa kaunein looking koodin että hän voisi riippumatta siitä, onko toinen ihminen voisi koskaan ymmärtää tätä koodia. Itse asiassa joka vuosi siellä on mitä on kutsutaan sotkettu C kilpailu, joka on todellinen geeks jotka kirjoittavat koodin että kukaan muu ei voi lukea, mutta joka tekee jotain joko todella yksinkertainen tai todella hämmästyttävää. Ja ajattelimme lopuksi tämä näyttää jotain, joka on aika uskomatonta Olet ehkä nähnyt kerran ennen. Mutta me päättyy tähän merkille, piste slash, thadgavin. Tämä on siis mitä odottaa. Se on siinä CS50. Nähdään keskiviikkona. [Musiikki soi]