ROB BOWDEN: Ez a kényelmesebb rész, de ez nem jelenti azt, hogy ha úgy érzi, mintha nem kényelmesebb nem fog tanulni a dolgokat itt. Szóval kezdjük. Van diák megy egyenesen a dolgokat. Én vagyok arról, hogy csak úgy, hogy most? Kapcsolási laptopok. 

ALLISON: Nem akar mutatkozz be, Rob? 

ROB BOWDEN: Ó, én Rob. Ez az én ötödik év TF-ing CS50. 

GABRIEL: Én Gábriel. Én vagyok a vezetője TF CS50. Én TF tavaly és ebben az évben. ALLISON: És én vagyok Alison, és ez az én második évben TF-ing CS50. 

ROB BOWDEN: Rendben, tehát ez a dolog, a bal oldalon, remélhetőleg már látta volna. Ha nem azért, mert töltsd le magad, látnod kellett volna azt előadás. Szóval ez a CS50 készülék, és ő volt egy kissé a leírását az előadás. De alapvetően csak te futó operációs rendszer keretében az operációs rendszer, hogy ki tudjuk adni programokat anélkül aggódni, oh ez fog dolgozni a Windows és Mac, vagy ha néhányan már a Linux, Linux. Ez csak kéne egy közös játék mező így mindenki a pontosan ugyanolyan környezetet. 

Tehát, ha nem Letöltöttem ezt már, érdemes letölteni, mert te lesz szükség, hogy a probléma halmaz. És ez a két gigabyte letölthető, így eltarthat egy darabig. A Harvard, hogy majd gyorsan menni. Így CS50 készülék. 

Most az elején, mi lesz beszélni csak egy csomó parancssor dolog, és így az, hogy én értem dolgozni ebben a kis környezetben itt. És észre minden dolgot Azt mondom, itt most fog működni, ha a belső a terminál a készülék belsejében, vagy ha belsejében A gedit terminál ablak a készülék belsejében. Tehát azok környezetek azonosak. 

De én megyek egy harmadik utat. És észre lent itt kis IP cím itt. Szóval nem kell Ehhez azonban ez az IP address-- most ha én-- kivéve ez blokkolja ezt a dolgot. OK, így, hogy az IP-cím több mint egy terminál here-- így ezen a terminálon keresztül itt van egy terminál a Mac. Így ez semmiképpen sem jelenleg mint az a készülék egyáltalán. És ha a Windows, akkor te lesz szüksége, hogy letölteni valamit kifejezetten erre, különösen az emberek hajlamosak használják Putty, P-U-T-T-Y. 

Szóval, mit fogok csinálni a típus SSH és akkor az IP-címet. Nos, jharvard abban az IP-cím. Így 192.168.24.220. Ez ijesztő üzenet figyelmen kívül hagyja. Csak írja igen. Ez CS50 egy dobozban. Arra kéri a jelszót. 

És így egy csomó ilyen környezetben, ahol azt kéri a jelszót, [hallható]. Van egy csomó kérdést, ha azt mondja, hogy ez valójában nem a gépelés. Ez nem mutatja meg a karakterek a a jelszó beírás, ha valami, egy biztonsági funkció, mert ha valaki keres a vállunk felett és látják csillag csillag csillag csillag, akkor tudják, hogy a jelszó négy karakter. Tehát az ötlet, hogy kérni fogja az Ön jelszavát, írja. Ez nem fog mutatni Ön a karakterek, de ez valójában elfogadja őket. Ebben az esetben minden alkalommal, amikor valaha is látni a jelszót kérő foglalkozik a készüléket, a jelszó lesz bíbor. Így bíbor. 

És most itt van belül az e ablak, ami a Mac-emet, Én alapvetően amelynek pontosan ugyanolyan nézet mint belsejében egy terminál a készülék. Szóval nem kell ezt tenni. Meg tudod csinálni mindent, amit szeretné a készülék belsejében. Én szinte soha nem csinál semmit a készülék. Én szinte mindig minimalizálni azt, és most Dolgozom SSH a készülék. 

Ha valami, ha Van egy lassabb számítógépen lehet, hogy észre a különbséget. Én ezt azért, mert jobban szeretem ez terminál ablak. Van néhány funkciók, mint a Én is osztott az ablakot, és most is az SSH-val át a készüléket. Van két SSH folyik egyszerre. Ha a számítógép különösen lassú és dolgozik a készülék, és rájössz, ez Tényleg laggy, bármi. Inkább sokkal gyorsabb ha SSH-ed. De egyébként akkor a munka mindkét irányban. 

KÖZÖNSÉG: Mit jelent az SSH? 

ROB BOWDEN: Biztonságos kagyló, valami ilyesmi? Mit jelent az SSH? GABRIEL: Secure shell. ALLISON: Ez csak a biztonságos shell. ROB BOWDEN: Secure shell. Ez egy protokoll, amely you-- ez egy biztonságos protokoll, így titkosított. Az emberek nem a hálózat és Snoop mit mondasz semmit te vagy SSH-ed. És valóban, a régi nap CS50, így 2009-ben amikor egy újonc, az is, hogy Ön dolgozott CS50 probléma készletek, Te voltál az SSH-ed néhány szerver hogy mi adta meg a hozzáférést, és dolgozott ott. Szóval ez nem volt grafikus készülék. Nem volt gedit. Nem az összes ezeket a dolgokat, akkor vizuálisan pont és kattintson. Meg kellett dolgozni ezen a felületen. Inkább dolgozni ezen a felületen. Szóval, része annak, amit mi megyünk hogy megy át most egy csomó a parancsok, amit kellene kezdenek ismerik a menj végig a tanfolyamot. És őszintén, ha egyszer megszokja őket, azt annyira gyorsabb dolgoznak ebben a környezetben mint az, hogy dolgozni kereső, áthúzza és kattintson a dolgokat. 

Tehát itt vagyunk. Most már csak SSH-ed, és így Az alapértelmezett telephelyein Ön vélték ezeket a parancsokat az osztályban, de megyünk át mindet újra. Az alapértelmezett hely vagyunk in home könyvtár. És a könyvtár, csak egy másik szó a mappát. Így vagyunk a saját könyvtár. Írja ls, sorolja fel a fájlokat ebben a könyvtárban. Nyilvánvalóan én létrehozott egy blah.c korábban. Tehát van egy asztali könyvtárat. Azt veszi észre, a szintaxis kiemelés? A világoskék kiemelés jelzi a könyvtár és az egyenes fehér jelzi, csak egy sima fájlt. Tehát lesznek más színben látja. A futtatható fájl valószínűleg fog hogy zöld, vagy valami ilyesmi. OK, így van a könyvtárában. 

Most, ha azt akarom, hogy egy másik könyvtár, cd parancs akarok. Szóval könyvtárba, és akkor át a nevét a könyvtár hogy szeretne menni. Tehát itt van négy lehetőség. Mehetek a letöltés, és most azt látjuk, itt azt naprakészen ezt zárójeles mondani, én vagyok a ~ / letöltés. 

Tehát mi tilde? Ez egy rövidítés a home könyvtár. Tehát bármit is tesz, nem fog legyen tekintettel a saját könyvtár, és csak egy pwd parancs Használom egyszer egy évben mindig csak az aktuális könyvtárban. És látod, hogy itt ~ / Letöltések tényleg megoldja a / home / jharvard / letöltés. Szóval / home / jharvard az én saját könyvtára. 

Így tudjuk cd dot dot. Most pont pont egy speciális könyvtár, mindig utal egy könyvtárat fel. Tehát, ha én vagyok a ~ / letöltés, akkor cd pont dot fog hozni nekem tilde. Mit gondolunk cd dot dot megy, hogy nekem most? Ez lesz, hogy nekem a / home. Így tilde nyomtatva üzemi könyvtár, Én vagyok most a / home / jharvard. egy könyvtárat fel azt, most azt mondja, itt a / home. 

Most cd dot dot. Most én vagyok a gyökér könyvtárban, és nem lehet újra meg újra. Akkor csak maradjon a gyökérkönyvtár örökre. A gyökér könyvtárban van egy csomó dolog, hogy, ha azt szeretnénk, hogy vizsgálja meg, lehet. Például, ha elmegyek a bin, amely tartalmazza Mindezek binárisok, mint ls, és cd, és az összes ezeket a dolgokat. Tehát ezeket a parancsokat kell létezik valahol a rendszerben, és ez a / bin könyvtárba. De bármit is tesz, az lesz az Ön saját könyvtára. És cd nélkül érvek egyáltalán, meg tudná mondani a cd ~, nem kell. cd fog arra, hogy Ön vissza a home könyvtár. 

Egy utolsó. cd - megy, hogy vissza a Az utolsó könyvtár voltál. Szóval én csak cd'd kétszer egymás után, így a utolsó könyvtár volt a könyvtárában. Ha elmegyek perjel bin, és most menjünk fel, és a felhasználó. Felhasználó részvény. Menjünk a felhasználói részvény. Most én vagyok most a felhasználói részvény. cd -, vissza bin. Szóval ez lesz különösen hasznos ha have-- és ez lesz váltás. Így a felhasználó részvény, hát bin, bin részvény. 

Szóval ez lesz hasznos. Akkor találja magát, amelyek sok, sok-sok egymásba ágyazott könyvtárakat. És te akarsz valamit tényleg gyorsan egy felső könyvtárban. Menj be abba a könyvtárba, hogy változásokat, és ilyesmi, és most akarsz menni vissza oda, ahol volt. cd -. Én mindig csalódott amikor történetesen menni ebbe a könyvtárba én akart csinálni a munkát. Én mindig csalódott, amikor csináltam ez a két lépés helyett egy lépésben, mert ez azt jelenti, hogy cd - megy hogy ebbe a köztes hely ahelyett, ahol akarok menni. 

Tehát azt látjuk, az összes lista fájlok. Tudjuk, hogyan kap körül eddig. Tehát most beszéljünk szerkesztésére fájlokat. Tehát ezt az utat, akkor már majdnem Mindig várhatóan használni gedit. Ha szeretné, akkor megteszi a következő lépést és elkezdi tanulni a parancssori szöveg szerkesztő. Így a különböző lehetőségek vannak. 

