[Musiikki soi] ALLISON Buchholtz-AU: Hei kaikille. Tervetuloa ensimmäinen virallista CS50 jakso. Kuten voit, katso tämä kohta CS50 kaltainen, vain vetää meidän päivän esityslistaa. Joten, kuka minä olen, koska olen varma olet kaikki ihmettelevät. Olen teidän TF. En ole vain satunnainen opiskelija kuka esiintyminen teidän TF. 

Ja aion käydä läpi sellainen on osien virtaa, odotukset meillä on, resursseja, niin edelleen ja niin edelleen. Aiomme puhua paneelit, ASCII toimintoja, komentorivin argumentteja, ja se ei ole täällä, mutta Aion myös auttaa olet sellainen miettiä seuraava PSET tällä viikolla. Olen varma, että te kaikki arvostavat. 

Joten, ensimmäinen question-- kuka minä olen, lisäksi teidän elämäniloinen TF täällä. Olen Alison Buchholtz-Au. Tämä on minun toinen vuosi TFing CS50. Olen myös TF CS51 keväällä. Saatat nähdä taas jos päätät ottaa sen. Olen myös PAF, joten kaikki Freshmen-- ja jos et ole fuksi, Tämä on minun kolmas vuosi kuten neuvoo kaveri. Olen hyvin perehtynyt neuvoo sinua elämästä ja kurssit CS eikä CS. Olen Computer Science keskitin. Olen vanhempi Adams House, paras talo. Ja ennen kuin olen vaihtanut CS minun Sophomore Spring, Olin todella biolääketieteen insinööri. Aioin mennä Med kouluun. Aioin olla trauma kirurgi. Ja että on täysin muuttunut Otin CS50. Otin tietenkin minun Sophomore Fall. Se oli minun ensimmäinen esittely CS koskaan. Olin yksi 78% teistä jotka oli nolla kokemus tulossa, ja se täysin muutti elämäni. Ja nyt olen töissä Microsoft, ja ihanista TF. Ja CS50 on luultavasti yksi parhaista kokemuksista että olen ollut täällä Harvard-- sekä ottaen luokka ja se voi auttaa opettaa opiskelijoille kuin sinä. 

Joten olen todella innoissani että te kaikki olette täällä. Jos sinulla tuli myöhään, on karkkia, joka sinun pitäisi tuntea vapaasti tulla napata, tai lähettää joku muu napata sen sinulle. se on OK. En halua syödä sitä. Oma huone on tarpeeksi suklaata, joten y'all pitäisi yrittää lopettaa se. Tiedän, että on 100 kappaletta, mutta kuten 4 kello maanantaina Mielestäni jokainen voisi käyttää hieman sokeria. 

Joten kaikki te, jotka ovat virallisesti minun osiosta olisi saanut sähköpostia minulta minun puhelinnumero, email address-- rohkeasti lisätä minut Gchat, voit lisätä minut Facebook, ja myös te muut, voit lähettää sähköpostia minulle täällä. On olemassa kaksi H: n. Jokainen tekee aina kuten kaksi L: n tai kaksi C: n. Kaksi H: n sukunimi. Muuten se tulee pomppia, ja En aio saada sähköpostiosoite. 

Joten rohkeasti sähköpostia minulle, ottaa minuun yhteyttä milloin tahansa. En ehkä saada takaisin sinulle 24 minuuttia, mutta lupaan palata sinulle 24 tunnin kuluessa. Jos soitat minulle puoli tuntia ennen teidän PSET johtuu, että olette kuin, Minulla ei ole aavistustakaan, mitä olen tekemässä Allison. Auta minua. Aion rauhoittavat sinua, mutta lopussa päivä, jos soitat minulle puoli tuntia ennen teidän PSET johtuu kanssa mitään kirjallista, Aion olla kuin, no, ehkä on aika käyttää sitä myöhään päivä. Joten aion vastata kaikki pyynnöt hyvin ajoissa. Minun puhelin on yleensä kiinni käsissäni. En yleensä reagoi paljon nopeammin kuin 24 tuntia, mutta voin vain takuu 24 tunnin vasteaika. 

Selvä. Miksi olemme täällä? Myös, jos sinulla on kysymyksiä tahansa, kerro minulle. Puhun paljon. Puhun nopeasti, mutta olkaa hyvä rohkeasti keskeytä minua. Se antaa minulle tilaa hengittää hyvin. Joten osat ovat aika meille oikeastaan ​​vain sukeltaa vuonna, saada joitakin käytännön kokemusta, jotta käydä läpi aiheita, jotka mainitsimme luokassa tai oppimateriaali, joka suosittelemme teitä verkossa. Ja me itse mennä läpi osa näistä varoista hieman. 

Joten jotkut muistiinpanoja osio tukea. CS50-- yksi asioista, joka tekee se yksi suosikkini luokat on tunne, että et ole koskaan yksin. Meillä työskentelee yli 100 ihmisiä, jotka ovat valmiita auttamaan sinua. Meillä on virka Maanantaista torstaihin. Joten siellä on niin paljon ihmisiä, jotka Rakastan luokan yhtä paljon kuin minä ja jotka ovat todella täällä koska he haluavat olla täällä. Useimmat meistä ovat opiskelijoita, ja tämä on kuin viidesosa luokan lisäksi muualle työmme. 

Ja se on paljon työtä, mutta teemme sen, koska me rakastamme sitä, ja me todella rakastamme opettaa sinulle ja auttaa jakamaan jännitystä tästä aiheesta ja tässä luokassa. Joten hyödyntää. Tule puhua meille. Olen yksinäinen, kun oppilaani älä puhu minulle, joten jos haluat, tulevat hengailla kanssani. Se tulee olemaan suuri. 

Joten kohta on tietenkin yksi suurimmista asioista. Menemme läpi asioita että olet oppinut luento, tehdä joitakin lyhyitä esimerkkejä kun meillä on aikaa, ja yleensä sellainen saada käsitys asioista sinun pitäisi ajatella noin ongelmaasi asetettu. Shorts-- kuinka moni katseli videon tyhjästä lyhyt? Kukaan tunnista minua? Joten ne ovat hyvin suuria. Kannattaa ehdottomasti katsoa näitä. Paljon työtä on otettu ne. Ja he vain tarkoitus olla suupaloiksi kappaletta, joista voit vain katsella kolme tai neljä minuuttia ja saada ymmärtää paremmin käsite. Kävele throughs-- miten monet ihmiset ovat katselleet walk-through for aiemmat? Zamyla on hämmästyttävää, eikö? Kuten, Olisinpa Zamyla joskus. Niin ehdottomasti käyttää walk-through. Hän murtaa se alas pieni, purra kokoisen palan. Ja kun sinulla on nämä valtavat määrittelyjä ongelma sarjaa, se tulee olemaan todella tärkeä pystyä vain löytää jostain aloittaa ja työskennellä hitaasti läpi. 

Okei, meillä on myös Study50, joka on study50.harvard.edu, uskon. Voit vain Google tutkia, ja se tulee keksiä. Tämä on yksi parhaat resurssit meillä on. Se on PowerPoint muistiinpanoja ja käytännössä ongelmia sinulle ratkaisuja, jotka olet voi itse kävellä läpi. Joten jos joskus haluat lisää harjoitusta, enemmän kuin me kohdissa tai enemmän kuin ongelma sarjaa, tämä on todella paikka sinun kannattaa mennä. Se rakensi viime kesänä jotkut minun todella hyviä ystäviä. Ja se on hämmästyttävää. Itse asiassa paljon dioja että otan käyttäen jakso tulevat Study50. 

Niin paljon TF: iä käyttää sitä. Ja lopuksi, kuten minä mainittu, virka-aikana. Jos sinulla on vaikeuksia läksyjen kanssa, olet on ongelmia käsite, tulevat virka. Mene alkuviikosta, jos voit. Päästä ulos quad, koska se on eräänlainen kaukana. Kukaan ei tykkää kävellä siellä. Mutta se on eduksi, koska silloin olet menossa on kaikki nämä TF: iä, [Äänetön] ympäröivät sinua. Ja varsinkin nyt, vain kärki, torstaisin ovat hyvin chill juuri nyt Mather koska psets johtuvat torstaisin. Ja tietäen haluaa käyttää myöhään päivän vielä. 

Joten jos sinulla on ongelmia käsitteiden, on paljon TF: iä, jotka ovat valmiina auttamaan sinua. Joten tule ulos Mather torstaina. Jos haluat nähdä minut, Aion olla siellä. En yleensä tee omaa läksyt, koska kukaan ei halua apuani. Joten tule katsomaan meitä. 

Tapaamaan meitä puolitiehen. Joten kuinka moni on osallistunut luennoivat tai katsellut sitä verkossa? Kuinka moni meni Super jakso viime viikolla? Cool. Se on itse asiassa melkoinen joukko. Kuinka moni teistä on lukenut Spec tällä viikolla, teidän PSET? Ooh, olen ylpeä teistä kaverit! Lisää karkkia y'all. 

