>> Rob BOWDEN: Þetta er öruggari kafla,
en það þýðir ekki að ef þú finnst eins og þú ert ekki öruggari
þú munt ekki læra hlutina hér.
Svo skulum við hefjast handa.
Ertu með skyggnur fara rétt inn í hlutina.
Er ég að fara að bara að taka það núna?
Skipt fartölvur.
>> ALLISON: Þú vilt ekki að kynna þig, Rob?
>> Rob BOWDEN: Oh, ég er Rob.
Þetta er fimmta árið TF-ing CS50 minn.
>> GABRIEL: Ég er Gabriel.
Ég er yfirmaður TF af CS50.
Ég var TF í fyrra og á þessu ári.
ALLISON: Og ég er Alison, og þetta er annað árið TF-ing CS50 minn.
>> Rob BOWDEN: Allt í lagi, svo þetta á vinstri,
vonandi þú hafir séð það áður.
Ef ekki vegna þess að þú sækja það fyrir sjálfan þig,
þú ættir að hafa séð það í fyrirlestri.
Þannig að þetta er CS50 tæki, og hann gerði nokkuð af lýsingu á henni
í fyrirlestri.
En í grundvallaratriðum er það bara þú eru í gangi rekstrarleyfi
kerfi innan rekstrarkostnaði kerfi þannig að við getum gefið þér
forrit án þess að þurfa að hafa áhyggjur, ó er þetta
fara að vinna á bæði Windows og Mac, eða ef sum ykkar
eru nú þegar að nota Linux, Linux.
Það er bara ætlast til að vera sameiginlegt leika
sviði svo hafa allir að sama nákvæmlega umhverfi.
>> Svo ef þú ert ekki sótt þetta nú þegar,
þú ættir að sækja hana, vegna þess að þú ert fara að þurfa það fyrir Heimadæmi.
Og það er tveggja gígabæti sækja, svo það gæti tekið hríð.
Á Harvard það fer hratt.
Svo CS50 tæki.
>> Nú í upphafi, við erum að fara að tala um bara fullt af skipanalínu
efni, og svo af því, ég meina að vinna í þessu litla umhverfi hérna.
Og taka eftir öllum hlutum Ég segi hérna núna
eru að fara að vinna ef þú ert inni a flugstöðinni inni á tækinu,
eða ef þú ert inni að gedit endastöðvar
inni á tækinu.
Svo þessir umhverfi eru eins.
>> En ég ætla að fara þriðja leið.
Og taka eftir hér þetta niður lítið IP heimilisfang hérna.
Svo þú þarft ekki að gera þetta, en þetta IP
address-- nú ef I-- nema það er læst með þetta.
OK, þannig að IP netfang yfir í flugstöðinni
here-- svo þetta enda yfir hér er flugstöðinni í Mac minn.
Þannig að þetta er á engan hátt eins og er tengslum við tæki á öllum.
Og ef þú ert á Windows, þá þú ert að fara að þurfa að sækja eitthvað
sérstaklega fyrir þetta, einkum fólk tilhneigingu nota kítti, P-U-t-t-y.
>> Svo það sem ég ætla að gera er að slá SSH og þá IP tölu.
Jæja, jharvard á þeim IP heimilisfang.
Svo 192.168.24.220.
Þetta skelfilegur skilaboð, hunsa hana.
Bara slá já.
Þetta er CS50 í kassa.
Það biður um lykilorð þitt.
>> Og svo í fullt af þessum samhengi þar það biður um lykilorð, [inaudible].
Við höfum fengið mikið af spurningum þar það segir það er ekki í raun að slá.
Það þýðir ekki að sýna þér stafina lykilorðið sem þú skrifar, ef eitthvað,
fyrir öryggi lögun, því ef einhver er að leita um öxl
og þeir sjá stjörnu stjörnu stjörnu stjarna, þá þeir
vita að lykilorðið er fjórir stafir.
Svo hugmyndin er það vilja spyrja þig um lykilorð, tegund.
Það er ekki að fara að sýna þú persónurnar,
en það er í raun að samþykkja þær.
Í þessu tilviki, hvenær sem þú alltaf sjá lykilorð hvetja
takast á við tækið, sem lykilorð er að fara að vera Crimson.
Svo Crimson.
>> Og nú hér inni af þessu glugga sem er í Mac minn,
Ég er í grundvallaratriðum hafa sama nákvæmlega Skoða
eins inni í flugstöðinni í tækið.
Svo þú þarft ekki að gera þetta.
Þú getur gert allt sem þú vilja inni á tækinu.
Ég næstum aldrei gera eitthvað í tækið.
Ég næstum alltaf lágmarka það og nú Ég er að vinna SSH í tækinu.
>> Ef eitthvað, ef þér hefur hægara tölvu,
þú might taka eftir a mismunur.
Ég geri þetta vegna þess að ég vil fá þetta endastöðvar.
Það hefur einhverja eiginleika eins Ég get skipt um gluggann,
og nú get ég SSH í gegnum tæki.
Ég fékk tvær SSH er að gerast í einu.
Ef tölvan þín er sérstaklega hægur og þú ert að vinna í tækinu,
og þú átta sig á þessu er virkilega laggy, hvað sem er.
Tilhneigingu til að vera miklu hraðar Ef þú ert SSH-Ed í.
En annars er hægt að vinna annað hvort hátt.
>> Áhorfendur: Hvað þýðir SSH meina?
>> Rob BOWDEN: Öruggur skeljar, eitthvað svoleiðis?
Hvað þýðir SSH meina?
GABRIEL: Secure skel.
ALLISON: Það er bara örugg skel.
Rob BOWDEN: Secure skel.
Það er siðareglur sem you-- það er öruggt siðareglur, svo dulkóðaðar.
Fólk getur ekki Snoop netið og sjá hvað þú ert að segja við neitt
þú ert SSH-Ed að.
Og í raun, í gamla dagar CS50, svo í 2009
þegar ég var freshman, á þann hátt að þú starfað á CS50 vandamál setur,
væri þú SSH-Ed að sumir framreiðslumaður að við gaf þér aðgang að,
og þú unnið á það.
Svo þú hafir ekki hafa þetta grafísku tæki.
Þú varst ekki að hafa gedit.
Þú varst ekki að hafa allt þetta sem þú gætir sjónrænt benda og smella.
Þú þurfti að vinna í þessu tengi.
Ég vil frekar að vinna í þessu tengi.
Svo hluti af því sem við erum að fara að vera að fara til yfir núna
eru fullt af skipanir sem þú ættir
byrja að fá kunnuglegur með eins þú ferð með í námskeiðinu.
Og heiðarlega, þegar þú venjast þeim, það
er svo miklu hraðar að vinna í þessu umhverfi
en það er að vinna með leitarvél, draga og smella hluti.
>> Svo hér erum við.
Nú er ég bara SSH-Ed í, og svo sjálfgefið location-- þig
sá nokkrar af þessum skipunum í bekknum, en við munum fara yfir þær allar aftur.
Sjálfgefna Staðsetning við erum á er heimasvæði.
Og skrá, bara annað orð fyrir möppuna.
Þannig að við erum í heimasvæði.
Tegund LS, listi skrár í þessari skrá.
Augljóslega Ég bjó til blah.c fyrr.
Þannig að við hafa a skrifborð skrá.
Þú tekur eftir textalitunar?
Ljósið blár auðkenning bendir skrá og beina hvítt
sýnir bara látlaus skrá.
Þannig að það eru að fara að vera sumir aðrir litir sem þú sérð.
An executable skrá er líklega að fara að vera grænt eða eitthvað svoleiðis.
OK, þannig að við erum í heimasvæði.
>> Nú ef ég vil fara í annað skrá, CD er skipunin sem ég vil.
Svo breyta möppu, og þá standast nafnið á möppu
að þú vilt fara inn í.
Svo hér höfum við fjóra valkosti.
Ég get farið inn í niðurhal, og nú sjáum við Hér hefur uppfært þetta parenthetical
að segja að ég er í ~ / niðurhal.
>> Svo er það Tilde?
Það er a shorthand fyrir heimasvæði þitt.
Svo næstum allt sem þú gerir er að fara að vera með tilliti til skrá heimili þínu,
og pwd er bara stjórn Ég nota einu sinni á ári sem
bara prentar núverandi möppu.
Og þannig að þú sérð hér að ~ / Niðurhal raunverulega hverfur
til / home / jharvard / niðurhal.
Svo / home / jharvard er heimasvæði mitt.
>> Svo við getum CD punktur punktur.
Nú er punktur punktur sérstakt skrá sem alltaf átt við ein mappa upp.
Svo ef ég er í ~ / niðurhal, þá cd punktur punktur er að fara að koma mér að Tilde.
Hvað eigum við held CD punktur punktur er að fara að koma mér til núna?
Það mun koma mér til / home.
Svo Tilde Print vinna möppu, Ég er í núna / home / jharvard.
ein mappa upp frá því, nú segir það hér / heim.
>> Nú CD punktur punktur.
Nú er ég í the rót skrá, og þú getur ekki gert það aftur.
Þú munt bara að halda í Rótarmappa eilífu.
Rótarmappa hefur í heild búnt af hlutir sem, ef þú vilt að líta inn,
þú getur.
Til dæmis, ef ég fer í bin, sem inniheldur
Öll þessi tvöfaldur, ss LS, og CD, og ​​öllum þeim hlutum.
Svo þessar skipanir þurfa að eru einhvers staðar í kerfinu,
og það er í / bin möppunni.
En næstum allt sem þú gera er fara að vera frá heimasvæði þínu.
Og CD án rök af neinu tagi, þú gætir sagt CD ~, þarft ekki að.
CD er að fara að koma þér Aftur að skrá heimili þínu.
>> Eitt síðasta einn.
CD - er að fara að koma þér aftur til síðasta möppu sem þú varst í.
Svo ég cd'd bara tvisvar í röð, svo minn síðasta skrá var heimasvæði.
Ef ég fer að rista bin, og nú skulum fara upp og inn notanda.
User hlut.
Förum að notandi hlut.
Nú er ég nú í notandi hlut.
CD - aftur í hólfi.
Svo fær þetta sérstaklega gagnlegt þegar þú have-- og það mun skipta.
Svo notandi hlut, bak kassi, hlut kassi.
>> Svo fær þetta gagnlegt.
Þú getur fundið sjálfur að þurfa margir, margir, margir hreiður framkvæmdarstjóra.
Og þú vilt gera eitthvað raunverulegur fljótur í efri skrá.
Þú ferð á þessi skrá, gera breytingar og solls,
og nú þú vilt fara baka þar sem þú varst.
CD -.
Ég er alltaf svekktur þegar ég gerst að fara
til að skrá I langaði að gera verk í.
Ég fæ alltaf svekktur þegar ég gerði það í tveimur þrepum í stað einu skrefi,
því það þýðir að geisladisk - er að fara að koma inn í þessi INTERMEDIATE Location
í stað þess að þar sem ég vil fara.
>> Þannig að við sjáum allar lista skrár.
Við vitum hvernig á að fá í kring svo langt.
Svo nú skulum við tala um að breyta skrám.
Þannig að í þessu námskeiði, þú ert næstum alltaf gert ráð fyrir að nota gedit.
Ef þú vilt, getur þú taka næsta skref og byrja að læra a stjórn lína texta
ritstjóri.
Svo ýmsir möguleikar fyrir hendi.
>> Og þau sem eru sennilega fara til að eiga við þig,
við höfum Nano, Vim og emacs.
Svo er Nano The Byrjandi stjórn lína texta ritstjóri.
Svo Nano skulum fara á blah.c ég búið fyrr.
Það er bara þetta staðlaða C skrá.
Og þú sérð a heild búnt af efni fara á í the botn af the skjár,
og virðist blah.c inniheldur þessa C kóða.
>> Þannig að í þessu tiltekna ritstjóri, hvað það er að segja á því bottom--
nú þetta caret tákn, Við sjáum þetta ^ G, ^ X, ^ O.
Þannig að í nánast öllum samhengi sem þú sérð,
þú gætir séð að caret tákn í öðrum stöðum á netinu, á Stack flæða,
eitthvað svoleiðis.
Það vísar nánast alltaf að stjórna.
Svo til að hætta ég vil gera Control X. Control X, hættir.
Og ég get notað örina mína takkana til að hreyfa í kring.
Tilkynning Ég get ekki benda og smella fúslega.
Þú þarft að nota arrow þína takkana til að hreyfa í kring.
Það gæti verið stilling að benda og smella.
>> En við skulum gera nokkrar breytingar.
Nú Control X að fara hætta.
Það er að fara að segja spara breytt biðminni.
Nú hvetja y fyrir já, n eigi.
Control C fyrir að hætta við.
Ég verð bara að segja já.
Skrá nafn til að skrifa.
Sjálfgefna er skrá að það er nú þegar.
Ýttu á Enter.
OK.
Nú ég hef bara breytt að skrá, spara það, og það er breytt.
>> Svo er Nano auðveldasta texti ritstjóri venjast.
Valkostir eru Vim og Emacs.
Þeir eru meiri texta ritstjórar sem hafa mjög brattur lærdómur bugða.
Svo er persónulegt val mitt Vim.
Og það hefur a breiður fjölbreytni af valkostur.
Og þegar þú venst á það, munt þú aldrei
langar að fara á önnur texti ritstjóri vegna þess að þú bara
hafa svo margt í boði fyrir þig á þessum,
en það tekur mjög langan tíma til að læra.
Svo kannski þú vilt bara að þvinga sjálfur núna að venjast henni,
en ég myndi segja að það er þess virði.
En það er erfitt.
>> Og svo Emacs.
I baráttu alltaf í EmacsName vegna Ég veit hvernig á að gera nákvæmlega ekkert.
Apparently Emacs er ekki sjálfgefið sett upp á tækinu.
Við munum líklega bæta við að sem sjálfgefið innsetningar.
Þegar þú lærir eitt af Vim eða Emacs, það er
engin sannfærandi ástæða til alltaf læra hitt,
en það er allt öðruvísi stíll.
OK svo er það breyta texta skrá.
>> Áhorfendur: Ef þú værir fastur í Vim núna, hvernig we--
>> Rob BOWDEN: Það eru margar stillingar í Vim,
og það eru allt námskeið um nám Vim.
Þannig að ef þú skyldir vera í insert háttur í röð
að slá texta, sem þú getur slá það með ýmsum hætti,
en ég er hvernig þú færð í snertingu ham.
Eða fá út úr einhverju sérstöku ham sem þú ert í, bara flýja.
Og þú bash bara flýja til að fá út af einhverju hreiður stillingar í php.ini.
Bara OK, nú er ég aftur í venjulegri stillingu.
>> Og svo í venjulegri stillingu, tvípunkti.
Þú sérð það birtast á the botn.
Og svo q.
Svo q mun hætta ef þú hefur gert breytingar, sem I-- hef ég gert breytingar?
Ég hef gert breytingar virðist.
Þannig að ef þú hefur gert breytingar, verður það segja að þú getur sett upphrópunarmerki.
Ég ætla að kalla það Bang.
Svo er hægt að setja bann við bara hætta án þess að gera neitt,
eða ristill WQ mun spara og hætta.
Svo W almennt er að skrifa.
Svo skrifa skrána.
Ég get skrifað og hætta.
Eða þú gætir hafa bara QX skellur, q Bang bara
að komast út þaðan tillits um allar breytingar sem þú hefur gert.
>> Allt í lagi, svo nú skulum go-- getum búið skrár.
Við skulum byrja að fjarlægja skrár.
Og ég verð bara að henda í einn Quick Nýskipun, snerta.
Svo snerta foo.
Touch bar.
Touch Baz.
Ef ég LS, nú sjáum við að þessir skrá til.
Þeir eru alveg tóm.
Svo er snerta bara auðvelt leið einn, [inaudible].
Tveir, tæknilega bara að ástand það, uppfærir það tímastimplana.
Svo allir skrá sem þú býrð hefur a timestamp í tengslum við það.
Svo Baz var búið á 14 September á 16:21.
Það er nú 16:22, þannig að ef Ég snerti Baz aftur, við
sjá að Baz var mest nýlega breytt á 16:22.
En annars ég næstum aldrei líta á tímastimplana á skrá.
Svo sambandi, hér ég er bara að nota það að búa til sumir fljótur skrá.
>> Allt í lagi, svo nú RM er stjórn sem við þykir vænt um hér.
Og við getum Rm boo.
Segja fjarlægja reglulega tóma skrá boo.
Og við getum slegið y, og nú er það fjarlægir.
RM Baz.
Fjarlægja reglulega tómt skrá Baz og tegund n eigi.
Nú er ekki fjarri.
Svo bar og Baz enn.
Foo er farin.
GABRIEL: Halda að tala.
Rob BOWDEN: Great.
Svo pirrandi skilaboð hér, fjarlægja reglulega empty--
hvað ert þú að gera þarna niðri?
Fjarlægja reglulega tómt skrá.
Þannig að ef við viljum ekki að vera ómak við þessi skilaboð,
getum kastað í þessu -F merkja, og svo er það afl.
Og nú ef ég rm -F, það er ekki að fara að segja þú viljir fjarlægja þetta skrá.
Það verður bara að gera það.
Og LS, ég ekki sjá bar þar lengur.
>> Nú er að hugsanlega hættulegt stjórn.
Það hefur tilhneigingu til of slæmt.
Við munum koma aftur í annað hvernig það er hægt að fá mjög hættulegt.
Og við skulum búa sumir afleysingamanneskja möppu.
mkdir, annar stjórn.
Svo er mkdir stjórn sem gerir möppu.
Og nú með LS sjáum þessa fallegu ljós Blue hápunktur afleysingamanneskja möppu.
Ég get CD í hitastig.
Og ég get mkdir foo.
CD í foo. mkdir bar.
CD í bar.
>> Þannig að við sjáum að við getum auðveldlega fengið í sumir laglegur djúpt hreiður.
Nú hvernig eyði ég möppu?
rmdir.
Svo ef ég bara beint að reyna að RM, eins og við gerðum með venjuleg skrá,
RM bar er að fara að segir getur ekki fjarlægt bar.
Það er skrá.
There er a sérstakur stjórn fyrir fjarlægja framkvæmdarstjóra, eins konar.
Svo rmdir bar.
Nú bar er farinn.
>> OK, svo rmdir ég nota nánast aldrei.
Ástæðan being-- nú skulum gera reglulega skrá bar hérna.
Svo rmdir Boo.
rmdir.
Mistókst að fjarlægja foo.
Directory ekki tómur.
Svo þú getur ekki notað fjarlægja dir á a möppu sem hefur hlutina í það.
>> Svo þú hafa sumir valkostir.
Þú getur farið inn í þessi skrá, fjarlægja allt handvirkt, og þá koma út
og rmdir möppu.
Það hljómar vitanlega pirrandi.
Hvað ef það eru þúsundir skrár sem eru þarna?
Jæja, getur þú Rm *.
Við munum tala um * í annað.
Það þýðir í rauninni allt það.
En enn betra, svo RM -R.
Svo RM -r-- í fullt af samhengi, -R þýðir endurkvæma,
sem við munum tala um það endurkvæma hætti í nokkrar vikur.
En það þýðir í rauninni Traverse heild á þessa skrá
og fjarlægja allt.
>> Svo RM -R foo er að fara að segja niður í skrá foo?
Já.
Fjarlægja reglulega tómt skrá foo / bar?
Já.
Fjarlægja skrá foo?
Já.
Svo nú foo og allt innan þess hefur verið eytt.
>> Nú þegar er hægt að fá sérstaklega pirrandi when-- skulum snerta 1, Touch 2, snerta 3.
Gæti hafa a heild búnt af skrá.
Ef ég vildi, gæti ég búið þúsundir af skrám í hér.
Og RM -R foo er að fara vera frekar pirrandi.
Já, já, já, já, já, já.
Með a einhver fjöldi fleiri skrár sem þú fljótt sjá hversu mörgum sinnum
Ég þyrfti að skrifa já.
Jæja, við sáum rétt áður hvernig við getum losna við að þurfa að slá já, -F.
Svo mkdir foo CD foo Touch 1 2 3.
OK, svo RM -Rf foo er að fara að blindni fjarlægja foo alveg.
No hvetja.
No neitt.
Foo er farin.
>> Svo ég tilhneigingu til að nota þetta stjórn allan tímann.
Að því sögðu, það er a mjög hættulegt stjórn,
því ef ég gera eitthvað eins þetta, það mun ekki hvetja þig.
Það verður farin.
Og það gerist ansi oft, og jafnvel hærra stigi CS námskeið.
Stundum munum við sjá eitthvað þar sem einhver
segir að ég óvart RM okkar Rf-útg heima skrá og allar P setja mitt er farinn.
Og það er hrikalegt, en það er engin rusl getur.
Það er enginn er þar ekkert fyrir þig að sækja.
Það er bara farið.
Jafnvel verra væri eitthvað eins RM -Rf /.
Svo við ræddum bara að rót skrá.
Það hefur allt af skrá á tölvunni þinni.
Things hafa tilhneigingu til að fá frekar sóðalegur þegar þú fjarlægja hlutina eins LS,
og CD, og ​​öllum þeim.
>> Áhorfendur: Hver er munurinn milli RM, RF, og RM *
Rob BOWDEN: Svo RM * -
>> ALLISON: Spurning var hvað er munurinn rm, RF, og RM *.
>> Rob BOWDEN: Svo RM *.
Star almennt þýðir að öll Innihald þessa skrá.
Reyna að hugsa um annað leiðir að sýna stjörnuna.
Jæja, star reyndar almennt þýðir passa hvaða mynstur.
Svo ef ég er með skrá sem heitir dog1, snerta dog2, snerta CAT1, snerta cat2.
Svo LS * 1 er að fara að prenta CAT1 og dog1, því að stjarna er hægt að fylla
í with-- sá þarf að vera þar, en stjarna geta verið annaðhvort köttur eða hundur.
Það er villtur nafnspjald.
Það er orðið sem ég er að leita að.
Wild kort.
Eða ég gæti LS hundur *, og Ég er fékk að sjá dog1, dog2.
Þannig að þeir eru að skráningu skrár sem samsvara þeim tilteknu mynstri.
Þú getur notað LS á þennan hátt.
>> Ls * stjörnu passar neitt.
Svo það er að fara að prenta alla Innihald þessa skrá
Þar sem öll þau passa.
Það er ekki að fara að prenta neitt í efri framkvæmdarstjóra stigi.
Ef ég hef undir skrá, foo, og snerta 1 2 3-- svo nú ef RM * stjarna,
fjarlægja CAT1, cat2, dog1, dog2.
Get ekki fjarlægt foo.
Það er skrá.
>> Svo stjörnu stækkar allt skrár í möppu.
Svo tæknilega RM * er eins og að segja RM CAT1, cat2, dog1, dog2, foo.
En RM -Rf, tæknilega stjarna myndi ná hvað við viljum, en RM -rf--
ef ég fer út úr þessu skrá, RM -Rf afleysingamanneskja,
það er að fara að fara í temp og endurkvæmt fjarlægja allt.
>> Svo er stjarna aðgreindum í að það er skilið by-- Svo þessi hlutur
að ég er að keyra í, þetta sem er vekur mig fyrir skipanir
og þá framkvæmd og gera þá, ég kalla þetta skel mína.
Og svo þetta skel er sjálft program.
Og ef ég vildi, ég gæti keyrt í / bin / bash.
The skel er kölluð bash.
Og núna erum við tilkynningu eitthvað hefur lítillega breyst,
og það er vegna þess að mínar stillingar fyrir skel eru nokkuð mismunandi.
>> En núna er ég tæknilega gangi skel innan upprunalega skel mína,
og ég get lokað að Shell, og nú Ég er aftur að efsta þrepi skel mína.
Tilgangur segja sem is-- stjörnuna.
Svo stjarnan er eitthvað skilja bash.
Svo RM -Rf, -Rf fáninn er skilja bara RM.
Það veit að þegar þú standast -Rf sem þér
vilja það til endurkvæmt fjarlægja allar skrár án vekur.
Stjarnan er eitthvað skilið með bash að þegar þú segir rm *,
bash er ekki að fara að segja hey RM *, fjarlægja stjörnu.
Bash er að fara að segja að RM * fjarlægja CAT1, cat2, dog1, dog2.
Það er sjálfkrafa að fara að stækka allar skrár í möppu.
>> Og álíka er Tilde annað tákn sem bash skilur.
Þegar þú segir CD ~, bash stækkar að til þess að skrá heimili þínu.
Aðrar spurningar svo langt?
OK þannig að við erum að fara að byrja að fara fljótur.
>> Tab lokið.
Bara að kasta það út þar.
A einhver fjöldi af fólki sem gerir ekki átta sig á þessu til.
Svo ef ég tegund CD Dow, I vilt fara inn niðurhal.
Ég þarf ekki að slá nloads.
Ég get bara högg Flipi.
Svo það viðurkennir að Dow er forskeyti sem
passar ekki neitt annað í þessari möppu,
svo það mun ljúka það fyrir þig.
Nú get ég gengið inn í.
>> Ég líka að endurkvæmt.
Svo mkdir foo.
Skulum fara inn foo.
mkdir bar.
Svo fara aftur heim til mín skrá, get ég séð niðurhal.
Nú hitting flipann aftur, sjálfkrafa að fara að fylla í foo.
Það er eina möppu.
Hitting flipann aftur, sjálfkrafa að fara að fylla í bar.
Svo nú er ég í (~ downloads / foo / bar).
>> Þannig að þetta flipann lokið, þegar ég fékk að skrifstofutíma,
og ég er að standa yfir öxl einhvers,
og þeir eru að fara RM D-O-W-N-L-O-A-D-S, Ég er að deyja.
Bara flipann flipanum flipanum flipi.
Svo ákveðið að nota flipann.
Og álíka upp og niður, a einhver fjöldi af fólki
bara sem gerðist við aldrei hafa högg upp og niður.
Það verður að fara í gegnum fyrri skipanir, svo ef þú hleypur bara eitthvað,
og þú vilt að keyra það aftur, bara halda upp fyrr en þú færð að því.
OK.
>> Svo fljótur, nokkur annar hlutur.
Förum aftur inn hitastig.
Búum einhverjum skrám.
Svo hér, ég er bara fara að skrá niður nokkur orð.
hundur, köttur, meow.
Við skulum gera hundur, fiskur.
Svo nú er fulltrúi mjög gagnlegur skipanir sem þú
nota til að leita í gegn skrár fyrir tiltekið texta,
og tæknilega þú getur gert í raun flóknar tjáning fyrir það að passa.
>> Svo hér, ef ég grep, og hvað vill ég leita að?
Skulum segja að ég er að leita að ketti og Ég vil leita allra af þessum skrám.
Svo hvernig á ég að gera allar þessar skrár?
Star.
Svo í skrá eitt, ég hef köttinn.
Ég sennilega gæti hafa kallaði það eitthvað betra,
því það lítur út eins og línunúmer eða eitthvað.
En í skrá sem ég hef línu með kött.
Í skrá tvö I hafa línu með köttinn.
Svo nú get ég líta inn skrá eitt og sjá ó já, að skrá átti kött.
Tilkynning skrá þrjú var ekki samþykkt því kötturinn er ekki þar.
Ég get grep fyrir meow.
Eini skrá tveggja hefur meow.
>> Þannig að þetta er hægt að sameina, aftur, með -r, sem
eins og ég sagði áður oft þýðir endurkvæma.
Og svo ég get komið upp hér, grep -r fyrir hvaða dæmi of-- skulum breyta
þetta bara að kasta kött þar.
Svo grep -r fyrir hvaða tilvik af köttur Allan þessari möppu.
Og það mun endurkvæmt Leita Allir undirmöppum.
Svo í Baz, það er köttur.
Í Temp / 2, það er köttur.
Og í afleysingamanneskja / 1 það er köttur.
Svo er það að leita innan skrár.
>> Nú er einnig hægt að nota á Finna.
Og svo að finna er sérstaklega um leita að skrám með tilteknu nafni.
Svo skulum gera meira.
Skulum fara inn niðurhal.
Snerta dog1.
Touch cat2.
Touch cat_dog.
Touch catcat.
>> Þannig að ég vil að finna allar skrár með hundinn í nafninu.
Svo finna, og fyrir lengsta sinn sem ég aldrei mundi
hvernig finna unnið, uns ég loks lesa eitthvað sem gerði það svo skýr.
Svo finna, sjálfkrafa endurkvæma.
Þú þarft ekki að standast -R.
Svo finna punktur.
Við höfum ekki talað um punktur enn.
En punktur punktur alltaf þýðir ein mappa upp.
Dot þýðir alltaf núverandi möppu.
Svo ég gæti rm -r punktur í að sama hátt og ég get rm -Rf *.
Einhvern þeir ná sama.
RM -Rf punktur er að fara að fjarlægja allt núverandi möppu.
>> OK, sem ég vil ekki að gera það.
En finna punktur.
Svo endurkvæmt leita núverandi skrá, og nú allt
eftir þetta eru fullt af fánar sem þú nota til að útiloka hluti úr aftur.
Svo finna punktur skilar öllu því sem það getur fundið úr núverandi möppu.
Þeir eru allar skrár endurkvæmt leita.
Við munum sjá eitthvað af þeim í annað.
>> En ef þú ert að velta fyrir mér hvernig ég get að svo Command K minnsta kosti
í flugstöðinni minn í Mac hreinsar það.
Control L hreinsar almennt það fyrir hvers konar flugstöðinni.
Þú getur líka slegið skýr.
Og ef þú alltaf fá í skrýtin scenario--
það gerðist við mig núna time-- þar litum hvetja þína
eru allir boðberi upp, eða þú eru ekki fær um að sjá neitt
verið slegið þegar þú ert að skrifa, því stundum eins bakgrunnur litur er sett
það sama og forgrunnslitinn og nú er ekki hægt að sjá letrið.
Reset er eitthvað sem bara núllstillir þér að sjálfgefna svörtum bakgrunni,
hvítt framan, eða hvað þú stillir þá til.
>> Svo hvar vorum við?
Finna punktur.
Svo nú allt framhjá þessu lið takmarkar niðurstöður
eitthvað sem passar gefna mynstur.
Svo hér er ég vil leita allt með heitinu köttur.
Ég fékk ekkert.
Af hverju er það málið?
Jæja, ég er bara að leita að eitthvað með nákvæmlega nafn kattarins.
Ef ég vil leita eitthvað sem hefur einhverja mynstur og cat--
tilvitnanir eru tæknilega ekki nauðsynlegt, en ég ætla að henda þeim þar.
Svo nú finnur catcat vegna þess að það er það eina sem
hefur sumir handahófskennt mynstur eftir kött.
Ég get sett köttur *, og nú finna catcat, cat_dog, cat2,
vegna þess að þeir eru allt hlutir með köttinn í upphafi sem fylgt er eftir með því að neinu.
Þú getur sameinað þetta.
Ef þú vilt að leita að öllum C skrár að þú ert, þú gætir gert * .c.
Við höfum blah.c hér.
Svo er að A FINNA verk.
Hægt er að leita.
Það hefur a heild búnt af fánar um frekari takmarkanir.
Og einn á þeim, segjum -D.
Svo vanþóknun.
Ó, það er ekki það sem ég vil.
Ekki -D.
Tegund d.
Svo finna punktur - tegund d.
Svo er það sem bara gerði ég er að leita fyrir allar skrár í núverandi möppu
með a-- d stendur fyrir directory-- skrá tegund.
Þetta skilar alla framkvæmdarstjóra í núverandi möppu.
Og tegund F er allt venjulegur skrár, allur non framkvæmdarstjóra.
Svo er það bara dæmi um aðrar leiðir sem þú
getur takmarkað leitina annað en bara nafnið á skránni.
>> Það hefur verið 30 mínútur.
Fara enn.
>> ALLISON: Ég gola í gegnum.
Það verður allt í lagi.
>> Rob BOWDEN: Svo sumir annar hlutur.
Nú Bang, upphrópunarmerki.
Svo sem almennt means-- Jæja, við skulum sjá dæmi.
Svo! F, hvað er að fara að gera?
Jæja það virðist hafa endurtekin finna punktur -Type f.
Hvað um! G?
Sem bara grep -r köttur *.
Svo Bang þú getur notað til að endurtaka nýlega gert stjórn.
Svo ef ég gerð! GRE, það er að fara að koma aftur hlaupa skipanir sem hófst með GRE mest
nýlega.
>> Og þú getur séð allar þessar skipanir við sögu.
Svo saga.
Þetta eru allt skipanir ég hef keyrt í dag.
Og vel, það er ekki bókstaflega takmarkast við í dag,
en ég hef bara notað þetta tæki eins og í dag.
Það er heild þína á saga um bash skel,
nema það sker burt á einhverjum tímapunkti.
Áhorfendur: Hvað gerist ef þú gerir Saga [inaudible] stjórn og villa
í kjölfarið mun enn prenta the--
>> Rob BOWDEN: Já, ef það er villa í einni af þessum commands--
þannig að við skulum segja, það er óákveðinn greinir í ensku villa stjórn fannst ekki.
Enn birtist í sögunni.
Allt í lagi.
Aðrar spurningar um eitthvað?
Svo það er Bang.
>> Nú, í raun gagnlegt stjórn, maður.
Svo sem gefur þér Handbók fyrir tiltekið stjórn.
Svo skulum segja maður LS, svo þetta er að sýna mér ls.
Þar eru skrá innihald.
Og þetta er þar sem ég sé að það eru þessi mismunandi fánar sem eru fyrir hendi.
Þannig sjáum við að LS -L staðar Ef við vorum að lesa það. LS -l
gefur mér þennan fulla skráningu að skrá með hver á skrá,
stærð skrárinnar, breytta timestamp.
Svo er annað LS -A sem þú gætir raunverulega nota nokkuð oft.
-al algengast fáninn minn farinn á LS.
>> Svo -A, eftir það er a einhver fjöldi fleiri skrár en bara LS.
LS -A.
Hvað er sameiginlegt með öllum þessum skrám?
Þeir byrja með punkti.
Þannig að þetta er samningur í Linux sem skrár sem byrja með punkti eru falin.
Svo það þýðir bara að þegar við bara beint LS,
eða við erum að leita þessa skrá með Finder jafngildir eða Windows
Landkönnuður jafngildir, að við vil ekki sjá þessar punktur skrár.
Þeir menga bara mynd af hlutum.
Svo þeir eru falin nema þú sérstaklega
óska þá með eitthvað eins -a.
Svo ég get CD í .local, og ég sé að það er sjálft skrá með
a hluti mappa, og forrit og bla bla bla.
Svo punktur, skrár þeir eru bara falin.
>> OK, svo önnur mikilvæg.
ÉG hafa a par I getur sleppt.
Skulum bara alvöru fljótur tala um Skráin utanáskrift hluti.
Þannig að það er a heild flókið röð af hlutum sem þú getur gert með þessu,
en bara til að sjá þá, við skulum segja, echo.
Annar stjórn.
Really heimsk stjórn.
Allt það gerir er prenta það sem ég segi það til.
Svo echo halló.
Það echoed bara halló á skjáinn.
Halló heimur.
Echoes halló heimur.
>> Svo einn stjórn eða einn tákn sem bash skilur
er þetta meiri en tákn og sem er framleiðsla á skrá tákn.
Svo ef ég framleiðsla þetta foo, það er nú skrá
kallast foo, inni sem er halló heimur.
Svo eftir því að þegar ég echo halló heimur pípa í foo,
það var ekki echo Halló heimur.
Þess í stað var sett inn skrá foo.
Og annar stjórn bara að kasta á þig, kött.
Það er óákveðinn greinir í ensku þægilegur vegur til bara alveg listi the innihald af the skrá
þannig að ég þarf ekki að opna a texti ritstjóri að sjá það.
Svo innihald foo skrá eru Halló heimur.
Og ég gat köttur blah.c, innihaldið er þetta.
>> Aftur, eru þessar skipanir að gera ekki ætlast til að þú hafa þá utanbókar allt.
Hugmyndin er að þú hefur séð þá.
Kannski þú ert að vinna á eitthvað, og þú ert
eins og ég er veikur af opnun þessa skrá.
Ég vildi að ég gæti bara horfa á innihald raunverulegur fljótur.
Þú gætir gert það, þá líta til baka og segja ó ég
muna eitthvað eins sem er til, og það er köttur.
>> Svo það er að fara til að skrá.
Nú er það í raun ekki neitt gott dæmi um að lesa úr skrá ennþá.
Hvað er eitthvað sem tekur eitthvað frá staðall í?
Allir einfalt Linux stjórn?
Þegar við komum að henni, í nokkra vikur allir piece-- vel,
þessari viku þú hafa a stykki þar sem þú byrja að taka inntak frá notanda.
Og svo yfirleitt þú skrifar að inntak á lyklaborðinu.
Í stað þess að slá það inntak á lyklaborðinu,
þú getur í staðinn pípa í úr skrá þannig að þegar þú gerir Mario, ./mario,
pípa frá hverju skrá og það er að fara að keyra Mario program.
Ekki von inntak á lyklaborðið, í staðinn er það
bara að fara að lesa línur frá foo skrá.
>> Svo meiri en foo setur það inn að foo skrá, og minna en foo
tekur efni frá foo skrá og notar það sem inntak í þessu forriti.
Og bara til að sjá það, gætum við einnig echo foo bar Baz, og þá í stað þess einn
meiri en, við skulum gera tvo í foo.
Hvað þýðir það að gera?
Það Bætir bara í skrána.
Þannig að í stað taka eftir ef ég echo bla inn foo og þá kötturinn foo, er það bara bla.
Svo þegar þú framleiðsla til a skrá, það alveg skrifa of mikið þá skrá.
Ef þú vilt bara að bæta, tvöfaldur [? Röð. ?]
>> Og síðast er pípa.
Pipe Gets miklu flóknara, þar það tekur framleiðsla einnar skipunar
og straumum það inn í næsta stjórn.
Svo sumir sameiginlegur hlutur, saga.
Svo, ugh, ég vil ekki að líta á þetta.
Sýna mér allar skipanir í sögu mína þar sem ég grep-Ed fyrir eitthvað.
Nei, það er ruglingslegt.
Sýna mér allar skipanir sem ég finn.
Allar að finna skipanir ég alltaf hljóp.
>> Svo saga.
Nú Saga framleiðsla til The skjár í þessum lista yfir skipanir,
en ég vil ekki að útgang á skjáinn.
Stað þess að ég ætla að pípa það inn grep.
Svo skulum grep fyrir öllum tilvikum af finna.
Svo nú í stað þess grep taka inntak, í stað of--
grep er fær um að sinna eins input-- við erum nota grep örlítið öðruvísi hér.
Þannig að í stað þess að slá á lista yfir hlutir sem við vildum að leita
og sagði grep tekur sem inntak.
Þannig að ef ég bara grep finna, það bíður fyrir mig að slá það.
Svo köttur halló finna.
Halló.
Finna.
Tilkynning hvert skipti sem ég pikka finna er viðurkennt að ég slóst á Finna.
Þannig að í stað þessa, mun Leitarskilyrði fyrir finna.
>> Svo sagan er nú að fara til framleiðsla a listi af öllum skipunum.
Við erum að setja þessi framleiðsla, og við erum að fóðra það að grep,
og svo það er spúandi öllum tilvikum finna.
Ástæðan ég sagði að það myndi vera ruglingslegt er ef I-- það er samt ruglingslegt.
Ef ég grep fyrir grep.
Taka eftir það er ansi mikið alltaf sýnir skipa ég bara
hljóp því sem stjórn sig hefur grep inni af því.
>> OK, svo einhverjar spurningar um eitthvað?
Og ég ætla að flytja það yfir á þessum tímapunkti.
Vonandi er þetta gott Yfirlit yfir allar skipanir
að þú þarft ekki að hafa utanbókar, en þessir gera upp
a solid 95% af því sem ég gera á stjórn lína.
Hafðu líka í huga að stjórn lína sjálft, bash er forritunarmál,
og svo þegar þú færð niður á það, þú láti gera virkilega flóknar hluti.
Og svo hefur það hluti eins lykkjur og IFS og allar þessar
að þú ert að fara að venjast með forritunarmál þínum.
En það er út fyrir gildissvið þessa kafla.
OK, þannig að ekki spurning?
ALLISON: Ekkert?
GABRIEL: Ert þú að fara to--
ALLISON: Ég get gert það á minn ef þú vilt.
Við sjáum hvað gerist.
Rob BOWDEN: Off til Allison.
ALLISON: Woo.
Þú ert harður athöfn að fylgja, Rob.
Ert þú vilt að ég að skipta við þig?
Eða þú got, OK.
Ég ætla að reyna og ekki alveg vera eins langur þar.
Skulum sjá hvort þetta mun vinna eins og ég vil það til.
Kannski?
Haha!
Já.
>> Þannig að ég ætla bara að fara að mjög fljótt að fara gegnum breytur, lykkjur, conditionals,
og a lítill hluti á þýðanda.
Ef þú hefur einhverjar spurningar á hvenær sem er, vinsamlegast stöðva mig.
Þessir krakkar munu minna mig á að endurtaka spurningin ef ég gleymi,
en ætti ekki að vera svo slæmt.
>> Svo breytum, já.
Við höfum engan einn af þinn Klóra stykki hér.
Ég er viss um að flest ykkar, ef þú hefðir einhvers konar leik
sem þú bjóst með grunni, þú hefðir að halda utan um eitthvað eins skora,
eða tími, eða eitthvað svoleiðis.
Svo þeir björtu appelsína stykki sem við sjáum þarna
eru bara Scratch form breytur, og þú munt örugglega
vera með breytur Allan áætlunum þínum.
Ef þú ert ekki, ég er ekki í raun viss um hvað þú ert að gera.
>> En engu að síður, stór hlutur, skilgreina breytur.
Með C á hverjum breytu hefur hafa gerð lýst,
svo ég gaf þér mjög almenn einn efst.
Svo þú munt hafa þinn slá og þá hvað
þú ákveður að hringja breytu þína.
Þannig að í þessu tilfelli, tegund á breytilegum listanum þínum.
>> Við höfum þrjú dæmi.
Char sumir bekk, af A, sem er hvað
Ég er viss um að þú allir vilja að fá í þessum flokki.
Þú getur skilgreint margar breytur á einni línu
svo lengi sem þeir eru öll sömu tegund, sem er annað dæmi okkar þar
þar sem þú hefur þrjú breytur, x, y, og z.
Þeir eru allir fljóta.
Og þá getur þú líka, í þessari síðustu dæmi með int skora og númer
liða, þú getur frumstilla þá rétt þar.
>> Svo í miðju dæmi þar sem við bara float x, y, og z,
Þeir eru ekki frumstilla enn.
Þeir hafa ekkert gildi.
Eða þeir hafa sorp gildi.
Og ef þú reynir og nota þá, þýðanda mun æpa á þig.
Þú þarft að bæði lýsa og frumstilla breytur.
Þannig að í þessu síðasta, við erum að gera bæði.
Við erum að lýsa breytur af skora og fjöldi liða,
og við erum að virkja þá, gefa Them upphafsgildi þeirra um 7 og 4
hver um sig.
Cool.
Allir góður?
Ógnvekjandi.
>> OK, svo sumir samninga.
Ef þú krakkar hafa lesið gegnum stíl 50, þessir
eru bara hlutir sem við myndum eins og fyrir þér að innleiða í stíl.
Svo þroskandi nöfn.
Ef þú byrjar að hringja hluti bara x, y, og z, sérstaklega
eins og þú fá inn lengra forrit, þú ert
líklega að fara að rugla sjálfur og vera
eins og það er þessi breyta sem vísar til.
Ég hef ekki hugmynd um hvað þetta þýðir.
>> Þannig að ef það er ætlað til að halda a skora, kalla það skora.
Ef það er ætlað til að halda einhverjum svar eða leitt, gefa það a nafn eins og þessi.
Fyrir lykkjur, sem við munum fá inn í næstu glæru,
einn staf breytur eru í lagi.
Rob BOWDEN: I, J og K eru bara reglur fyrir fyrir lykkjur
sem allir ráð þá að vera kölluð i, j, og k.
Þú getur hringt them-- ég róður dálki eða röð kalla stundum
fyrir tvo hreiður lykkjur og það er einnig eins konar staðall.
En i og j er alveg skilið.
>> ALLISON: Já, ég og J þú ert algerlega fínn.
Til glöggvunar eins í sumum P stillir,
það gæti skynsamleg að hafa fleiri lýsandi hlutir í það bara
að halda utan um það.
En ég held að i, j, og k ég held mikill meirihluti af okkur öll notkun.
>> Rob BOWDEN: Með þessum samninga, svo er stíll mikilvægt.
Það er eitt af fjórum ásum sem þú ert metin,
og það er svo auðvelt að fara bara yfir P þína sett í lok og tryggja
að það eru ekki stylistic mistök.
Svo tryggja þú ert að tabbing rétt.
Gakktu úr skugga um breytur eru nefnd.
Láta sumir athugasemdir.
Það er mjög auðvelt að fá þær stig.
Þú þarft ekki að hugsa um neitt í því skyni að fá þær stig.
Þú þarft ekki að reikna neitt út.
Það er bara að gera það líta falleg.
>> ALLISON: Í raun, við hafa stíl 50, sem
mun segja þér hvar þú ert Messías upp ef þú ert að Messías upp á stíl
og mun segja þér nákvæmlega hvað þú þarft að laga og hvernig þú þarft að laga það.
Það er líka bara gott að nefna að það er stefna námskeið
að ef þú ert á skrifstofunni klst og númerið þitt er sóðaskapur,
getum neita að hjálpa þú þar til það lítur betur.
Svo byrja út rétt, halda samræmi stíl,
þú ert líka bara að fara að gera lífi þínu í heild mun auðveldara þegar
þú ert að reyna að fara í gegnum kemba.
Ef þú ert að reyna að reikna út þar sem þú ert að missa a hrokkið Brace
og þeir eru út um allt, þú ert bara að gera eigin lífi þínu erfiðara.
Svo vera í samræmi við stíl.
Ég lofa að það mun gera líf þitt auðveldara.
Það verður að gera líf okkar auðveldara.
Allir vilja vera miklu hamingjusamari.
Og það er það sem þú vilt.
GABRIEL: einkunn þitt verður hærri.
ALLISON: Já, og einkunn þín.
Ef TF þinn er eins og þú, tilhneigingu til að vera hagstæð.
Allt í lagi, og þá bara Annað lið hér.
Samhljóða initializations.
Svo eins og við sáum, geturðu lýst því yfir og frumstilla hlutina.
Margar breytur á sömu línu.
Eitt sem við viljum þig ekki að gera er að lýsa nokkrar breytur
og ekki frumstillt þá á sama línu sem þú ert að Frumstilli aðra.
>> Svo ef það gerði ekkert vit af neinu tagi,
við höfum dæmi um hér þar sem við erum að lýsa ints
í breytur ársfjórðunga dimes og smáaurarnir,
en fjórðu og smáaurarnir hafa ekki upphafsgildi.
Við höfum ekki frumstilla þá, en rétt í miðju það
við frumstilla þegar dimes 0.
Svo annað hvort gera ársfjórðunga dimes, smáaurarnir.
Eða gera fjórðu jöfn 0.
Dimes jöfn 0.
Smáaurarnir jafngilda 0, eða hvað þessir fyrstu gildi eru.
>> Stór hlutur með stæl, að vera stöðug.
Hvenær í vafa, að vera stöðug.
En fylgja stíl fylgja okkar líka.
Cool.
Allir góður þarna?
>> Áhorfendur: Hvar er í stíl fylgja?
ALLISON: The stíl fylgja er on-- hvað er website?
>> GABRIEL: Ég held að það er manual.cs50.net/--
ALLISON: Style?
>> GABRIEL: Style.
Yep.
>> ALLISON: Já.
Svo spurning, hvar er stíll 50.
manual.cs50.net/style.
Já?
>> Áhorfendur: Ef við erum að skilgreina breytur, er það í lagi
ef við setjum eins [inaudible] eins INT skora og þá INT markmið.
Svo myndir þú segja að nú höfum við fékk að skilgreina þær saman?
>> ALLISON: Svo ætti spurning, þú hafa umfram kóða
þegar þú ert að skilgreina breytur eins og int skora og
í næstu línu int leik?
Rob BOWDEN: Það eru örugglega tilvikum þar óþarfi númerið er slæmt.
Ég myndi ekki telja sem óþarfi kóða.
Ég næstum aldrei lýsa margfeldi breytur á sömu línu ever.
Og ef eitthvað, er það vegna þess að venjulega læt ég einhverskonar athugasemd
útskýra hvað breytan er fyrir.
Svo ég segi INT skora skástrik skástrik.
Heldur utan um hvað sem er.
Í algjöru slash slash.
Svo er það mikill Grosser á þann hátt að setja þau öll á sömu línu.
Ég bara aldrei setja þá í sömu línu.
>> ALLISON: Mér finnst eins og það er persónulegt val á þessum tímapunkti.
>> Áhorfendur: Er að fara í fyrir lykkjur og efni líka?
Rob BOWDEN: Eins inni?
Eins int i jafngildir 0 komma lengd jafngildir eitthvað?
Að þú þarft ekki val.
Með fyrir lykkjur á frumstilling part-- svo þú gætir hafa bara séð
int i jafngildir 0 semíkommu ég minna en hvað semíkommu ég auk plús.
Það int i er 0, tæknilega þú getur líka
gera það sem við sáum áður með kommum setningafræði.
int i er 0 kommum j jafngildir 3 komma K er 5.
Þú ert ekki með val til að kljúfa að upp í mörgum línum,
og það er staðall.
Sjá það að það er allt í lagi.
ALLISON: Awesome.
Jæja, þægileg segue í lykkjur.
Svo já, hér höfum við nokkur dæmi lykkjur sem þú krakkar sáu í grunni.
Og auðvitað allt þetta getur bara unnist í C.
Og þeir leyfa grundvallaratriðum þér að endurtaka sumir hluta kóða
þar ákveðnum skilyrðum er fullnægt, sem við munum
fá inn hægri eftir að tala um lykkjur með conditionals.
>> Þannig að við höfum þrjár megintegundir.
Fyrir, á meðan, og gert á meðan, sem munum við öll fara í gegnum núna.
Svo er fyrsta fyrir lykkjur.
Svo fyrir einhverjum ástandi, framkvæma þessa blokk af kóða.
Við höfum þetta flott Little skýringarmynd hér neðst.
En í grundvallaratriðum þú hefur í fyrir þinn, að fyrstu línu,
þú ert að fara að frumstilla breytur.
>> Svo eins og við ræddum um, ég er sem jafngilda 0 eða i er jafnt og 10.
Hvað sem þú þarft að breytu að vera það er
að fara að frumstilla þar, lýst og frumstilla að einhverju gildi.
Svo þá höfum við nokkur ástand sem er að gerast
að stöðva okkar breytu gegn eitthvað.
Svo er að ræða dæmigerð tilfelli þar kannski þú vilt að þessi hluti af kóða
að framkvæma fimm sinnum.
Þannig að við myndum hafa int i er 0, og við vilja það að vera þegar ég er minna en 5.
Svo að ástand er bara að fara að athuga að í hvert skipti.
Ef því ástandi metur að satt, það er
fara að keyra kóða sem er nákvæmlega hvað þetta litla skýringarmynd birtist.
>> Og svo keyrir það það.
Það endurnýja breytu, sem er það sem við sjáum
í síðasta hluta fyrir okkar lykkja frumstilling þar.
Svo það verður bara að halda að gera þetta þar sem skilyrði er ekki uppfyllt,
og þá mun það hætta lykkju og halda áfram
flytja á við restina af forritinu.
Allir góður þarna?
Cool.
>> Svo er hér dæmi, mjög svipuð til eitthvað sem ég talaði bara um.
Þannig að við viljum bara að prenta þetta er CS50 10 sinnum.
Svo þú sérð hér höfum fyrir okkar, og þá erum við
frumstilla breytu ég að vera jafn 0.
Ástand okkar er að haka að það er minna en 10.
Svo meta true þegar við fyrst byrja, og þá uppfærir breytu okkar
hvert sinn sem það framkvæmir í raun og prenta út þetta er CS50.
Og því verður stöðvað eftir 10 sinnum.
Cool.
>> Svo á meðan lykkjur eru upp næst.
Og eins og þú sérð hér, höfum við bara sumir meðan þetta condition-- spurning?
>> Áhorfendur: Hvernig get ég hoppað reyndar bara ekki eitt númer,
en tvær tölur [inaudible] Ég plús plús plús?
>> ALLISON: Svo spurningin var hvernig hægt uppfæra breytu þínum um meira en einn
í einu.
Svo ég plús plús mun uppfæra í hvert skipti.
Ef þú vildir að uppfæra það með tveir, gætir þú gert ég plús jafngildir 2.
>> Rob BOWDEN: Hefur þú séð plús jafngildir í fyrirlestri enn?
>> Áhorfendur: [inaudible].
>> ALLISON: Það er í raun að sama og ég jafngildir ég plús 2.
Svo það er að fara að taka það og uppfæra hana með tveimur í hvert skipti.
Plus jafngildir er bara eitthvað við köllum nokkur dæmi um setningarleg sykur.
Rob BOWDEN: Já, þeir eru til fyrir nánast allar tölur rekstraraðila.
Svo ég sinnum jöfn myndi tvöfalda fjölda.
J skipta jafngildir 3 er það sama sem j jafngildir j deilt með 3.
>> ALLISON: Eða mínus jafngildir 2 myndi lækka i um tvo í hvert skipti.
Rob BOWDEN: Jafnvel Mod Jafnt.
Þú hefur ekki séð Bita rekstraraðila, en caret jafningjar og ampersand jafngildir,
allar þessar til.
>> ALLISON: Svo mikið af sinnum, sérstaklega með fyrstu tveimur þinn P setur,
þú munt að öllum líkindum hækka um einn, svo ég plús plús, J plús plús
eru allir hlutir sem þú ert að fara að jafnaði vera með.
En sem uppfæra ástand er fyllilega stjórn þinni.
Þú getur uppfært það með hvaða þrepum eða í hvaða hátt sem þú ákveður að.
Kannski þú viljir jafnvel það að vera a handahófi tala stundum.
En já, það eru hellingur af hlutir sem þú getur gert við það.
Þú ert ekki bundin við i plús plús.
>> Rob BOWDEN: bara svo þú veit það er til, það er einnig
er í öðru formi, auk auk i.
Svo ef þú ert alltaf að leita á netinu og gerast til að sjá plús plús i,
ansi mikið þýðir það sama.
ALLISON: Cool.
Gott?
Ógnvekjandi.
Svo á meðan lykkjur.
Mjög svipuð.
Þú hafa sumir ástand.
The aðalæð hlutur til tilkynningar hér er í stað þess að þurfa
þrjá hluta að setja upp, við höfum einn.
Við höfum bara sumir ástand sem er verið að athuga.
Og á sama hátt, svo lengi sem það skilyrði metur að satt,
númerið þitt er að fara að keyra.
Og ef það er ósatt, það mun segja, færa
á næsta hluta af forritinu.
Þannig að þetta er góður af like-- hvað er gott dæmi um að haka
fyrir sumir venjulegum ástand?
GABRIEL: Þó satt.
ALLISON: Þú gætir gert meðan satt.
Ja, 1 er jafnt og 1.
>> Rob BOWDEN: Þú getur gert while-- bara í stað þess að nota a for lykkju,
þú getur alltaf kóða a fyrir lykkja í while lykkju,
svo ég er stærra en 0 eða Þó að ég er minni en 10.
>> ALLISON: Awesome.
Og þá höfum við gert á meðan lykkjur, sem er frábært fyrir notendur fullgildingu þar
þú vilt fá eitthvað frá notandaupplýsingar, sjá hvort það er í gildi,
og svo áfram þaðan.
Svo er einn af þeim hlutum til að vita með gera á meðan er að það er að fara að framkvæma,
og þá mun það aftur framkvæma Ef þetta skilyrði er uppfyllt.
>> Svo sennilega besta leiðin til að gera þetta er bara að sjá dæmi hér.
Svo eins og ég nefndi að ofan, notanda löggilding er virkilega useful--
eða gera endrum eru virkilega gagnlegt með notandi löggilding.
Þannig að þetta er bara að fara að koma aftur hvetja sumir notanda
þangað til þeir slá jákvæð tala, sem gæti verið gagnlegt fyrir P þitt stillt
í þessari viku.
Og svo í þessu tilfelli, þegar við keyra í upphafi þessa áætlun,
það er að fara að prenta slá jákvæð tala.
Það er að fara að fá smá inntak frá notanda,
og þá er það að fara að athuga að inntak gegn því skilyrði
að þú hefur stillt fyrir það.
>> Þannig að í þessu tilfelli það er að fara að athuga.
Það er að fara að segja, OK, er inntak okkar neikvæð,
eða er það 0 eða neikvæð, sem væri ógild.
Svo þá myndi aftur hvetja.
Spurning?
>> Áhorfendur: Er þetta sama þá sem meðan lykkja ef þú afritað bara kóðann
og setja það [inaudible] meðan lykkja?
>> ALLISON: Svo spurning var myndi þetta vera það sama og bara stund
lykkja ef við vorum bara afritaðu meðan lykkja ofan.
Svo í þessu tilfelli, á meðan lykkja er fara að athuga ástand fyrst.
Þannig að í þessu tilfelli, ef við reynt að skrifa eins bara while lykkju,
það myndi segja að á meðan inntak er minna en eitt.
En við höfum ekki inntak fyrir það.
>> Áhorfendur: Ef þú [inaudible] meðan lykkja þ.mt þennan kóða,
en þá brugðist kóðann ofan while lykkju líka.
Þú hefðir bara þennan kóða [Inaudible] meðan lykkja.
ALLISON: Það væri það sama, já.
Svo þú gætir bara write-- stað þess að hafa do-- já.
GABRIEL: En það er meira glæsilegur.
ALLISON: Já, það er meira glæsilegur.
Hægt er að fá inn í hönnun og whatnot, en já, þú getur algerlega gert það.
Allar aðrar spurningar?
OK, flott.
>> Þannig að við höfum talað mikið um aðstæður með öllum þessum lykkjur sem við höfum,
þannig að við erum í raun að fá inn aðstæður í Boolean tjáning.
Aftur, þú nota þetta í C, svo bara svona breyting
frá meiri grafískur tengi á reyndar erfðaskrá.
>> Cool, svo stór einn, ef.
Grundvallaratriðum gerir bara okkur að kynna sumir rökfræði þáttöku og prófun
Sys aðstæður.
Svo í þessu tilfelli, OK, er n meiri en 0?
Já það er, þannig að þú getur keyrt þetta.
Það er bara að haka sumir ástand sem þú hefur
sett, sem ég held að við erum allir ánægð með að haka aðstæður.
Cool.
Þannig að ef annað er hitt þinn, þú getur sagt í lagi, ef þetta er satt,
gera þessa fyrstu hlutur.
Annars vil ég að þú Sjálfgefin og gera eitthvað annað.
Eins og í þessu tilfelli, að velja annað hvort a jákvæð tala eða neikvæð tala.
Þú hefur aðeins tvo valkosti.
Þú þarft það til að framkvæma án tillits Um hvað notandi inntak þinn.
Svo er hægt að segja vel, er það meiri en 0?
Cool.
Prenta jákvæð tala.
Ef það er ekki, prenta a neikvæð.
Allir góður?
>> Og svo er eitt að viðurkenna að ef ef skilyrði er uppfyllt,
else mun aldrei líka framkvæma.
Aðeins einn af þessum mun framkvæma í einu.
Svo það er viðskipti burt.
Þú færð ekki að hafa bæði.
Þú hefur annaðhvort fyrsta skilyrði.
Þú ert annaðhvort ef eða annað, ekki bæði.
Sem síðan er hægt að gera hlutina enn flóknara,
því þú getur gert ef, annars það, og þá annað.
Þannig að í þessu tilfelli, við hafa þrjú skilyrði.
Og aftur, aðeins einn þeirra er að fara að enda upp tilvera framkvæma.
Svo þú gætir verið að spá Jæja, hvað ef þú
hafa eitthvað sem geta mætt tvö af þessum.
Kannski hvað sem þú ert að inputting mætir bæði ástand
fyrir ef og else ef.
Eina sem er að fara að keyra
>> ALLISON: Um leið og hún finnur eitthvað að hann uppfylli skilyrði fyrir því að
metur að satt, það er það það er að fara að hlaupa og ekkert annað.
Þannig að ef þú hefðir er þetta númer milli 0 og 5 fyrir fyrsta þinn,
eða er þessi tala á milli 3 og 5 fyrir annars ef hluta,
og þú skrifaðu number-- Ég sagði 0 og 5 and-- 4.
Það er að fara að lemja á fyrsta.
Það er að fara að segja OK, þetta tala er á milli 0 og 5.
Framkvæma og fara.
Það mun aldrei högg því annað valkostur.
Cool?
Ógnvekjandi.
>> OK við höfum einnig skipt yfirlýsingar ef það þú vilt fá enn more-- eða hryggur,
rofi er næst.
Ég er að fá á undan mér hér.
Aftur, margfeldi ef blokkir Hvar sem ég sagði bara
er um leið og þú finnur ástand sem er fullnægt og ef annað ef annað,
það fer.
Ef þú þarft til að athuga margar hlutir, þú ert
fara til að vilja nota þetta vegna þess það mun athuga hvert skipti hér.
Þannig að þetta mun keyra í gegnum og ef það er stærra en eða jafnt og 90,
það er að fara að prenta það.
Og það mun keyra í gegnum og athuga hvert einasta einn af þessum.
>> Áhorfendur: Þannig að þetta væri meira þrjótur en [inaudible].
Myndi þetta vera eins [inaudible]?
>> ALLISON: Spurningin er myndi þetta vera þrjótur eða finnst þér þetta ekki það sem þú vilt.
Það fer alveg hvað þú vilt frá forritinu.
>> Áhorfendur: Ég meina eins og ef þú setur 90 í.
ALLISON: Ef þú setur 90--
Áhorfendur: [inaudible].
GABRIEL: Þú ert að fara að fá tvo hluti.
ALLISON: Þú ert að fara að fá tvo hluti.
Já, tveir.
>> Rob BOWDEN: Tveir?
>> ALLISON: Nei
>> Rob BOWDEN: Fjórir.
Ef þú setur 90, það er að fara að segja þér fékk A, þú got a B, þú got a C,
þú got a D.
>> Áhorfendur: [inaudible].
ALLISON: Hægri.
Svo ég fer eftir því hvað þú vilja frá þér program.
Stundum þarftu að athuga margar hluti.
Þú munt fá miklu dýpra í það góð hönnun er eins og þú ferð fram.
The mikilvægur hlutur til grein fyrir er að þetta
mun athuga öll fjögur skilyrðin hér.
En ef þetta væri ef annað ef annað Ef annað, það myndi högg því fyrsta tilfelli,
það myndi prenta þú fékk A og vera.
>> Rob BOWDEN: Jafnvel ef við ákvað að breyta þetta ef
og meira en eða jafnt og 90, ef og hærra en eða jafnt og 80,
og minna en eða jafnt og 89, ef n stærra en eða jafnt og 70,
og n er minna en eða jafnt og 79, svo sem mun vera rétt.
Það mun gera það sem við viljum, en það eftirlit enn hvert einasta það.
>> Svo en í fyrra dæminu, ef við slá 90 með bara ef annað ef annað ef,
og við inn 90, þá það er að fara til að leiðrétta.
Það mun athuga fyrst einn, prenta þú fékk A,
sleppa öllu, vegna þess að það þegar fundið einn sem virkar.
Öll mál eru ósamrýmanlegir byggt á ef annað ef annað ef.
Svo það verður keyrt á fyrst ef, þá er það gert.
Það mun fara til the endir.
>> En ef við breytum þetta að vera það sem ég var
að segja með minna en eða jafnt og 89.
Það er að fara að athuga fyrsta.
Það verður að prenta.
Það verður að athuga seinni.
Það er ekki að fara að prenta.
Athugaðu þriðja einn.
Ekki fara að prenta.
Athuga fjórða einn.
Nú að fara að prenta.
Svo í því tilfelli, að annað ef útgáfa, þar sem þessir tilvikum
eru ósamrýmanlegir, það er betri nýtingu ef annað ef annað ef,
vegna þess að það er að fara að hafa færri athugunum á skilyrðum
en þessa útgáfu.
ALLISON: Awesome.
Svo annar hlutur sem við getum gera er skipta yfirlýsingar.
Grundvallaratriðum skipta yfirlýsingu tekur í sumum breytu,
í þessu tilviki það er n, og ákvarðar hvaða mál að framkvæma.
Svo er þetta líka ein þar sem mál þín ætti að vera eins konar ósamrýmanlegir.
Þannig að í þessu tilfelli, ef Við fáum einn, það er
fara að passa hvað það variable-- hvað gildi á n
er að einn af þessum tilvikum, þannig 1, 2, eða 3, og prenta út viðeigandi línu.
>> Og svo ef þú tekur eftir hér, við höfum líka sjálfgefið,
sem þú getur af álítið annað þinn.
Þannig að ef þú velur eitthvert annað númer Að auki 1, 2, og 3 í þessu tilfelli
það er bara að fara að prenta ógild.
Ákveðið hvenær á að nota IFS móti ef elses móti skiptir er að fara
að vera eitthvað sem þú krakkar vilja sjá hönnun vitur eins og þú byrjar að skrifa
flóknari forrit, og það er enginn harður og fljótur reglur
á hvenær á að nota þær.
Það fer alveg context.
>> Rob BOWDEN: Og bara að kasta út þar
þar sem það er meira þægilegt kafla.
Rofar, þeir hafa tilhneigingu til að be-- svo þú ert takmarkaður
í fjölda leiðir sem þú getur notað þær, því IFS,
ástand getur verið ansi veginn allt sem þú vilt.
Með rofa tilvikum verða að vera tölur,
eða tæknilega þeir geta verið stafir, en stafir, eins og við munum sjá, eru bara tölur.
Svo þeir verða að vera tölur, en rofa eru í raun hagkvæmari en ef
annars ef annað ef, vegna þess að jafnvel taka dæmi before-- vel,
einkunnar dæmi virðist gott.
>> Jæja við skulum segja hér, við gerum í staðinn þetta sem ef annað ef annað ef atburðarás.
Svo ef n jafngildir jafnt og 1, prenta þú sóttir lágt númer.
Ef annað hvort n jafngildir jafngildir 2, þú sóttir miðlungs númer.
Annars ef jafningja er 3, hár.
Else ógild.
>> Svo skulum segja að væri atburðarás okkar.
Svo skulum segja að við séum að slá inn 4, þannig að við reiknum ógild.
Leiðin að ef annað ef annað Ef nálgun er að fara að vinna er
athugar fyrsta skilyrði.
Það er ekki uppfyllt.
Þannig að við athuga annað ástand.
Það er ekki uppfyllt.
Athugaðu þriðja ástand.
Ekki sáttur.
Svo förum við í annað og prenta ógild.
>> Leiðin Rofatengin verk er það safnar niður
í það sem við erum að fara að hringja í stökk borð.
Meginhugmynd vera að þegar þú slærð inn 4,
það getur strax farið að sjálfgefið.
Það þarf ekki að athuga er ég að ræða 1?
Neibb það er það ekki.
Case 2?
Nei.
Case 3?
Nei.
Default.
OK, þetta verður að vera þar sem ég vilja, og þá framkvæma það.
Nei, stökk það strax til vanræksla.
Eða það ég inn 2, það er strax að fara að fara á 2
án þess að þurfa að fara í gegnum 1. tilfelli.
>> Svo á þann hátt, raunhæft nú á dögum að er
ekki það mikið af skilvirkni ábati.
Venjulega tölvur eru nokkuð hratt, og það er ekki það mikill.
En það er mál sem rofar eru hraðar.
Ef þú ert virkilega að reyna að hagræða, nota rofi.
>> ALLISON: Cool.
Og þá höfum við ternary rekstraraðila.
Þannig að ég veit að ég nefndi áðan orðið nokkur dæmi um setningarleg sykur.
Svo það er bara það sem gera númerið þitt miklu meira nákvæm.
Þannig að þetta er eitt af þeim tilvikum.
>> Svo ternary rekstraraðila spurningarmerki ristill eins og við sjáum í línu streng
s jafngildir n meiri en 100 spurningarmerki hár ristill lágt.
Svo í rauninni hvernig þetta virkar er það sem n meiri en 100 er ástand.
Svo ég held að það er hægt að gera skilningarvit.
Það er eins og að spyrja spurningu.
Það er að segja ó, er n meiri en 100.
Hver veit?
Og ef það metur að satt, það er að fara að gefa þér
The fyrstur hlutur sem er skráð þar, sem er hátt.
Annað það er að fara að gefa þér lágt.
Þannig að þetta er bara mjög einföld og árangursríkari leið til að gera eins og að ef annað.
Það er allt þetta er.
>> Og ef við vorum að skrifa þetta Sem ef annað skilyrt,
það myndi vera ef n er meiri en 100, aftur hár.
Else, aftur lágt.
Þetta er bara miklu meira nákvæm leið að skrifa það.
>> Rob BOWDEN: Svo þetta tiltekna dæmi er alltaf þegar þú ert að gera eitthvað
eins og þetta, þetta er að venju þar sem ég nota ternary mjög oft.
Þannig að við höfum ekki talað um umfang enn, en ég hata að sjá band s semíkommu.
Ef n er hærra en 100, s jafngildir hátt.
Else, s jafngildir lágt.
Svo að mynstri, þessir fimm línur af kóða bókstaflega 100% af þeim tíma
hægt að flytja inn í það var þar upp með ternary.
Svo ternary, ein lína af kóða.
If annað, fimm.
Það er dæmi sem ég benda út hvert einasta skipti.
Þetta myndi frábær staður fyrir ternary rekstraraðila.
Það er svo hreint.
En fólk hafa tilhneigingu til að aldrei nota það.
>> ALLISON: Taktu það burtu Gabe.
>> GABRIEL: Svo nú þú krakkar allt lært í fyrirlestri í þessari viku
að allt í tölva er tvöfaldur, ekki satt?
Rétt eins og lampar hér.
Þú getur verið annað hvort kveikt og slökkt.
Og eftir allt, ég meina bókstaflega allt.
Sumar tölur og stafir, og strengir, og jafnvel kóða sem þú skrifar þegar
það fær saman við vélina kóða og eitthvað svoleiðis,
svo það snýst allt um að 0 og 1 ".
>> Og svo þegar við erum að fást með heiltölur sem
er eitthvað sem er tæknilega mjög einfalt, við ættum að vera fær um að gera efni
eins og að bæta þeim, sem er sennilega eitt af einföldustu hlutum
þú getur gert til að tvær heiltölur, ekki satt?
Svo viðbót og frádráttur virkar bara eins og það virkar í tugatölur,
nema hér það er tvöfaldur, ekki satt?
Svo það er í tvíundarkerfinu.
Svo bæta við 1 plús 1.
Sem gefur 0 og 1 ber yfir.
Og bara að halda að gera það, svo nú kemur meira áhugaverð spurning.
>> Við vitum hvernig á að tákna allar jákvæðar heiltölur í tölvunni,
en við skulum gera þetta æfing.
Þykjast þú krakkar eru allt í 1960 eða eitthvað að reyna að búa til tölvu,
og þú þarft að koma upp a leið til að geyma mínus 1,
til dæmis, eða mínus allir heiltala fyrir þessi mál.
Hvernig myndir þú gera það?
Einhverjar hugmyndir?
Bara henda neinu á mig.
Já?
>> Áhorfendur: [inaudible] tilnefna sérstakt ef þú [inaudible].
>> GABRIEL: Hægt er að merkja a sérstakt bita, sem verður að vera 0 eða 1.
Segjum einn ef það er jákvætt og 0 ef það er neikvætt.
Og þá the hvíla af the hluti er bara að geyma fjölda.
Cool.
Svo er það mjög góð hugmynd.
Við höfum, ég veit ekki, 200.
Og ef fyrsta hluti er kveikt á, þá er það plús 200.
Ef það er slökkt, er það mínus 200.
Cool.
>> Það er aðeins einn lítill vandamál með þetta,
sem er ef við reynum að summa það upp.
Svo ímynda við höfum 11111 hér, og við erum því þetta með 00.100 hvað sem er.
Ef þessir tveir eru jákvæð, það er allt í lagi.
En svo ef einn af þá er neikvæð, eins
skulum segja að þetta hluti hér er sá sem er ábyrgur
for-- Ég ætla að gera separate-- svo þetta þýðir að þessi tala hér
er jákvætt.
Þetta eitt þýðir að þetta tala hér er neikvætt, ekki satt?
>> En svo þegar þú ert fara að summa þær, þú
þurfa if yfirlýsingu segja ó ef þetta er 0,
þá summa mín verður eitthvað öðruvísi, ekki satt?
Þannig að það er örlítið meira snjall leið til að gera
það, sem er kallað Tvær í viðbót.
Svo í rauninni það sem við gera er að við skilgreina mínus 1
að vera málið að ef við bætum allt að 1 gefur okkur 0.
Leyfðu mér að endurtaka það.
Svo skulum segja að þetta hér er 1.
Hvað er það sem náttúrulega í jákvæðra heiltalna
bætt við það gefur okkur 0?
Hvað ef við reynum að bæta það að þetta númer?
Við erum að fara að have-- OK, þannig að við skulum bæta við.
Við ætlum að hafa 1 plús 1 er 0, og þá ber það yfir.
Og svo við erum að fara að fá 0 aftur.
Ég ætla að fá rugla.
Og þú ert að fara að fá 0 og 0 og 0 og 0 og 0 og 0.
Fullt af 0 er.
>> Á allra síðustu einn, við erum ekki að fara að vera fær um að bera það yfir,
því skulum segja að við erum aðeins að takast með eitt bæti, svo að aðeins 8 bita.
Svo hvað tölva gerir sjálfgefið er bara gleymir um það [inaudible],
OK?
Svo er þetta það sem er kallað Þau tvö í viðbót.
Við skilgreina einfaldlega mínus 1 til vera hlutur hér að ef þú bæta við að í 1
myndi gefa þér 0.
Og það er ansi kaldur vegna þess að við gerum ekki raunverulega
þarf seint að innleiða aðra tegund af summu
eftir því hvort það er a neikvæð eða jákvæð tala.
Er að skynsamleg?
>> Svo eitt sem við gerum hér í því skyni að umbreyta
milli jákvæð og neikvæð heiltala er þá sem við flettir allt,
og þá erum við að bæta við 1 til að tala.
Ef þú reynir að gera það sjálfur á stykki af pappír,
þú ert að fara að sjá að vit.
En ef ég tek þetta númer hér, þetta er fimm.
Svo ef ég fletta allt hér, svo 1, 1, 1, 1, 1.
Flip, flip, Flip.
Og svo ég bæti við 1 til þess.
Ég ætla að hafa nákvæmlega mínus 5.
OK?
>> Þetta gerir konar vit vegna þess að ef þú reynir að summa þetta með fjölda
sem við höfðum áður, sem was-- skulum fletta þessu aftur.
Það var 101 og hellingur af 0 er.
Ef þú reynir að bæta þessum tvær tölur saman,
þú ert að fara að hafa nákvæmlega 0.
OK.
Einhverjar spurningar?
>> Áhorfendur: [inaudible]
>> GABRIEL: Hvað meinarðu?
>> Áhorfendur: Neikvætt að jákvæð [inaudible].
>> GABRIEL: Nei, þú flettir og þú bæta við 1 alltaf.
Já.
OK, svo stafir kóðuð einnig tvöfaldur.
Við höfum ASCII töflunni, eins og þú einnig sá í fyrirlestri, ekki satt?
Svo það er í grundvallaratriðum a kortlagning af hlutum.
Og hér er ég get ekki leggja áherslu nóg að fyrir tölvu, og 65
eru bókstaflega það sama.
Svo ef ég skrifa eitthvað eins bleikju c jafngildir a, ég gæti á sama tíma
bara skrifa 65 hér, og það væri nákvæmlega sama, OK?
Það er engin munur neinu tagi.
>> Við hafa tilhneigingu yfirleitt að setja stafir í breytur af tegund.
Char, ekki vegna þess að þeir eru í raun gert fyrir það, heldur vegna þess að
mannlegrar venju.
En þú getur bara að takast á við heiltölur í stað þess að breyta af taginu char,
og þú munt vera fínn.
The eini raunverulegur munur milli bleikju c og int i
er að int hefur fjórum bytes í flestum kerfi, en bleikju hefur einn bæti.
Þeir eru fyrst og fremst að sama hvað af gögnum.
Svo hvað verður prentað hér?
Hér erum við að prenta tölu með printf með plús 1, og bara eins og heiltölur
stafir er hægt að draga, svo stafir er einnig að draga.
Þannig að þetta er einmitt 65.
Þannig að það er að fara að vera 66, og hér höfum við
65 plús lítið mínus stór A, sem verður, ég í raun ekki vita.
En það verður nákvæmlega bilið milli hástöfum
og smærri bréf, svo við erum að fara að fá lítill, ekki satt?
Já.
Þannig að þetta er að fara að prenta a eðli sem er einmitt þetta.
Gott?
Einhverjar spurningar?
>> Hér höfum við fullt af mismunandi gerðir fyrir tölulegar breytur.
Við tölum nú þegar um Int.
Fljóta er bara leið to-- þetta er virkilega fyndið, því þegar ég lærði fyrst
að forrita aftur í dag með Python, fyrsta forritið sem ég alltaf
reyndi að skrifa, ég sá að það var tegund heitir í og ​​tegund kallast fljóta.
Og fljóta var fyrir allar rauntölur.
Svo þá er ég spurði hvers vegna ætti Ég nota alltaf við int þá?
Vegna þess að ef ég get notað allt rauntölur með fljóta,
Ég myndi bara hætta að nota ints, ekki satt?
Vegna rauntölur eru mikið eins og fleiri almenn.
>> Það kemur í ljós að þetta er ekki raunin í tölvum
því þeir eru í raun mismunandi hlutir.
Svo heilar tölur sem fljóta, sem aðgerðir sem þú gerir til þeirra
eru í raun mismunandi vegna á því hvernig þeir eru geymdir, OK?
Við erum að fara að tala smá aðeins meira um það í sekúndu.
>> Svo tvöfaldur er bara stærri fljóta.
Yfirleitt í flestum kerfum, a fljóta er fjögur bytes, rétt eins og int.
Og tvöfalda er átta bæti.
A langur langur er reyndar tákn að þú bæta við gerð eins Int.
Þú segir lengi lengi int svona.
Lengi lengi INT x að gera það lengur.
Svo í flestum kerfum, sem mun gefa átta bytes í stað venjulega fjórum.
Og þú getur raunverulega falla í, svo það getur bara segja lengi lengi,
og það virkar líka, OK?
Þú getur líka gert annað eins óundirritaður int eða aftur bara óundirritaður
myndi einnig vinna.
Og það myndi gera X vera breytilegir eins og allt er jákvætt,
svo þú getur í raun ekki hafa neikvæð tölur á þann hátt sem við sáum upp hér.
Svo eftir dásamlegt fleytitölu og nákvæmni.
Það er ein af ástæðunum hvers vegna þú vilt nota ints í stað fljóta,
vegna ints eru 100% nákvæmur, ekki satt?
Það er einmitt að tala.
Fyrir fljótandi stig, ef þú segja svar jafngildir 1 yfir 10--
Ég gerst að hafa þetta nákvæmlega program hér, float.c.
Sem prentar að 20 aukastöfum.
1 deilt með 10, og að venjulega er 0,1, ekki satt?
En hér ef við tökum fljóta og þá hlaupum það,
sjáum við að það er ekki nákvæmlega 0.1.
Það er 0,149 eitthvað.
>> Og hvers vegna er það?
Þar sem þú getur ekki í raun tákna hverjum einn kostur alvöru tala í minni
vegna þess að það eru uncountably margir af þeim.
Þannig að við erum tæknilega bara geta tákna endanlegt magn af þeim
með endanlegt magn af gögnum.
En það er mjög áhugavert.
Nú bidur þetta spurning um hvernig þú myndir
fara um hönd þetta með bitum, ekki satt?
Svo hvernig eru flotholt geymdar?
Með heiltölur það var auðvelt.
En með flotum þú vilt til að hámarka svið,
og þú vilt vera fær til að tákna gríðarstór tölur og mjög pínulítill tölur eins
0.000001 á sama tíma.
Svo aftur, sama leik.
Hefur einhver hafa allir hugmynd hvernig við gætum fara um hönd fljóta í minni?
Bara henda neinu.
Já, takk.
>> Áhorfendur: [inaudible] sem ef það var tveggja ints og einn
vera [inaudible] og ein vera allt eftir kommu.
GABRIEL: OK, flott.
Svo tvær mismunandi heiltölur.
Hægt er að hafa 12.45, svo það er 12 og 45.
Nice.
Hvað gengur fyrr þú að segja?
Sama?
Já?
>> Áhorfendur: [inaudible] merki hvar þú aðskilja stöð.
>> GABRIEL: Scientific merki, já það er yfirleitt það sem gerist.
Svo er þetta það sem er kallað mantissa.
Það er það sem er í raun og veru númer og síðan Eksponenten
er bara þar sem komma er, ekki satt?
Þannig að þetta er að fara að vera eitthvað af formi 1, 2, 3, 4, 5 sinnum 10
til mínus 4.
Ég áttaði mig bara that-- já, einmitt.
Og þá er þetta 10 til mínus 4 fara að skilgreina hvar komma er, OK?
Í Brasilíu notum kommu.
Hér þú krakkar nota punkt.
Svo punktur.
>> Og þetta er flott, því þá getur þú einbeita fullt af bitum þínum á þessum gaur
hér, á mantissa, og þá er það fara að vera raunverulegur nákvæmni þína.
Og þú getur gert þetta annað hvort í aukastaf eða í the tvöfaldur undirstaða kerfi.
Það eru mismunandi leiðir til að framkvæma þetta.
Spurningar?
Já?
Áhorfendur: Hversu margir staðir eftir aukastaf [inaudible]?
>> GABRIEL: Það er flókið spurning, því það er aldrei raunverulega 100% nákvæmur,
því eins og þú sérð hér, fyrir Sumar tölur það er 100% nákvæmt.
Ég tel ef við setjum 0,5 hér, það er að fara að vera 100% nákvæmt.
Það er að fara að vera 0,500000.
Svo í því tilfelli, það er fullkominn.
En í öðrum tilvikum, það er miklu minna fullkominn.
Í minn reynsla, eins og upp að fjórum, fimm aukastafir er nokkuð nákvæmt.
Ef þú notar a tvöfaldur, það er að fara að vera leið nákvæmari en það, allt í lagi?
>> Rob BOWDEN: Svo bara að kasta meira samhengi á flotum,
Ég man aldrei 100% hvernig sérstakur af flotum raun virkar,
en ég alltaf muna sem flýtur byrjar að fá sóðalegur.
Svo hugmyndin er að þegar þú færð í raun, virkilega stór númer eða virkilega, virkilega
lítil númer, byrjum við versna og versna
á aðgreining milli tveggja náinna fljóta.
>> Svo hvernig ég eins og til hugsa um er með fleytitölu imprecision,
það eru tvö flotholt sem ef ég reyni að tilgreina þá
í C, þrátt fyrir að þeir eru mismunandi tölur,
þeir eru að fara að vera túlka sem sama tala,
vegna þess að við getum ekki geyma þá á annan hátt.
Við þurfum að nota sömu bits.
Og svo þegar við komum til virkilega, virkilega stór tölur,
tala eins og 10 til 300 eða eitthvað, er það á þeim tímapunkti
að 10 til að 300 eða 5 sinnum 10 til 300
Ekki er hægt að innbyrðis ólík frá 7 sinnum 10 til 300.
Svo er það ansi stór munur milli tveggja talna.
>> En svo þegar þú færð niður eðlilegur hlutur,
þú hættir að vera nokkuð góður á aðgreining.
Og svo þegar þú færð niður mjög lítil, þú ert líka að fá ansi slæmt aftur.
Svo eins og a heild búnt af 0,0000, fær það nokkuð slæmt.
GABRIEL: Já, svo a fljótur í huga.
Aldrei gera þetta.
Aldrei reyna að bera saman svífa með jafn jafngildir,
því jafnvel þótt þeir eru nánast sama, nánast sama er ekki það sama.
Svo er það sem þú gerir venjulega þú draga þá, taka algildi það,
og sjá hvort það er minni en 0,0001 eða eitthvað svoleiðis, allt í lagi?
Og kaldur.
Ég þekki fullt af fólki hefur Sumir bakgrunnur í Java,
sérstaklega þeir sem gerði AP tölvunarfræði, ekki satt?
Og Java er tungumál að mestu leyti byggt á C,
það hefur nokkra mjög stór munur.
En fyrir lykkjur, og Skógrækt ríkisins, og solls að, þeir öll sömu setningafræði.
Ég hef nokkrar áætlanir hér til að sýna þetta.
>> Svo til dæmis, einföld halló heimur.
Þetta er halló heimur í C, sem þú krakkar eru örugglega kunnugur,
og þetta og þetta er í Java.
Svo í Java við höfum þetta opinber bekknum, halló heimur,
og opinber truflanir ógilt helstu, og band viðföng.
Strengurinn viðföng eru að fara að birtast í C mjög fljótlega.
En við skulum ekki fara þangað enn.
Núna höfum ógilt hér, sem þýðir að helsta er ekki taka neinar rök.
Og þá höfum við System.out.println er og það er
eiginlega jafngildi printf.
Hér við í raun ekki þurfa að sviga n því prenta sem ln er það fyrir þig.
Það Bætir sviga n í lok línu.
>> En ef þú ferð inn í eitthvað eins og að, þú
má sjá að þeir eru laglegur mikill the sami hlutur.
Svo frumstilling, og ástand, og uppfærslu
is-- Ég missti bil here-- þeir eru laglegur mikill the sami hlutur, nema Java
hefur eins nokkur fleiri háu efni.
Hér getum við gert plús ég og Java sjálfkrafa
gera þetta ég hér, sem er heiltala í band,
og þá auka við the tveir strengir saman.
Hér í C ​​við þurfum að gera &% d.
Línan hér, fyrir lítur nákvæmlega það sama.
>> Og ef við skoðum ef, Skógrækt einnig líta nákvæmlega sama, ekki satt?
Svo alvöru stór munur er í þeim hlutum sem þú sérð hér.
Opinber truflanir, ógild þá opinber bekknum ef.
Svo hefur Java hvað er kallað raunverulegur vél.
Og það er mjög þungt miðað við það sem heitir Object oriented Forritun,
sem er mjög, mjög algengt fyrirmynd fyrir forritun nú á dögum.
Og þessum flokki sem er það sem þú sérð, eitthvað úr hlut stefnumörkun,
er þér að búa til flokk og þá er geta öðlast hluti úr þeim flokki.
Við erum ekki að fara að tala of mikið um það í CS50,
en það er örugglega eitthvað virkilega flott,
sérstaklega ef þú vilt fara inn í flóknari vefur þróun
í lok námskeiðsins, eins leggja endanlega verkefni
og sumir ágætur umgjörð og efni.
>> Svo í rauninni er hugmyndin að þú vil ekki að koma aftur innleiða eitthvað,
svo þú skapa eitthvað sem er mjög almenn, eins og lögun,
og þá búið mismunandi form af henni,
og þá frá hvor af þessi form býrðu
sumir sértækari form í þremur mál eða eitthvað svoleiðis.
Og þeir hafa þetta stigveldi þeir heldur erfa frá öðrum sjálfur, svo
Allar aðgerðir og allar breytur sem stóra lögun hér hefur allar þessar
eru að fara að hafa, og allt eru þetta fara að hafa, og svo framvegis og svo framvegis.
Svo er það Grunnhugmyndin.
>> C er ekki með því að, en C ++ hjartarskinn hafa svona lögun.
Og Java er undir miklum áhrifum með mótmæla stefnumörkun,
svo er að hvers vegna þú sérð flokki hér allan tímann.
Og annar hlutur er þetta Java raunverulegur vél.
Þannig að þetta, að ég held, er mjög snjöll hugmynd.
Svo hvað fólkinu sem fundið Java gerði er
þeir vildu ekki að þýða kóðann þeirra tvisvar
Ef þeir þurftu að hlaupa það í Windows, eða Mac eða Linux, svo hvað þeir gera
er þeir hlaupa bókstaflega eitthvað eins og tæki,
en þú í raun ekki séð það gerast.
Svo þeir hlaupa raunverulegur vél inni á tölvunni þinni, sem
er í grundvallaratriðum eins og a lítill stýrikerfi.
Og rekstrartekjur Tilgangur kerfisins í lífinu
er bara að keyra það sem er kallað bæti merkjamál.
>> Þannig að í stað þess í C, hvernig við myndum saman þetta er að gera ef, og þá hlaupa
./if.
Ég gleymdi sviga.
Í Java, myndir þú gera fyrst Java C að þýða það, if.c.
Það er ekki C. Það er punktur Java.
Og þá verður þú að hlaupa ekki ./.
Þú færð þessa nýju skrá if.class, en þú getur í raun ekki
hlaupa if.class nú bara eins og við gerðum áður.
Þetta er ekki executable.
Þú þarft að keyra.
Þú þarft að fæða það inn forrit sem heitir Java,
og þessi áætlun er raunverulegur vél, og þá gerir if.class eða ef.
Já.
Og þá virkar það.
OK þannig að þetta er góður af raunverulegur vél gerast.
C er ekki það, þannig að ef ég væri að setja þetta forrit í Windows vél,
það myndi ekki virka í C. Í Java það gerir.
Spurningar?
Cool.
Það er ef til frábær lið í dag.