>> [TÓNLIST spila]
DAVID Malan: Halló, allir.
Þetta er supersection CS50 er.
Úthlutað Deildir mun ekki byrja í aðra viku.
Og svo í dag, ég er hér with--
>> MARIA: Maria.
DAVID Malan: --to raun taka a líta á vandamál
setja einn, auðvitað er Fyrstu vikur efni,
fá þú stilla með CS50 IDE, dálítið Linux stýrikerfi sem er
í gangi á IDE, sem og líta á sumir af the umskipti
frá grunni til C leiðandi allt að Heimadæmi einn.
>> Svo án frekari fjaðrafok, í vandamál setja einn,
þú ert að fara að vera kynnt CS50 IDE, sem
er þessi vefur-undirstaða forritun umhverfi sem við notum til
til að skrifa forrit.
Það hefur verið hannaður til að líta mjög minnir á dæmigerðum tölvu
Kerfið keyra rekstur Kerfið heitir Linux.
En það er í svokölluðu ský, sem þýðir að allir í bekknum
getur raunverulega hafa hans eða hennar eigin reikning og nota það, eins og heilbrigður.
>> Þannig að flestir af þú sennilega hafa aldrei notað Linux umhverfi áður eða kannski
jafnvel a stjórn lína umhverfi.
Og a stjórn lína umhverfi er öðruvísi.
Það er allt texta.
Það er allt lyklaborðsskipanir.
Og það er engin Músakennsla, engin tákn, án tals gluggar, engar valmyndir.
Það er eingöngu texti.
Svo í fyrstu, það góður af er eins og skref
aftur á bak hvað varðar fágun.
En það endar á því að vera mikið öflugri, vissulega,
fyrir tölvunarfræðingur lokum.
>> Svo skulum taka a líta.
Hér er ég á CS50.io, með sem þú getur skráð þig inn CS50 IDE.
Og líkt í grunni, það er þrjár aðal svæði þessum skjá.
Svo á vinstri hönd hlið, við höfum hvað verður skrá flettitæki.
Og það er þetta folderinn efst, sem er núna tóm
þar sem ég fékk að losa um allt mitt skrár fyrir supersection.
Og það er þar sem við munum vista C skrár sem við skrifum.
Efst til hægri, höfum við stað þar allt númerið okkar er að fara að fá skrifað.
Og reyndar, ef ég smelli þessu plús, þetta er að fara að láta mig velja nýja skrá.
Og hér ég get byrjað að skrifa C kóða eða, raunverulega, fjölda annarra tungumála.
>> Og þá neðst þar sem það segir jharvard @ ide50-- og þitt mun
segja eitthvað smá different-- hvað var þetta kallað?
Endastöðvar.
Já.
Svo er endastöðvar svokallaða stjórn lína
tengi í gegnum sem þú getur samskipti með undirliggjandi stýrikerfi.
Og nú erum við að fara að gera mjög lítið notað this--
bara til að safna saman, til að líta á villa skilaboð sem við sjáum,
og að keyra forrit okkar.
En að lokum, við erum að fara að gera svo miklu meira, eins og heilbrigður.
Og þú getur jafnvel setja upp hugbúnað og gefa vinnusvæði
innan CS50 IDE, eins og heilbrigður.
En meira um það einhverjum öðrum tíma.
>> Svo skulum við fara á undan og skrifa mjög einfalt program bara
að fara í gegnum hlýja-upp af hello.c, sem er kannski
einfaldasta forrit sem við getum skrifað.
Ég hef nú þegar opnað nýja flipa.
Ég ætla að fara á undan og segir eru stöðluð io.h.
Þá int helstu (tóm).
Og svo printf ("Halló, heimur" sviga n, loka vitna,
loka sviga og semíkommu.
>> Allt í lagi.
Svo nú taka gluggi minn er án titils.
Svo ég er mjög fljótt að fara að fara upp í File, Save.
Og það er mikilvægt að Ég kalla þetta ekki "halló."
Svo mjög algeng mistök, sérstaklega í Heimadæmi einn,
er að tilviljun bara hringja þinn program "vatn" eða "gráðugur" eða "Mario"
eða "inneign" eða þess háttar.
En þú vilt í raun að gera Verið viss um að skrá eftirnafn
vegna þess að þetta er eina leiðin sem þýðandinn og einnig merkjamál ritstjóri
veit að þú ert í raun að skrifa C kóða.
Svo láta mig fara á undan og smelltu á Vista.
>> Og nú líka, hvað CS50 IDE hefur gert fyrir okkur er að það er líka
setningafræði hápunktur allt.
Svo það er gert allt mjög litrík.
Og allt tilgangur sem er ekki sá.
Það er bara að teikna augu mín til eðli mismunandi stykki
þessarar áætlunar.
Svo skulum við fara á undan og taka saman þetta.
Og ég get safna saman þetta í nokkra vegu.
Og í viku eitt er gamla skólanum leið við gerðum
það var bókstaflega á í Command line-- "Clang hello.c."
Og þá er ég ýta á Enter.
Og ekkert virðist gerast í flugstöðinni glugga.
En hvað gerði breytingu á IDE?
Þar, aftur, IDE þýðir bara Integrated Development Umhverfi.
Það er fínt leið til að segja Þessi samþætta þróun
umhverfi til að þróa hugbúnað.
Svo hvað var að breyta í HÍ?
Hvað gerðir þú tekur það er öðruvísi, Maria?
>> MARIA: Ég tók eitthvað undir IDE50 mappa upp hér.
>> DAVID Malan: Já.
Svo hér, ekki aðeins höfum við "hello.c."
Við höfum einnig "a.out," sem er konar heimsk nafn á forriti.
En reyndar er það sjálfgefið nafn fyrir a program þegar þú saman bara númerið þitt
og ekki segja þýðanda hvaða skrá í úttak.
Þannig að ef ég vil keyra þetta, ég þarf að segja compiler--
eða öllu heldur, ég þarf að segja vinnusvæði sem ég
vilt keyra forrit sem heitir "a.out."
Sláðu.
Og það er "halló, heimur. "nú" ./ ".
er í raun mikilvægt.
Jafnvel þó venjulega við aðeins skrifa nöfn skipunum,
þegar það er forrit sem þú hefur skrifað, viltu segja "./"
því sem sérstaklega segir Linux sem þú vilt keyra forrit sem heitir
"a.out" sem er í þessu, þar sem punktur þýðir þetta möppu sem ég er nú
í, sem gerist að vera kallað vinnusvæði, "a.out.
Vegna þess að ef ég sagði bara "a.out," Enter, Ég ætla að fá "a.out stjórn ekki
fannst "vegna þess að computer-- vegna þess að ég fann "a.out;"
það kom ekki með computer-- veit ekki hvar á að leita að því,
jafnvel þó að það er rétt undir nefið á mér, svo að segja.
OK.
Þannig að við gætum breytt þessu í vera "Clang -o halló hello.c."
Og ef ég högg inn, hvaða forrit er þetta að fara að framleiðsla fyrir mig?
Hvað er nafnið á skránni?
Já, í bak.
Það er rétt. "Hello."
Svo "halló" er að fara að vera nafn af the program
vegna þess að við höfum notað svokölluð stjórn lína rifrildi, sem er bara
leið að breyta hegðun þýðandinn að raun framleiðsla
a sérstakur skrá nafn.
Og reyndar, ef ég stækka út og líta upp hér,
nú hef ég ekki aðeins "a.out" og "hello.c" en einnig "halló," eins og heilbrigður.
Svo nú get ég gert "./hello," Enter.
Og það er "Halló, heimur."
En lastly-- og þetta mun nú vera samningur
við notum um allan önn, typically--
er einnig hægt að segja bara "gera halló."
Og reyndar, það er að segja það er allt hingað vegna þess að það er þegar til.
Leyfðu mér að fara á undan og fjarlægja með RM stjórn, bæði "a.out" -
og segja "fjarlægja reglulega skrá a.out?"
Það þýðir bara, þú ert viss um að þú viljir eyða honum?
Ég ætla að segja já.
Og þá er ég að fara að fjarlægja "halló" en ekki "hello.c."
Ég ætla að segja "já" sérstaklega, en "Y" er nóg, eins vel.
>> Og nú eftir ef ég slá ls-- Sem muna,
þýðir list-- það er listi yfir allar skrár í möppuna mína.
Og reyndar, ef ég stækka út og líta á efst til vinstri,
það staðfestir að það er í þessari möppu, jafnvel
þó að það er merkt sem IDE50 upp hér og ekki vinnusvæði, er það bara "hello.c."
Svo nú niður hér, ef ég ekki "gera halló," Enter,
nú sé ég mun lengur stjórn en flóknari stjórn sem er að fara
til að vera gagnlegt í vikur til að koma.
Og nú get ég sagt "./hello."
>> Svo skulum taka a fljótur ferð einhver önnur Linux skipanir.
Þá hvers vegna eigum við ekki að taka skref aftur og í raun líta á C meira
almennt, breyting frá grunni til C, og þá gera með útlit
við fyrsta vandamál sett í C. Allur réttur.
Þannig að ég ætla að fara á undan og bara hreint upp vinnuaðstöðu mína við Control-L bara
Til að halda skjánum snyrtilegur.
En það hefur engin virk áhrif annars.
>> Muna að við höfum séð nokkrar skipanir núna.
Þannig að við höfum séð clang, sem almennt þú þarft ekki að framkvæma handvirkt lengur.
Við munum í staðinn nota gera.
En við sáum líka LS, sem sýnir skráningu skrár í möppuna mína.
Og nú er ástæða there-- það er tvær skrár nú, "halló" og "hello.c."
Hvers vegna er það stjarna eða Stjörnumerki eftir "halló"?
Hvað gerði það signify, byggt á það sem við sáum í viku eitt?
Hvað finnst þér?
Hvað þýðir stjarnan signify?
>> MARIA: For-- áætlunarinnar "halló"?
DAVID Malan: "Hello *".
Já.
Ó já?
Oh, executable.
Það er rétt.
Svo það þýðir að "halló" er executable.
Svo reyndar, að vegna Ég get gert "./hello."
Allt í lagi.
Svo hvað get ég gert hér?
Jæja, það kemur í ljós að ég get líka búið framkvæmdarstjóra.
Svo láta mig fara á undan og búa til, til dæmis, a "pset1" skrá.
Og vandamálið sett forskrift verður þú að gera einmitt þetta,
svo þú þarft ekki að muna í dag.
En "mkdir pset1" virðist hafa engin áhrif.
En aftur, engin villuboð er almennt gott.
Svo ef ég tegund "ls" now-- Ah, nú Ég er með executable skrá sem heitir
"halló," a C skrá sem heitir "hello.c."
Og þá slóð rista, svo að tala, þýðir að þetta er mappa.
>> Svo reyndar, nú vil ég að opna hana.
Og ég ekki á að tvöfalda smella á það eins og í GUI, myndrænt umhverfi.
Ég segi í staðinn "CD pset1."
Sláðu.
Ekkert áhugavert virðist hafa gerðist nema smá hvetja mína
here-- er með þessum hætti Linux er að minna mér þar sem ég er, svo hvaða möppu er opinn.
Það er bara að segja mér afdráttarlaust öfugt við myndrænt.
Og ef ég tegund "ls," hvers vegna ég sé annað hvetja strax, finnst þér,
þegar ég lista innihald pset1?
MARIA: Þú sennilega ekki hafa neitt í það.
DAVID Malan: Já.
Svo þá höfum við ekki augljóslega skapað eitthvað í það
vegna þess að ég var að stofna möppu.
Nú, ef ég vildi búa til file-- fyrir dæmi gæti ég búið til nýja skrá.
Og þá gæti ég farið að Vista og vista hana sem,
eins og: "mario.c" ef þú ert að gera staðall útgáfa af pset einn.
Og þá, eins og allir Mac eða PC, bara velja möppuna "pset1, Vista.
Og nú er skrá tóm.
En við skulum stækka aftur fyrir annað.
Við skulum gera LS hér.
Nú sjáum við "mario.c".
>> Svo er nokkur aðrar skipanir þar sem eru þess virði að halda í huga yfir time--
eytt eða Control-L er það sem ég hef verið hitting; mkdir við höfum séð;
RM við höfum séð, eins og heilbrigður, sem er til að fjarlægja eða eyða skrá.
Varast þú getur also-- og ef þú horfir á netinu námskeið, þú munt rm -Rf
er mjög algeng leið til að segja Ef eyða á möppu sem hefur efni á því.
Bara vera frábær, frábær varkár.
-Rf þýðir endurkvæmt eyða hvað sem það er
þú ert að reyna að eyða og valdi eyða því.
Svo endurkvæma þýðir að ef það er mappa með mappa með möppu með möppu,
eyða þeim.
Og valdi þýðir ekki einu sinni spyrja mig já eða nei, ég viss?
Svo það er frábær hættulegt leið eyða fullt af dóti fljótt.
En beware-- of oft gerir hugrakkur nemandi tilviljun eyða, segjum, pset
einn, til dæmis.
>> MARIA: Og ef þeir bara gera -r, þeir eru að fara
að spyrja þá um hvert einasta skrá.
>> DAVID Malan: Hver er hóflega pirrandi.
>> MARIA: Já.
>> DAVID Malan: Svo er það hvers vegna svo margir af okkur, sjálf með,
er í vana að nota -Rf.
En það er hættulegt.
Svo kaupandi gæta sín.
Og þá er MV konar Athyglisvert hét.
Svo er þetta að færa stjórn, sem finnst svolítið skrítið
vegna þess að þú getur örugglega notað það til að flytja skrár frá einum stað til annars.
Til dæmis, gera ráð fyrir að ég boðberi upp.
Segjum sem svo að ég stofnaði ný skrá fyrir pset.
Og ég spara það eins og "greedy.c."
En ég geri ráð fyrir slysni vista það í IDE50-- svo í vinnurými mínu sig
og ekki í pset1.
>> Þú getur séð meira á efst til vinstri.
Það er "greedy.c."
Og það er nokkrar lausnir.
Svo einn, ég get notað frábær notandi-vingjarnlegur hátt
þess bara draga og sleppa honum.
Og það væri í raun laga þetta vandamál.
En í dag erum við að reyna að líta á því meira Bogagöng en öflug leiðir
til að gera þetta.
Svo láta mig taka "ls" í pset1.
Og ég sé bara "mario.c."
Leyfðu mér að fara á undan og gera "cd ..".
Svo CD er aftur breyting skrá.
".." Þýðir það, þó?
Síðast þegar ég sagði "CD pset1 "að fara í pset1.
Svo þegar ég segi "cd .." Hvað er ég að gera?
Aftur á bak.
Já.
>> Svo það er að fara að svokölluðum foreldris.
Fara upp um eitt stig, eins og spennandi úr möppu.
Svo Enter.
Og reyndar, sjáðu hvað það gerði.
Það flutti mig bara inn vinnusvæði stað af í pset1, sem er í vinnurými.
Og nú ef ég tegund "ls", það er allt fullt af efni.
Í það er "greedy.c".
Svo nú langar mig að nota MV að bókstaflega færa "greedy.c" í pset1.
Og svo mikið af Linux skipanir vinna nákvæmlega eins og þetta.
Þeir taka ekki rök eða þeir taka einn rifrildi eða þeir taka tvö skipanalína
rök og svo framvegis.
Og í þessu tilfelli, það er bókstaflega að gera það
það segir, að vísu succinctly-- færa greedy.c í pset1.
Sláðu.
Ekkert virðist gerast.
En ef ég a ls aftur, gráðugur er farinn.
Og ef ég geri "CD pset1", Enter, og þá LS aftur, nú er það á réttum stað.
Sem innskot, ef til sumir reason-- sérstaklega
ef þú ert með hléum net-tengingu
eða þú ert að ganga í kring háskólasvæðinu með fartölvu loki þinni
lokað og þá opna það upp aftur og vinnusvæði
virðist nokkuð úr takti, ekki máli.
Bara endurræsa vafrann glugga, og það ætti að
resync þannig að vinstri-hönd skrá flettitæki lítur nákvæmlega
eins flugstöðinni glugga.
Ekki hafa áhyggjur.
Hvenær í vafa, endurhlaða síðunni, svo lengi sem þú hefur vistað skrár þegar.
OK.
Svo MV einnig hægt að nota til að endurnefna skrár.
Og við skulum taka a líta á þetta endanlega stjórn hér.
Svo suppose-- og þetta er frábær sameiginleg líka snemma.
Sumir nemendur stundum að búa til skrá kallað, við skulum say-- hvað er annað?
Eins og "WATER.C."
Þannig að ég ætla bara æpa, fyrir engin ástæða, í öllum húfur.
En þetta er ekki rétt nafn fyrir the skrá
ef aðeins vegna þess að vandamál okkar sett forskrift ekki segja þér
til að vista skrána sem allar húfur "WATER.C."
Þess í stað, gerum við ráð fyrir "water.c" í lágstöfum.
Og í raun er þetta erfið vegna check50,
a program sem þú ert að fara til að mæta í vanda
setja einn sem sjálfkrafa prófar Réttmæti númerið þitt
er að fara að æpa á þig ef það er ekki hægt finna "water.c" í öllum lágstöfum.
>> Þannig að ég þarf að laga þetta.
Svo margar mismunandi leiðir til að gera þetta, fyrst sem
væri að stjórna smellur eða hægri-smelltu skrá nafn og bara breyta Rename.
Algerlega lagi að gera það.
En aftur, í dag, við skulum gera það svolítið áhugamaður.
Notum MV að breyta "WATER.C" til "water.c."
Svo getur þú líka notað í fyrsta rifrildi til að endurnefna það til seinni rök
ef annað rifrildi er ekki í staðreynd, möppu eða skrá nafn.
>> Allt í lagi.
Og loks, smá trick-- þannig að ég er í vinnusvæði skrá mitt í augnablikinu.
Ef ég vil fá inn í pset einn, Ég get vissulega slegið "CD pset1."
En það er svo leiðinlegt að slá "pset1" eða lengur skrá nöfn eða skrá nöfn
enn.
Svo mjög oft í Linux, hvað þú getur gert er að byrja að skrifa "tímalínu"
og bara leiðindi, högg Tab og láta tölvan reikna það út fyrir þig.
Super gagnlegt að fá inn í þessi vana.
The eini grípa er ef þú ert með margar skrár eða möppur sem byrja
stafnum "p" eða "PS," þú might hafa
að slá nokkrar fleiri áður en tölva veit hvað á að gera.
>> MARIA: Við eins flýtileiðir.
>> DAVID Malan: Þetta mun spara þér svo mikinn tíma.
Og einnig, eins og ég sagði í fyrirlestri, þú getur flett upp í sögu, upp og niður,
að finna nýlega keyrð skipanir, eins vel.
Allt í lagi.
Svo nú skulum við snúa athygli okkar aftur til einfalt forrit, halló heimur.
Þannig að við höfum tekið saman þetta nákvæmlega.
Og nú hvers vegna eigum við ekki að taka a líta á gagnatög
og þá umskipti frá sumum samsvarandi Scratch blokkir til C.
MARIA: Awesome.
Svo nú að þú hefur byrjað skrifa forrit í C,
við erum að fara að byrja að tala um tegundir gagna og breytum.
Svo sumir gagnatög sem þú myndi vilja vita að byrja núna
eru þau sem eru hápunktur í bláu.
Þannig að við höfum INT fyrst, sem stendur fyrir heiltölu.
Og það hefur heiltölur, eins og þú kunna að hafa guessed-- svo 1, 2, 3,
og önnur heiltölur sem þú getur hugsa um.
>> DAVID Malan: Og einnig neikvæðar.
>> MARIA: Og einnig neikvæð sjálfur, jebb.
Og 0.
Þá höfum við fljóta, sem eru fljótandi tölur benda.
Svo er það allt rauntölur sem hafa aukastöfum.
Svo 5,0, 5,2, og jafnvel fleiri Tölunum eftir kommu,
eins vel og einnig neikvæð.
Þá höfum við bleikju sem er eðli.
Þannig að ég held að við töluðum um þetta í fyrirlestri í dag.
En við höfum bréf, fyrir example-- A, B, C-- sem hægt er að geyma sem char.
En þá höfum við miklu fleiri tákn sem geta verið geymd sem char.
Og þeir eru geymdar sem ASCII.
>> Og þá höfum við bool, sem eru Booleans.
Og þeir meta að True eða Rangar eða 1 og 0, í þessari röð.
DAVID Malan: Og muna að bool kemur frá CS50 bókasafn.
Svo það er ekki innbyggður í C, en það er frábær gagnlegt
að hafa hugmynd um satt og ósatt.
Og jafnvel þó að þú gæti think-- gaman staðreynd.
A bool tæknilega þarf hversu margir bitar, sannarlega, að tákna True móti False?
Hversu margir bitar finnst þér þú þyrfti, hámarks?
Já, bara einn.
Svo kemur í ljós að C get ekki gefið þér bara einn hluti.
Minnsta eining mál þú getur fengið er átta.
Svo það er lítið sóun þeir að þú ert með heilt bæti, eða átta bita,
að tákna True eða False.
En það er bara þannig að það er framkvæmda í C með CS50 bókasafn.
Maria: Og þá þau sem við erum ekki að fara að tala um eins mikið
rétt now-- tvöfaldur, það er fyrir stærri flotum.
Lengi lengi og stutt eru einnig fyrir heiltölur.
DAVID Malan: Reyndar.
Í spjallþráð hefti pset einn, við notum í raun lengi lengi.
En fyrir venjulegu útgáfunni, það ætti ekki að vera nauðsynlegt.
MARIA: Cool.
OK.
Svo operators-- þú ættir að vera líklega kannast við flest af þessu.
Viðbót, +; frádráttur, -.
Fyrir margföldun, höfum við *.
Svo ekki X sem við notum venjulega.
Division, höfum við sviga.
Og Modulo er síðasti rekstraraðili okkar sem við erum að fara að tala um núna.
Það er rekstraraðili sem gerir okkur kleift að taka afganginn af deild.
Svo ef við höfum 4% 2, 4 skipt með 2 er 2 með eftir 0.
Svo er 4% 2 0.
4% 3 er 1.
4% 5 er 4, eins og þú gætir hafa giska.
Og muna þegar öll þessi rekstraraðila til að nota PEMDAS reglur.
>> DAVID Malan: Svo til að vera skýr, ef þú gera 4% 2, hvers vegna er það 0, nákvæmlega?
>> MARIA: Þar 4 deilt með 2 er 2 með sem eftir er af 0.
Svo gefur Modulo okkur að afgangurinn sem öfugt við vegna skiptingu.
DAVID Malan: Og reyndar, það sem við munum finna þetta gagnlegt
fyrir er að í sumum vandamálum það er ekki endilega einn,
ef þú vilt hafa Áhrif takmarka sjálfur
að ýmsum tölum eins 0 gegnum eitthvað,
þú getur notað modulo að vefja í kringum fyrr en eins og 2 milljarða
eða 4 milljarða verðmæti sem við höfum talað um í fyrirlestri.
>> MARIA: Já.
Og jafnvel í "gráðugur" Við gætum.
DAVID Malan: Já, í vandamál setja einn, eins vel.
MARIA: Já, gott.
DAVID Malan: Good vísbending.
MARIA: Sorry.
Boolean expressions-- svo fyrir Boolean rekstraraðila,
við erum að fara að tala um allt af þessum sem þú sérð hér.
Svo núna, höfum við tvær samasemmerki skráð til jafningja.
Svo þeir eru til samanburðar.
Svo langt, höfum við aðeins séð einn jafngildir skilti.
Það er þegar við framselja gildi breytu.
Þannig að ef við höfum séð INT n = 5, þá við höfum úthlutað 5 til breytu n.
En ef við viljum nota == fyrir samanburður, getum við að athuga hvort n == 5.
Og ef n == 5, þá er það satt.
>> Svo Boolean rekstraraðila leyfa okkur, í grundvallaratriðum,
að meta Boolean orðasambönd til True eða False.
Svo ekki equals-- við höfum upphrópunarmerki og jafningjar.
Þannig að við gætum einnig athugað hvort n ekki jafn 5-- svo n! = 5.
Minna en, minna en eða jafnt og, meiri en, stærra en eða jafnt og,
og þá höfum við rökrétt OG og rökrétt OR.
Og þeir gera okkur kleift að meta margar Boolean tjáning saman
í rauninni koma saman sem heil Boolean tjáningu.
Svo ef við viljum að finna fjölda, segja, sem er meiri en 5 en minna en 15
á sama tíma, við myndum nota við rökrétt og rekstraraðila til að sjá hvort n er
meiri en 5 && n minna en 15.
DAVID Malan: Og hér, of, það er mjög auðvelt
snemma á óvart nota bara einn merkið
eða einn lóðrétt strik.
Og vonandi þýðandinn mun æpa á þig vegna þess að þeir í raun og veru
hafa mjög mismunandi merkingu.
Fyrir þá forvitinn, þeir notað fyrir Bita aðgerðir,
starfa á einstökum bitum.
En þú vilt par af þeim hér.
Og frábær mikilvægt er að fyrsta, merkið,
sem er jafnrétti rekstraraðila sem öfugt við framsal rekstraraðila.
>> MARIA: Og lóðrétt bar er staðsett milli Delete og aftur.
DAVID Malan: Já.
Á dæmigerðum bandaríska lyklaborðinu.
>> MARIA: Já.
Svo skulum hoppa rétt inn skilyrt yfirlýsingar.
Í grunni, hefur þú þegar séð, sennilega,
ef yfirlýsingar sem leyfa þér að athuga hvort eitthvað sé satt, þá
gera eitthvað annað.
Svo þú gætir viljað til að athuga hvort Sprite er
snerta einhverja aðra Sprite eða á landamærum skjánum.
Og þá þú might hafa langað til að enda leikinn eða gera eitthvað annað.
Svo setningafræði fyrir að er "ef (skilyrði)."
Þannig að ef Sprite er snerta eitthvað, þá er ekki inni í hrokkið axlabönd.
>> Þá höfum við if-else yfirlýsingar.
Else gerir okkur kleift að gera eitthvað ef ástand sem við
stöðva fyrir í upphafi er ekki satt.
Þannig að ef Sprite er snerta landamæri að gera þetta, annað að gera eitthvað annað.
Svo annars gera eitthvað annað.
Þá höfum við stutt dæmi um þetta.
Svo ef (military_time <12), við langar að printf "Góðan dag!"
Annað sem við erum að fara að printf "Gott kvöld!"
Basic dæmi.
>> DAVID Malan: Good.
>> MARIA: Cool.
Svo nú höfum við skipta yfirlýsingar.
Skipta yfirlýsingar almennt hægt leyfa okkur að gera a einhver fjöldi af það sama
sem við ræddum bara um með ef yfirlýsingar.
Til dæmis, núna höfum við Almenna form af the rofi yfirlýsingu
sem gerir okkur kleift að taka breytu sem heitir n
og bera saman það til a einhver fjöldi af Mismunandi gildi, sem hér við
hafa kallað constant1, constant2.
Við kunnum að hafa a einhver fjöldi fleiri.
Og þeir eru kallaðir tilvikum.
>> Svo ef við höfum skipt statement-- og þetta virkar
aðeins fyrir integers-- við höfum breyta í þessu tilfelli sem er n.
Ef breyta n er jafnt constant1, við
mun framkvæma sumir kóðabút eða eitthvað sem við viljum gera.
Og þá myndum við brjóta.
Svo brot þýðir að skipta yfirlýsingu
hættir framkvæmd ef n er jafnt og constant1,
og þá program vilja halda áfram.
Það mun hætta út af skipta yfirlýsingu og það verður
halda áfram að gera eitthvað annað.
>> Ef hins vegar n er ekki jafnt og constant1, þá rök fyrir constant2
verður skoðuð.
Svo ef n jafngildir constant2, að aðrir kóðabút verður beitt.
Og þá verður það að brjóta ef það er jafn það.
Og þá getum við haft also-- ekki endilega, though-- sjálfgefið mál,
sem mun gerast ef n er ekki jafnt einhverju tilvikum sem þú hefur skráð.
Og í sjálfgefna tilfelli, einnig þurfa ekki pásu endilega
vegna þess að skipta yfirlýsingu vilja vita að það þarf að enda eftir sjálfgefna
ræða ef það er málið.
>> DAVID Malan: En stylistically, við setjum alltaf í það.
>> MARIA: Já.
>> DAVID Malan: Já.
Svo sérstaklega þegar byrjun út, sérstaklega ef meðal þeirra sem minna
þægilegt, myndi ég persónulega bara mæli með að standa við Skógrækt ríkisins
og IFS-elses og if-else-ef-elses og svo framvegis Ef aðeins
vegna þess að þeir eru svolítið meira einfalt.
Þetta er ágætur hagræðingu, eða stundum jafnvel fagurfræðilega það
gerir kóðann læsilegri.
Og í raun, líklega miðjan önn munum við sjá vandamál
setja þar sem það lítur bara betur og auðveldara að lesa fyrir menn
með því að nota skipta yfirlýsingu.
En ekki hafa áhyggjur óður í liggur efst þetta of snemma.
>> MARIA: Já.
Ef þú hafa a einhver fjöldi af ef yfirlýsingar, það gæti bara ekki verið mjög læsileg.
Það gæti ekki verið mjög hratt fyrir þig að fara í gegnum það.
Svo skipta staðhæfing getur vera mjög gagnlegt, eins og heilbrigður.
Og einnig, ekki remember-- ekki gleyma að setja hlé í það.
>> DAVID Malan: Ekki muna þetta.
>> MARIA: Því þá gæti fallið í gegnum frá einu tilviki til annars.
Svo skulum segja að málið constant1 ekki hafa hlé yfirlýsingu í það.
Þá erum við kannski falla í gegnum inni tilfelli constant2.
Og við viljum ekki að gera það ef við höfum nú þegar náð að ræða constant1
og það er jafnt n.
>> Svo, til dæmis, ef við erum með breytu n sem inniheldur flokks númer,
og við viljum að sjá hvað það bekknum is-- ef n jafngildir 50,
við erum að fara að prenta "CS50 er Inngangur að tölvunarfræði I. "
Þá erum við að fara að brjóta.
Og það er það.
Ef hins vegar sem n er jafngilt 51, við erum að fara
að prenta "CS51 er Inngangur að tölvunarfræði II. "
Þá aftur, við erum að fara að brjóta.
Hins vegar, ef þá erum við að setja 124, 61, allir annað númer sem þú might hugsa um,
eða program er ekki að fara að viðurkenna það.
Svo það er að fara að segja, "Því miður, ég er ekki kunnugur þeim flokki. "
Og það er að fara að brjóta.
DAVID Malan: Svo þú getur raunverulega sjá if, annars ef annað hugmynd hér.
Það er bara öðruvísi setningafræði fyrir tjá nákvæmlega sömu hugmynd.
>> MARIA: Nákvæmlega.
Nú höfum við þríþætt rekstraraðila okkar.
Svo þrígildur rekstraraðilar hafa þrír parts-- ástandi,
eitthvað að gera ef sem skilyrði er satt,
og þá eitthvað að gera ef það ástand er falskur.
Svo þú sérð, í grundvallaratriðum, setningafræði sem hér.
Við höfum á spurningamerkið, og þá the-- hvað við köllum þetta?
DAVID Malan: The ristill.
MARIA: Colon.
Þakka þér fyrir.
Sorry.
Svo skulum líta á dæmi til sjá hvort við getum gert tilfinningu this--
class_num == 50.
Svo hér sjáum við Boolean rekstraraðila okkar == sem ber saman breytilega class_num
til 50.
Svo class_num verslanir heiltala.
Og ef það heiltölu jafngildir 50, þá erum við
að geyma "David Malan" inni í streng prófessor.
Ef flokkur fjöldi ekki jafna 50, "að Davíð Malan"
er að fara að vera prófessor.
>> DAVID Malan: Þakka þér.
Og svo virðist þetta jafngildir hvað, myndir þú segja, við fyrstu sýn?
>> MARIA: Mér virðist eins if-else yfirlýsingar.
>> DAVID Malan: Já.
Og í raun, þetta er góður af ansi einn Ferja,
svo að segja, til að hrinda nákvæmlega röksemdafærsla if-else
en að gera allt í einu skrefi.
>> MARIA: Nákvæmlega.
Já.
Svo if-else yfirlýsingar gæti taka upp mikið pláss.
Þeir gætu verið of löng fyrir eitthvað eins einfalt og þetta.
Þannig að þetta getur verið mjög gagnorðar og mjög gott.
Svo nú erum við að fara til að horfa á framkvæmd eitthvað aftur og aftur,
svo stöðva fyrir a ástand mörgum sinnum
og þá halda áfram að gera eitthvað en það ástand er satt.
Þannig að þetta færir okkur vel inn í meðan lykkjur.
>> Til vinstri, höfum við fyrst meðan okkar lykkja.
Svo á meðan eitthvað er satt, gera eitthvað aftur og aftur.
Svo tryggja að taka eftir því að okkar ástand hér er staðfest á the toppur.
En með öðrum loop-- okkar sem við köllum að gera-en loop-- við gerum eitthvað,
þá erum við að athuga ástand.
Og ef því ástandi áfram að vera satt,
við förum aftur og gera hlutur aftur.
Svo er helsti munurinn þar skilyrðið er köflóttur fyrir.
Og númerið má aldrei vera framkvæmd Ef ástand er ekki
satt með while lykkju.
En við gera-en lykkja, höfum við kóðann
sem alltaf framkvæmt að minnsta kosti einu sinni.
Og þá á meðan ástand áfram að vera satt,
við getum farið aftur og kunnugt inn aftur.
Svo hvers vegna finnst þér að við myndum nota a gera-while lykkju yfir while lykkju?
Hægri.
Svo ef við viljum hvetja sem Notendur að einhvers konar inntak,
ef við viljum biðja þá til að slá inn nafn sitt,
við viljum að minnsta kosti spyrja þá einu sinni.
Og ef þeir gera inn að nafn, við erum ekki
að fara að spyrja þá aftur vegna þess að við vitum það nú þegar.
En ef þeir ekki inn nafn þeirra, eða ef þeir
inn eitthvað sem er augljóslega ekki nafn,
við viljum samt að halda áfram biðja þá um að nafn þeirra.
>> DAVID Malan: Og í fyrirlestri við höfðum eitt svona með að fá jákvæða int
dæmi, þar er ekkert að athuga fyrst vegna þess að þú ert ekki einu sinni
fengið int.
Þannig að við viljum gera this-- fá int frá user--
þá stöðva það, ef til vill, aftur og aftur og aftur.
>> MARIA: Nákvæmlega.
Fyrir loops-- lagi.
Fyrir lykkjur er hægt að leyfa okkur að gera nánast nákvæmlega það sama, eins og heilbrigður.
Það er í raun nákvæmlega sama.
Svo er ekkert sem þú getur gert með fyrir lykkjur
að þú viljir ekki vera fær um að gera við á meðan lykkjur.
En fyrir lykkjur kann að virðast svolítið dálítið flóknara setningafræðilega
vegna þess að þeir hafa þremur hlutum inni hvað
var áður bara ástand við á meðan lykkjur.
Svo fyrsta hluti sem þú sjó, vinstri-mest, höfum við "INT dvergarnir = 0."
Svo er þetta þar sem við frumstilla breytu okkar.
>> Þá höfum við semíkommu og "dvergarnir <7."
Svo er þetta þar út ástand í raun er.
Svo það er það sem við hefðum setja bara í tíma loop--
"en dvergarnir <7."
Hér, sem fer í miðja okkar fyrir lykkju.
Svo "dwaves <7."
Og þá er síðasta hluti okkar "dvergarnir ++," sem er þar við uppfæra breytu okkar.
Svo mikilvægast að átta sig á er að þessi
er að fara að fara í gegnum þetta fyrir lykkju sjö sinnum og framkvæma sjö sinnum.
Þannig að við höfum sjö Dvergarnir, og þeir eru allir
að fara að segja, "ég er hér til að hjálpa þér, Snow White "
vegna þess að þeir eru tilbúnir til að hjálpa Mjallhvíti.
>> Með meðan lykkja, við hefðum gert frumstilling og uppfærslu
ekki inni í ástandi, aftur, en annaðhvort fyrir eða inni í while lykkju
til að tryggja að we-- því við þurfum alltaf þá hluta.
Svo til að tryggja að við höfum þá, myndum við höfum enn bætt þeim
á, bara ekki inni í sviga.
>> DAVID Malan: Og svo lítur það like-- í fyrirlestri, til dæmis,
Ég næstum alltaf notað, eins og, ég og n og laglegur leiðinlegur breytur.
Það lítur út eins og þú getur notað fleiri snjall heitir breytur líka.
>> MARIA: Já, það er í raun mjög gott að nota aðeins meira lýsandi breytur
því sérstaklega ef einhver annar er lesa code-- þinn kannski þú ert Röð
eða ef þú ert að taka þátt með somebody--
þú vilt vera viss um að þeir skilja hvað þú ert að gera.
>> OK.
Svo er þetta eitthvað mjög funky-- fyrir lykkju inni fyrir lykkju.
Ég veit ekki hvort við höfum séð þetta áður.
Örugglega ekki.
En við getum í raun hafa this-- svo lykkjur í stað lykkjur.
Svo er einhver vilja til að kannski ganga mig í gegnum hvað er að gerast hér?
DAVID Malan: Ég tek stunga.
MARIA: Cool.
DAVID Malan: OK.
Svo, spoiler-- við viljum prenta efni sem er í neðra hægra horninu
þar.
>> MARIA: Hægri.
Jájá.
>> DAVID Malan: Þannig að við höfum bara setja þessi sýnishorn framleiðsla þar.
Svo ég get álykta frá hæstur lykkja sem þú ert
iterating yfir raðir í yst lykkja, svo að segja.
Og þú ert iterating yfir dálka með innsta lykkju.
Og innsæi, þetta ætti vonandi vit
því við eðli hvert forrit sem við höfum séð
áður, printf, sem er virka við erum að nota, að lokum,
hefur getu til að prenta efni út í raun línu fyrir línu.
Eins og þegar þú hefur outputted ný lína, það er
engin tvöföldun aftur og prentun eitthvað hærra í skjánum, að minnsta kosti
ekki nota printf svona.
>> Og svo í þeim efnum, sem gerir það skilningi að ysta lykkja
skal vísa til raðir vegna þess að gefinn röð,
þú ert að fara til að vilja prenta út xxxxx og þá
fara yfir í næstu línu, XXXXX.
Svo raðir koma fyrst.
Og þá innan hvers röð, prenta þú dálka.
Ef þú reyndir að gera það á gagnstæða, myndi það sennilega ekki
koma út eins og þú ætlar.
>> MARIA: Já.
Við bara gat ekki farið aftur til fyrri umf með printf.
>> DAVID Malan: Og hvað er áhugavert á spjalli í dag um umfang,
reyndar, er að röð er int sem er lýst í hæstur lykkju.
En eftir að það er enn inni, svo að segja,
hrokkið axlabönd sem strax á eftir,
jafnvel þó að það er ekki tæknilega innan þessara hrokkið axlabönd.
Svo er röðin að umfangi fyrir heild á runu af kóða,
bæði innri hlið ytra fyrir lykkju og innan í innri til hliðar.
En hins vegar þar er dálkur í umfangi?
Breytan dálkur?
Já, aðeins í inni lykkju.
Og það er allt í lagi vegna þess að við ekki aðgang að það utan hrokkið axlabönd sínum.
Allt sem við gerum er að prenta út nýtt lína aftast þar.
Þannig að í raun er í lagi.
>> Svo hefur þetta áhrif, það lítur út eins og, um að gera þrjár raðir og fjögur blöð.
>> MARIA: Hægri.
Svo fyrst við förum í gegnum fyrstu röðinni okkar.
Og bara í fyrstu röðinni okkar, við gerum það fjórir dálkar inni í fyrstu röðinni.
Þannig að við prenta út fjórum X er.
Og þá getum við hætta er til hliðar, þar sem við höfum nú þegar prentað út fjórum X er.
Og við að prenta nýja línu.
Og þá erum við að fara í gegnum Sama ferli í tvö raðir
að gera samtals þremur.
>> DAVID Malan: Og það er athyglisvert að það er bara artifact af letrinu, sú staðreynd
að sýnið framleiðsla virðast svo miklu hærri,
eins og það sem meira er raðir en dálkum.
En það er bara vegna þess að X er hærri en það er breiður.
Það er allt sem er að gerast þar, auk hvítt rúm milli línanna.
>> MARIA: Hægri.
Cool.
DAVID Malan: Allt í lagi.
Svo a fljótur líta á vandamál setja einn, taka einhverjar spurningar, og þá frestað?
Allt í lagi.
Svo í vandamál setja einn, það er þrjú helstu hindranir, að lokum.
En fyrst, þú munt finna að vandamálið sett
forskrift, sem með mörgum sem psets í haust, er að fara að ganga í
gegnum nokkur hlý upp æfingum, benda þér á nokkur úrræði
sem þú mega eða mega ekki hafa séð þegar.
Til dæmis, CS50 hefur föruneyti af stuttbuxur,
sem eru stutt myndbönd, ekki ólíkt þessu, en það
eru mjög spjallþráð specific-- kannski fimm mínútur,
10 mínútur að lengd á lykkjur eða um skilyrði eða reiknirit
eða síðar á fleiri háþróaður efni, eins og heilbrigður.
Og við embed almennt þeir í vandræðum
setur þannig að nemendur hafa auðlind sem á
að endurskoða efni sem gæti hafa nú þegar komið upp í fyrirlestri eða kafla.
En þannig það er markvissari og fleiri innan seilingar þeirra.
>> Við hafa tilhneigingu einnig til að embed í vanda setur hlutina kallast walkthroughs.
Svo næstum öll dæmi sem ég geri í fyrirlestri, á sviðinu hér, við einnig
skutum á myndavél í fara meira hægar,
nánara walkthrough af mér á minn laptop þess kóða, línu fyrir línu
þannig að í bekknum, munum við oft Lögð gegnum eitthvað eða einhvern
mun interject með að svara við spurningu.
En það þýðir ekki endilega að sökkva í fyrir í áhorfendur.
Svo þú munt finna númer walkthroughs fyrir flest af dæmunum
sem við gerum hér í fyrirlestri þannig að þú Hægt er að ganga í gegnum það á eigin hraða
og spóla hratt áfram eða til sleppa öllu leyti, ef þú vilt.
>> Það er oft nokkrar Warm-upp spurningar sem
biðja þig að raða á styrkja þetta efni
og ganga úr skugga um að þú ert notalega áður þú halda áfram með the hvíla af the pset.
Og þá, að sjálfsögðu, það er pset sjálft.
Og eitt af því sem við mjög vísvitandi
gera í CS50 er nánast hvert uninteresting eða vitsmunalega uninteresting
vélrænni skref sem þú gætir þurft að gera
er nánast alltaf mjög vel skjalfest.
Á meðan á hugtakinu, munum við byrja að spyrja meira Retorísk spurningar
eins muna hvernig á að gera þetta eða hitt?
En almennt, þú munt finna að vandamálið setur fá þig
gegnum aflfræði um eitthvað svo að
áhugaverðar, vitsmunalegu viðfangsefni eru á endanum til vinstri við þig nemandann.
>> Með því að segja, Zamyla, sem vér haldið vísa í dag í fyrirlestri,
er einn af longtime starfsfólk okkar aðili sem einnig hefur walkthroughs
á ákveðin vandamál pset eins og Mario og gráðugur, þó ekki vatn á þessu ári.
Og það er í þeim walkthroughs sem hún oft
býður upp á nokkrar ábendingar og bragðarefur fyrir hvernig á að halda áfram, aldrei að segja þér
nákvæmlega hvað á að gera, en rather-- eins ástandi,
ef þú will-- gefa þér að minnsta kosti nokkrar hugmyndir svo að það er komið að þér,
lokum, að ákveða hvernig á að snúa sér til þeirra.
>> MARIA: Raða af eins og a hár-láréttur flötur skilningur á rökfræði sem
við erum að biðja þig um að gera.
>> DAVID Malan: Einmitt.
Og í raun, Zamyla er walkthroughs er ætlað
að svara oft spurði spurning um hvar
ég byrjaði, sérstaklega þegar þessi langa upplýsingar eru
a lítill draga kjark gefið allan texta og myndefni sem þeir hafa í þeim.
>> Svo water.c, þú munt finna eftir að þú hefur lokið því,
er í raun tiltölulega einfalt.
Absolutely eru fullt af að fara til Bang
höfuð við vegg að reyna að reikna út hvers vegna það er ekki gerð
eða hvers vegna það er ekki í gangi rétt.
En þegar þú ert búinn með það og þegar þú hefur
eyddi nokkrum tíma að glíma við eitthvað af galla sem þú gætir hafa,
þú munt komast að því að það er mjög stutt program.
Það er hægt að gera í örfáum línur af kóða, sem flest
við höfum séð hér í fyrirlestri þegar, ef þú saman rétt kubbar.
>> Og eins og við leggjum hér, það er að fara að spyrja
þú að tilgreina hversu margar mínútur einhver er að taka í sturtu á háskólasvæðinu.
Við tilgreina í vanda stilla inn gengið flæði vatns
í, eins og, lág-rennsli sturtu höfuð, mikið eins og Seinfeld bút
við sáum í gær eða hið gagnstæða þar af.
Og þá verður þú bara að gera smá af stærðfræði,
really-- tölur með C að segja okkur hversu mörg, u.þ.b., flöskur af vatni
er það sem svarar til ef við erum að taka á milli n-mínútna sturtu.
>> Nú, í mario.c, þetta er að fara að vera örlítið lengur program.
Það er samt ekki að fara að vera svona lengi.
Bara nokkrar línur sem eru yfir water.c.
En það er að fara að vera tækifæri að endurskapa gamla skólanum Mario
pýramída frá Super Mario Brothers eða sumir eftirfylgni á.
Það er ekki að fara að líta út eins og fallegri eða eins litrík og það eitt þar.
Við erum bara að fara að nota litla hashtags eins og við höfum hér á skjánum
nota ASCII texta.
En það mun samræma sömu hugmynd.
Og það er að fara að vera æfa sem við fyrstu sýn
virðist nokkuð simple-- bara prenta einföld pýramída.
En það er nokkra eiginleika hér sem eru áhugaverð.
Takið eftir að rightmost brún pýramída raun hefur breidd tvö.
Svo er það tveir jafnir dálkar hæð, sem
gerir það þurfa smá hluti af hugsun til að gera
viss um að þú færð að nákvæmlega rétt, sem öfugt við bara fullkomlega horn
lína.
Svo er það hluti af horninu að ræða en passar í raun leikinn.
>> Og það er líka ekki augljós í fyrstu litið hvernig á að prenta hvítt rúm.
Svo þegar ég líta á Sýnið framleiðsla here--
og það er líka í spec-- það konar lítur út eins og rétthyrningur,
en ská af rétthyrningur hefur verið hakkað burt,
og það er bara hvítt rými, svo að segja.
Og svo oft spurt Spurningin hér er alltaf vel,
hvernig get ég færa hashtags yfir til hægri?
Eða hvernig get ég prentað autt rými?
Og það er í raun auðveldara en flestir nemendur hugsa.
Ekki satt?
Þú getur samræma það sjónrænt með bara hitting á bil bar einu sinni eða tvisvar
eða þrisvar.
>> Og svo jafnvel þótt við printf við nánast alltaf prenta út strenginn eða int
eða orð eins og "halló, heimurinn "eða röð af orðum,
þú getur líka bara prenta vitna, rúm, unquote.
Og það mun í raun gefa þú hvítt pláss þar.
Svo halda að í huga og ekki overthink þetta.
Þú þarft virkilega að ákveða, röð fyrir röð af röð,
ekki ólíkt td þínum áðan, hversu margir af þeim
dálkum ætti að vera hvítur rými og hversu margir af þeim ætti að vera Hashtags.
Það mun taka smá tíma, en það er lokum rökfræði ráðgáta konar.
>> MARIA: Já.
En röksemdafærsla fara, röð fyrir röð er að fara að vera mjög gagnlegt hér.
DAVID Malan: Já.
Ég held að dæmi um kóða sem þú gave-- jafnvel þó það væri ekki heill forrit.
Þú þarft samt int og helstu og tóm og #include stdio.h,
a einhver fjöldi af efni frá fyrirlestri.
En að byggja blokkir virðast vera þar.
Og þá er loks eitthvað aðeins meira lausnarleiðar.
Svo kemur í ljós að hvenær sem þú fara í CVS eða hvaða sjoppa
og einhver hendur þér á að gjaldkeri reikninga eða mynt sem breyting,
það kemur í ljós að þeir, menn, hvort sem þeir vita það eða ekki,
eru sennilega með hvað er kallað gráðugur reiknirit,
þar ef þú ert skuldaði, segja, $ 21 í breytingum því af einhverjum ástæðum
þú keyptir eitthvað mjög ódýrt með mjög stór reikningur á CVS,
það væri mjög pirrandi ef Gjaldkeri gaf þér 21 manns eða verri
enn, a heild einhver fjöldi af mynt.
Frekar, það skynsamur maður er líklega að fara að gera er að þeir eru að fara
að grípa $ 20- og þá $ 1-frumvarp, og skila þér bara tvær reikninga í umræddu tilviki.
MARIA: Svo þeir eru að leita að lágmarka breyting sem þeir gefa til baka til þín.
DAVID Malan: Einmitt.
Og sami samningur með mynt, eins og heilbrigður.
Ef þú ert skuldaði, segja, $ 0,50, vonandi þú vilt ekki 50 smáaurarnir.
Þú vilt í staðinn tvö misserum, til dæmis.
Nú, þetta er gert ráð fyrir að gjaldkeri hefur
nóg af öllum kirkjum sem hann eða hún gæti langað til að gefa þér.
En við leyfum þér að gera ráð fyrir eins mikið á því vandamáli.
Og markmiðið, að lokum er, að hrinda í C kóða gráðugur reiknirit.
Þannig að notandi er leyft að slá í hversu mikið
breyta hann eða hún er skuldaði með dollara og sent, einhvers konar fleytitölu
gildi líklega.
Og þá verður þú að gera stærðfræði og reikna út algorithmically vel,
hversu margir mynt get ég gefið þú óverulega að gefa þér
nákvæmlega það magn af breytingum.
En það er að fara til vera a Nokkrum erfiður hlutum hér, ekki satt?
Eins og það er allt ónákvæmni mál.
MARIA: Nákvæmlega.
Svo fleytitölu gildi hafa ónákvæmni.
Gerði við tölum um þetta í fyrirlestri í dag?
>> DAVID Malan: Við gerðum Síðast þegar í fyrirlestri.
Við ræddum um ónákvæmni.
Og þú vilt ekki að svindla notanda um hversu miklar breytingar sem hann eða hún er skuldaði.
Og svo walkthrough, í vandamálið sett forskrift,
gefa sumir hugsun, að lokum, eins og til hvernig þú getur draga þá ónákvæmni
villur, hugsanlega.
Það er óhjákvæmileg, vissulega, fyrir inntak við erum að tala um.
Og í raun, pennies-- kannski að við munum fresta til Zamyla,
Ég held, fyrir bragðarefur þar.
Svo að lokum, þú munt finna a framvinda vandamál í þessari viku,
fyrsta sem er frekar lítill, þá miðlungs, þá lítið stærri.
En öll þeirra nota húsið blokkir frá þessum síðustu viku,
frá þessari supersection, Heimadæmi forskrift
setur þig í óteljandi úrræði.
En samt, ef yfirleitt barátta, sérstaklega meðal þeirra minna þægilegt
án undangenginnar bakgrunn, koma til skrifstofutíma
á mánudag og þriðjudag og Miðvikudagur og fimmtudagur.
Fara á CS50 Ræddu um website Námskeiðið er,
um sem þú getur spjallað við starfsfólk og bekkjarfélögum.
>> En á endanum held ég að Besta ráð er bara að byrja snemma.
Það er ekki góður af bekknum sem þér ættu að vera farnar psets á miðvikudag
nótt, eða verri fimmtudagskvöld.
>> MARIA: Besta ráð mitt er að hafa byrjað með því að mánudagur.
DAVID Malan: mánudagur.
Svo ef þú hefur ekki byrjað already-- nr.
En jafnvel þótt ekki mánudagur, þá þriðjudagur.
Því fyrr því betra.
Og það er ástæðan fyrir því að Auðvitað hefur svo marga seint daga er
að gefa þér smá a sálfræðileg þrýstingur
að byrja fyrr en samt láta það miði þegar það tekur lengri tíma
en þú átt von á.
>> MARIA: Og þú vilt að nýta Viðtalstími eins mikið og þú getur líka.
>> DAVID Malan: Einhverjar spurningar?
Allt í lagi.
Ja, hvers vegna eigum við ekki að fresta hér?