És az is, hogy valószínűleg lesz fontos az Ön számára, mi Nano, Vim, Emacs és. Tehát Nano kezdőknek parancssoros szövegszerkesztő. Így Nano menjünk tovább blah.c hoztam létre korábban. Csak ez a szabvány C fájlt. És látsz egy csomó dolgot folyik az a képernyő alján, és látszólag blah.c tartalmazza ezt a C kódot. 

Tehát ebben a különleges szerkesztő, mit mond a bottom-- most ez a kalap szimbólum, látjuk ezt ^ G ^ X ^ O. Annak érdekében, hogy szinte minden összefüggésben, hogy látod, lehet látni, hogy a kalap szimbólum más helyeken az interneten, a Veremtúlcsordulás, valami ilyesmi. Ez szinte mindig utal, hogy ellenőrizzék. Tehát, hogy kilépjen akarok csinálni Ellenőrző X. vezérlés az X, kilép. És tudom használni a nyíl mozoghat. Figyeljük meg én nem pont és kattintson könnyen. Meg kell használni a nyíl mozoghat. Lehet, hogy a beállítás pontra, és kattintson. 

De nézzük, hogy néhány változtatást. Most vezérlés X menni kijárat. Meg fog mondani mentheti puffer. Most a gyors, y az igen, n nélkül. Ellenőrző C törölni. Én csak azt mondom, igen. Fájl név írni. Az alapértelmezett érték a fájl hogy már van. Hit az Enter billentyűt. OK. Most már csak azt a fájlt szerkeszteni, mentette meg, és ez megváltozik. 

Így a legkönnyebb Nano szövegszerkesztő szokni. Az alternatívák VIM Emacs. Ezek a magasabb szintű szövegszerkesztő hogy van egy nagyon meredek tanulási görbe. Tehát az én személyes preferencia Vim. És van egy széles különböző lehetőségeket. És ha egyszer megszokja hozzá, akkor soha Azt akarom, hogy minden más szövegszerkesztő, mert csak Annyi mindent áll az Ön rendelkezésére ezekben, de az az igazán hosszú időt, hogy megtanulják. Szóval talán csak azt, hogy kényszeríteni magad most, hogy szokni, de azt mondanám, hogy ez megéri. De nehéz. 

És akkor Emacs. Én mindig küzdenek Emacs mert Tudom, hogyan kell semmit sem csinálni. Úgy látszik, nem Emacs alapértelmezés telepítve van a készülék. Mi valószínűleg hozzá, hogy a alapértelmezett telepítés. Ha egyszer megtanulod az egyik Vim vagy Emacs, van nincs kényszerítő ok arra, hogy valaha tanulni a többi, de ez egy teljesen más stílus. OK, hogy ez szöveges állományok szerkesztésével. 

KÖZÖNSÉG: Ha ragadt A Vim most, hogyan we-- 

ROB BOWDEN: van Több mód Vim, és vannak egész oktatóanyagok tanulás Vim. Tehát, ha történetesen A betét módot, írja a szöveget, amely akkor adja meg, hogy a különböző módokon, de én, hogyan kap a beszúrási módot. Vagy kijutni a különleges mód, hogy te vagy, csak menekülés. És csak a bash Escape kap meg bármilyen beágyazott mód az a. Csak OK, most már itt vagyok normál módban. 

És így normál módban, a vastagbél. Látod alján. És akkor q. Így q kilép, ha nem módosította, amely én-- tettem változtatásokat? Én változtatásokat látszólag. Tehát, ha már változtatásokat, akkor az azt mondják, véget felkiáltójel. Megyek, hogy ez egy bumm. Így tesz a tilalom csak kilépés nem csinál semmit, vagy kettőspont wq ment és kilép. Tehát w általában írni. Így írja a fájlt. Tudok írni, és kilép. Vagy lehet csak QX slam, q bumm csak kijutni oda, tekintet nélkül érintő bármely módosítás, amit tett. 

Rendben, most nézzük go-- tudunk létrehozni fájlokat. Kezdjük eltávolítja a fájlokat. És én csak dobjon egy gyors új parancs, érintés. Így érjen foo. Touch bar. Érintse BAZ. Ha én ls, most azt látjuk, hogy ezek a fájlok vannak. Ők teljesen üres. Szóval érintés csak egy egyszerű Így az egyik, [hallható]. Két, technikailag csak az állami , ez frissíti az időbélyeget. Tehát minden fájl létrehozása is időbélyeg társított. Szóval BAZ jött létre Szeptember 14 at 16:21. Ez most 16:22, ezért ha Megemlítenék BAZ megint, mi látni, hogy a BAZ leginkább nemrég módosított at 16:22. De egyébként én szinte soha nem nézd meg a időbélyeggel fájlokat. Tehát érintés, itt én csak a azt, hogy egyfajta gyors fájlokat. 

Rendben, most az rm parancs, hogy mi érdekel itt. És mi rm bú. Mondjuk eltávolítása rendszeres üres fájlt bú. És mi lehet az y, és most ez eltávolítja. rm BAZ. Távolítsuk el a rendszeres üres fájl BAZ és típusa n nem. Most már nem távolítható el. Így bár és baz még mindig léteznek. Foo elment. GABRIEL: Beszélj. ROB BOWDEN: Nagy. Így a bosszantó üzenet itt, távolítsa el a rendszeres empty-- mit csinálsz ott? Távolítsuk el a rendszeres üres fájlt. Tehát, ha nem akarjuk, hogy zavarta az üzenetet, tudjuk dobni ebben -f zászló, és annak érdekében, hogy az erő. És most, ha én rm -f, ez nem fog mondjuk akarod távolítani ezt a fájlt. Akkor csak csináld. És ls, nem látom bár ott. 

Most, hogy egy potenciálisan veszélyes parancs. Úgy látszik, hogy nem túl rossz. Majd jön vissza egy másik, hogy hogyan akkor igazán veszélyes. És hozzunk létre valami temp könyvtárba. mkdir, másik parancs. Tehát egy mkdir parancs , ami a könyvtár. És most az ls látjuk ezt a szép fényt kék kiemelt temp könyvtárba. Tudok cd a hőmérséklet. És én mkdir ize. CD foo. mkdir bar. CD-bar. 

Tehát azt látjuk, akkor könnyen kap a néhány szép mély fészkelő. Most, hogy tudom kivenni a könyvtárat? rmdir. Tehát, ha csak egyenesen próbálja rm, mint mi a szabályos fájl, rm bar fog mondjuk nem tudja eltávolítani bar. Ez egy könyvtár. Van egy speciális parancs eltávolítása könyvtárak, milyen. Így rmdir bar. Most bár elment. 

OK, így rmdir én elég sok soha nem használja. Az ok being-- most nézzük hogy egy szabályos fájl bár itt. Így rmdir bú. rmdir. Nem sikerült eltávolítani a semmit. A könyvtár nem üres. Így nem használ eltávolítani a dir könyvtár, amely a dolgokat benne. 

Szóval van néhány lehetőség. Akkor megy a könyvtárba, távolítsa el mindent kézzel, majd jön ki és rmdir a könyvtárban. Ez nyilvánvalóan hangzik bosszantó. Mi van, ha van ezer A fájlok ott? Nos, akkor rm *. Majd beszélünk * a második. Ez gyakorlatilag azt jelenti, az összes dolgot. De még jobb, így rm -r. Így rm -r-- a sok összefüggésekben -r rekurzív jelenti, amely fogunk beszélni arról, hogy mi rekurzív eszközök több hét. De ez gyakorlatilag azt jelenti, lengőkarokkal A teljes egészében a könyvtár és vegye ki mindent. 

Így rm -r foo fog mondani leereszkedni a foo könyvtárat? Igen. Távolítsuk el a rendszeres üres fájl foo / bar? Igen. Foo könyvtár eltávolítása? Igen. Tehát most foo és minden belül el lett távolítva. 

Most, hogy lehet kapni, különösen bosszantó when-- hadd érintse meg az 1, érintse meg a 2., 3. érintse. Lehet van egy csomó fájl. Ha akartam, nem tudtam létrehozni több ezer kép itt. És rm -r valami folyik hogy elég bosszantó. Igen, igen, igen, igen, igen, igen. Egy sokkal nagyobb fájlokat Gyorsan hányszor Szerettem volna, hogy írja igen. Nos, most láttam azelőtt, hogyan lehet megszabadulni az igénylő a típus igen, -f. Így mkdir foo foo cd érintőképernyős 1 2 3. OK, így rm -rf foo fog vakon eltávolítani foo teljesen. Nincs gyors. Nincs valami. Foo elment. 

Szóval inkább ezt parancs minden alkalommal. Igaz, ez egy nagyon veszélyes parancs, mert ha én valami hasonló ez, akkor nem ajánlja fel. Meg fognak tűnni. És ez megtörténik elég gyakran, és még a magasabb szintű képzés CS. Néha majd meglátjuk valami, ha valaki azt mondja, hogy véletlenül az rm rf-ed otthonom könyvtár és minden az én P halmaz is elment. És ez pusztító, de nincs kuka. Nincs ott semmi neked letölteni. Ez csak eltűnt. Még rosszabb lesz valami hasonló rm -rf /. Szóval csak tárgyalt hogy gyökér könyvtárba. Ez tartalmazza az összes, a fájlokat a rendszer. A dolgok általában kap elég rendetlen amikor eltávolítja a dolgokat, mint ls, és cd, és az összes ilyen. 

KÖZÖNSÉG: Mi a különbség között rm, RF, és rm * ROB BOWDEN: Tehát rm * - 

ALLISON: kérdés volt, mi az a különbség rm, rf, és rm *. 

ROB BOWDEN: Tehát rm *. Star általános eszközök egész tartalmát a könyvtár. Próbálok arra gondolni, más módjait bemutató csillag. Nos, csillag valójában általában olyan mintákra illeszkedő. Tehát, ha van egy nevű fájlt kutyák1, érintse dog2 érintse cat1 érintse cat2. Így ls * 1 fog nyomtatni cat1 és kutyák1, mert csillag lehet tölteni az with-- az egyik kell lennie ott, de csillag lehetnek macska vagy kutya. Ez egy vad kártya. Ezt a szót keresem. Wild kártya. Vagy tudtam ls kutya *, és Én kaptam, hogy kutyák1, dog2. Így azok a lista fájlok megfelelő az adott mintát. Használhatja ls ezen a módon. 