Hyvä, niin mitä me tarkoitamme "Meitä vastaan ​​puolitiehen," on että kohta on oikeastaan ​​vain tulee olemaan erittäin hyödyllistä sinulle Jos tulet lukeneeni sinun erittely oman PSET. Koska kun menen läpi yleiskatsaus asioita, sinun pitäisi katselee ulos, se ei aio tehdä yhtä paljon järkeä, jos en tiedä mikä ongelmasi asetettu aiotaan pyytää sinua tekemään. 

Jos et tule jaksossa, ilmeisesti En voi olla, että sinulle hyötyä. En aio ottaa sitä henkilökohtaisesti, jos et tule minun kohta juuri nyt, mutta varmasti sinun pitäisi. Jos et pysty, katsella niitä verkossa. He siellä syystä. Mine on oikeassa. Kuten huomaat, olemme tallennetaan, joten se on oikeassa sinulle kaverit. Kuten hyvin, menossa lectures-- se ilmeisesti jos saat alkavaa materiaalia täällä. Joten aion ehdottomasti kokeilla ja auttaa sinua niin paljon kuin voin, mutta voin vain tavata sinut niin pitkälle. Sinun on eräänlainen tavata meidät puolimatkassa. 

Grading-- niin, te kaikki joka sai sähköpostia minulta, olet minun virallisia osiosta. Aion luokittelu sinun psets. Ja haluan vain sanoa yksi asia, kannattaa todella kiinnittää huomiota ovat kommentteja. Kommentit ovat usein hyödyllisiä kuin todellinen tilanne annamme sinulle. Ja kommentit ovat todella jossa vietän paljon aikaani kun olen lajitteluun. Joten olisin kiitollinen se jos luet ne. Ja he todella, miten aiot oppia lisää suunnittelun ja tyyli ja asioita, jotka ovat hieman vähemmän leikattu ja kuiva. 

Joten todella kiinnittää huomiota nämä huomautukset. Jos sinulla on kysyttävää niistä, tai kysyttävää pisteet, tulkaa juttelemaan joko ennen jakso, Tulen todennäköisesti hengailua aulassa, tai jälkikäteen. Jos haluat ajoittaa yksi-on-one tapaamisia, miten Voit auttaa myöhemmin ongelma sarjaa, juuri minulle. 

Ja sitten vain pari vinkkejä te. Joten yksi suurimmista asioista Olen aina korostaa minun osiosta kun olet opettelu koodi on kirjoittaa asioita paperille ensin. Jos sinulla on peli suunnitelma jos koodi on mentävä ja mitä se tarvitsee tehdä ja se jakautuu palasiksi pseudokoodin koodia olet kirjoittanut ulos, aiot olla vähemmän todennäköisesti tehdä syntaksivirheitä tai luo jos silmukka, joka ei ole muuta. Jos tiedät, missä olet menee kaiken, olet vähemmän todennäköisesti tehdä näitä pieniä Virheet, jotka joskus vie tuntia korjata, koska et pidä, jos olen puuttuu tähän luokkaan? 

Komitea suosittelee, että käytä Style50. Varsinkin kun olet menossa virka, Jos koodi on kaikki siirtyneet toiselle puolelle, se on tietenkin politiikkaa että voimme sanoa, korjata sen niin että se näyttää Style50 sanoo sen pitäisi, ja niin me autamme sinua. Joten se helpottaa elämääsi. Se tekee elämästämme helpompaa. Kaikki ovat onnellisempia. Jokainen saa parempia arvosanoja. Niinhän me kaikki haluamme? 

Joten kirjoita asioita paperille ennen Oletko koskaan kosketa tietokoneen. Puhua asioita korkealla tasolla, ja varmista, että tiedät mihin olet menossa. Ja jos olet epävarma, istua alas jonkun kanssa ja kävellä ne läpi vaihe vaiheelta mitä koodi on tarkoitus tehdä. Ja yhdeksän kertaa 10, sinun on kuten, oh, unohdin, jos ehto tai Unohdin puolipisteellä täällä tai Olen päivittää tämän muuttujan väärin. Joten ne ovat minun vinkkejä menestykseen. 

Joten koska noin puolet näytät kuten sinä osallistui Super jakso, Olen juuri menossa hyvin lyhyesti läpi silmukoita, jotka eivät olleet meidän alkuperäinen asialistalla. Mutta ne ovat todella tärkeitä. Ja niin aion sellaista Nopeuden kautta nämä Ennen kuin pääsemme meidän todellinen osiosta. Ennen minä, että on olemassa mitään questions-- logistisesti, henkilökohtaisesti, on olemassa mitään muuta haluat tietää minusta tai noin osan tai luokan yleensä? Kaikki hyvä? OK, viileä. Lovely. 

Joten loops-- te pitäisi kaikki tunnistaa nämä kappaleet tyhjästä. Joten silmukat ovat pohjimmiltaan vain tapa, jolla voimme tehdä jotain Joissakin useita kertoja, jotkut toistuva toiminta perustuu joihinkin ehdollinen. Joten meillä on kolme erilaista. Meillä on silmukka, taas, ja tee-aikaa. 

Joten loops-- meillä on vain hyvin yleinen ulkoasu täällä varten silmukka. Ja tämä on suuri, kun tietää miten monta kertaa jotain tarvitsee suorittaa. Kun puhumme muut silmukat, luultavasti miksi se on tärkeä ero. Mutta silmukat ovat jotain asetettu. Tiedät, voit joko laskea numero tai tiedät kuinka monta kertaa olet halua tätä toistetaan alussa. 

Joten jos näet täällä, me on vain yleinen laji luuranko puitteet varten varten silmukka täällä. Joten alustusta, tämä on silloin, muuttujat alustetaan. Mario, olen varma, että te teki jotain int i on yhtä suuri kuin 0. Siitähän se tapahtuisi sinisenä. Sinulla on kunnossa, mikä on mitä tarkistetaan joka kerta. Jos tämä ehto on tosi, niin Loput ohjelmaa suoritetaan. Sitten se juoksee again-- ja kysyä. Ja sitten meillä on päivitys, jossa olet päivittää muuttuja. Joten, jälleen, ja kuten Mario, olen varma te teki jotain i plus plus. Joten joka kerta silmukka juoksi, sain ajan tasalla, jotta että kun olimme tarkkailun sitä vastaan ehdosta, se oli muuttumassa. 

Koska jos vain muuttuja on staattinen, jos se toteuttaa ensimmäisen kerran, se on juuri menossa suorittamaan äärettömän. Joten sinun täytyy varmista, että olet päivittää muuttujan oikein. Ja meillä on myös juuri visuaalinen esitys siellä. Jokainen hyvä? Silmukoita. Olisi pitänyt nähdä näitä teidän PSET. Cool. 

Joten tässä on vain helppo esimerkki. Tulosta Tämä on CS50! 10 kertaa. Ja niin meillä on alustus, kuten näemme siellä, int i on 0, kun i on pienempi kuin 10, ja minä plus plus. Ja se tulee tulostaa, että 10 kertaa. 

Joten vaikka loops-- kun silmukat ovat suuri, kun et välttämättä on tiedettävä, miten monta kertaa se on menossa päivittää alussa. Sinulla on vain joitakin edellytyksellä, että on tarkistettu. Ja tämä voisi olla jotain while-- Otetaanpa esimerkki omasta PSET. Jos Mario, yrität tulo negatiivinen luku. Oikea? Sinun piti uudelleen kysyy käyttäjätunnuksesi. Joten voit sanoa, hyvin, jos käyttäjä syöttää jotain vähemmän kuin nolla, re-ajallaan niitä. Ja olen varma, että voisi olla ollut jotain, että jotkut teistä käytetty koodi. 

Joten se on yksinkertainen asia. Sinulla on aikaa, jotkut ehdollinen, että tarkastetaan joka kerta koodi menee suorittamiseksi. Jos se on tosi, otamme sen. Muuten meillä ei ole. Ja mitä todella important-- jotain sitä mieltä, että David puhui vuonna lecture-- ovat olkaimet. Riippumatta: n sisällä henkselit on mitä teloitettiin. Jos unohdat ne, henkselit, se vain menee olla linjassa suoraan jälkeen, kun on suoritettu. 

Joten jos sinulla on kolme asioita, jotka on tarkoitus tapahtuu, kun tämä ehto on tosi, ja sinulla ei ole niitä, henkselit, vain Ensimmäinen asia tulee tapahtumaan. Joten olla hyvin tietoinen jos laitat olkaimet. Jos olet kiinni Style50, tämä varmasti auttaa sinua. Cool. 

Joten tämä on lähtölaskenta 10 nollaan. Ja kuten näette täällä, me alustaa jotkut vasta sen ulkopuolella. Yksi asia, joka on erilainen on emme alustetaan muuttuvien sisällä while-silmukka. Se on alustettu sen ulkopuolella. Olemme yksinkertaisesti vain asettamalla ehto meidän aikaa. Joten tässä tapauksessa, se on samalla määrä on suurempi kuin nolla. Ja me tulostaa mitä count on, ja sitten me vähentääksesi meidän muuttuja. Ja se on myös toinen asia huomata. Meidän päivitys ei tapahdu että ensimmäinen osa while-silmukka. Se todella tapahtuu sisällä henkselit, elin tekstin. 

