[VIDEOTOISTOSTA] -A Riemuvoitto matemaattisen ja mekaaninen taito on tämä suuri uuden automaattisen laskin Harvardin yliopistossa. Vaativien ongelmia matematiikan laittaa koneen läpi koodattuna nauhalle on tarkasti ratkaistaan minuutti osa tarvittava aika ihmisten laskentaa. Suunniteltu nopeuttaa kaikenlaisen matemaattinen ja tieteellinen tutkimus, jättiläinen mekaaninen aivot toimii Yhdysvaltain laivaston asti sodan loppuun. [Lopeta toisto] David J. MALAN: Tämä on CS50. Aiemmin oli maaginen paikka, mutta jos olet koskaan miettinyt, mitä kyseinen laite on Harvardin Science Center, se on todellakin osa Harvard Mark I, ja se on esillä siellä nyt viimeiset vuosia. Ja mitä näet upotettu Harjoitus yksi on Kurkistus kulissien taakse mitä kyseisen laitteen teki, ja tekee, professori Harry Lewis, joka on Tietojenkäsittelytieteen laitos täällä. Niin lisää, että vain hieman. Mutta tänään me alamme siirtyminen viime viikolla tähän, ja me tuoda mainita Yhden valokuvan täällä se on oikeastaan ​​melko kuuluisa. Ei kukaan tiedä, mitä tämä tässä näytössä? Ainakin mukaan myytti. Joo. Yleisö: Ensimmäinen virus. DAVID J. MALAN: Niin se oli muka ensimmäinen todellinen vian tietokoneessa. Nyt todellisuudessa sanan bug, varten virhe ohjelmassa, on ollut meille joitakin aika fyysisessä maailmassa, ja tämä oli yksi ensimmäisistä dokumentoitu tilanteita, joissa joku todella kyniminen suuri koi ulos Mark II tietokone, laita se sideaine, ja sitten tallennetaan se ensimmäinen tunnettu bugi että on todella löydetty fyysisesti. Joten näin kirjattiin että tämän päivän Lore. Kaikkea viime viikko on saatavilla verkossa. Erityisesti resursseja että saatat ei välttämättä huomaa, erityisesti jos tänne henkilökohtaisesti. Joten yksi opetuksen Fellows joka vuosi tekee kanoninen joukko toteaa, joten sinun ei tarvitse pitää päätäsi alas, yrittää puhtaaksi useimmat mitään että voi tapahtua täällä luokassa. Niin ymmärtää, että nämä ns [? Scribd?] Muistiinpanoja ovat verkossa, varmasti dioja ja lähdekoodi että käytämme luokassa. Teemme koko teksti selostukset saatavilla hyvin. Joten jos hämärästi muistan joitakin aikavälillä, ja haluat etsiä se hieman helpommin, ymmärtää, että kaikki Tämän on haettavissa verkossa. Sekä walkthroughs samoin. Todellakin, tänään alamme tarkastella alemman tason ohjelmointikieli, pian tiedossa meille kuten C, ja se on erittäin helppo tavallaan eksyä jälkeen vain muutaman hetkiä aikaa, ja sitten tavallaan ihme miten me itse saanut joitakin enemmän monimutkainen esimerkki yksinkertaisin. Ja niin ymmärtää me will kirsikka poimia tunnilla jotkut ja edustavat esimerkit, mutta ymmärtää, että paljon enemmän on myös saatavilla verkossa, joten voit työskennellä sen läpi omaan tahtiin, mutta olet eniten mukava. Mutta lähdimme pois ohjelmia, jotka olivat juuri tämä. Joten en napsauttamalla vihreää lippua, ja mitä tämä ohjelma tekee? Sanoo, hei, maailma. Se tekee kissa sanoa hei hänen pikku maailmassa ylhäällä vasemmalla puolella Scratch käyttöliittymä. Mutta aloimme esitellä jotkut terminologiaa viime viikolla. Ja niin, asioita, kuten tämä me kutsutaan mitä? Mikä voisi olla yleisnimitys tämän? Joo. Menetelmä tai lausunto. Toki, se on toimintaa. Tee tämä. Ja vielä siellä oli muita muotoja tyhjästä, lisäksi nämä niin sanotut lausunto, ne olivat myös asioita, kuten tämä, jota kutsutaan mitä? Joo. Niin silmukka. Ja tässä tapauksessa, tämä asia toistaa, tietenkin, 10 kertaa. Siellä ikuisesti lohko. On pari muuta. Ja tänään aiomme nähdä, miten kääntää tämä entistä modernissa maailmassa, jos haluatte, vaikka se on tulee näkyä ensi silmäyksellä olevan paljon mystistä. Mutta ne olivat todellakin silmukoita. Ja sitten meillä on asioita, kuten tämä, joka oli tämä muoto, ja olennaisesti kysyttyä. Ja me viitanneet näihin mitä? Yleisö: Boolen lauseke. DAVID J. MALAN: Joo. Boolen lauseke. Jotain, joka on joko totta tai väärä, kyllä ​​tai ei, yksi tai nolla, Kuitenkin haluat nähdä maailma. Mutta me kutsutaan niitä Boolen ilmaisuja, ja me kytke ne osaksi olosuhteet, tai oksat. Ja maailmassa Scratch, kaikki kauniisti lukitukset suhteen sen muodon, jos se tekee loogista järkeä tehdä niin, mutta sinun ei tarvitse pysähtyä vain tehdä yksi asia ehdollisesti, voit olla sananlaskun tienhaarasta ja tehdä joko tämän tai että jos ehto on tosi vai ei. Ja sitten, kun näet, jos et ole jo, Voit jopa pesä näiden lohkojen. Joten Scratch kasvaa täyttämään muodot että saatat haluta lisätä siihen, joten voit itse ilmaista eniten mitään logiikkaa, että saatat haluta tehdä. Nyt muutaman sanan ilmoitus sekä täällä ja New Haven. Joten osastointi alkaa tänään. URL Tämän on kurssin verkkosivusto, Niille tunne. Osiot ovat mahdollisuus saada yhdessä on paljon intiimimpi ympäristössä kuin [? Sanders?] Avulla, kanssa 10-20 luokkatoverit kanssa opetus kaveri eri kappaleita, ja eri tahdissa, jos niin haluavat. Itse kurssi tarjoukset eri osissa niille vähemmän mukava, lisää mukava, ja jossain välissä, ja rooli peukalo täällä, on ei ole virallista määritelmää, mutta jos olet vähemmän mukava, te tavallaan tietävät sen. Olet hieman peloton noin Ajatus tehostamalla jalka, ehkä takaisin luokkahuoneessa tai joissa jopa välillä osassa. Jos olet ollut ohjelmointi koska olet oli kuusi vuotias, mukavampaa, ehkä sinulle. Ja jos se on eräänlainen arvonta, Juuri mitä välillä on tarkoitus olla. Nyt, sillä välin, luokan tämän koon, se vie meidät jo jonkin aikaa § kaikille, joten olemme ns, Super kohdat, tulossa tämä viikonloppu ja ensi viikon alussa, joten katsomaan kurssin verkkosivuilla niille, jotka ovat tietenkin laaja, ja myös kuvattiin niille jotka eivät voi tehdä niitä. Ja kohdat itse alkaa viikolla kolmessa CS50 nolla indeksi. Harjoitus 0 on jo kurssin verkkosivuilla. Ja ymmärtää, että sinulla on yhdeksän myöhään päivää tällä lukukaudella. Joten tämä on päivitys viime vuosi, kun meillä oli viisi myöhässä päivää. Joten jos mietit, meillä on yhdeksän ongelma sarjaa. Sinulla on yhdeksän myöhään päivää, joista jokainen voit vain viettää yksi viikossa. Jotka tehokkaasti tekee kaikki ongelma asettaa johtuu perjantaina mutta tavoitteena on laittaa vähän vähän psykologista painostusta teitä yrittää saada asioita torstaina koska niin tulet pian huomaamaan, parempaan tai huonompaan, useimmat kaikki ohjelmiston maailmassa päätyy ottaen paljon kauemmin kuin arvelet. Niin pitää se eräänlainen mahdollisuuksia auttaa itse kohdistaa torstaina mutta lohduttaa, että kyllä, kaikki johtuu perjantaina. Ja jos annat ne Torstai, hienoa. Ei ole bonuspistettä tai ylimääräisiä luotto tavata määräaikaa. Se on tarkoitus olla kainalosauva vain. Ja virka, sekä täällä ja New Haven, henkilökohtaisesti, jos haluat tavata kaikki meidän kursseja opetus kaverit ja CA apua. Selvä. Joten nyt, Tehdään tästä enemmän todellisia. Ja hetken se tulee aloittaa saada hieman enemmän mystistä, mutta hyvin nopeasti perjantaina ja ensi viikolla tulemme voivat tehdä niin paljon enemmän kuin voisimme tähän asti Scratch. Joten otimme käyttöön koodi viimeksi viikko, vaikkakin pictoral. Se oli palapelin palaset. Ja me virallisesti, että se on jotain kutsutaan lähdekoodi, mutta se ei näyttää? No, se näytti hieman jotain tällaista. Ja itse asiassa vain eräänlainen tease jossa voimme mennä tämän. Aion mennä eteenpäin ja avata ikkuna täällä, ja olen juuri menossa valita uusi tiedosto. Ja aion tallentaa tiedoston kuten jotain hei piste C. Siitä lisää valinta sanat vain hetken. Ja näin joku voisi mennä kirjoittamisesta ohjelman. Sisällytä vakio I / O piste h, int main mitätön, ja avaa kihara ahdin, lähellä kihara ahdin, printf Hei pilkku maailmassa, kenoviiva n, puolipiste, Tallenna, tehty. OK. Olen kirjoittanut minun ensimmäinen ohjelma, mutta se on menossa uskomattoman underwhelmed koska kun olen itse suorittaa tämän ohjelman, tietenkin, ensin kirjallisesti tehdä Hei, ja sitten piste slash Hei, ja me käydä läpi tätä paljon yksityiskohtaisemmin hetkessä, siinä kaikki se. Ei ponnahda auki kaikki ikkunat. Se ei tee mitään erityisemmin pidä. Kaikki se, mitä sanoin sen tehdä, mutta miten saamme sen? Ja miten me rakentuu että? No, esitellä muutamia eri käsitteitä täällä. Joten, aiomme aloittaa käyttäen ohjelma nimeltä kääntäjä. Kääntäjä olemassa Mac OS, Windows, Linux, minkä tahansa määrän käyttöjärjestelmiä, ja me pian esitellä sinulle ympäristö että käytämme, mutta kääntäjä on vain yleinen termi pala ohjelmisto joka vie lähdekoodi ja tuottaa kohdekoodin siitä. Toisin sanoen, jos on tulona lähde koodi, jotain mitä juuri kirjoittanut, se lopulta tuottaa kohdekoodilla. Ja kohdekoodit oikeastaan ​​vain hieno tapa sanoa se tulostaa nolla ja yksi. Toisin sanoen, lähde koodi, vaikka se on menossa näyttää hieman mystistä, ja hieman vähemmän ystävällinen kuin Scratch ensi silmäyksellä, se on ainakin jotain että me ihmiset voivat ymmärtää. Se ikään kuin näyttää ja kuulostaa Englanti vaikka se on hyvin ytimekäs. Ohjelmatyössä nolla ja oman, kuten edeltäjämme piti tehdä, joitakin vuosia sitten, ei ollut Erityisen hauska haaste. Ja vielä, tämä on mitä tietokone vielä ymmärtää. Joten kääntäjä saa meidät lähdekoodi vastustaa koodia. Se on kuin tiedoston avaamisen kanssa kääntäjä, ja kun tallennat sen, saat ne nollia ja ykkösiä. Joten näemme miten että vain hetken. Mutta katsotaanpa nyt yrittää tarjota silta välillä viime viikolla ja tätä, niin että vaikka me paneutua asioita, kuten aaltosulkeita, ja puolipisteellä, ja suluissa, ja kaikki nämä älyllisesti mielenkiintoisia näkökohtia ohjelmointi, että hyvin ymmärrettävästi matkaa ihmiset ylös varhain, ymmärtää, että kaikki ideat tänään, ovat samat kuin viime. Niin viime, näimme tässä esimerkissä täällä, Hello World-ohjelma. No, alkaa tänään, jos haluamme toteuttamaan saman ohjelman, se tulee näyttämään vähän jotain tällaista. Ja me kerromme ennen pitkää mitä int, ja tärkein, ja tyhjä, ja kaikki tämä on, mutta ainakin näen täällä jo tuttu Hello World. Samaan aikaan, asioita, kuten toiminto, tervehtimään, on hyvin yksinkertaisesti olemaan hyvin yksinkertainen selvitys näin. Printf Hello World, joidenkin lainaa, kenoviivaan, puolipisteeseen, mutta siitä lisää tulemaan. Silmukoita puolestaan ​​tämä on silmukka, joka, tietenkin, sanoo Hei maailma ikuisesti, ja tämä tulee näyttämään pikku weirder kuin viime, mutta jos sanon jotain kuten, vaikka totta, minä voi sitten tulostaa Hello world uudestaan ​​ja uudestaan ​​ja uudestaan ​​ja uudestaan. Ja sitten kuin voit laji ja alkaa päätellä täällä, tämä tapaa käyttää aaltosulkeita on eräänlainen samankaltaisten käsittää sisennetty koodiriviä siellä. Printf koodiriviä paljon kuin keltainen palapelin pala yläpuolelle. Joten emme aio sanoa ikuisesti, aiomme sanoa vaikka totta, mutta näemme, miksi näin on vain vähän. Samalla jos meillä on silmukka näin, jossa toistat jotain rajallinen numero kertaa, tämä liian se on vie vähän totuttelua , mutta se tulee sanoa int i saa nolla, i alle 10, i ++, ja sitten printf uudelleen. Mutta siellä tulee olemaan malleja. Ja niille Tunnetko AP Computer Science, tai Java, tai useita muita kieliä, lähes kaikki näistä konstruktien toistaiseksi pitäisi näyttää enimmäkseen tuttuja. Niin vaihteleva. Joten tässä on yksinkertainen Scratch ote että asettaa muuttuja nimeltä nollaksi, ja sitten ikuisesti sanoo laskuri, ja niin se muuttuu laskuri yhdellä. Niin se alkaa nollasta, ja sitten yksi, kaksi, kolme. No, miten voi esittelemme että tämä uusi kieli vähän samalla tavalla? Int laskuri vastaa nolla, kun taas tosi, joka on, että sama idea ennen tehdä jotain ikuisesti, ja olen juuri menossa printf. Ja nyt se alkaa hieman outo, prosenttia i, mutta siitä lisää tulemaan, mutta nämä ajatukset ovat täsmälleen samat. Meillä vain on nyt kiinni syntaksin että tietokone on menossa vaatia meitä. Boolen lauseke, jotain sx vähemmän kuin y, tai X vähemmän kuin y, ja y vähemmän kuin z. Se tulee näyttää hieman jotain näin, jossa suluissa vain kuten matematiikka kaupanpäällisiksi vain varmistettava, että määräys toiminnan on kuin aiomme. Ja nyt, olosuhteet. Joten jos x vähemmän kuin y, sanovat x on pienempi kuin y, muuta, jos x on suurempi kuin y, sanoa x on suurempi kuin y, muuten loogisesti, X on yhtä kuin y. Joten saatat toteuttaa jotain tällaista Scratch, tai ehkä toteuttaa se tässä syntaksin. Ja vielä, aaltosulkumerkkien ovat sellaisia antaa meille sama muoto kuin palapeli kappaletta, mutta syntaksi, nyt on ehkä alkaa seurata joitakin malleja. Joten, mitä tämä meille täällä? Joten olemme takaisin sitten tärkein ohjelma. Katsotaanpa todella, nyt, tehdä jotain sen kanssa. Joten tässä ensimmäinen line näemme terävä kuuluvat, vakio I / O, piste h, ja sitten outoja kulma Suluissa alle. int main mitätön, ja sitten printf Hello World. Joten ottaa askel. Joku, joka ei ole koskaan ohjelmoitu aikaisemmin, ainakin selittää yksi näistä rivejä. Käyttämällä kenties jotkut ammattikieltä viime viikolla. Mikä on printf, esimerkiksi? Joo. Yleisö: [äänetön] DAVID J. MALAN: Joo. Se on toiminto, tai ilmoitus, viime viikon terminologiaa. Ja se on kanteen että tekee jotain. Nyt tämä toiminto, tai Tämä lausunto, ei se näyttää ottaa jonkinlainen panos? Ja missä mielessä tekee sen näyttävät vievän tuloon, jos niin? Input, mitä tarkoitan tällä? Joo. Yleisö: [äänetön] DAVID J. MALAN: Joo. Joten Scratch muutama palapelin palaset jossa voit parametrize sen. Voisit kertoa toista lohko kuinka monta kertaa toistaa, joten se oli panos lajittelee, ja aivan kuten Scratch oli pieni valkoinen paikkamerkki että numero kirjoitetaan vuonna, joten käytämme tässä teksti maailma sulkeissa antaa meille, että pyöreä muoto johon voimme plug panoksemme. Onhan kymmeniä vuosia sitten kun tämä kieli, nimeltään C, keksittiin kukaan ennakoitua se on yksi meistä, nämä joitakin vuosia myöhemmin, olimme haluavat toiminto, joka sanoo hei. Oikea? Se olisi mukavaa, jos siellä oli palapelin pala, tai avainsanoja, sitä kutsutaan hei, että kirjaimellisesti vain sanoo hei. Mutta emme tarvitse sitä. Meillä voi olla jotain paljon pienempi tasolla, kuten yleinen Tulosta komento, joka vie tulo, ja tulostaa mitä haluamme. Joten huomaa nyt kuvio joka alkaa syntyä. Avaa paren, lähellä paren on ilmeisesti käsittää tulon, ja sitten näen kaksinkertainen lainaa molemmissa päissä. Vielä on outo kenoviiva n, mutta toivottavasti nyt sinua voi alkaa visualisoida ainakin että printf ryhtyy jonkinlaista tulon. Ei niin käyttäjäystävällisiä Scratch, mutta se on vain kuten ottaa kytketty jotain arvoa siellä. Okei, nyt nyt todella tehdä jotain tämän. Joten jotkut teistä ehkä tietävät ottaa asioinut luokan ennen, jutteli ystäviä, että monta vuotta käytimme jotain kutsutaan CS50 laite. Tämä oli kuvaava termi tekniikka kutsutaan virtuaalikoneen, joka on pala ohjelmisto, että edeltäjät noutaisi pois kurssin verkkosivuilla ilmaiseksi. He myös ladata ilmaisia ​​pala ohjelmisto kutsutaan hypervisor, jotain kutsutaan kuten VMware, tai VirtualBox, tai useita muita työkaluja, ja niiden Mac- tai PC- tai mitä tietokone heillä oli viime vuonna ja menneinä vuosina, ne olisi kaksinkertainen klikkaa kuvaketta suorittaa tämän ohjelman nimeltään hypervisor. Ja sitten sisällä että ohjelman ne avaisi CS50 laitteen. Ja vaikutus oli, että onko edeltäjä sinun on Mac OS tai Windows, hän sitten myöhemmin oli uuden ikkunan niiden näytön käynnissä CS50 käyttöympäristö. Joten virtuaalikoneen avulla voit käyttää yhden käyttöjärjestelmän sisällä toisen, ja juuri mitä teimme. Lähes koko tietenkin Käytä käyttöjärjestelmän kehittämisen nimeltään Linux, erityisesti Ubuntu Linux, ja tämä on erittäin mukava tapa menneinä vuosina on varmistaa, että jokainen kurssi vain oli samassa ympäristössä. Ja voit käyttää mitä tahansa tietokone että te todella haluavat. Niistä haittoja, vaikka, oli se oli kuin kaksi gigatavua ladata tämä asia. Se ei välttämättä toimi Super hyvin ihmiset, joiden tietokoneet, että ehkä vain oli keikka tai niin RAM, tai ei liian monet gigahertsin suorittimen nopeus, ja niin tänä vuonna, sillä Tästä ja muista syistä, meillä on vaihtamassa tähän ympäristöön. Ns CS50 IDE, joka on perustuu avoimen lähdekoodin ohjelmistoja, ja tuettu ympäristö että yritys nimeltä Cloud9 tukee Euroopassa, että antaa meille mahdollisuuden olennaisesti että täsmälleen sama ympäristö kuin Menneinä vuosina, mutta ns pilvi. Joten mikä on pilvi? Olet luultavasti napsauttanut sen kuvaketta Macin tai PC. Mikä on pilvi? Joo? Vähän kovempaa. Joo. Se on vain joukko tietokoneita muualle että tallentaa tiedot ja ajaa ohjelmisto ja vastaavat. Joten se on oikeastaan ​​vain sanalle de jure kuvata [? vuokrattavaa?] tietokoneita, jotka elävät muualla. Että te itse, eivät välttämättä omista. Joten kun tietosi, tai ohjelmat, ovat pilvessä, se vain tarkoittaa että se on joku toisen tietokoneet muualla, ja ei, todennäköisesti, teidän fyysinen kannettavaan tietokoneeseen tai pöytäkoneeseen. Ja niin sitähän CS50 IDE nyt on. Vastedes voit mennä tiettyyn URL-osoite, tutustuttaa sinut on vuonna Harjoitus 1, myöhemmin tämä viikko, että sitten, kun kirjaudut sisään, antaa sinulle tämän ympäristössä. Ja aivan kuten Scratch oli muutama eri paneelit mukana, joten ei CS50 IDE on juuri näin. Ylhäällä vasemmalla puolella täällä, olet näkemään tutun tiedostoselain. Joten mikä tahansa tiedostot otetaan tässä ympäristössä juuri menossa luetella siellä. Tiedostoja ja kansioita. Päällä täällä, olet menossa nähdä paikka jossa voit itse kirjoittaa koodia. Aluksi C, myöhemmin aikavälin PHP ja JavaScript, ja, ehkä lopullinen hankkeita, Ruby tai Java tai Python tai useita kieliä tuettu tässä ympäristössä. Se ei ole lainkaan sidottu ja CS50 erityisesti. Ja sitten alakulmaan täällä, erityisesti niille mukavampaa, sinulla on jotain kutsutaan pääteikkuna. Ja tämä pääteikkuna avulla voit suorittaa mitään komentoa, että olet haluavat tällä pilvi ympäristössä. Sen avulla voit asentaa mitään lisäohjelmia että haluat koska olet ns root, tai järjestelmänvalvojan oikeudet. Eli toisin sanoen, vaikka tämä on lopulta isännöi pilvi, ja vaikka meillä yksinkertaistettu se jossain määrin oletuksena, kirjaimellisesti käyttöön, kiitos Dan Armendariz, ja Dino, ja Dan Bradleyn CS50 joukkue yli viime monta kuukautta, vähemmän mukava tila, joka kätkee paljon aluksi hämmentävää häiriötekijöitä. Kaikki on olemassa edustavat tyypillinen tietokonejärjestelmä että voit käyttää todellisessa maailmassa. Mitä tämä kaikki tarkoittaa, ja mitä voimme todella tehdä sen kanssa? Katsotaanpa todella kurkistaa ohjelma. Joten aion avata todellinen ympäristö täällä, joka on vain meidän Chrome selain, joka voisi olla Firefox, voisi olla Internet Explorer, tai jokin muu selain samoin. Se on täynnä seulottu täällä tällä hetkellä. Ja haluan todella kiusata lisäksi mitä tämä ohjelma oli. Joten katsomaan, suurentamalla ylös alkuun, mitä tein, ja miten sain täällä. Joten tässä ne tarkka Sama riviä koodia. Joten tämä on toteamus, kuten aiemmin mainittiin. Toiminto, joka sanoo hei. Aaltosulkeita puolesta rivi neljä ja linja kuusi, oletettavasti tällaista kääriä että linja yhdistää sitä kanssa ydin minun ohjelma. Joten todellakin, avainsana tärkein, että tuolla ylhäällä linjalla kolme, voit ajatella, että vastaavat Kyseisen kun vihreä lippu napsautetaan, lohko Scratch. Niin, että meidän täytyy täällä, on, kun Vihreä lippu napsautetaan, tulostaa, tai sanoa, Hei maailma. Mutta sallikaa arvaus, nyt, mitä tämä ensimmäinen, enemmän mystistä linja, on. Sharp ovat, avoin kulma kiinnike, vakio I / O piste h, Sulje kulma kiinnike. Mikä on, että ehkä tekee, varsinkin jos olet ohjelmoinut ennen muulla kielellä. Joo? Yleisö: [äänetön] DAVID J. MALAN: Joo. Aivan. Joten tämä antaa sinulle pääsyn kirjasto, niin sanoakseni, toimintoja. Ja kirjaston toimintoja on toiminnot että joku muu kirjoitti, joko äskettäin tai kauan sitten, jotta voit ei tarvitse keksiä pyörää uudelleen. Esimerkiksi emme täytyy tietää, vuonna 2015, miten kirjoittaa koodia, joka tuo hahmo minun näytöllä. Joku muu on tajunnut, että ulos printf toiminto jotta voin lajitella abstrakti pois, vai kerros päälle hänen koodi, ja nyt vain ottaa selvänä, että mitään ohjelmaa kirjoitan voi tulostaa jotain näytön. Joten tämä ensimmäinen rivi on ensimmäisessä vaiheessa sisältää ns otsikkotiedosto standardin kirjastoon. Joten katso, kielen joka pyrimme nyt oli standardin kirjasto jossa on paljon toimintoja. Printf on yksi niistä, ja että ensimmäinen rivi koodia tarkoittaa antaa minulle pääsy kyseisiä toimintoja, jotta voin ei tarvitse keksiä uudestaan ​​pyörän. Mennäänpä pohjaan ikkunaan ja tehdä mitä tein ennen. Hetki sitten, kun olin whizzing kautta koodi, kirjoittamalla sitä ensimmäistä kertaa, Olen hyvin nopeasti kirjoittanut, tehdä hei. Mikä tuo oli se arvaa? Mitä teen? Joo? Unohda koko juttu. Se on ok. Joo. Yleisö: kääntämiseen. DAVID J. MALAN: Joo. Se oli vain kääntämiseen. Oikea? Vaikka tämä on täysin tuntematon teille, se on melko Englanti kuin. Se ei todellakaan ole nollia ja niitä, niin olen edelleen täytyy ajaa se läpi että ns ohjelma, kääntäjä, joka menee ottaa se syöttää ja tuottaa tuotos. Ja ainakin, nyt, vuonna tämä Linux-ympäristössä, mutta tämä ei ole edellytys, tämä on juuri kun alamme, te yleensä vuorovaikutuksessa tietokonejärjestelmiä näin mukaan ns komentorivi. Joten vilkkuminen nopea ja näppäimistön, ja ei niin paljon hiirtä, eikä niin paljon ikkunat ja kuvakkeet ja valikot, pikemminkin kaikki on tekstimuotoinen. Ja vaikka tämä tuntuu, aluksi silmäyksellä, ehkä, kuten askel taaksepäin, se on todella paljon voimakas ja ilmeikäs tapa ohjaamiseksi tietokoneen varsinkin kun, itse, entistä mukava vähemmän. Se tulee avulla voit tehdä paljon enemmän asioita kuin mitä Microsoft tai Apple voit tehdä graafisen käyttöjärjestelmän. Joten kun osuin Enter, nyt, mitään ei tapahdu tällä kertaa koska ilmeisesti ohjelma hei on ajan tasalla. Ja mikä oli komento Juoksin sen jälkeen? Piste slash Hei, ja Hello World. Nyt ottaa askel takaisin vain hetken. On käynyt ilmi, että tekevät hei on vain yksinkertaistettu tapa ohjelmaa koostettaessa. Haluan vain käyttöön yhdestä ammattikieltä, mutta sitten siirtyä pois siitä, koska se ei ole kaikki olekin mielenkiintoista nykypäivän tarkoituksiin. Kääntäjä aiomme alkaa käyttää kutsutaan kalahtaa, että C-kielellä. Ja tämä on ohjelma, jota johtavat vain kuten teimme komentoriville siellä. Joten jos haluan kokoamaan ohjelma, että olen on kirjoitettu tiedosto nimeltä hei piste C, minä kirjaimellisesti kirjoita kalahtaa hei C kirjoita. Hassua on, historiallisista syistä, jos en määritä Ohjelman nimi että haluan tuotos, jos en Määritä tiedoston nimi niille nollia ja niistä, hyvin outo Yleissopimus hyväksyttiin vuotta sitten jossa se tuntui tavallaan hyvä vastaus tuolloin, hyvin Haluan vain mielivaltaisesti soittaa Ensimmäinen ohjelma me koota piste pois. Tulee ensin aakkoset. Pois, se on lähtö. Joten me kutsumme ohjelma oletuksena piste pois. Ja se on hienoa, koska jos haluan suorittaa ohjelman tässä tekstissä perustuu ympäristö, minä kirjoita piste slash piste ulos tulevat. Ja se kulkisi samaan tapaan kuin ennen. Joten nähdä, että todella nopeasti. Joten jos menen takaisin minun lähdekoodin CS50 IDE, ja minä sen sijaan tehdä tämän, kalahtaa Hei pinnasänky C Näppäile, ilmoitus mitään ei tunnu tapahtuvan, mutta lähes aina tämä Linux-ympäristössä, kun mitään pahaa tunnu tapahtuvan, että tarkoittaa jotain hyvää todella tapahtui. Jos et näe virhe viesti, kaikki on luultavasti hyvin. Ja todellakin, jos minä nyt tehdä piste slash piste ulos tulevat, olen ajaa minun sama ohjelma. Minulla on vielä hei ohjelma aiemmista koska todellakin, se on tulee olemaan niin paljon mukavampaa vain Tyyppi Merkki muistamisen sijasta nämä loitsut ja komentoja, mutta katsotaan miten me saattaa parantaa tälle kuitenkin. Niin, tämä on käsky kokoamaan koodia. Tämä on suoritettava komento käännetty koodi jälkeen. Miten voin määrittää tiedoston nimi? No sanotaan nyt käyttöön yksi pala ammattikieltä. Kun olet tässä teksti perustuu ympäristö, olet menossa haluavat määritellä asioita kutsutaan komentoriviargumentteja. Joka on vain hieno tapa sanoa, Toisin sanoen kehoitteessa että nipistää käyttäytymistä riippumatta ohjelma käytät. Joten erityisesti ohjelman olen käynnissä, kirjoittamalla nimi kalahtaa, on ohjelma nimeltä kalahtaa. Joten tämä on tai vanhan koulun vastaa tuplaklikkaamalla Microsoft Word tai jotkut ohjelman kuvaketta. Olen sen sijaan vain kirjoittamalla sen nimen, mutta tässä versiossa komennon, Sitten on viiva O-tila Hei space hei piste C. Joten vaikka et ole koskaan ollut tässä maailmassa ennen, ota arvaa ei viiva o hei tehdä? Vai mitä se kertoo kalahtaa tehdä? Joo. Yleisö: [äänetön] DAVID J. MALAN: Joo. Se vain asettaa tiedoston tuloste olla hei sijaan sillier piste pois. Ja todellakin, yritetään tätä. Joten jos en nyt tee, ensimmäinen Tehdään tämä, r m hei. Se poistaa. Ja se tulee sanoa Poista tavallinen tiedosto hei, joka on tarpeettoman arcane, mutta se vain keinot haluat poistaa tiedoston, ja kirjoitan y kyllä. Ja huomaa, jos olit vilkaisi alkuun vasemmalle, se ei häviä sieltä ylhäältä. Anna minun nyt tehdä kalahtaa viiva o, ja Aion mennä eteenpäin ja tehdä hei, kaikissa lippikset, hei piste C. Nyt, jos en piste slash Hei, mitä odotat? Ehkä se on isot ja pienet kirjaimet. Ehkä se ei ole. Katsotaan. Ei tällaista tiedostoa tai hakemistoa. Ja voimme eräänlainen huijata vain katsomalla vasemmassa yläkulmassa. Mitä minä tietenkin tallentaa ohjelman? Kaikki caps hei. Niin todellakin, että menee tehdä ero. Joten nyt Hello World on takaisin. Nyt tämä on kaikki hieno ja hyvä, ja kaikki hyvin turruttavaa, tavallaan juuttua näihin yksityiskohtia, mutta niiden ymmärtäminen on hyvä. Kirjoittamalla nämä yhä pitkä loitsut ei tule olla erityisen hauskaa, joten ihmisiä maailmassa keksi toinen ohjelma, joitakin vuosia sitten, nimeltään tehdä, että yksinkertaisesti avulla voit kirjoittaa merkki, ohjelman nimi haluat tehdä, ja tehdä on älykäs, että se katso nykyisen kansion, alias hakemisto, ja jos sinulla on tiedosto nimeltään Hei piste C, että on tiedosto se laatii sinulle tulee ohjelma nimeltä hei. Joten se on paljon yksinkertaisempi tapa tekee enemmän arvoituksellinen komentojen että teimme aikaisemmin. Ja olemme ennalta määritetty CS50 IDE tietää että se pitäisi tehdä viiva o ja useita muut liput, tai komentoriviargumentteja, että näemme ennen pitkää. Mutta katsotaanpa nyt itse tehdä jotain mielenkiintoisempaa. Kirjoittamalla ulos Hello world kaikki aika ei ole kovin vakuuttava. Joten anna minun mennä eteenpäin ja muutos Tämän ohjelman ja sanoa, hei David. Nyt aion mennä täällä. Aion mennä eteenpäin ja tehdä tehdä hei. Ja taas nyt näette tehdä näyttää sinulle enää komentojen sarja, että se on teemme koska olemme ennalta määritetty sen niin, mutta me ei tarvitse huolehtia nyt mitä se tekee muu kuin se on kokoamiseen piste slash Hei, hei maailma. Mikä hätänä? Joo. Yleisö: [äänetön] DAVID J. MALAN: Kyllä. Joten, noobie virhe. Huomaan tämä on erittäin hienovarainen, mutta tähti täällä, välilehdellä, vain tarkoittaa et ole tallentanut sitä, ja selaimet ja muut ohjelmat tehdä tämän joskus. Joten ohjaus s tai komento s pitäisi säästää sitä. Nyt haluan mennä eteenpäin ja uusinnassa ohjelma. Käännetty. Oikea, joten se on monivaiheinen prosessi. Yksikään joka on erityisen monimutkainen, mutta tahansa muutamme tiedoston, meidän täytyy muuttaa johtuvilla nollia ja ykkösiä, ja piste slash hei. Vau. Joten tämä on erittäin underwhelming että me vain tulostaa tästä. Tehdään asioita hieman dynaaminen, nyt. No se kääntyy pois, että pidät Scratch, C tukee muuttujia. Ja se osoittautuu, jos haluat on muuttuja, joka tallentaa, ei määrä kuin me tyypillisesti teki Scratch, mutta kuten sana, tai lause, tai nimi, sinua voi määrittää muuttuja on tyyppiä merkkijono. Joten näemme enemmän nämä vain hetken, mutta käy ilmi, että C, ja paljon kieliä kuin se, on hyvin tietyntyyppisiin muuttujia. Se ei ole aivan kuten algebran, jossa saat x, y, ja z ja ne ovat vain aina numeroita, ohjelmointikielellä voit tallentaa numeroita, voit tallentaa yksittäisiä merkkejä, voit tallentaa kokonaisia ​​sanoja, voisit tallentaa kuvat kokonaisina, koko äänitiedostoja, ja vastaavat. Joten meidän täytyy määritellä, mitä tyyppi meidän muuttuja on. Ja sopimuksen mukaan aion soittaa muuttuja s vain koska se on ytimekäs, ja S viittaa merkkijono. Ja sitten aion tallentaa sisällä tämän muuttujan, Aivan kuten Scratch kun käytän asettaa lohko, Aion käyttää Sijoitusoperaattori C, joka kauniisti tarpeeksi on yhtä suuri allekirjoittaa, mutta yhtäläisyysmerkki tekee tämän. Se liikkuu jotain suoraan vasemmalla puolella ilmaisun. Joten mitä olen tehnyt, on selvää linja viisi, on olen julistanut muuttuja. Olen kertonut tietokone, anna minulle muisti muuttuja, soita se s, ja tietää etukäteen, että aion voidaan asettaa merkkijonon se. Ja merkkijono on vain merkkijono. Se on sana, tai lause, tai kohta, mutta se on merkkijono. Se ei ole numeroita. Mitä merkkijono olen olemaan käyttöönottoa että muuttuja? No, ilmeisesti lainata lainaus, "Hannah". Huomaa nyt kuvio, joka on syntymässä. On vasemmalta ilme. On oikea käsi ilmaisu, erottaa yhtäläisyysmerkki. Ja ota arvata, jos tunne kuitenkin, mitä puolipiste tekee. Mitä se oletettavasti tekee meille? Joo? Yleisö: [äänetön] DAVID J. MALAN: Joo. Se on vain päättämisestä linja. Oikea? Tietokoneet haluavat olla suorasukaisesti kertoi, kirjaimellisesti, mitä tehdä. Kuten maapähkinävoi ja hillovoileipä esimerkiksi jos et määritä mitä aiotte, se saattaa jättää tuomiota tai virhe. Puolipiste tarkoittaa, se on siinä tämän komennon. Se on erittäin tarkka, ja se on erittäin helppo juttu lähteä pois. Joten nyt tämä ohjelma ei näytä käyttäytyisi eri tavalla kunnes jotta se olisi dynaamista. Joten sen sijaan kovaa voisi omasta nimi, Sanon paikkamerkki arvo. Ja käy ilmi, että, ja tiedän tämän saamasta lukea ohjeita, ja käytetään toiminnon vuosia, että printf oli suunniteltu dynaaminen. Sinun ei tarvitse tietää etukäteen mitä sanoja haluat laittaa sen. Voit sen sijaan olla paikkamerkki, kuten prosenttia s, joka aikoo kertoa tietokone, laittaa merkkijono täällä. Joka merkkijono haluamme laittaa sinne? Will käynyt ilmi, että näiden suluissa, joka muistaa, rajata tulo toiminnon, jos sinulla on pilkulla erotettuna luettelo asioita täällä, me todella kulkea useita panoksia toiminto. Joten aivan kuten jotkut Scratch lohkot, et ehkä on ollut heidän kanssaan projekteja vielä tai lainkaan, jotkut Scratch lohkoja on kaksi tuloa. Kaksi valkoiset laatikot voit kirjoitetaan numeroita tai sanoja. Joten ei C on toimintoja kuten printf joka voi ottaa kaksi tuloa. Ja vielä, tämä pilkku on erottaa heidät. Joten Englanti, uudelleen vaikka et ole koskaan ohjelmoitu aiemmin, tämän logiikka printf on funktio, kestää kaksi tuloa, joista toinen on paikkamerkki, mitä toivot printf aikoo tehdä tähän tuloon? Se tulee tervehtimään Hannah toivottavasti. Joten tehdä tämän meidän täytyy pelastaa se. Aion loitontaa. Aion mennä takaisin tänne ja sanoa, tehdä hei anna. Oh. Jokin on vialla, ja itse asiassa tämä on aivan ylivoimainen. Minulla on kuusi riviä koodia ja kuten 12 riviä virheitä. Joten, odotan tätä. Mitä täällä on tekeillä? Joten paras nyrkkisääntö tässä, varsinkin kun olet aloittamassa, ei saa häiritä tavaraa alareunassa. Itse olen hyvin tietoisesti vain vierivät ylöspäin koska hyvin usein, tietokone on ole kovin kirkas laitteen. Se tulee hämmentyä. Jos se näkee yksi asia, että se ei ymmärrä, se saattaisi erehtyä pitämään muut riviä koodia vääräksi, vaikka ne ovat täysin kunnossa. Joten haluat aina työskennellä alkuun alas virheitä. Ja tosin tämä on Super arcane tällä hetkellä. Virhe, käyttö pimeän tunniste merkkijono. Oliko Tarkoitan standardin? Ei, tarkoitin merkkijono. Ja se on suunnattu, ehkä se on kirjoitusvirhe. Eräänlainen kuten, oikeinkirjoituksen tarkkailun hyvin geeky tavalla, mutta syy täällä, ja tiedät tämän vain käytännössä on että käy ilmi, että merkkijono ei ole olemassa C. Itse asiassa, C- on erityisen vanha kieli, ja se on hyvin alhainen, ja se ei paljon ominaisuuksia että saatat ovat kasvaneet , jos sinulla on, itse asiassa, ohjelmoitu Java, kuten jotkut teistä ovat, mutta voit opettaa sen uusia asioita. Ja todellakin, olemme tehneet tätä CS50, vaikka loppuun mennessä lukukauden, kaikki nämä apupyörät olisi otettu pois, mitä teemme näissä ensimmäinen pari viikkoa aluksi on meillä on myös lisäät CS50 piste h. Joka on header-tiedosto. Siitä lisää tulevaisuudessa. Se on tiedosto, joka sisältää toiminnot että olemme kirjoittaneet teille. Ja joukossa toiminnot on toiminnot saada panos käyttäjältä, kuten jouset, ja numeroita, ja todellinen määrä, ja enemmän. Mutta se on myös muutamia oikoteitä. Se määrittelee Boolean kuin tietotyyppi. C ei ole tosi tai epätosi. Mutta voimme antaa sen käsite totta vai tarua tavalla tätä kirjastoa. Ja se ei myöskään ole merkkijono rakennettu kunnes kuuluu tätä linjaa. Joten tämä rivi koodia kertoo kääntäjä, hei, kalahtaa, katso tässä tiedoston koko nippu koodin että CS50 on kirjoitettu niin, että kuka tahansa tämä tiedosto voi ottaa itsestäänselvyytenä ominaisuudet he lisänneet. Joten nyt haluan mennä eteenpäin ja selkeä näyttö, ja jos utelias Sanon vain ohjaus l aina tyhjentää näytön, tai voit kirjoittaa selkeät. Olen juuri menossa mennä eteenpäin nyt ja tyyppi tehdä Hei, ja kaikki on hyvin. Silti arcane tuotos, mutta se ei ole virheellinen viesti. Nyt jos en tee piste slash Hei, ja syrjään, piste slash on tuntematon useimmille. Se vain tarkoittaa, piste välineet nykyinen hakemisto. Joten jos olet koskaan käytetty DOS, tai Linux tai Unix olet ehkä tehnyt jotain kuten CD piste piste, jossa piste piste tarkoittaa mennä taaksepäin aika, tai mennä taaksepäin, tai ylempänä teidän hakemistoon. Piste tarkoittaa vain katsoa nykyinen hakemisto. Haluan hei, joka on täällä. Ja todellakin, nyt se sanoo hei Hannah. Ja jos voin vaihtaa sen uudelleen Maria, kääntää se tekisi Hei, piste slash Hei, ohjelma vaihtuu jatkuvasti. Mutta tämä on vielä melko tyhmä ohjelma. Jos haluan lähettää tätä ohjelmaa, tai antaa sen kaverille, tai antaa sen Maria tai Hannah että asia, se käy hyvin. Voin muokata sitä molemmat, mutta se ei ole koskaan tule olemaan dynaaminen. He eivät voi muuttaa sitä, kun se on käännetty alas noihin nollia ja ykkösiä. Joten mitä teimme jotain fiksumpia? Mitä jos sen sijaan, että kova-koodaus ohjelmaan tämän henkilön nimi, mitä jos me vain saada string kysyntään? Eli toisin sanoen, anna minun tehdä tämä. Aion kääntää tämän ohjelman. Ja haluaisin suurentaa alareunassa nyt. Tee hei piste slash hei. Nyt mitään ei tapahdu. Voimmeko saada nopeasti vapaaehtoinen tehdä jotain tapahtuu? Tule ylös. Mikä on nimesi? PANCHO: Pancho. DAVID J. MALAN: Pacho? Tule ylös. Kun nouset ylös tänne, tämä on olemaan hyvin underwhelming, mutta se on enemmän mielenkiintoista kuin minä kirjoittamalla. Jos haluat mennä eteenpäin ja kirjoita nimi, Tein tämän ohjelman sinua varten. Kirjoita vain nimi. Anna. Ihana. Selvä, kiitos paljon. PANCHO: Paljon kiitoksia. DAVID J. MALAN: OK. [APPLAUSE] Se oli erittäin ystävällinen. Ole hyvä. Mitä teemme? Joten vihdoin, ainakin, teki tämän ohjelman dynaaminen. Nyt on vielä varmasti suunnittelun underwhelming, mutta meillä on vihdoinkin mahdollisuus nyt kirjoittaa koodia etukäteen, paljon kuten laatijat printf, ja sitten dynaamisesti mukautuvat tulon perusteella olemme ojensi joko ohjelmoija, tai ihminen, joka on itse asiassa vuorovaikutuksessa ohjelman. Joten oikeastaan ​​nyt yrittää tehdä muutamia muita konstruktioita ja katso jos emme voi tehdä ohjelmia itse kehittyneempiä. Joten mene eteenpäin ja sen sijaan Kirjoitan tätä tyhjästä, Aion mennä nykypäivän lähdekoodi, ja kaikki tämä on saatavilla kurssin verkkosivuilla, ja voit vetää ja pudottaa sen omaan ympäristöön tulevat perjantai kerran ongelma setti 1 antaa sinulle ohjeet, tai voit tehdä sen komentorivin hyvin, mutta lisää on tulossa s asetettu 1. Katsotaan mitä tässä ohjelmassa täällä kutsutaan, summain piste C. Nyt olen jo kommentoinut se, mutta mitä uutta? Ensi silmäyksellä, mitä linja koodi on aivan uusi? Todennäköisesti ei pohjimmiltaan tunne nyt. Yleisö: [äänetön] DAVID J. MALAN: Joo, joten int x vastaa saada n. Emme ole koskaan nähnyt mitään tällaista ennen, mutta int on luultavasti symboli millaisia muuttuja, [? mistä?] kokonaisluku. Joten int kokonaisluku. Se vain on enemmän ytimekäs. x on vain mielivaltainen. x ja y ja z ovat edelleen melko kohtuullinen numeroita, mutta yleensä käytämme sanoja kerran ohjelmamme saavat monimutkaisempia. Get int, tietenkin, aivan kuten GET merkkijono, on todennäköisesti menossa int käyttäjältä, ja sitten me aiomme tehdä saman y. Ja ilmeisesti, vaikka tämä viimeinen rivi, 24, näyttää monimutkaisempi, se tulee sanoa summa tämän ja että tämä on toinen asia. Ja ilmoitus prosenttia i luultavasti tarkoittaa mitä? Mikä rooli prosenttia i ilmeisesti palvella? Se on vain paikkamerkkejä. Oikea? Prosenttia s oli merkkijono, prosenttia i on kokonaisluku. Siellä tulee olemaan prosenttia f varten Liukulukuarvo, joka on vain numero desimaalipilkun. Toisin sanoen, todellinen määrä. Joten todella kokoaa ohjelmoida todella nopeasti ja tekevät lisätoiminto. Oho. Hyvä tilaisuus. Joten huomata täällä, koko tämän ajan minun käyttäjä nimi tälle tilille on jharvard. Olen CS50 IDE, alias IDE50. Ja nyt sininen täällä, on maininta, mutta ympäristöstä, missä olen. Ja itse asiassa, jos minä zoomata ylös täällä, huomaa, että minulla on IDE50 ja näen tämän sanan, jos sellainen kääntää päätä sivulle, työtila. Pähkinänkuoressa, että Näen tilde slash työtila tarkoittaa, että tässä tekstissä pohjainen komento ympäristö, Olen tekstissä vastaa Tätä graafista kansio täällä. Joten kun en piste slash lisätoiminto, se sanoo mitään sääntöä tehdä tavoite lisätoiminto pysähtyy. En tiedä, mitä se tarkoittaa, mutta se on huono jostain syystä. Ei tällaista tiedostoa tai hakemistoa on vieläkin selvempi. Missä se sitten on? Perustuu jossa klikkasin avata tiedosto aikaisemmin. Jossa se voisi olla? Se on luultavasti lähde yhdessä w, keskiviikko ja näen sen, todellakin, jos avaan, että jopa. On lisätoiminto piste C, mutta tämä teksti-pohjaisessa ympäristössä, uudelleen, minun on oltava erittäin selkeä. Jos haluan muuttaa hakemistoja osaksi lähde yksi Keskiviikko minun täytyy kirjoittaa, cd tilaa lähde yksi Keskiviikko tulevat ja nyt minun nopea muutoksia antaa minulle visuaalisen että Olen todellakin muualla minun ympäristössä, mutta nyt voin tekevät lisätoiminto, se tuntuu toimivan, piste slash lisätoiminto, anna minulle kokonaisluku. Yksi. Kaksi. Summa on yksi ja kaksi on kolme. Mutta jos en tee yhteistyötä, Katsotaan mitä saat int tekee. Anna minulle kokonaisluku. Ei. Yritä uudelleen. OK. Hieno. 50. 50. Selvä. Niin se lopulta yhteistyötä. Ja se on joitakin toiminnallisuutta että nämä toiminnot voi on rakennettu sinulle. Joten sisällä täytäntöönpanon get int, mitä ohjelmointi rakentaa viime viikolla on luultavasti siellä pakottaa tätä käyttäytymistä uudelleenyritys, Yritä uudelleen, yritä uudelleen? Joo, siellä on luultavasti jonkinlainen silmukka. Se tulee näyttää syntaktisesti eroaa Scratch n lohkot, mutta se on todellakin mitä sisällä tiedoston. Ja muutaman viikon kertaa me todella katsoa CS50 kirjastossa siitä, mitä sisällä, mutta siellä on silmukka asettaa juuri näin. Pelataan typerä pieni peli täällä tämän tiedoston. Condition Zero piste C. Olemme juuri menossa yleisesti alkaa laskea nollasta. Ja pidän rullata viimeisen joitakin juttuja ylhäällä. Sininen täällä, rajattujen kaikki näistä tähdistä ja viiltää, Niille teistä, jotka ohjelmoida ennen, mikä se on? Miksi pidämme sivuutan yli? Mitä? Yleisö: Se on kommentti. DAVID J. MALAN: Joo. Se on vain mielipide. Tämä on kommentti ihmisille lukea, että meidän tapauksessamme, kertoo meille, mitä tiedoston nimi on, kuka ne on tehnyt, ja mitä se tekee, niin että sinulla ei ole lukea läpi koodi tietää, mitä tämä tiedosto on kyse. Se on vain kuvaus, mutta toiminnallisesti se on merkityksetöntä. Ja voin jopa poistaa sen minun arkistoida ja sillä ei ole vaikutusta. Mehukas linjat ovat nämä kaksi ensimmäistä täällä, nyt. int main void on vastaava meidän kun vihreä lippu napsautetaan, joten aiomme lähteä että on tänään, ja tulemme takaisin, lopulta, siitä, mitä int ja mitätön ovat, mutta nyt, huomaa, mitä olen tehnyt Tässäkin, voit myös, jos sinulla on yhdenmukainen kommentoida, jos sinulla on ajattelin haluat jakaa tietystä koodiriviä, yleissopimus C on tehdä kauttaviiva slash, ja sitten muutaman ytimekäs sanoen, ei koko lause, yleensä ei kohta, että vain kertoo sinulle, tai TF, tai muiden lukijoiden tai työtovereiden, mitä koodi tekee. Joten sen sijaan on etsittävä Tämän ja päättelevät linjat yhdeksän ja 10, mikä on tämä tekee, vastaa kahdeksan Olen vain antaa kommentin pyytää käyttäjältä kokonaisluku, niin en tarvitse ajatella liian kovaa mitä linjat yhdeksän ja 10 ovat. Tiedän vain, että se mitä yhdessä he tekevät. Miten? No, tässä on nopea. Tässä hankkivat int. Ja perustuu edellisen käyttäytyminen, se tuntuu get int on fiksu varmistaa, että ihmisen yhteistyötä ja antaa sille kokonaisluku. Mutta nyt näemme tätä. Ja tämä tuo mieleen Scratch. Olen väittäen, että olen analysoimalla käyttäjän panos, mutta hieman epätarkasti. Ja tämä ilmeisesti C on kuinka annamme jos muu, haara, tienhaaraan, mutta minä sanoa hieman epätarkasti. Mikä vika tässä ohjelmassa? Tietoja edelleen takaisin? Joo. Yleisö: [kuultavissa] nolla. DAVID J. MALAN: Joo. Jos siis kirjoitat nolla Tarkastellaan juuri tässä tapauksessa, tai nurkka tapauksessa jos haluatte. Jos siis kirjoitat nolla, mikä lohkojen aikoo ilmeisesti napata se? Jos tai muuta? Muu, ja se tulee sanoa, valitsit negatiivinen luku. Ja todellakin, nolla ei ole tarkoitus olla positiivinen tai negatiivinen, ja niin se olisi virheellisesti. Se olisi virhe. Joten kuinka voimme korjata tämän? Joku, joka ei ole koskaan ohjelmoida ennen? Haluatko-- Yleisö: [äänetön] DAVID J. MALAN: Sisäänpainuvien? Yleisö: [äänetön] DAVID J. MALAN: Ai, sinulla on? Joku, joka ei ole koskaan ohjelmoida ennen. Haluatko kokeilla käsi Tämän, vuonna punainen paita? Tule ylös. Ai niin, tule ylös, jos et mielessä. Joten ei ole koskaan ohjelmoitu ennen, mikä on nimesi? LAUREN: Lauren. DAVID J. MALAN: Lauren, kaikki hyvin. Joten korjata tämä virhe meille. Et ole nähnyt C, oletettavasti, ja luultavasti mikään muu kieli. Joten korjata tämän ohjelman meille. Nice to meet ya. Ei paineita. LAUREN: Joo. DAVID J. MALAN: Mutta jälleen kerran, jos tämä uhkapeli menee suunnitelmien mukaan, takeaway täällä olla, vain uudelleen, aloittaa huomata malleja ja päätellä nykyisten syntaksin miten muuten saatat ilmaista itse, no pun tarkoitettu, jotta vangita joitakin ylimääräisiä skenaario. Joten sanomme muu, jos. printf, hyvä. Ja huomaa kanssa CS50 IDE, ja frankly-- IDE sanoista Integrated Kehitysympäristö. Se on vain hieno tapa sanoa joka auttaa sinua ohjelma. Se käyttäjäystävällinen asioita, kuten kun kirjoitat yhden suluissa, se automaattisesti antaa sinulle muita. Olettama on, että olet lopulta menossa halua kirjoittaa, että ja se myös tekee sen lainausmerkkejä. Joten haluan linja 23. 99% matkalla sinne. Joku haluaa säestää sisään kärki? Kuulin puolipiste yleisöltä. Hyvä. Jotta täydentää sitä. Ja nyt, minulla on vain vähän tyrmistystä rivi 21. Miten haluamme ilmaista tämän? Mitä kysymys haluamme kysyä, mitä luulet? Joten aiemmin pyysimme kysymyksen, jos n on suurempi kuin nolla, tehdä tämän. Else, tehdä. Joten meidän täytyy valita kysyä täällä. Yleisö: [äänetön] DAVID J. MALAN: Hyvä. Joten jos n on yhtä suuri kuin nolla. Erinomainen. Joten tauko tässä. Kiitos niin paljon uhmaten tätä. Annan teille vähän hyvin ansaittua stressipallo, ehkä siellä. Joten olemme melkein perillä. Itse asiassa, Lauren, jos et mieli, haluan tehdä yhden nipistää täällä, vain olla johdonmukaisia ​​vaikka mitä näimme Scratch, mitä Haluanko tehdä linjat 21 ja 24, vain perustuu jälleen kuinka teimme tämän Scratch, kenties? Yleisö: Siirrä sitä. DAVID J. MALAN: Joo, siirrä sitä ylös. Joten muuten kunnossa, kolmannen, tai neljäs, viidenneksi tai lopullinen sivuliike, pitäisi todellakin tulla jälkeenpäin, ja se on vain sopimuksen mukaan, vain koska jos haluatte. Joten en täytyy tehdä tämä nipistää. Ja minun täytyy laittaa kihara ahdin takaisin tänne. Ja nyt, tämä ohjelma koota. Olemme niin lähellä, mutta siellä on hyvin, hyvin hienovarainen bug. Katsotaan mitä tapahtuu. Ensinnäkin haluan mennä eteenpäin ja loitontaa. Aion mennä eteenpäin ja Tyyppi Merkki kunnossa nolla. Voi, valehtelin. Nyt kääntäjä on oikeastaan ​​aika fiksu. Enkä todellakaan ymmärrä se on virheilmoitus. Käyttämällä tulos tehtävän edellytykseksi ilman sulkuja, on ilmeisesti huono. Mutta mitä se tarkoittaa? No jälleen, etsivät malleja koodin että olemme nähneet aiemmin, mikä on linja 17 todella tekee, vaikka Lauren tarkoitettu hieman muuten? Joo. Yleisö: [äänetön] DAVID J. MALAN: Joo. Muista siis yhtäläisyysmerkki, ilmeisesti kuten olemme käyttäneet sitä ennen, ei vastaa. Sen toimeksianto, oikealta vasemmalle. Joten linja 17 tällä hetkellä on kunnossa, ja se on täytäntöönpanovaltion koodin sisällä suluissa, mutta kun se koodi suorittaa, mitä tapahtuu nolla? Mitä tapahtuu n: n arvo? Tulossa nolla. Joten jos n on tulossa nolla, ja taas, kohti viime viikolla, me yleensä sanoa, että nolla on väärä ja yksi on totta, tai kyllä ​​on yksi ja on nolla. Niin tosi ja epätosi, yksi ja 0. Jos n kuin linja 17 on ollut annetaan arvo 0, on nolla totta? Ei. Määritelmän mukaan nolla on väärä. Se yleissopimuksen olemme menossa kiinni eteenpäin. Niin tulee linjat 18, 19, ja 20 koskaan hae nyt, loogisesti? He eivät voi. Kysyimme kysymyksen mutta ei aivan tarkasti, ja et tiedä tätä, ellei olet nähnyt sen, liuos C on, kun haluat ilmaista tasa-arvo, sanot tasavertaisten tasavertaisina. Joten yhtäläisyysmerkki oli jo käytetty luovuttamalla, oikealta vasemmalle. Yhtä vastaa välineet tasavertaisina. Ja jos todella haluat mielesi voidaan taivuttaa, JavaScript ja PHP, siellä vastaa vastaa tasavertaisten, joka Tarkoititko jotain muuta kokonaan, mutta me saamme että ennen pitkää. Joten tämä on yksinkertainen korjata, mutta ymmärtää Super helppo tee tätä virhettä, ja sitten ihmetellä ja kamppailu minuutteja, jos ei tunnin, miksi minun koodi ei suorittamaan mitä aion? Se johtuu siitä, et kerro se juuri mitä tarkoitti. Joten se oli melkein täydellinen, ja se oli mahtavaa että me törmäsi nämä kaksi pientä asiat sillä nyt jos me korjata ne, ja minä tekevät Condition Zero piste slash kunto nolla, Haluaisin kokonaisluku kiitos. Katsotaan. Ei. Se tulee pakottaa minua tekemään sitä. Niin 42. Otin positiivinen numero. Joten nyt miten voin todistaa tämä ohjelma oikea? Jos olet matemaatikko, et voi todella todistaa tämän ja erehdyksen, oikea? Et voi vain todisteeksi Esimerkiksi, mutta ainakin ohjelmoijana emme ole yrittävät todistaa nyt että tämä on oikeastaan oikea, mutta minun pitäisi luultavasti testata joitakin edustavia tapauksia. Olen testannut 42. Voisin kokeilla 43. Voisin kokeilla 44. Testi 45. Oikea? Mutta voisin tehdä tätä todella pitkään. Mikä olisi hieman mielenkiintoisia tapauksia kokeilla? Yleisö: [kuultavissa] nolla. DAVID J. MALAN: Niin nolla. Varmasti. Ja hyvä, meillä se tällä kertaa, kiitos Lauren n uuden koodin. Mikä on toinen hyvä asia kokeilla? Yleisö: Negatiivinen yksi. DAVID J. MALAN: negatiivinen, ja ehkä jotain vähän isompi, joten ehkä negatiivinen 42, mutta yleensä, kun testaat ohjelmia eteenpäin, olet menossa halua ajatella itsellesi, kuten mitä ovat perustavanlaatuisia eri tapauksissa. Ja uskallan sanoa negatiivinen asia, myönteinen asia, ja nolla tapaus melko paljon kierroksilla nämä pois. Katsotaanpa variantti tämän kuitenkin. Edellytykset yksi. Tämä on oikea ratkaisu täällä, niin että näet kaksi ja verkossa, jos kävelee walkthroughs, on yleensä increment nämä portaittain kunnes saada juuri oikea lähestymistapa. Mitä jos haluaisimme kysyä kaksi kysymystä kerralla? Saanen avata tämän sijaan. Non-kytkin, syistä näemme toisen kerran. Mitä uutta syntaktisesti täällä? Olen tällä hetkellä pelaa jos tietokone on kertoa minua, anna minulle kokonaisluku välillä yksi ja 10, ja sitten olen päätellen käyttäjän syöttää. Englanti, joka perustuu koodi näet täällä sininen, mitä tämä ohjelma tekee? Yleisö: [äänetön] poimittuja iso tai pieni määrä. DAVID J. MALAN: Joo. Se on vain ratkaistessaan, onko Otin iso, tai mediaa tai pieni määrä perustuu hyvin mielivaltainen määritelmä pienten, keskisuurten, ja suuri täällä, mutta ilmoitus syntaksia uutta on tämä. Ei ole vähintään int tai yhtä suuri kuin merkki, tai suurempi tai yhtä suuri allekirjoittaa, jossa yksi on yli muiden, että te voi ilmaista, kuten Microsoft Word. Joten ohjelmointikieli sinua tyypillisesti vain tehdä kaksi merkkiä, yksi toisensa jälkeen. Ja mitä tämä luultavasti edustavat, Ampersand Ampersand. Yleisö: [äänetön] DAVID J. MALAN: Joo. Se vain tarkoittaa ja koska se Osoittautuu, että laatijat C käytetään yksi et-merkki, joka luulisi olisi täydellinen käsite on ja, on jo käytetty loppuun, joten et-merkki et-merkki todella kaappaa tapauksessa me todella haluavat. Joten nyt sattumalta kaksi asiaa. Anna minun mennä eteenpäin ja avata yksi. Jotain, joka on hieman huolestuttava. Epätäsmällisyys piste C. Saanen esitellä kaksi asiaa täällä. Yksi, ilmoittaa, että voimme tehdä matematiikka, kuten juuri kuten ennen, kun teimme plus kaksi numeroa, x ja y. Mikä on tämä ohjelma ilmeisesti tekee? En ole kommentoinut sitä vielä, ja olen esitteli prosenttia f, mutta olen nopeasti totesin prosenttia f tarkoittaa liukulukujen arvo, joka on reaaliluku. Jotain desimaalin kohta, joka ei ole kokonaisluku. Mitä luulet tämän ohjelman on yrittää näyttää minulle ruudulla? Joo? Yleisö: tulos yksi yli 10. DAVID J. MALAN: Joo. Mikä tulos yhden jaettuna 10. Oikea, koska kaikki sinulla on luultavasti kasvanut tietäen, että yksi yli 10 on mikä? Joo, se on vain kymmenesosa tai 0.1. Oikea? Joten mitä tämä oikeastaan ​​on. Joten anna minun mennä eteenpäin ja tallentaa. Päästä minut tänne. Tee epätäsmällisyys piste slash epätarkkuus, ja huomautus, liian, Linux-ympäristössä, et täytyy kirjoittaa ulos epätarkkuuden ja ottaa koko pitkän päivän. Se yleensä, jos osut Tab, se päättyy teidän ajatus sinulle, joka perustuu sanoja, jotka ovat käytettävissä hakemistossa. OK. Joten olit oikeassa. Yksi jaettuna 10 on, itse asiassa, 0.1. Mutta olen hieman utelias. Ja se osoittautuu printf tukee joitakin toimintoja jolloin voit määrittää enemmän kuin oletusmäärä desimaaleja. Joten jos haluan nähdä 10 desimaalin pisteitä voin tehdä prosenttia, paikkamerkille symboli, piste 10, anna minulle 10 desimaalin pistettä, ja sitten vielä liukuluku arvoa, ja, kuten syrjään, mikä on tämä kenoviiva n ilmeisesti pidämme käyttäen? On käynyt ilmi, se on symboli uusi rivi. Se on hyvin selkeä tapa sanoa tietokoneeseen, siirrä kohdistin seuraavaan linja jälkeen olet valmis. Ja näemme, mitä tapahtuu kun emme tee sitä. Sallikaa minun kääntää tehdä epätarkkuutta. Nyt piste slash epätarkkuutta. OK. Edelleen oikea. Yksi jaettuna 10. Nyt Saan vähän utelias, vaikka. Mitä jos odotan 20 desimaalin huomauttaa, kääntää, suorita, ja varataan nopeus, voit myös käyttää sinun ylös ja alas nuolia selata historiaa, joten sinun ei tarvitse pitää retyping näitä komentoja, kirjoita. Huh. En oppinut, että alakoulussa. Hyvä on, joten haluaisin katso kuten 29 paikkoja ulos. Ehkä se on vain sattumaa. Ehkä minun tietokone toimii outoa. Se ei ole asia, eikö? Se tekee jotain deterministisesti. Joten epätarkkuutta. OK, että on sekaisin. Mitä on tekeillä? Ilmeisesti sinun opettaja on maannut teille kaiken tämän ajan syistä että näemme ennen pitkää. Mutta katsotaanpa päättyy yhden muun ohjelman. Tämä on hieman ohjelmia joku kirjoitti joitakin vuosia sitten, ja se on itse asiassa osa kilpailuun. Kukaan ei oikeastaan ​​kirjoittaa koodi näin, ja jos et, tämä on tyylillisesti ongelma. Mutta ihmiset eivät tätä kerskumisoikeudesta. Kirjoittaa eniten hämmentävä näköinen ohjelma, kuitenkin tekee jotain mielenkiintoista. Ja huomata ajattelin olimme virkavapautta tänään, ennen Colton pelaa meidät tänne, on ohjelman suorittamiseen, joka, vaikka vain käyttämällä C tässä tekstissä perustuvan ympäristö, antaa meille tämän. Hemmetti. [Naurua] Valmiustila. [Äänetön] c viiva L m. Olet menossa nähdä maaginen loitsu että näemme ennen pitkää. [Äänetön] Selvä. Ja nyt voit jopa tehdä asioita, kuten tämä. Se siitä. Sillä CS50 me, näkevät sinut perjantaina. [Musiikkia] [APPLAUSE]