>> ROB Bowden: To je bolj udobno oddelek,
vendar to ne pomeni, da če vas Počutim se, kot da nisi bolj udobno
ne boste naučili stvari tukaj.
Torej začnimo.
Ali imate diapozitive dogaja prav v stvari.
Sem na tem, da pravkar sprejeti prav zdaj?
Preklapljanje prenosnih računalnikov.
>> ALLISON: Ne želite, da se spoznajte, Rob?
>> ROB Bowden: Oh, sem Rob.
To je moje peto leto TF-ing CS50.
>> GABRIEL: Jaz sem Gabriel.
Jaz sem vodja TF od CS50.
Bil sem TF lani in letos.
ALLISON: In jaz sem Alison, in to je moje drugo leto TF-ing CS50.
>> ROB Bowden: Dobro, ta stvar na levi strani,
upajmo, da sem ga videl.
Če ne zaradi tebe jo naložite za sebe,
Morali bi ga videti v predavanju.
Torej je to CS50 aparata, in je naredili nekoliko njen opis
V predavanju.
Ampak v bistvu je to samo ti nameščen operacijski
sistem znotraj svojega delovanja sistem, tako da bomo lahko vam
programi brez potrebe skrbi, oh je to
delali na obeh Windows in Mac, ali če se nekateri od vas
že uporabljate Linux, Linux.
To je samo domneva, da biti skupna igranje
to polje ima vsakdo Enako natančno okolje.
>> Torej, če še niste to prenesli že,
morate jo naložite, ker ste bodo potrebovali za problemskega sklopa.
In to je dva gigabajta prenesete, tako da bo trajalo nekaj časa.
Na Harvardu bo šlo hitro.
Torej CS50 aparata.
>> Sedaj na začetku, si bomo govoriti le kup ukazni vrstici
stvari, in tako s tem, mislim delati v tej mali okolja v tukaj.
In opazili vse stvari Pravim tukaj zdaj
gredo na delo, če ste v notranjosti terminalni notranjost stroja,
ali če ste v notranjosti Okno gedit terminal
notranjost stroja.
Torej ti okoljih so enaki.
>> Ampak bom šel še tretjo pot.
In opazil sem dol to malo IP naslov tukaj.
Tako da vam ne bi bilo treba To storite tako, ampak to IP
address-- zdaj, če I-- razen to je blokirana, ki jih to zadeva.
OK, tako da IP naslov več v terminalu
here-- tako da je ta terminal preko Tukaj je terminal v mojem Mac.
Torej je to v ničemer trenutno povezana z napravo sploh.
In če ste v operacijskem sistemu Windows, potem ste bo treba prenesti nekaj
posebej za to, zlasti ljudje uporabljajo kita, P-U-T, T-Y.
>> Torej, kaj bom storiti, je tip SSH in nato, da je IP naslov.
No, jharvard na ta naslov IP.
Torej 192.168.24.220.
To strašno sporočilo, ga ignorirati.
Samo tip ja.
To je CS50 v škatli.
Ga vpraša za geslo.
>> In tako v veliko teh kontekstih kjer vpraša za geslo, [neslišno].
Imava veliko vprašanj kjer pa pravi, da to ni dejansko tipkanje.
To vam ne kažejo znakov Geslo med tipkanjem, če sploh kaj,
za varnostno funkcijo, ker če nekdo je videti čez ramo
in vidijo star star, potem so
vedeli, da vaše geslo je štiri znake.
Torej ideja je, da bo zahteval, si za svoje geslo, vrste.
To se ne bo pokazal ti znaki,
ampak to je dejansko njihovo sprejemanje.
V tem primeru boste kadarkoli kdaj videli poziv za geslo
ki se ukvarjajo z napravo, Geslo se bo Crimson.
Torej Crimson.
>> In sedaj tu notri to okno, ki je po mojem Mac,
Jaz sem v bistvu ima Enako natančno pogled
kot znotraj terminala v aparatu.
Torej vam ni treba, da to storijo.
To lahko storite vse, kar vam ponudbe notranjost stroja.
Jaz skoraj nikoli dejansko ne kaj v aparatu.
Sem skoraj vedno zmanjša, da zdaj Delam SSH v aparat.
>> Če sploh kaj, če vas imajo počasnejši računalnik,
ste morda opazili razliko.
To sem naredil, ker sem raje Ta terminal okno.
Ima nekaj lastnosti, kot so Jaz lahko razdeli okno,
in zdaj sem lahko v SSH skozi kotel.
Imam dva SSH dogaja naenkrat.
Če je vaš računalnik še posebej počasna in delate v napravi,
in se zavedaš, da je to Res laggy, karkoli.
Kaže, da je veliko hitreje če ste SSH-ed leta.
Sicer pa lahko deluje v obe smeri.
>> OBČINSTVO: Kaj SSH pomeni?
>> ROB Bowden: Secure lupine, nekaj takega?
Kaj SSH pomeni?
GABRIEL: Secure shell.
ALLISON: To je samo varne lupine.
ROB Bowden: Secure shell.
To je protokol, ki you-- je varen protokol, tako šifrirana.
Ljudje ne morejo Snoop omrežja in glej, kaj govoriš, da karkoli
ste SSH-ed.
In v resnici, v starih dni CS50, tako v 2009
ko sem bil novinec, tako da ste delali na CS50 problemskih sklopov,
bil si SSH-ed do neke strežnik da je dostop do,
in ste delali tam.
Torej niste imeli to grafični aparat.
Niste imeli gedit.
Niste imeli vse te stvari, ki si lahko vizualno točko in kliknite.
Bi morali delati na tem vmesniku.
Raje bi delo v tem vmesnikom.
Torej, del tega, kar bomo se dogaja, da več kot zdaj
kup ukaze, ki jih naj
začnejo spoznavati s čim greste skupaj v teku.
In pošteno, ko vas navaditi na njih, je
je tako veliko hitreje delujejo v tem okolju
kot je delo z najditelja, vlečenjem in s klikom stvari.
>> Torej, tukaj smo.
Zdaj sem SSH-ed v, in tako privzeto vas location--
Videl nekateri od teh ukazov v razredu, vendar bomo šli čez vse od njih znova.
Privzeto mesto smo je v domači imenik.
In imenik, le druga beseda za mapo.
Tako smo v domačem imeniku.
Vnesite ls, seznam datotek v ta imenik.
Očitno sem ustvaril blah.c prej.
Tako da imamo imenik namizja.
Opazite sintakse?
Svetlo modra poudarjanje označuje imenik in beli barvi
kaže samo navaden datoteko.
Tako da se bodo nekatere druge barve, ki jih vidite.
Izvedljiva datoteka je verjetno, biti zelena ali nekaj takega.
OK, tako da smo v domačem imeniku.
>> Zdaj, če želim iti v drugačen imenik, cd je ukaz želim.
Torej spremenite imenik, nato pa mimo ime imenika
da hočeš iti v.
Torej, tukaj imamo štiri možnosti.
Lahko grem v downloads, in zdaj smo videli Tukaj je posodobljena to oklepajih
reči, da sem v ~ / prenose.
>> Torej, kaj je Tilda?
To je okrajšava za vaš domači imenik.
Torej skoraj vse, kar vam bo biti glede na vaš domači imenik,
in pwd je le ukaz I uporabite enkrat na leto, da
Samo natisne trenutni imenik.
In tako vidite, da tukaj ~ / Downloads res izzveni
do / home / jharvard / prenose.
Torej / home / jharvard je moj domači imenik.
>> Tako bomo lahko cd dot dot.
Zdaj dot dot je poseben imenik, ki se vedno nanaša na en imenik navzgor.
Torej, če sem v ~ / downloads, potem cd pika dot se dogaja, da me pripelje do tilda.
Kaj mislimo cd dot dot se dogaja, da me pripelje do sedaj?
To me bo pripeljala do / home.
Torej Tilda ga tiskanja delovnega imenika, Jaz sem zdaj v / home / jharvard.
en direktorij gor od tistega, zdaj tu piše / home.
>> Sedaj cd pika pika.
Zdaj sem v korenskem imeniku, in ga ni mogoče storiti še enkrat.
Boste le ostali v korenski imenik večno.
Korenski imenik ima cel kup stvari, ki, če boste želeli, da preuči,
lahko.
Na primer, če grem v koš, ki vsebuje
vse te binarnosti, kot so ls, in cd, in vse te stvari.
Torej ti ukazi morajo obstaja nekje v sistemu,
in to je v imeniku / bin.
Vendar je skoraj vse, kar morate storiti, je bo iz vašega domačega imenika.
In cd brez argumentov whatsoever, lahko bi rekli, cd ~, ne potrebujejo.
cd se dogaja, da bi vas nazaj v vašem domačem imeniku.
>> Ena zadnja.
cd - vas bo pripeljala nazaj last imenik, ki ste bili v.
Torej sem cd'd dvakrat zapored, tako da moj last imenik je bil domači imenik.
Če grem za drastično smeti, in zdaj gremo gor in v uporabnika.
Uporabnik delež.
Pojdimo v uporabniškem delnico.
Zdaj sem zdaj v uporabniškem delnico.
cd - nazaj v zaboj.
Tako da to postane še posebej koristno ko have-- in bo to ročko.
Torej uporabnika delnico, zadnji bin, delniški bin.
>> Tako da to postane uporaben.
Morda boste ugotovili, da ste morali veliko, veliko, veliko ugnezdene imenikov.
In želite narediti nekaj resnično hitro v zgornjem imeniku.
Greš v ta imenik, bo spremembe in stvari, kot je ta,
in zdaj želite, da gredo nazaj tja, kjer ste bili.
cd -.
Jaz sem vedno razočarano ko sem se zgodi, da gredo
v tem imeniku I želel delati v.
Vedno sem dobil uničen, ko sem je v dveh korakih namesto enega koraka,
ker to pomeni, da je cd - se dogaja da bi v tej vmesni
namesto tja, kamor želim iti.
>> Tako da smo videli vse seznam datotek.
Vemo, kako priti okoli doslej.
Torej, zdaj, kaj je govoril o urejanju datotek.
Torej, v tem tečaju, ste skoraj vedno pričakuje, da uporabite gedit.
Če želite, lahko naredi naslednji korak in začeti učiti besedila z ukazno vrstico
urednik.
Torej obstajajo različne možnosti.
>> In tisti, ki so verjetno bo pomembno za vas,
imamo Nano, Vim, in Emacs.
Torej Nano je začetnike ukazni vrstici urejevalnik besedila.
Torej Nano pojdimo na blah.c sem ustvaril prej.
To je samo ta standard C datoteko.
In vidite cel kup stvari dogaja na dnu zaslona,
in očitno blah.c vsebuje to C kodo.
>> Torej, v tem urednik, kaj je že rekel na bottom--
Zdaj ta simbol strešica, vidimo to ^ g, ^ X, ^ o.
Tako, da v skoraj vseh kontekst, da vidite,
lahko vidite ta simbol strešica v drugih krajev na spletu, na prekoračitev,
nekaj takega.
Skoraj vedno nanaša na nadzor.
Tako za izhod želim narediti Control X. Control X, izstopi.
In sem lahko uporabite svojo puščico tipke za premikanje.
Opazili ne morem točko in kliknite zlahka.
Morate uporabiti vaše puščice tipke za premikanje.
Morda obstaja nastavitev za točko in kliknite.
>> Ampak, dajmo narediti nekaj sprememb.
Zdaj Control X iti izhod.
To se dogaja, da se reči, razen spremenjenega pufra.
Zdaj pa hitro, y za yes, n za no.
Control C za preklic.
Jaz bom samo rekel ja.
Ime datoteke za pisanje.
Privzeto je datoteka da že je.
Pritisnite tipko Enter.
OK.
Zdaj sem ravnokar uredil datoteko, jo shranili, in jo je spremenila.
>> Torej Nano je najlažje urejevalnik besedila navadiš.
Alternative so Vim in Emacs.
Tistih, ki so urejevalniki višji ravni da imajo zelo strmo krivuljo učenja.
Torej, moja osebna preferenca je Vim.
In ima široko paleto možnosti.
In ko se navadiš z njim, ne boste nikoli
želijo, da gredo na katero koli drugo urejevalnik besedila, ker si pravkar
imajo toliko stvari, vam na voljo v teh,
vendar pa je potrebno res dolgo časa, da se naučijo.
Mogoče si samo želim, da prisili si zdaj, da se navadiš na to,
ampak bi rekel, da je vredno.
Ampak to je težko.
>> In potem Emacs.
Vedno sem se borijo v Emacs, ker Vem, kako to storiti prav ničesar.
Očitno Emacs ni privzeto nameščen na napravi.
Bomo verjetno dodali, da kot privzete naprav.
Ko boste izvedeli eno Vim ali Emacs, tam je
nobenega pravega razloga, da bi kdaj se učijo drug,
ampak to je povsem drugačen stil.
OK, tako da je urejanje besedilnih datotek.
>> OBČINSTVO: Če ste obtičali V vim zdaj, kako we--
>> ROB Bowden: Obstaja več načinov v vim,
in obstaja cela vaje za učenje vim.
Torej, če se zgodi, da vstaviti v načinu, da
za vnos besedila, ki si lahko vnesti, da na različne načine,
ampak jaz je, kako prideš v vstaviti načinu.
V ali ven iz kakršne koli posebne Način, ki ste v, samo pobeg.
In si bash pobeg, da bi dobili iz kakršnih koli ugnezdenih načinov vaš v.
Samo OK, zdaj sem spet v običajnem načinu.
>> In tako v običajnem načinu, debelo črevo.
Boste videli, da se pojavijo na dnu.
In potem q.
Tako da bo q nehal, če ste naredili spremembe, ki I-- se nisem spremenil?
Imam sprememb očitno.
Torej, če ste spremenili, bo to pravijo, lahko postavite klicaj.
Jaz grem, da ga pokličete bang.
Tako da lahko dajo prepoved za samo nehal ne počne ničesar,
ali dvopičje wq bo shranite in zaprete.
Torej w na splošno pisati.
Torej napisati datoteko.
Znam napisati in nehal.
Ali pa imaš samo qx slam, q bang samo
priti ven od tam, ne glede o vseh spremembah, ki ste jih naredili.
>> Vse je v redu, tako da zdaj pa si go-- lahko ustvarimo datoteke.
Začnimo odstranjevanja datotek.
In bom vrgel v enem Hitro nov ukaz, na dotik.
Torej dotikajte foo.
Touch bar.
Dotikajte Baz.
Če ls I, zdaj vidimo da obstajajo te datoteke.
Oni so popolnoma prazne.
Torej, na dotik je le preprosta način za eno, [neslišno].
Dva, tehnično, samo da stanje to, da posodobi žige.
Zato bo vsaka datoteka, ki jo ustvarite ima timestamp, povezane z njo.
Torej je bil baz ustanovljena 14. september ob 16:21.
To je zdaj 16:22, tako da, če Sem se znova dotaknite Baz smo
videli, da je bila večina baz Nedavno spremenjena ob 16:22.
Drugače pa sem se skoraj nikoli pogled na časovne žige na datotekah.
Torej dotik, tukaj sem samo z uporabo je ustvariti nekaj hitrih datotek.
>> Vse je v redu, tako da zdaj rm je ukaz, ki nam je mar tukaj.
In bomo lahko rm boo.
Pravijo odstranite redno prazen datotečni boo.
In bomo lahko vnesete y, in zdaj je odstrani.
rm baz.
Odstrani redno prazno datoteko baz in vrsta n za no.
Zdaj je ne odstrani.
Tako bar in baz, še vedno obstajajo.
Foo je izginil.
GABRIEL: Pogovarjajte.
ROB Bowden: Great.
Tako siten sporočilo tukaj, odstranite redno empty--
Kaj delaš tam?
Odstrani redno prazno datoteko.
Torej, če ne želimo, da bi moti to sporočilo,
moremo metati v tem -F zastave, in tako, da je sila.
In zdaj, če sem rm -f, da ne bo pravijo pa, da želite odstraniti to datoteko.
To bo samo to.
In ls, ne vidim tam bar več.
>> Zdaj, ko je potencialno nevaren ukaz.
To kaže, da ne bo preveč slabo.
Vrnili se bomo v drugem, kako lahko dobite zelo nevarno.
In kaj je ustvariti nekaj temp mapo.
mkdir, drugi ukaz.
Torej mkdir je ukaz da ustvari imenik.
In zdaj ga ls vidimo to lepo svetlobo blue izpostavil temp mapo.
Ne morem cd v temp.
In sem lahko mkdir foo.
cd v foo. mkdir bar.
cd v baru.
>> Tako vidimo, da lahko zlahka dobili v nekaj precej globoko gnezdenja.
Zdaj kako odstraniti mapo?
rmdir.
Torej, če sem ravno poskušali rm, tako kot smo to storili z navadno datoteko,
rm bar se bo pravijo, ni mogoče odstraniti bar.
To je imenik.
Obstaja poseben ukaz za odstranjevanje imenikov, vrsta.
Torej rmdir bar.
Zdaj je bar izginil.
>> OK, tako rmdir sem precej nikoli ne uporabljajo.
Razlog being-- Zdaj pa na redni datoteke bar tukaj.
Torej rmdir boo.
rmdir.
Ni odpravila foo.
Imenik ni prazen.
Torej, ne morete uporabljati odstraniti dir na imenik, ki ima stvari v njem.
>> Torej, imate nekaj možnosti.
Lahko greš v ta imenik, odstranite vse ročno, nato pa prihaja iz
in rmdir imenik.
To seveda zveni nadležno.
Kaj pa, če je na tisoče datotek v tam?
No, lahko bi rm *.
Bomo govorili o * na sekundo.
To v bistvu pomeni, vse stvari.
Ampak še bolje, tako rm -r.
Torej rm -r-- v veliko konteksti, -r pomeni rekurzivna,
katerih bomo govorili o tem, kaj rekurzivne sredstvi v nekaj tednih.
Ampak to v bistvu pomeni, prečnici celota v ta imenik
in odstranite vse.
>> Torej rm -r foo je reči Spustimo se v imeniku foo?
Da.
Odstrani redno prazni datoteki foo / bar?
Da.
Odstranite imenik foo?
Da.
Torej, zdaj foo in vse znotraj je bil odstranjen.
>> Zdaj pa, da je mogoče dobiti posebej moteče when-- dajmo dotikajte 1, pritisnite 2, pritisnite 3.
Bi lahko imela cel kup datotek.
Če bi želel, bi lahko izdelam tisoče datotek tukaj.
In rm -r foo se dogaja biti precej nadležno.
Ja, ja, ja, ja, ja, ja.
Z veliko več datotek hitro videli, kako veliko krat
Jaz bi moral ja tip.
No, bomo videli šele pred kako lahko znebiti morali vnesti ja, -F.
Torej mkdir foo cd foo dotik 1 2 3.
OK, tako rm -rf foo se dogaja, da slepo odstranite foo celoti.
Noben poziv.
Ni nič.
Foo je izginil.
>> Tako da sem se nagibajo k uporabi tega ukaz ves čas.
Da omenjeno, je Zelo nevaren ukaz,
ker če naredim nekaj podobnega To, da vas ne bo vprašal.
To bo odšel.
In to se dogaja precej pogosto, in celo na višji ravni CS tečajev.
Včasih bomo videli kaj, ko nekdo
pravi, da sem slučajno naša rm-rf ed moj dom imenik in vse moje P niza ni več.
In to je uničujoče, vendar ni smeti lahko.
Ni nič za vas priklicati.
To je samo odšel.
Še huje bi bilo nekaj podobnega rm -rf /.
Torej smo pravkar razpravljali da korenski imenik.
Ima vse datotek na vašem sistemu.
Stvari ponavadi dobijo precej grdo ko odstranite stvari, kot so ls,
in cd, in vse tiste.
>> OBČINSTVO: Kakšna je razlika med rm, RF, in rm *
ROB Bowden: Torej rm * -
>> ALLISON: Vprašanje je, kaj je Razlika med rm, RF, in rm *.
>> ROB Bowden: Torej rm *.
Star na splošno pomeni vse od vsebina tega imenika.
Poskušam razmišljati o drugih načini, ki prikazuje zvezdo.
No, zvezda dejansko splošno pomeni ujemanje vzorca.
Torej, če imam datoteko z imenom dog1, dotikajte dog2 dotaknite KAT1 dotaknite KAT2.
Torej ls * 1 se bo tiskanje KAT1 in dog1, saj je mogoče, da je zvezda treba zapolniti
v with-- treba biti tam, ampak zvezda je lahko bodisi mačko ali psa.
To je wild card.
To je beseda, iščem.
Wild card.
Ali sem lahko ls pes *, in Jaz sem dobil, da vidite dog1, dog2.
Torej tistih, ki so naštete datotek , ki se ujemajo, da so določeni vzorec.
Lahko uporabite ls na ta način.
>> Ls * zvezda tekme ničesar.
Tako se dogaja, da natisnete vse vsebina tega imenika
Ker vsi ujemajo.
To ne bo natisniti ničesar v imenikih zgornjih ravni.
Če imam sub imenik, foo, in dotikajte 1 2 3-- zdaj, če rm * zvezdo,
odstranite KAT1, KAT2 dog1, dog2.
Ni mogoče odstraniti foo.
To je imenik.
>> Torej zvezda razširi na vse datoteke v imeniku.
Torej tehnično rm * je, kot pravi rm KAT1, KAT2 dog1, dog2, foo.
Ker se rm -RF, tehnično bi zvezda dosegli, kar smo želeli, vendar rm -rf--
če grem ven iz tega imenik, rm -rf temp,
da se dogaja, da gredo v temp in rekurzivno odstraniti vse.
>> Torej zvezda je ločen, da je ta Razume se, by-- tako to stvar
da tečem v to stvar da me je spodbudilo za ukaze
in nato izvajanje in delaš jim kličem to moja lupina.
In tako je ta lupina je sam program.
In če sem hotel, sem lahko vodijo v / bin / bash.
Lupina se imenuje bash.
In zdaj smo opazili nekaj se je nekoliko spremenila,
in da je zato, ker mojih nastavitvah shell so nekoliko drugačni.
>> Ampak zdaj sem tehnično vodenje shell v moji prvotni lupini,
in sem lahko zaprete to lupino, in zdaj Jaz sem nazaj v mojo vrhnje lupine.
Namen rekel da is-- zvezda.
Torej zvezda je nekaj z bash razume.
Torej rm -rf, -rf zastava le za rm razumeti.
Ve, da ko vas mimo -RF, ki vas
želim, da bi rekurzivno odstrani vse datoteke brez poziva.
Zvezda je nekaj, kar se razume ga bash da ko rečeš rm *,
bash ne bo rekel, hej rm *, odstranite zvezdico.
Bash je reči rm * odstranite KAT1, KAT2 dog1, dog2.
To je samodejno načrtuje širjenje vse datoteke v imeniku.
>> In podobno Tilda je drugo Simbol, ki bash razume.
Ko rečeš cd ~, bash razširi da na vašem domačem imeniku.
Druga vprašanja, ki do sedaj?
OK, tako da bomo začeli dogaja hitro.
>> Dokončanje Tab.
Samo da bi ga vrgel ven.
Veliko ljudi ne uresničiti ta obstaja.
Torej, če sem tip cd dow, I bi rad šel v prenose.
Ne rabim, da tip nloads.
Jaz lahko samo pritisnemo Tab.
Zato priznava, da dow je predpona, ki
ne ujema ničesar drugje v tem imeniku,
tako da bo dokončanje za vas.
Zdaj lahko vnesete.
>> Jaz tudi ne, da rekurzivno.
Torej mkdir foo.
Pojdimo v foo.
mkdir bar.
Torej grem nazaj v moj dom imenik, vidim prenose.
Zdaj jeziček spet udaril, samodejno dogaja, da izpolnite foo.
To je samo imenik.
Jeziček spet udaril, samodejno dogaja, da izpolnite vrstico.
Torej, zdaj sem v (~ Prenosi / foo / bar).
>> Tako da je ta zaključek tab, ko sem prišel do uradnih ur,
in stojim pred nekdo rama,
in oni bodo rm D-O-W-N-L-O--D-S, umiram.
Kartica samo, jeziček, jeziček, tab.
Torej jeziček zagotovo uporabljen.
In podobno gor in dol, veliko ljudi
prav to se je zgodilo nikoli udaril gor in dol.
Pa bom šel skozi prejšnja ukazi, tako da, če si tekel nekaj,
in ga želite znova zagnati, Samo počakaj, dokler ne prideš do njega.
OK.
>> Tako hitro, nekatere druge stvari.
Pojdimo nazaj v temp.
Ustvarimo nekaj datotek.
Torej, tukaj, jaz sem samo bo seznam nekaj besed.
pes, mačka, mijav.
Naredimo psa, ribe.
Torej, zdaj rep je zelo Uporabni ukazi, ki jih
uporabljajo po vsej iskanje datoteke za določeno besedilo,
in tehnično lahko naredite resnično kompleksne izraze za to, da se ujemajo.
>> Torej, tukaj, če sem grep, in kaj ne želim iskati?
Recimo, da iščem za mačke in Želim poiskati vse te datoteke.
Torej, kako naj naredim vse te datoteke?
Star.
Tako da v eni datoteki, imam mačka.
Verjetno sem lahko imela pozval, da nekaj boljšega,
ker to izgleda številke ali nekaj vrstic.
Toda v eni datoteki imam linijo z mačko.
V datoteki dveh imam črto z mačko.
Torej, zdaj sem lahko ogledate znotraj ene datoteke in glej oh yeah, da datoteka imela mačko.
Obvestilo datoteka tri ni ujemal ker mačka ni notri.
Lahko grep za Meow.
Vložiti le dve ima, mijav.
>> Tako da to lahko kombinirate, spet z -r, ki
Kot sem že povedal pogosto pomeni rekurzivna.
In tako sem lahko prišel sem gor, grep -r of-- za vsak primer pa si uredite
samo ta, da bi vrgel mačko notri.
Torej grep -r za vsako instanco mačka v tem imeniku.
In to bo rekurzivno iskalnik podimenike.
Torej, v Baz, tam je mačka.
V temp / 2, tam je mačka.
In v temp / 1 obstaja mačka.
Tako da je iskanje v datotekah.
>> Sedaj lahko uporabite tudi najdbo.
In tako ugotovite, je posebej o išče datoteke z isto ime.
Torej, dajmo narediti nekaj več.
Pojdimo v prenose.
Dotikajte dog1.
Dotikajte KAT2.
Dotikajte cat_dog.
Dotikajte catcat.
>> Torej, želim, da bi našli vse, Datoteke s psom na ime.
Torej najti, in za najdaljši Čas nisem spomnil
kako najti delal, dokler nisem končno prebral nekaj naredila tako jasno.
Tako ugotovili, samodejno rekurzivno.
Vam ni treba opraviti -r.
Torej najti piko.
Še nismo govorili o piko.
Ker dot dot vedno pomeni en imenik navzgor.
Dot vedno pomeni trenutni imenik.
Tako da sem lahko rm -r piko enak način sem lahko rm -rf *.
Na koncu so izpolnitev isto stvar.
rm -rf dot se dogaja, da se odstranijo Celoten trenutni imenik.
>> OK, kar ne želim, da tam narediti.
Ampak najti piko.
Tako rekurzivno iskanje tok imenik, in zdaj je vse
Po tem so kup zastav, ki jih uporabite izključiti stvari iz donosa.
Tako našli dot vrne vse, kar je lahko najdete na trenutni imenik.
To so vse datoteke rekurzivno iskanje.
Bomo videli, nekateri od tistih v sekundi.
>> Toda v primeru, da ste se spraševala, kako naj naredim da, tako Command K, na vsaj
v mojem terminalu v Mac z odličnimi refleksi.
Control L splošno počisti je za vse vrste terminala.
Vnesete lahko tudi jasno.
In če ste kdaj v čudno scenario--
to se mi je zgodilo par time-- kjer barve vaših pozivov
so vse zamočil, ali vam niso mogli videti ničesar
so vnesli ko tipkate, ker včasih kot barva ozadja je nastavljena
Enako kot barvo ospredja in zdaj ne vidite pisave.
Reset je nekaj, kar samo resetira ste na privzeto črnim ozadjem,
bela spredaj, ali karkoli nastavite njih.
>> Torej, kje smo ostali?
Najdi pika.
Torej, zdaj je vse mimo tega točka omejuje na rezultate
nekaj, kar se ujema dati vzorec.
Torej, tukaj želim iskati vse z imenom mačko.
Nimam nič.
Zakaj je to tako?
No, jaz sem samo iskal nekaj z natanko ime mačka.
Če želim iskati nekaj da ima nekaj vzorec, in cat--
citati tehnično niso potrebne, vendar sem jih metali noter.
Sedaj ugotovi catcat ker to je edina stvar, ki
ima nekaj samovoljno Vzorec sledi mačk.
Sem lahko dal mačka *, in zdaj našli catcat, cat_dog, KAT2
ker to so vse stvari z mačko na začetku sledila nič.
To lahko kombinirate.
Če želite poiskati vse datoteke C da imate lahko naredite * .c.
Tukaj smo blah.c.
Tako da je najdba del.
Lahko iščete.
Ima cel kup zastav za nadaljnjih omejitev.
In eden od njih, recimo, -d.
Tako opuščena.
Oh, to ni tisto, kar hočem.
Ni -d.
Vrsta d.
Torej najti piko - tip d.
Torej, kaj je pravkar storil je iščem za vse datoteke v trenutnem imeniku
z a-- d stoji za directory-- tip imenik.
Ta vrne vse imenike v trenutnem imeniku.
In tip F je vse redno datoteke, vseh ne imenikov.
Tako, da je samo Primer druge načine, ki jih
Omejite lahko drugo iskanje kot samo ime datoteke.
>> Minilo je 30 minut.
Še vedno dogaja.
>> ALLISON: Jaz bom vetrič skozi.
Vse bo v redu.
>> ROB Bowden: Torej, nekaj drugih stvari.
Zdaj bang, klicaj.
Tako da na splošno means-- No, pa poglejmo primer.
Torej! F, kaj se da boš naredil?
Torej se zdi, da imajo ponovi najdba dot-tipa f.
Kaj pa! G?
Da samo grep -r mačka *.
Torej bang lahko uporabite, da ponovite pred kratkim naredil ukaz.
Torej, če sem tip! GRE, da se bo ponovno tek ukazi, ki je začel s GRE najbolj
v zadnjem času.
>> In si lahko ogledate vse te ukaze z zgodovino.
Torej zgodovina.
To so vsi Ukazi sem danes poganjajo.
In dobro, to ni dobesedno omejena do danes,
vendar sem uporabil samo to aparat z današnjim dnem.
To je vaša celotna Zgodovina vašega bash lupini,
razen da odreže na neki točki.
OBČINSTVO: Kaj se zgodi, če vam Zgodovina [neslišno] ukaz in napake
v rezultat bo še vedno tiskate the--
>> ROB Bowden: Ja, če je Napaka v enem od teh commands--
tako da recimo, da je Ukaz napake ni bilo mogoče najti.
Še vedno pojavlja v zgodovini.
Vse je v redu.
Druga vprašanja o ničemer?
Tako da je pok.
>> Zdaj pa res koristen ukaz, človek.
Tako, da vam Navodilo za dani ukaz.
Torej, recimo, človek ls, tako to se mi pokazala ls.
Našteva vsebine imenika.
In to je, če vidim, da so te različne zastave, ki obstajajo.
Tako vidimo, da ls -l obstaja če bi prebral to. ls -l
mi daje to popolni seznam Imenik s tem, kdo je lastnik datoteke,
velikost datoteke, spremenjeni žig.
Torej ls -a je še eden, ki ga morda dejansko uporabo nekoliko pogosteje.
-al je moj najpogostejši flag preteklem ls.
>> Torej -a, opazili tam je veliko več datotek, kot le ls.
ls -a.
Kaj je skupnega z vsemi temi datotekami?
Se začnejo s piko.
Torej je ta konvencija v Linuxu, ki Datoteke, ki se začnejo s piko, so skrita.
Torej, to samo pomeni, da Ko smo le ravne ls,
ali pa iščeš ta imenik prek enakovredno finder ali Windows
Explorer enakovredno, da smo Ne želim, da se te datoteke dot.
Ti samo onesnažujejo pogled na stvari.
Torej so skriti razen če je posebej
od njih zahteva, z nekaj podobnega -a.
Tako sem lahko cd v .local, in vidim da je ta sama imenik z
imenika v skupni rabi, in aplikacije in blah blah blah.
Torej dot, datoteke oni samo skrite.
>> OK, tako da drugi pomembni tisti.
Imam nekaj kar lahko preskočite.
Naj samo resnično hitro govoriti o Datoteka preusmerjanje stvari so.
Tako da je celoten kompleks series stvari, ki jih lahko naredite z njimi,
ampak da bi jih videli, recimo, echo.
Drug ukaz.
Res neumen ukaz.
Vse to pa je, print, kaj sem rekel, da.
Tako odmeva zdravo.
Samo odmevalo pozdravi zaslonu.
Hello world.
Echoes zdravo svet.
>> Torej, en ukaz ali ena simbol, ki bash razume
ta presega simbolom, da je izhod simbolu datoteke.
Torej, če sem izhod, da je to foo, tam je zdaj datoteka
imenovana foo, znotraj kar je zdravo svet.
Torej, opazil, da ko sem echo Zdravo svet cev v foo,
ni echo Hello World.
Namesto tega je bila dana v datoteki foo.
In še ukaz samo ga vrgel na vas, mačka.
To je preprost način, da le popolnoma izpis vsebine datoteke
tako da mi ne bi bilo treba odpreti urejevalnik besedila, da si jo ogledate.
Torej vsebina foo datoteke so zdravo svet.
In sem lahko mačka blah.c, je vsebina tega.
>> Še enkrat, to so ukazi, da ne Pričakujemo, da boste imeli jih vse zapomnil.
Ideja je, da ste jih videli.
Morda delate nekaj, in ste
kot da sem bolan odpiranje te datoteke.
Želim si, da bi lahko samo poglej na vsebino resnično hitro.
Lahko bi to naredil, potem ozremo nazaj in reči, oh I
zapomni si nekaj podobnega da obstaja, in da je mačka.
>> Tako da se bo v datoteko.
Zdaj ni res vse dobro Primer branja iz datoteke še.
Kaj je nekaj, kar traja nekaj od standarda v?
Koli preprost ukaz Linux?
Ko pridemo do njega, v nekaj tedne vsi piece-- dobro,
ta teden imate kos kjer si začnete jemati prispevek od uporabnika.
In tako ponavadi tipkanjem da je vhod na tipkovnici.
Namesto da vnesete Vhod na tipkovnici,
lahko namesto cev v iz datoteke tako da, ko boste to storili Mario, ./mario,
cev v od posamezne datoteke in da se dogaja, da zaženete program mario.
Ni pričakoval vhoda tipkovnice, namesto tega pa je
le, da bo prebral vrstice iz datoteke foo.
>> Torej, večja kot foo ga postavlja v datoteko foo, in manj kot foo
meni stvari iz spisa foo in uporablja, da kot izhodišče za ta program.
In samo, da ga vidim, bi lahko tudi echo foo bar baz, in nato namesto enega
več, naredimo dva v foo.
Kaj naj bi to naredil?
Samo pripne na datoteko.
Torej, namesto odpovednega roka, če mi odmeva bla v foo in potem mačka foo, to je samo bla.
Torej, ko se izhod v datoteko tako, popolnoma prepiše datoteko.
Če si želite priložiti, double [? greder. ?]
>> In nazadnje je cev.
Pipe Gets veliko bolj zapletena, kjer je potrebno izhod enega ukaza
in ga hrani v naslednji ukaz.
Tako da nekateri običajna stvar, zgodovina.
Torej, Uh, ne želim, da pogled na to.
Prikaži vse ukaze v moji zgodovini kjer sem grep-ed za nekaj.
Ne, to je zmedeno.
Prikaži vse ukaze, kjer se mi zdi.
Vse najdete ukaze sem kdaj tekel.
>> Torej zgodovina.
Zdaj Zgodovina izhodi na Zaslon seznam ukazov,
vendar ne želim, da izhodna žogo na zaslonu.
Namesto tega bom cevi njim v grep.
Torej, kaj je grep za vse primere najdbi.
Torej sedaj, namesto da grep pridobivanju input namesto of--
grep lahko obravnava kot input-- smo uporabo grep nekoliko drugače tukaj.
Torej, namesto da vnesete seznam stvari, ki smo želeli poiskati
in dejal grep jemlje kot vhod.
Torej, če jaz prav grep našli, ga čaka me na vrsto stvari.
Torej mačka zdravo našli.
Pozdravljeni.
Najdi.
Obvestilo vsakič, ko vtipkate najdem priznava, da sem tipkal najdbo.
Torej, namesto tega bo iskanje datotek za najti.
>> Torej zgodovina se zdaj dogaja, da izhodna seznam vseh ukazov.
Mi smo dajanje takega obsega, in smo krmljenje je grep,
in zato je izpljunil vse primerke našel.
Razlog, da sem rekel, da bi se pomešala je, če I-- je še vedno nejasna.
Če sem grep za grep.
Opazite, da je precej vedno prikazuje ukaz sem
tekel, ker ta ukaz sama grep znotraj njega.
>> OK, tako da kakršna koli vprašanja o vsem tem?
In ga bom prenese več na tej točki.
Upajmo, da je to lepo Pregled vseh ukazov
da vam ni treba imeti naučene, toda ti predstavljajo
solid 95% tega, kar sem narediti v ukazni vrstici.
Prav tako ne pozabite, da v ukazni vrstici sama, bash je programski jezik,
in tako, ko prideš do njega, ga morda želeli narediti res zapletene stvari.
In tako se je stvari, kot so zanke, in če-jev, in vse tiste
da boš navaditi s svojimi programskimi jeziki.
Ampak to je izven Področje uporabe tega oddelka.
OK, tako da ni vprašanja?
ALLISON: None?
GABRIEL: Ali boste to--
ALLISON: Zmorem na rudnik, če hočeš.
Vidimo lahko, kaj se zgodi.
ROB Bowden: Off k Allison.
ALLISON: Woo.
Si težko dejanje slediti, Rob.
Želiš, da preklopite z vami?
Ali imaš, OK.
Bom poskusil in ne precej so dolgotrajni tam.
Poglejmo, če bo to deluje tako, kot želim, da.
Mogoče?
Haha!
Da.
>> Tako da sem le, da bo zelo hitro iti prek spremenljivke, zank, pogojnih,
in malo na prevajalnik.
Če imate vprašanja, na vsak čas, prosim nehaj me.
Ti fantje me bo spomnil, da ponovite Vaše vprašanje v primeru, sem pozabil,
vendar ne sme biti preveč slabo.
>> Torej spremenljivk, ja.
Nimamo enega od vaših Scratch kosov tukaj.
Prepričan sem, da večina od vas, če ste imeli neke vrste igre
ki ste jo ustvarili z Scratch, ste imeli slediti nekaj podobnega rezultata,
ali časa, ali kaj podobnega.
Torej tiste svetlo oranžna kosi, ki jih vidimo tam
so le oblika Scratch od spremenljivke, in vam bo zagotovo
uporabljali spremenljivke skozi svoje programe.
Če niste, nisem ravno prepričani, kaj počnete.
>> Ampak vseeno, velika stvar, definiranje spremenljivk.
Z C ima vsaka spremenljivka da ima tip izjavil:
zato sem ti dal zelo splošno eden na vrhu.
Tako boste imeli svoj tip in potem karkoli
ste se odločili, da pokličete vašo spremenljivko.
Torej, v tem primeru, vrsto V vašem spremenljivo seznamu.
>> Imamo tri primere.
Char nekega razreda, iz razreda A, ki je kaj
Prepričan sem, da si vsi želimo, da se v tem razredu.
Določite lahko mnogokratnik spremenljivke na eni liniji
dokler vsi so enakega tipa, ki je naš drugi primer tam
kjer imate tri spremenljivke, x, y in z.
Oni so vse boje.
In potem lahko tudi v tem zadnjem Primer z int rezultat in število
ekip, lahko jih inicializacijo tam.
>> Torej, v srednjem primer, če smo samo še plovec od X, Y in Z,
tistih, ki se še ni vključila.
Nimajo vrednosti.
Ali imajo smeti vrednosti.
In če ste poskušali in njihovo uporabo, prevajalnik bo kričati na vas.
Moraš tako razglasi in inicializirati svoje spremenljivke.
Torej, v tej zadnji, delamo tako.
Smo razglasitvi spremenljivke za rezultat in število ekip,
in smo jih inicializacijo, kar njihovo začetno vrednost 7 in 4
oz.
Cool.
Vsi dobro?
Super.
>> OK, tako da nekateri dogovori.
Če ste vi prebrali skozi stilu 50, ti
so le nekaj stvari, ki bi jih radi za vam izvajati v vašem stilu.
Tako pomembnih imen.
Če začnete kliče stvari samo x, y in z, zlasti
kot ste dobili v daljši Programi, ste
verjetno bo zmesti sebe in biti
všeč, kaj je ta spremenljivka se nanaša na.
Nimam pojma, kaj to pomeni.
>> Torej, če je to pomenilo, da imajo ocena, call it rezultat.
Če je to pomenilo, da imajo nekatere odgovor ali ima za posledico, da ga takšno ime.
Za zank, ki jih bo priti v na naslednji diapozitiv,
enoposteljne spremenljivke pisma so v redu.
ROB Bowden: I, j in k sta le dogovori za za zanke
da je vsakdo od njih pričakuje, da se imenuje i, j in k.
Lahko pokličete them-- vidim vrstico stolpec ali vrstica klic včasih
za dve ugnezdenih zank in To je tudi neke vrste standardni.
Ampak se i in j popolnoma razumeti.
>> ALLISON: Ja, jaz in j ste popolnoma v redu.
Zaradi jasnosti podobnega v nekaterih vaših P sklopov,
je morda smiselno, da imajo več opisni stvari tam samo
slediti njim.
Ampak mislim, da i, j in k mislim Velika večina nas vse uporabe.
>> ROB Bowden: S temi konvencije, zato je slog pomemben.
To je ena izmed štirih osi na katerega ste razvrščeni,
in to je tako enostavno pojdi čez Vaše P nastavljena na koncu in se prepričajte
da ne obstajajo stilistične napake.
Zato poskrbite, da ste pravilno tabbing.
Poskrbite, da vaše spremenljivke se imenujejo.
Pustite nekaj pripomb.
To je zelo enostavno, da bi dobili te točke.
Vam ni treba razmišljati o karkoli, da bi dobili te točke.
Nimate, da ugotovimo kaj ven.
To je samo zato je lepa.
>> ALLISON: Pravzaprav smo imajo stil 50, ki
vam bo povedal, kje ste zlorabili up, če ste se zajebavam na slog
in vam bo povedal točno tisto, kar vam morate popraviti in kako jo morate popraviti.
Prav tako je samo dobro, da omenimo da je seveda politika
da če ste v pisarni ure in vaša koda je zmešnjava,
lahko odkloni pomoč ste, dokler ne izgleda lepše.
Torej, začeti prav, voditi dosledno stil,
ste tudi samo dogaja, da bi vaše življenje celota veliko lažje, če
skušaš iti skozi debug.
Če ste poskušali ugotoviti, kam ste manjka kodrasti naramnicami
in so po vsem mestu, ste prav tako svoje življenje težje.
Tako da so skladni s stilom.
Obljubim, da bom lahko vaše življenje lažje.
Da bomo lahko naše življenje lažje.
Vsakdo bo veliko srečnejši.
In to je tisto, kar želite.
GABRIEL: Vaša ocena bo višja.
ALLISON: Ja, in tvoj razred.
Če je vaš TF je, kot si ti, kaže, da je ugodna.
Vse je v redu, in potem samo druga točka tukaj.
Dosledni initializations.
Torej, kot smo videli, lahko razglasi in inicializacijo stvari.
Več spremenljivk na isti liniji.
Ena stvar, ki bi si radi ne storiti je, da razglasi nekatere spremenljivke
in jih ne inicializira na isti linija, ki jo inicializacijo druge.
>> Torej, v primeru, da je Nima smisla sploh,
imamo primer tukaj kjer smo razglasitvi ints
V spremenljivk četrtletjih dimes in penijev,
vendar četrtine in penijev nimajo začetne vrednosti.
Mi smo jih ni inicializiran, ampak prav v sredini tam
smo že inicializiran dimes na 0.
Torej, ali storiti četrti, dimes, penijev.
Ali pa četrtine enaka 0.
Dimes enaka 0.
Denarna enota je enaka 0, ali karkoli te začetne vrednosti.
>> Velika stvar s stilom, biti dosledni.
Če ste v dvomih, se dosledno.
Ampak sledijo našemu slogu vodnik preveč.
Cool.
Vsi dobro tam?
>> OBČINSTVO: Kje je slogovni priročnik?
ALLISON: slogovni priročnik je on-- kaj je spletna stran?
>> GABRIEL: Mislim, da je manual.cs50.net/--
ALLISON: Style?
>> GABRIEL: Style.
Yep.
>> ALLISON: Da.
Torej vprašanje, kjer je slog 50.
manual.cs50.net/style.
Ja?
>> OBČINSTVO: Če smo opredeljevanju spremenljivke, je OK
če smo se kot [neslišno] kot int rezultat in nato int cilj.
Torej bi lahko rekli, da zdaj smo jih imam jih definira skupaj?
>> ALLISON: Torej, vprašanje, če bi imate odvečno kodo
Ko definirate spremenljivke, kot so int rezultat in
V naslednjo vrstico int igro?
ROB Bowden: Obstajajo definitivno primeri, kjer je odveč koda slaba.
Jaz ne bi upošteval da je odveč kodo.
Jaz skoraj nikoli ne razglasi multiple spremenljivke na isti liniji doslej.
In če nič drugega, je to zato, ker ponavadi grem neke vrste komentar
razloži kaj spremenljivka je.
Tako bom rekel int rezultat slash poševnica.
Spremlja karkoli.
V skupni poševnico poševnico.
Torej, to je veliko Grosser na ta način da jih vse na isti liniji.
Jaz samo nikoli jih dal na isti liniji.
>> ALLISON: Počutim se, kot da je osebne preference, na tej točki.
>> OBČINSTVO: Ali, da gre za za zanke in stvari preveč?
ROB Bowden: Like notri?
Tako kot int i je enak 0 vejico dolžina znaša nekaj?
Da nimaš izbire.
Z za zank inicializacijo part-- tako, ste morda le videli
int i je enak 0 podpičje i manj kot karkoli podpičje i plus plus.
Da int i enak 0, tehnično lahko tudi
to, kar smo videli pred z vejicami sintakso.
int i je enak 0 vejico j enaka 3 vejica k enaka 5.
Nimaš izbire, da se razdeli da se v več vrstic,
in to je standardna oprema.
Ga vidim je v redu.
ALLISON: Awesome.
No, udoben segue v zanke.
Torej, ja, tukaj imamo nekaj primerov zank, da fantje videli v Scratch.
In seveda vse te lahko preprosto poustvarili v C.
In v bistvu vam omogočajo ponoviti nekaj del kode
do določenega pogoja je izpolnjen, kar bomo
priti v desno po pogovoru o zanke z pogojnih.
>> Torej imamo tri glavne vrste.
Kajti, časa, in storiti nekaj časa, kar bomo vsi šli skozi prav zdaj.
Torej prva je za zanke.
Torej za neki pogoj, izvedete ta blok kode.
Imamo to kul little diagram tukaj na dnu.
Ampak v bistvu imaš v tvoja za, da v prvi vrstici,
boste inicializirati svoje spremenljivke.
>> Torej, kot smo govorili, i enako 0 ali I, je enako 10.
Karkoli potrebujete, da spremenljivka, da se je
dogaja, da se tam inicializiran, prijavljeni in inicializiran do neke vrednosti.
Torej imamo nekaj Pogoj, da se dogaja
da se preveri naše spremenljivka proti nečemu.
Torej, v primeru tipičen primer, kjer morda želite ta del kode
izvršiti petkrat.
Tako da bi imeli int i enak 0, in smo zażelite ko je i manj kot 5.
Tako da pogoj je le dogaja, da preveri, da vsak čas.
Če tega pogoja ocenjuje, da res, da je
tekoč teči kodo, ki je točno Kaj to malo diagram prikazuje.
>> In tako jo izvaja.
Posodablja spremenljivko, ki je tisto, kar vidimo
v zadnjem delu naše FOR zanka inicializacija tam.
Tako da bom samo vztrajati početje to dokler se ta pogoj ni izpolnjen,
in potem bo izhod zanke in nadaljuje
premika naprej s preostalim vašega programa.
Vsi dobro tam?
Cool.
>> Torej, tukaj je primer, zelo podoben na nekaj sem govoril.
Torej, želimo le, da natisnete to je CS50 10-krat.
Torej vidite tukaj imamo za naše, potem pa
inicializacijo spremenljivke i je enak 0.
Naš pogoj preverja da je manj kot 10.
Tako ocenila, da res, ko smo se prvič začetek in potem posodobi našo spremenljivko
vsakič, ko jo dejansko izvaja in natisne to je CS50.
In bo prenehal po 10-krat.
Cool.
>> Torej, medtem ko zanke so do naslednjič.
In kot vidite tu, imamo samo nekateri, medtem ko je ta condition-- vprašanje?
>> OBČINSTVO: Kako lahko skočite v resnici le ni ena številka,
ampak dve številki [neslišno] i plus plus plus?
>> ALLISON: Torej, vprašanje je bilo, kako se lahko posodobite spremenljivko z več kot eno
naenkrat.
Torej, jaz plus plus bo update po enega vsak čas.
Če bi želeli, da ga dopolni z dva, bi lahko naredil i plus enaka 2.
>> ROB Bowden: Ste videli plus enaka v predavanju še?
>> OBČINSTVO: [neslišno].
>> ALLISON: To je dejansko Isto kot jaz enak i plus 2.
Tako se dogaja, da ga vzamete in posodablja z dvema vsakič.
Plus je enak, je le nekaj pravimo skladenjsko sladkorja.
ROB Bowden: Ja, to obstajajo za zal veliko vse aritmetične operaterji.
Torej i-krat, enake bi podvojitev števila.
j vrzel enaka 3 je enaka kot j enak j deljeno s 3.
>> ALLISON: Ali minus enak 2 bi pojemanje i dva vsakič.
ROB Bowden: Celo mod Rezultat.
Niste videli bitni operaterjev, vendar strešica enaka in znaka & enaka,
vse tiste obstajajo.
>> ALLISON: Torej, veliko krat, še posebej, s svojim prvim nekaj P sklopov,
boste verjetno z večanjem ena, tako da sem plus plus, j plus plus
so vse stvari, ki jih boš za tipično uporabo.
Ampak to posodobitev pogoj celoti znotraj vašega nadzora.
Lahko jo posodobite na kakršenkoli korakih ali na kakršen koli način ste se odločili.
Morda boste celo želeli, da bi bilo naključno število včasih.
Ampak ja, obstaja veliko stvari, ki jih lahko storite s tem.
Vam ne omejeno na i plus plus.
>> ROB Bowden: Samo, da vas Vem, da obstaja, pa tudi
obstaja v drugačni obliki, plus plus i.
Torej, če ste že kdaj iskali na spletu in se zgodi, da vidim, plus plus i,
precej pomeni isto stvar.
ALLISON: Cool.
Dobro?
Super.
Torej, medtem ko zanke.
Zelo podoben.
Imate nekaj stanje.
Glavna stvar, da obvestilo tukaj je, namesto da bi
trije različni deli vzpostaviti, imamo eno.
Pravkar imamo nekaj stanje da se je preveriti.
In na enak način, dokler ta pogoj ovrednoten kot resničen,
kodo se bo teči.
In če je to napačen, ga bo prenehal, premikanje
na naslednji del vašega programa.
Torej, to je vrsta like-- kaj Dober primer preverjanje
nekaj normalnega stanja?
GABRIEL: Medtem ko je res.
ALLISON: Lahko bi bilo sicer res.
No, 1 je enak 1.
>> ROB Bowden: Lahko naredite while-- Samo namesto z zanko,
lahko vedno kodo zanko v while,
tako da sem večji od 0 ali Medtem ko sem manj kot 10.
>> ALLISON: Awesome.
In potem smo storili, medtem ko zanke, ki je odlična za potrditev uporabnika, kjer
želite, da bi dobili nekaj od tvoj uporabnik, vidim, če je veljavna,
in potem nadaljuje od tam.
Torej ena od stvari, ki se zaveda, z storiti, medtem ko je, da se bo izvršila
in potem bo ponovno izvršiti če je ta pogoj izpolnjen.
>> Torej je verjetno najboljši način, da to storijo je le, da si primer tukaj.
Torej, kot sem že omenil, uporabnika Validacija je res useful--
ali pa whiles so res koristno pri potrjevanju pri uporabnikih.
Torej, to je le, da bo ponovno spodbudilo nekaj uporabnika
dokler ne vnesete pozitivno število, ki bi lahko bili koristni za vašo P niz
ta teden.
In tako v tem primeru, ko smo najprej zagnati ta program,
da se bo tiskanje vnesite pozitivno število.
To se dogaja, da bi dobili nekaj vhod od uporabnika,
in potem se dogaja, da preverite Vstopni proti stanju
da ste nastavili za to.
>> Torej, v tem primeru pa se dogaja, da preverite.
To se dogaja, da se reči, OK, je naša vhodna negativen,
ali je 0 ali negativen, ki bi bil veljaven.
Torej, potem bi ponovno poziv.
Vprašanje?
>> OBČINSTVO: Ali je to isto, kot takrat medtem ko zanke, če ste le kopirati to kodo
in dal je [neslišno] while zanko?
>> ALLISON: Torej, vprašanje je bilo, bi to je enako kot le nekaj časa
zanka, če bi le kopirati while zanko zgoraj.
Torej, v tem primeru, medtem ko je vaša zanka dogaja, da najprej preverite stanje.
Torej, v tem primeru, če bomo poskusili pisati le kot while,
bi rekli časa vhod je manj kot ena.
Vendar nimamo vhod za njo.
>> OBČINSTVO: Če vas [neslišno] while zanko, vključno s to kodo,
ampak potem si se soočila kodo nad while tudi.
Pravkar ste imeli to kodo [Neslišno] while zanko.
ALLISON: To bi bilo ista stvar, ja.
Torej bi lahko samo write-- namesto ob do-- Da.
GABRIEL: Ampak to je bolj elegantno.
ALLISON: Ja, to je bolj elegantno.
Lahko dobite v oblikovanju in malenkosti, ampak ja, lahko popolnoma storiti.
Katera koli druga vprašanja?
OK, v redu.
>> Zato smo se veliko pogovarjali o pogojih z vsemi temi zank, ki jih imamo,
tako da smo dejansko dobili v razmere v logičnih izrazov.
Again, jih uporabite v C, tako da samo nekako prehajamo
od več grafičnega vmesnika dejansko kodiranje.
>> Cool, da ena velika, če.
V bistvu samo nam omogoča, da uvedejo nekaj logike v naš program in preverjanje
sys pogoji.
Torej, v tem primeru, OK, je n večji kot 0?
Da, to je, da lahko to izvede.
To je samo preverjanje nekaterih Pogoj, da ste
nastaviti, kar mislim, da smo vsi zadovoljni s preverjanjem pogojev.
Cool.
Torej, če je še tvoja druga, lahko rečeš OK, če je to res,
storite to prva stvar.
V nasprotnem primeru vam želim Privzeta in narediti nekaj drugega.
Tako kot v tem primeru, ali boste izbrali pozitivno število ali negativno število.
Imate samo dve možnosti.
Jo potrebujete za izvedbo, ne glede kakšne so vaše uporabniške vhodi.
Torej lahko rečemo, dobro, je večja od 0?
Cool.
Natisni pozitivno število.
Če je ni, natisnite negativen.
Vsi dobro?
>> Nato pa ena stvar, da priznajo, je da če je pogoj izpolnjen, če,
sicer ne bo nikoli tudi izvršiti.
Samo eden od teh bo izvršiti naenkrat.
Torej, to je kompromis.
Ne boste dobili, da imajo oboje.
Ali boste imeli prvi pogoj.
Ali boste imeli, če ali drugje, ni tako.
Ki lahko nato, da se stvari še bolj zapleteno,
ker lahko storite, če, sicer se, in nato drugega.
Torej v tem primeru smo imajo tri pogoje.
In še enkrat, samo eden od teh je dogaja, da na koncu se izvede.
Torej boste morda sprašujete dobro, kaj, če vas
nekaj, kar lahko izpolnijo dva takšna.
Mogoče karkoli ste vnašanjem izpolnjuje oba pogoja
kajti če in else if.
Edina stvar, ki se dogaja, da teče
>> ALLISON: Takoj, ko najde nekaj da izpolnjuje pogoj, da
ocenjuje, da drži, da je kaj se dogaja, da teče in nič drugega.
Torej, če si imel, je ta številka med 0 in 5 za svoj prvi,
ali je ta številka med 3 in 5 za drugega, če dela,
in vnesete number-- Rekel sem 0 in 5 in-- 4.
To bo udaril prvi.
To se dogaja, da se reči, OK, to število med 0 in 5.
Izvršiti in oditi.
To ne bo nikoli udaril to drugo možnost.
Cool?
Super.
>> OK imamo tudi izjave preklopijo, želite še more-- ali žal,
Stikalo je naslednji.
Jaz sem že pred sebe tukaj.
Spet, multipla če bloki kjer je, kot sem rekel
je takoj, ko se vam zdi stanje da je izpolnjen, in če drugega, če drugega,
pušča.
Če morate preveriti več stvari, ste
želeli uporabiti, ker da bo preveril, vsakič tukaj.
Tako da bo ta teče skozi in če je večja ali enaka 90,
da se bo izpisal.
In bo trajal skozi in preveriti vsak izmed njih.
>> OBČINSTVO: Torej to ne bi bilo bolj buggy kot [neslišno].
To ne bi bilo všeč [neslišno]?
>> ALLISON: vprašanje je, bi bilo to buggy ali pa to stori, kar hočeš.
Res je odvisno od česa hočeš iz svojega programa.
>> OBČINSTVO: Mislim, kot če daš 90 v.
ALLISON: Če si dal 90--
OBČINSTVO: [neslišno].
GABRIEL: boš dobil dve stvari.
ALLISON: boš dobil dve stvari.
Da, dva.
>> ROB Bowden: Two?
>> ALLISON: No.
>> ROB Bowden: Four.
Če si dal 90, pa ti bo rekel, dobil A, imaš B, imaš C,
imaš D.
>> OBČINSTVO: [neslišno].
ALLISON: Right.
Tako da sem odvisen od tega, kaj želim od vas program.
Včasih boste morali preveriti več stvari.
Boste dobili veliko globlje v to, kar Dobro oblikovanje je kot greš naprej.
Važno, da se zavedaš, da je to
bo preveril vse štiri pogoje tukaj.
Ker če bi bilo to, če drugega, če drug če drugega, bi udaril, da je prvi primer,
bi natisniti imaš A in bi morali narediti.
>> ROB Bowden: Tudi če bomo odločil, da se to spremeni, da če
in je večja ali enaka 90, če in večja ali enaka 80,
in manj kot ali enako 89, če n večji od ali enak 70,
in n manjša ali enaka 79, tako da bo pravilna.
Da se bo to, kar si želimo, vendar še vedno preverja, vsak je.
>> Torej, medtem ko je v prvem scenariju, če bomo vnesite 90 s samo če else if else if,
in vnesemo 90, potem to se dogaja, da popravi.
To bo preveril najprej ena, print imaš A,
preskočite vse, zato, ker je že našli enega, ki dela.
Vsi primeri se med seboj izključujejo na osnovi če else if else if.
Torej bo to izvrši Prvo če, potem je to storjeno.
Pa bom šel do konca.
>> Ker če bomo spremenili da je to tisto, kar sem bil
rekoč z manj kot ali enaka 89.
To se dogaja, da se preveri prvo.
To bo natisniti.
To bo preveriti še enega.
To ne bo natisniti.
Preverite tretjo.
Ne gre za tiskanje.
Preverite četrti.
Zdaj gre za tiskanje.
Torej, v tem primeru, če drugega različica, saj ti primeri
se medsebojno izključujeta, to je bolje izkoristiti, če else if else if,
ker da se dogaja, da imajo manj preverjanja pogojev
kot to različico.
ALLISON: Awesome.
Torej, še ena stvar, ki jo lahko storiti, je izjave stikalo.
V bistvu switch stavek bo v neko spremenljivko,
v tem primeru je n, in določa, katere zadeve za izvedbo.
Torej, to je tudi eden, če vaš primeri bi morala biti nekako izključujeta.
Torej v tem primeru, če mi smo dobili eno, to je
dogaja, da se ujemajo karkoli, da variable-- karkoli vrednost n
je na eni od teh primerih je, 1, 2, ali 3 in natisnete ustrezno črto.
>> In potem, če opazite tukaj imamo tudi privzeto
ki jo sicer lahko mislili, da je vaš drugje.
Torej, če ste izbrali katero koli drugo številko poleg 1, 2 in 3 v tem primeru
to je le, da bo tiskanje neveljavna.
Odločanju, kdaj uporabiti investicijske sklade v primerjavi z če elses versus stikal se dogaja
biti nekaj, da boste fantje glej oblikujemo pametno, kot ste začeli pisati
bolj zapletene programe, in Ni težko hitro in pravila
kdaj jih uporabiti.
Res je odvisno od vaše kontekstu.
>> ROB Bowden: In ravno da ga vrgel ven
ker je bolj udobno oddelek.
Stikala, se nagibajo k be-- da ste omejeni
na različne načine si Uporabite jih lahko, saj investicijski skladi,
stanje lahko precej veliko karkoli želite.
S stikali primere morajo biti številke,
ali tehnično so lahko črke, vendar znakov, kot smo videli, so le številke.
Torej morajo biti številke, ampak stikala so res bolj učinkovito, kot če bi
else if else if, ker tudi ob zgledu before-- dobro,
Primer razred zdi dobra.
>> No, recimo, tukaj, smo namesto tega storiti je to, če else if else if scenarij.
Torej, če je n enak enak 1, natisnite si izbral majhno število.
Če drugega, če je n enak enak 2, si izbral srednjo številko.
Else če Rezult enak 3, visoka.
Else neveljavna.
>> Torej, recimo, da je bil naš scenarij.
Torej, recimo, da vnesemo 4, tako da pričakujemo, da bo veljaven.
Tako da, če drugega če drug če je pristop se bo delo, je
preveri prvi pogoj.
To ni zadovoljna.
Tako preverimo drugi pogoj.
To ni zadovoljna.
Preverite tretji pogoj.
Niso zadovoljni.
Torej gremo na drug in natisniti neveljavna.
>> Tako se stikalo dela je pripravlja navzdol
v tisto, kar bomo poklicati skok mizo.
Glavna ideja bitje da ko vnesete 4,
lahko takoj pojdite na privzeto.
To ni potrebno, da preverijo am primera I 1?
Nope to ni to.
Primer 2?
Nope.
Primer 3?
Nope.
Privzeto.
OK, to mora biti, kjer sem želite, in nato izvršiti to.
Ne, takoj skoči na privzeto.
Ali pa vnesem 2, to je takoj šel za 2
ne da bi morali iti skozi 1. primeru.
>> Torej, na ta način, realno danes, da je
ne, da je veliko povečanje učinkovitosti.
Ponavadi računalniki so precej hitro, in to ne da veliko.
Vendar je res, da stikala so hitrejši.
Če ste res težaven optimizirati, uporabite stikalo.
>> ALLISON: Cool.
In potem imamo Ternarni operaterja.
Torej, vem, da sem že prej omenil beseda skladenjska sladkor.
Torej, to je samo stvari, ki bi koda veliko bolj jedrnato.
Torej, to je eden od teh primerov.
>> Torej temarni upravljavec vprašaj debelo črevo, kot smo videli v nizu linije
je enaka n večji od 100 question mark visoke debelega črevesa nizka.
Torej v bistvu, kako to deluje, je, da je n večji kot 100, je pogoj.
Zato mislim, da lahko smiselna.
To je kot sprašujem.
To je rekel, oh, je n večji od 100.
Kdo ve?
In če se ocenjuje, da Res, da se dogaja, da vam
Prva stvar, ki je je na seznamu, ki je visoka.
Sicer pa se dogaja, da vam nizke.
Torej, to je samo zelo preprosta in učinkovit način za to, kot če drugje.
To je vse, kar je.
>> In če bi to napisal kot če še pogojna,
bi bilo, če je n večji od 100, se vrnite visoka.
Else, se vrnite nizka.
To je samo še veliko več jedrnat način pisanja.
>> ROB Bowden: Torej, to zlasti primer se vsakič, ko delaš nekaj
kot je ta, to je vzorec kadar uporabljam trikomponentnih zelo pogosto.
Torej še nismo govorili o obsegu, ampak Sovražim videti String s podpičjem.
Če je n večji od 100, je enako visoko.
Else, y enako nizka.
Tako da vzorec, teh pet vrstic kode dobesedno 100% časa
se lahko prenesejo v kaj je bil tam z tememem.
Torej temarni, ena vrstica kode.
Če drugega, pet.
To je primer, spomnim ven vsak čas.
To bi odličen kraj za tememem operaterja.
To je tako čista.
Ampak ljudje nikoli ne uporabljajte.
>> ALLISON: Vzemi proč Gabe.
>> GABRIEL: Torej, zdaj vi vsi naučili v predavanju ta teden
da vse, kar je v Računalnik je binarna, kajne?
Tako kot svetilk tukaj.
Lahko bodisi vklopiti in izklopiti.
In vse, kar je, mislim, dobesedno vse.
Nekatere številke in črke, in godala, in celo kodo, da napišete, ko
to gets pripravljeni za stroj Koda in stvari, kot je ta,
tako da vse izvira na 0 in 1 ".
>> In tako, ko sva se ukvarjajo s celih števil, ki
je nekaj, kar je tehnično zelo preprosta, moramo biti sposobni narediti stvari
kot jih je dodal, kar je Verjetno eden od najpreprostejših stvari
lahko storite na dva cela, kajne?
Torej, seštevanje in odštevanje deluje samo kot da deluje v decimalni zapis,
razen tu je binarna, kajne?
Tako da je v osnovi dva.
Torej, dodamo 1 plus 1.
Ki daje 0 in 1 prenaša.
In kar naprej delaš, da je tako zdaj gre bolj zanimivo vprašanje.
>> Vemo, kako predstavljajo vse pozitivna cela števila v računalniku,
vendar pa bo ta vaja.
Pretvarjaj se, da si fantje so vse leta 1960 ali nekaj poskuša ustvariti računalnik,
in boste prišli do dne način shranjevanja minus 1,
na primer, ali zmanjšana za vse celo za to zadevo.
Kako bi to naredil?
Vse ideje?
Samo mečejo ničesar na mene.
Ja?
>> OBČINSTVO: [neslišno] imenuje posebno če je vaš [neslišno].
>> GABRIEL: Določite lahko gradbena bit, ki bo 0 ali 1.
Recimo eno, če je pozitiven in 0, če je negativna.
In nato preostanek bitov je samo, da shranite številko.
Cool.
Tako da je zelo dobra ideja.
Imamo, ne vem, 200.
In če prvi bit vklopljena, potem je to plus 200.
Če je izklopljen, je minus 200.
Cool.
>> Obstaja samo en majhen problem s tem,
ki je, če se trudimo, da povzamem stvari.
Torej, zamisliti imamo 11.111 tukaj, in smo seštevek to z 00.100 karkoli.
Če ti dve pozitivni, da je v redu.
Ampak potem, če eden od jim je negativen, tako kot
recimo, da je to malo tukaj je tisti, ki je odgovoren
for-- bom narediti separate-- tako da to pomeni, da je ta številka tu
pa je pozitiven.
To pomeni, da je to ena število tukaj je negativen, kajne?
>> Ampak potem, ko ste dogaja, da jih povzamemo, si
potrebujete, če izjavo pravijo, oh, če je to 0,
potem bo moj znesek bo nekaj drugega, kajne?
Tako da je nekoliko bolj pameten način, da to
da, ki se imenuje dvojiški komplement.
Torej v bistvu tisto, kar smo storiti je, da definiramo minus 1
da je stvar, če smo dodali do 1 0 nas daje.
Naj ponovim, da je.
Torej, recimo, da je to tukaj, 1.
Kaj je stvar, ki naravno v naravnih števil
doda, da nam 0 daje?
Kaj pa, če se trudimo, da jo dodate na to številko?
Bomo have-- OK, tako da je dodajanje.
Bomo imeli 1 plus 1 je 0, in potem to prenaša.
In potem bomo dobili 0 znova.
Sem že zmeden.
In boš dobil 0 in 0 in 0 in 0 in 0 in 0.
Veliko 0-ih.
>> Na zelo zadnji, nismo bo lahko to prenesejo,
ker recimo, da smo samo trgovanje z eno bajt, tako da samo 8 bitov.
Torej, kaj računalnik počne privzeto je samo pozabi o tem [neslišno]
OK?
Torej je to, kar se imenuje v dvojiški komplement.
Mi enostavno definirati minus 1 biti stvar tukaj, da če dodamo, da 1
bi vam 0.
In to je zelo kul ker smo v resnici ne
Potrebujemo pozno izvajati drugačen tip vsote
glede na to, da je negativno ali pozitivno število.
Ali to smiselno?
>> Torej, ena stvar, ki delamo tukaj za pretvorbo
med pozitivni in negativni celo potem bomo preleteli vse,
in nato dodamo 1 do te številke.
Če poskusite narediti sami na kos papirja,
boste videli, da ima smisel.
Ampak, če vzamem to številko tukaj, to je pet.
Torej, če sem flip vse tukaj, tako 1, 1, 1, 1, 1.
Flip, flip, flip.
In potem dodam 1 do njega.
Bom imela ravno minus 5.
OK?
>> Ta vrsta je smiselna, ker če poskusite, da povzamem to s številko
da smo imeli prej, kar was-- dajmo še enkrat flip to.
Bilo je 101 in veliko je 0.
Če poskušate dodati ta dve številki skupaj,
boš imel natanko 0.
OK.
Vsa vprašanja?
>> OBČINSTVO: [neslišno]
>> GABRIEL: Kaj misliš s tem?
>> OBČINSTVO: Negative za Pozitiven [neslišno].
>> GABRIEL: No, ste flip in dodate 1 vedno.
Ja.
OK, tako kodiranja znakov tudi binarne datoteke.
Imamo ASCII tabelo, kot ste videli tudi v predavanju, kajne?
Torej, to je v bistvu preslikava stvari.
In tukaj ne morem dovolj poudariti, da je za računalnik, in 65
so dobesedno ista stvar.
Torej, če sem napisati nekaj podobnega char c enaka, bi lahko hkrati
samo napisati 65 tukaj, in to bi bilo popolnoma enako, OK?
Ni razlike whatsoever.
>> Mi ponavadi ponavadi dajo znaki v spremenljivkah tipa.
Char, ne zato, ker oni so v bistvu je za to, ampak zato, ker
človeškega konvencije.
Vendar pa lahko samo ukvarjajo s števil namesto spremenljivk tipa char,
in boste v redu.
Edina dejanska razlika med char c in int i
je, da ima int štiri bajte, v večini sistemi, medtem ko ima char en bajt.
Oni so v bistvu Ista stvar z vidika podatkov.
Kaj se bo tako natisnete tukaj?
Tukaj smo za tiskanje cifro pomočjo printf s plus 1, in tako kot cela števila,
znakov je mogoče povzeti, da znakov je mogoče povzeti tako.
Torej, to je točno 65.
Tako se dogaja, da je 66, in tu imamo
65 plus malo velik minus, ki bo, jaz res ne vem.
Vendar pa bo natanko vrzel Med velikimi tiskanimi črkami
in in manjše črke, tako bomo dobili majhen a, kajne?
Ja.
Torej, to se dogaja, da natisnete znak, ki je točno to ena.
Dobro?
Vsa vprašanja?
>> Tukaj imamo kup drugačen Vrste za numerične spremenljivke.
Smo že govorili o notr.
Float je samo način to-- je to res smešno, ker ko sem prvič izvedela
programiranje nazaj v dan s Python, Prvi program, kar sem jih kdaj
poskušal pisati, sem videl, da je bilo tip poklical in tip se imenuje plovec.
In float je za vsa realna števila.
Potem sem vprašal, zakaj naj bi Kar sem jih kdaj uporabiti int potem?
Ker če lahko uporabim vse realne številke s plovcem,
Jaz bi samo prenehate uporabljati ints, kajne?
Ker realne številke podobno kot bolj generična.
>> Izkazalo se je, da je to ne velja za računalnike
ker oni so v bistvu različni stvari.
Torej celih in plovci, operacije, da vam z njimi
bistveno razlikujejo, saj na način, ki so shranjene, OK?
Bomo govorili malo malo več o tem v sekundi.
>> Zato še enkrat je samo večji float.
Ponavadi v večini sistemov, float je štiri bajte, tako kot int.
In dvojno osem bajtov.
Dolgo dolgo je pravzaprav zgolj simbol ki jo pripnemo na vrsto kot notr.
Pravite, long long int, kot je ta.
Dolgo dolgo int x, da bi bilo več.
Torej, v večini sistemov, ki bo dala osem bajtov namesto običajnih štirih.
In lahko dejansko spusti leta, tako da lahko samo rečem dolgo dolgo,
in da deluje preveč, OK?
To lahko storite tudi druge stvari, kot so unsigned int, ali spet samo nepodpisana
Prav tako bi delovalo.
In to bi lahko x je spremenljivka tako kot vse, kar je pozitivno,
tako da vam ne morem imeti negativen številke na način, da smo videli tukaj.
Torej, po čudovito plavajočo vejico in natančnost.
To je eden od razlogov, zakaj vas želite uporabljati ints namesto plovci,
ker so Ints 100% natančen, kajne?
To je točno to številko.
Za plavajoče točke, če vas pravijo odgovor enak 1 nad 10--
Slučajno sem imel točno to Program tukaj, float.c.
Ki tiska na 20 decimalnih mest.
1 deljeno z 10, in da ponavadi je 0,1, kajne?
Ampak tukaj, če naredimo float in potem smo jo vodijo,
vidimo, da to ni ravno 0.1.
To je nekaj, kar 0,149.
>> In zakaj je to?
Ker si ne morem predstavljati vsak single mogoče realno število v pomnilniku
ker obstajajo uncountably mnogi od njih.
Tako da smo tehnično sposobni samo predstavljata končno količino njih
s končno količino podatkov.
Ampak to je res zanimivo.
Zdaj se zastavlja Vprašanje, kako bi jo
lotili predstavlja to z bitov, kajne?
Torej, kako se shranjujejo boje?
Z števil je bilo enostavno.
Ampak s plovci želite da se poveča razpon,
in želite, da bi lahko za zastopanje ogromne številke in zelo drobne številke, kot je
0.000001 hkrati.
Torej še enkrat, isto igro.
Ima kdo kakšno idejo, kako bi lahko šel okoli predstavlja plovec v spomin?
Samo mečejo ničesar.
Ja, prosim.
>> OBČINSTVO: [neslišno] kot če bi bila dva Ints in en
da [neslišno] in eden počutje vse, kar je za decimalno vejico.
GABRIEL: OK, cool.
Torej dve različni celi števili.
Lahko imaš 12,45, tako da je 12 in 45.
Lepo.
Kaj ere si hotel reči?
Ista stvar?
Ja?
>> OBČINSTVO: [neslišno] zapis kjer vas loči bazo.
>> GABRIEL: znanstveni zapis, ja to je običajno, kaj se dogaja.
Torej je to, kar se imenuje mantiso.
To je tisto, kar je pravzaprav številko, nato pa eksponent
je le, če je vejica, kajne?
Torej, to se dogaja, da je nekaj Obliko 1, 2, 3, 4, 5-krat 10
na minus 4.
Pravkar sem spoznal that-- ja, točno.
In potem je to 10 do minus 4, je dogaja, da opredelijo, kjer je vejica, OK?
V Braziliji, ki jih uporabljamo vejico.
Tukaj vidva uporabite piko.
Torej pika.
>> In to je kul, ker potem lahko osredotočiti veliko vaših bitov na tem tipu
tod na mantiso, in nato, da je bo vaš dejanski natančnost.
In to lahko storite bodisi v decimalni ali v sistemu, ki temelji na binarnem.
Obstajajo različni načinov za izvedbo tega.
Vprašanja?
Ja?
OBČINSTVO: Koliko mesta po decimalne [neslišno]?
>> GABRIEL: To je zapleteno vprašanje, ker je nikoli zares 100% natančen,
ker kot vidite tu, za nekatere številke je 100% natančna.
Verjamem, da če bi dal 0,5 tu to se dogaja, da je 100% natančna.
To se dogaja, da je 0,500000.
Torej, v tem primeru, to je odlično.
Toda v drugih primerih, je veliko manj popolna.
Po mojih izkušnjah, tako kot do štiri, pet decimalna mesta je precej natančen.
Če uporabljate dvojna, da se bo je veliko bolj natančna kot to, OK?
>> ROB Bowden: Torej, samo da mečejo nekaj več kontekst na plovci,
Nikoli ne pozabite, 100% kako je spec plovci dejansko deluje,
ampak jaz se vedno spomnim da plava začeli že grdo.
Torej ideja je, da ko prideš v resnici, res velike številke ali zares
majhne številke, smo začeli slabša
razlikovanju med dva tesna plovci.
>> Torej, kako mi je všeč, da razmišljajo o je s plavajočo vejico nenatančnosti,
obstajata dve plovci da če sem jih skušal opredeliti
v C, kljub temu, da oni so različne številke,
oni bo razlagati tako, da je enako število,
zato, ker jih ne moremo shraniti drugače.
Moramo uporabiti enake koščke.
In tako, ko smo prišli do res, res veliko število,
govorim kot 10 do 300 ali Nekaj, da je na tej točki
da je od 10 do 300, ali 5-krat 10 do 300
ni mogoče diferencirati 7-krat 10 do 300.
Tako da je zelo velika razlika med dvema številkama.
>> Ampak potem, ko prideš dol za normalne stvari dosega,
ste nagnjeni k biti precej dober razlikovanju.
In potem, ko prideš dol res majhna, ste tudi dobili spet precej slabo.
Tako kot cel kup 0,0000, postane precej slabo.
GABRIEL: Ja, tako hitro note.
Nikoli to storite.
Nikoli ne poskušajte primerjati plava uporabi enaka je enaka,
ker tudi če so že skoraj Enako, skoraj enaka ni enaka.
Torej, kaj si ponavadi je odštejete jim, da absolutno vrednost, da
in videli, če je to manjše od 0,0001 ali nekaj takega, OK?
In ohladimo.
Vem, da veliko ljudi nekaj ozadja v Java,
še posebej tisti, ki so storili AP računalništvo, kajne?
In Java je jezik ki temelji predvsem na C,
da ima nekaj zelo velike razlike.
Ampak za zanke in investicijskih skladov, stvari, kot so da, oni so vse enako sintakso.
Imam nekaj programov tukaj za prikaz tega.
>> Tako na primer, preprosto zdravo svet.
To je zdravo svet v C, ki vas fantje so zagotovo seznanjeni z,
in ta in ta je v Java.
Tako v Javi imamo to public class, zdravo svet,
in public static void Glavni in godala args.
Tetive args se dogaja pojavljati v C zelo kmalu.
Vendar pa še ni šel tja.
Zdaj imamo tukaj nična, kar pomeni, da je glavna ne sprejme nobenih argumentov.
In potem imamo System.out.println, in to je
nekako enakovredni za printf.
Tukaj ne bomo res potrebovali poševnico nazaj n ker print ln stori za vas.
To pa doda poševnice nazaj n na koncu linije.
>> Ampak, če greš v nekaj podobnega Kajti vi
lahko vidimo, da oni precej ista stvar.
Torej inicializacijo, in stanje in posodobitev
is-- sem zamudil prostor here-- oni precej ista stvar, razen Java
ima za nekaj več na visoki ravni stvari.
Tukaj lahko storimo plus I in Java bo samodejno
bi to i tu, ki je celo število, v niz,
in nato dodajte dve strune skupaj.
Tukaj v C moramo storiti in% d.
Linija tukaj, za izgleda popolnoma enako.
>> In če pogledamo, če IFS tudi videti popolnoma enako, kajne?
Tako pravi velike razlike v tistih stvareh, ki jih vidite tukaj.
Public static, nična, potem javni razred, če.
Torej Java je tisto, kar je imenuje navidezni stroj.
In to je zelo močno temelji na kaj se imenuje objektno programiranje,
ki je zelo, zelo pogosti paradigma za programiranje danes.
In ta razred, kar je tisto, kar vidiš, nekaj od objekta usmerjenosti,
se boste ustvarili razred, nato pa vam lahko izpeljemo predmete iz tega razreda.
Ne bomo preveč govori veliko o tem, da je v CS50,
ampak to je definitivno nekaj res kul,
še posebej, če hočeš, da gredo v bolj prefinjena izdelava spletnih strani
Na koncu tečaja, kot oddajte svoj končni projekt
in nekaj lepih okvirov in stvari.
>> Torej v bistvu ideja je, da vas Ne želim, da ponovno izvajati nekaj,
tako da boste ustvarili nekaj, kar je zelo splošen, kot obliko,
in potem si ustvariti različnih oblik iz njega,
in nato iz vsake te oblike, da ustvarite
nekatere bolj specifične oblike v treh dimenzije ali nekaj takega.
In imajo to hierarhijo jih podedovali od drugih, ki so, tako
vse funkcije in spremenljivke, ki velika oblika tukaj je, vsi ti
se dogaja, da imajo, in vse to so dogaja, da imajo, in tako naprej in tako naprej.
Tako da je osnovna ideja.
>> C nima, ampak C ++ ima pa toliko funkcijo.
In Java močno vplivajo ga objekta usmerjenosti,
tako da je, zakaj vidite Razred tukaj ves čas.
In druga stvar je, To Java navidezni stroj.
Torej to, mislim, da je zelo pametna ideja.
Torej, kaj so ljudje, ki izumil java storil je
niso želeli sestaviti svoj kodeks dvakrat
če bi morali teči v operacijskem sistemu Windows, ali Mac ali Linux, tako da to, kar počnejo
se dobesedno teči nekaj takega aparata,
ampak res ne vidim, da se dogaja.
Tako, da obratujejo virtualni stroj znotraj vašega računalnika, ki
je v bistvu všeč mini operacijski sistem.
In da operacijski Namen sistema v življenju
je le, da delujejo kar se imenuje byte code.
>> Torej, namesto v C, na način, kako bi zbrati je to, da če in zaženite
./if.
Pozabil sem poševnice nazaj v.
V Java, bi vam najprej Java C za njihovo zbiranje, if.c.
Ni C. se je dot java.
In potem boste morali teči ne ./.
Dobiš to novo datoteko if.class, vendar vam ne morem
teči if.class zdaj samo kot smo to naredili prej.
To ni izvedljiva.
Moraš teči.
Moraš ga napajajo Program se imenuje Java,
in ta program je virtualni stroj, in potem vam if.class, ali če.
Da.
In potem to deluje.
OK, tako da je ta vrsta virtualni stroj dogaja.
C ne da, tako da, če bi bil jaz dal ta program v okolju Windows,
to ne bi delovalo v C. V Java počne.
Vprašanja?
Cool.
To je, če za super oddelku za danes.