[Zenelejátszás] DAVID MALAN: Rendben, ez CS50 és ez a hét végén egy. Szóval szeretném bemutatni a korábbi advisee, Andel Duff, aki nem csak teszi iPhone 5 áll, valamint ez szónoki emelvény, ő is tesz autók. ANSEL DUFF: Hogy megy, mindenki? Csak azt akarom mondani, egy kis kicsit a Formula SAE, amelynek én vagyok a kapitány. Ez egy MIT csapat. Csak azt akarom mondani, srácok egy kicsit róla és remélhetőleg generál némi érdeklődést. Engedjék meg, hogy fut át ​​a pár dolog a mi csapatunk. Így vagyunk teljesen diák fut, ahol az összes A tagok tervezés, szimulálni, teszt, és a gyártó a alrendszer az autó. Megvan a saját gépterem és garázsok, és N52-- vagy sajnálom, N51-- amely ugyanabban az épületben mint a MIT Science Museum. És mi vagyunk a nép hogy vezetni az autót. Van egy országos verseny A nyár elején, és akkor ott vannak a kisebb lövöldözés versenyek egész évben. És akkor mi járművezető-képzés nap, hogy új tagokat megismerni. A beépített napok vannak Szombaton 11:00-20:00. Ebéd és vacsora vigyáz a, a Bertucci és a Beantown ill. Van egy heti ülésén és szeminárium, ami a tanfolyam hitel. Ami új, mint az ebben a félévben, és ez is a következő félévben, így át-reg erre. És akkor mi van tervezés, üzlet, és CAD napot a hét folyamán, míg a tagok önállóan CAD alkatrészek, rendelés állomány satöbbi. Így az elektromos mérnöki csapat Megvan a vontató, nagyfeszültségű rendszer, azaz egy névleges 300 V, amely magában foglalja motorok, motor vezérlők, és akkumulátorokat. Akkor van egy kis feszültségű rendszer, azaz 12 V, amely magában foglalja ellenőrzés, CAN állomásoknál, az agy doboz, és a műszerfal. Ami CS megy, mi Van weboldal karbantartás hogy mi kell tenni az események, tagság változások, az új képeket, és PR-anyagok. És akkor mi van kód, amely szabályozza a autó a kipörgésgátló, dob vezérlés, kötőjel vezérlés, nyomaték-, és regeneratív fékrendszerek, amely jellemzôen MATLAB, Simulink, és LabView. Mondjak el egy kicsit a kocsi. Szóval ez körülbelül 500 kiló. Ez a szabályok kizárólag a 85 kilowatt. Meg 2 EMRAX 207 motorok a vissza, egy-egy minden hátsó kereket. Ez rendelésre készült akkumulátor a Prizma A123 tok sejtek összesen 300 volt, és 5.6 kilowatt óra. És ez a közvetlen hajtás a 2,64-1 áttétel. Íme néhány kép is vette róla a verseny. Itt a vissza, orrkúp, és itt vannak a motorok, azok a nagy fekete lemezek alatt az et férfi manus. Itt egy dia hogy húztam a mi verseny rendszer. És ez még csak összehasonlítjuk az autó egy Néhány kereskedelmi forgalomban kapható autók, mint a KTM XBOW, Ariel Atom, és Caterha M 7-280. Ha még nem ismeri, ár, teljesítmény húzza súly, dollár lóerő, dollár nyomaték, és az autónk fúj őket a vízből. Ha bármilyen kérdése van, lejegyez az e-mail címre. Lő nekünk egy e-mailt a fsae@mit.edu. Boldogok vagyunk, hogy beszélni bármit, amit szeretne. Harvard diákok fajta A kisebbség a csapatban. Ha bármilyen kérdése van hogy tegye lő nekünk egy e-mailt, szívesen beszélnek, és én megyek hogy térjen vissza át David. Köszönöm. Nagyra értékelem, srácok. [Taps] DAVID MALAN: Ansel töltötte a nyári dolgoznak velünk itt az egyetemen CS50 ezen a nyáron. És amellett, hogy dolgozik dolgok, mint a bináris izzók, ő tényleg nagyon megnyitottuk eyes-- és bánya particular-- hogy mi is a kereszteződés nem a hardver és a szoftver is. Valójában egy csomó dolog, amit csak turnézott végig végső soron létrehozta az első szoftver, majd végül gyártott a valóságban a hardver. Tehát, ha érdekel feltárása, hogy a kereszteződés, talán vegye fel a csoport. Most Eközben azok, akik rajongói a technológia, és az Apple termékek Különösen tudják, hogy volt egy pár Közlemények tegnap. De azt hittük, azt mutatják, Ön az egyik, hogy jött ki Néhány nappal korábban, hogy a talán nem is láttam. JORGEN EGHAMMER: Tudod, egyszer egy kicsit valami jön, hogy a megváltoztatja az életünket. A készülék olyan egyszerű és intuitív használó úgy érzi, szinte családias. Bemutatjuk 2015 Katalógus. Ez nem egy digitális könyv vagy egy e-book, ez egy könyv, könyv. Az első figyelemre méltó dolog nincs kábelek, még a tápkábelt. Az 2015 Katalógus jön teljesen fel van töltve, és az akkumulátor élettartama örök. A felület 7,5 8 hüvelyk, de bővíteni 15 8 hüvelyk. A navigáció alapja érintést technológia, akkor valóban úgy érzi. Content előre telepített keresztül 328 nagyfelbontású lapok inspiráló lakberendezési ötleteket. A böngészés megkezdése, Egyszerűen érintse meg és húzza. Jobbról balra előrelépni, balról jobbra mozog visszafelé. Vegyük észre, valami más? Ez így van. Nincs lag. Minden kristálytiszta oldal terhelések azonnal, nem számít, hogy milyen gyorsan fut. Ha azt szeretnénk, hogy egy gyors áttekintést, csak tartsa a tenyerében, és a csak a hüvelykujjával, sebesség böngészni a tartalmat. Ha találsz valamit, amit szeretnénk menteni később, akkor egyszerűen a Kedvencek közé,. És akkor is, ha az alkalmazás bezárása, könnyen megtalálja a könyvjelző újra. Csodálatos. [Nevetés] [Taps] Annak érdekében, hogy elvezet minket A hét végén egy. Néhány Közlemények most. Tehát vágás már folyamatban van. Menj erre az URL itt valamikor mostantól péntek délben ténylegesen Jelölje meg, hogy közül a kevésbé kényelmes, több kényelmes, vagy valahol a kettő között. Ez tipikusan egyike azoknak dolog, amit csak úgy tudom. És valójában azok, akik kevésbé kényelmes talán tud annyit, Azoknak, akik több kényelmes tud annyit, és újra, ha nem egészen biztos abban, e kanalak esel bele te valószínűleg valahol a kettő között. De biztos lehetsz benne, akkor csere után egy pár hétig, ha kell. Eközben a jövő héten nem kezdjük szakasz önmagában de szuper szakaszok, ami nyitva állnak minden diák. Most vasárnap egy helyre jelentették be a tanfolyam honlapján mi lesz egy-egy a kevésbé kényelmes, valamint egy a azok sokkal kényelmesebb. És azok valahol a kettő között melyik az a két, vagy mindkettő, ha szeretne, ülni-be. És a hangsúly azon lesz végül a C, amely fogjuk folytatni a beszélgetés ma. Probléma A 0 közben is remélhetőleg a kezedben. Hivatalosan miatt holnap, Csütörtök délben. Kivéve, ha készpénzt egy a 5. késő nap, ami hozza Péntek délben. Probléma készlet 1 időközben lesz felkerül a kurzus honlapján. És ez lesz az első fosztogat, mint egy osztályt C. És ez a probléma beállított spec átvisz keresztül sok a mechanika, hogy mi elkezdtünk beszélni hétfőn, és mi is beszélünk ma. C, Linux, a CS50 készüléket, az összes, hogy várja Önt a specifikáció. Fogadóóra Közben folynak, az egyetemi étkezőben. Fej ezt az URL ide ütemezése a ma este és holnap, Ha szeretne részt venni. Kérdések közben, így lehetőségük kérdéseket feltenni aszinkron, 24/7, észre te nem korlátozódik a szakaszok és az irodai óra, de inkább ez az eszköz Itt CS50 vitatni az URL lesz a tanfolyam online faliújság szoftver, amelyen keresztül lehet kérdéseket feltenni a osztálytársai és munkatársai. Tehát ne feledje, hogy az erőforrás is. Közben a hagyomány kezdődik pénteken. Ahogy talán már megpillantotta a múlt szerdai teaser videó, van egy hagyomány a legtöbb minden pénteken a kifejezés figyelembe mintegy 50 diák és személyzet egy helyi étteremben az úgynevezett Fire and Ice, ahol vagyunk jellemzően csatlakozott néhány öregdiák vagy a barátok az ipar általánosan törekedni hogy egy nagy osztály érzi kisebb. Tehát ez egy teljesen hétköznapi ebéd. Egy csomó minket, a személyzet különösen fog játszani székfoglaló és beszélgetni a tanulókkal az 50, az élet külső 50, élet a jövőben, a valós világban, Arról beszélek, munkalehetőségek a barátokkal az iparban. Tehát, ha szeretne csatlakozni hozzánk ez péntek, fejét erre az URL itt. A hely korlátozott, de mi nem ezt visszatérően az egész távon. Fej ott cs50.harvard.edu/rsvp. És ha nem kap ebben az időben, ne aggódj. Mi megcsináljuk újra a következő hetekben is. Tehát ez a kép mi festett a múlt héten, és akkor már valószínűleg volt dabbling eddig. De próbáljuk csatlakoztassa most hogy mit fogunk csinálni ma kezdve. Kaphatok egy önkéntes? Rendben, vagy több. Na és itt a Végül a kék ing. Gyere fel, mi a neve? ALANA: Alana. DAVID MALAN: Alana. Tehát Alana, csak egy moment-- Örülök, hogy megismertelek te-- fog játszani A funkció itt. A lila blokk mi már nevezett eddig a funkciót. Szóval, mit fogok menni előre itt és felajánlja Alana egy kis névtáblát, hogy a világos, milyen szerepet játszunk. Szóval legyen az mondjuk blokk. Ha azt szeretné, hogy menjen előre, és tedd azt tovább. És fogunk tartani ezt a szuper egyszerű. Ha a cél a kéz egyszerűen Most, hogy végre az Alana, ez az úgynevezett mondjuk blokk, Itt van, hogyan fog működni. Én lesz-- nevezzük érv vagy paraméter, ez tényleg csak egy üres papírlapot. És ez a fehér, hogy milyen legyen emlékeztető A fehér doboz, amelybe lehet írni szavakkal. Közben megyek itt. Én megyek előre, és levelet H-E-L-L-O vessző világban. És most én, mint mondjuk a programozó, nem tényleg tudja, hogyan kell mondani valamit. Én is felér a szavakkal, de én nem feltétlenül tudja, hogyan kell kifejezni magam szóban vagy a képernyőn. És mit fogok tennie, hogy ez a darab funkcionalitás, akinek input-- vagy érv, ahogy mi hívjuk, Én írtam ezt a darabot paper-- és megyek, hogy kiszervezi azt. És valóban, ez a szerep az funkciók egy programozási nyelv játszhat. Olyasmi, mint a mondjuk blokk lehet kiszervezni valakinek, aki igazán tudja amit ő vagy ő beszél. Tehát, ha lesz átlépni itt egy pillanatra, Én megyek, hogy adja át ezt a bemenetet Alana, és kérjük, hogy azt mondják, ez a bemenet. ALANA: Helló, világ. DAVID MALAN: Ennyi. Tehát, hogy van egy funkció. Most, hogy egy kicsit több, tudunk előre lépni itt. Mert ez egyértelműen underwhelming. Szóval most már meg, hogy ez egy kicsit bonyolultabb. Így ez természetesen a mi C verzió. Tehát most, ha azt szeretné, hogy az egyszeri, azt a névtáblát ki, és vessünk teszel egy új nevet. De alapvetően te játszani ugyanazt a szerepet, ez csak azért történik, hogy hívják printf most. A történet, természetesen, fog be-- valószínűleg mint underwhelming-- az lesz a következő. Ön most a funkció printf. Én vagyok a hívó, vagy a programozó, aki akar állni a vállán emberek a múltban, mint te, akik már rájöttek, hogyan hogy ténylegesen írjon valamit le. És így ebben az időben, ahelyett, hogy azt mondják, hogy menjünk ténylegesen használni a képernyő itt. Tehát, ha szeretné, hogy fokozzák itt, én megyek át újra ezt bemenet a printf barátom. Ha tudnál menni előre, és nyomtatni, hogy a képernyőn, egyszerűen rajz a ujját a fekete képernyő. Kiváló. Rendben, tehát rengeteg feszültséget a hogy hogyan fog játszani ki. Így most nézzük a dolgokat egy végső remek, ha tudnánk, az alábbiak szerint. Tehát ez egy C program ahogy a múlt alkalommal. És ez csak azt teszi, amit tettél, azt kiírja a képernyőre, helló, világ. Annak ellenére, hogy ez egyértelműen a sok zavaró dolog ott. De nézzük a dolgokat egy remek, és bevezetése ez a verzió, ami emlékeztetnek volt a harmadik változat, mi végül az utóbbi időben. És most már világosan két felhasználási printf. Van 2 hívás Alana Ebben az esetben a printf, de van még egy hívás másik funkció. Mi ez a funkció jól? GetString. Kaphatunk még egy önkéntes? OK, gyere fel. Mi a neve? Javier: Javier. DAVID MALAN: Javier, gyere fel. Így Javier szerepe van ez a darab papír. Melyik fogom hívni általánosságban s. Most ez a változó, akkor string típusú, mint hallgatólagos az, hogy a második sor közepén van. És szeretném, ha menni nekem egy húr. Konkrétan fejjel lefelé a zenekar részt, és értem a nevét valakinek, és jöjjön vissza egy változó tartalmazó értéket. Ez lehet mindenki szeretne. Itt vagyunk. Rendben, Javier leírom a nevét. Rendben. Mindannyian Valószínűleg hiszem, hogy ez fog játszani ki. Mi talán belaboring a lényeg, hogy mi A funkció csinál, de Ennek ellenére nagyon szépen köszönöm. Így Javier visszatért ez a sztring itt, ami nem egészen értem, Jonathan a húr hogy mi ütött. Akkor most mi vagyok valóban megy hogy az Alana bár valami egy kicsit más. Mert ebben a verzióban a program első ott a nevét. Tehát az első érv Azt kell, hogy Alana A lesz szó szerint a nevét. Rendben, akkor egyszerű Szeretném átadni ezt neked. És ahogy írom fel a következő érv, ha akarok menni előre, és írom ezt a a táblán, menjünk előre és nem az utolsó példa itt, hogy világos, mi végül kell történnie. Így a nevét, írja meg teteje felé ha nem baj, csak azért, hogy van egy hely a második sorban. Mert az utolsó dolog, megyek hogy most az Ön számára nem egy, de két darab papír. Rendben. H-E-L-L-O vessző, majd egy üres sort. Szóval, mit fogok átadni Alana most valami egy kicsit más. Nem csak ő kezd ezt, ahol töltse ki az üres képvisel hogy percent-- mi volt az helykitöltő, amit használ? Igen, százalék s. Közben megyek át őt egy másik érv, amely Pontosan ezt Javier kinyert Jonathan. Nos, hadd adjak két. Ha azt szeretné, hogy menjen előre és nyomtatási értelemben. Mi végül történik most az, Alana újra játszik szerepet a printf. Javier játszott szerepét getString. Ahhoz, hogy lesz a emlék. És végül mi történik, annak ellenére, hogy ez hello-- aha megy előre, és vessző. ALANA: kaptam ezt még, vagy nem? DAVID MALAN: Igen, te kapott mindkettőt egyszerre. Tehát az ötlet az, hogy Most fordítsa oldalra kezelni, hogy a második a két bemenet. Tehát ez csak a kalapács haza a pont, míg Alana végrehajtott ez a zöld vonalat, majd Javier tette ezt nekünk és térjen vissza nekem valamit hívjuk s, de nem volt igazán csak azt a papírt a saját. És most Alana tette ezt a harmadik sorban. És bár mindez úgy néz ki, így hihetetlenül rejtélyes talán első pillantásra, ez tényleg olyan egyszerű, mint ezt. Átadás bemenet körül, egyre kimenet, vagy hogy fizikailag adta vissza valamit, vagy látta a mellékhatása, mint ez. Valami vizuálisan írva a képernyőn. Szóval, menjünk előre, és Köszönöm Alana és Javier, ki volt itt, a csatlakozik hozzánk itt. [Taps] Tehát most vegyük biztosra, hogy milyen egyszerű minden, hogy lehet. És ne folytassa a tényleges tenni valamit a tényleges kódot. Így a képernyőn itt van egy screenshot Az úgynevezett CS50 készülék. És ha kellett az, mint a 02:00 szerda délután, magyarázni néhány barát mi a CS50 készülék, Hogyan határozná meg egy mondatban? Bármely mondat? Igen? Diák: Ez olyan, mint egy programot , ami mindenki számítógép futni ugyanazon a rendszeren. DAVID MALAN: Jó! Ez egy program, amely lehetővé teszi, hogy mindenki számítógép futtatni ugyanazon a rendszeren. Ez a fajta a saját másolata működési rendszer, ami történik nevezhető Ubuntu Linux. És fut hatékonyan belsejében egy ablak a saját Mac vagy PC, annak érdekében, hogy ily módon jobb kívül a kapun 1. héten, itt mindenki az osztályban hozzáfér az azonos eszközöket, ugyanaz a konfiguráció, és nincs tanulási görbe speciális a Mac vagy PC, különösen. Most megnyílt, belsejében a CS50 berendezés hétfőn, a program itt. Előfordul, hogy hívják gedit. De ez tényleg csak grafikus szerkesztő. Ez olyasmi, mint a Jegyzettömb vagy szöveg Szerkeszteni Windows vagy Mac OS volt. És én azt javasolta, hogy valóban három fontos részből áll ez a képernyő. A felső oldala az, ahol írna a kódot. És ez az, ahol sok időt töltött a mi három példa a hétfői előadás. Az alsó hívtuk mi, ez a fekete ablak, igen? Diák: Compiler? DAVID MALAN: Compiler mi elérhető útján az ablak. De általában. Igen, ez csak egy terminál ablak. Ez egy olyan korban, régi kifejezés, hogy csak leírja lényegében egy villogó gyors, hogy évekkel ezelőtt szokott lenni a egyike azoknak a nagy CRT monitorok stílusban. De manapság ez a fajta virtuális szoftver. És a terminál ablak hadd mi vagyunk parancsokat. Ez a fajta az egyszerűsített verzió A felhasználói felület vagy UI. Ez nem egy grafikus felhasználói felület vagy grafikus felületen, ez egy szöveg-alapú felület vagy a parancssori felület. És valóban, ez az, ahol végül Tudtam, hogy írni egy kis kódot. Egyszer írtam egy kódot, bár, emlékeztetni arra, hogy használtam ezt a parancsot. És mivel ez a név fajta is mutatja, ez lehetővé teszi számomra, hogy a nevű program Helló. De mi is ez valójában csinál? Nos make szedett az bemenet, a forráskód, és átkonvertálja amit végül? Tárgykód. És tárgykód csak egy divatos szóval nullák. És akkor egyszer akartam futtatni az objektum kód, egyszer akartam át, mint input azok nullák be a számítógép agy, az úgynevezett CPU vagy a központi feldolgozó egység, Volt a program futtatásához. De ez nem volt elég egyszerű hétfőn mivel csak dupla kattintással egy kis ikonra. Mi ehelyett kellett nekem tenni annak érdekében, hogy futtatni a programot? Mi volt ez a második parancs? Hallok egy kis perjeleket? Igen, igen? Diák: Dot perjel és a program nevét. DAVID MALAN: Pontosan. Dot perjel és a program nevét. Most mit jelent ez? Hát pont csak egy misztikus út mondván aktuális könyvtárban. Bármit mappában van az szerepelhet mint, képviseli a pont. A slash csak amit láttál A Mac OS és Windows évekig, ez egy elválasztó között a könyvtár vagy mappára, és a többi néhány név. Windows előfordul, hogy menjen visszafelé, a Linux és a Mac OS előfordul, hogy menjen előre. De ez csak az elválasztó, így csak egy érdektelen szintaktikai részleteket. A lédús része természetesen a program nevét, Helló. És ez az, amit teszik teremtett számunkra. Ez a kimeneten a fájl számunkra. De hogyan jutunk el, hogy a pont? Nézzük most kérje a kérdés, hogy mi volt igazán folyik itt, legalábbis tekintettel néhány ilyen szintaxis? Tehát egy mondatban, vagy úgy, hogyan magyarázzuk el az első sorban, hogy ez a zöld szín? Mi volt az első sorban vagy, tekintettel a programot? Igen? Diák: [nem hallható]. DAVID MALAN: Mondd még egyszer? Diák: Beleértve és letöltés múlt függvények [nem hallható]. DAVID MALAN: Jó. Beleértve, nem mondom, letöltését, de mondjuk ideértve a funkciókat, hogy az emberek írt a múltban. És ezeket a funkciókat hajtják végre valahol a gépemen. Valaki azt írta a fájl évvel ezelőtt, és a fájl valahol belül, a CS50 készülék, vagy a merevlemezre általában. És ez a sor lényegében azt mondja, keresd a fájl, standard I / O pont h, és másolja a tartalmát itt, a tetején a fájl így, hogy nem kell igen, hogy kézzel magam. És azok között a juiciest darabok belseje hogy a fájl amit szerintük mi a funkciója? Mi funkció nem mondunk nyilvánították vagy említett szokásos I / O pont h a legvalószínűbb? Printf, ugye? Nem írni printf on Hétfő, csak létezett. Csakúgy, mint Alana most jött a színpadra, és ő csak létezett, és tudta, hogyan kell felhívni valami a képernyőn, így nem printf létezik sok éven át. És ez az, hogy hogyan fér hozzá. Most, ha pedig itt, fő volt, hasonló van azt mondta, hogy a puzzle-darabot hívott, amikor a zöld zászló csattant a világon a Scratch. Ez csak egyfajta, a alapértelmezett nevet, hogy az emberek határozott lenne a alapértelmezett belépési pont a programot. A darab a programkód hogy lesz végre először. Közben ezek a kapcsos zárójelek olyan, mint az ívelt alak A sok a sárga karcolás darab. Ezek a fajta felölelik az egész csomó utasítások együtt. Tehát ez csak egyfajta köti össze néhány kapcsolódó funkciók. printf természetesen egy olyan funkció, amely kinyomtatja a képernyőn, ahogy meg is tettük. Mi ezekről a zárójel? Hogyan define-- Akkor is, ha soha programozott korábban, de csak alapul most egyre remélhetőleg intuíció, milyen a zárójelben tesz minket? Vagy mit is környező? Igen? Diák: Azt mondják, mi fogsz nyomtatni printf. DAVID MALAN: Igen, azt mondják, amit fogsz nyomtatni printf. Vagy általánosabban, ezek körül a bemenetek a funkciót. Így szinte gondol azok zárójelek mint például a fém clip ezen a vágólapra. Ez az, ami tartja, ez az, ami fogják használni, hogy érvekkel a funkciót, amely Ebben az esetben az úgynevezett printf. Tehát általában szinte minden alkalommal hívjuk a függvény, fogunk látni egy pár zárójel. Lehet, hogy valami benne, mint most, talán semmi benne. De ez az, ahol akkor tegye A bemenetek vagy úgynevezett érvek a funkció. Itt van egy ilyen érvelés. Már kiemelt mindent között az idézőjelek, mert kiderül, ezen a nyelven úgynevezett C, ha azt szeretné, hogy képviselje a string-- hogy egy szó vagy egy kifejezés vagy akár egy paragraph-- kell körülvevő dupla idézőjelek. Nem egyszeres idézőjelek, idézőjelek. És pontosan ez az, amit én csináltam itt. Közben van egy funky szimbólum a vége felé van. A backslash n. Mit is azt mondjuk, hogy képviselt? Igen? Diák: Egy új vonal. DAVID MALAN: Új vonal. Jobb, ha nem általában az Enter leütése amikor azt szeretné, hogy a program hogy kiköp egy új sort. Inkább mondd azt kifejezetten ezzel kétségkívül misztikus darab A szintaxis backslash n, hogy szeretne egy új sort, hogy menjen oda. Végül a pontosvessző. Nem igazán beszélni túl sokat erről, és messze ez lesz a csapás bizonyos a létezés az első probléma be, ha csak nem vette észre, elfelejtetted valamit hülye mint a pontosvessző. És általában megvalósítják azt nem lesz kijavítani ezt a problémát. De mit keres ez nekünk, mit mondana? Diák: [nem hallható]. DAVID MALAN: Tessék? Diák: [nem hallható]. DAVID MALAN: Befejező nyilatkozatot. Ez a fajta, mint az időszak a végén egy angol mondat, mivel az ezen a nyelven C ez véget egy nyilatkozatot. Az oktatás programozás kód, amit csak akar mondani, Végeztem ezzel. Most veszi észre, hogy ez az egyetlen itt. Szóval nem akarod, hogy a a szokás üzembe pontosvessző után minden zárt zárójel. Például ott sem mellett semmisnek, és mi jön vissza a jövőben milyen void eszközök. De ebben az esetben a printf egy funkció, vagy a nyilatkozatot használnak, és így azt akarjuk, hogy az végállomás a legvégén is. És én szándékosan szedés a C. és őszintén sok nyelvek, mint a C, C ++, Java, JavaScript, és tetszőleges számú más nyelveken is sok ilyen egyfajta szintaktikai részleteket. Ez minden bizonnyal, ha új programozás valóban utazás téged. És akkor, jegyezd meg szóval Néhányan közületek ezt az élményt a munkaidő vagy késő éjjel dolgozik néhány p-set, ahol az átkozott programot csak nem fordul le, nem fut, akkor fogalmam sincs, mi a baj, úgy tűnik, teljesen Logikailag helyes, az Ön számára. És ez azért van, mert elfelejtettem valami hasonló ütő pontosvessző végén néhány sor. De ezek a dolgok, te majd azonnal tanulni látni. És valóban, ezek azok a dolgok hogy a CA és a TF azon van már egyfajta képzett, hogy sokkal gyorsabban, mint te. És ez még csak azt, ahogy belevetik magukat probléma készlet 1, különösen, nem kap csalódott ez a cucc. Ha valami hozzászokik a világ, akkor kezdjük látni a dolgokat, hogy lehet, hogy nem első pillantásra az első héten. Tehát forráskód valami ilyesmi. Azt akarjuk, hogy adja át a az úgynevezett fordító. És hogy a fordító a azt mondtuk szolgáltatja a kimeneti úgynevezett tárgykód, a úgynevezett nullák és egyesek. De ott, mit ad nekünk? Hát ez ad nekünk ezeket a mintákat. És újra a számítógépet, az Intel belül, megérti ezeket a mintákat A nullák és egyesek. És néha a minta jelent tényleges decimális szám ahogy azt a múlt héten, néha ez jelenti a betű mint azt a múlt héten, néha képvisel utasítás, mint nyomtatás valamit a képernyőn. Tehát printf a instance-- hanem inkább, hadd visszatekerés. Már vesz biztosra hogy ezek a nullák és egyesek vannak által ezt a parancsot, hogy. De hogy az, nem a fordító. , Hogy ez nem az a dolog, a középső ez termeli a nullák és egyesek. Inkább, hogy csak egy nagyon kényelmesen nevű programot, amelynek a célja az életben lényegében, hogy kitaláljuk, hogyan kell összeállítani a programot. És használjuk azt az e első hetekben, mert csak ment meg minket a sok bajt. De mi teszi igazán Ennek amikor fordítod Helló, , ahogy azt mondta a múlt idő, ez keresi a merevlemezen vagy az aktuális mappában, a nevű fájlt, amit, úgy tűnik? Hello.c, ugye? Ez csak ilyen egyezmény. Ez önkényes, de hogy ez a dolgok rendje. , Hogy, ha csak adja meg a nevét Egy program, amely még nem létezik, ez meg fog keresni a forráskód a fájl alapértelmezés szerint azt hello.c. És ha nem találja, remek. Meg fog átalakítani, hogy a forrás kódot tárgykód az Ön számára. De minden alkalommal, amikor már megüt Enter futtatása után, hogy helló, Emlékszel látta utoljára a meglehetősen hosszú és rejtélyes sorozat A többi fehér betűkkel és karakterek a képernyőn? Hát ez volt a parancs, a tényleges fordítóprogram, futó. Így a tényleges fordító fogjuk használni a legtöbb a félévben úgynevezett csenget. Néhányan talán használt Visual Studio előtt, vagy GCC, vagy számos más fordítókat. Fogjuk használni csenget. És csengés lehetővé teszi számunkra, hogy valóban megtérít hogy forráskód tiltakozni kódot. Mit jelent ez valójában jelent a gyakorlatban? Hát hadd menjen be egy Saját mappák utoljára. Belül a CS50 készülék. És hadd menjen előre, és hozza létre ezt a ugyanazt a fájlt, tartalmazzák a standard I / O pont h. Int main semmis. És mi jön vissza a jövőben milyen int jelent és milyen semmis eszközök. De most tegyük hello world backslash n, ugyanúgy, mint mi a táblán. Hadd menteni a fájlt nevű hello.c. És most, ha akarom lefordítani ezt Én could-- hadd zoom in-- futás hogy helló be. És ez megint volt hogy nagyon rejtélyes sor. De most legalább egy szó valószínűleg kiugrik rád. Csenget, hogy sor láttunk korábban. Most van egy csomó más dolog őszintén hogy mi lesz hullám a kezét a mai. De van egy pár részhalmaza, néhány karakterek itt hogy érdekesek. De én megyek előre, és csinálni. Megyek első futás Helló, csak bizonyítani hogy ez működik, mert hétfő volt. De most megyek, hogy törölje a programot. És ugyanúgy, mint volt ezeket rövid neveket utoljára, A parancs eltávolítása valami rm, távolítsa adja. Fogsz egy kis meglehetősen rejtélyes kérdés. Nehéz elhinni, hogy tudod, hogy még ez a kérdés nehéz megérteni. De vegye szabályos fájl helló csak eszközök akarsz törölni helló. És lehet menni előre, és Y a igen, az Enter, és most elment. Mit jelent ez most, ha törölhetem a képernyőn, az, hogy ahelyett, hogy csinál, hogy hello-- Ön Tudod mit, kapok jó ebben. Megyek futni a fordító magam. Nem kell egy kis program kitalálni, hogy mi a fájl neve. Írtam hello.c, én tudja, mi a neve, Én egyértelműen képes gépelés. Szóval megyek előre és nem csenget hello.c Enter. Úgy tűnik, működik. És nincs további kimenet, mert csenget a fordító. Ez az, ami átalakítására forráskód nullák és egyesek. Tehát, ha én most nem pont perjel Helló Enter, hm. Új hibaüzenet ma. Így a bash csak a neve az villogó prompt hogy mi használ. Ez egy durva leegyszerűsítés, de most csak ez van, ez a villogó prompt. És ezért ez kiabál velünk. Nincs ilyen fájl vagy könyvtár egy kicsit egyszerűbb. De biztosan csináltam hogy tárgykód. De a fogás az, hogy ha írja be a parancsot felsorolni a tartalmát könyvtár, amely a mi? ls a lista. Van egy csomó dolog van itt, amelyek közül néhány jött a készülék, mint a Desktop mappa letöltések mappa, Dropbox mappában, és minden a cucc. De mi az érdekes az hello.c, ami Létrehoztam egy perce a gedit. És mi a legfurcsább keresett név itt, talán, hogy mi nem lásd az utolsó idő egyáltalán? a.out, ugye? Tehát vissza a nap, akkor csak úgy döntött, hogy ha egy programot fordítasz az első alkalommal, és nem adja meg a nevét Egy fájl, nevezzük a. És a.out csak azt jelenti, hogy ez a termelés a fordító. Szóval ez a szörnyű név egy programot. De a logika, az pont perjel a aktuális könyvtárban, perjel a.out, kell, hogy jelentsen van valójában my hello world programot. Most egy kis bemelegítés testmozgás is. Ha azt akarom, átnevezni ezt fájl, kiderül, hogy Fájl áthelyezése egy nevet a másik. Tehát mv a.out, aztán Nevezhetjük Helló Enter. Tehát ez egy Linux parancs. DOS volt ez évekkel ezelőtt, Windows egy terminál ablak valamilyen úgy néz ki, mint ez, a Linux és a Mac számítógépek ezt villogó prompt. Annak ellenére, hogy a legtöbben valószínűleg ritkán, ha egyáltalán, használja azt. De amit én csináltam fut a programot, a kinek neve mv, és én már feltéve, hogy a két érv, hogy úgy mondjam. Két bemenet. a.out az eredeti nevet. Helló az új nevet. Tehát, ha én most nem pont perjel Helló, Enter, ami létezik. És ha pont perjel a.out, mit vársz kéne látni? Bash, nincs ilyen fájl vagy könyvtár. Mert én csak átnevezte. Tehát ez tart egy kicsit szokni kell. De a probléma készlet 1 specifikáció valóban tartsa a kezét a néhány ilyen minutae. Mivel ez egy komplett szellemi kikapcsolódás Az sokkal érdekesebb ötletek kéznél, ami valójában létre valamit a kód. De tegyük egy módosítás Most ezt a programot. Emlékezzünk vissza, hogy utoljára csináltam valamit mint ez, printf a nevét. És valóban meg is tettük ezt a nagy képernyőn ott. És akkor én húr s lesz GetString nyitott zárójel, közel zárójel. És zárójel csak gyorsírás jelölés zárójel. Tehát nem getString vállal érveket? Nem bemenet nincs, de szüksége van a zárójel, mert ez az, ami elhatárolja a hívó függvény. Szóval megyek előre, és próbálja meg fut a fordító ezt a programot most. Csengés hello.c, mert én nem változtatta meg a nevét egyelőre. És van egy csomó hibát. Nézzük kicsinyítés itt. Ha felfelé újra, mint mondtam múltkor, az első, ugyanaz a hiba hogy kaptam utoljára. On line 6 hello.c volt egy be nem jelentett azonosító karakterlánc, nem értem szabvány? Én nem. Mert amit hiba folytán tettem ebben programot, ha előhívni utoljára? Igen, szükségünk van a úgynevezett képzés kerekek hogy mi csak használ egy pár hétig. De azt kell, hogy meghatározza, hogy is, valahol a készülék belsejét, egy fájl, amit írtam néhány évvel ezelőtt. Amelyen belül a függvények mint látszólag getString. Tehát most, ha megyek vissza ide, nagyítás, és futtassa újra csenget hello.c. A fenébe, egy másik hiba. De még nem láttam ezt korábban. Ez az ember egy kicsit ezoterikus kitalálni. De ez szándékosan a képernyőn, mert azt akarta elmondani ezt a történetet. Amikor lefordítod hello.c, mint A kép előtti javasolta, te csak konvertáló hogy forráskód nullák és egyesek. Most CS50 személyzet néhány évvel ezelőtt írt CS50.h, és a megfelelő fájlt, CS50.c. És mi, a néhány évvel ezelőtt, össze ezeket a fájlokat egy fájlba, ami történik hogy hívják CS50.o. Vagy lehet átnevezni a néhány különböző dolog. De ez egy egyszerű módja A rágondolok. Tehát össze CS50 a könyvtár a nullák és egyesek. De sehol nem adtam meg hogy szeretnék kombinálni a nullák és azok az én Helló világ programot a nullák és egyesek hogy CS50 személyzet létrehozott egy néhány évvel ezelőtt egyetlen teljes program. Minden, amit megadott írás csengés hello.c is össze hello.c. Én nem mondtam, hogy csenget kapcsolat a nullák és egyesek hogy CS50 személyzet létrehozott Önnek néhány évvel ezelőtt. Szóval ez egy könnyű megoldás, kötőjel l linkre, CS50. És majd megint látni ezt nemsokára újra és újra. De észre most nem volt panasz. Tehát most ha futok pont perjel Helló, most már működik. Bár ez egy kicsit félrevezető mert én csak újra, milyen fájlt? a.out. Szóval hadd hátra egy pillanatra. A program már csak össze az a három sornyi kódot. Amikor futott hello world, Helló egy pillanatra ezelőtt, nem láttam a nevét. És ez azért van, mert én futottam a régi változat a program. De ha valóban futtatni pont perjel a.out Adja meg, adja meg a nevét, Rob, szia, világ. Hm. Ez egyfajta hiba. Valószínűleg akartam mondani Rob, nem igaz? Szóval mi a fix itt kódot. Diák: [nem hallható]. DAVID MALAN: Pontosan. Szóval csak meg kell tenni, hogy a végső csípés úgy, hogy én vagyok elhaladó helyőrző, mint egy töltse ki az üres, mint tettük az imént. De százalék s most hogy töltse ki az üres. Így végül nézzük mutatják egy utolsó részletesen, hogy nincs varázslat. Én megyek előre és megszabadulni hellow. Én megyek előre és megszabadulni a.out. Tehát most nincs programok csak a forráskódot. És fogok futni a kissé hosszabb parancs, csengés kötőjel o szia hello.c kötőjel LCS50. Most ez kezd egyfajta megy az egyik fülét, és ki a másik talán. De csak ugratni eltekintve, hogy ez mit csinál. Csattanással a fordító, kötőjel LCS50 szándékosan a legvégén mit csinál egy mondatban? Linkek a CS50 könyvtár. Megragadja a nullák és is, hogy a stáb és crams őket a saját programja. Tehát az utolsó kérdés kéznél van, mi kötőjel o helló valószínűleg csinál, akkor is, ha soha nem látta ezt a szintaxis korábban? Kimenetre egy programot, ami nem elemzi az alapértelmezett a.out. Inkább ez nevű helló. Így most nincs a.out. Nincs ilyen fájl vagy könyvtár mert én kifejezetten mondtam hívja a program Helló, hogy Én most írja be a nevet, mint az és azt viselkedik. Most őszintén, fiú, hogy érdektelen, hogy a hogy emlékezzen az összes, hogy kis minutia, ugye? Szóval, menjünk előre, és megszabadulni Helló ismét. És nézzünk most vissza a világ ami elég annyit elmondani, hogy helló. De ez a varázslat, hogy hogy csinál az Ön számára, ez az unalom, hogy csinál neked. És mivel a programok és a problémák kap bonyolultabb, hogy valóban a barátod. Mert nem túl hosszú múlva megyünk hogy írt programok nem egy fájlt, de több kép, , és automatizálja a folyamatot összeállítása az összes, hogy nekünk együtt. Tehát most nyomtatni. printf belül ezt a fájlt, szabvány I / O pont h, hogy láttunk korábban, de van még printf ennél. Van backslash n, de van még egy csomó más escape szekvenciák. És escape szekvencia csak egy divatos módja mondván valami hogy kezdődik a backslash, nem egy perjel, a backslash, és nem valami különleges dolog. És mi nem lakik a legtöbb ilyen, de miért van backslash idézőjel, Mit gondolsz? Miért van ez a furcsa sorozat karakterek backslash idézőjel, Ezért lehet, hogy hasznos lehet? Diák: [nem hallható]. DAVID MALAN: Pontosan, igaz? Gondolj vissza a hello world programot hogy láttunk jó néhány alkalommal már, Minden alkalommal, amikor láttam, hogy a hello world program keretében már volt dupla idézőjelek belül amelynek Helló vessző világ backslash n. De azt gondolja, Mi van, ha tényleg akarta, hogy nyomtassa ki a idézőjel? Az első ösztöne lehet, én nem tudom, miért érdemes csi itt, mi lehet egy kicsit passzív agresszív, hello friend. Azt érdemes ilyet. De miért van ez most problematikus? Figyelmen kívül hagyva a göndör idézőjelek félre, hogy vitaindító tett nekünk automatikusan. Miért van ez problematikus? Pontosan. Mert van, mint a 4 idézőjel. Nos az első valószínűleg megy a második, és talán a negyedik megy a harmadik, vagy, mármint nem is vagyok biztos, sem a számítógép lesz. Számítógépek újra, fordítók újra, meglehetősen buta. Majd csak az, amit te mondd meg nekik, hogy nem. És ha nem egyértelmű, hogy valószínűleg meg is dobja a hibát. Ha nem egyértelmű, hogy hogyan kell hogy a mogyoróvajat és kocsonya szendvics furcsa dolgok érkeznek. Ez ugyanaz a gondolat. Most elég annyit mondani, ott van más escape szekvenciák, de majd jön, hogy ezeket nemsokára. Lényegében ezek az escape szekvenciákat jelentenek valamit hogy lehet, hogy nem képes túl könnyen, a billentyűzet, nélkül zavaró a számítógépet. Most Közben már helyőrzők a printf. Százalék d, ami szintén lehet írni szinte minden esetben százalékos I, helyőrzője milyen típusú adatokat? Milyen típusú érték? A decimális szám. Tehát tulajdonképpen kezdjük a százalék i, mert egy kicsit egyszerűbb, mint egy egész szám. Százalék i. Egy egész szám, amely történetesen tizedes. Százalék s már azt mondta, hogy helyőrző helyett egy húr. Ami csak egy szó, egy mondat, egy bekezdés, egy esszé, bármi. Ez egy sorozat karaktereiből hosszasan. És majd meglátjuk nemsokára Néhány ilyen mások. De százalék c egyetlen karakter. Százalék f egy lebegőpontos szám, mint egy valós szám, amely a tizedes pont benne, ami Természetesen nem egész szám. És van egy egész csomó más is. Eközben C, és a sok nyelven, vannak különböző adattípusok. Különböző típusú üveg tálak ha úgy tetszik. A tál használtam utoljára volt a ping-pong labda, de azt is tárolni különböző értékeket, mint a karakter és vonósok és egész egy tartályban, mint a változó, és C-nek ezeket. Char az adatok típusa, a változó típusa, amelyben tárolhat egy karaktert. Az úsztatott egy olyan típusú változó amelyben tárolhatja a valós szám. Int természetesen egy int. És inkább nevetségesen elemzi a hosszú, hosszú Itt lehet tárolni lényegében egy nagyon hosszú szám, és még több számjegy, akkor a tipikus int talán tárolni. De majd jön vissza, hogy nemsokára. A CS50 pont h közben a másik header file hogy láttunk pár szer használat, ott két további adattípusok nem léteznek C általában. Az egyik húr, és majd meglátjuk néhány héttel milyen húrok igazán van a motorháztető alatt. És az egyik bool. És egy bool változó, amely csak akkor tud bizonyos értékeket. És csak az elmúlt egy héten magyarázata Scratch, és újabban a C, mit kitalálni a két lehetséges értékei néhány konténer, amely a típus bool? Igen és nem. Egy és nulla. Igaz vagy hamis. És valóban ez az utolsó, hogy inkább hogy a hagyományos egy programozási nyelv, mond valamit mint igaz vagy hamis. Közben a CS50 könyvtár jön egy csomó funkció hogy a személyzet írt az Ön számára, mellett csak kapok egy húr. Írtunk előre funkciók kap egy egész szám a felhasználó, kap egy karaktert, kap egy úszó, amely csak egy szám a tizedes pont. Kap egy hosszú, hosszú, nagyon nagy értéket a felhasználó számára. Tehát még csak láttam ezt a cselekvés formájában getString. De át ezeket a funkciókat hamarosan képes írni programok kap a felhasználóhoz. Közben, hogy ezt programot, és úgy hogyan lehet most kezd hozzá hogy azt az új konstrukciókkal. A gyors forgószél túra és akkor majd nézni néhány írásban néhány programokat manuálisan magunkat. Ezentúl, ha azt akarjuk, hogy végre egy állapot, ez nem fog úgy kinézni, mint egy szép kis csinos puzzle-darabot. Úgy fog kinézni egy kicsit misztikus. De ez a kanonikus szerkezete olyan állapot, C. A szó, ha két zárójelben, amelyen belül lesz valami A logikai kifejezés. Most a perjel perjel a közepén, ez abban a pillanatban valami, mint pszeudokódja kód helyőrző. De még megfelelően, minden kódsor C kezdődő slash slash egy megjegyzés. Olyan, mint egy ragadós tudomásul, hogy talán fel egy esszét, nyomtatott papíron. Ez egy megjegyzés magadnak. Ez nem funkcionális hatással vannak a program. Ez egyfajta emlékeztető, hogy a saját dokumentációt, hogy mi folyik itt. Így ezt ebben a pillanatban egyfajta helykitöltő bármilyen bent azok kapcsos zárójelek végül fog csinálni valamit. Közben van két villa az út, egy ha más konstrukció, mint ez. Akkor ha, elseif, más. Most érdemes megjegyezni, különösen ha már Googling körül online források közül kíváncsiság, vagy ha felveszi az egyik tanfolyam Ajánlott könyvek C, látni fogja, hogy az emberek sok A különböző kedvezmények hogyan kifejezni magukat a kódot. Vannak, akik szeretnék tenni a kapcsos zárójelek ahogy én csináltam itt. Vannak, akik szeretnék tenni a göndör nadrágtartó például itt. Vannak, akik szeretnék tenni a másnak itt és akkor ez itt. Van számos módon, hogy kódot írni, és egyikük sem igaza van önmagában. Bár van egy pár hogy elég rossz. De vannak Nem-- ha ez végül egy nagyon vallásos vitát. Sőt, az egyik leginkább bosszantó dolog számítástechnika az, hogy nagyképű számítógépes szakemberek is. És meg fogja találni az idő, hogy még fejleszteni a személyes preferenciák , hogy milyen a kódot kell kinéznie. Nem csak viselkedik, nem csak létrehozni a kimeneti, de hogyan kell kinéznie esztétikailag. Szóval, mit fogunk csinálni a vezető végig az út felé, mert most legalább, szabvány CS50 stílus, hogy legalább tartja a dolgokat, egységes és könnyen olvasható. De még azokon a megkülönböztetések nemsokára. A logikai kifejezés a C, ha azt akartam mondani, ha ez a feltétel igaz és ez a másik feltétel Igaz, akkor nem írok a szót és, úgy, mint az angol. Akkor helyette a jel jel, okokból jövünk vissza. Ha azt akarom mondani, vagy használjon két függőleges rúd, amely egy amerikai billentyűzet általában felett az Enter kulcs mellett a fordított perjel. És ez csak azt jelenti, ha ez a feltétel vagy ez a másik feltétel igaz erre. Közben itt van ez a őrült dolog, ami akkor van alkalom használni, ha egyszer egy kicsit. De ez csak egy alternatíva módon kifejezni magát. Ez az, most, most kikötik, ez csak másik funky módon kifejezni ha elseif, elseif, elseif, elseif. Ez csak formázva szempontjából esetek, ahol a szó szoros értelmében számba az értékeket, amelyeket érdemes ellenőrizni. Közben hurkok. Láttunk összehasonlítása Scratch egy hurok. És fogok integetni a kezem mi minden ezeket a dolgokat jelent. Azonban jegyeznünk, hogy a hurok nagyon gyakran kezdődik a kulcsszót. Vagy elindul a kulcsszó közben. Vagy elindul a kulcsszó igen, és a végén a kulcsszó közben. De mi vagyunk a látni olyan dolgokat, mint ez. Itt van, általában a C-ben, hogyan lehet hogy egy változót, és adja meg egy értéket. A C-ben ez nem elegendő, mint Scratch, csak mondjuk adj változó nevű valami. El kell mondanom a C, és mondd el a fordító, pontosabban, milyen érték ugye szeretnénk, hogy az üvegtál. Ez egy egész szám? Ha igen, akkor meg kell szó szerint azt mondják, int, majd a változó nevét, akkor a pontosvessző. Ha ehelyett akart húr, és az úgynevezett s ez, mint én kódomat itt ma, azt mondod, hogy az s karakterlánc pontosvessző. Ha szeretné, hogy ez az érték akkor majd az egyenlőségjel, más néven a értékadó operátor. , És vegyük észre, hogy minden Az ezeket a sorokat a kód van a pontosvessző a végén is. De őszintén szólva ez csak úgy néz ki, egy kicsit csúnya. Miért nem tudok mondani, hogy a számítógép, hogy nekem egy változó, és inicializálni nullára. Azaz, adjon nekem egy üres üveg tál. Amíg lehet. És így az egyik ítélet hívások akkor van, hogy stilárisan idővel van, írsz a kódot, mint ez, vagy Ön milyen feltakarítani és lenyűgözni emberek írásban két vonal, mint csak egy. És ez lenne tekinthető általában sokkal elegánsabb megoldást az írás a kódot stilisztikailag. Funkciók vagyunk természetesen láttam. Fognak, hogy ezt a formátumot. A függvény nevét, néhány zárójelben, és akkor talán néhány cucc benne. Vagy lehet, hogy látni felhasználása több funkciót oldalon mellett, mint valami, mint ez. Most, mint egy érintő, nem ez a vicc most van értelme? [Nevetés] Ez nem jelenti azt, hogy ez vicces, de még talán, hogy egy kicsit több értelme van. Tehát most menjünk bele a CS50 készülék egy pillanatra. És hadd nyit egy teaser itt. És valóban, az egyik oka bevezetésére Katalógus és villog a kép Az iPhone egy kicsit ezelőtt az volt, hogy valójában lekötni együtt a a tény, hogy néhány évvel ezelőtt, 2007-ben, Ez a kódrészletet volt megjelent, melyet az egyik legelső végrehajtás A szoftver hogy nem az úgynevezett jailbreak. Azok számára ismeretlen, jailbreak olyasmi, mint egy telefon vagy egy iPhone lényegében azt jelenti rájönni , hogyan kell csinálni a dolgokat vele, hogy a vállalat aki nem állt szándékában. Mint szeretné telepíteni bizonyos szoftver, amely nem az App Store, jailbreak a telefont, amely te ilyen dolgokat, és így tovább. De mi volt a móka 2007-- és ott volt több tucat különböző változatai ezek a dolgok azóta, mindenféle languages-- hogy ez a program itt, az úgynevezett iUnlock, valójában a C nyelven írt és így húzta fel a forráskódot e, csak azért, hogy a fajta megmutatni, hogy a hasonlóságokat a konstrukciók mi már beszélünk eddig. Most ez így több komplexitás itt mint láttuk már az osztályban. Hadd lépjünk fel egy kicsit itt. De észre these-- is vesszük észre néhány dolgok-- de észre ezeket a sorokat itt, beleértve a standard I / O pont h. És all-- 24. sor, kérlek észre standard I / O pont h és egy csomó más fájlok látszólag mások írtak. És ha nézd végig Ennek a kis önkényesen, észre nem tudom, hogyan kell írni Mindez magam szükségképpen még, de van, ha. Tehát nyilvánvalóan ez egy ág. És ha én lépjünk le egy kicsit tovább van egy másik, ha. Ha felfelé, azt hiszem, körülbelül vonal 100 Láttam a. Szóval nem vagyok egészen biztos hogyan működik még, de ez egy a ciklus, ami fog hadd léptetjük bizonyos számú alkalommal. És ha görgetni minden a módja annak, hogy az alsó Úgy látom, hogy van egy működik itt az úgynevezett fő, és további hiteleket az olvasás öröm. Tehát ez csak mondanak: és mi tesz az online között természetesen forrás kód today--, hogy még néhány ilyen eszköz, amit magától értetődőnek, a végén a nap, hogy még mindig ezekkel az alapvető konstrukciók, hogy már kerül bevezetésre a már eddig. Ennyi elég, hogy az egyik. Rendben, most nézzük valóban építeni valamit. Menjünk túl valami hasonló hello.c, és nyissa meg ezt, írjunk a program itt. Én megyek előre, és levelet program neve adder.c, amelynek célja az életben lesz mint az első szuper egyszerű számológép , hogy csak ad egy pár számot. Nem azért, mert ez egy nehéz probléma, hanem azért, mert lehetővé teszi számomra, hogy most döntetlen együtt egy pár dolgot. Szóval megyek előre, és egy olyan standard I / O pont h CS50 pont h. Fogom mondani, int main semmis. És a jövőben újra akkor jön vissza, hogy azt be ebben az összefüggésben, és semmis eszközökkel. És most fogok mondani valamit mint printf, adjon nekem egy egész szám. És most a második sorban, hogyan tudom kifejezni magam, mint hogy szeretnék, hogy egy változót hogy fog tárolni egy int? Szó szerint mit írjon, ha azt akarom, hogy hozzon létre egy változó, egy int mit mondana? int egy egyenlő getint. Persze, hogy működik. És csak a következetesség a kód azt is megtudhatod lásd az interneten, hadd változás ezt az x, csak azért, mert x gyakori változó név kezelhető, legalábbis algebra. Most hadd menjen előre, és nem printf újra. Adj még egy egész szám. És most megyek, hogy milyen A tanulni ezt a mintát, Fogom mondani, int y kerül GetInt. És mi már nem használják GetInt előtt, de csak mint getString megy, és kap egy string, mint Javier volt a közönség, hasonlóképpen nem GetInt kezd villogni a prompt. És hatékonyan várja a felhasználót hogy ez egy egész, írja be , és az Enter. Most végül fogom csinálni ez printf az összeg of-- és hadd képzelet now-- százalék i és százalék azt jelen i felkiáltójel backslash n. És mit gondolsz, fogok hozott már, mint a kiegészítő bemenet printf? Nem akarom azt mondani, szó szerint idézni idézőjel bezárva x. Azt akarom, hogy osztály x és akkor, és most menjünk díszes és most csak fel, amit tehetünk, amit akarunk. Mit akar mondani a következő lépés? x plus y. És valóban, hogy működni fog. Ez minimális programozási nyelvek értik az alapvető számtani, és így ez valójában a munka. Szóval, hadd menjen előre, és nem teszik vipera az én fekete-fehér ablak itt, Enter. Cryptic vonal, de nem hiba üzenet, hogy ez jó. Dot perjel vipera, adjon nekem egy egész szám, 1. Adj még egy egész szám, 2.. Az összeg 1 és 2 3. Rendben, egy elég triviális program, de mi is történt? Ez lehetővé tette számomra, hogy egy funkció hívás van, hívja másik funkció van, Két hívások GetInt, a harmadik hívást a printf, , majd használja ezeket helyőrzők. Szóval ez egy kicsit kifinomult, mint a múltkor. De mi van, ha azt akarom, hogy egy kicsit cifrább? Hadd menjek előre, és most ezt. Hadd menjek előre, és hozzon létre egy új nevű fájl körülmények nulla. És én fogom megmenteni egy kis időt osztályok kedvéért és csak be, hogy a kód kiindulópontként. És most csak megy, hogy valami új van a közepén. Így printf Szeretnék egy egész kérem. És ez a kód elérhető A kurzus honlapján, nem kell írja az egészet osztályban, ha inkább nem. int, és most megyek használja, ahelyett, hogy az x és y, Fogom használni, n, ami talán a leggyakoribb név egész számára egy számítógépes program. És most azt akarom, hogy a kis ítélőképességét. Megyek, hogy ha n nagyobb, mint 0, akkor Fogok mondani printf-- Hoppá, printf-- választottad pozitív szám, felkiáltójel backslash n. Zárja be ezt. Else fogom kinyomtatni printf Ön felvette a negatív számot. Most, mielőtt kiabálni rám fussunk ezt a programot. Hadd menjek le ide. És hogyan tudom lefordítani egy programot hívott körülmények kötőjel 0-ra? Tedd körülmények kötőjel 0. Milyen hülye név, de-- a fenébe. OK, jó tanítás pillanat. Miért, hogy a szünet? Mi nem véletlenül hívják ezt a fájlt? Ön milyen következtetni A lap itt. Szóval nem rossz, hogy én tette ezt, mert ez a lesz talán, hogy néhányan közületek. Szóval véletlenül nevezték a forráskód állapot 0-ra. De a forráskódot egyezmény abban a nevű fájlt állapot 0 műszerfal C, vagy bármi pont c. Tehát hadd oldja meg. Csakúgy, mint a Microsoft Word tudok felmenni menteni, és nem feltétel 0 pont c. Most csak azért, hogy rendben vagyok menni előre, és távolítsa el állapot 0, ami a régi verzió. És most lássuk megcsináljuk állapot 0, Enter. OK, úgy tűnik, jó. Állapot 0, Enter. Szeretnék egy egész kérem, 50, Ön felvette a pozitív szám. Most, hogy a negatív 50? Te választottad negatív szám. És most, 0-ra. Biztos vagyok benne 0 nem negatív. Tehát ez egyfajta logikai hiba. Hogyan lehet ezt orvosolni? Mást, ha n kisebb, mint 0, ezt, különben mi lehet a három út ág itt, printf választottad 0. Tehát most, ha én futtassa újra ezt program fordítása után azt ismét make, és most futtassa újra állapot 0, mit fogok látni itt 0 ad nekem, hogy a teljesítmény. Szóval, ha megyünk ezzel? Hát ez nagyon könnyű szem elől téveszteni Az erdőben a fák. És így arra engednek következtetni, ezzel 2 és 1/2 perces videó hogy végül egy kicsit ad a Google, de tényleg tanúskodik, hogy amit még ezekkel az alapvető épület blokkok tudjuk végül nem egyszer van egy kis programozás hozzáértés a mi övek. [Zenelejátszás] SAROO BRIERLEY (hangja): Ez volt 26 évvel ezelőtt, és én épp fordulni 5. Megvan a vasútállomás és felszálltunk a vonatra együtt. A bátyám csak azt mondta, én itt, és jövök vissza. És azt gondoltam, jól tudod, Én lehet, hogy csak aludni és ő majd csak ébressz fel. És amikor felébredtem a következő nap, az egész kocsi üres volt egy elszabadult vonat, a szellem vonat visz nem tudom hol. Én fogadták el, hogy Ausztrália, egy ausztrál család. És anyu díszítette a szoba, térkép India, amit mellé tenni az ágyam mellett. Ébredtem minden reggel látta ezt a térképet, és így ez a fajta tartotta az élményeit. Az emberek azt mondják, te megpróbálja megtalálni a tűt a szénakazalban, Saroo soha nem találja meg. Én már villant a helyen, hogy én jártam, a villog a családom arcok. Ott volt a kép az én anyám, ült le a lábát keresztbe, csak nézni sírni. Az élet annyira nehéz. Ez volt a kincs. És néztem Google Map és rájött, hogy ez a Google Earth is. Egy olyan világban, ahol meg lehet nagyítani, Elkezdtem, hogy az összes ilyen gondolatok és milyen lehetőségek hogy ez nem nekem. Azt mondtam magamnak, tudod, neked van Van minden fényképes emlékeit és nevezetessége honnan jöttél, és tudod, mi a város úgy néz ki, mint a. Ez lehet egy olyan alkalmazást, használhatja, hogy megtalálja az utat vissza. Azt gondoltam, teszek egy dot Calcutta vasútállomás, és a sugár vonal, tudod, hogy te kell keres körül ezen a területen. Valahogy rátaláltam ezek a síneken. És elkezdtem ezt követő, és Azért jöttem, hogy a vasútállomás, amely tükrözi ugyanazt a képet ez volt az én emlékeim. Minden kiegyenlített. Csak arra gondoltam, igen, én tudja, hová megyek. Én csak hagyom, hogy a térkép, hogy van a fejemben vezess és vigyél vissza a szülővárosába. Azért jöttem, hogy a küszöbén a ház, hogy én születtem. , És megkerülte a 15 méterre a sarkon, volt három hölgy állt kívül, egymás mellett. És a középső előrelépett, és Csak arra gondoltam, ez a te anyád. Jött előre, ő megölelt, és ott voltunk körülbelül öt percig. Megragadta a kezem, és elvitt a ház és kapott a telefon, ahol Megszólalt a húgom és a bátyám azt mondani, hogy, tudod, a testvére már csak minden hirtelen megjelent, mint egy szellem. És akkor a család újra egyesül. Minden minden jó, Segítettem anyámnak ki, hogy nem kell rabszolga el. Tud élni a többi élete békében. Ez egy tűt a szénakazalban, de a tű volt ott. Minden ott van. Minden, amit a világban van a csap a gombra. De muszáj, hogy megvan a szándék és az elhatározását, hogy akarja azt. [Zenelejátszás] DAVID MALAN: Csodálatosan édes ajánlólevél hogy csak, amit lehet most nem a technológiával. Látni fogjuk, hogy a jövő héten.