Joten älä-taas loops-- tee-aikaa silmukoita ovat hyvin käyttäjän hyväksymiseksi. Joten jotkut teistä saattavat olla käytetään myös tämä teidän PSET. Voit sanoa, tehdä, kuten, pyytää käyttäjää syöttämään. Ja sitten taas, kuten, tulo on vähemmän kuin tietty määrä. 

Joten nimenomaisen tapauksessa Mario, se olisi tehdä printf, syötä kokonaisluku, ja sitten jotkut kokonaisluku on yhtä getint. Ja sitten se tulee todella toimeksiannosta sen koodi. Sinun todella täytyy jonkinlainen kokonaisluku. Ja sitten voisi sanoa, kun taas että kokonaisluku on pienempi kuin nolla. Joten mitä se aikoo tehdä, on se menossa suorittaa vähintään kerran. Se tulee tarkistaa kunto. Jos ehto on totta, se tulee kulua uudelleen. 

Joten tee-aikana silmukat ovat suuri käyttäjä validointi, koska tiedät koodin tulee suorittaa vähintään kerran, kun taas samalla silmukoita, et ole taata, että se on menossa suorittaa kerran. Se tulee tarkistaa kunto ensin ja sitten päättää toteuttaa sen, kun taas tee-aikaa tulee suorittaa koodin ensimmäinen ja sitten tarkistaa, onko sinun tarvitse toistaa sitä. Tämä erottelu ei järkevää kaikille? OK. Cool. 

Joten tässä tapauksessa, tämä on tavallaan mitä puhuin, Tämän uudelleen ohjeita, kunnes saada positiivinen numero. Joten me tiedämme, että printf "Syötä positiivinen luku" ja todella pyytää, että tulo tapahtuu ainakin kerran. Jos käyttäjä on paha ja pitää kirjoittamalla negatiivinen luku, joka tietää, kuinka monta kertaa se tulee suorittaa. Mutta tämä koodi on taattu suorittaa vähintään kerran. Ja siksi se on hienoa validointi tulo. Ja voit käyttää sitä melko vähän. 

Okei, kysyttävää tähän mennessä? Olemme kaikki hyvin? Minä puhun liian nopeasti? Olemme hyviä? OK. Mahtava 

Joten aiomme mennä eteenpäin ja puhua taulukot. Cool. Joten paneelit ovat pohjimmiltaan vain tietorakenteita joka antaa meille mahdollisuuden tallentaa asiat samantyyppisiä. Joten jos joskus on joukko, se on joko vain täytyy ints tai se vain täytyy kelluu tai se vain täytyy merkkiä. Et aio olla int kanssa char käteisvaroja, jossa on kaksinkertainen. Yksi asia. Paneelit ovat vain yhtä kokoa, tai he ovat vain yksi tyyppi. 

Joten tässä meillä on taulukon koko kolme kolme kokonaislukua siinä. He voisivat kelluu, mutta olemme aio sanoa he ints. Niin yksi asia on ymmärrettävä, että paneelit ovat joukko koko Kun alustat heitä, ja he eivät easily-- koska te kaikki olette vähemmän mukavaksi, sinun pitäisi vain ajatella niitä ei pysty laajentamaan kokoisia. Kuitenkin suuri kuin esitetään matriisisi alussa, se on koko se menee pysyä, koska taulukot ovat jatkuvia lohkojen muistia. Ja kun kaverit saavat tulee vähän enemmän miten muisti on todella säädettyihin levyt ja kasaan ja pino, se tekee hieman enemmän järkeä. 

Mutta voisitte ajatella kuin se on vain rivi tiloja levyltä. Ja et voi taata, että siellä on olemaan vapaata tilaa sen jälkeen. Voisit alustaa array kolme ja sitten ehkä alustaa toisen johdosta viisi myöhemmin, ja se on heti sen jälkeen. Joten jos olit ohittaa paikalla kolme tässä ensimmäisessä array, sinulla olisi kirjallisesti yli jotain muuta. Joten paneelit are-- teille kaverit, vain ajatella niitä kiinteä koko. 

Joten luoda array-- olet menossa tarvitse tehdä tätä melko vähän. Niin samalla tavalla, että meillä on yleinen rakenne meidän silmukoiden meillä on mukava yleinen rakenne meidän array. Koska ne ovat yhden tyypin, kaikki elementtejä array ovat yhden tyypin, joudut alustamaan mitä tuo tyyppi on. 

Joten, kuten näette täällä, meillä on mukava pieni kiinnike tietotyyppi. Jos siis luot int array, joka on int. Jos Luomme char array, se tulee olemaan nieriää. Jos Luomme merkkijono array, se tulee olla merkkijono. Ja sitten nimi array, mitä haluat sen olevan. Joten ehkä se on testitulosten tai ehkä se on opiskelijoille tai ehkä se on karkkia. Mitä ikinä päättää nimetä array, niinhän se tulee olemaan. 

Ja sitten suluissa, luultavasti on haluamasi kokoinen. Joten, me tallentamiseen 10 opiskelijaa tai me tallentamiseen 15 eri karkkia? Mitä ei. Joten meidän esimerkiksi täällä, Luomme array koosta kolme, jotka te katso täällä oikealla. Ja kun ensin alustaa se kaikki on nolla. Joten se on vain ajatus samankaltaisten puhtaalta pöydältä. Meillä on kaikki nämä tilat, olemme kaikki Näiden laatikoiden voisimme laittaa tiedot, mutta ne ovat vain tyhjiä toistaiseksi. 

Joten jos haluamme todella liittää ne näitä arvoja, teemme niin kuin oikeutta täällä näyttää. Joten sinulla on mitä nimi array on ja mitä sitten indeksi haluat. Joten indeksi vain viittaa, kuten, mitä slot etsimme. Ja tärkeä asia huomata on, että taulukot ovat nolla-indeksoitu. Joten jos haluamme ensin muistitilaa meidän array, se tulee olemaan nolla. Jos haluamme toisen, se tulee olemaan yksi. Jos haluamme kolmannen, se tulee olemaan kaksi. Niin edelleen ja niin edelleen. 

Joka on myös syy, perinteisesti, kun teemme loops-- olen varma Te olitte ihmettelevät, miksi alamme 0 vs. 1? Ja se johtuu siitä kun siirtyminen osaksi käyttäen paneelit, se kartat oikein. Joten jos haluat kerrata taulukkoon, se tekee paljon enemmän järkeä do i on 0, koska me tietää, että vastaavat ensimmäisen paikan muistiin. Jokainen hyvä, että? Cool. 

Ja sitten pohjassa tässä vain Toinen tapa alustaa array. Sinulla on vielä tietojen tyyppi ja nimi, mutta sen sijaan, että todellisuudessa laskemisesta koko siellä, voit vain tehdä tyhjäksi suluissa. Ja sitten nämä kihara henkselit alareunassa, voit vain syöttää tietoja, haluat pilkulla erotettuna. Ja joka automaattisesti sanovat, OK, näen että sinulla on kolme asioita näissä olkaimet. Joten tiedän, että minun täytyy jakaa kolmeen lohkot muistia ja sitten tallentaa ne. 

Joten ensimmäisen version voit käyttää jos olet kysymällä käyttäjän syöttää arvot niin, että voit kerrata läpi array ja ask-- saada int syöttää niitä. Jos tiedät arvot etukäteen, se tekee paljon enemmän järkeä käyttää toista tapaa. Mutta useimmissa tapauksissa, et ehkä tiedä, mitä nämä arvot tulevat olemaan. Cool. Muita kysymyksiä? Alright. 

Joten päästä elements-- joten yksi hienoa noin paneelit on, että ne ovat satunnaisia yhteys, mikä tarkoittaa, että voit ei tarvitse käydä läpi joka kadunkulmassa. Jos tiedät, että olet haluta mitä lohkossa kaksi, voit vain sanoa, anna minulle lohko kaksi. Ja siksi nämä indeksit ovat niin tärkeitä, ja niin me todella käyttää niitä. Joten tässä tapauksessa, kuten näimme aikaisemmin, kun olimme arvojen syöttämistä, että yksi Ennen meillä oli nimi ja indeksi halusimme käyttää, eikö? Niin samalla tavalla, että kaikki me tehdä itse vetää, että tietoja ulos. Meillä on nimi ja me on indeksi, jonka haluamme. 

