>> ROB BOWDEN: Tämä on mukavampaa jakso,
mutta se ei tarkoita, että jos tuntuu et ole mukavampaa
et opi asioita täällä.
Joten pääset alkuun.
Onko sinulla dioja menee suoraan asioita.
Olenko noin vain ottaa sen juuri nyt?
Kytkentä läppäreissä.
>> Allison: Et halua esitellä itsesi, Rob?
>> ROB BOWDEN: Voi, olen Rob.
Tämä on minun viides vuosi TF-Ing CS50.
>> GABRIEL: olen Gabriel.
Olen johtaja TF CS50.
Olin TF viime vuonna ja tänä vuonna.
Allison: Ja olen Alison, ja tämä on minun toinen vuosi TF-Ing CS50.
>> ROB BOWDEN: Okei, joten tämä juttu vasemmalla,
toivottavasti olet nähnyt sen ennenkin.
Jos ei, koska olet ladata sen itse,
sinun olisi pitänyt nähdä se luento.
Joten tämä on CS50 laite, ja hän teki jokseenkin sen kuvaus
luento.
Mutta pohjimmiltaan se on vain sinua käytössä on käyttöjärjestelmä
järjestelmän sisällä käyttöjärjestelmä järjestelmä, jotta voimme antaa sinulle
ohjelmia ilman huolehtia, oh on tämä
menossa töihin sekä Windows ja Mac, tai jos jotkut teistä
ovat jo käytössä Linux, Linux.
Se on vain tarkoitus olla yhteinen pelaaminen
kenttä niin jokaisella on täsmälleen sama ympäristö.
>> Joten jos et ole ladannut tämän jo,
sinun pitäisi ladata sitä, koska olet menossa on se ongelma asetettu.
Ja se on kaksi gigatavua lataa, joten se saattaa kestää jonkin aikaa.
Harvard se menen nopeasti.
Niin CS50 laite.
>> Nyt alussa, aiomme puhua vain joukko komentorivin
kamaa, ja niin, että minä puurtamista Tässä pikku ympäristössä tänne.
Ja huomaa kaikki asiat Sanon täällä juuri nyt
ovat menossa töihin, jos olet sisällä pääte laitteen sisäpuolelle,
tai jos olet sisällä gedit pääteikkunassa
kaapin sisällä.
Joten ne ympäristöt ovat identtiset.
>> Mutta aion mennä kolmasosa reittiä.
Ja huomaa täällä tätä pikku IP-osoite täällä.
Joten sinun ei tarvitse tehdä tämän, mutta tämä IP
address-- nyt jos I-- paitsi se on estänyt tämän.
OK, joten IP-osoite yli päätelaitteeseen
here-- joten tätä päätettä tässä terminaali minun Mac.
Joten tämä ei ole millään tavalla tällä hetkellä liittyvät siihen laitteeseen lainkaan.
Ja jos olet Windows, niin olet menossa tarvitse ladata jotain
nimenomaan tätä, erityisesti ihmiset yleensä käyttävät Putty, P-U-T-T-Y.
>> Joten mitä aion tehdä, on tyyppi SSH ja sitten, että IP-osoite.
No, jharvard tuohon IP-osoite.
Niin 192.168.24.220.
Tämä pelottava viesti, sivuuttaa se.
Kirjoita vain kyllä.
Tämä on CS50 laatikkoon.
Se kysyy salasanaa.
>> Ja niin paljon näitä yhteyksissä, joissa se kysyy salasanaa, [äänetön].
Meillä on paljon kysymyksiä, joissa se sanoo, että se ei oikeastaan ​​kirjoittaa.
Se ei näytä sinulle merkkiä salasanaa kirjoittaessasi, jos mitään,
ja turvallisuutta, sillä jos joku etsii yli olkapääsi
ja he näkevät star tähti tähti, niin he
tietää, että salasanan on neljä merkkiä.
Joten ajatus on se kysyy salasanaa, tyyppi.
Se ei tule näyttämään te merkkejä,
mutta se on oikeastaan ​​hyväksymistä.
Tässä tapauksessa, milloin tahansa koskaan nähdä salasanakehotteessa
käsittelevät laitteen, salasana tulee olemaan Crimson.
Niin Crimson.
>> Ja nyt täällä sisällä tämän ikkuna, joka on minun Mac,
Olen periaatteessa ottaa täsmälleen sama näkymä
koska sisällä terminaalin laitteeseen.
Joten sinun ei tarvitse tehdä tätä.
Voit tehdä kaiken mitä haluat laitteen sisältä.
En juuri koskaan itse tehdä mitään laitetta.
Olen melkein aina minimoida ja nyt Olen työskennellyt SSH osaksi laitetta.
>> Jos jotain, jos on hitaampi tietokone,
saatat huomata eron.
Teen näin, koska olen mieluummin tämä pääte ikkuna.
Siinä on joitakin ominaisuuksia, kuten Voin jakaa ikkunan,
ja nyt voin SSH laitteen kautta.
Sain kaksi SSH mennään kerralla.
Jos tietokone on erityisen hidasta ja olet työskennellyt laite,
ja huomaat tämä on todella laggy riippumatta.
On yleensä paljon nopeammin jos olet SSH-ed.
Mutta muuten voit työskennellä joko tavalla.
>> Yleisö: Mitä SSH tarkoittaa?
>> ROB BOWDEN: Secure kuoret, jotain tuollaista?
Mitä SSH tarkoittaa?
GABRIEL: Secure Shell.
Allison: Se on vain Secure Shell.
ROB BOWDEN: Secure Shell.
Se on protokolla, joka sinä-- se turvallinen protokolla, niin salattu.
Ihmiset eivät voi nuuskia verkon ja mitä sanot mitään
olet SSH-ed.
Ja itse asiassa menneinä päivän CS50, niin vuonna 2009
kun olin fuksi, niin, että olet työskennellyt CS50 ongelma sarjaa,
olitko SSH-ed jossain palvelin että annoimme sinulle pääsyn,
ja olet työskennellyt siellä.
Joten sinulla ei ole tätä graafinen laite.
Et ole gedit.
Sinulla ei ollut kaikki nämä asiat, jotka et voisi visuaalisesti kohta ja napsauta.
Sinun piti työskennellä tässä käyttöliittymässä.
Mieluummin työskennellä tässä käyttöliittymässä.
Joten osa siitä, mitä me aiomme on menossa yli juuri nyt
ovat joukko käskee sinun pitäisi
alkaa saada tuttuja kuin mennä pitkin aikana.
Ja rehellisesti, kun olet tottua niihin, se
on niin paljon nopeampi toimi tässä ympäristössä
kuin se on työskennellä Finder, vetämällä ja valitsemalla asioita.
>> Joten tässä me olemme.
Nyt vain SSH-ed, ja niin oletus toimipisteessä sinua
nähnyt joitakin näistä komennoista luokassa, mutta me mennä yli ne kaikki uudestaan.
Oletussijainti olemme vuonna on kotihakemisto.
Ja hakemisto, vain toinen sana kansioon.
Joten olemme kotihakemiston.
LS, luettele tiedostot tähän hakemistoon.
Ilmeisesti olen luonut blah.c aiemmin.
Joten meillä on työpöytähakemistossa.
Huomaat syntaksin korostus?
Vaaleansininen korostus osoittaa hakemisto ja suora valkoinen
osoittaa vain tavallinen tiedosto.
Joten siellä tulevat olemaan jotkut muut värit näet.
Suoritettava tiedosto on todennäköisesti menossa olla vihreä tai jotain.
OK, joten olemme kotihakemiston.
>> Nyt jos haluan mennä eri hakemisto, cd on komento haluan.
Vaihda siis hakemistoon, ja sitten siirtää hakemiston nimi
että et halua mennä.
Joten tässä meillä on neljä vaihtoehtoa.
Voin mennä lataukset, ja nyt näemme tässä se on päivittänyt tämän sulkulausekkeesta
sanoa Olen ~ / downloads.
>> Joten mikä on tilde?
Se on lyhenteenä kotihakemistoosi.
Joten lähes kaikki mitä teet on menossa olla suhteessa kotihakemistoosi
ja HKR on vain komento Käytän kerran vuodessa, että
vain tulostaa nykyisen hakemiston.
Ja niin näet tässä, että ~ / Lataukset todella ratkaisee
/ home / jharvard / lataus.
Niin / home / jharvard on kotini hakemistoon.
>> Voimme siis cd Dot.
Nyt piste piste on erityinen hakemisto, joka viittaa aina yhden hakemiston ylöspäin.
Joten jos olen ~ / downloads, sitten CD piste dot aikoo tuoda minut tilde.
Mitä mieltä olemme CD dot dot aikoo tuoda minut nyt?
Se tulee tuomaan minut / home.
Niin tilde tulosteena työhakemistossa, Olen nyt / home / jharvard.
yksi hakemisto ylös, että Nyt tässä sanotaan / home.
>> Nyt cd dot dot.
Nyt olen juurihakemistoon, ja et voi tehdä sitä uudestaan.
Sinun täytyy vain pysyä juurihakemistoon ikuisesti.
Juurihakemistoon on koko joukko asioita, että jos haluat tutkia,
pystyt.
Esimerkiksi, jos menen laariin, joka sisältää
kaikki nämä binäärit, kuten ls, ja CD, ja kaikki nuo asiat.
Joten näitä komentoja tarvitse olemassa jossain järjestelmässä,
ja se on / bin hakemistoon.
Mutta lähes kaikki mitä teet on olemaan kotihakemistostasi.
Ja cd ilman argumentteja lainkaan, voisi sanoa cd ~, ei tarvitse.
CD aikoo tuoda sinulle takaisin kotihakemistoosi.
>> Yksi viimeinen.
CD - aikoo tuoda sinut takaisin hakemistojen, että olit.
Joten en juuri cd'd kahdesti peräkkäin, joten minun viime hakemiston kotihakemistoosi.
Jos menen leikata bin, ja nyt mennään ylös ja käyttäjälle.
Käyttäjän osake.
Mennään käyttäjän osuus.
Nyt olen nyt käyttäjän osuus.
CD -, takaisin bin.
Joten tämä saa erityisen hyödyllinen kun have-- ja se tulee vaihtaa.
Joten käyttäjä osake, takaisin bin, osake bin.
>> Joten tämä saa hyödyllistä.
Saatat löytää itsesi ottaa monta, monia, monia sisäkkäisiä hakemistoja.
Ja haluat tehdä jotain todella nopeasti ylempään hakemistoon.
Menet siihen hakemistoon, tee muutokset ja muuta vastaavaa,
ja nyt haluat mennä takaisin missä olit.
CD -.
Olen aina turhautunut kun satun mennä
siihen hakemistoon I halusi tehdä työtä.
Olen aina turhautuvat, kun tein se kahdessa vaiheessa yhden sijaan askel,
koska se tarkoittaa, että cd - on menossa tuoda, että väli- sijainti
sijaan, jos haluan mennä.
>> Näemme kaikki listan tiedostot.
Tiedämme, kuinka kiertää toistaiseksi.
Joten nyt puhutaanpa muokkaamalla tiedostoja.
Niin tällä kurssilla, olet melkein aina odotetaan käyttävän gedit.
Jos haluat, voit ottaa seuraavan askeleen ja alkaa opetella komentorivin teksti
editori.
Joten eri vaihtoehtoja on olemassa.
>> Ja ne, jotka ovat todennäköisesti olemaan merkitystä sinulle,
meillä on Nano, Vim ja Emacs.
Joten Nano on aloittelijoille komentorivin tekstieditori.
Joten Nano Jatketaan blah.c olen luonut aiemmin.
Se on vain tämän standardin C-tiedosto.
Ja näet läjän tavaraa meneillään näytön alareunassa,
ja ilmeisesti blah.c sisältää tämän C-koodia.
>> Joten tässä nimenomaisessa editori, mitä se sanonta bottom--
Nyt tämä sirkumfleksi symboli, me näemme tämän ^ G, ^ X ^ O.
Niin, että lähes kaikissa yhteydessä, että näet,
saatat nähdä, että poisjääntimerkki symboli muissa paikoissa verkossa, Pinon ylivuoto,
jotain tuollaista.
Se melkein aina viittaa hallita.
Joten poistu haluan tehdä Ohjaus X. Ohjaus X, poistuu.
Ja voin käyttää nuoli avaimet liikkua.
Huomaa En voi kohta ja napsauta helposti.
Tarvitset käyttää nuoli avaimet liikkua.
Saattaa olla asetus kohta ja napsauta.
>> Mutta katsotaanpa tehdä joitakin muutoksia.
Nyt Ohjaus X mennä exit.
Se tulee sanoa Tallenna muutettu.
Nyt nopea, y kyllä, N: o.
Ohjaus C peruuttaa.
Otan vain sanoa kyllä.
Tiedoston nimi kirjoittaa.
Oletuksena on tiedosto että se jo on.
Paina Enter.
OK.
Nyt olen juuri muokannut tiedoston, tallentanut sitä, ja se on muuttunut.
>> Joten Nano on helpoin tekstieditori tottua.
Vaihtoehdot ovat Vim ja Emacs.
Nuo ovat korkeammalla tasolla tekstieditoreista että on erittäin jyrkkä oppimiskäyrä.
Joten minun henkilökohtainen mieltymys on Vim.
Ja sillä on monenlaisia ​​vaihtoehtoja.
Ja kun siihen tottuu sitä, et koskaan
halua mennä mihinkään muuhun tekstieditori, koska juuri
on niin paljon asioita käytössäsi näissä,
mutta se vie todella kauan aikaa oppia.
Joten ehkä haluat vain pakottaa itse juuri nyt tottua siihen,
mutta sanoisin, että se on sen arvoista.
Mutta se on vaikeaa.
>> Ja sitten Emacs.
Olen aina taistelu Emacs koska En tiedä, miten yhtään mitään.
Ilmeisesti Emacs ei ole oletusarvoisesti asennettu laite.
Tulemme todennäköisesti lisätä, että oletuksena asennukset.
Kun opit yhden Vim tai Emacs, siellä
ole pakottavaa syytä koskaan oppia muista,
mutta se on täysin erilainen tyyli.
OK niin se muokkaus tekstitiedostoja.
>> Yleisö: Jos olisit jumissa Vim juuri nyt, miten we--
>> ROB BOWDEN: On useita pelitiloja Vim,
ja siellä on koko tutorials oppimisen Vim.
Joten jos satut olemaan lisäystilassa järjestyksessä
kirjoittaa tekstiä, jonka voit Kirjoita että eri tavoin,
mutta on miten päästä lisäysmoodia.
Sisään tai ulos mitään erityistä tilassa, että olet vain paeta.
Ja juuri lyödä Escape saada mistä tahansa sisäkkäisiä tiloja sinun in.
Ihan ok, nyt olen takaisin normaalitilaan.
>> Ja niin normaalitilassa, paksusuoli.
Näet sen alalaidassa näkyvät.
Ja sitten q.
Niin q lopettaa, jos olet tehnyt muutoksia, joka I-- olen tehnyt muutoksia?
Olen tehnyt muutoksia ilmeisesti.
Joten jos olet tehnyt muutoksia, se tulee sanoa voit laittaa huutomerkki.
Aion kutsua sitä bang.
Niin voit laittaa kielto vain lopettaa tekemättä mitään,
tai paksusuolen WQ säästää ja lopettaa.
Niin w yleensä on kirjoittaa.
Joten kirjoita tiedoston.
Osaan kirjoittaa ja lopettaa.
Tai sitten voisi olla vain QX slam, q bang vain
päästä pois sieltä riippumatta kaikki muutokset, jotka olet tehnyt.
>> Okei, joten nyt katsotaanpa go-- voimme luoda tiedostoja.
Aloitetaan poistamalla tiedostoja.
Ja minä vain heittää yhdessä nopeasti uusi komento, kosketa.
Joten kosketa foo.
Kosketa bar.
Kosketa Baz.
Jos minä ls, nyt näemme että kyseiset tiedostot ovat olemassa.
He täysin tyhjä.
Joten touch on vain helppo tapa yksi, [äänetön].
Kaksi, teknisesti vain valtion se, se päivittää aikaleimat.
Jotta minkä tahansa tiedoston, jonka luot on liittyvän aikaleiman sitä.
Joten Baz luotiin 14 syyskuu klo 16:21.
Se on nyt 16:22, joten jos Kosketan Baz jälleen, me
nähdä, että Baz oli eniten viimeksi muokattu 16:22.
Mutta muuten en juuri koskaan katsokaa aikaleimat tiedostoja.
Joten touch, täällä olen vain käyttäen Sen avulla voit luoda nopeita tiedostoja.
>> Okei, joten nyt rm on komento, että me välitämme täällä.
Ja voimme rm Boo.
Sano poistaa säännöllisesti tyhjän tiedoston Boo.
Ja voimme kirjoittaa Y, ja nyt se on pois koneesta.
RM Baz.
Poista säännöllisesti tyhjä tiedosto Baz ja tyyppi n ilman.
Nyt se ei ole poistettu.
Niin baari ja Baz edelleen olemassa.
Foo on mennyt.
GABRIEL: vatvoa.
ROB BOWDEN: Suuri.
Niin ärsyttävää viesti täällä, poista säännöllisesti empty--
mitä sinä teet siellä?
Poista säännöllisesti tyhjä tiedosto.
Joten jos emme halua olla vaivautunut tämän viestin,
voimme heittää tämän -F lippu, ja niin se on voimassa.
Ja nyt jos minä rm -f, se ei tule sanoa haluat poistaa tämän tiedoston.
Se täytyy vain tehdä se.
Ja ls, en näe baari siellä enää.
>> Nyt on potentiaalisesti vaarallinen komento.
Se ei yleensä liian huono.
Palaamme toisessa miten se voi saada todella vaarallisia.
Ja lähdetään luomaan joitakin temp hakemistoon.
mkdir, toinen komento.
Joten mkdir on komento joka tekee hakemistoon.
Ja nyt ls näemme tässä mukava valo sininen korostettu temp hakemistoon.
Voin CD temp.
Ja voin mkdir foo.
CD foo. mkdir bar.
CD bar.
>> Näemme siis voimme helposti saada osaksi joitakin melko syvä pesiä.
Nyt miten voin poistaa hakemiston?
rmdir.
Joten jos vain suoraan yrittää rm, kuten teimme tavallinen tiedosto,
RM palkki on menossa sano ei voi poistaa bar.
Se on hakemisto.
Olemassa erityinen komento poistamalla hakemistoja, eräänlainen.
Niin rmdir bar.
Nyt baari on mennyt.
>> OK, joten rmdir olen aika paljon koskaan käytä.
Syynä being-- nyt katsotaanpa tehdä tavallista tiedostoa baari täällä.
Niin rmdir Boo.
rmdir.
Poisto epäonnistui foo.
Hakemisto ei ole tyhjä.
Joten et voi käyttää poistamaan dir päällä hakemiston, joka on mitä siinä on.
>> Joten sinulla on joitakin vaihtoehtoja.
Voit mennä tuohon hakemistoon, poista kaikki käsin, ja sitten tulla ulos
ja RMDIR hakemistoon.
Tämä tietysti kuulostaa harmittaa.
Mitä jos on olemassa tuhansia tiedostojen siellä?
No, voisit rm *.
Me puhumme * toiseen.
Se tarkoittaa käytännössä sitä, kaikki asiat.
Mutta vielä parempaa, joten rm -r.
Joten rm -r-- vuonna paljon yhteyksissä, -R tarkoittaa rekursiivinen,
josta me puhumme, mitä rekursiivinen keinoja useita viikkoja.
Mutta se tarkoittaa periaatteessa sitä, Traverse kokonaisuudessaan tämän hakemiston
ja poista kaikki.
>> Joten rm -r foo aikoo sanoa ajautua hakemistoon foo?
Kyllä.
Poista säännöllisesti tyhjän tiedoston foo / bar?
Kyllä.
Poista hakemisto foo?
Kyllä.
Joten nyt fooksi ja kaiken sen sisällä on poistettu.
>> Nyt voi saada erityisen ärsyttävää when-- katsotaanpa koskettaa 1, kosketa 2, kosketa 3.
Voisi olla koko joukko tiedostoja.
Jos haluaisin, voisin luoda tuhansia tiedostoja täällä.
Ja rm -r foo on menossa olla melko ärsyttävää.
Kyllä, kyllä, kyllä, kyllä, kyllä, kyllä.
Paljon enemmän tiedostoja nopeasti nähdä, kuinka monta kertaa
Olisin kirjoittaa kyllä.
No, me vain näki edessään, miten voimme päästä eroon tarvitse kirjoittaa kyllä, -F.
Joten mkdir foo cd foo touch 1 2 3.
OK, joten rm-rf foo on menossa sokeasti remove foo kokonaan.
Ei nopea.
Ei mitään.
Foo on mennyt.
>> Joten minulla on tapana käyttää tätä komentaa koko ajan.
Se sanoi, se on erittäin vaarallinen komento,
koska jos teen jotain tämä, se ei kehota.
Se on mennyt.
Ja se tapahtuu melko usein, ja jopa korkeamman tason CS kursseja.
Joskus näemme jotain, jossa joku
sanoo vahingossa meidän RM RF-ed kotini hakemisto ja kaikki minun P sarja on mennyt.
Ja se on tuhoisa, mutta ei ole roskakoriin.
Ei ole olemassa mitään voit hakea.
Se on vain mennyt.
Vielä pahempaa olisi jotain rm-rf /.
Joten me vain keskustella että juurihakemistoon.
Se omistaa kaikki tiedostoja järjestelmästä.
Asiat yleensä saada melko sotkuinen Kun poistat asioita, kuten ls,
ja CD, ja kaikki nämä.
>> Yleisö: Mitä eroa välillä rm, rf, ja rm *
ROB BOWDEN: Niin rm * -
>> Allison: Kysymys oli mitä ero rm, rf, ja rm *.
>> ROB BOWDEN: Niin rm *.
Star yleensä tarkoittaa kaikkia tämän hakemiston sisällöstä.
Yritetään ajatella muita tavoista osoittaa tähti.
No, Star todellisuudessa yleensä tarkoitetaan vastaa mitään mallia.
Joten jos minulla on tiedosto nimeltä dog1, kosketa dog2, kosketa CAT1, kosketa cat2.
Joten ls * 1 painoon CAT1 ja dog1, koska tähti voidaan täyttää
vuonna with-- yhden on oltava siellä, mutta tähti voi olla joko kissan tai koiran.
Se on villi kortti.
Se sana Etsin.
Villi kortti.
Tai voisin ls koira *, ja Olen saanut nähdä dog1, dog2.
Joten ne ovat listalle tiedostot jotka vastaavat kyseisen mallin.
Voit käyttää ls tällä tavalla.
>> Ls * tähden ottelut mitään.
Joten se tulee tulostaa kaikkia tämän hakemiston sisällöstä
koska ne kaikki vastaavat.
Se ei tule tulosta mitään ylemmän tason hakemistoja.
Jos minulla on sub hakemistoon, foo, ja Kosketa 1 2 3-- joten nyt jos rm * tähden,
Poista CAT1, cat2, dog1, dog2.
Voi poistaa foo.
Se on hakemisto.
>> Joten tähti laajenee kaikille hakemiston tiedostoista.
Joten teknisesti rm * on kuin sanoisi rm CAT1, cat2, dog1, dog2, foo.
Ottaa huomioon, että rm-rf, teknisesti tähti olisi aikaan sen, mitä haluamme, mutta rm -rf--
jos menen ulos tästä hakemistoon, rm-rf temp,
että menee mennä temp ja rekursiivisesti poistaa kaiken.
>> Joten tähti on erillään että ymmärretään by-- joten tämä asia
että olen käynnissä, tämä asia joka kehoittaa minua komentoja
ja sitten täytäntöönpanosta ja tekee heille, Kutsun tätä minun kuori.
Ja niin tämä kuori on itse ohjelma.
Ja jos halusin, minä voisi ajaa / bin / bash.
Kuori on nimeltään bash.
Ja nyt huomaamme jotain on hieman muuttunut,
ja se johtuu minun asetukset kuori on hieman erilainen.
>> Mutta nyt olen teknisesti käynnissä kuoren sisällä minun alkuperäinen kuori,
ja voin poistua, että kuori, ja nyt Olen takaisin minun huipputason kuori.
Tarkoituksena sanomalla että is-- tähti.
Joten tähti on jotain ymmärtää bash.
Niin rm-rf, -rf lippu on ymmärrettävissä vain RM.
Se tietää, että kun pass -rf että olet
haluavat sen rekursiivisesti poistaa kaikki tiedostot kysymättä.
Tähti on jotain ymmärretään by bash että kun sanot rm *,
bash ei aio sanoa hei rm *, poista tähti.
Bash aikoo sanoa rm * Poista CAT1, cat2, dog1, dog2.
Se automaattisesti tulee laajentaa kaikki tiedostot hakemistosta.
>> Ja samalla tilde on toinen symboli, joka bash ymmärtää.
Kun sanot cd ~, bash laajenee että kotihakemistoosi.
Muita kysymyksiä tähän mennessä?
OK joten aiomme aloittaa menee nopeasti.
>> Välilehti loppuun.
Vain heittää se siellä.
Monet ihmiset eivät ymmärtävät tämän olemassa.
Joten jos en cd dow, I halua mennä lataukset.
En tarvitse kirjoittaa nloads.
Voin vain lyödä Tab.
Niin se tunnustaa, että Dow on etuliite
ei vastaa mitään muu tässä hakemistossa,
joten se täydentää, että sinulle.
Nyt voin tulla.
>> Teen myös, että rekursiivisesti.
Niin mkdir foo.
Mennään foo.
mkdir bar.
Niin menee takaisin kotiini hakemistoon, näen lataukset.
Nyt lyömällä välilehti uudelleen, automaattisesti menossa täyttää foo.
Se on ainoa hakemistoon.
Lyömällä välilehti uudelleen automaattisesti menossa täyttää bar.
Joten nyt olen (~ Lataukset / foo / bar).
>> Joten tämä välilehti loppuun, kun sain virka,
ja olen seisomalla jonkun olkapää,
ja he aikovat rm D-O-W-N-L-O-A-D-S, olen kuolemassa.
Vain välilehti, välilehti, välilehti, välilehti.
Niin ehdottomasti käyttää välilehteä.
Ja samalla ylös ja alas, paljon ihmisiä
juuri näin tapahtui koskaan osunut ylös ja alas.
Se tulee läpi edellisen komentoja, joten jos vain juoksi jotain,
ja haluat käyttää sitä uudelleen, vain kestä kunnes saat sen.
OK.
>> Niin nopeasti, joitakin muita asioita.
Mennään takaisin temp.
Luodaan joitakin tiedostoja.
Joten täällä, olen vain aio luetella joitakin sanoja.
koira, kissa, miau.
Tehdäänpä koira, kala.
Joten nyt rep on hyvin hyödyllisiä komentoja, että olet
käyttävät etsiessään koko tiedostot tiettyä tekstiä,
ja teknisesti voit tehdä todella monimutkaisia ​​ilmaisuja siitä vastaamaan.
>> Joten tässä, jos minä grep, ja mitä minä haluan etsiä?
Sanotaan Etsin kissojen ja Haluan etsiä kaikki nämä tiedostot.
Joten miten teen kaikki nämä tiedostot?
Star.
Joten tiedosto yksi, minulla on kissa.
Luultavasti voisi olla kutsui sitä jotain parempaa,
koska se näyttää rivi numeroita tai jotain.
Mutta tiedosto minun pitää noudattaa kissa.
Tiedostossa kaksi minulla on linjassa kissa.
Joten nyt voin katsoa sisälle tiedoston yhden ja katso oh yeah, että tiedosto ei ole kissa.
Huomautus tiedosto kolme ei ollut vastinetta koska kissa ei ole olemassa.
Voin grep varten miau.
Vain tiedostoon kaksi on miau.
>> Joten tämä voit yhdistää, uudelleen, -R, joka
kuten aiemmin sanoin usein tarkoittaa rekursiivinen.
Ja niin voin tulla tänne, grep -r mistään esimerkiksi of-- Katsotaanpa muokata
tämä vain heittää kissan sinne.
Joten grep -r mistään esiintymä kissa koko tähän hakemistoon.
Ja se rekursiivisesti etsiä alihakemistot.
Joten Baz, siellä on kissa.
Temp / 2, siellä on kissa.
Ja temp / 1 siellä on kissa.
Niin, että etsimällä sisällä tiedostoja.
>> Nyt voit käyttää myös löytää.
Ja niin löytää on nimenomaan siitä, etsii tiedostoja etunimi.
Joten tehdä joitakin enemmän.
Mennään lataukset.
Kosketa dog1.
Kosketa cat2.
Kosketa cat_dog.
Kosketa CatCat.
>> Joten haluan löytää kaikki tiedostoja koiran nimi.
Niin löytää, ja pisin kerta, kun olen koskaan muistanut
miten löytää toimi, kunnes lopulta lukea jotain, joka teki siitä niin selvä.
Niin löytää automaattisesti rekursiivinen.
Sinun ei tarvitse välittää -r.
Niin löytää piste.
Emme ole puhuneet piste vielä.
Ottaa huomioon, että dot dot aina tarkoittaa yhtä hakemisto ylöspäin.
Piste tarkoittaa aina nykyiseen hakemistoon.
Niin voisin rm -r piste Samalla tavalla voin rm-rf *.
Lopulta he tehdä saman asian.
rm-rf piste tulee poistaa koko nykyisen hakemiston.
>> OK, joita en halua tehdä siellä.
Mutta löytää piste.
Joten rekursiivisesti etsiä nykyisen hakemistoon, ja nyt kaikki
Tämän jälkeen ovat joukko lippuja, että olet Käytä jättää asioita paluuta.
Niin löytää piste palauttaa kaiken sen, voi löytää nykyisestä hakemistosta.
Nuo ovat kaikki tiedostot rekursiivisesti etsimistä.
Saa nähdä joitakin niistä toisessa.
>> Mutta jos mietit miten teen että, niin Command K, ainakin
minun terminaali Mac tyhjentää sen.
Ohjaus L yleensä tyhjentää sitä minkäänlaista terminaali.
Voit myös kirjoittaa selkeitä.
Ja jos joskus saat osaksi outo scenario--
se tapahtui minulle pari time-- jossa värit oman ohjeita
ovat kaikki sekaisin, tai et eivät näe mitään
kirjoitettaessa, kun kirjoitat, koska joskus kuin taustaväri on asetettu
sama kuin piirtovärillä ja nyt et näe fontteja.
Reset on jotain, että vain nollaa voit oletuksena mustalla taustalla,
valkoinen edessä, tai mitä tahansa asetat ne.
>> Joten missä olimme?
Etsi piste.
Joten nyt kaikki aiemmin tämä kohta rajaa tulokset
jotain, joka vastaa tiettyä mallia.
Joten tässä haluan etsiä kaiken kanssa nimellä Cat.
En saanut mitään.
Miksi näin?
No, olen vain etsivät jotain täsmälleen nimi kissa.
Jos haluan etsiä jotain että on joitakin malli, ja cat--
lainausmerkit teknisesti eivät ole tarpeen, mutta olen heittää heidät siellä.
Joten nyt se toteaa CatCat koska se on ainoa asia, joka
on jonkin verran mielivaltainen kuvio seurasi kissa.
Voin laittaa kissa *, ja nyt löytää CatCat, cat_dog, cat2,
koska nämä ovat kaikki asioita, joissa kissa alussa sen jälkeen mitään.
Voit yhdistää tähän.
Jos haluat etsiä kaikki C tiedostot että sinulla on, saatat tehdä * .c.
Olemme blah.c täällä.
Niin, että löytää töitä.
Voit hakea.
Se on koko joukko lippuja lisärajoituksia.
Ja toinen heistä, sanokaamme -D.
Niin hylätty.
Voi, se ei ole mitä haluan.
Ei -d.
Tyyppi d.
Niin löytää piste - tyyppi d.
Joten mitä se juuri teki on hakemaani kaikki tiedostot nykyisessä hakemistossa
kanssa a-- d tarkoittaa directory-- hakemistoon tyyppi.
Tämä palauttaa kaikki hakemistot hakemistossa.
Ja F on kaikki säännölliset tiedostoja, kaikki ei hakemistoja.
Niin, että vain Esimerkiksi muita tapoja
voi rajoittaa haun muut kuin vain tiedoston nimi.
>> Se on ollut 30 minuuttia.
Edelleen käynnissä.
>> Allison: Minä tuulta kautta.
Se tulee olemaan hieno.
>> ROB BOWDEN: Eli joitakin muita asioita.
Nyt bang, huutomerkki.
Joten yleensä means-- No, katsotaanpa esimerkki.
Niin! F, mitä se aikoo tehdä?
No se näyttää toistuva löytää piste tyyppinen f.
Entä! G?
Se vain grep -r kissa *.
Joten bang voit toistaa Hiljattain tehty komento.
Joten jos kirjoitan! GRE, se tulee uusinnassa komennot alkaneen GRE eniten
äskettäin.
>> Ja voit nähdä kaikki nämä komennot historiaa.
Niin historia.
Nämä ovat kaikki komennot Olen juosta tänään.
Ja hyvin, se ei ole kirjaimellisesti rajoitettu tänään,
mutta olen vain käyttänyt tätä laite kuten tänään.
Se on teidän kokonaisuudessaan historia oman bash,
paitsi että se katkaisee jossain vaiheessa.
Yleisö: Mitä tapahtuu, jos teet historia [kuultavissa] komento ja virhe
vuonna tulos silti tulostaa the--
>> ROB BOWDEN: Joo, jos on virhe jossakin näistä commands--
niin sanotaanko, että on Virhe komentoa ei löytynyt.
Näkyy edelleen historiassa.
Selvä.
Muut kysymyksiin mitään?
Niin, että Bang.
>> Nyt todella hyödyllinen komento, mies.
Niin että antaa sinulle käsikirja tietyn komennon.
Joten sanokaamme mies ls, joten tämä näkyy minulle ls.
Siinä luetellaan hakemiston sisältöä.
Ja tämä on, jos näen, että on olemassa nämä eri lippuja, jotka ovat olemassa.
Näemme siis, että ls -l olemassa jos olisimme lukea, että. ls -l
antaa minulle tämä täydellinen luettelo hakemistoon, joka omistaa tiedoston,
tiedoston koon, modifioitu aikaleima.
Joten ls -a on toinen, että saatat itse käyttää jonkin verran usein.
-al on minun yleisin lippu viime ls.
>> Joten -a, huomaa, että on paljon enemmän tiedostoja kuin vain ls.
ls -a.
Mitä yhteistä kaikki nämä tiedostot?
Ne alkavat pisteellä.
Joten tämä on yleissopimuksen Linux, joka tiedostoja, jotka alkavat pisteellä ovat piilotettuja.
Niin se tarkoittaa vain sitä, että kun vain suoraan ls,
tai me etsivät tämän hakemiston avulla Finder vastaava, tai Windows
Tutkimusmatkailija vastaava, että me eivät halua nähdä näitä piste-tiedostoja.
He vain saastuttaa näkemys asioista.
Joten ne ovat piilossa ellet erikseen
pyytää niitä jotain -a.
Voin siis CD .paikallinen, ja näen että on itse hakemistoon
jaettuun hakemistoon, ja sovelluksia, ja blah blah blah.
Niin piste, tiedostoja he vain piilossa.
>> OK, joten muut tärkeimmät.
Minulla on pari voin ohittaa.
Toivotaan vain todella nopeasti puhua tiedosto uudelleenohjaus asioita.
Joten siellä on koko monimutkainen sarja asioita voit tehdä näillä,
mutta vain nähdä ne, sanotaanko, kaiku.
Toinen komento.
Todella tyhmä komento.
Se vain tulostaa mitä kerron sen.
Niin kaiku Hei.
Se vain kaikui Hei näytön.
Hei maailma.
Echoes hello world.
>> Joten yksi komento tai jokin symboli, joka bash ymmärtää
on tämä suurempi kuin symboli, ja että on tuloste tiedostoon symboli.
Jos siis lähtö tämän foo, siellä on nyt tiedosto
foo, sisällä joka on Hei maailma.
Niin huomaat, että kun toistan Hei maailma putki foo,
se ei echo hello world.
Sen sijaan se oli otettu tiedoston foo.
Ja toinen komento vain heittää sinua, kissa.
Se on helppo tapa vain täysin listata tiedoston sisältö
niin että minun ei tarvitse avata tekstieditori nähdäksesi sen.
Joten sisältö foo tiedosto ovat hello world.
Ja voisin kissa blah.c, sisältö ovat tämän.
>> Nämäkin ovat komentoja että ei odota sinun on ne kaikki ulkoa.
Ajatuksena on, että olet nähnyt niitä.
Ehkä olet työskennellyt jotain, ja olet
kuten Olen kyllästynyt tämäntyyppisen tiedoston avaamista.
Voisinpa vain katsoa klo sisältö todella nopeasti.
Voisit tehdä sitä, niin katsoa taaksepäin ja sanoa oh
Muistan jotain joka on olemassa, ja se on kissa.
>> Niin, että on menossa tiedosto.
Nyt ei ole oikeastaan ​​mitään hyvää Esimerkkinä lukeminen tiedostosta vielä.
Mikä on jotain, joka vie jotain standardia?
Mitään yksinkertaista Linux komento?
Kun saamme sen, pari viikon kaikki piece-- hyvin,
Tällä viikolla sinulla on pala jossa aloitat käyttäjän syötettä.
Ja niin yleensä kirjoitat että tulo näppäimistö.
Kirjoittamisen sijaan että tulo näppäimistö,
voit sen sijaan putken sisään tiedostoon niin, että kun teet Mario, ./mario,
putki mistä tahansa tiedoston, ja että menee ajaa Mario ohjelma.
Ei odota tuloon näppäimistöä, vaan se on
juuri menossa lukea linjat foo tiedosto.
>> Joten suurempi kuin foo ottaa sen foo tiedosto, ja alle foo
vie tavaraa foo tiedosto ja käyttää tätä syötteenä tähän ohjelmaan.
Ja vain nähdä se, voisimme myös kaiku foo bar Baz, ja sitten yhden sijasta
suurempi, tehdään kaksi osaksi foo.
Mitä se tekee?
Se vain liittää tiedostoon.
Joten sen sijaan huomaa, jos en kaiku blah osaksi foo ja sitten kissa foo, se on vain blaa.
Joten kun tulostetaan tiedostoon, se täysin korvaa tiedoston.
Jos haluat vain liittää, double [? luokkalainen. ?]
>> Ja viimeinen on putki.
Putki saa paljon monimutkaisempi, jos se vie tuotos yhden komennon
ja syöttää sen seuraavaan komentoon.
Joten jotkut yhteinen asia, historia.
Niin, hyi, en halua katsoa tätä.
Näytä kaikki komennot minun historia missä minä grep-ed jotain.
Ei, se on hämmentävää.
Näytä kaikki komennot jos saan.
Kaikki hakukomentoja olen koskaan juoksi.
>> Niin historia.
Nyt historia lähdöt seuloa tämä luettelo komennoista,
mutta en halua tulostaa sen näytölle.
Sen sijaan aion putki sen grep.
Joten grep kaikki esiintymät löytää.
Joten nyt sen sijaan grep ottaminen tulo, sen sijaan of--
grep pystyy käsittelemään niin input-- olemme käyttäen grep hieman eri täällä.
Joten sen sijaan, että kirjoittaisit luettelon asiat halusimme etsiä
ja sanoi grep ottaa syötteenä.
Joten jos en vain grep löytää, se odottaa minua kirjoittamaan asioita.
Joten kissa Hei löytää.
Hei.
Etsi.
Huomaa joka kerta kun kirjoitat löytää se tunnustaa, että olen kirjoittanut löytää.
Joten sen sijaan tämän, tulee Hae tiedostoja löytää.
>> Joten historia on nyt menossa lähtö luettelo kaikista komennoista.
Me laitamme, että tuotanto, ja olemme sen syöttämisen grep,
ja niin se sylkee kaikki esiintymät löytää.
Sanoin se olis sekava on jos I-- se on edelleen sekava.
Jos minä grep varten grep.
Huomaa sitä oikeastaan ​​aina osoittaa komento minä vain
juoksivat koska komento itsessään on grep sen sisälle.
>> OK, joten kysyttävää mitään?
Ja minä siirtää sen yli tässä vaiheessa.
Toivottavasti tämä on kiva yleiskuvan kaikki komennot
että sinun ei tarvitse olla ulkoa, mutta nämä muodostavat
kiinteä 95% siitä, mitä minä tehdä komentoriviltä.
Kannattaa myös pitää mielessä, että komentoriviltä itse, bash on ohjelmointikieli,
ja niin kun saat alas se, et kannattaa tehdä todella monimutkaisia ​​asioita.
Ja niin se on asioita, kuten silmukoita, ja jossittelua, ja kaikki nämä
että aiot tottua teidän ohjelmointikieliä.
Mutta se on kuin tämän jakson soveltamisalaan.
OK, joten ei kysymyksiä?
Allison: Ei mitään?
GABRIEL: Aiotko to--
Allison: En voi tehdä sitä miinoista jos haluat.
Voimme nähdä, mitä tapahtuu.
ROB BOWDEN: Off Allison.
Allison: Woo.
Olet kova teko seurata, Rob.
Haluatko minun vaihtaa kanssasi?
Tai sait, OK.
Aion yrittää eikä aivan yhtä pitkiä siellä.
Katsotaanpa, jos tämä tahto toimi niin haluan sen.
Ehkä?
Haha!
Kyllä.
>> Joten olen juuri menossa hyvin nopeasti mennä muuttujina, silmukoita, conditionals,
ja hieman kääntäjä.
Jos sinulla on kysymyksiä tahansa, lopeta minulle.
Nämä kaverit muistuttaa minua toistamaan kysymyksesi tapauksessa unohdan,
mutta sen ei pitäisi olla liian huono.
>> Niin muuttujia, joo.
Meillä ei ole yksi teidän Scratch kappaletta täällä.
Olen varma, että useimmat teistä, jos sinulla oli jonkinlainen peli
luomasi Scratch, sinulla oli seurata jotain pisteet,
tai aikaa, tai jotain sellaista.
Joten ne kirkkaan oranssi kappaletta että näemme siellä
ovat vain Scratch muoto muuttujia, ja olet varmasti
olla muuttujia koko teidän ohjelmia.
Jos et ole, en ole oikeastaan varma mitä olet tekemässä.
>> Mutta joka tapauksessa, iso juttu, määritä muuttujia.
C jokainen muuttuja on on tyypin ilmoitettu,
joten annoin teille hyvin yleinen yläreunassa.
Joten sinulla on oma tyypin ja sitten mitä tahansa
päätät soittaa muuttuja.
Joten tässä tapauksessa tyyppi teidän muuttujajoukossa.
>> Meillä on kolme esimerkkiä.
Char joidenkin luokka, ja, joka on mitä
Olen varma, että te kaikki haluavat saada tässä luokassa.
Voit määrittää useita muuttujia yhdellä rivillä
kunhan ne ovat kaikki samaa tyyppiä, joka on meidän toinen esimerkki on
jos sinulla on kolme muuttujia, x, y ja z.
He kaikki kelluu.
Ja sitten voit myös tässä viimeksi esimerkiksi int pisteet ja numero
Joukkueiden, voit ne alustaa oikeassa.
>> Niin keskellä esimerkki, jossa me vain kellua x, y, ja z,
ne eivät ole alustettu vielä.
Niillä ei ole arvoa.
Tai he ovat roskaa arvot.
Ja jos yrität käyttää niitä, kääntäjä huutaa sinulle.
Sinun täytyy sekä julistaa ja alustaa muuttujat.
Joten tässä viimeinen, me teemme molemmat.
Olemme julistaa muuttujia ja pisteet ja joukkueiden määrä,
ja me alustamalla niitä, jolloin ne alkuarvoistaan ​​7 ja 4
vastaavasti.
Cool.
Jokainen hyvä?
Mahtava.
>> OK, joten joitakin sopimuksia.
Jos te lukenut läpi tyyliin 50, nämä
ovat vain asioita, joita haluaisimme varten voit toteuttaa oman tyylisi.
Niin mielekästä nimiä.
Jos aloitat soittamalla asiat vain x, y, ja z, erityisesti
kuin olet päässyt pidempään ohjelmia, olet
luultavasti sekoittaa itse ja olla
kuin mitä on tämä muuttuja viittaa.
Minulla ei ole aavistustakaan, mitä tämä tarkoittaa.
>> Joten jos se on tarkoitus pitää pisteet, kutsuvat sitä maalintekoa.
Jos se on tarkoitus pitää jotkut vastaus tai seurauksena, antaa sille nimi niin.
Silmukoiden, josta me päästä sisään seuraavan dian,
yksikirjaimista muuttujat ovat hienoja.
ROB BOWDEN: I, J ja K ovat vain yleissopimusten silmukoita
että jokainen odottaa niitä kutsua i, j, ja k.
Voit soittaa them-- näen rivi sarakkeen tai rivin puhelun joskus
kaksi sisäkkäistä silmukkaa, ja se on myös eräänlainen standardi.
Mutta i ja j on täysin ymmärretty.
>> ALLISON: Joo, minä ja j olet täysin hieno.
Selvyyden kuten Joissakin teidän P sarjaa,
se saattaisi olla järkevää olla enemmän kuvaileva asioita siellä juuri
seurata sitä.
Mutta luulen, j ja k luulen valtaosa meidän kaikkien käyttöön.
>> ROB BOWDEN: Näillä yleissopimukset, joten tyyli on tärkeää.
Se on yksi neljästä akselit johon olet arvostellaan,
ja se on niin helppoa vain mennä yli teidän P asetettu lopussa ja varmista
ettei ole tyylillisiä virheitä.
Joten varmista, että olet tabbing oikein.
Varmista, että muuttujat on nimetty.
Jätä kommentteja.
Se on erittäin helppo saada näitä pisteitä.
Sinun ei tarvitse ajatella mitään saadakseen ne kohdat.
Sinun ei tarvitse keksiä mitään pois.
Se vain tekee sen näyttää aika.
>> Allison: Itse asiassa me on tyyliin 50, joka
kertoo missä olet Messing ylös, jos olet Messing ylös tyyli
ja kertoo sinulle mitä täytyy korjata ja miten sinun täytyy korjata se.
Se on vain hyvä mainita että se on tietenkin politiikka
että jos olet toimistossa tuntia ja koodi on sotku,
Voimme kieltäytyä auttaa kunnes se näyttää mukavampaa.
Joten aloittaa oikealla, pitää johdonmukainen tyyli,
olet myös juuri menossa tekemään elämäänne paljon helpompaa, kun
yrität mennä läpi debug.
Jos yrität selvittää jos sinulta puuttuu kihara ahdin
ja he ovat koko paikka, olet vain tehdä oma elämä vaikeampaa.
Joten olla sopusoinnussa tyyliin.
Lupaan se tekee elämästä helpompaa.
Se tekee elämästämme helpompaa.
Jokaisella on paljon onnellisempi.
Ja se, mitä haluat.
GABRIEL: Sinun arvosana on korkeampi.
ALLISON: Kyllä, ja arvosanaan.
Jos TF on kuin sinulle, taipumus olla suotuisa.
Kunnossa, ja sitten vain Toinen kohta täällä.
Johdonmukainen alustukset.
Niin näimme, voit ilmoittaa ja alustaa asioita.
Useita muuttujia samalla linjalla.
Yksi asia me haluaisimme sinun ei tehtävä on julistaa joitakin muuttujia
ja ei ne alustaa samalla linja, että olet alustetaan toiset.
>> Niin siinä tapauksessa, että tehdään Ei ole mitään mieltä,
meillä on esimerkki tästä missä olemme julistamisesta ints
muuttujiin tahoilta dimes ja penniä,
mutta neljäsosaa ja penniä ei ole alkuarvo.
Emme ole alustettu niitä, mutta keskellä siellä
Meillä on jo alustettu Dimes 0.
Joten joko tehdä neljäsosaa, dimes, penniä.
Vai neljäsosaa equal 0.
Dimes yhtä 0.
Penniä equal 0, tai mitä tahansa nämä alkuperäiset arvot ovat.
>> Iso juttu tyyliin, oltava johdonmukaisia.
Jos olet epävarma, oltava johdonmukaisia.
Vaan seuraa meidän tyyli opas liikaa.
Cool.
Jokainen hyvä siellä?
>> Yleisö: Missä tyyli opas?
Allison: tyyli opas on on-- mitä sivuilla?
>> GABRIEL: Minusta se on manual.cs50.net/--
Allison: Style?
>> GABRIEL: Style.
Jep.
>> Allison: Kyllä.
Joten kysymys, missä on tyyliin 50.
manual.cs50.net/style.
Kyllä?
>> Yleisö: Jos me määritellään muuttujia, se on ok
jos laitamme kuten [kuulumaton] kuten int pisteet ja sitten int maalia.
Joten voisitteko sanoa, että nyt me olet sai määritellä ne yhteen?
>> Allison: Eli kysymys olisi sinulla on tarpeeton koodi
kun määritellään muuttujat, kuten int pisteet ja
seuraavalla rivillä int peli?
ROB BOWDEN: On varmasti Tapauksissa, joissa tarpeeton koodi on huono.
En harkita että tarpeeton koodi.
En juuri koskaan julistaa useita muuttujia samalla linjalla koskaan.
Ja jos jotain, se johtuu siitä, Yleensä jätän jonkinlainen kommentti
selittää mitä muuttuja on.
Niin minä sanon int pisteet slash slash.
Pitää kirjaa riippumatta.
Yhteensä slash slash.
Niin se on paljon räikeämmin tällä tavalla laittaa ne kaikki samalle riville.
En vain koskaan laittaa ne samalle riville.
>> Allison: tunnen sen henkilökohtaisista mieltymyksistä tässä vaiheessa.
>> Yleisö: Onko se mennä silmukoita ja tavaraa myös?
ROB BOWDEN: Like sisällä?
Kuten int i on yhtä kuin 0 pilkulla pituus on yhtä kuin jotain?
Että sinulla ei ole valinnanvaraa.
Kanssa silmukoita alustuksen part-- niin olet ehkä nähnyt vain
int i on yhtä kuin 0 puolipiste i vähemmän kuin mitä puolipiste i plus plus.
Että int i on yhtä suuri kuin 0, Teknisesti voit myös
mitä näimme ennen kanssa pilkku syntaksin.
int i on yhtä kuin 0 pilkku j on yhtä suuri kuin 3 pilkku k = 5.
Sinulla ei ole valinnanvaraa jakaa että useaksi linjat,
ja se on standardi.
Seeing se on hieno.
Allison: Mahtavaa.
No, kätevä SEGUE silmukoiksi.
Niin joo, tässä meillä on joitakin esimerkkejä silmukoita, jotka te näki Scratch.
Ja tietysti kaikki nämä jonka se voi rekonstruoida C.
Ja ne pohjimmiltaan voit toistaa joitakin koodinpätkän
kunnes tietty ehto täyttyy, jonka jaamme
päästä heti puhumisen noin silmukoita conditionals.
>> Joten meillä on kolme päätyyppiä.
Sillä aikaa, ja tehdä samalla, joka me kaikki läpi juuri nyt.
Joten ensimmäinen on silmukoita.
Joten ehdosta, suorittaa tämän koodiosion.
Meillä on tässä jäähtyä hieman kaavio täällä alareunassa.
Mutta periaatteessa sinulla on teidän puolesta, että ensimmäinen rivi,
aiot alustaa muuttujat.
>> Niin puhuimme, i on 0 tai I on yhtä suuri kuin 10.
Mitä tarvitset, että muuttuja on se
aiotaan alustaa siellä, julisti ja alustetaan jotain arvoa.
Niin sitten meillä on joitakin edellyttäen, että on menossa
olla tarkkailun meidän muuttuja vastaan ​​jotain.
Joten jos kyseessä tyypillinen tapaus, jossa ehkä haluat tämän koodinpätkän
suorittaa viisi kertaa.
Joten meillä olisi int i on 0, ja me haluat sen olevan, kun i on pienempi kuin 5.
Niin että tila on vain aio tarkistaa, että joka kerta.
Jos tämä ehto on tosi, se on
menossa ajaa koodia, joka on täsmälleen mitä tämä pieni kaavio osoittaa.
>> Ja niin se suorittaa sen.
Se päivittää muuttuja, joka on mitä näemme
viimeinen osa meidän varten silmukka alustus siellä.
Joten se vain pitää tehdä tämä kunnes tämä edellytys ei täyty,
ja sitten se poistuu silmukan ja jatkaa
siirtymässä muuhun ohjelmaan.
Jokainen hyvä siellä?
Cool.
>> Joten tässä on esimerkiksi hyvin samankaltaisia jotain olen juuri puhunut.
Joten me vain haluamme tulostaa tämä on CS50 10 kertaa.
Niin näet täällä meillä Meidän varten, ja sitten me
alustaa muuttuja I olla 0.
Tilamme on tarkkailun että se on vähemmän kuin 10.
Niin on tosi, kun ensin aloittaa, ja sitten päivittää muuttuvien
joka kerta, että se todella toteuttaa ja tulostaa tämä on CS50.
Ja päättyy, kun 10 kertaa.
Cool.
>> Joten vaikka silmukat ovat seuraavaksi.
Ja kuten näette täällä, meidän täytyy vain jotkut taas tämä condition-- kysymys?
>> Yleisö: Miten voin hypätä oikeastaan ​​vain ei yksi numero,
mutta kaksi numeroa [kuulumaton] i plus plus plus?
>> Allison: Eli kysymys oli, miten voit päivittää muuttujan useampi kuin yksi
kerrallaan.
Joten en plus Plus Päivitetty yksi kerrallaan.
Jos halusi päivittää sen kaksi, voit tehdä i plus = 2.
>> ROB BOWDEN: Oletko nähnyt plus tasavertaisina luento vielä?
>> Yleisö: [kuulumaton].
>> Allison: Se on tehokkaasti sama asia kuin i on yhtä kuin minä plus 2.
Joten se tulee ottaa se ja päivittää sen kaksi kerta.
Plus Tasaveroinen vain jotain kutsumme syntaktinen sokeri.
ROB BOWDEN: Joo, ne on olemassa jokseenkin kaikki laskutoimitukset.
Joten en kertaa sama kaksinkertaistaisi.
j kahtiajaon yhtä suuri kuin 3 on sama koska j on sama j jaettuna 3.
>> Allison: tai miinus = 2 olisi dekrementoidaan i kaksi kerta.
ROB BOWDEN: Jopa mod tasavertaisina.
Et ole nähnyt bittioperaatioiden, mutta Järjestelmäkohdistin on sama ja et-merkki on yhtä suuri,
kaikki nämä ovat olemassa.
>> Allison: Niin paljon kertaa, varsinkin teidän ensimmäinen pari P sarjaa,
sinun on luultavasti kasvamalla yksi, joten en plus plus, j plus plus
ovat kaikki asioita, olet menossa on tyypillisesti käyttäen.
Mutta se päivitys edellytys on täysin omassa hallinnassa.
Voit päivittää sen mitä askelin tai haluamallaan tavalla päätät.
Ehkä jopa haluat sen olevan satunnaisluku joskus.
Mutta kyllä, siellä on paljon mitä voi tehdä sen kanssa.
Et ole rajoitettu i plus plus.
>> ROB BOWDEN: Just niin tietää se on olemassa, se myös
esiintyy toisessa muodossa, plus plus minä.
Joten jos olet koskaan etsimällä verkossa ja sattuu nähdä plus plus i,
melko paljon tarkoittaa samaa asiaa.
Allison: Cool.
Hyvä?
Mahtava.
Joten vaikka silmukoita.
Hyvin samankaltaisia.
Sinulla on kunnossa.
Tärkeintä on huomata tässä sen sijaan,
kolme eri osaa perustaa, meillä on yksi.
Meidän täytyy vain ehdosta joka on tarkastettavana.
Ja samalla tavalla, niin kauan kuin että ehto on tosi,
koodi tulee ajaa.
Ja jos se on väärä, se päättyy, liikkua
päälle seuraava osa ohjelmaa.
Joten tämä on tavallaan like-- mitä hyvä esimerkki tarkkailun
joidenkin normaali tila?
GABRIEL: Vaikka totta.
Allison: Voisit tehdä vaikka totta.
No, 1 on yhtä kuin 1.
>> ROB BOWDEN: Voit tehdä while-- vain sen sijaan käyttää for-silmukan,
voit aina koodata varten silmukka while-silmukka,
joten i on suurempi kuin 0 tai vaikka olen alle 10.
>> Allison: Mahtavaa.
Ja sitten meillä on tekemistä kun silmukoita, jotka on hyvä käyttäjä validointi, jossa
Haluatko saada jotain käyttäjänimi, onko se pätevä,
ja jatkaa sitten sieltä.
Niin yksi niistä asioista tietää kanssa tehdä, kun on, että se tulee suorittaa,
ja sitten se uudelleen suorittaa Jos tämä ehto täyttyy.
>> Joten luultavasti paras tapa tehdä tämä on vain nähdä esimerkki tästä.
Joten kuten juuri mainittiin, käyttäjä validointi on todella useful--
vai whiles ovat todella hyödyllinen käyttäjän hyväksymiseksi.
Niin tämä on juuri menossa uudelleen kysyy joku käyttäjä
kunnes ne tulevat positiivinen luku, joka saattaisi olla hyödyllistä oman P sarja
tällä viikolla.
Ja niin tässä tapauksessa, kun aluksi suorittaa tämän ohjelman,
se tulee tulostaa Syötä positiivinen luku.
Se tulee hakemaan käyttäjän syötettä,
ja sitten se tulee tarkistaa että tulo vastaan ​​kunto
että olet asettanut sen.
>> Joten tässä tapauksessa se tulee tarkistaa.
Se tulee sanoa, OK, on meidän tulo negatiivinen,
vai onko se 0 tai negatiivinen, mikä olisi pätemätön.
Niin se uudelleen ajallaan.
Kysymys?
>> Yleisö: Onko tämä sama silloin kuin kun silmukka jos vain kopioida että koodin
ja laita se [kuultavissa] while-silmukka?
>> Allison: Eli kysymys oli olisi tämä on sama kuin juuri samalla
silmukka jos me vain kopioida samalla silmukka edellä.
Joten tässä tapauksessa, teidän kun silmukka on menossa kunto ensin.
Joten tässä tapauksessa, jos yrittäisimme kirjoittaa niin vain taas silmukka,
se sanoisi taas tulo on pienempi kuin yksi.
Mutta meillä ei ole syöttää sitä.
>> Yleisö: Jos [kuulumaton] while-silmukka kuten tämän koodin,
mutta sitten selviytyi koodi yläpuolella samalla silmukka myös.
Sinä vain oli tämä koodi [Äänetön] while-silmukka.
Allison: Olisi Sama juttu, kyllä.
Joten voi vain write-- sen sijaan, do-- kyllä.
GABRIEL: Mutta se on enemmän tyylikäs.
ALLISON: Joo, se on tyylikäs.
Voit päästä suunnitteluun ja vaikka mitä, mutta kyllä, voit täysin tehdä.
Muita kysymyksiä?
OK, viileä.
>> Joten olemme puhuneet paljon olosuhteet kaikki nämä silmukat, että meillä on,
joten olemme todella joutumassa olosuhteet Boolen.
Jälleen käytät näitä C, joten vain sellainen vaihtamassa
useammasta graafinen käyttöliittymä todella koodaus.
>> Viileä, niin iso, jos.
Pohjimmiltaan vain antaa meille mahdollisuuden esitellä jotain logiikkaa ohjelmaamme ja tarkastus
sys olosuhteissa.
Joten tässä tapauksessa, OK, on n suurempi kuin 0?
Kyllä se on, niin voit suorittaa tämän.
Se on vain tarkistaa joitakin edellyttäen, että olet
asettaa, joka Luulen, että olemme kaikki mukava tarkkailun edellytykset.
Cool.
Joten jos muu on toinen, voit sanoa OK, jos tämä on totta,
tehdä ensimmäinen asia.
Muuten haluan sinun oletus ja tehdä jotain muuta.
Kuten tässä tapauksessa, voit joko valita positiivinen luku tai negatiivinen luku.
Sinulla on vain kaksi vaihtoehtoa.
Tarvitset sen suorittamaan riippumatta siitä, mitä käyttäjä syöttää.
Joten voit sanoa hyvin, se on suurempi kuin 0?
Cool.
Tulosta positiivinen numero.
Jos se ei ole, tulosta negatiivinen.
Jokainen hyvä?
>> Ja sitten yksi asia tunnistaa on että jos jos ehto täyttyy,
muuten koskaan myös toteuttaa.
Vain yksi näistä tulee suorittaa kerrallaan.
Joten se on kaupan pois.
Et saa olla molempia.
Sinulla on ehkä ensimmäinen edellytys.
Sinulla on ehkä jos tai muuta, ei molempia.
Joka sitten voi tehdä asioita vieläkin monimutkaisempi,
koska et voi tehdä, jos muuten se, ja sitten muuta.
Joten tässä tapauksessa, me on kolme edellytystä.
Ja vielä, vain yksi näistä on ehdi teloitettiin.
Niin saatat olla miettimättä No, mitä jos
on jotain, voi täyttää kaksi näistä.
Ehkä mitä olet syöttänyt täyttää molemmat kunnossa
Sillä jos ja muuta, jos.
Ainoa asia, joka tulee toimimaan
>> Allison: Heti kun se löytää jotain että se täyttää edellytyksen, että
on tosi, että mitä se tulee suorittaa eikä mitään muuta.
Joten jos sinulla on ollut tämä numero välillä 0 ja 5 teidän ensimmäinen,
vai onko tämä numero välillä 3 ja 5 muuta, jos osa,
ja syötät number-- Sanoin 0 ja 5 and-- 4.
Se tulee lyödä ensin yksi.
Se tulee sanoa OK, tämä numero on välillä 0 ja 5.
Suorita ja lähteä.
Se ei koskaan lyödä, että toinen vaihtoehto.
Cool?
Mahtava.
>> OK meillä on myös kytkin lausuntoja, jos Haluatko saada jopa more-- tai anteeksi,
kytkin on seuraava.
Saan ennen itseäni täällä.
Jälleen useita jos lohkot jossa kuten juuri sanoin
on heti kun löytää kunnossa joka on täytetty ja jos muu, jos muu,
se lähtee.
Jos haluat tarkistaa useita asioita, olet
menossa halua käyttää tätä, koska se tarkistaa joka kerta täällä.
Joten tämä jatkuu läpi ja jos se on suurempi tai yhtä suuri kuin 90,
se tulee tulostaa se.
Ja se jatkuu läpi ja tarkistaa joka ikisen näistä.
>> Yleisö: Joten tämä olisi virheellisemmin kuin [kuultavissa].
Olisiko tämä kuten [äänetön]?
>> Allison: kysymys on tämä olisi viallisista tai tämä tehdä mitä haluat.
Se oikeastaan ​​riippuu siitä, mitä haluamasi ohjelman.
>> Yleisö: Siis niin kuin, jos laitat 90.
Allison: Jos laitat 90--
Yleisö: [kuulumaton].
GABRIEL: Olet menossa saada kaksi asiaa.
Allison: Olet menossa saada kaksi asiaa.
Kyllä, kaksi.
>> ROB BOWDEN: Kaksi?
>> Allison: Ei.
>> ROB BOWDEN: neljä.
Jos laittaa 90, se tulee sanoa teille sai, sait B, sait C,
sait D.
>> Yleisö: [kuulumaton].
Allison: Oikea.
Joten en riippuu siitä, mitä haluavat sinulta ohjelmasta.
Joskus sinun täytyy tarkistaa useita asioita.
Saat paljon syvemmälle, mitä Hyvä muotoilu on kuin mennä eteenpäin.
Tärkeintä ymmärrä, että tämä
tarkistaa kaikki neljä edellytystä täällä.
Ottaa huomioon, että jos tämä olisi, jos muu, jos muu jos muu, se osuisi että ensimmäisessä tapauksessa,
se tulostaa sait ja tehtävää.
>> ROB BOWDEN: Vaikka me päätti muuttaa tätä, jos
ja suurempi tai yhtä suuri kuin 90, jos ja suurempi tai yhtä suuri kuin 80,
ja pienempi kuin tai yhtä suuri kuin 89, jos n on suurempi tai yhtä suuri kuin 70,
ja n pienempi kuin tai yhtä suuri kuin 79, niin että se on oikea.
Se mitä haluamme, mutta se silti tarkistaa jokaisen sitä.
>> Joten taas Ensimmäisessä skenaariossa, jos me Kirjoita 90 vain, jos muu, jos muu, jos,
ja astumme 90, sitten se tulee korjata.
Se tarkistaa ensin yksi, tulostaa sait,
skip kaiken, koska se jo löytänyt yhden, joka toimii.
Kaikki tapaukset ovat toisensa poissulkevia perusteella, jos muu, jos muu, jos.
Joten se tulee toteuttaa ensin jos, niin se on tehty.
Se menen loppuun.
>> Ottaa huomioon, että jos muutamme tämä on mitä olin
sanomalla, joissa on vähemmän kuin tai yhtä suuri kuin 89.
Se tulee tarkistaa ensimmäinen.
Se tulee tulosta.
Se tulee tarkistaa toinen.
Se ei tule tulosta.
Tarkista kolmas.
Aio tulostaa.
Tarkista neljäs.
Nyt menossa painoon.
Niin siinä tapauksessa, if versio, koska asiat
ovat toisensa poissulkevia, se on paremmin käyttää, jos muu, jos muu, jos,
koska se tulee olemaan vähemmän tarkastuksia ehdot
kuin tämä versio.
Allison: Mahtavaa.
Joten toinen asia, mitä voimme tehdä, on kytkin lausuntoja.
Periaatteessa kytkin selvitys vie joissakin muuttuja,
Tässä tapauksessa se on n, ja kumpi koko toteuttaa.
Joten tämä on myös yksi missä tapauksissa pitäisi olla sellainen toisensa poissulkevia.
Joten tässä tapauksessa, jos me saamme yhden, se on
menossa vastaamaan mitä että variable-- tahansa n: n arvo
on yksi näistä tapauksista, joten 1, 2, tai 3, ja tulosta vastaava rivi.
>> Ja sitten jos huomaat täällä, meillä on myös oletus,
jonka voit Of ajatella kuin muualla.
Joten jos nostat muu numero lisäksi 1, 2 ja 3 tässä tapauksessa
se on vain menossa painoon kelpaa.
Päättää, milloin käyttää jossittelua vastaan jos elses vs. kytkimet on menossa
olla jotain, että te kaverit tutustua muotoiluun viisas kuin alat kirjoittaa
enemmän monimutkaisia ​​ohjelmia, ja ei ole tarkkoja sääntöjä
ja kun käyttää niitä.
Se riippuu oikeastaan ​​tietokoneen yhteydessä.
>> ROB BOWDEN: Niin juuri heittämään sitä siellä
koska se on mukavampaa osiosta.
Kytkimet, niillä on taipumus be-- joten olet vain
on monia tapoja voi käyttää niitä, koska IFS,
ehto voi olla melko paljon mitään haluat.
Kytkimillä tapauksissa olla numeroita,
tai teknisesti ne voivat olla merkkiä, mutta merkkiä, kuten tulemme näkemään, ovat vain numeroita.
Joten ne täytyy olla numeroita, mutta kytkimet ovat todella tehokkaampia kuin jos
if if, sillä vaikka ottaen esimerkiksi before-- hyvin,
luokka esimerkki näyttää hyvältä.
>> No sanotaanko täällä, me sen sijaan tehdä tätä jos muu, jos muu, jos skenaario.
Joten jos n on yhtä kuin 1, tulostaa nostit vähäinen määrä.
Entä onko n on yhtä kuin 2, nostit Keskikokoinen.
Else Jos yhtä on yhtä kuin 3, korkea.
Else kelpaa.
>> Joten sanotaan, että oli meidän skenaario.
Joten sanokaamme astumme 4, joten odotamme kelpaa.
Siten, että jos muu, jos muu jos lähestymistapa on menossa töihin on
tarkistaa ensimmäisen edellytyksen.
Se ei ole tyytyväinen.
Niin voimme tarkistaa toisen edellytyksen.
Se ei ole tyytyväinen.
Tarkista kolmas edellytys.
Ole tyytyväinen.
Joten menemme muu ja tulostaa kelpaa.
>> Muuten kytkin työt on se kokoaa alas
siitä, mitä olemme menossa soittaa hypätä pöydän.
Keskeisenä ajatuksena olento että kun annat 4,
se voi heti mennä oletuksena.
Se ei tarvitse tarkistaa olenko tapauksessa 1?
Ehei se ei ole sitä.
Tapaus 2?
Ehei.
Case 3?
Ehei.
Oletus.
OK, tämä on missä minä haluavat, ja sitten toteuttaa se.
Ei, se heti hyppää oletuksena.
Tai se astun 2, se on heti menossa 2
tarvitsematta käydä läpi tapauksessa 1.
>> Joten tällä tavalla, realistisesti nykyään se on
ole niin paljon tehostaen.
Yleensä tietokoneet ovat melko nopea, ja se ei ole kovin suuri.
Mutta se on totta, että kytkimet ovat nopeampia.
Jos olet todella yrittää optimoida, käyttää kytkintä.
>> Allison: Cool.
Ja sitten meillä on kolmen komponentin operaattori.
Tiedän siis aiemmin mainitsin sanan syntaktinen sokeri.
Joten se on vain asioita, jotka tekevät koodisi paljon suppeampi.
Joten tämä on yksi niistä tapauksista.
>> Joten kolmen komponentin operaattori on kysymysmerkki paksusuolen kuten näemme rivi merkkijono
vertaistuki n yli 100 kysymysmerkki korkea paksusuolen alhainen.
Joten periaatteessa, miten tämä toimii on se n yli 100 on kunnossa.
Joten mielestäni on järkeä.
Se on kuin kysyisi kysymyksen.
Se sanoo oh, on n suurempi kuin 100.
Kuka tietää?
Ja jos se arvioi sen totta, se tulee antaa sinulle
Ensimmäinen asia, joka on listattu siellä, mikä on korkea.
Muuten se tulee antaa sinulle alhainen.
Joten tämä on vain oikeastaan ​​yksinkertainen ja tehokas tapa tehdä kuin jos muu.
Siinä kaikki tämä on.
>> Ja jos me kirjoittaa tämän koska jos muu ehdollinen,
se olisi, jos n on suurempi yli 100, palata korkea.
Else, palata alhainen.
Tämä on vain paljon enemmän ytimekkäästi kirjoitettaessa.
>> ROB BOWDEN: Eli tässä esimerkissä on aina teet jotain
kuten tämä, tämä on malli jos käytän ternäärisen hyvin usein.
Joten emme ole puhuneet soveltamisalaa vielä, Mutta en halua nähdä merkkijono s puolipiste.
Jos n on suurempi kuin 100, s tarkoittaa korkeaa.
Else, vertaistuki alhainen.
Niin että kuvio, nämä viisi riviä koodia kirjaimellisesti 100% ajasta
voidaan siirtää mihin oli siellä kanssa kolmen komponentin.
Joten kolmen komponentin, yhtä riviä koodia.
Jos muu, viisi.
Se on esimerkki olen kohta ulos joka ikinen kerta.
Tämä olisi hyvä paikka varten kolmen komponentin operaattori.
Se on niin puhdas.
Mutta ihmiset yleensä koskaan käytä sitä.
>> Allison: Ota se pois Gabe.
>> GABRIEL: Joten nyt te kaikki oppinut luento Tällä viikolla
että kaikki tietokone on binary, eikö?
Aivan kuten lamput täällä.
Voit olla joko päällä tai pois päältä.
Ja kaiken, tarkoitan kirjaimellisesti kaiken.
Joitakin numeroita, ja merkkiä, ja jouset, ja jopa koodin että kirjoitat kun
se saa koottu kone koodi ja tavaraa niin,
niin se kaikki kuihtuu 0: n ja 1 ".
>> Ja niin kun olemme tekemisissä kokonaisluvuilla, jotka
on jotain, joka on teknisesti hyvin yksinkertainen, meidän pitäisi pystyä tekemään juttuja
kuten lisäämällä ne, jotka on luultavasti yksi yksinkertaisimmista asioista
voit tehdä kahdella luvulla, eikö?
Niin ja vähennyslaskua toimii vain kuten se toimii lukuna,
paitsi täällä se on binary, eikö?
Joten se on perusta kaksi.
Joten lisätään 1 plus 1.
Joka antaa 0 ja 1 kuljettaa yli.
Ja vain pitää tehdä, että niin nyt tulee enemmän mielenkiintoinen kysymys.
>> Osaamme edustaa kaikkia positiivisia kokonaislukuja tietokone,
mutta tehkäämme tämä harjoitus.
Teeskennellä te olette kaikki vuonna 1960 tai jotain yrittää luoda tietokoneeseen,
ja sinun täytyy keksiä ja tapa tallentaa miinus 1,
tai esimerkiksi miinus kaikki kokonaisluku, että asiassa.
Miten tekisit sen?
Onko ideoita?
Vain heittää mitään minulle.
Kyllä?
>> Yleisö: [kuulumaton] nimettävä erityinen, jos [kuulumaton].
>> GABRIEL: Voit nimetä erityisen vähän, joka on 0 tai 1.
Sanotaan yksi, jos se on positiivinen ja 0, jos se on negatiivinen.
Ja sitten loput bitin on vain tallentaa numeron.
Cool.
Niin, että on erittäin hyvä idea.
Meillä on, en tiedä, 200.
Ja jos ensimmäinen bitti on päällä, niin se on plus 200.
Jos se on pois päältä, se on miinus 200.
Cool.
>> On vain yksi pieni Ongelmana tässä,
joka on jos yritämme Yhteenvetona asioita.
Joten kuvitella meillä on 11111 täällä, ja me yhteen tämän kanssa 00100 riippumatta.
Jos nämä kaksi ovat positiivisia, se käy hyvin.
Mutta sitten jos yksi niitä on negatiivinen, kuten
Sanotaan, että tämä vähän täällä on yksi, joka on vastuussa
for-- Aion tehdä separate-- niin tämä tarkoittaa, että tämä numero täällä
on positiivinen.
Tämä tarkoittaa sitä, että tämä numero täällä on kielteinen, eikö?
>> Mutta sitten kun olet menossa lasketaan ne, te
tarvitsevat jos ilmoitus sanomalla, oh, jos tämä on 0,
sitten minun summa jotain erilaista, eikö?
Joten siellä on hieman viisaampi tapa tehdä
että, joka on nimeltään kahden komplementti.
Joten periaatteessa mitä me tarvitsee vain määrittelemme miinus 1
olla asia, että jos me lisätä enintään 1 antaa meille 0.
Toistan.
Joten sanotaan, että tämä tässä on 1.
Mikä on asia, joka luonnostaan ​​positiivisia kokonaislukuja
lisätään, että antaa meille 0?
Mitä jos yritämme lisätä sen tähän numeroon?
Aiomme have-- OK, joten katsotaanpa lisätä.
Aiomme olla 1 plus 1 on 0, ja se kuljettaa yli.
Ja sitten me aiomme saada 0 uudelleen.
Saan sekava.
Ja olet menossa 0 ja 0 ja 0 ja 0 ja 0 ja 0.
Paljon 0 n.
>> Aivan viimeinen, emme ole menossa pystyä tekemään sen yli,
koska sanotaanko olemme vain tekemisissä yhden tavun, joten vain 8 bittiä.
Joten mitä tietokone tekee oletuksena on vain unohtaa, että [kuulumaton]
OK?
Joten tämä on mitä kutsutaan kahden komplementti.
Me yksinkertaisesti määritellä miinus 1 olevan asia tässä, että jos lisäät, että 1
antaisi sinulle 0.
Ja se on aika siistiä koska meillä ei oikeastaan
täytyy myöhäistä toteuttaa erityyppinen summa
riippuen siitä, onko se negatiivinen tai positiivinen luku.
Onko järkeä?
>> Niin yksi asia, että me teemme täällä jotta muuntaa
välinen positiivinen ja negatiivinen kokonaisluku on sitten kääntää kaiken,
ja sitten lisätään 1 että määrä.
Jos yrität tehdä sen itse pala paperia,
te tulette näkemään, että on järkevää.
Mutta jos otan tämän numeron täällä, tämä on viisi.
Joten jos heitän kaiken täällä, joten 1, 1, 1, 1, 1.
Flip, flip, flip.
Ja sitten lisätään 1 siihen.
Aion olla tasan miinus 5.
OK?
>> Tällainen on järkevää, koska jos yrität Yhteenvetona tämän kanssa numero
että meillä oli ennen, mikä was-- katsotaanpa kääntää tätä uudelleen.
Se oli 101 ja paljon 0: n.
Jos yrität lisätä nämä kaksi numeroa yhteen,
olet menossa on tasan 0.
OK.
Kaikki kysymykset?
>> Yleisö: [kuulumaton]
>> GABRIEL: Mitä tarkoitat?
>> Yleisö: negatiivinen positiivinen [äänetön].
>> GABRIEL: Ei, voit kääntää ja lisäät 1 aina.
Joo.
OK, joten merkit koodataan myös binäärit.
Meillä on ASCII taulukon, kun näki myös luennossa, eikö?
Joten se on pohjimmiltaan kartoitus asioita.
Ja tässä en voi korostaa tarpeeksi että tietokonetta, ja 65
ovat kirjaimellisesti sama asia.
Joten jos kirjoitan jotain char c yhtä suuri, voisin samalla
vain kirjoittaa 65 täällä, ja se olisi täsmälleen sama, OK?
Ei ole eroa lainkaan.
>> Me yleensä tapana laittaa merkkiä muuttujien tyypin.
Char, ei siksi, että he ovat pohjimmiltaan valmistettu tätä, mutta koska
Ihmisen sopimusta.
Mutta voit vain käsitellä kokonaislukuja sijasta muuttujien Char,
ja sinun on hieno.
Ainoa todellinen ero välillä char c ja int i
on, että int on neljä tavua useimmissa järjestelmissä, kun taas char on yksi tavu.
He lähinnä Sama asia tiedonsiirron.
Joten mitä tulostaa täällä?
Täällä me tulostamista digitin printf plus-1, ja aivan kuten kokonaislukuja,
merkkiä voidaan tiivistää, niin merkkiä voidaan myös tiivistää.
Niin tämä on juuri 65.
Joten siellä tulee olemaan 66, ja tässä meillä on
65 plus pieni miinus iso, joka tulee olemaan, en todellakaan tiedä.
Mutta se tulee olemaan juuri kuilu välillä isoilla kirjaimilla
ja ja pienemmin kirjaimin, joten aiomme saada pieni, eikö?
Joo.
Joten tämä on menossa painoon merkki, joka on juuri tämä.
Hyvä?
Kaikki kysymykset?
>> Täällä meillä on joukko erilaisia tyypit numeeriset muuttujat.
Olemme jo puhua Int.
Float on vain tapa to-- tämä on todella hauska, koska kun olen ensin oppinut
ohjelmoida takaisin päivän Python, ensimmäinen ohjelma ikinä
yrittänyt kirjoittaa, huomasin, että siellä oli tyyppi kutsutaan ja joita kutsutaan float.
Ja float oli kaikki todelliset luvut.
Niin kysyin miksi En koskaan käytä int sitten?
Koska jos en voi käyttää kaikkia reaalilukuja käteisvaroja,
Haluaisin vain lopeta ints, eikö?
Koska todelliset luvut ovat paljon kuin yleisemmistä.
>> On käynyt ilmi, että tämä on ole kyse tietokoneet
koska he ovat lähinnä eri asioita.
Joten kokonaislukuja ja kellukkeet, toimintoja, jotka voit tehdä niitä
ovat olennaisesti erilaisia, koska siitä, miten niitä säilytetään, OK?
Aiomme puhua vähän hieman lisää, että toinen.
>> Joten kaksinkertainen on vain isompi kellua.
Yleensä useimmissa järjestelmissä, float on neljä tavua, aivan kuten int.
Ja kaksinkertainen on kahdeksan tavua.
Pitkä pitkä on oikeastaan ​​vain symboli että voit liittää tyyppi kuin int.
Sanot pitkään pitkään int näin.
Pitkä pitkä int x tehdä enää.
Joten useimmissa järjestelmissä, jotka antavat kahdeksan tavua sijaan tavallinen neljä.
Ja voit itse pudottaa vuonna, joten se voi vain sanoa pitkään pitkään,
ja joka toimii myös OK?
Voit myös tehdä muita asioita, kuten unsigned int, tai uudelleen vain unsigned
toimisi myös.
Ja että tekisi x on muuttuja kuten kaikki on positiivinen,
joten et voi oikeastaan ​​olla kielteisiä numerot siten, että näimme täällä.
Joten seuraavan ihana liukuluku ja tarkkuutta.
Se on yksi syy, miksi sinun haluat käyttää ints sijaan kelluu,
koska ints ovat 100% tarkka, eikö?
Se on juuri sitä määrää.
Saat kelluva pistettä, jos sanovat vastaus on 1 yli 10--
Minulla sattuu olemaan juuri tämän ohjelma täältä, float.c.
Joka tulostaa 20 desimaalin tarkkuudella.
1 jaettuna 10, ja että yleensä on 0,1, eikö?
Mutta tässä jos teemme kellua ja sitten ajaa se,
näemme, että se ei ole aivan 0.1.
Se on 0,149 jotain.
>> Ja miksi?
Koska et voi todella edustaa jokaista yksittäinen mahdollinen reaaliluku muistissa
koska on olemassa uncountably monet heistä.
Joten olemme teknisesti vain osaa edustaa rajallinen määrä niitä
jossa on rajallinen määrä tietoa.
Mutta se on todella mielenkiintoinen.
Nyt tämä herättää kysymys, miten voit
mennä noin edustavat Tämän kanssa bittiä, eikö?
Joten miten kelluu säilytetään?
Luvuilla se oli helppoa.
Mutta kellukkeilla haluat maksimoida alue,
ja haluat pystyä edustamaan valtavat ja hyvin pieni määrä, kuten
0.000001 samaan aikaan.
Joten jälleen, sama peli.
Onko kellään mitään käsitystä, miten voisimme mennä noin edustavat float muistiin?
Vain heittää mitään.
Kyllä, kiitos.
>> Yleisö: [kuulumaton] kuin jos se oli kaksi ints ja yksi
on [kuultavissa] ja yksi olento kaikki desimaalipilkun jälkeen.
GABRIEL: OK, viileä.
Joten kaksi eri kokonaislukuja.
Sinulla voi olla 12.45, niin se on 12 ja 45.
Kiva.
Mitä ere aiot sanoa?
Sama asia?
Joo?
>> Yleisö: [kuulumaton] merkintätapa jos erotat pohja.
>> GABRIEL: Tieteellinen merkintätapa, joo se on yleensä mitä tapahtuu.
Joten tämä on mitä kutsutaan mantissan.
Sitähän on oikeastaan numero, ja sitten eksponentti
on vain jos pilkku on, eikö?
Joten tämä tulee olemaan jotain muotoa 1, 2, 3, 4, 5 kertaa 10
miinus 4.
Tajusin juuri that-- joo, tarkalleen.
Ja sitten tämä 10 miinus 4 menossa määritellä missä pilkku on, OK?
Brasiliassa käytämme pilkkua.
Täällä te käytätte piste.
Niin piste.
>> Ja tämä on viileä, koska silloin voit keskittyä paljon teidän bittiä tämä kaveri
Täällä, mantissalla niin se on olemaan todellinen tarkkuus.
Ja voit tehdä tämän joko desimaalin tai binary perustuva järjestelmä.
On olemassa erilaisia tapoja toteuttaa tämä.
Kysymyksiä?
Kyllä?
Yleisö: Kuinka monta paikkaa jälkeen desimaalin [äänetön]?
>> GABRIEL: Se on monimutkainen kysymys, koska se ei ole koskaan oikeastaan ​​100% tarkka,
koska kuten näette täällä, joitakin numeroita on 100% tarkka.
Uskon, että jos laitamme 0,5 tänne, se tulee olemaan 100% tarkka.
Se tulee olemaan 0,500000.
Niin siinä tapauksessa, se on täydellinen.
Mutta muissa tapauksissa, se on paljon vähemmän täydellinen.
Kokemukseni, kuten jopa neljä, viiden desimaalin tarkkuudella on melko tarkka.
Jos käytät kaksinkertainen, se tulee olla keino tarkemmin kuin, OK?
>> ROB BOWDEN: Joten vain heittää lisää kontekstia kellukkeet,
En koskaan muista 100% miten spec kelluu todella toimii,
mutta en aina muistamaan että kelluu alkaa saada sotkuinen.
Joten ajatus on, että kun saat todella, todella suuret numerot tai todella, todella
pienien aloitamme pahenee ja pahempaa
erottumaan kahden lähellä kelluu.
>> Joten miten haluan ajatella on kelluva piste epätarkkuus,
on olemassa kaksi kellukkeet että jos yritän täsmentää niitä
C, huolimatta siitä, että he ovat eri numerot,
he tulevat olemaan tulkita sama numero,
koska emme voi tallentaa niitä eri tavalla.
Meidän täytyy käyttää samaa bittiä.
Ja niin kun pääsemme todella, todella suuri määrä,
puhuu kuin 10 300 tai jotain, se on tässä vaiheessa
että 10 300 tai 5 kertaa 10 300
ei voida erottaa 7 kertaa 10 300.
Niin se on aika iso ero välillä kaksi numeroa.
>> Mutta sitten kun saat alas normaalitasolle asioita,
sinulla on taipumus olla melko hyvä erottaa.
Ja sitten kun saat alas todella pieni, olet myös saada melko huono uudelleen.
Niin kuin koko joukko 0.0000, se saa melko huono.
GABRIEL: Joo, niin nopeasti huomata.
Älä koskaan tee sitä.
Älä koskaan yritä verrata leijailee käyttäen tasavertaisina tasavertaisten
koska vaikka he melkein Sama, lähes sama ei ole sama.
Joten mitä te yleensä tehdä, on vähennyslaskussa ne, ota absoluuttinen arvo, että
ja katso jos se on pienempi kuin 0.0001 tai jotain, ok?
Ja viileä.
Tiedän paljon ihmisiä on jonkin verran kokemusta Java,
varsinkin niitä, jotka tekivät AP tietojenkäsittelytiede, eikö?
Ja Java on kieli jotka useimmiten perustuvat C,
se on pari erittäin suuria eroja.
Mutta silmukoita, ja jossittelua, ja muuta vastaavaa että he kaikki samaa syntaksia.
Minulla on muutamia ohjelmia nähdäksesi tämän.
>> Joten esimerkiksi yksinkertainen Hello World.
Tämä on Hei maailma C, jossa voit kaverit ovat varmasti tuttuja,
ja tämä, ja tämä yksi on Java.
Joten Java meillä on tämä public class, hello world,
ja public static void Tärkein, ja string args.
String args menossa ilmestyä C hyvin pian.
Mutta älkäämme mennä sinne vielä.
Juuri nyt meillä on mitätön täällä, mikä tarkoittaa että tärkein ei ole mitään perusteluja.
Ja sitten meillä on System.out.println, ja se on
Tällainen vastaaviksi printf.
Täällä ei todellakaan tarvitse kenoviiva n koska print ln tekee sen puolestasi.
Se liittää kenoviiva n lopussa linjan.
>> Mutta jos menet jotain varten, voit
voi nähdä, että he ovat melko sama asia.
Niin alustus, ja kunnossa, ja päivitys
is-- Kaipasin tilaa here-- he melko sama asia, paitsi Java
on muutama enemmän korkean tason kamaa.
Täällä voimme tehdä plus minä ja Java automaattisesti
tekevät tästä olen täällä, mikä on kokonaisluku, osaksi merkkijono,
ja sitten liittää kaksi langat yhteen.
Täällä C meidän täytyy tehdä &% d.
Linja täällä, sillä näyttää samalta.
>> Ja jos katsomme jos, IFS myös näyttävät täsmälleen sama, eikö?
Joten todella iso erot ovat sellaisiin asioihin, jotka näet täällä.
Public static void, ja sitten public class jos.
Niin Java on mitä on kutsutaan virtuaalikoneen.
Ja se on erittäin vahvasti perustuu siihen, mitä kutsutaan olio-ohjelmoinnin,
joka on hyvin, hyvin yleinen paradigman ohjelmointiin nykyään.
Ja tämä luokka asia on, mitä näet, jotain olio,
on luot luokan ja sitten voi saada esineitä kyseisestä luokasta.
Emme aio puhua liian paljon, että CS50,
mutta se on ehdottomasti jotain todella siistiä,
varsinkin jos haluat mennä kehittyneempiä web-kehitys
lopussa tietenkin kuten lähetä Insinöörityö
ja muutamia kivoja kehyksiä ja tavaraa.
>> Joten periaatteessa se ajatus, että eivät halua uudelleen toteuttaa jotain,
joten voit luoda jotain, joka on hyvin yleinen, kuten muoto,
ja sitten luot eri muotoja siitä,
ja sitten kustakin nämä muodot, luot
joitakin tarkempia muotoja kolmessa mitat tai jotain sellaista.
Ja heillä on tämä hierarkia ne perivät toisilla, joten
kaikki toiminnot ja kaikki muuttujia, iso muoto täällä on, kaikki nämä
ovat menossa, ja kaikki nämä ovat menossa on, ja niin edelleen ja niin edelleen.
Niin, että perusajatus.
>> C ei ole tätä, mutta C ++ ei ole tällaista ominaisuutta.
Ja Java vaikuttaa voimakkaasti by olio,
joten siksi näet luokka täällä koko ajan.
Ja toinen asia on Tämän Java-virtuaalikone.
Joten tämä mielestäni on erittäin fiksu idea.
Joten mitä ihmiset, jotka keksi java teki on
he eivät halua kokoavat koodi kaksi kertaa
jos ne piti ajaa sen Windows, tai Mac tai Linux, niin mitä he tekevät
on ne kirjaimellisesti ajaa jotain laitetta,
mutta et todella nähdä sen tapahtuvan.
Joten ne kulkevat virtuaalikoneen tietokoneesi sisälle, joka
on pohjimmiltaan kuin mini käyttöjärjestelmä.
Ja että liiketulos Järjestelmän tarkoitus elämässä
on vain ajaa, mitä kutsutaan tavu koodi.
>> Joten sen sijaan C, tavalla voisimme koota tämä on tehdä, jos, ja suorita sitten
./if.
Unohdin kenoviiva.
Java, sinun pitäisi tehdä ensin Java C kokoamaan sitä, if.c.
Se ei ole C. Se on piste java.
Ja sitten sinun on suoritettava ei ./.
Saat tämän uuden tiedoston if.class, mutta et voi todella
ajaa if.class nyt vain kuten teimme ennen.
Tämä ei ole suoritettavissa.
Sinun täytyy juosta.
Sinun täytyy ruokkia sitä ohjelma nimeltä Java,
ja että ohjelma on virtuaalikone, ja sitten teet if.class, tai jos.
Kyllä.
Ja sitten se toimii.
OK joten tämä on tavallaan virtuaalikone tapahtuu.
C ei ole tätä, joten jos olisin laittaa tämän ohjelman Windows-kone,
se ei toimi C. Java se tekee.
Kysymyksiä?
Cool.
Se jos super osiossa tänään.