>> [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ä?