Joten tässä tapauksessa, sillä silmukan täällä alareunassa, kukaan tietää mitä se tekee, mitä se tulostaa? Mmhmm? Täsmälleen. Niin joo, se on vain iteroidessaan kautta. i on yhtä suuri zero-- voimme kävellä koodin läpi vain nopeasti. i on yhtä suuri kuin nolla, i on pienempi kuin kolme tässä vaiheessa, eikö? Niin että tarkastusten perusteella. Ja me sanomme, OK, Tulosta f mikä on lämpötila i. i on nolla täällä kun ensin kerrata, joten menemme tämän ensimmäisen paikan, ja sanomme, OK, 65 on numero haluamme tulostaa. Joten se tulostaa 65 ja sitten tehdä uusi linja. Aion päivittää, niin se tulostaa 87. Se päivittää uudelleen, ja se tulee tulostaa 30. Jokainen viileä? Mahtava. 

Selvä. Joten tässä on tavallaan yksi asia sanoin miten Voit seurata jonkun pisteet ja miksi käyttäisit ensin tapa alustaa se sen sijaan, että toinen tapa. Ja tämä vain menee läpi. Ja huomaa meillä ryhmäkoko on 30. Ja me alustetaan tämän joukko ints joka on kooltaan 30. Ja sitten me iteroidessaan kautta ja olemme pyytää käyttäjää syöttämään tulokset kunkin näistä ja sitten määrittämällä sen tietyn paikan muistiin jossain että array. Cool? Onko järkeä kaikille? Mmhmm? 

Joten hashtag määritellä ryhmäkoko 30 on esikäsittelijään direktiivi, mikä tarkoittaa vain sitä gets-- se on tehdä kuten Laadintaan. Voit ajatella sitä kuten globaali muuttuja. Miten teemme sen on typically-- se mahdollistaa koodin jotta voidaan helpommin muuttaa. Joten sanotaan, että meidän ryhmäkoko yhtäkkiä menee 30-15, jos en olisi määritellyt sen näin, olisin täytyy käydä läpi koko ohjelman ja muuttaa jokaisen esiintymän 30-15. Mutta tämä, saan muuttaa yhden paikalla, ja kaikki muu muuttuu. 

Jos joskus haluat tehdä hash määritellä asiassa jos olet pitää kirjaa noin asettaa useita pisteitä luokan tai käytät useita että voidaan käyttää, kuten, koko hyvin pitkä ohjelma, se on paremmin määritellä, että alussa joten nyt jos koskaan se muuttuu, saat muuttaa yhden paikan sijasta 100. Kyllä? 

Opiskelija: Välillä tee sitä ja vain julistamisesta [äänetön] yli yläreunassa. 

ALLISON Buchholtz-AU: Niin se on tekemistä efficient-- se on eräänlainen ulkopuolelle mitä voimme kattaa tässä osiossa. Se liittyy enemmän tehokkuutta ja miten asiat todellisuudessa työskentelevät Laadintaan. Jos haluat todella tietää siitä, olen iloinen lähettää sinulle sähköpostin resursseja siitä. Hash määritellään yleensä edullisia asioita. Ja kuten koodista, et sellaista oppia vivahteita siitä, milloin kannattaa käyttää globaali vs. hash määritellä. Mutta toistaiseksi, et todellakaan ole huolehtia siitä on että lyhyt vastaus. Jokainen hyvä, että? Ja myös, jos haluat käyttää hash määritellä, se on todella tärkeää huomata että nimi pitäisi olla kokonaan isoilla kirjaimilla. Emme juuri tekemässä Ryhmäkoko olla dramaattisia. Se pitäisi oikeastaan ​​olla kokonaan isoilla kirjaimilla. Cool. Mitään muuta siellä? Olemme hyviä? Lovely. Tervetuloa. 

OK, joten haluan teitä katsomaan tätä ja katso jos voit löytää vian. Annan sinulle vihjeen. Se on jossain, että for-silmukka. Mmhmm? 

Opiskelija: Pitäisikö olla pienempi tai yhtä suuri kuin 2. 

Allison: Niin se voisi olla pienempi kuin tai = 2, tai se voi olla pienempi kuin 3. Ja mitä perusteluja siihen? 

Opiskelija: [kuulumaton], 0, 1, 2. 

Allison: Aivan. Niin riviksi koko n, me vain indeksit n miinus 1. Cool. Ja sitten voimme saada todella hullu ja saada moniulotteinen taulukot. Yksi ongelmista, kun otin sen minun Vuoden tarvitaan moniulotteinen paneelit, ja mielestäni yksi niistä saattaa vaatia se tänä vuonna, joten on mukava olla. Kääri pään ympärillä nyt. Se tulee takaisin kummittelemaan teitä, mutta viileässä tavalla. Joten voit todella vain ajatella moniulotteisia taulukoita kuten paneelit paneelit. Voit siis sellaista ajatella tämän alkuun krs ensimmäisen palan muistia. Ja tämä on Toinen kimpale muistia, ja viimeinen rivi on kolmas kimpale muistia. Ja tuossa, siellä on jono. Mutta tietenkin, se on helpompaa kuvata näin. 

Joten voit alustaa sen samalla tavalla. Tämä on merkki Hallituksen kolme kolmella. Joten sinulla on kolme riviä ja kolme saraketta. Olemme edustavat sitä tällä tavalla. Ja voisitte käyttää sitä Samoin sarakkeen rivillä. Ja niin 1,1 kuten näemme täällä. Asetamme nolla, nolla siellä. 2,0 ja 0,2. Voisi siis vain käyttää them-- jos kukaan on koskaan tehnyt lineaarialgebra, Samalla tavalla voit käyttää osa matrice, se on sama ajatus täällä. Joten voit suhteuttaa sen takaisin matematiikasta. Sinun ei tarvitse huolehtia liikaa paljon tästä juuri nyt. On hyvä olla alttiina, tietää, että voit tehdä sen. Voit luoda joitakin hullu number-- voit luoda hullu taulukot on kaikki aion sanoa. [Äänetön] Se saa hieman hullu, mutta se on todella siistiä. Mahtava. 

Ja sitten, joten meillä on esimerkki tästä. Se laskee merkkijonon pituus. Niin kuinka moni tiesi, että jouset, että käytät ovat vain ryhmät merkkiä? OK, joo. Joten te voi ajatella, että et ole käytetyt taulukot ennen, mutta koska tahansa käytät getstring vuonna CSView kirjasto, olet oikeastaan ​​vain pyytää erilaisia ​​merkkejä. Ja me huolta kaikista että back-end sinulle. Mutta olet käyttänyt taulukot, kun aloitit. Et vain tiennyt sitä vielä. 

Ja kun sinulla on yksi hahmo array tai joukko, joka on tallentamiseen merkkijono, viimeinen asia on aina mitä kutsutaan null terminaattori, joka on tämä täällä. Ja että on lopussa jokainen sana, että olet tallentamiseen. Joten jos haluamme selvittää merkkijonon pituuden, voimme sanoa, No, te tiedätte, sisältö että lohkon ei ole sama kuin meidän null terminaattori. Tämä tarkoittaa, että on olemassa jonkin verran merkki on, että me itse välitä se on osa sanan. Voit lisätä pituutta. Ja sitten kun me itse saada sanan loppuun, se tulee lopettaa ja se tulee palauttaa meidän pituus meille. Mmhmm? 

Opiskelija: Onko tilaa lasketa null terminaattori? Allison: Eli tilaa on ei null terminaattori. Joten jos sinulla on multiple-- tilaa on todella erityinen ASCII-arvo. Opiskelija: Mikä huudahdus yhdenvertaisen uudelleen? ALLISON: Niin, tämä on mitä viitata. Jos olet koskaan kuullut minua virka, Olen aina sitä kutsuvat, kuten Bang tasavertaisina. Joten Bang ei ole. Joten tämä ei ole yhtä kuin. Joten jos yrität katso jos jotain on väärä, tiedät aina tehdä, bang tahansa muuttuja on, ja jos se on väärä, se on tosi ja sinulle voi tehdä hienoja juttuja että. Siitä lisää myöhemmin. Cool. Kaikkea hyvää sinne? Mahtava. 

Joten nyt on sinun kaverit "aika työtä, koska olen puhunut. Joten haluan sinun vain luoda array kanssa kokonaislukuja yksi, kaksi, kolme, ja sitten ovat ne tulostetaan. Sinun ei tarvitse tehdä, kuten, tärkein, blaa, blaa, blaa, mitä tahansa. Haluan vain voit alustaa array ja luo sitten varten silmukka tulostaa ne out-- tai while-silmukka, jopa sinulle. 

Otan vain antaa sinulle pari minuuttia työtä, että. Aion levätä ääneni. Jos sinulla on kysyttävää, olen onnellinen tulla ympäri ja puhua kaverit. Voit vapaasti puhua toistensa kanssa. Saada enemmän karkkia. Itse asiassa minä vain kävellä ympäriinsä karkkia. Kuinka niin? 

Haluatko mitään? Kukaan muu tässä huoneessa haluavat karkkia? Voit myös ottaa enemmän kuin yhden, kaverit. Ota kourallinen, jos haluat. Yhtä hyvin. Kaikki muutkin hyvää? OK. 

