[Zenelejátszó] ALLISON Buchholtz-AU: Hey mindenki. Üdvözöljük az első hivatalos CS50 szakasz. Mint tudod, látni, hogy ez szakasz CS50-szerű, csak hogy húzza fel a napirendet ma. Szóval, ki vagyok én, biztos vagyok benne, te minden kíváncsi. Én vagyok a TF. Én nem csak egy véletlen diák aki a TF megszemélyesítése. És én megyek át ilyen van szakaszok fog folyni, elvárások vannak, források, így tovább és így tovább. Fogunk beszélni tömbök, ASCII funkciók, parancssori, és ez nem itt, hanem Azt is segít Ön milyen átgondolni a következő PSET ezen a héten. Melyik vagyok benne, hogy az összes értékelni. Szóval, először question-- ki vagyok én, mellett a túláradó TF itt. Vagyok Alison Buchholtz-Au. Ez a második év TFing CS50. Én is TF CS51 a tavaszi. Lehet, hogy újra látni ott Ha úgy dönt, hogy azt. Én is a PAF, így minden Freshmen-- és ha nem a gólya, ez a harmadik év mint tanácsadás fickó. Én nagyon jól ismerő tanácsolja, az élet és tanfolyamok CS belül és nem a CS. Én vagyok a Computer Science Concentrator. Én vagyok a rangidős a Adams House, legjobb ház. És mielőtt váltottam CS én másodéves Spring, Én valójában egy orvosbiológiai mérnök. Akartam menni Med iskolába. Azt akartam, hogy egy trauma sebész. És ez már teljesen megváltozott, mióta vettem CS50. Vettem a kurzus a másodéves tantárgy. Ez volt az első bevezetés a CS valaha. Én voltam az egyik az a 78%, akik már nulla tapasztalat jön, és teljesen megváltoztatta az életemet. És most dolgozom A Microsoft, és a kedves TF. És talán az egyik CS50 A legjobb tapasztalatok hogy már volt itt Harvard-- egyaránt figyelembe az osztály és hogy képes segíteni tanítani a diákok, mint te. Szóval nagyon izgatott vagyok hogy mind itt. Abban az esetben, ha bejött késő van, cukorka, amelyet meg kell érezni szabadon jönnek megragad, vagy küldje el valaki megragad az Ön számára. minden rendben. Nem akarom, hogy enni. A szobám elég csokoládéval, így y'all kell próbálnia, és befejezni azt. Tudom, hogy van 100 darab, de mint, 04:00 hétfőn, Azt hiszem, mindenki jönne egy kis cukrot. Tehát mindenkinek, aki hivatalosan én szakasz kellett volna ütött egy e-mailt tőlem az én telefonszámát, email address-- nyugodtan add nekem Gchat, nyugodtan add nekem a Facebook-on, és is a többiek, akkor e-mailt nekem itt. Két H. Mindenki mindig nem mint két L's vagy két C a. Két H az utolsó név. Egyébként ez fog ugrál, és Én nem megyek, hogy az e-mail. Így bátran e-mailt nekem, forduljon hozzám bármikor. Lehet, hogy nem kap vissza Ön 24 perc alatt, de ígérem, hogy újra Önnek 24 órán belül. Ha hívsz előtt fél órával A PSET esedékes, akkor is, mint a, Fogalmam sincs, mit csinálok Allison. Segíts nekem. Megyek, hogy nyugodjon le, de a végén a nap, ha hívsz előtt fél órával A PSET miatt semmi írott, Megyek, mint, nos, talán itt az ideje, hogy használja, hogy a késedelmes nap. Szóval reagálni fog az összes kéri egy nagyon időben. A telefonom általában csatolt a kezem. Én általában sok választ gyorsabb, mint 24 óra, de én csak garancia 24 órás választ. Rendben van. Akkor miért vagyunk itt? Továbbá, ha kérdésed van a bármikor, kérem tudassa velem. Én sokat beszélnek. Beszélek gyors, de kérem nyugodtan szakíts félbe. Ez ad nekem légzés szobában. Tehát szakaszok egy időben számunkra, hogy tényleg csak a merülés az egyik egy kis gyakorlati tapasztalat, hogy megy át témák már említett osztályban vagy vizsgálati anyagok ajánljuk nektek az interneten. És mi tényleg megy át néhány ilyen erőforrások egy kicsit. Szóval néhány kiegészítő rész támogatás. CS50-- az egyik dolog, ami ez az egyik kedvenc osztályok az az érzés, hogy te soha nem vagy egyedül. Van egy alkalmazott több mint 100 az emberek, akik itt, hogy segítsek. Van munkaidőben Hétfőtől csütörtökig. Tehát vannak olyan sokan, akik Szeretem az osztály éppúgy, mint én és akik tényleg itt mert itt akarok lenni. A legtöbben a diákok, és ez olyan, mint egy ötödik osztály mellett a többi a munkánkat. És ez a sok munka, de csináljuk, mert szeretjük, és igazán szeretnek tanítani és segít megosszuk izgalom ebben a témakörben, és ezt az osztályt. Ezért kérjük, hogy kihasználják. Gyere beszélgetni hozzánk. Én magányos, amikor a diákok ne beszélj nekem, ezért ha azt szeretnénk, jön velem lógni. Jó lesz. Tehát rész nyilvánvalóan az egyik legnagyobb dolog. Majd megy át a dolgokat amit tanult előadás, meg néhány rövid példát amikor már ideje, és általában a fajta kap egy ötletet dolgok ha kell gondolkodni körülbelül a probléma beállítva. Shorts-- hány ember valójában nézte a filmet a semmiből rövid? Bárki, aki ismer meg? Tehát ezek nagyon nagy. Akkor feltétlenül nézni azokat. A sok munka került beléjük. És ők csak azt jelentette, hogy harapás méretű darab, hogy csak nézni három-négy perc, és kap egy jobb megértése érdekében a koncepció. Séta throughs-- hogyan sok ember nézte a séta-átvezetéseket a korábbiak? Zamyla csodálatos, nem? Mint, Bárcsak Zamyla néha. Tehát feltétlenül használja a séta-átvezetéseket. Ő fogja bontani kis harapás méretű darab. És ha ezeket a hatalmas előírásokat a probléma készletek, ez lesz igazán fontos hogy képes legyen csak talál valahol kezdeni és a munka lassan rajta. Rendben, mi is Study50, amely az study50.harvard.edu, azt hiszem. Akkor csak a Google tanulni, és akkor jön. Ez az egyik a legjobb forrás van. Ez a PowerPoint jegyzetek és a gyakorlat a problémákat az Ön megoldásokat, hogy ténylegesen séta. Tehát, ha valaha is szeretne több gyakorlatot, több, mint mi szakaszban vagy több mint a probléma készletek, ez tényleg egy hely, azt javasoljuk, hogy menjen. Épült tavaly nyáron az én nagyon jó barátok. És ez csodálatos. Sőt, sok a diák hogy fogom használni a szakasz fog származni Study50. Szóval sok a TF használja. És végül, ahogy én a fent említett, munkaidőben. Ha gondjai vannak A házi feladat, akkor gondjai a koncepció, jönnek munkaidő. Menj a hét elején, ha tudsz. Kifelé a quad, mert ez a fajta sokkal. Senki sem szeret sétálni odakint. De az, hogy az előnyt, mert akkor te lesz, hogy ezeket a TF, [Hallható] körül van. És különösen most, Csak egy tipp, csütörtökön nagyon hideg most a Mather mert psets esedékes csütörtökönként. És tudni akarja, hogy használja a késő nap még. Tehát, ha kelljen baj fogalmak, van sok TFs akik vannak ott, hogy segítsen. Így jött ki, hogy Mather csütörtökön. Ha szeretné látni engem, Én leszek ott. Én általában csinál a saját házi feladatot, mert senki nem akar az én segítségem. Így jön hozzánk. Ismerje meg minket félúton. Szóval, hány ember vett részt előadás, vagy nézte az interneten? Hány ember ment szuper rész a múlt héten? Cool. Ez valóban szép számmal. Hányan elolvasta a spec ezen a héten, a PSET? Ó, én büszke vagyok, srácok! Több cukorkát veletek. Jó, akkor mi értünk "Találkozunk félúton," az hogy pont valójában csak lesz szuper hasznos az Ön számára ha jön a elolvasták a specifikáció a PSET. Mert mikor megy át egy áttekintés dolgot meg kell keresni ki, ez nem megy, hogy annyi értelme, ha Nem tudom, mi a probléma beállítása fog kérdezni, hogy nem. Ha nem jön az a rész, nyilván Nem lehet, hogy hasznos az Ön számára. Nem fogom venni személyesen, ha nem jön az én szakasz most, de mindenképpen be. Ha nem tudod, nézni őket az interneten. Ők ott az oka. Az enyém lesz ott. Ahogy azt veszi észre, mi feljegyzik, így lesz ott a srácok. Valamint, fog elõadások ez nyilvánvalóan ahol kapsz a indítsa el a anyag itt. Szóval biztosan megpróbálja segíteni, amennyire csak tudok, de én csak találkoztunk eddig. Meg kell, hogy milyen találkozunk félúton. Grading-- így, mindannyian aki kapott egy e-mailt nekem, te vagy a hivatalos rész. Én leszek az osztályozás psets. És én csak azt akarom mondani, egy dolog, hogy akkor tényleg figyelni a megjegyzések. A hozzászólások gyakran hasznosabbak mint a tényleges pontszám adunk. És a hozzászólások valóban ahol tölteni egy csomó időmet ha én vagyok osztályozás. Szóval Örülnék meg, ha olvasni őket. És ők valójában hogyan fogod többet a design és stílus és a dolgok, amelyek a kevesebb vágott és száraz. Szóval tényleg figyelni ezeket az észrevételeket. Ha kérdése van róluk, vagy kérdése van a pontszám, kérem, jöjjön hozzám beszélni mindkét szakasz előtt, Majd talán lógni a szálloda halljában, vagy azt követően. Ha szeretné ütemezni egy-egy találkozók, hogyan segíthet javítani később probléma készletek, csak szólj. És akkor csak egy pár tipp srácok. Tehát az egyik legnagyobb dolog, Mindig hangsúlyozni, hogy a szakasz amikor a tanulás, hogyan kell a kódot is írni a dolgokat papírra először. Ha van egy játék terv ahol a kódot kell menni és mit kell csinálni, és ez bontásban apró bit pszeudokódja kód, amit írt ki, fogsz kevésbé valószínű, hogy a szintaktikai hibákat vagy hozzon létre egy hurok, ha nincs más. Ha tudja, hol vagyunk megy az általános, te kevésbé valószínű, hogy ezek az apró hibát, hogy néha elviszi órákban kijavítani, mert te, mint ahol hagytam ezt konzol? Ezen a figyelmét, kérem használja Style50. Különösen, ha te vagy fog munkaidőben, ha a kód minden átállítva az egyik oldalon, ez persze politika hogy meg tudjuk mondani, javítani hogy úgy néz ki, mint a Style50 szerint ha kell, majd mi segítünk. Így lesz, hogy az élet könnyebb. Ez lesz a mi életünket könnyebbé. Mindenki boldogabb. Mindenki kap jobb minőségű. Nem azt, amit mindannyian szeretnénk? Így ír a dolgokat a papírt, mielőtt valaha érjen a számítógépet. Beszélni dolgok ki magas szinten, és győződjön meg róla, tudja, hová megy. És ha nem vagy biztos benne, üljön le valakivel és séta őket lépésről lépésre mi a kód kéne csinálni. És kilenc esetből 10 leszel mint, oh, elfelejtettem egy if feltétel vagy elfelejtettem pontosvessző itt vagy Én frissítésével változó rossz. Tehát ezek a tippek a sikerhez. Tehát mivel mintegy fele megnézi mint te járt szuper rész, Én csak fog nagyon Röviden megy keresztül hurkok, amelyek nem az eredeti napirenden. De nagyon fontos. És így fogok fajta A sebesség ezen az úton mielőtt nekilátnánk a tényleges rész. Mielőtt erre, vannak bármilyen questions-- logisztikai, személyesen, van bármi mást, amit akar tudni rólam vagy körülbelül szakasz vagy osztály általában? Minden jó? OK, hűvös. Lovely. Szóval loops-- srácok kell minden ismeri ezeket a darabokat a semmiből. Tehát hurkok alapvetően csak egy módja, hogy tegyünk valamit bizonyos számú alkalommal, néhány ismételt intézkedés alapján néhány feltételes. Tehát három különböző típusú. Van a hurok, while és a do-while. Így loops-- már csak egy nagyon általános elrendezés itt egy for ciklus. És ez nagyszerű, ha tudod, hogyan sokszor valami kell végrehajtani. Amikor beszélünk, a más hurkok, azt is megtudhatod miért, hogy ez egy fontos különbség. De hurkok valami készlet. Tudod, akkor sem kiszámítja a szám vagy tudod, hogy a hányszor szeretné ezt megismételte az elején. Tehát, ha itt látni, mi már csak egy általános jellegű A váz keret egy for ciklus itt. Tehát alaphelyzetbe, ez az, ahol a változók inicializálása. A Mario, biztos vagyok benne, srácok valami hasonló int i értéke 0. Ez az, amikor ez történik a kék. Megvan az állapota, amely az, ami minden alkalommal ellenőrzik. Ha ez a feltétel igaz, akkor a többi kód végrehajtja. Aztán majd futni again-- és kérjen. És akkor mi van frissítés, ahol te frissítése változó. Szóval, megint, mint Mario, biztos vagyok benne, srácok nem valami, mint én plus plus. Így minden alkalommal, amikor a hurok futott, kaptam frissíteni, hogy amikor mi voltunk ellenőrzése ellen bizonyos állapotban, azt változik. Mert ha csak statikus változó, ha végrehajtja az első alkalom, hogy csak úgy, hogy végre a végtelenségig. Tehát meg kell győződjön meg róla, frissítse változó megfelelően. És mi is csak egy vizuális ábrázolás ott. Mindenki jó? A hurkok. Ha látta ezeket a PSET. Cool. Tehát itt csak egy egyszerű példát. Nyomtatás Ez CS50! 10-szer. És mi van a inicializálás, mint látjuk ott, és int i értéke 0, i kevésbé 10-nél, és én plus plus. És ez lesz nyomtatni, hogy 10-szer. Tehát míg loops-- while ciklusok jó, ha nem feltétlenül kell tudni, hogy hány alkalommal ez majd frissíteni az elején. Csak néhány feltéve, hogy ez ellenőrizhető. És ez lehet valami hasonló while-- vessünk egy példát a PSET. Ha Mario, megpróbál bemenet negatív szám. Jobb? Meg kellett volna újra figyelmezteti a felhasználót. Szóval lehet mondani, nos, ha a felhasználó be- valamivel kevesebb, mint nulla, újra gyors őket. És biztos vagyok benne, hogy lehet, hogy volt valami, amit néhányan használható a kódot. Szóval ez egy egyszerű dolog. Van ugyanakkor néhány feltételes, hogy be van jelölve minden alkalommal, amikor a kód megy végre. Ha értéke true, akkor futtatni. Egyébként mi nem. És ami igazán important-- valami, úgy gondolja, hogy David beszélt A lecture-- a fogszabályozó. Bármi legyen is a belül a fogszabályozó mi végre. Ha elfelejtette azokat nadrágtartó, ez csak akkor fog azt a vonalat közvetlenül után a közben kivégezték. Tehát, ha három dolgok, amelyek állítólag történik, ha ezt feltétel értéke igaz, és nem kell ezeket a nadrágtartó, csak Az első dolog fog történni. Tehát nagyon tudatában ahová a fogszabályozó. Ha kibír Style50, ez biztosan segít. Cool. Tehát ez egy visszaszámlálás 10 nulla. És ahogy itt látsz, azt inicializálása néhány számláló kívül. Egy dolog, ami különbözik mi nem inicializálás a változót a mi a while ciklus. Ez inicializálja kívül. Mi egyszerűen csak üzembe a feltétel a mi közben. Így ebben az esetben, ez míg szám nagyobb, mint nulla. És nyomtassa ki mi számít az, és akkor csökkentse a változót. És ez még egy másik dolog, hogy észre. A frissítés nem történik belül az első rész a while ciklus. Ez ténylegesen meg is történik belül a nadrágtartó, a testület a szöveget. Tehát, míg loops-- do-while ciklusok nagy felhasználói érvényesítés. Így néhányan lehet, hogy is ezt a PSET. Azt lehet mondani, nem, mint, felkéri a felhasználót, az input. Aztán közben, mint a bemenet kisebb, mint bizonyos számot. Így egyértelmű eset Mario, azt lenne csinálni printf, meg egy egész, majd néhány egész egyenlő getint. És akkor lesz valóban hajtja végre azt a kódot először. Akkor valójában valami egész. És akkor meg tudná mondani, míg hogy egész szám kisebb, mint nulla. Szóval, mit fog csinálni ez az fog végrehajtani legalább egyszer. Ez lesz, hogy ellenőrizze az állapotát. Ha a feltétel igaz, ez lesz újra futni. Tehát nem-while ciklusok nagy felhasználói érvényesítés, mert tudod, hogy a kódot fog végrehajtani legalább egyszer, míg a while, te nem Garantált, hogy ez megy végre egyszer. Ez lesz, hogy ellenőrizze a feltétel először, majd úgy dönt, hogy végrehajtja azt, míg a do-while lesz végrehajtja a kód első majd ellenőrizze, hogy meg kell ismételni. Van, hogy a megkülönböztetés értelme mindenki? OK. Cool. Így ebben az esetben, ez a fajta Az, amit én beszélek, Az ismételt utasításokat, amíg kap egy pozitív szám. Tehát tudjuk, hogy printf "Meg egy pozitív számot" és valóban kérte, hogy a bemenet lesz legalább egyszer. Ha a felhasználó rossz és folyamatosan belépő negatív szám, akik tudja, hányszor fog végrehajtani. De ez a kód garantált végrehajtandó legalább egyszer. És ez az, amiért ez jó érvényesítésére bemenet. És fog használni, hogy egy kicsit. Rendben, bármilyen kérdése eddig? Vagyunk minden jó? Beszélek túl gyorsan? Mi a jó? OK. Döbbenetes Szóval menni előre és beszélni tömbök. Cool. Tehát alapvetően tömbök Csak adatszerkezetek amelyek lehetővé teszik számunkra, hogy tárolja dolgok azonos típusú. Tehát, ha valaha is egy sor, ez vagy csak megy, hogy ints vagy csak fog úszók vagy ez csak megy, hogy karakter. Ugye nem megy, hogy egy int az Egy char egy úszó és egy dupla. Egy dolog. A tömbök csak egy méret, vagy ők csak egy típust. Tehát itt van egy tömb mérete három, három egész szám benne. Ők úszik, de mi majd azt mondják, ints. Tehát az egyik dolog, hogy észre, hogy a tömbök egy sor méretét inicializálja őket, és ők nem easily-- mert mind kevésbé kényelmes, akkor csak gondol rájuk, mint nem tudja kiterjeszteni méretű. Azonban nagy elindult, A tömb az elején, ez a méret ez megy maradni, mert tömbök folytonos blokkok memória. És ha srácok egy kicsit hogy milyen memória van valójában lefektetett lemezek és a halom és a verem, ez lesz, hogy egy kicsit több értelme van. De akkor is csak gondolni, mint, hogy csak egy sor terek a lemezen. És nem tudja garantálni, hogy van lesz szabad hely után. Lehet inicializálni egy tömb A három és akkor talán inicializálni másik tömb öt később, és ez rögtön azután, hogy. Tehát, ha úgy döntesz, hogy megy spot három, hogy az első sor, akkor lenne írni mint valami mást. Így tömbök are-- srácok, csak gondol rájuk, mint a fix méretű. Szóval létrehozása array-- mész hogy kell, hogy ezt egy kicsit. Így azonos módon, hogy van egy általános felépítése a mi a hurok, van egy szép általános struktúra tömbben. Azért, mert az egyik típusú, mind a tömb elemeinek vannak az egyik típus, meg kell inicializálni mi ez a fajta. Szóval, mint látod itt van egy szép kis konzol adattípus. Tehát, ha hozunk létre egy int tömb, ami lesz int. Ha hozunk létre egy char tömb, ez lesz char. Ha hozunk létre egy húr tömb, ez lesz húr. És akkor a neve a tömb, amit szeretne, hogy legyen. Szóval lehet, hogy vizsgálati eredmények, vagy esetleg hogy a diákok vagy talán cukorkát. Bármit is dönt, hogy a nevét tömb, ez az, ami lesz. És akkor zárójelben, akkor van a méret, amit akar. Szóval, mi tárolására 10 fő vagy vagyunk tárolására 15 fajta édességet? Mi nem. Így a példánkban itt, hozunk létre egy tömböt A méret a három, amit a srácok lásd: itt a jobb oldalon. És amikor először inicializálása azt, minden nulla. Szóval ez csak gondoltam mint egy üres lappal. Mindannyian ezeket a helyeket, akkor az összes ezeket a dobozokat tudtuk tenni az adatokat, de ők csak üres egyelőre. Tehát, ha azt akarjuk, hogy valóban sorolják őket ezeket az értékeket, mi így jobb alatt itt mutat. Szóval van bármi a nevét tömb és akkor mi index akarsz. Így a mutató csak utal, mint, amit slot keresünk. És egy fontos dolog, hogy észre az, hogy a tömbök nulla indexelt. Tehát, ha azt akarjuk, az első helyet a memóriában a mi tömb, akkor lesz nulla. Ha azt akarjuk, hogy a második, ez lesz az egyik. Ha azt akarjuk, a harmadik, ez lesz kettő. Így tovább, és így tovább. Ezért is, a szokásos módon, amikor teszünk loops-- vagyok biztos srácok kíváncsi vagy, miért kezdjük 0 versus 1? És ez azért van, mert amikor átmenet a használó tömbök, azt térképek helyesen. Tehát, ha azt akarjuk, navigálhat egy tömb, azt teszi sokkal több értelme do i értéke 0, mert tudom, hogy meg fog felelni Az első helyet a memóriában. Mindenki jó ez? Cool. És akkor az alsó itt csak Egy másik módja annak, hogy egy tömb inicializálása. Te még mindig a adattípus és a nevét, de ahelyett, hogy a ténylegesen amivel egy méret van, tudod csak csinálni üres zárójelben. És akkor ezek a göndör melles az alján, akkor csak a bemenő adatok azt szeretné, vesszővel elválasztva. És ez automatikusan azt mondják, OK, látom, hogy van három dolgok ezekben a fogszabályozó. Szóval tudom, hogy kell kiosztani három blokk memória, majd tárolja azokat. Tehát az első verziót használhatja ha kérsz a felhasználó a bemeneti értékeket úgy, hogy tudsz léptetés a tömb és ask-- egy kis int bemeneti őket. Ha tudja az értékeket előre, ez teszi sokkal több értelme hogy csak a második út. De a legtöbb esetben, akkor lehet, hogy nem tudja, mi ezeket az értékeket lesz. Cool. Más kérdés? Rendben. Tehát hozzáférés elements-- így egy A legjobb dolog a tömbök az, hogy véletlenszerű hozzáférés, ami azt jelenti, hogy Nem kell, hogy nézze át minden blokk. Ha tudja, hogy szeretnénk mi mondatban két, akkor csak annyit, hogy nekem két blokk. És ez az, amiért ezek indexek annyira fontos, és ez hogyan is elérheti őket. Tehát ebben az esetben, mint láttuk korábban, amikor voltunk tulajdonított érték, az egyetlen előtt, mi volt a neve, és a index akartunk hozzáférés, ugye? Tehát ugyanúgy, ez minden, amit tenni, hogy valóban húzza ki az adatokat. Mi van a neve és mi van index, amit szeretnénk. Tehát ebben az esetben, az a hurok le itt alul, bárki tudja, mit csinál, mi lenne kinyomtatni? Mmhmm? Pontosan. Szóval igen, ez csak a ciklussal. i értéke zero-- tudjuk járni át a kódot csak gyorsan. i értéke nulla, az i kisebb mint három ezen a ponton, igaz? Annak érdekében, hogy ki ellenőrzi. És azt mondjuk, OK, print f bármi is van a hőmérséklet az i. i nulla itt, amikor először navigálhat, így megy ez az első hely, és azt mondjuk, rendben van, 65 a szám szeretnénk kinyomtatni. Így majd nyomtassa ki 65 majd tegye egy új sort. én is frissíti, így nyomtat 87. Ez frissíti újra, és ez lesz kinyomtatni a 30. Mindenki jó? Félelmetes. Rendben van. Tehát itt van egy fajta amit mondtam, milyen nyomon követheti a valaki pont és miért akkor ezt az első módja inicializáló ahelyett, hogy a másik út. És ez csak megy keresztül. És észre van egy osztálylétszám 30. És mi ezt inicializálás tömb ints, amely a mérete 30. És akkor mi van iterációjával át, és mi vagyunk kéri a felhasználót, hogy adja pontszámok minden egyes ilyen majd rendelje hozzá egy adott helyen a memóriában valahol a tömbben. Cool? Van ennek értelme mindenki? Mmhmm? Így hashtag meghatározza osztálylétszám 30 egy előfeldolgozó irányelv ami azt jelenti, hogy csak azt gets-- csinálni, mint a fordítási folyamat. Azt hiszem, hogy mint egy globális változót. Az, hogy mi van typically-- lehetővé teszi a kódot hogy könnyebben változtatható. Mondjuk, hogy a osztálylétszám hirtelen megy 30-15, ha nem adta meg ezt így, megtenném kell, hogy menjen át az egész programot és a változás minden esetben a 30-15. De ezt, hogy változtatni egy spot, és minden egyéb tényező változatlan. Ha valaha is szeretne csinálni a hash meghatározni ügyben hová nyomon követése az egyes meghatározott számú pontszámok egy osztály vagy te egy számot amelyeket használni fognak, mint például, az egész egy nagyon hosszú programban, akkor jobban meghatározni, hogy az elején hogy ha valaha is megváltozik, akkor kap változtatni egy helyben, hanem 100. Igen? Diák: között csinálja, és csak nyilvánításáról [hallható] fölött a tetején. ALLISON Buchholtz-AU: Így köze van efficient-- ez a fajta hatályán kívül mit tudunk fedezni ebben a fejezetben. Azt, hogy tegyenek többet a hatékonyság és hogy a dolgok valójában a munka a fordítási folyamat. Ha azt szeretnénk, hogy igazán tudni róla, örülök, hogy az elküldött egy e-mailt a forrásokkal róla. Hash meghatározása általában a előnyös dolgokat. És ahogy kódot több, akkor fajta tanulni az árnyalatok mikor kell használni globális versus a hash meghatározni. De egyelőre, akkor nem igazán van aggódni is hogy a rövid válasz. Mindenki jó ez? És azt is, ha azt szeretnénk, hogy egy hash meghatározza, ez tényleg fontos, hogy észre hogy a név kell a nagybetűs. Mi nem csak azt teszi, CLASS SIZE hogy drámai. Meg kell ténylegesen minden sapkák. Cool. Valami más is? Mi a jó? Lovely. Üdvözlünk. OK, így azt akarom, srácok, hogy egy pillantást Ebben, és nézd meg, hogy megtalálja a hibát. Adok egy tippet. Ez valahol, hogy a for-ciklus. Mmhmm? Diák: Kell kisebb vagy egyenlő, mint 2. ALLISON: Tehát ez lehet kevesebb vagy értéke 2, vagy lehet, hogy kevesebb, mint 3. És mi indokolja ezt? DIÁK: A [hallható], 0, 1, 2. ALLISON: Pontosan. Tehát egy sor n méretű, mi csak indexei n mínusz 1. Cool. És akkor mi is igazán őrült és kap többdimenziós tömböket. Az egyik probléma, amikor vettem, hogy az én év szükséges többdimenziós tömbök, és azt hiszem, az egyikük lehet szükség ebben az évben, így kényelmes. Tekerjük a fejed körül most. Ez jön vissza kísérteni , de hűvös módon. Így tényleg csak gondolom, A többdimenziós tömbök a tömbök tömbök. Így egyfajta gondolom, ennek a tetejére sor, mint az első darabja a memóriát. És ez az egyik a második darab memória, és az utolsó sor a harmadik darabja a memóriát. És ezen belül van egy tömb. Persze, könnyebb ábrázolni, mint ez. Szóval inicializálni azt ugyanúgy. Ez a karakter tábla három három. Szóval van három sorban és három oszlop. Mi képviselő ezt így. És akkor hozzáférni a Ugyanígy, oszlopról sor. És így 1,1 ahogy látjuk itt. Mi hozzá egy nulla, nulla ott. 2,0 és 0,2. Szóval akkor csak elérni them-- ha bárki valaha is lineáris algebra, ugyanúgy hozzáférhet egy eleme a Matrice, ez ugyanaz a gondolat itt. Így kapcsolódnak vissza a matek. Nem kell aggódni túl sokat ez most. Ez jó, hogy az expozíció, tudni, hogy meg tudod csinálni. Akkor egyfajta őrült number-- tudsz létrehozása őrült tömbök is minden fogok mondani. [Hallható] Ez egy kicsit őrült, de ez nagyon klassz. Félelmetes. És akkor, így már egy példát itt. Az Európai Bizottság számításai a húr hossza. Szóval, hány ember tudta, hogy a húrok, hogy az Ön által használt Íme tömbök karaktereket? OK, igen. Szóval ti is úgy gondolja, hogy még nem Használt tömbök előtt, de bármikor használja a getstring CSView könyvtár, te valójában csak kér egy sor karaktert. És mi vigyáz minden hogy a back-end az Ön számára. De már a tömbök, mióta elindult. Csak nem tudom, hogy még. És ha van egy karakter tömb vagy egy tömb, ami tárolja a húr, Az utolsó dolog, amit mindig mi úgynevezett null terminátort, amely ez itt. És ez a végén minden szó, hogy te tárolására. Tehát ha azt akarjuk, hogy kitaláljuk, a karakterlánc hosszát, azt mondhatjuk, nos, tudod, az tartalmát, hogy a tömb nem egyenlő a null terminátor. Ez azt jelenti, hogy van némi karakter ott valójában érdekel, hogy ez része a szó. Növelheti hosszát. És akkor, amikor tényleg eljut a végén a szó, akkor az megszünteti és akkor vissza a hossz nekünk. Mmhmm? Diák: Van a tér számít a null terminátor? ALLISON: Tehát a tér nem null terminátor. Tehát, ha van egy hely multiple-- valójában egy adott ASCII-értéket. Diák: Mi a felkiáltás egyenlő megint? ALLISON: Szóval, ez az, amit utalnak. Ha valaha hallasz a munkaidejében Mindig hívják, mint, bumm egyenlő. Tehát bumm nem. Tehát ez nem egyenlő. Tehát, ha akarsz hátha valami hamis, tudod mindig azt teszem, amit bumm a változó, és ha ez hamis, értékeli, hogy igaz, és tehet jó dolgok vele. További információk később. Cool. Minden jó ott? Félelmetes. Tehát most már a srácok "ideje működik, mert én már beszéltem. Szóval azt akarom, hogy csak hozzon létre egy tömböt A egész egy, kettő, három és, majd azokat is kinyomtatható. Önnek nem kell tennie, mint, fő, bla, bla, bla, bármi. Csak azt akarom, hogy inicializálni a tömb, majd hozzon létre a for ciklus kinyomtatni out-- vagy a while ciklus, rajtad múlik. Én csak kapsz egy pár perc dolgozni azt. Megyek pihenni a hangomat. Ha bármilyen kérdése van, boldog vagyok hogy magához tér, és beszélni nektek. Nyugodtan beszélni egymással. Még több cukorkát. Sőt, én csak sétálni a cukorkát. Hogy-hogy? Akarsz ilyen? Bárki más ebben a szobában akar édességet? Azt is, hogy több, mint egy, srácok. Vegyünk egy maroknyi, ha akarod. Is lehet. Mindenki más a jó? OK. Azt is fogok létrehozni Egy névtelen Google Form, és ti is csak be visszacsatolás után minden szakasz ha van valami, amit szeretne javít, vagy valami, amit kívánsz. Ha én vagyok egy kicsit túl életerős neked, én is hangot le. Én létre, hogy és küldeni, hogy ki az összes utána. Rendben van. Tehát kezdjük kicsi. Hogyan tudnánk inicializálni a tömb? Mi az a típus, a tömb? Egy int, ugye? OK, így mit akarsz hogy hívja fel a tömb? Int tömb, hűvös. Rendben, így már int int tömb egyenlő, és mi van utána? Diák: [hallható] zárójelben. ALLISON: Braces. És akkor belül a fogszabályozó? Egy vessző vessző kettő három. Cool. Annak érdekében, hogy minden rendben. Tehát most már a hurok. Tehát az első része a A hurok, mi van? Diák: i értéke 0? ALLISON: Tehát int i értéke 0, és akkor mi a feltétel? Mi én lesz kevesebb? Kevesebb, mint három, és hogyan tudjuk frissíteni i? i plus plus, frissítésére egy. És akkor mi lesz, hogy néhány printf az egész, és mi az, hogy az utolsó rész, ami valójában akartam mondani, mit kellene nyomtatni? Ez lenne a neve tömb, amely int tömb, ugye? És mi van a zárójelben az int tömb? i. [? Szóval?] Felhívtam a példa, de ott is megy. Nem olyan rossz. Mindenki jó? Cool. Szóval kész a tömbök. Gratula. Sikerült navigálhat az összes a-- igen? Diák: [hallható] ALLISON: Igen. Diák: Van egy kérdésem. Ön kéne behúzni a fogszabályozó? ALLISON: Tehát a fogszabályozó kell line up A for ciklus, és minden belül a fogszabályozó bentebb kell kezdeni. Diák: OK, amennyiben a A hurok lehet beljebb? ALLISON: A for ciklus nem kell beljebb ezen a ponton. Ha te lennél a legfontosabb, ha tényleg volt egy fő funkciója van, lenne beljebb származó fő. De ebben az esetben, ez rendben van. Igen, kérdés. Tanítvány: meg kell, hogy Az után, zárójelben példát? ALLISON: Igen, ha inicializálása így. Úgy emlékszem, ez a második módja egy tömb inicializálása ahol mi van a merevítések és akkor a tényleges adatok vesszővel elválasztva belül. Diák: Azt hittem, ott volt zárójelben az adott pl. ALLISON: Nem, ők fogszabályozó. Ők fogszabályozó. Ha inicializáló hogy a második is, ez fogszabályozó. Ha volt, hogy mondjuk, ha int example-- csak azt akartam egy üres tömb ints, lenne int például Konzolok három. A zárójelben szereplő a méretet. Ha van nadrágtartó, ez a tényleges adatok te olyan bele ezen a módon. Mi lehet görgetni vissza nagyon gyorsan. Tehát ez, ez csak a mi kezdeti tömb, elindulni. És itt vagyunk, külön-külön hozzárendelése foltok őket, így ez azt jelenti, az index a mi tömb, ezért van zárójelben. De itt, ha azt veszi észre, mi már maradt a zárójelben nélkül méret és mi inicializálni azt a tényleges adat all-in-one fogszabályozó. Diák: Akkor miért nem mi zárójelben ebben a példában? ALLISON: Szóval, melyik részben? Diák: Vajon nem mi mondjuk, int például konzolok egyenlő fogszabályozó [hallható] zárójelben pl. ALLISON: Ó, sajnálom. Igazad van. Nekünk van zárójelben ott. Bocs srácok, az én hibám. Igen, meg kell, hogy után zárójelben példa. Tökéletesen igazad van. Diák: [hallható] nem csinálom. ALLISON: Nem, van, hogy zárójelben, mert különben ez a Nem fog egy tömböt. Diák: [hallható]. Elnézést. ALLISON: Sajnáljuk, de szükség után zárójelben példa. Typo. Jó fogás, arany csillag az Ön számára. Továbbá, ha feltettem egy kérdést, ha ti is csak mondd el a neveket, Szeretném azt. Szeretném, hogy képes legyen tudom, az összes nevet. Én nem megyek a hideg hívni, én tényleg akkor csak azt szeretném tudni a nevét. Ezért kérjük, mondja meg, valójában a neveket. LEAH: Leah. ALLISON: Leah. OK, így functions-- tudom röviden beszéltek erről közben előadás. Tehát funkciók fajta csak mint ezek a kis harapás méretű dolgok ahol át a bemenet, valami varázslatos történik, és kapsz kimenettel. Cool. Szóval tényleg használt sok ilyen már. Get int, hogy húr, print f. Ezek az összes funkció ahol csak hívjuk őket, van sok varázslatos dolog folyik a háttérben hogy nem feltétlenül lát, és kapsz, hogy mit akarsz. Vagy legalábbis kapsz amit remélem akarsz. És alapvetően a pontja a feladatok, és az egyik fő témája a CS, az, hogy megtörje a kódot a kezelhető darabokra. Amikor elkezdi írni ezek nagyon hosszú programok vagy Scratch, amikor még volt ez a nagy ötlet a játék, meg kell, hogy tudja törni le, mint, OK, hogyan kezdjem? Melyek azok a kis darabok, amire szükségem van? Ó, meg kell kérni a felhasználó valamit. Most kell nyomtatni valamit. Ó, kell számítani ezt az értéket. És a tanulás, hogyan kell szakítani a kódot, és a nagy problémákat, van ezekbe a kis darabokra és megteremti funkciók valójában az egyik a nagy sarokköve CS. Szóval lehet gondolni egy függvény ugyanolyan mint egy fekete doboz, a mágikus fekete doboz, hogy tegye a dolgokat és kapsz néhány kimenetet. És a többi a program nem kell feltétlenül tudja mi folyik belül a fekete doboz. Minden az érdekli, amit megy, és mi jön ki. Cool. Szóval miért funkciók? Organization-- mint mondtam, ha éppen foglalkozó nagy kóddal bázisok, hogyan szervezi a kód lesz sokkal könnyebb, ha használja funkciókat. Mert akkor képes lesz lenni, mint, OK, ez az, amit csinál, és ez a funkció itt van, amit egy másik nem. És könnyen látni hogyan fér össze. Tehát törés fel az összes ezek kezelhető alrészekre. Szóval simplification-- Biztos vagyok benne, a srácok mind látta ezt, mint mondtam, a Scratch. Van ez a nagy ötlet, és te, mint, hogy hogyan működik ez a munka? De ha ez a megközelítés darabonként, azt mondod, OK, hogyan csinál egy kobold lebegnek át a képernyőn? Ez egy kicsit könnyebb. Szóval jó a funkció teszi a kód sokkal könnyebben olvasható. Ez megkönnyíti a hibakeresést, amelyek a bejutni a későbbi probléma készletek, fogsz igazán szeretné, hogy képes legyen megtenni. És ők is könnyebb megtervezése és végrehajtása. Akkor egy kis kódot működnek viszonylag gyorsan és győződjön meg róla, hogy működik, szemben próbál létre ez az egész hosszú a program majd a fajta megy keresztül, és látni, mi működik és mi nem. És akkor újrafelhasználhatóság. Tehát funkciók csak akkor kell írandó egyszer, és akkor tudod használni őket ahányszor csak lehetséges. Szóval ez, mint környezetbarát, bizonyos értelemben. Ha voltak dolgok, mint print f, ahol kellett, hogy írjon ki a varázslat, hogy megy mögött print f minden egyes alkalommal akart nyomtatni valamit, akkor lenne elég beteg és fáradt is végére. Az egyik dolog, hogy akkor tanulni később CS osztályok, vagy az egyik legjobb db tanácsot kapok az, ha a másolás és beillesztés kód, meg valószínűleg egy függvény. Ha pontosan ugyanazt a vonal végig a kódot, Ha tényezőként őket, A kód lenne valószínűleg lenni, mint ötször rövidebb és sokkal könnyebben olvasható. És ahelyett, hogy elhárítása Ezeknek a különböző helyeken, ahol a dolgok Lehet baj, van egy funkció hogy kapsz elhárításához. És ígérem, a sok e tűnhet a fajta absztrakt most, de ahogy bejutni később és később probléma határozza, ez lesz, hogy sokkal több értelme és igazán hajtott haza. Vannak kérdései körülbelül funkciók eddig? Miért mi használja őket? Tudom, hogy még nem ütött a tetves kavicsos még. Így meghatározó function-- mint tömbök, szükségünk van valamiféle of-- ezt csak az általános teljesítmény. Tehát ez egy olyan funkció, ami Csak megy kocka bizonyos bemeneti. És a következő oldalon, tulajdonképpen, mi mindezek félelmetes kis dolgokat itt. Szóval, mindenki olvasni hogy a kíváncsiság? Tudom, hogy a lila és fekete Lehet, hogy egy kicsit nehéz. De a nagy dolog, hogy így az első tudom-- egyik itt a mi visszatérési típus. Tehát ez beszél a kimenet E funkciót, ha ebben az esetben, teszünk néhány szám, amit mi szerzés, hogy a szám hatványával. Így kell egy int ebben az esetben. Talán ez lenne a kettős vagy valami mást később, de ebben az esetben, ez egy int. A c, mindig szükség van egy visszatérési típus. Ez lesz egy int. Ez lesz egy úszó. Ez lesz a kettős. De meg kell határozni, hogy mi ez a funkció fog visszatérni. Ellenkező esetben kiabálni te, és ez nem fog lefordulni. Nem lesz szomorú, és én leszek szomorú. És ez csak nem jó. OK. És akkor mi van a függvény neve. És mint látható itt, c itt van ez a nagyon következetes paradigma. Mi a típusa, mi a neve, majd néhány más dolog maradt a végére. Tehát a visszatérési típusát, a függvény neve, majd a megvan a fejlécet a paraméter lista. Így a paraméter lista, hogy mi ez a funkció fog tartani? A paraméter lista egyszerűen egy szinonímája, mik a bemenetek? És az azonos módon, hogy mi meg kell határoznunk a függvény és adja meg a visszatérés típusú, minden a mi bemenetek szüksége van egy típusú társul hozzá. Tehát tudjuk, hogy mi a funkciót ténylegesen dolgozni. Tehát ebben az esetben, van néhány int bemenet. Szóval megint, ez lesz a típus és mit nevezni. És akkor, ahogy látod itt van a szervezetben. Tehát néhány int teljesítmény, hogy csak a bemenő alkalommal maga szer is, ami csak kockák azt. És akkor térjünk vissza a kibocsátást. Szóval mint látod itt van egy int szer int szer int, így tér vissza int, amely nyilvánították ott. Tehát minden összetartó. Minden boldog. A funkció fog futni. És ez csak az általános dolog. Így mindig visszatérési típusát, nevét, és a paraméter lista. Minden dolog a paraméterlista, vagy input, szüksége van egy típusú társul hozzá. És akkor már a test itt bármilyen akarsz csinálni a bemenet. És akkor nyilván vissza akar térni valami. Néha funkció csak vissza. Ők valójában nem tér vissza valamit Önnek. De van, hogy visszatérjen valamilyen módon. És ha még van saját funkciókat, akkor bejutni, hogy egy kicsit mélyebbre. Személy szerint, ha azt szeretnénk, van egy csomó különböző dolog, amit tehetett ott. Mindenki jó? Bármi ezen a listán, amit akarsz megy át, hogy nem érti? Mindenki jó van? Cool. Félelmetes. OK, szóval üzembe mindez együtt most. Tehát van néhány kocka int bemenet, így Ez egy komplett program itt. Eddig, én már fajta nem így srácok kódrészlet hogy esetleg megy a programon belül. Már most néztem funkciókat. De itt egy egész programot. Szóval, hogy sokan emlékeznek a szó prototípus előadás? Cool. Már van egy. Mi a neved? Steph: Steph. ALLISON: Steph? OK, félelmetes. Szóval, emlékszel, mi a prototípus? Diák: Azt mondod, [hallható] mielőtt ténylegesen foglalkozni vele. ALLISON: Emlékszel, hogy miért? Diák: Nem. ALLISON: OK. Arany csillag. Szóval igen, a prototípus van előzetesen, mert különben a fordító fog kiabálni nekünk. Ez fogja mondani, OK, mi ez a kocka a funkciót? Mint, ha szó szerint azt mondta, semmit erről. Ez olyan, mint amikor te bemész egy osztályteremben, és valaki olyan, mint, van egy teszt ma. És te, mint te soha nem mondta nekem erről. Nem vagyok boldog velünk. A prototípus alapvetően hasonló A tanmenet mondván néz. Heads up. Ott lesz a kvíz ezen a napon. Ne borulj ki, ha kap rá. Te rendben lesz. Tehát az összes prototípus nem is mondja fő, fogom használni ezt a funkciót. Ígérem, én meghatározó később. Nem kiborulni rám. Csak fordítsd le és tedd, amit mondok, hogy. Tehát a prototípus van csak azért, hogy a fordító boldog. És ez alapvetően egy ígéretet, hogy megadtuk ezt a funkciót később és hogy nem csak hív ez véletlen dolog, hogy az nem tudja, mit te hogy csinál. Tehát ebben az esetben, mi a fő itt. Inicializáljuk néhány egész x. Ez két. Elmegyünk, hogy nyomtassa ki, mi az x. Megyünk kocka x. Amint látod, mi van a függvény nyilatkozat le ide, hogy mi beszélt korábban. Ez lesz kocka x, és aztán, ha emlékszem, a kocka valójában funkció visszatér egy egész számot nekünk, amely a tárolt x megint, hogy ki tudjuk nyomtatni ki nyolc, vagy kocka x most. Van ennek értelme mindenki? Mi a jó? Rendben van. Félelmetes. Rendben van. Hány srácok Ne feledje, ez így ebben a alapvetően csak a verem, és a kupac, csak a megjelenítését hogyan memória itt tárolódik. Szóval csak azt szeretném, hogy a meg arról, hogy érti hogy ezek képviselik a memóriában. Ha az előírtnál osztályok, mint a CS61 ilyesmi később, kapsz, hogy megtanulják ezt sokkal mély, és ez nagyon jó. Én nagyon ajánlom. De most, adok Ön az átfogó áttekintés így nem kell tudni, hogy a tetves kavicsos. Így a felső csak egy szöveges szegmens, amely tartalmazza az aktuális nullák, bináris e. És ez a tárolásához használt globális változók, ha van ilyen. Ahogy lefelé, mi van, ahogy itt látsz, inicializált adat, inicializált adatokat, majd a kupac. Tehát nem igazán beszélnek a kupac most. Majd kap rá később. Mert most, én csak lesz hullám kezem, és hasonló, nem kell tudni ezt most. De mi beszéljünk egy kicsit bit a verem. Így a verem where-- van nagyítás. Ez tulajdonképpen, hogy a program mi csak nézett fordul a memóriában. Tehát mi történik, minden alkalommal hívjuk a függvény, megkapjuk az úgynevezett egy halom keret, amely az egyik ezek közül. Tehát a fő paramétereit. Tehát ezek a dolgok hogy átadjuk a fő. Szóval ők itt alul, mert ez az első dolog, amit nevezzük. És akkor eljutunk a fő helyiek, és amikor azt mondjuk, hogy, értjük a lokális változók tárolt belül a fő. Így a helyiek itt lenne, mint, x egyenlő két ebben az esetben. Mert ami lokalizált a fő. Mindenki emlékszik körét, megy át, hogy előadás? OK. Szóval, csak a változók inicializálva belül fő. Szóval ezért van a fő [? ének. ?] Aztán belül a fő, hívjuk kocka. Jobb? Tehát még egy frame A kocka paramétereit. Így ebben az esetben, kocka paraméterek most az x, amit átadott, a két, amit átadott. És akkor a kocka helyiek, ami ahol a tényleges kocka történik. És akkor vissza. Tehát mi történik a kocka valójában nem mit kéne csinálni, visszatér. Amikor visszatér, ez a keret marad, és vissza le a fő. Aztán belül a fő, mi ténylegesen kinyomtathatja. Tehát, amikor visszatér valami, ha a függvény értéke, ez olyan, mint halad tovább ezeket az értékeket a A keret alatt, aztán elmegy. És a dolgok, hogy végre a sorrendben. És amikor már a nagyobb programok tudjuk, hogy hűvösebb és bonyolultabb diagramok. De most, ez csak egy általános áttekintés így van egy ilyen megértése, hogy mi történik, ha hívsz egy függvény és hogyan, hogy valóban úgy néz ki a memóriában. Cool? Mindenki jó? Félelmetes. Így ez az egyik, hogy csak próbál cserélni a dolgokat. Mint látjuk itt, mi a függvény prototípus úgy, hogy a fordító nem kiabálni nekünk. Van néhány fő, és mi akar váltani az x és y. Ők még nem tette ezt demo az előadás mégis, vannak ők? Ők nem? OK. Szóval menni át ezt a nagyon röviden. Kapsz ebbe példa több mély, azt hiszem, ezen a héten. És akkor a jövő héten már tényleg belevetik magukat, hogy ez miért nem működik. Így van ez a void funkció here-- csere. Szóval csak azt jelenti, hogy az érvénytelen semmit vissza. És van egy csere int és int b. És van néhány átmeneti változó, hogy ez a. a kap rendelt b, majd a b lesz rendelve a temp úgy, hogy a és b a értékek most kapcsolva. De plot twist, ez nem működik. És része valójában köze a tény, hogy egy és b itt, az is, hogy kap átadott itt, valójában másolatai x és y. Tehát, ha a függvény valóban visszatér, átkapcsol a másolatok, de nem a tényleges x és az y. Tehát az egyik módja annak, hogy gondolni is hogy-- mintha ezek csere. OK? Így a fő, van x és y inicializálni. De ha tényleg megy fel hogy ezek a keretek a csere, mi halad feletti értékeket rá, és ők inicializálni. És mindig csak él itt. Tehát a és b él itt. És kap cseréltek. De amikor visszatérünk, mi nem mit kezdeni a és b. Egy és b szabadságot a funkcióval. És így az x és y ugyanaz marad. Kapsz még, hogyan kell rögzíteni, hogy és hogyan is kezelni később. De ez csak egy dolog hogy milyen szem előtt tartani. Használja a jövőre nézve. Ne aggódjon, ha ez nem teszi minden az értelemben a világon. Ezek másolatai a legnagyobb dolog. Ha megy, hogy semmit távol, hogy akkor telt példányban. Így az eredeti ugyanaz marad. Mindenki jó? Cool. Így parancssori. Biztos vagyok benne, az elején ti minden volt azoknak a nagy, mint a, int main üregek. És te, mint OK hűvös. Nem igazán érdekel. Ez az, amit meg kell írni. De az új programok, különösen ebben PSET, és miért van krétával a földön? A következő PSET, akkor fogja látni ezt. Int fő, int c arg, húr ív v, zárójelben. Szóval, amit mi csak tanultam ma, mi gondoljuk, hogy a második paraméter vagy hogy a második elem itt? Ez egy tömb. Milyen típusú tömb? String array, igen. Cool. Szóval így fogod kell nyilvánította ezeket most. Tudja valaki emlékszik amit ezek a rövidítések? Nem? Hmm? Diák: arg c. ALLISON: Tehát arg c tart a számláló. Ez egy int. Ez egy szám, ugye? Szóval, mit gondolsz, ez a szám az? Igen. Tehát arg c száma húrok alkotják a parancssorban. Tehát, ha mi voltunk a do-- valójában, vannak példák, ezt követően, így nem fogom túltenni magam. Ez egy több karakterláncok, csak, hogy ki a parancssorban. Szóval, ha nem, mint, pont perjel Mario, ez az egyik húr teszi fel. Ebben a darabban, akkor valóban etetés dolgokat a parancssorba, biztos vagyok benne, srácok, akik Elolvastam a spec fűrész. Így azokban az esetekben, talán majd két vagy három érvet. Ez lesz hasznos dolog használni. És akkor arg v, mint mondtuk, csak egy string tömb. Annak érdekében, hogy ténylegesen mi tárolja Ön viszi be a parancssorba. Tehát ezeket. Van néhány pont perjel másolja bemeneti fájl kimeneti fájl. Tehát, ha arg c száma húrok hogy mi megy át a parancsot vonal, mi a arg c ebben az esetben? Három. Pontosan. Tehát mi arg v nulla? Tehát mi az első dolog, amit tárolni? Dot perjel másolat, pontosan. És akkor a második lesz infile. A harmadik lenne a kimeneti fájl. Szóval, mi a helyzet arg v három? Lenne null, mert ez a végén a mi tömb, ugye? Cool. És akkor mi a helyzet a hatodik? Elég egy trükkös kérdés. Ish. Nem tudjuk, hogy mi az? Ez nem definiált. Fogalmunk sincs, hogy mi lehet az. Ez bármi is igaz, után a tömb a memóriában, és nincs nyom, hogy mi ez. És ez veszélyes érintsék dolog, mert minden, amit tudni, ez egy része a memória, hogy ne legyen hozzáférés, vagy null. És ez nem őrült dolgokat. Úgy hívják túlzott indexelés Ön köteles a tömb. Ne menj határain kívül a tömb, vagy rossz dolgok történnek. Gyere vissza, mint a törvényi A fizika már elpusztult vagy valami. Cool. Van ennek értelme mindenki? Nem rossz. Szóval most, mindenki kedvenc rész, PSET felülvizsgálat. Yay! OK. Tehát azoknak, akik még nem olvasta a PSET spec, csinálsz valami igazán jó dolgok titkosítás. Fogsz létrehozni egy Ceasar Titkosítás és Vigenère futamot. Akkor feltétlenül olvassa el a spec, hogy milyen e munkát. És ha, hogy bármilyen baj körülbelül amit ténylegesen csinál, kérem, jöjjön hozzám beszélni, nekem e-mailt vagy szöveges engem. Én vagyok. Tehát három fő dolog van, amit akar beszélni about-- csak ilyen meghosszabbításának előadás. Dolog, amit talán nem is tudja körülbelül, hasznos tanácsokat és eszközöket. Így fogunk tenni a gyors felülvizsgálatát ASCII, mert ez lesz szuper Fontos Vigenère a futamot. Megyünk átalakítása parancssori bemenet, ami nagyon hasznos lesz a Caesar Cipher. És akkor modulo. Cool. Szóval, ASCII karaktereket térképek számok. Ez egy nagy táblázatot. Meg kell ezt a könyvjelzővel valahol. Akkor érdemes azt az első félidőben. Biztos vagyok benne, mindenki ezt táblázatot félidei lap. Így tanulni. Szerelem ez. Tartsa kéznél. Ez lesz hasznos. És ez egy olyan kódolási hogy térképek alfabetikus, numerikus, és egyéb karakterek számok számítógépünk. Mert persze, a Végül mindent tárolunk fog kapni konvertált le a nullák és egyesek, ezért találnunk kell valamilyen módon, hogy képviselje a szöveg és a karakterek, hogy mindannyian megszokták, hogy a valamiféle szám. Szóval mint látjuk itt, mi A nagybetűs, ami ott van. Ez a 65. És kisbetűs A 97. Szóval lehet kitalálni out-- mint mondtam korábban, ha már sor több vonósok, mit is egy null terminátor. Lenne egy szóközt. Tér saját special-- Elfelejtem, hol van itt. Ah. 32 a teret. Tehát mindent térképek hozzá. Tehát ASCII matek. Pro tip-- a Vigenère a, lehet, hogy a kísértés ahhoz, hogy a számok egészek, de valójában jobb gyakorlat hogy képes legyen használni az karakterek, mint ez amikor valóban manipulálni őket. Tehát, ha a használni kívánt számokat, akkor. De egy jobb út, vagy úgy, hogy hajlamosak vagyunk, mint ti csinálni, Erre van, ahol te vagy valójában kivonva karaktereket. Szóval azt akarom, hogy a srácok fajta kitalálni ezeket. Miért nem próbálja meg minden ember? Tehát nem az első, a harmadik, és az ötödik. Mert szeretnénk, hogy győződjön meg arról, hogy beszélünk mindent meg kell beszélni. Én csak akartam mondani, az egyik fontos dolgok to-- oh wait, ti még nem láttam ezt. OK így nem az első három. Csináljuk azt. Mert van beszélni modulo. Tudom. Math nehéz. Használhatja a számológép. Ez rendben van. Vagy húzza ki ASCII tábla, mert akkor valószínűleg szeretne majd azt. Cool. Szóval gyorsan járni srácok át ezeket. Tehát az emberek ASCII asztalok húzta fel? Mi a mi numerikus szám kisbetűs A? STUDENT: Seven. ALLISON: Tehát kisbetűs jelentése 97. és nagybetű A 65. Így 97 mínusz 65? KÖZÖNSÉG: 32? ALLISON: 62 igen. Így ebben az esetben, milyen lenne kinyomtatni? Ez az első? Ha van százalék d, mi lenne, amelyek jelzik? Diák: A szám. ALLISON: Mi nyomtatás ki a tényleges szám. Szóval tényleg megy kinyomtatásához 32 itt. És ha ez százalékkal c, 32. adna nekünk a helyet. Így megérteni, hogy karakter nyomtatható mind a számok és a a tényleges karakterek nagyon fontos, és a kifizető a figyelmet a tényleges típus hogy csinálunk itt. Cool. Így minden más egy ilyen, mi fogunk nyomtatni? Diák: A karakter. ALLISON: A karakter. Cool. Tehát, ha akartok tudni, akkor tud dolgozni ezeket ki a saját. Ha problémád van, e-mailt nekem. De a második sem fog nyomtassa ki a kisbetűs b. A harmadik kiírja egy nagybetűs B. A negyedik kinyomtatja ki egy nagybetűs C közötti, a utolsó lesz a kisbetűs A. És az utolsó one-- mi történt valójában bejutni, amit az őrült százalék jel még azt a pár diák. Így próbálja azokat a saját. Ha problémája van, kérem, jöjjön hozzám beszélni. Ha általában Adams D hall, akkor valószínűleg talál engem körül. Szóval, atoi. Hányan látták ezt funkciót, vagy hallott róla egyáltalán? Valaki? Cool. Tehát mi is valójában áll az ASCII integer. Szóval, mit tehetünk, és Caesar, azoknak, akik olvassák a specifikációt, fogsz csinálni pont perjel Caesar után írjuk meg a programot, majd fogsz input néhány szám, amit szeretné kódolni a titkos üzenetet. De, ha arra gondolunk, minden kedves bemenetek vannak eltárolva szálakat. Jobb? Van egy arg v tömb ez minden típusú szöveg. Tehát, ha csak meg kell húzza, hogy az egyik, akkor úgy gondolja, hogy az egyik vagy bármi szám használt valójában egy karaktert. Szóval fog kapni néhány őrült eredmény. Tehát, ha tényleg akar viszont ez egy egész amelyek segítségével manipulálni a szó vagy az üzenetet, akkor szeretnénk használni atoi. atoi csak átalakítja a húr egy int. Tehát, ha van egy sor 12, ha hívjuk atoi 12, vagy bármi, hogy a bemenet, akkor valóban vissza Önnek az egész. Nem a karakter vagy a húr a 12. Ami, ha elkezd hozzá, hogy a számok, nagyon eltérő lesz, mert a húr 12 néhány őrült száma ASCII, de az egész 12 valójában 12, ami az, amit akarsz. Tehát azt szeretnénk, hogy győződjön meg arról, hogy használni atoi. Fogsz szeretné ezt a Caesar, mert szüksége van az int által a felhasználó a parancssorban. De amikor betette a parancs vonal, ez tárolja a húr kezdeni. Van ennek értelme? Nem feltétlenül szüksége van erre Vigenère. A Vigenère, ahogy mondtam előtt, meg kell próbálnia, és használja ASCII matek úgy néz ki, mint a ez, ahol te valójában a karakter, hogy mi adott neked. Cool. Mindenki jó ott? Félelmetes. Így modulo. Szóval, mi van, ha az adott ez a hatalmas szám Caesar? Van ez a gondolat, hogy ha a Z és te kap egy számot két, ez azt jelenti, need-- Z lesz a második levél után is, ugye? Tehát meg kell valahogy kerületi, és modulo a módja, hogy. Így minden, hogy nem ez adja a maradék Az osztály a első szám a második. És van néhány példa, hogy hogy ezt egy kicsit konkrétabb. De alapvetően, akkor használja, ha modulo szeretnénk, hogy valami kerületi. Tehát, ha csak szeretné, hogy a szám egy a nyolc, akkor a modulo minden más szám, és ez lesz mindig vissza szám nulla nyolc. Szóval néhány examples-- ha már 55 modulo 10, ez csak adja a fennmaradó 55 osztva 10, ami 5. Aztán három modulo öt, valaki kitalálni, hogy mi lenne az? Három. Tehát, ha van egy kisebb szám előtt a modulo, akkor nem megy, egyenlően. Ez nulla. Tehát csak vissza a szám is. Így nyolc modulo nyolc lenne? STUDENT: Zero. ALLISON: Zero. Mert megy egyenletesen. 16 modulo 15? KÖZÖNSÉG: Egy. ALLISON: Cool. És akkor ez utóbbi csak a mutatják you-- lehet, hogy vajon, OK, mi a műveletek sorrendjét itt? Ne osztjuk először? Vajon modulo először? Így modulo tart ugyanazon elsőbbséget a szétválás, illetve a szaporodás, és bal asszociatív. Így ugyanúgy. Te mindig csinálni zárójel, akkor szorzás, osztás, és modulo érdekében balról jobbra. Így az általános szabályok. Csak tedd ugyanabba a kategóriába mint osztás és szorzás. Tehát ebben az esetben, mi lenne Jelenleg 1 + 2 ad nekünk 3. Úgy szaporodnak, hogy a 2, így kapunk 6. Azt, hogy a modulo 2, ami nekünk? STUDENT: 0. ALLISON: 0. És akkor mi hozzá 2, ezért kap 2 ez utóbbi esetben. Szóval modulo-- te biztosan fog kell gondolkodni arról, hogyan bele hogy amikor csomagolópapír körül az ábécé. Ha a Z, és meg kell mozgatni előre három terek eljutni C, ott van ez az egész koncepció A csomagolás körül. Szóval hagyom, hogy srácok, hogy kitaláljuk, pontosan hogyan fogsz használni azt. De mindenképpen hasznos eszköz a PSET ezen a héten. Én nagyon szeretem ezt. Ez az egyik kedvenc psets. Majd miután csinálod, ha barátai, tudod, mint, megküldik egymásnak titkos üzenetek, és győződjön meg róla, hogy működik. Mert ez lesz visszafejteni, vagy bármi. Sok-sok móka. És ez a szakasz végén. Én lezárult. Még mindig van 15 percig srácok, tehát ha van valami hogy szeretne menni át tovább, lennék boldog, hogy nem azt. Bármely más kérdésre A PSET azoknak, akik elkezdték, vagy olvassa el a spec. Bármi, amit beszéltünk körülbelül az elmúlt órában és 15 percig, hogy szeretne nekem hogy milyen felmelegít, én boldogan. Vagy nevezhetjük kilép, és akkor minden hagy és az előírtnál több édességet magával ahogy megy. De ha van minden még kérdései vannak kérem tudassa velem. Azt is jön fel, és beszélni velem utána. Megígérem, hogy nem harap. Bármi más? Mindenki jó? Mindenki érzés tudják kezelni ezt PSET? Te rendben lesz srácok. Nyitva tartás vannak az oka. Cool. Rendben. Nos, ebben az esetben, köszönöm mindenkinek, hogy eljöttetek. Remélem, hogy a jövő héten. Nem lesz több cukorkát. Lehet, hogy más jó dolog. És én várom, hogy egyre tudni, hogy minden az Ön számára az idén.