[Musiikkia] JASON HIRSCHHORN: OK, kaikille. Tervetuloa jakso. Tämä on CS50, meidän hyvin ensimmäinen super-osiosta. Kuten te kaikki tiedätte, ensi viikolla säännöllinen kohdat alkaa, mutta tällä viikolla olemme kaikki yhdessä. On itse. Nimeni on Jason. Olen opettaja Computer Science. Meillä on Andi, joka on johtaja TA CS50. Ja Scaz, professori Brian Scassellati, hän professori Computer Science. Olemme CS50 päät Yalen. Voit aina sähköpostitse meille heads@cs50.yale.edu. Meillä on luennoilla. Tulemme toimistossa tuntia. Jos on koskaan mitään voimme tehdä sinulle, mitä tarvitset, vapaasti tavoittaa meidät. Joten mitä me teemme tänään? Tai sitä ennen, mitä tulossa tällä viikolla? Joten virka ovat maanantai, tiistai, Keskiviikko ja torstai 8:00-11:00. Ei aikataulu verkkosivuilla. Kohdat, kuten mainitsin, alkavat ensi viikolla. Ja huomaat tällä viikolla mitä Ajoita osa on, mikä päivä tänään on, ja kuka TA on. Harjoitus 1 johtuu torstaina kello keskipäivällä, perjantaina keskipäivällä kanssa myöhään päivä. Kyllä, sinulla on yhdeksän myöhään päivää. Ja on yhdeksän ongelma sarjaa. Ja käyttää vain yhtä myöhään päivä per Harjoitus. Kyllä, itse asiassa, kaikki ongelma sarjat johtuvat perjantaina keskipäivällä. Siinä kaikki. Kaikki että tiedot ovat oppimäärän. Joka perjantai, meillä on lounaita. Haluamme tehdä tästä iso Tietenkin tuntuu vähän pienempi. Joten olet tervetullut RSVP. Ilmainen lounas muiden luokkatoverit ja henkilökunta. cs50.yale.edu/rsvp. Kaikki nämä asiat, jotka Minulla on ruudulla, ja enemmän, voit löytää cs50.yale.edu tai cs50.harvard.edu, jos menet Harvardiin ja katsot tämän online. Myös näistä sivustoista, siellä ton resursseja sinulle. Jokainen luento on paitsi video Luennon, mutta toteaa myös. Joku katsella luento ja tehdä muistiinpanoja sinulle. Joten voit vain maksaa huomiota luennoilla, tai voit käyttää niiden liitetiedot / meidän toteaa täydentää omia muistiinpanoja. On dioja verkossa. Lähde code-- kaiken David menee luento, tai Scaz menee luento, että lähdekoodi on saatavilla verkossa samoin, kuin kuin minä, mainittu videoita. Kohdat, samoin kaikki on kuvattu. Kaikki nämä dioja on saatavilla. Kaikki tämä koodi tulee olla käytettävissä. On shortsit sivusto, jossa CS50 toimihenkilöiden viettää viisi 10 minuuttia läpi aiheita sinulle. Jotkut näistä olet jo kohdataan ongelma sarjaa. Virka, kuten mainitsin, maanantaisin kautta torstaisin, 8:00-11:00. CS50 Tutkimus on fantastinen voimavara. On käytännössä ongelmia, näyte dioja, tunnettua virhettä että opiskelijat haluavat törmätä, olennaisesti jokaisesta aiheesta me kattaa tällä kurssilla. Ja lopuksi, tämä dia ainakin Reference50 joka antaa sinulle tiedot kaikista C funktioiden osasit mahdollisesti toivoa käyttää ja monia, monia muita. Jälleen että piste piste piste näytön alareunassa on osoittaa, että siellä on jopa enemmän resursseja näiden kahden sivustot: cs50.yale.edu, cs50.harvard.edu. Joten, mitä me teemme tänään? No, ensimmäinen aion antaa katsot resursseja. Jo teki, että yksi. Katso meitä. Nyt aiomme mennä yli tietotyypit ja toimijat C. Sitten Andi tulevat tänne ja mennä yli kirjastot C printf (), Toiminto, jolla olet jo tuttuja tai tulee nopeasti erittäin tuttu. Ja voit myös mennä yli conditionals ja silmukoita. Ja sitten lopulta, Scaz menee yli CS50 tunnus. Jos et ole kyyhky jo Harjoitus 1, sekä kuinka käyttää terminaali ja hyödyllisiä komentoja ja sitten antaa teille joitakin demoja ja käytäntö koodaus CS50 ID. Before I hypätä tämän sisältöä tällä puolella, ei kukaan on kysyttävää tähän mennessä? Suuri. OK. Vaihteiden. [Vaihteiden] Se olin minä siirtymässä vaihdetta käsikirja auton. Joten tietotyyppejä C, et voi vain olla muuttujan x ja on se rivillä 10, kokonaisluku, ehkä numero 1, linjalla 20, desimaaliluku 10.5, ja sitten pari riviä myöhemmin merkkijono, rakastan CS50. C, muuttujia voi olla vain yksi asia, ja yksi asia vain. Ja niin sinun täytyy antaa heille tyyppejä. Ja tällä alueella, me on lista tyyppejä. On olemassa merkkiä, joka seistä merkkiä. Joten se on yksi kirjain, B, C, D. Tämä voi myös olla tila, tai joka voi myös olla uusi rivi merkki. On kokonaislukuja, jotka ovat vain numerot, koko numbers-- tai kokonaislukuja rather-- mutta ei desimaaleja. Sillä desimaalia, meillä on liukuluvuilla. Liukulukuja ovat numerot desimaaleja. Sitten on pitkät, jotka ovat olennaisesti enää kokonaislukuja. Huomaat, että pitkä on 8 taas int on 4. Saan sen, että toinen. Tämä johtuu kaipaa voi tallentaa jopa enemmän kokonaislukuja kuin int voi tallentaa. Double on pitkä float. Ja lopuksi, meillä on merkkijono, joka on eräänlainen että olet todennäköisesti käyttänyt ennen. Jos lisäät hashtag # IncludeCS50.h teidän lähdetiedoston, voit käyttää merkkijono tyyppi. Se ei ole oikeastaan ​​rakennettu C. On pari muita samoin. Mutta nämä ovat tärkeimmät niitä, joilla joka käytät ja kohtaavat. C, taas mainitsin, joka variable-- se voi olla vain yksi tyyppi ja yksi tyyppi vain. Että koska C on staattisesti kirjoitettu kieli, kun taas dynaamisesti kirjoitettu kielellä jossa jos luot muuttujan voit muuttaa mitä tallennetaan se menet oman ohjelman. Täällä oikealla puolella, minulla on erikokoisia tämäntyyppisiä tietoja tavuina. Joten merkki on 1 tavu. Se on 8 bittiä. Ja se tarkoittaa, koska 8 bittiä siellä kahdeksan 0s ja 1s. Näimme ne demot ensimmäisessä viikolla, että binary sipulit. 8 bittiä tai 1 tavu, voimme edustavat numerot 0-255. Oikea. Jos kaikki 8 bittiä ovat 0, joka on 0. Jos ensimmäinen bitti on 1, joka on määrä yksi, ja niin edelleen, kaikki tavalla jopa 255. Ja siksi merkeille voit on olennaisesti enintään 255 heistä, mutta se on paljon kattaa kaikki merkkejä meidän on käytettävä. Sillä kokonaislukuja, voit olla 0 ja niin sinulla on 2 32 miinus 1. Ne ovat kuinka monia vaihtoehtoja teillä on kokonaislukuja. Pitkään, sinulla on 0 2 ja 64 miinus 1. Joten sinulla on monia, monia, enemmän vaihtoehtoja kaipaa. Jouset, se kysymysmerkki koska se jännitysnäytelmä myöhemmin. Joo. Voisin kertoa kaikki ovat reunalla kotipaikka, kuten mikä se kysymysmerkki? Se on jännitysnäytelmä. Me lopulta kattaa koko jouset ja puhua enemmän jousille. Koska merkkijono on todella yksi apupyörät laitamme tässä kurssin alussa ja sitten ottaa pois myöhemmin on, koska jousille C ovat todella Nata merkin taulukot. Mutta jälleen kerran, se Cliffhanger myöhemmin. Ennen jatkan kysyttävää, kommentteja, huoli tämän dian? OK. Minun täytyy olla loistava explainer. Myös silloin, kun olet ohjelmointi, aiot käyttää nämä toimijat. Todella yksinkertainen merkkejä, jotka voivat tehdä yksinkertaisia toiminnot, joiden kanssa olet luultavasti jo hyvin tuttu. Esimerkiksi oikealla laidalta, näemme lisää. Voit lisätä, et vain plusmerkki. Ja niin saatat olla kaksi muuttujaa x ja y. Voit tehdä x + y koodissa. Ehkä haluat to-- sanot on numero 7 ja 3, haluat tallentaa, että muuttujaan nimeltä summa. Voit tehdä int tyyppi, tila summa, muuttujan nimi, = 7 + 3; Mitä että myymälän summa? Kukaan? Jos minulla oli summa = 7 + 3. Mikä olisi tallennettu summa? Voit vain huutaa se ulos. Yleisö: 10. JASON HIRSCHHORN: 10! Juuri oikea. Entä sum = 7-3, Olen vain käyttää että viiva merkki. Mitä aiotaan säilyttää? Yleisö: 4. JASON HIRSCHHORN: 4. Summa on luultavasti väärä nimi että muuttuja, mutta 4 tallennettaisiin. Kertoa C, käytä pieni Star merkki, et käytä X. Voit jakaa, käyttää Eteenpäin Slash ei jako symboli. Ja modulo, käyttää Prosenttia symboli. Joten sanokaamme Haluan nähdä int z = 7% 3, mitä tallennetaan z-? Niin, se on pohjimmiltaan kysyy mitä modulo tekee? Ei kukaan tiedä, mitä modulo tekee? Joo. Y4. SPEAKER 1: Se on loput. Jason HIRSCHHORN: Se on jakojäännös, kun jaat. Joten 7 jaettuna 3 on 2 loput 1. Joten 1 tallennettaisiin. Teit vähennys-, mutta se toimii. Sitähän modulo operaattori tekee. Se vie useita jakaa sitä toinen numero ja palaa teitä muistutus. Joten jälleen, 7% 3 antaa sinulle 1, koska 7 jaettuna 3 on 2 loppuosa 1, ja palauttaa loput. Entä mennään takaisin ylös yksi askel, että jako merkki. Jos tein 7 / jaettuna 3 tekee kukaan tiedä, mitä se palaisi? SPEAKER 2: 2. JASON HIRSCHHORN: Miksi 2 eikä 2,333? SPEAKER 2: Minusta se leikkaa pois, kun koko numero. JASON HIRSCHHORN: Niin Juuri oikea. C, jos et jako kahdella luvulla 7 jaettuna 3, se saa vastauksen, joka Tällöin 2,3333 ikuisesti ja se toteaa, että desimaalipilkun ja kyljykset kaiken pois jälkeen desimaalin ja se vain palauttaa sinulle 2. Joten jos en 8 jaettuna 3. Että oikeastaan ​​tiedämme että palata 2,666, mutta se kyljykset kaikki pois desimaalin, katkaisee kaiken, ja palaa aivan sinulle 2. Joten 6 jaettuna 3, 7 jaettu 3, 8 jaettuna 3, ovat kaikki menossa palata sinulle 2. Tietääkö kukaan, tai on arvaus, miten voisin itse saada vastauksesta, jos haluan, että desimaalin? Joo. Mene eteenpäin. SPEAKER 3: Käytä float? JASON HIRSCHHORN: Mitä tarkoitat? SPEAKER 3: Koska sanoit float on numeroiden [äänetön] JASON HIRSCHHORN: Oikea. Niin, se on juuri oikea. 7 on kokonaisluku. Mutta jos halusin kääntyä että osaksi liukuluku, Olisin tallentaa että kuten 7.0 koska tietokone on todella stupid-- näimme, että PB ja J example-- se vain tehdä juuri mitä kerrot sen. Joten jos kirjoitat 7, se ajattelevat, että on kokonaisluku. Jos kirjoitat 7,0, vaikka me tietää nämä asiat ovat samanarvoisia, se kohtelee että kuten liukuluku. Joten jos et 7,0 jaettu 3, tai jaettuna 3.0, se sanoisi, OK, nyt olemme tekemisissä kelluu. Palaan sinulle 2.333333 ikuisesti. Mutta ei oikeastaan ​​ikuisesti, koska kuten näimme myös luento, nämä liukulukuja eivät ole aivan tarkkoja. Joten jos et halua, että desimaalin, tai osa sitä desimaalin, sinun täytyy use-- yksi heistä on oltava liukuluku ja tietokone on ymmärrettävä että tämä on liukuluku olet tekemisissä, ei ole kokonaisluku. Kysyttävää että taulukossa oikealla puolella, tähän mennessä? Tai vasemmalla puolella, teidän vasemmalle, vasemmalla puolella. Joo. SPEAKER 4: Oikea. Sillä aivan kuten säännöllinen kokonaislukuja, olisit write-- olisit kirjoittaa kellua? JASON HIRSCHHORN: Joo niin. No, jos haluat luoda muuttuja, joka on float, sinun täytyy sanoa kellua z vastaa jotain. SPEAKER 4: OK. JASON HIRSCHHORN: Mutta jos halusin do 7 jaettuna 3 ja saada että desimaalin, Tekisin kellua z = 7,0 / 3,0; ja joka antaisi minulle liukulukujen numero. SPEAKER 4: OK. JASON HIRSCHHORN: Jos tekisin jotain int z = 7/3, että antaisi minulle kokonaisluku, koska ne ovat kaikki kokonaislukuja. Onko siinä järkeä? SPEAKER 4: Kyllä. JASON HIRSCHHORN: OK. Suuri. Muita kysymyksiä siitä taulukko? Ihan oikeesti? Olen niin innoissani. OK. Joten joitakin muita asioita voit käyttää, Usein olosuhteissa tai silmukoita, ovat nämä tyypit operators-- tämäntyyppisiä Boolen operaattoreilla. Ja kuten olemme oppineet, == on mitä käyttää tarkistaa, jos kaksi asiaa ovat yhtä. Joten tässä olen tarkkailun jos x == y, katsotaanpa jälleen olettaa, että x on 7 ja y on 3. Joten jos kirjoitin 7 == 3, mitä olisiko se palaa minua? Onko se totta vai tarua? Yleisö: False. JASON HIRSCHHORN: OK. Tunnen kaikki voivat saada tämä. Joten kaikki, mitä se palata? Yleisö: False. JASON HIRSCHHORN: False. Suuri. 7 ei ole sama 3. Joten 7 == 3 palauttaisi vääriä. Sinulla on ei yhtäläisyysmerkki, joten jos en checked 7! = 3, mitä se palata? Yleisö: Totta. JASON HIRSCHHORN: Totta. Erinomainen. Joku oli hyvin painokkaasti takaisin ja arvostavat sitä. Sitten on vähemmän kuin operaattori, vähemmän kuin tai yhtä suuri kuin operaattorin suurempi kuin operaattori, suurempi tai yhtä suuri kuin operaattorin. Joten yksi järki tarkistaa. Jos minulla olisi 7 on suurempi kuin tai yhtä suuri kuin 3. Mikä se palata? Yleisö: Totta. JASON HIRSCHHORN: Totta. Kyllä. Että takahuoneeseen, takapuoli huone, fantastinen. Voit yhdistää nämä ilmaisuja jos haluat, samoin, loogista ja joka && Tai looginen tai jotka on || ||. Ja nyt voit testata kaksi asioita together-- Onko se hauskaa? Miksi se hauskaa? Joten jos halusin, mitä voin sanoa on 7 suurempi kuin 3 ja 2 on pienempi kuin 4? No, jos 7 on suurempi kuin 3, se on totta. 2 on pienempi kuin 4, se on totta. Joten tämä koko asia olisi return true. Jos Testasin 7 on suurempi kuin 3 and-- Olen vain poiminta satunnaisia ​​numeroita here-- 4 on alle 2, hyvin, se on väärä. Niin tosi ja epätosi vääriä. Ja voit mennä ja voit yhdistellä kuin monet edellytyksillä kuin haluat. Onko kellään kysyttävää, kommentit, koskee toistaiseksi? Ja näen jotkut teistä ottaa kuvia minusta näytön, jota arvostan. Toivottavasti se ei ole snapchat. Toivottavasti se on teidän muistiinpanoja. Mutta kaikki nämä ovat menossa olla saatavilla verkossa. Joten sinun ei tarvitse ottaa kuvia tästä. Kuten mainitsin, kaikki on saatavilla verkossa sinulle. OK. Olen saamassa Lavan ulkopuolella, niin ei kukaan halua sanoa mitään ennen tapahtuu? Kysymyksiä? [Väliin ÄÄNTÄ] JASON HIRSCHHORN: Voi, lopeta. Olette liian kiltti. OK. Aion tag ulos. Mennään. ANDI Peng: Aiomme tehdä hankala mic muutos nyt. JASON HIRSCHHORN: olen aikoo ottaa tämän pois. ANDI Peng: Arvosta tukea, kaverit. Kuuletko minua? Onko se hyvä? Täydellinen. Kaunis. Haluan vain työntää että. OK. Joten, olen aikeissa tehdä kuin jättiläinen tiedot dump teitä kaverit juuri nyt. Ja ei hätää mitään, jos olet ei seuraavia jokainen pieni rivi mitä Olen aikeissa näyttää. Jason sanoi, kaikki on täysin verkossa. Vain aiomme yrittää esitellä jokainen käsitteitä joissakin näistä dioja. Joten seurata pitkin. Ei hätää, jos et ymmärrä kaikki; kuitenkin, jos missään vaiheessa tuntuu kadonneen, nosta käsi, lopetamme, ei hätää. Viileä. Joten luulen jotain että David on jo eräänlainen mainittu luento ja Jason on eräänlainen viitanneet tänään on mitä kirjasto on. Joten ohjelmointi, meillä on nämä asiat nimeltään kirjastoja. Jos lähinnä, kaikki ne on vain joukko toimintoja, joka on lähinnä vain koodi, joka on jo kirjoittanut joku muu, että voimme kaikki käyttää meidän ohjelmia. Joten miten normaali kirjasto työtä, eikö? Voit kirjoittaa kirjaston ovesta. Sinulla on kaikki nämä Kirjoja voi vetää ulos ja voit käyttää tietoja kuluessa ne kirjat. Sama juttu ohjelmoinnissa. Sinulla on kirjasto, joka on jo on kirjoittanut muita ihmisiä. Ja tapa, että voit, ohjelmoijana tai opiskelija, pääsevät että kirjasto on kautta hashtag # include. Esimerkiksi C me on kolme C-- eniten yleisesti käytetty kolme C standardi libraries-- input / output kirjasto, merkkijono kirjasto, ja matematiikka kirjasto. Joten sisällä ensimmäinen pari ongelma asettaa, ne ovat kolme että olet ensisijaisesti käyttää. Niin David jo selitetty luento, vakio-I / O-kirjasto, tai Standard Input / Output kirjasto juuri näin. Sen avulla voit, oman koodin, syöttää mitään käyttäjän ja ulostulo, joka näytön, pääasiallisesti tulostaa sen näyttöön. Ja niin milloin tahansa käyttää toimintoja, esimerkiksi toiminto printf (), joka aiomme käydä läpi seuraavan dian, varmista, että myös vakio-I / O- kirjasto tai muuten et aio pystyä käyttämään printf () funktio. Koska olet, koska ohjelmoija koskaan itse kirjoitti, että toiminta, olet vain käyttämällä joku toisen koodiin oman koodin. Onko järkeä kaikille? Viileä. Ja sitten me lähinnä saada kiinni string.h kirjasto ja math.h kirjasto, .h vain merkitsee kirjasto, muut kirjastot että sinun lopulta käyttää omassa koodia. Kuitenkin tarkoituksiin Tämän kirjasto, myös have-- tämän class-- meillä on myös mitä kutsutaan CS50 kirjasto, cs50.h, jossa muun vahvistettavaksi ovat luoneet monia tärkeitä ja hyödyllisiä toimintoja. Jotta voit ohjelmoijana voi reppuselässä pois mitä olemme jo kirjoitettu niin, että Toiminnon käytössäsi omaan käyttöön. Tulen kattaa pari toiminnot yleisesti käytetty, mutta tiedämme, että nämä ovat kaikki googleable verkossa. Voit vapaasti, vedä ylös CS50 kirjasto ja niin sinulla on kaikki toiminnot siellä. Joo. SPEAKER 5: Eli jos et olisi ohjelmiston avulla annetaan meille luokka, tekee sen tarkoittaa olisimme tarvitse ladata ja löytää tämä otsikkotiedoston itse ja kertoa tietokone missä se on? ANDI Peng: Loistava kysymys. Aivan. Joten se on kuin jos et ole fyysisesti läsnä kirjasto, ei ole tapa, jolla voit itse mennä ja käyttää sitä. Niin sama juttu ohjelmointi C, sinua täytyy varmistaa, että käytät meidän Laitteen koska kirjaston jo sisällytetty siihen. Ja sitten kun hashtag # include, kirjaston siellä. Joo. Hyvä kysymys. Jokainen hyvä? Viileä. Selvä. Joten aiomme lyödä, olennaisesti, mikä on ensimmäinen toiminto me ohjelmoijat ovat aio käyttää sisällä meidän koodi. Tätä kutsutaan printf () funktio. Joten, printf () funktio, koska olen jo sanoi viimeisen dian, sisältyy vakio-I / O, Standard Input / Output, kirjasto. Joten varmista, että mitä olet using-- Oi, anna minun napata laser pointer-- kun käytät printf () funktio, sinun täytyy sisällyttää vakio I / O kirjasto tai muuten, kun käännät, aiot saada virhe koska tietokone on kuin, oi en tiedä missä printf () on, mitä et kerro minulle, missä printf () on. No printf () sisältyy vakio I / O, joten kun käytät printf (), varmista, että on, että viivalle koodia. Niinpä esimerkiksi, printf () tässä funktio. Se vain tulostaa jotain Suluissa käyttäjälle. Onko joku haluavat ottaa puukottaa mitä tämä rivi koodia oikeus täällä on menossa tulostaa? Näin ollen vastaus ruudulla. Kukaan? VERDI: pohja. ANDI Peng: Verdi, mikset mene eteenpäin ja sanoa koko ilmoitus? VERDI: Hei, nimeni on Andi, ja olen 20-vuotias. ANDI Peng: Ah, ihana. Joten tätä linjaa aiomme tulostaa, Hei, nimeni on Andi, ja olen 20-vuotias, joka on itse asiassa totena. Syntax. Joten pari syntaktisen kysymyksiä, te haluat varmistaa tiedät. Lainausmerkkejä. Lainausmerkit kertovat tietokone, että kaikki sisällä aiotaan tulostaa. Kaikki sisällä CAN vain olla kuinka kirjoitat sen, lukuun ottamatta yleisesti lopussa, aiomme haluavat sisällyttää hash-- oh sorry-- viiva n. Joten viiva n. Onko kukaan halua ottaa arvata mitä se tekee meidän koodi? Joo. SPEAKER 6: Laittaa se uudelle riville. ANDI Peng: Aivan. Joten kaikki tämä tekee on sallia mitä tapahtuu Tämän jälkeen, kun tämä selvitys, tulostettava uuteen linja. Niin että kun olet kirjoittanut koodi sinulla ei satunnaisesti ole asioita tacked loppuun että et halua. Että kaikki saa siististi painettu yksi rivi ja sitten aloitamme seuraava rivi. Onko kukaan muistaa mitä se puolipiste tekee, kun olemme koodaus? Joo. SPEAKER 7: lausunto. ANDI Peng: Anteeksi? SPEAKER 7: Onko se päättyy ilmoitus? ANDI Peng: Joo. Joten C, tai ohjelmointi kieli, puolipiste tarkoittaa lopussa ohjelmakauden linjan. Niinpä esimerkiksi Englanti käytämme ajan sanoa, oh tämä on loppuun lauseen. Ohjelmointi, sama asia, meillä puolipiste osoittamaan rivin loppuun. Usein kun olet ohjelmoinnin aloittamista, huomaat sinua unohda lisätä puolipiste ja sitten yrität ajaa koodi ja se ei toimi. Ja olet kuin, ah, en tiedä miksi, se pitäisi toimia. Mahdollisuudet ovat luultavasti unohtanut puolipiste tai teline tai jotain jonnekin. Niin, se on tärkeää muistaa. Viileä. Hyvä, kättä, miten monet ihmiset täällä ovat koskaan otettu AP Computer Science tai ohjelmoitu Java ennen, koskaan? OK. Ihana. Se ei ole sovellettavissa sitten, mutta Java, sinua on jotain kutsutaan System.out.println jota ei ole olemassa C. Joten C, kun haluavat lisätä muuttujiin osaksi mitä haluat tulostaa, siellä erityinen syntaksi aiomme käyttää. Sitä kutsutaan placeholding-- olennaisesti lisäämme paikkamerkkejä paikallaan kokonaisluvun tai muuttujan että haluamme tulostaa. Niin te voi nähdä olemme mukana uusi kirjasto header-tiedosto täällä. CS50 kirjasto. Ja sisällä että CS50 kirjasto on yhteinen toiminto Käytämme meidän kurssi nimeltään GetInt (). Ei kukaan halua ottaa puukottaa mitä GetInt () voidaan mahdollisesti tehdä. Yleisö: [äänetön] ANDI Peng: Anteeksi. Ei voinut kuulla sinua. Maddie, kukaan. Maddie: Voi, se kysyy sinua kokonaisluku. ANDI Peng: Aivan. Joten tämä toiminto, toinen toiminto, joka on jo on kirjoittanut joku muu että voimme kutsua nyt. Kaikki se on on pyytää sinua, käyttäjä, syöttää mitä haluat koska koodi on käynnissä ja se tallentaa whatever-- Tässä tapauksessa olemme GetInt () - Ing, niin se tarkoittaa, että olemme saamiseksi kokonaisluku. Ja aiomme säilyttää että toinen kokonaisluku että olemme juuri tehneet nimeltään ikä. Että järkevää kaikille? Viileä. Joten nyt olemme tallennettu tämä kokonaisluku, että olemme kysytään käyttäjältä, Tähän muuttujaan, olemme luotu tyyppiä int kutsutaan ikä, voimme mennä eteenpäin ja paikka että meidän printf () toiminto. Joten syntaksi yleensä printf () on että aina teidän varsinaista fyysistä linja haluat lisätä että kokonaisluku, teet että symboli oikeassa, prosenttia symboli, jossa tyyppinen muuttuja, jonka haluat. Joten tässä tapauksessa ikä on kokonaisluku. Joten aiot sisällyttää % I koska se on kokonaisluku. Ja sitten sen jälkeen, kun selvitys, olet menossa tehdä pilkku ja muuttujan nimi. Joten tässä, me aiomme tulostaa ulos, Hei, nimeni on Andi, ja olen tyhjä vuotias. Hashta-- tai sorry--, ikä kanssa mitä I-liitäntä. Joten jos olisin syöttää 20 minun GetInt () täällä, se tulostaa täsmälleen sama asia. Mutta, jos halusin syöttää jotain muu, kuten ehkä 40 tai 45, niin voit nähdä, että heijastuu vastaavasti koodissa. Joten tämä on esimerkki jotain jossa se tulostaa ja näyttää te ikään kuin se on sama asia, mutta alla huppu tietokone siellä oikeastaan hyvin erilaisia ​​asioita tapahtuu. Viileä. Selvä. Joten mitä jos haluamme useita muuttujia? Melko helppoa. Sama asia. Meillä on myös uusi toiminto jota tässä kutsutaan GetString (), myös sisällyttää CS50 kirjasto, että kaikki se on pyytää käyttäjää merkkijono, joka on vain joukko merkkejä, niin kuin lause tai kuin nimi. Joten tässä tapauksessa, meillä olisi kaksi paikanvaraajia% s merkkijono ja% i kokonaisluku. Ja aiomme seurata että kaksi muuttujaa Haluamme mukana, siinä järjestyksessä että ne näkyvät lauseessa. Niinpä esimerkiksi, nimeni on tyhjä, haluan nimi siellä, joten aion olla ensin nimi. Ja sitten myöhemmin, haluan ikä, haluavat olla ikään toinen. Joten jos halusin syöttää, Hei, minun nimeni Andi, ja olen 20-vuotias. Jos minä syötetty Andi ja 20, täsmälleen sama asia tulostaisi; kuitenkin, nyt meillä kaksi tallennettu muuttujien nimi sekä int. Joo. SPEAKER 8: Olisiko pystyvät toimimaan, jos virta nimi ja ikä lopussa, että? ANDI Peng: Joo. Se on todella hyvä kysymys. Niin pitkän tarinan lyhyesti, ei. Koska nimi ja age-- mitä tyyppinen muuttuja on nimi? SPEAKER 8: String. ANDI Peng: Ja mitä tyyppinen muuttuja on ikä? SPEAKER 8: kokonaisluku. ANDI Peng: Joten tässä meillä on paikkamerkki jousikvartetille ja kokonaisluku, eikö? Joten jos olit vaihtaa näitä, tietokone ei aio tietää. Se tulee tarkistaa merkkijono, ja jos yrität antaa sille int, se tulee olemaan kuin odota Olen hämmentynyt, sinä kertoi minulle minun pitäisi olla allotting muisti int. Ja täällä, kun se odottaa kokonaisluku ja annat sille nimi ja merkkijonon sijaan, se myös tulee olla hyvin hämmentävää, se ei toimi juuri niin kuin tarvitset sitä. Joten tässä, nimeäminen ja syntaksi on erittäin tärkeää käynnissä koodia. Jokainen hyvä? Joo. Maddie. Maddie: Täällä tiedän teimme klo esimerkkejä luokkaan, jossa he kysyvät mikä on teidän ikä, mikä on nimesi. Täällä, se olisi se doesn't-- jos me suorittaa tämän koodin, se ei pyydä, että? Mutta olisi vain syöttää kaksi numeroa ja sitten se ajaa kuin että? ANDI Peng: Joo, täsmälleen. Joten jos halusi se näyttö, kirjoita ikä, voit vain lisätä printf () funktio että sanoo, Anna ikä, sen yläpuolella. Se on hyvä kysymys. Joo. SPEAKER 9: Niin, olisi jo sisältyy GetInt () [äänetön]. ANDI Peng: Ei, se ei itse asiassa ole. Joten kaikki tämä tekee on vain kehottaa tyhjä näyttö, käyttäjän syöttää jotain. Jos haluat sen, jos haluat tulostaa jotain, joka kertoo käyttäjän kuten, antakaa minulle ikäsi, niin olet olisi printf (), että itse. Koska jokainen käyttää tätä toiminto eri asioita, voisit tallentamiseen ikä, voisit tallentamiseen osoite, voit olla tallentamiseen puhelinnumeroita. Ja niin se on todella jopa teidän kaverit yksilölliset käytöt mitä haluat sanoa. Joo. SPEAKER 10: Niin, vain selventää, missä sinä syöttää nimi ja ikä niin että se näkyy sijasta% s? ANDI Peng: Kuten käyttäjä? SPEAKER 10: Kyllä, kuten miten voin tehdä it-- Mihin laitan Andi, ja jos laitan 20? ANDI Peng: Joo. Joten jos olit todella ajaa tätä koodia, En ole oikeastaan ​​käynnissä koodi, tämä on juuri täällä juuri nyt. Jos minun pitäisi suorittaa koodia, olisin kääntää koodin, tehdä tiedosto, suorittaa koodia, ja silloin ei olisi vain olla kaksi tilat minulle syöttää sitä. Joo. Te näkevät, kun pelaat ympäriinsä koodin itse. Selvä aiomme siirtää seuraavaan osaan mitä me voidaan kattaa tänään. Aiomme mennä yli, mitä ehtolauseet ovat. Joten jos te muistaa ja muistamme luento, ehtolauseet, kaikki ne ovat ovat joukko ohjeista tietokoneen jotka, jos tietty ehto on tosi, voit suorittaa koodia sisällä tämän edellytyksen. Joten Scratch-- olennaisesti iso teema tänään on, että teillä jo kaikki nähnyt logiikka kaiken takana että olemme kattaa. Ja kaikki teemme on kääntäminen jotain että oli hyvin intuitiivinen Tyhjästä, ja kova koodaus se osaksi syntaksin Käytämme luokan joka on C. Joten loogisesti, kaikki tämä lohko oli on että koodinpätkä oikeassa. Joo. OK. Olemme myös päästä, jos ... muu lausuman, jossa on vain lisäkerros monimutkaisuutta jos ilmoitus jos tietokone ottaa tarkasteluun tämän ja näkee, jos tämä ehto on tosi, do mitä on sisällä nämä kaksi suluissa, else-- niin ikään kuin automaattisesti, jos se ei täytä condition-- tehdä tämän. Se on kuin tienhaaraan. Jos sataa ulkopuolella, laitoin on sadetakki, muuta mitään muuten en laittaa sadetakki. Tarkoittaako tämä logiikka järkevää kaikille? Viileä. Selvä. Niin kuin kova esimerkki tämä että näkisimme C on jos Halusin luoda muuttuja nimeltä kotitehtäviä tuntia. Ja jos läksyt tuntia on vähemmän kuin viisi, sanon Elämä on suuri. Se on hienoa. Kuitenkin sanoa taistelu on real-- joka on mitä me kaikki tämän viikon maanantaina iltapäivällä up Science Hill ovat luultavasti tekee oikein now-- Yleisö: [nauraa] ANDI Peng: He tapamme olisi, kiitos siitä. Tavalla voisimme hardcode tämä C on if-- Oletetaan meillä on jo tyyppisenä muuttujana int kutsutaan kotitehtäviä tuntia täällä. Jos läksyt tuntia on vähemmän kuin viisi printf (), Elämä on suuri. Muista pitää / n, koska haluat uuden rivin jälkeen. Else Print, taistelu on todellinen. Onko jokainen ymmärtää, miten Olen siirtynyt tästä lohkosta tähän estää koodin? Viileä. Selvä. Joten nyt aiomme katsomaan Useiden Jos lausuntoja kokonaan. Joten olettaa Tämän ohjelman oli meillä pyytää käyttäjältä luokka. Me PROMPT käyttäen GetInt () varten luokka, ja ne panos arvo, ja haluat näyttää millaista luokka he saivat. Joten jos olisin suunnitella ohjelmaa, I tarkoittaa tyypillisesti kaikissa silmämme, 90-100 on, 80-90 on B, ja niin edelleen, ja niin edelleen. Mikä on vialla tämän koodinpätkä että se ei ole tekee mitä haluan sen tehdä. Joo. SPEAKER 11: Heillä on alarajat, mutta ne eivät ole ylärajoja. ANDI Peng: Aivan. Oliko kaikki kuullut mitä hän sanoi? Siellä tulee olemaan ylä rajoja, mutta ei alarajat. Anteeksi, päinvastoin, alarajat, ei ylärajoja. Joten haluaisit ottaa puukottaa sanomalla mitä olisi painettava tämä screen jos olisin suorittaa tämän koodin. SPEAKER 11: virhe? ANDI Peng: virhe? Suuri arvaus, ei aivan oikein. Onko kellään toinen puukottaa? Joo, Aaron. AARON: Jos asetat jotain suurempaa kuin 90, se näyttää kaikki laadut sait. Se osoittaisi sait, sinulla B, sinulla C. ANDI Peng: Joo. Juuri oikea. Niin, että olisin ihana. Kuitenkin, ne ovat keskenään yksinomainen, mielestäni. Jos minun pitäisi ajaa tätä koodinpätkä. Ja sitten Haluan vain sanoa, minä syötetään luokan 95. Joten 95 on nyt tallennettu int kutsutaan luokka. Ja niin C on kieli joka toimii jopa ylhäältä alas, niin se tulee aina ajaa jopa pohjaan. Joten se tulee tänne, lukea, jos arvosana on suurempi tai yhtä suuri kuin 90, printf () sait A. Suuri, I on 95, joka on yli 90. Se tulee tulostaa, Sain A. Se tulee katsomaan tätä, jos se tulee sanoa, hyvin 95 on myös suurempi kuin 80, se tulee tulostaa voit myös saanut GOT B huutomerkki, ja niin edelleen ja niin edelleen. Jotta me kaikki voimme nähdä, tämä on yhteinen vika joita voi esiintyä, kun olemme kirjoittaa koodia varoa. Kuka tahansa, kysyttävää miksi tämä tapahtui? Suuri. OK. Miten siis korjata tämä, on luonnollisesti looginen kysymys. No, meillä on näitä kauniita asioita kutsutaan jos muu, jos muu jos muu lausuntoja. Voit siis nähdä, jos halusi muuttaa että ongelma, haluat tehdä kunkin olosuhteet toisensa poissulkevia, voit lisätä muuta ... jos ilmoitus. Ja nämä on course-- ajatella niitä tikkaat, tai kuten askelmia ladder-- voit lisätä niin monet näistä kuin haluavat niin monta ehtoa kuin haluat. Joten tässä, jos en syötetään luokka olevan 95. Jos arvosana on suurempi kuin 95, printf (), sain A. Suuri. Se tulee nähdä muuta ... jos ja se tulee tietää, Voi ei, Olen jo toteutettu ensimmäinen muuta. Olen know-- tai ensimmäinen if-- Tiedän, että Minulla ei ole tarkastella tahansa näistä koska yksi heistä on jo totta. Joten se tulee ajaa ylhäältä alas. Heti kun ensimmäinen on totta, niin se tulee ohittaa kaikki muut ja muuten ... jossittelua. Onko siinä järkeä? Joten, näin sinulla on eri tarkkailun ja kun yksi niistä on väärä, Loput ovat myös, he eivät edes tarkistaa. Viileä. Selvä. Joten tämä on esimerkki eri tavallaan ehdollinen lausunto näemme harvemmin, mutta näemme ne ja käyttää niitä. Ja ne ovat usein tehokkaita tietyissä tapauksissa. Meillä on siis mitä kutsutaan kytkin selvitys. Joten ennen kuin kävimme mitä muuta lausunto, jos ... muu selvitys. Täällä meillä on mitä kutsutaan kytkin lausuntoja. Joten kun käytämme kytkin lausunnot on avain? Joten kytkin selvitys, sinua yleensä, tyypillisesti, todella sinua voi vain syöttää kokonaislukuja teidän muuttuja että olet tarkkailun. Joten jos halusin tarkistaa, jos tietty number-- esimerkiksi luokka, jos sain 90. Haluan sen nähdä, jos se on, B tai C. voisin olla tässä asiassa. Kuitenkin asia on olevan toinen jatkuva. Joten tässä mielessä, kytkin selvitys voi vain tarkista tasa kaksi numeroa. Se ei tarkista mitään muuta. Niin, että on jotain hyvin varovainen kun käytät tätä. Joten tässä, jos halusin tarkistaa, jos luokan 90 on yhtä suuri 90 tai 80 tai 70 tai 60, ja sitten tulostaa vastaava luokka, Voisin kirjoittaa, että in kytkin selvitys. Joten se tulee tänne, tarkastus on tämä kokonaisluku tämä jatkuva? Jos ei, se tulee ohittaa. Onko se sama kuin vakio kaksi, ja niin edelleen, ja niin edelleen, kunnes osut oletuksena, jos yksikään niistä ovat samat. Heti yksi heistä asetetaan yhtä suureksi, se aikoo tehdä tähän riviä koodia ja tauko. Mikä tarkoittaa se tulee lyödä että juosta, tauko, ja vain täysin ohittaa pohjaan koodin. Joten siinä mielessä -tyyppiset toiminnot kuin jos muuta, jos muu, jos ilmoitus. Joten tässä on konkreettinen esimerkiksi teitä. Joten Oletetaan, että halusin luoda muuttuja nimeltä vuosi perustettu. Ja haluan pyytää käyttäjää syöttämään vuonna, että heidän koulun perustettiin. Voin siis luoda kytkin selvitys täällä. Ja Haluan vain sanoa, minä tulo 1636. Tämä koodi täällä on menossa nähdä kytkin Perustamisvuosi mikä vastaa 1636. Se tulee nähdä asia 1636, oi ne ovat yhtä suuret, printf () Jos et ole että koulussa pohjoisessa? Koska oletamme ne eivät mennä täällä jos he menevät Harvard, tauko ja siirtyä loppuun. Jos minun pitäisi syöttää 1701, joka Oletan kaikki meistä panos, se ohittaa tässä tapauksessa tule alas tapaus kaksi, joka on 1701, ja tulostaa Tervetuloa Yale! Tauko, siirtyä loppuun. Muuten et luultavasti käytät tämän kurssin verkossa jossa case-- mahtava tervetuloa sen Yale-- se tulee mennä oletustulostusnopeus, Hei Internet! Ja tauko. Joo. SPEAKER 12: Sopiiko muuta sijasta oletuksena siellä? ANDI Peng: Ei, koska että tämä koko toiminto kytkin on rakennettu, syntaksin sinua täytyy käyttää on kyse tapauksessa oletuksena. Se on kuin jos muu, jos tämä yksi sen tapaus tapauksessa oletuksena. Joo. SPEAKER 13: Olet ehkä jo sanoi, mutta voit olla enemmän kuin kaksi tapausta? ANDI Peng: Joo, voisit on niin monissa tapauksissa kuin haluat. Ajattele sitä aivan kuin äärettömän lisätään edelleen. KAIUTIN 14: Jos vaihdon 1701 1636, se ei oikeastaan ​​tee ero oikea? Se on vain aiotaan tarkistaa sitä. ANDI Peng: Se todella hyvä kysymys. Ja me puututa tästä myöhemmin, mutta vain tietävät, että on kytkin lausunto on infinitely-- se tehokkaampi kuin se, ja jos muuten jos koska se toimii käyttämällä eri tyyppisiä toiminnon voit, oleellisesti, vain hypätä suoraan jos joudut olla. Joo. SPEAKER 14: Cool. Kiitos. ANDI Peng: Joo SPEAKER 14: Ja et voisi do tapauksissa, kuten ja yli. ANDI Peng: Ei. Niin, että mitä on rajoittaa noin kytkin selvitys on, että sinulla on olla vakioita vain, vain kokonaislukuja. Joo. OK. Joten tämä on jotain, sinun kaverit kohtaavat vähemmän usein, mutta halusin vain se otetaan käyttöön siinä tapauksessa. Meillä on täällä mitä kutsutaan kolmen komponentin operaattori. Jos olennaisesti, se on aivan kuin jos ilmoitus kootaan yhdelle riville. Täällä, minä menen seuraavalla rivillä, seuraava sivu, koska se on helpompi nähdä. Joten olemme kaikki nähneet tätä oikeutta? Tämä on melko helppo seurata. Jos halusin tehdä muuttuja nimeltä merkkijono nimeltä s, jos tietyillä Annan se on vähemmän kuin 100, I haluat määrittää alhainen merkkijono, muuten haluan antaa korkea. Tämä täällä tekee täsmälleen sama asia ne kahdeksan riviä koodia tekevät. Joten tässä haluan luoda muuttuja merkkijono. Ja tämä on ehto olen tarkistaa, jos määrä on alle 100, niin voit antaa arvo alhainen, muuten antaa arvoa korkea. Nämä kalvot on verkossa, ei hätää jos te saa tätä alas. Tämä on vain yksinkertaisempi tapa, enemmän tehokas tapa kirjoittaa koodia. OK. Joten nyt aiomme kirjoita mitä useimmat ihmiset ovat kuin hyvin, hyvin hämmentävää asia ajatella ensin. Silmukka osassa. Joten tänään, aiomme puhua noin kolme silmukoita. Aiomme aloittaa taas silmukka, sitten puhua tehdä, kun silmukka, ja sitten puhua silmukoita. Niin olennaisesti, entistä visuaalisia oppijoita siellä, meillä on lähinnä, graafinen kuvaus mitä taas silmukka ei. Joten ohjelmointi, voisitte alkaa ja kirjoita silmukka jossain vaiheessa. Voit tarkistaa kunto. Ja jos ehto on tosi, voit suorittaa koodin sisällä. Ja tulet takaisin ympäri ja voit tarkistaa. Jos se on silti totta pidät käynnissä tämä koodi ympäri ja ympäri silmukan. Kuitenkin toinen että ehdosta tulee epätosi, aiot rikkoa ja lopettaa silmukan. Ja tämä on lähinnä lauseenrakenteen aiot käyttää. Vaikka tietty ehto on totta tehdä, jos se ei ole totta, aiot siirtyä loppuun ja edetä oman ohjelman. OK. Onko kellään esimerkki mitä voi mahdollisesti tapahtua jos yritän suorittaa tämän koodinpätkä? Muuten, SAJ-- se Scaz, Andi, Jason-- me allekirjoituksellaan sähköpostit, Rakkaus, SAJ. Se on meille. OK. Kellään tai esimerkiksi olla ajatus siitä, mitä tämä tulostaa? Kind of kompakysymys. Joten tässä, muistakaa kunto me tarkistaa on taas totta. Joten vaikka tämä on totta, se on painoon, rakastan SAJ! Onko kohta, jossa olimme muuttaa mitään toisin? Ei, oikea? Joten täällä, meillä on kohtasi mitä on luultavasti aiotaan häiritsee paljon ohjelmat, päättymättömään silmukkaan. Huomaat, että jos suorittaa tämän koodinpätkä, se on vain menossa pitämään tulostus, rakastan SAJ! Vaikka arvostamme tukea, emme halua tietokoneiden kaatumisen koska olet jatkaa tulostusta Rakastan SAJ! Joten kiitos, kiitos, välttää loputon silmukka koska se ei ikinä arvioida false ja olet koskaan lähteä silmukka. Ja olet menossa imetään ikuisesti. Viileä. OK. Toisen tyypin silmukan me puhumme tänään on tehdä, kun silmukka, tehdä, kun silmukka. Ja sitä kutsutaan tehdä, kun silmukka koska sinulla on tee ja aikaa. Joten tämä on melko samanlainen, kun silmukka, mutta hieman erilainen. Täällä aiot tehdä mitä on sisällä tämän kun tietty ehto on tosi. Joten jos olisin C ja tietokoneen olen alasajon tämä koodinpätkä, Olen katsomaan yläreunassa. Menen C, sanon tehdä sitä. Ja sitten tarkistaa, vaikka tämä on totta, minun täytyy toistaa. Mutta vaikka tämä on väärä, sitten eteenpäin ja en koskaan palata, että silmukka uudelleen. Voiko joku ottaa puukottaa mitä eroa välinen silmukka ja yksi me vain katsoi oli käytännössä. Joo. SPEAKER 15: kunto tulee sen jälkeen sijasta ennen? ANDI Peng: Aivan. Niin hän sanoi kunto tulee sen jälkeen, ei ennen. Lopulta erotus tämän ja samalla silmukka on, että olet juuri menossa tehdä mitä on sisällä tämän riippumatta onko vointisi on totta, ja tarkista kunto. Joten tässä tapauksessa, olet always-- tällä tavalla, olet aina varmista mitä on sisällä kulkee vähintään kerran ennen tarkistaa, jos haluat ajaa uudelleen. Ja tässä on esimerkki milloin me käyttäisi sitä. Niinpä esimerkiksi, jos halusin muuttuja tyyppiä int nimeltään ikä, ja haluan pyytää käyttäjä ikäänsä, Aion tehdä printf () Kuinka vanha olet? ikä = GetInt (), joka on kehotukset käyttäjä. Ja jotkut ihmiset ovat todella ärsyttävää. Ja et halua bugeja sinun ohjelma joku syöttämällä kuten, oh Olen negatiivinen 4 vuotta vanha tai mitä tahansa. Jolloin jos ne tehdä, tämä arvioi true, mikä tarkoittaa, että aion on pidettävä menee takaisin ja näin. Joten tämä on menossa pitämään uudelleenkehotusongelma käyttäjä antaa sinulle kuin oikea ikä numero ja se on menossa pitämään menossa takaisin ja redoing sitä, kunnes he antavat sinulle todellinen ikä on suurempi kuin yksi, tai ei ole nolla. Joten vihje, vihje. Tämä on erittäin hyödyllinen yhden oman PSET ongelmia. Joo. SPEAKER 16: Oho, anteeksi. ANDI Peng: Jep. SPEAKER 16: Onko olemassa, ei olla kusipää, but-- ANDI Peng: Ei hätää. SPEAKER 16: --are siellä eri sääntöjä täällä, tai ette vain unohtaa laittaa tarjouksen? ANDI Peng: Oh Yeah. Anteeksi, se on täysin minun huono. Se oli ehdottomasti pitäisi olla lainaus. Hyvä saalis. Se olisi ei toimi. OK. Joten viimeinen tyyppi silmukan niin jutellaan noin ja lopulta eräänlainen eniten monimutkainen on silmukka. Älä huolestu, jos et tiedä mitä se tarkoittaa. Se on aika sekava aluksi. Menemme yli esimerkki. Kaikki tämä tapahtuu silmukan on että sinulla on kolme lausuntoa että aiot sisällyttää. Joten varma asia, olet menossa alustaa muuttuja. Olet menossa lisätä ehdon johon tämä silmukka pitää käynnissä. Ja sitten, lopussa silmukka, olet menossa päivittää sitä. Voit päivittää muuttuja että haluat seurata. Joten me yleensä käyttää silmukoita, kun me haluavat suorittaa silmukka tietty määrä kertoja ja tiedämme jo, Oh haluan tämän silmukan suorittaa kuten 10 kertaa, niin sinun do-- menen aikana Esimerkiksi seuraavalla sivulla. Joten tässä esimerkiksi Scratch, jos halusi jotain toistaa 10 kertaa, kaikki sanoitte oli, Toista 10 kertaa Rakastan SAJ! joka on hyväksyttävämpi Näytä tukea meitä pikemminkin kuin päättymättömään silmukkaan. Täällä, miten olisit siirtyminen C ja kirjoittaa että on int-- aion luoda tai julistaa muuttuja tyyppiä int nimeltä i. Aion alustaa sen 0, joten i = 0; ja tämä tulee olemaan minun kunnossa. Joten i on pienempi kuin 10. Ja sitten end-- viimeinen selvitys olet menossa on on päivitys mitä tapahtuu muuttujaa i lopussa teidän silmukan. Joten se on eräänlainen hämmentävää, koska eri puolilla tätä linjaa tapahtuu eri tyyppisiä silmukan. Mutta menen aikana pseudokoodi esimerkki tästä ja ehkä selittää tätä vain hieman parempi. Joten tässä. Se on silmukka me juuri näin. Pohjimmiltaan pseudokoodilla, mitä tapahtuu tässä ohjelmassa, on ensimmäinen Olen luomassa i, alustamatta 0. Olen tarkistaa, jos i on alle 10, jolloin Ensimmäistä kertaa on koska 0 on alle 10. Siten silmukka tulee ajaa. Ja sitten aion tulostaa tätä linjaa. Ja sitten lopussa tämän linjan, oikea täällä, aion tehdä lisäys I, i ++, kaikki tämä tarkoittaa sitä, kasvattamalla sitä yhdellä. Joten i on nyt 1. Koska se oli kerran 0, jos en increment se on, se on nyt 1. Ja sitten aion palata alkuun silmukan ja voin tarkistaa kunto. On ehto edelleen paikkansa? Kyllä, 1 on edelleen alle 10. Joten se tulee tulostaa tätä uudelleen, mennä ja sitten suurennettava i, ja tarkista ehto jatkuvasti, jatkuvasti, kunnes lopulta saada siihen pisteeseen, jossa i on 10. Olet menossa tulostaa tämän 10 kertaa ja sitten tulee yhtä 10. Olet menossa tarkistaa kunnossa. On 10 vähemmän kuin 10? Ei, se on väärä. Näin ollen, tämä silmukka ei tule ajaa, se tulee rikkoa, ja aiot Jatka koodin. Niin te voi nähdä, tämä on todella hyvä esimerkki silmukan voit ohjelmoida että kestää tietyn määrän kertoja. Jokainen selvä? Joo. SPEAKER 17: Entä lisäys eksponentiaalisesti, se on erilainen koodaus? ANDI Peng: Olet can-- menemme tänä vuonna seuraavan dian. Hyvä kysymys. On anyone-- ennen kuin siirryn on-- kukaan lainkaan sekava, koska tämä on todella kova käsite. Ei hätää, jos you're-- OK. Viileä. Selvä. Vain yleinen liukumäki. Tämä taas silmukka tekee täsmälleen sama asia silmukka oli. Se on vain kirjoitettu eri tavalla. Te voi tutkia dioja milloin sinulle sopii myöhemmin. Mutta vain tietää, että on olemassa useita tapoja kirjoittaa sama asia tapahtuu eri silmukoita. OK. Joten, nyt saamme kysymys siitä, mitä jos meillä on silmukka silmukan sisällä. Saamme todelliseksi Inception tyyppi tavaraa täällä. Kun haluat tehdä asioita useita kertaa sisällä muita asioita että tehdä asioita useita kertoja, voit haluavat mitä kutsutaan sisäkkäisiä silmukka. Niille teistä, jotka ensin nähdä tämä ja saada hyvin sekava, kaikki teemme täällä on ottaa varten silmukka, jossa meillä on muuttuva rivi. Mutta sen sisällä, meillä on myös toinen silmukan muuttujan nimeltä sarake. Ja olen erittäin ehdottaa kaikkia teitä jotka ovat hämmentyneitä ensin pitää track-- vetää tämän pois, vetää tätä. Älä yritä vain syy läpi, vetää se pois. Päässäsi, tästä pala paperi, tai mitä tahansa, kirjoittaa rivi, seurata, mitä rivi on yhtä. Kirjoita sarake, seurata mikä sarake on sama. Ja seurata, mitä on tulostamalla jokaisen iteraation. Jokainen iteraatio Tämän silmukan, joka iterointia että suurempien silmukka, vain pitää seuraava logiikka. Ja takaan, ihastut mitä näet, koska se on myös erittäin sovelletaan ongelman sarjaa. Viileä. Selvä. Joten tärkeintä että te olette varmaan kaikki ajatella juuri nyt, ovat teidän Harjoitus 1s, jotka johtuvat torstai / perjantai. Teidän water.c ohjelma, vihje olet menossa on pyytämään käyttäjältä syöttää. Omassa mario.c ohjelma olet menossa on käyttää sisäkkäistä silmukka, joka on silmukan sisällä varten silmukan, tulostaa lohkon pyramidi, lähinnä kuten mitä Mario on hypätä kautta. Ja sitten sisällä greedy-- tai ehkä Muutoksen, jos joku teistä kaverit koskaan kuullut that-- olet menossa on oltava hyvin varovainen ensimmäinen liukuluvuiksi. Muista kelluva desimaaleja ja kokonaislukuja eivät ole sama asia. Seurata kumpi on kumpi. Ja aiot käyttää ehtolauseet, samoin. Selvä, viimeinen asia. Minulla pari minuuttia jäljellä. Tyyli. Joten tämä on jotain, joka ei ole aktuaalisesti tehokkuus, tai todellinen toiminnan koodin. Kuitenkin, se vaikuttaa meihin teidän luokkalaiset, koska lukijat. Se vaikuttaa itse, jos olet yrittää löytää ongelmaan. Se vaikuttaa luettavuutta koodin. Joten tyyliin kun yrität tyyli essee Englanti, jos ei ollut kohdat, sinulla on kaikki sellainen sekaisin yhdessä yhdellä rivillä, se tekee todella vaikeaa kenellekään lukea essee, vaikka pisteesi ovat loogisesti ääni. Sama juttu ohjelmoinnissa. Voit olla kauhistuttavan hämärä koodi joka Scaz kattaa, ja se voi silti ajaa ja toiminta. Mutta meille, kuin ihana TAS, kuka lukisi ja arvioidessamme PSets, se ei ole kovin mukavaa. Joten, vuoksi meistä ja itse, kun yrität korjata ongelma koodissa, ja yrität lukea oman koodin, tehdä että noudatat joitakin sopimuksia että aiomme mennä yli. Niin ensin. Anna muuttujat mielekäs nimiä. Jos haluat tallentaa kokonaisluku nimeltään ikä, nimetkää se ikä. Älä nimeä sitä korkeutta. Kun yrität Säilytä ikä korkeus, se tekee kaiken erittäin sekava meille. Emme pidä pidä sekoittaa. Et pidä pidä sekoittaa. Kukaan ei tykkää pidä sekoittaa. Jos aiot luoda jotain, name it jotain merkityksellistä. Kuitenkin silmukan, yhden merkki muuttujat ovat yleensä hyvin. Ja silmukka, jos haluat vain i, ja J, K, rohkeasti vain tehdä. Johdonmukainen alustus. Mitä tämä tarkoittaa? Se tarkoittaa, että teknisesti, teoreettisesti, voit käynnistää ja luoda useita muuttujia samalla linjalla. Niinpä esimerkiksi, voin luoda kokonaisluku kutsutaan scaz_age, ja kokonaisluku kutsutaan andi_age = 20, ja kokonaisluku kutsutaan jason_age samalla linjalla. Ja voin myös antaa vain yksi niitä eikä muita arvoja. Pyydämme teitä älä tee sitä. Koska täällä olet lähinnä luonut kolme muuttujaa, mutta vain yksi niistä todella on arvo. Ja sitten kun olemme yrittää lukea koodin, tai jos yrität korjata ongelma koodissa, se on hyvin hämmentävää seurata. Joten teidän luettavuutta, sillä meidän luettavuus, älä tee sitä. Johdonmukainen aaltosulkeita. Jotkut ihmiset haluavat laittaa aaltosulkeita eri paikoissa. Se ei ole oikeastaan ​​väliä. Vain varmista, että olet johdonmukainen omassa oma koodi, missä haluat laittaa ne. Johdonmukainen väli. Jos laitat välilyönnin jälkeen silmukka, aina tehdä. Älä vain pidä sellaista tehdä sen joissakin paikoissa, älä tee sitä muille. Vain olla johdonmukainen. Toiseksi, jos joku haluaa lukaista CS50 Style Guide, meillä virallisesti on tyyli opas, joka kertoo kaikki nämä sopimukset, plus enemmän. Se on verkossa. Se on kuin cs50.net/style tai jotain sellaista. Voit google sitä. Johdonmukaisuus on avain. Joten älä huoli, mitä muut ihmiset tekevät, vain varmista, että olet yhdenmukaisia ​​oman koodin. Kellään mitään kysyttävää että? Joo. SPEAKER 18: Eli oikea asia tehdä alustus on vain ne kaikki erillisessä linja, että mitä sanot? ANDI Peng: Olen siis harvoin on tämän tapahtua. Mutta jos halusi, jos halusi olla kuin säästää tilaa koodissa, tai mitä tahansa, voit tehdä tämän. Pyydämme, että et vain alustaa yksi asia eikä muita. Joten jos haluat tehdä int scaz_age, int andi_age, int jason_age, se käy hyvin. Kunhan et alustaa yksi eikä muiden on kaikki. Kysymyksiä? Selvä. Aion siirtää pois mikrofoni, ja laserosoitin, ja viestikapulan Scaz tässä vaiheessa. Tämä on hankala. Tässä se on. BRIAN Scassellati: Kiitos. Miten tuo ääni? Ääni on hyvä? . Erinomainen. OK. Joten, hei kaikille. Aion yrittää työn kautta käytännön esimerkki kanssasi. Ja aiomme käyttää CS50: n kehitysympäristö, mitä kutsutaan integroitu kehitysympäristö. Ja olet nähnyt tämän osoitettu luento. Ja Harjoitus 1, olet menossa on mahdollisuus käyttää sitä, ja leikkiä se, ja saada tottunut siihen, koska aiomme käyttää sitä läpi loput lukukauden. Joten tässä IDE, olet mitä näyttää kuten hyvin perinteinen tiedostoselain yli toisella puolella. Sinulla osa ylös top minne olet menossa nähdä lähdekoodia, sinun Cfile, koodi että kirjoitat. Ja alas pohja, luultavasti on pääteikkuna joista sinua käyttämäsi molemmat kääntää ohjelma ja ajaa tai suorittaa oman ohjelman. OK. Joten vain antaa meille hieman säätiö, että pääteikkunaa aiot olla käyttäen joukko komentoja jotka ovat vakiona komentoja koko useimmat Unix tai Linux-järjestelmissä. Joten jos olet koskaan käytetty kaikenlainen Unix, Ubuntu, tai mitä tahansa muita makuja, nämä ovat menossa tutulta. Jos et ole, älä huoli. Ei ole mitään monimutkaista niistä. He vain käyttämällä eri syntaksi, eri nimeäminen yleissopimus kuin olet nähnyt ennen. Joten luetella tiedostot tietyssä hakemistossa, he aikovat käyttää komento kutsutaan ls, tai luettelon. Jos haluat nähdä kaiken kaikki yksityiskohdat, voit käyttää komentoa argumentti kanssa ls -l. Ja että näytän sinulle kaiken tarkemmin, mukaan lukien tiedoston käyttöoikeuksia. Jos haluat vaihtaa hakemiston, voit käyttää cd-komentoa. Ja voit vaihtaa hakemistoon molemmat mennä kotihakemistoosi. Se on vain CD kaikkia itse, cd kaksi pisteitä palauttaa sinut yksi tasolla aikaisempia hakemistoon. Ja voit myös CD alihakemisto kirjoittamalla cd ja nimi, joka alihakemiston. Voit myös luoda uusia hakemistoja. Ja aiomme kävellä kautta tämä vain hetken. Mutta vain laittaa kaikki ruudulla. Jotta voit nähdä ne. Sinulla on myös mahdollisuus manipuloida tiedostoja suoraan komentoriviltä. Voit kopioida niitä, jotta siirtää niitä tai poistaa ne, eli tehokkaasti, poistaa ne. CS50 IDE antaa sinulle täyden voima komentoriviargumentteja. Ja se tarkoittaa voit myös tehdä erittäin vaarallisia asioita. OK. Esimerkiksi, voit poistaa, tai että on delete, tiedosto kysymättä vahvistusta. Ja voit jopa poistaa recursively-- se viiva R flag-- koko alihakemisto ja kaikki sen sisältö. OK. He lueteltu punainen, koska olet pitäisi ajatella "Vaara" joka kerta näet ne asiat. OK. Selvä. Nyt vihdoin, asioita, jotka ovat tulee olemaan todella arvokas sinulle, ovat olemassa muutamia hyviä temppuja tietää kun olet navigoinnin tällä pääteikkuna. Ensinnäkin, voit tyhjentää näytön tahansa kirjoittamalla selvästi. Ja te tulette näkemään minun tekevän, melko usein. Voit myös vain näyttää teksti tiedoston kirjoittamalla enemmän ja sitten tiedoston nimi. Voit sitten voi vierittää takaisin ja esiin ja että juuri kanssa välilyöntiä ja nuolinäppäimillä. Jos sinulla on, kuten teimme tänään luento, ohjelma, joka on käynnissä jatkuvasti ääretön silmukka, sinua voi pysäyttää, että ohjelma toteuttamasta kirjoittamalla ohjaus, että on pitämällä Ctrl-C. Ja voit joutua tekemään tämä useita kertoja. Tietokone saa paljon edellä sinua. Ja sinun täytyy joskus antaa sille pari yrittää ennen kuin se todella tulee läpi. Voit myös pystyä lajittelemaan komennot että olet juuri kirjoittanut ylös- avain, nuoli -näppäintä ja alanuolinäppäintä. Ja mitä hyödyllisin on sen sijaan kirjoittamalla ulos pitkiä tiedostonimiä, voit käyttöön Tab autocomplete muutamia ohjeita. Nyt aiomme osoittaa kaikki nämä vain toinen. Joten jos et muista niitä, älä huoli. Nämä ovat asioita, että sinun poimia ja käyttää matkan varrella. OK. Joten C-- toisin Scratch-- C on käännetty kieli. Se tarkoittaa, että otamme lähde file-- se teksti että kirjoitat, komennot kirjoittaa, printf () lausumat, silmukat, kaikki else-- ja aiomme ottaa tämä tiedosto ja anna se pois on ohjelma nimeltä kääntäjä. Kääntäjä sitten ottaa että teksti, että olet kirjoittanut ja kääntämään binary ohjeet että tietokone on todella menossa käyttöä. Sitä kutsutaan objekti tai suoritettavaa tiedostoa. Jos tarkastellaan tämän tiedoston, olet menossa nähdä koodin että olet kirjoittanut. Jos tarkastellaan tämän tiedoston, olet menossa nähdä satunnainen merkkijono että ei ole mitään järkeä lainkaan. Tämä johtuu tämä on binary. Se ei ole tarkoitettu sinua olla käsittelyssä. Kuitenkin, milloin haluat ajaa jotain, mitä olet menossa oltava käynnissä on tämä esine tiedosto. Kun siis työskentelevät näiden tiedostoja, me kirjoittaa tiedoston C. Me sitten koota se, käyttäen komennolla kuten make joka osaa käynnistää kääntäjä kalahtaa varten C-kielellä. Ja joka tuottaa esine tiedoston, kuten pois, tai tässä tapauksessa, nimi, minun tiedoston, että olen otettu. Selvä. Joten itse kokeilla tätä. Joten en keksi esimerkki mitä halusin kokeilla. Ja yksi niistä asioista, jotka kiehtoo minua on animaatio. Joten aiomme yrittää tehdä hieman animaatio käyttäen vain ASCII-merkkejä. Hahmot voimme tulostaa helposti nyt. Joten tässä on minun paras yritys luomaan sinulle animaatio pupu kulkee pitkää ruohoa. Siellä hän on. OK. Joten hän ei ole käynnissä vielä, mutta hän on seisoo siellä pitkää ruohoa. Nyt jos olisin animaattori, vanhan koulun versio animaation, mitä minä tekisi on I tuottaisi kuva tästä pupu ruoho. Ja sitten minä tuottaisi toinen picture-- toinen mitä he kutsuivat cell-- että oli pupu vain hieman muuttanut. Ja sitten kolmasosa joka oli pupu muutti vähän pidemmälle. Ja minä tuottaisi koko sekvenssi näissä soluissa. Jotkut missä pupu on yli päälle vasemmalla puolella. Ja sitten liikkuu hitaasti, yksi yksi kohti keskellä. Ja sitten keskeltä yli oikealle. Ja jos olisin silloin, todella onnekas, voisin laittaa sen yhdessä ja voisin animoida niitä. Ja siellä on minun pupu käynnissä läpi ruohon. Se on minun suuri PowerPoint huijata päivä. OK. Joten tämä on niin hyvä kuin se saa. OK. Niin, tässä vielä kerran, tässä on meidän pupu käynnissä läpi ruohon. SPEAKER 19: Taas. BRIAN Scassellati: Yksi enemmän aikaa, okei. Siinä on pupu. OK. Joten tänään mitä aiomme tarvitsee vain aiomme yrittää automatisoida tuottaa näihin soluihin. Emme aivan päästä siihen pisteeseen voitava esittää ne kaikki yhdessä. Mutta aiomme yrittää automatisoida prosessi tuottaa tämän sekvenssin. Ja tämä on paljon siitä, mitä animaatio tänään on. Eli et tee asioita välttämättä piirtämällä kaiken käsin. Käytämme tietokonetta automatisoida osat tätä prosessia. OK. Joten haluan siirtyä nyt meidän CS50 IDE. Ja olen luonut us-- ja anna minut zoomata täällä vähän bit-- olen luotu meille lähtökohta. Joka kerta, pyydämme sinua istua alas ja kirjoittaa koodinpätkä, mitä me todella pyytää sinua tekemään on pyydämme ratkaista ongelma. Ja että sinun pitäisi ajatella tee sitä on aloittamalla joidenkin yksinkertainen osa tätä ratkaisua. Ja sitten rakentaa pois, että osa. Ja sitähän me aiomme tehdä tänään. Joten sen sijaan yrittää kerralla kirjoittaa koko joukko koodin, joka on aikoo tuottaa niitä 10 animaatio soluja, aiomme aloittaa sijasta yksi pala, joka toimii. Ja sitten me rakentaa hieman noin joka ja hieman enemmän ja hieman enemmän. Nyt hyvä puoli ongelmien ratkaiseminen tällä tavalla on, että se avulla voit aloittaa aina jotain, tiedät toimii ja tuo markkinoille yhden asteittaista muutosta. Ja se on hyvä tapa oppia koodia, koska joka kerta teet muutos, näet mitä vaikutuksia sillä on. OK. Joten tässä on meidän lähtökohta. OK. Joten alussa minun tiedoston, Olen hash #included stdio.h. Se on niin, että voin saada printf () toiminto toimii. Sitten minulla on päätehtävä. Ja tämä näyttää silti hieman arcane tai hämäriä joillekin teistä. Se on ok. Se toteaa pelkästään, että päätehtävä ottaa ei arguments-- void keinoja mikään C. Ja se tuottoja yleissopimus kokonaisluku. Tärkeimmät aina palauttaa kokonaisluvun, yleensä koodi sanoa asioita meni hyvin tai ei mene hyvin. OK. Mutta tärkein on oltava, että muodostavat meille juuri nyt. Olen sitten laittaa kolme riviä koodia. Ja yhdessä jokaisen rivin koodi, olen koonnut kommenttia. Nyt yksi niistä asioista, jotka vaadimme, että te teette, ja se on niin tärkeä ohjelmointi käytännössä on aina kommentoida koodi. Aina kirjoittaa alas Englanti kommentti jotain että luulet koodi on tarkoitus tehdä. Näin myöhemmin, kun tulet takaisin se, voit katsoa sitä ja voit sanoa, Voi, muistan mitä olin yrittää tehdä tämän. Tai kun TA istuutuu sinua yrittää auttaa sinua toimistossa tuntia, he voivat tarkastella tätä ja mennä, minä mitä yritit tehdä, vaan tämä on mitä todella tapahtuu. OK. Joten minulla kolme osaa minun koodi, Aion ensiksi print joitakin pisteitä alussa. Minä sitten tulostaa minun erittäin hieno pupu. Ja sitten jotkut vähän pisteitä lopussa. Ja nämä kolme tulosta lausumat näyttää tutulta tässä vaiheessa. Kaikki, että olen tekemässä jokainen niistä on minä olen tulostamisen merkkijono. Ei ole muuttujia. Kaikki on vain tasainen. OK. Joten jos menen nyt alas minun terminal-- Katsotaanpa, jos voin saada tämä takaisin out-- ja aion kirjoittaa selkeitä uudelleen. SPEAKER 20: Käytämmekö kaksoiskauttaviivalla kommentoida? BRIAN Scassellati: Can Käytä double-- kyllä. On useita tapoja Kommentteja C. tapa on käyttää kaksoiskauttaviivalla. Toinen on käyttää vinoviiva ja tähti ja sulje tähti ja vinoviiva. Selvä. Ensinnäkin, aion Aloita navigointi täällä. Joten jos menen kotiini hakemistoon, Olen muuttanut hakemistoja siellä, Aion katsoa ja nähdä, mitä että hakemistoon, ls, luetella. Aion nähdä, että olen sai kaksi alihakemistot. Tehdään tämä hieman isompi täällä, jotta voimme kaikki nähdä sen. Näen, että olen sai kaksi alihakemistot. Vaihdan hakemistossa mennä työtilaan. Ja aion vain kirjoittaa ulos osa sitä, ja sitten painaa Tab. Ja se tulee suorittaa loput minulle. Fancy. Minä katson ja nähdä työtilan. Ja juuri nyt, olen työskennellyt on SuperSection että olemme opetus juuri nyt. Joten menen tuohon hakemistoon. Ja lopuksi, katsoa ja nähdä. Ja minulla että tiedosto bunny.c. Hyvä niin haluaisin jälleen kerran selväksi. Ja aion now-- taas olen edelleen oleskelevat että hakemistossa ja se kertoo minulle olen että SuperSection hakemistoon. Aion mennä eteenpäin ja tehdä minun ohjelma pupu. Ja komennon, tee pupu, kun taas kuulostava hieman outoa, vetoaa myös kalahtaa kääntäjä. Ja se on tuotettu minulle tuotos, joka on suoritettavan funny-- ohjelmatiedostolle kutsutaan pupu. OK. Voin sitten, ja tämä kuulostaa toimeenpanijoiksi pupu. OK. Ja katsotaan, mitä se tekee. OK. Se on hieman mitä odotin. Minulla minun bunnykuva siellä, mutta olen sellainen halunnut kaiken itse. Mitä minä kaipaamaan? SPEAKER 21: Slash l tai vinoviiva n. BRIAN Scassellati: Slash n. OK. Joten mennään takaisin täällä. Ja saan pois että. Ja Menen takaisin tämä. Ja lähdetään katsomaan nyt minun päätehtävä täällä. Joten mitä minun pitäisi tehdä? Haluan lopettaa linja. Joten laitan sisään kommentoida. Laitan vuonna printf (). Ja mitä minun täytyy laittaa? / N. OK. Mitä minun täytyy lopettaa sen kanssa? Puolipisteellä. Selvä. Nyt, yksi todella tärkeimmistä asioista on varmistaa aina kun teet muutoksen koodissa, että tallennat sen. Jos et ole tallentanut koodin, olet huomaamaan pieni tähti siellä. Ja että tähti sanoo, ole tallentanut tätä koodia. Jos minä kääntää sen nyt, se ei ole menossa heijasta mitään näistä muutoksista, koska kääntäjä tarkastellaan tiedosto joka on levyllä, ei tiedostoon, joka on avautuu editori. Selvä. Joten tallentaa sen ja sitten menemme aivan täällä, tule takaisin ulos. Tule alas minun terminaaliin. Ja nyt tyhjentää tilaa uudelleen. Ja voimme mennä eteenpäin ja yksi aika tekevät pupu ohjelma. Ja suorittaa pupu. Se ei toimi myöskään. Väärässä slash. Joten jos tarkastellaan, mitä olen saanut, laitoin / N siellä, mutta olin väärässä slash. Kaikki, että tietokone Onko on hyvin selkeä. OK? Yksi pieni virhe välimerkkien, ja yhtäkkiä et saa mitä haluat. Selvä. Joten zoomaa takaisin ulos. Menemme takaisin. No tehdä erittäin nopea korjaus. Laitamme oikealle vinoviiva. Me tallenna se. Me zoomata takaisin. Jostain syystä se ei ole on onnellinen, mutta mennään eteenpäin ja menemme takaisin terminaaliin täällä. Tyhjennä se. Me suurentaa. Ja vielä kerran, teemme pupu. Ja nyt totta tosiaan, se toimii. Hurraa. OK. Joten yritä tehdä tätä hieman yleisempi. Katsotaan eikä vain tulostus tietyn kehyksen, Katsotaan jos voimme tehdä tästä jotta voimme saada kaikki 10 Näiden animoitu kehyksiä että halusimme saada. Joten jälleen, ottakaamme tämä askel kerrallaan. Katsotaanpa ensin yleistää sitä, ei niin että en kaikki kehykset, mutta niin en tee mitään yksi runko että voisin haluta. Joten mitä väliä kehysten välillä? Onko pupu sama? Yleisö: Kyllä. BRIAN Scassellati: Joo. Mitä eroa? Yleisö: Sijainti. BRIAN Scassellati: Sen asema, eikö? Ja Kuinka hallita kantaansa? Kuinka monta pistettä olen laskemisesta alussa ja kuinka monta pistettä olen laskemisesta lopussa. Joten jouduin viisi at alkaa ja viisi lopussa. Katsotaanpa korvata viisi kanssa silmukka. OK. Ja aion luoda varten silmukka nyt että menee sanoa, Aion tulostaa joitakin numero pisteitä alussa. Aion käyttää muuttujaa. Sanotaanko, entä I laskuri minun silmukka. Ja aion julistaa, että se ylös. Ja sitten silmukan Minun täytyy tehdä kolme asiaa. Ensimmäinen asia, joka minun täytyy tehdä minun tarvitsee alustaa i. Mitä minun pitäisi alustaa se alkaa olla? 0. OK. Sitten minun täytyy sanoa, mikä on irtisanominen kunnossa? Milloin minun pitäisi lopettaa? No kuinka monta pistettä sinulla haluat tulostaa tämä? Yleisö: Viisi. BRIAN Scassellati: Viisi uudelleen? Entä tehdään jotain eri, teimme viisi. Näytetään, että se on erilainen. SPEAKER 22: Kaksi. BRIAN Scassellati: Kaksi. OK. Joten jos haluan kaksi pistettä, mitä minun pitäisi laittaa tänne? Yleisö: Kolme. BRIAN Scassellati: Kolme. OK. Kuinka monta kertaa on, että menossa läpi? Että menee läpi kolme kertaa, 0, 1, ja 2, oikea? Selvä, mennään takaisin alas kaksi. Nyt saamme kaksi pistettä. Ja mitä haluan tehdä kunkin kun menen silmukan läpi? Mikä on muututtava joka kerta käyn läpi? SPEAKER 23: Lisää piste. BRIAN Scassellati: Minun täytyy pitää käynnissä. Aion lisätä piste. Aion tulostaa piste, aina silmukan läpi. Mutta miten minun pitää kirjaa siitä, kuinka monta kertaa olen ollut silmukan läpi? Käytän I, että muuttuja, että laskuri. Joten joka kerta läpi, aion kasvattamaan laskurin yhdellä. Nyt se sama minua kuin sanomalla i = i + 1. Se on ok. Voisin tehdä sen that-- Pidän pika-, joten aion sanoa i ++. OK. Tehdään sama asia täällä alareunassa. Vain olen sellainen tehnyt, että yksi. Aion antaa te tehdä tämä täysin. Selvä. Joten mitä minun pitäisi kirjoittaa täällä? Tässä on minun silmukka. Aion tehdä printf () ja aion tehdä se niin, että olen vain tulostaa yhden pisteen tästä pohja. Mitä minun pitäisi kirjoittaa sisälle silmukka nyt? No, ensinnäkin, mitä muuttujat pitäisi käyttää? SPEAKER 24: j. BRIAN Scassellati: voisin käyttää j. Voinko käyttää sama? Voinko käyttää i uudelleen? Joo. Se on OK, koska Is että olen käyttäen tänne, En tarvitse niitä uudelleen, kun Saan alas tähän pisteeseen. Joten mitä minun pitäisi alustaa I? SPEAKER 25: 10. BRIAN Scassellati: 0. Mitä minun pitäisi tarkistaa? Kuinka monta pistettä tarvitsen nyt lopussa jos minulla kaksi pistettä alussa? Tarvitsen kahdeksan lopussa, niin mitä minun pitäisi tarkistaa, i vähemmän than-- Yleisö: Seitsemän, kahdeksan, yhdeksän. BRIAN Scassellati: Kuulin seitsemän. Kuulin kahdeksan. Ja kuulin yhdeksän. OK. Joten olemme kaikki oikeassa ball-- Jason sanoo 10. OK. Jos Tarvitsin kaksi pistettä varten ensimmäinen, kuinka monet tekevät I-- ja Tarvitsen kahdeksan pistettä varten viime one-- laitoin kaksi ylhäällä, mitä minun pitäisi laittaa alas alla? Yleisö: Kahdeksan. BRIAN Scassellati: Kahdeksan. Koska se on menossa laskea nolla läpi seitsemän. Ja se on kahdeksan kertaa silmukan läpi. OK. Ja mitä minun pitää tehdä lopussa? Yleisö: i ++. BRIAN Scassellati: i ++. Selvä. Niin että on näyttänyt aika hyvältä siellä. Yritetään ja katsotaan mitä se tekee. OK. Joten aiomme pelastaa se. Mukava ja tallennettu. Me zoomata takaisin ulos. Me yritämme täällä terminaalin. Me suurentaa. Oho. Me, vielä kerran, tekevät pupu ohjelma. Ja mennä eteenpäin ja toteuttaa pupu. Ja siellä se on. Joten ei meidän pupu. Jossa sillä on kaksi pistettä alussa ja kahdeksan pistettä pois lopussa. Kaikki vielä kanssani? OK. Joten rakensimme sen. Rakensimme yksi pupu, yhden tietyn kehyksen. Nyt olemme pystyneet yleistää, että rakentaa enemmän, erilaisia ​​kehyksiä. Nyt mennään eteenpäin, ja on se tuottaa ei vain yksi kehys, mutta nyt tuottaa 10 kehykset, jossa hitaasti tehdä pupu siirtää kaikki tavalla koko kentän. Selvä. Mennään takaisin. Ja me yritämme nyt. Joten mitä minun todella tarvitse muuttaa tänne? Mitä minun täytyy muuttaa? SPEAKER 26: sinun on ensin muuttaa pisteiden maksimi alussa. Koska jos teemme 10 pistettä, se tulee pitää jopa mittakaavassa. BRIAN Scassellati: Joo. Joten nyt minulla on se tavallaan hardwired aina tehdä kaksi pistettä alussa ja aina tehdä kahdeksan pistettä lopussa. Haluan rakentaa toisen silmukan, eikö? Koska en halua rakentaa vain yksi bunnykuva, Haluan rakentaa 10 pupu kuvia. Joten minun täytyy rakentaa toisen silmukan, ja kun menen läpi silmukka, Haluan muuttaa kuinka monta pisteitä tulostan alussa ja kuinka monta pistettä voin tulostaa lopussa, jonka perusteella selata silmukka Olen mukana. Selvä. Joten saada toinen laskuri. Joku ennen mainittua j, joten teemme toisen j. Ja nyt, me aiomme rakentaa toinen silmukka. Mikä menee sisällä että silmukka? Tämä aine on mennä silmukan sisällä, eikö? Onko pupu on mennä silmukan sisällä? Tarvitsenko pupu jokainen näistä 10 kuvaa? Yleisö: Uh-huh. BRIAN Scassellati: Joo. Haluan pupu kussakin on 10 kuvaa, eikö? Entä pisteet osoitteessa Lopulta tarvitsen sitä? OK. Joten aion sisentää ne kaikki. Aion tuoda esiin kaikki tätä, ja aion lyödä Tab. Ja että menee työntää niitä ympäri vähän, niin että se on helppo minulle nähdä, mitä silmukka. Ja sitten minä lopettaa sen. Sanokaamme. OK? Nyt, tässä silmukka, joka Olen building-- oho, tehdä, että niin voit see-- Minulla minun laskuri j. Minä se alkoi klo 0. Kuinka monta kertaa haluan käydä läpi tämän silmukan? Yleisö: 10 kertaa. BRIAN Scassellati: 10 kertaa. Mitä numeroa pitäisi laittaa tänne? Yleisö: 9, 10. BRIAN Scassellati: 9, 10, Jonkun täytyy sanoa 11, eikö? Halusin kaksi pistettä ennen ja laittaa i alle 2. Halusin kahdeksan pistettä, Laitoin i alle 8. Nyt haluan mennä läpi 10 kertaa, joten laitoin J vähemmän than-- Yleisö: 10. BRIAN Scassellati: 10. Siellä mennään. Ja mitä teen lopussa j? ++, Kasvattaa se. OK. Nyt, tässä on hankala osa, mikä on tapahtuu juuri nyt, jos teen näin? Olen menossa tulostaa 10 kuvaa? SPEAKER 27: Luulen he kaikki olla samoja. BRIAN Scassellati: He kaikki olla sama, eikö? Koska ne kaikki ovat vielä kesken laittaa kaksi pistettä alussa. Mutta en halua niitä kaikkia on kaksi pistettä alussa. Kuinka monta pistettä voin haluavat alussa? Yleisö: muuttaminen. BRIAN Scassellati: I haluavat sen muuttaa, eikö? Joten mitä minulla on täällä, että on muuttumassa aina silmukan menee läpi? Yleisö: määrä pisteitä, j. BRIAN Scassellati: j, määrä pisteitä. Joten voin vaihtaa tämä on j. Ensimmäistä kertaa läpi silmukka, mitä se tulee olemaan? Mitä asetan j ensin? Yleisö: 0. BRIAN Scassellati: Kuinka monta kertaa aion tehdä tämän? 0. Toisen kerran silmukan läpi, j: n tulee olemaan 1, koska olen kasvattaa sitä. Kuinka monta pistettä olen menossa tulostaa? 1. Kolmannen kerran silmukan läpi, kuinka monta pistettä olen menossa tulostaa? Yleisö: Kolme. BRIAN Scassellati: j tulee olemaan 3. Kuinka monta pistettä olen menossa tulostaa? Anteeksi, j tulee olemaan 2. Kuinka monta pistettä olen menossa tulostaa? Yleisö: 2. BRIAN Scassellati: 2. OK, joten aion pitää monesko että matkan varrella. Entä alhaalla? Mikä menee alas täällä? En halua 8 aina lopussa enää? SPEAKER 28: 10. BRIAN Scassellati: Haluan 10 pistettä? Haluan sen muuttaa, liian. Niin miten haluan sen muuttaa? Yleisö: [äänetön]. BRIAN Scassellati: No, jos minä viisi pistettä alussa, kuinka monta piste n pääsen lopussa? Yleisö: Viisi. BRIAN Scassellati: Jos minulla on kuusi pistettä alussa, kuinka monta saan lopussa? Yleisö: Neljä. BRIAN Scassellati: Jos saisin seitsemän pistettä alussa, kuinka monta saan lopussa? Yleisö: Kolme. BRIAN Scassellati: jos olen sai j pisteitä alussa, kuinka monta saan lopussa? 10 j. OK. Joten kokeilla että ulos. Joten aion pelastaa pupu ohjelma. Jälleen kerran me loitontaa. Menemme alas meidän terminaaliin. Me poista se. Ja zoomata. Me teemme pupu ohjelma, taas. Ja me suorittaa sen. O-ou. Pidä kiinni, nyt loitontaa. Sain 10 kuvaa? No, kuinka monta puput näen siellä? 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Sain 10 kuvaa. Ovatko ne kaikki samat? Yleisö: Joo. Ei. BRIAN Scassellati: Ei. Että ensimmäinen, pupu on kaukana vasemmalla. Ja tänne, pupu on pitkälle SPEAKER 29: Oikea. BRIAN Scassellati: Niin, mitä unohdan tehdä? SPEAKER 30: Aloita uusi rivi. BRIAN Scassellati: unohdin aloittaa uuden rivin, jälleen. Sama virhe tein ennen. Selvä, mennään korjata sen. Nyt, olen silti saanut koodi siellä tehdä uuden linjan. Miksi se toimii? SPEAKER 31: Se ei ole silmukan sisällä. BRIAN Scassellati: Voi, se ei ole silmukan sisällä. Oikein. Se istuu ulkona täällä. Ja silmukka on kaikki se sisällä kyseistä tekstiä. Joten aion siirtää tämä sisällä silmukka. Ja minä Tab edessä sen osoittavat, että se on oikeassa paikassa. Ja nyt, me tallentaa sen uudelleen. Me loitontaa. Me siirtyä terminaaliimme. Lähennä. Me remake meidän pupu ohjelma. Ja nyt, nyt meillä meidän 10 kuvaa. [Taputus] BRIAN Scassellati: OK. So. Tässä on meidän sisäkkäisiä silmukoita. Pystyimme tuottamaan vuonna sisemmän silmukan kuinka monta pistettä halusin tulostaa alussa, lopussa. Ja ulompi silmukka ohjataan kuinka monta kuvaa olin rakentamassa. Aloitimme yksi pieni ydin ongelman, ja rakensimme ulos siitä. Selvä. Tehdään yksi askel. Oletko valmis? Siellä on yksi asia tässä, missä olemme oikeastaan ​​eräänlainen sai monimutkaisempaa kuin me tarvitsemme. Katsotaanpa katsomaan. Joten meidän pupu ohjelma, jos olen loitontaa täällä, Olen itse tehdä joitakin samoja asia uudestaan ​​ja uudestaan. Mitä teen, että on eräänlainen sama asia toistettiin kahdesti? SPEAKER 32: Tulosta pisteitä. BRIAN Scassellati: Joo Tulostan ne pisteet kahdesti. Oikeasti, minun olisi pitänyt tämä kommentti tänne. Tulostan joitakin pisteitä at alkaa, oikea täällä. Ja sitten tulostaa joitakin pisteitä lopussa. Ja minä tavallaan täsmälleen sama asia. Mitä aiomme aloittaa työstää vuonna lähiviikkoina on mahdollisuus ottaa nämä lohkot koodi että käytämme yhä uudelleen ja uudelleen, ja kautta prosessi kutsutaan abstraktio, aiomme vetää ne pois ja kirjoittaa ne kerran niin, että voimme sitten käyttää niitä uudelleen yhä uudelleen ja uudelleen. Joten kokeilla. Valmiina? Me aiomme ottaa tämän koodiosion. Ja aion ottaa se pois sieltä. Ja aion define-- alas alareunassa, Aion kirjoittaa uuden toiminnon. Se ei aio palata mitään. Ja aion kutsua sitä printDots. Se tulee ottaa yksi väite, kokonaisluku, joka sanoo howManyDots minun pitäisi tulostaa. Ja nyt sen sijaan tulostus j pisteitä, minä Tulosta Kerro howManyDots minun pitäisi tulostaa. Ja siellä on yksi pieni ongelma täällä. Kukaan tiedä, mitä se on? Mitä minun, joka on listattu täällä, että ei ole määritelty? Yleisö: [äänetön] BRIAN Scassellati: No miten monta pistettä määritellään asti täällä, mutta olen käyttäen, että muuttujaa i. Joten aion ottaa sen muuttujan i ja aion määritellä sen alas täällä sen sijaan. Joten nyt se tulee stay-- oho, sai caps lock on somehow-- olen menossa pitämään i alas täällä. Joten nyt tässä on minun pikku toiminto tai osa-rutiini, ja se sanoo, kuinka monta pistettä olen menossa tulostaa? Ja se tulee läpi tämän silmukan ja tulostaa ne uudestaan ​​ja uudestaan. Voin sitten muokkaan ohjelma täällä. Ja mitä kutsun tämän tehtävän? printDots. Joten Soitan printDots. Kuinka monta pistettä voin haluat tulostaa ensimmäisen kerran ennen pupu? Yleisö: j. BRIAN Scassellati: j. Kuinka monta pistettä voin haluat tulostaa lopussa, kun pupu? 10 j. Ja on yksi asia olen puuttuu. Kuten näitte luento tänään, aiomme julistaa printDots ylhäällä antaa prototyyppi. OK. Joten mitä olen tehnyt on Olen yrittänyt eristää että uudelleen osa koodia että olen tehnyt uudestaan ​​ja uudestaan. Ja olen yrittänyt vedä se ulos niin, että kaikki tämä sisältyy yhteen paikkaan. Näin, jos minulla on virhe jonnekin, Minulla on vain korjata sen yhdellä paikalla. Selvä. Joten tallenna se. Ja nyt varmista, että se toimii. Joten mennään ulos. Menemme jälleen meidän terminaaliin. Me suurentaa. Teemme että pupu prosessi. Oi. Ja se on antanut minulle varoituksen. Mitä se kertoo minulle? Hyvin tahansa näistä kertaa, haluat aina Selaa jopa aivan ensimmäinen error-- nyt tässä, Minulla on vain yksi. Se kertoo minulle bunny.c, on line 8 sarake 9, siellä ongelma. Siinä sanotaan, olet julistanut muuttujaa i ja et ole käyttänyt sitä. Nyt normaalisti, se on ei pahin virhe. Se on helppo korjata. Ja itse asiassa, voimme mennä takaisin. Voimme mennä takaisin pupu. Ja tässä tapauksessa, kaikki me tarvitsee vain päästä eroon i, koska emme käytä i sisällä tärkein enää. Me vain käyttää sitä meidän osa-rutiinia. Joten säästää että. Menemme takaisin. Ja zoomata. Me vielä kerran tehdä pupu. Ja taas ovat meidän 10 kuvaa. OK. Aina olet antanut procedure-- Joo. SPEAKER 33: Minulla on a-- olen hämmentynyt. Voitko palata koodin? BRIAN Scassellati: Jep. SPEAKER 33: Joten, kun kirjoitit teidän prototyyppi, argumentti oli se nimeltään kutsuttiin howmany? Mutta, below-- BRIAN Scassellati: Ai niin. SPEAKER 33: --called heille jotain eri, en ymmärrä. BRIAN Scassellati: Miksi ne eroavat toisistaan. Niin se on hyvä kysymys. Joten kysymys oli, ylös täällä, kirjoitin howmany, ja alhaalla, kirjoitin howManyDots. Syynä on, että jopa oman prototyyppi, Se on oikeastaan ​​ole kiinnittänyt huomiota nimien että olet ottamassa. Kaikki se todella välittää on, että se on kokonaisluku. Se haluaa tietää lomake mitä olet ottamassa. Nyt stylistically-- oops-- mitä minun pitäisi do, on haluan tehdä näitä ottelussa. OK. Koska se ll olla pitää se helpompaa minulle muistaa. Mutta se oli minun virhe Joo. SPEAKER 34: Ja niin prototyyppi töihin, vain kirjallisesti linja, kirjoittaminen prototyyppi, mahdollistaa, että toiminto, joka tulee oikeus alla se mennä loppuun ja hakea mitä se tarkoittaa? BRIAN Scassellati: Mitä se tarkoittaa on kun kääntäjä menee läpi, se menee ylhäältä koodi pohjaan. Ja mitä tämä prototyyppi on, on se pohjimmiltaan lupaus. Siinä sanotaan, että tulee olemaan määritetty toiminto jonnekin. Se tulee olemaan nimeltään printDots. Ja se tulee ottaa yksi argumentti että tulee olemaan kokonaisluku ja se tulee palauttaa mitään, mitätön tyyppi. OK. Lupaan teille, että se tulee olemaan määritellään jonnekin tiellä. Mutta aina kun näet että, kuten mennä alas läpi loppuelämäni päätehtävä, haluan voit käsitellä että funktiona että kestää yhden kokonaisluvun tulo. Ja niin kun kääntäjä menee alas kautta, se näkee, että lupaus. Ja kun se saa alas, pitää käynnissä, pitää käynnissä, se löytää ensimmäisen kerran printDots on mainittu. Ja se sanoo, Oh, annat minulle tämä j. j on kokonaisluku. No lupasit minulle, että olisi oltava kokonaisluku ja se on totta. Se on ok. Ja sitten lopulta, alas alareunassa, ennen kuin saan loppuun minun tiedosto, minä tehdä hyvää lupaukseni ja minä määritellä se. OK? SPEAKER 35: Niin, se saves-- ohjelma säästää välilyöntejä että se menee takaisin ja täyttää lopussa? BRIAN Scassellati: Se ei ole noin muistin jakamista. Se on oikeastaan ​​vain siitä, mitä tyyppi odotatte nähdä. Jos tämä asia on yksi argumentti, tai viisi argumentteja? Pitäisi olla se kokonaislukuja olla joka sille on annettu, tai jouset? Siinä kaikki se etsii tehdä, on tarkistaa, annat minulle oikeanlaista argumentti. OK? Selvä. Saanen jättää sinulle yksi muu bitti katsomaan. ASCII taide ei ole suuri malli animaatio kuin nykyään. Mutta jotkut ihmiset tietenkin ottaa asiat ja he työnnä se heidän äärimmäisyyksiin. Tämä on, kuten David osoitettu luento, koodinpätkä että sinun pitäisi missään tapauksessa yritä kopioida itse. Koska se on kauheaa tyylillisesti. Itse asiassa, se on suunniteltu niin vaikea mahdollisimman lukea. OK. Joten, tehdä uudelleen, nyt zoomata täällä. Aion mennä nyt, muutos hakemistoon. Aion mennä yhden tasolla, takaisin minun työtilaan. Minä sitten muuttaa hakemisto tähän muut hakemisto että olen luonut. Ja tämä on kansainvälisen Sotkettu C-ohjelmointi Contest. Sotkettu välineet niin kovaa mahdollisimman ymmärtää. Joten, älä pelkää, jos tarkastellaan tässä ja mennä, en voi lukea, että. Se kysymys. OK? Mutta meillä on tämä erinomainen ohjelma, joka olen menossa katsomaan mennessä kirjoittamalla enemmän. Ja nyt nähdä, jos voin loitontaa vain vähän, joten voit nähdä sen Ja tämä on ohjelma. Se on nimetty endo.c. Ja se näyttää tältä ämpäri Tällainen kirjaimet F-L-U-I-D se. Tämä on itse asiassa ohjelma. Se on kirjoitettu eniten hämärtää että kirjoittajat voisi mahdollisesti Kirjoita se. Mutta se on ihana pieni pala, joka luo mallin virtausmekaniikan. Ja niin me aiomme antaa että malli tulo, joka näyttää tältä, ja staired asettaa säiliöiden joidenkin nestettä, jotkut neste, ylös huipulla. Ja meillä on se simuloida mitä tapahtuu sen. Joten Soitan että toiminto, endo. Ja minä annan sen, että syötetiedosto että olen ollut. Ja on meidän ruumiillistuma ASCII. Täysi nestedynamiikkavälineet simulaattori käynnissä vain muutaman rivin koodia. Nyt mitä oikeastaan ​​todella hämmästyttävä tästä pikku ohjelma on, että haluan lopettaa sen nyt, joten aion käyttää mitä komento? Yleisö: Ctrl-C. BRIAN Scassellati: control-C. OK. Joten minä käytän Ctrl-C. C Se tulee lopettaa se. Minä tyhjentää uudelleen. Ja nyt aion vedota ohjelma, suorita ohjelma, käyttäen itse syötteenä. Ja näemme nestedynamiikkavälineet simulointi se sulaa. OK. Älä anna että ohjelma olla asia, joka hämmentää sinua. Se on vain niin että voimme päättyy jotain kivaa ja mielenkiintoista. OK. Onnea kanssa ongelman sarjaa. Otamme mielellämme vastata kysymyksiä tunnin jälkeen. Kiitos paljon, kaverit.