Lisäksi aion luoda anonyymi Google Form, ja te voi vain esittää Palaute jälkeen jokainen jakso jos on jotain haluat parannella tai jotain haluat tehdä. Jos olen hieman liian Peppy sinulle, voin sävy se alas. Minä luoda sitä ja lähettää sen ulos teille kaikille jälkeenpäin. 

Selvä. Joten aloitetaan pieni. Kuinka voisimme alustaa meidän array? Mikä tyyppi meidän array? Int, eikö? OK, niin mitä haluat soittaa array? Int array, viileä. Okei, joten meillä on int int array yhtä suuri, ja mitä meillä on sen jälkeen? Opiskelija: [kuulumaton] suluissa. Allison: olkaimet. Ja sitten sisällä henkselit? Yksi pilkku kaksi pilkku kolme. Cool. Niin ei se mitään. Joten nyt meillä on varten silmukka. Joten ensimmäinen osa varten silmukka, mitä meillä on? 

Opiskelija: i on yhtä kuin 0? 

Allison: Niin int i on yhtä suuri kuin 0, ja mitä sitten on meidän kunnossa? Mitä minä olemaan alle? Vähemmän kuin kolme, ja miten me päivitämme minä? i plus plus, päivittää sitä yhdellä. Ja sitten me aiomme olla jotkin printf on kokonaisluku, ja mikä on se viimeinen osa, joka on itse asiassa aio sanoa, mitä meidän pitäisi tulostaa? Olisi nimi array, joka on int array, eikö? Ja mitä on sulkeissa int array? i. [? Niin minä?] Kutsuin Esimerkiksi, mutta siellä mennään. Ei niin paha. Jokainen hyvä? Cool. 

Joten olemme tehneet paneelit. Onnea. Olet onnistunut kerrata läpi kaikki the-- kyllä? 

Opiskelija: [kuulumaton] 

Allison: Kyllä. 

Opiskelija: Minulla on kysymys. Sinun pitäisi sisentää henkselit? 

Allison: Eli olkaimet olisi riviin jossa on silmukka, ja sitten kaikki sisällä henkselit olisi sisennetty. 

Opiskelija: OK, pitäisi silmukkakytkentäjohdotukseen sisennetä? 

Allison: for silmukka ei on sisennetty tässä vaiheessa. Jos olisit main, jos me todella oli päätehtävä täällä, se olisi sisennetty tärkein. Mutta tässä tapauksessa, se on hieno. Kyllä, kysymys. 

Opiskelija: Onko sinulla täytyy olla jälkeen suluissa esimerkki? 

ALLISON: Kyllä, jos olet alustetaan niin. Joten muistakaa, tämä on toinen tapa alustaa array jossa meillä on henkselit ja sitten meidän todellinen tietojen pilkulla erotettuna sisällä. 

Opiskelija: Luulin oli kannattimet, että esimerkiksi. 

ALLISON: Ei, he olkaimet. He olkaimet. Jos olet alustamatta että toinen tapa, se on henkselit. Jos olisimme sanoa, int example-- jos Halusimme vain tyhjä array ints, olisi int esimerkiksi kiinnikkeet kolme. Suluissa edustavat koko. Kun sinulla on hammasraudat, se on todelliset tiedot olet laskemisesta sitä tällä tavalla. Voimme vierittää takaisin todella nopeasti. 

Joten tässä yksi, tämä on vain meidän aloitustaulukon, alustus. Ja täällä, me olemme yksin osoitetaan paikkoja niille, joten tämä edustaa indeksi meidän array, minkä vuoksi meillä on suluissa. Mutta täällä, jos huomaat olemme jätimme suluissa ilman koko, ja me alustaa sen Varsinainen data all-in-one on hammasraudat. Opiskelija: Miksi ei meillä suluissa tässä esimerkissä? ALLISON: Eli mikä osa? Opiskelija: Eikö me vaikkapa int Esimerkiksi suluissa on yhtä kuin henkselit [kuulumaton] suluissa, esim. 

ALLISON: Ai, anteeksi. Olet oikeassa. Meillä on suluissa siellä. Sorry guys, my bad. Kyllä, sinun pitäisi olla jälkeen suluissa esimerkki. Olet aivan oikeassa. 

Opiskelija: [kuulumaton] ei tee sitä. 

ALLISON: Ei, sinulla on oltava suluissa, koska muuten se on aio julistaa array. Opiskelija: [kuulumaton]. Pahoillani siitä. 

ALLISON: Anteeksi, tarvitset jälkeen suluissa esimerkki. Typo. Hyvä saalis, kulta tähti sinulle. Myös, jos pyydät kysymys, jos te olisi vain kerro minulle nimiä, Mielelläni että. Mielelläni pystyä tietää kaikki nimet. En aio kylmä soittaa sinulle, olen itse en vain halua tietää nimiä. Joten oikeastaan ​​kerro minulle nimiä. 

LEAH: Leah. 

Allison: Leah. OK, joten functions-- tiedän lyhyesti he puhuivat tästä aikana luento. Joten tehtävät ovat sellaisia ​​vain kuten nämä pikku suupaloiksi asioita jos ohitat tuloa, jotain maaginen tapahtuu, ja saat lähdöt. Cool. Joten te todella käytetään monet näistä jo. Hanki int, saat merkkijono, tulostaa f. Nämä ovat kaikki toiminnot jossa voit vain soittaa heille, siellä on paljon maagisia asioita käynnissä taustalla että et välttämättä näe, ja saat mitä haluat. Tai ainakin saat mitä toivoa haluat. 

Ja pohjimmiltaan pisteen toimintoja, ja yksi pääteemoista CS, on murtaa koodia kokoisina paloina. Kun alat kirjoittaa nämä todella pitkä ohjelmat, tai Scratch kun piti tämä grand idea peli, sinun täytyy pystyä murtamaan sitä alas, kuten, OK, miten aloitan? Mitkä ovat pieniä paloja, että tarvitsen? Voi, minun täytyy kysyä Käyttäjä jotain. Nyt minun täytyy tulostaa jotain. Voi, minun täytyy laskea tämän arvon. 

Ja oppia hajottaa koodi ja suuret ongelmat on näitä pieniä paloja ja luoda toimintoja on itse asiassa yksi iso kulmakiviä CS. Joten voit ajatella funktion yhtä kuin musta laatikko, maaginen musta laatikko, että laitat asiat oikeisiin ja saat joitakin lähdön. Ja muun ohjelman ei tarvitse välttämättä tietää mitä tapahtuu sisällä, että musta laatikko. Kaikki se välitä mitä menee ja mitä tulee ulos. Cool. 

Joten miksi toimintoja? Organization-- kuten sanoin, kun olet käsittelevät erittäin suuri koodi emäkset, miten voit järjestää koodi on paljon helpompaa, jos käytät toimintoja. Koska voit olla, kuten, OK, tämä Juuri tämä toiminto tekee ja tässä mitä toinen tekee. Ja voit helposti nähdä miten ne kaikki sopivat yhteen. Joten murtamalla ylös kaikki Näiden hallittavissa alaluvuissa. 

Joten simplification-- olen varma että te kaikki näkivät, kuten sanoin, Scratch. Sinulla on tämä suuri idea, ja et pidä, miten tämä kaikki toimii? Mutta jos lähestyt sitä hajanainen, sanot, OK, miten voin tehdä yhden sprite float näytön poikki? Se on hieman helpompaa. Joten hyvää käytöstä toiminnon avulla koodin paljon helpompi lukea. Se helpottaa debug joka, kuten saat oman myöhemmin ongelma sarjaa, aiot todella haluavat pystyä tekemään. Ja he ovat myös helpommin suunnitella ja toteuttaa. Voit koodata jopa pieni toimivat suhteellisen nopeasti ja varmista, että se toimii vs. yrittää luoda koko tämä pitkä ohjelma ja sitten sellaista mennä läpi ja nähdä, mikä toimii ja mikä ei. 

Ja sitten uudelleenkäytettävyys. Niin toimii vain tarvitsee kirjoitetaan kerran, ja sitten voit käyttää niitä niin monta kertaa kuin mahdollista. Niin se on, kuten, ympäristöystävällisiä tavallaan. Jos sinulla on ollut asioita, kuten Tulosta f, missä piti kirjoittaa taika, joka menee takana tulostaa f joka ikinen kerta halusit tulostaa jotain, Olisi aika sairas ja kyllästynyt siihen loppuun mennessä. 

Yksi niistä asioista, että sinun oppia myöhemmin CS luokissa, tai yksi parhaista neuvoja saan on, jos olet kopioimalla koodia, se olisi todennäköisesti funktio. Jos sinulla on täsmälleen sama linjat kaikki koko koodi, jos laskelmiin ne pois, koodi olisi luultavasti olla, kuten, viisi kertaa lyhyempi ja on paljon helpompi lukea. Ja sen sijaan, että yritetään vianmääritys kaikki nämä eri paikoissa, joissa asiat voisi mennä pieleen, sinulla on yksi funktio että saat vianmääritys. Ja lupaan, paljon tätä saattaa tuntua eräänlainen abstrakti nyt mutta kun päästä myöhemmin ja myöhemmin ongelma asetetaan, se tekee paljon enemmän järkeä ja todella ajaa kotiin. Onko kysyttävää Tietoja toiminnoista tähän mennessä? Miksi käytämme niitä? Tiedän, ettemme ole saaneet osaksi pikkuseikoista vielä. Niin määritellään function-- kuten taulukot, me tarvitsemme jonkinlaista of-- tämä on vain yleinen tuotos. Joten tämä on toiminto, joka on juuri menossa kuution syötöillä. Ja seuraavalla sivulla, itse asiassa, meillä on kaikki näitä mahtavia pieniä asioita täällä. Niin, voi jokainen lukea että, uteliaisuudesta? Tiedän violetti ja musta saattaa olla hieman vaikea. 