Ls * csillag mérkőzések semmit. Így fog nyomtatni az összes tartalmát a könyvtár mivel mindegyik egyezik. Ez nem fog nyomtatni semmit A felső szinten könyvtárakban. Ha van egy al könyvtár, foo, és érintse meg az 1 2 3-- így most ha rm * csillag, eltávolítás cat1, cat2, kutyák1, dog2. Nem lehet eltávolítani az ize. Ez egy könyvtár. 

Tehát csillag bővül a fájlokat a könyvtárba. Szóval technikailag rm * olyan, mintha azt mondanánk rm cat1, cat2, kutyák1, dog2, ize. Mivel rm -rf műszakilag csillag lenne elérni, amit akarunk, de rm -rf-- ha kimegyek az e könyvtár, rm -rf temp, hogy fog menni a temp és rekurzívan eltávolítani minden. 

Tehát csillag külön az, hogy ez a Egyetértés by-- így ez a dolog hogy én vagyok futó, ez a dolog hogy arra ösztönöz engem parancsok majd a végrehajtó, és ezzel őket, hívom az én shell. És ez a burok is maga a műsor. És ha akartam, én lehet futtatni a / bin / bash. A héj hívják bash. És most észre valami némileg megváltozott, és ez azért van, mert az én beállítások A héj némileg eltérő. 

De most én technikailag futás a héj belül az eredeti shell, és tudom, hogy a héj kilép, és most Én vissza a felső szintű héj. A cél a mondás hogy ez-- a csillag. Így a csillag valami érthető bash. Szóval rm -rf, -rf zászlót érthető csak rm. Tudja, hogy ha át a -rf hogy akarjuk, hogy rekurzív eltávolítása Minden fájl figyelmeztetés nélkül. A csillag valamit érteni bash, hogy amikor azt mondod rm * bash nem fog mondani hé rm *, vegye csillag. Bash fog mondani rm * eltávolítás cat1, cat2, kutyák1, dog2. Ez automatikusan fog terjeszkedni összes fájlt a könyvtárban. 

És hasonlóképpen tilde egy másik szimbólum, bash megért. Amikor azt mondja, cd ~, bash bővül hogy a home könyvtár. Más kérdés eddig? OK így fogunk kezdeni megy gyorsan. 

Tab befejezését. Csak, hogy dobja ki ott. Sokan nem észre ezt létezik. Tehát, ha az I. típusú cd dow, én akar menni a letöltés. Nem kell, hogy írja nloads. Én is csak hit Tab. Így elismeri, hogy a dow egy előtag nem egyezik semmit még ebben a könyvtárban, így lesz teljes, hogy az Ön számára. Most már be. 

Én is ezt, hogy rekurzívan. Így mkdir foo. Menjünk ize. mkdir bar. Szóval megy vissza az otthoni könyvtár, látom letöltés. Most ütő lap újra, automatikusan megy, hogy töltse ki az ize. Ez az egyetlen könyvtárba. Ütő fül megint, automatikusan majd töltse ki a bárban. Szóval most vagyok (~ Letöltések / foo / bar). 

Szóval ez a lap befejezését, amikor kaptam munkaidőben, és állok át valaki vállára, és mennek rm D-O-W-N-L-O-A-D-S, haldoklom. Csak fül, fül, fül, fül. Tehát feltétlenül használják fülre. És hasonlóképpen, és le, egy csomó ember csak, ami történt soha nem sújtotta le és fel. Úgy megyek át az előző parancsok, így ha csak futott valami, és szeretné futtatni újra, csak tartsa fel, amíg eljut hozzá. OK. 

Így gyorsan, néhány más dolog. Menjünk vissza a hőmérséklet. Hozzunk létre egy fájlt. Tehát itt, én csak fog felsorolni néhány szót. kutya, macska, nyávog. Csináljuk, kutya, hal. Tehát most rep egy nagyon hasznos parancsok használja a keresés során fájlok egy adott szöveg, és technikailag meg tudod csinálni igazán összetett kifejezéseket, hogy megfeleljen. 

Tehát itt, ha én grep, és milyen akarok keresni? Tegyük fel, hogy keresem a macskák, és Szeretnék keresni az összes ezeket a fájlokat. Szóval, hogyan csináljak az összes ezeket a fájlokat? Star. Tehát egy fájlban, van macska. Talán lehetett volna nevezte valami jobb, mert úgy néz ki, mint a sorszámok, vagy valami. De egy fájlban van egy sor a macska. A két fájl van egy megfelelően macska. Így most már tudom nézni benne egy fájlt és lásd ó, igen, ez a fájl nem is macska. Közlemény fájl három nem illeszkedik mert a macska nem ott. Én grep-miau. Csak két fájl van miau. 

Tehát ez lehet kombinálni, megint, -r, amely ahogy már mondtam gyakran olyan rekurzív. És így én is jön ide, grep -r bármely például of-- nézzük szerkesztés ezt csak azért, hogy dobja a macska ott. Így grep -r minden példánya macska végig ezt a könyvtárat. És ez lesz rekurzív keresés az alkönyvtárakat. Így BAZ, van macska. A temp / 2, van macska. És temp / 1 macska van. Szóval ez kereséskor fájlokat. 

Most is használja a find. És így talál kifejezetten körülbelül keres fájlokat a megadott név. Szóval, hogy egy kicsit. Menjünk letöltés. Érintse kutyák1. Érintse cat2. Érintse cat_dog. Érintse catcat. 

Szóval azt akarom, hogy megtalálja az összes fájlok kutya a nevét. Így talál, és a leghosszabb idő soha nem jutott, hogyan talál működött, míg végül olvasni valamit, amitől annyira világos. Így talál, automatikusan rekurzív. Nem kell, hogy adja át a -r. Így talál pont. Még nem beszéltünk még pont. Mivel a dot dot mindig : egy könyvtárat fel. Dot mindig azt jelenti, az aktuális könyvtárban. Így tudtam rm -r pont a Ugyanígy tudom rm -rf *. Végső soron ők elérni ugyanezt. rm -rf dot fog eltávolítása A teljes aktuális könyvtárban. 

OK, amit én nem akarok ott. De találni pont. Tehát rekurzív keresés a jelenlegi könyvtár, és most minden után egy csomó zászló, amit használja, hogy kizárja a dolgokat a visszatérés. Így talál pont vissza mindent, hogy találja az aktuális könyvtárban. Ezek az összes fájlt rekurzív keresést. Meglátjuk néhány azok közül a második. 

De ha kíváncsi, hogyan csináljak hogy így Command K, legalábbis az én terminál a Mac törli. Ellenőrző L általában megszűnik azt bármilyen terminál. Azt is írja világos. És ha valaha is egy furcsa scenario-- ez történt velem egy pár time-- ahol a színeket a megjelenő utasításokat mind elrontotta, vagy nem látni semmit beírt amikor gépelés, mert néha, mint háttérszín beállítása ugyanaz, mint az előtér színe és most nem látja a betűtípusokat. Reset valami, ami csak visszaállítja hogy az alapértelmezett fekete háttér, fehér front, vagy bármi beállítja őket. 

Szóval, hol is tartottunk? Keresse pont. Tehát most minden korábbi e pont korlátozza az eredmények valamit, ami megfelel az adott mintát. Tehát itt akarok keresni mindent a nevét macska. Nem találtam semmit. Miért van ez így? Nos, én csak keres valami pontosan a nevét macska. Ha akarok valamit keresni hogy van néhány mintát, és cat-- Az idézőjelek műszakilag nincs szükség, de én rájuk dobott oda. Tehát most úgy találja, mert catcat ez az egyetlen dolog, ami néhány önkényes által követett minta macska. Tudom rakni macska *, és most talál catcat, cat_dog, cat2, mert ezek mind a dolgok macska elején, majd semmit. Akkor össze ez. Ha szeretné keresni az összes fájlt a C hogy van, akkor talán nem * .c. Mi blah.c itt. Szóval ez a lelet működik. Kereshet. Van egy csomó zászlók további korlátozásokat. És egy rájuk, mondjuk d. Így elavult. Ó, ez nem az, amit akarok. Nem -d. Típus d. Így talál pont - típusú d. Tehát mi, hogy csak nem is keresem az összes fájl az aktuális könyvtárban A a-- d jelentése directory-- könyvtár típusát. Ez visszaadja az összes könyvtár az aktuális könyvtárban. És F típusú minden szabályos fájlok, minden nem könyvtár. Szóval ez csak egy példáját más módon korlátozhatja a keresés többi mint a fájl nevét. 

Ez volt a 30 perc alatt. Még mindig megy. 

ALLISON: Én szél keresztül. Nem lesz baj. 

ROB BOWDEN: Szóval néhány más dolog. Most bumm, felkiáltójel. Annak érdekében, hogy általában means-- nos, nézzük egy példát. Szóval! F, mi az, hogy fog csinálni? Nos, úgy tűnik, hogy ismételt find pont típusú f. Mi a helyzet! G? Ez csak a grep -r macska *. Így bumm segítségével megismételni Egy nemrég végzett parancsot. Tehát, ha én írja! Gre, hogy fog újra futni A parancsok kezdődött gre legtöbb a közelmúltban. 

És lehet látni ezeket a parancsok történelem. Így a történelem. Ezek mind a parancsok Már fut ma. És hát, ez nem a szó szoros értelmében korlátozódik ma, de én már csak akkor kell használni ezt készülék, mint a mai. Ez az Ön teljes egészében a története a bash shell, kivéve, hogy levágja egy bizonyos ponton. KÖZÖNSÉG: Mi történik, ha nem történelem [hallható] parancsot, és hibát Az eredmény továbbra is nyomtatni a-- 

ROB BOWDEN: Igen, ha van egy hiba az egyik ilyen commands-- így mondjuk, hogy egy error parancs nem található. Továbbra is megjelenik a történelemben. Rendben van. Más kérdésre valamit? Szóval ez bumm. 

Most igazán hasznos parancs, ember. Ahhoz, hogy megadja neked a utasítás egy adott parancs. Mondjuk ember ls, így ezt mutatja nekem ls. Felsorolja könyvtár tartalmát. És ez az, ahol látom, hogy ott ezek különböző zászlók, hogy létezik. Látjuk is, hogy ls -l létezik ha mi voltunk olvasni azt. ls -l ad nekem ez a teljes lista a könyvtár, kié a fájl, az a fájl méretét, a a módosított időbélyeg. Tehát ls -a van egy másik, hogy lehet, hogy ténylegesen használható némileg gyakran. -al az én leggyakrabban zászló az elmúlt ls. 

