>> ROB: Selvä.
Tervetuloa ensimmäisen osan.
Olen Rob.
>> JOSEPH: Olen Joseph.
>> ROB: Joten me sukeltaa suoraan sisään
Ensimmäinen asia puhua on Appliance.
Joten toivottavasti suurin osa teistä on Latasin sen jo.
Mutta voit nähdä ohjeet klo cs50.net/appliance.
Voi luoja, nyt olen itsetietoinen.
Olen edelleen kuulla sen.
>> JOSEPH: Vau, se kuulostaa se on eksyksissä.
>> ROB: Joten jotkut ihmiset ovat käyneet ongelmia sen kanssa, joten älä odota
viime hetken ongelman asetettu yrittää ratkaista Laitteiden ja
selville, että se ei toimi.
>> JOSEPH: Ja jos jotain ei tapahdu ja tarvitset apua, voit mennä
cs50.net/discussion jossa on foorumi, jossa voit
voi lähettää kysymyksiä.
Ja me saamme heidät lopulta.
>> ROB: Selvä.
Joten tämä on mitä Appliance näyttää.
Taaskin se on vain täysin erillinen käyttöjärjestelmä käynnissä sisällä
mitä käyttöjärjestelmä sinulla ovat käynnissä kannettavan tietokoneen.
Ja tärkein asioita sinun käyttää ovat gedit.
Joten toivottavasti tämä on jo tullut tuttu sivusto.
Terminaali.
>> Ja voit myös käyttää Chrome sisällä Appliance.
On ollut pari ihmistä jotka ovat ilmoittaneet internet
toimi Appliance.
Ja jotkut heistä ovat vain olettaa että ei ole tarkoitus olla
internet Appliance.
Mutta kyllä, siellä on tarkoitus olla internet.
>> Minä sanon sen nyt, mutta se ei tarkoita mitään.
Jos internet ei toimi, tämä on mitä sinulla on tapana tarvitset
ajaa korjata sen.
Jos sinulla on internet kysymyksiä, älä muistaa se, vain lähettää sen
Keskustele, ja me sanomme, ajelu että.
Mutta internet pitäisi toimia.
>> Joten ainoa asia - joo, ei mitään muuten on todella merkitystä.
Mutta halusin vain huomauttaa, että -
nähdä tässä oikeassa alakulmassa.
Joten jokaisen laitteet olisi on IP-osoite.
Ja myöhemmin lukukauden, tämä IP osoite tulee enemmän merkityksellisiä
olet työskennellyt web p-set, koska voit käyttää
sivuilla olet työskennellyt teidän paikalliset Chrome käyttämällä tätä osoitetta.
>> Mutta mitä haluan käyttää IP-osoitetta varten - ja sinun ei tarvitse tehdä tätä, olen
haluavat vain huomauttaa asiasta -
on täällä.
Joten tämä on pääteikkunassa Mac, tämä ei ole
Laite ollenkaan.
Ja voit etsiä mitä Tämä komento tekee.
Mutta aion SSH suoraan minun Appliance.
En tiedä mikä IP on.
>> JOSEPH: 168 -
>> 168.224.1.0.
>> ROB: Joten kun olen tehnyt tämän, kirjaudu sisään
Nyt, periaatteessa, tämä on sama kuin pääteikkunaan sisällä Appliance.
Joten olen aika paljon koskaan todella toiminut sisällä itse laitteesta.
Olen vain aina on pyörittävä taustalla minimoidaan
ja SSHed siihen.
>> Ongelma tässä on se, et aio pystyä käyttämään gedit helposti
suoraan tästä.
Mutta jos haluat olla todellinen jäähtyä hakkeri, sinun pitäisi tottua
komentorivin tekstieditori muutenkin.
Joten Vim ja Emacs ja Nano, kaikki nämä ovat erilaisia ​​vaihtoehtoja.
Nano on yleensä helpoin.
Ja mielestäni se ei ole syntaksin korostus.
Voi ei, se täysin ei.
Joten voit käyttää Nano, koska että yksi on melko helppoa.
>> Näet kaikki nämä komennot alareunassa.
Tämä pieni porkkana symboli.
Jos et ole nähnyt sitä ennen, sinun luultavasti nähdä se paljon nyt.
Se yleensä tarkoittaa tarkastusta porkkana, kuten alhaalta vasemmalta näppäimistön
ohjausmerkki.
Joten tässä se kertoo minut tänne -
Voi, se on ei katkaista, jos en zoomata sisään
Joten Ohjaus, X on, miten Aion poistua.
Ja se sanoo voin lyödä Y Kyllä, säästö, N: o
Niin, että Nano.
>> Vim ja Emacs yleensä hieman monimutkainen ja ylivoimainen.
Mutta voit saada tottunut siihen, ja sitten tulet rakastamaan sitä.
Joten se siitä.
>> JOSEPH: Ei tarvitse tehdä sitä.
>> ROB: Joo.
Voit vapaasti käyttää gedit varten Loput lukukauden.
Joten mitään laitetta liittyviin kysymyksiin?
Vai onko sinulla mitään ajatuksia mitä muuta on puhuttu noin
laitetta?
Kyllä.
>> SPEAKER 1: Kun SSHed omalle asia, oli salasana Crimson?
>> ROB: Joo.
Salasanan aika paljon kaikkea vuonna Appliance on menossa
olla Crimson.
>> SPEAKER 2: Asenna kuin oikea IDE laitteeseen, se toimii?
>> ROB: Kuvittelen Eclipse ei ole Fedora-versio, jolloin, kyllä,
voit tehdä sen.
Se ei todennäköisesti ole todella sen arvoista.
>> Kaiutin 2: OK.
Joten se on luultavasti helpompaa, jos halusin käyttää Eclipse, vain käyttää natiivi ja
sitten ladata -
>> ROB: Voi, että on myös luultavasti helpompaa.
Mutta voit saada sen toimimaan sisällä Appliance.
>> JOSEPH: Ja kamera, kysymys oli, voit asentaa toisen
IDE sisällä Appliance?
>> ROB: Eclipse on esimerkki IDE.
Muita Appliance kysymyksiä?
Selvä.
>> Joten me siirrymme nyt komentoriviltä käyttöliittymä liittyviä asioita, joten CLI.
Ja vielä, olen juuri menossa töihin tässä, koska se on identtinen
työskentelevät pääteikkunaan sisällä Appliance.
Miten se fontti näköinen?
Onko se tarpeeksi iso?
Selvä.
>> Niin on olemassa paljon komentoja, sinun pitäisi saada melko käytetään
koko lukukauden.
Iso two navigointiin ovat ls, lista tiedostot tähän hakemistoon, ja
cd, niin siirtyä hakemistoon.
Joten en voi vaihtaa työpöydän ja sitten hyvin yleinen malli on cd
hakemisto ja heti ls Mitä hakemistosta.
>> Ihmiset myös joskus eivät ymmärrä että Tab valmistumisaika on asia.
Joten kuten cd, vh, ja sitten osuin Tab.
En juuri koskaan kirjoittamiseen koko juttu.
Ja sitten jos pidän lyömällä Tab uudelleen, se tulee automaattisesti
aloittaa listalle minulle.
Joten voin cd vhosts, paikallinen isäntä.
Ja juuri menossa -
jos et ole kuullut termin ennen, hakemisto on vain yksi sana
kansion.
Joten nyt jos näet -
katsotaanpa tuo että huipulle.
>> Joten nyt jos näet suluissa, voit näen pikku tilde, slash, vhost,
slash, paikallinen isäntä.
Niin tilde, joka viittaa kotiini hakemistoon.
Se on hakemistossa olet vuonna, kun SSH sisään
Se on hakemisto olet, kun avaat päätteen.
Se on silloin, kun alkaa.
Ja niin olen sisällä minun kotihakemiston, ja olen sisällä vhost
hakemiston sisällä minun kotihakemiston.
Ja sitten olen sisällä paikallisia isäntä hakemiston sisällä että.
>> Joten jotkut muita hyödyllisiä asioita cd -
tai hyvin yleisesti, joten piste aina viittaa nykyiseen hakemistoon.
Cd, piste on melko arvoton komennon.
Mutta se on muuttumassa hakemistossa.
Enemmän hyötyä yksi kannalta CD on piste, piste, joka on
vain mennä ylös yhden hakemiston.
>> Ja huomaa, että nämä -
Haluan sanoa aliaksia, mutta nämä symboleja, piste, ja piste, piste, nämä työt
melko paljon mitään komentoa olet aiotaan ajatellut käynnissä.
Niin kuin cd on luultavasti missä olet käyttävät eniten, mutta nämä eivät ole
asioita, jotka vain cd ymmärtää.
Se on aika paljon jotain koko komentoriviltä ymmärtää.
Paljon ohjelmia ymmärtää dot ja piste, piste.
>> Joten muita hyödyllisiä niistä - cd, viiva.
Niin, että aikoo tuoda minut hakemistojen että olin tuumaa
Joten joskus teen jotain, Voi, olen työskennellyt täällä.
Ja näen jokin virhe jotain, ja Menen tutkimaan sen siirtymällä
joitakin satunnaisia ​​hakemistoon jonnekin.
Ja en tiedä, jos se will haluan sinne.
Se.
Niin sitten teen mitä haluan tähän hakemistoon.
Blaa, blaa, blaa, blaa, blaa.
Ja olin kuin, okei, haluan mennä takaisin sinne missä olin.
cd, viiva, ja se tuo minulle takaisin.
>> Joten aion heittää paljon Näiden sinua tänään.
En odota sinun muistaa ne kaikki.
Se on tavallaan vain tietää että ne ovat olemassa.
Ja sitten myöhemmin, kun et pidä, hmm, haluan mennä takaisin
hakemiston, että olin juuri, oh, odota, jotain, joka on olemassa.
Sinun ei tarvitse vain kirjoittaa koko hakemistosta uudelleen.
>> JOSEPH: Ja lopulta voit vain käyttää niitä uudestaan ​​ja uudestaan, ja
siitä tulee lihasmuistia.
>> ROB: Joo.
Joten miten aiemmin sanoin, että tilde on kotihakemistosi.
Joten voin cd, tilde.
Mutta en edes tarvitse tehdä, että jos minä vain -
Menen takaisin hakemistoon, jolloin se ei ole turhaa esimerkki.
Mutta jos en vain cd, joka on myös sama kuin, mene minun kotihakemistoon.
En Command, K.
>> JOSEPH: Voit myös kirjoittaa selkeitä, sana, ja se pitäisi poistaa se.
>> ROB: Ja mielestäni myös valvoa, L myös tekee sen.
Niin monin eri tavoin.
Mielestäni on olemassa joitakin eroja, joissa selkeä ja valvonta, L tulee vain
todella työntää sen ylä-ja Voin silti vierittää takaisin.
Komento, K kirjaimellisesti tuhoaa kaiken, ja sinä
ei voi vierittää takaisin ylös.
Ainakin, se on miten se toimii iTerm2.
En tiedä, miten muut asiat -
oh.
>> Kanssa SSHing, joten jos olet Windows, olet menossa tarvitse ladata PuTTY
jotta SSH koska Windows ei on kuin sisäänrakennettu SSH työkalu.
Alkaen Macit, voit vain SSH suoraan alkaen terminaali-ikkuna.
OK.
Kysymyksiä?
>> LS, joten jotain tottua useimmat näistä komennoista on -
No, minä vain tehdä yksi.
Ls, ajatusviiva, l.
Joten viiva, l on mitä aiomme soittaa lipun ls.
Ja paljon näitä komentoja on hännät että voit siirtää niitä.
Joten tässä tapauksessa, ajatusviiva, l on lippu joka kertoo se antaa minulle täyden
kaikki tiedot näistä tiedostoista.
>> Näemme tässä, että kassa oli muutettu 30. heinäkuuta kello 12:54.
Lataukset on muokattu 6. syyskuuta.
Nämä ovat nykyisen koon ja tavua näistä hakemistoista.
Sinun ei tarvitse ymmärtää kaikki tämä.
>> Tätä kamaa vasemmalla, nämä drwx n, että tulee paljon asiaa
myöhemmin, kun täytyy käsitellä -
että on tekemistä, jolla on käyttöoikeudet tarkastella näitä tiedostoja.
Joten jos et ole ainoa käyttäjä tässä tietokoneessa, sinun pitäisi pystyä
sanoa, OK, minun pitäisi olla vain yksi saa katsoa tätä tiedostoa tai olen
aio sallia kaikille tarkastella tämän tiedoston.
Joten joku muu minun tietokone katsoa tämän tiedoston.
En edes tiedä, mitä tämä - Mitä tämä tekee?
>> JOSEPH: En ole aivan varma, oikeastaan.
>> ROB: Ei aavistustakaan.
>> JOSEPH: Mutta jos et tiedä, on hyödyllinen komento, jota voit käyttää
kertoa teille, mitä antovälineet.
Ja jos kirjoitat mies ennen komennon -
joten M--N. ROB: Man.
Joten mies on toinen joka on erittäin hyödyllinen.
Ja mies, ls.
Joten mies sivuja, ne ovat molemmat komentoja että aiot käyttää
komentoriville, ja heillä on myös toiminnot, jotka ovat merkityksellisiä
C. Voit siis ihminen -
ja ohitin 3.
Mutta ihminen 3 printf aikoo tuoda ylös C-versio printf.
Mutta jos en vain mies printf, tämä on menossa esiin komennon printf
että tapahtuu komentoriviltä.
>> Joten mies, ls.
Man-sivuja voi olla melko ylivoimainen.
Täällä, vaikka näet tämän listalle Kaikkien näiden lippujen että ls
ymmärtää.
Joten jos menemme viiva, L, ja -
Olen juuri menossa heittää tämän sinulle.
Mutta jotta etsiä, haluatko ensin osuma kysymys
merkki tai slash-painiketta.
Niin slash.
>> Ja sitten voin etsiä sillä mitä haluan.
Joten aion leikata Dash, l.
Ja siinä se oli.
Käytä siis pitkiä luettelumuotoa.
Se ei auta minua selvittää, mitä että tietyn sarakkeen tarkoitti, mutta minä
olettaa jossain täällä se selittää, että.
Joten käytä mies sivuilta mitään komentoa että et heti ymmärrä.
>> Olen melko varma, voit jopa mies, mies.
Rajapinta verkossa lähdeteokset.
Oh, yksi viimeisin joka on ehkä hieman Merkitystä on ls, ajatusviiva,.
Joten huomaa, jos en vain ls, Saan nämä viisi tiedostoa.
Jos teen ls, viiva, minä saada paljon enemmän tiedostoja.
Joten asia yhteistä kaikkien näiden uusia tiedostoja on piste etukäteen.
>> Joten yleissopimus on, että tiedosto, joka alkaa piste on piilotettu.
Joten et halua nähdä, että tiedoston, voit eivät halua olla se sotku
hakemistoon listalle.
Vasta kun olet nimenomaisesti pyytää, kunnossa, ls, ajatusviiva,, näytä minulle.
Sanoista kaikki tiedostot, lukien kätketyilläni.
Joten jotkut muut komennot.
Voi, kysymyksiä siinä vaiheessa?
Kyllä.
>> SPEAKER 3: Kun teet ls, , mikä on piste, piste?
>> ROB: Oh.
Joten tämä on mitä puhuin.
Se on sama asia, jossa Voin kuten CD, piste, piste.
Joten teknisesti, piste ja piste, piste ovat tiedostoja, jotka ovat olemassa jokaisessa
hakemistoon, jossa piste-tiedosto viittaa nykyiseen hakemistoon.
Jos siis cd, piste, olen juuri menossa pysyä hakemistoon.
Ja piste, piste viittaa aina edelliseen hakemistoon yhtä tasoa ylempänä.
Joten jos menen lokit ja ls, ajatusviiva, ai, Nähdään piste, piste. cd piste, piste
pääsenkin edelliseen hakemistoon.
Joo.
OK.
>> Joten toinen aika tärkeä komento on rm.
Niin, että mitä aiomme käyttää poistaa.
Ja haluaisin todella tehdä uuden komento ensin.
Niin mkdir.
Mkdir on, miten voit luoda hakemistoja.
Ja minä luomme väliaikaiseen hakemistoon ja mene tuohon väliaikaiseen hakemistoon.
Ja odotetusti, se on tyhjä.
Mutta jos minä ls, ajatusviiva,, minulla on vielä piste ja piste, piste, koska piste viittaa
nykyinen hakemisto.
Ja piste, piste viittaa edelliseen hakemistoon.
Ja ne on aina olemassa riippumatta hakemiston olet tuumaa
>> Ja tämä on täysin tarpeeton komennon, mutta kosketus.
Olen vain käyttää sitä, koska se on helppo tapa luoda tiedostoja.
Joten kosketa, kosketa b, koskettamalla c on vain aikoo luoda kolme tiedostoa kutsutaan,
b ja c, jotka ovat täysin tyhjä.
Joten kohta minua luomaan kuin Ensimmäinen paikka on juuri niin, että rm on
miten voimme poistaa ne.
Joten rm,.
Se tulee kysyä minulta, poista tavallinen tyhjä tiedosto?
Ja sitten minä sanon kyllä.
>> Joten jos tiedän varmasti, että haluan poistaa tiedoston ilman on
pyydettäessä poistaa tavallinen tyhjä tiedosto?, sitten rm, ajatusviiva, f tulee olemaan
lippu, joka sanoo, pakottaa poistaa eikä jopa kehotukset minulle, oi, oletko
varma, että haluat poistaa tiedoston?
Kyllä, olen varma.
Joten rm, ajatusviiva, FB vain tee se kysymättä.
>> Joten tehdä joitakin enemmän hakemistoja.
mkdir, TMP2, cd, TMP2, kosketa, kosketa b.
OK.
Joten nyt haluan poistaa TMP2 kuin hakemistoon.
Joten rm TMP2.
Et voi poistaa TMP2, se on hakemistossa.
Joten kysymys on, että rm ei heti työtä hakemistoja.
Se on tarkoitettu vain tiedostoja, kuten ei-hakemiston tiedostoja.
>> Ja niin mitä voimme tehdä tässä rm, ajatusviiva, r.
Joka edustaa rekursiivisesti, jotka voivat ei merkitse teille mitään vielä.
Mutta kun saat rekursio, se tulee merkitä enemmän.
Joten rm, viiva, r, TMP2 on menossa rekursiivisesti, menee siihen hakemistoon.
Joten ajautua hakemistoon TMP2?
Kyllä, mennään tuohon.
Haluammeko poistaa TMP2 /?
Kyllä.
Haluammeko poistaa TMP2 / b?
Kyllä.
Nyt haluamme poistaa hakemisto TMP2?
Kyllä.
Ja nyt hakemistossa ja kaiken sisällä
siitä on poistettu.
>> On teknisesti komento rmdir että voit poistaa
hakemistoja, mutta se toimii vain on tyhjät hakemistot muutenkin.
Ja nähdä, että haluan vain do mkdir, TMP2 uudelleen.
TMP2, kosketa.
OK.
Joten jos yritän poistaa dirtmp2, se tulee sanoa, hakemisto ei ole tyhjä.
Joten olen aika paljon koskaan käytä remove dir komento joka tapauksessa, koska rm, ajatusviiva,
r työskentelee tyhjät hakemistot ja ei-tyhjät hakemistot.
>> Ja myös, jos en halua joutua käydä läpi, että koko prosessi
ajautumasta hakemistoon ja poistamalla kunkin yksittäisen tiedoston, rm,
ajatusviiva, rf, TMP2.
Ja nyt se on mennyt.
>> Olla varovainen noin on rm, ajatusviiva, rf.
Ja se pelottaa minua edes kirjoittaa sitä, koska jos olen vahingossa
paina Enter tai jotain.
Joten rm, ajatusviiva, rf, tilde olisi ilman kehotukset minua, f ei kehota
Minulle se poistaa automaattisesti minun koko kotihakemiston ja
kaiken sen.
Joten saatat ajatella, että on typerää tehdä.
Ja hyvin, se on.
>> Mutta se voi tapahtua hyvin helposti Onnettomuuden jos vaikkapa haluaisin poistaa
minun slash, vhost hakemistoon.
Ja vain nopeasti kirjoittamalla, Olen vahingossa tehdä tämän.
Joka poistaa rekursiivisesti sekä minun kotihakemiston ja vhost hakemisto
Tässä tietyssä hakemistossa, että vain sattuu ole olemassa juuri nyt.
Mutta tämä voi silti poistaa minun koko kotihakemiston.
Ainakin ei tarvinnut f, se olisi saanut minut ensin.
Ja olisin kuten, oh, no, minä eivät halua tehdä sitä.
Mutta ihmiset, slash, mukaan lukien minua on taipumus päästä
tapana aina rf-Ing.
Jopa tavallisten tiedostojen että voin vain rm, c, minulla on tapana vain rm, ajatusviiva, rf, c.
Vain olla varovainen, kun olet rf-Ing.
>> SPEAKER 4: Mitä C tehdä?
>> ROB: C puhun, että C-tiedosto tämän hakemiston, että rm, c.
>> JOSEPH: Ja enemmän vaarallisesti, jos käytät tähti, se viittaa kaiken
hakemistoon.
Niin mitä yleensä on tapana tehdä on minä mennä hakemistoon ja haluan
poistaa kaikki tiedostot sinne.
Joten rm, ajatusviiva, rf, tähti.
>> ROB: Joo.
Rm, ajatusviiva, rf, tähti.
>> JOSEPH: Ja jos et ole varovainen mitä hakemistoon olet -
En ollut temp, mutta olin vahingossa kotini hakemistoon,
sitten minä poistaa kaiken kotini hakemistossa.
Ja olen itse tehnyt, että ennen, ja Mielestäni olet tehnyt tätä ennen tai
Jay on tehnyt sitä aiemmin.
>> ROB: Olen vahingossa poistanut -
joten unohda, että komento vähän.
>> JOSEPH: Ei hauskaa.
>> ROB: Joten slash bin hakemisto on nippu binääritiedostot jos siellä tulee
tunnettava välineisiin, kuten kalahtaa.
No, clang ja periaatteessa kaikki nämä asioita, joita olen käynnissä komennon
line kuuluvat tähän slash bin hakemistoon.
>> JOSEPH: Like ls on täällä.
>> ROB: Niin piste, slash, ls olisi listata tähän hakemistoon.
>> JOSEPH: Rm on myös tähän hakemistoon.
>> ROB: Olen vahingossa rm, rf-ed bin, joka poisti mitään komentoa voisin
mahdollisesti koskaan halua.
Joka sitten vain asentaa uusi Appliance tässä vaiheessa.
>> JOSEPH: Ole siis varovainen, kun käytät tätä komentoa.
>> Yleisö: [kuultavissa]?
>> ROB: Kyllä.
Se on myös paha tapa päästä.
Jos huomaat, olen nyt -
hyvin, et voi huomata, mutta minun zoom-in ehkä voi.
Joten olen nyt root @ laitetta.
Joten jharvard on käyttäjän haluamme voit aina käyttää.
Root on käyttäjä, jolla on lupa tehdä yhtään mitään.
>> Joten huomaa, kun olen jharvard, jos yritän cd -
mitä hakemiston, joka?
Oh, juuri on hyvä esimerkki.
Joten cd, root.
Lupa hylätty.
Koska jos katsomme tämä sivusto -
ja uudelleen, sinun ei tarvitse täysin ymmärrä tätä.
Mutta nämä kolme viivaa sanovat jotka eivät anna mitään muuta
Käyttäjä tähän hakemistoon.
Ja hakemisto sattuu omistaa käyttäjän root.
>> Niin, että olen jharvard eikä joka ei ole juuri on päästetty
tähän hakemistoon, se tarkoittaa, että olen aikoo saada lupa evätään, kun
yrittää cd siihen.
Joten kun olen root, minulla on lupa tee yhtään mitään, mukaan lukien
poistaa tärkeistä tiedostoista laitteeseen ja
tuhota koko juttu.
>> Joten se on huono tapa päästä vain vaeltelee ympäri
käyttöjärjestelmän pääkäyttäjänä.
Teen sen silti.
Kysymyksiä?
Ja minä poistua root, pysyä jharvard.
OK.
>> Osuvampia komentoja.
Niin menee takaisin meidän temp, mv komento tarkoittaa liikkua.
Voit liikkua.
Nyt haluamme kutsua sitä b, niin nyt sitä kutsutaan b.
Tai ehkä haluamme siirtää b yhden hakemiston.
Joten nyt tämän hakemiston tyhjä.
Menen takaisin kotiini hakemistoon, ja näemme, että b on täällä, koska
kotihakemiston oli yhden hakemiston ylös hakemiston, b oli ollut tuumaa
>> Mukana on myös cp.
Joten cp on kopioida Super osio, dot, tekstiä.
Voin soittaa se s, piste, tekstiä.
Nyt meillä on sekä Super-osiossa dot, tekstiä, ja s, piste, tekstiä.
Tämä toimii myös hakemistoja.
I rf-ed yhden tiedoston.
Joten cp -
No, ensin yritetään cp, TMP, TMP2.
Joten suljettaessa tmp.
Niin samankaltaisia ​​rm, oletustoiminnan on toimi hakemistoja.
>> Ja vielä, samanlainen RM, oletus käyttäytyminen - No, saada sen toimimaan
hakemistoja on, viiva-r pois.
Joten kopioi rekursiivisesti temp hakemiston TMP2.
Ja nyt meillä on sekä TMP ja TMP2, ja että ei ole niin hyödyllistä, sillä tmp
oli tyhjä ylipäätään.
TMP2.
>> Nyt kopioi TMP osaksi TMP2.
Ja me näemme, että TMP2 on myös tiedosto , koska hakemisto ja
kaiken sisällä kyseisen hakemiston kopioitu.
Ja se voi olla hieman apua jos esimerkiksi olet työskennellyt
ongelmakäytöstä asettaa yhden -
tai oikeastaan ​​myöhemmin ongelma sarjat ovat sitäkin tärkeämpää, koska siellä
on koko joukko tiedostoja ja asioita.
>> Mutta haluat vain, kohta kohdalta Toinen, et pidä, okei, olen
aikoo yrittää jotain erilaista.
Haluan vain kopioida minun koko pset1 hakemiston pset1 varmuuskopio niin, että jos
Olen päätyä ruuvaamalla asioita, voin mennä takaisin minun varmuuskopio hakemistoon.
On toimivia keinoja versiointi varmuuskopioiden koodia, mutta
tämä on aina nopea tapa vain tehdä että sinulla on kopio jostain
että olet aikeissa muuttaa.
>> Joten kaiku on myös kertaluonteinen komento Tällainen sillily vain tulosta
komentoriviltä mitä halusit yhtyä.
Niin kaiku hi.
Me vain tulostaa hi.
Echo hello world.
Me tulostaa hello world.
Joka tulee käyttöön, kun Aloita yhdistämällä komentoja.
>> Ja vielä, älä odota sinun täysin ymmärtää tätä vielä, mutta se on
jotain nähdä.
Ja sitten jos olet Googling esimerkkejä tai huomaat haluat tehdä
jotain, se voi olla hyödyllistä.
Joten, kuten esimerkiksi niin ls, ajatusviiva, l.
Joten tässä näen tuotos LS, ajatusviiva, l.
Ja minä sanon, OK, haluan tallentaa, että tiedostoon.
Kaikki tämän tuotoksen tänne, haluan laittaa erilliseen tiedostoon.
>> Joten tämä pieni suurempi kuin-merkki on mitä aiomme soittaa.
Olemme suuntaamalla tuloste tiedostoon.
Kutsukaamme tiedosto blah, koska se on mitä minulla on tapana aina soittaa sitä.
Joten nyt näemme meillä tiedostoon blah täällä.
Ja jos avaan sen, nähdään se täsmälleen lähdön komento
että minä vain juoksin.
Ja samoin voit -
jos tämä oli tuloste tiedostoon, tämä on saada palautetta tiedostosta.
Mikä on komento, joka I -
>> JOSEPH: Mielestäni voit käyttää vähemmän tai enemmän, luultavasti.
>> ROB: Mutta entä vain vähemmän blah?
En tiedä.
Jos olet tullut tähän skenaarioon, kuten siellä psets, että se on hyödyllistä.
>> JOSEPH: Voit putki sen kaiku.
Putki tiedosto kaiun nähdä sen.
>> ROB: Se on putki.
>> JOSEPH: Anteeksi.
>> ROB: Selvä.
Joten tämä on tuloste tiedostoon.
Tämä on saada tekstin tiedosto ja se luovuttaa ohjelmaa.
Ja voit myös nähdä tämä kaveri.
Joten tämä on tavallaan tekee molempia yhtä aikaa.
Ja todella, minä esitellä kaksi uutta komennot vain hyödyntää sitä.
>> Historia on kätevä komento, joka on vain menossa tulostaa listaus
mitä olen koskaan ajaa komentoriviltä.
Joten tässä näemme kaiken, minulla on ollut käynnissä koko tämän ajan.
Paljon ls: n.
>> Ja toinen hyödyllinen komento on grep että sen tarkoituksena on etsiä yli
tekstiksi etsivät malleja, hyvin, etsii mitä
haluavat sitä etsimään.
Ja niin kätevä käyttää tässä vaikkapa Haluamme tarttua historiaa.
Ja haluan etsiä komentoja jossa olen - mitä
hyödyllinen etsiä?
>> JOSEPH: [kuultavissa]?
>> ROB: Tai sanotaan nyt etsiä kaikki koskettaa, jostain syystä.
Joten tämä on mitä se näyttää.
Ja sinun ei tarvitse kokonaan Ymmärrän sen.
Mutta ajatus on täällä, historia antaa saman tuotoksen se teki tästä
jos se tulostaa koko historia kaikesta mitä olen koskaan ajaa.
Olemme sitten ohimennen, että -
joten sen sijaan tulostaa sen näytön, haluamme välittää että
komennon grep joka etsii kaikki esiintymät sanan touch.
>> Ja niin käyttämällä tätä yhdistelmää työkaluja historiaa ja grep, näen, OK,
tässä on kaikki komennot koskaan näkemäni juosta, ja tässä on hieman yhteinen.
Olemme alareunassa.
Ja se on myös antaa minulle komento Minä vain juoksin, että oli
sana kosketa sitä.
Mutta putki on melko hyödyllinen asia yhdistämistä useita ohjelmia.
Ja oikeastaan ​​se on oikotie laverrella minulle lähtö historia tiedostoon blaa, ja
haluan grep käyttää tiedostoa blah sillä mitä haluan etsiä yli.
Joten putki on vain oikotie näiden kahden komentoja.
Kyllä.
>> SPEAKER 4: [kuultavissa]?
>> ROB: Kyllä.
Mikä on -
Oh.
Kokeillaan.
Joten kissa, koira, kala.
Joten haluan grep.
Dash, r, taas tulee olemaan rekursiivisesti, joten haluan laskeutua alas
kaikki hakemistot.
Haluan rekursiivisesti grep kaikille - ja haluaisin tilapäisesti saada
tämä pois tieltä.
Ignore me.
OK.
>> Joten haluan tilapäisesti grep varten kaikki esiintymät sanan kalaa.
Ja niin tässä mitä olen tekemässä on grepping rekursiivisesti sanan kala.
Ja tähti tarkoittaa kaikkien näiden tiedostoja tähän hakemistoon.
Ja niin se antoi minulle Käyttö estetty, koska se ei saa lukea, että
tietyn tiedoston.
Mutta se löytyy kalaa tiedoston, testi.
>> Voisin myös sanoa, erityisesti, olen vain haluavat näyttää tiedoston blaa, vuonna
jolloin se ei löydä mitään.
En vain halua katsoa tiedoston, testi.
Se löytää kaloja.
Se on melko hyödyllinen komento tietää yleensä.
On joitakin vaihtoehtoja grep että pitäisi olla enemmän
ohjelmoija ystävällinen, mutta minulla on tapana vielä turvautua grep.
Kysymyksiä?
OK.
>> Onko olemassa muita komentoja?
Oh.
Vain kertaluonteinen joka olen aina löytää olla hauskaa laske.
Joten huomaa kun olen tämän ihanan koko näytön tilassa, minulla ei ole kuin alkuun
työkalurivi tai mitään.
So Cal vain antaa minulle mukava pieni kalenteri, joka on oikeassa
nyt katkaista, oletan.
Mutta kiva pikku komento.
>> JOSEPH: On [kuultavissa].
Muita komentoja, että saatat olla nähnyt kuuluvat kalahtaa ja tehdä.
Menemme niiden yli tarkemmin myöhemmin.
Mutta jos olet työskennellyt PSET, sinun pitäisi olla
perehtyneiden.
>> ROB: Selvä.
Kysymyksiä komentoriviltä asioita?
Selvä.
Joten siirtyä joissakin C-liittyviä juttuja.
Muuttujia matematiikka.
OK.
Joten aivan kuten meillä oli matematiikka Scratch, voit myös käyttää matematiikkaa C.
>> Ennen kuin pääsemme, että kokonaan, niin muuttujia.
Muista, että aina kun julistaa muuttuja kuten int x tai float y, sinun
on annettava se tyyppi ennen muuttujan nimi.
Joten tyypit olemme nähneet tähän mennessä ovat int, float, double, pitkään pitkään, jonka minä
eivät oikeastaan ​​tiedä, jos olemme Nähdään, että tähän asti.
>> On joitakin muita vaatimuksia.
Olemme ks. merkkiä.
On lyhyt, joka on kuin se on vastakohta pitkä pitkä, jos se on
pienempi kuin kokonaisluku.
Olemme myös nähneet merkkijono.
Joten mikä on erikoista merkkijono?
Miksi haluaisin sanoa, että se ei aivan kuten int?
>> SPEAKER 4: Se ei todellisuudessa ole olemassa.
>> ROB: Joo.
Joten ainoa syy meillä on merkkijono johtuu siitä, kun teet
hash, kuuluu cs50.h.
Ja näemme esimerkkejä tästä myöhemmin - Voi, että ei käsittele kovin hyvin -
jossa cs50.h tekee jotain tapaan tyyppi
def, char tähden, merkkijono.
>> Ja niin se on sanoa, että emme edes tietää, mitä merkkiä tähti on vielä.
Mutta tämä sanoo haluamme merkkijono.
Jokainen paikka olet käyttänyt merkkijono, voit olisi voitu käyttää char tähden,
joka itse asiassa on tyyppi, joka olemassa C-kielellä.
Mutta me saamme sen.
Niin, ja se menee takaisin.
Siisti.
>> Niin sama juttu bool jossa tosi ja epätosi.
Että ei oikeastaan ​​sisäänrakennettu tyyppi C. Sen sijaan se on vain, että tämä on
arvo nolla?
Sitten me vain harkita epätodeksi.
Onko tällä arvoa -
No, ei tämä ole arvo, joka ei ole nolla?
Sitten harkitsemme sen olevan totta.
Joten yksi on totta, kaksi on totta, mitään nonzero on totta.
Joten ne ovat ne.
Kysymyksiä julistaa muuttujia ja muuttujatyyppejä ja kaikki?
Joo.
>> SPEAKER 4: Pitkillä pitkä, kirja, se sanoi sen piti olla pitkään pitkään int.
Mutta vain pitkään pitkään toimii?
>> ROB: Joten nämä tyyppi määritteet.
Joten int x.
Joten voimme myös sanoa unsigned int x.
Voimme sanoa lyhyt int x.
Voimme sanoa pitkään pitkään int x.
Mutta aika paljon mitään näistä asioista I juuri sanoi, unsigned int, short int,
pitkä pitkä int, voit päästä eroon int ja se vain olettaa
että tarkoitit int.
Joten allekirjoittamaton x, mikä tarkoittaa vain sitä -
osaat normaalisti int, voit sanoa x on yhtä kuin negatiivinen 3?
Kanssa unsigned int, et voi.
>> JOSEPH: Ja taas, kameralle, kysymys oli, mitä eroa
välillä pitkään pitkään int ja vain pitkä pitkä?
>> ROB: Joo.
Joten en juuri koskaan kirjoittaa pitkä pitkä int.
Aion kirjoittaa pitkään pitkään.
>> JOSEPH: Kaikki kysymykset?
>> ROB: OK.
Niin typerä pikku muistutus siitä, että miten me julistamme muuttujan ja alustaa
muuttuja ja julistaa toisen muuttujan ja alustaa
se kaikki yhdellä kertaa.
Joten ilmoitus muuttujan ja alustus muuttuja ei ole
to mutta voi olla samalla linjalla.
>> Joten meillä on Vakiomatematiikkakirjasto toimijoiden että olet tottunut -
plus, miinus, jakaa, kertaa.
Mukana on myös modulo, jonka näemme.
Ei ole ainakaan C, sisäänrakennettu tehon
potenssiinkorotus Järjestelmäkohdistin operaattori.
No, on caret operaattori, mutta se ei ole valtaa.
>> JOSEPH: Mutta se ei ole potenssiinkorotusta, Kyllä.
>> ROB: Älä käytä caret olettaa, että se tarkoittaa
kuten potenssiin tai mitä tahansa.
Joten joitakin asioita pitää välitä siitä jako.
Minä takaan.
Joten julisti Alusta vastaus.
Joten me sanomme float vastaus vastaa 1 jaettuna 10.
Tulosta vastaus kahden desimaalin tarkkuudella.
>> Ja tämä on sellainen asia, että olen olisi ihminen printf selvittää, että
mitä hittoa%, piste, 2F tarkoittaa?
Ja se tarkoittaa vain sitä, hyvin, välittämättä 0.2.
Ja%, f on mitä käytämme tulostaa kellua.
0.2 sanoo, tekstiä, että float kahden desimaalin tarkkuudella.
Joten tämä ohjelma on bugi, ja saatat olen nähnyt tämän ennenkin joissakin
ennen CS kurssi.
Mutta mikä on että vika?
>> Kaiutin 5: Zero.
>> ROB: Joo.
Joten kun sanomme, vastaus on yhtä kuin 1 jaettuna 10, haluamme
vastaus on 0,1.
Mutta 1 jaettuna 10, 1 on kokonaisluku, 10 on kokonaisluku.
Ja niin kun me teemme kokonaisluku jaettuna kokonaisluku, aiomme saada takaisin
kokonaisluku.
Joten 1 jaettuna 10 on 0,1.
>> Koska se tarvitsee antaa meille kokonaisluku, se on juuri menossa heittää pois, että
desimaalin tarkkuudella ja sanoa, että Vastaus on 0.
Ja niin kun me painamme vastata täällä, se tulee tulostaa 0.00.
>> JOSEPH: Ja aivan kuten huomata, se todella heittää pois, mitä on sen jälkeen
desimaalin tarkkuudella.
Joten jos sen sijaan ollut 6 jaettuna 10, saatat ajatella, että se antaisi sinulle
0,6 ja niin voisitte pyöristää ylöspäin 1.
Mutta todellisuudessa, mitä tapahtuu, kun se tyyppi tehtävät on, että se putoaa, mikä on
desimaalipilkun jälkeen.
Joten 0,6 ei tullut 0.
>> ROB: Joo.
Ja me sanomme katkaista siitä.
Joten jos heität int, desimaalin katkaistaan.
Joten korjaus, että - on olemassa oikeastaan ​​kaksi.
Ja aion tehdä sitä toista, koska tämä on paljon helpompaa korjata.
>> Joten yksi korjaus on käyttää kellukkeet jako.
Ja todella, sinun tarvitsee vain tehdä yksi heistä float.
Mutta se on hieman selkeämpi vain jotta molemmat kelluu.
Joten 1,0 jaettuna 10.0 on jakamalla kaksi kelluu.
Joten vastaus on lopulta float, ja niin tulet
oikein tulosta 0,10 täällä.
>> Jotain, joka ei toimi niin hyvin siitä on hyvin, varmasti, se oli helppoa
tarpeeksi muuntaa 1 float tekemällä 1.0.
Mutta mitä jos sen sijaan meillä oli kahden kokonaisluvun kuten int x on yhtä kuin 1 ja int y
vastaa 10, ja sitten halusimme to do x jaettuna y?
Joten se ei ole helppoa vain tehdä x.0 tai jotain.
>> Joten korjauksen, joka on valu.
Joten valu on tapa C muuntaa yhdestä muuttujan tyypistä toiseen.
Joten tässä, 1 on kokonaisluku.
Ja laittamalla tämän juoksun edessä se, olemme valu 1 kellua.
Ja niin tämä muuntaa 1 1.0.
Ja tämä muuntaa 10 10.0.
>> Ja sitten asiat käyttäytyvät samalla tavalla edellisen version me vain näytti
missä, kuten odotettua, saamme 0,10 ja se tulee tulostaa sen.
Ja voimme tehdä tämän kanssa muuttujia, liian.
Voimme siis sanoa, float x jaettuna float y.
>> JOSEPH: Kaikki kysymykset?
>> ROB: Eli aivan kuten säännöllinen matematiikkaa, meillä on operaattori edelle.
Joten matematiikka luokka, olet todennäköisesti kutsua sitä järjestystä toimintaa.
Täällä virallinen termi on operaattori edelle.
Mutta operaattori edelle, tai suurin operaattorit, on kuten odottaa.
>> Joten aivan kuten matematiikka, 2 kertaa 10 on aiotaan ryhmitellä tarkemmin kuin
Tämän 10 jaettuna 2 ja sitten 2.
Järjestys toiminnan, se tekee 2 kertaa 10, 10 jaettuna 2 ja sitten
se tulee tehdä 20 plus 5 plus 2.
Joten se on odotetusti, ja voit käyttää suluissa ryhmään ilmaisuja.
Et voi käyttää hakasulkeissa ryhmään ilmaisuja.
Joo?
>> SPEAKER 5: Voisitko itse vain mennä takaisin yhden sekunnin?
Voitko heittää int on merkkijono?
>> ROB: Joten C, voit heittää mitään haluat mitä haluat.
Tämä ei tarkoita että se on hyvä asia tehdä.
Joten kun heität int on merkkijono, joka tarkoittaa -
ja saamme tähän paljon perusteellisemmin -
>> JOSEPH: Paljon myöhemmin.
>> ROB: En halua sanoa paljon myöhemmin, joten yritin muuttaa lauseen.
Pääsemme sitä enemmän perusteellisesti myöhemmin, jos todella, kun olet
merkkijonomuuttujaksi -
joten merkkijono voi olla mielivaltaisesti pitkä, eikö?
Ja olemme todenneet, että int on neljä tavua ja pitkään pitkään on kahdeksan
tavua ja float on neljä tavua.
Joten merkkijono, kuten int, on vain tietty määrä tavuja siihen.
Ja se tulee olemaan neljä tavua.
>> Mutta merkkijono voi olla melko mielivaltaisesti pitkä, eikö?
Joten hello world jo, jos se on 10 merkkiä tai mitä tahansa, joka on jo
olemaan yli 4 tavua En voi mahtua merkkijono.
Ja niin miten jousille todella toimivat on se, että ne ovat silloin muistissa, että jono
häntä pidetään.
>> Ja niin tänne, kun sanon merkkijono x vastaa hello world, sisällä x on
vain sanomalla, oh, hello world tallennetaan juuri tässä nimenomaisessa paikassa muistiin.
Joten jos yritämme heittää kokonaisluvun merkkijono, sitten yritämme tulkita
joitakin satunnaisia ​​osa muistia jonona.
Ja että lähes aina rikkoo asioita.
>> JOSEPH: Mutta jos se hämmentää te, me voidaan kattaa se
syvällisemmin myöhemmin.
>> ROB: Joo.
Tämä on, jos olet menossa päästä viitteitä.
Ja se on merkittävä kimpale kahden viikon kurssin.
>> SPEAKER 6: Toimiiko se esineet muilla kielillä tai ei oikeastaan?
>> ROB: Eli muilla kielillä, esineet olisivat edustettuina käyttäen osoittimia.
Se ei ole sama asia, vaikka.
Mitään ajatuksia?
>> JOSEPH: Ei.
Ei ajatuksia.
>> ROB: OK.
>> JOSEPH: Seuraava.
>> ROB: Menkää kanssa.
Selvä.
Niin modulo.
Aivan kuten meillä on plus, miinus, jakaa ja lisääntykää.
Joten modulo on yksi saatat ei ole ennen nähnyt.
Ja se vain kertoo, antaa minulle loput.
Joten 55% 10.
Loput tekee 55 jaettuna 10 olisi 5.
Joten 55% 10 on 5.
Ja 3% 5 olisi 3.
8% 8 on 0.
16% 15 on 1.
>> JOSEPH: Yksi asia huomata tämän, Myös se ei välttämättä toimi odotetulla tavalla
jos käytät negatiivinen luku.
Niin negatiivinen 5% 4, jotkut ihmiset Voisi ajatella, että on -
mitä ajattelet negatiivisia 5% 4 olisi?
>> Kaiutin 5: One.
>> JOSEPH: Joten jotkut ihmiset sanovat yhtä, jotkut sanovat kielteistä.
Mutta mitä -
>> ROB: En edes ole sanoi yksi niistä.
>> JOSEPH: Kaksi, sorry.
Jotkut ihmiset sanovat -
>> ROB: Kolme.
>> JOSEPH: Kolme?
>> ROB: Negatiivinen -
mikä oli - kielteinen viisi -
>> JOSEPH: Kolme, kolme, kolme.
Anteeksi.
Koska modulo, yleensä, kun olet nähnyt sitä muualla, se yleensä tarkoittaa
palata positiivinen luku, eikö?
>> ROB: Joten kun sanomme matematiikasta,% 10: n, he yleensä haluavat antaa sinulle -
jos me mod 10, niin odotamme saat väliltä 0 ja 9.
Täällä, että ei pidä paikkaansa, että olet saavat negatiivisia lukuja palasi.
>> JOSEPH: niin negatiivinen 5% 4 olisi negatiivinen 1.
>> ROB: Mutta se on harvinaista, että olet mod-ta negatiiviset luvut aluksi.
Ohita tämä.
>> JOSEPH: Joo.
>> ROB: Meh.
OK.
Niin yksi asia huomauttaa noin kellukkeet on se vaarallinen käyttäytyminen,
mutta kellukkeet eivät ole tarkkoja edustus.
Niin menee takaisin tavua uudelleen, muista että int on aina neljä tavua ja
float on aina neljä tavua.
Joten Lucasin esimerkki on melko hyvä.
>> Niin ajattele 1 jaettuna 3.
Niin 0,3333333.
Jos minulla on vain 32 bittiä, miten Olen tallentaa 0,33333 tarkalleen?
Ja ehkä jostain syystä, sanot, kaikki hyvin, hyvin, haluan vain sanoa,
että tässä nimenomaisessa 1011001, katsotaanpa vain sanoa, että olisi 0,333333.
No, sinulla on vain rajallinen määrä nämä bittiä, joten on mahdotonta
edustavat jokainen liukulukuoperaatioita arvo annetaan vain 32 bittiä.
>> No, se on mahdotonta edusta mitään Liukulukuarvo antanut ääretön -
hyvin, koska tahansa äärellinen määrä bittejä.
Joten kysymys on hyvin, kun meillä oli tapana tulostaa kahden desimaalin tarkkuudella,
meillä ei oikein saada vastauksen 0,10.
Mutta alla huppu, se on todella varastoidaan niin lähellä kuin mahdollista
0,10 kuin bitit voivat edustaa.
Onko tämä seuraavan dian?
Vai ei?
>> JOSEPH: Joo, se on niin.
>> ROB: Blegh, blegh.
>> JOSEPH: Joo, voit vain vedä muistiinpanoja hieman.
>> ROB: Olen juuri menossa zoomata vuonna viimeisenä siitä.
Jestas, se on [kuultavissa].
Niin että numero.
Juuri tulostetaan jos me suorittaa kyseisen ohjelman.
Ja huomaa, että se ei oikeastaan ​​iso juttu jos me vain huolehtimasta kuten
viisikymmentäkahdeksan yli kaksi desimaalin tarkkuudella.
Kuten me vain alunperin painettu 0,10, ja siksi näimme mitään vikaa.
Mutta kun alamme päästä tarkka, tarkka määrä, että se on
edustaa, näemme, että se ei voi täsmälleen edustavat 0,1.
>> Ja osa ongelmaa täällä on kuin, kunnossa, että on hienoa, mutta, no,
Ensimmäinen, mitä jos yritimme tehdä, Vastaus on sama kuin vastaa 0,1?
Onko se aio palata totta vai tarua?
Ja niin se on vaikea sanoa.
Mielestäni se todella voisi palata totta.
Will se ensin -
En tiedä.
Vastaus on, kun aloitat tekemisissä kanssa Desimaaliluvut olet aika
paljon ei pitäisi käyttää tasa koska tämä epätarkkuus.
>> Ja kaikki tiedätte, se on sadasosa desimaalin tarkkuudella, että
liukuluku ei pystynyt käsitellään oikein.
Ja niin tasa-arvo vain onnistu edes vaikka numero - jos olisit ollut
käyttäen tarkkoja lukuja, numeroita olisi on täsmälleen sama.
Se on aikana, kuten 50 laskelmat käyttäen näitä kelluvia
pistearvot, virhe voi rakentaa ylös ja ylös ja ylös, ja
kaikki menee pieleen.
>> JOSEPH: Ja on ollut todella tunnetuimpia esimerkkejä, että näin tapahtuu.
Kuten NASA insinöörit ovat saaneet tämän väärin, aiheuttaen raketteja räjähtää
ilma, kun ne on käynnistetty.
Ja paljon asioita, kuten että.
Niin joo.
>> SPEAKER 6: Kun sanot 0,3 f, se katkaista loput?
Vai onko se pyöristää ylöspäin tai alaspäin?
>> ROB: Voiko printf sen ympärille?
>> JOSEPH: Mielestäni printf typistetyn.
>> ROB: OK.
Voimme siis samalla mennä päinvastaiseen suuntaan Täälläkö, tässä tapauksessa
lähinnä se saattaa aiheuttaa 0,1 oli tämän numeron kanssa.
Lähin se saattaa pystyä edustavat 0,2 on päinvastainen
suuntaan, 0,199999996356 tai jotain.
Jos siis meni tähän suuntaan on asioita, niin printf 0,3 f palaisi
1,99 sijaan 2,00.
>> JOSEPH: Ja en ole täysin varma siitä.
Haluat ehkä kirjoittaa pieni, vähän ohjelmaa vain tarkistaa, että.
>> ROB: Vaikka, mitä olemme varmoja, että jos yritit heittää, että
int, ja valu int on menossa aiheuttaa sen katkaista desimaalin, jos
yrität heittää 1.9999999 int, saat 1.
Ja niin sinun pitäisi yleensä käyttää kierros toiminto matemaattisen kirjaston.
Kysymyksiä?
OK.
>> JOSEPH: Joten siirrymme edellytyksin ja loogisia ilmaisuja.
Joten olet nähnyt näitä ennen.
Ja oikeastaan ​​haluan varmistaa minun Tietokoneen oikeassa muodossa täältä.
Tilaa.
Sorry, aiomme tarvitse käsitellä hieman kanssa sulku reunoilla.
>> Mutta joo, te olette nähneet tämä ennen Scratch.
Joten tämä täällä on lauseke jota käytetään
ehdon.
Joten vastaus on suurempi kuin nolla kertoa tosi tai epätosi.
Ja nämä ovat todella tärkeitä, koska ne antaa meille mahdollisuuden esitellä
logiikkaa meidän koodi.
>> Niinpä esimerkiksi, tämä on ohjelma kirjoitettu Scratch, joka kysyy käyttäjältä
varten kokonaisluku ja kertoo heille siitä kokonaisluku, että he antoivat sinulle oli
positiivinen tai negatiivinen luku.
Ja muuntaminen täällä nähdä on ensin tulostaa julkilausuman,
antaa minulle kokonaisluku.
Ja sitten kysyä heiltä kokonaisluku.
>> Ja sitten käytät ehdollinen logiikka yli tästä tarkistaa onko numero
oli itse asiassa suurempi kuin nolla tai ei.
Joten tässä meillä on Boolen lauseke sisällä ehdollisen Jos selvitys.
Onko kysyttävää?
Onko kysyttävää siitä?
OK.
>> Joten siellä on enemmän kuin vain suurempi kuin, tietenkin.
Voit rakentaa Boolen käyttää suurimman monenlaisia ​​asioita
ajattelisi matematiikasta.
Niin yli.
Että pitäisi olla alle.
Anteeksi.
Ja välit.
>> ROB: Jumala varjelkoon jätät sen.
>> JOSEPH: Selvä.
Joten suurempi kuin, pienempi kuin, suurempi kuin tai yhtä suuri kuin, yhtä
kuin tai yhtä suuri kuin.
Käytämme kaksinkertainen tasavertaisten tarkistaa tasa-arvo, koska yksittäisten vastaa keinoin
tehtävän, eikö?
Kyllä.
Ja sitten voimme myös ei vastaa by käyttämällä huutomerkki, tasavertaisina.
>> Ja tämä huutomerkki symboli voi myös laajennettava siten, että jos haluat
Kääntele minkäänlaista Boolen lauseke, voit tehdä sen.
Joten tämä on tosi vain, jos vastaus on vähemmän
tai yhtä suuri kuin nolla.
Kaikki kysymykset siitä?
OK.
>> Joten voit myös yhdistää nämä ilmaisuja käyttäen loogisia AND ja
looginen Tai.
Joten tämä on vain ja symboli, jonka pitäisi olla Shift, 7.
Ja tämä on putki symboli, joka on ei pienet kirjaimet L. Se on yksi
että oikeus yläpuolella Enter-näppäintä.
Joten käytät kahta näistä symboloivan looginen ja looginen Or.
>> Joten tämä toimii vain return true, jos vastaus on yksi, kaksi, kolme tai neljä.
Ja tämä vain palauttaa true, jos vastaus on kuin että kummallakin puolella.
Joten se ei ole yksi, kaksi, kolme tai neljä.
Ja miten käyttäisit että ilmaisun -
>> ROB: Tai nolla tai viisi.
>> JOSEPH: Zero tai viisi.
Anteeksi.
Kyllä, kyllä, kyllä.
OK.
Ja tänne nyt samalla tavalla kuin käyttäisivät kyseistä ilmaisua, pienempi
ilmaisun puolelle Jos ehdollisen lausunnossaan, voit myös käyttää sitä
samalla tavalla vain asettamalla sen sisällä sulkeiden Jos julkilausuman.
Joten tämä printf vain välähdä, jos vastaus on yksi, kaksi, kolme tai neljä.
Kaikki kysymykset yhdistämisestä lausekkeet?
>> Joten on toinen ehdollinen konstruktio kutsumme Jos / Else.
Joten periaatteessa tämä nyt tarkoittaa, OK, jos jotain halusin tarkistaa ei ollut
totta, niin mene Else ja suorittaa että muita toimia.
Joten tässä tapauksessa, kysyin käyttäjältä kokonaisluku.
On kokonaisluku on suurempi kuin nolla?
Kyllä?
No, sitten ne poimitaan positiivinen luku.
Jos ei, niin sen on oltava ollut negatiivinen tai nolla.
Joten otit negatiivinen luku tai tässä tapauksessa nolla.
Kyllä.
Tai nolla.
>> Ja sitten meillä on myös Jos / Else, Jos ja Else.
Joten tämä antaa meidän suorittaa sarjan asiat vain, jos ensimmäiset epäonnistua.
Joten tässä tapauksessa, nyt teet viimeisin nostat nolla.
Joten jos he eivät poimitaan myönteinen eikä negatiivinen luku, niin ne on
on poimittu nolla.
Niin se vain menee alas ketjun näin.
>> Joten esimerkki siitä, miten Jos eroaa -
Jos / Else eroaa vain sekvenssi Ifs.
Ja tämä on yleinen kysymys, että ihmiset kysyvät on, hyvin, jos saat kuin
95 CS50, mitä tämä ohjelma kertoo sinulle?
>> SPEAKER 5: Sinulla A.
>> JOSEPH: Kyllä.
Sinulla joka ikinen yksi niistä oikealle.
Sait, sait B, sinua sai C ja D, eikö?
Joten kaikki nämä valmiiksi arvioidut järjestyksessä.
Joten vaikka 95 on suurempi kuin 90, se on Myös yli 80, se on myös
suurempi kuin 70, ja se on Myös yli 60.
Joten olet saanut kaikki nämä laadut.
Ja oletan olisit vain haluavat A.
>> Tapa korjata että on korvata joilla Else / Ifin.
Joten tässä tilanteessa, se näkee, että 95 on on suurempi kuin 90, ja sitten se
ei arvioida loput lausunnoista.
Kaikki kysymykset siitä?
>> Joten on toinen ehdollinen tavallaan rakenne, joka meillä on täällä joka meillä
soita kytkin selvitys.
Joten tämä mahdollistaa periaatteessa tarkistaa mitä arvoa numeron laitat
osaksi kytkin selvitys on.
Joten tässä tilanteessa, olemme kytkentä n:, ja me sanomme, oh, jos n on
yksi, tulosta sitten tämä toteamus.
Ja sitten tauko, mikä tarkoittaa exit pois kytkin selvitys.
>> Jos se ei ollut yksi, niin, no, vain lopulta tarkistaa kaikki nämä asiat.
Ja niin se tarkistaa, jos se on yksi tai kaksi tai kolme, ja se tulostaa sen mukaisesti.
Ja mitä tämä oletus avainsanan tänne keino on, jos he eivät anna mitään
näistä, sano kelpaa.
Joten sanokaamme pyydän n ja käyttäjä antaa minulle neljä.
No, se vastaa mitään näistä tapauksista, niin se tulostaa mitä on
oletus osassa.
Kyllä, kysymys?
>> SPEAKER 5: Voitko käyttää Boolen ilmauksia sijaan
yksi, kaksi tai kolme?
>> JOSEPH: Joten kysymys on voit käyttää Boolen yhden sijaan,
kaksi ja kolme?
Ja C, uskon sinua voi tehdä sitä.
Mutta muilla kielillä, joita ehkä kohtaavat lopussa
lukukauden kuten JavaScript, voit.
No, olisit laskea ensin että arvo ja sitten käyttää sitä
kytkin selvitys.
Joo?
>> ROB: Eli osa hyöty kytkin lausunnot on ajatella, jos teit tämän
koska Jos / Else, niin kuin jos n = yhtä tai mitä tahansa.
Else / Jos n on yhtä kuin kaksi riippumatta.
Else / Jos n on yhtä kuin kolme.
Joten miten ohjelma suoritettiin se olisi peräkkäin mennä alas, että lista
ja katso, on n yksi?
Ehei.
On n kaksi?
Ehei.
On n kolme?
Joo.
Tee tämä.
>> Ottaa huomioon, että kytkimellä lausuntoja, se on todella pystyy kokoamaan sen olevan
todella nopeasti.
Ja heti kun se sanoo kytkimellä, se sanoo, okei, n on kaksi, olen
heti menossa hypätä missä Minun on tarkoitus aloittaa täytäntöönpanosta.
En aio ensin tarkistettava, on n yksi, on n kaksi?
Se voi heti alkaa tehdä mitä sen pitäisi tehdä.
>> Ja sen vuoksi, se ei voi ottaa Boolen ehdot.
Tai muuten se pitäisi tehdä peräkkäinen, kuten, okei, on n
suurempi kuin nolla?
Else on n suurempi kuin 10 tai jotain.
>> JOSEPH: Tässä tapauksessa, jos käytit Jos / Else, Ifin, niin kytkin olisi
ajaa noin kolme kertaa nopeammin Jos / Else, Jos.
Voimme järjestää kytkin tällaisissa siten, että emme riko
jokaisen tapauksista.
Joten tässä tapauksessa, olen osiointi numeroita, jotka me valitsemme yhdeksi ja
nämä kaksi käsitettä ole korkea numeroita ja Kolme niistä paljon.
>> Joten tässä tapauksessa, jos n on yksi tai kaksi, se osuu asian ja sitten se
kuuluvat läpi, koska ei ole taukoa.
Ja se päätyy tänne.
Jos siis valita yksi, se tekee printf ja sitten tauko niin, että mikään
tämä toteutetaan.
Ja tietenkin, jos ne tulevat kolmessa tai jotain muuta, niin se ohittaa
nämä ja mennä sinne, ja se tulee suorittaa sijaan
vastaava linja.
Onko kysyttävää siitä?
Kyllä?
>> SPEAKER 4: Menisitkö virhe, jos oli tauko tapauksessa yksi, mutta se
ei ole jotain sitä tehdä?
>> JOSEPH: Joten kysymys on hakisitko virheen, jos sinulla on katkos
Jos yksi mutta ei ole mitään tekemistä?
Ja vastaus on ei.
Et itse saada virheen.
Joo, mm hmm.
>> Niin tavallaan vähän muutoksia täällä, Aion laittaa printf täällä.
Oho.
Joten mitä tämä tulostaa, jos Laitoin yksi syötteenä?
Joo.
Se kertoisi teille, että se ei ottanut suuri määrä kahdesti, eikö?
Koska se osuisi että ensimmäinen tapaus, Se ei saa hajota, ja se kuuluisi
läpi toisessa tapauksessa.
Kaikki kysymykset siitä?
>> ROB: Oliko sinulla muita kysymyksiä?
>> JOSEPH: OK, jäähtyä.
Selvä.
Joten siellä on jotain muuta kutsumme ternäärinen toimija, joka on pohjimmiltaan
varajäsenen syntaksin tekemään Jos ja sitten Else.
Ja sen avulla voit tehdä kaiken yhdellä rivillä.
Joten tässä nimenomaisessa ohjelmassa Pyydän käyttäjän n.
Ja jos n on suurempi kuin 100, kerron heitä ne poimitaan paljon.
Muuta en kerro että he poimittu vähäinen määrä.
>> Joten voimme käyttää tätä todella pitkä syntaksin, string, S, ja sitten tarkistaa, jos n on
yli 100 ja liittää sen mukaisesti.
Mutta voimme tehdä tästä paljon tiiviimmäksi käyttämällä tätä kolmen komponentin operaattori syntaksin
joka liittyy kysymys merkki ja paksusuolen.
Joten kysymysmerkki on olennaisesti kysyy kysymyksen, eikö?
>> ROB: Ehkä zoomata tätä.
>> JOSEPH: Kyllä.
Hyvä pointti.
Joten tämä on kolmen komponentin operaattori.
Haluan ensin kysyä, on n yli 100?
Jos se on, niin en suorita ensin osa ennen paksusuolen.
Jos se ei ole, niin en suorita Toisessa osassa kaksoispisteen jälkeen.
Joten, jos n on suurempi kuin 100, niin se poimii korkea ja puts
että osaksi merkkijono s.
Jos n on pienempi kuin 100, se poimii matala ja sitten tuo sen osaksi merkkijono s.
Jotta tiivistyy tämä iso kimpale alas vain, että yksi rivi.
>> SPEAKER 5: Onko tuo suosittu?
>> JOSEPH: Kyllä, se on varsin suosittu asioita, jos oleellisesti haluat
tehdään harjoitustyö perustuu jonkinlainen kunnossa.
Ja tässä tapauksessa, yritimme määrittää arvon merkkijonon s.
Se ei ole niin -
Luulen En todellakaan halua muissa tapauksissa sen.
Mutta se on erityisen hyödyllinen tähän tehtävään.
>> ROB: Se on melko yleinen malli jos sinulla on muuttuja, joka
aiot sanoa, jos jotain, asettaa tämä muuttuja yksi arvo, muuten, aseta
tämä muuttuja toiseen arvoon.
Ja se on skenaario jos käyttää kolmen komponentin.
>> JOSEPH: Ja säästät paljon linjat, eikö?
Ja se vain tekee koodin luultavasti hieman luettavampi.
Kyllä, kysymys?
>> SPEAKER 6: For ternäärinen, voisitko mennä, string s tasavertaisten s, kysymysmerkki?
Ja sitten voisi olla vaikkapa viisi eri vaihtoehtoa.
Ja riippuen siitä, mitä määrä n oli, valitsisit yksi niistä?
>> JOSEPH: Joten kysymys on, onko tavallaan syntaksin jossa voit tehdä merkkijono
s vastaa n, ja sitten on enemmän kuin kaksi vaihtoehtoja sen jälkeen kysymysmerkin?
Ja yksinkertainen vastaus on ei, siellä ei ole todella hyvä tapa tehdä se, ellei
Haluatko pesä useita ternäärisen operaattorit sisällä toisistaan.
>> Voisit tehdä kuten n yli 100, kysymysmerkki, ja sitten toinen
ternäärinen operaattori n yli 50, kysymysmerkki, ja pesä niin.
Mutta siinä tilanteessa, koodi on saada sellainen lukukelvoton ja sotkuinen,
ja se voisi olla parempi vain mennä Jos / muu selvitys tässä vaiheessa.
>> ROB: Ja myös, kuten Sivuhuomautuksena, PHP virheellisesti toteuttaa kolmen komponentin
operaattori siten, että sisäkkäisiä ternaries ei edes toimi niin kuin pitäisi.
>> JOSEPH: Joo.
Joten se saa vähän sekava, varsinkin kun menet
eri kielille.
>> ROB: Se on hämmentävää riitä, että kielet ovat väärässä siitä.
>> JOSEPH: Joten oikeastaan, vain selventää, ei jokainen tietää mitä se
% S tekee täällä?
Kaikki kysymykset siitä?
Oletan vain kameran,% s pohjimmiltaan antaa meidän laittaa paikkamerkkinä
merkkijonoa.
Ja sitten lopussa, me määrittää, että muuttuja haluamme panna tähän
paikka haltija on s.
Joten periaatteessa vie s ja se laittaa sen tänne.
Ja sitten se tulostaa, nostit korkea tai otit pieni määrä.
OK.
>> Joten silmukoita avulla voit tehdä asioita liikkein, eikö?
Saatat törmännyt tämän Scratch muodossa Ikuisesti silmukoita
tai toista kunnes tai Repeat erityisesti useita kertoja.
Miksi tämä hyvä meille?
No, C, sanokaamme meillä on tämä laulu täytäntöön Scratch että
laulaa, tämä on laulu joka ei koskaan lopu.
Se vain jatkuu ja jatkuu ja ikuisesti ja ikuisesti.
No, et voi oikeastaan ​​tehdä ohjelman , jolla on ääretön määrä printf
lausuntoja sen, eikö?
>> Joten tässä nimenomaisessa tilanteessa yksi tapa että voisit tehdä tätä työtä ja
jotta se tulostaa ikuisesti on sen sijaan käyttää while-silmukka.
Joten Vaikka silmukka tulee suorittaa mitä kehossa kahden olkaimet, että
kuuluu se perustuu siihen, mitä ehto on.
Joten tässä esimerkissä aiemmin, jos haluamme tulostaa tätä ikuisesti, mitä
ehkä me teemme?
No, varmasti, eikö?
>> Joten tällainen yhdistää ajatus Joidenkin Boolen lauseke
yhdessä silmukka.
Ja olemme oppineet Boolen ilmaisuja aiemmin.
Joten aina kunnossa sisältä ja että vaikka pitää paikkansa, tämän silmukan
tulee suorittaa ja jatkuu ja jatkuu.
Ja tässä tapauksessa, jos me vain toimittamaan totta, tämä aiheuttaa äärettömän
silmukka joka tulostaa kappaleen ja ja koska halusimme ennen ilman
ottaa ohjelma, joka on ääretön määrä printf lausuntoja, mikä on
ei ole mahdollista.
>> Niin enemmän pakottavan, vaikka, voit käyttää tätä
muuttuja ja kunnossa.
Joten sanokaamme haluamme toistaa lause, täysin loopy, 10 kertaa.
Niin mitä voit tehdä Vaikka silmukka on voit ensin alustaa laskuri
muuttuja ulkopuolella Vaikka silmukka 10.
Ja sitten periaatteessa, joka kerta mennä läpi while-silmukka, voit tulostaa
lausekkeella ja sitten pienennät laskinmuuttuja kunnes lopussa,
jossain vaiheessa, kun vähennämme I tarpeeksi kertaa, 1 alkaen I riittävän monta kertaa -
ja vain selventää, olen minus minus tarkoittaa I on I miinus 1.
>> Se pohjimmiltaan tuo minä alas kohta jossa kerran osuin nolla,
ehto ei ole enää totta ja joten se poistuu ulos silmukan.
Niin täysin Loopy tulostaa vain 10 kertaa.
Kysyttävää Vaikka silmukka?
OK.
>> Joten siellä on tapa, jolla voimme tehdä mitä me juuri teki enemmän ytimekkäästi kanssa
mitä me kutsumme For silmukka.
Joten For-silmukan koostuu Alustuksen kunnossa, ja
päivitys, aivan kuten meillä oli ennen Tässä Vaikka silmukka.
Joten katsotaanpa katsomaan.
Tässä Vaikka silmukka, meillä oli Alustuksen jälkeen meillä oli
edellytyksellä, että pyysimme.
Ja sitten meillä oli päivitys askel yläreunassa.
>> Kanssa käytettäessä loop, tämä käytännössä tapahtuu nämä kolme asiaa ja tiivistyy se
alas yhden rivin.
Joten ensimmäinen asia, että se tekee Varten silmukka on alustuksen.
Ja sitten teet puolipiste ja sitten teet kunnossa, mikä on minä
suurempi kuin nolla menee tuolla, ja sitten päivitys askel.
Joten tämä saa suorittaa Aivan lopussa silmukan rungon.
Joten nämä kaksi ohjelmaa ovat olennaisesti vastaava.
>> Kaikki kysymykset?
Joten mikä on yksi ero Näiden kahden?
Voiko joku huomauttaa asiasta?
Se saattaa olla hieman hiuksenhieno.
Se on vain hyvin pieni ero.
Kyllä?
>> SPEAKER 5: Et voi käyttää I muuttujan ulkopuolelle For silmukan
[Äänetön]?
>> JOSEPH: Aivan.
Joten tämä on jotain me saamme myöhemmin nimeltään kiikaritähtäimellä.
Mutta pohjimmiltaan tämä int i elämää ulkopuolella tämän Vaikka silmukka.
Joten kun tämä kun silmukka tehdään täytäntöönpanosta, minä voi käyttää I myöhemmin
kyseisessä ohjelmassa.
>> Ottaa huomioon, että tämä on loop, tämä int I on scoped sisäosat For silmukka.
Ja koska se on sisällä tämän osan For-silmukka, joka alkaa
klo suluissa ja päät kihara ahdin tuolla.
Kaikki, mikä on julistettu sisällä täällä ei voi käyttää ulkona.
Joten jos yritän käyttää I ulkopuolella, se tulee Kerro minulle, pimeän symboli.
Ja olennaisesti, en pystyä käyttämään sitä.
>> ROB: Ja hyvin, 10 vuotta sitten, vuonna kirjaimellisesti kaikissa tapauksissa, aaltosulkeita ovat
mitä käytetään määrittämään Muuttujan laajuus.
Joten siellä, int I on 10 julistetaan sisäosat
joukko aaltosulkeita.
Ja niin niin niin kauan kuin yrität käyttää I ennen tätä kihara ahdin, se on hieno.
Saatat nähdä kun kirjoitat tehdä, voit katso viiva, viiva, std, vastaa, C99.
>> Tämä on siis uudempi versio C, että GCC on toteuttanut joka myös antaa
Tämä pikakuvake.
Joten tämä käytetään ei sallitaan C. Ja voit nähdä, miksi, koska tämä int
I on ulkopuolella tämän kihara ahdin mutta se on silti katsota
laajuus näistä aaltosulkeita.
Mutta tämä on erittäin kätevä juttu, ja niin se on hyvä laajennus.
>> JOSEPH: Kaikki kysymykset?
OK.
Joten mitä enemmän hyötyä on, että joskus Haluatko tavallaan dynaamisuutta
silmukka, eikö?
Et halua vain välttämättä tulostaa täysin Loopy koko ajan, voit
haluat laskea alas 10 tai jotain.
Ja niin voit käyttää laskinmuuttuja sisällä että silmukan samoin.
Ja tässä tapauksessa, tämä ohjelma vain laskee alas 10 myöten.
Ja mitä se ei tulosta?
Se ei tulosta nolla, oikeassa, sillä kun -
Kyllä, se ei myöskään tulosta 11.
>> Joten se ei tulosta nolla, sillä kun I on nolla, muistakaa, se arvioi
kunnossa ennen kuin se menee suorittaa silmukan runko.
Ja kun on nolla, tämä on väärä, niin se ei tulostaa laskee alas
nolla, se vain tulostaa laskenta alas 10 kaikki alas 1.
Jos me todella halusimme sen tulostaa nolla, silloin meillä olisi laittaa yhtäläisyysmerkkiä
tämän jälkeen suurempi kuin-merkki.
OK.
>> Joten yksi tapa tehdä input validointi, joka on kun pyytää käyttäjää tekemään
jotain, haluat varmistaa, että ne seurata ohjeita, on käyttää
Vaikka silmukka, eikö?
Joten tässä tapauksessa, pyydän positiivisen numero ja sitten aion
odottaa syötteitä.
>> Ja sitten olen tarkistanut Vaikka tulo on pienempi kuin nolla, pitää kysyä niitä.
Niin kauan kuin he antavat minulle numero että ei ole positiivinen, pitää kysyä,
Kyselen, pitää kysyä.
Mutta mikä on hiukan outo tästä?
Tai mitä ei tunnu optimaalinen noin Tämän rakenteen täällä?
Kukaan?
Kyllä?
>> SPEAKER 6: Olet toistamalla opetusta kahdesti.
>> JOSEPH: Oikea.
Joten meillä on kaksi printf lausuntoja täällä, eikö?
Joten siellä on tapa, jolla voimme saada tämä vain alas joka tekisi meidän
koodi helpompi lukea ja hieman enemmän puhtaita.
Ja sitten meillä ei tarvitse on saada kaksi kertaa samoin.
Ja yksi tapa voit tehdä tämä on käyttämällä Do-while-silmukka.
>> Ja Do-while-silmukka on pohjimmiltaan eri muodossa Vaikka silmukan, jossa
mitä on sisällä aaltosulkeiden saa toteutetaan vähintään kerran.
Joten täällä, julistan, int input ulkopuolella ensin.
Ja sitten minä vain sanoa, tehdä tämän opetusta samalla tulo
on pienempi kuin nolla.
Joten se osuu tehdä ensin.
Se tulee aina suorittaa tämän ainakin kerran, niin se kysyy aina käyttäjän
Syöttö ainakin kerran.
Ja sitten se arvioi, että tulo, ja se menee ympyrää.
Kyllä, kysymys?
>> SPEAKER 6: Onko olemassa tapa tehdä se [Äänetön] tyyppejä, kuten jos sanot,
GetString, ja joku [äänetön]
on olemassa tapa [kuultavissa]
>> JOSEPH: Joten kysymys on, onko tapa tehdä input validointi, jos käyttäjä
ei laita oikeaan Muuttujan tyyppi?
Joten jos pyydämme int ja ne antaa meille merkkijonon sijaan.
Ja toimintoja, joita toteutamme sinulle, GetInt, getString kaikissa
ne toiminnot, he itse asiassa jo tehdä tällaista perustyyppiä tulo
validointi konepellin alle.
Joten jos käytät toimintoja, jotka me antoi sinulle, sinun ei todellakaan tarvitse.
>> Mutta jos haluat näyttää enemmän, miten voit itse tehdä sen, voit katsoa
konepellin alla on tiedoston I/O--
ei tiedosto, vakio I / O-toimintoja kuten lukeminen vakiosyötteestä ja
vakiotulosteen.
Ja voit saada paremman käsityksen miten voisit tehdä sen.
>> ROB: Yksi asia on kuitenkin nimenomaan kanssa esimerkiksi sinulle
sanoi, odotat merkkijono ja astun int.
Miten kertoa eroa välillä tahallaan haluavat
string 123 vs. haluavat int 123?
Joten merkkijono, se on aika paljon ei ole validointi, se on vain mitä he
Annettu voit tulkitsee jonona.
>> Int on helpompaa, koska ei ole väliä input otat käyttäjältä, olet
aina kun merkkijono.
Ja niin, että merkkijono voit sitten tarkistaa, ovat kaikki nämä
todella numerona?
>> JOSEPH: OK.
Kysyttävää Do-while-silmukka?
>> ROB: Niin, ja tämä on myös -
menee takaisin soveltamisalaan, hieman yhteisestä virhe yrittää käyttää joitakin paikallisia
muuttujan tämän Do-While silmukan sisällä tämän ehdon.
Ja todella, jos me vain heitti tämän ja sanoi, int tulo vastaa
GetInt, niin kääntäjä huuda meille, koska tulo ei ole olemassa
ulkopuolella soveltamisalan Näiden aaltosulkeita.
>> JOSEPH: Ja siksi me Tarvitsen tätä kokoonpanolla täällä.
OK.
Joten voit myös murtautua ulos loop aikaisin, jos haluat.
Joten tämä on erilainen tapa täytäntöön, mitä me juuri toteutettu.
Ja sen sijaan käyttää kunnossa Suluissa, käytämme
Jos ilmoitus rungon sisältä ja Do-while-silmukka.
>> Ja periaatteessa, kun tulo on vihdoin suurempi kuin nolla, me
murtautumaan ulos silmukan.
Ja niin me menemme kaikki alas tänne.
Ja voit nähdä, että tämä olisi todennäköisesti edullinen tässä
skenaario, koska se on vähän bittinen puhtaampaa ja hieman
hieman helpompaa lukea.
Tämä, te tavallaan on ylimääräistä linjat siinä.
Se on vain vähän rumempi, Luulen, tavallaan.
Kyllä, kysymys?
>> SPEAKER 4: murtaa vain saada sinut pois yhdet olkaimet?
>> JOSEPH: Oikea.
Joten kysymys on murtaa vain sinut pois yksi silmukka?
Ja vastaus on kyllä.
Joten jos olet sisäkkäistä silmukkaa varten Esimerkiksi, jos minulla on int I on 0
10 päivään ja sitten int J on yhtä kuin 0 10 päivään, jos rikon ulos sisemmän
silmukka, aion silti mennä ja ulomman silmukan.
Joten se pitää suorittaa toiminnan ulkopuolella.
Kaikki kysymykset siitä?
Kyllä?
>> SPEAKER 5: Mutta tauko toimii vain kihara henkselit, ei muita
lausuntoja?
[Äänetön]
>> JOSEPH: Joten kysymys on murtuu ainoa tehtävä silmukoita vastakohtana
muita lausuntoja, kuten Jos?
Ja kyllä, näin on, koska rikot ulos silmukan, oikea,
tavallaan.
>> ROB: Valtaosassa tapauksia se on tämä on eräänlainen Jos jotain,
sitten tauko.
Joten sinun ei tarvitse rikkoa soveltaa Jos tämä on se kiertää.
Ja myös, tämä ei ole paljon silmukan, mutta muista, että kytkimet ovat myös
puhjennut tauot.
Näimme taukoja käytössä kytkimillä ennen.
>> JOSEPH: Ja voit myös käyttää niitä vuonna Vaikka silmukat ja silmukat.
Kaikki kysymykset?
OK.
Joten ensi up on toimintoja.
Joten olet saattanut käyttää yhtä näistä BYOB blokkeja Scratch projektin.
Ja tämä periaatteessa mahdollistaa voit määrittää joukko
ohjeita on noudatettava.
>> Ja mitä minä tarkoitan, että on mietitäänpä takaisin matematiikka, oikealle, algebra.
Sinulla on mitä me kutsumme funktio x, Joissakin muuttuja, ja sanokaamme tämä
funktio on f x on yhtä kuin x plus 5.
Joten voit ajatella F x, koska tämä musta laatikko, joka kestää 15 ja sitten
tuottaa 20.
>> Joten yleisemmin, toiminto on jotain, joka vie jonkin tulot ja
sitten tuottaa joitakin tuotoksia.
Ja miksi toimintoja hyvää?
Ne ovat hyvä useita syitä.
Joten ei joku halua ottaa puukottaa mitä organisaatio tarkoittaa?
Mitä, miksi toiminnot ovat hyödyllisiä?
Kyllä?
>> SPEAKER 4: Se tekee koodi luettavampi.
>> JOSEPH: Oikea.
Joten yksi niistä asioista on se tekee koodi luettavampi, eikö?
Sen sijaan, kuten int x on yhtä kuin x kertaa x kertaa x, voin olla kuution x,
joka on luettavampi ja enemmän ymmärrettävää lukija.
>> Organisaatio on myös niiden pilkkominen koodi hallittaviksi
osia, joten sen sijaan että yrittäisivät pantava tämä kaikki yhdessä pitkä jakso
main, voit tavallaan jakaa sitä osaksi kuten, OK, nyt kirjoittaa funktio
Cube jotain, nyt kirjoittaa toimiakseen neliö jotain.
Näin voit jakaa sen pieniksi, pikku osia, jotka voit ratkaista
toisin kuin yrittää puuttua iso ongelma kaikki kerralla.
>> ROB: Tai edes pieni, vähän osia, jotka sinä ja kumppani voi puuttua.
>> JOSEPH: Joo.
>> ROB: Joten sen sijaan molempien Yritätkö istuttaa yhden
toimiakseen samanaikaisesti.
>> JOSEPH: Yksinkertaistaminen.
Kukaan halua ottaa arvata?
Kyllä?
>> SPEAKER 5: Lisää toistoa.
>> JOSEPH: Oikea.
Niin yksi asia, että voit tehdä yksinkertaistaminen on, että se on eräänlainen on
samaan tapaan kuin uudelleen käytettävyys on, että kun minä kirjoitan datakuutiofunktioiden, voin
vain käyttää sitä uudestaan ​​ja uudestaan ​​ja uudestaan jälleen minun ohjelma kirjoittamisen sijaan
x kertaa x kertaa x yli ja uudestaan ​​ja uudestaan.
Ja yksinkertaistaminen tässä myös juuri tarkoittaa se tekee koodin eräänlainen
helpompi debug kun jaat tämä ylös toimintoja.
Koska silloin voit paikallistaa missä ongelmat tavallaan ovat.
Kaikki kysymykset?
>> Joten toinen ajatus on abstraktio, eikö?
Musta ruutu.
Kuten tiedät mitä GetInt tekee saada palautetta käyttäjä?
Emme ole kertonut sinulle, eikö?
Kaikki olemme kertoneet teille on GetInt ei mitä se sanoo se tekee.
Joten vaikka emme kertoa miten se toimii, saat silti tietää.
>> Joten tässä tapauksessa, tämä on nelinkertaistaa toiminto, joka tekee
eri asioita tuloon tuottaa tuotos.
Ja voit nelinkertaistaa numero kertomalla se neljä.
Tai voit kutsumme bittinen siirtää sen kahdella.
Ja me kattaa tämän hieman myöhemmin.
Ja ei tarvitse tietää, miten tämä toiminto itse asiassa toimii niin kauan kuin se
toimii kuten.
>> Joten konepellin alle, voisin olla kuten, palata tulo kertaa
Kahdeksan jaettuna kahdella.
Ja et tiedä, eikö?
Kaikki mitä sinun tarvitsee tietää on se mitä se sanoo.
Niin, että hyödyllinen asia noin abstraktio.
>> Ja toinen asia on tavallaan tämä ajatus hakeutumaan koodin yhteen
tiettyyn osaan.
Joten jos sinulla on ongelma, et täytyy mennä ympäri koodi yrittää
korjata missä ongelma oli.
Joten tässä tapauksessa, olen toteuttanut kuutio väärässä.
Luulin kuutio on kertomalla kolmella.
>> Joten tässä tapauksessa, tämä on yksi ohjelma että juuri on kertomalla kolmella
kaikkialla.
Ja siellä on toinen ohjelma, joka on osavarmuusluvuilla kuutio ulos toiminnon.
Ja nyt jos haluan korjata virheeni täällä, minun täytyy korjata jokainen viiva
koodia tässä ohjelmassa.
Kun taas toisaalta, jos käytän toiminto, en vain tarvitse vaihtaa
mikä oli vikana yhdessä paikassa.
>> Joten tietotekniikassa, me soita tulot ja lähdöt.
Tuloa kutsutaan parametrit tai argumentteja, ja lähdöt ovat nimeltään
palauttaa arvoja.
Ja näemme, miten tämä auttaa meitä järjestä Define toiminnon toisella.
Joten tämä on funktion määritelmän varten Cubing.
Joten se vie tulo, ja sitten se palaa että numero kertaa
itse kolme kertaa.
Joten jakaa järjestelmä.
>> Joten meillä on toiminto header, joka koostuu ensisijaisesti kolme asiaa.
Joten meillä on parametreja, jotka ovat, kuten aiemmin sanoin,
panoksina tätä toimintoa.
Ja sitten annamme funktion nimi.
Tässä tapauksessa sitä kutsutaan kuutio.
Ja sitten me määritellä, mitä tyyppiä tuoton arvo on.
>> Joten tässä tapauksessa, minun datakuutiofunktioiden vie kokonaisluku, ja se on myös
palauttaa kokonaisluvun.
Joten jos kuljen kaksi, kaksi on kokonaisluku, se palaa kahdeksan minulle, joka
on kokonaisluku.
Joten palata tyypin nimi parametrit.
Kysymyksiä siitä?
>> Ja sitten palauttaa arvo on todella määritelty lopussa sanomalla paluu
ja palaavat sitten mitä tahansa sisältää paluuarvo.
Joten tässä tapauksessa, jos laitamme kaiken yhdessä, toiminto vie
parametrit, sitä kutsutaan jotain, ja se palauttaa jotain, joka on tyyppiä
että sanomme sen piti olla.
Kaikki kysymykset?
>> Miten siis käyttää toimintoa?
No, me kirjoittaa toiminto ja sitten käytämme sitä meidän ohjelmaan, eikö?
Niin pyysin sen kuution, ja sitten voin käyttää kuutio.
>> Mutta mikä on tärkeää huomata, on järjestyksessä asioita.
Jos minulla on kuution alla tärkein, se on menossa törmätä kuutio.
Ja tässä vaiheessa, ei ole mitään kutsutaan kuutio ohjelmaan, ja se on
juuri menossa olla, minulla on Ei aavistustakaan, mitä kuutio on.
>> Niin se kertoo, implisiittinen ilmoitus toiminto.
Se on virhe, joka näkyy.
Ja niin tässä tapauksessa kuutio on alle tärkein, joten se ei tule
tietää siitä.
>> SPEAKER 5: Joten tärkein on yleensä viimeksi määriteltyä?
>> JOSEPH: Joten kysymys on, on tärkein yleensä viimeinen
asia, että haluat määrittää?
Ja ei.
Se johtuu siitä, että yleensä haluavat main olla huipulla, eikö?
Koska se on ensimmäinen asia, sinun haluavat ohjelmoija avaamista
ohjelman nähdä.
Ja niin miten voimme ratkaista tämän kysymyksen me haluavat main olla huipulla, mutta
toimintoja, joita haluamme, haluamme heidän olla alle main vielä pystyä käyttämään
ne sisällä tärkein?
>> No, käytämme mitä kutsumme funktion prototyyppi.
Joten mikä funktio prototyyppi olennaisesti on se ensin kestää mitä
allekirjoitusta tai toiminnon otsikko mitä haluamme toteuttaa alas
täällä, ja laitamme sen alkuun ohjelman.
>> Joten tässä tapauksessa, sanomme, että hyvin, myöhemmin ohjelmaamme, aiomme
luvata toteuttaa tämän toiminto nimeltään int kuutio, jossa otetaan
kokonaisluku-tulo.
Joten nyt, koska se on edellä main, Tärkein, se aikoo sanoa, oh, hyvin,
myöhemmin ohjelmassa, joka tulee olemaan siellä niin voin viitata siihen, niin minä
vain antaa sen mennä läpi nyt.
>> Ja sitten alaosassa, toteutamme kuutio.
Ja sitten tärkein sanoa vain sen, No, se on jonkinlaisia ​​yhteyksiä
nämä kaksi merkkiä toisiinsa.
Ja me kattaa, mitä se tarkoittaa myöhemmin.
Ja niin se tulee tietää, että tämä on datakuutiofunktioiden että se pitäisi käyttää.
>> ROB: [kuultavissa] noin haluavat Tärkein alareunassa tai
top, olen nähnyt molemmat.
On asioita, jotka vain haluavat laittaa tärkeimmät alareunassa.
Mutta kun hanke saa erityisen iso, yleensä tärkein on
tiedostoon aivan oma.
Ja siinä vaiheessa, kuten int kuutio linja olisi -
sisällä stdio.h olemassa joukko linjat noin vain int
kuutio int tulo linja.
>> Ja niin nuo prototyypit ovat asioita, yleensä laittaa otsikkoon tiedostoja kello
Jolloin sillä ei ole väliä.
No, sillä ei ole väliä.
Nämä aina mennä yläreunassa.
Ja jos tärkein ei ole tiedosto aivan oma, sinun ei tarvitse huolehtia laskemisesta
itsenäinen tehtävä prototyyppejä tiedostossa.
>> JOSEPH: Ja me saamme että hieman Hieman myöhemmin, kun Rob alkaa puhua
noin kokoamisessa.
Ja niin siellä on myös ero käydäänkö parametreihin ja argumentti.
Ja parametri on juuri me kutsumme näitä panoksia, kun
me määrittelemme funktio.
Ja me kutsumme sitä väitettä, kun me oikeastaan ​​siihen johdetaan toiminto.
>> Joten tässä tapauksessa, tämä on parametri, kuten olemme sanoneet aiemmin.
Ja kun me todella käyttää sitä tuolla, kuutio x, niin x itsessään on
mitä kutsumme argumentti toiminnon kuutio.
>> ROB: Joten parametri väitteet ovat -
on tämä ero, hyvin sekava synonyymeinä.
Tässä vaiheessa minulle, se on kuin yksi nuo sanat, että kun näen sen ulos
villi, en voi auttaa, mutta heti onko ne käyttävät sitä
oikeassa asiayhteydessä, koska Ero on hiuksenhieno riitä, että vain
jokainen pyrkii -
Olen melkein aina sanoa argumentti riippumatta siitä, mitä tarkoitan.
>> JOSEPH: Ja toiminnot ovat myös hyödyllisiä mitä me kutsumme sivuvaikutuksia.
Joten toiminto ei voi ryhtyä tuloa, ja se voi myös tuottaa mitään lähtöjä.
Joten tässä tapauksessa, olen määritellään aliohjelma, joka ei ole
palata arvo.
Ja jotta täsmennetään, että käytämme mitä me kutsumme mitätön tänne.
Ja niin sivuvaikutus tätä toimintoa on, että se vain tulostaa tavaraa
ulos sivulle.
Se ei oikeastaan ​​tehdä mitään tuloa, ja se ei
todella tuota lähdöt.
>> Mutta tämä voisi olla hyödyllinen siinä mielessä jos haluat, esimerkiksi debug
jotain ohjelmaa, jos haluat kirjoittaa pienen aliohjelman
tulostaa, sanotaanko, sisältö muistia tai jotain.
Ja niin nämä haittavaikutukset ovat joskus hyödyllistä kontekstin ulkopuolella
vain haluavat tulot ja lähdöt.
Kaikki kysymykset?
>> Ja lopettamaan tässä segmentissä Mitä tämä ohjelma tekee?
Annan teille pari sekuntia lukea sen läpi.
Klo hyvin perustasolla, mitä haluamme sanoa, että se swapit x ja y, eikö?
>> Joten kuinka moni teistä todella ajattelevat tämä vaihtaa x ja y?
Nosta kätesi.
Ei kukaan.
OK.
Joka ajattelee, että se ei vaihda x ja y?
Ja summa, joka oli ei koko huoneen.
Niin jotkut ihmiset eivät ole varmoja.
OK.
Se on kohtuullinen.
>> Joten mennään läpi mitä tapahtuu, kun voit itse soittaa toiminnot ensin
Voidaksemme vastata tähän kysymykseen.
Joten tämä on mitä muistia tavallaan näyttää.
Tämä on tavallaan kuin yksinkertaistettu malli mitä muistia näyttää, kun
käynnistät ohjelman.
Joten siellä on jotain kutsutaan pinon tänne ja
jotain kutsutaan kasaan.
Ja nämä kasvavat kohti keskellä muistia.
>> Joten tässä tapauksessa, kun soitat toiminto, se
saa laittaa pinoon.
Ja sitten mitä sisältyy, että toiminto pysyy mitä kutsumme että
toiminnon pinokehyksen.
Ja siten saada mukava visualisointi Tämän let's - esimerkiksi meillä oli
Ohjelman tärkein aikaisemmin.
Ja sisältä tärkeimmät, soitimme kuutio.
Joten tärkein ensin mennä pinoon runko, koska se on ensimmäinen funktio
sitä kutsutaan.
>> Ja sitten kun kuutio on nimeltään sisällä Tärkein, se saa laittaa päälle tärkeimmistä
sisällä muistia.
Joten mitä huomaat on, että kuutio on oma parametrit ja sen
omat paikalliset.
Joten kun todella välittää jotain toiminto, parametrit, että se
saa ovat kopioita mitä oli hyväksyttiin päässä tärkeimmistä.
>> Ja tavallaan selittää tätä, nyt kävellä läpi ohjelman.
Joten meillä on pino, tämä on vain osapinkan.
Ja mitä teemme on ensin alustaa x ja y yksi ja kaksi.
Joten meillä on nämä vähän laatikoita.
He istuvat tärkein poistoilmapiipun runko pinoon.
Ne sisältävät yksi ja kaksi.
>> Nyt kutsumme swap.
Mitä tapahtuu, on ohitamme x ja y osaksi swap, ja swap luo omat kopiot
käytetyistä muuttujista käyttää sisällä sen pinokehyksen.
Joten nyt siellä, meillä on, joka sisältämään arvoon x oli, ja b,
joka sisältää arvon, että y oli.
Joten yksi, kaksi.
>> Ja huomaat, että tämä on erillinen alkaen x ja y sisällä tärkein.
Joten me nyt luoda väliaikainen muuttuja sisältää.
Asetimme yhtä kuin bo, joten se muuttuu yhdestä kahteen.
Ja sitten asetimme b yhtä temp, joka on yksi.
>> Ja niin nyt me poistumiseen Tämän toiminnon.
Kun poistut ulos toiminnon, pinokehyksen saa piipahti pinosta.
Me kutsumme sitä työntää.
Painat pinokehyksen pinoon ja pop jos pinosta.
Ja niin mitä tapahtuu, on kaikki, oli, että pinokehyksen tavallaan vain
menee liekkeihin.
Ja niin, että ei ole enää olemassa.
>> Mutta mitä me huomaa?
Emme koskaan oikeastaan ​​muuttunut arvot x ja y, eikö?
Joten ne jäi paikallisten to main.
Ja viemällä asioita swap, me oikeastaan ​​koskaan muuttunut näitä arvoja.
Ja mitä me kutsumme tätä?
Kutsumme tätä ohi arvoa.
>> Joten C, kun siirtää asiat oikeisiin toimintoja, se kulkee niitä arvon ja
tekee kopion niitä toiminto käyttää.
Ja me oppia jotain kutsutaan ohimennen viitataan myöhemmin, mutta se on
Näin voit ratkaista tämän ongelman.
Mutta emme ole huolissasi että vasta myöhemmin.
>> ROB: Ja itse asiassa, että termi, ohimennen viittaamalla, joten C ei ole edes
ohi viitataan.
C yksinomaan on ohi arvo.
Ei ole väliä mitä teet, olet aina kulkee kopio jostain.
Se on vain, että, kuten minä tavallaan mainittujen että ennen viitteitä
ja että merkkijono on oikeastaan ​​vain neljä tavut osoittaa jonnekin muistiin.
>> No, jos minulla on tämä merkkijono ja se on kertoo minulle, että on, jos merkkijono -
No, jos minulla on tämä osoitin tähän laita muistiin, niin voin välittää
kopio, että osoitin toiminnon kohdalle ja että toiminto vielä tiedä missä
muistia se on.
Joten molemmat osoittimet osoittavat samaan paikkaan muistissa, ja
se miten aiomme pystyä muuttaa asioita pidemmälle
nykyinen pinokehyksen.
>> JOSEPH: Haluatko tehdä kokoamiseen?
>> ROB: Ei, se on 05:30.
>> JOSEPH: OK.
Se on 5:30.
OK.
Joten pystymme kattamaan kokoamiseen Oletan Seuraavassa osassa tai jakso
Leader tässä vaiheessa.
Ja -
>> ROB: Kaikki kysymykset?
>> JOSEPH: Kaikki kysymykset?
Kyllä?
>> SPEAKER 5: käyttäminen merkkijonoja CS50 tahansa toimintoja, joita haluamme käyttää
niille, että tulee olemaan kuten C toimintoja.
CS50 ei ole mennyt sisään ja tehnyt mitään ylimääräistä.
>> ROB: Oikea.
Jokin C kuten [kuultavissa], et käyttäisi näitä meidän jousille.
>> JOSEPH: Ja viimeinen asia, jonka haluan mainita, että meillä on stilisointioppaan
tämän luokan.
>> ROB: Joo.
>> JOSEPH: Joten jos olet kotoisin ohjelma taustalla ennen, et
saattaa olla tiettyjä sopimuksia, kun olet kirjoittamassa koodia kuin laittaisi
henkselit samalle riville tai erityisesti tapoja sisennys
tai nimeämällä muuttujat.
Tässä luokassa, haluamme seurata tiettyä tyyliä opas vain siksi,
No, jos menet ulos ja töihin teollisuus, aiot odotettavissa
seurata tyyli opas yritys, jolla menet.
>> Kuten esimerkiksi Facebook luulen on omanlaisensa nimeäminen
yleissopimus.
Ja siellä on eroja kameli kotelo muuttujat ja aivan kuten
erottamalla ne alleviivausmerkein.
Ja myös, mielestäni tärkeintä, kuten esimerkiksi sisennykset, eikö?
>> Emme aaltosulkeita aloittaa missä ehto on, ja ne
ovat seuraavalla rivillä.
Ja me myös laittaa aaltosulkeita vuonna vaikka se on vain yksi rivi.
Ja paljon kertaa, on olemassa keinoja tehdä se jossa voit jättää näitä henkselit
pois, jos se on vain yksi rivi alle Jos julkilausuman.
Mutta tässä luokassa, haluamme seurata tiettyä tyyliä opas vain niin saat
käytetään, että sellainen asia.
>> ROB: Joo, ja tyyli 50 on menossa täytäntöön tämän tyylin oppaan, ja olemme
aio käyttää Style 50 palkkaluokkaan koodi.
Niin se helpottaa asioita meille ja toivottavasti ei pitäisi tehdä asioita, jotka
paljon pahempi sinulle antanut standardoitu tyyli ei pitäisi olla, että
epärealistinen.
>> JOSEPH: Ja lopuksi, löytää tyyli siirtymällä osoitteeseen manual.cs50.net/style.
Ja joo.
>> SPEAKER 4: Aiotko valvoa mitään merkkiä riville?
>> ROB: Kyllä.
>> JOSEPH: Anteeksi, kaverit.
>> ROB: Se on kuin yksi ainoita.
Tässä vaiheessa olen OK kanssa 120.
Olen ok sanomalla 120 merkkiä riville.
Ymmärrän, että on joitakin raja.
Mielestäni 80 on niin pieni, mutta me noudattamisen valvomisessa.
>> JOSEPH: Henkilökohtaisesti uskon kanssa C, 80 merkkiä on OK.
Kun alkaa saada muille kielet kuten JavaScript ja PHP, ei
niin järkevää vain rajoittaa se 80 merkkiä.
OK.
No, se oli super-osiosta.
Haluaako joku karkkia?
>> SPEAKER 4: Kyllä.