JASON HIRSCHHORN: Tervetuloa CS50 osiossa kaikille. Nimeni on Jason Hirschhorn. Olen paljon sinun TF, mutta paljon ihmiset toivottavasti liityit verkossa, laajennus opiskelijat tai opiskelijat yrittää katsoa läpi osa, jos ne myöhästyivät osa, joka viikko tai vain kiinni, jos he halusivat tarkistaa jotain materiaalia. Joten kohti oppimäärä, jossa kaikki teistä lukenut, korjata? Näen paljon pää nyökkää. Osassa annamme mahdollisuuksia tutustua kurssin materiaalia intiimimpi ympäristö, sekä sukeltaa käytännön toimintaa. Joten se on pohjimmiltaan mitä olemme aiotaan tehdä joka viikko. Aiomme käydä läpi, mitä meillä on määritetty olevan tärkein käsitellyistä aiheista luento, ja niitä todennäköisesti myös eniten hyötyä ja todennäköisimmin keksiä ongelma sarjaa ja tietokilpailuja ja koodausta elämän ulkopuolella CS50. Joten aiomme mennä niihin ongelmiin, keskustella niistä, mene päälle, vastata kaikkiin kysymyksiin teillä, ja niin aiomme tehdä paljon Käytännössä ongelmia koodausta. Te kaikki toi kannettavat tietokoneet, joka on fantastinen. Tämä on tietojenkäsittelytieteen luokassa. Kuitenkin paljon harjoituksia teemme, sinun ei tarvitse teidän läppäreissä. Voit tehdä ne paperille. Niin aiot tehdä niitä tietokilpailuja. Ja todellakin, se on hyvä tapa todellakaan tiedä, että miten jotain, jos sinulla ei ole Tarkista 50 luottaa tai tehdä luottaa, kertoo olet tehnyt virheitä. Joten olet tervetullut koodia laitteen tai run.cs50.net, joka on yksi työkalu, jonka avulla voit koodata verkossa, mutta minäkin suosittelen, jos et ole kokeillut, käyttäen arkki Paperin ja yrittää näitä käytäntöjä ongelmia paperille. Koska uudelleen, se on viime kädessä mitä aiot olla pyydetään tehdä tietokilpailuja. Joten aloitetaan meidän esityslistaa. Aiomme mennä yli joitakin normeja osiosta, niin aiomme sukeltaa osaksi ryhmät, toiminnot, ja komentoriviltä argumentteja, joka on mitä te ovat kattaneet viime viikolla luento ja sitten maanantaina ja mitä sinun kattavat enemmän huomenna. Ja sitten lopuksi, aiomme puhua pset2. Jos saisin kättä, jos ole katsonut ongelma asettaa kaksi erittely. Me sanomme kaikille. Fantastic. Puhutaan ongelmasta settiä hieman, mutta jos olet lukenut Harjoitus erittely, joka on kaikki sinun täytyy tehdä. Jos olet lukenut, että ennen kuin tulet luokka ja osa tiistaina tulet olla loistava sijainti. Voimme käydä läpi ongelma asetettu, joka on mitä aiomme tehdä lopussa. Aiomme käydä läpi logiikka, varmista kaikki ovat samalla sivulla. Haluan pystyä lähtemään tiistai tuntuu erittäin mukava, mitä olet täytyy tehdä tämän viikon ongelma set, ja jos et ole, minä onnellisesti jäädä jälkeen ja työskennellä kanssanne. Mutta on yksi asia, että sinun täytyy tehdä, mutta mielestäni olisi todella fiksu, vain lukea Harjoitus erittely luokittain tiistaina se kuulostaa paljon teitte kaverit. Aloitan esityslistan kunkin luokan niin tiedät minne olemme menossa. Tämä on myös hyödyllistä ihmisiä katsomassa verkossa, koska kukin osa on värikoodattu, joten jos haluat tulla takaisin ja vain katsella 10 minuutin pikemminkin kuin koko 90 minuutin osiossa voi vain mennä värikoodatut osa ja katsoa, ​​että osa. Joten olen yrittänyt rikkoa niitä ylös kiva moduuleja, joiden avulla voit - jos haluat tulla takaisin ja tarkistaa, tai muita opiskelijoita, jotka ovat vain katsomassa osa tarkistaa - löytää erityinen asia, jota he haluavat kiinnittää huomiota ja oppia lisää. Makea. Normeja. Olen FOP johtaja kampuksella. En tiedä, jos joku teki FOP. Onko kukaan tehdä FOP? Yksi henkilö teki FOP. Kaksi ihmistä teki FOP. Mahtavaa. Joten FOP on ensimmäinen vuosi Outdoor Suunta-ohjelma. Otamme Fuksit metsään ja tehdä maagisimmat kokemuksia elämäänsä, oikea? Joo. Kuulostaa oikealta. Tästä halusin aloittaa ihka ensimmäinen § keskustelemalla jotkut normit luokalle ja suhteestamme koska mielestäni ne ovat erittäin tärkeitä. Ensinnäkin, koska ne teistä, jotka ovat minun osa on saanut ja on keskusteltu, että sähköposti, rakastan tätä. Tämä on minun suosikki osa vuoden. Olen ollut niin innoissani. Olen ollut täällä tunnin tänään. En ole jättänyt tämän rakennuksen paitsi mennä syömään, koska rakastan CS50 osassa I Rakastan opetus, rakastan työ teidän kanssa. Eräs tärkeimpiä tavoitteita, jos ei minun ykkösasia, paitsi tässä luokassa, mutta myös minun muut luokat ja extracurriculars, on tukea teitä ja auttaa teitä, ja teen parhaani varmista, että olet kaverit on ihana, hauska, tuottavaa, mukaansatempaavan jännittävä kokea tässä luokassa. Se mitä olen sitoutunut. Siksi rakastan tehdä tämän. Tämä on minun numero yksi asia, tukee teitä. Jos sinulla on kysyttävää luento, Harjoitus, osa, elämän, vaikka haluat puhua elämän, ota rohkeasti tavoittaa. Sinulla on puhelinnumeroni, olet minun email osoite, sinulla on minun GChat. Voit ottaa minuun yhteyttä milloin tahansa tai kaikki ne aina, mutta luultavasti saa vastaus aina. Yritän saada takaisin 24 tunnin kuluessa. Usein se on sisällä 20 minuuttia tai 24 minuuttia. Minun olisi pitänyt sanoa, että tehdä rinnakkain. Mutta saat vastauksen melko nopeasti. Jos tekstin minulle tunti ennen Harjoitus on takia, aion rauhoittaa alas ja tehdä syvä hengitys harjoituksia kanssasi, mutta jos et ole aloittanut, olet todennäköisesti aio lopettaa, ja En voi todella auttaa sinua siellä vaikka yritän parhaani. Joten teen kaikkeni Voin tukea teitä. Ota rohkeasti tavoittaa onko se on osa uudelleen kello Toimiston aukioloajat jos näet minut, tai jopa sen ulkopuolella. Olen iloinen perustaa aikaa tavata ja työn kautta ongelmia tai mennä yli materiaalia. Niin, että on numero yksi, tukea. Teen kaikkeni I voi tukea teitä. Numero kaksi, kokous keskellä. Niin paljon kuin haluaisin olla, olen ei kaikkivoipa tai kaikkivoipa tai kaikkitietävä, joten en tiedä kaikkia aikaa, jos mitä olen tekemässä on tulossa poikki, jos tapa Opetan topic auttaa oppimaan sen, tai jos ovat hämmentyneitä aihe, mutta eivät nostamaan käden tai kysy tai lähetä minulle sähköpostia. Tai vaikka taas ovat hämmentyneitä jotain on ongelma set. Jos et tavoita minua, En voi tietää, että varmasti. Aion tehdä parhaani tehdä lähtöselvityksen te, varmista, että kaikki on menee hyvin, yrittää opettaa asioita tavalla , joka on omiaan useimmat oman oppimisen tyylejä, mutta jos siellä on Mitä voin tehdä, haluaisin tietää. Tämänsuuntaista, jos haluat apua ongelmaa asetettu, olen enemmän kuin mielellään auttaa sinua ongelmaa asetettu. Aiomme tehdä paljon että kohti toista puolet tämän jakson. Mutta jos et ole lukenut ongelma asettaa takaisin ja ole katsellut kävelymatkan kautta ja ole katsellut shortsit ja odottaa minua opettaa sinulle kaikki mitä on tehty videoitiin verkossa tai että löydät osoitteesta CS50 tutkimus, se ei oikeastaan ​​reilua minun tai teidän muiden ikäisensä. Joten, olen enemmän kuin mielellään teitä, mutta te sai tavata minut keskellä. Olemme tonnia resursseja olet käytettävissä CS50. Mainitsin joitakin niistä. Ole hyvä ja hyödyntää niitä. Jos olet hämmentynyt, olen enemmän kuin onnellinen auttaa selittämään niitä toisella tavalla, mutta se ei ole reilua, jos opiskelijat ilmaantuvat virka ei ole aloitettu mitään, ja se on Torstai-iltana ja he odottavat TF kävellä ne läpi joka ikinen asia Harjoitus vuoksi keskipäivällä seuraavana päivänä. Järkeä? Uudelleen, ota tavata meidät keskelle. Ja lopuksi, suuria odotuksia. Aion olla luokittelua kaikille, jotka on minun osa tai teki oman ongelma sarjaa. Et ole palanneet ongelma asettaa nolla tai yksi vielä. Olemme pahoillamme siitä. Kesti jonkin aikaa lopulta asettua kohdat, ja nyt voimme aloittaa arvosteluun. Haen ne takaisin sinulle niin pian kuin mahdollista. Nämä ovat joitakin minun advisees siellä. Haen ne takaisin sinulle niin pian kuin mahdollista. Ja ongelma asettaa kaksi, me olla aikatauluttaa ja alamme saada niitä sinulle melko nopeasti sen jälkeen, otat ne tuumaa Kun saat ongelman asettaa takaisin, saavat tulokset, kuten tiedätte alkaen lukemisen oppimäärä - oikeellisuus, suunnittelu, laajuus ja tyyli tulokset. Saat myös kommentteja. Kommentit ovat tärkeämpiä kuin tulokset. Minusta se on turvallista sanoa, että. Tulokset ovat vain numero yhdestä viiteen. On vaikea lukea noihin. On vaikea parantaa niiltä. Mutta kommentit ovat tuoneet esiin yksittäisiä mitä teit hyvin tai alueilla voit parantaa ja antaa sinulle ideoita tulevaisuutta tai vaihtoehtoista tapoja tehdä asioita. Joten please, please, lue kautta kommentteja. Laitoin paljon aikaa nämä huomautukset. Lue läpi ja eivät vain selaa pohjaan PDF, etsi pisteet, tai mennä verkossa ja löytää pisteet, ja sitten sivuuttaa kommentteja. Se ei ole miten olet parane. Se ei ole miten aiot lisätä pisteesi lopulta vain katsomalla tulokset. Katsokaa näitä kommentteja. Ja pitkin linjaa suuria odotuksia, taas, kuten sanoin, voidaan sai yhdestä viiteen. Kaksittain, kolmosia ja neloset ovat Valtaosa tulokset aiot saada. Ones ja fives ovat todella harvinaisia. On aina asioita voimme tehdä paremmin. Aina kun koodin ohjelma, siellä on aina jotain voinut tehdä paremmin. Joten mieluummin kuin sanomalla saat viisi koko ajan kaikesta ja teki kaiken täydellisesti, en usko mitään meistä todella sitä mieltä, että me - tai toivottavasti emme tee kaikkea täydellinen koko ajan. Joten älä olla huolissaan, jos ei saanut viisi. Viisi ei map päälle, neljä ei kuvautuvat B, kolme ei ei kuvautuvat C. Se ei ole miten tulokset toimivat. Kuten David on sanonut monta kertaa, milloin lukukauden lopussa kaikki tulokset ja input minulta, teidän TF, kokoontuvat ja määrittää lopullisen arvosanan sinulle. Mutta jälleen kerran, se ei ole viisi, , Neljä, B, et cetera. Joten aion olla suuria odotuksia teitä. Aion odottaa hyvää ongelma sarjaa ja aion antaa palautetta sellaisenaan. Ja se ei tule tarkoita olet menossa huonompi laatu. Olet arvostellaan kannalta edistymistä viikosta nolla kurssin loppuun. Ja lopuksi, kun otetaan huomioon korkea odotukset luokassa, rakastan kun ihmiset osallistuvat. Ymmärrän jotkut ihmiset kokevat enemmän tai vähemmän mukava osallistuvat. Muut ihmiset osallistuvat ei nostamalla kätensä ja puhuu koko ajan. Mutta tässä luokassa aiotaan tekee paljon pieniä ongelmia, paljon mini kysymyksiä, ja sitten jotkut Suuremmat koodaus ongelmia. Joten varmasti toimii näitä harjoituksia ulos kun me teemme ne tietokoneeseen tai paperiarkille. Mutta minä myös antaa sinulle aikaa ennen kukaan koskaan on vastata joihinkin kysymyksistä pyydän. Joten koska minä annan sinulle aikaa ajattele sitä, koska olemme menossa tehdä asioita kumppanit joskus, Aion odottaa kaikkien olla mukana jonkin verran. Ja puutteessa parempi termi, siellä luultavasti cold calling, joka Siellä kaikki on mahdollisuus miettiä vastausta, ja sitten Minä pyydän teitä, ja sitten sanot vastaus. Älä huoli tai pelkää siitä. Olen tehnyt sitä aiemmin ja olemme huomanneet että se on paljon tehokkaampi, myös lukea koulutus tutkimusta sen määrittää, onko se oli hyvä taktiikka. Se on erittäin hyödyllistä, varsinkin jos antaa oppilaille aikaa miettiä vastauksia ja tee niitä juuri tullut ulos ja sanoa se oikeus pois bat. Mutta jos et tunne mukava vastaamalla, olen myös melko hyvä tuntua, että ulos, ja emme aio laittaa sinut paikalla, erityisesti kameran, vaikka yksikään olet kameran juuri nyt. Joten ne ovat normeja minulla on. Vielä yksi asia linjojen kokouksen keskellä. Aion antaa teille kaverit paljon palautetta. Antakaa minulle palautetta samoin. On sivusto, sayat.me/cs50. Joten se on rehellistä palautetta. Jos haluat antaa sen aikana osiossa Saan sähköpostia aina, kun se tapahtuu. Otamme tauko vähän, niin minä käydä läpi palautteen jälkeen. Jos joskus on palautetta, antakaa se minulle on. Jos annat minulle palautetta Q, joka on ihana, mutta se opas että teet lopussa. Mutta se tulee olemaan lukukauden lopussa niin En voi ottaa mitään, että palautetta ja muuttaa sen opetus te paremmin. Joten, jos sinulla on palautetta, anna se minulle. Rakastan palautetta. Takaisin FOP, saamme palautetta koko ajan. Voit antaa minulle plussaa, hyviä asioita, delta, mitä voin parannella. Voit kommentoida asuja. Se ei ole niin hyvä, mutta olet Tervetuloa kommentoida ja kaiken. Ole hyvä, anna minulle palautetta. Arvostan sitä paljon ja se merkitsee minulle paljon. Vielä yksi normi, hauskaa. Aiomme olla hauskaa. Toivottavasti tämän kurssin, sinun on hauskaa. Meidän täytyy karkkia jaksossa. Meillä on musiikkia. Tulemme toivottavasti oppia tuntemaan toinen hieman hyvin, joten haluan tämä on hauskaa, harjoittaa kokemus. Tiedän, että jotkut teistä ovat nukkuneet luennot sinulla oli aiemmin tänään, niin toivottavasti eivät olla nytkin. Ja jos se on nytkin vain ei kuorsaa, koska se saattaa on kiinni kamerassa. Makea. Kysymyksiä, kommentteja tai huolenaiheita ennen kuin siirrymme mitään olemme puhui? Suuri. Joten aiomme mennä osaksi paneelit ensin. Näin teet array. Olemme nähneet tämän ennenkin. Sinulla on tietotyyppi, sinulla on nimi, ja sitten on koko. Juuri täällä, luoda kaksi taulukot. Ensimmäinen on joukko merkkejä, ja sillä on 26 paikkaa. Toinen on joukko tulokset, ja sillä on kolme tilat kolmelle kokonaislukuja. Kyllä? Opiskelija: Ovatko kaikki nämä diat saatavilla jonnekin meille? JASON HIRSCHHORN: Suuri kysymys. Kysymys oli, ovat kaikki Näiden liukuu saatavilla? Kyllä. Kaikki nämä diat on saatavilla, ja tulevaisuudessa, minä lähettää ne sinua ennen osiossa. Mutta tänään, koska tämä on ensimmäinen viikolla meillä oli myöhäistä aloittaa. Joten yleensä, saat näitä dioja, mutta ne ovat saatavilla verkossa ja Minä lähettää ne sinulle heti luokka. Muita kysymyksiä? Joten jälleen, paneelit ovat laatikot puutteessa parempi sana, joka pitää useita osia yhdellä tietotyyppi, ja he vierekkäin muistiin. Ja niin taas, näin voit tehdä kahdenlaisia ​​taulukot. Joten kun olet tehnyt array että ensimmäinen rivi - int pisteet, kiinnike kolme, loppusulkumerkki - voit haluat alustaa sen. Haluat laittaa arvot siellä. Ja näin voit laittaa arvot siellä vain valita Indice ja kirjallisesti numero. Katsotaanpa piirtää tämän taululle. Voivatko kaikki nähdä? Jokainen voi nähdä. Makea. Niin, että tulee olemaan minun array kutsutaan tulokset. Kuten näette, se on koko kolme. On kolme laatikkoa siellä. Jokainen mahtuu mitä tyyppistä tietoa tyyppi? Opiskelija: kokonaisluku. JASON HIRSCHHORN: kokonaisluku tässä yksi. Kirjoitimme int tulokset, ja ensimmäinen sana on tietotyyppi, joka tulee mennä laatikot, että jono. Voin siis mahtuu kolme. Miksi minulla on nollasta siellä hallituksessa? Miksi näen pisteet nolla on 1? Muistuta minua nimesi. Opiskelija: Kurt. JASON HIRSCHHORN: Kurt. Opiskelija: Joo. JASON HIRSCHHORN: Miksi? Opiskelija: Koska ensimmäinen indeksi on nolla, meillä alkaa laskea nollaan. JASON HIRSCHHORN: Joten aloitamme laskenta nolla. Se on aivan oikein. Tämä on hämmentävää osa ja laukaisee sinut, varsinkin kun olet yrittää toistaa kautta paneelit, jotka teemme nyt vähän. Meillä alkaa laskea nollaan. Joten jos haluan viitata ensimmäiseen laatikko, se ei ole laatikko yksi. Valitettavasti se laatikko nolla. Toinen on laatikko yksi, ja tässä tapauksessa, kolmas on laatikko kaksi. Entä laatikko kolme? Missä on laatikko kolme? Tai jos haluan tehdä tulokset, kiinnike kolme, loppusulkumerkki, mikä tuo on? Sanoit null merkki. Muita ajatuksia? Mikä on tilanne kiinnike kolme kiinnike? Opiskelija: Se ei todellisuudessa ole olemassa, koska vain määritellään tulokset, kiinnike kolme. JASON HIRSCHHORN: Sanot se ei todellisuudessa ole olemassa. Joissakin tapauksissa, kun olemme tekemisissä jouset, yleensä laitamme null merkki lopussa. Pääsemme että toinen. Mutta tässä tapauksessa on ei kolmanteen kenttään täällä. Joten viimeinen kohta missään array on koko miinus 1. Joten jos meillä on joukko koko n Ensimmäinen laatikko on nolla, viimeinen on klo n miinus 1. Ja tässä tapauksessa, sitä ei ole olemassa. On jotain täällä muisti, mutta se ei ole meidän. Emme omista sitä. Emme pyydä sitä. Joten jos yritämme käyttää sitä, mikä hyvitämme tehdä vähän, olemme todennäköisesti menossa joutua vaikeuksiin. Tässä tapauksessa olen alustetaan minun array kolme muuttujaa. Me laitamme yhteen kohtaan nolla, kaksi kohtaan yksi ja kolme kohtaan kaksi. Onko kellään mitään kysyttävää noin alustetaan array? Joten menimme tätä juuri nyt. Tulokset, kiinnike kolme, loppusulkumerkki, että ei ole olemassa. Olemme nolla indeksoitu tietotekniikassa, joten alkaa laskea nollaan. Viimeinen laatikko käytettävissämme, se on kolmanteen kenttään, mutta sitä kutsutaan laatikko numero kaksi. Alhaalla tämä on vaihtoehto tapa alustaa taulukot. Joten sen sijaan luoda array yhteen linja, täyttö ensimmäiseen ruutuun sitten toiseen ruutuun, sitten kolmas ruutuun voit tehdä kaiken yhdellä rivillä. Niin, että linjan, molemmat ryhmät. Tämä luo täsmälleen sama joukko kuin mitä olemme luoneet täällä, mutta se vain se yhdellä rivillä. Nyt olemme kehittäneet erilaisia. Yleensä kun luot taulukon, voit haluavat tehdä jotain sen kanssa, onko joka täyttää sen tai saada asioita irti ja tulostaa ne ruudulle. Tässä tapauksessa olemme menossa läpi tulokset array, joka meidän on alustettu ensimmäinen rivi tänne harmaana. Ja sitten toisella rivillä, alamme iteroimalla läpi array. Onko kellään mitään kysyttävää rakennetta varten silmukka? Joten tämä on silmukka. Meillä on ensimmäinen edellytys, ja sitten meidän viimeinen edellytys, ja sitten me toistaa, i, jokainen silmukka. Ja kihara henkselit tätä silmukka, mitä tapahtuu, jos olisin juosta tätä ohjelmaa? Voiko joku kertoa minulle, mitä me saamme? [? Matu? ?] MATU: Tulosta kaikki tulokset pituinen. Se tulostaa jokaisen pisteet omalla rivillään. JASON HIRSCHHORN: Mikä olisi se tulostaa? Opiskelija: Se tulostaa yhden, sitten kaksi, sitten kolme. JASON HIRSCHHORN: Aivan. Se tulostaa yhden, sitten kaksi, sitten kolme, kunkin eri riveille, koska olemme menossa läpi array ja sinun nähdä, että toinen, printf lausuma, tulokset i. Joten ensimmäisellä kierroksella kautta varten silmukka, i on nolla, mikä tarkoittaa, että olemme saada arvo pisteet nolla - joka, jos menemme takaisin Meidän kaavio, on yksi - ja täyttämällä - oh, se sanoo c. Tämän pitäisi olla% d. Aion korjata, että vähän, kun Olen käsi ulos teille. Mutta me esittää kokonaisluku, joten se pitäisi olla% d täällä, ei% c. Mikä on% C? Opiskelija: Character. JASON HIRSCHHORN: Luonne, tarkalleen. Mikä on toinen? Jos et halua tehdä% d kokonaisluku, mitä muuta voit tehdä? Opiskelija: i. JASON HIRSCHHORN:% i, tarkalleen. Joten kysyttävää iteroimalla kautta array? Joten mitä tapahtuu, jos me teemme tämän? Sen sijasta, että i on pienempi kuin kolme, emme i on pienempi tai yhtä suuri kuin kolme. Mitä tapahtuu, kun otamme tämän koodin? Kyllä, Annie? Opiskelija: He tulostaa outoja juttuja neljännellä rivillä. JASON HIRSCHHORN: Sanoit, on se menossa tulostaa outoja juttuja Neljäs linja? Onko kellään vastausta hänen kysymykseensä? Joten kertoimet ovat, että kun saamme - niin edelleen neljännen kierroksen kautta varten silmukka, aivan kuten olet ajatellut, Annie, se tulee olemaan tulokset kiinnike kolme, jotka olemme jo tajunnut ei olemassa, ja aiomme kokeilla ja käyttää, että tulostaa sen ulos, käytä sitä jotenkin. Joten tietokone luultavasti suuttua meille. Olet aivan oikeassa. Se saattaa lopettaa ohjelman kokonaan. Se voi tulostaa jotain todella outoa. Et voi sanoa varmasti. Kertoimet ovat se luultavasti suuttua sinä ja vain lopettaa heti. Mutta tämä on yleinen virhe sinulla on jos olet vain pois yksi kerrallaan lopussa, ja tämä on vika, joka tulee rutto sinua koko koodausta. Yksi tapa haluan tehdä on juuri taulun, läpi jokaisen iteraation ja silmukka käsin tai paperilla nähdä mitä tapahtuu, ja sitten yleensä ymmärtävät, Voi odottaa, minun ei pitäisi ovat menneet alle tai yhtä suuri kuin kolme. Minun olisi pitänyt pysähtyi kaksi, joka on mitä tapahtuu, jos ehto on vähemmän kuin kolme. Kaikki kysymykset tähän mennessä? Makea. Joten teillä kaikilla on tietokoneet auki. Me aiomme antaa sinulle viisikymmentäkahdeksan yli kaksi minuuttia kirjoittaa ohjelma, joka luo array kokonaislukuja yksi läpi viisi ja sitten tulostaa kunkin kokonaisluku uudelle riville. Ja jos sinulla on kysyttävää, nostamaan käden. Olen iloinen löytää. Kuten sanoin, otetaan kolme minuuttia kirjoittaa tämän. Onko kaikki OK, jos menen uusi ikkuna ja sulje tämä? Olen pahoillani, jos sinulla ei ole ollut mahdollisuus loppuun, mutta aiomme tehdä sen yhdessä juuri nyt. Niin ruudulle, olen # include cs50.h, # include stdio.h. Voiko joku kertoa minulle, mitä nämä kaksi riviä tehdä? Michael? Opiskelija: Ne sisältävät kirjastot että CS50 tehty ja että Steve on tallennettu voit käyttää helpottaa elämääsi. JASON HIRSCHHORN: Sanoit he sisältävät kirjastot, joka CS50 valmistettu, cs50.h, ja yksi, joka on vain standardi, tulee C-paketti, stdio.h. Mitä tarkoittaa muun muassa kirjastot, vaikka? Voitko olla hieman tarkempi? Opiskelija: Se tekee niin, että voit käyttää tiettyjä Koodisanojen on toimiakseen tapahtua ilman mennä ja tee toiminto c itse. JASON HIRSCHHORN: Voitko antaa minulle esimerkin? Opiskelija: Like printf on yksi voit käyttää. JASON HIRSCHHORN: Printf. Sanoit printf on yksi niistä toimintoja, joissa sen sijaan kirjoittaa printf oman, printf on mukana todella stdio.h, joten voi vain käyttää sitä ja ottaa että se toimii. Vuonna stdio.h, jos avannut tiedoston, Olisiko myös miten printf teosta, koodi printf? Miksi olet ravistamalla päätäsi? Opiskelija: Koska otsikkotiedosto vain sisältää toiminnon ilmoituksen. JASON HIRSCHHORN: Aivan oikein. Header-tiedosto sisältää ainoastaan toiminnon ilmoituksen. Joten periaatteessa, kun kokoaa, osuma Tee kreivi, jonka me tehdä Toinen, kääntäjä tietää, että jos käytät printf, printf olemassa. Se tulee määritellä jonnekin. Se ei ole ongelma käytät sitä. Ja sitten myöhemmin, se tulee sisällyttää ykkösiä ja nollia, jotka todella sisältävät printf täytäntöönpanoa ja yhdistää ne koodia. Miten varmista, että se sisältää ykkösiä ja nollia, eli saada merkkijono? Opiskelija: Hae merkkijono on cs50.h. JASON HIRSCHHORN: Oikea. Niin, että täytyy nousta merkkijono olemassa, toiminnon ilmoituksen. Mutta sitten ykkösiä ja nollia, binary tiedosto, joka sisältää itse asiassa täytäntöönpanoa get merkkijono? Miten varmistaa, että menee teidän ohjelma? Opiskelija: Pass linkkeriä komentorivillä. JASON HIRSCHHORN: Pass linkitin in komentorivillä. Miten teet sen? OPISKELIJAN: On-l rivi kalahtaa JASON HIRSCHHORN: Aivan oikein. Sanot-l CS50, eikö? Se sisältää ykkösiä ja nollia. Opiskelija: Mutta Make ei että sinulle, eikö? JASON HIRSCHHORN: Aivan. Tee tekee sen puolestasi, mutta lopulta Sinun ei tarvitse tehdä, tai sinun täytyy tehdä Make oma, niin se hyvä muistaa. Jos olit menossa käyttää jotakin näistä muut kirjastot, ei vain sinulla on kirjoittaa # include ja Sitten kirjastosta. Tarvitset myös liittää sen sisään Ja nämä kaksi asiaa ovat erilaisia. -L CS50 on erilainen kuin # include cs50.h. Sitten meillä on int main void aaltosulkeita, ja nyt aiomme koodi sisällä tärkein. Ensimmäinen rivi Minulla on tässä kommentti joka sanoo, luoda array kanssa ints yksi läpi viisi. Mikä on hyvä sana kuvaamaan mitä on nyt ruudulla, vain huomautukset sisällä tärkein? Mitä me kutsumme sitä? Opiskelija: Pseudokoodi. JASON HIRSCHHORN: Pseudokoodi. Kiitos, Jeffrey. Tämä on juuri oikea. Pseudokoodina. Oletko kaverit nähnyt pseudokoodina ennen? Nosta kätesi, jos olet käyttänyt pseudokoodina ennen ongelman asetettu. Noin puolet teistä. Voin lämpimästi suositella käyttäen pseudokoodina hajottaa ongelmiaan pienempiä, helppo purra kappaletta. Lisäksi, jos et pseudokoodina, voit on kommentteja jo pitkälti rakennettu, joten sinun ei tarvitse palata ja yrittää selvittää mitä olit tekemässä. Joten voi joku antaa minulle ensimmäinen rivi luoda array ints yksi läpi viisi? You? Opiskelija: Int ja sitten voit soittaa mitä numero ja neliö kiinnike viisi. JASON HIRSCHHORN: Niin int numerot, hakasulkeen viisi. Opiskelija: Yhtä ja sitten aaltosulkeita. JASON HIRSCHHORN: Yhtä, aaltosulkeita. Opiskelija: Yksi, kaksi, kolme, neljä. JASON HIRSCHHORN: yksi, kaksi, kolme, neljä, viisi. Opiskelija: Ja sitten aaltosulkeita ja sitten puolipiste. JASON HIRSCHHORN: Ja kihara olkaimet ja puolipiste. Erinomainen. Tulosta kukin int uudelle riville. Voiko joku muu antaa minulle, että koodi, kiitos? [? Matu? ?] Menkää. Opiskelija: For ( JASON HIRSCHHORN: For ( Opiskelija: Int i = 0 JASON HIRSCHHORN: Int i = 0 Opiskelija: Semicolon i alle viisi. JASON HIRSCHHORN: Semicolon, i alle 5. Opiskelija: Semicolon, i + +. JASON HIRSCHHORN: Semicolon, i + +. Opiskelija: Suljettu sulkeissa avaa ahdin. JASON HIRSCHHORN: Suljettu suluissa ja kaksi olkaimet. Sisällä olkaimet? Opiskelija: Ja sitten printf "% d / n" JASON HIRSCHHORN: Anteeksi, hetkinen. Printf "% d / n, suljettu lainaus. Opiskelija: Ja sitten suljettu lainaus, pilkku, count, kiinnike i. JASON HIRSCHHORN: Pilkku määrä, kiinnike i. Opiskelija: Anteeksi, numerot kiinnike i. JASON HIRSCHHORN: Numbers, kiinnike i. Opiskelija: Anteeksi. Ja suljetaan sulkeissa puolipiste. JASON HIRSCHHORN: Suljettu suluissa, puolipiste. Aion säästää sen. Aiomme tehdä luottaa. Ja miten voin ajaa luottaa? Opiskelija: Kenoviiva. Opiskelija: Dot vinoviiva - JASON HIRSCHHORN:. / Laskea, tarkalleen. Kiitos. . / Laskea. Yksi, kaksi, kolme, neljä, viisi uutta riviä. Näyttää se toimi. Kyllä, Noah? Opiskelija: Voit myös tehdä pienempi tai yhtä suuri kuin neljä, kuten i on pienempi kuin tai yhtä suuri kuin neljä? Onko mitään hyötyä tehdä vähemmän kuin viisi, tai vain erilainen tapa kirjoittaa sen? JASON HIRSCHHORN: Eli kysymys on sinulle voinut tehdä i on pienempi tai yhtä suuri kuin neljän sijasta i on pienempi kuin viisi. Olisiko jotka ovat työskennelleet saman? Opiskelija: Se pitäisi. JASON HIRSCHHORN: Kyllä. Se täysin olisivat toimivat samalla. Tyylillisesti se on yleensä alle, ja näet toisessa, kun emme jouset, voit käyttää jotain kutsutaan strlen, jonka olet nähnyt ennen, saada pituus merkkijonon. Ja et voi tehdä vähintään tai yhtä strlen. Voisit tehdä alle tai yhtä strlen miinus yksi. Joten se on vain mukavampi tehdä vähemmän kuin strlen. Kyllä? Opiskelija: Ja todellinen tietokilpailuja, tee meillä on tarjota kommentteja meidän koodi samoin? JASON HIRSCHHORN: kysymys oli tietokilpailuja, oletteko on toimitettava kommentteja? Joten me puhua enemmän tietokilpailuja, kun he keksivät, mutta yleensä hyvä Nyrkkisääntönä on aina, kun olet kirjoittaa koodia, antaa kommentteja. Jos saat koodin väärin, mutta kommentoida oikein, saatat saada joitakin luottoa sekä minulta olinko luokittelu sinulla on ongelma set tai tietokilpailu. Joten kommentit ovat aina hyvä antaa. Makea. Kreivi. Erinomaista työtä. Mennään eteenpäin. Strings. Strings. Olemme nähneet tämän ennenkin luento. Tämä puhalsi mielessäni, kun Ensimmäinen tietää tämän. Se luultavasti ei puhalla kenenkään mieleen täällä, mutta se on OK. Jouset ovat ryhmät merkkejä, ja ne päättyvät, kuten sanoitte aiemmin, null terminaattori, joka tämä / 0 luonnetta. Jos aiomme tehdä merkkijono board, me piirtää sen tänne. Joten kuinka kauan tämä jono? Anteeksi. Kuinka kauan tämä jono? Opiskelija: [kuultavissa]. JASON HIRSCHHORN: Neljä? Miksi se on neljä? Opiskelija: Koska viides paikalla on null merkki. JASON HIRSCHHORN: Eli viides paikalla on null merkki. Joten jos olisin juosta strlen on Tässä se antaisi minulle neljä. Korjaa. Ja array, mutta jos olisin alustaa tämän array, kuinka monta ruutua minulla olisi toivoa? Opiskelija: Five. JASON HIRSCHHORN: Five. Olisin kysyä viisi, mutta voin vain laittaa neljä merkkiä täällä koska minun täytyy laittaa että null terminaattori päähän. Joten aiomme kirjoittaa "ohai" ja laittaa null terminaattorin lopussa. Me sanomme tämä on merkkijono s vastaa tätä. Mikä on s kiinnike nolla? s kiinnike nolla, Annie? Opiskelija: O. JASON HIRSCHHORN: O, tarkalleen. s kiinnike yksi? s kiinnike viisi? s kiinnike viisi? Opiskelija: ei ole olemassa. JASON HIRSCHHORN: ei ole olemassa. Täsmälleen oikea. Cool. Kysyttävää ymmärrystä merkkijonoja ryhmät merkkiä? OK, sitten. Yksi ohjelma sinulle kaverit. Kirjoita ohjelma, joka kysyy käyttäjältä merkkijonoa sitten tulostuu kunkin merkin uudelle riville. Joten kestää kolme minuuttia kirjoittaa tämä ohjelma, ja sitten me koodi sen ryhmänä. Anteeksi. Oliko sinun täytyy nähdä tämä? Opiskelija: No JASON HIRSCHHORN: OK. Otetaan yksi minuutti koodin tähän, tai ainakin aloita sitä. Joten voit jatkaa työskentelyä, mutta aion alkaa menee sen läpi. Joten kuten ennen, olen ruudulla # Include cs50.h, # include stdio.h. int main mitätön. Inside Mainin aaltosulkeita, minulla on kaksi huomautusta, pseudokoodina. Yksi on pyytää merkkijonon käyttäjä. Toinen on tulostaa kunkin merkin uudelle riville. Joten Anna, voit antaa minulle kysyä ja merkkijonon käyttäjä? Opiskelija: Printf. JASON HIRSCHHORN: Printf? Opiskelija: Joo. ( JASON HIRSCHHORN: ( Opiskelija: "anna minulle merkkijono. JASON HIRSCHHORN: "antaa minulle str - oho - merkkijono. Opiskelija: / n ") puolipiste. JASON HIRSCHHORN: Lopeta merkkijono, suljettu sulkeisiin, puolipiste. Opiskelija: Joo. Ja sitten seuraavalle riville, string s = saada merkkijono. JASON HIRSCHHORN: String s = saada merkkijono. Opiskelija: Joo. Ja sitten () JASON HIRSCHHORN: () Opiskelija: Semicolon. JASON HIRSCHHORN: Semicolon. Fantastic. Joten aion saada merkkijono ja Aion tallentaa sen mitä? Mikä muuttuja nimeltä että olet luonut? Opiskelija: String s. JASON HIRSCHHORN: muuttuja nimekseen s. Se tyyppi string. Täsmälleen. Seuraava asia, haluamme on tulostaa kunkin merkin uudelle riville. Kuka voi antaa minulle koodin? [Äänetön]? Voitko antaa sen minulle? Opiskelija: Toki. JASON HIRSCHHORN: Tehdään se. Ja anteeksi. En halua toistaa sitä, mitä sanot koska olet saada se oikein, mutta on toistettava niin, että kun he puhtaaksi tämän, he voivat saada kaikki tekstiä ulos transcriptions. Joten voit pitää puhua. Valitettavasti minulla on sanoa se teitä. Olen pahoillani, mutta - Opiskelija: Se on hyvä. Saat int i = 0 JASON HIRSCHHORN: For int i = 0 Opiskelija: Olen alle - JASON HIRSCHHORN: Semicolon. Opiskelija: Ennen tätä, voimme laittaa muuttuja niin saat int nimen pituus? JASON HIRSCHHORN: Ai, et haluavat laittaa puolipiste? OK. Joten mitä haluat tehdä, kun nolla? Opiskelija: Haluan saada merkkijonon pituus s ja asetettu, että muuttuja? JASON HIRSCHHORN: OK, niin miten voin tehdä? Opiskelija: Sinä siis int pituus = JASON HIRSCHHORN: Int pituus = OPISKELIJAN: S-T-R-L-E-N. JASON HIRSCHHORN: S-T-R-L-E-N - Opiskelija: s. Suluissa. JASON HIRSCHHORN: (s). Opiskelija: Ja sitten mielestäni sinun täytyy laittaa puolipiste kahden ints. JASON HIRSCHHORN: puolipiste jälkeen nolla? Opiskelija: Joo. Sitten laittaa puolipistettä että sekä sanot, olen vähemmän kuin pituus. i alle pituus, joka on muuttuva. Opiskelija: Ja sitten puolipiste. JASON HIRSCHHORN: Semicolon. Opiskelija: i + +. JASON HIRSCHHORN: i + +. On meidän silmukka. OK, sisällä silmukka. Opiskelija: Ja sitten tehdä printf. JASON HIRSCHHORN: Printf. Opiskelija: Telineet. JASON HIRSCHHORN: Sulut, lainausmerkkejä. Opiskelija: Sulut, lainauksia,% c / n. JASON HIRSCHHORN:% c, OK. Opiskelija: / n. JASON HIRSCHHORN: / n. Opiskelija: Suljettu lainausmerkkejä. JASON HIRSCHHORN: Suljettu lainausmerkkejä. Opiskelija: Comma. JASON HIRSCHHORN: Comma. Opiskelija: S. JASON HIRSCHHORN: S. Opiskelija: Kannatin i. JASON HIRSCHHORN: Kannatin i. Opiskelija: Ja sitten kiinni suluissa. JASON HIRSCHHORN: Suljettu suluissa. Opiskelija: Ja sitten puolipiste. JASON HIRSCHHORN: Semicolon. Fantastic. Joten pelastaa tämän. Tee kirjoittaa. Oh boy. Minulla pari virheitä. Ensimmäinen virhe rivillä 11, se sanoo, odotetaan ilme, ja se antaa minulle virhe, että toinen int, siellä on virhe. On joitakin virheitä noin siellä. Tietääkö kukaan mikä virhe, joka on? Kurt? Opiskelija: Mielestäni sen pitäisi olla pilkku eikä puolipiste. JASON HIRSCHHORN: OK, pilkku sijasta puolipisteellä. Niin on, että meidän tarvitsee korjata? Opiskelija: No JASON HIRSCHHORN: Mitä muuta meidän täytyy korjata? Opiskelija: Meidän on myös string.h. JASON HIRSCHHORN: Sisällytä string.h. Missä minä tarvitsen sisällytetäänkö? Opiskelija: Sama paikka olet myös muita juttuja, oikea jälkeen ovat stdio.h. JASON HIRSCHHORN: Katsotaanpa, jos tämä toimii ensimmäinen koska yleensä, pidän korjata yksi asia ensin, ja sitten ajaa se, ja sitten nähdä virheitä saamme. Joten aiomme poistaa terminaalin valvonta-n, nyt eivät tee loitsu. Joten toinen virhe rivillä 11. Odotettu puolipiste. Ja olen edelleen saada virheitä tällä linjalla. Joten se ei ole antanut minulle virheen sanomalla sen ei ymmärrä, mitä strlen on, mutta se antaa minulle virheitä tässä line, joten mitä muuta on vialla? Merkitse? Marcus. Opiskelija: Onko sinulla poistaa Toinen int ilmoitus? JASON HIRSCHHORN: Poista Toinen int. Kokeillaan tätä. Nyt poista pääte. Tee kirjoittaa. Virhe. Implisiittisesti julistaa kirjasto toiminto strlen. Joten nyt me näemme, että virhe. Mitä meidän kuuluu? Opiskelija: string.h. JASON HIRSCHHORN: Sisällytä string.h, Teemme # include string.h yläreunassa näytön. Säästetään, tehdä oikeinkirjoituksen. Nyt koottu. Joten jälleen, mitä me tarvitaan Muistan linja 12 meidän silmukka, kun olemme sen perustamista, int i = 0, pituus = strlen (s). Tämä on fantastinen strategia. Tämä tyyli on suuri, suunnittelussa tämä on suuri. Voimme mennä näistä syistä myöhemmin, mutta näin sinun tarvitsee vain soittaa strlen kerran sijaan jokainen kerran läpi silmukka. Kuitenkin, sinun täytyy käyttää pilkkua siellä ja sinun ei tarvitse int uudelleen. Jos olet julistamisesta sekä niille, muuttujat yhdessä, ei tarvitse int uudelleen. Ja sitten jos aiot käyttää strlen, joka on toinen kirjasto Toiminto ei ole sisällytetty stdio.h tai cs50.h, tehdä Muista mainita string.h. Kurt? Opiskelija: Joten jos et tarvitse , millaista pituus on, tekee sen tarkoittaa sen on oltava int? Voisit olla kahta eri tyypit siellä? JASON HIRSCHHORN: Joten voisit on kahta eri tyyppiä. Pituus on int täällä, tosin. Pituus on int, koska se on pilkku ja sitten sama asia. Opiskelija: Niin se olettaa, että se menee olla sama kuin ensimmäinen? JASON HIRSCHHORN: Aivan. Emme aio tehdä tätä nyt, mutta voi sisältää kahden muuttujan Sama linja jollakin tietotyyppi. Joten int x, y loisi kaksi muuttujaa. Joten int x, y, jos teemme, että se antaa minulle käyttämätön muuttuja x ja y, koska emme käytä niitä. Joten laittamalla void ennen on vain fancy temppu jos et käytä jotain, käyttää sitä. Mutta kuten näette, luon x ja y samassa linjassa pilkulla. Se luo kaksi kokonaislukua oikeassa. Joten kyllä, täysin mahdollista luoda kaksi asiaa samalla linjalla pilkulla erotettuna. Mennään eroon niistä, vaikka. Joten on loitsu. Kiitos pojat koodausta se meille. Tehdään se vielä kerran, suorita se. Anna minulle merkkijono. [Äänetön], teit suurin osa siitä. Mikä merkkijono? Opiskelija: Hei. JASON HIRSCHHORN: Hei. H-E-L-L-O, kunkin merkin yhdellä rivillä. Näyttää hyvältä. Katsotaanpa käyttää sitä uudelleen. Aina menossa tarkistaa Kulma-tapauksissa. Mikä on hyvä kulma tapauksessa tarkistaa? Opiskelija: numero? JASON HIRSCHHORN: numero. Joten laitan 1, ja se tulostaa 1. Se ei pyydä kirjaimia, joten se tuntuu numerot toimivat. Hyvä nurkkaan tapauksessa tarkistaa. Mikä on toinen hyvä kulma tapauksessa tarkistaa? Opiskelija: tyhjä merkkijono. JASON HIRSCHHORN: Hm? Opiskelija: Kuin tyhjä merkkijono. JASON HIRSCHHORN: Tyhjä merkkijono. Ei siis laittaa mitään. Ja mitä saa tulostaa? Opiskelija: Nothing. JASON HIRSCHHORN: Ei mitään. Näyttää se toimii. Voisit kokeilla enemmän rajatapauksissa, mutta yleensä numeroita, eri tiedot hienoa kokeilla, samoin ei ole mitään. Mitään, nolla, negatiivit ovat aina suuria asioita yrittää asioita olisi testi, asiat varmasti me testata varten ja Tarkista 50 testaa. Kysyttävää spell.c? OK, nyt päätä taaksepäin. Minulla on vielä yksi ohjelma sillä te kirjoittaa. Sitä kutsutaan students.c. Tämä on ohjelma, joka kysyy käyttäjältä viisi nimeä, sitten valitsee satunnaisesti ja tulostaa yksi nimistä. Tämä ohjelma on hieman enemmän mukana kuin kaksi viimeistä kirjoitimme, niin miksi emme ota viisi minuuttia koodata sitä erikseen, ja niin me hyvitämme koodata se ryhmä. Tämä ohjelma kuuluu myös eräitä asioita et ehkä ole ennen nähnyt, joten jos sinulla on kysymys, miten Minä, että nostamaan käden. Tulen uudestaan ​​ja kohta sinua oikeaan suuntaan. Mutta me myös teemme sen, koska tämä on hyvä tapa esitellä joitakin aiheita, jotka ovat hankalia. Niin se toimii, eikö? Opiskelija: Joo. JASON HIRSCHHORN: Aina kun kääntyä Harjoitus, siellä on monia tapoja tehdä se, mutta jotkut ovat enemmän tyylikäs kuin toiset. Olkaamme sukeltaa # Include cs50.h. # Include stdio.h. int main mitätön, aaltosulkeita. Sisällä aaltosulkeiden, Minulla on kaksi huomautusta. Ensimmäinen on, kysy Käyttäjä viisi nimeä. Toinen on, satunnaisesti valita ja tulostaa yksi nimistä. Tehdäänpä ensimmäinen, kysy käyttäjä viisi nimeä. Kuka on pyytänyt käyttäjä viisi nimeä ja voi kertoa minulle, miten se tehdään? Vain kaksi ihmistä teki ensimmäisen osan. Kolme ihmistä teki ensimmäisen osan. Neljä, viisi. Tom, miten teet sen? Opiskelija: Olisit julistaa merkkijono ja sitten nimi, kiinnike viisi. JASON HIRSCHHORN: String nimetä kiinnike viisi. Joten mikä on tämän linjan tekee, merkkijonon nimi kiinnike viisi? Opiskelija: Olisit julistaa Merkkijonotaulukko. JASON HIRSCHHORN: Tämä on Merkkijonotaulukko. Kuinka monta jouset ovat menossa sovi tänne? Opiskelija: Five. JASON HIRSCHHORN: Five. Erinomainen. Aiomme kutsua sitä Nimet koska aiomme saada useita niistä. OK, seuraavaksi? Opiskelija: Ja sitten on silmukka - JASON HIRSCHHORN: For silmukka. Opiskelija: - i = 0. JASON HIRSCHHORN: For (int i = 0. Opiskelija: Semicolon. JASON HIRSCHHORN: Semicolon. Opiskelija: Olen alle viisi. JASON HIRSCHHORN: Olen alle viisi. Opiskelija: Semicolon. JASON HIRSCHHORN: Semicolon. Opiskelija: i + +. JASON HIRSCHHORN: i + +. Opiskelija: Ja sitten kiinni suluissa. JASON HIRSCHHORN: Suljettu sulkeissa ja sitten jotkut aaltosulkeita. Sisällä aaltosulkeiden? Opiskelija: Ja sitten printf. JASON HIRSCHHORN: Printf. Opiskelija: Open suluissa,% d. JASON HIRSCHHORN: Anteeksi? Opiskelija: Name. JASON HIRSCHHORN: Name. Opiskelija: Ja sitten välilyönti ja% d. JASON HIRSCHHORN: Nimi, tilaa,% d. Opiskelija: Ja sitten / n, ja sitten suljettu. JASON HIRSCHHORN: Eli nimi, tila, % D / n, suljettu suluissa. Opiskelija: Comma, i + 1. Olen pahoillani. Suljettu lainaus, ja sitten pilkku, i +1. JASON HIRSCHHORN: Suljettu lainaus, pilkku, i +1. Opiskelija: Joo. Ja sitten seuraava rivi - JASON HIRSCHHORN: i + 1. Opiskelija: Joo. Ja sitten seuraavan dian on nimet kiinnike i. JASON HIRSCHHORN: Seuraava rivi on nimet kiinnike i. Opiskelija: = saada merkkijono. JASON HIRSCHHORN: = Get - pääoma G-E-T - merkkijono. Oho, anteeksi. Opiskelija: auki, kiinni suluissa ja sitten - JASON HIRSCHHORN: Avoin, suljettu paren. Opiskelija: Semicolon. JASON HIRSCHHORN: Semicolon. OK, joten alustaa joukko jouset, nimet, ja sitten läpi silmukka, ja viisi kertaa tulostuu muutamia kehottaa käyttäjälle ja sitten tallentaa viisikielisiä. Onko kellään mitään muutoksia tähän? Tom, luulen, että kaikki samaa mieltä kanssasi. Näyttää aika hyvältä. OK. Miksi teit i +1, vaikka? Opiskelija: En tarkoita, ei ole olla, mutta en +1 siten, että se on nimi yksi nimetä viisi. Muussa tapauksessa se olisi nimi nolla nimetä neljä. JASON HIRSCHHORN: Joten tein +1 koska muuten se olisi tulostaa nollasta neljään, koska se, kuinka tietokoneet ajatella, mutta ihmisillä eivät todellakaan lue niin. Se on toinen asia tapaat. Joskus kun tulostaa jotain käyttäjälle, sinun kannattaa tehdä hieman kauniimpi, ja tekee i +1 on tässä tapauksessa tapa tehdä se kauniimpi. Näen myös viisi kertaa, merkkijonon nimi on viisi, i on pienempi kuin viisi. Tiedän mistä sait viisi. Sait sen minulta kertoo voit viisi nimeä. Mutta jos haluaisimme tehdä koodia hieman vankempi, yksi asia meidän voi tehdä on täällä, ulkopuolella int, voisimme tehdä jotain, # Define, ja voisimme tehdä NIMET 5. Joten periaatteessa, missä minä kirjoitan pääoman N, pääoma, pääoman M, iso E pääoman S, merkkijono, se korvaa että 5 koodia. Tai sanotaan nyt kutsua sitä - me soita se numero. Joten olen määrittänyt kaikki korkit NUMERO 5. Joten nyt kun sillä on numero 5, I voi korvata sen kaikki korkit numero. Ja nyt, jos haluan muuttaa nimiä, kaikki mitä tarvitsee tehdä, on Tässä yksi rivi, rivi neljä, jossa olen # Define numero 5, vaihtaa sen 10, tai muuttaa sitä 4. Kun koodi pitenee, et ole menossa muistaa kaikkia paikkoja laittaa kuinka monta nimeä halusit ja Jotta voit ei menetä yksi, tämä on hyvä tapa tehdä se, löytää jotain ylös ja sitten vain käyttää että lause kaikkialla koko koodin. Marcus? Opiskelija: Onko tuo tyylillisesti ensisijainen kuin maailmanlaajuisesti määritellään vakio n? JASON HIRSCHHORN: Niin on, että tyylillisesti parempana kuin maailmanlaajuisesti määrittelemällä vakio n? Joten sanot voisit tehdä, int luku = 5? Opiskelija: Onko heillä konsonantit C vai ei? JASON HIRSCHHORN: Tai const - yhtä. Joten sanot vain globaali muuttuja? Opiskelija: Joo. JASON HIRSCHHORN: Niin tyylillisesti ei ole välttämättä yhtä oikeaa vastata, mutta nämä molemmat ovat parempia kuin vain heittää näitä satunnaisia numerot koko koodin. Kutsumme heitä Magic Numbers. Kun katson koodi tai kun joku lukee sen läpi, he eivät halua vain näitä satunnaisia ​​numeroita että ei ole järkeä. Vaikka numero 26, joka yleensä on kirjainten määrä aakkoset, on parempi määritellä AAKKOSITTAIN ylös ja tallenna numero 26, joka merkkijono, jos se on järkevää. Tai ongelma asettaa yhden sijasta - uudelleen, emme puhu tästä on aikaa, mutta sen sijaan vain heittää vuonna 25 kaikkialla tai 10, voit Tallenna numero 25 kuten VUOSINELJÄNNES tai 10 DIME, ja että helpottaa kuka lukee läpi koodi ymmärtää, miksi valitsitte kyseisen numeron. Ja myös sinulle, jos haluat joskus päivittää koodia, se tekee vähän vankempi. Niin? Opiskelija: Onko tämä koodi myös menossa olla saatavilla meille jälkeen? JASON HIRSCHHORN: Kaikki nämä koodit että olemme kirjoittaneet yhdessä ovat menossa lähetetään sinulle kaverit ja käytettävissä. Kyllä. Joten kysy käyttäjältä viisi nimeä. Valitaan satunnaisesti ja tulostaa yksi nimistä. Kuka teki tämän linjan? Tämä on hankalin linja täällä. Anteeksi, Tom. Teit todella hyvää työtä, mutta tämä on vähän hankalampaa. Marcus, mennä eteenpäin. Opiskelija: No ensin aiot täytyy sisällyttää stdlib.h ja time.h. JASON HIRSCHHORN: Väität at alkuun, muun muassa kaksi kirjastot. Haluatko minun kuuluu S-T-D-L-I-B dot H, Standard Library, ja mitä oli toinen? Opiskelija: Time.h. JASON HIRSCHHORN: # include time.h. Nämä ovat siis kaksi kirjastoja. Oletan nyt aiomme käyttää toiminnot, jotka sisältyvät näihin kaksi, minkä vuoksi sinun tarvitaan sisällyttää ne? Opiskelija: Niin, ensin olet menossa haluavat kirjoittaa srand. JASON HIRSCHHORN: Srand. Opiskelija: (aika (0) JASON HIRSCHHORN: Anteeksi. Srand (aika ( Opiskelija: 0. JASON HIRSCHHORN: 0. Opiskelija:)), puolipiste. JASON HIRSCHHORN: Toinen suljettu kantatuote? Puolipisteellä. Aion vain korvata oman nollaa NULL. Se tulee tehdä sama asia, mutta Yleensä näet NULL, joka me puhumme tästä rivi toinen. Opiskelija: Tyylillisesti paremmin? JASON HIRSCHHORN: Yleensä ihmiset oikea NULL, mutta sama asia. Opiskelija: Ja sitten int nimi. JASON HIRSCHHORN: Int nimi. Opiskelija: = JASON HIRSCHHORN: = Opiskelija: Rand. JASON HIRSCHHORN: Rand. Opiskelija: () JASON HIRSCHHORN: () Opiskelija: Modulo numero. JASON HIRSCHHORN: Mitä modulo? Merkki? Prosenttimerkki? Opiskelija: Prosentti merkki. Modulo numero, joka on määritelty ylös. JASON HIRSCHHORN: modulotoiminto numero. Opiskelija: Ja sitten puolipiste. JASON HIRSCHHORN: Semicolon. Opiskelija: Ja sitten uusi linja, printf. JASON HIRSCHHORN: Printf. Opiskelija: ( JASON HIRSCHHORN: ( Opiskelija: " JASON HIRSCHHORN: " Opiskelija:% s / n JASON HIRSCHHORN:% s / n Opiskelija: " JASON HIRSCHHORN:% s / n " Opiskelija: Comma, tilaa nimiä. JASON HIRSCHHORN: Space - Opiskelija: Voi kai, mitä me kutsumme sitä täällä? JASON HIRSCHHORN: Kutsuimme sitä nimiä. Opiskelija: Avaa kiinnike, nimi. JASON HIRSCHHORN: Avaa kiinnike, nimi. Opiskelija: Suljettu kiinnike. JASON HIRSCHHORN: Suljettu kiinnike. Opiskelija:) JASON HIRSCHHORN:) Opiskelija: Semicolon. JASON HIRSCHHORN: Semicolon. OK, Säästetään. Tehdään tämä koodi. Opiskelijoille. Katsotaanpa suorittaa tämän koodin. Opiskelijoille. Ei. / Opiskelija. . / Opiskelijoita. Nimeä yksi. Me sanomme David. Nimeä kaksi, RJ. Nimeä kolme, Rob. Nimeä neljä, Lucas. Nimi viisi, Joseph. Ja sitten se tulostaa Joseph uudelleen. Joten anna minun ajaa tätä uudelleen. Anna minun tehdä samoja nimiä. David, RJ, Rob, Lucas, Joseph. Ja se antoi minulle David tällä kertaa. Joten tein saman asian, mutta se antoi minulle eri asia, ja se on koska tietenkin, pyydämme ja satunnainen nimi. Joten luulen, perustuu pois minun vaeltava ympäri huonetta, että useimmat ihmiset luultavasti sai ensimmäisen osan oikea, perustamalla että joukko ja sitten saada kaikki nimet. Puhun riviä 10 kautta 16. Mutta linjat 18 kautta 21 ovat luultavasti joitakin asioita et ole ennen nähnyt, niin mennään läpi näitä. Tämä linja, srand aikaa NULL on pohjimmiltaan - Anteeksi, nyt hypätä linja, randia (). Tämä antaa sinulle satunnaisen numeron, satunnaiskokonaisluku. Ja jos osut mies randia, joka paljon teit - M-A-N space R-A-N-D - päätelaitteessa, kuten tämä, M-A-N space R--N-D, paina Enter. Sinun olisi keksiä käsin ja voisi lukea, että randia komento lähdöt num pseudo random tavua istuttamisesta satunnaisluku generaattori kerran. Niin, että kuvaus. Juuri randia tekee, antaa sinulle satunnaisen numeron soitat että toiminto. Valitettavasti se ei ole todella satunnaisia koska jos vain soittaa satunnaisessa saamatta sille joitakin siemeniä, jotkut lähtökohta, se tulee aina valita sama, ja se käyttää kaavan määrittää seuraavaan. Joten jos soitat randia, se tulee vain antaa sinulle sama asia. Se on hyvin ennustettavissa. Se oikeastaan ​​ei ole satunnainen. Joten mitä meidän täytyy tehdä, per Marcuksen ohjeet minulle, oli siemen randia jotain muuta, joka on mitä srand toiminto tekee. Se siemenet Rand jotain hieman satunnainen kuin sama asia, ja Hän kylvö sen ajan NULL, joka on vain tavan mukaan nykyinen sekunneissa. Joten olet olettaen, että kaikki ei ole menossa ajaa koodin tarkka samalla sekunnilla, niin se on varmaa, että aika NULL tulee olemaan erilainen joka kerta tämä koodi ajetaan. Varmaa, että näin, srand tulee siemen randia jotain erilaista joka kerta. Joten yleissopimus, kun me haluamme satunnaisluku, kirjoitamme tätä linjaa, srand aikaa NULL, antaa meille paljon enemmän satunnaissiemen, ja sitten otamme Rand, joka antaa meille satunnaisluku. Niin? Opiskelija: Voitko sanoa, mitä sinä tarkoitat siemen? JASON HIRSCHHORN: Seed kuin - niin Rand aikoo poimia numero ja se tulee käyttää joitakin kaava sinne. Joten se tulee aloittaa jotain ja sitten muuttaa sen joksikin perustuu pois, että kaava. Jos aina antaa se sama asia, se on aina menossa muuttaa sen sama asia. Niin, että ensimmäinen asia, antaa se on siemen. Joten haluat antaa sille jotain eri aloittaa kanssa, ja niin se muuttaa sen joksikin muuksi. Ja sitten lopuksi, linja 20, Tämän% kutsutaan modulo, ja että on hämmentävää. Se on jotain, joka on hieman täällä erilainen, että et oikeasti on tosielämässä matematiikka. Mutta pohjimmiltaan, kun otat jättiläinen numero ja jaat C, mitä sattuu jäljellä? Opiskelija: Se saa katkaista. JASON HIRSCHHORN: Se saa katkaista. Joten 20 jaettuna 3 on mitä? Mitä se palaa sinä, 20 jaettuna 3. Sorry, 10 jaettuna 3. Mitä se teille takaisin? Opiskelija: [kuultavissa]. JASON HIRSCHHORN: 10 jaettuna 3 vain palaa 3, ei 3 loput 1. Joten mitä 10 modulo 3 palaa on vain loput 1. Joten jos halusi tietää, mitä 10 jaettuna by 3 todellisuudessa oli, olisit tehdä 10 jaettuna 3, voit saada oman 3, ja sitten tekisin 10 modulo 3, ja voit saada 1. Joten voisi ymmärtää, että 10 jaettuna by 3 on 3, loput 1. Ja tätä linjaa, Rand voisi olla mikä tahansa kokonaisluku, olennaisesti. Joten modulo sanoo, jaa se määrä, joka on tässä tapauksessa 5. Ja jos joskus jakamalla numero, kokonaisluku on aina oltava alle että numero. Joten jos olet jakamalla numero 5, Loput aina olemaan nollasta neljään. Se, miten matematiikka toimii. Niin suuren määrän moduloed pienemmällä numero palaa aina loppuosa ja palaa aina joitakin määrä, joka on pienempi kuin numero jaettuna. Onko kellään mitään kysyttävää modulo, koska se tulee hyvin, erittäin kätevä, joten haluan varmistaa, jokainen ymmärtää sen? Cool. Ja näimme, että tämä ohjelma toimi. OK, liikkuu. Joten seuraava, aiomme mennä toimintoja, ja aiomme mennä läpi loput tätä kamaa melko nopeasti, koska haluan päästä komentoriviargumentteja. Joten toiminnot ovat olennaisesti, koska olet nähnyt, mustat laatikot. He ottavat asioita kutsutaan parametrien he tekevät jotain heille, joko muuttaa niitä tai luoda joitakin sivuvaikutuksia, ja lopuksi, he sylkevät jotain, joka on paluuarvo. Voiko joku antaa minulle yksi syy Siksi olisi käyttää toimintoja? Anybody? Yksi syy, miksi olimme käyttää toimintoja? Kuka tahansa? Näin kaksi kättä. Mikä on hyvä syy? Marcus? Opiskelija: Jos sinun täytyy soittaa samaa koodinpätkän useita kertoja. JASON HIRSCHHORN: OK, jos tarvitset soittaa samaan kimpale koodata useita kertoja. Jeff, ei sinulla on eri syy? Opiskelija: Just niin, että voit koodata vähemmän. JASON HIRSCHHORN: Voit koodata vähemmän. Oikea. Jos haluat tehdä jotain paljon - edellisessä koodi, voisin olla kirjalliset saada string viisi kertaa, mutta silmukan saa sen näyttämään mukavampaa ja sinun täytyy kirjoittaa vähemmän koodia. Toiminnot ovat samankaltaisia ​​idea. Jos haluan tehdä sama asia paljon, siirtää sen toiminta ja soittaa, että toimii joka kerta. Se tekee sen asia sinulle. Se on hyvä syy käyttää toimintoja. Joten anatomia toiminto. Toiminnon avulla yleensä näyttää tältä. Se tulee aloittaa palautuva, Tulet saamaan nimeä. Se vie argumentteja, toisin tunnetaan parametrit, ja sisältä ne aaltosulkeita, sinun kirjoittaa koodia. Olemme nähneet yksi funktio paljon. Se on tärkein. Täällä on tärkein päällekkäiskuvaksi että anatomia minulla oli aiemmin. Mitä int täällä merkitsevät? Mitä int tarkoittaa? Kun kirjoitan int main (void). Opiskelija: Return tyyppi? JASON HIRSCHHORN: Anteeksi? Opiskelija: palautuva. JASON HIRSCHHORN: Int on palata tyyppi, aivan oikeassa. Main palauttaa int. Mikä on tärkein? Opiskelija: Toiminnon nimi. JASON HIRSCHHORN: Main on toiminnon nimi. Täsmälleen oikea. Ja mitätön? Mikä on mitätön sulkujen sisällä? Opiskelija: Siinä ei oteta mitään ulkoista arvoa. JASON HIRSCHHORN: So void - oikealle. Suluissa, laitamme parametrit tai väitteitä Funktio ottaa, mitä tapahtuu sisällä musta laatikko. Kun kirjoitat mitätön, sanot tämä vie mitään sisään Joten int main void tarkoittaa Mainin ei ota mitään sisään Sisällä aaltosulkeiden, meillä on joitakin koodi, ja sitten näemme lopussa palata nolla. Mitä tuotto nolla tarkoittaa? No, puhuimme palautuva. Main tarvitsee palata int. Sitähän tämä linja ei. Se palauttaa int, nolla. Tietenkin, emme ole nähneet, että paljon koska ohjelma teemme koneet teemme ja kääntäjät käytämme nykyään, et ei tarvitse, että linja. Main on tarpeeksi erikoinen, että se tietää kun päähän pääasiassa vain palata nolla, jos kaikki meni hyvin. Itse asiassa, jos jokin ei mene hyvin, Tärkeimmät on usein palauttaa eri numero merkitsee, että jotain meni vikaan ohjelman. Joten yleensä kun näet koodin, sinun älä kirjoita tuotto nolla, mutta se on hyvä tietää, että se tapahtuu takana kohtauksia, koska aina kun kirjoittaa toisen tyyppinen toiminta, olet menossa tarvitse ovat paluulinjan. Jos sanot aion palata int, sinun täytyy kirjoittaa palaa jotain. Jos sanot void jopa täällä Alussa void main void varten Esimerkiksi, niin se ei ole tulossa takaisin mitään - void merkitse mitään - joten sinun ei tarvitse että paluu linja. Mutta oletko koskaan kirjoittaa jotain, joka ei ole mitätöidä paluuta tyyppi, tarvitset Siinä lukee paluuta ja olet täytyy laittaa jotain siellä , joka vastaa tyypin. Kaikki kysymykset siitä? Makea. Soveltamisalaa. Tämä on jotain olemme sivuttiin myös. Jokainen muuttuja, kuten tiedämme, on tietyt laajuus, ja se on pohjimmiltaan puhumme jossa muuttuja voi tai ei voi viitata. Ja haluan sanoa, mitä tapahtuu aaltosulkeita pysyy sisällä aaltosulkeiden. Niinpä esimerkiksi, jos katsomme tätä koodia, olemme määritellään globaali muuttuja ulkopuolella tärkein, int, täällä huipulla. Olemme soittaa toiseen int sisällä tärkein. Meillä on joitakin enemmän aaltosulkeita ja me soittaa toisen int. Meillä on kolme: n koodin. Nämä eivät ole sama asia. Olen luonut kolme erillistä muuttujaa. Sitten sisällä näitä sisempi kihara henkselit, sanon = 4. Joka on se, että puhumme, Ensimmäinen, toinen, tai kolmas? Opiskelija: kolmas. JASON HIRSCHHORN: Se puhuu noin kolmas. Kaikki nämä on todella voi olla puhui tässä nimenomaisessa Esimerkiksi siksi, että niiden soveltamisala kaikki menee näihin sisin aaltosulkeita. Kuitenkin, kun soitat asioita samalla nimi, on jotain kutsutaan piilossa. Joten voit vain käsitellä tai korjata tai käyttää Uusimmat muuttuja, tai yksi lähimpänä sinua. Joten täällä sisällä, tämä kolmas on lähimpänä tähän viivaan, = 4, joten se vaikuttaa kolmas. Ja viimeinen rivi = 2, joka on että puhutaan, ensimmäinen, toinen, tai kolmas? Opiskelija: Toinen. JASON HIRSCHHORN: Se puhuu noin toinen. Tietenkin, kolmas on lähimpänä sen koodin, mutta kolmas ei ole olemassa ulkopuolella ne aaltosulkeita. Kun saat suljetun kihara ahdin, se on kuin se on mennyt, olennaisesti. Joten vain kaksi on jäljellä ovat ne, kaksi ensimmäistä, ja tietenkin nyt se on lähimpänä toinen. Niin se on hyvä asia muistaa soveltamisalaa. Esimerkiksi, olen varma, että olet kohdannut tätä tehdä, kun silmukka. Jos alustaa muuttujan sisällä do while-silmukka ja sitten yrität käyttää sitä ulkona, luultavasti saimme varoituksen, kuten tämä muuttuja ei ole olemassa. Se johtuu soveltamisalan idea, että asiat vain ovat olemassa sisällä näitä aaltosulkeita. Aaltosulkeita ovat kuin jättiläinen halauksen, että annat koodiin, on toinen tapa ajatella sitä. Joten tämä on toinen toiminto, jotain voit kaverit koodin, hellofunction.c. Aiomme ohittaa, että nyt, mutta tämä on jotain sinun kannattaa harjoitella itse. Kirjoita ohjelma, jossa tärkeimmät puhelut toinen toiminto, joka tulostaa tervehdys käyttäjälle. Se on pohjimmiltaan ottaen hello world ja hahmotuskykyyn että printf osaksi toinen toiminto. Mutta emme aio tehdä sitä juuri nyt koska meillä ei ole niin paljon aikaa jäljellä kuin olisin halunnut. Joten toiminto ilmoitus. Olemme nähneet tämän ennenkin samoin. Jos haluat kirjoittaa toisen toiminnon, sinun täytyy antaa tietokoneen tietää ja Tärkeimmät tietävät, että se on olemassa. Joten mitä me teemme on yli tärkein, kirjoitamme palautuva, nimi ja parametrit, ja sitten alhaalla tärkein, tänne, me todella kopioi että linja ja sitten kirjoittaa itse koodi. Joten tällä tavalla, jos soitat toiminto pää ylhäällä, pääasiassa tietää, että Hei olemassa, esimerkiksi, jos olisin soittaa hello, ja sitten se näyttää täytäntöönpanoa alhaalla. Mitä tapahtuu, jos en ole tätä linja ylös, mitätöidä hei (void)? Jos en ole tätä linjaa ja tärkeimmät puhelut Hei, olen menossa virhe. Aion saada virheen, koska kääntäjä ei tiedä että tämä asia on olemassa. Tämä on samanlainen kuin miksi ei # include cs50.h. Mitä kaikkea cs50.h tekee on ryhtynyt saada ripustaa sinne. Se asettaa päästä int sinne. Se asettaa kaikki nämä toiminta prototyyppejä ennen pääasiassa niin, että kun soitat ne tärkeimmät, tärkeimmät tietää että nämä asiat ovat olemassa. Sitähän ne. H tiedostoja tehdä. Joten jos aiot tehdä oman toiminnon, sinun täytyy varmistaa, laitat että prototyyppi sinne. Kysyttävää tähän mennessä? Komentoriviargumentteja. Tämä on mitä aiomme loppuun virta, ja toivottavasti me hyvitämme purista joissakin PSET. En tiedä, jos pystymme puristaa että koska aikaa, mutta teidän kanssa, jotka ovat täällä, ja jos kaverit haluavat sanoa jälkeen vielä vähän, me voi mennä yli sen ulkopuolella. Mutta aiomme lopettaa komentoriviargumentteja viimeiset 15 minuuttia. Olemme hereillä, Michael? Olet hereillä? Hyvä. En tiedä, jos nukut silmät kiinni. Olisi hankalaa. Komentoriviargumentteja. Ne ovat yksi tapa välittää tietoa osaksi ohjelmaa. Lopulta me kohtaavat muita. Mutta pohjimmiltaan, aiomme lopettaa kirjallisesti int main (void), jos haluamme kestää jonkin komentoriviargumentteja. Aiomme kirjoittaa tämä juttu kutsutaan int main (int argc, merkkijono argv, suluissa. Se on hämmentävää. Se on paljon kirjeitä, jotka eivät ole ihmisen Englanti, joten aiomme purkaa niitä juuri nyt. Argc sanoista argumentti määrä - ja jälleen kaikki nämä tulee olla saatavilla verkossa - ja se on määrä argumentteja. ARGV tarkoittaa väitteen vektori, ja ne ovat argumentteja itse. Se Merkkijonotaulukko. Olemme nähneet array merkkijonojen ennen tänään. Loimme yksi viime ohjelma me koodattu. Joten tässä on esimerkki. Minä kirjoitan. / Ohai CS50 jakso minun komentoriviltä. Argc tässä tapauksessa yhtä kuin 3. ARGV kiinnike 0 on ohai, argv kiinnike 1 on CS50, argv kiinnike 2 kohta. Jälleen argc on määrä argumentteja, ja matka sinut hieman vähän, me aina luottaa nimi toimivat ensimmäistä väitettä. Joten tässä tapauksessa on kolme argumentit, funktion nimi ja sitten ne kaksi, jotka olen kirjoittanut sisään Seuraavaksi aiomme pelastaa ne argumentteja itse argv. Ja taas, aivan kuten näimme aiemmin, teimme Tässä viime ohjelmassa me koodattu. Voit liikkua joukko ARGV ja saada nuo jouset. Se lähinnä mitä teimme Lopussa meidän viimeinen ohjelma. Me valitsimme satunnainen nimi ja sitten meni nimet kiinnike tahansa ja tulostaa pois merkkijono sijaitsee siellä. Päälle vain yksi jono, koska jouset ovat itse paneelit puhui, voit olla paneelit ja ryhmät, jotka on lähinnä mitä argv on. Yksi tapa ajatella Tämä on rivejä ja sarakkeita. Voin tehdä juuri nyt. Joten argv - joka ei pyyhkimällä. Katsotaanpa piirtää alle ohai. Joten jos olen kirjoittanut, ohai CS50 osiossa Aion katkaista osa tässä esimerkissä. Mutta pohjimmiltaan, minun moniulotteinen array, ohai CS50, aiomme tehdä lahko. Joten tässä, voin käyttää - jos vain antaa argv yksi numero - tämä on väärin. Mitä vikaa tässä kuvassa? Opiskelija: Aloita nolla. JASON HIRSCHHORN: Se olisi aloittaa nollasta. Pitäisi varmaan myös kiertää sen, mutta koska olen jo ottanut sen, olen aio jättää se sinne nyt. Mutta se alkaa nollasta. Aivan oikein. Olen pahoillani, jos tämä on pieni. Voisitteko sellaista nähdä? Joten jos en argv 0, minä saada kaikki ohai. Jos en argv 1, saan kaikki CS50. Jos en argv 2, saan kaikki lahko. Mutta nyt, kuten sanoimme, jouset ovat paneelit itse. Joten mitä voin tehdä, on voin käsitellä tätä niin moniulotteinen array, ja minä voi tehdä jotain tyyliin argv 0, 0, joka antaa minulle vain merkki 0. Argv 0, 1, joka antaa minulle aivan h. ARGV 1, 3, joka antaa minulle vain Tämän 0 täs CS50. Joten koska jouset itse ovat paneelit, me laitamme että toinen joukko. Meillä on nyt joukko paneelit, ja me voi indeksoida meidän ensimmäinen array ja sitten indeksinä meidän toinen joukko. Ja kuten arvata saattaa, me teemme sen n vain asettamalla nämä kaksi - teemme hakasulkeet vain aivan toisiinsa. Joten tässä esimerkissä, argv 1 on CS50 ja argv 1, 2, kuten sanoimme, on vain 5. Onko kellään mitään kysyttävää moniulotteinen taulukot? Te teette mahtavaa. Makea. Joten meillä on toinen ohjelma täällä, ja tämä on viimeinen asia, olemme aiomme tehdä juuri nyt. Joten haluan sinun kirjoittaa ohjelma, joka vie käyttäjän koko nimi, kaksi ja vain kaksi komentoriviargumentteja, ja lopuksi, tulostaa tervehdys Käyttäjä, joka sisältää heidän etunimensä. Joten miksi et kestää kolme tai neljä minuuttia tehdä tämän, ja sitten menemme yli ryhmänä, ja sitten me pukeutua? Ja taas täällä, kun me sanomme ottaa Käyttäjän koko nimi per kuvaus tämä ongelma, se olisi komento argumentteja, jotka eivät käytä saada merkkijono. Joo, Marcus? Opiskelija: Joten kun sanot kaksi komentoa argumentteja, että lisäksi . / juosta, tai - JASON HIRSCHHORN: Hyvä kysymys. Tehdä, kuten. / Ajaa, kolme komentoriviargumentteja. Tai lukien. / Henkilökohtainen, in Tässä tapauksessa, koska se on tämän tiedoston nimi. Joten argc olisi kolme. Mutta haluan vain kaksi argumenttia annetaan ohjelman. Täsmennän, että. Teen että muutos ennen kuin lähettää nämä ja lähettää ne teille. Opiskelija: Mitä jos on toinen nimi? JASON HIRSCHHORN: Jos sinulla on keskellä nimi, olet poissa onnea. Olen pahoillani. Tai jos vain mennä Shakira, olet myös epäonninen. Niin? Opiskelija: Joten kun ihmiset eivät ole cs50.h, ne määrittelevät argv char tähti argv? Vai onko se edelleen nimeltään merkkijono argv? JASON HIRSCHHORN: Kyllä. Joten merkkijono, taas me maskia mitä juuri siellä tapahtuu. Joka aiotaan purkaa ehkä keskiviikkona, mutta pian. Se on kuin apupyörät. Koska olennaisesti, se on sama asia. Joten ottaa toisen minuutin ohjelma Tämän ja sitten me menemme yli se ryhmä, ja sitten kuten sanoin, kääriä. Ja mielestäni he ovat vielä ylimääräistä karkkia, joten te toivottavasti ottaa että, tai ota se. Anteeksi jos olet vielä kirjallisesti, mutta haluan sukeltaa ja me voi lopettaa sitä yhdessä. Joten olen kirjoittanut, # include cs50.h, # include stdio.h. int main (void), kihara ahdin, kihara ahdin, sisällä kolme riviä pseudokoodit ottaa käyttäjän koko nimi, kaksi ja vain kaksi komentoriviltä argumentteja, tulostaa tervehdys Käyttäjä, joka sisältää heidän etunimensä. Joten ensimmäinen, ota käyttäjän koko nimi. Kuka voi auttaa minua ottamaan käyttäjän koko nimi? Miten teen sen osa? Te oikein tehdä ensimmäinen osa? Ota käyttäjän koko nimi. No, että yksi komentoriviltä argumentti, mitä minun pitäisi kirjoittaa? Mitä minun pitäisi muuttaa noin tehtäväni ilmoitus? Opiskelija: Et halua se on mitätön enää. JASON HIRSCHHORN: Aivan. En halua sen olevan mitätön. Mitä haluan sen olevan? Opiskelija: Int argc. JASON HIRSCHHORN: Int argc. Opiskelija: String argv. JASON HIRSCHHORN: String argv. Opiskelija: Bracket, kiinnike. JASON HIRSCHHORN: Bracket, kiinnike. Se on aivan oikein, ja se on oikeastaan ​​miten aion saada käyttäjän koko nimi. He aikovat laittaa sen sinne. Niin, että yksi on tehnyt. Joten nyt haluan kaksi ja vain kaksi komentoriviargumentteja. Niin Nooa, mikä on yksi tapa voin tarkista määrä komennon argumentteja minulla on? Opiskelija: Et jos ilmoitus. JASON HIRSCHHORN: Jos julkilausuman, tarkalleen. Mitä haluan ehtona? Opiskelija: Jos argc suurempi kuin 3. JASON HIRSCHHORN: Jos argc on suurempi kuin 3. Jos argc suurempi kuin 3, mitä teen? Opiskelija: Return 1. JASON HIRSCHHORN: Return 1. Onko tämä varmistetaan olen kaksi ja vain kaksi? Opiskelija: No Jos argc on suurempi kuin 3 ja vähemmän kuin 2. JASON HIRSCHHORN: Jos argc on suurempi kuin 3 ja argc on alle 2. Mikä on yksi tapa voin kirjoittaa tämän vain yksi linja, tai ilman, että ja Boolen operaattori? Opiskelija: Se ei ole yhtä suuri kuin 2. JASON HIRSCHHORN: Jos argc ei ole yhtä suuri kuin 2. Täsmälleen. Joten jos argc ei ole yhtä suuri kuin 2, että antaa minulle tämän ohjelman yksilöllisiä, kun käytän sitä, ja joka antaa minulle, kuinka monta komentoriviargumentteja? Kuinka monta minä tarkistaa? Anteeksi. Saanen muotoili, että. Jos argc = 2, kuinka paljon teki Käyttäjä kirjoittaa putkeen? Opiskelija: One. JASON HIRSCHHORN: Vain yksi. Joten ennen, olit oikeassa, Noah. Mitä itse tarvitse laittaa sinne? Opiskelija: Se vastaa 3. JASON HIRSCHHORN: argc ei ole sama kuin 3. Haluan yhtä 3 koska haluan henkilökohtainen plus kaksi muuta. Joten jos argc ei vastaa 3, palaa 1. Miksi sanoit palauttaa 1? Opiskelija: Koska se tarkoittaa että se on väärin. JASON HIRSCHHORN: Tämä tarkoittaa, että se on väärin, ja mitä se aikoo tehdä? OPISKELIJAN: Re-kehottaa käyttäjää. JASON HIRSCHHORN: Se tulee lopettaa ohjelman, joten se täytyy juosta uudelleen, mutta meillä ei ole mitään täällä pyytää niitä uudelleen. En pyydä, että. Niin, että on aivan oikein. Return 1 vain sulkeutuu ohjelman. Suuri. Ja tulostaa tervehdyksen käyttäjälle joka sisältää heidän etunimensä. Miten voin tehdä tämän? Anna? Opiskelija: Printf. JASON HIRSCHHORN: Printf. Opiskelija: (" JASON HIRSCHHORN: ( Opiskelija: "Hei JASON HIRSCHHORN: "Hei Opiskelija:% s JASON HIRSCHHORN:% s Opiskelija: / n JASON HIRSCHHORN: / n Opiskelija: ", JASON HIRSCHHORN: ", Opiskelija: ARGV JASON HIRSCHHORN: Anteeksi? Opiskelija: ARGV JASON HIRSCHHORN: ARGV Opiskelija: Hakasulkeet 1. JASON HIRSCHHORN: Hakasulkeet? Opiskelija: 1.. JASON HIRSCHHORN: 1. Opiskelija: Ja) puolipiste. JASON HIRSCHHORN:) puolipiste. Olkaamme suorittaa tämän. Tehdä yksilöllisiä. . / Henkilökohtainen. Se vain lopettaa. Miksi se lopettaa? Opiskelija: Et laittanut mitään perusteluja. JASON HIRSCHHORN: en laittaa mitään perusteluja sisään Näyttää hyvältä. Te naulattu sitä. Joten jälleen, menit argv ja sinä tarkastetaan alussa argc. Nämä ovat kaksi tärkeää asioita muistaa. Joten meidän kaksi viimeistä minuuttia ennen kuin lähteä, emme päästä PSET kaksi, mutta kuten sanoin, jos haluat pysyä jälkeen 10 minuuttia, olisin hän mielellään mennä yli teidän kanssa logiikka Näiden ongelma sarjaa. Meillä oli paljon kattamaan tänään joten en saanut niitä. Yleensä pidän sisällyttää että lopussa. Joten jos haluat jäämään, jäämään 10 minuuttia. Teemme sen. Sitten, kuten mainitsin alussa, PSET nolla-yksi, saamme, että palautetta takaisin niin pian kuin mahdollista. Tavoitteena on saada PSET yhden palautetta, kommentit osa, ennen PSET kaksi johtuu. Joten jos olet tehnyt joitakin virheitä tai tyylillisesti, asiat voisivat olla paremmin, sinulla on, että tiedot, jotta voit ei tee samoja asioita PSET kaksi. Ja sitten tulevaisuudessa, saat kaikki oman PSET palautetta ja kommentteja takaisin ennen seuraavan johtuu. Lopuksi, jos voisin laittaa toiseen plug palautetta. Tämä on ensimmäinen osa. Se oli minun ensimmäinen osa opetuksen tänä vuonna. Mene sinne. Kirjoita kamaa, hyvä ja paha, ja aion käyttää sitä tehdä kohta paremmin seuraavalla kerralla. Ja viimeisenä, uudelleen, jos tarvitset mitään, haluaisin tietää. Olen enemmän kuin mielellään auttaa teitä. Jos haluat vain karkkia, I on ylimääräistä karkkia. Olen iloinen voidessani tuoda sen sinulle. Tämä tulee olemaan hämmästyttävä kurssin. Tämä on yksi, jos ei suosikkini Tietenkin olen ottanut koko elämässäni, ja minä toivon, että se, että ihana sinulle. Joten haluan tehdä kaiken voitavani tehdä, että mahtava sinulle. Aion lähettää sähköpostia, jos olet minun osan tai Noah, ja menossa yrittää ajoittaa kunkin te aikaa tarkistaa yli Seuraavan parin viikon ajan, jotta saan siitä, miltä CS tausta on, ja se myös auttaa minua muokata näitä kohdat paremmin tarpeisiisi. Niin, että mitä minulla rivissä. Jälleen Nähdään ulkopuolella jos haluat olla siellä. Tämä oli viikolla kaksi osiossa. Kiitos pojat niin paljon.