Mutta isoja asioita know-- joten ensimmäinen yksi täällä on meidän palautuva. Niin tämä puhuu lähtö Tämän toiminnon, kun tässä tapauksessa, laitamme joissakin määrä, mitä me olemme saaminen on että määrä kuutioitu. Niin se olisi int tässä tapauksessa. Ehkä se olisi kaksinkertainen tai jotain muuta myöhemmin, mutta tässä tapauksessa, se on int. 

C, aina on palautuva. Se tulee olemaan Int. Se tulee olemaan kellua. Se tulee olemaan kaksinkertainen. Mutta sinun täytyy määritellä, mitä tämä toiminto on aio palata. Muuten se huutaa teitä, ja se ei käänny. Tulet olemaan surullinen, ja minä olen surullinen. Ja se vain ei ole hyvä. OK. 

Ja sitten meillä on funktion nimi. Ja kuten näette täällä, C on tämä hyvin johdonmukainen paradigma. Mikä on tyyppi, mikä on nimi, ja sitten jotkut muut asia lopussa. Joten meillä on palautuva, meidän funktion nimi, ja sitten meillä on otsikon kanssa meidän parametriluetteloa. 

Joten parametri lista on, mikä on Tämän toiminnon aikoo ryhtyä? Parametrilista on yksinkertaisesti synonyymi, mitkä ovat meidän tuloa? Ja samalla tavalla, että me on määriteltävä meidän tehtävämme ja antaa sille tuottoa tyyppi, jokaisen meidän tuloa tarvitsee tyyppi liittyy sitä. Joten tiedämme, mitä meidän toiminto voi todella työskennellä. 

Joten tässä tapauksessa, meillä on joitakin int tulo. Joten jälleen, se tulee olemaan tyyppiä ja mitä soitat sitä. Ja sitten, kuten näette täällä, meillä on kehomme. Joten meillä on joitakin int tuotos, joka on vain meidän panos kertaa itse kertaa itse, joka vain kuutioita sitä. Ja sitten palaamme että lähtö. 

Joten kuten näette täällä, meillä on int kertaa int kertaa int, joten se palauttaa int, joka on julistettu siellä. Joten kaikki on yhtenäinen. Kaikki on onnellinen. Sinun toiminto toimii. Ja tämä on vain yleinen juttu. Niin aina on palautuva, nimi, ja sinun parametriluetteloa. Jokainen asia teidän Parametrilistassa tai tulo, tarvitsee tyyppi liittyy sitä. Ja sitten sinulla on elin täällä riippumatta haluat tehdä teidän panos. 

Ja sitten tietysti sinua halua palata jotain. Joskus toimii vain palaa. He eivät oikeastaan ​​palata jotain, jota voit käyttää. Mutta sinun täytyy palauttaa jollakin tavalla. Ja kun teet omia toimintoja, voimme saada tuohon hieman syvemmälle. Henkilökohtaisesti, jos haluat, on olemassa paljon Eri asioita voisi tehdä siellä. Jokainen hyvä? Mitään tässä luettelossa että haluat minut mennä yli, että et ymmärrä? Jokainen on hyvä siellä? Cool. Mahtava. 

OK, joten me laitamme kaikki tämä yhdessä nyt. Joten meillä on joitakin int kuutio tulo, joten Tämä on täydellinen ohjelma täällä. Tähän asti olen Tällainen on antaa sinulle kaverit katkelmia, jotka saattavat menossa ohjelman sisällä. Olemme juuri katsot toimintoja. Mutta tässä on koko ohjelman. Niin kuinka moni teistä muistaa sana prototyyppi luento? Cool. Meillä yksi. Mikä sinun nimesi on? 

STEPH: Steph. 

Allison: Steph? OK, mahtava. Niin, muistatko mitä prototyyppi on? 

Opiskelija: Sanot [kuulumaton] ennen kuin itse käsitellä sitä. 

Allison: Muistatko miksi? 

Opiskelija: Ei. 

Allison: OK. Gold Star. Joten kyllä, prototyyppi meillä etukäteen, koska muuten meidän kääntäjä on menossa huutaa meille. Se tulee sanoa, OK, mikä on tämä kuutio toiminto? Kuten, sinulla on kirjaimellisesti kertoi minulle mitään tästä. Se on kuin kun törmätä luokkahuoneessa, ja joku on kuin, siellä tietokilpailu tänään. Ja et pidä, et koskaan kertonut minulle tästä. En ole tyytyväinen meihin. Prototyyppi on pohjimmiltaan oman oppimäärän sanoen näyttää. Heads up. Siellä tulee olemaan tietokilpailu tänä päivänä. Älä älyttömästi, kun saat sen. Aiot olla kunnossa. 

Joten kaikki prototyyppi ei vain kertoa Tärkein, aion käyttää tätä toimintoa. Lupaan olen määrittelemättä sitä myöhemmin. Älä älyttömästi minua. Vain koota ja tehdä, mitä minä käsken teidän. Joten meillä on prototyyppi siellä vain tehdä meidän kääntäjä onnellinen. Ja se on pohjimmiltaan lupaus, että olet määritellyt tämän toiminnon myöhemmin ja että et ole vain soittamalla tämä sattumaa, että se ei tiedä, mitä olet aiotaan tehdä. 

Joten tässä tapauksessa, meillä on tärkein täällä. Me alustaa jonkin kokonaisluvun x. Se on kaksi. Aiomme tulostaa mitä x on. Aiomme Cube x. Kuten näette, meillä on toiminto ilmoitus tänne, että me puhui aiemmin. Se tulee kuution X, ja sitten, jos me Muistan, kuutio toiminto todella palauttaa kokonaisluvun meitä, joka on tallennettu x uudelleen, jotta voimme tulostaa kahdeksan tai kuutio X juuri nyt. Onko järkeä kaikille? Olemme hyviä? Selvä. Mahtava. 

Selvä. Kuinka moni teistä kaverit Muista tämä niin tämä on pohjimmiltaan vain sinun pino ja keko, vain visualisointi miten muisti on tallennettu täällä. Joten me vain haluamme tehdä Varmista, että ymmärrät miten nämä ovat edustettuina muistiin. Jos otat esim.painijat CS61 ja juttuja myöhemmin, saat oppia tätä paljon enemmän perusteellisesti, ja se on todella siistiä. Suosittelen sitä. Mutta nyt, minä annan te laaja katsaus joten sinun ei tarvitse tietää pikkuseikoista. 

Joten alkuun vain teksti segmentti, joka sisältää varsinaisen nollia ja ykkösiä, binary siitä. Ja tämä käytetään tallentamaan yleismuuttujat jos sinulla on. Kun liikut alas, me on, kuten näette täällä, alustettu data, alustamatonta data, ja sitten kasaan. 

Joten emme todellakaan puhu Tietoja kasaan juuri nyt. Pääsemme siihen myöhemmin. Nyt olen juuri menossa aalto käteni ja olla, sinun ei tarvitse tietää tästä nyt. Mutta me puhumme hieman vähän siitä pinon. Joten pino on where-- meillä zoom. Tämä on todella miten ohjelma me vain katsoi tapahtuu muistiin. 

Mitä tapahtuu, on, joka aika kutsumme toiminto, saamme mitä kutsutaan pino kehys, joka on yksi näistä. Joten tärkeimmät parametrit. Joten ne ovat asioita että ohitamme keskusmuistiin. Joten he ovat täällä alareunassa, koska se on ensimmäinen asia kutsumme. Ja sitten pääsemme Mainin paikalliset, ja kun sanomme, että tarkoitamme paikallisia muuttujia että ne tallennetaan tärkein. Joten paikalliset täällä olisi, kuten, x on yhtä suuri kuin kaksi tässä tapauksessa. Koska se on lokalisoitu tärkein. Onko jokainen muistaa laajuus, menee yli, että luento? OK. Joten, vain muuttujia, jotka alustetaan sisällä tärkein. Joten siksi meillä on tärkein [? laulua. ?] 

Ja sitten sisällä tärkein, kutsumme kuutio. Oikea? Joten saamme toinen runko kuution parametreja. Joten tässä tapauksessa, kuution parametrit ovat nyt X, että teimme vuonna, kaksi, että teimme vuonna. Ja sitten kuution paikalliset, mikä on jossa varsinainen cubing tapahtuu. Ja sitten se palaa. 

