[Zenelejátszási] Jason HIRSCHHORN: OK, mindenki. Üdvözöljük a szakasz. Ez CS50, mi nagyon első szuper részén. Mint tudjátok, a jövő héten Rendszeres szakaszok indul, de ezen a héten együtt vagyunk. Van magam. A nevem Jason. Én vagyok a tanár a Computer Science. Van Andi, aki a fejét TA a CS50. És Scaz professzor Brian Scassellati, ő egy tanár Computer Science. Mi vagyunk a CS50 fejek a Yale. Tudod mindig email nekünk heads@cs50.yale.edu. Mi lesz az előadás. Leszünk munkaidőben. Ha valaha bármit is érted, mindent, amit kell, nyugodtan, hogy eljussanak hozzánk. Szóval mit fogunk ma csinálni? Vagy addig, mi jön a héten? Így munkaidőn van hétfő, kedd, Szerdán és csütörtökön 8:00 11:00 között. Van egy ütemterv a honlapon. Szakaszok, mint már említettem, kezdik a jövő héten. És akkor megtudja, ezen a héten, mi az idő a rész, hogy milyen nap van, és aki a TA. Probléma Set 1 esedékes csütörtökön délben, pénteken délben egy nap végén. Igen, van, kilenc késő nap. És a kilenc probléma készletek. És csak az egyik használható késedelmes nap után a probléma sor. Igen, gyakorlatilag minden problémát készletek miatt pénteken délben. Ez minden. Minden, ami részleteket a tananyag. Minden pénteken, már az ebédet. Azt szeretném, hogy ez a nagy Természetesen érzem, egy kicsit kisebb. Szóval nyugodtan válaszolj. Ingyen ebéd fickó osztálytársak és a személyzet. cs50.yale.edu/rsvp. Mindezek a dolgok, hogy Nekem van a képernyőn, és több, megtalálja cs50.yale.edu vagy cs50.harvard.edu, ha megy a Harvard és figyelik ezt az online. Szintén az ilyen honlapok, ott egy csomó források az Ön számára. Minden előadás nem csak a video Az előadás, de azt is megjegyzi. Valaki fogja nézni a előadás és vegye tudomásul veszi az Ön számára. Szóval lehet csak fizetni figyelmet előadásokon, vagy használhatja a jegyzetek / mi megjegyzi, hogy kiegészítse saját jegyzeteket. Vannak diák az interneten. A forrás code-- mindent David megy át előadás, vagy Scaz megy át előadást, hogy forráskód elérhető online is, hiszen mint már említett, videók. Szakaszok, hasonlóképpen, mind filmre. Az összes ilyen diák lesz elérhető. Minden, ami a kód elérhető az Ön számára. Vannak rövidnadrág honlapján, ahol CS50 személyzet tagjai töltik öt és 10 perc megy keresztül témák az Ön számára. Néhányan azok közül, amit már felmerült probléma készletek. Munkaidőben, mint már említettem, hétfő a csütörtökön 8:00 11:00 között. CS50 tanulmány egy fantasztikus erőforrás. Vannak gyakorlatban problémákat, minta diák, ismert hibák hogy a diákok szeretnék, hogy befut, Alapvetően minden témában vagyunk fedezi a tanfolyam. És végül, ezen a dián legalábbis Reference50 amely ad tájékoztatást minden a C függvények amit valaha talán remélem használni és még sok-sok más. Ismét az a pont pont pont a a képernyő alján az azt jelzi, hogy van még Több erőforrásait azokra a két honlapon: cs50.yale.edu, cs50.harvard.edu. Szóval, mit csinálunk ma? Nos, először is fogok adni megnézi az erőforrásokat. Már csináltam egyet. Nézz meg minket. Most megyünk, hogy menjen át adattípusok és szolgáltatók C. Aztán Andi jön ide, és megy át könyvtárak C printf (), függvény, amellyel már ismerős, vagy hamar nagyon ismerős. És akkor is megy át feltételes és hurkok. És végül, Scaz megy át a CS50 ID. Ha még nem galamb Már Probléma Set 1, valamint azt, hogyan kell használni a terminál és hasznos utasítások majd ad néhány demót és gyakorlatot kódolás a CS50 ID. Mielőtt ugrani erre tartalom ezen az oldalon, Van valakinek bármilyen kérdése eddig? Nagy. OKÉ. Sebességváltást. [Sebességváltást] Ez volt számomra váltás fogaskerekek egy kézi autómosó. Tehát adattípusok C, akkor nem csak azt Egy x változó, és ez lesz a 10. sor, egy egész szám, talán a szám 1, on line 20, decimális szám 10,5, majd egy pár vonalak Később egy string, szeretem CS50. A C-ben a változók csak egy dolog, és egy dolog csak. És így van, hogy adjon nekik típusok. És ezen a fórumon, amit Van egy lista a fajta. Vannak karakter, amely karakterként. Szóval ez egy betűt az A, B, C, D. Ez is egy helyet, vagy hogy is lehet új sor karakterrel. Vannak egész számok, melyek csak szám, egész numbers-- vagy egészek rather-- de tizedes nélkül. Mert törtek van lebegőpontos számok. Lebegőpontos számok a számok tizedes. Aztán ott vannak vágyik, amelyek Lényegében már egész számok. Észre fogod venni, hogy egy hosszú 8, míg egy int 4. Hozom, hogy egy másodperc. Ennek oka, hogy vágyik képes tárolni akkor is, Több mint egész int képes tárolni. Dupla hosszú úszó. És végül, van húr, amely egy típus hogy akkor valószínűleg korábban használt. Ha Ön is hashtaget # includeCS50.h a forrás file, akkor használd a string típusú. Valójában nem épített C. Van egy pár más típusok is. De ezek közül a legfontosabbak a amit majd használni és a találkozás. C mint ismét említettem, Minden változó-- meg csak akkor lehet egy típusú, és az egyik típus csak. Ennek oka, hogy a C egy statikusan típusos nyelv, szemben a dinamikusan típusos nyelv ahol, ha létrehozunk egy változót meg lehet változtatni, mi tárolt ez ahogy megy a programban. Több mint itt a jobb oldalán, már a különböző méretű az ilyen típusú adatok byte-ban. Tehát egy karakter 1 byte. Ez a 8 bitet. És ez azt jelenti, mivel 8 bit van nyolc 0 és 1-esek. Láttuk azokat a demók az első héten, hogy bináris izzók. 8 bit vagy 1 byte, tudjuk jelentenek a számok 0-255. Jobb. Ha mind a 8 bit a 0, ami 0. Ha az első bit 1, ez a szám egy, és így tovább, egészen a 255. És ez az, amiért a karaktereket lényegében akár 255 közülük, de ez bőven fedezi az összes A karakter azt kell használni. Mert egész számok, akkor van 0 és akkor már 2 a 32 mínusz 1. Ezek hány lehetőségek van az egész. Egy hosszú, akkor 0 2 A 64 mínusz 1. Szóval van sok-sok, több lehetőséget vágyik. Strings, ez egy kérdőjel mert ez egy filmsorozat későbbre. Igen. Elmondhatom, mindenki szélén székhelye, mint mi, hogy a kérdőjel? Ez egy filmsorozat. Mi lesz a jövőben kiterjeszteni a mérete vonósok és még beszélni szálakat. Mivel karakterlánc tulajdonképpen az egyik képzés kerekek tesszük ebben a Természetesen az elején majd vegye le később tovább, mert húrok C valójában pointerek a karakter tömbök. De ismétlem, ez egy filmsorozat későbbre. Mielőtt lépni bármilyen kérdése, kommentek, aggodalmak ezt a diát? OKÉ. Azt kell, hogy egy fantasztikus magyarázat adó. Akkor is, amikor programot írsz, fogsz használni ezeket a piaci szereplők. Igazán egyszerű jelek, hogy lehet csinálni egyszerű műveletek, amelyekkel akkor valószínűleg Már nagyon ismerős. Például, a jobb oldalon oldali, azt látjuk, adjunk hozzá. Hozzáadni, akkor csak nem egy plusz jel. És így lehet, hogy két változó x és y. Megteheti x + y a kódban. Lehet, hogy szeretne az alábbiakra: mondod, a szám 7 és 3, szeretné tárolni, hogy egy változó nevű összeget. Meg tudod csinálni int a típus, hely Összegezve, a változó nevét, = 7 + 3; Mi lenne, hogy tárolja összeget? Bárki? Ha tudtam volna, az összeget = 7 + 3. Mit kellene tárolni összeget? Akkor csak kiabálni ki. Közönség: 10. Jason HIRSCHHORN: 10! Ez pontosan így van. Mi a helyzet az összeg = 7-3, Én csak használni, hogy kötőjel jel. Mi fog tárolni? Közönség: 4. Jason HIRSCHHORN: 4. Sum talán a rossz nevet hogy változó, de 4 kellene tárolni. Szaporodni C, használja a kis Csillagok karaktert, akkor ne használjon x. A felosztáshoz, használjon Előre Slash nem a divízió szimbólum. És hogy modulo, használja a százalék szimbólum. Tehát mondjuk Szeretném látni int z = 7% 3, mit kellene tárolni z? Szóval, ez lényegében azt kérdezi, mit jelent modulo csinálni? Tudja valaki, hogy mit modulo nem? Igen. y 4. 1. Előadó: Ez a maradékot. JASON HIRSCHHORN: Ez a fennmaradó felosztásakor. Tehát 7 osztva 3 2 1 fennmaradó. Tehát 1 kellene tárolni. Te tetted kivonás, de ez így működik. Ez az, amit a moduló nem. Értelemszerűen több osztja azt egy másik számot, és visszatér hozzád a maradék. Tehát ismét 7% 3 ad 1, mert 7. osztva 3 2 1 fennmaradó, és visszaadja a maradékot. Mi a helyzet menjünk vissza egy lépés, hogy ez az elosztás jel. Ha én 7 / osztva 3-hoz valaki tudja, hogy mi fog visszatérni? Hangszóró 2: 2. Jason HIRSCHHORN: Miért 2 és nem 2.333? Hangszóró 2: Azt hiszem, ez csökkenti le után az egész szám. Jason HIRSCHHORN: Tehát Ez pontosan így van. A C-ben, ha nem részlege két egész 7 osztva 3, ez lesz a válasz, amely ebben az esetben 2,3333 örökre és úgy találja, hogy tizedesvessző és felaprítja le mindent a tizedesvessző után és ez csak visszatér 2. Tehát, ha én 8 osztva 3. Hogy valóban tudjuk, hogy vissza 2,666, de felaprítja mindent le A tizedes, levágja az egészet, és csak visszatér hozzád 2. Tehát 6 osztva 3, 7 osztva 3, 8 osztva 3, minden fog térni hozzád 2. Nem tudja valaki, vagy egy találgatás, hogy miként tudnék valójában kap a teljes választ, ha azt akarom, hogy tizedes? Igen. Előre. Hangszóró 3: Használjon float? Jason HIRSCHHORN: Mit értesz? Hangszóró 3: Mert azt mondtad, a úszó számok [hallhatatlan] Jason HIRSCHHORN: Így van. Szóval, ez pontosan így van. 7 egész szám. De ha akartam fordulni, hogy egy lebegőpontos szám, Azt kell tárolni, hogy mint 7,0, mert a számítógép valóban stupid-- láttuk, hogy A PB és a J example-- ez csak nem pontosan mit mond rá. Tehát ha írsz 7, akkor Szerintem ez egy egész szám. Ha írsz 7,0, még akkor is, tudom, ezek a dolgok egyenértékű, kezeli, hogy mint egy lebegőpontos szám. Tehát, ha nem 7,0 osztva 3, vagy osztva 3,0, ez azt mondanám, OK, most dolgunk úszik. Én vissza fog térni hozzád 2.333333 örökre. De nem igazán örökké, mert mint láttuk is előadás, Ezek lebegőpontos számok nem éppen pontos. Szóval, ha szeretnénk, hogy tizedes, vagy annak egy részét, hogy tizedes, akkor meg kell use-- egyikük Kell lennie egy lebegőpontos szám és a számítógép meg kell értenie, hogy ez egy lebegőpontos maga foglalkozik, nem egész szám. Bármilyen kérdésre, hogy asztalt a jobb oldali, eddig? Vagy a bal oldalon, a balra, a bal oldalon. Igen. Hangszóró 4: Így van. Mert, mint egy szokványos egészek, akkor write-- azt kell írni lebegnek? Jason HIRSCHHORN: Igen így van. Nos, ha azt szeretné, hogy hozzon létre Változó, hogy egy úszó, meg kell mondani úszó z egyenlő valamit. Hangszóró 4: OK. Jason HIRSCHHORN: De ha akartam do 7 osztva 3 és kap, hogy tizedes, Én megtenném úszó z = 7,0 / 3,0; és hogy adna nekem a lebegőpontos száma. Hangszóró 4: OK. Jason HIRSCHHORN: Ha én tettem valami ilyesmit int z = 7/3, hogy adna nekem egy egész szám, mert ezek egész számok. Ennek van értelme? Hangszóró 4: Igen. Jason HIRSCHHORN: OK. Nagy. Bármilyen további kérdése van az asztalnál? Tényleg? Olyan izgatott vagyok. OKÉ. Tehát néhány más dolog fog használni, sokszor olyan körülmények között, vagy hurkok, vannak az ilyen típusú operators-- Az ilyen típusú logikai kifejezések. És mint megtudtuk, ==, amit használja, hogy ellenőrizze, két dolog egyenlő. Tehát itt vagyok megnézni, ha x == y, hadd ismét feltételezzük, hogy x értéke 7 és Y jelentése 3. Tehát, ha én írtam 7 == 3, milyen azt, hogy vissza hozzám? Igaz vagy hamis? Közönség: Hamis. Jason HIRSCHHORN: OK. Úgy érzem, mindenki kap ez. Tehát mindenki, mi lenne, hogy visszatér? Közönség: Hamis. Jason HIRSCHHORN: Hamis. Nagy. 7. nem egyenlő 3. Tehát 7 == 3 visszatér hamis. Ugye van egy nem egyenlő jel, így ha Az ellenőrzött 7! = 3, mi lenne, hogy visszatér? Közönség: Igaz. Jason HIRSCHHORN: Igaz. Kitűnő. Valaki nagyon hangsúlyos A hát és értékelem. Aztán, hogy kevesebb mint üzemeltető, kevesebb vagy egyenlő, mint operátor, nagyobb, mint üzemeltető, nagyobb vagy egyenlő, mint operátor. Tehát még egy józan ellenőrzés. Ha tudtam volna, 7 nagyobb, vagy egyenlő mint 3. Mi lenne, hogy visszatér? Közönség: Igaz. Jason HIRSCHHORN: Igaz. Igen. A hátsó szobában, hátoldal A szoba, fantasztikus. Ezek kombinálásával kifejezést, ha úgy tetszik, valamint, egy logikai és amely && Vagy logikai VAGY amely || ||. És így most ki lehet próbálni két dolgokat together-- Ez olyan vicces? Mi olyan vicces? Tehát, ha azt akartam, amit mondhatok, 7 nagyobb, mint 3, illetve 2 kevesebb, mint 4? Nos, ha 7 nagyobb, mint 3, ez igaz. 2 kevesebb, mint 4, ez igaz. Szóval ez az egész dolog lenne visszatérni igaz. Ha én tesztelt 7 nagyobb, mint 3 és-- Én csak felvette véletlen számokat here-- 4 kevesebb, mint 2, nos, ez hamis. Így igaz és hamis hamis. És akkor megy, és összekapcsolják a sok feltétel együttesen, mint szeretné. Van valakinek bármilyen kérdése, kommentek, aggodalmak eddig? És látom néhányan fotózni rólam a képernyőn, amely nagyra értékelem. Remélhetőleg, ez nem Snapchat. Remélhetőleg ez a jegyzeteket. De mindezen mennek hogy elérhető az interneten. Szóval nem kell képeket e. Mint már említettem, mindent az interneten lesz elérhető az Ön számára. OKÉ. Én körülbelül kap színpadról, úgy senkit akarok mondani semmit mielőtt ez megtörténik? Kérdések? [Közbeiktatásával VOICES] Jason HIRSCHHORN: Ó, hagyja abba. Ti vagytok túl szép. OKÉ. Megyek címkézni ki. Menjünk. ANDI Peng: Megyünk csinálni Kínos mikrofon változás most. Jason HIRSCHHORN: Én vagyok fog tartani ezt le. ANDI Peng: értékeljük a támogatást, srácok. Hallasz? Ez jó? Tökéletes. Gyönyörű. Hadd behajt, hogy. OKÉ. Szóval, én azon vagyok, hogy ezt, mint egy óriás információk kiírási srácok most. És nem gond egyáltalán, ha Nem követi minden kis vonal, amit Mindjárt megmutatom. Mint mondta Jason, mindent ez teljesen online. Csak megyünk próbáljuk bemutatni mindenki az alkalmazott elveket ezek közül néhány diák. Tehát csak kövesse végig. Nem gond, ha nem érti mindent; Azonban, ha bármely ponton úgy érzi, elveszett, emelje fel a kéz, mi ne, nincs gond. Hűvös. Szóval azt hiszem, valami, Davidnek Már a fajta említett előadás és Jason fajta utalt hogy ma milyen egy könyvtár. Tehát a programozásban, van ezek a dolgok nevű könyvtárak. Ahol, lényegében minden, ők csak egy sor A funkciók, azaz Lényegében csak kód, ami már írta valaki, hogy mi lehet az összes belül fel kell használni a programokat. Tehát hogyan működik egy normális könyvtári munka, ugye? Belépsz a könyvtár ajtaja. Meg vannak ezek könyvek kihúzhatja és információkhoz férhet hozzá, belül azokat a könyveket. Ugyanaz a programozás során. Van egy könyvtár, amely már írták mások. És az is, hogy tudod, programozó vagy egy diák, férhetnek hozzá, hogy a könyvtári keresztül hashtag #include. Például, a C-mi Három C-- a legtöbb általánosan használt három szabványos C libraries-- az input / output könyvtár, a húr könyvtár, és a matematikai könyvtár. Tehát az Ön első Néhány probléma határozza, azok lesz a három hogy te elsősorban használ. Így például David már kifejtette előadás, A standard I / O könyvtár, vagy a standard input / output könyvtárában pontosan így működik. Ez lehetővé teszi,, a kódban, hogy input semmit a felhasználói és kimenet a képernyőn, lényegében nyomtatjuk ki a képernyőre. És így minden alkalommal, amikor használja a funkciót, Például a függvény a printf (), amely fogunk menni a következő diát, Ügyeljen arra, hogy a standard I / O könyvtárban, vagy mást, amit nem fognak tudja használni a printf () függvénnyel. Mert te, mint a programozó sosem írta, hogy a funkció, te csak használja valaki másnak a kódot a saját kódját. Van ennek értelme mindenki? Hűvös. És akkor alapvetően kap rá A string.h könyvtár és a math.h könyvtár, .h csak azt jelenti, könyvtár, Más könyvtárak, hogy akkor végül használja kódban. Azonban célokra Ezen könyvtár is have-- e class-- mi is az úgynevezett CS50 könyvtár, cs50.h, ahol mi, a Ön átolvasás hoztak létre sok fontos és hasznos funkciókat. Úgy, hogy programozóként lehet háton le amit már írtam, hogy Ez a funkció elérhető-e Ön saját használatra. Én lesz, amely egy pár a funkciók általánosan használt, de tudjuk, hogy ezek Az összes googleable interneten. Nyugodtan, húzza fel a CS50 könyvtár és akkor már az összes funkciót is. Igen. Hangszóró 5: Tehát, ha nem lennél program használata biztosított nekünk osztály, nem, hogy értem mi volna letölteni, és megtalálni ez a fejléc fájlt magunkat, és mondd a számítógép, hol van? ANDI Peng: Nagy kérdés. Pontosan. Tehát ez olyan, mint ha nem személyesen jelen volt egy könyvtár, nincs módja, hogy ténylegesen el is elérheti. Tehát ugyanaz a dolog programozás C, akkor gondoskodniuk kell arról, hogy te vagy a mi készüléket, mivel a könyvtár már foglalták bele. És akkor, amikor Hashtag #include, a könyvtár létezik. Igen. Jó kérdés. Mindenki jó? Hűvös. Minden rendben. Mi is így fogjuk megütni, Lényegében, mi Az első funkció, Mi, mint a programozók lesz használva a mi kódot. Ezt nevezik a printf () függvénnyel. Szóval, printf () függvény, ahogy már Már mondta az utolsó dia benne van a standard I / O, standard input / output, könyvtár. Úgyhogy győződjön meg róla bármit is using-- Ó, hadd megragad a lézer pointer-- ha Ön használ A printf () függvény, van, hogy tartalmazza a szabványos I / O könyvtárban vagy máshol, amikor fordítod, fogsz kap egy hiba mert a számítógép lesz, mint, Ó, én nem tudom, hol printf () függvénnyel, amit nem mond nekem, hogy hol printf () van. Nos printf () tartalmazza a standard I / O, így ha használja a printf (), győződjön meg arról is, hogy a A fenti sorban a kódot. Így például printf () Itt egy olyan funkció. Csak annyit tesz, nyomtassa ki valamit zárójelben a felhasználónak. Vajon bárki szeretnék, hogy a stab hogy mi ezt a kódsort jobb Itt fog nyomtatni? Ezért, a válasz a képernyőn. Bárki? Verdi: Az alsó. ANDI Peng: Verdi, miért nem mész előre, és azt mondják, az egész nyilatkozatot? VERDI: Hello, a nevem Andi és én vagyok 20 éves. ANDI Peng: Ó, szép. Tehát ezen a vonalon megyünk nyomtassa ki, Hello, a nevem Andi, és én vagyok 20 éves, amelyek valójában egy igaz állítás. Syntax. Tehát pár szintaktikai kérdések srácok szeretnénk, hogy győződjön meg róla, tudja. Idézetek. Dupla idézetek mondani a számítógép, amely mindent belül lesz kinyomtatva. Minden benne lehet Csak pontosan hogyan beírta, kivéve a általánosan a végén, fogunk szeretne venni Egy hash-- ó sorry-- egy kötőjel n. Tehát egy kötőjel n. Akar valaki akkor gondolom A mit tesz a kódot? Igen. Hangszóró 6: leteszi egy új sort. ANDI Peng: Pontosan. Szóval az egész nem az, hogy bármi történjék is Ezt követően, miután ez a kijelentés, ki kell nyomtatni egy új vonalat. Tehát, hogy ha írsz a kód nem véletlen, hogy a dolgok hozzátétele a végén hogy nem akarod. Hogy minden helyreáll szépen nyomtatott egy sort és akkor kezdődik a következő sort. Tudja valaki emlékszik, hogy mi pontosvessző tesz, amikor mi kódolás? Igen. Hangszóró 7: Nyilatkozat. ANDI Peng: Sajnáljuk? Hangszóró 7: végződik a nyilatkozat? ANDI Peng: Igen. Tehát a C, vagy bármely más programozási nyelvet, a pontosvessző jelöli a végén egy programozási vonal. Így például az angol használjuk időszakban mondani, ó, ez a vége egy mondatot. A programozásban, ugyanaz a dolog, hogy van egy pontosvessző jelöli a sor végét. Gyakran, ha éppen kiindulási programozni, akkor rájössz, felejtsd el, hogy pontosvesszõt majd megpróbál futtatni a kódot, és ez nem működik. És te, mint Ah, én nem tudom, miért, meg kell dolgozni. Esélye van, akkor valószínűleg elfelejtette a pontosvessző vagy zárójel, vagy valami valahol. Szóval, ez fontos megjegyezni. Hűvös. Rendben, kezeket fel, milyen sokan itt valaha hozott AP Computer Science vagy programozott Java előtt, valaha? OKÉ. Szép. Ez nem lesz alkalmazható majd, de a Java, akkor Van egy úgynevezett System.out.println amely nem létezik C. Tehát a C, amikor szeretné adni a változók be, amit akarsz kinyomtatni, van adott szintaxist fogjuk használni. Ezt hívják a placeholding-- lényegében hozzátesszük helyőrzők helyett Az egész, vagy a változó hogy szeretnénk nyomtatni. Tehát ahogy ti is látni ezért ide Új könyvtár fejléc fájlt itt. A CS50 könyvtár. És szerepelnek abban az CS50 könyvtár egy közös funkciót fogjuk használni a mi természetesen nevű GetInt (). Tudja valaki szeretné, hogy egy stab mi GetInt () esetleg csinál. Közönség: [hallható] ANDI Peng: Sajnálom. Nem sikerült hallani. Maddie, senkinek. Maddie: Ó, ez kéri hogy egy egész szám. ANDI Peng: Pontosan. Szóval ez a funkció, a másik funkciót, ami már írta valaki más hogy mi is felhívhatja őt. Minden ez is figyelmezteti a Önnek, a felhasználónak, a bemeneti, amit akarsz, a kód fut, és tárolja whatever-- Ebben az esetben mi vagyunk GetInt () - nek, így ez azt jelenti vagyunk megszerzése egy egész szám. És fogunk tárolni hogy egy másik egész szám hogy amit most tett nevezett korban. Van ennek valami értelme, hogy mindenki? Hűvös. Tehát most, hogy már tárolt ezt az egész, hogy már kéri a felhasználót, Ez a változó volt, most már teremtett int típusú nevezett korban, mehetünk előre, és helye hogy a mi printf () függvény. Szóval a szintaxis általában printf () függvénnyel hogy bárhol a tényleges fizikai vonalat szeretné felvenni, hogy egész, te, hogy a szimbólum ott, a százalékos szimbólum, a típusú változó, amit akar. Tehát ebben az esetben a kor egy egész szám. Szóval fogsz közé % i mert egész. Aztán, miután a nyilatkozatot, fogsz csinálni vessző és a A változó neve. Tehát itt fogunk nyomtatni ki, Hello, a nevem Andi, és biztos vagyok üres éves. Hashta-- vagy, sorry--, kor, amit csak bemenet. Tehát ha én bemenet 20 az én GetInt () itt, akkor nyomtassa ki pontosan ugyanaz a dolog. De, ha akartam valamit bemenet mást, mint talán 40 vagy 45, akkor azt látjuk, hogy tükröződik ennek megfelelően a kódot. Szóval ez egy példa valami amelyben kinyomtatott és úgy néz ki, hogy Ön, mint ha ez ugyanaz a dolog, de a motorháztető alatt a A számítógép van valójában nagyon különböző dolog történik. Hűvös. Minden rendben. Szóval mi van, ha azt akarjuk, több változó? Elég könnyű. Ugyanez. Mi is van egy új funkció Itt az úgynevezett getString (), is tartalmazza a CS50 Library, hogy minden ez is figyelmezteti a felhasználót Egy szöveg, amely csak egy sor karakterek, így, mint egy mondat, vagy akár egy nevet. Tehát ebben az esetben, mi lett volna a két helyőrzői% s karakterlánc és% i integer. És fogunk követni hogy a két változó mi legyen benne, abban a sorrendben, hogy szerepelnek a mondatban. Így például, a nevem üres, szeretnék egy név van, így fogom, hogy a név első. Aztán utána, azt akarom, életkor, szeretné, hogy kora második. És így ha akartam bemenet, Hello, nevem Andi, és én vagyok 20 éves. Ha én beadott Andi és 20, a Pontosan ugyanaz lenne kinyomtatni; Most azonban van két tárolt változók nevét, valamint int. Igen. Hangszóró 8: Lenne képes futni, ha bekapcsolva nevét és életkorát végén, hogy? ANDI Peng: Igen. Ez nagyon jó kérdés. Tehát hosszú történet rövid, nem. Mivel nevet és age-- mi a változó típus név? Hangszóró 8: karakterlánc. ANDI Peng: És mi változó típusa korban? Hangszóró 8: Egész. ANDI Peng: Tehát itt van egy helykitöltő A string és egész, ugye? Tehát például, ha váltani ezeket, A számítógép nem fog tudni. Ez lesz, hogy ellenőrizze a húr, és ha megpróbál, hogy ez egy int, ez olyan lesz, mint várj vagyok zavarodva, akkor azt mondta, meg kell allotting memória int. És itt, amikor arra számít, egy egész szám és adja meg a nevét és egy sor helyett, ez is lesz nagyon zavaró, hogy nem fog futni pontosan úgy, ahogy szükség van rá. Tehát itt, a név- és szintaxis Nagyon fontos futó kódot. Mindenki jó? Igen. Maddie. Maddie: Itt, tudom, átnéztük A példák az osztályban, ahol kérni mi az a kor, mi a neve. Itt lenne az, hogy doesn't-- ha voltunk ezt a kódot, akkor nem kér, hogy? De azt csak meg kell adni a két szám és akkor fog futni, mint ez? ANDI Peng: Igen, pontosan. Tehát, ha akarta, mert a kijelző, kérjük, adja meg a kor, akkor csak adj egy printf () függvény amely azt mondja, kérjük, adja meg életkor, fölötte. Ez egy jó kérdés. Igen. Hangszóró 9: Szóval, ilyenkor már tartalmazza GetInt () [hallható]. ANDI Peng: Nem, valójában nem az. Szóval mindez csak kéri egy üres képernyő hogy a felhasználó a bemeneti valamit. Ha azt szeretnénk, hogy ha azt akarjuk, hogy nyomtassa valamit, ami megmondja a felhasználó, mint, Kérem, adja meg életkor, akkor lenne a printf (), hogy magad. Mert mindenki használja ezt a függvény különböző dolgokat, akkor lehet tárolására kor, akkor lehet tárolása címét, akkor lehet telefonszámok tárolására. És ez így tényleg fel A fiúk egyéni felhasználásra A amit szeretnél mondani. Igen. SPEAKER 10: Szóval, csak tisztázni, ahol Mit bemeneti neve és életkora úgy, hogy felbukkan helyett% s? ANDI Peng: Mivel a felhasználói? SPEAKER 10: Igen, mint hogyan tudom hogy it-- Hova tegyem Andi, és hová tegyem 20? ANDI Peng: Igen. Tehát, ha úgy döntesz, hogy valójában ezt a kódot, Én valójában nem fut a kód, ez csak itt és most. Ha én lennék futtatni a kódot, megtenném lefordítani a kódot, hogy a fájl, futtatni a kódot, és akkor nem lenne Csak két szóközt számomra, hogy inputot. Igen. Srácok fogja látni, ha játszani körül a kódot magad. Rendben fogunk lépni a következő szakasz, amit mi lesz, amely ma. Fogunk megy át, amit feltételes állítások. Tehát, ha a srácok emlékezni és visszahívja a előadás, feltételes állítások, Mindenekelőtt ezek egy sorozat Az utasítások a számítógépen amely ha egy bizonyos feltétel igaz, végrehajtja a kódot belsejében ez a feltétel. Tehát lényegében Scratch-- A nagy téma a mai az, hogy a srácok már minden láttam a logikája mindent hogy mi fedez. És minden, amit csinálunk, fordítására valamit hogy nagyon intuitív Scratch, és nehéz kódolás is a szintaxist fogjuk használni az osztály, amely C. Tehát logikus, mindez blokk az, hogy a kódrészletet ott. Igen. OKÉ. Azt is kap egy if ... else nyilatkozat, amely csak egy hozzáadott réteg komplexitás, hogy az if ahol a számítógép vesz egy pillantást erre és úgy látja, ha ez a feltétel igaz, nem amit bent a két konzolok, else-- így olyan, mint az alap, ha ez nem felel meg a condition-- erre. Ez olyan, mint egy útelágazáshoz. Ha esik az eső kint, tettem egy esőkabát, mást semmit mást nem hozott egy esőkabát. Vajon ez a logika értelme mindenki? Hűvös. Minden rendben. Tehát, mint egy kemény példája ez, hogy látnánk a C van, ha akartam létrehozni nevű változó házi órát. És ha házi órával kevesebb mint öt, mondom élet nagyszerű. Ez csodálatos. Ugyanakkor azt mondják, a harc real-- ami mi mindannyian ezen a hétfő Délután fel Science-hegy Valószínűleg csinálsz now-- Közönség: [nevet] ANDI Peng: Azt, hogy hogyan lenne, köszönöm, hogy. Az, hogy mi lenne Bedrótozhatsz ez a C if-- tegyük fel, már van egy változó típusú int úgynevezett házi órát itt. Ha házi órán kevesebb mint Öt printf (), Az élet nagyszerű. Emlékezz tartani / n, mert szeretne egy új vonal után. Else print, A harc valós. Mindenki érti, hogyan Áthelyeztem ebben a blokkban ebbe kódtömb? Hűvös. Minden rendben. Tehát most megyünk megnézzük Több Amennyiben nyilatkozatok összesen. Tehát tegyük fel, a E program volt már kérnek a felhasználótól egy fokozat. Mi mappára GetInt () egy osztályos, és adjon meg egy értéket, és a megjeleníteni kívánt milyen minőségű kaptak. Tehát, ha én is elkészít egy programot, én jelenti jellemzően minden a szemünk, 90-100 van egy A, 80-90 egy B, és így tovább, és így tovább. Mi a baj ezzel a kódrészletet, hogy ez nem csinál, amit szeretnél csinálni. Igen. Hangszóró 11: Ők alacsonyabb határértékeket, de ezek nem rendelkeznek a felső határértékeket. ANDI Peng: Pontosan. Vajon mindenki hallotta, mit mondott? Ott lesz a felső határértékeket, de nem alacsonyabb határértékeket. Sajnáljuk, fordítva, alsó határ, nincs felső határ. Szóval azt akarod, hogy hogy a stab a mondás mi lenne nyomtatva ezt képernyőn, ha én is ezt a kódot. Hangszóró 11: Hiba? ANDI Peng: Hiba? Nagy hiszem, nem egészen igaz. Van valakinek egy stab? Ja, Aaron. Aaron: Ha tesz valami nagyobb, mint 90, ez azt mutatja, minden fokozat megvan. Ez megmutatja, van egy A, van egy B, van egy C. ANDI Peng: Igen. Ez pontosan így van. Szóval, az lenne csodálatos. Azonban, azok kölcsönösen exkluzív, azt hiszem. Ha én is futtatni ezt a kódrészletet. És akkor maradjunk annyiban, én bevitt évfolyam 95. Tehát 95 kerül tárolásra Az int hívott fokozat. És így C egy nyelvet hogy odafut fentről lefelé, így ez lesz mindig távon akár lefelé. Így fog ide jönni, olvasni, ha fokozatú nagyobb, vagy egyenlő, mint 90, printf () kaptál egy A. Nagy, I. Van egy 95, ez nagyobb, mint 90. Meg fog nyomtatni, Kaptam egy A. Ez megy hogy vessen egy pillantást ez, ha ez megy mondják, jól 95 szintén nagyobb, mint a 80, ez meg fog nyomtatni akkor is kapott egy TAK B felkiáltójel, és így tovább, és így tovább. Szóval mint mindannyian láthatjuk, ez egy gyakori hiba hogy előfordulhat, mikor vagyunk kód írása, hogy néz ki. Bárki, bármilyen kérdésre hogy miért történt? Nagy. OKÉ. Szóval hogyan lehet ezt oldani, nyilvánvalóan A következő logikus kérdés. Nos, van ilyen szép dolgokat hívják segítségül, ha mást, ha mást Ha mást nyilatkozatok. Így láthatja, ha akarta, megváltoztatni ezt a problémát, Ön akarta, hogy az egyes feltételek kölcsönösen kizárják egymást, tegyünk hozzá egy else if .... És ezek a course-- gondolunk rájuk, mint létrák, vagy mint fokok a ladder-- felveheti, mint sok ilyen, mint te szeretnénk annyi feltételeket, amennyit csak akar. Tehát itt, ha én beadott minőségű, hogy 95. Ha fokozatú nagyobb, mint 95, printf (), kaptam egy A. Nagy. Meg fog látni mást ... ha és ez meg fog tudni, Ó, nem, Már végre az első mást. Én tudom-- vagy az első if-- Tudom, hogy Nem kell nézni ezek közül bármelyik mert egyikük már igaz. Szóval ez fog futni fentről lefelé. Amint az első igaz, akkor ez megy, hogy átugorják az összes többit Az más ... ifs. Ennek van értelme? Szóval, így van különböző szintű ellenőrzés és amint egyikük hamis, a többi is, akkor nem is ellenőrzi. Hűvös. Minden rendben. Tehát ez egy példa a különböző egyfajta feltételes utasítás látjuk ritkábban, de majd meglátjuk, és használjuk őket. És ők gyakran hatékony bizonyos esetekben. Tehát van az úgynevezett A switch kifejezésben. Szóval mielőtt borított mi egy mást nyilatkozatot, az if ... else utasítás. Itt meg mi nevű kapcsoló nyilatkozatok. Szóval, mikor használjuk kapcsoló nyilatkozatok a kulcs? Tehát egy switch utasítást, akkor Általában, jellemzően, valójában te csak bemeneti egészek, az Ön változó, hogy te ellenőrzi. Tehát ha azt akartam, hogy nézze meg, ha egy bizonyos number-- például fokozatú, ha kaptam egy 90. Azt akarom, hogy lássa, hogy egy A, B, vagy C tudtam egy helyzet. Azonban az ügy hogy egy másik állandó. Tehát ebben az értelemben, a switch utasítást csak ellenőrizze az egyenlőség két szám. Ez nem ellenőrzi másra. Szóval ez valami nagyon Vigyázz, ha éppen ez. Tehát itt, ha akartam ellenőrizni, hogy ha én osztály 90 egyenlő 90 vagy 80 vagy 70 vagy 60, majd a nyomtatási A megfelelő minőségű, Én lennék képes írni, hogy A switch kifejezésben. Így fog ide jönni, ellenőrzés ez egész szám, értéke ez az állandó? Ha nem, akkor fog ugrani. Vajon egyenlő állandó két, és így tovább, és így tovább, amíg eléred az alapértelmezett, Ha egyik sem egyenlő. Amint egyikük van beállítva, hogy egyenlő, ez meg fog tenni ennek kódsort és szünet. Ami azt jelenti, hogy fog megütni, hogy futni, break, és csak teljesen kihagyja hogy az alján a kódot. Tehát ebben az értelemben a fajta funkciók mint egy, ha más, ha más, ha nyilatkozatot. Tehát itt egy konkrét Például a srácok. Tehát tegyük fel, hogy én akartam létrehozunk egy változót nevű évben alakult. És azt akarom, hogy figyelmezteti a felhasználót, hogy adja Az év, hogy az iskola-ben alakult. Szóval lehet létrehozni egy switch utasítást itt. És mondjuk úgy, I-bemenet 1636. Ez a kód itt nem fog látni kapcsoló évben alakult, ami egyenlő 1636. Meg fog látni ügyben 1636, ó, azok egyenlő, printf () Nem kéne abban az iskolában északra? Mert azt feltételezzük nem az megy itt, ha megy a Harvard, megtörni, és kihagyja a végéig. Ha én lennék a bemeneti 1701, amely Gondolom mindannyian lenne bemenet, akkor hagyja az esetben jönnek le az esetben két, amely 1701- és a nyomtatási Üdvözöljük Yale! Törd, hogy kihagyja a végéig. Különben valószínűleg szed ez a tanfolyam Online amelyben case-- fantasztikus fogadtatást hogy Yale-- ez fog menni a alapértelmezett nyomtatási Hello interneten! És megtörni. Igen. SPEAKER 12: Tud használni más Az alapértelmezetten ott? ANDI Peng: Nem, mert a hogy ez az egész funkció kapcsoló épül, a szintaxist kell használni az esetben az esetben az alapértelmezett. Ez olyan, mint a ha mást, ha ez a Egy ez esetben ügyben alapértelmezett. Igen. 13 hangszórót: Ön talán már ezt mondta, de ha több mint két esetben? ANDI Peng: Igen, te is annyi esetben, amennyit csak akar. Gondold azt, hogy ugyanúgy, mint végtelenül hozzátenni az elhangzottakhoz. SPEAKER 14: Ha kapcsolható 1701 1636, nem igazán teszi a különbség a jobb? Ez csak lesz megnézni érte. ANDI Peng: Ez egy nagyon jó kérdés. És majd érinteni Ezt később, de csak tudom, hogy ez a kapcsoló nyilatkozatunk infinitely-- ez hatékonyabb, mint azt, és ha else if mert működik egy más típusú funkció, hogy lehetővé teszi, hogy lényegében csak közvetlen ugráshoz ha meg kellene lennie. Igen. SPEAKER 14: Cool. Kösz. ANDI Peng: Igen SPEAKER 14: és te nem do esetekben, mint, és nagyobb, mint. ANDI Peng: Nem. Szóval, ez az, ami korlátozza a switch hogy van hogy állandók csak, csak egész. Igen. OKÉ. Tehát ez valami, amit srácok a találkozás ritkábban az, de én csak azt akartam, hogy bevezetni arra az esetre. Mi van itt, mi van úgynevezett háromkomponensű üzemeltető. Ahol alapvetően, ez csak, mint egy if összeállítani egy sort. Itt, megyek a következő sorban, a következő oldal, mert könnyebb észrevenni. Így már mind látták ezt a jogot? Ez elég könnyű követni. Ha azt akartam, hogy egy változó nevű húr elemzi s, ha egy bizonyos számú Adok ez kevesebb, mint 100, I szeretné rendelni alacsony ahhoz, hogy a húr, mást akarok rendelni magas. Ez itt csinál pontosan ugyanaz a dolog A nyolc sornyi kódot csinálnak. Tehát itt szeretnék létrehozni változó karakterláncot. És ez a feltétele vagyok ellenőrző, ha a szám kisebb, mint 100, akkor rendelheti értéke alacsony, mást rendelni az értéke magas. Ezek diák lesz online, nincs gond ha a srácok nem kapják ezt meg. Ez csak egy egyszerűbb módon, egy nagyobb hatékony módja a kódot írni. OKÉ. Tehát most megyünk be, milyen, a legtöbb ember számára olyan, mint egy nagyon, nagyon zavaros dolog gondolkodni az elején. A hurokszakasz. Tehát ma fogunk beszélni mintegy három hurok. Fogunk kezdeni egy darabig hurok, akkor beszéljünk a do while ciklus, majd beszélni a hurkokat. Tehát lényegében a több vizuális tanulók odakinn, van, lényegében egy grafikus ábrázolása, amit egy while ciklus igen. Tehát egy programozási, akkor kezdődik és adja meg a hurok egy bizonyos ponton. Kivárunk feltétele. És ha a feltétel igaz, végrehajtja a kódot belül. És akkor jön vissza körül, és ellenőrizze. Ha ez még mindig igaz, hogy tartsa fut ezt a kódot körbe-körbe a hurok. Ugyanakkor a második, hogy a a feltétel hamissá válik, fogsz törni, és a végén a hurok. És ez lényegében a mondattani fogsz használni. Míg egy bizonyos feltétel Igaz Ehhez, ha ez nem igaz, fogsz kihagyja a végéig és lépjenek előre a program. OKÉ. Van valakinek egy példa milyen potenciálisan megtörténhet ha megpróbálom futtatni ezt a kódrészletet? By the way, SAJ-- ez Scaz, Andi, Jason-- fogjuk kézjegyével e-mailjeinket, Szerelem, SAJ. Ezek mi vagyunk. OKÉ. Bárki, aki már egy példát, vagy egy ötlet, hogy mi ez nyomtatni? Valami beugratós kérdés. Tehát itt, emlékszem a feltétellel, bejelentkeznénk számára is, míg igaz. Tehát míg ez igaz, akkor nyomdába kerülés, szeretem SAJ! Van-e olyan pont, ahol mi lenne ezen változtatni kell valamit másképp? Nem, nem igaz? Tehát itt, van találkozott, amit talán fognak lehallgatás sok A programok, a végtelen ciklus. Megtudja, hogy ha futtatni ezt a kódrészletet, ez csak fog tartani nyomtatás, szeretem SAJ! Nagyra értékeljük a támogatást, nem akarunk a számítógépek lezuhan, mert további nyomtatást Szeretem SAJ! Ezért kérjük, kérem, elkerüljék a végtelen ciklus mert ez sosem fog értékelni, hogy hamis és te soha nem fog elhagyni a hurok. És fogsz beszívása örökre. Hűvös. OKÉ. A második típusú hurok fogunk beszélni ma a do while ciklus, do while ciklus. És ezt hívják a do while ciklus mert van egy do, és egy darabig. Szóval ez elég hasonló a egy darabig hurok, de egy kicsit más. Itt fogsz csinálni amit bent az e míg egy bizonyos feltétel igaz. Tehát, ha én lennék a C és a számítógép vagyok fut le ezt a kódrészletet, Azt nézd meg a tetején. Megyek C, mondom ezt a dolgot. Aztán megnézem, míg ez az Igaz, azt kell megismételni. De míg ez hamis, aztán előrelépni és én soha nem megy vissza, hogy hurok újra. Tud valaki a stab hogy mi a különbség között ez a hurok, és az, amit Csak nézett gyakorlatilag. Igen. SPEAKER 15: feltétel után jön helyett már? ANDI Peng: Pontosan. Szóval azt mondta a feltétellel, utána jön, nem előtte. Végül, a különbség között, illetve a while ciklus az, hogy te csak csinálni amit bent ezt függetlenül attól, függetlenül attól, hogy az állapotod Igaz, majd ellenőrizze az állapotát. Tehát ebben az esetben, te always-- ezen a módon, te mindig ügyelve arra, bármi is legyen benne fut legalább Egyszer már ellenőrzi, hogy Ha azt szeretnénk, hogy fut újra. És itt van egy példa mikor mi lenne használni. Így például, ha azt akartam, hogy Egy egész típusú változó nevű életkor, és szeretném kérni A felhasználó a koruknak, Azt fogom tenni printf () Mi az életkorod? age = GetInt (), amely a felhasználó megkérdezése. És néhány ember lesz igazán bosszantó. És nem akarod hiba az Ön programja valaki megadásával, mint, oh vagyok negatív 4 éves, vagy bármi. Abban az esetben, ha azok csinálni, ezt értékeli igaz, ami azt jelenti, hogy megyek tovább kell mennünk vissza, és ezt. Tehát ez fog tartani újra a felhasználó megkérdezése hogy az Ön, mint egy igazi kor száma, és ez majd menj vissza és redoing amíg kapsz egy valódi korát nagyobb, mint egy, vagy nem nulla. Szóval tipp, hint. Ez nagyon, nagyon hasznos az egyik a PSET problémákat. Igen. SPEAKER 16: Hoppá, bocs. ANDI Peng: Ja. SPEAKER 16: Vannak, nem hogy egy seggfej, de-- ANDI Peng: Semmi gond. SPEAKER 16: --are van eltérő szabályok itt, Vagy csak elfelejteni hogy az idézet? ANDI Peng: Oh Yeah. Sajnáljuk, ez teljesen az én hibám. Ez határozottan állítólag egy idézet. Jó fogás. Ez lenne nem fogy. OKÉ. Tehát az utolsó típusa a hurok fogunk beszélni körülbelül, és végső soron a fajta a legtöbb komplexum a for ciklus. Ne aggódjon, ha nem Tudja, mit jelent. Elég zavaró az első. Megyünk át egy példát. Minden, ami történik a for ciklus az, hogy van három állítás hogy fogsz felvenni. Tehát egy bizonyos dolgot, akkor fog inicializálni egy változót. Fogsz hozzá a feltétellel, hogy ami erre a ciklusra is futni fog. És aztán, a végén a hurok, fogsz frissíteni. Tudod frissíteni a változó hogy szeretné nyomon követni. Így jellemzően A hurkot, amikor szeretné futtatni a hurok a bizonyos mennyiségű alkalommal és már tudjuk, Oh akarok Ez a hurok, hogy végre, mint 10-szer, akkor do-- megyek át Példaként a következő oldalon. Tehát itt például a Scratch, ha akart valamit megismételni 10-szer, csak annyit kellene mondani, ismételje meg 10-szer Szeretem SAJ! amely egy több elfogadható megnyilvánuló támogatást nekünk hanem a végtelen ciklus. Itt, hogyan fog átmenet C és írási ez a int-- fogok létrehozni vagy Kijelentem, egy egész típusú változó nevű i. Megyek alaphelyzetbe hogy 0, tehát i = 0; és ez lesz az állapotom. Tehát i kisebb, mint 10. És akkor a end-- Az utolsó állítás te megy, hogy az aktualizált mi történik a változó i végén a hurok. Szóval ez a fajta zavaró, mert különböző részei ebben a sorban történnek a különböző típusú a hurok. De én megyek át a pszeudokódja példája, hogy és talán magyarázza ezt Csak egy kicsit jobb. Tehát itt. Ez a hurok láttunk. Lényegében pszeudokód, milyen történik ebben a programban, az első hozok létre i, inicializálnunk 0. Én ellenőrzi, hogy ha i kevesebb, mint 10, és ebben az esetben az első alkalom, hogy mert 0 kevesebb, mint 10. Így a hurok fog futni. És akkor fogok nyomtatni ezen a vonalon. És akkor a végén ezt a sort, jobb Itt fogok csinálni növekmény i, i ++, Mindez azt jelenti, van megnő az egy. Tehát én most 1. Mert egykor 0, ha növedék ez, ez most 1. És akkor én megyek vissza hogy az elején a hurok és megnézem a feltétel. Ez a feltétel mindig igaz? Igen, 1 még mindig kevesebb, mint 10. Így fog nyomtatni ezt újra, menj majd az növelés i, és ellenőrizze, a feltétellel, folyamatosan, folyamatosan, amíg meg végül kap arra a pontra, ahol i 10. Fogsz kinyomtatni 10 alkalommal és aztán megy értéke 10. Fogsz ellenőrizze állapotát. 10 kevesebb, mint 10? Nem, ez nem igaz. Így ez a hurok nem megy futtatni, ez meg fog törni, és meg fogsz tovább ezzel a kóddal. Tehát ahogy ti is látni, ez a egy igazán nagyszerű példája Egy hurok akkor tud programozni, hogy fut, amely egy meghatározott mennyiségű alkalommal. Mindenki tiszta? Igen. SPEAKER 17: Mit szólnál növekmény exponenciálisan, ez eltérő kódolást? ANDI Peng: Azt can-- megyünk át ezt a következő diát. Jó kérdés. Van anyone-- előtt mozgok on-- bárkivel zavaros, mert ez egy nagyon kemény fogalom. Nem gond, ha you're-- OK. Hűvös. Minden rendben. Csak egy általános csúszda. Ez a while ciklus során a Pontosan ugyanaz a for ciklus volt. Ez csak írásbeli másképp. Ti is elolvas az csúszdák Ön kényelmét később. De csak azt tudom, hogy van több módja az írás ugyanaz a dolog megtörténni körök. OKÉ. Szóval, most megkapjuk a kérdés, hogy mi ha van egy hurok belsejében egy hurok. Mi bekerülni valós Inception típusú cucc van. Ha azt szeretnénk, hogy a dolgokat több alkalommal belsejében egyebek hogy olyan dolgokat többször, akkor szeretnénk egy úgynevezett beágyazott hurok. Azoknak, akik először látják ezt, és összezavarodik, minden csinálunk itt van egy hurok, ahol van egy változó sorban. De belsejében is, mi is van egy másik for ciklus egy változó nevű oszlopot. És én nagyon javaslom mindenkinek, akik össze vannak zavarodva, hogy először ne track-- felhívni ezt ki, dolgozzon ki ezt. Ne próbálja meg csak ok rajta, dolgozzon ki. A fejedben, ezen a darab papírt, vagy bármi, írási sor, nyomon követni, amit sorban egyenlő. Írja oszlop, nyomon követni A mi oszlop egyenlő. És nyomon követheti, hogy mi kinyomtatásával minden iteráció. Minden iteráció a hurok, minden iterációjában, hogy nagyobb hurok, csak kövesd a logika. És én garantálom, szeretni fogja, amit látsz, mert ez is nagyon alkalmazandó a problémát készletek. Hűvös. Minden rendben. Tehát a legfontosabb dolog hogy a srácok valószínűleg minden gondolkodik most, A problémás Set 1-esek, amelyek miatt csütörtök / péntek. Az Ön water.c programot, tipp fogsz van figyelmezteti a felhasználót egy bemenet. Belül a mario.c programot fogsz is kezelhető egy beágyazott for ciklus, amely egy for ciklus belsejében egy for ciklus, nyomtatni egy blokk piramis, lényegében mint amit Mario ugrik át. És akkor belsejében greedy-- vagy talán Így Change, ha valakinek a srácok valaha hallott hogy-- fogsz nagyon kell Vigyázz első lebegőpontos értékek. Emlékezz lebegő tizedesjegy pontossággal egészek nem ugyanaz a dolog. Kövesse nyomon az melyik melyik. És te fogsz használni A feltételes utasításokat is. Rendben, utolsó dolog. Van egy pár perc van hátra. Stílus. Tehát ez olyan dolog, amit nem ténylegesen hatás a hatékonyság, vagy a tényleges működését a kódot. Azonban ez kihat ránk, mint Ön osztályosok, mint az olvasók. Ez hatással magát, ha megpróbálja megtalálni a problémát. Ez befolyásolja az olvashatóságot a kódot. Szóval stílusban, mint amikor akarsz stílus egy esszét az angol, ha Nem volt bekezdések, akkor mindent fajtája A kusza halmaza alkotja egy sorban, akkor teszi igazán nehéz bárkit olvasni az esszé, akkor is, ha a pontok logikailag jó. Ugyanaz a programozás során. Akkor lehet rettenetesen homályos kód, amely Scaz fedezi, és ez akkor is futnak és a funkció. De nekünk, mint a kedves TA, akkor ki fog olvasni, és értékeli a PSets, ez nem túl szép. Ezért kérjük, a kedvéért Az USA-ban és magát, amikor megpróbálta kijavítani a probléma a kódban, és próbál olvasd el a saját kódját, hogy Feltétlenül kövesse néhány egyezmények hogy fogunk végigmenni. Tehát először. Adja meg a változók értelmes nevet. Ha szeretné tárolni egy egész szám nevezett korban vagy, kérjük, hogy kora. Ne nevezd meg magasságát. Ha akarsz tárolja olyan korban magas, ez teszi mindent nagyon zavaró számunkra. Mi nem tetszik, hogy szabad összekeverni. Ha nem tetszik, hogy szabad összekeverni. Senki sem szereti, ha zavaros. Ha meg akarsz létrehozni valamit, nevezd meg valami értelmes. Azonban a for ciklus, egységes karakter változók általában finom. És a hurok, ha azt szeretnénk, csak én, és j, k, nyugodtan tedd ezt. Következetes elindulni. Szóval mit is jelent ez? Ez azt jelenti, technikailag, elméletileg, akkor kezdeményezheti, és hozzon létre több változó ugyanazon a vonalon. Így például, tudok létrehozni Egy egész nevű scaz_age, és integer nevezett andi_age = 20, és egy egész szám nevezett jason_age ugyanabban a sorban. És azt is rendelhet csak az egyik őket, és nem a többiek értékeket. Arra kérünk benneteket, kérlek ne tedd ezt. Mert itt már alapvetően létre három változó, de csak egyikük valójában egy értéket. Aztán mikor vagyunk megpróbálja olvasni a kódot, vagy ha megpróbálja kijavítani a probléma a kódban, ez nagyon zavaró, hogy követik. Tehát csak a olvashatóság, a mi olvashatóság, ne csináld ezt. Következetes kapcsoszárójele. Vannak, akik szeretik módjuk kapcsoszárójele különböző helyeken. Ez nem igazán számít. Csak győződjön meg róla, következetesen meg saját kódját, hogy hol szeretnék tenni őket. Következetes távolság. Ha tesz egy hely után a A hurok, mindig csinálni. Ne csak szeretem a fajta csinálni Egyes helyeken, ne csináld másokban. Csak légy következetes. Másodszor, ha valaki szeretne hogy elolvassa a CS50 Style Guide, hivatalosan van egy stílusa útmutató, hogy megmondja, hogy az összes ilyen egyezményeket, plusz még. Ez az interneten. Ez olyan, mint cs50.net/style vagy valami ilyesmi. Tudod google. Összhang a legfontosabb. Szóval ne aggódj, mi Más emberek csinálnak, csak győződjön meg róla, hogy következetes belül a saját kódját. Bárki bármilyen kérdése van ez? Igen. SPEAKER 18: Tehát a helyes dolog, köze inicializálás csak mindet külön vonal, az, hogy mit mond? ANDI Peng: Szóval ritkán van ez megtörténjen. De ha akarta, ha akarta, lenni, mint helytakarékosság a kódban, vagy bármi, akkor ezt. Arra kérjük, hogy csak nem inicializálja egy dolog, és nem a többiek. Tehát, ha szeretné tenni int scaz_age, int andi_age, int jason_age, ez rendben van. Csak ne inicializálni egy és nem a többiek mind. Kérdések? Minden rendben. Megyek elmúlik a mikrofon, és a lézer, és a stafétabotot Scaz ezen a ponton. Ez kínos. Itt van. Brian SCASSELLATI: Köszönöm. Hogy van, hogy a hang? Hang jó? . Kitűnő. OKÉ. Szóval, hi mindenki. Megyek, hogy megpróbálja a munka révén egy gyakorlati példát veled. És fogunk használni CS50 a fejlesztői környezet, az úgynevezett Az Integrated Development Environment. És láttad ezt igazolták előadás. És Probléma Set 1, akkor lesz lehetősége van arra, használni, és játszani körül , és hozzászoknak azt, mert mi fogja használni a többi félévben. Tehát ebben az IDE, van, amit úgy néz ki, mint egy nagyon hagyományos fájl böngésző felett az egyik oldalon. Van egy részét fel top hová mész látni a forráskódot, a Cfile, a kódot, amit írsz. És le alján, akkor Van egy terminál ablakot amely akkor használja a Mindkét fordítsa le a programot és futtatni, vagy hajtsa végre a programot. OKÉ. Tehát csak, hogy nekünk egy kicsit a alapítvány, abban a terminál ablak, fogsz lenni segítségével egy sor parancsot hogy szabványos parancsokat egész a legtöbb Unix vagy Linux rendszerek. És így ha valaha is használt bármely formája Unix, Ubuntu, vagy bármely más ízek, Ezek fognak nézni ismerős. Ha nem, ne aggódj. Nincs semmi bonyolult róluk. Ők csak meg egy másik szintaxis eltérő elnevezést egyezményt, mint amit látott. Tehát, hogy dől ki a fájlokat egy adott könyvtárban, fognak használni parancsot nevű ls, vagy a lista. Ha azt szeretnénk, hogy mindent minden részletet, akkor a következő parancs argumentum ls -l. És, hogy megmutatom neked mindent, részletesebben, beleértve Az Egy fájl engedélyeinek. Ha módosítani könyvtár, akkor használja a cd parancsot. És akkor képes lesz megváltoztatni könyvtár Mindkét menni a home könyvtár. Ez csak cd mindenki Maga, CD-t két pontok visszaadja az egyik szinten az előző könyvtárba. És akkor is cd egy könyvtárban beírja cd és a neve annak a könyvtárban. Ön is létrehozhat új könyvtárakat. És megyünk sétálni ezen keresztül mindössze egy perc alatt. De csak hogy fel mindent a képernyőn. Így látni őket. Akkor is képesek manipulálni fájlokat közvetlenül a parancssorból. Ön képes lesz arra, hogy másolja őket, hogy mozgatni őket, vagy le lehet venni, vagyis hatékonyan, hogy törölje őket. A CS50 IDE megadja neked a teljes hatalom parancssori paramétereket. És ez azt jelenti akkor is nem igen veszélyes dolog. OKÉ. Például, akkor távolítsa el, vagy azt, hogy a törlés, Fájl kérdezés nélkül a megerősítést. És akkor el is távolíthatjuk recursively-- ez A műszerfal r flag-- egy egész könyvtár és annak minden tartalmát. OKÉ. Ők szerepel a piros, mert azt hiszem "Veszély" minden alkalommal látod ezeket a dolgokat. OKÉ. Minden rendben. Most végre, a dolgok, amelyek lesz igazán értékes az Ön számára, van van néhány jó trükköt tudni, mint te navigál ezen keresztül terminál ablakot. Először is, akkor egyértelmű a képernyőn bármikor csak beírásával egyértelmű. És te fogsz látni nekem ezt gyakran meg. Akkor is csak megjeleníteni A szöveges fájl begépelésével több, majd a fájl nevét. Ezután tudja görgetni vissza oda, hogy csak a szóközt és nyilakkal. Ha van, mint mi ma előadás, olyan program, amely folyamatosan működik A végtelen ciklusba, akkor tudja megállítani, hogy a program végrehajtson beírja az irányítást, lefogó Control-C. És lehet, hogy nem ezt többször. A számítógép kap messze tőled. És néha kell hogy ez egy pár próbálja mielőtt valóban jön át. Azt is tudja rendezheti át a parancsokat hogy csak gépelt a fel gombot, nyíl gombot, majd a lefelé nyíl gombot. És mi a leghasznosabb helyett A gépelés hosszú fájlnevek, Ön képes lesz arra, hogy a használata Tab automatikus kiegészítésének néhány utasítást. Most megyünk bizonyítani az összes ilyen pillanatok alatt. Tehát, ha nem emlékszik őket, ne aggódj. Ezek azok a dolgok, hogy akkor felvenni és használni, ahogy haladunk végig. OKÉ. Tehát C-- ellentétben Scratch-- C egy összeállított nyelvet. Ez azt jelenti, megyünk, hogy egy forrás file-- ez a szöveg, hogy írsz, A parancsokat, hogy írsz, a printf () utasításokat, a hurkok, mindent else-- és megyünk hogy ezt a fájlt, és kézzel le hogy a program neve a fordító. A fordítóprogram majd venni hogy a szöveget, amit írtál és lefordítani a bináris utasítások hogy a számítógép valóban megy használatát. Ezt hívják az objektum vagy a futtatható fájlt. Ha megnézzük ezt a fájlt, fogsz hogy a kódot, amit írtam. Ha megnézzük ezt a fájlt, fogsz hogy egy véletlenszerű karaktersorozat amelyek semmi értelme sincs. Azért, mert ez az a bináris. Ez nem azt jelentette, hogy olvasni. Azonban minden alkalommal, amikor akar futtatni valamit, mit fogsz kell futnia ez a tárgy fájl. Így, amikor dolgozni ezekkel fájlokat, akkor levelet fájlt C. Majd ezután lefordítani, akkor egy parancsot, mint make meghívja a a fordító csenget a C nyelvet. És azt a bizonyos tárgyat fájlt, mint egy ki, vagy ebben az esetben, A név, a fájl, hogy amit tesz az. Minden rendben. Szóval tényleg próbáld ki ezt. Szóval jött egy példát amit akartam próbálni. És az egyik dolog, hogy Lenyűgöz engem animáció. Szóval megyünk, hogy ne próbálja egy kis animáció a csak ASCII karaktereket. Karakter, amit ki is nyomtathatja, egyszerűen most. Tehát itt van a legjobb kísérlete teremtsen az Ön számára Az animáció egy nyuszi fut át ​​a magas fű. Ott van. OKÉ. Szóval nem fut el, de ő ott áll a magas fű. Ha viszont egy animátor, A régi iskola változata animáció, amit én tenne az amit elérhetek egy képet a nyuszi a fűben. És akkor azt előállítani Egy másik picture-- Egy másik, amit ők cell--, hogy volt a nyuszi csak kis mértékben mozdult. És akkor egy harmadik, hogy már a nyuszi költözött egy kicsit tovább. És az amit egy egész szekvenciáját ezekben a sejtekben. Néhány ahol a nyuszi vége ra a bal oldalon. Aztán lassan mozog, az egyik az egyik közepe felé. Majd a középső felett jobbra. És ha én akkor tényleg Szerencsés, tudtam összerakni és tudtam animálni őket. És ott van az én nyuszi fut át ​​a füvön. Ez az én nagy PowerPoint trükk a nap. OKÉ. Tehát ez olyan jó dolog. OKÉ. Szóval, itt még egyszer, itt van a nyuszi fut át ​​a füvön. SPEAKER 19: Ismét. Brian SCASSELLATI: Egy több időt, rendben. Itt a nyuszi. OKÉ. Tehát ma mit fogunk tennie, hogy megyünk hogy megpróbálja a folyamat automatizálásához előállítására ezeket a sejteket. Mi nem egészen értem, hogy a lényeg a hogy képes őket együtt. De, megyünk próbálni, hogy automatizálják a folyamat generáló ezt a szekvenciát. És ez sok, amit animáció ma is tetszik. Vagyis azt, hogy nem a dolgok szükségszerűen támaszkodva mindent kézzel. Mi használ számítógépet, hogy automatizálják részei ennek a folyamatnak. OKÉ. Szóval hadd átkapcsolás Most, hogy mi CS50 IDE. És én hoztam létre a us--, és hagyja, nekem nagyítás itt egy kicsit bit-- voltam teremtett számunkra a kiindulási pont. Minden alkalommal, amikor arra kérünk benneteket, hogy üljön le és írjon egy darab kódot, amit mi igazán arra kérlek, hogy ezt A kérünk, hogy megoldja a problémát. És az is, hogy be gondolni csinálja van kiindulva némi egyszerű része, hogy a megoldás. És akkor építheti ki abból a részéből. És ez az, mit fogunk ma csinálni. Tehát ahelyett, mind egyszerre levelet egész csomó kódot, ami Készül azoknak 10 animációs sejteket, fogunk kezdeni helyett egy darab, ami működik. És akkor mi fogunk egy kicsit körül, hogy és egy kicsit több, és egy kicsit több. Most a jó dolog problémák megoldása így az, hogy lehetővé teszi, hogy kezdeni Mindig valami, tudod, működik, és vezessen be egy fokozatos változást. És ez egy nagyszerű módja hogy megtanulják, hogyan kell a kódot, mert minden egyes alkalommal, amikor egy változás, akkor milyen hatással van. OKÉ. Tehát itt van a kiindulási pont. OKÉ. Tehát elején fájlom, Nekem hash #included stdio.h. Ez így tudok az printf () függvény dolgozni. Aztán ott van a fő funkciója. És ez még mindig úgy néz ki, egy kicsit misztikus vagy homályos, hogy néhányan közületek. Rendben. Minden azt mondja, hogy A fő funkciója veszi nincs arguments-- void úton semmi C. És ez bevallásokat egyezmény egész. Fő mindig visszatér egy egész szám, általában egy kódot dolgokat mondanak jól ment, vagy nem megy jól. OKÉ. De fő rendelkeznie kell, hogy alkotnak számunkra most. Már aztán három sornyi kódot. És ezzel együtt minden sora kódot, tettem megjegyzést. Most az egyik dolog, hogy mi ragaszkodunk ahhoz, hogy te, és ez egy ilyen fontos programozási gyakorlat, az, hogy mindig kommentálhatják a kódot. Mindig írja le egy Angol megjegyzést valamit hogy úgy gondolja, a kódot is kellene csinálni. Így, később, ha visszajön a Vele, akkor nézd meg, és azt lehet mondani, Ó, emlékszem, milyen voltam próbálkozik ezzel. Vagy amikor egy TA leül veled megpróbál segíteni a hivatali órák, akkor nézd meg ezt, és megy, én lásd, mit akar csinálni, hanem ez mi történik valójában. OKÉ. Így kaptam három részre kódomat, Megyek először nyomtatási néhány pont az elején. Én majd nyomtassa ki az én Rendkívül divatos nyuszi. És akkor valami kis pöttyök a végén. És ez a három nyomtatási kimutatások ismerős neked ezen a ponton. Minden, amit csinálok itt mindegyik vagyok kinyomtatásával karakterek sorozata. Nincs változó részt. Minden csak lapos. OKÉ. Tehát, ha megyek le most az én terminal-- Lássuk, tudok ezt vissza out-- és megyek, hogy írja újra tiszta. SPEAKER 20: mire használjuk a kettős perjel hozzászólni? Brian SCASSELLATI: Can Használja a double-- igen. Van többféle módon el véleményüket a C. One módja az, hogy a kettős perjel. A másik az, hogy a perjel és egy csillag majd zárja a csillaggal és a perjel. Minden rendben. Először is, megyek megkezdheti a navigációt errefelé. Tehát, ha megyek a home könyvtár, Megváltoztattam könyvtárak ott, Megyek nézni és látni, mi van Ebben a könyvtárban, ls, dől ki. Megyek látni, hogy én már Van két alkönyvtárat. Nézzük, hogy ez egy kicsit nagyobb itt, hogy mindannyian látni. Látom, hogy én már Van két alkönyvtárat. Majd könyvtárba bemenni munkaterületre. És fogok csak írja ki részét, és aztán csak megnyomjuk a Tab. És ez lesz befejezni a többit nekem. Fancy. Megnézzük, és látni a munkaterületet. És most, én dolgozom a szuperszakasz hogy tanítunk most. Úgyhogy megyek ebbe a könyvtárba. És végül, nézd. És van, hogy a fájl bunny.c. Rendben hadd világos még egyszer. És fogok now-- ismét vagyok továbbra is marad abban a könyvtárban és ez azt mondja, én vagyok az hogy szuperszakaszon könyvtárban. Megyek megy előre, és hogy a programom nyuszi. És azt a parancsot, hogy nyuszi, míg hallható egy kicsit furcsa, is hivatkozik a csengés fordító. És ez termelt nekem egy kimenete, ami egy futtatható funny-- egy futtatható fájl nevű nyuszi. OKÉ. Tudok majd, és ez úgy hangzik, még rosszabb, végre nyuszi. OKÉ. És lássuk, hogy mit csinál. OKÉ. Ez egy kicsit amit vártam. Megvan a nyuszi képet ott, de valahogy akartam, mindenki maga. Mit nem vettem észre? SPEAKER 21: Slash l vagy perjel n. Brian SCASSELLATI: Slash n. OKÉ. Szóval menjünk vissza ide. És hozok belőle. És én megyek vissza ez. És vessünk egy pillantást most az én fő funkciója van. Szóval mit kell tennem? Azt akarom, hogy vessen véget a sor. Így teszek egy megjegyzést. Teszek egy printf (). És mit kell tenni a? / n. OKÉ. Mit kell véget vetni ennek a? Pontosvessző. Minden rendben. Most, az egyik igazán Fontos dolog az, hogy győződjön meg arról Minden alkalommal, amikor a változás a kódot, hogy mentse meg. Ha még nem mentette a kódot, akkor fog észrevenni egy kis csillag ott. És, hogy a csillag azt mondja, nem mentette ezt a kódot. Ha tudom lefordítani, hogy most, hogy nem megy, hogy tükrözze az említett változásokat, Mert a fordító megvizsgálja a fájl ez a lemez, nem a fájlt, ami nyissa a szerkesztő. Minden rendben. Úgyhogy mentse el, majd elmegyünk közvetlenül ide, gyere vissza. Gyere le, hogy az én terminál. És tisztázzuk a helyet újra. És mi lehet menni előre, és még egy ideje, hogy mi nyuszi programot. És végre a nyuszi. Hogy sem működött. Rossz perjel. Tehát, ha megnézzük, hogy mi kaptam, tettem egy / n ott, de volt rossz perjel. Minden, ami a számítógép Vajon nagyon egyértelmű. OKÉ? Egy kis hiba a központozás és Hirtelen nem kapja, amit akar. Minden rendben. Úgyhogy kicsinyítéshez újra. Visszamegyünk. Hát az, hogy nagyon gyors javításra. Majd tegye a megfelelő perjel a. Majd mentse el. Majd zoom vissza. Valamilyen oknál fogva, hogy ez nem hogy boldog, de menjünk előre és megyünk vissza a terminál itt. Takarítjuk el. Majd nagyítani. És még egyszer, mi megpróbáljuk nyuszi. És most persze elég, hogy működik. Hurrá. OKÉ. Szóval igyekszem, hogy ez egy kicsit több, általában. Lássuk, ahelyett, hogy csak nyomtatás egy bizonyos keret, Lássuk, tudjuk, hogy ez hogy mi is mind a 10 e animációs képkockák hogy szerettünk volna. Tehát újra, vessünk ez egy lépéssel egy időben. Nézzük először általánosítani, nem így hát minden képkocka, de így teszek bármelyik keret, amit érdemes. Tehát mi a különbség a keretek között? A nyuszi ugyanaz? Közönség: Igen. Brian SCASSELLATI: Igen. Mi a különbség? Közönség: Pozíció. Brian SCASSELLATI: Álláspontját, ugye? És Hogyan ellenőrzik az álláspontját? Hány pont én vagyok üzembe elején és hogy hány pixel vagyok üzembe a végén. Szóval volt öt a kezdődő és öt végén. Nézzük helyett, hogy öt a hurok. OKÉ. És fogok létrehozni a loop most, hogy fog mondani, Megyek nyomtasson ki néhány számot pontok az elején. Megyek egy változót. Mondjuk, mi a helyzet az i A számláló az én hurok. És fogok nyilatkozni fel tetején. És akkor a for ciklus Kell, hogy három dolgot. Az első dolog, amit meg kell tennem van szükségem inicializálni i. Mit kell inicializálni Érdemes ezzel kezdeni lenni? 0. OKÉ. Aztán meg kell mondani, mi A felmondás feltétele? Mikor kell megállítani? Nos, hogy hány pixel ugye kíván nyomtatni ez? Közönség: Öt. Brian SCASSELLATI: Öt újra? Mit szólnál csináljuk valamit különböző, megcsináltuk öt. Mutassuk meg, hogy ez más. SPEAKER 22: Két. Brian SCASSELLATI: Két. OKÉ. Így ha meg akarom két pont, Minek kell itt? Közönség: Három. Brian SCASSELLATI: Három. OKÉ. Hányszor van, hogy fog átmenni? Ez lesz átmenni háromszor, 0, 1, és 2, Jobb? Rendben, menjünk vissza a kettő. Most mi lesz két pont. És mit akarok csinálni minden alkalommal megyek át a hurkon? Mit kell változnia Minden alkalommal, amikor megy keresztül? SPEAKER 23: Add egy pont. Brian SCASSELLATI: Meg kell tartani fog. Megyek, hogy adjunk egy pontot. Megyek nyomtatni egy pont, minden egyes alkalommal át a hurok. De hogyan fogok nyomon követését, hogyan Sokszor mentem keresztül a hurok? Én a i, hogy változó, hogy számláló. Így minden alkalommal át, megyek emelheti a számláló egy. Nos, ez ugyanaz nekem, mint azt i = i + 1. Rendben. Tudtam csinálni hogy-- Szeretem a gyorsírással, így fogom mondani i ++. OKÉ. Csináljuk ugyanezt idelent alján. Csak én csináltam az, hogy az egyik. Én hagyom, hogy a srácok Ehhez egy teljesen. Minden rendben. Szóval mit írjak ide? Itt a hurok. Azt fogom tenni a printf () és megyek hogy ez így, hogy én csak nyomtatni egy pont azon alján. Mit írjak ezen belül a hurok most? Nos, először is, mi változók érdemes használni? SPEAKER 24: j. Brian SCASSELLATI: Jól jönne j. Tudom használni ugyanazt? Tudom használni megint? Igen. Ez rendben van, mert az Is hogy én vagyok a fel ide, Nekem nem kell őket újra, ha Én most az ebben a kérdésben. Szóval mit kell inicializálni i? SPEAKER 25: 10. Brian SCASSELLATI: 0. Mit kell ellenőrizni? Hány pont van szükségem, most a végén Ha megvan a két pont az elején? Szükségem van nyolc végén, így mi ellenorizzek, i kevesebb than-- Közönség: Hét, nyolc, kilenc. Brian SCASSELLATI: Hallottam hét. Hallottam nyolc. És hallottam kilenc. OKÉ. Szóval mindannyian benne vagyunk a jobb ball-- Jason mondja 10. OKÉ. Ha Kellett két pont a Az első, hogy hány csinálni Én-- és szükségem van nyolc pont a Utolsó one-- tettem egy két fönt, Minek kell lent? Közönség: Nyolc. Brian SCASSELLATI: Nyolc. Mert ez fog számíthat nulla és hét. És ez nyolcszorosa a hurkon. OKÉ. És mit kell tennem, a végén? Közönség: i ++. Brian SCASSELLATI: i ++. Minden rendben. Szóval ez keres nagyon jó ott. Próbáljuk meg, és nézzük meg, mit csinál. OKÉ. Mi is így fogjuk menteni. Szép és mentett. Majd kicsinyítéshez. Megpróbálunk itt a terminálon. Majd nagyítani. Hoppá. Majd még egyszer, hogy mi nyuszi programot. És megy előre, és végre nyuszi. És itt is van. Tehát ott a nyuszi. Hol van a két pont elején és nyolc pont ki a végén. Mindenki még? OKÉ. Így épült fel. Mi épül egy nyuszi, Egy bizonyos keret. Most már sikerült Általánosságban elmondható, hogy építeni Több, különböző keretek. Most menjünk előre, és ez generál nem csak egy keret, de most generálni 10 keretek, ahol lassan hogy a nyuszi all ahogy a mezőn. Minden rendben. Menjünk vissza. És mindjárt meg is próbálunk. Szóval mit igazán kell változtatni itt? Mit kell változtatni? SPEAKER 26: Először is ki kell megváltoztatni a pontok száma maximum az elején. Mert ha csinálunk 10 pont, ez lesz szüksége, hogy akár a skála. Brian SCASSELLATI: Igen. Szóval most már ez a fajta vezetékes hogy mindig két pont elején és mindig nyolc pont a végén. Azt akarom, hogy egy másik hurok, ugye? Mert nem akarom, hogy építeni csak egy nyuszi kép, Azt akarom, hogy 10 nyuszi kép. Szóval kell építeni egy hurok, és ahogy megyek át a hurkon, Meg akarom változtatni, hogy hány pontok tudom nyomtatni az elején és hogy hány pixel tudok nyomtatni a végén, amely alapján köröznek a hurok Én benne vagyok. Minden rendben. Szóval térjünk a másik ellen. Valaki azt mondta, mielőtt j, így teszünk egy j. És most, mi lesz építeni egy másik for ciklust. Mi megy benne, hogy hurok? Ez a dolog, hogy menjen a cikluson belül, ugye? Vajon a nyuszi van bemenni a hurok? Szükségem van egy nyuszi Minden ilyen 10 kép? Közönség: Aha. Brian SCASSELLATI: Igen. Szeretnék egy nyuszi az egyes A 10 képkocka, ugye? Mi a helyzet a pontok vannak A végén van szükségem, hogy? OKÉ. Így fogok behúzni mindet. Megyek, hogy kiemelje az összes ezt, és megyek megnyomjuk a Tab. És hogy fog nyomni őket minden tájáról egy kicsit, úgy, hogy könnyű nekem hogy mi van a hurok. És aztán majd befejezni. Mondjuk. OKÉ? Most, ebben a hurok, hogy Én building-- Hoppá, hogy ezt így see-- Megvan a számláló j. Majd kezdte 0. Hányszor akarok hogy min megy keresztül a hurok? Közönség: 10 alkalommal. Brian SCASSELLATI: 10 alkalommal. Szóval, mi több rakjam itt? Közönség: 9, 10. BRIAN SCASSELLATI: 9, 10, Valakinek mondani 11, ugye? Azt akartam, két pont előtt és tedd azt kevesebb mint 2. Azt akartam, nyolc pont, Tettem én kevesebb, mint 8. Most azt akarom, hogy menjen át 10 szer, ezért tettem j kevesebb than-- Közönség: 10. Brian SCASSELLATI: 10. Ott vagyunk. És mit csináljak a végén, hogy j? ++, Megnöveli eggyel. OKÉ. Most itt van a kutya elásva, mi fog történni most, ha ezt csinálom? Fogom nyomtatni 10 kép? SPEAKER 27: Azt hiszem, Ők mind ugyanaz. Brian SCASSELLATI: Fognak Minden ugyanaz, ugye? Mivel mindegyikük még folyamatban vannak hogy két pont az elején. De én nem akarom, hogy mindenki Van két pont az elején. Hány pont tudom szeretnénk az elején? Közönség: Változó. Brian SCASSELLATI: I akarják változtatni, igaz? Szóval mit én itt, amely megváltoztatja minden egyes alkalommal, amikor a hurok megy keresztül? Közönség: Képpontok száma, j. Brian SCASSELLATI: j, A pontok száma. Szóval lehet ezen változtatni kell j. Az első alkalommal a hurok, mi hogy lesz? Mit tudom beállítani j első? Közönség: 0. Brian SCASSELLATI: Szóval, hány alkalommal fogok csinálni? 0. A második alkalommal át a hurkon, j lesz 1, mert megnöveli eggyel. Hány pont fogom nyomtatni? 1. A harmadik alkalommal át a hurok, hogy hány pixel fogok nyomtatni? Közönség: Három. Brian SCASSELLATI: j lesz 3. Hány pont fogom nyomtatni? Ó, sajnálom, j lesz 2. Hány pont fogom nyomtatni? Közönség: 2. Brian SCASSELLATI: 2. OK, így fogom tartani megnő, hogy ahogy haladunk végig. Mit szólnál lent? Mi megy itt? Nem akarom, 8 esetben a végén már? 28 hangszóró: 10. Brian SCASSELLATI: szeretnék 10 pont? Azt akarom, hogy változtatni is. Szóval hogyan akarom változtatni? Közönség: [hallható]. Brian SCASSELLATI: Hát, ha én Öt pont az elején, hány dot kapom a végén? Közönség: Öt. Brian SCASSELLATI: Ha van hat pont az elején, hány jutok a végén? Közönség: Négy. Brian SCASSELLATI: Ha kaptam Hét pont az elején, hány jutok a végén? Közönség: Három. Brian SCASSELLATI: ha már Van j pontok az elején, hány jutok a végén? 10-j. OKÉ. Így próbáljuk, hogy ki. Így fogok megmenteni a nyuszi programot. Ismét fogunk kicsinyíteni. Elmegyünk egészen a mi terminál. Majd törölje azt. És nagyítani. Majd, hogy a nyuszi programot, újra. És mi végre fogja hajtani. UH Oh. Várj, hadd kicsinyítés. Kaptam 10 kép? Nos, hány nyuszik látok ott? 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Kaptam 10 képkocka. Ezek mind ugyanazt? Közönség: Igen. Nem. Brian SCASSELLATI: Nem Ez az első ilyen, a nyuszi messze a bal oldalon. És itt, a nyuszi messze a SPEAKER 29: Így van. Brian SCASSELLATI: Szóval, mit tettem elfelejteni, hogy nem? SPEAKER 30: Sortörés. Brian SCASSELLATI: elfelejtettem hogy egy új vonalat, újra. Ugyanazt a hibát csináltam korábban. Rendben, menjünk javítani. Nos, én még mindig van a kód ott, hogy egy új sor. Miért nem működik? SPEAKER 31: Ez nem a cikluson belül. Brian SCASSELLATI: Ó, ez nem a cikluson belül. Ez így van. Ez ül kívül itt. És a for ciklus minden hogy van benne, hogy a szöveget. Így fogok mozgatni ez a for ciklus. És én Tab előtte a azt mutatják, hogy ez az a megfelelő helyre. És most, mi mentheti meg újra. Majd kicsinyíteni. Majd kapcsoljon át a terminált. Közelíts rá. Majd remake a nyuszi programot. És most, most megvan a 10 képkocka. [Taps] Brian SCASSELLATI: OK. Na. Itt a mi beágyazott hurkok. Tudtuk, hogy létrehoz a belső hurok, hogy hány pixel akartam nyomtatni az elején, a végén. És a külső ciklus vezérelt hány képkocka építettem. Elkezdtünk egy kicsit kernel a probléma, és kiépítettük attól a ponttól. Minden rendben. Csináljuk még egy lépést. Készen állsz? Van egy dolog van itt, ahol mi már fajta van bonyolultabbá, mint amire szükségünk van. Vessünk egy pillantást. Tehát a mi nyuszi program ha kicsinyíteni itt, Igazából nem néhány azonos a dolog újra és újra. Mit tegyek, hogy ez a fajta ugyanaz a dolog kétszer megismételjük? SPEAKER 32: nyomtassa ki a pontokat. Brian SCASSELLATI: Igen Én nyomtatni azok a pontok kétszerese. Tényleg, el kellett volna ez a megjegyzés le ide. Én nyomtatni néhány pont látható kezdődő, egészen itt. És aztán kinyomtatni néhány pont a végén. És én nem ilyen pontosan ugyanezt. Mit fogunk kezdeni dolgozik a következő hetekben hogy képes, hogy ezeket a blokkokat kód, amit használunk, újra és újra, és egy folyamat nevű absztrakció, fogjuk húzni őket, és levelet őket egyszer, hogy tudjuk majd újra őket újra és újra. Úgyhogy próbáljuk ezt. Kész? Megyünk, hogy ez a blokk a kódot. És megyek, hogy vegye ki onnan. És fogok define-- le az alján, Én fogok írni egy új funkció. Ez nem fog vissza semmit. És fogom nevezni printDots. Ez lesz, hogy az egyik érv, egész szám, mondja howManyDots kellett nyomtatni. És most nyomtatás helyett j pontok, én Nyomtatás Küldje el howManyDots kellett nyomtatni. És van még egy kis probléma van. Tudja valaki, hogy mi ez? Mit kell, hogy ez szerepel itt ez nem definiált? Közönség: [hallható] Brian SCASSELLATI: Nos, hogyan annyi pont van meghatározva, egészen itt, de én vagyok a, hogy i változó. Így fogok venni, hogy az i változót és megyek meghatározni le itt helyett. Tehát most ez lesz a stay-- hoppá, Megvan a csupa nagybetűvel somehow-- vagyok fog tartani i le itt. Tehát most itt az én kis funkció vagy al-rutin, és azt mondja, hogy hány pixel fogok nyomtatni? És ez lesz min megy keresztül a hurok, és nyomtassa ki őket újra és újra. Én majd módosítani a programot itt. És mit hívom ezt a funkciót? printDots. Szóval hívom printDots. Hány pont akarom nyomtatni Az első alkalommal, mielőtt a nyuszi? Közönség: j. Brian SCASSELLATI: j. Hány pont akarom nyomtatni a végén, miután a nyuszi? 10-j. És van még egy dolog, amit még hiányzik. Ahogy láttam előadás ma, fogunk nyilatkozni printDots fölé, hogy a prototípus. OKÉ. Szóval, mit tettem az Megpróbáltam elszigetelni, hogy újra része kód hogy én csináltam újra és újra. És próbáltam kihúzni, hogy az összes, hogy tartalmazza egy helyen. Így, ha van valahol hiba, Csak meg kell megjavítani egy helyen. Minden rendben. Szóval menteni. És hadd győződjön meg róla, hogy működik. Szóval menjünk el. Majd megint a mi terminál. Majd nagyítani. Majd, hogy, hogy nyuszi folyamatot. Ó. És ez adott nekem egy figyelmeztetést. Mit mond ez nekem? Nos ezek közül bármelyik alkalommal, azt szeretné, lépjen fel a legelső error-- Most ez az egy, amit csak egy van. Azt mondja nekem a bunny.c, on-line 8, 9. oszlop, van egy kis gond. Azt mondja, hogy már kijelentette, hogy ez i változó, és nem élt vele. Most általában, ez Nem a legrosszabb hiba. Ez egy könnyű kijavítani. És valóban, mehetünk vissza. Mehetünk vissza nyuszi. És ebben az esetben, minden, amit kell tennie, hogy megszabaduljon a i, mert mi nem használjuk i belüli fő többé. Mi csak használja a mi alprogramot. Szóval menteni ezt. Visszamegyünk. És nagyítani. Majd még egyszer, hogy nyuszi. És megint ott vannak a 10 képkocka. OKÉ. Bármikor te adni Egy procedure-- Igen. SPEAKER 33: Van egy-- vagyok zavarodva. Tud menj vissza a kódot? Brian SCASSELLATI: Ja. SPEAKER 33: Szóval, amikor megírtad A prototípus az az érv, akkor már megnevezte hívták howMany? De, below-- Brian SCASSELLATI: Ó, igen. SPEAKER 33: --called nekik valamit más, nem értem. Brian SCASSELLATI: Miért vannak különböző. Szóval ez egy jó kérdés. Szóval a kérdés az volt, akár Itt írtam howMany, és lent, írtam howManyDots. Az ok az, hogy akár a prototípus, ez valójában nem figyel a neveket, hogy te teszed a. Minden tényleg törődik az, hogy ez egy egész szám. Azt akarja tudni, hogy a forma Az, amit üzembe. Most stylistically-- oops-- mit kellene csinálni, szeretem, hogy ezeket a mérkőzést. OKÉ. Mert, hogy lesz tartani könnyebb számomra, hogy emlékezzen. De ez az én hibám volt Igen. SPEAKER 34: És így a prototípus dolgozni, csak írásban ezt a vonalat, írásban a prototípus, lehetővé teszi, hogy a funkció, hogy jön jobbra lent, hogy menjen a végére és letölteni, mit jelent ez? Brian SCASSELLATI: Mit jelent az, amikor a fordítóprogram megy keresztül, megy a tetején A kód az aljára. És mi ez a prototípus, ez alapvetően egy ígéret. Azt mondja, ott lesz függvényében meghatározott valahol. Ez lesz az úgynevezett printDots. És ez megy, hogy egy érvet hogy lesz egy egész szám és ez megy vissza semmi, void típus. OKÉ. Ígérem, ez lesz meghatározott valahol az úton. De minden alkalommal, amikor megjelenik hogy amint lemegy keresztül a többi az én fő funkciója, azt akarom, hogy kezelje, hogy függvényében hogy úgy egy egész bemenet. És így amikor a fordító lemegy ezen keresztül azt látja, hogy az ígéretet. És ha nem lesz meg, folyamatosan megy, megy tovább, megállapítja először printDots említik. És azt mondja, Ó, te adsz Számomra ez j. j egy egész. Hát azt ígérted, hogy lenne egész szám lehet, és ez így van. Rendben. És végül, le legalján, mielőtt kapok, hogy a végén az én fájlt, azt, hogy jó az az ígéretemet és én határozza meg. OKÉ? SPEAKER 35: Szóval, ez a saves-- programot fogja megmenteni az üres helyeket hogy megy vissza, és kitölti a végén? Brian SCASSELLATI: Nem a memória kiosztás. Ez valójában csak arról, hogy mi típusú vársz látni. Amennyiben ez a dolog egy érv, vagy öt érv? Kellett volna, hogy legyen egész szám bocsátását, vagy a húrok? Ez minden keres tennie, hogy ellenőrizze, adod nekem a megfelelő fajta érvelés. OKÉ? Minden rendben. Hadd magad Egy másik kicsit nézni. ASCII art nem a nagy modell Az animáció, mint ma. De néhány ember természetesen a dolgokat és tolja a szélsőségeket. Ez, mint David bizonyított előadás, egy olyan kód hogy semmiképpen sem próbálja előidézni magatokat. Mert ez szörnyű stilisztikailag. Sőt, úgy tervezték, hogy olyan nehéz, mint lehet olvasni. OKÉ. Tehát, hogy nem megint, hadd nagyítás itt. Én megyek most, váltsunk. Én megyek fel egy szinten, vissza a munkaterületet. Én majd módosítsa a könyvtárat ebbe Más könyvtárban, hogy már létre. És ez az a Nemzetközi Eltorzítva C programozási verseny. Eltorzítva eszközökkel olyan kemény lehetséges, hogy megértsék. Ezért kérjük, ne félj, ha megnézi Ebben és megy, nem tudok olvasni, hogy. Ez a pont is. OKÉ? De, itt van ez a csodálatos programot, hogy én vagyok Ismerkedjünk meg a csak gépelési tovább. És lássuk, ha tudok kicsinyíteni Csak egy kicsit, így láthatja, hogy És ez az a program. Azért nevezzük endo.c. És ez így néz ki vödör fajta a betűk F-L-U-I-D benne. Ez tulajdonképpen egy programot. Ez van írva a legfurcsább módon, hogy a szerzők sem lehet írd le. De ez egy csodálatos kis darab, generál modellt folyadék dinamika. És így fogunk adni hogy a modell bemeneti, hogy így néz ki, a staired beállítani konténerek Néhány folyadék, néhány folyékony, akár a tetején. És mi lesz akkor szimulálni mi történik vele. Szóval hívom ezt a funkciót, Endo. És odaadom, hogy bemeneti fájl, hogy már volt. És van a megtestesítője ASCII art. A teljes folyadék dinamikus szimulátor futó néhány sornyi kódot. Most mi van valójában tényleg csodálatos erről a kis program az, hogy akarom állítani, hogy most, így fogom használni, amit a parancs? Közönség: Control-C. Brian SCASSELLATI: Control-C. OKÉ. Így fogom használni a Control-C. C Az majd megállítani. Majd ismét tiszta. És most megyek hivatkozhat programot, a program végrehajtásához, felhasználásával magát bemenet. És majd meglátjuk, a folyadék dinamikus szimulációja is olvad. OKÉ. Kérlek, ne hagyd, hogy a program az a dolog, hogy összezavarta. Csak így tudjuk ér véget valami jó és érdekes. OKÉ. Sok szerencsét a problémát készletek. Mi lesz boldog, hogy válaszoljon kérdések után. Köszönöm szépen, srácok.