[Tónlist spila] ALLISON BUCHHOLTZ-AU: Hey allir. Velkomið að fyrsta þinn opinber CS50 kafla. Eins og þú getur, sjá þetta er kafla CS50-eins, bara að draga upp dagskrá okkar í dag. Svo, hver er ég, eins og ég er viss þú ert allur að spá. Ég er TF þinn. Ég er ekki bara af handahófi nemandi sem er líkja TF þinn. Og ég ætla að fara í gegnum konar hafa kafla mun renna, væntingar við höfum, auðlindir, svo á og svo framvegis. Við erum að fara að tala um fylki, ASCII aðgerðir, stjórn-lína rök, og það er ekki hér, en Ég mun einnig vera að hjálpa þú heldur svona í gegnum Næsta pset fyrir þessa viku. Sem ég er viss um að þú verður allt þakka. Svo, fyrst question-- hver er ég, auki exuberant TF þína hér. Ég er Alison Buchholtz-Au. Þetta er annað árið mitt TFing CS50. Ég líka TF CS51 í vor. Þú gætir séð aftur það Ef þú ákveður að taka það. Ég er líka PAF, svo allir Freshmen-- og ef þú ert ekki a freshman, þetta er þriðja árið mitt sem ráðgjöf náungi. Ég er mjög vel versed í leiðbeina þér á líf og námskeið innan CS og ekki innan CS. Ég er Computer Science útstöð. Ég er háttsettur í Adams House, besta hús. Og áður en ég kveikt á CS minn Sophomore Spring, Ég var í raun Biomedical verkfræðingur. Ég ætlaði að fara til Med skóla. Ég ætlaði að vera áfall skurðlæknir. Og það hefur alveg breyst frá því ég fór CS50. Ég tók námskeið Sophomore Fall mitt. Það var fyrst kynning mín til CS alltaf. Ég var einn af 78% ykkar sem hafði núll reynslu koma í, og það breytti algjörlega lífi mínu. Og nú er ég að vinna á Microsoft, og yndisleg TF þinn. Og CS50 er sennilega einn af bestu reynslu sem ég hef haft hér á Harvard-- bæði taka bekknum og að vera fær um að hjálpa kenna nemendum eins og þig. Þannig að ég er virkilega spennt að þú ert öll hér. Ef þú komst í seint, það er sælgæti, sem þú ættir að finna frjálst að koma grípa, eða senda einhver annar að grípa það fyrir þig. það er allt í lagi. Ég vil ekki að borða það. Herbergið mitt hefur nóg súkkulaði, svo örugglega allir að reyna og klára það. Ég veit að það eru 100 stykki, en eins, 04:00 á mánudegi, Ég held að allir geti notað nokkur sykur. Svo öllum sem eru opinberlega í kafla mínum ættu að hafa fengið tölvupóst frá mér með símanúmerið mitt, Email address-- hika við að bæta við mig á Gchat, feel frjáls til bæta við mig á Facebook, og einnig fyrir the hvíla af þér, þú getur sent mér hérna. Það eru tvær á H. Allir alltaf er eins og tvö L's eða tveimur C er. Tvær H í eftirnafnið. Annað það er að fara að hopp og Ég ætla ekki að fara að fá netfangið þitt. Svo ekki hika við að sendu mér tölvupóst, að hafa samband við mig hvenær sem er. Ég kann ekki að fá til baka til þú innan 24 mínútna, en ég lofa að fá til baka til þín innan 24 klst. Ef þú kallar mig hálftíma áður pset er vegna, þú vera eins og, Ég hef ekki hugmynd um hvað ég er að gera Allison. Hjálpa mér. Ég ætla að róa þig niður, en í lok dagsins, Ef þú ert að kalla mig hálftíma áður pset er vegna með ekkert skrifað, Ég ætla að vera eins og, vel, kannski það er kominn tími til að nota að seint degi. Svo ég mun svara öllum þínum beiðnir í mjög tímanlega. Síminn minn er yfirleitt fest við hendur mínar. Ég svara yfirleitt mun fljótari en 24 klukkustundir, en ég get bara trygging 24 klst svar. Allt í lagi. Svo hvers vegna erum við hér? Einnig, ef þú hefur einhverjar spurningar á hvenær sem er, vinsamlegast láttu mig vita. Ég tala mikið. Ég tala hratt, en vinsamlegast ekki hika við að trufla mig. Það gefur mér að öndun herbergi eins og heilbrigður. Svo kafla eru tími fyrir okkur að í raun bara kafa í, fá sumir snertið ekki-á reynsla, til fara í gegnum efni sem við umtal í bekknum eða í námsefni sem við mælum með að þú krakkar netinu. Og við munum í raun að fara í gegnum sumir af þeim auðlindum í smá. Svo nokkrar athugasemdir á þætti stuðning. CS50-- einn af hlutum sem gerir það einn af uppáhalds bekkinn er tilfinning sem þú ert aldrei ein. Við höfum starfsfólk yfir 100 fólk sem er hér til að hjálpa þér. Við höfum skrifstofu klst Mánudaga til fimmtudaga. Þannig að það eru svo margir sem elska bekknum eins mikið og ég geri og sem eru í raun hér vegna þess að þeir vilja til að vera hér. Flest okkar eru nemendur og þetta er eins fimmta bekk í viðbót til the hvíla af starfi okkar. Og það er a einhver fjöldi af vinna, en við gerum það vegna þess að við elskum það, og við elskum virkilega að kenna þér og hjálpa deila spennan fyrir þetta efni og þessum flokki. Svo skaltu nýta. Komdu tala við okkur. Ég fæ einmana þegar nemendur mínir ekki tala við mig, þannig að ef þú vilt, koma hanga út með mér. Það verður frábært. Svo er hluti augljóslega einn af stærstu hlutina þína. Við munum fara í gegnum hluti að þú lært í fyrirlestri gera nokkrar stuttar dæmi þegar við höfum tíma, og almennt konar fá hugmynd um hluti þú ættir að hugsa um fyrir vandamál þitt setja. Shorts-- hversu margir raunverulega horfði á vídeó frá grunni þínum stutt? Einhver þekkja mig? Þannig að þeir eru mjög mikil. Þú ættir örugglega að horfa á þær. A einhver fjöldi af vinna hefur verið sett inn í þá. Og þeir eru bara ætlað að vera bíta-Size stykki fyrir þig bara að horfa í þrjá eða fjórar mínútur og fá a betri skilning á hugtakinu. Ganga throughs-- hvernig margir hafa horft Gangan gegnsæi fyrir fyrri? Zamyla er ótrúlegt, ekki satt? Eins óska ​​ég ég væri Zamyla stundum. Svo ákveðið að nota þinn ganga throughs. Hún mun brjóta það niður í lítill, bíta-stærð stykki. Og þegar þú hefur þessar gríðarstór upplýsingar frá vandamál setur þinn, það er að fara að vera mjög mikilvægt að vera fær um að bara finna einhversstaðar að byrja og vinna rólega í gegnum það. Allt í lagi, við höfum líka Study50 sem er study50.harvard.edu tel ég. Þú getur bara Google læra, og það mun koma upp. Þetta er einn af þeim bestu auðlindir sem við höfum. Það er PowerPoints með skýringum og æfa vandamál fyrir þig með lausnir sem þú geta í raun að ganga í gegnum. Svo ef þú vilt alltaf meira starf, meira en við gerum í köflum eða meira en vandamál setur, þetta er virkilega staður Ég hvet þig til að fara. Það var byggt á síðasta sumar með sum mjög góðum vinum mínum. Og það er ótrúlegt. Í raun, a einhver fjöldi af the skyggnur sem ég ætla að nota fyrir kafla mun koma frá Study50. Svo mikið af TFS nota það. Og að lokum, eins og ég fyrrnefnda, skrifstofutíma. Ef þú ert í vandræðum með heimanám, þú ert vandræðum með a hugtak, koma til skrifstofutíma. Farðu snemma í vikunni ef þú getur. Komast út á quad, vegna þess að það er góður af langt. Enginn hefur gaman að ganga þarna úti. En það er að nýta þína, því þá ert fara að hafa allar þessar TFS, [Inaudible] umlykja þig. Og sérstaklega núna, bara ábending, fimmtudögum eru mjög slappað núna í Mather vegna psets þínum eru vegna á fimmtudögum. Og vita vill nota seint ævi enn. Svo ef þú ætlar að hafa vandræði með hugmyndir, það eru hellingur af TFS sem eru til staðar til að hjálpa þér. Svo koma út til Mather á fimmtudag. Ef þú vilt sjá mig, Ég ætla að vera þar. Ég er yfirleitt að gera eigin heimavinnuna mína, vegna þess að enginn vill hjálp mína. Svo koma sjá okkur. Hitta okkur á miðri leið. Svo hversu margir hafa sótt fyrirlestur eða horfði það á netinu? Hversu margir fóru til Super kafla síðustu viku? Cool. Það er í raun nokkur fjöldi. Hversu margir af þú hafa lesið sérstakur fyrir þessa viku, fyrir pset þinn? Ooh, ég er stolt af ykkur! Meira nammi fyrir y'all. Gott, svo hvað er átt við "Hitta okkur á miðri leið," er þessi hluti er í raun aðeins að fara að vera frábær gagnlegt fyrir þig Ef þú kemur í að hafa lesið forskrift fyrir pset þinn. Vegna þess að þegar ég fer í gegnum yfirlit hlutir sem þú ættir að vera að leita út fyrir, það er ekki að fara að gera eins mikið vit ef þú veit ekki hvað vandamálið sett er að fara að spyrja þig að gera. Ef þú kemur ekki lið, vitanlega Ég get ekki verið að gagni fyrir þig. Ég ætla ekki að fara að taka það persónulega ef þú kemur ekki til kafla minn núna, en ákveðið að þú ættir. Ef þú getur ekki, horft á þau á netinu. Þeir eru þarna fyrir ástæðu. Mine mun vera rétt þar. Eins og þú tekur eftir, við erum að skrá, svo það verður rétt þar fyrir ykkur. Eins vel, að fara að lectures-- það er augljóslega þar sem þú ert að fá sem byrja á efni þitt hér. Þannig að ég mun örugglega reyna hjálpa þér eins mikið og ég get, en ég get bara hitta þig svo langt. Þú þarft að konar hitta okkur á miðri leið þar. Grading-- svo allir hér af sem fékk tölvupóst frá mér, þú ert opinber kafla minn. Ég mun vera flokkun psets þínum. Og ég vil bara segja, einn hlutur sem þú ættir virkilega að borga eftirtekt til eru athugasemdir. Athugasemdirnar eru oft gagnlegar en raunverulegur skora við gefum þér. Og athugasemdir eru reyndar þar sem ég eyði miklum tíma mínum þegar ég er flokkunina. Þannig að ég vildi þakka það ef þú lest þá. Og þeir eru í raun hvernig þú ert að fara að læra meira um hönnun og stíl og hluti sem eru a aðeins minna skera og þurr. Svo í raun borga eftirtekt þeim athugasemdum. Ef þú hefur spurningar um þá, eða spurningum um stig, vinsamlegast koma að tala við mig annaðhvort áður kafla, Ég mun sennilega vera hangandi út í móttöku, eða eftirá. Ef þú vilt að skipuleggja Einn-á-mann fundum um hvernig þú getur bætt síðar vandamál setur, bara láta mig vita. Og þá bara par ábendingar fyrir ykkur. Þá kom einn af stærstu hlutum Ég ítreka alltaf lið mitt þegar þú ert að læra hvernig á að kóða er að skrifa það út á pappír fyrst. Ef þú ert með leik áætlun fyrir hvar númerið þitt þarf að fara og hvað það þarf að gera og það er brotinn niður í litla bita af sauðakóða númer sem þú hefur skrifað út, þú ert að fara að vera minna líklegt að villur eða búa til ef lykkju sem ekki hafa annað. Ef þú veist hvar þú ert fara í heild, þú ert ólíklegri til að gera þetta örlítið mistök sem stundum taka þig klukkustundir að festa, því að þú ert eins og, hvar er ég að missa þennan krappi? Á að huga, vinsamlegast notaðu Style50. Sérstaklega þegar þú ert fara að skrifstofutíma, Ef númerið þitt er allt kveikt á til annarri hliðinni, það er stefna námskeið að við getum sagt, að laga það þannig að það lítur út eins og Style50 segir það ætti, og þá munum við hjálpa þér. Svo það mun gera líf þitt auðveldara. Það verður að gera líf okkar auðveldara. Allir er hamingjusamari. Fái betri einkunn. Er það ekki það sem við viljum öll? Svo skrifa það út á pappír áður þú alltaf snerta tölvuna. Tala það út á háu stigi, og ganga úr skugga um að þú veist hvar þú ert að fara. Og ef þú ert í vafa, setjast niður með einhverjum og ganga þá í gegnum skref fyrir skref hvað númerið þitt er að gera. Og níu sinnum af 10, munt þú vera eins, ó, ég gleymdi að ef ástand eða ég gleymdi semikommu hér eða Ég ætla að uppfæra þessa breytu rangt. Þannig að þeir eru ábendingar mínar til að ná árangri. Svo síðan um helmingur af þér líta eins og þú sótt frábær kafla, Ég ætla bara að fara að mjög stuttlega farið í gegnum lykkjur, sem voru ekki á upprunalegu dagskrá. En þeir eru í raun mikilvægt. Og svo ég ætla að góður af hraða í gegnum þá áður en við komum inn í raunverulegum kafla okkar. Áður en ég að gera það, það eru allir questions-- logistically, persónulega, er það eitthvað annað sem þú vilt að vita um mig eða um kafla eða flokki almennt? Allt gott? OK, flott. Lovely. Svo loops-- þú krakkar ætti allt viðurkenna þessar stykki frá grunni. Svo lykkjur eru í rauninni bara leið fyrir okkur til að gera eitthvað sumir tala af sinnum, sumir endurtaka aðgerðir út frá sumum skilyrt. Þannig að við höfum þrjá mismunandi gerðir. Við höfum fyrir lykkju, á meðan, og gera-stund. Svo fyrir loops-- við höfum bara mjög almennt skipulag hér A fyrir lykkju. Og þetta er frábært fyrir þegar þú veist hvernig oft eitthvað þarf að framkvæma. Þegar við tölum um aðrar lykkjur, þú munt sjá hvers vegna það er mikilvægt greinarmun. En fyrir lykkjur eru fyrir eitthvað mengi. Þú veist að þú getur annað hvort að reikna út fjölda eða þú veist hversu oft þú vil þetta endurtekin í upphafi. Þannig að ef þú sérð hér, við hafa bara almenna konar af beinagrind ramma fyrir for lykkju hér. Svo, þetta er fyrir-frumstilling þar breytur eru forsniðin. Með Mario, ég er viss um að þú krakkar gerði eitthvað eins int i er 0. Það er þar sem myndi gerast í bláu. Þú hefur ástand þitt, sem er það sem er athugað í hvert skipti. Ef þetta ástand er satt, þá restin af kóða framkvæmd. Þá munt hlaupa again-- og spyrja. Og þá höfum við uppfærslu, þar þú ert að uppfæra breytu þínum. Svo aftur, með eins og Mario, ég er viss um þú krakkar gerði eitthvað eins og ég plús plús. Svo í hvert skipti sem lykkju hljóp, ég fékk uppfærð svo að þegar við vorum að skoða það gegn sumir ástand, það var að breytast. Vegna þess að ef þú bara hafa fasta breytu, ef það framkvæmir í fyrsta skipti, það er bara að fara að framkvæma óendanlega. Svo þú þarft að ganga úr skugga um að þú uppfæra breytu almennilega. Og við höfum líka bara myndræn þar. Allir góður? Fyrir lykkjur. Ætti að hafa séð þetta í pset þinni. Cool. Svo er hér bara auðvelt dæmi. Prenta þetta er CS50! 10 sinnum. Og svo við höfum frumstilling okkar, eins og við sjáum það, með int i jafngildir 0, að ég er minna en 10, og ég auk Plus. Og það mun prenta að 10 sinnum. Svo á meðan loops-- meðan lykkjur eru mikill þegar þú ert ekki endilega þarft að vita hversu oft það er fara að uppfæra í upphafi. Þú hefur bara nokkrar ástand sem er köflóttur. Og þetta gæti verið eitthvað eins while-- skulum taka dæmi af pset þinni. Ef Mario, þú reynir að inntak neikvæð tala. Hægri? Þú áttu að aftur hvetja notandann þinn. Svo er hægt að segja, vel, ef notandinn inntak eitthvað minna en núll, RE-fljótu þeim. Og ég er viss um að gæti hafa verið eitthvað sem sum ykkar notuð í kóðanum þínum. Svo það er einfaldur hlutur. Þú hefur á meðan, sum skilyrt sem merkt hvert skipti kóðinn fer að framkvæma. Ef það metur að satt, hlaupa við það. Annars gerum við ekki. Og hvað er í raun important-- eitthvað sem ég held að Davíð talaði um í lecture-- eru axlabönd. Whatever er innan axlabönd er það sem er keyrð. Ef gleymist þeim axlabönd, það er bara að fara að vera á línu beint eftir meðan var keyrð. Svo ef þú ert með þrjár hlutir sem eiga að gerast þegar þetta ástand metur að satt, og þú þarft ekki þeim axlabönd, aðeins The fyrstur hlutur er að fara að gerast. Svo vera mjög meðvitaðir um þar sem þú setur axlabönd þína. Ef þú standa með Style50, þetta mun örugglega hjálpa þér. Cool. Þannig að þetta er niðurtalning frá 10 til núll. Og eins og þú sérð hér, frumstilla við sumir gegn utan af því. Eitt sem er öðruvísi er við erum ekki að virkja breytu okkar innan meðan lykkja okkar. Það er frumstilla utan hennar. Við erum einfaldlega bara að setja ástand í fyrir stund okkar. Svo í þessu tilfelli, er það á meðan telja er stærra en núll. Og við að prenta út hvað fjöldi okkar er, og þá erum við lækka breytu okkar. Og það er einnig annar hlutur að taka eftir. Uppfærslu okkar gerist ekki innan að fyrsti hluti af while lykkju. Það mun í raun gerast innan Spelkurnar, líkami texta. Svo gera-en loops-- gera-en lykkjur eru frábær fyrir notanda löggilding. Svo sumir af þú might hafa einnig notað þetta í pset þinni. Þú getur sagt, gera, eins og, spyrja notanda fyrir hjálpina. Og þá á meðan, eins og er inntak er minna en sumir tala. Svo fyrir ótvíræð tilfelli með Mario, það væri gera printf, slá heiltölu og þá jafnt einhverja heiltölu getint. Og þá verður í raun framkvæma kóðann fyrst. Þú munt í raun hafa einhvers konar heiltala. Og þá má segja, á meðan sem heiltala er minna en núll. Svo hvað það er að fara að gera er að það er fara að framkvæma að minnsta kosti einu sinni. Það er að fara að athuga ástand. Ef ástand er satt, það mun keyra aftur. Svo gera-en lykkjur eru frábært fyrir notanda löggilding, vegna þess að þú veist kóðann er að fara að framkvæma amk einu sinni, en við meðan lykkjur, þú ert ekki tryggt að það er fara að framkvæma einu sinni. Það er að fara að athuga ástand fyrst og ákveðið svo að framkvæma það, meðan gera-en mun framkvæma kóðann fyrst og þá að athuga hvort þú þarft að endurtaka það. Hefur þessi greinarmun skynsamleg fyrir alla? OK. Cool. Þannig að í þessu tilfelli, þetta er góður af því sem ég var að tala um, Þetta aftur hvetja þar til þú fá jákvæð tala. Þannig að við vitum að printf "Slá jákvæð tala" og í raun að biðja um að inntak mun gerast að minnsta kosti einu sinni. Ef notandinn er illt og heldur slá neikvæð tala, sem veit hversu oft það verður að framkvæma. En þetta númer er tryggð til að framkvæma að minnsta kosti einu sinni. Og það er hvers vegna það er frábært til að staðfesta inntak. Og þú munt nota það töluvert. Allt í lagi, einhverjar spurningar hingað? Við erum öll góð? Er ég að tala of hratt? Við erum góður? OK. Awesome Þannig að við erum að fara að fara á undan og tala um fylki. Cool. Svo fylki eru í grundvallaratriðum bara gögn uppbygging að leyfa okkur að geyma hlutir af sömu gerð. Svo ef þú hefur einhvern tíma fjölda, það er annaðhvort bara að fara að hafa ints eða það er bara að fara að hafa fljóta eða það er bara að fara að hafa Sérstafir. Þú ert ekki að fara að hafa int með char með fljóta með a tvöfaldur. Eitt. Fylki eru bara ein stærð, eða þeir eru bara ein tegund. Svo hér höfum við fjölbreytta stærð þrír við þrjár heiltölur í það. Þeir gætu fljóta, en við erum fara að segja ints þeir eru. Svo er eitt að átta sig á að fylki eru sett stærð þegar þú frumstilla þá, og þeir eru ekki easily-- þar sem þú allir eru minna þægilegt, þú ættir bara að hugsa um þá eins og ekki er hægt að auka við í stærð. Þó stór þú sett fram array þinn í upphafi, það er stærð það er að fara að vera, vegna þess að fylki eru stöðugt blokkir af minni. Og þegar þú krakkar fá í svolítið meira um hvernig minni er í raun sett fram á diskur og í vörðu og stafla, það mun gera a lítill fleiri vit. En þú gætir bara hugsað eins, það er bara röð af rýmum á diskinn þinn. Og þú getur ekki ábyrgst að það er fara að vera laust pláss eftir það. Þú gætir frumstilla fylki þriggja og þá kannski þú frumstilla annað array af fimm síðar, og það er rétt eftir það. Svo ef þú varst að fara framhjá blettur þrír á sínu fyrsta fylking, þú vildi vera að skrifa yfir eitthvað annað. Svo fylki are-- fyrir ykkur, bara hugsa um þau sem fastur stærð. Svo búa til array-- þú ert að fara að þurfa að gera þetta töluvert. Svo á sama hátt sem við höfum almenna byggingu fyrir okkar fyrir lykkjur, Við hafa a ágætur almennt uppbygging fyrir fylking okkar. Vegna þess að þeir eru af einni tegund, allir staka í fylki eru af einni tegund, þú þarft að frumstilla hvað sú tegund er. Svo, eins og þú sérð hér, höfum við fallegt lítið krappi gögn tegund. Þannig að ef við erum að búa til int array, sem mun vera Int. Ef við erum að búa til char array, það verður bleikju. Ef við erum að búa til band array, það verður band. Og þá nafn array þinn, hvað sem þú vilt það til að vera. Svo er það kannski próf skora eða kannski það er nemendum eða kannski er það sælgæti. Hvað sem þú ákveður að nafn þitt array, það er það sem það verður. Og þá í sviga, þú munt hafa stærð sem þú vilt. Svo erum við að geyma 10 nemendur eða erum við að geyma 15 tegundir af nammi? Hvað ekki. Svo í dæmi okkar hér, við erum að búa til array stærð þremur, sem Þú krakkar sjá hérna hægra megin. Og þegar við frumstilla fyrst það er allt stillt á núll. Svo það er bara hugsun af eins tóman ákveða. Við höfum öll þessi rými, við höfum öll þessir kassar sem við gætum sett gögn okkar inn, en þeir eru bara auður um sinn. Þannig að ef við viljum í raun og veru úthluta þeim þessi gildi, við gerum svo sem rétt undir hér sýnir. Svo þú ert hvað heiti þitt array er og þá hvaða vísitölu sem þú vilt. Svo Vísitalan vísar bara til, eins og, hvað rifa við erum að horfa á. Og mikilvægur hlutur til taka eftir er að fylki eru núll verðtryggð. Þannig að ef við viljum fyrsta pláss í minni af array okkar, það er að fara að vera núll. Ef við viljum að annað, það verður einn. Ef við viljum að þriðja, það verður tvö. Svo framvegis og svo framvegis. Sem er líka ástæðan, á hefðbundinn hátt, þegar við gerum fyrir loops-- ég viss Þú krakkar voru að spá, hvers vegna byrjum við á 0 á móti 1? Og það er vegna þess að þegar við umskipti í notkun fylkja, kort það rétt. Þannig að ef þú vilt að iterate í fylkinu, það gerir mikið meira vit í að gera ég er 0, vegna þess að við vita að sllkt til fyrsta blettur í minni. Allir góður við það? Cool. Og þá botninn hérna er bara á önnur leið til að frumstilla fylki. Þú hefur enn þinn gögn gerð og nafn, en í stað þess að í raun og veru setja stærð í það, þú getur bara gert tóm sviga. Og þá með þessum hrokkið axlabönd neðst, þú getur bara inntak gögnum sem þú vilt aðskilin með kommum. Og það mun sjálfkrafa segja, OK, ég sé að þú ert með þrjár hlutir í þessum axlabönd. Þannig að ég veit að ég þarf að úthluta þremur blokkir af minni og þá geyma þá. Svo fyrsta útgáfa sem þú getur notað Ef þú ert að spyrja þinn notandi til inntak gildi svo að þú getur iterate gegnum array og ask-- fá int að inntak þeim. Ef þú veist gildin fyrirfram, það gerir mikið meira vit til að nota annað hátt. En í flestum tilfellum, þú might ekki vita hvað sem gildin eru að fara til vera. Cool. Allar aðrar spurningar? Alright. Svo aðgang elements-- svo einn af the mikill hlutur óður í fylki er að þeir eru af handahófi aðgangur, sem þýðir að þú þarft ekki að leita í gegnum alla blokk. Ef þú veist að þú vilja það er í blokk tvö, þú getur bara sagt, gefa mér að loka tvö. Og það er hvers vegna þessir vísitölur eru svo mikilvæg, og það er hvernig við aðgang raun þá. Svo í þessu tilfelli, eins og við sáum áður þegar við vorum Úthlutun gildi í einu áður fengum við nafnið og Vísitala við vildum að fá aðgang, ekki satt? Svo á sama hátt, það er allt sem við gera til raunverulega draga að gögn út. Við höfum nafn og við hafa vísitölu sem við viljum. Þannig að í þessu tilfelli, for lykkjunnar niður hér neðst, einhver vita hvað það er að gera, hvað það myndi prenta út? Mmhmm? Einmitt. Svo já, það er bara iterating gegnum. Ég er jafnt og zero-- við getum gengið gegnum kóðann bara fljótt. Ég er jafnt og núll, sem i er minna en þrír á þessum tímapunkti, ekki satt? Svo stöðva það út. Og við segjum, OK, prenta f hvað er í hitastigi i. Ég er núll hérna þegar við fyrst kunnugt, svo við förum að þessari fyrstu blettur, og við segjum, OK, 65 er tala við viljum að prenta út. Svo það verður að prenta út 65 og þá gera nýja línu. ég mun uppfæra, svo það prentar 87. Það endurnýja aftur og það mun prenta 30. Allir kaldur? Ógnvekjandi. Allt í lagi. Svo er hér góður einn sem ég var að segja hvernig þú getur haldið utan um skora einhvers og af hverju þú myndir nota fyrsta leið að virkja það Í stað þess að öðru leið. Og þetta fer bara í gegnum. Og taka eftir að við höfum flokk stærð 30. Og við erum að virkja þessa array af ints sem er stærð 30. Og þá erum við að iterating gegnum og við erum spyrja notanda að inntak skorar fyrir hvert þessara og þá framselja það til sérstakur staður í minni einhvers staðar í þeirri fylking. Cool? Er að gera skilningarvit til alla? Mmhmm? Svo hashtag define bekkjarstærð 30 er Preprocessor tilskipun, sem bara þýðir það gets-- það hefur að gera eins og samantekt aðferð. Þú getur hugsað um það sem alþjóðlegt breytu. Leiðin sem við gerum það er typically-- það gerir númerið þitt til að auðveldara breyst. Svo skulum segja að stærð flokka okkar skyndilega fer 30-15, ef ég hefði ekki skilgreint það með þessum hætti, myndi ég þarft að fara í gegnum mína öllu kerfinu og breyta dæmi 30 til 15. En með þetta, ég fá að breyta einum blettur, og allt annað breytist. Ef þú vilt alltaf að gera tæti skilgreina í máli þar sem þú ert að halda utan um nokkur tiltekinn fjölda skora fyrir flokk eða þú ert að nota fjölda sem verður notuð, eins og, Allan mjög langan program, það er betra að skilgreina að í upphafi þannig að ef sem það breytist, þú færð að breyta eitt blettur í stað 100. Já? Nemandi: Milli gera það og bara lýsa [inaudible] yfir efst. ALLISON BUCHHOLTZ-AU: Svo það hefur að gera með efficient-- það er góður af utan gildissviðs hvað við getum ná í þessum kafla. Það hefur að gera meira með skilvirkni og hvernig hlutirnir í raun vinna í frágang ferli. Ef þú vilt virkilega vita um það, ég er fús til að senda þér tölvupóst með auðlindir um það. Kjötkássa skilgreina tilhneigingu til að vera valinn fyrir hlutum. Og eins og þú kóðann meira, þú konar læra blæbrigði um þegar þú ættir að nota Global móti hökkun skilgreina. En um sinn, þú í raun ekki hafa að hafa áhyggjur óður í það er að Stutta svarið. Allir góður við það? Og líka, ef þú vilt að notast við kjötkássa skilgreina, það er mjög mikilvægt að taka eftir að nafnið ætti að vera í öllum húfur. Við erum ekki bara að gera CLASS SIZE að vera dramatísk. Það ætti í raun að vera í öllum húfur. Cool. Nokkuð annað þarna? Við erum góður? Lovely. Velkomnir. OK, svo ég vil að þú krakkar að kíkja á þetta og sjá hvort þú getur fundið galla. Ég skal gefa þér vísbendingu. Það er einhvers staðar í að fyrir-lykkju. Mmhmm? Nemandi: ætti að vera minna en eða jafnt og 2. ALLISON: Svo það gæti verið minna en eða jafnt og 2, eða það gæti verið minna en 3. Og hvað er rökstuðningur fyrir því? Student: The [inaudible], 0, 1, 2. ALLISON: Einmitt. Svo í fjölbreytta stærð n, við aðeins hafa vísitala N mínus 1. Cool. Og þá getum við fengið mjög brjálaður og fá multi-víddar fylki. Eitt af þeim vandamálum þegar ég tók það í minn ára þarf multi-víddar fylki, og ég held að ein af þeim gæti þurft það á þessu ári, svo að vera þægilegt. Hula höfðinu í kringum hana núna. Það mun koma aftur til ásækja þú, en á köldum hætti. Svo þú getur í raun bara að hugsa af multi-víddar fylki sem fylki fylki. Svo þú getur konar hugsa um þessum efstu róa sem fyrsta klumpur af minni. Og þetta er annað klumpur af minni, og síðasta röðin er þriðja klumpur af minni. Og innan það, það er óákveðinn greinir í ensku fylking. En auðvitað, það er auðveldara að sýna svona. Svo þú frumstilla það á sama hátt. Þetta er eðli Stjórn þrjú með þremur. Svo þú ert með þrjár raðir og þrjá dálka. Við erum fulltrúar það með þessum hætti. Og þú myndir sjá það á sama hátt, dálkur fyrir röð. Og svo 1,1 eins og við sjáum hér. Við úthluta núll, núll þarna. 2,0 og 0,2. Svo þú myndir bara opna them-- ef einhver er alltaf gert línulega algebru, á sama hátt og þú aðgang stak í a matrice, er það sama hugmynd hér. Svo er hægt að tengja það aftur til stærðfræði. Þú þarft ekki að hafa áhyggjur of mikið um þetta núna. Það er gott að hafa áhrif, að vita að þú getur gert það. Þú getur búið til nokkrar brjálaður number-- þú getur búa brjálaður fylki er allt sem ég ætla að segja. [Inaudible] Það fær svolítið brjálaður, en það er mjög flott. Ógnvekjandi. Og þá, þannig að við höfum dæmi um hér. Það reiknar streng lengd. Svo hversu margir vissu að strengirnir sem þú ert að nota eru bara fylki af stöfum? OK, já. Svo þú krakkar getur held að þú ert ekki Notað fylki áður, en hvenær þú notar getstring í CSView bókasafn, þú ert reyndar bara að biðja um fylki af stöfum. Og við erum að sjá um alla að í bak-endir fyrir þig. En þú hefur verið að nota fylki síðan þú byrjaðir. Þú bara vissi það ekki enn. Og þegar þú ert með staf array eða fylki sem er geyma band, síðasta sem er alltaf það sem er kallað null Terminator, sem er þetta hérna. Og það er í lok hvert orð sem þú ert að geyma. Þannig að ef við viljum reikna út lengd band, getum við sagt, Jæja, þú veist, efni þessa blokk er ekki jafnt null Terminator okkar. Það þýðir að það er einhver eðli þar sem við í raun sama um það er hluti af orðinu. Þú eykur lengd þína. Og svo þegar við komum í raun til enda orðsins mun það umsvifalaust og það mun skila lengd okkar fyrir okkur. Mmhmm? Nemandi: Tekur pláss telja sem núll Terminator? ALLISON: Svo er pláss ekki null Terminator. Svo ef þú ert multiple-- pláss er í raun sérstakur ASCII gildi. Nemandi: Hvað er upphrópunarmerki jafnir aftur? ALLISON: Svo þetta er það sem þú átt við. Ef þú heyrir alltaf mig í skrifstofutíma, Ég kalla það alltaf, eins og, Bang jafngildir. Svo Bang ekki. Svo er þetta ekki jafnt. Svo ef þú ert að reyna að sjá hvort eitthvað er rangt, þú veist alltaf gera, Bang hvað breytan er, og ef það er ósatt, það metur að satt og þú getur gert flott efni með það. Meira um það síðar. Cool. Allt gott þarna? Ógnvekjandi. Svo nú er kominn tími þinn krakkar til að vinna, þar sem ég hef verið að tala. Svo ég vil að þú bara að búa til array með heiltölunum einn, tveir, og þrír, og þá hafa þá prentuð út. Þú þarft ekki að gera, eins og, helstu, bla, bla, bla, hvað sem er. Ég vil bara að þú frumstilla array og þá skapa a for lykkju að prenta þær out-- eða meðan lykkja, komið að þér. Ég ætla bara að gefa þér nokkrar mínútur til að vinna á því. Ég ætla að hvíla röddina. Ef þú hefur einhverjar spurningar, ég er hamingjusöm að koma í kring og tala við ykkur. Feel frjáls til að tala við hvert annað. Fá meiri sælgæti. Í raun, ég bara ganga um með sælgæti. Hvernig er það? Viltu einhver? Einhver annar í þessu herbergi vilja nammi? Þú getur líka tekið fleiri en einn, krakkar. Taktu handfylli ef þú vilt. Maí eins og heilbrigður. Allir aðrir gott? OK. Einnig, ég er að fara að búa til nafnlaus Google Form, og þú krakkar geta bara leggja endurgjöf eftir hverja kafla ef það er eitthvað sem þú vilt bæta við eða eitthvað sem þú vilt gera. Ef ég er aðeins of hvetjandi fyrir þig, get ég tón það niður. Ég skapa það og senda það út til ykkar eftir á. Allt í lagi. Svo skulum byrja smátt. Hvernig myndum við frumstilla array okkar? Hvað er tegund af array okkar? Int, ekki satt? OK, svo hvað viltu að hringja array þinn? Int array, kaldur. Allt í lagi, þannig að við höfum int int array jafnt, og hvað eigum við eftir það? Nemandi: [inaudible] sviga. ALLISON: axlabönd. Og þá inni í axlabönd? Einn komma tveir komma þrír. Cool. Svo er það allt í lagi. Svo nú höfum við okkar fyrir lykkju. Svo í fyrsta hluta af okkar for lykkju, hvað höfum við? Námsmaður: i er 0? ALLISON: Svo int i er 0, og þá er það ástand okkar? Hvað er ég að fara að vera minna en? Minna en þrír, og hvernig við gerum við uppfæra i? ég auk plús, endurnýja það með öðru. Og svo við erum að fara að hafa sumir printf af tölunnar, og hvað er það síðasta hluti sem er í raun fara að segja hvað við ættum að prenta? Það myndi vera nafn af array, sem er INT array, ekki satt? Og hvað er í sviga int array? i. [? Svo ég?] Kallaði minn dæmi, en þar sem þú ferð. Ekki svo slæmt. Allir góður? Cool. Þannig að við erum búin með fylki. Congrats. Þú tókst að kunnugt gegnum allt the-- já? Nemandi: [inaudible] ALLISON: Já. Nemandi: Ég er með spurningu. Ert þú ímyndaður til að draga Spelkurnar? ALLISON: Svo axlabönd ætti að stilla upp með for lykkju, og þá allt Inni í axlabönd skal inndregin. Nemandi: OK, ætti fyrir lykkja vera inndregin? ALLISON: The fyrir lykkja er ekki þarf að inndregin á þessum tímapunkti. Ef þú varst í helstu, ef vér reyndar hafði meginhlutverki hér, væri inndregin helstu. En í þessu tilfelli, það er fínt. Já, spurning. Nemandi: Ert þú þarft að hafa The sviga eftir td? ALLISON: Já, ef þú ert Frumstilli það þannig. Svo man, þetta er annað leið að virkja fjölda hvar við höfum axlabönd og þá raunverulegt okkar gögn aðskilin með kommum innan. Nemandi: Ég hélt að það væru sviga fyrir því dæmi. ALLISON: Nei, þeir eru axlabönd. Þeir eru axlabönd. Ef þú ert að Frumstilli það að önnur leið, það axlabönd. Ef við vorum að segja, int example-- ef við vildum bara tóman array fyrir ints, það væri INT dæmi sviga þrjú. The sviga tákna stærð. Þegar þú hefur axlabönd, það er í raun gögn þú ert að setja inn í það á þennan hátt. Við getum fletta aftur mjög hratt. Svo í þessu einn, þetta er bara okkar Upphafleg array, frumstilling. Og hér erum við ein framselja blettum þeim, svo stendur þetta vísitölu okkar array, sem er ástæða þess að við höfum sviga. En hér, ef þú tekur eftir, höfum við vinstri sviga okkar án stærð, og við frumstilla hana með raunverulegu gögn Allt-í-einn með axlabönd. Nemandi: Svo hvers vegna eigum við ekki sviga í þessu dæmi? ALLISON: Svo, í hvaða hluta? Nemandi: Vildi ekki að við Segja, INT dæmi sviga er jafnt axlabönd [inaudible] sviga til dæmis. ALLISON: Oh, því miður. Þú ert rétt. Við höfum sviga þar. Sorry krakkar, slæmt minn. Já, þú ættir að hafa sviga eftir dæmi. Þú ert alveg rétt. Nemandi: [inaudible] ekki að gera það. ALLISON: Nei, þú þarft að hafa sviga, því annars er það ekki að fara að lýsa fylki. Nemandi: [inaudible]. Afsakið að. ALLISON: Því miður, þú þarft sviga eftir dæmi. Prentvilla. Góður fengur, gull stjörnu fyrir þig. Einnig, ef þú ert að spyrja spurningu, ef þú krakkar vildi bara segja mér nöfn, Ég myndi elska það. Ég myndi elska að vera fær um að vita allt nöfn. Ég ætla ekki að fara að kalt hringja í þig, ég reyndar vil bara að vita nöfn. Svo vinsamlegast raun segja mér nöfn. Leah: Leah. ALLISON: Leah. OK, svo functions-- ég veit í stuttu máli þeir töluðu um þetta á fyrirlestri. Svo aðgerðir eru eins konar bara eins og þessir litlu bit-stærð hlutum hvar þú fara í aðföng, eitthvað töfrum gerist, og þú færð framleiðsla. Cool. Svo þú notaðir í raun mikið af þessum nú þegar. Fá int, fá band, prenta f. Þetta eru allt aðgerðir hvar þú hringir bara þá, það er hellingur af töfrum hlutum fara á í bakgrunni að þú þarft ekki endilega að sjá, og þú færð út hvað þú vilt. Eða að minnsta kosti að fá hvað þú vona að þú vilt. Og í rauninni að benda á aðgerðir, og einn af helstu þemu CS, er að brjóta kóðann þinn í viðráðanleg stykki. Þegar þú byrjar að skrifa þessi raunverulega langur forrit, eða í grunni þegar þú hafðir Þetta glæsilega hugmynd fyrir leik, þú þarft að vera fær um að brjóta það niður, eins og, OK, hvernig byrja ég? Hvað eru svolitlar sem ég þarf? Oh, ég þarf að spyrja notandi fyrir eitthvað. Nú þarf ég að prenta eitthvað. Oh, ég þarf að reikna þetta gildi. Og að læra hvernig á að brjóta upp þinn kóðans og stór vandamál þú hafa í þessum litla bita og skapa störf er í raun einn af the stór hornsteinar CS. Svo er hægt að hugsa um fall rétt eins eins svartan kassa, töfrum svartur kassi, að þú setur hlutina í og þú færð smá framleiðsla. Og restin af the program þarf ekki að endilega vita hvað er að gerast innan þess svartur kassi. Allt það er ekki sama um er hvað fer í og ​​hvað kemur út. Cool. Svo hvers vegna aðgerðir? Organization-- eins og ég sagði, þegar þú ert að takast á við mjög stór bækistöðvar kóða, hvernig þú skipuleggja númer þitt verður miklu auðveldara ef þú notar aðgerðir. Þar sem þú munt vera fær um að vera, eins og, OK, þetta er það þessi aðgerð gerir og hér er það sem annað gerir. Og þú getur auðveldlega séð hvernig þeir passa saman. Svo brjóta það upp í öllum þessir viðráðanleg undirliði. Svo simplification-- Ég er viss um krakkar sáu þetta, eins og ég sagði, með grunni. Þú hefur þetta stóra hugmynd, og þú ert eins og, hvernig virkar allt þetta verk? En ef þú nálgast það piecemeal, þú segir, OK, hvernig get ég gera eitt Sprite fljóta yfir skjáinn? Það er svolítið auðveldara. Svo gott að nota virka gerir númerið þitt mun auðveldara að lesa. Það gerir það auðveldara að kemba sem eins þú kemst inn síðari setur vandamál þitt, þú ert að fara að virkilega langar að vera fær um að gera. Og þeir eru einnig auðveldara að hanna og framkvæma. Þú getur kóða upp lítið virka tiltölulega fljótt og ganga úr skugga um að það virkar á móti reyna að búa þetta allt langt program og þá konar fara í gegnum og sjá hvað er að vinna og hvað er ekki. Og svo reusability. Svo aðgerðir þurfa aðeins til að skrifa einu sinni, og þá er hægt að nota þá eins oft og mögulegt er. Svo er það, eins og, eco-vingjarnlegur í vissum skilningi. Ef þú hefðir það eins prenta f, þar sem þú þurfti að skrifa út galdur sem fer á bak prenta f hvert einasta skipti þú vildir að prenta eitthvað, þú væri nokkuð veik og þreytt á því í lok. Eitt af því sem þú munt læra seinna í CS flokkum, eða einn af þeim bestu stykki af ráð ég fæ er, ef þú ert að afrita og líma kóða, ætti það líklega að vera fall. Ef þú hefur nákvæmlega sama línur allt um númerið þitt, ef þú notaðir þá út, númerið þitt myndi sennilega vera, eins, fimm sinnum styttri og vera miklu meira auðvelt að lesa. Og í stað þess að reyna að leysa Öll þessi mismunandi stöðum þar sem hlutirnir gæti farið úrskeiðis, hefur þú eina aðgerð að þú færð að leysa. Og ég lofa, mikið af þessu kann að virðast eins konar ágrip núna, en eins og þú færð í seinna og síðar vandamál setur, það mun gera a einhver fjöldi meira vit og í raun verið ekið heim. Eru einhverjar spurningar um aðgerðir svo langt? Hvers vegna við erum að nota þá? Ég veit að við höfum ekki fengið í snotur sendinn enn. Svo skilgreina function-- bara eins fylki, þurfum við einhverskonar of-- þetta er bara almenn framleiðsla. Þannig að þetta er fall sem er bara að fara að teningur sumir inntak. Og á næstu síðu, reyndar höfum við Allir þessir ógnvekjandi litlu hlutina hér. Svo geta allir lesið að af forvitni? Ég veit að fjólublár og svartur gæti verið svolítið erfitt. En stór hluti að know-- svo the fyrstur einn hérna er gerð aftur okkar. Þannig að þetta er að tala um framleiðslu á þessum eiginleika þegar, í þessu tilfelli, við setja í sumum tala, hvað við erum fá er að tala cubed. Svo það ætti að vera int í þessu tilfelli. Kannski það væri tvöfaldur eða eitthvað annað seinna, en í þessu tilfelli, það er int. Með c, þú þarft alltaf að koma aftur gerð. Það verður int. Það verður að vera fljóta. Það verður að vera tvöfaldur. En þú verður að tilgreina hvaða þessi aðgerð er að fara að fara aftur. Annars mun það æpa á þú, og það mun ekki taka saman. Þú munt vera dapur, og ég ætla að vera dapur. Og það er bara ekki gott. OK. Og þá höfum við nafn virka okkar. Og eins og þú sérð hér, með c það er þetta mjög í samræmi hugmyndafræði. Hvað er tegund, hvað er nafnið, og þá sumir annar hlutur í lok. Þannig að við höfum gerð aftur okkar, nafn virka okkar, og þá við höfum haus okkar með breytu listanum okkar. Svo breytu listi er, hvað er þessi aðgerð að fara að taka í? A breytu listi er einfaldlega samheiti fyrir, hvað eru inntak okkar? Og á sama hátt að Við þurfa að skilgreina hlutverk okkar og gefa það til baka skrifar, hvert inntak okkar þarf að hafa gerð í tengslum við það. Þannig að við vitum hvað virka okkar geta í raun vinna með. Svo í þessu tilfelli, höfum við sumir int inntak. Svo aftur, það verður gerð og hvað þú ert að kalla það. Og þá, eins og þú sérð hér höfum við líkama okkar. Þannig að við höfum sumir int framleiðsla að er bara inntak sinnum okkar sig sinnum sjálft, sem bara teningur það. Og þá erum við aftur að framleiðsla. Svo eins og þú sérð hér, við höfum int sinnum int sinnum int svo það skilar int sem hefur verið lýst þar. Svo er allt samhangandi. Allt er hamingjusamur. Virka mun keyra. Og þetta er bara almennt hlutur. Svo alltaf hafa lokunargerð, nafn, og breytu listinn þinn. Hver hlutur í þínum breytu lista, eða inntak, þarf að hafa gerð í tengslum við það. Og þá þú ert þitt líkami hér með hvað þú vilt gera við hjálpina. Og þá vitanlega þér langar til að fara aftur eitthvað. Stundum föllum bara aftur. Þeir gera í raun ekki aftur eitthvað fyrir þig að nota. En þú verður að fara aftur á einhvern hátt. Og þegar þú ert að gera eigin starfsemi þína, við getum fengið í það svolítið dýpra. Persónulega, ef þú vilt, þar er mikið af mismunandi hlutum sem þú getur gert það. Allir góður? Nokkuð á þessum lista sem þú vilt mig að fara yfir, að þú hafir ekki skilið? Allir er gott þar? Cool. Ógnvekjandi. OK, þannig að við erum að setja allt þetta saman núna. Þannig að við höfum sumir INT teningur inntak, svo þetta er heill forrit hér. Hingað til hef ég konar verið að gefa þér krakkar snifsi sem gæti vera að fara innan áætlunarinnar. Við höfum bara verið að horfa á aðgerðir. En hér er heilt program. Svo hversu margir af þú manst orð frumgerð frá fyrirlestri? Cool. Við höfum fengið einn. Hvað er nafn þitt? Steph: Steph. ALLISON: Steph? OK, ógnvekjandi. Svo man þú hvað frumgerð er? Nemandi: Þú segir [inaudible] áður en þú takast raunverulega á við það. ALLISON: Manstu hvers vegna? Nemandi: Nei ALLISON: OK. Gold Star. Svo já, frumgerð við höfum fyrirfram, því annars, þýðanda okkar er að fara að æpa á okkur. Það er að fara að segja, OK, hvað er þetta teningur virka? Eins, hefur þú bókstaflega sagði mér ekkert um þetta. Það er eins og þegar þú ganga inn í kennslustofu, og einhver er eins og, það er með próf í dag. Og þú ert eins og, þú aldrei sagt mér um þetta. Ég er ekki ánægð með okkur. The frumgerð er í grundvallaratriðum eins og kennsluáætlun segjandi, líta. Heads up. Það er að fara til vera a quiz á þessum degi. Ekki Freak ekki út þegar þú færð að því. Þú ert að fara að vera í lagi. Svo þýðir er allt frumgerð segja helstu, ég ætla að nota þessa aðgerð. Ég lofa að ég ætla að skilgreina það síðar. Ekki Freak ekki út á mig. Bara safna saman og gera það sem ég segi þér til. Þannig að við höfum frumgerð þar bara til að gera þýðanda okkar hamingjusamur. Og það er í rauninni loforð um að þú hefur skilgreint þessi aðgerð síðar og að þú sért ekki bara að hringja þetta handahófi hlutur sem það veit ekki hvað þú ert fara að vera að gera. Svo í þessu tilfelli, höfum við helstu hér. Við frumstilla einhverja heiltölu x. Það er tvö. Við erum að fara að prenta út hvað x er. Við erum að fara að teningur x. Eins og þú sérð, höfum við okkar virka yfirlýsing niður hér að við talaði um áður. Það verður teningur X, og þá, ef við muna, teningur virka raunverulega skilar heila tölu til US, sem er geymt í X aftur þannig að við getum prentað út átta, eða teningur x núna. Er að gera skilningarvit til alla? Við erum góður? Allt í lagi. Ógnvekjandi. Allt í lagi. Hversu margir af þú krakkar muna þetta þannig að þetta er í grundvallaratriðum bara þín stafla og hrúga þitt, bara visualization hvernig minni er geymd hér. Þannig að við viljum bara að gera viss um að þú skiljir hvernig þær eru fulltrúa í minni. Ef þú taka námskeið eins CS61 og efni síðar, þú færð að læra þetta miklu meira í dýpt, og það er mjög flott. Ég mæli með mjög það. En nú, ætla ég að gefa þú breið yfirlit svo þú þarft ekki að vita snotur sendinn. Þannig að efst bara texti hluti sem inniheldur raunverulegt núll og sjálfur, tvöfaldur fyrir það. Og þetta er notað til að geyma Alþjóðlegar breytur ef þú hefur einhverjar. Eins og þú fara niður, við hafa, eins og þú sérð hér, frumstilla gögn, forsniðinn gögn, og þá hrúga. Þannig að við í raun ekki tala um hrúga núna. Við munum fá til það síðar. Fyrir nú, ég ætla bara að fara að veifa hendurnar og vera eins, þú þarft ekki að vita um þetta núna. En við munum tala svolítið hluti um stafla. Svo er stafla where-- við höfum auka aðdrátt. Þetta er í raun hvernig program Við horfði bara á sér stað í minni. Svo það sem gerist er, á hverjum skipti sem við köllum virka, við fáum það sem er kallað stafla ramma, sem er einn af þessum. Breytur Svo helstu er. Svo þeir eru hlutir að við fara í Main. Svo þeir eru hérna neðst, því það er það fyrsta sem við köllum. Og þá erum við að fá að helstu s heimamenn, og þegar við segjum það, átt við staðbundnar breytur sem eru geymd í helstu. Svo heimamenn hér væri, eins og, x er jafnt tveimur í þessu tilfelli. Því það er bundin við aðal. Þurfa allir muna umfang, fara yfir að í fyrirlestri? OK. Svo, bara breyturnar sem eru frumstilla innan helstu. Svo er það hvers vegna við höfum helstu [? söngur. ?] Og þá innan helstu, kalla okkur teningur. Hægri? Svo við fáum annan ramma með breytum teningi er. Svo í þessu tilfelli, teningur er breytur eru nú X sem við samþykkt í, tveir sem voru samþykkt í. Og þá sem eru heimamenn CUBE er, þar sem raunveruleg cubing gerist. Og þá skilar það. Svo er það sem gerist sem teningur raun gerir hvað það er að gera, það skilar. Þegar það skilar, þetta ramma fer, og skilaði niður helstu. Og þá innan helstu, við geta í raun prenta það. Svo þegar þú ert að skila eitthvað, þegar virka þinn skilar, það er eins og liggur á þeim gildum að meðfylgjandi ramma það og þá fara. Og hlutirnir þurfa að framkvæma í því skyni. Og þegar þú færð að stærri verkefnum, við getum gert kælir og flóknari skýringarmyndir. En nú er þetta bara almenn yfirlit svo þú hefur góður af skilning á því hvað gerist þegar þú ert að hringja í aðgerð og hvernig það raunverulega lítur í minni. Cool? Allir góður? Ógnvekjandi. Svo er þetta eina sem er bara að reyna að skipta á hlutum. Eins og við sjáum hér, höfum við virka frumgerð okkar þannig að þýðandi okkar ekki æpa á okkur. Við höfum sumir helstu, og við langar að skipta x og y. Þeir hafa ekki gert þetta demo í fyrirlestri enn hafa þeir? Þeir hafa ekki? OK. Þannig að við erum að fara að fara yfir þessu mjög stuttlega. Þú munt komast inn í þetta dæmi fleiri í dýpt, held ég, í þessari viku. Og svo í næstu viku sem við getum raunverulega kafa í hvers vegna þetta virkar ekki. Þannig að við höfum þetta tómarúm Function here-- skipti. Svo ógilt þýðir bara að ekkert er skilað. Og við höfum skipti int a og int b. Og höfum við nokkur tímabundin breyta sem er a. a fær úthlutað til B og þá b fær úthlutað til afleysingamanneskja þannig að A og B gildi eru nú kveikt. En samsæri snúa, þetta virkar ekki. Og hluti af því hefur í raun að gera með þá staðreynd að og b hér, þær sem fá liðið í hér, eru í raun afrit af x og y. Svo þegar aðgerðin raun skilar, það skiptir afrit en ekki í raun x og y er. Svo ein leið til að hugsa um það er that-- láta þetta eru skipti. OK? Svo í helstu, höfum við x og y forsniðin. En þegar við förum í raun upp þessum ramma með skiptasamninga, við erum að hleypa gildi yfir við það, og þeir eru forsniðin. Og þeir lifa bara alltaf hérna. Svo og b búa hér. Og þeir fá skipti. En þegar við aftur, eigum við ekki gera neitt með a og b. a og b fara með virka okkar. Og svo x og y vera sú sama. Þú munt fá meira inn í hvernig á að laga það og hvernig við takast í raun með það síðar. En það er bara eitt að eins konar hafa í huga. Notaðu það til framtíðar. Ekki hafa áhyggjur ef það ekki gera allt að því leyti í heiminum. Þeir eru eintök er stærsta hlutur. Ef þú ert að fara að taka neitt burtu frá þeim, þú stóðst í eintökum. Svo frumrit vera sú sama. Allir góður? Cool. Svo stjórn-lína rök. Ég er viss um að í upphafi þú krakkar allt hafði þessi miklu, eins og, int helstu tóm. Og þú ert eins og, OK cool. Ég er ekki alveg sama. Þetta er bara það sem ég hef að skrifa. En í nýjum áætlunum þínum, sérstaklega í þessu pset, og hvers vegna er það krít á jörðina? Með næstu pset þinn, þú ert að fara að sjá þetta. Int helstu, int arg c, string hring V, sviga. Svo, af því við bara lært í dag, hvað eigum við held að seinni viðfang eða að annar þáttur er hér? Það er óákveðinn greinir í ensku fylking. Hverskonar array? String array, já. Cool. Svo er það hvernig þú ert að fara að lýsa þessum núna. Hefur einhver man hvað þetta standa fyrir? Nei? Hmm? Nemandi: Arg c. ALLISON: Svo heldur arg c teljari. Það er int. Það er a tala, ekki satt? Svo hvað finnst þér að tala er af? Já. Svo er Arg c fjöldi strengi að gera upp stjórn lína. Þannig að ef við værum að do-- raun, það eru dæmi eftir þetta, svo ég mun ekki fá á undan mér. Það er a tala af strengjum sem bara gera upp stjórn línu. Svo þegar þú gerir, eins, punktur rista Mario, það er einn strengur sem gerir það upp. Í þessu stykki, þú munt í raun að vera fóðrun hlutum í stjórn lína, eins og ég er viss um að ykkur sem hafa lesið sérstakur sá. Svo í þeim tilvikum, kannski þú munt hafa tvær eða þrjár röksemdir. Það er að fara til vera a gagnlegur hlutur til að nota. Og þá arg v, eins og ég sagði, er bara band array. Svo að í raun geymir hvað þú inntak inn í the stjórn lína. Þannig að við höfum þetta. Þú hafa sumir punktur skástrik afrita INFILE OUTFILE. Svo, ef Arg c er fjöldi strengi að við erum að fara frá stjórn lína, hvað er Arg c okkar í þessu tilfelli? Three. Einmitt. Svo er það arg V. núll? Svo er það fyrsta sem við höfum geymt? Dot rista eintak, nákvæmlega. Og svo aðra væri INFILE. Þriðja væri OUTFILE. Svo hvað um Arg v þremur? Það væri null, því það er lok array okkar, ekki satt? Cool. Og hvað þá um hádegi einn? Það er góður af a bragð spurningu. Ish. Vitum við hvað það er? Það er óskilgreindur. Við höfum enga hugmynd um hvað það gæti verið. Það er allt sem er rétt eftir array í minni, og við höfum enga hugmynd hvað það er. Og það er hættulegt að snerta þá hlutir, því fyrir allt sem þú veist, það er einhver hluti af minni sem þú ætti ekki að vera að fá aðgang eða null. Og það getur gert brjálaður hluti. Það heitir yfir-flokkun bundið fylking til þín. Ekki fara út mörk þinn array, eða slæmur hlutur getur gerst. Þú kemur aftur og, eins og, lögum af eðlisfræði hafa verið eytt eða eitthvað. Cool. Er að gera skilningarvit til alla? Ekki of slæmt. Svo nú, allir er Uppáhalds hluti, pset endurskoðun. Yay! OK. Svo fyrir þá sem hafa ekki lesið pset sérstakur, þú ert að gera sumir virkilega kaldur efni með dulmál. Þú ert að fara að búa til Ceasar Dulmál og Vigenere dulmáli. Þú ættir örugglega að lesa sérstakur til að sjá hvernig þeim vinna. Og ef þú ert að hafa allir vandræði um hvað það ætti í raun að vera að gera, vinsamlegast koma að tala við mig, sendu mér tölvupóst eða texta mig. Ég er í kringum. Þannig að það eru þrjár helstu hlutir hér að við langar að tala about-- bara góður á framlengingu fyrirlestursins. Hlutir sem þú might ekki vita um, hjálpsamur vísbending og verkfæri. Þannig að við erum að fara að gera a fljótur endurskoðun ASCII, vegna þess að það er að fara að vera frábær mikilvægt fyrir dulkóðun Vigenere er. Við erum að fara að breytingu á stjórn lína inntak, sem verður mjög gagnlegt fyrir Caesar dulmáli. Og þá mátað. Cool. Svo, ASCII kort stafi til tölur. This er a mikill mynd. Þú ættir að hafa þetta bókamerki einhvers staðar. Þú vilja vilja það fyrir miðannar þinn fyrst. Ég er nokkuð viss um að allir hafi þetta Mynd á miðjum tíma blaði þeirra. Svo að læra það. Elska það. Hafðu það vel. Það verður að vera gagnlegt. Og allt það er er kóðun sem varpar stafrófsröð, tölustafir, og aðrar persónur til tölur fyrir tölvuna okkar. Vegna þess að að sjálfsögðu, í því endir, allt sem við geyma er að fara að fá breytt niður zeroes og sjálfur, þannig að við þurfum á einhvern hátt til að tákna texta og persónurnar sem við erum allir notuð til að sjá sem einhvers konar tölu. Svo eins og við sjáum hér, höfum við hástafi A, sem er rétt þar. Það er 65. Og lágstafir A er 97. Svo er hægt að reikna out-- eins og ég sagði áðan, ef þú hefðir fjölbreytta margfeldi strengir, hvað hver þeirra hafa núll Ljúka. Það væri pláss. Space hefur eigin special-- sína Ég gleymi hvar það er hér. Ah. 32 er rúm. Svo kort allt til þess. Þannig að við höfum ASCII stærðfræði. Pro tip-- í Vigenere er, þú gætir freistast að umbreyta tölur til heiltalna, en það er í raun betra æfa að vera fær um að nota stafir eins og þetta þegar þú ert í raun að notfæra þá. Svo ef þú vilt nota tölur, þú getur. En betri leið, eða leið sem við hafa tilhneigingu til eins og ykkur til að gera það, er þetta leiðin sem þú ert reyndar draga stafi. Svo ég vil ykkur á konar reikna þetta út. Af hverju ertu ekki að reyna annan hvern einn? Svo gera fyrsta einn, Þriðja einn, og fimmta einn. Vegna þess að ég vil vera viss um að við tölum um allt það sem við þurfum að tala um. Ég ætla bara að fara að segja, einn af mikilvæg atriði to-- ó bíða, þú krakkar hafa ekki séð þetta. OK svo gera fyrstu þrjár. Við skulum gera það. Þar sem við verðum að tala um mátað. Ég veit. Stærðfræði er harður. Þú getur notað reiknivél. Það er allt í lagi. Eða draga upp ASCII töflu, því þú ert líklega að fara að vilja það. Cool. Þannig að ég mun fljótlega ganga þú krakkar gegnum þessar. Svo fólk hefur ASCII borðum dregið upp? Hvað er tölustafir okkar tala fyrir lágstafir A? Nemandi: Seven. ALLISON: Svo lágstafir A er 97 og hástafi A er 65. Svo 97 mínus 65? Áhorfendur: 32? ALLISON: 62, já. Þannig að í þessu tilfelli, hvað myndi það prenta út? Það fyrsta? Ef við höfum prósent d, hvað myndi það benda? Nemandi: Ýmis. ALLISON: Við erum að prenta sig við raunverulegan fjölda. Þannig að við erum í raun að fara að prenta út 32 hér. Og ef þetta væri prósent c, 32 myndi gefa okkur pláss. Svo skilja að stafir er hægt að prenta bæði sem tölur og eins raunveruleg stafir er mjög mikilvægt, og borga athygli á raunverulegum gerðum að við erum að gera hér. Cool. Svo fyrir alla aðra og einn af þessum, hvað erum við að fara að prenta? Nemandi: A staf. ALLISON: A staf. Cool. Svo ef þú krakkar vilja til vita, þú geta unnið þetta út á eigin spýtur. Ef þú ert í vandræðum, sendu mér tölvupóst. En hitt mun prenta út lágstafir b. Þriðja einn mun prenta út hástafi B. Fjórða einn mun prenta út á hástafi C, og síðasta verður lágstafir A. Og síðasta one-- við erum í raun að fara að komast í það að brjálaður prósent merki þýðir jafnvel í nokkra skyggnur. Svo reyna þá á eigin spýtur. Ef þú átt í vandræðum, vinsamlegast koma tala við mig. Ef þú ert venjulega í Adams D sal, þú munt sennilega finna mér í kring. Svo, atoi. Hversu margir af þú hefur séð þetta virkni eða heyrt um það yfirleitt? Einhver? Cool. Svo hvað það stendur í raun fyrir er ASCII til heil tala. Svo hvað þú getur gert er með keisaranum fyrir þá sem lesa sérstakur, þú ert að fara að gera punktur skástrik Caesar eftir að þú skrifar forritið þitt, og þá þú ert að fara að inntak sumir tala sem þú vilja að umrita leyndarmál skilaboðin þín með. En, ef við muna, öll okkar aðföng eru geymdar sem strengi. Hægri? Við höfum ARG V array sem er öll gerð band. Svo ef þú reynir bara að draga að einn, það myndi held að að einn eða hvað sem tala þú notaðir er í raun eðli. Svo þú ert að fara að fá sumir brjálaður niðurstöður. Svo ef þú vilt í raun og veru að snúa þessu í heiltala að þú getur notað til að vinna orð eða skilaboðin þín, þú þarft að nota atoi. atoi breytir bara string þitt heiltala. Þannig að ef við höfum streng af 12, ef við köllum atoi 12., eða hvað sem þessi inntak er, það mun í raun aftur yður heiltala. Ekki eðli eða band 12. Sem, þegar þú byrjar að bæta við að við tölum, verður mjög mismunandi, vegna þess að band 12 er sumir brjálaður tala í ASCII, en heil tala 12 er í raun 12, sem er það sem þú vilt. Svo þú vilt að gæta þess að nota atoi. Þú ert að fara að vilja þetta í keisarans, því þú þurfa int té notandi í stjórn lína. En þegar þeir setja það í stjórn lína, það er geymt sem streng til að byrja með. Er að skynsamleg? Þú gera ekki endilega þarf þetta fyrir Vigenere. Með Vigenere, eins og ég sagði áður, þá ættir þú að reyna að nota ASCII stærðfræði sem lítur meira eins þetta, þar sem þú ert í raun og veru nota Sérstafir sem við erum gefið þér. Cool. Allir góður þarna? Ógnvekjandi. Svo modulo. Svo hvað ef þú ert að gefa þetta gríðarstór tala fyrir keisaranum? Þú hefur þessa hugmynd að Ef þú ert í Z og þú ert gefið númer tvö, sem þýðir að þú need-- Z verður önnur bréf eftir sig, ekki satt? Svo þú þarft að einhvern veginn vefja í kring, og modulo er leiðin til að gera þetta. Svo er allt það gerir það gefur þér afganginn af skiptingu Fyrsta númer í annarri. Og við höfum nokkur dæmi til gera að smá meiri steypu. En í grundvallaratriðum, þú nota modulo þegar þú vilja til að gera eitthvað hula kring. Svo ef þú vilt aðeins tölurnar frá eitt til átta, þú getur notað modulo á öðrum númer og það verður alltaf skila fjölda frá núll til átta. Svo sumir examples-- ef við höfum 55 modulo 10, það gefur bara þér afganginn af 55 deilt með 10, sem yrði 5. Og svo þrír modulo fimm, einhver giska á hvað það væri? Three. Svo ef þú ert a lítill tala áður að modulo, það getur ekki farið í jöfnum. Það er núll. Svo það skilar bara númerið sjálft. Svo átta modulo átta væri? Nemandi: Zero. ALLISON: Zero. Vegna þess að það fer í jafnt. 16 modulo 15? Áhorfendur: One. ALLISON: Cool. Og þá er þetta síðasta bara til sýna you-- þú gætir verið að spá, OK, hvað er röð aðgerða hér? Eigum við skipta fyrst? Eigum við mátað fyrst? Svo heldur modulo sama forgang sem deild eða margföldun, og vinstri tengin hennar. Svo það er á sama hátt. Þú myndir alltaf gera sviga, þá margföldun, deild, og modulo í röð frá vinstri til hægri. Svo hefbundið. Bara setja það í sama flokki sem skiptingu og margföldun. Þannig að í þessu tilfelli, við myndum hafa 1 plús 2 gefur okkur 3. Við margfalda það með 2, svo við fáum 6. Við modulo að um 2, sem gefur okkur? Nemandi: 0. ALLISON: 0. Og þá erum við að bæta við 2, svo við fá 2 í þessu síðasta tilfelli. Svo modulo-- þú ert örugglega að fara að að hugsa um leiðir til að fella að þegar þú ert að umbúðir kringum stafrófinu. Ef þú ert í Z og þú þarft að fara áfram þrjár bil að fá að C, það er að heil hugtak umbúðir í kring. Svo ég mun láta það til þú krakkar að reikna út hversu nákvæmlega þú ert að fara að nota það. En ákveðið gagnlegt tól fyrir pset þinn í þessari viku. Mér finnst virkilega þetta. Þetta er eitt af uppáhalds psets mínum. Þá eftir að þú gerir það, ef þú hefur vini, þú getur, eins, senda hvert öðru leyndarmál skilaboð og ganga úr skugga um að það virkar. Vegna þess að það verður að hallmæla það eða hvað sem er. Fullt af gaman. Og það er í lok kafla. Ég kláraði snemma. Ég hef enn 15 mínútur með þú krakkar, svo ef það er eitthvað að þú vildi eins og til að fara yfir lengra, myndi ég vera fús til að gera það. Allar aðrar spurningar um pset þinn fyrir þá sem hafa byrjað eða lesið spec. Nokkuð sem við höfum talað um á síðustu klukkustund og 15 mínútur sem þú vilt mig að eins konar endurhakka, myndi ég vera fús til að. Eða við getum kalla það kvittir, og þú getur allir fara og taka meiri nammi með þér eins og þú ferð. En ef það eru einhverjar langvarandi spurningar, vinsamlegast láttu mig vita. Þú getur einnig komið upp og tala við mig eftirá. Ég lofa að ég naga ekki. Nokkuð fleira? Allir er gott? Tilfinning allra eins þeir geta séð þessa pset? Þú ert að fara að vera fínn krakkar. Viðtalstímar eru fyrir ástæðu. Cool. Alright. Jæja, í því tilviki, þakka ykkur öll svo mikið fyrir að koma. Ég vona að sjá þig í næstu viku. Það verður að vera meira sælgæti. Það gæti verið annar kaldur hlutur. Og ég hlakka til að fá að vita allt um þín á þessu ári.