Szóval -a, észre van egy csomó több fájl mint ls. ls -a. Mi van a közös az összes ezeket a fájlokat? Kezdik egy ponttal. Tehát ez egy egyezmény, hogy a Linux fájlok kezdődik ponttal vannak rejtve. Tehát ez csak azt jelenti, hogy a amikor csak egyenesen ls, vagy mi keres ez a könyvtár használata A kereső egyenértékű, vagy Windows Explorer egyenértékű, hogy mi Nem akarom, hogy ezek a dot files. Ők csak szennyezik a kilátás a dolgok. Így vannak rejtve kivéve, ha kifejezetten felkéri őket valami hasonló -a. Szóval lehet CD-t .local, és látom, hogy ez maga a könyvtár megosztott könyvtár, és alkalmazásokat, és bla-bla-bla. Szóval pont a fájlok ők csak rejtve. 

OK, így más fontos is. Van egy pár én kihagyhatja. Nézzük csak a valódi gyorsan beszélni A fájl átirányítás dolgokat. Tehát van egy egész sor bonyolult A dolog, amit tehetünk ezekkel, de csak hogy lássa őket, mondjuk, echo. Egy másik parancs. Tényleg néma parancs. Csak annyit tesz, nyomtatott, amit én mondok, hogy. Így echo Hello. Csak köszönni visszhangzott a képernyőre. Helló világ. Echoes hello world. 

Tehát az egyik parancs vagy egy szimbólum, bash megérti ez nagyobb, mint szimbólum, és hogy a kimeneti fájlba szimbólum. Szóval, ha ezt a kimenetet ize, van most egy fájlt nevezett ize, belsejében ami hello world. Tehát észre, hogy amikor én echo hello world csövet ize, nem echo hello world. Ehelyett azt állították, fájlba foo. Egy másik parancs csak dobni rád, macska. Ez egy egyszerű módja annak, hogy csak teljesen sorolja fel a fájl tartalmát így, hogy nem kell megnyitni egy szövegszerkesztőt, hogy megtekinthesse. Így a tartalmát a foo fájl hello world. És tudtam macska blah.c, a tartalom ezt. 

Ismét, ezek azok a parancsok, hogy ne elvárják, mindet megjegyzett. Az ötlet az, amit láttam őket. Lehet, hogy te dolgozik valamit, és te mint elegem fájl megnyitásakor. Bárcsak tudnám nézni A tartalom gyorsan. Lehet csinálni, akkor tekint vissza, és azt mondják, oh én emlékszem valami hasonló hogy létezik, és ez a macska. 

Annak érdekében, hogy megy a fájlt. Most nincs igazán olyan jó Például az olvasás fájlból még. Mi van valami, ami úgy valamit szabvány? Minden egyszerű Linux parancs? Mikor jutunk hozzá, egy pár hét minden piece-- is, ezen a héten van egy darab, ahol elkezdi a felhasználóhoz. És általában a beírt hogy bemenet a billentyűzet. Beírása helyett, hogy a bemenet a billentyűzet, akkor helyette cső fájlból így ha nem Mario, ./mario, cső minden adott fájlt, és hogy fog futni a Mario programot. Nem számítottam bemenet a billentyűzet, helyette ez csak úgy olvasni a sorokat a foo fájlt. 

Így nagyobb, mint az ize helyező a foo fájlt, és kevesebb, mint élelmiszer vesz dolgokat a foo fájlt és használja, hogy a bemenő ezt a programot. És csak hogy lásd, mi is echo foo bar BAZ, majd ahelyett, hogy egy nagyobb, mint, csináljuk a két izé. Ez mit csinál? Csak hozzáfűzi, hogy a fájlt. Tehát ahelyett, hogy észre, ha én echo bla be foo majd cat foo, ez csak bla. Tehát, ha a kimenetet egy fájlba, akkor teljesen felülírja a fájlt. Ha ön csak akar hozzáfűzni, kettős [? gréder. ?] 

És végül a cső. Pipe Gets sokkal bonyolultabb, ahol veszi a kimenetét egy parancs és táplálja be a következő parancsot. Tehát valami közös dolog, történelem. Szóval, pfuj, nem akarom, hogy ezt nézd meg. Mutassa az összes parancs az én történelem ahol a grep-ed valamit. Nem, ez zavaró. Mutassa az összes parancs hol találom. Minden parancsok találhatók, amit valaha futottam. 

Így a történelem. Most a történelem kimenetet a képernyő ezt a listát a parancsok, de én nem akarom, hogy teljesítmény, hogy a képernyő. Ehelyett fogom cső azt grep. Szóval grep minden esetben a find. Tehát most grep helyett figyelembe A bemenet, helyette of-- grep képes kezelni a input-- vagyunk a grep kicsit másképp van. Tehát ahelyett, hogy beírja a listáját dolgokat akartunk keresni és az említett grep vesz bemenetként. Tehát, ha én csak grep talál, azt vár rám, hogy írja a dolgokat. Így cat Hello talál. Helló. Keresse meg. Figyeljük meg minden alkalommal, amikor írja talál elismeri, hogy nem adtam find. Tehát ahelyett, hogy ezt, majd keresés fájlok find. 

Így a történelem most fog parancs kilistázza az összes parancs. Mi azzal, hogy e kibocsátás, és mi az etetés grep, és így ez kiköpte minden esetben a find. Az ok, amiért azt mondta, hogy lennék zavaró , ha én-- még mindig zavaró. Ha a grep a grep. Figyeld meg, hogy elég sok minden mutatja a parancs csak futott, mert azt a parancsot maga grep belsejébe. 

OK, így bármilyen kérdése van valami? És én vigye át ezen a ponton. Remélhetőleg ez egy szép áttekintést az összes parancs hogy nem kell, hogy megjegyzett, de ezek teszik ki szilárd 95% -a, amit ezt a parancssorban. Szintén tartsd észben, hogy a parancsot maga, bash egy programozási nyelv, és így amikor már le, akkor Lehet, hogy nem igazán bonyolult dolgokat. És ez így van a dolgok, mint hurkok, és az IFS és az összes ilyen hogy fogsz szokni Ön programozási nyelvek. De ez túl Az e szakasz hatálya. OK, így nem kérdés? ALLISON: Nincs? GABRIEL: Fogsz to-- ALLISON: meg tudom csinálni az enyémet, ha akarod. Láthatjuk, mi történik. ROB BOWDEN: Ki az Allison. ALLISON: Woo. Te egy kemény törvény követni, Rob. Akarod, hogy váltani veled? Vagy van, OK. Fogom próbálni, és nem egészen olyan hosszadalmas ott. Lássuk, hogy ez az akarat működik, ahogy azt jónak látja. Talán? Haha! Igen. 

Szóval csak fog nagyon gyorsan megy a változók, hurkok, feltételes, és egy kicsit a fordító. Ha kérdése van a bármikor, kérjük, ne engem. Ezek a srácok eszembe, hogy ismételje meg Kérdést esetén elfelejtem, de nem lehet túl rossz. 

Szóval változó, igen. Nincs egyik Scratch darab itt. Biztos vagyok benne, a legtöbben, ha hogy volt valami játék amit létrehozott Scratch, akkor már nyomon követni, hogy valami hasonló pontszámot, vagy az idő, vagy valami ilyesmi. Tehát azok élénk narancssárga darab, hogy látunk csak a Scratch formája változók, és akkor biztosan legyen a változók egész programokat. Ha nem, nem vagyok igazán biztos benne, mit csinálsz. 

De egyébként is, nagy dolog, meghatározó változók. A C minden változó hogy egy típus kijelentette, így adtam neked egy nagyon általános egy a tetején. Így lesz az írja majd bármi úgy dönt, hogy hívja fel a változó. Így ebben az esetben a típus a változó listában. 

Három példát. Char egyes fokozat, az A, amely a mi Biztos vagyok benne, hogy minden akar hogy ebben az osztályban. Megadhatjuk több változók egy sorban mindaddig, amíg ezek mind az azonos típusú, amely a második példa van ahol három változók, az x, y, és z. Mind úszók. És akkor is, ebben az utolsó például int pont és szám a csapatok, akkor inicializálni őket ott. 

Így a középső példa, ahol csak azt float x, y és z, azok nem törlődnek még. Nekik nincs értéke. Vagy hogy van szemét értékeket. És ha megpróbálod, és használja őket, a fordító kiabálni veled. Meg kell mindkét nyilvánítsa és inicializálni a változók. Tehát ez utóbbi, csinálunk mindketten. Mi nyilvánító változók A mérkőzésre és a csapatok számát, és mi inicializálása őket, így őket kezdeti értékük 7 és 4 volt. Cool. Mindenki jó? Félelmetes. 

OK, így néhány egyezmények. Ha a srácok elolvasta a stílus 50, ezek csak dolog, hogy szeretnénk a hogy végre a saját stílusát. Így értelmes neveket. Ha elkezd hívás dolgok csak az x, y, és z, különösen ahogy bejutni hosszadalmasabb programok, te valószínűleg fog megzavarja magát, és mint amit ez a változó utal. Fogalmam sincs, hogy ez mit jelent. 

Tehát, ha ez azt jelentette, hogy tartsa Egy pont, hívják pontszámot. Ha ez azt jelentette, hogy tartsa néhány válasz vagy azt eredményezheti, hogy ez egy ilyen névvel. A hurok, amit majd bejutni a következő dia, Egyetlen betű változók finom. ROB BOWDEN: I, j és k csak konvenciók a hurkok hogy mindenki azt várja őket hogy az i, j, k. Hívhatja them-- látom sort oszlop vagy sor néha hívás Két egymásba ágyazott hurkok, ez is egyfajta szabvány. De az i és j teljesen ismert. 

ALLISON: Igen, én és j te teljesen jól. Az egyértelműség kedvéért, mint a a néhány P-készletek, talán van értelme, ha több leíró dolgok ott csak nyomon követni azt. De azt hiszem, i, j, k és azt hiszem, a túlnyomó többsége velünk minden használat. 

ROB BOWDEN: Ezekkel a egyezmények, így a stílus is fontos. Ez az egyik a négy tengely amelyen te osztályozzák, és ez olyan egyszerű, hogy csak menjen át A P beállítva a végén, és győződjön meg róla, hogy nincsenek stilisztikai hibákat. Tehát győződj meg róla, hogy helyesen bejárási. Győződjön meg róla, hogy a változók nevét. Hagyja néhány megjegyzést. Nagyon egyszerű, hogy azokat a pontokat. Nem kell gondolkodni semmit annak érdekében, hogy ezeket a pontokat. Nem kell kitalálni semmit. Ez csak így nézel. 