Mitä tapahtuu, on kuin kuutio todella tekee mitä sen pitäisi tehdä, se palaa. Kun se palaa, tämä kehys lehdet, ja sen palasi alas tärkeimmistä. Ja sitten sisällä tärkein, me voi itse tulostaa sen. Joten kun olet palaamassa jotain, kun funktio palauttaa, se on kuin siirtää näitä arvoja rungon alla ja sitten poistutaan. Ja asiat täytyy suorittaa järjestyksessä. 

Ja kun saat isompia ohjelmia, voimme tehdä jäähdytin ja monimutkaisempi kaaviot. Mutta nyt, tämä on vain yleiskatsaus niin sinulla on sellainen käsitys siitä, mitä tapahtuu, kun soitat toiminto ja miten se todella näyttää muistissa. Cool? Jokainen hyvä? Mahtava. 

Joten tämä on yksi, joka on vain yrittää vaihtaa asioita. Kuten näemme täällä, meillä on meidän tehtävämme prototyyppi niin, että kääntäjä ei huuda meille. Meillä on joitakin tärkein, ja me haluat vaihtaa x ja y. He eivät ole tehneet tätä demo luennossa vielä, he ovat? He eivät ole? OK. Joten aiomme mennä yli tämän hyvin lyhyesti. Saat tähän esimerkki lisää perusteellisesti, mielestäni tällä viikolla. Ja sitten ensi viikolla voimme todella sukeltaa miksi tämä ei toimi. 

Joten meillä on tämä mitätön toiminto here-- swap. Niin mitätön vain tarkoittaa, että mitään ei palauteta. Ja meillä on swap int ja int b. Ja meillä on joitakin väliaikaisia muuttuja, joka on. saa osoitettu B ja sitten b saa osoitettu temp niin, että a ja b: n arvot ovat nyt päällä. 

Mutta juoni twist, tämä ei toimi. Ja osa siitä on itse asiassa tekemistä sen kanssa, että ja b täällä, ne, jotka saavat hyväksyttiin vuonna tässä, ovat itse asiassa kopioita x ja y. Joten kun funktio todella palauttaa, se kytkeytyy kopioita, mutta ei Varsinainen x ja y: n. Joten yksi tapa ajatella asiaa on that-- teeskennellä nämä ovat swap. OK? Joten tärkein, meillä on x ja y alustettu. Mutta kun me itse mennä ylös Näiden kehykset swap, olemme ohimennen arvot koko sen, ja he alustettu. 

Ja he vain koskaan asua täällä. Niin ja b asua täällä. Ja he saavat vaihtaa paikkaa. Mutta kun palaamme, emme tehdä mitään ja b. ja b loman meidän tehtävämme. Ja niin x ja y pysyvät samana. Saat enemmän, miten korjata se ja miten me oikeastaan ​​käsitellä myöhemmin. 

Mutta se on vain yksi asia sellaista pitää mielessä. Käyttää sitä tulevaisuudessa. Älä huolestu, jos se ei tee kaikki järkeä maailmassa. Ne ovat kopioita on suurin asia. Jos aiot ottaa mitään pois, että olet läpäissyt vuonna kopioita. Joten alkuperäiset pysyvät samana. Jokainen hyvä? Cool. 

Joten komentorivin argumentteja. Olen varma, että alussa te kaikki oli näitä suuria, kuten, int main onteloita. Ja olet kuin, OK viileä. En todellakaan välitä. Tämä on juuri sitä, mitä minun täytyy kirjoittaa. Mutta uusia ohjelmia, varsinkin tässä PSET, ja miksi on siellä liidulla maahan? 

Kanssa seuraavalle PSET, olet tullaan näkemään tämän. Int main, int arg C, string kaari v, suluissa. Joten, mitä me juuri oppinut tänään, mitä ajattelemme, että toinen parametri tai että toinen elementti on täällä? Se jono. Minkälaista array? String array, kyllä. Cool. Niin, että miten aiot voidaan julistaa nämä nyt. 

Muistaako kukaan mitä nämä seistä? Ei? Hmm? 

Opiskelija: arg C. 

Allison: Niin Arg C pitää laskuri. Se on int. Se on numero, eikö? Joten mitä luulet, että määrä on? Joo. Niin arg c on määrä jouset jotka muodostavat komentoriviltä. Joten jos me do-- todella, on olemassa esimerkkejä tämän jälkeen, joten en päästä eteenpäin itsestäni. Se on joukko merkkijonoja, vain tehdä jopa komentoriviltä. 

Joten kun teet niinku piste slash Mario, se on yksi merkkijono, joka tekee sen. Tässä pala, sinun todella olla ruokinta asiat oikeisiin komentoriviltä, koska olen varma, että te, jotka lukenut spec saha. Joten niissä tapauksissa, ehkä sinun on kaksi tai kolme argumenttia. Se tulee olemaan hyödyllinen asia käyttää. 

Ja sitten arg v, kuten sanoimme, on vain merkkijono array. Niin että oikeastaan ​​tallentaa mitä syötettyä komentoriviltä. Joten meillä on nämä. Sinulla on joitakin piste slash kopioi INFILE outfile. Joten, jos arg c on määrä jouset että olemme kulkeutumasta komento linja, mikä on meidän Arg C tässä tapauksessa? Kolme. Täsmälleen. 

Joten mitä arg V nolla? Joten mikä on ensimmäinen asia, olemme säilytetään? Dot slash kopio, tarkalleen. Ja sitten toinen olisi INFILE. Kolmas olisi outfile. Entä arg vastaan ​​kolme? Olisi null, koska se on Lopussa meidän array, eikö? Cool. 

Ja mitä sitten noin kuudes yksi? Se on eräänlainen temppu kysymys. Ish. Tiedämmekö, mitä se on? Se on määrittelemätön. Meillä ei ole aavistustakaan, mitä se voisi olla. Se mikä on oikea jälkeen array muistiin, ja meillä ei ole aavistustakaan, mitä se on. Ja se on vaarallista koskettaa näitä asioita, koska kaikki tiedätte, se on joku osa muistista, että olet ei pitäisi olla pääsyä tai null. Ja se voi tehdä hulluja asioita. Sitä kutsutaan yli-indeksointi teidän sidottu matriisisi. Älä mene rajojen ulkopuolella oman array, tai huonoja asioita voi tapahtua. Tulet takaisin ja, kuten lait Fysiikan ovat tuhoutuneet tai jotain. Cool. Onko järkeä kaikille? Ei liian huono. 

Joten nyt, kaikkien suosikki osa, PSET tarkastelu. Jee! OK. Joten ne teistä, jotka ole lukenut PSET spec, olet tekemässä joitakin todella mahtavaa salakirjoituksen. Aiot luoda Ceasar Cipher ja Vigenere Cipher. Kannattaa ehdottomasti lukea spec nähdä miten nämä työt. Ja jos sinulla on ongelmia noin mitä se oikeastaan ​​pitäisi tehdä, tulkaa juttelemaan, lähetä minulle sähköpostia tai tekstin minulle. Olen noin. 

Niin on olemassa kolme pääasiallista asioita täällä, että me halua puhua about-- juuri sellainen jatkeesta luento. Asioita, joita et ehkä tiedä noin, hyödyllisiä vinkkejä ja työkaluja. Joten aiomme tehdä pikakuvaus ASCII, koska se tulee olemaan erittäin tärkeää Vigenere salakirjoitus. Aiomme muuntaminen komentoriviltä tuloa, joka tulee olemaan erittäin hyödyllistä Caesar Cipher. Ja sitten modulo. Cool. 

Joten, ASCII kartat merkkejä numeroita. Tämä on hyvä kaavio. Sinun pitäisi olla tässä kirjanmerkiksi jonnekin. Haluatte sitä ensimmäinen puolivälin. Olen melko varma, että jokainen on tämä kaavio niiden puolivälissä arkki. Joten oppia se. Rakastan sitä. Pidä se kätevä. Se tulee olemaan hyödyllistä. 

Ja kaikki se on on koodaus että kartat kirjaimista, numeroista, ja muita merkkejä numerot meidän tietokone. Koska tietenkin Lopulta kaikki Tallennamme on menossa muunnetaan alas nollia ja ykkösiä, joten meidän täytyy jotenkin edustamaan Teksti ja merkit, että olemme kaikki tottuneet näkemään jonkinlaisena numero. 

Niin näemme täällä, meillä on isoja, joka on oikeassa. Se on 65. Ja pienet on 97. Joten voit selvittää out-- kuten aiemmin totesin, jos sinulla on ollut joukko useita jouset, mitä kukin niistä on null terminaattori. Olisi tilaa. Space on oma special-- Unohdan jos se on täällä. Ah. 32 on tilaa. Joten kaikki kartat siihen. 

