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