ALLISON: Sőt, mi Van stílusa 50., amely megmondja, hová Messiás fel ha Messiás fel stílus és pontosan meg fogja mondani, hogy mit kell rögzíteni, és hogyan kell kijavítani. Ez is csak jó is beszélve hogy ez persze politika hogy ha az irodában óra, és a kód a rendetlenség, tudunk segíteni csökken , amíg úgy néz ki, szebb. Tehát elindul jobbra, tartsa egységes stílust, te is csak úgy, hogy a életetek egész sokkal könnyebb, ha próbál átmenni hibakeresés. Ha megpróbálja kitalálni, ahol hiányzik a zárójel és ezek az egész hely, akkor csak hogy a saját életét nehezebb. Így összhangban kell lennie stílusban. Ígérem, ez lesz, hogy az élet könnyebb. Ez lesz a mi életünket könnyebbé. Mindenki sokkal boldogabb. És ez az, amit akar. GABRIEL: A grade magasabb lesz. ALLISON: Igen, és a fokozat. Ha a TF, mint te, általában kedvező. Rendben, és majd csak A második pont itt. Következetes inicializálás. Szóval mint láttuk, akkor állapítsa meg és inicializálása dolgok. Több változók ugyanabban a sorban. Az egyik dolog, amit szeretnénk, ha nem tennie, hogy állapítsa meg néhány változó és nem inicializálni őket az azonos sor, hogy Ön inicializálás másokat. 

Tehát abban az esetben, amely az semmi értelme sincs, mi van a példa itt ahol mi nyilvánító ints A változók negyedévben dimes és fillérekért, de negyed és fillérekért nincs kezdeti értéke. Mi nem adja meg nekik, de a közepén ott már inicializált Dimes 0. Így sem csinál negyedévben, Dimes, fillérekért. Vagy negyed egyenlő 0-ra. Dimes egyenlő 0-ra. Krajcár egyenlő 0, vagy bármi a kezdeti értékek. 

Nagy dolog a stílus, legyen következetes. Ha kétségei vannak, összhangban kell lenniük. De kövesse a stílus útmutatót is. Cool. Mindenki jó ott? 

KÖZÖNSÉG: Hol van a stílus vezető? ALLISON: A stílus útmutató az on-- mi a website? 

GABRIEL: Azt hiszem, ez manual.cs50.net/-- ALLISON: stílus? 

GABRIEL: stílus. Aha. 

ALLISON: Igen. Így kérdés, hol van a stílus 50. manual.cs50.net/style. Igen? 

KÖZÖNSÉG: Ha mi meghatározó változók, ez rendben van ha teszünk, mint a [hallható], mint int pontszámot, majd int cél. Szóval azt mondod, hogy most voltunk van, hogy határozzák meg azokat együtt? 

ALLISON: Tehát kérdés, amennyiben Van felesleges kód ha meghatározó változók, mint a pont és int A következő sorban int játék? ROB BOWDEN: Vannak egyértelműen az esetekben, amikor a redundáns kód rossz. Én nem úgy hogy felesleges kód. Én szinte soha nem Kijelentem több változók ugyanazon a vonalon valaha. És ha valami, ez azért van, mert Általában elmegyek valamilyen megjegyzés arról, hogy mi a változó számára. Szóval mondom int pontszám perjel perjel. Nyomon követi az bármi. Összesen perjel perjel. Tehát sokkal durvább, hogy így hogy őket mind ugyanabban a sorban. Csak soha ne tegye őket ugyanabban a sorban. 

ALLISON: Úgy érzem, hogy ez személyes preferencia ezen a ponton. 

KÖZÖNSÉG: Ez azt megy A hurkok és a cucc is? ROB BOWDEN: Like belül? Mint int i értéke 0 vessző hossz eléri valami? Hogy nem volt más választásom. A for ciklus az inicializálási part-- így lehet, hogy csak láttam int i értéke 0 pontosvessző i kisebb mint bármi pontosvessző i plus plus. Ez int i értéke 0, technikailag akkor is amit korábban láttunk A vessző szintaxis. int i értéke 0 vessző j = 3 vessző k = 5. Nem kell a választás, hogy osztott hogy akár a több sorban, és ez szabvány. Látva, hogy nincs rendben. ALLISON: Félelmetes. Nos, kényelmes váltása a hurok. Szóval igen, itt van néhány példa A hurkok, hogy a srácok látott Scratch. És természetesen az összes ilyen egyszerűen újra létrejön a C. És alapvetően lehetővé teszi, megismételni néhány kódrészlet csak egy bizonyos feltétel teljesül, amely fogunk bejutni után beszélgetés körülbelül hurkok feltételes. 

Tehát három fő típusa van. Mert míg, és nem közben, ami mi minden megy most keresztül. Tehát az első egy a hurok. Így néhány feltétel, végre ez a blokk kód. Van ez a jó kis diagram itt alul. De alapvetően van itt az az, hogy az első sorban, fogsz inicializálni a változók. 

Tehát ahogy beszélgettünk, i értéke 0, vagy i egyenlő, mint 10. Bármit meg kell, hogy változó, hogy ez lesz ott inicializálni, bejelentett és inicializált bizonyos értéket. Tehát van néhány feltéve, hogy megy hogy ellenőrzése a változó valami ellen. Így abban az esetben, a tipikus esetben, amikor talán szeretné ezt kódrészlet hogy végre ötször. Tehát volna int i értéke 0, és mi szeretné, hogy legyen, amikor én kevesebb, mint 5. Annak érdekében, hogy a feltétel csak majd ellenőrizze, hogy minden alkalommal. Amennyiben ez a feltétel értékeli, hogy igaz, hogy fog futni a kód, ami pontosan mi ez a kis ábra mutatja. 

És ez így végrehajtja. Frissíti a változó, ami az, amit látunk Az utolsó része a loop inicializálás ott. Szóval akkor csak csinálom ezt amíg ez a feltétel nem teljesül, és akkor kilép a hurok, és továbbra is mozog a többi program. Mindenki jó ott? Cool. 

Tehát itt van egy példa, nagyon hasonló hogy valamit, amit csak beszélt. Szóval csak a nyomtatni kívánt ez CS50 10-szer. Így látod itt van mi az, és akkor inicializálja a változót i egyenlő 0-ra. A feltétel ellenőrzése hogy ez kevesebb, mint 10. Így értékeli a valódi, amikor először kezdődik, majd frissíti a változó minden egyes alkalommal, hogy valóban végrehajtja és kiírja ezt CS50. És megszünteti után 10-szer. Cool. 

Tehát míg a hurkok mellé. És ahogy itt látsz, már csak egy darabig ez condition-- kérdés? 

KÖZÖNSÉG: Hogy tudok ugrani valójában csak nem egy szám, de két szám [hallható] i plus plus plus? 

ALLISON: Tehát a kérdés az volt, hogy hogyan lehet frissítse a változó egynél több egy időben. Tehát én plus plus lesz frissítés egy-egy alkalommal. Ha akarta frissíteni az két, akkor nem én plusz 2 egyenlő. 

ROB BOWDEN: Láttad plusz egyenlő az előadás még? 

KÖZÖNSÉG: [hallható]. 

ALLISON: ez hatékony ugyanaz, mint az i értéke i + 2. Így fog tartani, és frissíti azt két-két alkalommal. Plus-tel egyenlõ csak valami hívjuk szintaktikai cukor. ROB BOWDEN: Igen, azok léteznek elég sok minden aritmetikai operátorok. Tehát én ideje azonos megduplázódik a szám. j osztás értéke 3 ugyanaz mivel egyenlő j j osztva 3. 

ALLISON: Or mínusz 2 egyenlő lenne csökkentse i két minden alkalommal. ROB BOWDEN: Még mod egyenlők. Nem láttad bitenkénti operátorok, de kalap egyenlő és egyenlő jelet, az összes ilyen létezik. 

ALLISON: Tehát egy csomó idő, különösen az első két P-készletek, leszel valószínűleg megnő az egy, tehát én plus plus, j plus plus minden dolog, amit meg hogy jellemzően használ. De ez az állapot frissítés teljes mértékben az Ön ellenőrzése. Lehet frissíteni azt bármilyen lépésekben vagy bármilyen módon úgy dönt, hogy. Lehet, hogy még szeretné, hogy legyen egy véletlen számot néha. De igen, van sok dolog, amit tehetünk vele. Te nem korlátozódik i plus plus. 

ROB BOWDEN: Csak, hogy tudja, hogy létezik, azt is létezik egy másik formája, plus plus i. Tehát, ha valaha is keres online és megtörténhet, hogy plus plus i, nagyjából ugyanazt jelenti. ALLISON: Cool. Jó? Félelmetes. Tehát míg a hurok. Nagyon hasonló. Van néhány feltétel. A legfontosabb dolog, hogy észre itt van ahelyett, három különböző részein létrehozni, van egy. Csak néhány feltétel ami ellenőrzik. És ugyanúgy, ameddig ez a feltétel értéke igaz, a kód fog futni. És ha ez hamis, megszünteti, lépés rá a következő része a programnak. Tehát ez a fajta like-- mi jó példa ellenőrzése néhány normális állapot? GABRIEL: Bár igaz. ALLISON: Lehet csinálni, miközben igaz. Nos, az 1-1-gyel egyenlő. 

ROB BOWDEN: Megteheti while-- csak ahelyett, hogy egy for ciklus, akkor mindig a kódot for ciklus egy while hurok, tehát én 0-nál nagyobb, vagy míg én kevesebb, mint 10. 

ALLISON: Félelmetes. És akkor már nem, miközben hurok, amely nagy felhasználói érvényesítés, ahol azt szeretné, hogy valamit A felhasználó dönti el, hogy érvényes, majd folytassa onnan. Tehát az egyik dolog, hogy tudja, a csinálni, miközben az, hogy ez fog végrehajtani, és akkor újra végre ha ez a feltétel teljesül. 

