[Musiikkia] DAVID MALAN: Hei, kaikki. Tämä on CS50: n supersection. Sidotut Osiot eivät aloittaa vielä viikon. Ja niin tänään, olen täällä with-- MARIA: Maria. DAVID MALAN: kahden kesken todella katsomaan ongelma asettaa yhden, kurssin ensimmäisten viikkojen materiaalia, pääset suunnattu CS50 IDE, vähän Linux, käyttöjärjestelmä, joka on käynnissä IDE, sekä tarkastelemme joitakin siirtyminen tyhjästä C johtavan jopa ongelma asettaa yhden. Joten pitemmittä puheitta, ongelmatilanteissa asettaa yhden, aiot olla käyttöön CS50 IDE, joka on tämä web-pohjainen ohjelmointi ympäristö että me käyttää, jotta kirjoittaa ohjelmia. Sitä on suunniteltu näyttämään hyvin muistuttaa tyypillisen tietokoneen järjestelmän toiminnassa toiminta nimeltään Linux. Mutta se on ns pilvi, mikä tarkoittaa jokainen luokka saattaa olla hänen omaan lukuunsa ja käyttää sitä, samoin. Joten useimmat varmaan ole koskaan käyttänyt Linux-ympäristössä ennen tai ehkä jopa komentoriviltä ympäristössä. Ja komentoriviltä ympäristö on erilainen. Se kaikki tekstisisältöä. Se kaikki näppäinkomentoja. Ja se ei ole Mousing, ei kuvakkeet, ei vuoropuhelua ikkunoita, valikoita ei. Se on puhtaasti tekstiä. Joten ensin, se sellainen of tuntuu askel taaksepäin kannalta hienostuneisuutta. Mutta se päätyy paljon tehokkaampia, varmasti, tietokonetta tiedemies, lopulta. Joten katsomaan. Täällä olen siitä CS50.io, jonka kautta voit kirjautua CS50 IDE. Ja aivan kuten Scratch, siellä kolmella tärkeällä osa tähän näyttöön. Niin vasemmalla puolella, meillä on mitä tulee tiedostoselain. Ja siellä tämä kansio top, joka on juuri nyt tyhjä koska pääsin eroon kaikista minun tiedostot ennen supersection. Ja siitähän me will tallentaa C tiedostot me kirjoittaa. Oikeassa yläkulmassa, meillä on paikka, jossa kaikki meidän koodi tulee saada kirjallinen. Ja todellakin, jos napsautan tämä plus, tämä on aio antaa minun valita uusi tiedosto. Ja tässä voin alkaa kirjoittaa C-koodia tai, todella, useita muita kieliä. Ja sitten alaosassa, jossa se sanoo jharvard @ ide50-- ja sinun tulee sanoa jotain hieman different-- mitä tämä nimi on? Pääteikkuna. Joo. Niin pääteikkuna on ns komentoriviltä liityntätyypin voit olla vuorovaikutuksessa kanssa taustalla käyttöjärjestelmä. Ja nyt, me aiomme tehdä hyvin vähän käyttöä this-- vain koota, katsomaan virheilmoitukset näemme, ja ajaa meidän ohjelmia. Mutta lopulta aiomme tehdä niin paljon enemmän, samoin. Ja voit jopa asentaa ohjelmia ja hallinnoida työtilan sisällä CS50 IDE, samoin. Mutta siitä lisää joskus toiste. Joten mene eteenpäin ja kirjoittaa hyvin yksinkertainen ohjelma vain käydä läpi warm-up hello.c, joka on ehkä yksinkertaisin ohjelma voimme kirjoittaa. Olen jo avannut uuden välilehden. Aion mennä eteenpäin ja sanoa ovat standardin io.h. Sitten int main (void). Ja sitten printf ("Hei, maailma" kenoviiva n, lähellä lainaus, lähellä suluissa, ja puolipiste. Selvä. Joten nyt huomaa minun ikkuna on nimetön. Joten olen hyvin nopeasti menossa mennä jopa Tiedosto, Tallenna. Ja on tärkeää, että Kutsun tätä ei "hei." Niin hyvin yleinen virhe, varsinkin ongelma asettaa yhden, on vahingossa vain soittaa ohjelma "vesi" tai "ahne" tai "Mario" tai "luotto" tai vastaava. Mutta te todella haluavat tehdä että sinulla on tiedostopääte koska tämä on ainoa tapa, että kääntäjä ja myös koodieditori tietää, että olet todella kirjallisesti C-koodia. Joten anna minun mennä eteenpäin ja valitse Tallenna. Ja nyt, liian, mitä CS50 IDE on tehnyt meidän on se myös syntaksi korostettu kaiken. Joten se on tehnyt kaiken erittäin värikäs. Ja koko tarkoitus joka ei ole toiminnallinen. Se on vain tehdä silmäni käsitteellisesti eri palaset tämän ohjelman. Joten mene eteenpäin ja koota tätä. Ja voin koota tämän pari tapaa. Ja viikolla yksi, vanhan koulun tapa teimme se oli kirjaimellisesti komento line-- "kalahtaa hello.c." Ja sitten Enter. Ja mikään ei tunnu tapahtuvan terminaalin ikkunassa. Mutta mitä teki muutoksen IDE? Jos taas IDE vain tarkoittaa Integroitu kehitysympäristö. Se on hieno tapa sanoa tämä yhtenäinen kehittäminen ympäristö kehittää ohjelmistoja. Joten mitä muuta käyttöliittymässä? Mitä huomaat se on eri asia, Maria? MARIA: huomasin jotain alle IDE50 kansio täällä. DAVID MALAN: Joo. Joten täällä, ei vain meillä on "hello.c." Meillä on myös "a.out", joka on tavallaan tyhmä nimi ohjelman. Mutta todellakin, se on oletusnimi ohjelma kun vain kääntää koodia ja älä kerro kääntäjä mitä tiedosto lähtöön. Joten jos haluan suorittaa tämän, minä täytyy kertoa compiler-- tai pikemminkin, minun täytyy kerro työtilan I haluat ajaa ohjelma nimeltään "a.out." Anna. Ja siellä on "Hei, maailma. "nyt" ./ ". on todella tärkeää. Vaikka yleensä me vain kirjoittaa nimet komentoja, kun se on ohjelma olet kirjoitettu, et halua sanoa "./" koska se nimenomaisesti kertoo Linux että haluat suorittaa ohjelma nimeltä "A.out", joka on tässä, missä piste tarkoittaa tämä hakemisto että olen tällä hetkellä kaupungissa, joka sattuu olemaan nimeltään työtila, "a.out. Koska jos juuri sanoin "a.out," Enter, Aion saada "a.out komento ei löydetty ", koska computer-- koska en keksi "a.out;" se ei tullut computer-- ei tiedä mistä etsiä sitä, vaikka se on oikea alle nenäni, niin sanoakseni. OK. Jotta voisimme muuttaa tätä olla "kalahtaa -o hei hello.c." Ja jos minä Enter, mitä ohjelmaa tämä tulee lähtö minulle? Mikä tiedoston nimi? Joo, takana. Oikein. "Hei." Niin "hei" tulee olemaan ohjelman nimi koska olemme käyttäneet ns Komentoriviargumentti, joka on vain tapa muuttaa käyttäytymistä kääntäjä todella ulostulo tietyn tiedoston nimi. Ja todellakin, jos minä zoom ulos ja etsiä täällä, Nyt en ole vain "a.out" ja "Hello.c" vaan myös "Hei," samoin. Joten nyt voin tehdä "./hello," Enter. Ja siellä on "Hei, maailma." Mutta lastly-- ja tämä on nyt yleissopimuksen käytämme koko lukukausi, typically-- on voit myös vain sanoa "tehdä hei." Ja todellakin, se sanoo se on jopa mennessä, koska se on jo olemassa. Anna minun mennä eteenpäin ja poistaa, kanssa rm komento, sekä "a.out" - ja sanoa "poistaa tavallista tiedostoa a.out?" Se vain tarkoittaa, oletko varma, että haluat poistaa sen? Aion sanoa kyllä. Ja sitten aion poistaa "Hei", mutta ei "hello.c." Aion sanoa "kyllä" nimenomaisesti, mutta "y" on riittävä, samoin. Ja nyt huomaa, jos en tyypin ls-- joka, muistaa, tarkoittaa list-- siinä luetellaan kaikki tiedostoja minun kansioon. Ja todellakin, jos minä zoom ulos ja katsomaan vasemmassa yläkulmassa, se vahvistaa, että mitä tässä kansiossa, vaikka vaikka se on merkitty IDE50 täällä eikä työtila, se on vain "hello.c." Joten nyt täällä, jos en do "tee Hei," Enter, nyt näen paljon kauemmin komento mutta kehittyneempiä komento että menee olevan käyttökelpoisia tulevina viikkoina. Ja nyt voin sanoa "./hello." Joten ottaa nopeasti kiertue jotkut muut Linux-komentoja. Niin miksi ei otamme askeleen takaisin ja todella katsoa C lisää yleensä, siirrytään Scratch C, ja sitten lopuksi katsoa ensimmäisessä ongelma asettaa C. Selvä. Joten aion mennä eteenpäin ja vain puhdas minun työtila Control-L vain pitää näytön siisti. Mutta se ei ole toiminnallista vaikuttaa muuten. Muista, että olemme nähneet muutamia komentoja nyt. Joten olemme nähneet kalahtaa, jotka yleensä te ei tarvitse suorittaa manuaalisesti enää. Me sen sijaan käyttää tehdä. Mutta näimme myös ls, joka osoittaa listaus tiedostojen minun hakemistoon. Ja nyt miksi there-- siellä kaksi tiedostoja nyt, "hei" ja "hello.c." Miksi on olemassa tähti tai tähti jälkeen "Hello"? Mitä, jotka merkitsevät, perustuu mitä näimme viikko yksi? Mitä mieltä olet? Mitä tähti merkitsevät? MARIA: For-- ohjelma "hei"? DAVID MALAN: "Hei *". Joo. Todellakin? Voi, suoritettavan. Oikein. Niin se tarkoittaa, että "Hei" on suoritettavissa. Niin todellakin, siksi Voin tehdä "./hello." Selvä. Mitä muuta voin tehdä täällä? No, se kääntyy pois voin myös luoda hakemistoja. Joten anna minun mennä eteenpäin ja luoda, Esimerkiksi "pset1" hakemistoon. Ja ongelma asettaa erittely on sinun tehdä juuri tätä, joten sinun ei tarvitse muistaa tänään. Mutta "mkdir pset1" näyttää olevan mitään vaikutusta. Mutta jälleen kerran, ei virheilmoituksen on yleensä hyvä asia. Joten jos kirjoitan "ls" now-- Ah, nyt Minulla on suoritettava tiedosto nimeltä "Hei," C tiedosto nimeltä "hello.c." Ja sitten vinoviiva, niin puhua, tarkoittaa, että tämä on hakemisto. Joten todellakin, nyt haluan avata sen. Enkä kaksoisnapsauttamalla sitä kuten in GUI, graafinen ympäristö. Minä sen sijaan sanoa "cd pset1." Anna. Mitään mielenkiintoista näyttää tapahtui paitsi pikku ajallaan here-- tämä on Linuxin keino muistuttaa missä minä olen, niin mikä kansio on auki. Se on vain kertoa minulle nimenomaisesti toisin kuin graafisesti. Ja jos kirjoitan "ls," miksi minä näen toisen kysyy heti, luulet, kun I luettelo sisällön pset1? MARIA: luultavasti eivät mitään siellä. DAVID MALAN: Joo. Niin sitten meillä ei ilmeisesti luotu mitään siellä koska olen juuri luonut hakemistoon. Nyt, jos halusin luoda file-- varten Esimerkiksi voisin luoda uuden tiedoston. Ja sitten voisin mennä Tallentaa ja tallentaa sen, kuten "mario.c", jos teet standardin painos PSET yksi. Ja sitten, kuten tahansa Mac tai PC, vain valitse kansio "pset1, Tallenna. Ja nyt tiedosto on tyhjä. Mutta katsotaanpa lähentää jälleen toinen. Tehdään ls täällä. Nyt näemme "mario.c". Joten siellä on muutamia muita komentoja, jotka kannattaa pitää mielessä yli time-- kirkas, tai Control-L on mitä olen ollut lyömällä; mkdir olemme nähneet; rm olemme nähneet, samoin, joka on poistamiseksi tai poistaa tiedoston. Varo voit also-- ja jos katsotte online tutorials, sinun rm-rf on hyvin yleinen tapa sanoa Poista kansio, jolla on tavaraa siinä. Vain olla super, super varovainen. -rf tarkoittaa rekursiivisesti poistaa mitä se on yrität poistaa ja väkisin poistaa sen. Joten rekursiivinen keino jos se kansio kansio kansio kansio, poistaa ne kaikki. Ja väkisin keinot eivät edes ask me kyllä ​​tai ei, olen varma? Joten se on erittäin vaarallinen tapa poistamalla paljon tavaraa nopeasti. Mutta beware-- liian usein tekee Intrepid opiskelija vahingossa poistaa, vaikkapa PSET yksi, esimerkiksi. MARIA: Ja jos he vain do -r, he aikovat kysyä heiltä joka ikinen tiedosto. DAVID MALAN: Mikä on kohtalaisen ärsyttävää. MARIA: Joo. DAVID MALAN: Joten siksi niin monet meistä, itse mukana, olen tapana käyttää -rf. Mutta se on vaarallista. Joten ostaja varokaa. Ja sitten mv on eräänlainen mielenkiintoisesti nimetty. Joten tämä on liikkeellä komento, joka tuntuu hieman outo koska voit todella käyttää sitä siirtää tiedostoja paikasta toiseen. Oletetaan esimerkiksi, että minä sekaisin. Oletetaan, että olen luonut uusi tiedosto PSET. Ja olen tallentanut sitä "greedy.c." Mutta kai vahingossa tallenna se vuonna IDE50-- joten minun työtilaan itse eikä pset1. Voit nähdä niin paljon vasemmassa yläkulmassa. On "greedy.c." Ja siellä on muutama ratkaisuja. Joten, voin käyttää Super käyttäjäystävällisesti vain vetämällä ja pudottamalla se. Ja että todella Korjaa ongelma. Mutta tänään, yritämme katsoa enemmän mystistä mutta tehokasta tapaa tehdä tämä. Joten Otan "ls" in pset1. Ja minä vain nähdä "mario.c." Anna minun mennä eteenpäin ja tehdä "cd ..". Joten CD taas on muutos hakemistoon. ".." Tarkoittaa mitä, vaikka? Viime kerralla sanoin "CD pset1 "mennä pset1. Joten kun sanon "cd ..", mitä teen? Taaksepäin. Joo. Joten se tulee niin sanottu vanhemman. Mene yksi taso ylös, kuten poistuminen pois kansiosta. Niin Enter. Ja todellakin, katso mitä se teki. Se muutti minua vain työtilaan sijaan Into pset1, joka on työtilassa. Ja nyt jos kirjoitan "ls", siellä koko joukko tavaraa. Siellä on "greedy.c". Joten nyt haluan käyttää mv kirjaimellisesti siirtyvät "greedy.c" osaksi pset1. Ja niin paljon Linux-komentoja toimivat täsmälleen näin. He ottavat mitään perusteluja tai ne ottaa yksi väitettä tai ne vievät kaksi komentoriviltä perusteluja ja niin edelleen. Ja tässä tapauksessa, se on kirjaimellisesti sitä, mitä se sanoo, vaikkakin succinctly-- Siirrä greedy.c osaksi pset1. Anna. Mikään ei näytä tapahtuvan. Mutta jos en ls uudelleen, ahne on mennyt. Ja jos en tee "CD pset1", Anna, ja sitten ls jälleen, nyt se on oikea paikka. Sivuhuomautuksena, jos jotkut reason-- erityisesti jos sinulla on ajoittaista verkkoliitäntä tai olet käveleminen kampuksella kannettavan tietokoneen kansi suljettu ja avaa se sitten ylös uudelleen ja työtilan vaikuttaa hieman epätahdissa, no big deal. Vain lataa selain ikkuna, ja se olisi resync niin että vasen tiedostoselain näyttää täsmälleen kuten pääteikkuna. Älä huoli. Jos olet epävarma, lataa sivu, niin kunhan olet tallentanut tiedostoja jo. OK. Joten mv voi käyttää myös nimetä tiedostot. Ja lähdetään katsomaan tämä lopullinen komennon täällä. Niin suppose-- ja tämä on Super yhteinen, liian, varhain. Jotkut opiskelijat joskus luoda tiedoston nimeltään, katsotaanpa say-- mikä on toinen? Kuten "WATER.C." Joten minä vain huutaa, varten mitään syytä, kaikissa lippikset. Mutta tämä ei ole oikea tiedostonimi jos vain koska meidän Harjoitus erittely ei kertonut sinulle tallentaa tiedoston kaikki korkit "WATER.C." Sen sijaan odotamme "Water.c" pienillä kirjaimilla. Ja, itse asiassa, tämä on ongelmia, koska check50, ohjelma olet menossa tapaavat ongelma asetetaan joka testaa automaattisesti oikeellisuudesta koodin aikoo huutaa sinulle, jos se ei voi löytää "water.c" kaikissa pieniä. Joten minun täytyy korjata. Niin monia eri tapoja tehdä tämän, joista ensimmäinen olisi Control-osoita tai napsauta hiiren kakkospainikkeella tiedoston nimi ja vain muuttaa Nimeä uudelleen. Täysin hieno tehdä. Mutta jälleen, tänään, katsotaanpa tehdä sen hieman harrastaja. Katsotaanpa käyttää mv muuttaa "WATER.C" ja "water.c." Joten voit myös käyttää ensimmäinen argumentti nimetä sen toisen väitteen jos toinen väite ei ole, vuonna Itse kansion tai hakemiston nimi. Selvä. Ja lopuksi, hieman trick-- joten olen työtilaani hakemisto tällä hetkellä. Jos haluan päästä PSET yksi, Voin varmasti kirjoita "cd pset1." Mutta se on niin ikävä kirjoittaa "pset1" tai enää tiedostojen nimet tai hakemiston nimiä edelleen. Joten hyvin usein Linux, mitä voit tehdä on aloittaa kirjoittamalla "PSE" ja vain kyllästy, osuma Tab, ja anna tietokone luku sitä sinulle. Super hyödyllistä päästä tästä tavasta. Ainoa saalis on, jos sinulla on useita tiedostoja tai kansioita alkaen kirjaimella "p" tai "Ps" saatat olla kirjoittaa muutaman ennen tietokone tietää mitä tehdä. MARIA: Haluamme pikanäppäimet. DAVID MALAN: Tämä tahto säästää niin paljon aikaa. Ja myös, kuten totesimme luento, sinua voi vierittää ylös historiassa, ylös ja alas, löytää teloitettiin äskettäin komentoja, samoin. Selvä. Joten nyt, nyt kääntää huomion takaisin on yksinkertainen ohjelma, Hello World. Joten olemme laatineet tämän juuri. Ja nyt miksi emme ota Katso tietotyypit ja sitten siirtyminen joidenkin vastaava Scratch korttelia C. MARIA: Mahtavaa. Joten nyt olet aloittanut kirjallisesti ohjelmia C, aiomme alkaa puhua noin tietotyypit ja muuttujat. Joten joitakin tietoja tyyppejä, että olet haluaisi tietää alkaa nyt ovat ne, jotka ovat korostettu sinisellä. Joten meillä on int ensin, joka tarkoittaa kokonaisluku. Ja joka pitää kokonaislukuja, kun voi olla guessed-- niin 1, 2, 3, ja muut kokonaislukuja että voit ajatella. DAVID MALAN: Ja myös negatiivinen. MARIA: Ja myös kielteisiä, jep. Ja 0. Sitten meillä on kellukkeet, joka ovat liukulukuja. Niin, että kaikki todelliset luvut että on desimaaleja. Niin 5.0, 5.2, ja vielä numeroa desimaalipilkun jälkeen, samoin, ja myös kielteisiä. Sitten meillä on nieriä, joka on merkki. Joten mielestäni puhuimme tämä luento tänään. Mutta meillä on kirjaimia, sillä example--, B, C-- joka voidaan tallentaa merkki. Mutta sitten meillä on paljon enemmän symboleja että voidaan tallentaa char. Ja ne tallennetaan ASCII. Ja sitten meillä on bool, jotka ovat Booleans. Ja ne on tosi tai Vääriä tai 1 ja 0, vastaavasti. DAVID MALAN: Ja muistaa että bool tulee CS50 kirjastosta. Joten se ei ole rakennettu C, mutta se on erittäin hyödyllinen on käsite oikean ja väärän. Ja vaikka saattaa think-- hauskaa tosiasia. Bool teknisesti tarvitsee kuinka monta bittiä, todella, edustaa True vs. False? Kuinka monta bittiä luulet sinun olisi, maksimaalisesti? Joo, vain yksi. Joten käy ilmi, että C voi antaa vain yhden bitin. Pienin mittayksikkö voit saada on kahdeksan. Joten se on vähän tuhlaileva ne olet käyttämällä koko tavu, tai kahdeksan bittiä, edustamaan Oikein vai väärin. Mutta se on vain tapa se on täytäntöön C CS50 kirjaston. MARIA: Ja sitten niitä, jotka olemme aio puhua niin laajasti oikea now-- kaksinkertainen, se on isommille kelluu. Pitkä pitkä ja lyhyt ovat myös kokonaislukuja. DAVID MALAN: Todellakin. Vuonna hakkeri painos PSET yksi, me itse käyttää pitkään pitkään. Mutta Standard Edition, sen ei pitäisi olla tarpeen. MARIA: Cool. OK. Joten operators-- sinun pitäisi olla varmasti tuttuja useimmat näistä. Lisäksi, +; vähennyslasku, -. Kertolaskuissa meillä on *. Joten ei X että me yleensä käyttää. Jako, meillä on kenoviiva. Ja modulo on viimeinen operaattori että aiomme puhua juuri nyt. Se operaattori, jonka avulla voimme ottaa loput jako. Joten jos meillä on 4% 2, 4 jaettuna 2 on 2 jäljellä 0. Joten 4% 2 on 0. 4% 3 on 1. 4% 5 4, kun olisit voinut arvata. Ja muistakaa käytettäessä kaikkia näitä toiminnanharjoittajat voivat käyttää PEMDAS sääntöjä. DAVID MALAN: Joten tehtävä selväksi, jos do 4% 2, miksi on, että 0, tarkalleen? MARIA: Koska 4 jaettuna 2 on 2 jäljellä 0. Joten modulo antaa meille että loppuosa vastustaa jakautumisen seurauksena. DAVID MALAN: Ja todellakin, mitä me löytää tästä apua sillä on, että joitakin ongelmia se ei välttämättä ole, jos haluat olla rajoittavat itse käyttää erilaisia ​​numeroita kuten 0 kautta jotain, voit käyttää modulo Ulottumamitan aikaisintaan kuten 2000000000 tai 4000000000 arvo olemme puhuneet luento. MARIA: Joo. Ja jopa "ahne" voisimme. DAVID MALAN: Kyllä, Harjoitus yksi, samoin. MARIA: Joo, kiva. DAVID MALAN: Hyvä vihje. MARIA: Anteeksi. Boolean expressions-- niin Boolen operaattoreita, aiomme puhua kaikista Näiden että näet täällä. Joten nyt, meillä on kaksi yhtäsuuruusmerkit listattu tasavertaisina. Joten ne ovat vertailun. Toistaiseksi olemme vain nähnyt yhtäläisyysmerkki. Silloin asetamme arvon muuttujaan. Joten jos olemme nähneet int n = 5, niin olemme määrittäneet 5 muuttujan n. Mutta jos haluamme käyttää == varten vertailu, voimme tarkistaa, jos n == 5. Ja jos n == 5, niin se on totta. Niin Boolen operaattorit antaa meille, pohjimmiltaan, arvioida Boolen lausekkeet Oikein vai väärin. Joten ei equals-- meillä huutomerkki ja tasavertaisina. Jotta voisimme myös tarkistaa, jos n ei vastaa 5-- niin n! = 5. Vähemmän kuin vähemmän kuin tai yhtä suuri kuin, suurempi, suurempi tai yhtä suuri kuin, ja sitten meillä on looginen JA ja looginen TAI. Ja ne antavat meille mahdollisuuden arvioida useita Boolen operaattoreilla yhdessä periaatteessa tulla yhdessä yksi koko ehtolauseke. Joten jos haluamme löytää useita, sanovat, joka on suurempi kuin 5, mutta vähemmän kuin 15 Samalla, me käyttäisimme looginen AND-operaattori nähdä, jos n on yli 5 && n alle 15. DAVID MALAN: Ja tässä, liian, se on helppoa varhain vahingossa Käytä vain yksi et-merkki tai yksi pystysuora palkki. Ja toivottavasti kääntäjä huutaa sinulle, koska ne todella on hyvin erilainen merkitys. Niille utelias, he käytetään bittioperaatioita, toimivat yksittäisiä bittejä. Mutta et halua pari niistä täällä. Ja Super Tärkeää on, että Ensimmäinen, yhtäläisyysmerkki, joka on yhtäsuuruusoperaattorin kuin vastustaa Sijoitusoperaattori. MARIA: Ja pystypalkki on välissä Poista ja paluu. DAVID MALAN: Kyllä. Tyypillinen Yhdysvaltain näppäimistö. MARIA: Jep. Joten hypätä suoraan ehtolauseet. Scratch, olet jo nähnyt, luultavasti, jos lausunnot, joiden avulla voit tarkista jos jotain on totta, niin tehdä jotain muuta. Joten ehkä halunnut tarkistaa, jos sprite on koskettaa joitakin muita sprite tai raja näytön. Ja sitten ehkä halunnut lopettaa pelin tai tehdä jotain muuta. Joten syntaksi että on "jos (ehto)." Joten jos Sprite koskettaa jotain, niin älä sisällä aaltosulkeiden. Sitten meillä on if-else lausuntoja. Else antaa meille mahdollisuuden tehdä jotain jos sillä edellytyksellä, että me tarkista alussa ei ole totta. Joten jos Sprite koskettaa raja tehdä tämän, muun tehdä jotain muuta. Niin muuten tehdä jotain muuta. Sitten meillä on lyhyt esimerkki tästä. Joten jos (military_time <12), me haluavat printf "Hyvää huomenta!" Muuten aiomme printf "Hyvää iltaa!" Basic esimerkki. DAVID MALAN: Hyvä. MARIA: Cool. Joten nyt meillä on kytkin lausuntoja. Switch lausuntoja yleensä voi jotta voisimme tehdä paljon sama asia että olemme juuri puhuneet noin, jos lausuntoja. Esimerkiksi juuri nyt meillä yleinen muoto kytkin selvitys joka antaa meille mahdollisuuden ottaa muuttuja nimeltä n ja vertaa sitä paljon eri arvoja, jotka tässä me ovat vaatineet VAKIO 1, constant2. Meillä voi olla paljon enemmän. Ja ne kutsutaan tapauksissa. Joten jos meillä on kytkin statement-- ja tämä toimii vain integers-- meillä muuttuja tässä tapauksessa se on n. Jos muuttuja n on yhtä VAKIO 1, me tulee suorittaa joitakin koodinpätkän tai jotain, että haluamme tehdä. Ja sitten me murtaa. Joten tauko merkitsee sitä, että kytkin selvitys pysähtyy täytäntöönpanovaltion jos n on VAKIO 1, ja sitten ohjelma jatkuu. Se poistuu ulos kytkin selvitys ja se tulee edelleen tehdä jotain muuta. Jos, kuitenkin, n ei ole yhtä suuri kuin VAKIO 1, sitten asia constant2 tarkistetaan. Joten jos n on constant2, että muut koodinpätkä toteutetaan. Ja sitten se tulee tauko jos se on yhtä suuri kuin se. Ja sitten voimme olla also-- ei väistämättä, though-- oletuksena tapauksessa joka tapahtuu, jos N ei ole sama kuin tapauksiin, että olet luetellut. Ja oletuksena tapauksessa, me myös ei tarvitse tauon välttämättä koska kytkin selvitys tietää että se tarvitsee päättyvät oletuksena jos näin on. DAVID MALAN: Mutta tyylillisesti, Olemme aina laittaa sen sinne. MARIA: Joo. DAVID MALAN: Joo. Joten varsinkin kun alkaa, varsinkin jos joukossa vähemmän mukava, olisin henkilökohtaisesti vain suosittelevat kiinni jossittelua ja IFS-elses ja if-else-if-elses ja niin edelleen, jos vain koska he hieman yksinkertaisempi. Tämä on mukava optimointi, tai joskus jopa esteettisesti se tekee koodin luettavuutta. Ja itse asiassa, luultavasti Syyslukukauden näemme ongelma vahvistettu, jos se vain näyttää paremmalta ja helpompi lukea ihmisille käyttämällä kytkin selvitys. Mutta älä ole huolissasi kiinni tämän liian aikaisin. MARIA: Joo. Jos sinulla on paljon jos lausunnot, se voi vain olla helppolukuinen. Se ei ehkä ole kovin nopea voit mennä läpi. Joten kytkin lausunnot voi olla erittäin hyödyllinen, samoin. Ja myös, älä remember-- älä unohda laittaa taukoja siellä. DAVID MALAN: Älä muistaa tämä. MARIA: Koska niin saatat pudota kautta yhdestä asian toisen. Joten sanotaan, että asia VAKIO 1 ei ollut break-lause siinä. Sitten voisimme pudota kautta sisällä tapaus constant2. Ja emme halua tehdä sitä, jos olemme jo saavuttaneet asiassa VAKIO 1 ja se on yhtä suuri kuin n. Niinpä esimerkiksi, jos meillä on muuttuva n, joka sisältää luokan numero, ja haluamme nähdä mitä tuo luokan is-- jos n on 50, aiomme tulostaa "CS50 on Johdatus Computer Science I. " Sitten aiomme rikkoa. Ja se on siinä. Jos, kuitenkin, n on yhtä suuri kuin 51, aiomme tulostaa "CS51 on Johdanto Computer Science II. " Sitten taas, aiomme rikkoa. Jos kuitenkin niin laitamme 124, 61, kaikki muu numero että saatat ajatella, tai ohjelma ei aio tunnustamaan, että. Joten se tulee sanoa, "Anteeksi, olen ole perehtynyt kyseiseen luokkaan. " Ja se tulee katkaista. DAVID MALAN: Joten voit todella nähdä jos, if, muuten ajatus tässä. Se on vain erilainen syntaksia ilmentävät täsmälleen sama ajatus. MARIA: Aivan. Nyt meillä on kolmen komponentin toimijoille. Joten ternäärinen operaattorit ovat kolme parts-- kunnossa, jotain tekemistä jos että ehto on tosi, ja sitten jotain tekemistä jos tämä ehto on epätosi. Niin näet, pohjimmiltaan, syntaksin että täällä. Meillä on kysymysmerkki, ja sitten the-- mitä me kutsumme tätä? DAVID MALAN: kaksoispiste. MARIA: Colon. Kiitos. Anteeksi. Joten tutustu esimerkiksi katso jos voimme saada tolkkua this-- class_num == 50. Joten tässä näemme Looginen operaattori == joka vertaa muuttuva class_num 50. Joten class_num myymälöissä kokonaisluku. Ja jos kokonaisluku vastaa 50, niin olemme menossa tallentaa "David Malan" sisällä merkkijono professori. Jos luokan numero ei suuruudeltaan 50, "ei David Malan" tulee olemaan professori. DAVID MALAN: Kiitos. Ja niin tämä näyttää vastaavan mitä, sanoisit, ensi silmäyksellä? MARIA: Minusta näyttää kuten if-else lausuntoja. DAVID MALAN: Joo. Ja itse asiassa, tämä on tavallaan melko yhden linjaliikennettä, niin sanotusti, toteuttamiseksi juuri logiikka if-else mutta tekee kaiken yhdellä kertaa. MARIA: Aivan. Joo. Joten jos-else lausuntoja ehkä vievät paljon tilaa. He saattavat olla liian pitkä jotain niin yksinkertaista kuin tämä. Niin tämä voi olla erittäin ytimekäs ja erittäin mukava. Joten nyt olemme menossa katsot täytäntöönpanosta jotain uudestaan ​​ja uudestaan, joten etsitään monta kertaa peräkkäin ja jatkaa sitten tehdä jotain kun taas ehto on tosi. Joten tämä tuo meidät hienosti samalla silmukoita. Vasemmalle, olemme ensimmäinen samalla silmukka. Joten vaikka jokin on totta, tehdä jotain uudestaan ​​ja uudestaan. Joten varmista huomata, että meidän ehto täällä on validoitu yläreunassa. Kun taas meidän toinen loop-- kutsumme että tee-aikaa loop-- teemme jotain, sitten tarkistaa kunnossa. Ja jos tätä edellytystä on edelleen totta, menemme takaisin ja tehdä asia uudelleen. Joten suurin ero on, jos ehto tarkistetaan. Ja koodi voi koskaan olla suoritetaan, jos ehto ei totta samalla silmukka. Kun taas tee-aikaa silmukka, meillä on koodi että suoritetaan aina vähintään kerran. Ja sitten taas kunnossa on edelleen totta, voimme mennä takaisin ja iteroida uudelleen sisälle. Miksi luulet meidän olisi käyttää do-while-silmukka yli while-silmukka? Oikea. Joten jos haluamme kysymään käyttäjä jonkinlaista tulon, jos haluamme kysyä heiltä syöttää nimensä, haluamme ainakin kysyä niitä kerran. Ja jos he eivät anna että nimi, emme ole aio kysyä niitä uudelleen koska me jo tunnemme. Mutta jos ne eivät anna niiden nimi, tai jos ne kirjoita jotain, joka on ei tietenkään nimi, haluamme kuitenkin jatkaa pyytää niitä heidän nimensä. DAVID MALAN: Ja luento meillä oli yksi näin kanssa saada positiivinen int Esimerkiksi, kun ei ole mitään tarkista ensin, koska et ole edes saanut int. Joten haluamme tehdä this-- saada int alkaen user-- sitten tarkistaa se, ehkä, uudestaan ​​ja uudestaan ​​ja uudestaan. MARIA: Aivan. Saat loops-- OK. Silmukoita ansiosta voimme tehdä melkein täsmälleen sama asia, samoin. Se on itse asiassa täsmälleen sama asia. Joten ei ole mitään, että voit tehdä silmukoita että et voi tehdä samalla silmukoita. Mutta silmukoita voi tuntua hieman hieman monimutkaisempi syntaktisesti koska ne ovat kolme osia mitä oli ennen vain kunnossa taas silmukoita. Joten ensimmäinen osa, että olet meri, vasen-useimmat, olemme "int kääpiöt = 0." Joten tämä on, jos me alustaa meidän muuttuja. Sitten meillä on puolipiste ja "kääpiöt <7." Joten tämä on, jos ulos ehto todellisuudessa on. Niin sitähän meillä olisi laittaa juuri kun loop-- "Vaikka kääpiöt <7." Täällä, joka menee keskellä meidän silmukan. Joten "dwaves <7." Ja sitten meidän viimeinen osa on "kääpiöt ++" mikä on kun päivitämme muuttuja. Joten tärkeintä ymmärrettävä, että tämä ei mene läpi tämä silmukka seitsemän kertaa ja toteuttaa seitsemän kertaa. Joten meillä on seitsemän kääpiöiden, ja ne ovat kaikki aio sanoa, "Olen täällä auttaa sinua, Lumikki " koska ne ovat valmiita auttaa Snow White. Kanssa samalla silmukoita, olisimme tehneet alustuksen ja päivittäminen ei sisällä kunnossa, jälleen, mutta joko ennen tai sisällä while-silmukka varmistaa, että we-- koska tarvitsemme aina niitä osia. Joten varmista, että meillä on heitä, me olis vielä lisännyt ne on, mutta ei sulkujen sisään. DAVID MALAN: Ja niin se näyttää like-- luento, esimerkiksi, Olen melkein aina käyttää, kuten, i ja n ja melko tylsä ​​muuttujia. Näyttää siltä, ​​voit käyttää enemmän taitavasti nimetty muuttujia, liian. MARIA: Joo, se on todella mukava käyttää hieman enemmän kuvaileva muuttujia koska varsinkin jos joku muu on lukee code-- ehkä olet luokkalainen tai jos olet yhteistyötä kanssa somebody-- haluat varmistaa, että ne ymmärtää, mitä olet tekemässä. OK. Joten tämä on jotain hyvin funky-- silmukan sisällä silmukka. En tiedä, jos olemme nähneet tämän ennenkin. Luultavasti ei. Mutta voimme todella olla this-- joten silmukoita sijasta silmukoita. Joten ei kukaan halua ehkä kävellä minua läpi mitä täällä tapahtuu? DAVID MALAN: Otan puukottaa. MARIA: Cool. DAVID MALAN: OK. Joten, spoiler-- haluamme tulostaa tavaraa se näytön oikeassa alakulmassa siellä. MARIA: Oikea. Joo joo. DAVID MALAN: Joten olemme juuri esittää, että näyte tuotanto siellä. Voin siis päätellä ylin silmukka että olet iteroimalla yli rivit syrjäisimpien silmukan, niin sanoakseni. Ja olet iteroimalla yli palstoja sisin silmukka. Ja intuitiivisesti, tämä toivottavasti järkevää koska luonteen mukaan jokainen ohjelma olemme nähneet ennen, printf, joka on toiminto käytämme, lopulta, on mahdollisuus tulostaa tavaraa ulos olennaisesti rivi riviltä. Kuten, kun olet ulos uusi linja, siellä ei kaksinkertaistaa takaisin ja tulostus jotain suurempi näyttö, ainakin ei käytä printf näin. Ja niin tältä osin, se tekee mielessä, että uloin silmukka olisi viittaavat rivit koska kunkin annetun rivillä, olet menossa haluavat tulostaa XXXXX, ja sitten siirtyä seuraavalle riville, XXXXX. Joten riviä etusijalla. Ja sitten kunkin rivi, voit tulostaa sarakkeita. Jos olet yrittänyt tehdä sen päinvastainen, se ei todennäköisesti tulla ulos kuten aiot. MARIA: Joo. Emme voineet mennä takaisin edellisen rivin kanssa printf. DAVID MALAN: Ja mikä mielenkiintoista per nykypäivän chat mittakaavaa, todella, että rivi on int joka on ilmoitettu ylimmän silmukka. Mutta huomaa, että se on edelleen sisällä, niin sanoakseni, aaltosulkeita että heti seuraa, vaikka se ei ole teknisesti näissä aaltosulkeita. Joten rivi on varaa kokonaisuudessaan koodinpätkä, sisä-ulomman silmukan ja sisällä sisemmän silmukan. Mutta vastoin silloin, kun on sarake laajuudeltaan? Muuttuja sarake? Joo, vain sisällä silmukka. Ja se on OK, koska emme pääsyn se ulkopuolella sen aaltosulkeita. Kaikki mitä teemme on tulostaa uusi linja aivan lopussa siellä. Niin että itse asiassa on OK. Joten tämä on se vaikutus, se näyttää, tehdä kolme riviä ja neljä saraketta. MARIA: Oikea. Ensin käymme läpi ensimmäinen rivi. Ja juuri meidän ensimmäisessä rivissä, teemme neljä saraketta sisällä ensimmäisen rivin. Joten me tulostaa neljä X: n. Ja sitten voimme poistua silmukka, koska olemme jo tulostetaan neljä X: n. Ja me painamme uuden linjan. Ja sitten käymme läpi Sama prosessi kaksi riviä tehdä yhteensä kolme. DAVID MALAN: Ja on syytä huomata, se on vain artefakti fontti, se että näyte ulostulo näyttävät niin paljon pitempi, ikään kuin siellä on enemmän rivejä kuin sarakkeita. Mutta se on vain siksi X on pitempi kuin se on leveä. Siinä kaikki, mitä tapahtuu siellä, plus valkoinen tila rivien väliin. MARIA: Oikea. Viileä. DAVID MALAN: Selvä. Joten vilkaista ongelma asettaa yhden, ottaa kysymyksiä, ja sitten lykätä? Selvä. Joten ongelma asettaa yhden, siellä on kolme ensisijainen haasteita, lopulta. Mutta ensin, löydät että Harjoitus erittely, kuten monet psets tänä syksynä, aikoo kävellä sinua läpi muutaman alkulämmittelyn harjoituksia, kohta sinua ulos vähän resursseja että ehkä tai ei nähnyt jo. Esimerkiksi, CS50 on sarja shortsit, jotka ovat lyhyitä videoita, ei toisin tätä, mutta että ovat erittäin aihe specific-- ehkä viisi minuuttia, 10 minuuttia pitkä silmukoita tai olosuhteista tai algoritmien tai myöhemmin enemmän syventävät opinnot, samoin. Ja me yleensä upottaa ne osaksi ongelma asetetaan niin, että opiskelijat on voimavara, jonka kanssa Arvostele materiaali voi olla jo keksiä luennossa tai jaksossa. Mutta näin se on enemmän keskittynyt ja lisää niiden ulottuvilla. Olemme myös taipumus upottaa ongelma asettaa asioita kutsutaan walkthroughs. Joten lähes kaikki esimerkit teen luento, lavalla täällä, me myös ovat shot kamera edetä enemmän hitaampi, intiimimpi läpivalaisu mukaan minut my laptop kyseisen koodin rivi riviltä niin että luokassa, käymme usein lukaista jokin tai joku tulee interject kanssa vastaus kysymykseen. Mutta se ei välttämättä upota vuonna kaikille yleisössä. Joten löydät koodin walkthroughs useimpien esimerkkien että teemme täällä luento, jotta voit voi kulkea läpi omaan tahtiin ja pikakelaus taaksepäin tai eteenpäin tai ohittaa kokonaan, jos haluat. Siellä on usein muutama verryttely kysymyksiä, pyytää sinua tavallaan vahvistavat tätä materiaali ja varmista, että olet mukava ennen jatkat muun PSET. Ja sitten, tietenkin, siellä PSET itse. Ja yksi niistä asioista me hyvin tietoisesti tehdä CS50 on lähes joka mielenkiinnoton tai älyllisesti mielenkiinnoton mekaaninen vaihe, että saatat joutua tekemään on lähes aina hyvin dokumentoitu. Aikana aikavälillä käymme alkaa kysyä lisää retorisia kysymyksiä kuten muista, miten tämä tai tuo? Mutta yleisesti, löydät että ongelma asettaa sinut kautta mekaniikka jotain niin että mielenkiintoinen, henkinen haasteet lopulta jää sinulle opiskelija. Että sanoi, Zamyla, jolle me pidetään viitaten tänään luento, on yksi meidän pitkäaikainen henkilöstö jäsen, joka omistaa myös walkthroughs tiettyihin PSET ongelmia, kuten Mario ja ahne, mutta ei vettä tänä vuonna. Ja se on näissä walkthroughs että hän usein tarjoaa muutamia vinkkejä ja niksejä miten edetään, koskaan kerron tarkalleen, mitä tehdä, mutta rather-- kuten ehto, jos will-- antaa sinulle ainakin pari ajatuksia, jotta se on sinun, lopulta, päättää miten lähestyä heitä. MARIA: tavallaan kuin korkean tason ymmärtämistä logiikan mitä pyydämme teitä tekemään. DAVID MALAN: Aivan. Ja, itse asiassa, Zamyla n walkthroughs on tarkoitus vastata usein esitetty kysymys siitä, missä do Aloin, varsinkin kun näitä pitkiä teknisiä hieman pelottava antanut kaikki teksti ja kuvakieli että heillä on niihin. Joten water.c löydät Kun olet suorittanut sen, on oikeastaan ​​melko yksinkertaista. Ehdottomasti olemassa joukko teistä menossa bang päänne seinää vasten yrittää selvittää, miksi se ei koota tai miksi se ei ole päällä oikein. Mutta kun olet tehnyt sen kanssa ja kun olet vietti jonkin aikaa paini tahansa vioista, että saatat olla, huomaat, että se on hyvin lyhyt ohjelma. Se voidaan tehdä muutamassa riviä koodia, joista useimmat olemme nähneet täällä luento jo, jos kokoat oikea rakennuspalikoita. Ja suosittelemme täällä, se tulee kysyä voit määrittää, kuinka monta minuuttia joku on ottaa suihku kampuksella. Me täsmentää ongelma asettaa virtausnopeus veden vuonna, kuten, alhaisen virtaaman suihku pää, aivan kuten Seinfeld leikkeen näimme eilen tai päinvastainen sen. Ja sitten sinun täytyy vain tehdä hieman matematiikkaa, really-- aritmeettinen käyttäen C kertoa kuinka monta, karkeasti, vesipulloja että vastaa jos olemme ottaen n minuutin suihku. Nyt mario.c, tämä tulee olla hieman pidempi ohjelman. Se on edelleen tule olemaan tämän pitkän. Vain muutaman rivin pidempi water.c. Mutta se tulee olemaan tilaisuus luoda vanhan koulun Mario pyramidi Super Mario Brothers tai joitakin jatko-. Se ei tule näyttää yhtä kauniimpi tai yhtä värikäs kuin että yksi siellä. Olemme juuri menossa käyttää vähän hashtags kuten olemme täällä ruudulla ASCII tekstiä. Mutta se lähentää sama ajatus. Ja se tulee olemaan käytettävä tätä ensi silmäyksellä näyttää melko simple-- vain tulostaa yksinkertainen pyramidi. Mutta on pari ominaisuuksia täällä, jotka ovat mielenkiintoisia. Huomaa, että oikeassa reunassa pyramidi todella on leveys kaksi. Joten ei kahden tasavertaisen korkeus sarakkeet, jotka tekee se vaatia hieman hieman ajatellut tehdä että saat että täsmälleen oikeassa, kuten eikä vain täysin kulma linja. Niin, että on hieman nurkkaan tapaus mutta vastaa varsinaisen pelin. Ja se on myös ei-ilmeinen aluksi silmäyksellä miten tulostaa valkoinen tila. Joten kun katson näyte ulostulo here-- ja se on myös spec-- se sellainen näyttää suorakulmio, mutta lävistäjä suorakulmio on katkaistu, ja se on vain välilyöntejä, niin sanoakseni. Ja niin usein kysyttyjä Kyse on aina, hyvin, miten voin siirtää hashtags yli oikealle? Tai miten voin tulostaa tyhjiä tiloja? Ja se on itse asiassa helpompaa kuin useimmat opiskelijat ajattelevat. Oikea? Voit lähentää sitä visuaalisesti vain lyömällä välilyöntiä kerran tai kahdesti tai kolme kertaa. Ja niin vaikka kanssa printf me melkein aina tulostaa merkkijonon tai int tai sana kuin "Hei, maailma "tai sarjan sanoja, voit myös vain tulostaa lainaus, tilaa, lainaus päättyy. Ja että todella antaa olet valkoinen tila siellä. Niin pitää tämä mielessä ja eivät overthink tätä. Sinulla on todella päättää rivi rivi riviltä, ei toisin esimerkkinne hetki sitten, kuinka moni näistä sarakkeet pitäisi olla välilyöntejä ja kuinka moni heistä olisi hashtags. Se vie hieman aikaa, mutta se on lopulta logiikka palapeli tapaisena. MARIA: Joo. Mutta logiikka menee rivi riviltä tulee olemaan erittäin hyödyllinen täällä. DAVID MALAN: Joo. Mielestäni näytteen koodin gave-- jopa vaikka se ei ollut täydellinen ohjelma. Tarvitset silti int ja tärkeimmät ja mitätön ja # include stdio.h, paljon kamaa luento. Mutta rakennuspalikat näyttävät olevan siellä. Ja sitten lopuksi on jotain hieman algoritmeihin. Joten käy ilmi, että aina kun mennä CVS tai lähikauppaan ja joku ojentaa sinulle kassanhoitaja laskuja tai kolikoita muutos, osoittautuu, että ne, ihmiset, ovatko he tiedä sitä tai ei, luultavasti käyttäen mitä kutsutaan ahne algoritmi, jolloin jos olet velkaa, sanoa, $ 21 muutoksessa koska jostain syystä olet ostanut jotain hyvin edullisia erittäin suuri lasku CVS, se olisi todella ärsyttävää, jos kassanhoitaja antoi sinulle 21 singleä tai, pahempaa vielä, paljon kolikoita. Pikemminkin, mitä järkevä ihminen on todennäköisesti aio tehdä on he aikovat napata $ 20- ja sitten $ 1 laskun, ja käden vain kaksi laskuja kyseisessä asiassa. MARIA: Niin ne pyritään minimoimaan muutos, että he antavat sinulle takaisin. DAVID MALAN: Aivan. Ja sama käsitellä kolikoita, samoin. Jos olet velkaa, sanoa, $ 0,50 toivottavasti et halua 50 penniä. Voit sen sijaan haluavat kaksi neljäsosaa, esimerkiksi. Nyt, tämä ei olettaa että kassa on tarpeeksi jokaisesta nimestä, joka hän saattaa haluta antaa sinulle. Mutta emme voit olettaa niin paljon ongelma. Ja tavoite, lopulta, on toteuttaa C-koodia ahne algoritmi. Joten käyttäjän sallitaan kirjoittaa kuinka paljon muuttaa hän on velkaa kanssa dollaria ja senttiä, jonkinlainen liukulukujen arvo todennäköisesti. Ja sitten sinun täytyy tehdä matematiikka ja selvittää algoritmisesti, hyvin, kuinka paljon kolikoita voin antaa voit minimaalisesti antaa sinulle juuri kyseisen määrän muutos. Mutta siellä tulee olemaan muutama hankala osia täällä, eikö? Kuten siellä koko epätäsmällisyys kysymys. MARIA: Aivan. Niin liukulukujen arvoilla on epätarkkuutta. Oliko puhumme tästä luento tänään? DAVID MALAN: Teimme viimeksi vuonna luento. Puhuimme epätarkkuutta. Ja et halua huijata käyttäjä kuinka paljon muutoksia hän on velkaa. Ja niin esittely, vuonna Harjoitus erittely, pohtimaan, lopulta, voidaan miten voit lieventää niitä epätarkkuuden virheitä, mahdollisesti. Se on vältettävissä, varmasti, sillä tulot puhumme. Ja, itse asiassa, pennies-- ehkä me lykätä Zamyla, Uskon, että temppuja siellä. Joten lopulta, löydät etenemisen ongelmia tällä viikolla, joista ensimmäinen on melko pieni, Sitten väliaine, sitten hieman suurempi. Mutta kaikki heistä käyttää rakennus korttelin päässä viime viikolla, tästä supersection, Harjoitus erittely asettaa sinut lukemattomia resursseja. Mutta silti, jos ollenkaan kamppailee, etenkin niille vähemmän mukava joilla ei ole aiempaa taustaa, tulla virka maanantaina ja tiistaina ja Keskiviikko ja torstai. Mene CS50 Keskustele kautta Kurssin verkkosivuilla, jonka kautta voit keskustella henkilöstön ja luokkatoverit. Mutta lopulta, luulen Paras neuvo on vain aloittaa aikaisin. Se ei ole sellaista luokkaa, että te pitäisi aloittaa psets keskiviikkona yö, tai pahempaa torstai-iltana. MARIA: Paras neuvoni on alkaneen maanantaina. DAVID MALAN: maanantaina. Joten jos et ole aloittanut already-- mitään. Mutta vaikka ei maanantai, tiistaina. Aikaisemmin paremmin. Ja se on syy Tietenkin on niin paljon myöhässä päivää on antaa sinulle hieman psykologista painostusta aloittaa aikaisemmin, mutta silti anna asiat slip kun asiat kestää kauemmin kuin odotit. MARIA: Ja haluat käyttää virka niin paljon kuin voit, liian. DAVID MALAN: Kaikki kysymykset? Selvä. No, miksi emme lykätä täällä?