Joten meillä on ASCII matematiikka. Pro tip-- vuonna Vigenere n, saatat olla kiusaus muuntaa numeroita kokonaislukuja, mutta se on itse asiassa parempi käytäntö pystyä käyttämään merkkejä, kuten tämä kun olet todella manipuloi heitä. Joten jos haluat käyttää numeroita, voit. Mutta parempi tapa, tai siten, että me yleensä kuten te tehdä sen, on näin, jos olet todella vähentämällä merkkiä. 

Joten haluan sinun kaverit Tällainen kuva nämä pois. Miksi et yritä joka toinen? Joten tee ensimmäinen, kolmas ja viides. Koska haluan varmistaa, että puhumme kaiken meidän täytyy puhua. Olen juuri menossa sanoa, yksi tärkeitä asioita to-- Voi odottaa, te ole nähnyt tätä. OK niin tehdä kolme ensimmäistä. Mennään vain. Koska meillä on puhua modulo. Tiedän. Matematiikka on kova. Voit käyttää laskinta. Se on OK. Tai vedä ylös ASCII taulukko, koska olet todennäköisesti menossa halua. 

Cool. Joten en nopeasti kävelemään te läpi näitä. Joten ihmiset ovat ASCII-taulukoiden revitä? Mikä on meidän numeerinen numero pieniä? Opiskelija: Seven. 

Allison: Niin pienet on 97 ja isoiksi on 65. Joten 97 miinus 65? 

Yleisö: 32? 

ALLISON: 62, joo. Joten tässä tapauksessa, mitä olisi se tulostaa? Että ensimmäinen? Jos meillä prosenttia d, Mikä se osoittaa? Opiskelija: numero. Allison: Olemme tulostus out todellinen määrä. Joten olemme todella menossa tulostaa 32 täällä. Ja jos tämä olisi prosenttia C, 32 antaisi meille tilaa. Niin ymmärtää, että merkkiä voidaan tulostaa sekä numeroita ja Varsinainen merkkiä On todella tärkeää, ja maksamalla huomiota todellinen tyypit että teemme täällä. Cool. Joten joka toinen näistä, mitä aiomme tulostaa? 

Opiskelija: merkki. 

Allison: merkki. Cool. Joten jos kaverit haluavat tietää, sinua voi työskennellä nämä pois omasta. Jos sinulla on ongelmia, lähetä minulle sähköpostia. Mutta toinen tulee tulostaa pieniä b. Kolmas tulostuu isoja B. Neljäs tulostaa out isoja C, ja viimeinen on pieniä A. Ja viimeinen one-- olemme todella menossa päästä mitä tämä hullu prosenttia Kirjaudu edes tarkoittaa pari dioja. Niin kokeile näitä itse. Jos sinulla on ongelmia, tulkaa juttelemaan. Jos olet yleensä Adams D sali, löydät todennäköisesti minut ympäri. 

Niin, atoi. Kuinka moni teistä on nähnyt tämän toiminto tai kuullut siitä lainkaan? Kukaan? Cool. Joten mitä se tarkoittaa sillä on ASCII kokonaisluku. Joten mitä voit tehdä on, Caesar, niille, jotka lukea spec, aiot tehdä piste slash Caesar Kun olet kirjoittanut ohjelman, ja sitten olet menossa input jotkut numero, joka halua koodata salaisen viestin kanssa. 

Mutta, jos muistamme, kaikki meidän tulot tallennetaan merkkijonoja. Oikea? Meillä arg v array että on kaikentyyppisiä merkkijono. Joten jos olet vain yrittää vedä että yksi, se ajatella, että yksi tai mikä numero käytit on oikeastaan ​​merkki. Joten aiot saada joitakin hulluja tuloksia. Joten jos todella haluat muuntaa tätä kokonaisluku että voit käyttää manipuloida tekstinkäsittely- tai viestisi, sinun kannattaa käyttää atoi. atoi vain muuntaa teidän merkkijono int. 

Joten jos meillä on merkkijono 12, jos me kutsumme atoi 12, tai mitä se tulo on, se todella palauttaa sinulle kokonaisluku. Ei merkki tai merkkijono 12. Joka, kun aloitat lisätä, että numeroita, on hyvin erilainen, koska merkkijono 12 on joku hullu numero ASCII, mutta kokonaisluku 12 on oikeastaan ​​12, joka on mitä haluat. Joten haluat varmistaa käyttää atoi. 

Olet menossa halua tätä Caesar, koska olet tarvitsevat int toimittamat käyttäjän komentoriville. Mutta kun ne laittaa sen komennon line, se tallennetaan string aluksi. Onko järkeä? Sinun ei välttämättä tarvitse Tarvitsen tätä Vigenere. Kanssa Vigenere, kuten sanoin ennen, kannattaa kokeilla ja käyttää ASCII matematiikka, joka näyttää enemmänkin Tässä, jos olet itse käyttää merkkiä, joka meille on annettu sinulle. Cool. Jokainen hyvä siellä? Mahtava. 

Niin modulo. Joten mitä jos olet antanut tämä valtava määrä Caesar? Sinulla on tämä ajatus, että jos olet Z ja olet annetaan numero kaksi, se tarkoittaa, että olet need-- Z tulee toinen kirjeen jälkeen itse, eikö? Joten sinun täytyy jotenkin kietoa, ja modulo on tapa tehdä se. Niin kaikki se on se antaa sinulle loput jaon Ensimmäinen numero toisella. Ja meillä on joitakin esimerkkejä tehdä, että hieman konkreettisempi. Mutta pohjimmiltaan, voit käyttää modulo kun haluavat tehdä jotain kääri ympärille. 

Joten jos haluat vain ykkösestä kahdeksan, voit käyttää modulo muulla numero, ja se on aina palata numero nollasta kahdeksaan. Joten jotkut examples-- jos meillä on 55 modulo 10, se vain antaa sinulle jäljellä 55 jaettuna 10, joka olisi 5. Ja sitten kolme modulo viisi, kukaan arvaa mitä se olisi? Kolme. 

Joten jos sinulla on pienempi numero ennen modulo, se ei voi mennä tasaisesti. Se on nolla. Niin se vain palauttaa numeron itse. Joten kahdeksan modulo kahdeksan olisi? 

Opiskelija: Zero. 

Allison: Zero. Koska se menee tasaisesti. 16 modulo 15? 

Yleisö: One. 

Allison: Cool. Ja sitten tämä viimeinen on vain näytä sinä-- saatat olla miettimättä, OK, mitä luokkaa toiminnan täällä? Me jakaa ensin? Onko meillä modulo ensin? Joten modulo omistaa sama etusija alueeksi tai lisäämiseen, ja sen vasemmalle assosiatiivinen. Joten se on samalla tavalla. Sinun olisi aina tehdä sulkuja, Sitten kerto-, jako, ja modulo järjestyksessä vasemmalta oikealle. Joten standardin sääntöjä. Vain laittaa sen samaan luokkaan koska jako ja kertolasku. 

Joten tässä tapauksessa emme on 1 ja 2 antaa meille 3. Me kerrotaan, että 2, joten saamme 6. Me modulo että 2, joka antaa meille? 

Opiskelija: 0. 

Allison: 0. Ja sitten lisäämme 2, niin me saat 2 Tässä viimeisessä tapauksessa. Joten modulo-- olet varmasti menossa ajatella tapoja sisällyttää että kun olet kääre noin aakkoset. Jos olet Z ja sinun täytyy liikkua välittämään kolme tilat päästä C, Siinä on se koko käsite kääre ympärille. Joten jätän sen te selvittää miten tarkalleen aiot käyttää sitä. Mutta varmasti hyödyllinen väline sinun PSET tällä viikolla. Pidän tästä. Tämä on yksi suosikkini psets. Sitten kun teet sen, jos sinulla on ystäviä, voit niinku toisilleen salainen viestit ja varmista, että se toimii. Koska se tulee purkaa sitä tai mitä tahansa. Paljon hauskaa. 

Ja että on jakson loppuun. Olen valmis aikaisin. Minulla on vielä 15 minuuttia te, joten jos on jotain että haluaisit mennä yli Edelleen mielelläni tehdä niin. Muita kysymyksiä teidän PSET Niille teistä jotka ovat aloittaneet tai lukea spec. Mitään, että olemme puhuneet noin viimeisen tunnin aikana ja 15 minuuttia, että haluat minut sellaista uudelleenlämmityksestä, olisin onnellinen. Tai voimme kutsua sitä sulkeutuu, ja voit kaikki lähtevät ja ottaa enemmän karkkia kanssasi kuten mennä. Mutta jos on olemassa jokin viipyvä kysymyksiä, kerro minulle. Voit myös keksiä ja Puhu minulle jälkeenpäin. Lupaan eivät pure. Entä muuta? Jokainen on hyvä? Jokaisen tunne kuin ne voivat käsitellä tämän PSET? Te tulette olemaan hieno kaverit. Aukioloajat ovat siellä syystä. Cool. Alright. 

No, siinä tapauksessa, kiitos te kaikki niin paljon tulossa. Toivottavasti nähdään ensi viikolla. Tulee enemmän karkkia. Saattaa olla muita hienoja asioita. Ja odotan saada tietää te kaikki tänä vuonna.