Így talán a legjobb módja, hogy ezt csak hogy egy példát itt. Szóval, ahogy már említettük, a felhasználó érvényesítés valóban useful-- vagy nem igazán whiles hasznos felhasználói érvényesítés. Szóval ez csak fog újra kéri bizonyos felhasználói míg ők meg egy pozitív számot, amelyek hasznosak lehetnek a P készlet ezen a héten. És így ebben az esetben, amikor Kezdetben a program futtatásához, ez fog nyomtatni adjon meg egy pozitív számot. Ez lesz egy kis bemenet a felhasználó, majd ez lesz, hogy ellenőrizze hogy input ellen a feltétel hogy már meg érte. 

Tehát ebben az esetben fog ellenőrizni. Ez fogja mondani, OK, a mi negatív bemenet, vagy ez 0 vagy negatív, ami érvénytelen. Tehát akkor ez újra kérni. Kérdés? 

KÖZÖNSÉG: Ez ugyanaz, akkor a while ciklus ha csak másolt a kódot és tedd [hallható] a while ciklus? 

ALLISON: Szóval kérdés lenne ez ugyanaz, mint csak egy darabig loop ha mi voltunk, hogy csak másolja a while ciklus fent. Tehát ebben az esetben a while ciklus fogja ellenőrizni az első feltétel. Így ebben az esetben, ha megpróbáltuk írni, csak egy darabig hurok, azt mondanám, míg bemenet kisebb, mint egy. De nincs egy bemeneti érte. 

KÖZÖNSÉG: Ha a [hallható] while ciklus, beleértve ezt a kódot, de akkor birkózott a kódot felett a while ciklus is. Csak már ezt a kódot [Hallható] a while ciklus. ALLISON: lenne ugyanaz a dolog, igen. Szóval akkor csak write-- ahelyett, hogy a do-- igen. GABRIEL: De ez elegánsabb. ALLISON: Igen, elegánsabb. Tudod kap a tervezés és miegymás, de igen, akkor teljesen csinálni. Más kérdés? OK, hűvös. 

Így már sokat beszéltünk feltételek mindezekkel a hurok, hogy van, így vagyunk valójában bekerülni feltételek logikai kifejezések. Ismét használja ezeket a C, így csak ilyen átállás több grafikus felület hogy valóban kódolás. 

Cool, így nagyot, ha. Alapvetően csak lehetővé teszi számunkra, hogy bemutassuk némi logika a mi program ellenőrzése sys feltételek. Így ebben az esetben, OK, jelentése n nagyobb, mint 0? Igen ez, így végre ezt. Ez csak megnézni néhány feltétele, hogy akkor már állítva, ami azt hiszem, minden kényelmes vizsgálati feltételek. Cool. Tehát, ha van még a másik, azt lehet mondani OK, ha ez igaz, Ehhez az első dolog. Egyébként azt akarom, hogy az alapértelmezett, és nem valami mást. Mint ebben az esetben, akkor vagy válasszon egy pozitív szám, vagy negatív szám. Csak két lehetőség van. Meg kell azt végrehajtani, függetlenül amit a felhasználói bemenetek. Szóval lehet mondani jól, ez nagyobb, mint 0? Cool. Nyomtatás pozitív szám. Ha nem, nyomtasson ki egy negatív. Mindenki jó? 

És akkor egy dolog, hogy ismerje el az hogy ha a ha a feltétel teljesül, a más soha nem is végez. Ezek közül csak egy fog végre egy időben. Tehát ez a kompromisszum. Nem kap, hogy mindkettő. Vagy már az első feltétel. Vagy ha van vagy a más, nem mindkettő. Mely akkor lehet, hogy a dolgok még bonyolultabb, mert meg tudod csinálni, ha máshol, és majd mást. Így ebben az esetben, mi Három feltételek. És újra, ezek közül csak egy van lesz a vége, hogy kivégezték. Szóval lehet, hogy vajon nos, mi van, ha Van valami, ami találkozhatnak két ilyen. Lehet bármit bevitele egyaránt megfelel a feltétel Mert ha és a mást, ha. Az egyetlen dolog, hogy fog futni 

ALLISON: Amint talál valami hogy eleget tesz az, hogy a értékeli az igaz, ez az, amit ez fog futni, és semmi más. Tehát, ha már ez a szám 0 és 5 között az első egy, vagy ez a szám a 3 és 5. a mást, ha részben, és adja meg a number-- Azt mondtam, a 0 és 5 és-- 4. Ez lesz, hogy elérje az első. Meg fog mondani OK, ez szám 0 és 5 között. Végrehajtás és hagyja. Ez soha nem fog hit, hogy a második lehetőséget. Cool? Félelmetes. 

OK mi is switch kimutatásokban, amennyiben azt szeretné, hogy még more-- vagy sajnálom, kapcsoló mellett. Kezdek előtt magam itt. Ismét, ha többszörös blokkok ahol ahogy én csak mondtam olyan hamar, mint megtalálni a feltétel hogy találkozott és ha más, ha más, elhagyja. Ha kell ellenőrizni több dolgot, te szeretne majd ezt használni, mert akkor ellenőrizze, minden alkalommal itt. Tehát ez fut át, és ha ez nagyobb, vagy egyenlő, mint 90, ez meg fog nyomtatni azt. És ez fog futni és ellenőrizze minden egyes egy ilyen. 

KÖZÖNSÉG: Szóval ez lenne több mint buggy [hallható]. Vajon ez, mint [hallható]? 

ALLISON: A kérdés lenne ez hibás, vagy ez, amit akarsz. Ez tényleg attól függ, hogy milyen akarsz a programot. 

KÖZÖNSÉG: Úgy értem, mint ha teszel 90. ALLISON: Ha fel 90-- KÖZÖNSÉG: [hallható]. GABRIEL: Fogsz kapni két dolgot. ALLISON: Fogsz kapni két dolgot. Igen, kettő. 

ROB BOWDEN: Two? 

ALLISON: Nem. 

ROB BOWDEN: Four. Ha fel 90, azt fogja mondani neked Van egy A, van egy B, van egy C, van egy D 

KÖZÖNSÉG: [hallható]. ALLISON: Így van. Szóval attól függ, mit akar tőled programot. Néha meg kell ellenőrizze több dolgot. Kapsz sokkal mélyebbre mi jó design, ahogy megy előre. A lényeg, hogy észre, hogy ez a ellenőrzi mind a négy feltételek itt. Mivel ha ez egy más, ha, ha más ha más, akkor nyomja meg, hogy az első eset, lenne kinyomtatni kaptál egy A és kész. 

ROB BOWDEN: Még ha döntött, hogy megváltoztatja ezt, ha és nagyobb vagy egyenlő, mint 90, ha és nagyobb vagy egyenlő, mint 80, és kisebb vagy egyenlő, mint 89, ha n nagyobb vagy egyenlő, mint 70, és n kisebb vagy egyenlő, mint 79, annak érdekében, hogy megfelelő lesz. Ezt fogja tenni, amit akarunk, de még mindig ellenőrzi minden egyes azt. 

Így míg az első esetben, ha meg csak 90, ha más, ha más, ha és mi meg 90, akkor ez lesz a helyes. Ez ellenőrzi az első egy, print kaptál egy A, Átugrani mindent, mert már megállapította, az egyik, hogy működik. Minden esetben kölcsönösen kizárják egymást alapján ha else if else if. Így lesz végre a először, ha, akkor kész. Ez lesz megy a végére. 

Mivel ha megváltoztatjuk ez az, amit én mondván kevesebb vagy egyenlő, mint 89. Ez lesz, hogy ellenőrizze az első. Nem lesz nyomtatni. Ez megnézem a második. Ez nem fog nyomtatni. Ellenőrizze a harmadik. Nem fog nyomtatni. Ellenőrizze a negyedik. Most a nyomdába. Így ebben az esetben, a más, ha változat, mivel ezekben az esetekben kölcsönösen kizárják egymást, akkor jobb kihasználása ha else if else if, mert ez megy, hogy kevesebb ellenőrzi a feltételek mint ez a verzió. ALLISON: Félelmetes. Tehát még egy dolog, amit lehet tennie kapcsoló kimutatásokat. Alapvetően egy switch nyilatkozat vesz néhány változó, ebben az esetben ez a n és meghatározza, hogy mely esetben kell végrehajtani. Szóval ez is egy esetben, ahol a legyen egyfajta kölcsönösen kizárják egymást. Így ebben az esetben, ha mi kapunk egy, ez fog egyeztetni bármit változó-- függetlenül az n értékét az, hogy egy ilyen esetben, tehát az 1, 2, vagy 3., és nyomtassa ki a megfelelő sort. 

És aztán, ha azt veszi észre itt, mi is van egy alapértelmezett, amit doboz gondolni, mint a más. Tehát, ha felveszi más szám mellett 1, 2, 3 és ebben az esetben ez csak a nyomdába érvénytelen. Döntés mikor kell használni az IFS versus ha másnak versus kapcsolók megy hogy valami, amit a srácok lásd tervezés bölcs elkezdi írni bonyolultabb programok, és nincs kemény és gyors szabályokat Az, hogy mikor kell használni őket. Ez tényleg attól függ, hogy a kontextus. 

ROB BOWDEN: És csak hogy dobja ki ott mivel ez kényelmesebb szakasz. Kapcsolók, hajlamosak be-- így te csak A sokféleképpen használni őket, mert az IFS, a feltétel is elég sok, amit akarsz. A kapcsolók az esetek kell legyen ahhoz, számok, vagy technikailag lehetnek karakter, de karakter, mint látni fogjuk, csak számokat. Így kell a számok, de kapcsolók valóban hatékonyabb, mint ha else if else if, mert még figyelembe véve a példát before-- is, évfolyam példa úgy tűnik, jó. 

Hát mondjuk itt, helyette csinálni ez egy más, ha ha ha más forgatókönyv. Tehát, ha n értéke egyenlő 1-gyel, print választottad alacsony szám. Ha mást, ha n értéke = 2, Ön felvette egy közepes számot. Különben ha egyenlők = 3, magas. Else érvénytelen. 

Mondjuk ez volt a forgatókönyv. Tehát mondjuk belépünk 4, így várunk érvénytelen. Az út, hogy ha más, ha más ha megközelítést fog működni az ellenőrzi az első feltétel. Ez nem elégedett. Így ellenőrizni a második feltételt. Ez nem elégedett. Ellenőrizze a harmadik feltétel. Nem elégedett. Szóval megy a mást, és nyomtassa érvénytelen. 

