>> [Tónlist spila]
>> DAVID Malan: Allt í lagi.
Velkominn aftur.
Þetta er CS50, og þetta er Vika Einn, Áframhaldandi.
Svo ein af þeim ástæðum sem við höfum verið að brottför um tækni eins og
Google Gler er að þeir koma með eitthvað þekktur sem API, sem
Umsókn Forritun Tengi.
Og hvað þetta þýðir er að með rétt skrár og með hægri
skjöl, getur þú í raun að skrifa hugbúnaður fyrir jafnvel tæki eins og þessir.
>> Og svo það sem við höfum í huga til annir enda er, ef verkefni
þar, segja, Google Glass gæti höfða, munum við sjá hvað við getum gert í
skilmálum krókur upp með sumir loaner vélbúnaður sem og
opinberlega aðgengilegar API þannig að þú getur í raun að byrja að búa til hugbúnað
sem keyrir á sama Google Glass.
>> Annað tæki sem við höfum verið að spila með upp á síðkastið að við héldum gæti verið
gaman í lok hverrar annar er þetta litla hlutur hér.
Það heitir Leap Motion, og hvað þú ert um að sjá er tæknilega er
auglýsing fyrir tækið, en það er að tala við hvað þetta tiltekna
Tækið er fær um.
Og það líka kemur með API gegnum sem þú getur skrifað hugbúnað til
stjórna tölvunni þinni á þann hátt alveg eins og þessi mínútna kvikmynd hér.
>> [Vídeó spilun]
>> [END vídeó spilun]
>> Svo núna, þetta tæki verður að koma til framkvæmda eins og a lítill USB
tengi sem þú getur stinga inn þinn tölva, en ég yrði ekki hissa
ef áður en langt við höfum þessar tegundir af tækni í næstu lotu tölvum
og Macs svo að þú getur örugglega, samskipti við það í
á þann hátt eins og þessi.
Í raun, hvað ég hélt ég myndi gera líka, er Ég herti upp smá kynningu
Dagskráin sem koma með þennan hugbúnað.
Þannig að ég hef sett smá skynjara fyrir framan fartölvuna mína.
>> Og eins og þú geta sjá, áttar hún nú þegar að hönd mín er
stjórna henni.
Og allt þetta forrit gerir er swimmingly litla hluti eins og þetta.
En þú getur séð það, örugglega, Ég á fimm fingur þar.
Ef við getum fengið það að gera allt 10, þú getur ímyndað snyrtilegur píanó
umsókn eða þess háttar.
Svo ef þú vilt koma upp eftir flokki í dag og leika með það sem
vel, þú ert velkominn til.
Svo meira um það til enda hverrar annar.
>> Svo a par af stjórnsýslu tilkynningar.
Einn, gera kafla af þessu Föstudagur á hádegi á cs60.net/section.
Að slóðin er á námskeiðið er heimasíða eins vel.
Í millitíðinni, þó, supersections frumraun á sunnudaginn.
Supersections eru einn-tími hlutur, því það tekur okkur smá tíma til að vinna
út hver er í hvaða kafla og hvar.
>> Þannig að þetta kemur sunnudagur, það verður að vera einn kafla fyrir þá sem minna þægilegt,
einn hluti fyrir þá öruggari.
Og þá einhvers staðar í milli er velkomið að fara í
annaðhvort eða bæði eða hvorugt.
Báðir þessir verða teknar.
Þeir ætla að vera í stærri salnum en hluti venjulega myndi vera inn
En markmiðið hér er að búa þér sumir þægindi við vandamál að setja einn,
með C, með CS50 tæki, þetta helgi, jafnvel áður en þú finnur út þín
formleg kafla verkefni.
Svo þú munt hitta TF og minni þitt hópur sectionmates í um
a viku tíma.
>> Viðtalstímar, á meðan, hafa verið að fara á.
Gera að nýta þá í kvöld eða morgun ef þú vilt.
Heimadæmi 0 skýrist á föstudag.
Þetta er dagur síðar en reglulega-áætlunarflug fimmtudagur.
En með að stilla vandamál 1, munt þú sjá að það eru nokkur upphitun
æfingar sem þú sjálfur geta lengja þína
Fimmtudagur Frestur til föstudags.
Heimadæmi 1, á meðan mun frumraun á heimasíðu námskeiðsins er þetta að koma
Föstudagur, ef þú vilt að krulla upp með það sem ég gerði eitt sinn seint
Föstudagur nótt í herberginu þínu.
>> Svo er cs50.net/appliance staðurinn þar þú getur fengið CS50 tæki
að við byrjuðum að nota á mánudaginn.
Við munum nota það aðeins meira í dag.
En hvíla sjálfsöruggur að vandinn sett 1 forskrift mun ganga þú í gegnum
einmitt skref sem þú þarft að fá að gang.
Svo ekki hafa áhyggjur um að gera að áður Pset 1 ef þú vilt frekar ekki.
>> Allt í lagi.
Þannig að við leit á mánudaginn kl frumkóða, en í samhengi við ný
forritunarmál, þ.e. C. Og C, ólíkt grunni, er ekki myndrænt.
Það er ekki ráðgáta stykki.
Það er meira English-eins og setningafræði.
Og það er a par af skrefum sem taka þátt í raun að skrifa og keyra
forrit í C, þar að auki fengið númer eins og þetta, þarft að hafa eitthvað
kallað þýðanda.
Og í skilmálum leikmaður er, hvað hjartarskinn a þýðandi gert fyrir okkur?
Já.
>> Nemandi: Það breytir kóðann sem þú skrifar að 0s og 1s.
>> DAVID Malan: Gott.
Svo breytir það kóðann sem við að skrifa til 0s og 1s.
Það breytir svokallaða kóðann til mótmæla kóða, seinni sem lítur
smá eitthvað eins og this.
Og það er CPU, heila inni á tölvan, að vegna
fólkið sem bjó þeim tölvum, vita hvað þessir röð
af 0s og 1s meina.
>> Kannski þýðir það prenta.
Kannski þýðir það að auki.
Kannski þýðir það Frádráttur.
Kannski þýðir það að sýna grafík.
Það eru fyrirfram mynstur bita að heimurinn hefur ákveðið meina
ýmislegt.
En að mestu leyti í þessu námskeiði, við munum vinna á hærra stigi, og
við munum taka sem sjálfsögðum hlut að það eru hlutir eins vistþýðendur sem getur
gera kóðann virka okkar í því hvernig við ætlum.
>> Þannig að forritið sem við skrifaði fyrst í síðustu viku og þá fór að höfn, svo að
tala, til C á síðasta Mánudagur, var þetta.
Þegar grænt merkja smellt segja halló.
Þetta var, að sjálfsögðu, skrifað í grunni.
Og ég hélt að jafngildi nám í C horfði smá
eitthvað eins og this.
>> Svo er það sem ég hélt að við myndum gera í fyrstu, skulum stríða í sundur hvaða útlit, í fyrstu
tillit, að vísu, eins og nokkuð yfirnáttúrulegt setningafræði, en þú munt byrja að taka eftir
mynstur alveg strax.
Hvað við munum einnig gera í dag er að veita þú með andlega fyrirmynd fyrir suma
Canonical, sumir staðall býr í forritun.
Og þá munum við í raun að fá hendur okkar óhreinum með nokkur dæmi eins og heilbrigður.
>> Svo fyrir þá öruggari, átta sig á að í þessari viku og þá næstu
viku getur mjög vel verið hluti af endurskoðun.
En sérstaklega þegar tölvusnápur útgáfa af Heimadæmi 1 fer út á
website sjálfsögðu á föstudaginn, ég held þú munt komast að því að jafnvel eins og þú fyllir á
sumir blanks á næstu viku eða tvær, þú munt byrja að fá sífellt
áskorun og fundur ný og nýrri hluti.
>> Þannig að við skulum stríða þetta forrit í sundur nokkrar línur í einu.
Efst, höfum við það sem er tæknilega kallast
Preprocessor tilskipun.
Þetta er bara lína af kóða sem segir að fela innihald af a skrá,
kallað staðall I / N, standard input - eða, hryggur, staðall I / O, staðall
inntak / úttak,. klst inni eigin áætlun mína.
>> Svo í öðrum orðum, ef ég skrifaði þetta Forrit með einföldum texta ritstjóri eins
gedit er einfaldara jafngildi eitthvað eins og Microsoft Word, sem
kennsla, # include stdio.h, er bara fara að segja þýðanda, grípa
innihald síðarnefnda skrá, stdio.h, og líma þær hérna.
>> Nú, hví ÉG aðgát?
Hvað gerði við kröfu er inni af þessari skrá kallað stdio.h, sem er geymt
einhvers staðar á harða diskinum mínum, eða í þessu ræða, einhvers staðar í CS50 tæki?
Einhver annar setja það þarna fyrir mig.
En hvað er í henni?
>> Já, svo er það yfirlýsing um fall kallast printf.
Svo printf minnir fallið sem birtir orð og stafi og
tölur á skjánum á tilboð mitt.
En ég vissi ekki að skrifa það.
CS50 ekki skrifa það.
Einhver ár skrifaði síðan það, og þeir raun gaf okkur uppskrift að henni
í skrá sem kallast stdio.h.
Svo gefur það fyrsta línan bara mér aðgang til aðgerða sem einhver annar
skrifaði árum, meðal sem eru printf.
>> Nú er næsta lína ég ætla að veifa mín hönd á, að minnsta kosti þangað til í næstu viku.
En nú, ég veit að int helstu (tóm) er meginatriðum jafngildir þetta
gulur þraut stykki þegar Grænfánann smellur.
Heimurinn, árum, ákvað að ef þú ert að skrifa forrit í
tungumál sem kallast C, þú byrjar program með línu
sem lítur út eins og þessi.
Í réttlátur óður í einu viku, verður það að gera vit hvað int er, hvað ógilt er.
En nú, bara að hugsa um það eins og þetta gula ráðgáta stykki.
>> Nú næst, höfum við hrokkið borsveif fylgt af öðrum nánum hrokkið borsveif,
svo að segja.
Og við munum sjá þetta í gegn forrit í C, sem og
JavaScript og PHP.
Og þessir þjappa bara tengdar línur af kóða.
The opinn hrokkið borsveif raun segir, hér kemur einhver númer.
Og lokað hrokkið borsveif, sem er horn í aðra átt, bara
þýðir að það er fyrir viðkomandi númer.
>> Svo safaríkur lína í þessari fyrstu program er the síðastur, printf,
vitna-Unquote, halló heimur.
Og ég kallaði málið milli vitna hvað síðast?
Svo það er strengur.
Og streng er bara techie tíma fyrir röð af
stafir, orð, setningu.
Jafnvel einasta bréf gæti vera tvöfaldur vitnað.
En það er röð af núll eða fleiri stafi.
>> Sviga-n, þó lítur, svolítið skrítið.
En það þýddi einfaldlega eitthvað einfalt í tölvuna.
Hvað er sviga-n?
Nýja línu.
Svo er það bara sérstakt röð stafir sem heimurinn hefur ákveðið
þýðir að setja inn línu brot þarna, vegna þess að þýðandinn muni raunverulega fá
rugla, yfirleitt, ef þú, mjög skiljanlega, en rangt, bara
byrja hitting á Enter til að setja nýjar línur í kóðann þinn.
Þú þarft að vera svolítið meira skýr með sviga-n.
>> Og við munum sjá að það er nokkur önnur slík mynstur fyrir sértákn.
Fyrir dæmi, ef þú vildir láta þinn hugur reika í horn ræða,
Segjum að ég vildi að prenta út tvöfaldur vitna á skjánum
hvað sem ástæða, sem virðist vera svolítið erfið, ekki satt?
Vegna þess að ef ég setti tvöfaldan vitna í miðja "Halló, heimur," fyrir hvað
ástæðan, hvers vegna hjartarskinn það virðast hugsanlega erfið?
Það brýtur band.
>> Þýðandinn er bara program.
A program eins þýðanda er bara að fara að lesa kóða efst til botn,
vinstri til hægri.
Og ef sér þrjú gæsalappa í staðinn tveggja, það er ekki að fara að vita
ef þú átt að hlutur til vinstri ætti að vera strengur, eða hlutur til
rétt, eða the heild hlutur.
Það er óljós, og svo það sem er dæmigerður þýðanda myndi gera er bara að Freak út,
og gefa þér villa skilaboð og gera þú takast á við vandann.
>> Svo í ljósi þess að sviga-n merkir nýtt lína, hvað myndi eðlishvöt nú
byrja að vera ef þú vildir að fela eitthvað óeðlilegur eins tvöfaldur
vitna inni þessa annars-vitna band?
Sviga-tvöfaldur vitna.
Og svo við munum sjá þetta konar mynstur líka.
>> Ef þú vilt gera eitthvað smá undarlegt, munt þú finna að
lausnir fylgja oft mynstur, Og sviga
táknar að flýja röð.
Og það þýðir bara eitthvað sérstakt að við þurfum að tákna í
mismunandi hátt.
Eins og fyrir hvernig þú ert í forsvari A sviga, vel, munum við
koma aftur til það.
En svarið, of, er reyndar svolítið augljóst.
>> Svo skulum nú kynna nokkrar aðrar forritun býr
sem þú sást í grunni.
Þú hefur sennilega tekið sem sjálfsögðum hlut þegar ef þú hefur þegar kafa inn
Heimadæmi 0.
En við skulum nú kynna setningafræði í C fyrir þessum annars nokkuð leiðandi
hugmyndir, að minnsta kosti sumir þeirra.
>> Þannig að þetta hugmynd af ástandi eða útibú, en áður við
fulltrúa það með kóða sem leit svona á eftir í grunni -
ef x er minna en y, þá segja það -
stað núna í C - láta mig skerpa í á einföldustu tilvikum -
við erum einfaldlega að fara að segja, að opna sviga, eitthvað er satt - að
Boolean tjáningu er að fara að fara þar sem ég hef sagt ástand -
loka sviga, þá gera það sem er inni af þeim hrokkið axlabönd.
>> Svo hér, of, the hrokkið axlabönd eru eins konar eins er Scratch
U-laga ráðgáta stykki.
Ekki hvað er inni þessum hrokkið axlabönd.
Í þessu tilviki, rista rista.
Og taka þetta er fram rista, ekki a sviga.
Forward rista, skástrik, fyrir þá sem hafa forritað
áður, þýðir bara -
það er bara athugasemd.
A athugasemd er ekki lína af kóða, í sjálfu sér.
Það er lína í ensku sem þú, manna, hafa skrifað sjálfur að
kannski minna þig á að gera eitthvað, til útskýra sjálfur, að útskýra
einhver annar, hvað númerið þitt er að gera.
Það er bara lýsandi athugasemd.
>> Nú, auðvitað getum við haft tvo-vegur punga í veginum með því að gera þetta,
þrír-vegur punga í veginum með því að gera þetta, og ef þú heldur áfram þetta
mynstur, þú geta hafa fjórir-átta, fimm-vegur, sex-átta gafflar á veginum ef
þú þarft að vinna, reyndar, sem margir aðstæður.
Og þá taka eftir parallelism hér -
if (skilyrði), annars ef (skilyrði), og sú eina sem er lítið
undarlegt er síðasta, sem er bara að annað.
En aftur, þetta er nákvæmlega eins, eðli, að það sem við höfum gert
nú þegar, jafnvel þótt setningafræði mun taka smá að venjast.
>> Nú, í þessu dæmi, þá eru einhver annar skrýtinn setningafræði.
Við sjáum printf aftur, opna sviga, og loka sviga.
Og inni þar er A vitna band.
Sviga, í samhengi af printf, fara á vinstri
og hægri hvað?
Hvað lýsa við að vitnað band sem almennt?
>> Svo er það rök.
Hvert sinn sem þú ert með virka, eins og printf, og þá opinn paren og
loka paren og eitthvað inni það, hvort sem það er a band, eða
heiltala, eða eitthvað annað, sem í milli þessara sviga er kallað
rök.
>> Og rök áhrif bara Fallið er hegðun.
Í þessu tilfelli, er það nokkuð ljóst hvernig.
x <y er það sem er verið að fara framhjá í, svo að segja, sem rök.
Og printf er að fara að prenta einmitt það.
Vegna vafalaust, sá árum sem framkvæmd printf hafði ekki hugmynd
hvað við manna eftirmenn voru fara að nota printf fyrir.
Svo er að hvers vegna rök fyrir hendi, til áhrif á hegðun eftir fall er
verið skrifað.
>> Nú, Boolean tjáningu.
Við höfum séð þetta áður í grunni.
Það kemur í ljós í C þú getur líka "eða" þá saman, svo að segja.
Tveir lóðrétt bars þýðir að þessi blokk af kóða, þetta gera þetta, mun
framkvæma ef fyrsta skilyrðið er satt eða annað ástand er satt.
Og jafnvel þó að þú gætir ekki hafa gert þetta í grunni, gastu örugglega
gera þetta í grunni, og þú getur líka tjá þig öðruvísi -
ef fyrsta skilyrðinu og annað ástand er satt, þá gera það sem er
inni á hrokkið axlabönd.
>> Og rétt eins og innskot, the ástæða það er tvöfaldur merkið og tvöfalda
lóðrétt bar, munum við sjá að lokum að eitt lóðrétt bar og
einn merkið hefur í raun mismunandi merkingu í C. Svo nú,
sem tvíverknað af táknum er viljandi.
>> Svo skulum kynna, í stuttu máli, þetta önnur hluti af setningafræði.
Þetta er ekki alveg að bera yfir Scratch, en ég halda því fram að ég get
innleiða hugmyndina um að ef annað, ef annað, ef annað, ef annað yfirlýsingu með
eitthvað sem kallast a skipta yfirlýsingu.
Og eina ástæðan þetta virkilega til er bara að gefa þér, forritari, sem
aðeins öðruvísi leið til að leysa sum vandamál, jafnvel þó að rökrétt það
ekki gefa þér neinar nýjar getu.
>> Eftir að ég meina þetta.
Þegar þú segir skipta, og þá pláss, og þá a par af sviga, inni
sem fer tjáning -
og þetta gæti verið smá ekki augljós í fyrstu, en þetta er ekki rök,
tæknilega, vegna skipta er ekki fall.
Svo að nú, bara gera ráð fyrir að við erum að nota sviga í mismunandi stöðum
fyrir mismunandi ástæðum.
>> Svo þýðir að kveikja á tjáningu ég get setja breytilega inni þá
sviga þar sem hún segir tjáningu.
Og þá ef það breyta -
Segjum það heitir x og það er bara heiltala -
Ég get þá telja í mynd mína hér eitthvað eins og this.
Ef x er breytilegt minn, og ég langar að gera eitthvað ef x
jafngildir 1, get ég gert það.
>> Ef ég vil í staðinn að gera eitthvað ef x er 2, get ég gert það.
Annars, ef ég vil gera eitthvað annað alveg, get ég með sjálfgefna mál í
sem ef ég gera þetta annar hlutur.
Þannig að í þeim skilningi, er það samsvarandi við ef x er jafnt jafngildir 1, annars ef annað,
en ég nefni þetta nú bara vegna þess að við munum sjá hana aftur.
En nú, bara vita að það er til staðar.
>> Allt í lagi.
Svo þetta síðasta par eru lítið meira flókið við fyrstu sýn, en þeir gera
eitthvað frekar einfalt.
A fyrir lykkju í C er klumpur af kóða sem bara gerir eitthvað aftur og
aftur og aftur.
Og aðeins pirrandi hlutur óður í það er það er að það er lítið dulinn
að tjá þig í þessari sveiflu mynstur, en heimurinn stöðluð á
á eftirfarandi hátt.
>> Þegar þú notar fyrir lykkju, hefur þú fengið a par af sviga aftur.
Og taka tvö semikommum þar.
Þessir tveir semikommum aðskilin þrjú mismunandi tjáning inni í
sviga.
Einn er svokölluð initializations.
Eitt er svokölluð ástand.
Og eitt er svokölluð uppfærslur.
>> Horft er á í ágrip, þetta er alveg ekki augljóst, þannig að við skulum líta
á steypu dæmi.
Í grunni við áttum endurtaka blokk.
Og þetta blokk sagði endurtaka 10 sinnum, segja "Halló, heimur." Leyfðu mér að halda því fram að
nú, og við munum koma aftur til þetta, og þetta líka, vilja fá fleiri kunnugleg
þú áður lengi, sem nemur C kóða má segja að þetta -
a fyrir yfirlýsingu og rúm, a par af sviga, taka þær semikommum í
þar skilja sem þrjú aðskilin hlutir, frumstilling, the
ástand, og uppfærslu.
>> Og taka giska hvað fyrsta er að gera.
Int i = 0.
Í skilmálum gróft leikmaður, hvað er að gera fyrir okkur, sennilega?
Svo já.
Það er að lýsa yfir breytu sem heitir i, og það er að gefa það hvers virði?
0.
Svo það er að búa til breytu sem heitir i, geyma gildið 0 í henni.
Það er svokölluð frumstilling.
>> Allt í lagi, nú ég hélt áður að miðju hlutur, ég
<10, er ástand.
Svo hvað er að gera?
Jæja, hvað um lykkja er þegar program með for lykkju er litið, er
hvert skipti sem tölvan keyrir í gegnum Þessi lykkja, toppur til botn, toppur til
botn, rétt eins og þú krakkar gerði þegar telja ykkur og sitja niður,
aftur og aftur og aftur, tölvan er að fara
til að athuga hvort ástand.
Og ef ég er minni en 10, það mun gera það aftur.
Ef ég er minni en 10, það mun gera það aftur.
Ef ég er minna en tíu, það mun gera það aftur.
Svo sem virðist benda til þess að vonandi ég er að breytast.
Annars viljum við hafa óendanlega lykkju.
Og reyndar, er ég að breytast, vegna þess að síðasta sem eftir semíkommu þar
er nokkuð dulinn setningafræði I + +.
En þeir sem hafa gert þetta áður, sem þýðir bara
einfaldlega hvað?
>> NEMENDUR: [INTERPOSING raddir].
>> DAVID Malan: Bæta 1 til i.
Vöxtur i.
Þannig að við sáum að klóra þraut stykki fyrir það, reyndar.
Það leit ekki út eins og ég + +, en það bara þýðir einfaldlega, vöxtur í
gildi ég um 1 í hvert skipti sem þú gerir þetta.
Svo bókstaflega, byrja þú með Frumstilli i til 0.
Þú athuga þá ástand þitt.
Er 0 minna en 10?
Já.
Við förum í gegnum lykkjuna.
>> Það næsta sem ég krafa the tölva ' að fara að gera er að það er að fara
að hækka i.
Svo er ég núna 1.
Það fer yfir ástand.
Er 1 minna en 10?
Auðvitað.
Svo er það aftur.
Þá hækkar I + + til 2.
Er 2 minna en 10?
Já.
Og aftur og aftur og aftur.
Og að lokum, vegna þess að plús-plussing, fáum við að ég jafngildir 10.
Er 10 minna en 10?
Jæja, augljóslega ekki.
Og það er málið þar sem for lykkjunnar hættir bara.
Og ef þú ert með fleiri kóðann á skjár niðri, the tölva
ágóði til hlaupa þessi númer í staðinn.
>> Svo aftur, jafnvel þótt það er að fara að útlit og feel a lítill undarlegt á
fyrst, vissulega fyrir þá sem hafa aldrei forritað áður, það
bókstaflega dregur eðli hvað er annars mjög
einfalt púsluspil stykki í grunni.
>> Allt í lagi, lofaði ég að það myndi vera annar hliðstæður í grunni.
Það er þetta líka.
Og við sáum þetta stuttlega síðasta skipti.
En muna endanlega loka í grunni?
Það er bara eitthvað að eilífu?
Ég hélt að þú gætir innleiða þetta á þennan hátt.
Og þú getur raunverulega framkvæma þetta í fullt af mismunandi vegu.
>> En meðan lykkja er bara öðruvísi leið C til að tjá þig.
Í lok dagsins, þú getur ekki gert nokkuð með while lykkju sem þú
getur ekki með for lykkju.
Svo þeir eru í lok daga virkni sú sama.
En það gerir þér kleift að tjá þig svolítið öðruvísi í
á eftirfarandi hátt.
>> Með while lykkju, það hvað er í sviga sem er athugað aftur og
aftur og aftur.
Og um leið og það mál er ósatt, þá stoppar lykkja framkvæmd,
og tölvan fer áfram til keyra hvað önnur númer sem þú
hafa í skránni þinni.
>> En hvað er áhugavert hér er að ég gafst bókstaflega satt.
Og satt er tegund af Boolean gildi, sannur eða falskur gildi.
Svo gæti satt alltaf orðið falskur ef ég hef bókstaflega
harður-dulmáli það inn áætlun mína?
Svo enginn.
Það er svolítið skrítið að ég gerði þetta.
En satt er satt.
Það er engin plús-plussing.
Það er engin notkun á breytum í hér.
Svo vegna þess að ég harður-dulmáli meðan satt, þetta lykkja er alltaf að fara að meta
aftur og aftur og aftur.
>> Svo hvernig margir sinnum er Halló heimur að fara að prenta á skjánum?
Eilífu.
Óendanlegur fjöldi af sinnum þar til rafhlaðan deyr eða einhver önnur utanaðkomandi
atburður gerist.
Svo er þetta líklega ekki besta program að skrifa, því ef notandi
getur aldrei hætta program, það er sennilega ekki það sem þú ætlaðir.
>> En stundum, forrit ætti hafa óendanlega lykkju.
Fyrir dæmi, ef þinn tölva hefur a klukka á það, vissulega væri
gott ef klukka er það að halda að uppfæra sig að eilífu, að vísu einu sinni á
annað eða einu sinni mínútu eða eitthvað svoleiðis.
Svo jafnvel óendanlega lykkjur gera hafa þeirra stað.
>> Allt í lagi.
Loksins, þetta.
Og þetta er svolítið öðruvísi virkni, og við munum koma aftur til
þetta líklega í Pset 1.
En það er önnur tegund af lykkju kallað gera á meðan lykkja.
Og eini munurinn hér á milli gera á meðan lykkja og segja, að meðan lykkja,
er að ástand er valið ekki áður en þú framkvæma kóðann, en eftir
þú framkvæma kóðann.
Svo efst á meðan lykkja, en gera á meðan
stöðva það neðst.
>> Og þetta þýðir bara að á meðan lykkja yfirleitt framkvæma oftar
eða færri sinnum en a while lykkju?
Hugsanlega fleiri sinnum, vegna þess að gera meðan lykkja er greinilega að segja að gera þetta,
aðeins eftir sem benda þú stöðva ef ástand inni við
sviga er satt.
>> Þannig að við munum sjá þetta aftur líklega í Pset 1.
Ef þú vilt alltaf að gera eitthvað í kosti einu sinni og þá kannski meira
sinnum, þetta er góð smíða á að nota.
En meðan lykkja, hins vegar mun athuga ástand hennar fyrst.
Og það er það fyrir lykkjur í C, gera á meðan, á meðan og eftir lykkjur.
Og aftur, landakort þeir nokkuð vel til baka að klóra, nema þetta virkar ekki
alveg hafa sömu byggður á hliðstæðum í grunni.
>> Jæja, hvernig væri nú, breytur?
Svo er þetta hvernig ég lýst breytu setningafræðilega um daginn.
Ég hafði int sem ég krafa er heiltala.
Ég hafði þá breytilega heitir gegn, og þá semíkommu.
Svo hvað er þetta lína af aðgerð númer?
Þetta er einfaldlega, lýsa breytu -
sem er, spyrja tölvuna, gefa mér sumir minni, gefa mér bita - í
sem ég get geymt hvað?
Int.
Og semíkommu þýðir bara enda línu af kóða.
>> Nú, seinni línan er líklega nokkuð guessable.
Hvað er gegn = 0; gera?
Það er framselja 0 gegn.
Og svo er þetta annar hlutur sem er svolítið pirrandi
móti, segja, algebru.
En í algebru, jafnan tákn þýðir jafningjar, hér í C, jafnan
tákn merkir verkefni.
Svo þýðir það að setja hvað er á hægri í hvað er á vinstri.
Og við munum sjá aðra tákn, jafngildir jafngildir, þegar við viljum í raun og veru prófa
fyrir gæði, nokkuð annoyingly.
>> En þetta er svolítið óhagkvæm.
Það er eins konar pirrandi að ég hef að lýsa yfir breytu og
þá gefa það a gildi.
Svo C leyfir reyndar okkur einfalda þetta og bara gera það allt í einu.
Þú getur lýst breytan á vinstri.
Þú getur enn gert verkefni á rétt með því að setja þessi jafn merki í
miðju.
Svo í lok dagsins, eru þessar tvær jafngildir, en þetta eitt, hreinskilnislega,
er líklega betra venja að fá inn bara vegna þess að það er aðeins minna
kóða, er það svolítið auðveldara að lesa, og það tightens bara upp
númerið þitt, svo að segja.
>> Einhverjar spurningar svona langt á lykkjur, á breytum, um skilyrði á
Booleans, annaðhvort tæknilega eða eðli?
Allt í lagi.
Svo nú fær þetta næsta einn á aðeins meira áhugavert.
Og þetta er dæmi sem ég setti upp síðasta sinn sem bara Maps Scratch dæmi
yfir til C.
>> Svo fall.
Í skilmálum leikmaður er, hvað er fall?
Fékk að vera bolder með svari þínu.
Hvað er fall?
>> STUDENT: Er eitthvað.
>> DAVID Malan: Hvað er þetta?
>> STUDENT: Er eitthvað.
>> DAVID Malan: Er eitthvað.
OK.
Við munum byrja þar.
Svo er fall eitthvað.
Svo það er a stykki af kóða sem er raun til framkvæmda annars staðar að
reyndar er eitthvað.
Nú, hvað er áhugavert um fall er að það getur tekið inntak,
og það er hægt að framleiða framleiðsla.
Og við skulum raunverulega taka líta á þetta.
>> Svo maðurinn á bak við fortjaldið var vísvitandi fyrir augnabliki.
Hér höfum við töflu.
En geri ráð fyrir að þetta í raun táknar stór kassi.
Svo er þetta svokölluð svartur kassi.
Og almennt, í hönnun, í tölvu vísindi, vísa svarta kassa bara til
stykki af virkni sem einhver hefur innleitt, og þú ert ekki
endilega vita eða sama hvernig það er framkvæmda undir hetta.
Þú kæra bara að þetta svartur kassi, sem við munum nú hefja starf á
virka, gerir eitthvað.
>> Svo, til dæmis, ef þetta svarta kassann á sviðið hér táknar printf, sem
virka, ég veit af fyrri dæmum sem tekur printf einn eða fleiri
rök, og fyrst af þeim rök ættu að vera strengur, eins
"Halló, heimur." Jæja, ef ég er maður skrifa forrit, og ég vil
að nota printf,, ég til dæmis, gæti taka stykki af eyða pappír hér og
svart merki og rita á hana -
Ég rangt stafsett "heim" -
H-E-L-L-O.
>> Svo ég tek svart merki mitt og ég skrifa, eins stór og læsilega og ég get á
þetta stykki af pappír, "halló, heimur," og nú ég kröfu þetta er rök mín.
Þetta er band fulltrúa með a stykki af hvítum pappír.
Og inntak minn núna að virka printf er að fara að vera svona.
Svo er ég að hringja printf, sem liggur að rökin sem inntak í það.
>> Og nú, ég veit ekki hvernig sá sem skrifaði printf gerði það árum, en
Ég veit af gögnum sínum sem tilgangur þess í lífinu er að prenta það sem ég
veita henni sem inntak.
Og svo, jafnvel þótt það framkvæmd er unbeknownst mér
undir hetta, nú Ég sé, ó, það er gert.
Það hefur prentað eitthvað á skjánum.
Og nú stjórnað af the program, ef það voru fleiri línur af kóða, myndi
hafa nú aftur til mín.
Og svo sú staðreynd að Colton -
blessi hjarta hans, er að fela sig hér undir borð fyrir framan ykkur -
er vísvitandi í að ég veit ekki og ég er alveg sama hversu printf er
framkvæmda.
Ég veit bara, aftur, frá þess skjöl, hvað hún gerir og hvernig ég
er ætlast til að nota það.
>> Nú, muna að printf gæti fengið svolítið flóknari.
Aftur, við erum bara að tala um jafngildir blokk Say Scratch er.
En ég gerði líka þessa síðasta sinn.
Mig langaði til að gera hello forritið mitt er lítið meira dynamic og ekki bara erfitt
númer eitthvað eins og "heim," og örugglega ekki erfitt kóða eitthvað
handahófskennt eins og D-A-V-I-D inn í kerfið.
Mig langaði til að spyrja notanda um hans eða hennar nafn, og þá gera eitthvað með
að strengur sem þeir veita.
>> Svo er það eitthvað svolítið öðruvísi hér. printf, í smá stund síðan,
gerði reyndar gera eitthvað, en það ekki aftur neitt til mín.
Ekki satt?
Colton ekki rétta mér neitt aftur, ekki stykki af pappír.
Það var bara aukaverkun.
Veita minn "halló, heimur" sem rök til Colton leiddi í
aukaverkun orði, nokkur orð, birtist á skjánum.
>> getstring, þó, er lítið öðruvísi. getstring er einnig
virka, en það skilar sumir gildi.
Það þýðir ekki bara að hafa fagurfræðilegu hlið áhrif.
Það gefur í raun mér, sá hringja eða nota aðgerðina,
eitthvað til baka.
Svo í þessu tilfelli, getstring er boða með getstring opinn
paren, loka paren.
Er getstring því taka allir rök eða inntak?
Nei, það virðist ekki.
Tilgangur hennar í lífinu er bara til að fá strenginn.
Það þarf ekkert nánar en það.
Svo láta mig fara á undan og láta sem, aftur, þetta svartur kassi er ekki printf,
en getstring, og láta mig, mann skrifa þetta forrit, hringja eða nota
getstring bara skrifa G-E-T-S-T-R-I-N-G, opið paren, loka
paren, getstring.
>> Nú, ég hef ekki hugmynd um hvernig CS50 starfsfólk framkvæmda getstring, en ég veit að
ef ég bíða nógu lengi, mun það gera sína hlutur undir hetta, kannski með
sumir breytur, kannski nota sumir aðstæður, kannski með einhverja lykkjur,
kannski nota sumar aðgerðir, kannski nota -
bara að reyna að tefja - kannski nota nokkrar aðrar aðgerðir forritun.
En ef ég bíða nógu lengi - í raun og veru, í tölvunni, þetta gerist
frábær fljótur -
ef ég bíða nógu lengi, þessi aðgerð getstring er að fara að fá band
frá notandanum, sem er væntanlega að skrifa það út á lyklaborðinu sínu, og
Þá, þegar þú getstring er gert að fá þessir stafir frá notanda
og geyma þá í band, að virka, getstring, er að fara að hafa
tilbúinn fyrir mig nokkur framleiðsla sem ég er að fara til að sækja með því að sem
verkefni rekstraraðila.
>> Og ef ég fer reyndar í framleiðslu Hér Obosi hefur ríkulega
þátt, án þess að vita þetta í fara, með því að skrifa nafn sitt á þetta
breytu, sem er fulltrúi band.
Nú, úthlutun rekstraraðila þýðir, jafnvel þótt það might feel a lítill
óþarfi, ég raunverulega þörf að gera eigin afrit minn þetta.
Því að á vinstri hönd hlið - Úpps ​​-
eftir því að ég hef í raun band Nafnið á vinstri hönd.
Þannig að ég ætla líka að fara að gera eigið eintak mitt af þessu.
Og þetta er hluti af hvítu liggja, vegna þess að við munum sjá í viku eða tvær er
sinn sem strengir eru í raun ekki hvað þeir virðast vera.
>> En nú, hér er aftur gildi.
Hér er eigin minn eftirlíking af það eftir með verkefnið rekstraraðila.
Og nú, hvað ég vil gera næst?
Við höfum nú annað af tveimur línum af kóða.
Svo ég vil nú kalla printf.
Skulum þykjast nú að svarta kassi er aftur að vera
printf og ekki getstring.
>> Printf þessu sinni er að fara til taka hversu mörg rök?
Svo sjáðu, það er eins og tveggja.
Það er tvær kommu þarna, en einn af þeim kommum, það
inni í gæsalöppum.
Svo er fyrsta rök bókstaflega fara að vera svona.
H-E-L-L-O, komma, hlutfall s, sviga-n.
Og nú er ég að veita ekki eitt viðfang, en tveir rök til printf.
>> Og hvað er printf að gera við þessir tveir inntak eftir að ég fara þá í
sem rök?
Það er ætlast til að taka seinni þá, sem ég nefndi, svo
Annað stykki af pappír sem ég skrifaði út í smá stund síðan er kallað nafn.
Það er að fara að stinga af verðmæti inni þeirrar breytu inn í tákn,
% S, þannig að, aftur, í bara smá stund á tími, munum við sjá aukaverkun
Hann kallaði printf, þar nú við sjá ekki "halló, heimur," en "halló,
Obosi. "
>> Svo stór umferð af lófaklapp til beggja Sjálfboðaliðar okkar, aðeins einn þeirra þekkti
þetta myndi vera að gerast.
Allt í lagi.
Svo, ef til vill, einfalt eins og þessi var, vissulega, ef þú ert þegar kunnuglegur
með svo vonandi þú munt aldrei gleyma því að sérstakur visual hvernig
aðgerðir vinna.
>> Svo er það meira en bara getstring.
Inni í CS50 bókasafn, það er allt fullt af aðgerðum, sem öll
eru færð bara að gera ljóst sem við skrifuðum þessar aðgerðir.
Venjulega, í C, næstum hvert annað virka þú munt nota er lágstafir.
En við notum vísvitandi hástafi bara til að gera ljóst að þetta
eru þjálfun hjól konar sem við munum nota fyrir örfáum vikum sem
einfalda ferlið við að fá inntak frá notandanum.
>> The CS50 bókasafn gerir ekki neitt að þér og sjálfir gátu ekki gert með því að
bara að nota C kóða frá Oldschool kennslubók.
En, aftur, við notum þá eins og þjálfun hjól konar fyrir réttlátur a par af
vikur svo að við getum að losna við flókið að þú munt fljótt skilja
sjálfur um að gera eitthvað eins og tiltölulega einfalt og að fá
inntak frá notanda.
>> Svo veit að þú munt hafa aðgang til getchar, GetDouble -
tvöfaldur.
What's - og þá GetFloat.
Hvað er flot?
Við skulum byrja þar.
>> STUDENT: [inaudible].
>> DAVID Malan: Já.
Það er tala með kommu.
Svo þar sem int er heiltala, sem er bara tala með 0 í 9,
sumir tala af endurtekningum þeirra, A fljóta er eitthvað
með kommu.
Og tvöfalda, á meðan er, einnig tala með kommu, en meira
tölur eftir aukastaf lið, hugsanlega.
>> Þannig að við munum fá til baka til þessa áður en langur.
En venjulega, sem hvert um þessar tegundir af gögn, sem hvert um þessar tegundir af breytum
að bókasafn eins og okkar geta koma aftur til þú, nota mismunandi fjölda bita
geyma upplýsingar.
Venjulega, a Char, sem bara þýðir einn staf, notar 8 bita.
Og það er í raun í samræmi við okkar bæti sjálfboðaliðum í síðustu viku sem
kom upp og fulltrúa einn Ascii staf í einu.
Svo er Char 8 bitar.
>> A fljóta gerist að 32 bita, yfirleitt.
Og tvöfalda, eins og þú might giska, er reyndar 64 bita, sem er bara meira,
sem þýðir að þú getur haft stærri númer eða fleiri nákvæmni.
En aftur, meira um það í annað sinn.
GetLongLong, á meðan, þó heimskulega nefndi, er í raun bara
heiltala sem er tvisvar sinnum eins stór, tvöfalt lengi, hugsanlega, eins og venjulegur
heiltala, 64 bita í stað 32.
Og GetString við höfum verið að nota.
>> En það kemur í ljós, í CS50 bókasafn, sem er hrint í framkvæmd, eins og við munum sjá, í
formið af tveimur skrám, eitt sem heitir cs50.h, hefur tvær aðrar
gögn tegundir í það.
Booleans eru ekki til í C. Þú getur líkja þeim við bara að nota 0s og 1s
um áætlanir þínar.
En við í CS50 bókasafninu hefur búið tákn "true" og "false"
að tákna 1 og 0 svo þú ekki að harður kóða eitthvað
bókstaflega eins og 1 og 0.
En við munum sjá þá aftur.
>> String, of, er ekki til.
Og það er hvers vegna ég nefndi það a hluti af hvítu liggja fyrir nú.
En við munum afhýða aftur að lag fyrir löngu.
En nú, a band er röð af stöfum.
>> Á sama tíma, í C, örugglega þú hafa mismunandi tegundir gagna.
Tilkynning þetta eru lágstafir.
Svo aðgerðir sem þú sást í smá stund síðan eru aðgerðir eftir CS50 að
mun koma aftur til þín gildi sem fellur inn í einn þessara flokka.
>> Svindl par blöð bara til að planta fræ hér. printf er ekki bara
taka% s staðgengla.
Það tekur% d fyrir aukastaf heiltölur eða% ég myndi vinna eins og heilbrigður.
% F er fljótandi Spjallsvæði gildi. % C er fyrir A bleikju, ef þú vilt bara að stinga einn
eðli í útlitsmótaðan band eins og við höfum verið að gera, er hægt að nota% c.
>> Og þá, nokkuð er annoyingly,% LLD í langan, langan aukastaf heiltala,
sem þýðir bara ef þú þarft virkilega stór tala og þú ert að nota eitthvað
kallað lengi lengi, sem við munum koma aftur í pset, þú getur notað% LLD til
segja printf, stinga í mjög stórt heiltala hér með því að annað þess eða
einhver önnur rök.
>> Og loks, lofaði ég að það er nokkur annar flýja
runur sem printf styður.
Við höfum séð sviga-n.
Sviga-r sem þú getur séð.
Það er tegund af gamla skólanum hlutur.
Ef þú einhvern tíma notað alvöru ár ritvél síðan og þú dreginn á sveif
sem ekki aðeins snúið hjólinu til færa lína, flutti það einnig
heild hlutur alla leið aftur yfir til vinstri, vel, sviga-r bara
raun færist bendillinn bakið til the byrjun af the lína
án þess að hreyfa hana niður.
En aftur, meira um það, ef til vill, í framtíðinni.
>> Sviga-vitna, sviga-tvöfaldur vitna, sviga-sviga er
lausn á litla gátu Ég benti á áðan.
Og sviga-0 er í raun alveg áhugavert.
En við munum koma aftur til að áður en langur.
>> Svo láta mig fara inn, nú, CS50 tæki, og við skulum í raun gert
fljót hitna upp með eitt af þeim dæmum við fengum nú þegar og þá hreyfa á til
eitthvað svolítið flóknari.
Svo ef ég opna forritið mitt heitir gedit -
þetta er myndrænt ritstjóri minn.
Og ég get gert það -
láta mig loka glugganum þar -
með því að þetta tákn niður hér, gedit, í botn-vinstri
horn við hliðina á valmyndinni.
>> Ég ætla að fara á undan og fara, og vista þessa dæmi í, segjum, Jóhannes
Harvard er mappa.
Mappa John Harvard er bara heimili hans möppu þar sem allar skrár hans lifa
sjálfgefið.
Og ég ætla að spara það eins og skrá sem heitir Hello-0.c.
Og ég hef valið þetta nafn bara svo það línur upp með sýnishorn kóðann á
AUÐVITAÐ er vefsíða og í YouTube myndbönd á netinu.
>> Svo nú ætla ég að byrja að skrifa fyrsta forritið mitt.
Leyfðu mér að súmma inn til læsileiki.
Og ég ætla að fara á undan og segja int Helstu ógilt, sem er bara svona
gulur þraut stykki sem byrjar a program.
Ég hef fengið í vana yfir ára opnun hrokkið Brace mína, þá
einnig loka henni og þá fara aftur til þar sem ég vil setja númerið mitt, bara
því það hjálpar mér að halda öllu rólegur, sérstaklega þar sem minn
program gets lengi.
>> Og nú, hér ætla ég að fara á undan og segja, printf, vitna Unquote,
Halló heimur, sviga-n, loka vitna, loka sviga, semíkommu.
Þannig að ég ætla bara að endurtaka allt sem við höfum verið að taka sem sjálfsögðum hlut svona langt.
Nú ætla ég að súmma út.
>> Og þetta endastöðvar hérna, hvað ég leyft að gera í þessu svart
og hvítt glugga?
Hvað get ég notað það?
Svo er þetta þar sem ég keyra skipanir og þar sem ég get safna saman hlutum.
Og ég ætla að halda það einfalt.
Ég ætla að nota forrit kallað Gera, sem er ekki
tæknilega þýðanda.
Kallað að þýðandinn er Clang, en við munum koma aftur til að í
viku eða eftir tvö er.
>> Fyrir nú, ég er bara að fara að slá gera halló-0, en þeir sem voru
bera í huga þínum það sem ég bara slegið til hvað ég ætti að hafa slegið getur
veit nú þegar að ég gerði eitthvað rangt hér.
Nú, það er greinilega nokkrar villur.
Áður en ég líta jafnvel á það sem þeir eru, allir hugsanir um hvað ég gerði rangt?
>> NEMENDUR: [INTERPOSING raddir].
>> DAVID Malan: Já.
Ég vantar haus skrá safnsins.
Einhver þessara lyfja. H skrár eru kallaðir haus skrár, og þeir sameiginlega
tilheyra hlutum sem kallast bókasöfnum.
Bókasöfn eru bara klumpur af kóða sem aðrir skrifuðu.
Svo staðlaða [? ég?] bókasafn er safn skráa sem innihalda kóðann
sem aðrir skrifuðu.
>> Þannig að ég er vantar það.
Svo hvers vegna er ég að fá villu?
Jæja, láttu mig fletta aftur upp í skjáglugga minn hér.
Og því miður, í C, eins og í fullt af forritunarmál, sérstaklega
ef það er allt nýtt til þín, villa skilaboð eru nákvæmar, en þeir eru einnig
alveg dulinn.
Og villa hér í rauðu, er "Óbeint lýsa bókasafn virka
printf með tegund, "og þá er það rolla í næstu línu, "int const char *,
... "Það verður bara virkilega yfirþyrmandi fljótt.
>> En hvað sem þú ættir að byrja að gera, ef, aftur, nýr til allt þetta, er bara að
byrja að leita að leitarorðum.
Augljóslega gæti ég ekki skilið helming þessara orða ég ætla að sjá bara ennþá.
Þú verður þó í einu viku.
En ég sé printf.
Og það ætti að byrja, áður en langt, að skokka minni þitt, allt í lagi, printf.
Eitthvað er athugavert með printf.
Gerði ég stafa það rangt?
Nei, er það ekki líta út eins og - ó.
Ég get ekki notað það nema ég kenni þýðanda sem það er til staðar.
Og svo aftur, fara með eðlishvöt þína, jafnvel ef þú dont 'raunverulega skilja
í raun villa skilaboð.
>> Og reyndar, lausnin hér er bara fela í sér það efst á skránni
svona, resaving minn skrá með Control-S eða File valmyndinni.
Og ef ég fer nú aftur niður hér, Ég ætla að hreinsa þetta.
Control-L er bara ágætur vegur til að hreinsa skjáinn.
Og þá er ég að fara að skrifa "að gera halló 0 "Enter, og nú sé ég enn
dulinn röð af táknum, en við munum koma aftur til það.
Það er það sem gerir er að gera fyrir þig.
Það er sjálfvirkur ferlið við að taka nokkuð pirrandi stjórn felur
Clang, raunverulegt þýðanda.
En sú staðreynd að ég fékk engar villur þýðir að þetta ætti að virka.
>> Þannig að ég ætla nú að fara að gera - láta mig stækka aftur -
./hello-0 Sláðu og örugglega, ég sé "Halló, heimur." Svo skulum nú auka
þetta alltaf svo lítið bara að endurtaka skrefin við ætluðum.
Ég ætla að endurnefna þetta með Vista sem til hello1.c.
Og nú ætla ég að lýsa yfir breytu nefndi, svo strengur nafn,
og ég ætla að setja í það Verðmæti tilvísun-Unquote
D-A-V-I-D loka-vitna semíkommu.
Og nú ætla ég að skipta "World" með hvaða tákn fyrir streng?
% S.
>> Og nú, hversu margir rök ættu printf taka þennan tíma?
Svo tveir.
Svo ég fer utan gæsalappa.
ÉG tegund "nafn" eftir kommu.
En ég hef gert eitthvað annars að þessu sinni.
En við skulum gera ráð fyrir að ég gerði ekki átta sig á því enn.
Leyfðu mér að fara upp hér.
>> Og tilkynningu líka, ég er að fá smá leiðindi að slá "gera halló 0" alla
tími, "gera" og allt þetta.
Svo það kemur í ljós, í Linus þú getur oft högg á örina á þínu
lyklaborð, og þú getur raunverulega fletta gegnum allar skipanir sem ég hef
framkvæma fyrri til bara núna.
Þannig að ef ég geri það, upp, upp, það er að gera halló 0.
Ég vil það ekki.
Ég vil bara að breyta því að halló 1 þetta sinn, Enter.
Að lokum, sem mun spara þér tíma.
>> Allt í lagi.
Því miður, það er er villa.
Svo láta mig að fletta upp.
Þetta lítur út eins og ég virkilega slátrað þetta forrit.
Ég meina, Guð minn, er það tvær línur af kóða, og 10 línur hennar af villum.
En líta á the toppur einn fyrsta.
Notkun óskilgreindri Identifier band.
Gerði ég meina venjulegt i n?
Nei ég gerði það ekki.
Ég þýddi band.
>> En hvar er the band breytu tegund lýst, dd við að segja?
Svo það er í CS50 safninu.
Svo það þýðir ekki nægja, í þessum fyrsta par af vika, bara til að nota
hvað C gefur okkur.
Ég ætla líka að fara upp hér, og ég gætir sett það ofan eða neðan, en ég mun
bara að halda það stafrófsröð að halda hlutum reglusamur.
Ég ætla að fela cs50.h, sem er pre-setja í embætti fyrir
þú á CS50 tæki.
Og það er opinn uppspretta, svo jafnvel fólk á internetinu er hægt að nota það á þeirra
eigin tölvur.
En það kemur með CS50 tæki.
>> Svo nú láta mig fara til baka og laun þetta með að gera halló 1.
Fjandinn.
Enn annar villa.
Leyfðu mér að fletta upp til að fyrsta, þó.
Þessi er svolítið flókið.
Multi-eðli eðli stöðug.
Það er ekki að hjálpa mér.
En tilkynning, Clang er amk smá svolítið viðeigandi, þar með smá
grænt Caret tákn, það er að segja hér er þar sem ég ruglaður upp.
Hvers vegna er það að benda, með því að litla grænt arrow, að einn quote næsta
að mínu nafni?
>> Svo er þetta einn af þeim hlutum sem þú bara venjast, sérstaklega ef þú hefur verið
forritun í Python, eða JavaScript, eða önnur tungumál þar sem þetta smáatriði
skiptir ekki máli.
Í C, skiptir það máli.
Ef þú ert að lýsa a band, sem er runa 0 eða fleiri stafir,
þú í raun verður að nota gæsalappa.
Þannig að ég þarf í raun að breyta þessu aftur að opna tilboð, loka vitna, með
gæsalappa.
Einn quotes gera hafa þeirra stað, en aðeins þegar þú ert að nota einstaka
stafir, en meira um það seinna.
Fyrir nú, gæsalappa eru nauðsynlegar.
>> Svo nú, láttu mig fara aftur til stöðvarinnar minn glugga, gera halló 1.
Og hver er öruggur?
Er þetta forrit fara nú að safna saman rétt?
OK.
Svo þrír af okkur finnst þetta.
Allt í lagi.
Enter.
Og það gerði í raun.
Svo er það engin villa að þessu sinni, jafnvel þó að þessi áætlun hefur fengið svolítinn
flóknari.
Ef ég nú punktur skástrik Halló 1, Enter, það er að fara að segja "halló, David."
>> En við skulum gera þriðja endurtekning af þessu, þar sem
program er sannarlega dynamic.
Leyfðu mér að fara á undan og breyta skrá nafn, bara til samræmis við
skrár sem þú munt hafa aðgang þér síðar netinu.
Enter.
Og nú ætla ég að fara í og ​​ekki geyma "David" harður dulmáli hér.
Hvað gæti ég gert til að mjög einfaldlega bæta þetta forrit?
>> Ég gat hringt getstring.
Það gæti verið smá ekki augljóst hvað er um að gerast, þannig að ég ætla
að raunverulega bæta aðra línu, printf, og segja nafn, hreinsun, loka vitna, bara
að gefa notandanum a hvetja á skjánum.
Og nú ætla ég að fara hér, og ég er fara að nota hljómborð smákaka mitt.
Ég ætla að fara upp, upp, og breyta halló 1 til Hello 2, Enter.
Og sem betur fer, ég er að framfarir.
>> Og nú ætla ég að fara upp til punktur slash Halló og
breyta því að 2, Enter.
Og nú program minn -
Ég stækka - er að fá smá fallegri.
Nafn er að fara að vera, segja skulum Rob í þetta sinn, Enter, halló, Rob.
Við getum gert það aftur.
Nafn, Lauren, Enter.
Nafn, Joseph, Enter.
Nafn, við skulum reyna að vera erfitt, Enter.
Eh.
Það er í raun ekki um galla.
Svo er það bara smá ljót.
Svo kannski að við gætum leyst þetta í framtíðinni, ekki núna.
>> En hvernig myndir þú dragast fara um að takast
að sérstök áskorun?
Það lítur bara heimskur.
Hvernig forðast þú það leita heimskur?
Þannig að við gætum gert, OK, ég heyrði nokkrar af hlutum, ástand og lykkja.
Við gætum notað, einn, ástand, að athuga hvað er lengd strengsins
notandinn gaf okkur?
Og ef það er 0, það er bara vitna Unquote, þeir högg bara inn, þá
kannski ég ætti að æpa á hana og hvetja þá aftur.
En hvernig hvetja þá aftur?
Jæja, heyrði ég líka lykkju og ég gat gera það aftur og aftur og aftur
vekur notandi til sama.
>> Jæja, við skulum gera eitt annað dæmi nota mismunandi
virka í CS50 bókasafn.
Leyfðu mér að loka þessari skrá.
Leyfðu mér að búa til nýjan.
Og ég kalla það adder.c, bara vegna þess að það er auðvelt að gera einfalda stærðfræði,
jafnvel þótt það mun vera alveg underwhelming með hvað þú gætir gert
með öllum nútíma tölva.
>> En láta mig fara á undan núna og -
Ég lærði lexíu mína síðasta skipti - eru cs50.h, fela stdio.h, int
Helstu tóm, sem nú, ég bara taka á blinda trú, en við munum gera ráð
sem mun skilja hvað sem þýðir áður en langur.
Og ég ætla að segja eitthvað eins og "gefa mér int."
>> Og nú, hvernig fæ ég int?
Ég vil að lokum lýsa yfir breytu heitir x á int og
geyma í henni heiltölu frá notandanum.
Svo sem var munnfylli.
En ef einhver vill leggja til, hvernig ég lýsa heiltala heitir x?
Int x.
>> Svo er það mjög einfalt.
Gefðu mér int.
Kalla það x.
Nú er ég að nota verkefnið rekstraraðila.
Og hvernig geymi ég frá vinstri gildið notanda?
Ég vil ekki að hringja getstring, augljóslega, heldur GetInt.
Einhverjar rök?
Nei
Svo er það opið paren, nálægt paren í stað, og þá
semíkommu endar línuna.
>> Nú láta mig gera þetta aftur.
Gefðu mér annan int.
Þessi skipti sem ég skal gera int, við skulum kalla það Y, jafngildir GetInt.
Og nú langar mig að gera eitthvað frábær-einfalt eins og sumir stærðfræði.
Sem printf, summan af% d er tákn fyrir int.
Og% d, tímabil, sviga-n.
>> Allt í lagi.
Svo er það í raun ekki stærðfræði.
En ef ég vil segja summu þetta viðbættum þetta gildi er þetta
annað gildi, hversu mörg rök í samtals ætti ég að gefa printf,
endanum?
Svo fjórum, ekki satt?
Þessi strengur og þá þrír gildi.
Svo x er fyrsta sem ég vil vera tengt fyrst til% d.
y er að fara til vera the næstur.
>> Og nú vil ég svona að segja z, en z er ekki til.
En það er ekki stór samningur.
Vegna hvað myndir þú gera dragast, sérstaklega ef þú hefðir
Graphing reiknivél, hvað þú skrifar?
Hvernig óður x plús y?
Svo það er ekki raunverulegt breyta.
Það er bara summa tveggja aðrar breytur.
Og það er fullkomlega lögmæt.
C skilur vissulega einfalt stærðfræði eins og þetta.
>> Semíkommu, spara.
Nú láta mig fara niður hér og tegund gera Naðr, Enter.
No villa, þannig að það er framfarir líka.
Sláðu Naðr.
Og annar hljómborð smákaka, ef þú byrjar að fá leiðindi
með öllum skipunum -
ef þú byrjar að slá inn skipun, eins og punktur rista auglýsingu og það er þar sem þinn
leiðindum ánægja í, þú getur venjulega högg Tab til að hafa tölvuna klára
hvíla á setningu fyrir þig ef það er ekki óljós hvað ætti að koma eftir auglýsingu.
>> Svo láta mig fara á undan nú og þú smellir á Enter.
Gefðu mér int, 1, 2, og sem betur fer er það 3..
En eins og alltaf, próf forrit ætti ekki að draga til
bara að reyna það einu sinni.
Leyfðu mér að reyna að horn tilfelli, eins og neikvæð 1, gefa mér 1, og að einn
eftirlit út eins vel.
Og ég vil líklega að gera meira strangt próf, en ég er nokkuð
ánægð með þar sem það er á.
>> Jæja, nú skulum reyna annað forrit að þessu sinni notar
hluti af öðrum setningafræði.
Leyfðu mér að búa til nýja skrá.
Ég kalla þetta conditions0.c að stilla upp með einhverjum kóða sýni netinu.
Og láta mig fara á undan og gera fela cs50.h, ma
stdio.h, í helstu tóm -
OK.
Þar við förum.
Við höfum staðlaða boilerplate okkar.
>> Og í þetta sinn ætla ég að segja printf, "Ég vil við int, vinsamlegast," bara til að
gera hvetja smá meira vingjarnlegur.
Og nú vil ég að fá int frá notandanum.
Ég ætla að kalla hana n í þetta sinn, bara því n hljómar eins fjölda.
GetInt, og nú, hvað Ég vil gera við það?
Jæja, ef n er - og ég stækka -
ef n er stærra en 0, vil ég að gera eftirfarandi -
printf "Þú tók jákvætt númer." Annars ætla ég að slá printf "Þú
valinn neikvæð
tala. "Allt í lagi.
Þannig að þetta forrit, jafnvel þó að ég gerði það fljótur útlit, hægri setningafræðilega.
Leyfðu mér að reyna þetta.
Gerðu ástand 0.
Virðist hlaupa.
Skilyrði 0, slá.
Skulum gefa það int af 50.
Ég tók jákvætt númer.
Við skulum reyna það aftur.
Ástand 0.
Neikvæð 50.
Ég tók neikvæð tala.
>> En nú, láttu mig velja það sem við munum halda hringja í horninu að ræða, sem er meira
áhugaverð mál sem þú heldur gæti gefið þér nokkur vandræði, 0.
Nú, ég er nokkuð viss um að þetta er eitt af þessir horn tilvikum þar núll er
hvorki jákvæð né neikvæð, svo minn program, þó í setningafræðilega
leiðrétta - það safnar, það rennur - er ekki rökrétt.
Svo er það einfalt festa hér ef ég vil að uppgötva, ef ég vil að takast n
jafngildir 0 sérstaklega?
>> Þannig að ef n er 0, þá vil ég segja eitthvað eins printf "Þú valdir 0."
Leyfðu mér að reyna þetta núna.
Leyfðu mér að fara aftur hingað, hreinsa gluggann minn, og laun.
Hm.
Ein villa mynda.
En ég viltu athuga ef n er 0.
>> Svo aftur, annar heimskur hlutur að venjast, jafnt merki er
framsal rekstraraðila.
Svo er þetta í raun mistök í því, tæknilega, jafnvel þó að þýðandinn
vernda mig frá sjálfum mér, við myndum tæknilega vera afritun 0 í n, þar sem
er ekki það sem ég vil.
Ég vil prófa fyrir jafnrétti með jafningja jafngildir.
Og svo að nú væri betri lausn mín.
>> Leyfðu mér að vistað póstinn í raun þetta sem, segja, conditions1, að vera ný og endurbætt.
Svo nú ef ég laun þetta, það myndi gera aðstæður -
Úpps - gera conditions1 punktur rista conditions1, Enter, "Ég vil við int,
takk. "Ég ætla að fara undan og tegund 50.
Það er samt gott.
Neikvæð 50, samt gott.
0, og það reyndar uppgötva að ég valdi 0..
>> Svo hvað meira get ég gert núna með þetta?
Jæja, við getum vissulega gert æ flókin atriði.
En það sem ég vil leggja er að við enda á þessa skýringu hér.
Ef við draga upp þetta, munt þú sjá, ef til vill, uppáhalds teiknimynd af þinn
allt þar til í dag sem þú gætir aldrei hafa skilið.
Og það er um gæði hlátri þú ættir að fá með CS brandara.
Svo er það um rétt.
>> En meira compellingly, ég hélt ég myndi gefa okkur smá beitu fyrir mánudag.
Þannig að við höfum byrjað að nota heilar tölur.
Við höfum vísað til fljóta.
Við höfum jafnvel vísað til tvíliðaleik, sem, aftur, að gefa þér tölur
eftir aukastöfum.
>> En það kemur í ljós að fljóta og tveggja manna, og, í raun, tölvur,
grundvallaratriðum, getur ekki tjáð sumir gildi nákvæmlega.
Við vitum úr bekkjum stærðfræði sem þú getur hafa allir tala um tölur eftir
kommu.
Og þú getur jafnvel setja lóðrétt bar að segja þetta farið á eilífu.
>> Því miður getur þú ekki raunverulega gera það í tölvu.
Og svo horn tilvikum koma.
Fyrir dæmi, ráð fyrir að þú ert gera eitthvað fjárhagslega.
Þú ert að gera stærðfræði með prósentum og
með dollara og cent.
Og þeir sent ekki endilega línu upp.
Jæja, það kemur í ljós að broti úr smáaurarnir getur byrjað að bæta upp þegar
byggð með tölvukerfi á þann hátt að snjall
menn geta nýtt sér.
>> Og þá sem hafa ekki séð, myndi ég eins og til að gefa þér 30-second beitu af
yndislegt kvikmynd þekktur sem Space Office, sem mun mála mynd af
Vandamálið við munum takast fyrstur hlutur á mánudaginn.
Ef við gætum hækka hljóðstyrkinn svolítið, ég gef þér 30
sekúndur af rúm skrifstofu.
>> [Vídeó spilun]
>> -Ég meina, þú hefur þú ekki verið að sýna upp og þú færð að halda starfi þínu.
>> -Reyndar er ég kynnt.
>> -Ég gat program a veira sem myndi rífa þennan stað burt toppurinn.
>> -Jæja, hvernig virkar það?
>> -Hvert sinn sem það er banki viðskipti þar sem áhugi er reiknað, og það
eru þúsundir á dag, tölvan endar með þessum þáttum úr hundraði.
>> -En ég ætla ekki að gera neitt ólöglegt.
>> -Ólöglega?
Samir, þetta er Ameríka.
>> -Við verðum að sver.
>> -Ef enginn veit um þetta en okkur, allt í lagi?
Engar fjölskyldu, engin kærustur, enginn.
>> -Auðvitað.
>> -Samþykkt.
>> -Ekki hafa áhyggjur, maður.
Ég mun ekki segja neinum heldur.
>> [END vídeó spilun]
>> DAVID Malan: Svo þetta, þá er CS50, það var Office Space, og það verður allt
skynsamleg á mánudaginn.
Sjáumst þá.
>> Sögumaður: Á næstu CS50, Rob aðlagast því að vera burt
Harvard máltíð áætlun.