LUCAS FREITAS: OK, azt hiszem most mi vagyunk az élő. Üdvözöljük a CS50 szuperszakaszon. Vagyunk kevésbé kényelmes. A nevem Lucas Freitas. Én vagyok az egyik CS50 Head TFs. Ez Lauren. LAUREN CARVALHO: Szia, én vagyok Lauren. Én is Head TF CS50. LUCAS FREITAS: Ma csak most lesz hogy áttekintést adjon az mi mindent srácok tanultak az első héten, remélhetőleg hogy nektek jó értelemben, hogy mit kell tudni A probléma az egyiket. Csak egy pár bejelentések. Először is, munkaidőben. Fogadóóra történnek a hétfő a csütörtök a különböző házak Annenberg minden nap. Ők egy nagyon jó forrás az Ön számára fiúk, hogy jöjjön, és kérdéseket feltenni, és beszélni TFs, és még csere ötleteket a többi diák. Tehát biztos, hogy használja, hogy az erőforrás az Ön javára. A másik dolog a CS50 készülék. Az utolsó [nem hallható] Ti nem kell ténylegesen van egy készülék. Csak mindent megtett a személyi számítógépen. De ez a probléma, akkor valójában , hogy egy virtuális gép, ezért Ügyeljen arra, hogy töltse le a CS50 A készülék és állítsa fel. És a harmadik dolog az biztos, hogy indítsa el a probléma meg ASAP csak mert sokkal könnyebb megtalálni segít, ha te vagy a a hét elején. Mert az emberek hajlamosak várni, amíg a utolsó pillanatban, hogy elindítsa a probléma meg, és akkor megy a munkaidő, és van egy csomó ember. Hova ha megy hétfőn, mész látni, hogy tud beszélni TFs nagyjából az egész éjszakát, és ők fognak haladhatja szívesen segít. LAUREN CARVALHO: Lehet csak megáll , hogy csak egy pillanatra? Már mindenki tudta letölteni A CS50 készülék? Az emberek megpróbálták? LUCAS FREITAS: letöltéséhez, a módon, akkor kap utasítást a cs50.net/appliance. LAUREN CARVALHO: Így van. És ez nem fog egy kicsit a mi sys adminok neked engedélyt kulcsot, így iratkozzon fel a ingyenes próba első. Így lesz ez a 30 nap, majd várni a licenc kulcs amelynek meg kell adni, hogy Önnek egy évre. LUCAS FREITAS: Először is, beszéljünk egy kicsit a CS50 készülék. A CS50 készülék tulajdonképpen egy virtuális gép, fogsz fut a saját számítógépén, ami alapvetően működik egy másik számítógépen belül a saját számítógépén. Ami elég jó. És tulajdonképpen ez mindenütt használható. Emberek, akik a tech tudja, hogy ezt használják minden alkalommal. te? Lehet, hogy több számítógép egy készülékben. Nézzük tulajdonképpen egy pillantást a készülék. Amikor megy a készülék után regisztráció, akkor kell majd fel a neved, és jelentkezzen be a Harvard így lehet kapni az összes regisztrált. Meg fogja látni, alapvetően csak egy tapéta, majd a Home és a Kuka, és akkor ezek a kis ikonok. Ez a három ikon valójában a leginkább Fontos dolog, hogy lehet az a készülék. Az első a gedit, ami egy szöveges szerkesztő, csakúgy, mint a Jegyzettömb, vagy hasonló bármilyen szövegszerkesztővel. Ez csak valami, amit használunk írni kódot, majd csinálni dolgokat vele. A másik dolog, hogy mi Van itt a Chrome. Tehát, ha kell, hogy használja az internetet a készülékben, ami mit lehet használni. És a harmadik dolog a terminál, ami valójában nagyon édes. Az emberek általában egyfajta félek a terminál, mert ez nagyon régimódi alkalmazás, ahol csak alapvetően típus mindent a billentyűzet. Van nem sok interakció az egérrel. De valójában a terminál nem nagyon jó dolog. Először is, nézzük csak végig Egyes parancsok használja a terminál. LAUREN CARVALHO És nyugodtan hagyja abba velünk, ha bármilyen kérdése van. LUCAS FREITAS: Igen. Tehát az első parancs, hogy van A terminál ls. ls alapvetően azt jelenti, mindent felsorolni, minden A fájlok és a rendezők, hogy van az a hely, hogy én vagyok az. Tehát, ha én ls itt fogom látni hogy van néhány könyvtárat. Nekem van az asztalon, a letöltések, A naplók és a vhostokat. Ezek a kék, mert mind a könyvtárakat. Akkor más fájlokat. Ön, mint a Hello, és hello.c, amely csak fájlokat, és ők különböző színekben. Tehát ez egy nagyon fontos parancs csak láthatja, mi van a fájlok és könyvtárak, hogy van a könyvtár te vagy a terminál. Amikor látod jharvard @ készüléket, és akkor a kis szimbólum ott, a tilde, hogy csak azt jelenti, hogy ez a könyvtárba, hogy Ön ebben a pillanatban. LAUREN CARVALHO: Tehát gépelés ls szinte mint rákattint a mappára amely szerepel ott, az azt mutatja, mindannyian a tartalom, amely az adott mappában. Közönség: Van szöveg után hello.c? LAUREN CARVALHO: Ó, nem lehet látni, mert ez a kék. LUCAS FREITAS: Azt mondja: naplók és vhostokat. LAUREN CARVALHO: Ezek csak más mappákba. Sajnálom, ez nagyon nehéz észrevenni. Talán ha kikapcsolta a villanyt? Colton, akarod, hogy megpróbálja megtalálja a villanyt? Sajnálom. Én nem gondolok rá. LUCAS FREITAS De ez alapvetően - Ja, ha lehetne - LAUREN CARVALHO: Zoom meg a képernyőn. LUCAS FREITAS: Én nem van, hogy a funkció. LAUREN CARVALHO: [hallható]. OK. Nos, elég sok természetes könnyű ebben a szobában is. LUCAS FREITAS: Nézzük csak fel, hogy van két másik könyvtárat is. LAUREN CARVALHO: Csak szem velünk. Ez az egyetlen olyan része, hogy akkor vizsgálni a terminálon. LUCAS FREITAS: A következő parancs Alapvetően talán szeretné szervezni A kép - például minden C fájlt egy könyvtár, de nincs könyvtár csak a C fájlok még. Ön alapvetően egy olyan könyvtárat a terminál is, amely a ugyanaz, mint a jobb kattintással és azt mondja Új mappa. A parancs, hogy könyvtár, amely az mkdir, tehát alapvetően a "make" és a "Könyvtárba." És akkor lehet, hogy a könyvtár neve. Tegyük fel, hogy én akartam, hogy hívják, Nem is tudom, mondjuk pset1 csinál ezt, most létrehozott egy könyvtárat. Nézzük csak ellenőrizni, hogy ott van. Tehát, ha én ls, most látom naplók és majd pset1, majd vhostokat. Szóval az új könyvtárat is. És miután egy új könyvtárat, Lehet, hogy fel kíván keresni bele, így a következő parancsot a CD-t, ami csak alapvetően azt jelenti, megy a adott könyvtárba. Tehát, ha azt akarom, hogy menjen pset1, Én csak ezt a CD pset1. LAUREN CARVALHO: CD-tartók a változás könyvtár, [nem hallható] képes emlékszem. LUCAS FREITAS: És most látom, hogy ahelyett, hogy csak úgy, jharvard készülék, én jharvard készülék, majd pset1, mert ez mutatja, hol vagyok ezen a számítógépen. Most, ha azt akarom, hogy menjen vissza a könyvtár előtt volt ez, azt tehet cd pont pont, ami csak azt jelenti, megy a könyvtárba, hogy én korábban, mint a szülő ezt könyvtár, alapvetően. És most már látom, hogy én vagyok vissza jharvard. A következő dolog, hogy meg tudom csinálni az rm, ami egy fájl törlése. Például, nézzük először ls hogy mi van itt. Van Hello, és hello.c. Tegyük fel, hogy azt akarom, hogy távolítsa el őket. Meg tudom csinálni rm helló. Azt fogja mondani: "A reguláris fájl helló? "És én azt mondom:" Igen. "És most, ha én ls, látom, hogy ez az nem volt ott többé. Ha megpróbálom használni rm a könyvtár, bár ez nem fog hogy hadd semmit. Azt fogja mondani, hé, te nem tudja eltávolítani a könyvtárat. Így van ez a többi jön úgynevezett rmdir, ami csak alapvetően azt jelenti, könyvtár eltávolítása. Én, például, távolítsa pset1. És ha én ls, én nem már többé. Bármilyen kérdése erről? Nem? Igen? Közönség: fontos, hogy hagyja egy hely után - amikor csak kezdjen el írni valamit? LUCAS FREITAS: Igen. Ha én, mint a CD-t, és a könyvtár, Meg kell tenni a helyet. Milyen helyet beszélsz? LAUREN CARVALHO: A tér között, cd és [nem hallható]. LUCAS FREITAS: Igen, akkor meg kell tegye a terek, mert cd a parancsot, majd a következő karakterlánc, Ön típus alapvetően a könyvtár. Szóval, ez olyan, mint egy érvet. Igen? Közönség: Ha felsorolni, mindazoknak, különböző könyvtárak, nem igaz? LUCAS FREITAS: Igen, abban a könyvtárban. Közönség: Mi a különbség között a könyvtárak? LUCAS FREITAS: Ezek csak különböző mappákba. Directory egy mappa a számítógép. Közönség: Nyissa meg a mappát. LUCAS FREITAS: Igen, ez csak egy mappa megnyitása. LAUREN CARVALHO: Itt vagyok, azok amelyek kék tényleges könyvtárakat, hogy lehet bejutni, és aztán majd meglátjuk, egy csomó dolog, hogy belül, ami nem szerencsés mert nem tudja olvasni a is kék. És azok a fehér csak kép , amelyek az aktuális könyvtárban. LUCAS FREITAS: Tehát könyvtárak azok a mappák. A többi közül fájlokat. Közönség: Mi a parancs állítani, vagy azt törölni? LUCAS FREITAS: Ha törölni? LAUREN CARVALHO: Ha törölni? LUCAS FREITAS: Azt hiszem, ez a "tiszta". Igen. Szóval csak típus világos, a képernyőn túl rendetlen. Van még kérdés? És meg fogja tanulni egy csomó más parancsok csak természetesen az félévben, mert ők nagyon hasznos. Most beszéljünk összeállítása. Beszéltünk pszeudokódja és forráskód és tárgykód. És van egy csomó kódot, és talán Ti zavaros róla. Beszéljünk egy kicsit arról, hogy mi történik, ha írsz egy programot, és te fordítsd le, és ez lesz egy futtatható fájl. Ezek a szavak, hogy a srácok hallott, és talán nem Tényleg arról, hogy mi folyik. Mondjuk, például, hogy azt akarom, hogy írni egy programot, amely azt mondja: "Hello." A első dolog, ami a fejedben van Ön milyen gondolkodjon, hogyan te csinálni, hogy a fejedben, és akkor valószínűleg gondolkodás angol vagy valamilyen más nyelven, mint a természetes nyelv, talán. És akkor gondolom, jó, ha akarom, például írni egy programot, amely azt mondja: "hello," én egy program elindítása, Én kiírja hello, és akkor én kilépett a programból. Ez pszeudokódja. Ez csak alapvetően próbál felér egy eseménysor hogy fogsz tenni, hogy képes írni egy programot. Akkor a forráskódot, és A forráskód nem kell kifejezetten lennie C. beszélünk a forráskód C-ben, mert ez az A nyelv tanulunk, de természetesen kód is elég sok minden programozási nyelv, hogy van. Később a félévben, mész tanulni más nyelveken. Ez is forráskódot. Például itt, ez az én forrás a kódot, majd én többek között a könyvtár, aztán elkezdek fő, aztán kinyomtatni. És Laura fog beszélni egy kicsit kicsit ezt az egészet. Tehát ez a forráskód. És mi a tárgykód? Az objektum egy csomó nulla és az is, alapvetően. Mi történik akkor kezdetben pszeudokódját, amely mind az angol. És én értem, értem. Valószínűleg a barátok megérteni , és a legtöbb ember megérteni az ötlet. De a számítógépek nagyon buta, és nem érti az angol nyelvet, így is lefordítani, hogy valami, általában lefordították néhány programozási nyelv. És azt lehet gondolni a programozási nyelv olyan, mint egy nyelv , hogy tájékoztassa a számítógép, hogyan beszélni és megérteni. Te alapvetően ír valamit olyan nyelven, mind a ketten, és a számítógép megérteni. Ez a forráskódot. Így megy formában pszeudokódja forrás kód, ez rajtad múlik. Ez alapvetően csinál a program. De a probléma az, hogy a a számítógép nem is megérteni programozási nyelv. Nem érti forráskód egyáltalán. Ez valójában csak érti nullák. Szóval, itt van ez a nagyon mágikus dolgot nevezett egy fordító, amely alapvetően a lesz, hogy a forrás neve, amit írt olyan nyelven is van, és a számítógép beszélni, és most majd átalakítani, hogy nullák. Tehát alapvetően mi a fordító csinál, ez lesz forráskód, ebben az esetben a C, ez lesz átalakítására nulla és az is, hogy a számítógép megérti, és lehet, hogy egy futtatható fájl belőle. Van ennek értelme? Ön gondoljunk csak a fordító, mint valamilyen fordító, amely segít megmagyarázni, hogy a számítógép pontosan mit kéne csinálni. De hogyan tudom lefordítani. Menjünk vissza a készülék, és a mondjuk, hogy én csinálom a programot. Először fogok létrehozni egy könyvtárat itt, és én fogom hívni "Gyakorlat". Most fogok navigálni a könyvtárba, így cd gyakorlatban. Most én vagyok benne gyakorlata. Most szeretném kezdeni gedit, igen, hogyan tudom ezt megtenni? Én sem kattints ide, vagy én is csak szó szerint írja be a "gedit", és ez megy hogy nyissa meg nekem. Most megyek, hogy írja be a programot, így pontosan mit írtam a diát. Én nyilvánító könyvtár. Csinálok int main, semmis. És most én csinálok printf, helló. Most fogom menteni ezt. Hadd tegye át a gyakorlatba, és Fogom hívni ezt hello.c. Tehát most ez mentette. Ha akarok fordítani, én tényleg meg tudja csinálni két különböző helyen. Én sem csinálni egy terminál ablakban így ez a nagy, vagy akkor használjon gedit, hogy valóban van egy terminál ablakban itt. Így kényelmesen csak csináld a kódot, és akkor csak típus ami itt, és próbálja az összeállításhoz. Szóval, hogyan tudom lefordítani kód? A legegyszerűbb módja, hogy van a segítségével tenni, ami egy olyan funkció, amely alapvetően fog fordítsa le a kódot. Csak ki kell mondani, hogy helló, így "Teszik", és a program nevét. Bocs. Ez kínos. LAUREN CARVALHO: Tud [hallható]? LUCAS FREITAS: Elnézést. Én nem menteni a megfelelő könyvtárba. Gyere gyakorolni, és most mentse el hello.c. Sajnálom. Most már mentve. Hadd ls, és arról, hogy ez itt. OK, most már itt van. Tehát most, ha tudom, hogy hello, hogy köp a Sok dolog, de aztán csak ad nekem még egy vonal a terminál, amely azt jelenti, hogy sikeres volt. Tehát most, ha én egy ls megint, én valójában látni ezt a fájlt a zöld, amely a futtatható fájl. És ha azt akarom futtatni, minden Azt kell tennie, hogy pont perjel helló. Meg fog köszönni itt, így ez pontosan mit kérek, hogy. Van még egy módja összeállítása, amely segítségével csenget. Clang csak egy fordító, hogy mi van, és ez egy kicsit bőbeszédű, hogy fordítsuk le. De ez ugyanúgy működik is. Tehát, ha én csenget, majd-o, majd A név, amit szeretnék adni a futtatható fájlt, így mondjuk "Helló". És akkor a fájl, amit szeretnék összeállításához, hello.c. Ez is fog össze. És megvan a fájl itt, és Én is csak végre azt is. Így mind a ketten dolgoznak. Van ennek értelme? Bármilyen kérdése? Közönség: Tud zoom egy kicsit? LUCAS FREITAS: Tessék? Közönség: Nagyítás? LAUREN CARVALHO: Azt hiszem, csak parancsot plusz. LUCAS FREITAS: Command mi? LAUREN CARVALHO: Command plusz. LUCAS FREITAS: Nem. LAUREN CARVALHO: Ó, ez nem fog dolgozni, mert - azért, mert azt a felbontást ezt a dolgot. LUCAS FREITAS: Én nem hiszem, tudjuk nagyításhoz Ja, nem tudjuk nagyítani. Van egy másik kérdésed? Bocsánat. Közönség: Meg tudná ismételni csenget? LUCAS FREITAS: The csenget? Clang ugyanaz a dolog, mint hogy, de a a különbség az, hogy az első megyek írni csattanással, amely a parancs, akkor fogok csinálni -0, minden, ami a csak mi fogunk tanulni, később a zászlót. Szóval, csak azt gondolom, hogy mindig kell tenni a-o. És akkor az első, akkor megy, hogy a neve a futtatható fájl, alapvetően a fájlt, hogy te fog hozni. Szóval azt lehet mondani, például, hello2 és akkor a fájl, amit szeretnék fordítani, amely a. c file. Szóval ez hello.c. Van ennek értelme? KÖZÖNSÉG: Hello, mi? Mi ez? LUCAS FREITAS: hello.c. És ha fordítani, és ha Én ls, nekem is van egy hello2 hogy én csak össze. És ha megpróbálom futtatni, ez lesz a pontosan az ugyanaz, mint a hello, csak nyomtatni helló. Közönség: Hogy lehet, hogy a make akkor tegye hello.c után? LUCAS FREITAS: A márkától Nem kell, hogy tegye a. c. A make, csak azt a A program megnevezése. Nem kell mondanom. C. De csenget, akkor. Közönség: A csattanással te is kell hozzá az [hallható] LAUREN CARVALHO: Igen. Így is meg kell könyvtárba. LUCAS FREITAS: Igen, ez valami fogjuk használni később. Ezt hívják összekapcsolása, és azt hiszem majd később megbeszéljük. Egy másik kérdés? Közönség: Mit tesz egy pont perjel csenget? LUCAS FREITAS: Nem. A dot perjel csak megnyitni A futtatható fájl. Tehát csattanással, csak írni "csenget", és akkor, ha azt szeretné, hogy nyissa ki a futtatható fájl, amit csak össze, akkor nem pont perjel és a nevet. Van ennek értelme? Közönség: Ha úgy döntesz, hogy csak a változás [Hallhatatlan] a hello world, ugye kell újrafordítani ez? LUCAS FREITAS: Igen. ha azt akarom mondani, például, hogy "hello ott, "Én csak menteni, és én csak fordítsd újra. Hadd tegyek egy make helló. És ha én hello, ez fog mondják, hogy "hello there". Van értelme? Van még kérdés? Közönség: Van, hogy tartalmazza a standard I / O, hogy koordinálja a munkát? LUCAS FREITAS: Igen. A standard I / O alapvetően a könyvtár, hogy van egy végrehajtás printf. Annak érdekében, hogy a dolog közvetlenül a Top tartalmazza stdio. Ezt többek között egy könyvtár, alapjában véve egy csomó különböző eszközök segítségével. egy? Közülük az printf, hogy egy olyan funkció hogy alapvetően nyomatok üzenetek a képernyőn. Van még kérdés? Nem? OK. Most beszéljünk - LAUREN CARVALHO: Maradjunk megy a stílus útmutatót. Szeretné, hogy csak megtalálja itt? LUCAS FREITAS Szóval megyünk beszélni stílusban. LAUREN CARVALHO: Ó, David nem fejezte be. OK. Miért nem jön vissza stílus a legvégén? Ez valóban frissítve mint beszélünk. LUCAS FREITAS: Igen. Nézzük utat David befejezni ezt. LAUREN CARVALHO: Can mi váltani valójában? Szóval remélem, mindenki volt élvezi Scratch. Sajnos, itt az ideje, hogy távolodjon el a - Sajnos itt az ideje, hogy mozdulni ezek a szép programozási blokkok A C. De szerencsére, az összes programozási konstrukciók, hogy már óta dolgozik a Scratch vannak közvetlenül lefordítható C, és mi vagyunk fog kezdeni tanulni némelyikük most. Nézzük először beszélni feltételek A logikai kifejezések. Ez fut tartalék akkumulátort. LUCAS FREITAS: Hogyan hogy nem működik? OK. Menj oda, megyek, hogy a - LAUREN CARVALHO: Tehát feltételek fontos, mert lehetővé teszi számunkra, hogy be logika programjainkat. Íme egy példa egy állapot egy C program. Nézzük, vegye figyelembe, hogy ez a - Tehát ez a feltétel blokk itt, ez a printf nyilatkozat nem végrehajtani kivéve, ha a feltétel a zárójelben, n nagyobb, mint 0, értékeli, hogy igaz. Most, a feltételeket az f kijelentések logikai kifejezések, ami azt jelenti, hogy Csak két lehetőség. Ők sem értékelik az igazi, vagy lehet értékelni, hogy hamis. Tehát itt, így ez érthető, nem? n 0-nál nagyobb, azt jelenti, hogy ez egy pozitív szám, ami azt jelenti, hogy kiírja out "akkor felvette egy pozitív szám." Sok logikai kifejezések amelyek alkothatnak egy a feltétel init nyilatkozatot. Megvan a kevesebb. Ez kevesebb, mint vagy egyenlő. Ez csak egy vicces [hallható]. Ha azt szeretné, hogy a printf fordul elő, ha ez nagyobb vagy egyenlő 0, akkor akkor válassza ezt. Így egyenlő csak hozzáfűzi jobb miután a nagyobb jel. Egyenlő egyenlő, amely különbözik a csak egy egyenlőségjel, azonos azonos valójában azt jelenti, hogy bármi is van a bal oldali ez ugyanaz, mint mi a jobb kéz felőli ahol az egyik egyenlőségjel mi? Mi csak egy egyenlőségjel? Hozzárendelés. LUCAS FREITAS: Ki mondta ezt? Ez cukorka? Ó, nem. Bocsánat. Bocsánat. Mindketten kap cukorkát. Oh, OK! Három ember kap cukorkát! LAUREN CARVALHO: Tehát ez itt a bumm üzemeltetője előző Az egyenlőségjel, hogy ez nem egyenlő. Szóval, ha ez volt az én állapotát, a test a feltétel csak ha bármi is van a a bal oldali nem ugyanaz, mint a mi van a jobb oldalon. Én is csak a felkiáltójel. Tulajdonképpen majd meglátjuk a funkció csúsztassa hogyan kell használni. LUCAS FREITAS: További kérdések? Nem? LAUREN CARVALHO: tudjuk kombinálni a Logikai kifejezések építésére több bonyolult feltételes állítások. Tehát itt, ha bármi a bal oldali a rudak vagy kettős bármi is a jobb oldali A dupla rudak értéke igaz, akkor majd nyomtassa ki érvénytelen. És akkor itt, ha bármi a a bal oldali a két ampersands és amit pedig a jobboldali oldalán a két ampersands értékeli, hogy igaz, akkor majd kinyomtatni érvényes. A dupla rudak nevezzük a logikai VAGY operátor a kettős ampersands vannak úgynevezett logikai ÉS operátor. Igen? Közönség: Azok csak kisbetűk l's? LAUREN CARVALHO: Nem. Ők valóban - tudod, az visszaüt, mint a fölött a vissza gomb? Látod ezt? LUCAS FREITAS: Ez valójában egy bárban. LAUREN CARVALHO: Ez valójában csak két sáv. Közönség: Lehet használni a azonos azonos a húrokat? LUCAS FREITAS: Nem. Fogunk tanulni később valamit. LAUREN CARVALHO: Van egy funkció hogy tudod használni. De nem kell attól tartanak, hogy csak még. Mi van, ha adok a program Az 5-ös szám? Milyen kiírja? Közönség: [Nem hallható] érvényes. LAUREN CARVALHO: érvényes? Igen. Én nem tudom, ki van az a. [Nevetés] LAUREN CARVALHO: Ez az a fajta ijesztő [hallható]. Közönség: Tehát a két-és, ez csak azt jelenti, és? LAUREN CARVALHO: Igen. Tehát 5-ös szám egyszerre nagyobb mint 0 és kisebb, mint a 100. Közönség: Miért lenne az? LAUREN CARVALHO: Egy jel van valóban valami mást, és ez bitenkénti operátor, amely akkor tanulnak később. De ez valami, ami tényleg működik a bitek egy adott szám. LUCAS FREITAS: Gondoljunk csak bele, hogy nem kell aggódni, hogy most. LAUREN CARVALHO: Azt hiszem, ez talán jön a jövő héten. LUCAS FREITAS: Egyéb kérdés? Nem? LAUREN CARVALHO: Tehát láttuk, hogy az akkor blokk önállóan, de lehet is párosítható, és mással blokk. Tehát ebben az esetben, ha n értéke nagyobb, mint a 0, fogunk kinyomtatni "Te Felvettem egy pozitív szám. "más, ami azt jelenti, ha 0, vagy ha ez kevesebb, mint 0, megyünk, hogy nyomtassa ki, "Te választottad negatív szám." Az érdekes dolog az, hogy ezek a kizárólagosak egymást. Soha nem lesz a helyzet amelyben ez a, és ez a egyszerre kinyomtatni. Biztos vagyok benne, hogy dolgozott az if / else doboz a Scratch, így ezt kell nagyon ismerős. Igen? Közönség: Nem kell a tér között n értéke int getInt majd helyet a ha a nyilatkozat? Mintha egy vonal [hallható] LAUREN CARVALHO: Ó, a tér itt? Közönség: így, de duplán helyet. No, menj fel. Menj fel. LUCAS FREITAS: Csak a vonal? Közönség: Igen. LUCAS FREITAS: Csak az üres sort? Közönség: Igen. LAUREN CARVALHO: Üres sor? Nem. Ez csak egy stilisztikai dolog. LUCAS FREITAS: Ez olyan, mint néha csak hagyja néhány sor, így hogy a kód nem úgy néz ki, mint a a hatalmas blokk szöveget. LAUREN CARVALHO: Azt hiszem, hogy mi történt az volt, hogy volt egy megjegyzés, de azt vette ki, hogy nektek kellett volna gondolni a kód meglehetősen nem csak olvasni a megjegyzést. Általában távolság nem igazán befolyásolja, ahogy a program fut. Ez inkább egy stilisztikai dolog. És amikor már a stílus vezető frissített és kész végére szuperszakaszon, fogunk beszélni erről többet. Valami baj van a ez a program, igaz? Mivel a 0 nem igazán negatív szám. Tehát lássuk, ha meg tudjuk oldani. Akkor talán képzelni ezzel azt mondja, nem igaz? Ha n nagyobb, mint 0, akkor nyomtassa ki, "Te Felvettem egy pozitív szám. "Akkor még Ha n kisebb, mint 0, "Te választottad a negatív szám. "más," Te választottad 0-ra. " Most az érdekes dolog az, hogy ez örökké. Tudod van egy, ha blokk, egy más, ha blokk, egy másik else if blokk, else if, else if, else if, else, alapvetően ameddig csak akar. És amikor épült, mint ez, ezek mind lesznek kizárják egymást. Igen? Közönség: Akkor miért nem tudsz csak használni egy másik, ha ahelyett, hogy [nem hallható]? LAUREN CARVALHO: Ebben az esetben igen, jönne még egy, ha, és ez lenne a teljesen rendben van, mert a körülmények között maguk kizárják egymást. De ha a feltételek nem voltak kizárólag egymástól, ez lenne kényszeríti őket, hogy nem lehet a kettőt értékelni, ha van értelme. Közönség: Ebben az esetben tudnánk fészek A második, ha az első, ha? LAUREN CARVALHO: ha - Mit jelent ez? Közönség: Ha a két feltétel nem zárják ki egymást? LAUREN CARVALHO: Ha a feltételek nem zárják ki egymást? De szeretnénk csak az egyik, hogy futni? Közönség: azt szeretnénk, csak ha ahelyett, hogy más. LAUREN CARVALHO: Igen. Vannak mindig lesz sok módon, hogy meg tudod csinálni. Akkor feltétlenül fészket őket. És látni fogod a jövőben dia akkor több IFS, csak egy a másik után. De ez egy módja annak, logikailag megszervezése az áramlás a program. LUCAS FREITAS: És van még egy dolog, az, hogy megkérdezte üzembe Ha majd egy másik, ha. Ez tökéletesen működik, de rossz design, mert alapvetően, ha ellenőrizze az első, ha, és azt tapasztalja, hogy ez a szám nagyobb, mint 0, akkor csak befejezni a programot. Önnek nem kell ellenőrizni, ha ez kevesebb, mint 0, nem igaz? De ha, ha, ha, ez lesz ellenőrizni két, míg ha a teendő, ha más van, ez megy, hogy ellenőrizze, ez 0-nál nagyobb. Ha igen, akkor nem fog még nézni a másik vonal a kód. Szóval tulajdonképpen ellenőrzés, mintha kétszer feleslegesen, szóval ezért tenni, ha else if. Van még kérdés? Közönség: Tehát a funkcionalitás Az else if ugyanaz, mint ha ez csak, ha? LAUREN CARVALHO: Nem. Te tényleg fog látni a következő csúsztassa olyan példa, amelyben tud eltérő lehet. Ebben az esetben, ez majdnem ugyanaz. Tehát itt van egy példa a több ha a kimutatásokat, és a funkcionalitás nem ugyanaz , mintha az imént mondtam, ha más, ha más, ha mást. Gondoljunk csak arról, hogy mi fog nyomtatni , ha belépek a szám 95 ebbe a programba. Közönség: [Nem hallható] LAUREN CARVALHO: És aztán? Közönség: [Nem hallható] LAUREN CARVALHO: Igen. Tehát ebben az esetben ezek a feltételek kölcsönösen nem zárják ki egymást. És mivel nincs semmi megállás ez a feltétel az értékelése, ha ez Egy már, ők csak minden fog kinyomtatni. Szóval, hogyan lehetne ezt orvosolni? Közönség: még IFS? LAUREN CARVALHO: Használhatja mást IFS. Tudtam változtatni a sorrendben ilyen, nem igaz? Ha én nem ez az első? Nos, igazából nem. Ez nem működik 95. LUCAS FREITAS: Nem, csak a más IFS. LAUREN CARVALHO: Az else IFS volna fix ezt. Ez azt tisztázni a zavart között az IFS és más IFS? Közönség: Csak azt akartam kérdezni, hogy Ön nem használ mást, ha ez meg? LAUREN CARVALHO: Így van. Tehát csak ez az első. Ha beléptem a szám 95, csak ez volna kinyomtatják, és soha nem volna, fejlődött a mást. LUCAS FREITAS: csak egyfajta gondol azt, ha ez történik, ezt. A mást, mint, ha nem, akkor ellenőrizze ezt, és tegye ezt. Szóval, mint ők mind kölcsönösen exkluzív. Nem tud két azokkal szemben. Közönség: Lehet használni a logikus És ez a helyzet? LAUREN CARVALHO: Igen. Ez egy másik módja, hogy mi lehetett akik határozott időre ezt a problémát. Mi lehetett volna határozni tartományok, ugye? Szóval azt mondhattam volna, ha n nagyobb mint 90 és kevesebb, mint - Nos, azt hiszem, ez nem igazán számít, de itt azt mondhattam volna, ha n értéke nagyobb, mint 80, és kevesebb, mint 90. Nagyobb, mint 70, kevesebb, mint 80. Ez azt is dolgozott. [Nevetés] LUCAS FREITAS: megijedt. LAUREN CARVALHO: Ne félj. LUCAS FREITAS: Nem , hogy nem lesz baj. Csak, hogy ez feleslegesen bőbeszédű. Mint a számítógép-tudomány, az egyik kell olyan egyszerű, mint lehetséges, amíg akkor a funkcionalitást. Szeretné az édességet? Közönség: Nem kell rá. LAUREN CARVALHO: Megijeszted mindenki, Lucas. LUCAS FREITAS: Elnézést. LAUREN CARVALHO: David is szerepel Ezek switch az osztályban. Alapvetően mi folyik a kapcsoló adatok vesz változó. Ebben az esetben, mi vesz egy egész szám. Ha az egész 1, megyünk nyomtassa ki, "Te felvette egy kis szám. "Ha az egész 1," Te felkapott egy közepes számot. "Ha a egész szám 3, "Te választottad magas szám. "És én is volt egy alapesetben itt, de ez nem jelenik meg fel, ami rossz. Alapvetően, ez csak másik szintaxis. Mi volna végre ezt a pontos Ugyanez a helyzet, ha és más, ha nyilatkozatok. De ha van sok különböző feltételek és a sok különböző variációk, hogy mit akar tenni Minden bemeneti, ez egy lehetőség. Tehát ez csak egy jó szintaxis tudni. Igen? Közönség: Miért nincs egy backslash n az első? LAUREN CARVALHO: Mert ott? Nincs backslash n ott mert a getInt - ha megpróbálod ezt, akkor az Önnek ez a prompt. Adj egy egész szám 1 és 3 között. És ha tettem a holtjáték n, akkor vigyen a következő sorba, de én csak azt akarta, hogy írja be a egész után a vastagbélben. Ha volna a holtjáték n. Ez nem egy nagy dolog. Igen? Közönség: Mert ez a kód, ez Ha az egyik, hogy azért, mert ez az első eset? Mivel - LAUREN CARVALHO: Nem, nem, nem. Szóval, ez ad nekem egy egész 1 és 3 között. Ha n értéke 1, azt nyomtassa ki ezt. Ha én kért levelet, tudtam volna azt mondta nekem írni az A és C. Akkor ez lenne a helyzet A. Közönség: [hallható]. Az eset is csak [hallható] LAUREN CARVALHO: Igen, igaz. Igen? Közönség: Mi van, ha akart volna inkább egy relációs kifejezés? Tehát ahelyett, hogy n értéke 1, [nem hallható] n értéke 1-nél nagyobb, az első esetben? LAUREN CARVALHO: Igazából, ha nem meghatározzák ezek közül néhány esetben ez lenne kell folytatni lefelé. Tehát tulajdonképpen, talán ez nem amit kér. LUCAS FREITAS: Azt hiszem, hogy megkérdezi, esetében az n nagyobb, mint 0, eset 0-nál kevesebb. LAUREN CARVALHO: Lehet, hogy a kapcsoló állítás nem igazán az, amit akarsz használni ebben az esetben. LUCAS FREITAS: A switch kifejezés csak az érték, szóval ellenőrzése ez az érték, mint ez vagy azt. Így valójában nem tedd feltételek. Közönség: Mi lenne, ha a személy típusok [hallható]? LAUREN CARVALHO: Ez lett volna az alapértelmezett eset, ami sajnos nem lehet látni. LUCAS FREITAS: [Nem hallható] hogy lássák. LAUREN CARVALHO: Igazából, tudod mit? Menjünk tanulni 50, és én csak nagyítani a diák tanulmányi 50, mert ez csak bosszantó. Hadd tényleg menjen állapotban. Ez csak megy, hogy eltarthat egy ideig. Rendben van. Szóval, sajnálom. Legalább most már képes lesz arra, hogy Mindent nélkül levágta. Rendben van. Tehát, ha tesz egy 10, mi lenne az alapértelmezett Itt az alapértelmezett helyzet, és én akar csak nyomtatni érvénytelen azért, mert Megkértük őket, hogy adjon meg egy egész számot 1 és 3 között. Van még kérdés? Igen? Közönség: Mondjuk ha az egyik, ha három, mondja, azt akarta, hogy legyen minden a ugyanaz a dolog, ezért felvette a számot ez nem egy közepes számot. Ebben az esetben lenne felesleges? Vajon csak változtatni a szöveget, mind őket, vagy pedig van néhány redundancia? Van-e bármilyen módon össze [Nem hallható]? LAUREN CARVALHO: Több lehetőség is van kombinálják őket, de azt hiszem, akkor csak össze a szomszédos is. Tehát, ha nem határozzák meg semmit az esetben, ha két, ez vonatkoznak mindkét esetben. Ó, ha nem tesz semmit a helyzet ember, ez vonatkozik mind a esetben egy és kettő. Ha van értelme. Közönség: tudod ismételni, hogy az egyik? LUCAS FREITAS: OK. Ha nem alapvetően hasonló, akkor ugyanaz a dolog, de nem tesz itt valami, akkor lenne sem a Ha az egyik vagy az esetben két, erre a célra. Nem igaz? És ez a szünet azt jelenti, ha kap ebbe az ügybe, csak hagyja. Szóval, ez az, amit a féket jelent. Tehát, ha én csak tettem, úgy nézel ki, ez Ha az egyik, és akkor csak ezt. Ha ez volt a helyzet a két, akkor is csak gyere ide, és csinálni. Közönség: De meg tudod csinálni? Ha van valami, Ha két [hallható] LAUREN CARVALHO: Nem hiszem, hogy meg tudod csinálni ezt. Nem hiszem, hogy akkor hagyja körül. Meg tudod csinálni, Rob? Nem hiszem. Közönség: Tehát csak egy szám mehetsz után az ügy, igaz? Nem lehet ha az egyik, vessző, kettő? LUCAS FREITAS: Nem, nem lehet. Akkor biztosan nem. LAUREN CARVALHO: Úgy értem, a lényeg az, ez egy lehetőség, és ez lehet, hogy nem illeszkedik a használati eset, így akkor is használja a ha a körülmények. Közönség: Miért tennéd ezt? A kapcsoló? LAUREN CARVALHO: Szeretném használni ezt a ha nagyon meghatározott - valóban, Lucas, a te blokkolja. LUCAS FREITAS: Ó, sajnálom. LAUREN CARVALHO: Ha nagyon meghatározott viselkedés, hogy a kívánt minden egyes input, ez lehet a kicsit tömörebb, mint írásban ki egy if mindegyik. Közönség: Mit jelent a szünet azt jelenti, megint? LAUREN CARVALHO: A kis szünetet jelent megáll. Ne feledd, ha nem lenne ez a szünet Itt volna most esett le a következő eset. LUCAS FREITAS: szünet azt jelenti, hogy ki a switch. Mert ha ez 1, szeretnék nyomtassa ki ezt, és hagyja. Nem akarom, hogy ellenőrizni mást. Közönség: Nem akarsz nyomtatni mást. LUCAS FREITAS: Igen. Mert kölcsönösen kizárják egymást. Közönség: És ez csak abban az hogy a következő esetben, ha az első esetben nem igaz? Vagy azt teszteli minden esetben ugyanabban az időben? LUCAS FREITAS: Nem, ez ellenőrzés sorozatban. Sorrendben, igen. Még egy kérdés, akkor megvan, hogy lépni, így tudjuk fedezni mindent. Igen? Közönség: Így arra az esetre, volna történt valami mellett csak az egy? Tudna adni egy sor? LUCAS FREITAS: Nem. LAUREN CARVALHO: Nem hiszem, hogy tudod, hogy ez a tartomány. LUCAS FREITAS: Nem tudsz te nem tudja, hogy ez a tartomány. Közönség: Az eset specifikus [Hallható]. LUCAS FREITAS: Switch van valami érték. Azt csinál mást attól egy értéket, egy bizonyos értéket. Ezt nem teheted tartományban, akkor nem mást csinálni. Ez is csak egy eszköz, hogy. LAUREN CARVALHO: A legtöbb ember nem használja kapcsoló nyilatkozatok nagyon sok CS50, de ott van. Rendben van. Így a következő dolog, fogunk beszélni arról van szó, a hármas operátor. Ez is csak egy típusú feltételes. Alapvetően mi folyik itt vagyok kér egy egész szám, és ha n értéke nagyobb, mint 100, megyek, hogy nyomtassa ki "Magas". Ha nem, megyek kinyomtatni "alacsony". Szóval, mit csinál ez a feltétel itt a zárójelben, és akkor milyen gondolni kérdés ahogy azt kérdezem, hogy a ez igaz-e vagy sem. Ha ez igaz, azt fogom tenni ezt az első dolog, és ha ez nem igaz, én vagyok majd ezt a másik dolog. Bármilyen kérdése a hármas operátor? LUCAS FREITAS: Csak azt akarom, vegye figyelembe a David az, hogy ha van egy állapot - LAUREN CARVALHO: Azt hiszem, David figyeli keresztül élő közvetítés. LUCAS FREITAS: Ő csinálja élet patak most. Tehát, ha van egy állapot, akkor kellene, hogy kapcsos zárójelek, ahogy van egy switch adatok itt. Van kapcsos zárójelek itt. Bármilyen körülmények között, akkor állítólag azt is tedd azt. LAUREN CARVALHO: Meglátod ez a stílus útmutatót. Mi valójában nem a stílus vezető most. Azt hiszem, David még mindig működik. LUCAS FREITAS: Azt mondta, hogy ez csak működik most. LAUREN CARVALHO: Ó, ez működik most? OK. Szóval úgy tűnik idén a stílus útmutató, akkor is, ha csak egy sort, muszáj, hogy azokat a kapcsos zárójelek be Nem feltétlenül szükséges, hogy a funkcionalitás a program. És talán kéne egy kis szünetet miután a feltételek és menjen egyenesen a stílus vezető világos fel ezeket a dolgokat? LUCAS FREITAS: Igen. Van kérdése? Közönség: Nem, én csak várni míg a stílus útmutatót. Közönség: Tudnál vissza A hármas operátor? LAUREN CARVALHO: Ternary, igen. LUCAS FREITAS: ternáris operátor alapvetően egy, ha mást nyilatkozatot, de a ahelyett, hogy a két vonal Az ellenőrző és ha igen, akkor a mást, csak egy sort. Tehát alapvetően, ha azt akarom, hogy a szöveg értéke magas vagy alacsony, és azt szeretnék csinálni egy nagy ha n nagyobb, mint 100 vagy alacsony, ha ez kevesebb, mit tehetek ez [hallható] a szöveg lesz, aztán kérje a program n nagyobb, mint a 100? Szóval ezért van ez a kifejezés zárójelben, majd a a kérdőjel. Kérek, hogy nagyobb, mint a 100? Ha igen, akkor lesz magas. Ha nem, akkor lesz alacsony. Tehát alapvetően mit gondol kérdezed a kérdés, így teszel zárójelben a feltétel. Akkor tedd a kérdőjel mert te kérve. És ha ez igaz, ez lesz Az első érték [hallható] itt. Ha nem, megyek, hogy a értéket, amely után a vastagbélben. Van-e értelme? Ez is valami, hogy olyan, mint egy eszköz a C, de nem kell, hogy kifejezetten használni. De a CS az emberek általában szeretik, hogy mert csak takarít vonalak. LAUREN CARVALHO: Ez nagyon elegáns. Ez nem sok, csak egy nyilatkozatot. Közönség: Tehát a százalék jel csak amit az eredmények az előző sor? LAUREN CARVALHO: Ó, sajnálom. Ez a százalék jel tulajdonképpen a helyőrző ebben s. A printf utasítás, megvan ez a karakterlánc itt, ami mi fog nyomtassa ki, de akkor nem csak hogy ezt s oda. Egyébként ez nyomtat ki s szó szerint. Így tesz egy százalék itt tartani ezen a helyen tartott bármilyen után jön a vessző. Tehát egy szöveg, megvan százalék s. Egy egész szám, százalék i. Egy úszó, százalék f. Majd látni ezeket, mint mi további példákat. De lehet, hogy meg kell beszélni a stílust útmutató egy kicsit, most hogy ez a helyzet. LUCAS FREITAS: Ha megy cs50.net/style, fogsz látni a stílus útmutatót. A probléma készletek, a pontszám a probléma készlet áll hatály, ami gyakorlatilag azt jelenti, ha nem az összes részeit probléma meg, vagy ha próbált valamit. A másik dolog az, korrektség, amely azt jelenti-e a program mit csinál kellett volna, hogy csinál, vagy mégis vannak hibák, vagy ha nem teszi, amit ez kéne csinálni. A harmadik dolog az, design, ami azt jelenti, te végrehajtja ezt is, vagy használ felesleges állításokkal? Így például, ha azt szeretnénk ismételni a szám 10-szer, írsz egy A hurok vagy ha csak ezzel 10-szer Ugyanebben a nyilatkozatban, csak ezzel másolás és beillesztés. Így design az, hogy. És végül, van stílusa. A stílus, mint ítélve Ha a kód így néz olvasható és milyen szép. Csak gyakorlatilag azt jelenti, van a kód olvasható? Vajon valaki, aki kereste a a kódot képes megérteni, hogy mit csinál? Van-e megjegyzéseket és hasonlók? Beszéljünk a stílust, amely kéne használni. Az első dolog az észrevételeket. Hozzászólások nagyon fontosak a kódot, mert néha csinál a programot, és pontosan tudja, mit akarsz csinálni, így csak elkezd kódolás, csak írja fel egy csomó C. De ha valaki keres, nem te vagy kódot, akkor nem fognak tudni értem, mert nem tudják, a dolgokat, amelyek a fejedben, mint a A pesudocode, így lehet, hogy lesz nehezen érthető mi a kód csinál. Tehát megjegyzéseket igazán hasznos megmagyarázni , hogy valaki, aki nézi a kódot, mit csinál, és valójában még az Ön számára, ők nagyon hasznos. Ahogy megy a keményebb és kemény Psets, fogod látni, hogy a kód lesz hosszabb ideig, és akkor a hozzászólások nagyon Fontos tehát, hogy emlékszik, mi az egyes része a programnak nem. Ahhoz, hogy egy megjegyzést, ha csak nem egy perjel perjel, majd írjon egy megjegyzést. És az egész vonal része egy megjegyzést, és amit írsz le, ez nem lesz használni a kódot. Ez alapvetően, mint a fordító fogja figyelmen kívül hagyni, hogy az. Van ennek értelme? Közönség: Mit csinálsz megint hogy írjon egy megjegyzést? LUCAS FREITAS: ez? A perjel perjel? Beírt perjel perjel, bármi abban a sorban nem fog figyelembe kell venni, hogy C-Igen? Közönség: Tehát miután a megjegyzés, akkor csak be, és elkezd egy új sort? LUCAS FREITAS: Igen, pontosan. LAUREN CARVALHO: A perjel perjel az egysoros megjegyzéseket. LUCAS FREITAS: például, itt van - hadd nagyítás - Például itt vagyok nyilvánító úszó, De lehet, hogy ha csak fel ezt a kódot, mint fogalmad sincs hogy ez mit csinál, mint valójában valaki, aki nézi ezt a kódot lesz, mint amit a fene folyik itt? Ha tesz egy megjegyzést, hogy "convert Fahrenheit fok, ez teszi sokkal több értelme van. Te, mint a, OK, te csinál egy konverzió. Van ennek értelme? Szóval, ez csak valami, ami segít az embereknek kész a kódot, és azt is, hogy leszel képes szervezése a kódot jobb. A másik dolog az, hogy meg tudod csinálni többsoros megjegyzéseket, így egy comment egy csomó vonalak. Ahelyett, hogy perjel perjel, Az első sorban megjegyzéseket, perjel perjel, a második sorban, és így tovább, akkor használhatja a perjel csillag. Az, hogy te azt, hogy a első sorban a megjegyzés, akkor csinálni egy perjel star star, így csak úgy. Csakúgy, mint itt van az elején egy programot, akkor általában fel, hogy ki vagy van, amit ez a program nem, és ilyesmi. Ez olyan, mint egy fejléc a program. Ismét, ez nem olyan dolog, ami a fordító fog törődni, hanem fontos, hogy tudja, mi ez program nem, vagy más emberek tudni, hogy mi a program csinál. Szóval perjel star star, majd a utolsó sorban fogsz csinálni csillag perjel, hogy képes legyen bezárásához ezt a megjegyzést. Tehát alapvetően minden más vonal, ha csak írni bármit, és ez a nem minden megy figyelmen kívül kell hagyni. És azt is, ahogy a stílus, akkor láthatjuk, hogy a vonalak mindegyike rendelkezik egy csillag, és az összes a csillagok igazítva. Ezek fontos dolgok, így hogy a kód néz ki. Jól hangzik? Most, a feltételeket. Mit David azt mondta, hogy mi kell ténylegesen azokban a diák, hogy a , ha van bármilyen, ha nyilatkozatok vagy bármilyen körülmények között, kell használni kapcsos zárójelek azt mutatják, hogy ez az, mi fog történni ha a feltétel. Technikailag, ha van egy állapot majd a következő sorban csak egy vonal, akkor technikailag nem rendelkeznek tenni a kapcsos zárójelek. Alapvetően a fordító megérti egyébként implicit. De CS50, kérünk titeket, hogy A kapcsos zárójelek csak azért, hogy a kód szervezettebb és olvashatóbb. Mivel a kód lesz tovább, ha nincs kapcsos zárójeleket és az ilyen. Ez lesz igazán piszkos. LAUREN CARVALHO: Pontosan ez az, amit David most rámutatott az én korábbi diák. Határozottan működik, anélkül, hogy a göndör nadrágtartó, hanem stilisztikai okokból fogunk kérni, hogy akkor tesz azok be És amikor elindulnak style50, ami elég az ellenőrzés 50 stílus, akkor emlékeztetni fogja erre. LUCAS FREITAS: És még egy dolog, ne feledje, hogy a kapcsos zárójelek mellett minden sorban. Szóval igen, például, l's. Ugrás a következő sorban, nyissa meg a göndör zárójel, akkor lépjen a következő sorban. Behúzás, amely négy mezőt. Akkor írni bármit, majd egy másik vonal, és zárja be a zárójel. Tehát biztos, hogy mindkét göndör zárójelek vannak különböző vonalak. Közönség: Tehát, ha ez a kód volt, mint a 10 else IFS, ez 10 db konzolok? LUCAS FREITAS: Igen, mindegyik. Igen. Tehát, ha, ha mást, és így tovább. Közönség: Hát nem nyomja meg a Tab behúzni? LUCAS FREITAS: Mi kérdezem srácok használható négy terek. Egyes szövegszerkesztők lefordítani tab négy terek automatikusan. gedit nem, így van, hogy do space space space space. Ez is valami, hogy néhány programozók csak ezt fülek, néhány programozók csak ezt a négy terek, és néhány más ember még nem két vagy három helyen. Csak annyi, hogy itt kérünk ti, hogy ne négy terek. Közönség: Van szinte biztosan Kell, hogy legyen egy utat gedit hogy automatikusan [hallható]. Mint nem [hallhatatlan] csinálja. LUCAS FREITAS: Igen. Azt hiszem, akkor a Beállítások. Közönség: Már nem az egésznek. LUCAS FREITAS: Ez már nem? OK. Szóval biztos, hogy négy terek. Közönség: Muszáj, hogy a göndör zárójelben a hurkok is? LUCAS FREITAS: Igen. LAUREN CARVALHO: Amikor a külvilágtól egy blokk kód, csak kérjük, használja a kapcsos zárójelek. És mielőtt úgy gondolja, hogy mi csak hogy sticklers erről a nem jó Ezért, ha ti nem megy az, hogy tech szakmai a nagyvállalatok, kapsz egy stílust útmutatót, és azt fogja mondani, hogy ez az, amit a kódot kell kinéznie. És bár megtanult kódot, mint a ez, talán a szakmai akkor meg kell tenni valamit teljesen más. Ők várják, hogy megfeleljen hogy a stílus. LUCAS FREITAS: És még egy dolog, amelyek azt veszi észre, hogy nekem van, mint x, hely, kevesebb, hely, 0-ra? Ha van egy operátor - lehet, mint a plusz, mínusz, idő, kevesebb, nagyobb, bármilyen üzemeltető - van, hogy a hely a bal és joga az üzemeltető. LAUREN CARVALHO: Ezek úgynevezett bináris operandusok. Csak győződjön meg róla, hogy mindig helyet ki a bináris operandus. LUCAS FREITAS: Ez nem egy bináris operandus. LAUREN CARVALHO: Ez mert úgy két. LUCAS FREITAS: Ó, igen. OK, a kapcsolókat. Először is, meg kell látni, hogy mint egy if vagy else utasítás, akkor tenni a kapcsos zárójel külön sorba és a zárójel itt. Figyeljük meg, hogy van egy tér bekapcsolás után, csakúgy, mint az if és az else volt egy tér között hogy a zárójelben. Így kell tenni, hogy az. És nincs hely után az egyes A zárójelben vagy vége előtt A zárójelben. Tehát láthatjuk, hogy ez mind együtt, és az is, mint itt. Igen? LAUREN CARVALHO: Azt hiszem, meg kell lépni. LUCAS FREITAS: Szóval ez is része a stílust útmutató, hogy van a CS50. Ügyeljen arra, hogy menjen a cs50.net/style és nézd meg ezt. Ezek mind nagyon fontos a stílus pontszámot. Hadd menjek vissza a nyilatkozatot. LAUREN CARVALHO: Inkább csak használja style50. Mi csak menni egyenesen a hurkok. Rendben van. Akkor térjünk vissza a tartalmat, most hogy már átállt a stílust útmutatót. Loops, láttad őket Scratch, és fogunk beszélni velük C. A for ciklus van három részletben a nyilatkozat Ez a for ciklus. Megvan a inicializálás amely beállította a változókat. Megvan a feltétel, amely a ellenőrizze, hogy valami igaz vagy hamis-e a loop folytatni kell. És megvan a frissítést, amely frissíti a változókat. Nézzük csak, hogy egy gyors pillantást néhány C kódját ez a for ciklus közben. Mi folyik itt, a inicializálás, mi beállítás I 0-ra. A feltétel vagyunk ellenőrzése hogy az i kisebb, mint 10. És a frissítést vagyunk megnő i. Tehát mi eredő ez a hurok? LUCAS FREITAS: Ami azt illeti, először is, nem tudjátok, mit + + van? Közönség: 1-el nő. LUCAS FREITAS: 1-el nő, igen. Tehát ez ugyanaz, mint a Ennek az i értéke i + 1. És észre, hogy nincs olyan hely az I. és a + +. Szóval tudjátok, hogy ez mit fog tenni? Tud valaki mondja meg? És talán egy kis édesség mert az, hogy? Közönség: [Nem hallható] LUCAS FREITAS: OK. [Nem hallható] megmutatni mindenkinek, később [hallható]. Igen, ez fog megjelenni: "Ez a CS50 "10-szer. LAUREN CARVALHO: Azt hiszem, ez volt az a címe a dia. LUCAS FREITAS: Ó, igen. [Nevetés] LUCAS FREITAS: Ez segít. LAUREN CARVALHO: Tehát azok vannak a hurkok. Fogunk látni néhány további példa for ciklusokat később. De nézzük valóban vessen egy pillantást a második típusú hurok, amibe beleütközünk C-ben, és ezt hívják a while ciklus. A while ciklus, akkor már Most kaptam egy állapot. A feltétel van jelölve a elején, és ha ez a feltétel értékeli, hogy igaz, akkor a kódot a test a, míg blokk végrehajtja. És a kód is végre, hogy mindaddig, amíg feltétel igaz marad. Íme egy példa a while ciklus C. Fogunk beállítani száma a 10 kezdeni. Mindaddig, amíg a szám nagyobb, mint 0, fogjuk tartani kinyomtatja ezt változó itt. Elmegyünk csökkentse szám és majd ellenőrizze az állapotát újra. Print, csökkentő, ellenőrizze a feltétel újra. Itt van egy példa, hogy vonatkozik a kérdés korábban. Mi volt a százalékos s amikor mi voltunk nyomtat ki egy karakterláncot, és most, hogy mi nyomtatásakor int, hogy van egy százalék I. a helyőrző helyett. A betűk kell mind elég intuitív, s karakterlánc, az i int. Tehát ha ezt a kódot hajt végre, akkor visszaszámlálás 10-0, kinyomtatására Minden egész. LUCAS FREITAS: És azt lehet gondolni a százalék úgy érzi, mint egy üres hely, és akkor most, hogy ezt változó itt, hogy az üres térben. Így például itt, én már csak egy üres, majd leteszem a számítanak ott, a értéke a gróf. Van ennek értelme? Lehet, én csak szeretem printf majd idézi, gróf? Vajon, hogy a munka? Közönség: Nem. LUCAS FREITAS: Nem, mert nem fog ténylegesen nyomtatni a "gróf" nyomtatás helyett az értéket. Ez hogyan teszi nyomtatni az értékeket felé változó helyett csak a változó nevét. Bármilyen kérdése? Közönség: Miért használ mint a szemben, hogy míg a? LAUREN CARVALHO: szeretném használni a számára loop, ha tudom, hogy pontosan hány ismétlések Azt akarom hurok futtatni. Ebben az esetben ez nem számít, mert, Úgy értem, én csak próbálok gondolom, egy nagyon egyszerű példa erre slide. De tegyük fel, hogy szeretne valamit tartani fog, míg - LUCAS FREITAS: Például te kér be, amíg a személy adja meg a megfelelő bemenet. Így például míg a bemenet nem OK, ne kér érte. Vagy mint ha már a szülők nem adnak pénzt, tartsa kér érte. [Nevetés] LAUREN CARVALHO: Azt nem tudom, hogyan sokszor akkor meg kell csinálni. LUCAS FREITAS: Mert nem tudom, hányszor, hogy ez fog tartani fog. LAUREN CARVALHO: De egy for ciklus, meg kell tudni, hogy hány alkalommal. Igen? Közönség: Csak hogy tisztázzuk, a százalékos mondja, hogy ez valamit, hogy történik meg, az i-az egész, és a backslash n - LAUREN CARVALHO: eszközök? Ki tudja, mi a backslash n jelent? Új sor, igen. Pontosan. LUCAS FREITAS: Ön szerint n az új vonal. LAUREN CARVALHO: Szép. Közönség: Mi az, hogy gróf kötőjel kötőjel [hallható]? LUCAS FREITAS: Gróf mínusz mínusz ugyanaz, mint a plus plus, de növelése helyett, ez csökken 1-gyel. LAUREN CARVALHO: Van még while ciklus kérdése? Nem? Ó, mi kellett volna is kimarad, hogy. Ez a do while ciklus. Nagyon hasonlít a while ciklus kivételével Ebben az esetben ellenőrizze a után a kódot a szervezetben a loop végrehajtja egyszerre. Így végre a kódot az első nem számít, mit. Ezután ellenőrizze az állapotát, végre újra, ha a feltétel igaz. Ott találod magad ezzel, ha kérded a felhasználótól. Mert mindig kell majd egyszer kérem, majd attól függően, hogy a felhasználó bemenet, akkor lehet, hogy reprompt és kérdezd meg újra és újra, ha Az input nem volt mit várható, hogy legyen. Közönség: Szóval, ez olyan, mint egy űrlap az emberek, hogy töltse ki. LAUREN CARVALHO: Igen, pontosan. Megtalálja, azt hiszem, az első Pset, akkor kell majd egy jól hurok gyűjteni bemenet a felhasználó. Közönség: A helyzettől függően, A while hajlamosak futtatni több gyakoribb, mint while ciklusokhoz, mint a egy vagy ilyesmi? LAUREN CARVALHO: Ha ez a pontos - LUCAS FREITAS: ők mindig futnak a pontos összeget, hogy mikor szeretné futtatni. Mint használjuk csinálni, miközben azért, mert nagyon akarta, hogy a bemenő legalább egyszer. A while ciklusokhoz, néha nem akar végrehajtani, hogy egyáltalán, ha ez nem az ügyet végre. Tehát attól függ, hogy a design. Úgy értem, akkor használhatja csinálni, miközben vagy ugyanakkor mindaddig, amíg a kódot csinálja ez kéne csinálni. LAUREN CARVALHO: De én igen gondolom, hogy a válasz a kérdés, valószínűleg igen. Tegyük fel, hogy a feltétel hamis. Egy esetben ez fut egyszerre, és Egy másik esetben állna nulla alkalommal. Szóval, igen. Van még kérdés? Igen? Közönség: Tud-e a hurok állapot legyen for ciklus szempontjából a változó más mint a [hallható]. LAUREN CARVALHO: Igen, bármi lehet. Talán az elején Psets, akkor nem kell találkozni, hogy a helyzet, de határozottan bármi lehet. LUCAS FREITAS: Azt hiszem, itt végeztünk. LAUREN CARVALHO: vagyunk? Nem? LUCAS FREITAS: Loops? Igen. LAUREN CARVALHO: Nem kellene. Ó, mi történik hurkok. OK. Valójában, mivel mi már beszélgettünk, így sok, nézzük tulajdonképpen minden navigálni át study.cs50.net/conditions. És fogsz navigálni le A probléma a widget. Nos, valóban, miközben az emberek egyre ez létre, a CS50 Study lesz egy eszköz, hogy a TF majd használja, hogy felkészüljenek szakaszok és hogy a Ti használni, ha hiányzik szakaszok. Meg fog tartalmaznia egy csomó diák, néhány tippet és trükköt az egyes téma, és egy kis gyakorlás problémák megoldásokat. Miért nem mindenki, csak vess egy pillantást ezt a problémát itt. Sajnálom, meg kellett volna emlékeztetni az embereket, hogy laptopok ma. De ha nincs egy laptop, ez rendben van. Tudod csak lejegyez ezt le a darab papírra, vagy nézd át a szomszéd vállát. Próbáljuk írni egy programot, amely kéri a felhasználót, hogy a találgatás, a átlagos gyermekszám családonként egység az Egyesült Államokban. Ez a szám 2, az úton, ahogy Láthatjuk ezekből a példákból. Azt szeretnénk kinyomtatni átlagos száma gyermek egy család az Egyesült Államokban, akkor akarsz? Szeretnénk összegyűjteni input a felhasználó elől. És akkor attól függően, hogy a felhasználó bemenet, fogsz, hogy nyomtassa ki vagy ez a helyes vagy ez helytelen. És a legelső dolog, hogy akkor Látod, ha rákattint a kis nyílra az alján a widget egy probléma Spot lejegyez néhány pszeudokódja. Szóval nem a programozás még. Te csak arra, hogy a ötleteket sorrendben. Akar valaki segíteni Lucas jön a megfelelő pszeudokódját erre a problémára? LUCAS FREITAS: Mi az első dolog, hogy mi kéne itt csinálni? Ti mit gondoltok? Közönség: [Nem hallható] LUCAS FREITAS: Igen, OK. Tehát, nyomtatás. Csak azt a nyomtatási ez az átlag emberek száma? OK. Nyomtatás kérdés, mondjuk. Miután nyomtassa ki ezt a kérdést, mit tegyek? Közönség: Get bemenet. LUCAS FREITAS: Get bemenet. Van még valami? Közönség: Condition. LUCAS FREITAS: állapot. LAUREN CARVALHO: Mi az, hogy feltétel lesz? Közönség: száma [hallható]. LAUREN CARVALHO: Így van. LUCAS FREITAS: Szóval, mit fogok hogy ellenőrizze az állapotát? Közönség: Ha értéke 2. LAUREN CARVALHO: Ha értéke 2. Pontosan. LUCAS FREITAS: Valami nincs mást, hogy mit tegyek? Közönség: gróf. LUCAS FREITAS: Tehát ha ez egyenlő 2, mondjuk - hadd írni, ha input egyenlő 2, akkor mit fogok tennie, hogy a nyomtatási helyes. És akkor még, megyek nyomtatni hibás. Van még valami? Nem? LAUREN CARVALHO: Szóval kattintson a - mindenkinek van ezt le? LUCAS FREITAS: Van-e értelme? Tehát most próbáljuk kódot ezt. LAUREN CARVALHO: Ha rákattint a kis nyíl, valójában takarít meg pszeudokódját, ami nagyon izgalmas. És tudod, hogy ezeket a megjegyzéseket, ha azt szeretnénk, csak emlékeztetni magad mit kell tenni. LUCAS FREITAS: Így például, az első Megyek nyomtassa ki a kérdésre, így hogyan fogok csinálni, tényleg? printf. Tehát printf, és az a kérdés, átlagos jutó gyermek család az Egyesült Államokban. Akkor én megyek, hogy bemenet a felhasználó. Tehát hogyan tudom ezt megtenni? Közönség: Get INT. LAUREN CARVALHO: getInt. LUCAS FREITAS: OK. Tehát először kijelenti, nem igaz? int, nevezzük n értéke getInt. És most a feltétel. Tehát hadd mondjam, hogy én megyek hogy itt ellenőrzés választ. Tehát először, ha a bemenet, ami n, értéke - hogy fogok írni, hogy? Közönség: Egyenlő egyenlő. LUCAS FREITAS: Tökéletes. Tehát n. És észre, hogy én egy helyet, egyenlő, egyenlő, a tér, igaz. És most mit tegyek? Valami nagyon fontos a stílus. A kapcsos zárójelek. És akkor fogok nyomtatni. Hogyan nyomtatni? printf. Közönség: Lehet, hogy kell aktiválni? LUCAS FREITAS: Nem. Ez állítólag csupa kisbetűvel. Annak érdekében, hogy ez helyes-e. Vajon ez elegendő a printf nyilatkozat vagy én hiányzik valami? Közönség: Új sor. LUCAS FREITAS: Új sor, igen. És most más. Közönség: Van egy hely miután a printf, vagy nem? LAUREN CARVALHO: meg kell ellenőrizze a stílus útmutatót. Közönség: Nem lehet. LUCAS FREITAS: Nem lehet, OK. Így más, printf "Ez helytelen." LAUREN CARVALHO: Hoppá, az idézetek. LUCAS FREITAS: OK. Van még valami? Úgy néz ki jól? LAUREN CARVALHO: Mehetünk próbálni? LUCAS FREITAS: Igen, fussunk neki. Tehát ez a fordítás, és Úgy tűnik, hogy működik. Próbáljuk meg két gyermekét. Így van. És most nézzük futni megint, de most már inkább üzembe két gyermek, most azt mondják, hogy én fogom tenni, mint öt. Ez helytelen. Tehát úgy tűnik, hogy működik. LAUREN CARVALHO: Miért nem mutatod meg nekik mi történik, ha tesz valamit furcsa, mint néhány betű. LUCAS FREITAS: Ó, igen. Nézzük is ellenőrizze, hogy. Mi van, ha a felhasználó megpróbálja rendetlenség a programot, csak írni, nem tudom, kettő. Azt fogja mondani retry. LAUREN CARVALHO: Tehát getInt arra kéri őket, hogy újra. Nem kell vigyázni, Az, hogy magunk. LUCAS FREITAS: Igen. Szóval, ha nem egyszerűen egy számmal, akkor megy, hogy mindig azt kérdezik tőlem, hogy újra. Közönség: Honnan futtatni? LUCAS FREITAS: Csak kattintson ez a csillag gombot. LAUREN CARVALHO: Meg kell menni. Tessék. LUCAS FREITAS: A csillag gomb ott. Igen? Közönség: Vajon kérni [hallhatatlan] A decimális számok is? LAUREN CARVALHO: Azt hiszem, hogy lesz. LUCAS FREITAS: Ha igen, akkor mi van? LAUREN CARVALHO: Ha típus egy decimális szám, azt hiszem, ez meg fog kérni. LUCAS FREITAS: Lássuk csak. LAUREN CARVALHO: Mivel ez nem egy int. LUCAS FREITAS: Igen. LAUREN CARVALHO: Tehát ez nem egy int, Get Int fogja kérni, hogy újra. Közönség: Szóval, ha az adott kód lenne A tizedes, hogy kéri a felhasználót, hogy meg kell adnia egész pontosan? LAUREN CARVALHO: getInt valójában ezzel, hogy nekünk. Közönség: Nem, úgy értem, ha azt akartuk, be [nem hallható] LUCAS FREITAS: Azt lehet mondani, mint a közepes gyermekek száma az Egyesült Államokban. Nem tudom. Elmondhatjuk, például "Kérlek bemenet egy egész szám. " LAUREN CARVALHO: Egy egész szám, az átlagos számot. Úgy értem, hogy ez csupán a Ön szó, ugye? LUCAS FREITAS: Igen. Ez valójában nem része a kódolás. Ez több, mint amit fogsz akar írni a programban. Közönség: Hogyan mi futtatni, ha valójában a gedit [hallható]. Ahelyett, hogy megnyomja játszani? LUCAS FREITAS: Mi lesz először fordítsuk le. Meg tudjuk csinálni azt csinál make és a fájl nevét. És akkor a futtatáshoz, fogunk csinálni dot perjel és a program nevét. Közönség: Azt hiszem, azt akartam mondani, ha azt akarta, hogy a program, hogy válaszoljon a helytelen, hibás bejegyzés ne tegye - LUCAS FREITAS: Mi nem lesz képes csinálni, mert a kód ezt mondja: retry lekérdezése Int. származik, amely egy funkció, amely már megvalósított számunkra keresztül CS50 könyvtár, és mivel ez már megvalósult ott, nem csak a [hallható]. LAUREN CARVALHO: Ha nem használ GetInt, akkor meg tudod csinálni ezt. LUCAS FREITAS: Igen. De ha használ getInt, akkor nem. Van még kérdés? Közönség: Tudnál volna a hasonló GetFloat és így képes lesz, hogy azt decimális? LUCAS FREITAS: Igen. Közönség: OK. Akkor csak lehetett bemenet úszó egy egyenlő - LAUREN CARVALHO: Igen. Pontosan ugyanaz, kivéve a float helyett int. LUCAS FREITAS: Csak tedd ide majd getFloat ott. Közönség: Ahogy tetszik lát vagy látott - LAUREN CARVALHO: van nem ütött ott. Közönség: - csinál egyenlőtlenség úszók nem [hallható] Közönség: Mit jelentenek a pontosvessző jelent? LAUREN CARVALHO: A pontosvessző csak azt jelenti, hogy ez az állítás befejeződött, és fogunk menni rá a következő diát. Közönség: Tehát ez szükséges, minden alkalommal? LAUREN CARVALHO: Igen. Nos, rendben, így nem ezeknek a feltételeknek, mert ők encapsulating valamit. Tehát alapvetően, ha valami okozza , hogy majd hozzon létre egy kapcsos zárójel blokk, ne tegye a pontosvessző a végén. LUCAS FREITAS: De minden más, igen. Ha befejeztük egy nyilatkozatot, fel a pontosvessző. És ha elfelejtette pontosvessző, a fordító fog mérges rád, és akkor megy, hogy hogy megpróbálja megjavítani. LAUREN CARVALHO: Ha tesz egy pontosvessző Itt, ez megáll, és én soha nem jut el végre, mi a belül, mellesleg. Tehát ez egy olyan közös hibákat. Közönség: Mindig végrehajtása. LAUREN CARVALHO: Igen. Ebben az esetben, mi lenne mindig végre, mi van benne. Közönség: A stílus [hallható] csatolja, hogy az Ön számára, gondolta. LAUREN CARVALHO: Ó, ez igaz. Közönség: [Nem hallható] egyetlen sor dolog [hallható] Közönség: Igen? Közönség: Tudsz több bemenet egy sorban? Szóval, mint lehet kérni a felhasználók nyomtatni két dolog? LAUREN CARVALHO: Nem használja - LUCAS FREITAS: Nem. Tegyük fel, hogy én is szeretnék hogy ezt az egész m. Meg kell csinálni egy másik vonal. Közönség: Ha úgy döntesz, hogy futtatni hogy hogyan [hallható]? Ez nyomtassa ki a prompt ott [hallható] és akkor azt meg egy és - LAUREN CARVALHO: Nos, futtatni. Úgy értem, nincs semmi megállás minket csak fut, és látta, hogy mi fog történni. LUCAS FREITAS: Azt hiszem, ez majd panaszkodik ránk mert éppen nem használja - LAUREN CARVALHO: Hoppá. LUCAS FREITAS: It panaszkodott minket most, mert már nem használja ezt a változó, de ha mégis, például n értéke egyenlő, és m értéke felel meg, akkor mi lesz történik ebben az esetben? Mi lenne a program csinálni? Közönség: Csak kíváncsi vagyok hogyan fog - LAUREN CARVALHO: Ő csak azt akarja hogy tudja, hogyan néz ki mint, azt hiszem, nem igaz? Tehát ez volt az egyik közülük, majd ez volt a második. Azt hiszem, meg kell lépni, mert van még egy diavetítés kell megtennie, mielőtt - akarsz felhúzni matek? LUCAS FREITAS: Igen, a matematika. LAUREN CARVALHO: Give nekem csak egy pillanat. Van néhány különböző numerikus változók C. numerikus adatok C lehet sorolni a különböző típusú, és ezek azok, azt is megtudhatod lásd a leggyakrabban. És int egy egész szám. Ön nincs tizedes. A készülék, tart 32 bit tárolására egy int. Az úszó lehet tizedes. Azt is vesz 32 bit tárolására úszó a készülékben. A dupla olyan számot decimális pontot jelentenének a 64 bit tárolni, ami azt jelenti, hogy csak nagyobb pontosság miatt akkor több - mi a neve? LUCAS FREITAS: Igen, ez így tovább. LAUREN CARVALHO: több helyen a tizedesvessző után. És egy hosszú ideig van egy egész szám , hogy úgy a 64 bit fájó, hogy a készülékben. LUCAS FREITAS: Így is lehet nagyobb, mint ints lehet. LAUREN CARVALHO: A dolog adatok típus C-ben az, hogy megmondja, hogy mi jellegű adatot tud tárolni a változó. Azt mondani, hogy hogyan lehet használni ezt a változó a programban. Nagyon fontos, hogy csak nyomon követni hogy milyen adattípus, amit használ, és ha nem kell, hogy a leadott egy adattípust egy másik, győződjön meg róla, hogy tudod pontosan mi történik, ha ez öntés zajlik. És akkor megjelenik egy példát később az ilyen diák a hiba léphet fel. Vessünk egy pillantást néhány matematikai C és Szerintem nagyon óvatosan, azt hiszem, arról, hogy mi folyik itt, amikor ez a matematikai zajlik. Az első sorban, mi történik, amikor kijelentem x? Közönség: Te így x, hogy valami? LAUREN CARVALHO: Igen. Nos, én tényleg azt kérdezi az operációs rendszer 32 bites memória, igaz? Milyen tudok tárolni int, és Fogom hívni, hogy az int x. LUCAS FREITAS: program alapvetően a memóriában és találni egy helyet, amely 32 bitek és azt mondja, hé, szeretném ezt a helyet, és ez lesz az úgynevezett x. Szóval most elég sok lelet egy doboz a memória üzlet értékek x. LAUREN CARVALHO: És akkor inicializálja x, ami azt jelenti, hogy én csak tárolja a érték 2. azon a helyen, hogy a darab memória, hogy megkérdeztük a működési rendszer. És itt mit csinálunk az mi tényleg bejelentő és inicializálás y egy sorban, hanem két sorban, mint mi itt, ami szintén tökéletesen, vagyunk hozzátéve, 1 x, és mi tárolja, hogy érték y. LUCAS FREITAS: Tehát alapvetően mi ez sort, az, azt állapítja meg, most már a doboz y, majd annak értékét, a lényeg, hogy akkor megy, hogy a dobozban, az lesz az x értéke plusz 1. Így van ez a doboz y. Egyre az x értékét, úgy néz ki, itt, és látom, hogy ez a 2.. Tedd oda, plusz 1, így ez hozza a 3-ott. Van ennek értelme? Tehát y lenne 2 ebben az esetben. LAUREN CARVALHO: Oké, rendben. Láttunk néhány kívül, úgyhogy most úgy gondolja, a divízió C. Itt vagyok bejelentő és inicializálása úszó nevű választ, és elosztjuk 1-10, majd én a nyomtatás meg a választ két tizedes jegyig. És jegyezze meg, itt, az én printf nyilatkozat ha akarok nyomtatni valamit két tizedes pontossággal,% .2 f mit akarok használni. Tehát a 2. pont csak azt mondom, Szükségem van két helyen, miután a decimális kinyomtathatók. Nos, mi fog történni ha én ezt a kódot? Van valakinek ötlete? Mi lenne kinyomtatni? LUCAS FREITAS: Mik azt várta, hogy kap. LAUREN CARVALHO: Mit akarunk, először is? LUCAS FREITAS: [Nem hallható] LAUREN CARVALHO: 0,1, igen. De mi kiírja? Közönség: [Nem hallható] LAUREN CARVALHO: Nos, nem, tényleg. Ez az, amit én beszélek, hogy miért kell, hogy nagyon óvatos követheti az adattípusok. Szóval, mi adattípus ez? Van egy int, nem igaz? Nincs tizedesjegy pontossággal. 10. is egy int. Nincs tizedesjegy pontossággal. Ha felosztjuk az int egy int, kapok int ami nem 0,1, mert ints nem lehet tizedes, de csak 0-ra. Mivel az int csak levágja ki a tizedes. LUCAS FREITAS: Tehát, ha te műveletek ints, fogsz kap egy int, mint a válasz. Tehát alapvetően, amit a számítógép csinál, akkor osztója 1-re 10, és nem lesz 0,1. De ez olyan, mint, várj, ez állítólag egész, így csak figyelmen kívül hagyja a 0,1, így már csak 0-ra. LAUREN CARVALHO: Szóval mikor nyomtassa ki ezt a ki, kapok 0,00 helyett 0,10. LUCAS FREITAS: Van ennek értelme? LAUREN CARVALHO: Ez az a fajta A szerencsétlen, igaz? LUCAS FREITAS: Szóval hogyan lehet kijavítani ezt? LAUREN CARVALHO: Nézzük próbálja meg kijavítani ezt. Íme egy példa az, ahol én vagyok valójában öntés 1 és a 10 lebeg. Tehát most, 1 már nem int. 1 egy úszó. Mellesleg, ez csak a szintaxis , ha azt szeretné, hogy a leadott egy adattípus a másikra. Tedd csak az adattípus Zárójelben, és hogy csak megelőzi az az érték, amit casting. Tehát itt, én elosztjuk úszó által úszó, hogy egy úszó választ. És igen, ez a Valójában nyomtatni 0.10. Van ennek értelme? LUCAS FREITAS: Tehát típusú casting csak konvertáló egyik típusról a másikra. Tehát úszó 1 valójában 1000. Nem egészen, de ez valami A tizedes hogy valójában 1. Van ennek értelme? Igen? Közönség: Mi van, ha te float válasz egyenlő 1,0 osztva 10-et? LAUREN CARVALHO: Te valóban megy látni, hogy a következő diára. Ez valójában a nagyon következő dia. Ez valójában egy szebb, mint típusú casting, azt hiszem. Tehát ez a kettő úszók csak a jellegét az a tény, hogy azok van tizedes. Igen? Közönség: Mi van, ha nem [hallható] osztva 10-et? LAUREN CARVALHO: Valójában egy float osztva egy int valóban ad egy úszó, hogy jól működik. Várj, nem mindenki érti ezt? Mivel ez lesz a nagyon nagy dolog Pset1, valóban. Igen? Közönség: Tudnál csak gyorsan megy át a piros rész? LAUREN CARVALHO: a piros rész, igen. Lucas, akarsz? LUCAS FREITAS: OK. Úgy emlékszem, hogy a százalékos helyőrzője. Ez olyan, mint egy üres helyet. Így próbáljuk megérteni mindent ami folyik itt. Százalék azt jelenti, hogy ez egy helyőrző. Akkor az F, ami azt jelenti, hogy ez a helyőrző egy úszó. Az utolsó dolog, hogy van itt egy 0,2, ami azt jelenti, azt akarom, hogy a két tizedes az úszó. Ha most volt% f, akkor azt fogja állítani egy csomó tizedes. Szóval csak fel 0,2 vagy 0,1 vagy 0,5, vagy bármi, és ez megy, hogy, hogy tizedesjegyek számát. Az egyetlen dolog az, hogy ha tesz, mint a .100 Vagy .1,000, ez valójában nem megy, hogy minden olyan tizedes mert nincs elég memória az is, hogy a pontosságot. Van még kérdés? Igen? KÖZÖNSÉG Szóval lebegnek csak lehetővé teszi, meg, hogy lépjen túl egész? LUCAS FREITAS: Igen. LAUREN CARVALHO: Nos, egy úszó csak lehetővé teszi, hogy tizedes. LUCAS FREITAS: Ez csak azt jelenti, hogy most már lehet decimális számok. Közönség: Miért van valaha is használni egész? LUCAS FREITAS: Miért használja egész? Talán ha számol 0-tól 10, használni kívánt valójában egy egész szám. Önnek nem kell használni a float. Bizonyos helyzetekben, akkor nem van, hogy valóban - LAUREN CARVALHO: Lehet, hogy nem akarja tizedes. LUCAS FREITAS: Lehet, hogy nem szeretné használni a float. LAUREN CARVALHO: A másik dolog az, emlékszem, mind hogy egy float és int hogy 32 bitet tárolni őket, és talán nem akarja vesztegetni bit a tizedes. LUCAS FREITAS: Igen. Szóval, mint csak gondolni ezt. Van 32 bites, mind egy int és float. Egy int, mindazok 32 bit megy az egész részt. Ha egy úszó, 32 bit, akkor már része a memória használt a számot, az egész szám, és a másik rész a használt tizedes. Tehát ez azt jelenti, hogy nem tud nagyon sok úszók miatt Az úszó Már segítségével sok memória a tizedes. Igen? Közönség: Ez az első válasz, pontosan mit is csinál? Vajon beállítási értékét úszó egyenlő az, hogy a helyőrző az, hogy tudod hívjuk a következő sorban? Azt mondja, úszó választ. LUCAS FREITAS: Igen. Tehát, úszó válasz azt jelenti, hogy kapsz most egy kis vödör a memória tart úszó, és ez folyik nevezhető választ. Szóval, ez az, amit úszó válasz igen. És akkor azt mondják, hogy belsejében ezt, akkor megy, hogy ennek az eredménye. Szóval fogsz csinálni 1.0 osztva 10.0, kapsz 0,1, és akkor tesz hogy a belső válasz. LAUREN CARVALHO: Tehát egy sorban vagyunk bejelentő és inicializálás ezt úszó nevű válasz. LUCAS FREITAS: Érdekes módon, bár ez csak egy sorban, csinál több művelet. Ez csak egy módja a C-bérlet akkor kevesebb kódot. Ez ugyanaz, mint a hármas operátor, hogyan lehet csak csinálni egy [Hallhatatlan] egy sorban. Ez tulajdonképpen ugyanazt a dolgot, mint Ennek úszó válasz, pontosvessző, és akkor válasz egyenlő, de ahelyett, hogy hogy te két sort, hogy a ez olyan, mint egy parancsikont. Igen? Közönség: Tehát, ha futott ez, lenne 0.10? LUCAS FREITAS: Igen. Igen? Közönség: A válasz tulajdonképpen kódot, vagy ez csak a név? LAUREN CARVALHO: Ez a valójában kódot. Ez az, amit mi fogunk nevet a változó. Közönség: Tehát csak név [hallható]. LAUREN CARVALHO: Igen. Azt is mondhattam volna float x értéke 1.0. LUCAS FREITAS: A lényeg az, hogy a neve a változó valami, amit használ. Fontos az Ön számára. Az aktuális program, az egyetlen dolog, az a fontos, az az érték, amit van benne a kanál. Az ok, amiért meg változók és változók neveit annyira tudnád mi van dolgunk, mint a milyen adatokat te elérésével egy időben. De a kódot is, ha a hívás azt a választ, vagy kérdés, vagy ilyesmi, nagyon sok, nem számít. Nem számít. Amíg te következetesen minden előfordulása, és így hívják valami mást. Igen? Közönség: Ne változók túlmutatnak a funkciót? Mint ha úgy döntesz, hogy hozzon létre egy konzol [Nem hallható], megtennéd, hogy [Hallhatatlan] válaszolni újra? LAUREN CARVALHO: Nem. Közönség: [Nem hallható] LAUREN CARVALHO: Nem. Ez lenne hatályán kívül az adott változó. És valóban, ez a fajta érdekes, mert amikor már dolgok, mint a hurkok és ezeket, ha körülmények között, ha egy változót a másik a kapcsos zárójelek, Tényleg csak azért létezik, az említett kapcsos zárójelek. Közönség: Egy utolsó megjegyzés a A [hallható] úszók. Miért valaha szeretné használni ints? Ez inkább egy Mellékesen jegyzem meg, mint a semmit, de a számítógép szignifikánsan jobb kezelési ints mint azt a kezelési úszók. Ez olyan, mint egy rendje nagyságrenddel gyorsabb. Tehát, ha csak kezelni csak lebeg, dolog lenne sokkal lassabb. LAUREN CARVALHO: Ami azt illeti, úgy tűnik, , hogy a probléma az úszók. LUCAS FREITAS: Valami az oka hogy, akkor gondolom, az, hogy hogyan bináris Ön képviseli egész azáltal, hogy 0 és 1-es. LAUREN CARVALHO: Ez a következő dolog. LUCAS FREITAS: OK. Félelmetes. LAUREN CARVALHO: Just úgy tartják, hogy a gondolat. LUCAS FREITAS: OK, én később elmondom. LAUREN CARVALHO: Mielőtt nekilátnánk, hogy milyen Lucas csak azt mondom, üzemeltető elsőbbséget. Ez a józan ész. Ti ezt megtette elég. Szóval, csak ha valami zárójelben, meg fog történni az első. Ez a szorzás elsőbbséget élvez mint felül, kivonás, ilyesmi. Tehát tulajdonképpen, csak nem mindenki akar mondd meg, mit számú valójában értékeli, hogy? Közönség: 27.. LAUREN CARVALHO: 27? Igen. LUCAS FREITAS: Hadd cukorka az emberek. LAUREN CARVALHO: Rendben. Mi a helyzet a második? Mi a helyzet a második? Közönség: 22.. LAUREN CARVALHO: 22, igen. Én nem tudom, ki van az a. A hármas számú? Közönség: 10.. LAUREN CARVALHO: 10, igen. Cool. Így modulo. Lucas, akarsz magyarázni modulo? LUCAS FREITAS: Modulo ez a szolgáltató hogy valójában nagyon hasznos, ha egy csomó probléma. Ha én 55 modulo 10, mit csinál ez mondjuk, hogy akarok osztani 55 10. Mit kapok? Olyan, mint ha én vagyok valójában csak Ennek a szétválás, mi a először kaptam az egész? Közönség: 5. LUCAS FREITAS 5. És akkor a fennmaradó 5, igaz? Szóval, ez olyan, mint 5-ször 10 plusz 5. Alapvetően, mi modulo nem, akkor megpróbálja ossza ezt a számot ez, és úgy látja, hogy mi van a maradék a szétválás. LAUREN CARVALHO: Tehát ez csak visszaadja a maradékot. Tehát első számú az, ami? 5.. A kettes számú? Közönség: 3.. LAUREN CARVALHO 3. A hármas számú? 0-ra. És négy 1 lehet. Pontosan. LUCAS FREITAS: Egyszerű, nem? LAUREN CARVALHO: Miért nem hagyja ki ezt a csak azért, mert nem igazán van idő, és az emberek úgy tűnik, hogy megértsék. Szóval, itt van, amit Lucas csak beszélek. LUCAS FREITAS: A másik oka annak, hogy használná ints helyett az úszók is hogy az úszók nagyon pontatlanok. És miért vannak pontatlan? Dávid azt mondta, hogy az egész szám, például, a 0 és a 1-es, ugye? És akkor alapvetően nem a szorzás, do mindazok műveleteket, hogy milyen decimális szám akkor ahelyett, hogy a bináris. Mi történik most, ha megpróbálom , hogy tizedes? Valójában, például, ha van A szám, mint 3,33333? Olyan, mint a 10 a 3 felett. Hogy fogom tárolni az összes 3-as, hogy van utána? Ez nagyon nehéz, nem igaz? Nem lehet csak megmondani a számítógépet, Hé, van egy 3, és a aztán meg, hogy örökre. Valójában a számítógép nem elég okos ehhez. Tehát alapvetően az összes számítógép nem is hogy megpróbálja, hogy annyi számjeggyel, mint azt is fel, hogy a memóriát, hogy van. Tehát mondjuk, hogy ez fog mondjuk 3,3333, és ennyi. Tehát nem tudja, hogy valójában kifejezni pontosan, mi az úszó. LAUREN CARVALHO: Van egy véges számú bitek, ami azt jelenti, hogy nem Minden decimális szám lesz képesek megjelenni pontosan. És így ebben a példában, ha vagyunk nyomtatásakor 0,1, mi most a nyomtatás ki, 20 helyen. LUCAS FREITAS: Mint ahogy én mondom srácok, akkor tegyen számot. De ha csak nem a két helyen, azt, hogy 0,10, de ha fel 20 helyen, ez lesz, hogy mutassa meg egy csomó 's, mert ez az, amit meg lehet tenni a memóriában, igaz? De itt, akár a 0, majd csak tegye a csomó véletlen számokat. Ez olyan, mint egy kis - LAUREN CARVALHO: Ez azért van, mert mi vagyunk nem tudja képviselni ezt a decimális pontosabban a számot bit van. LUCAS FREITAS: És akkor a számítógép alapvetően így a szemetet számot. Ez valójában nem a értéke a számot. Közönség: Ez olyan közel, mint kaphat [hallható] a [hallható]. LAUREN CARVALHO: Tehát a következménye, az, hogy mondjuk, hogy ahelyett, hogy hogy 0.100014, bármi, mi van, ha 0,0999 - Nos, rendben. Tegyük fel, hogy a tényleges válasz hogy ez 0,9999999. Ez nagyon közel áll az 1, de a ez nem pontosan 1. Ez 0,99999. Ez azt jelenti, hogy ha veszem, hogy 0,999, és öntött el egy int, kapok 0-ra. Nem értem 1. LUCAS FREITAS: mert emlékszem, öntés Lebegépontos int, csak figyelmen kívül hagyja a tizedes. Csak figyelmen kívül hagyja őket. Nincs olyan dolog, mint a kerekítési vagy fut le, ha betűöntő. Valójában, van ez a funkció, nem kerekítés, ami nagyon fontos, de csak gondolom, hogy ha te typecasting, ez csak fog törölni mindent. Tehát akkor is, ha 0,99999, ez lesz csak hogy 0, ha betűöntő [Hallhatatlan] egész. LAUREN CARVALHO: Tehát csak igazán tudatában lebegőpontos precíziós, különösen, ha elkezd használni úszik Pset1. De a séta kell figyelmezteti Önt, hogy is. LUCAS FREITAS És valójában ez tényleg kemény, például, ha tettem úszó válasz 1 értéke 1,0 feletti 10, majd a 2 float választ értéke 10,0 over 100.0. Ők ugyanazt a számot, igaz? 0,1, igaz? 1 több mint 10 vagy 10 100 felett. De most ha megpróbálom, hogy az egyenlőség, mintha válasz 1 egyenlő válaszol 2. Lehet, hogy valójában nem lesz , hogy ugyanaz a dolog. Tehát úszók a fajta ilyen. Olyanok, mint csinál egyenlőséget.