Az, hogy a kapcsoló működik ez lefordul le amit mi megyünk hívni egy ugrás tábla. A fő gondolat lény hogy amikor belép a 4., akkor azonnal menjen az alapértelmezett. Nem kell ellenőrizni am I 1. eset? Dehogy, ez nem igaz. 2. eset? Nem. Case 3? Nem. Default. OK, ez kell, hogy legyen, ahol én akar, és akkor végre azt. Nem, azonnal ugrik az alapértelmezett. Vagy én meg 2, akkor azonnal fog menni 2 anélkül, hogy menjen át az esetben 1. 

Így az említett módon, reálisan manapság ez nem olyan nagy hatékonysági nyereség. Általában számítógépek elég gyors, és ez nem olyan nagy. De az a helyzet, hogy kapcsolók gyorsabb. Ha nagyon igyekszem optimalizálása, egy kapcsoló. 

ALLISON: Cool. És akkor mi van hármas operátor. Szóval tudom, hogy említettem korábban a szó szintaktikai cukor. Szóval ez csak ízelítő abból, hogy a kód sokkal tömörebb. Tehát ez az az eset. 

Tehát hármas operátor kérdőjel vastagbél mint látjuk a sorban húr s értéke nagyobb, mint 100 N kérdőjel magas vastagbél alacsony. Tehát alapvetően ez hogyan működik ez Az n nagyobb, mint 100 egy állapot. Tehát úgy gondolom, hogy lehet, hogy van értelme. Ez olyan, mint feltettem egy kérdést. Ez azt mondja ó, n nagyobb, mint 100. Ki tudja? És ha értéke igaz, ez lesz, hogy az Ön Az első dolog, ami ott felsorolt, ami magas. Egyébként ez meg fog adni az alacsony. Tehát ez csak egy nagyon egyszerű és hatékony módja, hogy mint egy, ha más. Ez minden, ez az. 

És ha volt, hogy megírjam ezt a mint ha más feltételes, lenne, ha n értéke nagyobb, mint 100, vissza magas. Else, vissza alacsony. Ez csak egy sokkal tömör írásmódja is. 

ROB BOWDEN: Tehát ebben a konkrét példa van, amikor te csinálsz valamit mint ez, ez a minta ahol használni hármas nagyon gyakran. Tehát még nem beszéltünk még körét, de én utálom látni s karakterlánc pontosvessző. Ha n nagyobb, mint 100, s értéke magas. Else, s egyenlő alacsony. Annak érdekében, hogy minta, az öt vonal A kód szó szerint 100% -át az időt átvihetők milyen volt ott egy hármas. Tehát a hármas, egy sor kód. A ha más, öt. Ez egy példa, amit pont ki minden egyes alkalommal. Ez lenne jó hely Egy hármas operátor. Ez így tiszta. De az emberek hajlamosak soha nem használja. 

ALLISON: Vedd el Gabe. 

GABRIEL: Most ti minden tanult előadás ezen a héten hogy mindent a számítógép bináris, ugye? Csakúgy, mint a lámpák itt. Lehetsz akár kapcsolható be és ki. És minden, értem Szó szerint mindent. Néhány számot, és karakterek, és a vonósok, és még a kódot írsz, ha ez lesz összeállítani a gép kódot, és ilyesmi, így minden attól függ, hogy 0 és 1-". 

És amikor mi dolgunk egész számokkal, amely valami, ami technikailag nagyon egyszerű, meg kell tudni csinálni dolgokat mint a hozzá őket, ami talán a legegyszerűbb dolgok amit tehetünk, hogy két egész, ugye? Tehát összeadás és kivonás működik, tetszik működik decimális jelöléssel, kivéve itt ez bináris, ugye? Tehát a két alap. Tehát adjunk hozzá 1 plusz 1. Ez ad 0 és 1 átveszi. És csak azt csinálom, így most jön a még érdekesebb kérdés. 

Tudjuk, hogyan kell képviselni minden pozitív egész számok a számítógép, de most, hogy ez a gyakorlat. Úgy, mintha a srácok mind 1960-ban, vagy valami megpróbál létrehozni egy számítógéppel, és van, hogy dolgozzon ki a egy módja tárolására mínusz 1, például, vagy mínusz bármilyen egész, hogy az ügyben. Hogy csináltad ezt? Van ötleted? Csak dobjon semmit nekem. Igen? 

KÖZÖNSÉG: [hallható] kijelöl Egy különleges, ha a [hallható]. 

GABRIEL: A jelölnie különleges bit, amely 0 vagy 1 lehet. Tegyük fel, hogy az egyik, ha ez pozitív és 0, ha ez negatív. Majd a többi, a bit csak a szám tárolásához. Cool. Szóval ez egy nagyon jó ötlet. Van, nem tudom, a 200. És ha az első bit be van kapcsolva, akkor az plusz 200. Ha ez ki van kapcsolva, akkor mínusz 200. Cool. 

Van csak egy kis probléma ezzel, ami ha megpróbáljuk összefoglalni a dolgokat. Így elképzelhető, hogy van itt 11.111, és mi összeadásával ezt 00.100 bármi. Ha a két pozitív, hogy rendben van. De aztán, ha az egyik őket negatív, mint Tegyük fel, hogy ez a darab itt az egyik, hogy a felelős for-- fogok tenni a separate-- tehát ez azt jelenti, hogy ez a szám itt pozitív. Ez azt jelenti, hogy ez az egyik szám itt is negatív, igaz? 

De amikor te majd összeadjuk ezeket, akkor Ha szükség van egy nyilatkozat mondja ó ha ez 0, akkor az összeg lesz valami más, ugye? Tehát van egy kicsit több okos módja azt, amely az úgynevezett kettes komplemens. Tehát alapvetően mi tennie, hogy mi határozza meg mínusz 1 is a dolog, hogy ha összeadjuk 1 0. ad nekünk. Hadd ismételjem meg, hogy. Mondjuk, hogy ez itt 1. Mi az a dolog, hogy a természetesen pozitív egészek hozzá, hogy megadja nekünk 0? Mi van, ha megpróbáljuk hozzá, hogy ezt a számot? Megyünk have-- OK, úgyhogy hozzá. Mi lesz, hogy 1 + 1 értéke 0, és akkor hordozza át. És akkor mi lesz, hogy ismét 0. Kezdek zavaros. És fogsz kapni 0 0 és 0 és 0 és 0: 0. Sok 0 években. 

Már az utolsó, nem vagyunk lesz képes, hogy vigye át, mert mondjuk mi csak foglalkozunk egy bájt, így csak 8 bitet. Szóval, mi a számítógép nem alapértelmezés szerint csak elfelejti, hogy a [hallható], OK? Szóval, ez az, amit az úgynevezett A kettes komplemens. Egyszerűen meghatározása mínusz 1, hogy a dolog, hogy itt, ha hozzáteszem, hogy az 1 adna 0. És ez nagyon jó mert mi nem igazán kell kései végrehajtása eltérő típusú összeg attól függően, hogy ez a negatív vagy pozitív szám. Van ennek értelme? 

Tehát az egyik dolog, hogy mi ebben a sorrendben lehet átalakítani között egy pozitív és egy negatív integer van akkor a flip mindent, és akkor adjunk hozzá 1 adott szám. Ha megpróbálja, hogy csináld magad egy darab papírra, fogsz látni, hogy van értelme. De ha ezt a számot itt, ez öt. Szóval, ha a flip mindent itt, így 1, 1, 1, 1, 1. Flip, flip, flip. Aztán hozzá 1-et. Megyek pontosan mínusz 5. OK? 

Ez a fajta van értelme, mert ha megpróbálja összefoglalni ezt a számot hogy mi volt korábban, ami was-- hadd fordítsa ezt újra. Ez volt a 101 és rengeteg 0. években. Ha megpróbálja felvenni ezeket két szám együtt, fogsz, hogy pontosan 0. OK. Van még kérdése? 

KÖZÖNSÉG: [hallható] 

GABRIEL: Mit jelent? 

KÖZÖNSÉG: Negatív pozitív [hallható]. 

GABRIEL: Nem, flip és adjunk hozzá 1 mindig. Igen. OK, így karakterek is kódolt bináris. Van ASCII tábla, mint te is látta, előadás, igaz? Tehát alapvetően a feltérképezése a dolgok. És itt nem tudom eléggé hangsúlyozni hogy egy számítógépet, egy 65 és szó ugyanaz a dolog. Tehát, ha írok valami hasonló char c egyenlő a, ugyanabban az időben 65. csak írni itt, és azt lenne pontosan ugyanaz, OK? Nincs különbség nélkül. 

Általában igyekeznek a karakterek változók típusát. Char, nem azért, mert ők alapvetően arról, hogy a, hanem azért, mert Az emberi egyezmény. De lehet csak kezelni egész helyett változó típusú char, és akkor rendben lesz. Az egyetlen tényleges különbség között a char c és int i az, hogy egy int négy bájt a legtöbb rendszer, míg a char van egy byte. Ők lényegében a Ugyanez tekintve az adatok. Tehát mi fog nyomtatni itt? Itt vagyunk nyomtatása számjegy a printf a plusz 1, és mint egész, karakter lehet összefoglalni, így karakterek is össze kell adni. Szóval ez pontosan 65. Tehát lesz 66., és itt van 65 plusz mínusz kicsit nagy A, ami lesz, én nem igazán tudom. De ez lesz pontosan a rés a nagybetűk és a kisebb betűkkel, így mi lesz, hogy kicsi, igaz? Igen. Tehát ez fog nyomtatni egy képességet, amely pontosan ezt. Jó? Van még kérdése? 

Itt van egy csomó különböző típusok numerikus változók. Már beszélni int. Float csak egy módja to-- ez nagyon vicces, mert amikor először hallottam programozni vissza a nap Python, az első program, amit valaha próbáltam írni, láttam, hogy ott volt a típusú úgynevezett és a típusú úgynevezett úszó. És az úszó volt az összes valós számok. Akkor megkérdeztem, hogy miért kellene Én valaha is használni egy int akkor? Mert ha tudom használni az összes valós számok egy úszó, Én csak hagyja abba ints, ugye? Mivel a valós számok hasonlóan általánosabb. 

Kiderült, hogy ez a nem ez a helyzet a számítógép mert ők alapvetően különböző dolog. Így egész és úszik, a művelet, amit teszel velük alapvetően más, mert Az hogy vannak tárolva, OK? Fogunk beszélni egy kicsit kicsit többet, hogy a második. 

