>> [Muusika mängimine]
>> DAVID Humala: Olgu see on CS50 ja see on nädala lõpuks üks.
Nii et ma tahaksin tutvustada oma endise advisee, Andel Duff, kes mitte ainult ei
iPhone 5 tähistab samuti käesoleva kõnepult, ta teeb ka autod.
ANSEL Duff: Kuidas läheb, kõik on?
Ma tahan teile öelda, natuke natuke Formula SAE, millest ma
olen kapten.
See on MIT meeskond.
Ma tahan teile öelda, poisid natuke seda
ja loodetavasti luua teatud huvi.
>> Nii et lubage mul lihtsalt joosta paar asju meie meeskond.
Nii et me oleme täiesti õpilane run, kus kõik
ning kohal disain, simuleerida test, ning tootja allsüsteem
auto.
Meil on oma masin poe ja garaažid ja N52-- või kahju,
N51-- mis on samas hoones nagu MIT Science Museum.
Ja me oleme inimesed et sõita autoga.
Seal on siseriikliku konkurentsiõiguse aasta suve alguses,
ja siis on väiksem penaltiseeria võistlusi aastaringselt.
Ja siis me teeme juhi koolituse päeva, et saada uusi liikmeid tundma.
>> Meie build päeva oleme Laupäeviti 11:00-20:00.
Lõunasöök ja õhtusöök hoolitsemine kohta, alates Bertucci-ja Beantown
aastal.
Meil on iganädalasel koosolekul ja seminar, mis on muidugi krediiti.
Mis on nii uued kui selle poolaasta ja seda ka järgmisel semestril
nii et saate läbida-reg eest.
Ja siis meil on projekteerimine, pood, ja CAD päeva nädalas,
samas liikmed iseseisvalt CAD osad, et laos jne.
>> Nii elektri- insener meeskond
meil on veojõudu, kõrgepinge süsteemi
mis jookseb nominaalne 300 volti, mis hõlmab
mootorid, mootori kontrollerid ja akusid.
Siis on meil madal pinge süsteem, mis töötab
12 volti, mis hõlmab kontrolli, kas sõlmed, aju
kast ja armatuurlaud.
Niipalju CS läheb, teeme on kodulehel hooldus
et meil on vaja teha üritustele, liikmelisus muutustele, uusi pilte ja PR materjali.
Ja siis meil on kood, mis kontrollib auto meie veojõukontroll, kaater
kontrolli, kriips kontrolli, pöördemomendi vektorjuhtimist, ja regeneratiivpidurdussüsteemidega, mis
kestab tavaliselt MATLAB, Simulink ja LabView.
>> Ütlen sulle natuke auto.
Nii et see on umbes 500 kilo.
On reeglid piiratud 85 kilovatti.
See on 2 EMRAX 207 mootorid tagasi, üks iga tagaratta.
See on custom-ehitatud akud alates Prismatic A123 kott rakkude
kogusummas 300 volti ja 5,6 kilovatt-tundi.
Ja see on otseülekandega koos 2,64-1 ülekandearv.
Siin on mõned pildid meie sõid seda konkurentsi.
Siin taga, ninamaski ja siin on mootorid,
need suured mustad kettad all et mens manus.
Siin on slide et ma tõmmatakse välja meie konkurentsi kava.
Ja see on lihtsalt võrrelda meie auto Paar kaubanduslikult kättesaadavad autod,
nagu KTM XBOW, Ariel Atom ja Caterha M 7-280.
Kui te olete juba tuttav hind, võimsus tõmbekaal, dollarit hobujõudu,
dollarit pöördemoment ja meie auto puhub neid kõiki välja veega.
Kui teil on küsimusi, kübeke seda e-posti aadress.
Shoot meile e-mail aadressil fsae@mit.edu.
>> Me oleme õnnelikud, et rääkida Kas sa tahaksid midagi.
Harvardi õpilased on lahked vähemuse meeskonnas.
Kui teil on küsimusi selle kohta, et siis ei tulista meile e-mail,
õnnelik, et rääkida, ja ma lähen pea tagasi üle David.
Tänan.
Ma hindan seda, poisid.
[APPLAUSE]
>> DAVID Humala: Ansel veetis suve töötavad koos meiega siin ülikoolilinnakus CS50
Sel suvel.
Ja lisaks kallal asjad nagu binaarsed sibulad,
ta tegelikult väga avatud meie silmad-- ja kaevanduse particular--
sellele, mida tegelikult ristumiskohas ei riist-ja tarkvara saab.
Tegelikult on palju asju, mida ta lihtsalt tuuritanud teid on lõppkokkuvõttes
loodud esimene tarkvara, ja siis lõpuks valmistatud
reaalses maailmas riistvara.
Nii et kui olete huvitatud uurides, et ristmik,
ehk alustada, et grupp.
>> Nüüd vahepeal neile, kes on fännid tehnoloogia
ja Apple tooteid eriti teada, et seal
Oli paar Teated eile.
Aga me arvasime me tahaks näidata sa üks, mis tuli välja
paar päeva enne nimetatud te ei näinud.
>> Jörgen EGHAMMER: Tead, kord aega midagi
tuleb mööda, et muudab seda, kuidas me elame.
Seade nii lihtne ja intuitiivne kasutades tundub peaaegu tuttav.
Tutvustame 2015 IKEA kataloogi.
See ei ole digitaalsete raamatute või e-raamat, see on raamat-raamatu.
>> Esimene asi, mida tähele ei ole kaablid, isegi mitte toitejuhe.
2015 IKEA kataloog on täielikult laetud,
ja aku eluiga on igavene.
Kasutajaliides on 7,5 8 tolli, kuid võib laiendada kuni 15 8 tolli.
Navigation põhineb reljeefsete ühendust tehnoloogia, mis saab tegelikult tunned.
>> Sisu on eelinstalleeritud kaudu 328 kõrglahutusega lehekülge
inspireerivaid kodu sisustamiseks ideid.
Brauseri käivitamine, lihtsalt puudutada ja lohistada.
Paremalt vasakule, et liikuda edasi, vasakult paremale, et liikuda tagasi.
>> Pange tähele, midagi muud?
See on õige.
No lag.
Iga kristallselge lehele saadetised silmapilkselt,
ükskõik kui kiiresti liigute.
Kui sa tahad saada kiire ülevaate, lihtsalt hoidke seda peopesaga,
ja kasutades ainult pöidlaga kiirus sisu sirvida.
>> Kui leiate midagi, mida soovite salvestada hiljem, saate selle järjehoidjatesse lisada.
Ja isegi kui sulgete rakenduse saate kergesti leida järjehoidja uuesti.
Amazing.
>> [Naer]
[APPLAUSE]
Nii et toob meid nädala lõpuks üks.
Paar Teated nüüd.
Nii osadeks on praegu pooleli.
Mine seda URL siia millalgi vahel nüüd ja reede keskpäeval
tegelikult täpsustada, kas olete nende hulgas vähem mugav, rohkem
mugav, või kusagil vahepeal.
>> See on tavaliselt üks neist asju, mida sa lihtsalt omamoodi tea.
Ja tegelikult need, kes on vähem mugav ilmselt teavad nii palju,
Neile, kes on rohkem mugav teada nii palju,
ja jälle, kui te ei ole päris kindel, mis need ämbrid jääte te olete
ilmselt kusagil vahepeal.
Aga kindel võid vahetada Pärast paari nädala jooksul, kui vaja oleks.
>> Vahepeal järgmisel nädalal me ei hakka lõigud per se,
aga super lõigud, mis on avatud kõigile üliõpilastele.
Sel pühapäeval kell asukohta kuulutatakse käigus veebilehte
meil on üks need vähem mugav,
samuti üks need mugavamaks.
Ja need kusagil vahepeal saab valida, millist neist kahest,
või nii, kui soovite, et istuda-in.
Ja keskenduda nendele on lõpptulemusena C
mis me jätkame Vestluse täna.
>> Ülesanded 0 vahepeal on loodetavasti teie kätes.
Ametlikult homseks, Neljapäev, keskpäeval.
Kui sa raha ühes oma 5 hilinenud päeva
mis tooks see kuni reede keskpäeval.
Ülesanded 1 vahepeal on postitatud kursuse kodulehel.
Ja see on meie esimene foray kui klass C.
Ja see probleem määrata spec sõelub läbi palju mehhaanika mida
meil hakkas rääkima esmaspäeval ja me jätkame täna räägime.
C, Linux, CS50 seadme, kõik see
ootame teid spetsifikatsioonile.
>> Tööaeg vahepeal on käimas, bakalaureuse söögisaal.
Head selle URL siin ajakava täna ja homme
kui soovid osa saada.
Küsimused vahepeal nii, et sa on võimalus esitada küsimusi
asünkroonselt, 24/7, mõistad sa oled mitte ainult osades ja kontor
tundi, vaid pigem selle tööriista siin CS50 Arutle, et URL
saab muidugi online teadetetahvel tarkvara, mille kaudu
saab esitada küsimusi klassikaaslased ja ka töötajad.
Nii et pidage meeles, et ressursi samuti.
Vahepeal traditsioon algab sel reedel.
Nagu te võib-olla ühtesid alates Viimase kolmapäeva teaser video,
meil on traditsioon kõige igal reedel Tähtajaks
võttes umbes 50 õpilast ja töötajad kohalikus restoranis nimega
Fire ja Ice, kus me oleme tavaliselt olen mõned vilistlased
või sõpradega tööstus üldiselt soovivad
teha suur klass tunne väiksem.
Nii et see on täiesti juhuslik lõunasöök.
Kamp meile töötajad eriti, mängib muusikaline toolid
ja vestelda õpilastega 50, elu väljaspool 50,
elu tulevikus, reaalses maailmas, Ma räägin töövõimalusi
sõprade tööstuses.
>> Nii et kui sa soovid meiega liituda sel reedel, pea see URL siia.
Ruumi on vähe, kuid me teeme seda kordumatult kogu perspektiivis.
Head seal cs50.harvard.edu/rsvp.
Ja kui sa ei saa sisse seekord mitte muretseda.
Me teeme seda jälle lähinädalatel samuti.
>> Nii et see on pilt Me maalitud eelmisel nädalal
ja sa oled ilmselt olnud espalla siiani.
Aga proovime ühendada see nüüd mida me teeme täna
ja edasi.
Kas ma saaksin ühe vabatahtliku?
Olgu, või mitu.
Kuidas siin lõpuks, sinine särk.
Tule, mis su nimi on?
Alana: Alana.
DAVID Humala: Alana.
Nii Alana, vaid moment-- tore kohtuda sind--
hakkab mängima rolli Selle funktsiooni siin.
Lilla block me oleme nimetatakse siiani funktsioon.
Niisiis, mida ma lähen enne siin ja pakkuda Alana
on vähe nimesilti teha selge, mis rolli sa mängid.
>> Nii et sa peab olema sõnaõigus blokeerida.
Kui soovite minna ja pane see edasi.
Ja me ei kavatse hoida seda super lihtne.
Kui eesmärk käepärast on lihtsalt nüüd rakendada koos Alana,
see nn öelda blokaad, siin on, kuidas see läheb tööle.
Ma peate-- olgem kutsuvad seda argument või parameeter,
see on tõesti lihtsalt tühi paberileht.
Ja see on valge kuni objekti Tuletab valge kast, kuhu te
saab kirjutada sõnu.
>> Vahepeal ma lähen siin.
Ma lähen edasi minna ja kirjutada H-E-L-L-O eralda maailma.
Ja nüüd ma, nagu ütlevad programmeerija, ei tegelikult teavad, kuidas öelda midagi.
Võin tulla sõnad, aga ma ei pruugi
tea, kuidas ennast väljendada suuliselt või ekraanil.
Ja nii ma lähen teha, on seda tükk
funktsionaalsuse, kelle input-- või argument, nagu me nimetame seda,
Olen kirjutanud selle tüki paper-- ja ma lähen tellida seda.
>> Ja tõepoolest see on roll, mis funktsioonide programmeerimiskeelt
mängida.
Midagi öelda plokk saab tellida
keegi, kes tõesti teab, mida ta või ta räägib.
Nii et kui sa samm üle siin hetkeks,
Ma lähen mööda seda sisendit Alana ja paluda, et teile öelda, et see sisend.
>> Alana: Hello, world.
DAVID Humala: Ongi kõik.
Nii et on funktsioon.
Nüüd saame seda veidi rohkem, saame astuda samm edasi siit.
Sest see oli selgelt underwhelming.
Nii et olgem nüüd muutma seda midagi natuke keerukam.
>> Nii see muidugi on meie C versiooni.
Nüüd, kui sa tahad teha, et ühekordne, et nimesilti maha,
ja olgem on paned uue nime.
Aga põhimõtteliselt oled mängib sama rolli,
see lihtsalt nii juhtub, et kutsutakse printf nüüd.
>> Lugu on muidugi läheb olema-- ilmselt
niisama underwhelming-- on saab olema järgmine.
Olete nüüd funktsiooni printf.
Olen helistaja või programmeerija, kes tahab
seista õlgadele inimesed minevikus nagu sina,
kes juba arvasin, kuidas tegelikult kirjutada midagi maha.
Ja nii seekord mitte öelda olgem
tegelikult kasutavad meie ekraanil siin.
Nii et kui soovite astuda siin, ma lähen
läbida uuesti seda sisend minu printf sõber.
Kui sa saaksid minna ja printida, et ekraanil
lihtsalt juhtides oma sõrme must ekraan.
Suurepärane.
Olgu, nii palju vahekontole jaoks kuidas see pidi mängima.
>> Nüüd võtame asju üks viimane piir, kui me võiks järgmiselt.
Nii et see on C programmi nagu me ütlesime viimast korda.
Ja see lihtsalt teeb seda, mida sa tegid, see prindib välja ekraan, hello, world.
Kuigi seal on selgelt palju häirivad asjad seal.
Aga võtame asju pügala ja tutvustada seda versiooni, mis meenutavad
oli kolmas versioon, mis sattus koos viimast korda.
>> Ja nüüd on selgelt kaks kasutusalad printf.
Seal on 2 kõned Alana antud juhul printf,
kuid seal on ka kõne teise funktsiooni.
Mida see funktsioon selgelt?
GetString.
>> Kas me saame veel ühe vabatahtliku?
OK, tulge siia.
Mis su nimi on?
>> JAVIER: Javier.
>> DAVID Humala: Javier, tule üles.
Nii Javier roll on see paberile.
Mis ma lähen kutsun üldiselt s.
Nüüd on see muutuja, see on tüüpi string, kui vaikimisi
poolt, et teise rea keskel seal.
Ja ma tahan, et sa minema mind string.
Täpsemalt pea alla orkester jagu ja mind kellegi nimi,
ja tulevad tagasi ja muutuva sisaldavad seda väärtust.
See võib olla igaüks, kui soovite.
>> Siit me tuleme.
Olgu, Javier on kirjalikult ette nime.
Olgu.
Me kõik ilmselt arvata, kui see läheb välja mängida.
Me võib-olla belaboring koht, mida
funktsioon on teed, kuid sellegipoolest tänan teid väga.
>> Nii Javier on tagasi see string Siit, mis ei saa päris vt
Jonathan on string et me oleme saanud.
Nüüd, mida ma tegelikult toimub andma Alana kuigi
on midagi veidi erinev.
Kuna selles versioonis Programmi esimene seal on oma nimi.
Nii et kõige esimene argument Mul on vaja, et anda Alana
kus saab olema sõna otseses mõttes oma nimi.
Olgu, nii lihtne see ongi Ma anna sulle seda.
Ja kui ma kirjutan üles järgmine argument, kui te
tahan minna ja kirjutada see laual, lähme edasi
ja teha lõplik näide siin teha selge, millised on lõpuks sai juhtuda.
Nii oma nimi, Kirjutan selle ülaosa suunas
kui te ei pahanda, just nii, et meil on ruumi veel ühele teisele reale.
Sest viimane asi, mida ma nüüd pakkuda Teile on mitte üks,
kuid kaks paberilehte.
>> Olgu.
H-E-L-L-O eralda ja seejärel tühi rida.
Nii et see, mida ma olen umbes anda Alana nüüd on midagi veidi erinev.
Mitte ainult ta saada see, kus täitke tühi kujutab
et percent-- milline oli kohatäide Oleme kasutanud?
Jah, nii protsenti s.
Vahepeal ma lähen edasi teda teine ​​argument, mis
on täpselt see, mida Javier väljavõtteid Jonathan.
>> Nii et lubage mul anda teile need kaks.
Kui soovite, edasi minna ja trükkida selle kohta.
Mis lõpuks juhtub juba käes, Alana jälle
mängib rolli printf.
Javier mängisin rolli getString.
Nii et on oma suveniiri.
Ja lõpuks, mis toimub, vaatamata Selle hello-- yep minna ja koma.
Alana: Kas ma saan seda veel või ei?
DAVID Humala: Jah, sa said nad mõlemad korraga.
Nii et idee on see, et sa saab nüüd flip lehele
käsitseda teine need kaks sisendit.
Nii et see on ainult haamer kodus punkt, et kui Alana täidetud
see roheline joon siin, ja siis Javier tegi seda üks meie jaoks
ja tagasi mulle midagi me kutsume s, aga see oli tõesti
lihtsalt, et tükk paberit enda.
Ja nüüd Alana on seda teinud kolmas rida.
>> Ja kuigi see kõik välja nii uskumatult segasena ehk
Esmapilgul see tõesti Nii lihtne see ongi.
Associated sisendite ümber, saada väljundid, kas
on füüsiliselt anda tagasi midagi, nägemine või kõrvalmõju niimoodi.
Midagi visuaalselt kirjutatud ekraanil.
Nii et lähme edasi ja tänan Alana ja Javier,
kes oli siin, et meiega siin.
>> [APPLAUSE]
>> Nüüd võtame enesestmõistetavana, kuidas lihtne kõik see olla võiks.
Ja olgem sõita tegelikult teha midagi tegelikku koodi.
Nii et kuni ekraanil on siin pildil ning nn CS50 seade.
Ja kui teil oli kell, kui 02:00 kolmapäeva pärastlõunal,
selgitada mõningaid sõber mida CS50 seade on
kuidas sa defineerid seda lauset?
Iga ühe lausega?
Jah?
Üliõpilane: See on nagu programmi mis teeb igaühe arvuti
joosta sama süsteemi.
DAVID Humala: Väga hea!
See on programm, mis võimaldab igaühe arvuti joosta sama süsteemi.
See on omamoodi oma koopia operatsioonisüsteemi
süsteem, mis juhtub kutsutakse Ubuntu Linux.
Ja see töötab tõhusalt sees aknas oma Mac või PC,
nii, et sel viisil on kohe värava 1. nädalal, igaüks siin klassis
on juurdepääs samadele vahenditele, sama konfiguratsiooniga
ja seal ei ole õppimiskõver konkreetse Mac või PC eriti.
>> Nüüd avas sees CS50 Seadme esmaspäeval, see programm siit.
See juhtub olema, mida nimetatakse gedit.
Aga see on tõesti ainult graafiline redaktor.
See on midagi Notepad või tekst Muuda Windows või Mac OS võrra.
Ja ma ettepaneku, et seal oli tõesti kolm olulist osade sellele ekraanile.
Top külg on see, kui sa oleks kirjutada oma koodi.
Ja see, kui me veetsime palju meie kolm näidet esmaspäev loeng.
Alumine me kutsusime mida, see must aken, jah?
>> Üliõpilane: tõlkija?
>> DAVID Humala: tõlkija me juurde viis, et aken.
Aga üldisemalt.
Jah, see oli lihtsalt terminali aknas.
See on vanuse vana mõiste, mis lihtsalt kirjeldab sisuliselt Vilkuv
kiire, et aastaid tagasi kasutati olla üks neist suur CRT stiilis monitorid.
Kuid tänapäeval on see omamoodi virtuaalne tarkvara.
Ja terminal aknad olgem meile käske.
See omamoodi lihtsustatud versioon kasutajaliidese või UI.
See ei ole graafiline kasutajaliidese või GUI,
see on teksti-põhine kasutajaliides või käsurida.
>> Ja tõepoolest see, kui lõpuks Mul oli võimalik kirjutada mingi kood.
Kui ma olin kirjutanud mõned koodi küll, Meenutame, et ma kasutasin seda käsku.
Ja kuna see nimi sellist ütleb, see
võimaldab mul teha programmi nimega Tere.
Aga mis oli see tegelikult teeb?
Noh mark oli võtta oma sisend, mu lähtekoodi,
ja muutub see, mida lõpuks?
>> Objekti kood.
Ja objekti kood on lihtsalt fancy viis öelda nulli ja ones.
Ja siis, kui ma tahtsin joosta, et objekti kood,
kui ma tahtsin edasi sisendina need nulli ja need oma arvuti
aju nn CPU või keskseade,
Mul oli käivitada programmi.
Aga see ei olnud päris lihtne esmaspäeval lihtsalt topeltklõpsuga mõned ikoonil.
Mis asemel ma pean teha selleks, et käivitada programm?
>> Mis see oli teine ​​käsk?
Ma kuulen vähe kaldkriipsuga?
Jah, jah?
>> Üliõpilane: Dot kärpida ja programmi nimi.
DAVID Humala: Täpselt.
Dot kaldkriips ja programmi nimi.
Nüüd Mida see tähendab?
Noh dot on lihtsalt müstiline, kuidas öelda jooksva kataloogi.
Ükskõik kaust olete on viidatud kui on esindatud dot.
Kaldkriips on just see, mida sa oled näinud Mac OS ja Windows aastaid,
see eraldaja kataloog või kausta ja ülejäänud mõne nime.
Windows juhtub minna tahapoole, Linux ja Mac
OS juhtub minna edasi.
Aga see on lihtsalt eraldaja, nii et see on lihtsalt ebahuvitav süntaktiline detail.
>> Mahlane osa muidugi on programmi nimi, Tere.
Ja see on see, mis teeb loodi meile.
See väljastada et fail meile.
Aga kuidas me saame, et punkt?
Olgem nüüd küsida küsimusele, mis oli tõesti
siin toimub, vähemalt Mõnede käesoleva süntaksi?
>> Seega lause või nii, kuidas me seletame ära
Selle esimene rida, mis on rõhutatud roheline?
Mis oli see, et esimene rida teed, seoses minu programm?
Jah?
>> Õpilane: [kuuldamatu].
DAVID Humala: Ütle seda uuesti?
Üliõpilane: Sh ja allalaadimine Viimase funktsioonid [kuuldamatu].
DAVID Humala: Hea.
Sealhulgas, ma ei ütle allalaadimine, kuid ütleme
sealhulgas funktsioone, et inimesed olen kirjutanud ka varem.
Ja need funktsioonid on olemas kuskil minu arvutis.
Keegi kirjutas faili aastat tagasi, ning et faili
on kuskil sees CS50 seadme või mu kõvaketas
üldisemalt.
Ja nii see rida on sisuliselt öeldes: mine leiavad, et fail, standard I / O dot
h, ja kopeeri ja kleebi sisu siinsamas üleval minu faili
nii et ma ei pea tee seda käsitsi ise.
>> Ja vahel juiciest tükki sees et fail me taotleti mida funktsioon?
Mis funktsioon ei ütleme kuulutati või nimetatud standard I / O dot h
Kõige tõenäolisemalt?
Printf, eks?
Me ei kirjuta printf kohta Esmaspäev, see lihtsalt olemas.
Palju nagu Alana lihtsalt tuli lavale ja ta lihtsalt
olemas ja teadis, kuidas juhtida midagi ekraanil,
nii ei printf olemas palju aastaid.
Ja nii see on, kuidas me seda kasutada.
Nüüd, kui me liigume siin, Peamine oli analoogne me
ütles puzzle tükk nimetatakse kui roheline lipp klõpsatud
maailma Scratch.
See on lihtsalt omamoodi Vaikimisi nimi, et inimesed
otsustas kujutaks default lähtepunkt programmi.
Patakas programmeerimine kood mis saab täidetud esimene.
>> Vahepeal need looksulg on selline nagu kumera kujuga
ja palju need kollased nullist tükki.
Need omamoodi kapseldada kogu kamp juhiseid koos.
Nii see lihtsalt omamoodi seob mõned on seotud funktsionaalsust.
printf muidugi on funktsioon, mis trükib ekraanile, kui me just tegime.
>> Aga need sulgudesse?
Kuidas te define-- isegi kui te pole kunagi programmeeritud enne, aga mis põhineb
Nüüdsest suurendades loodetavasti intuitsioon, mida
on sulgudes teed meile siin?
Või mida nad ümbritsevad?
Jah?
>> Üliõpilane: Nad ütlevad, mida sa lähed printida printf.
>> DAVID Humala: Jah, nad ütlevad, mida sa lähed printida printf.
Või üldiselt on nad ümbritseva sisendite funktsioon.
Nii saab peaaegu arvan Nende sulgudes
olevaks, nagu metallist klipp selle lõikelauale.
See on see, mis hoiab, see on see, mis on läheb kasutatavad argumendid
arvesse funktsioon, mis Sel juhul nimetatakse printf.
>> Nii et üldiselt peaaegu iga kord, kui me nimetame funktsiooni,
me näeme paari sulgudes.
Võib-olla midagi on see, nagu praegu, võib-olla midagi ta.
Aga see, kui sa paneks sisendeid ja niinimetatud argumendid
et funktsioon.
>> Siin on üks selline argument.
Olen rõhutanud kõik vahel hinnapakkumisi,
sest see osutub Selles keeles nimetatakse
C, kui soovite, et esindada string-- mis on sõna või fraas
või isegi paragraph-- pead pange see jutumärgid.
Ei ülakoma, jutumärgid.
Ja see on täpselt see, mida ma olen teinud siin.
>> Vahepeal seal funky sümbol lõpu poole sinna.
Kenoviiva n.
Mida me ütleme, et esindatud?
Jah?
>> Üliõpilane: uus liin.
>> DAVID Humala: Uus liin.
Õigus, sa ei pea üldiselt Enter, kui
soovite, et programm sülitama uus liin.
Pigem sa öelda seda selgesõnaliselt seda küll kauge tükk
süntaksi, längkriipsu n, et soovite uut rida sinna minna.
Lõpuks semikooloniga.
Me tegelikult ei räägi liiga palju sellest,
ja kaugelt see on bane mõned oma eksisteerimise esimest probleem
määrata, kui sa lihtsalt ei mõistnud unustasid midagi nii loll
kui semikooloniga.
Ja üldiselt paneb see seal fikseerib selle probleemi.
Aga mida ta teeb meile, kas sa arvad?
>> Õpilane: [kuuldamatu].
>> DAVID Humala: Vabandust?
>> Õpilane: [kuuldamatu].
DAVID Humala: Viimistlus avalduse.
See on omamoodi nagu perioodiks lõpuks inglise lause,
arvestades, et selles keeles C, et see lõpeb avalduses.
Juhendamise programmeerimine koodi, mis sa tahad öelda,
Ma olen teinud seda.
Nüüd teate, et on ainult üks siin.
Nii et sa ei taha saada harjumus panna semikooloniga
pärast iga suletud sulgudes.
Näiteks polegi kõrval tühine ja me
tagasi tulla tulevikus millises tühine vahend.
Aga sel juhul oma printf on funktsioon või märge kasutatud,
ja nii me tahame, et otsas päris lõpus ta.
>> Ja ma tahtlikult kiusad C ja ausalt öeldes palju keeli nagu C, C ++
Java, JavaScript, ja mis tahes arv teistes keeltes on palju neid
Sorteeri süntaktiliste detailid.
See kindlasti, kui sa oled uus programmeerimise saab tõeliselt reisi sind.
Ja siis märkige oma sõnad, mõned teist
on see kogemus ametis tundi või hilja
öösiti töötavad mõned p-set, kus teie neetud programm lihtsalt ei kompileerida,
see ei tööta, siis on ei tea, mis viga,
tundub täiesti loogiliselt õige teile.
Ja see on sellepärast, et sa unustasid midagi pihta
semikoolon lõpus mõned liin.
>> Aga need on asju sa oled läheb kohe õppima nägema.
Ja tõepoolest on need asjad et KA ja TF on
on omamoodi treenitud nägema palju kiiremini kui sina.
Ja nii see on ainult öelda, kui sukelduda probleem komplekt 1 eriti
ei saa pettunud seda kraami.
Kui oled omamoodi aklimatiseeruda maailma, siis
hakkame nägema asju, mida sa ei pruugi vaata Esmapilgul esimesel nädalal.
>> Nii et lähtekood on midagi sellist.
Me tahame sinna juhitakse nn tõlkija.
Ja et tõlkija kui ütlesime annab väljundi
tuntud objekti koodi Niinimetatud nullid ja need.
Aga sealt, mida see meile annab?
Noh, see annab meile neid mudeleid.
Ja jälle arvutis Intel inside,
mõistab need mustrid nulli ja ones.
Ja mõnikord muster kujutab tegelikku koma number
nagu me nägime eelmisel nädalal, mõnikord see on kirjas
nagu nägime eelmisel nädalal, mõnikord see on juhendamise,
nagu trükkimine midagi ekraanil.
>> Nii printf jaoks instance-- vaid pigem, lubage mul tagasi kerida.
Me oleme olnud võttes iseenesestmõistetavana et need nullid ja need on
toodetud selle käsu make.
Aga teha ei ole tõlkija.
Tee ei ole asi keskel mis on tootva nulli ja ones.
Pigem teha on lihtsalt väga mugavalt nimega programmi, mille eesmärk elus
on sisuliselt välja selgitada, kuidas koostada oma programmi.
Ja me kasutame seda nende Esimestel nädalatel, sest see lihtsalt
säästab meid palju vaeva.
>> Aga mida teha, on tõesti teed, kui sa kompileerida hello,
on, nagu me ütlesime, viimane kord, et see on otsin kõvakettal
või aktiivse kausta jaoks faili nimega, mida ilmselt?
Hello.c, eks?
See on lihtsalt selline konventsioon.
See on meelevaldne, kuid see, kuidas asjad on.
Tee, kui sa lihtsalt nimetage programmi, mis ei ole veel olemas,
see läheb otsima lähtekoodi aasta faili, vaikimisi tähendab hello.c.
Ja kui ta leiab, suur.
See saab teisendada, et allikas kood objekti kood teile.
>> Aga iga kord, kui ma vajuta Enter peale jooksu teha hello,
, kas sa mäletad nägemine viimast korda üsna pikk ja segasena jada
teiste valgete tähtedega ja tegelased ekraanil?
Noh, mis oli tegelik käsk, tegelik koostaja, et jooksin.
Nii et tegelik koostaja me kasutame enamik semester on midagi, mida nimetatakse rõkkama.
Mõned teist võivad olla kasutatud Visual Studio enne või GCC,
või mõnel teisel koostajad.
Me kasutame rõkkama.
>> Ja rõkkama võimaldab meil tegelikult teisendada et lähtekoodi Objekti kood.
Mida see tegelikult praktikas tähendab?
Noh lase mul minna ühte Minu kaustad viimast korda.
Toas CS50 seade.
Ja lubage mul minna ja luua selle sama faili, sisaldab standard I / O punkti h.
Int main void.
Ja me tuleme ka tulevikus millises Int tähendab ja mida void abil.
Aga nüüd teeme hello world längkriipsu n,
just nagu me tegime laual.
>> Las ma salvestada see fail nimega hello.c.
Ja nüüd, kui ma tahan, et koostada selle Ma kas-- lubage mul suumida sisse-- run
teha hello siseneda.
Ja see kord oli et väga segasena liin.
Aga nüüd on vähemalt üks sõna ilmselt hüppab välja ennast.
Rõkkama on see, et liin nägime enne.
Nüüd on palju muid asju ausalt et me laine oma käsi täna.
Aga seal on mõned alajaotused, mõned tegelased siin
mis pakuvad huvi.
Aga ma lähen edasi minna ja seda teha.
Ma lähen esietendus Tere, lihtsalt tõestada
et see töötab, sest see oli esmaspäev.
Aga nüüd ma lähen kustutada programmi.
Ja palju nagu meil oli neid Lühinimede viimane kord,
käsu eemaldamiseks midagi on rm, eemaldada siseneda.
Sa lähed, et saaksin üsna segasena küsimusi.
Raske uskuda, et saad teha isegi sellele küsimusele raske mõista.
Aga võtke tavaline fail tere lihtsalt vahenditega seda, mida soovid kustutada tere.
>> Ja ma ei saa minna ja kirjuta y jah, Enter, ja nüüd on see kadunud.
Mida see tähendab nüüd, kui ma kustutada minu ekraanil,
on, et selle asemel, et teed tegema hello-- sa
Tead mis, ma olen selles osav.
Ma lähen jooksma koostaja ise.
Ma ei pea mõned programmi aru saada, mis minu faili nimi on.
Kirjutasin hello.c, I tea kuidas seda kutsutakse,
Ma olen selgelt võimelised kirjutades seda.
Ma lähen edasi minna ja ei ripu hello.c Enter.
>> Tundub, et töö.
Ja pole mingit täiendavat toodangut, sest rõkkama on tõlkija.
See on see, mis matab lähtekoodi nulli ja ones.
Nii et kui ma nüüd tegema dot kaldkriips hello Enter, hm.
New veateate täna.
Nii bash on lihtsalt nimi vilgub kiiresti, et me kasutame.
See on raske järeleandmisi, aga nüüd, et kõik, mis on,
see vilgub kiiresti.
Ja sellepärast, et see karjuma meid.
>> Sellist faili või kataloogi ei natuke rohkem arusaadav.
Aga kindlasti ma tegin, et objekti kood.
Aga saak on, et kui ma tippige käsk
loetleda sisuga kataloog, mis on mis?
LS nimekirja.
Seal on hunnik asju siin, millest mõned tulid koos seadmega,
nagu minu töölaua kausta Downloads kausta Dropbox kausta ja kõik
mis värk.
Aga mis on huvitav on hello.c, mis
Ma lõin hetk tagasi koos gedit.
Ja mis kõige veidram otsin nime siin
võib-olla, et me ei vaata viimase aja üldse?
>> a.out, eks?
Niisiis tagasi päevas, see oli lihtsalt otsustanud, et kui
kompileerida programm jaoks esmakordselt
ja te ei täpsusta nimi faili, olgem kutsuvad seda.
Ja a.out tähendab lihtsalt, et see oli väljund tõlkija.
Nii et see on jube nimi programm.
Aga selle loogika dot kaldkriips eest Praegune kataloog, kaldkriips a.out,
peaks tähendama seal tegelikult minu programmi Hello World.
Nüüd veidi soojeneda kasutamise ka.
Kui ma tahan ümber nimetada fail, tuleb välja, et sa
liikuda faili ühest nimi teise.
Nii mv a.out, ja siis ma võib helistada see hello Enter.
Nii et see on Linux käsk.
DOS oli see aasta tagasi, Windows on terminali aknas
mingisugune, mis näeb niimoodi, Linux ja Mac
arvutid on see vilgub kiiresti.
Kuigi enamik meist ilmselt Harva, kui üldse, kasuta seda.
>> Aga mida ma olen teinud, on käivitada programm, mille nimi on mv,
ja ma olen andnud talle kaks argumenti, nii rääkida.
Kaks sisendit.
a.out on algne nimi.
Tere on uus nimi.
Nii et kui ma nüüd tegema dot kaldkriips tere, Enter, et on olemas.
Ja kui ma dot kaldkriips a.out, Mida ootate ma peaks nägema?
>> Bash ei ole sellist faili või kataloogi.
Sest ma lihtsalt ümber ta.
Nii et see võtab natuke harjumist.
Aga probleem komplekt 1 spetsifikatsioon tõeliselt
hoidke oma käsi läbi mõned selle minutae.
Kuna see on täielik intellektuaalse häiritud
huvipakkuvatest ideid käepärast, mis
on tegelikult luua midagi välja kood.
Aga teeme ühe modifikatsiooni nüüd see programm.
>> Tuletame meelde, et viimane kord, kui ma tegin midagi niimoodi, printf oma nimi.
Ja tõepoolest me tegime seda suurel ekraanil seal.
Ja siis ma tegin string s saab GetString avatud paren lähedal paren.
Ja paren lihtsalt stenografist märke sulgudes.
Nii ei getString võtta argumendid?
Nr sisendid ei, kuid see vajab sulgudes
sest see, mida piiritleb kutsumise funktsiooni.
>> Nii et ma lähen edasi minna ja proovida käivitada kompilaator selle programmi nüüd.
Rõkkama hello.c, sest ma ei muutu selle nimi nüüd.
Ja mul on hunnik vigu.
Lähme välja suumida siin.
Kui ma liikuge jälle, nagu ma ütlesin eelmisel korral,
Lisa esiteks sama viga et ma sain eelmine kord.
On line 6 hello.c Pidin deklareerimata tunnus string,
ei ma mõtlen standard?
Ma ei teinud seda.
Sest see, mis viga on tegin selle programm, kui te mäletate viimast korda?
Jah, me peame nn Apupyörät
et me lihtsalt kasutada mõne nädala jooksul.
Aga mul on vaja täpsustada, et ka kusagil seadme sisemust,
on fail, mis me kirjutasime paar aastat tagasi.
Mille sees on funktsioonid nagu ilmselt getString.
Nüüd, kui ma lähen tagasi siin, suurendamiseks ja uuesti käivitada rõkkama hello.c.
Kurat, teine ​​viga.
Aga me ei ole näinud seda varem.
>> See üks on natuke rohkem esoteeriline nuputada.
Aga see on tahtlikult ekraanil sest me tahtsime seda lugu rääkida.
Kui sa kompileerida hello.c, nagu pilti enne ettepaneku,
sa oled ainult konverteeriva et lähtekoodi nulli ja ones.
Nüüd CS50 personali paar aastat tagasi kirjutas CS50.h ja vastavate dokumentide,
CS50.c.
Ja meie, paar aastat tagasi, koostatakse neid faile
toimikusse, mis juhtub mida nimetatakse CS50.o.
>> Või seda saab ümber vähe erinevaid asju.
Aga see on lihtne viis mõelda seda.
Nii et me koostatud CS50 on Teegi nulli ja ones.
Aga kusagil on määratletud I et ma tahan ühendada oma nullidega
ja need mu hello world programmi nulli ja need
et CS50 töötajate loodud paar aastat tagasi ühe täieliku programmi.
Kõik, mida ma olen määratud kirjalikult rõkkama hello.c on koostada hello.c.
>> Ma ei ole öelnud rõkkama kuni lüli nulli ja need
et CS50 töötajate loodud Teile mõni aeg tagasi.
Nii et see on lihtne lahendus, kriips l link, CS50.
Ja me jälle näha seda Enne pikk ja jälle.
Aga teate nüüd ei olnud kaebusi.
Nüüd, kui ma saan dot kaldkriips tere, nüüd see töötab.
Kuigi see on natuke eksitav sest ma lihtsalt taasloodi mida faili?
a.out.
>> Nii et lubage mul kerida hetkeks.
Programm me lihtsalt koostada on kolm rida koodi.
Kui ma jooksin hello world, hello hetk tagasi, ma ei näe oma nimi.
Ja see on sellepärast, et ma jooksin vana versioon programm.
Aga kui ma tõesti joosta dot kaldkriips a.out Sisesta, oma nimi, Rob, tere,
maailma.
Hm.
See on omamoodi viga.
Tõenäoliselt tähendas öelda Rob, eks?
Mis siis fix siin koodi.
Õpilane: [kuuldamatu].
DAVID Humala: Täpselt.
Nii et ma lihtsalt vaja teha, et lõplik näpistama nii et ma möödaminnes kohatäide,
nagu täitke tühi, nagu me tegime hetk tagasi.
Kuid protsenti s nüüd et täita tühjaks.
Nii et lõpuks hakkame paljastada viimane üksikasjalikult, nii et seal ei ole magic.
Ma lähen edasi minna ja vabaneda hellow.
Ma lähen edasi minna ja vabaneda a.out.
Nii et nüüd ma ei ole programmid, lihtsalt minu lähtekoodi.
Ja ma lähen jooksma veidi enam käsu rõkkama
kriips o hello hello.c kriips LCS50.
>> Nüüd hakkab justkui minema ühest kõrvast sisse ja teisest välja ehk.
Aga tease peale, mida see teeb.
Rõkkama on kompilaatori kriips LCS50 tahtlikult päris lõpus
teeb mida lause?
Lingid CS50 raamatukogu.
Haarab nulli ja need, mis tehtud personalile
ja crams neid oma programmi.
Nii et viimane küsimus käepärast on, Mis on kriips o hello ilmselt
teed, isegi kui te pole kunagi näinud seda süntaksit enne?
>> Kirjutamine programm, mis on mitte nimega default a.out.
Pigem on see nimega hello.
Nüüd ei ole a.out.
No sellist faili või kataloogi sest ma selgelt öelda
nimetame seda programmi hello, nii et Ma võin nüüd kirjutad nime niimoodi
ja on see käituma.
>> Nüüd ausalt öeldes poiss on see, et ebahuvitav on
meeles pidada kõiki, et vähe minutia, eks?
Nii et lähme edasi ja vabaneda tere jälle.
Ja olgem nüüd naasta maailma mis on piisav, et öelda, teha tere.
Aga see on maagia, mis tee läheb teile,
see tüütus, et ta teeb teile.
Ja kui meie programmide ja probleeme saada keerulisemas
teha on tõesti sinu sõber.
Sest mitte liiga pikk nüüd me läheme
on programmid, mis on kirjutatud mitte ühe faili, kuid mitu faili,
ja teha saab automatiseerida protsessi koostada kõik, et meid kokku.
>> Nüüd printida.
printf on sees seda faili standard I / O punkti h, et me oleme näinud,
aga see pole veel kõik printf kui see.
Seal längkriipsu n, kuid seal on ka hunnik muid põgeneda järjestusi.
Ja sümboliga on lihtsalt fancy viis öelda midagi
mis algab längkriipsu, ei kaldkriipsuga, längkriipsu,
ja kas seal eriline asi.
Ja me ei tegele enamik neist, kuid miks on Kurakaldkriips jutumärke,
Mis sa arvad?
Miks on see imelik jada tegelased, längkriipsu jutumärke,
miks see võiks olla kasulik?
Õpilane: [kuuldamatu].
DAVID Humala: Täpselt nii, eks?
Mõtle tagasi meie programmi Hello World et me oleme näinud üsna paar korda nüüd,
iga kord, kui oleme näinud, et hello world programmi oleme olnud jutumärkide sees
millest on hello komaga maailma tagurpidi kaldkriipsuga n.
Aga arvan, et ise, Mis siis, kui sa tegelikult
tahtsin välja printida jutumärgid?
Sinu esimene instinkt võib olla, ma ei tea, miks ma tahta tegema-- siin
saame olla veidi passiivne agressiivne, tere sõber.
Meil võite teha midagi sellist.
>> Aga miks on see nüüd problemaatiline?
Ignoreerimine lokkis hinnapakkumisi kõrvale, et Keynote tegi meile automaatselt.
Miks on see problemaatiline?
>> Täpselt.
Kuna meil on nagu 4 jutumärke.
Noh esimene ilmselt läheb teine,
ja võibolla neljas läheb kolmas,
või tähendab, ma pole isegi kindel, ega arvuti saab olema.
Arvutid jälle koostajad jälle on üsna loll.
Nad ainult seda, mida sa ütle neile, mida teha.
Ja kui sa ei ole üheselt mõistetav nad ilmselt läheb visata viga.
>> Kui sa ei ole üheselt mõistetav, kuidas teha maapähklivõi ja tarrend sandwich
kummalised asjad võiksid jõuda.
See on sama mõte.
Nüüd piisab, kui öelda pole mõne muu põgeneda järjestusi,
kuid me tuleme neile enne pikk.
Sisuliselt need põgeneda järjestused esindavad midagi
et sa ei pruugi olla võimalik liiga lihtne klaviatuuri,
ilma segadusse arvuti.
>> Nüüd vahepeal oleme Kohanäitajad printf.
Protsenti d, mida võib ka kirjaliku Peaaegu kõikidel juhtudel protsenti i,
on kohatäide millist tüüpi andmeid?
Mis tüüpi väärtus?
Kümnendmurruna.
Nii et tegelikult hakkame kasutades protsenti i, sest see on
vähe lihtsam, nagu täisarv.
Protsenti i.
Täisarv, mis juhtub olema koma.
>> Protsent on meil juba ütles, oli kohatäide string.
Mis on lihtsalt üks sõna, fraas, lõikes, essee, mis iganes.
See järjestus tegelased põhjalikkusega.
Ja me näeme peagi mõned neist teised.
Aga protsenti c on ühe märgi.
Protsenti f on murdarv,
nagu tegelik arv, mis on koma on see, mis
Loomulikult ei ole täisarv.
Ja seal on terve kamp ka teistele.
>> Vahepeal C ja aastal palju keeli,
meil on erinevaid andmetüüpe.
Erinevad klaasist potid kui soovite.
Kaussi Ma kasutasin viimast korda oli ping pong pallid,
kuid me ei saa ka salvestada erinevaid väärtused nagu tähte ja stringid
ja täisarvude konteineri nagu muutuja, ja C on neist.
Char on tüüpi andmeid, tüüpi muutuja
kus saab salvestada iseloomu.
Float on teatud tüüpi muutuja mida saab salvestada tegelikku arvu.
>> Int on muidugi int.
Ja pigem naeruväärselt nimega pikka
on koht, kus saate talletada sisuliselt tõesti pikk number, isegi
rohkem numbrit siis Tüüpiline int võib salvestada.
Aga me tuleme tagasi, et enne pikk.
>> In CS50 dot h vahepeal Teisest päisefailist
et me oleme näinud paar korda kasutusel, seal
kaks teist tüüpi andmeid, et ei ole olemas C tavaliselt.
Üks on string, ja me näeme paar nädalat, mis stringid tõesti
on all kapuuts.
Ja üks on tõeväärtus.
Ja bool on muutuja, mis saavad olla ainult teatud väärtusi.
Ja just põhineb eelmisel nädalal selgitus Scratch,
ja hiljuti C mida sa vist
on kaks võimalikku väärtust mõned mahuti, mis on tüüpi bool?
>> Jah ja ei.
Üks ja null.
Õige või vale.
Ja tõepoolest see on viimane, mis kipub olla tavalised programmeerimine
keeles, öeldes midagi nagu õige või vale.
>> Vahepeal CS50 raamatukogu on hunnik funktsioone
et töötajad kirjutasid sa, Lisaks lihtsalt saada string.
Me kirjutasime eelnevalt funktsioone, saan täisarv kasutaja,
saada ühe märgi, saada float, et
on lihtsalt number koos koma.
Saada pikka, tõesti suur väärtus kasutaja.
Nii et me oleme näinud ainult seda tegevuse vormis getString.
Aga läbi nende funktsioonid varsti võimalik kirjutada
programme, mis saada sisend kasutaja.
>> Vahepeal peab seda programmi ning kaaluda
kuidas me võiksime praegu hakata lisama et seda uute konstrueerib.
Kiire tuulispask tour ja siis me vaatame
mõned kirjalikult mõned programmid käsitsi ise.
Edaspidi, kui tahame rakendada tingimusel,
see ei hakka nägema kena väike ilus puzzle tükk.
See saab vaadata veidi rohkem kauge.
Aga see on kanooniline struktuuri tingimus C.
>> Sõna kui kaks sulgudes, mille sees
saab olema mingi Boolean väljend.
Nüüd kaldkriipsuga kaldkriips keskel, see on
hetkel omamoodi nagu pseudokoodi kood kohatäide.
Aga enam korralikult, iga rida koodi C, mis algab kaldkriipsuga kaldkriips
on kommentaar.
>> See on nagu kleepuv teadmiseks, et võite panna essee, trükitakse paberile.
See märkus iseendale.
See ei ole funktsionaalne mõju programmile.
See on omamoodi meeldetuletus, et see on teie enda dokumendid selle kohta, mis toimub.
Nii et seda hetkel on omamoodi kohatäide
mis iganes seal sees need looksulg
lõpuks läheb midagi teha.
>> Vahepeal on teil kaks kahvlid tee, kui veel ehitada niimoodi.
Võite kui elseif, muud.
Nüüd see on väärt märkimist, eriti kui olete olnud Googling ümber
Online ressursse välja uudishimu või kui te kiirenemist
üks kursuse soovitatud raamatuid C,
näed, et inimestel on palju erinevate soodustuste kuidas
väljendada end kood.
Mõnedele inimestele meeldib panna looksulg nagu ma olen teinud siin.
Mõnedele inimestele meeldib panna lokkis traksid näiteks siin.
>> Mõnedele inimestele meeldib panna elses siin ja siis see siia.
Seal on igal mitmeid võimalusi kirjutada koodi, ja ükski neist ei
on õigus iseenesest.
Kuigi seal on mõned mis on päris vale.
Kuid on ei--, kui see on lõppkokkuvõttes väga religioosne arutelu.
Tegelikult üks kõige tüütu asju arvutiteadus
kuidas otsaga infotehnoloogid saab.
Ja leiad aja jooksul, et isegi arendada isiklikke eelistusi
selle kohta, kuidas oma koodi peaks otsima.
>> Mitte lihtsalt käituvad, mitte ainult luua väljund, aga kuidas see peaks välja nägema esteetiliselt.
Niisiis, mida me teeme on suunata teid mööda teed, vähemalt praegu,
standard CS50 stiilis, et vähemalt hoiab asju ühtne ja lihtne lugeda.
Aga rohkem on neid, vahet enne pikk.
>> Loogiline väljenduse C, kui te tahtsin öelda, kas see tingimus on tõene
ja see teine ​​tingimus on Tõsi, sa ei kirjuta sõna
ja, nagu sa oleks inglise keeles.
Te mitte kasutama ampersand ampersand, põhjustel me tuleme tagasi.
Kui sa tahad öelda või kasutate kahte vertikaalne baarid, mis on USA klaviatuur
üldiselt kõrgem Sisesta klahvi kõrval tagurpidi kaldkriipsuga.
Ja see tähendab lihtsalt, kui see tingimus või see teine ​​tingimus on tõene teha.
>> Samal ajal on see hull asi, mis
pead kord kasutada kord aega.
Aga see on lihtsalt alternatiiv viis ennast väljendada.
See, et nüüd, lähme sätestada, et see on lihtsalt
teise funky viis väljendada kui elseif, elseif, elseif, elseif.
See on lihtsalt vormindatud poolest juhtumeid, kus sa sõna otseses mõttes
loetleda väärtused võiksite kontrollida.
>> Vahepeal ring.
Nägime võrdlus Scratch silmusega.
Ja ma lähen siputan kätt mida kõik need asjad tähendab.
Aga teate, et silmusega väga sageli alustada märksõna.
Või siis hakkab märgusõnaga aega.
Või siis hakkab märgusõnaga teha, ja lõpeb märksõna ajal.
>> Aga mida me parasjagu näha on asjad enam niimoodi.
Siin on üldiselt C, kuidas te võite kuulutada muutuja ja annab talle raha.
C ei piisa, nagu Scratch, sa lihtsalt
ütlevad mulle muutuja nimega midagi.
Sa pead ütlema C, ja öelda Teie kompilaator täpsemalt
millist tüüpi väärtust sa taha panna klaas kauss.
>> Kas see on täisarv?
Kui jah, siis sa pead sõna otseses mõttes öelda, int ja siis
nimi muutuja siis semikoolon.
Kui te selle asemel tahtis string ja kutsus see on nagu ma tegin oma kood täna siin,
sa ütleksid string s semikooloniga.
Kui soovite, et anda see raha sa võid võrdusmärgi,
muidu tuntud omistamisoperaatorile.
Ja teate, kuidas iga Nende rida koodi
on semikoolon lõpus ta.
>> Aga ausalt öeldes see lihtsalt tundub veidi inetu.
Miks ma ei saa öelda, et arvuti, anna mind muutuja ja initsialiseerida see nulli.
See tähendab, et mulle tühi klaas kauss.
Kuigi saate.
Ja siis ühel kohtuotsuse kutsub teid tegema stiililiselt ajas
on, sa kirjutad oma koodi niimoodi, või sa omamoodi koristama ja muljet
inimesed, kirjutades kaks rida kui üks.
Ja seda võiks pidada üldiselt rohkem elegantne viis
kirjalikult oma koodi stiililiselt.
>> Funktsioonid oleme loomulikult näinud.
Nad kavatsevad võtta selles formaadis.
Funktsiooni nime, mõned sulgudes ja siis võib-olla mõned
kraami sees.
Või te võite näha kasutusalad mitmeid funktsioone pool
kõrval, nagu midagi sellist.
Nüüd kui puutuja, ei see nali nüüd on mõtet?
>> [Naer]
See ei tähenda, et see on naljakas, kuid see Mis võib-olla teha natuke rohkem mõtet.
Nüüd lähme sisse CS50 seade korraks.
Ja lubage mul avada üks teaser siin.
>> Ja tõepoolest üks põhjusi, kehtestamise IKEA kataloog
ja vilkuv pilt iPhone natuke tagasi
oli tegelikult lips koos Asjaolu, et paar aastat tagasi, aastal 2007,
see tükk kood oli vabastatakse, mis oli
üks esimesi rakendamine tükk tarkvara
mis teeb mida nimetatakse jailbreaking.
Neile harjumatu, Täielikuks midagi nagu telefon või iPhone
tähendab sisuliselt viinud kuidas teha asju
seda, et ettevõte kes tegid ta ei kavatse.
Nagu soovite installida teatud tarkvara, mis ei ole in App Store,
Täielikuks telefoni, mis sa tee selliseid asju ja palju muud.
Aga mis oli lõbus 2007-- ja seal on olnud
kümneid erinevaid versioone need asjad, sest siis
igasuguseid languages-- on see, et Selle programmi siin, nimetatakse iUnlock,
oli tegelikult kirjutatud C. Ja nii ma tõmmata lähtekoodi seda,
lihtsalt selline näitan sulle mõned sarnasusi konstruktid
oleme arutanud seni.
Nüüd on nii rohkem keerukust siin kui me oleme näinud juba klassis.
Lubage mul kerida üles natuke siin.
>> Aga teate nende-- hästi märkame vähe things-- kuid märgata neid ridu siin
sealhulgas standard I / O punkti h.
Ja all-- line 24 please-- teate standard I / O
dot h ja terve hulk muid faile, mis ilmselt teisi inimesi
olen kirjutanud.
Ja kui me kerige läbi Selle veidi meelevaldselt
märgata Ma ei tea, kuidas kirjutada see kõik ise tingimata veel
kuid seal on kui.
Nii et ilmselt see on filiaal.
>> Ja kui ma keri natuke edasine on teine ​​kui.
Kui ma liikuge üles, ma arvan, ümber line 100 nägin.
Nii et ma ei ole päris kindel, kuidas see töötab veel,
kuid see on silmus, mis läheb lubage mul kinnitada, mõned mitu korda.
Ja kui ma leidke kõik viis alt
Ma näen, et seal on toimida siia kutsutud
Peamine ja täiendavat krediiti oma lugemise rõõm.
>> Nii et see on ainult olen öelnud ja me paneme see online seas muidugi allikas
koodi today-- et isegi mõned neist seadmed, mida me enesestmõistetavaks,
lõpus päeval sa ikka kasutades neid põhilisi konstruktsioone, mida me oleme
tutvustanud juba siiani.
Aitab see.
Olgu, nüüd lähme tegelikult ehitada midagi.
>> Lähme üle midagi hello.c ja avada see,
kirjutame selle programmi siit.
Ma lähen edasi minna ja Kirjutada programm nimega adder.c,
kelle eesmärk elus saab olema nagu mu esimene super lihtne kalkulaator
et lihtsalt lisab paar numbrid.
Mitte sellepärast, et see on raske probleem, kuid kuna see
võimaldab mul nüüd lips koos mõned asjad.
Nii et ma lähen edasi minna ja sisaldama standard I / O punkti h ja CS50 dot h.
Ma lähen ütlen int main void.
Ja tulevikus uuesti me tuleme selle juurde tagasi
arvesse selles kontekstis ja tühine vahend.
>> Ja nüüd ma lähen midagi öelda nagu printf, anna mulle täisarv.
Ja nüüd on mu teine ​​rida, kuidas ma saan ennast väljendada, nagu
et ma tahan kuulutada muutuja mis toimub salvestada int?
Sõna otseses mõttes, mida ma kirjuta kui ma tahan luua muutuja, mis talletab int
sa ütleksid?
int võrdub getint.
Muidugi, nii et töötab.
Ja just kooskõla koodiga teid
vaata online, lubage mul muutus see, et x, lihtsalt sellepärast, et x
on ühine muutuja nimi kasutama vähemalt Algebrast.
Nüüd lubage mul minna ja teha printf uuesti.
Anna mulle veel täisarv.
Ja nüüd ma lähen liiki ja õppida, et muster,
Ma lähen ütlen int y jõuab GetInt.
>> Ja me oleme ei kasutata GetInt enne, vaid lihtsalt
nagu getString läheb ja läheb string, nagu Javier tegi publik,
Samamoodi ei GetInt hakkavad vilkuma kiire.
Ja tegelikult ootab kasutaja anda see täisarv, kirjutades selle
ja lööb Enter.
Nüüd lõpuks ma teen Selle printf summa of--
ja ma sain fancy nüüd-- protsenti i ja protsenti i olemasolu
i hüüumärk längkriipsu n.
Ja mis sa arvad, et ma lähen panna nüüd lisasisendeid
et printf?
>> Ma ei taha öelda, sõna-sõnalt tsiteerida lõppeb x.
Tahan klassi x ja siis ja nüüd lähme väljamõeldud
ja oletame, et me saame teha, mida tahame.
Mida sa tahad öelda edasi?
x pluss y.
Ja tõepoolest, mis töötab.
See on minimaalselt programmeerimiskeeli ei mõista põhilisi aritmeetilisi,
ja nii see peaks tegelikult töö.
>> Nii et lubage mul minna ja ei tee rästik minu must ja valge aken
siia alla, Enter.
Cryptic line, kuid ei vea sõnum, et see on hea.
Dot kärpida rästik, anna mulle täisarv, 1.
Anna mulle veel täisarv 2.
Summa 1 ja 2 on 3.
>> Olgu, päris triviaalne programmi, kuid mis ta on teinud?
See võimaldas mul kasutada funktsiooni helista siia, helistage teine ​​funktsioon siin,
kaks kõnesid GetInt, kolmas kõne printf,
ja siis kasutades neid kohatäitjaid.
Nii et see on natuke rohkem keerukam kui eelmine kord.
Aga mis siis, kui ma tahan natuke Kasvataja?
>> Lubage mul minna ja nüüd seda teha.
Lubage mul minna ja luua uus fail nimega tingimused null.
Ja ma lähen säästa Mõne aja klasside huvides
ja lihtsalt kleepida, et kood lähtepunktiks.
Ja nüüd ma lihtsalt panna midagi uut siin keskel.
Nii printf Sooviksin täisarv palun.
Ja kõik see kood on olemas kursuse kodulehel
sa ei pea tippige see kõik välja klassis, kui te ei soovi.
int, ja nüüd ma lähen asemel kasutada x ja y,
Ma lähen kasutada n, mis on ilmselt kõige levinum nimi
võtta täisarv arvutiprogramm.
Ja nüüd ma tahan teha vähe kohtuotsuse siin.
Ma lähen, et näha, kui n on suurem kui 0, siis
Ma lähen ütlen printf-- Oih, printf-- valisid positiivne arv,
hüüumärk längkriipsu n.
Sulgege see.
Muidu ma lähen välja printida printf valisid negatiivne number.
>> Aga enne sa karjud minu peale, olgem programmi käivitada.
Lubage mul minna siin.
Ja kuidas ma kompileerida programm kutsunud tingimused kriips 0?
Tee tingimused kriips 0.
Objekti loll nimi aga-- kurat võtaks.
OK, hea õpetamise moment.
Miks see murda?
>> Mida ma kogemata nimetame seda faili?
Te võite seda järeldada alates tab siin.
Nii see ei ole halb, et ma tegin seda, sest see
juhtub võib-olla mõned teist.
Nii et ma kogemata nimega minu lähtekoodi tingimus 0.
Aga minu lähtekoodi kokkuleppeliselt peaks olema fail nimega tingimus 0 kriips c,
või mis iganes dot c.
>> Nii et lubage mul seda parandada.
Just nagu Microsoft Word Ma ei saa minna up Salvesta kui ja tegema tingimus 0 dot c.
Nüüd lihtsalt tuleb korralik olen lähen edasi minna ja eemaldada
tingimus 0, mis oli minu vana versioon.
Ja nüüd teeme tee tingimus 0, Enter.
OK, tundub hea.
>> Seisukord 0, Enter.
Sooviksin täisarv palun, 50, valisid positiivne number.
Nüüd kuidas negatiivne 50?
Sa valisid negatiivne number.
Aga nüüd, 0.
Päris kindel, 0 ei ole negatiivne.
>> Nii et see on omamoodi loogiline viga.
Kuidas seda parandada?
Else if n on väiksem kui 0, seda teha, muidu meil on kolm teed filiaal siin
printf valisid 0.
Nüüd, kui ma uuesti, see programmi pärast kompileerimisel
uuesti teha, ja nüüd uuesti, tingimus 0, mida ma näen siin
0 annab mulle, et väljund.
Nii et kui me saame seda teha?
>> Noh, see on väga lihtne unustada ning puude taga metsa.
Ja nii võimaldab meil sõlmida Selle 2 ja 1/2 minutilise video
et lõpuks on natuke ad Google,
kuid see on tõesti märk mida isegi kasutades neid põhilisi hoone
plokid saame lõpuks teha üks kord meil natuke programmeerimine
Savvy kanname vööd.
>> [Muusika mängimine]
>> SAROO BRIERLEY (Voice Over): See oli 26 aastat tagasi,
ja ma olin just saamas 5.
Me saime rongijaama ja me minnakse meie rong koos.
Mu vend lihtsalt ütlesin, et ma tulen siia jääda, ma tulen tagasi.
Ja ma arvasin, et, noh tead, Ma võin ka lihtsalt magama minna
ja ta lihtsalt mind üles äratada.
Ja kui ma ärkasin järgmisel päev, kogu vedu
oli tühjade Põgenenud rongi, kummitus rongi, et ma ei tea, kus.
>> Olin vastu välja Austraalia, Australian pere.
Ja ema oli kaunistatud minu tuba kaardi India,
mis pani ta kõrval minu voodi kõrval.
Ma ärkasin igal hommikul nähes, et kaart ja seega
see omamoodi hoida mälestusi.
Inimesed ütlevad, et sa oled püüdes leida nõela
heinakuhjas, Saroo sa ei leia seda kunagi.
>> Oleksin pinnatud kohti, et ma käisin, vilgub mu pere
nägu.
Seal oli pilt mu ema, istudes oma jalad ületanud,
lihtsalt vaadates tema nutma.
Elu on lihtsalt nii raske.
See oli mu varandus.
Ja ma vaatasin Google Map ja mõistis seal Google Earth samuti.
Maailmas, kus võid suumida, Hakkasin on kõik need mõtted
ja millised võimalused et seda võiks teha minu jaoks.
Ma ütlesin endale, sa tead, et sa oled sain kõik need fotograafiline mälu;
ja vaatamisväärsused kust sa pärit oled, ja sa tead, mida linn välja näeb.
See võib olla rakenduse mida saab kasutada, et leida oma tee tagasi.
>> Ma arvasin, et, noh panen dot Calcutta rongijaama
ja raadiusega line, sa tead, et sa Tuleks otsida ümber selle ala.
Ma omamoodi leidsin Nende rong lugusid.
Ja ma hakkasin järgmist, ja Tulin rongijaama, mis
peegeldub sama pilt see oli minu mälestused.
Kõik sobitatud.
Ma lihtsalt mõtlesin, et jah, ma tea, kuhu ma lähen.
Ma lihtsalt lasen kaart, mis mul peas
kaasa mind ja võtab mind tagasi oma kodulinna.
>> Tulin käeulatuses maja, et ma sündisin.
Ja kõndis umbes 15 meetrit ümber nurga,
seal oli kolm daamid seistes väljastpoolt, üksteise kõrval.
Ja keskel üks astus, ja Ma lihtsalt mõtlesin, et see on su ema.
Ta tuli edasi, ta kallistas mind, ja olime seal umbes viis minutit.
>> Ta haaras mu käe ja Ta viis mind maja
ja sain telefoni, kus ta helises mu õde ja mu vend
öelda, et sa tead, su vend on lihtsalt
kõik järsku ilmus nagu kummitus.
Ja siis pere taasühendati uuesti.
Kõik on hea, Aitasin ema välja,
ta ei pea olema Orjame.
Ta võib elada kogu ülejäänud oma elu rahus.
>> See oli nõela heinakuhjas, kuid nõel oli seal.
Kõik on olemas.
Kõik me peame maailmas on nupuvajutusega.
Aga sul on tahe ja otsustavust tahtmisest.
>> [Muusika mängimine]
DAVID Humala: Imeliselt magus iseloomustuse
lihtsalt mida saate nüüd tänu tehnoloogiale.
Me näeme järgmisel nädalal.