Tehát kettős csak egy nagyobb úszó. Általában a legtöbb rendszer, úszó négy bájt, mint egy int. És egy kettős nyolc bájt. A hosszú, hosszú valójában csak egy szimbólum hogy mellékel a típus, mint int. Azt mondja, hosszú, hosszú int, mint ez. Long long int x, hogy hosszabb ideig. Így a legtöbb rendszer, hogy ad nyolc bájt helyett a szokásos négy. És akkor valóban csökken a a, így csak annyit hosszú hosszú, és hogy működik is, OK? Megteheti más dolog, mint unsigned int, vagy megint csak unsigned is működik. És ez lenne egy x változó mint minden pozitív, így nem igazán negatív számokat az is, hogy láttunk itt. Így a következő csodálatos lebegőpontos és pontosság. Ez az egyik oka annak, hogy miért szeretné használni ints helyett úszók, mert ints 100% pontos, igaz? Pontosan ezt a számot. Az úszó pont, ha mondjuk válasz értéke 1 felett 10-- Én történetesen ezt pontosan program itt, float.c. Hogy kiírja, hogy 20 tizedesjegyig. 1 osztva 10, és hogy általában 0,1, ugye? De itt, ha teszünk úszó és aztán futtatni, azt látjuk, hogy ez nem egészen 0.1. Ez 0,149 valami. 

És miért nem? Mert akkor nem igazán jelentenek minden Egyetlen lehetséges valós szám a memóriában mert vannak uncountably sokan. Szóval technikailag csak képes képviselnek véges mennyiségű őket egy véges mennyiségű adat. De ez tényleg érdekes. Most ez felveti a kérdésre, hogy hogyan szeretnéd megy a képviselő ez a bit, ugye? Szóval, hogy úszik tárolják? Az egész nem volt könnyű. De úszók akarsz hogy maximalizálja a tartományban, és azt szeretné, hogy képes legyen képviselni rengeteg és nagyon apró számok, mint 0.000001 ugyanabban az időben. Szóval megint ugyanazt a játékot. Van valakinek valami ötlete, hogy hogyan lehetne megy a képviselő úszó a memória? Csak dobjon semmit. Igen, kérem. 

KÖZÖNSÉG: [hallható] mint ha ez két ints és egy hogy a [hallható] és egy lény minden a tizedesvessző után. GABRIEL: OK, hűvös. Tehát két különböző egész számok. Egyszerre 12.45, úgy, hogy a 12 és a 45. Szép. Mi ere fogsz mondani? Ugyanaz a dolog? Igen? 

KÖZÖNSÉG: [hallható] jelölés ahol külön a bázis. 

GABRIEL: tudományos ábrázolás, Ja, hogy általában mi történik. Szóval, ez az, amit az úgynevezett mantissza. Ez az, ami valójában a számot, majd a kitevő ott van, ahol a vessző van, ugye? Tehát ez lesz valami Az 1., 2., 3., 4., 5-ször 10 a mínusz 4. Én csak rájöttem, hogy-- igen, pontosan. És akkor ez a 10 a mínusz 4 fogja meghatározni, ahol a vessző van, OK? Brazíliában használjuk vessző. Itt a srácok ezúttal egy pontot. Így egy pont. 

És ez jó, mert akkor hangsúly sok a bitek a fickót itt, a mantissza, és akkor ez lesz a tényleges pontosság. És akkor ezt akár tizedes vagy bináris alapú rendszer. Vannak különböző módon végrehajtani ezt. Kérdése van? Igen? KÖZÖNSÉG: Hány helyen miután a decimális [hallható]? 

GABRIEL: Ez egy bonyolult kérdés, mert ez nem igazán 100% pontos, mert ahogy itt látsz, az néhány számot ez 100% pontos. Azt hiszem, ha teszünk 0,5 itt, ez lesz a 100% pontos. Ez lesz 0,500000. Tehát ebben az esetben, ez tökéletes. De más esetekben, ez sokkal kevésbé tökéletes. Az én tapasztalatom, mint akár négy, öt tizedesjegy elég pontos. Ha egy kettős, ez lesz a legyen mód pontosabb, mint az, OK? 

ROB BOWDEN: Tehát csak dobni néhány kontextusban úszók, Soha nem emlékszem, 100%, hogy a spec az úszók tényleg működik, de én mindig emlékezni hogy úszók kezdeni, hogy rendetlen. Tehát az ötlet az, hogy ha igazán, igazán nagy szám, vagy nagyon, nagyon kis számban, kezdjük egyre rosszabb és rosszabb A differenciáló két közel úszik. 

Szóval, hogyan szeretem gondolni, A lebegőpontos pontatlanság, van két úszók hogy ha megpróbálom megadni nekik C-ben, annak ellenére, hogy ők különböző számokat, ők lesznek értelmezni, mint az ugyanazt a számot, mert nem tudjuk tárolni őket másképp. Meg kell, hogy ugyanazt a bit. És ha eljutunk nagyon, nagyon nagy számban, beszél, mint a 10 300 vagy valami, akkor ezen a ponton hogy a 10 300 vagy 5-ször 10 300 nem lehet megkülönböztetni 7-szer 10 a 300-at. Szóval ez egy elég nagy különbség között a két szám. 

De aztán, amikor már le A normál tartomány dolgokat, Hajlamos a szép jó differenciáló. És akkor, amikor már le nagyon kicsi, te is kezd nagyon rossz újra. Szóval, mint egy csomó 0,0000, ez lesz nagyon rossz. GABRIEL: Igen, így egy gyors megjegyzés. Soha ne csináld ezt. Soha ne próbálja meg összehasonlítani úszik a egyenlők tel egyenlõ, mert még ha ők majdnem az azonos, közel azonos nem ugyanaz. Szóval, amit általában nem te vagy kivonni őket, hogy a abszolút értéke, hogy a, és nézd meg, hogy ez kisebb, mint 0.0001 vagy valami ilyesmi, OK? És hűvös. Tudom, hogy sok ember van néhány háttér Java, különösen azok, akik nem AP számítástechnika, ugye? És Java nyelv hogy leginkább a C, van egy pár nagyon nagy különbség. De hurkok, IFS, és ilyesmi hogy, ők mind ugyanazt a szintaxist. Van néhány program itt mutatni ezt. 

Így például, egy egyszerű hello world. Ez hello world C, ahol a srácok biztosan ismerik, és ez és ez van a Java. Így van ez a Java public class, hello, világ, és public static void fő, és húr argumentumokat. A string args megy jelenik meg a C hamarosan. De ne menjünk oda még. Most van itt semmis, ami azt jelenti, hogy a fő nem vállal semmilyen érvet. És akkor mi van System.out.println, és ez a milyen a egyenértékűnek printf. Itt nem igazán kell a backslash n mert print ln nem, hogy az Ön számára. Hozzáfűzi a backslash n végén a sor. 

De ha bemegy olyasmi, mint egy az Ön láthatjuk, hogy ők nagyjából ugyanaz a dolog. Szóval inicializálás, és az állapot, és a frissítés ez-- lekéstem a tér here-- ők nagyjából ugyanaz a dolog, kivéve a Java van egy pár magas szintű cucc. Itt tehetünk plusz és Java automatikusan hogy ezt én itt, ami egy egész, egy húr, majd hozzáfűzi a két húr együtt. Itt C tennünk kell a &% d. A vonal itt, az az ugyanúgy néz ki. 

És ha megnézzük, ha az IFS is ugyanúgy néz ki, ugye? Tehát az igazi nagy különbségek azokban a dolgokban, amit itt látni. Public static, érvénytelen, és akkor public class esetén. Szóval, mi is a Java úgynevezett virtuális gép. És ez nagyon erősen az alapján, amit az úgynevezett objektum-orientált programozás, ami egy nagyon, nagyon gyakori paradigma programozás manapság. És ez az osztály a dolog, amit látsz, valamit objektum orientáció, A létrehozott egy osztályt, és akkor húzhatnak objektumokat az osztályban. Nem fogunk beszélni is sokat, hogy CS50, de azt határozottan valami nagyon jó, főleg, ha akarsz menni kifinomultabb webfejlesztés végén a természetesen mint küldje el a projekt végső és néhány szép keretek, meg ilyesmi. 

Tehát alapvetően az ötlet, hogy nem akarja, hogy újra végrehajtani valamit, így létrehoz valamit, ami nagyon általános, mint a forma, és akkor hozzon létre különböző formájú tőle, majd mindegyikéből ezek formák, hoz létre néhány speciális formák három méret vagy valami ilyesmi. És van ez a hierarchia azok öröklik a többitől, így minden funkcióját és változók, a nagy alak itt van, az összes ilyen megy, hogy, és ezek mindegyike megy, hogy van, és így tovább és így tovább. Szóval ez az alapötlet. 

C nem rendelkezik, de a C ++ nak ez a fajta szolgáltatást. És Java erősen befolyásolja cél orientáció, úgy, hogy ezért látod osztály itt egész idő alatt. És a másik dolog, Java virtuális gép. Szóval, azt hiszem, ez egy nagyon okos ötlet. Tehát mi az emberek, akik kitalált java volt az nem akarták, hogy összeállítása a kódot kétszer ha kellett futtatni a Windows, vagy a Mac, vagy Linux, így amit csinálnak A szó szoros értelmében fut olyasmi, mint a készülék, de nem igazán látom, hogy történik. Így fut egy virtuális gép számítógép belsejében, ami alapvetően, mint egy mini operációs rendszer. És, hogy a működési rendszer célja az életben éppen fut az úgynevezett byte kódot. 

Így ahelyett, hogy a C, ahogy mi lenne lefordítani ezt teszi, ha majd futtassa ./if. Elfelejtettem a backslash az. A Java, akkor nem először Java C lefordítani azt, if.c. Ez nem a C. pont java. És akkor meg kell futni nem ./. Kapsz ezt az új fájlt if.class, de akkor nem igazán fuss if.class most csak mint mi korábban. Ez nem végrehajtható. Meg kell futtatni. Meg kell etetni azt a program neve Java, és hogy a program a virtuális gép, és akkor te if.class, vagy ha. Igen. És akkor működik. OK, így ez a fajta a virtuális gép történik. C nem, úgyhogy, ha én is tegye ezt a programot a Windows gép, ez nem működik C. Java igen. Kérdése van? Cool. Ez, ha a szuper rész a mai napra.