1 00:00:00,000 --> 00:00:12,410 >> [MUSIC PLAYING] 2 00:00:12,410 --> 00:00:12,830 >> DAVID MALAN: Rendben. 3 00:00:12,830 --> 00:00:13,370 Isten hozott. 4 00:00:13,370 --> 00:00:16,510 Ez CS50, és ez a Hét Egy, folytatás. 5 00:00:16,510 --> 00:00:20,050 Tehát az egyik oka annak, hogy már halad körül technológiák, mint a 6 00:00:20,050 --> 00:00:24,120 Google Glass, hogy jönnek a valami ismert API, a 7 00:00:24,120 --> 00:00:25,980 Application Programming Interface. 8 00:00:25,980 --> 00:00:28,830 És hogy ez mit jelent az, hogy a megfelelő fájlokat, és a megfelelő 9 00:00:28,830 --> 00:00:32,850 dokumentáció, amit valójában írni szoftver még eszközök, mint ezek. 10 00:00:32,850 --> 00:00:36,200 >> És akkor mi van szem előtt felé félév vége, ha a projekt 11 00:00:36,200 --> 00:00:39,310 bevonásával, mondjuk, a Google Glass is fellebbezést, meglátjuk, mit tehetünk 12 00:00:39,310 --> 00:00:42,220 tekintve összejönni fel néhány loaner hardver, valamint a 13 00:00:42,220 --> 00:00:46,500 nyilvánosan hozzáférhető API, így valójában kezdeni szoftver 14 00:00:46,500 --> 00:00:48,630 fut ugyanazon Google Glass. 15 00:00:48,630 --> 00:00:51,710 >> Egy másik eszköz, hogy már játszott és a végén, hogy azt gondoltuk, talán 16 00:00:51,710 --> 00:00:53,910 szórakozás félév vége ez a kis dolog itt. 17 00:00:53,910 --> 00:00:56,860 Úgy hívják Leap Motion, és mit te arról, hogy technikailag egy 18 00:00:56,860 --> 00:01:00,280 reklám az eszköz, de a nem beszél, hogy milyen az adott 19 00:01:00,280 --> 00:01:01,240 készülék képes. 20 00:01:01,240 --> 00:01:05,550 És ez is jön egy API segítségével amely írhat szoftver 21 00:01:05,550 --> 00:01:10,545 irányítani a saját számítógépén olyan módon, nagyon tetszett ez az egy perces filmet itt. 22 00:01:10,545 --> 00:01:12,070 >> [VIDEÓ LEJÁTSZÁS] 23 00:01:12,070 --> 00:02:08,002 24 00:02:08,002 --> 00:02:08,590 >> [END VIDEÓ LEJÁTSZÁS] 25 00:02:08,590 --> 00:02:11,190 >> Tehát most, ez a készülék történik kell végrehajtani, mint egy kis USB 26 00:02:11,190 --> 00:02:14,290 csatlakozó, hogy dugja be a számítógépet, de nem lennék meglepve, 27 00:02:14,290 --> 00:02:17,930 ha nemsokára van ilyen jellegű technológiák a következő tétel a PC-k 28 00:02:17,930 --> 00:02:20,510 és Mac, így valóban, vele kölcsönhatásba 29 00:02:20,510 --> 00:02:21,650 módon, mint ezt. 30 00:02:21,650 --> 00:02:24,250 Sőt, amit én gondoltam ezt is, ez Húztam egy kis bemutató 31 00:02:24,250 --> 00:02:25,860 program, hogy jön ez a szoftver. 32 00:02:25,860 --> 00:02:28,700 Szóval már fel a kis érzékelő előtt az én laptop. 33 00:02:28,700 --> 00:02:32,420 >> És mint látható, már rájön hogy a kezem ott van 34 00:02:32,420 --> 00:02:33,400 csökkentése érdekében. 35 00:02:33,400 --> 00:02:37,900 És mindez az alkalmazás nem csalással kis dolgok, mint ez. 36 00:02:37,900 --> 00:02:41,080 De látható, hogy valóban, Én öt ujj van. 37 00:02:41,080 --> 00:02:44,270 Ha tudnánk, hogy ezt mind a 10, tudod képzelni, hogy egy csinos zongora 38 00:02:44,270 --> 00:02:45,390 alkalmazás vagy hasonlók. 39 00:02:45,390 --> 00:02:47,820 Tehát, ha azt szeretné, hogy jöjjön fel óra után ma, és játszani, hogy mivel 40 00:02:47,820 --> 00:02:49,720 jól, akkor szívesen. 41 00:02:49,720 --> 00:02:52,930 Így még az, hogy felé félév végén. 42 00:02:52,930 --> 00:02:54,420 >> Így néhány adminisztratív bejelentések. 43 00:02:54,420 --> 00:02:58,690 Egy, ezt a pontot a péntek délben cs60.net/section. 44 00:02:58,690 --> 00:03:01,260 Az URL van a pálya honlapján is. 45 00:03:01,260 --> 00:03:04,010 Addig is azonban, supersections fog debütálni a vasárnap. 46 00:03:04,010 --> 00:03:07,800 Supersections egy egyszeri dolog, mert tart nekünk egy kis idő, hogy 47 00:03:07,800 --> 00:03:09,470 ki, aki a honlap mely részében és hol. 48 00:03:09,470 --> 00:03:12,280 >> Tehát a jövő vasárnap, hogy lesz-e egy részben a kevésbé kényelmes, 49 00:03:12,280 --> 00:03:14,040 egy szakasz számára kényelmesebb. 50 00:03:14,040 --> 00:03:16,110 És azok, valahol között várjuk, hogy menjen 51 00:03:16,110 --> 00:03:17,850 az egyik, vagy mindkettő, vagy egyik sem. 52 00:03:17,850 --> 00:03:19,150 Mindkét fogják filmre. 53 00:03:19,150 --> 00:03:22,740 Ők lesznek egy nagyobb előadóterem, mint egy része rendszerint, hogy be 54 00:03:22,740 --> 00:03:26,110 De a cél itt az, hogy felvértezzük Önt némi vigaszt a problémás az egyiket, 55 00:03:26,110 --> 00:03:29,910 a C, a CS50 készüléket, ez a hétvégén, még mielőtt megtudja, a 56 00:03:29,910 --> 00:03:31,050 formális rész feladat. 57 00:03:31,050 --> 00:03:34,700 Tehát akkor felel meg a TF és a kisebb csoport sectionmates mintegy 58 00:03:34,700 --> 00:03:36,350 egy hét múlva. 59 00:03:36,350 --> 00:03:38,200 >> Fogadóóra, eközben már folyik. 60 00:03:38,200 --> 00:03:41,020 Ne kihasználják őket ma este, vagy holnap este, ha szeretne. 61 00:03:41,020 --> 00:03:43,460 Probléma szett 0 miatt pénteken. 62 00:03:43,460 --> 00:03:46,680 Ez egy nappal később, mint a rendszeresen ütemezett csütörtök. 63 00:03:46,680 --> 00:03:50,410 De probléma szett 1, látni fogod hogy tartalmaz néhány bemelegítő 64 00:03:50,410 --> 00:03:52,770 gyakorlatokat, amellyel te magad bővítheti 65 00:03:52,770 --> 00:03:54,660 Csütörtök határidő péntek. 66 00:03:54,660 --> 00:03:58,410 Probléma Set 1, eközben fog debütálni A kurzus honlapján a jövő 67 00:03:58,410 --> 00:04:02,000 Péntek, ha szeretné, hogy göndör fel , mint én egyszer régen késő 68 00:04:02,000 --> 00:04:04,370 Péntek este a szobában. 69 00:04:04,370 --> 00:04:07,660 >> Tehát cs50.net/appliance az a hely, ahol a lehet kapni a CS50 készülék 70 00:04:07,660 --> 00:04:09,040 hogy elkezdtük használni hétfőn. 71 00:04:09,040 --> 00:04:10,140 Fogjuk használni, hogy egy kicsit ma. 72 00:04:10,140 --> 00:04:14,040 De biztos lehetsz benne, hogy a probléma meg 1 specifikáció végigvezetik 73 00:04:14,040 --> 00:04:16,490 pontosan a lépéseket meg kell kap, hogy felállt és működik. 74 00:04:16,490 --> 00:04:22,120 Szóval ne aggódj csinál, hogy mielőtt Pset 1 ha inkább nem. 75 00:04:22,120 --> 00:04:22,660 >> Rendben van. 76 00:04:22,660 --> 00:04:27,180 Így nézett hétfőn forráskód, de az összefüggésben egy új 77 00:04:27,180 --> 00:04:30,895 programozási nyelv, azaz a C és C, ellentétben a Scratch, nem grafikus. 78 00:04:30,895 --> 00:04:32,270 Ez nem puzzle darab. 79 00:04:32,270 --> 00:04:34,450 Ez több, mint a szintaxis angol. 80 00:04:34,450 --> 00:04:37,140 És van egy pár lépésből A valóban írásban és fut a 81 00:04:37,140 --> 00:04:41,650 C-ben programozni, mert amellett forrás kód, mint ez, ha kell valami 82 00:04:41,650 --> 00:04:42,890 úgynevezett fordító. 83 00:04:42,890 --> 00:04:46,682 És a laikus szempontból, milyen nem a fordító tenni értünk? 84 00:04:46,682 --> 00:04:47,650 Igen. 85 00:04:47,650 --> 00:04:51,040 >> DIÁK: Ez átalakítja a kódot hogy írsz 0s és 1s. 86 00:04:51,040 --> 00:04:51,151 >> DAVID MALAN: Jó. 87 00:04:51,151 --> 00:04:53,580 Így alakítja át a kódot, hogy az írunk a 0s és 1s. 88 00:04:53,580 --> 00:04:57,730 Ez átalakítja az úgynevezett forráskódját tárgykód, melyek közül az utóbbi úgy néz ki, 89 00:04:57,730 --> 00:04:59,140 egy kis valamit, mint ez. 90 00:04:59,140 --> 00:05:02,860 És ez a CPU, az agy belsejében a számítógép, hogy mivel a 91 00:05:02,860 --> 00:05:06,280 emberek, akik megalkották a számítógépek, tudja, hogy mik azok sorozatok 92 00:05:06,280 --> 00:05:07,460 A 0s és 1s jelent. 93 00:05:07,460 --> 00:05:08,640 >> Talán ez azt jelenti, nyomtatás. 94 00:05:08,640 --> 00:05:10,265 Talán ez azt jelenti mellett. 95 00:05:10,265 --> 00:05:11,610 Talán ez azt jelenti, kivonás. 96 00:05:11,610 --> 00:05:13,350 Talán ez azt jelenti, megjelenik egy grafikus. 97 00:05:13,350 --> 00:05:16,870 Vannak előre definiált minták bit , hogy a világ úgy döntött, azt jelenti, 98 00:05:16,870 --> 00:05:17,700 bizonyos dolgokat. 99 00:05:17,700 --> 00:05:20,760 De a legtöbb esetben az a tanfolyam, fogunk dolgozni egy magasabb szinten, és 100 00:05:20,760 --> 00:05:24,180 akkor magától értetődőnek, hogy létezik dolgok, mint a fordítók, ami 101 00:05:24,180 --> 00:05:27,670 tegyük forráskód funkció , ahogy szeretnénk. 102 00:05:27,670 --> 00:05:31,660 >> Így a program írtunk először a múlt héten majd elkezdte port, így a 103 00:05:31,660 --> 00:05:33,920 beszél, a C az elmúlt Hétfő, volt ez. 104 00:05:33,920 --> 00:05:35,700 Amikor a zöld zászló kattint, köszönni. 105 00:05:35,700 --> 00:05:37,430 Ez volt, természetesen, írt Scratch. 106 00:05:37,430 --> 00:05:40,710 És azt állította, hogy az azonos C-ben programozni nézett egy kicsit 107 00:05:40,710 --> 00:05:41,520 valami ilyesmi. 108 00:05:41,520 --> 00:05:45,050 >> Szóval, amit én gondoltam, hogy a az első, nézzük kötekedik kívül mit néz, először 109 00:05:45,050 --> 00:05:48,790 pillantásra persze, mint a meglehetősen misztikus szintaxis, de akkor elkezd észre 110 00:05:48,790 --> 00:05:50,160 minták elég gyorsan. 111 00:05:50,160 --> 00:05:53,770 Amit mi is csinál ma nyújt Ön egy mentális modell egyes 112 00:05:53,770 --> 00:05:57,280 kanonikus, néhány standard konstrukciók a programozás során. 113 00:05:57,280 --> 00:06:00,420 És akkor mi lesz valójában a mi kezünkben van piszkos néhány példát is. 114 00:06:00,420 --> 00:06:04,140 >> Tehát azoknak, kényelmesebb, észre, hogy ezen a héten, majd a következő 115 00:06:04,140 --> 00:06:05,940 hét is nagyon jól lehet egy kicsit a felülvizsgálat. 116 00:06:05,940 --> 00:06:08,810 De különösen akkor, ha a hacker kiadás A probléma meg 1 megy ki a 117 00:06:08,810 --> 00:06:12,330 Természetesen honlapján pénteken, azt gondolom, rájössz, hogy még akkor is töltse ki 118 00:06:12,330 --> 00:06:15,390 néhány üres, a jövő héten, vagy két, akkor kezdődik, hogy egyre több 119 00:06:15,390 --> 00:06:18,410 kihívást és a találkozás új és újabb dolgokat. 120 00:06:18,410 --> 00:06:21,310 >> Szóval ugratni a program mellett egy pár sort egy időben. 121 00:06:21,310 --> 00:06:24,140 Legtetején, van mit technikailag úgynevezett 122 00:06:24,140 --> 00:06:25,950 előfeldolgozó direktíva. 123 00:06:25,950 --> 00:06:30,510 Ez csak egy sor kód, amely azt mondja: hogy tartalmazza a tartalmát egy fájlt, 124 00:06:30,510 --> 00:06:35,080 a Standard I / N, szabványos bemenet - vagy, sajnálom, standard I / O, szabványos 125 00:06:35,080 --> 00:06:38,670 bemenet / kimenet,. h, belül a saját programja. 126 00:06:38,670 --> 00:06:41,670 >> Más szóval, ha én írtam ezt program egy egyszerű szövegszerkesztő, mint a 127 00:06:41,670 --> 00:06:45,260 gedit, az egyszerűbb megfelelője valami, mint a Microsoft Word, hogy 128 00:06:45,260 --> 00:06:50,970 oktatás, # include stdio.h, csak fogja mondani a fordító, fogd a 129 00:06:50,970 --> 00:06:56,080 tartalmát, hogy a többi fájl, stdio.h, be őket itt. 130 00:06:56,080 --> 00:06:57,090 >> Nos, miért érdekel? 131 00:06:57,090 --> 00:07:01,850 Mit azt állítjuk, belül van a fájl stdio.h nevezett, amely a tárolt 132 00:07:01,850 --> 00:07:05,490 valahol a merevlemezen, vagy ebben az esetben valahol a CS50 készülék? 133 00:07:05,490 --> 00:07:06,635 Valaki más tette oda nekem. 134 00:07:06,635 --> 00:07:09,910 De mi van benne? 135 00:07:09,910 --> 00:07:13,020 >> Igen, ez egy nyilatkozat függvény nevű printf. 136 00:07:13,020 --> 00:07:17,400 Tehát printf emlékeztet a funkció kijelzők szavak és karakterek és 137 00:07:17,400 --> 00:07:20,160 számokat a képernyőn a licitálás. 138 00:07:20,160 --> 00:07:21,220 De én nem írtam. 139 00:07:21,220 --> 00:07:22,230 CS50 nem írt meg. 140 00:07:22,230 --> 00:07:26,990 Valaki évvel ezelőtt megírta, és lényegében megadta a receptet is 141 00:07:26,990 --> 00:07:29,110 nevű fájlt stdio.h. 142 00:07:29,110 --> 00:07:33,240 Annak érdekében, hogy az első sorban csak ad nekem való a funkciókat, hogy valaki más 143 00:07:33,240 --> 00:07:36,500 írta évvel ezelőtt, többek között amelyek printf. 144 00:07:36,500 --> 00:07:39,450 >> Most, a következő sorban fogok hullám a kezét, legalábbis addig, amíg a jövő héten. 145 00:07:39,450 --> 00:07:43,620 De most, tudom, hogy int main (void) a lényegében megegyezik az e 146 00:07:43,620 --> 00:07:46,310 sárga puzzle darab, amikor zöld zászló kattintott. 147 00:07:46,310 --> 00:07:49,510 A világ, évekkel ezelőtt úgy döntött, hogy ha a írsz egy programot a 148 00:07:49,510 --> 00:07:53,150 nyelv a C, elkezd A program egy sor 149 00:07:53,150 --> 00:07:54,410 úgy néz ki, mint ezt. 150 00:07:54,410 --> 00:07:57,650 Alig egy hét múlva, akkor az, hogy értelme, mi int, mi is érvénytelen. 151 00:07:57,650 --> 00:08:00,840 De most, csak belegondolok mivel ez a sárga puzzle darabot. 152 00:08:00,840 --> 00:08:04,550 >> Most a következő, van egy zárójel után a másik közeli zárójel, 153 00:08:04,550 --> 00:08:05,240 hogy úgy mondjam. 154 00:08:05,240 --> 00:08:07,430 És majd látni ezeket az egész C programok, valamint a 155 00:08:07,430 --> 00:08:08,930 JavaScript és a PHP. 156 00:08:08,930 --> 00:08:11,345 És ezek csak magukba kapcsolódó sornyi kódot. 157 00:08:11,345 --> 00:08:14,600 A nyitott zárójel lényegében azt mondja, itt jön egy kódot. 158 00:08:14,600 --> 00:08:17,590 És a zárt zárójel, ami szögben a másik irányba, csak 159 00:08:17,590 --> 00:08:19,920 azt jelenti, hogy ez az a a megfelelő kódot. 160 00:08:19,920 --> 00:08:22,970 >> Így a szaftos sor az első program, az utolsó, printf, 161 00:08:22,970 --> 00:08:25,080 idézet-idézet vége, hello world. 162 00:08:25,080 --> 00:08:30,670 És felhívtam a dolog között idézetek mi utoljára? 163 00:08:30,670 --> 00:08:31,285 Tehát ez egy string. 164 00:08:31,285 --> 00:08:35,309 És egy sor csak a techie kifejezés egy sorozata 165 00:08:35,309 --> 00:08:37,169 karakterek, a szó, a kifejezés. 166 00:08:37,169 --> 00:08:39,380 Még egy levél is kell idézőjellel. 167 00:08:39,380 --> 00:08:41,840 De ez egy sorozat nulla vagy több karakter. 168 00:08:41,840 --> 00:08:43,650 >> Backslash-n, bár úgy néz ki, egy kicsit furcsa. 169 00:08:43,650 --> 00:08:46,290 De ez csak jelent valamit egyszerű a számítógéphez. 170 00:08:46,290 --> 00:08:48,060 Mi backslash-n? 171 00:08:48,060 --> 00:08:48,570 Új sor. 172 00:08:48,570 --> 00:08:52,490 Szóval ez csak a speciális sorrendjét karakterek a világ úgy döntött, 173 00:08:52,490 --> 00:08:56,880 azt jelenti, hogy egy sortörés ott, mert a fordító valóban kap 174 00:08:56,880 --> 00:09:02,280 zavaros, általában, ha nagyon érthető, de helytelenül, csak 175 00:09:02,280 --> 00:09:04,570 kezd Enter, hogy új vonal a kódban. 176 00:09:04,570 --> 00:09:07,150 Be kell, hogy egy kicsit explicit és backslash-n. 177 00:09:07,150 --> 00:09:10,540 >> És majd meglátjuk, van még néhány más hasonló minták speciális karaktereket. 178 00:09:10,540 --> 00:09:14,340 Például, ha akarta, hogy hagyja el a hintázás egy sarokba esetben 179 00:09:14,340 --> 00:09:18,080 tegyük fel, hogy szerettem volna nyomtatni idézőjelig a képernyőn 180 00:09:18,080 --> 00:09:21,840 bármilyen okból, hogy úgy tűnik, hogy egy kicsit problémás, nem igaz? 181 00:09:21,840 --> 00:09:24,990 Mert ha tesz egy dupla idézet a közepén "hello, world" bármilyen 182 00:09:24,990 --> 00:09:30,120 ok, miért, úgy tűnik, potenciálisan problémás? 183 00:09:30,120 --> 00:09:32,180 Ez megtöri a húr. 184 00:09:32,180 --> 00:09:34,700 >> A fordító csak egy program. 185 00:09:34,700 --> 00:09:37,210 A program, mint a fordító csak megy olvasni a kódot felülről lefelé, 186 00:09:37,210 --> 00:09:37,990 balról jobbra. 187 00:09:37,990 --> 00:09:41,850 És ha úgy látja, három idézőjel helyett Két, akkor nem fog tudni 188 00:09:41,850 --> 00:09:45,210 ha azt jelenti, hogy a dolog, hogy a bal oldali legyen az szöveg, vagy a dolog, hogy 189 00:09:45,210 --> 00:09:46,570 a jobb, vagy az egészet. 190 00:09:46,570 --> 00:09:50,560 Ez egyértelmű, és akkor mi van egy tipikus fordító tenne csak borulni, 191 00:09:50,560 --> 00:09:53,710 valamint néhány hibaüzenetet, és hogy ha a probléma kezelésére. 192 00:09:53,710 --> 00:09:58,120 >> Tehát mivel a backslash-n: új vonal, mi lenne az ösztönök most 193 00:09:58,120 --> 00:10:02,610 kezd lenni, ha akar is valami rendhagyó, mint egy dupla 194 00:10:02,610 --> 00:10:06,210 idézve belül az egyébként idézett húr? 195 00:10:06,210 --> 00:10:07,640 Backslash-double árajánlatot. 196 00:10:07,640 --> 00:10:09,630 És így majd meglátjuk ezt ilyen minta is. 197 00:10:09,630 --> 00:10:12,490 >> Ha akarsz valamit, egy kicsit furcsa, rájössz, hogy a 198 00:10:12,490 --> 00:10:15,060 megoldások gyakran követik a mintát, és a backslash 199 00:10:15,060 --> 00:10:17,150 jelöli egy escape szekvencia. 200 00:10:17,150 --> 00:10:20,320 És ez csak azt jelenti, valami különlegeset , hogy meg kell, hogy képviselje a 201 00:10:20,320 --> 00:10:21,060 más módon. 202 00:10:21,060 --> 00:10:23,830 Ami hogyan képviselik a backslash, Hát, majd 203 00:10:23,830 --> 00:10:24,550 jött vissza, hogy a. 204 00:10:24,550 --> 00:10:26,930 De a válasz is, valójában egy kicsit nyilvánvaló. 205 00:10:26,930 --> 00:10:31,080 >> Szóval már be más programozási szerkezeteket 206 00:10:31,080 --> 00:10:31,915 hogy láttál Scratch. 207 00:10:31,915 --> 00:10:34,790 Valószínűleg már magától értetődőnek Már ha már lebukott 208 00:10:34,790 --> 00:10:36,060 probléma meg 0-ra. 209 00:10:36,060 --> 00:10:40,950 De nézzük most be a szintaxis a C ezek egyébként meglehetősen intuitív 210 00:10:40,950 --> 00:10:42,300 ötletek, legalább néhány közülük. 211 00:10:42,300 --> 00:10:45,570 >> Tehát ez a fogalom a feltétel vagy egy ág, míg korábban azt 212 00:10:45,570 --> 00:10:49,330 képviselte azt kóddal, hogy nézett így a bal oldalon a Scratch - 213 00:10:49,330 --> 00:10:52,200 ha x kisebb mint y, akkor mondjuk így - 214 00:10:52,200 --> 00:10:56,760 ehelyett most C - hadd élesíteni be a legegyszerűbb esetben - 215 00:10:56,760 --> 00:11:01,235 Mi csak mondani, ha nyitott zárójel, valami igaz - a 216 00:11:01,235 --> 00:11:04,190 Logikai kifejezés fog menni ahol mondtam állapot - 217 00:11:04,190 --> 00:11:08,170 Záró zárójel, akkor ne mi belül a zárójelek. 218 00:11:08,170 --> 00:11:11,020 >> Tehát itt is, a kapcsos zárójelek olyan mint a Scratch 219 00:11:11,020 --> 00:11:12,460 U-alakú puzzle darab. 220 00:11:12,460 --> 00:11:14,890 Ne mi van ezekben a zárójelek. 221 00:11:14,890 --> 00:11:16,790 Ebben az esetben a perjel perjel. 222 00:11:16,790 --> 00:11:19,720 És észre ez egy előre perjel, sem a backslash. 223 00:11:19,720 --> 00:11:21,440 Perjel, perjel, azok számára, akik már beprogramozott 224 00:11:21,440 --> 00:11:23,370 előtt, csak azt jelenti, - 225 00:11:23,370 --> 00:11:24,190 ez csak egy megjegyzés. 226 00:11:24,190 --> 00:11:26,630 A megjegyzés nem egy vonal A kód önmagában. 227 00:11:26,630 --> 00:11:30,200 Ez egy sor az angol, hogy a ember, írt magadnak, hogy 228 00:11:30,200 --> 00:11:33,540 talán emlékeztetni, hogy tegyen valamit, hogy magyarázni magát, hogy elmagyarázza 229 00:11:33,540 --> 00:11:35,260 valaki, hogy mi a kód csinál. 230 00:11:35,260 --> 00:11:37,050 Ez csak egy leíró megjegyzést. 231 00:11:37,050 --> 00:11:40,880 >> Nos, persze, mi lehet a kétirányú útelágazáshoz éppen ezt, a 232 00:11:40,880 --> 00:11:43,930 hármas útelágazáshoz csinál ezt, és ha továbbra is ezt a 233 00:11:43,930 --> 00:11:47,570 mintát, akkor négy-utas, öt irányú, hat utas villa az úton, ha 234 00:11:47,570 --> 00:11:50,150 kell kezelni, sőt, hogy sok feltétel. 235 00:11:50,150 --> 00:11:52,010 És akkor veszi észre a párhuzamot itt - 236 00:11:52,010 --> 00:11:55,070 if (feltétel), else if (feltétel), és az egyetlen, ami egy kicsit 237 00:11:55,070 --> 00:11:58,010 furcsa az utolsó, amely csak, hogy más. 238 00:11:58,010 --> 00:12:01,170 De ismétlem, ez megegyezik, fogalmilag, hogy mit tettünk 239 00:12:01,170 --> 00:12:04,690 már, bár a szintaxis fog hogy egy kicsit szokni kell. 240 00:12:04,690 --> 00:12:07,730 >> Most, ebben a példában, vannak más furcsa szintaxist. 241 00:12:07,730 --> 00:12:11,220 Látjuk printf újra nyitott zárójel, és szoros zárójel. 242 00:12:11,220 --> 00:12:13,190 És azon belül van jegyzett string. 243 00:12:13,190 --> 00:12:17,060 A zárójelben keretében A printf, megy a bal 244 00:12:17,060 --> 00:12:18,160 és jobb, mi? 245 00:12:18,160 --> 00:12:22,190 Mit is leírják, hogy a megadott string általánosságban? 246 00:12:22,190 --> 00:12:23,320 >> Szóval ez az érv. 247 00:12:23,320 --> 00:12:26,620 Minden alkalommal, amikor egy funkció, mint például a printf, majd egy nyitott és paren 248 00:12:26,620 --> 00:12:30,330 szoros paren és valami belső azt, hogy ez egy string, vagy 249 00:12:30,330 --> 00:12:34,420 integer, vagy bármi más, a dolog azok között, zárójelben a neve 250 00:12:34,420 --> 00:12:35,110 érv. 251 00:12:35,110 --> 00:12:37,910 >> És az érv csak befolyásolja a függvény viselkedését. 252 00:12:37,910 --> 00:12:39,990 Ebben az esetben, ez elég egyértelmű, hogyan. 253 00:12:39,990 --> 00:12:44,480 x 00:12:47,720 És printf fog nyomtatni, hogy pontosan. 255 00:12:47,720 --> 00:12:51,590 Mert biztosan a személy éve aki végre printf fogalmam sem volt 256 00:12:51,590 --> 00:12:55,000 mi emberek utódai voltak fogja használni a printf. 257 00:12:55,000 --> 00:12:58,610 Szóval ezért érvek vannak, hogy befolyásolják a viselkedést után függvény 258 00:12:58,610 --> 00:12:59,450 írtak. 259 00:12:59,450 --> 00:13:00,780 >> Most, logikai kifejezés. 260 00:13:00,780 --> 00:13:02,470 Már láttam ezeket korábban Scratch. 261 00:13:02,470 --> 00:13:06,680 Kiderül, a C akkor is ", vagy" őket, hogy úgy mondjam. 262 00:13:06,680 --> 00:13:10,930 Két függőleges vonal azt jelenti, hogy ez a blokk A kód, ez ezt, majd 263 00:13:10,930 --> 00:13:15,350 végrehajtani, ha az első feltétel igaz vagy a második feltétel igaz. 264 00:13:15,350 --> 00:13:17,710 És bár lehet, hogy nem volna Ezt Scratch, akkor valóban 265 00:13:17,710 --> 00:13:20,580 ezt a Scratch, és akkor is kifejezni magát másként - 266 00:13:20,580 --> 00:13:25,300 ha az első és a második feltétel feltétel igaz, akkor nem mi 267 00:13:25,300 --> 00:13:27,160 belül a zárójelek. 268 00:13:27,160 --> 00:13:31,210 >> És ahogy Mellesleg, az oka, hogy dupla jel és egy dupla 269 00:13:31,210 --> 00:13:34,610 függőleges vonal, majd meglátjuk végül hogy egy függőleges vonal és a 270 00:13:34,610 --> 00:13:38,710 egyetlen jel valójában különböző vagyis a C. Tehát most, 271 00:13:38,710 --> 00:13:41,840 hogy párhuzamos szimbólumok szándékos. 272 00:13:41,840 --> 00:13:45,070 >> Úgyhogy be, röviden, ez a másik kis szintaxis. 273 00:13:45,070 --> 00:13:48,940 Ez nem egészen átvinni a Scratch, de azt állítom, hogy én is 274 00:13:48,940 --> 00:13:55,190 végrehajtja fogalma egy ha más, ha más, ha más, ha más nyilatkozat 275 00:13:55,190 --> 00:13:56,760 egy úgynevezett switch. 276 00:13:56,760 --> 00:14:00,820 És az egyetlen ok, ez tényleg létezik az, hogy csak Önnek, a programozó, a 277 00:14:00,820 --> 00:14:05,470 kissé eltérő módon megoldani bizonyos problémát, bár ez logikusan 278 00:14:05,470 --> 00:14:07,340 nem ad új képességeket. 279 00:14:07,340 --> 00:14:08,530 >> Úgy értem, ez. 280 00:14:08,530 --> 00:14:13,330 Amikor azt mondod kapcsolót, majd a tér, majd egy pár zárójel, belül 281 00:14:13,330 --> 00:14:14,570 ebből megy kifejezés - 282 00:14:14,570 --> 00:14:18,010 és ez lehet egy kicsit nem nyilvánvaló az első, de ez nem érv, 283 00:14:18,010 --> 00:14:20,680 Technikailag, mert a kapcsoló nem függvény. 284 00:14:20,680 --> 00:14:24,230 Tehát most, csak feltételezik, hogy mi használ zárójelek különböző helyeken 285 00:14:24,230 --> 00:14:25,250 különböző okok miatt. 286 00:14:25,250 --> 00:14:29,310 >> Tehát kapcsoló kifejezés azt jelenti, hogy képes hogy egy változó belsejében a 287 00:14:29,310 --> 00:14:31,350 zárójelben, ahol azt mondja kifejezés. 288 00:14:31,350 --> 00:14:33,090 És aztán, ha a változó - 289 00:14:33,090 --> 00:14:35,400 tegyük fel, hogy hívják x, és ez csak egy egész szám - 290 00:14:35,400 --> 00:14:38,900 Én majd sorolja a slide Itt valami ilyesmi. 291 00:14:38,900 --> 00:14:41,690 Ha x a változó, és akarsz valamit, ha x 292 00:14:41,690 --> 00:14:43,480 értéke 1, meg tudom csinálni. 293 00:14:43,480 --> 00:14:46,660 >> Ha inkább akarok valamit ha x 2, meg tudom csinálni. 294 00:14:46,660 --> 00:14:50,390 Mert ha azt akarom, hogy valami mást teljesen, tudok egy alapértelmezett esetben 295 00:14:50,390 --> 00:14:52,750 esetben én ezt a másik dolgot. 296 00:14:52,750 --> 00:14:58,730 Tehát ebben az értelemben, hogy ez megfelel egy ha x értéke egyenlő 1, más, ha más, 297 00:14:58,730 --> 00:15:01,150 de megemlítem ezt most csak azért, mert majd látni. 298 00:15:01,150 --> 00:15:03,720 De most, csak tudom, hogy létezik. 299 00:15:03,720 --> 00:15:04,220 >> Rendben van. 300 00:15:04,220 --> 00:15:07,660 Így az elmúlt pár egy kicsit komplex első pillantásra, de mégis 301 00:15:07,660 --> 00:15:09,385 valami meglehetősen egyszerű. 302 00:15:09,385 --> 00:15:14,410 A for ciklus C-ben egy darab kód csak nem valami újra és 303 00:15:14,410 --> 00:15:15,330 újra és újra. 304 00:15:15,330 --> 00:15:17,590 És az egyetlen bosszantó dolog az, ez az, hogy ez egy kicsit rejtélyes 305 00:15:17,590 --> 00:15:21,380 kifejezni magát ebben a ciklikus minta, de a világ szabványosított 306 00:15:21,380 --> 00:15:22,450 a következő módon. 307 00:15:22,450 --> 00:15:25,760 >> Ha olyan a hurok, akkor megvan egy pár zárójel újra. 308 00:15:25,760 --> 00:15:27,570 És vegyük észre a két pontosvessző ott. 309 00:15:27,570 --> 00:15:34,380 Ez a két pontosvessző külön három különböző kifejezéseket belül a 310 00:15:34,380 --> 00:15:35,020 zárójelben. 311 00:15:35,020 --> 00:15:37,170 Az egyik az úgynevezett inicializálását. 312 00:15:37,170 --> 00:15:38,830 Az egyik az úgynevezett állapotban. 313 00:15:38,830 --> 00:15:40,210 És az egyik az úgynevezett frissítéseket. 314 00:15:40,210 --> 00:15:43,240 >> Nézett az elvont, ez teljesen nem nyilvánvaló, ezért nézzük meg 315 00:15:43,240 --> 00:15:44,630 egy konkrét példát. 316 00:15:44,630 --> 00:15:46,720 A Scratch volt egy ismétlés blokk. 317 00:15:46,720 --> 00:15:50,670 És ez a blokk szerint ismételje meg 10-szer, mondjuk "Hello, world". Hadd igényt 318 00:15:50,670 --> 00:15:53,810 Most, és mi visszatérünk erre, és ez is lesz több ismerős 319 00:15:53,810 --> 00:15:57,345 akkor nemsokára az egyenértékű C kód lehet mondani, hogy ez - 320 00:15:57,345 --> 00:16:02,320 egy a nyilatkozatot, és a tér, egy pár zárójelben észre a pontosvesszőket 321 00:16:02,320 --> 00:16:05,730 ott, ami külön három különböző dolgok, az inicializálás, a 322 00:16:05,730 --> 00:16:07,320 állapotát, és a frissítés. 323 00:16:07,320 --> 00:16:08,840 >> És hogy egy kitalálni, mi az első csinál. 324 00:16:08,840 --> 00:16:10,690 Int i = 0-ra. 325 00:16:10,690 --> 00:16:15,120 A durva laikus szempontból, mi hogy ezzel nekünk, talán? 326 00:16:15,120 --> 00:16:15,590 Szóval igen. 327 00:16:15,590 --> 00:16:19,630 Ez nyilvánító változó az i, és ez így ez milyen érték? 328 00:16:19,630 --> 00:16:20,220 0-ra. 329 00:16:20,220 --> 00:16:24,280 Szóval ez létre nevű változó i, a 0 értéket tárolja benne. 330 00:16:24,280 --> 00:16:26,420 Ez az úgynevezett inicializálás. 331 00:16:26,420 --> 00:16:29,360 >> Jól van, most már azt állította korábban hogy a középső dolog, 332 00:16:29,360 --> 00:16:31,760 <10, ez a feltétel. 333 00:16:31,760 --> 00:16:32,730 Tehát mi csinál? 334 00:16:32,730 --> 00:16:36,560 Nos, mi a for ciklus nem, ha a program egy for ciklus fut, az 335 00:16:36,560 --> 00:16:41,050 Minden alkalommal, amikor a számítógép fut keresztül Ez a ciklus, felülről lefelé, fentről 336 00:16:41,050 --> 00:16:43,740 alul, ahogy ti nem, amikor számolás magatokat, és leült, 337 00:16:43,740 --> 00:16:47,090 újra és újra és újra, a számítógép megy 338 00:16:47,090 --> 00:16:48,560 hogy ellenőrizze állapotát. 339 00:16:48,560 --> 00:16:51,140 És ha én nem kevesebb, mint 10, akkor az újra meg újra. 340 00:16:51,140 --> 00:16:53,100 Ha i kisebb, mint 10, akkor az újra meg újra. 341 00:16:53,100 --> 00:16:55,030 Ha én nem kevesebb, mint tíz, akkor az újra meg újra. 342 00:16:55,030 --> 00:16:57,330 Tehát úgy tűnik, hogy azt sugallják, hogy Remélem változik. 343 00:16:57,330 --> 00:16:59,010 Egyébként, mi lenne egy végtelen ciklus. 344 00:16:59,010 --> 00:17:02,590 És valóban, úgy változik, mert a utolsó dolog, miután a pontosvessző van 345 00:17:02,590 --> 00:17:05,569 a némileg rejtélyes szintaxis i + +. 346 00:17:05,569 --> 00:17:07,630 De azok, akik már megtette ezt előtt, hogy csak azt jelenti, 347 00:17:07,630 --> 00:17:08,609 egyszerűen mi? 348 00:17:08,609 --> 00:17:09,730 >> DIÁKOK: [közbeiktatásával VOICES]. 349 00:17:09,730 --> 00:17:10,740 >> DAVID MALAN: Adjunk hozzá 1 a i. 350 00:17:10,740 --> 00:17:11,819 Növedék i. 351 00:17:11,819 --> 00:17:13,910 Így láttuk a Scratch puzzle darab, hogy valóban. 352 00:17:13,910 --> 00:17:18,230 Nem úgy nézett ki, mint én + +, de ez csak azt jelenti, egyszerűen, növelni a 353 00:17:18,230 --> 00:17:24,040 értékelik i 1 minden alkalommal, amikor erre. 354 00:17:24,040 --> 00:17:26,910 Tehát a szó szoros értelmében, akkor kezdődik a inicializálás i 0-ra. 355 00:17:26,910 --> 00:17:29,520 Ezután ellenőrizze az Ön állapotát. 356 00:17:29,520 --> 00:17:31,070 0. kevesebb, mint 10? 357 00:17:31,070 --> 00:17:31,730 Igen. 358 00:17:31,730 --> 00:17:32,910 Mi megy át a hurkon. 359 00:17:32,910 --> 00:17:35,150 >> A következő dolog, azt állítják, a számítógép fog tenni ez a helyzet 360 00:17:35,150 --> 00:17:35,910 növeléséhez i. 361 00:17:35,910 --> 00:17:37,080 Tehát én most 1. 362 00:17:37,080 --> 00:17:37,940 Ellenőrzi az állapotot. 363 00:17:37,940 --> 00:17:39,290 Értéke 1-nél kisebb, 10? 364 00:17:39,290 --> 00:17:39,930 Természetesen. 365 00:17:39,930 --> 00:17:41,030 Így csinálja újra. 366 00:17:41,030 --> 00:17:43,580 Akkor lépésekben i + + 2-re. 367 00:17:43,580 --> 00:17:44,610 2 kevesebb, mint 10-et? 368 00:17:44,610 --> 00:17:45,230 Igen. 369 00:17:45,230 --> 00:17:46,670 És újra és újra és újra. 370 00:17:46,670 --> 00:17:50,070 És végül, mert a plus-plussing, megkapjuk, hogy i = 10. 371 00:17:50,070 --> 00:17:51,675 10 kevesebb, mint 10? 372 00:17:51,675 --> 00:17:52,990 Nos, nyilván nem. 373 00:17:52,990 --> 00:17:55,320 És ez az a pont, ahol A for ciklus csak megáll. 374 00:17:55,320 --> 00:17:58,320 És ha több kódot a képernyőn lent, a számítógép 375 00:17:58,320 --> 00:18:01,620 bevétel futtatni a kódot. 376 00:18:01,620 --> 00:18:05,380 >> Tehát még egyszer, még akkor is, ha ez nem megy, keresni, és úgy érzi, egy kicsit furcsa a 377 00:18:05,380 --> 00:18:07,830 Először is, természetesen azok számára, akik még soha nem programozott előtt, ez 378 00:18:07,830 --> 00:18:11,640 szó szerint csökkenti a fogalmilag hogy mi az egyébként nagyon 379 00:18:11,640 --> 00:18:14,330 egyszerű puzzle darab Scratch. 380 00:18:14,330 --> 00:18:19,130 >> Jól van, megígértem, hogy nem lenne lehet más analógok Scratch. 381 00:18:19,130 --> 00:18:20,060 Van ez is. 382 00:18:20,060 --> 00:18:21,700 És látta ezt röviden utoljára. 383 00:18:21,700 --> 00:18:23,530 De ne felejtsd el örökre blokkolni Scratch? 384 00:18:23,530 --> 00:18:25,490 Ez csak csinál valamit örökre? 385 00:18:25,490 --> 00:18:27,470 Azt állította, hogy meg tudná végrehajtani ezt ezen a módon. 386 00:18:27,470 --> 00:18:29,740 És akkor valóban végrehajtja-e ezt egy csomó különböző módon. 387 00:18:29,740 --> 00:18:34,260 >> De a while ciklus csak egy másik módon C kifejezni magad. 388 00:18:34,260 --> 00:18:37,080 Végén a nap, akkor nem semmit a while ciklus, amit 389 00:18:37,080 --> 00:18:38,360 nem a for ciklus. 390 00:18:38,360 --> 00:18:41,430 Így ők a végén nap funkcionálisan azonos. 391 00:18:41,430 --> 00:18:43,840 De lehetővé teszi, hogy kifejezze magát egy kicsit másképp 392 00:18:43,840 --> 00:18:44,850 a következő módon. 393 00:18:44,850 --> 00:18:49,720 >> A while ciklus, ez az, ami a Zárójelben ez újból ellenőrzik, majd 394 00:18:49,720 --> 00:18:51,050 újra és újra. 395 00:18:51,050 --> 00:18:55,100 És amint ez a kifejezés hamis, akkor a ciklus végrehajtása megáll, 396 00:18:55,100 --> 00:18:57,890 és a számítógép továbblép fut bármilyen más kódot 397 00:18:57,890 --> 00:18:59,230 van a fájlban. 398 00:18:59,230 --> 00:19:02,180 >> De ami igazán érdekes itt hogy szó szerint gépelt igaz. 399 00:19:02,180 --> 00:19:06,680 És igaz, egyfajta logikai érték, igaz vagy hamis értéket. 400 00:19:06,680 --> 00:19:09,750 Így is igaz valaha is lesz hamis, ha már a szó szoros értelmében 401 00:19:09,750 --> 00:19:11,970 beégetett be a programba? 402 00:19:11,970 --> 00:19:12,470 Tehát nem. 403 00:19:12,470 --> 00:19:13,730 Ez egy kicsit furcsa, hogy ezt tettem. 404 00:19:13,730 --> 00:19:15,190 De igaz, igaz. 405 00:19:15,190 --> 00:19:16,320 Nincs plusz plussing. 406 00:19:16,320 --> 00:19:17,820 Nincs értelme a változók itt. 407 00:19:17,820 --> 00:19:22,740 Tehát azért, mert kódolva, miközben igaz, ez a hurok mindig lesz, hogy értékelje 408 00:19:22,740 --> 00:19:24,090 újra és újra és újra. 409 00:19:24,090 --> 00:19:27,660 >> Szóval, hányszor van hello world a nyomdába a képernyőn? 410 00:19:27,660 --> 00:19:28,170 Örökre. 411 00:19:28,170 --> 00:19:31,980 Végtelen számú alkalommal, amíg a akkumulátor meghal, vagy más külső 412 00:19:31,980 --> 00:19:32,730 esemény történik. 413 00:19:32,730 --> 00:19:35,880 Szóval ez talán nem a legjobb program írni, mert ha a felhasználó 414 00:19:35,880 --> 00:19:38,660 soha nem kilép a programot, akkor valószínűleg nem az, amit tervezett. 415 00:19:38,660 --> 00:19:41,070 >> De néha, programok kell Van egy végtelen ciklusba. 416 00:19:41,070 --> 00:19:44,050 Például, ha a számítógép egy óra rajta, akkor biztosan lenne 417 00:19:44,050 --> 00:19:48,130 szép, ha az óra ez folyamatosan frissítjük magát örökre, bár egyszer 418 00:19:48,130 --> 00:19:50,500 második, vagy ha egy perc valami ilyesmi. 419 00:19:50,500 --> 00:19:53,690 Tehát még végtelen hurkok megvan a helye. 420 00:19:53,690 --> 00:19:54,360 >> Rendben van. 421 00:19:54,360 --> 00:19:55,190 Végül ez. 422 00:19:55,190 --> 00:19:57,770 És ez egy kicsit más funkcionálisan, és mi jön vissza 423 00:19:57,770 --> 00:19:59,460 ez valószínűleg Pset 1.. 424 00:19:59,460 --> 00:20:02,370 De van egy másik típusú hurok úgynevezett do while ciklus. 425 00:20:02,370 --> 00:20:07,100 És az egyetlen különbség itt között do while ciklus, és mondjuk, a while ciklus, 426 00:20:07,100 --> 00:20:11,120 az, hogy a feltétel nem ellenőrzik Mielőtt elindítaná a kódot, de miután 427 00:20:11,120 --> 00:20:12,080 akkor végre a kódot. 428 00:20:12,080 --> 00:20:15,380 Tehát a tetején közben hurok, míg a teendő, míg a 429 00:20:15,380 --> 00:20:16,560 ellenőrzi az alján. 430 00:20:16,560 --> 00:20:21,370 >> És ez csak annyit jelent, hogy a while ciklus általában végre többször 431 00:20:21,370 --> 00:20:24,630 vagy kevesebb idő, mint a while ciklus? 432 00:20:24,630 --> 00:20:30,810 Potenciálisan többször, mert a do while ciklus világosan mondja ezt, 433 00:20:30,810 --> 00:20:34,600 csak ami pont akkor ellenőrizze ha a feltétel belsejében a 434 00:20:34,600 --> 00:20:35,980 Zárójelben igaz. 435 00:20:35,980 --> 00:20:37,940 >> Szóval majd meglátjuk ezt újra valószínűleg Pset 1.. 436 00:20:37,940 --> 00:20:41,150 Ha valaha is szeretne tenni valamit a legalább egyszer, és akkor talán egy kicsit 437 00:20:41,150 --> 00:20:43,350 időkben, ez egy jó konstrukció használható. 438 00:20:43,350 --> 00:20:46,970 De egy while ciklus, ezzel szemben, ellenőrizze az állapotát az első. 439 00:20:46,970 --> 00:20:50,660 És ez a hurok a C, akkor közben, míg és a hurkok. 440 00:20:50,660 --> 00:20:54,700 És megint, map elég szépen vissza a semmiből, csak ez az egy nem 441 00:20:54,700 --> 00:20:57,350 teljesen azonos analóg Scratch. 442 00:20:57,350 --> 00:20:58,880 >> Nos, mi a helyzet, most, változó? 443 00:20:58,880 --> 00:21:02,600 Szóval így én kijelentette, változó szintaktikailag a minap. 444 00:21:02,600 --> 00:21:06,440 Volt egy int, amely azt állítottam, egy egész szám. 445 00:21:06,440 --> 00:21:09,690 Aztán volt egy változót nevű számláló, , majd egy pontosvessző. 446 00:21:09,690 --> 00:21:11,070 Szóval mi ez a kódsort csinálsz? 447 00:21:11,070 --> 00:21:14,540 Ez egészen egyszerűen, kijelentve, változó - 448 00:21:14,540 --> 00:21:17,940 vagyis, kérve a számítógépet, adj néhány memória, adj egy kis bit - in 449 00:21:17,940 --> 00:21:19,450 amit képes tárolni, mi? 450 00:21:19,450 --> 00:21:20,300 Egy int. 451 00:21:20,300 --> 00:21:23,570 És a pontosvessző csak azt jelenti, végén sor kódot. 452 00:21:23,570 --> 00:21:25,500 >> Most, a második sor valószínűleg szép kitalálható. 453 00:21:25,500 --> 00:21:29,710 Mi számláló = 0; csinálsz? 454 00:21:29,710 --> 00:21:31,690 Ez hozzárendelése 0 ellen. 455 00:21:31,690 --> 00:21:33,470 És ez a másik dolog ez egy kicsit bosszantó 456 00:21:33,470 --> 00:21:34,540 versus, mondjuk, algebra. 457 00:21:34,540 --> 00:21:39,110 Mivel algebra, az egyenlőség jel azt jelenti egyenlő, itt a C, az egyenlő 458 00:21:39,110 --> 00:21:40,470 jel jelent feladatot. 459 00:21:40,470 --> 00:21:45,380 Tehát ez azt jelenti fel, mi van a jobb a mi van a bal oldalon. 460 00:21:45,380 --> 00:21:49,030 És majd meglátjuk, egy szimbólum, egyenlő értéke, ha azt akarjuk, hogy valóban tesztelni 461 00:21:49,030 --> 00:21:50,570 a minőség, a kissé bosszantóan. 462 00:21:50,570 --> 00:21:52,590 >> De ez egy kicsit nem hatékony. 463 00:21:52,590 --> 00:21:55,090 Elég bosszantó, hogy van arra, hogy egy változó, 464 00:21:55,090 --> 00:21:56,110 majd adja meg az értéket. 465 00:21:56,110 --> 00:21:59,380 Tehát C valóban lehetővé teszi számunkra, egyszerűsítése és csak mindezt egyszerre. 466 00:21:59,380 --> 00:22:01,330 Lehet állapítsa meg a változó a bal oldalon. 467 00:22:01,330 --> 00:22:04,590 Akkor még mindig a feladat a jogot azáltal, hogy az egyenlőségjel 468 00:22:04,590 --> 00:22:05,030 a közepén. 469 00:22:05,030 --> 00:22:08,740 Így a végén a nap, ez a két azonos, de ez, őszintén szólva, 470 00:22:08,740 --> 00:22:11,840 valószínűleg a jobb szokás bekerülni csak azért, mert ez egy kicsit kevésbé 471 00:22:11,840 --> 00:22:15,040 kód, ez egy kicsit könnyebb olvasni, és ez csak szigorítja 472 00:22:15,040 --> 00:22:17,470 a kódot, hogy úgy mondjam. 473 00:22:17,470 --> 00:22:22,120 >> Bármilyen kérdése eddig a hurkok, változókra, a feltételek, a 474 00:22:22,120 --> 00:22:27,001 Logikai, akár műszaki vagy fogalmilag? 475 00:22:27,001 --> 00:22:28,010 Rendben van. 476 00:22:28,010 --> 00:22:30,690 Tehát most ez a következő egy kap kicsit érdekes. 477 00:22:30,690 --> 00:22:34,790 És ez a példa tettem a múlt idő, hogy csak leképezi a Scratch példa 478 00:22:34,790 --> 00:22:35,820 át C. 479 00:22:35,820 --> 00:22:36,580 >> Így a funkciót. 480 00:22:36,580 --> 00:22:38,110 A laikus szempontból, mi a funkciója? 481 00:22:38,110 --> 00:22:42,900 482 00:22:42,900 --> 00:22:44,350 Kell, hogy legyen merészebb a választ. 483 00:22:44,350 --> 00:22:45,020 Mi az a funkció? 484 00:22:45,020 --> 00:22:46,320 >> DIÁK: csinál valamit. 485 00:22:46,320 --> 00:22:46,780 >> DAVID MALAN: Mi ez? 486 00:22:46,780 --> 00:22:48,000 >> DIÁK: csinál valamit. 487 00:22:48,000 --> 00:22:48,710 >> DAVID MALAN: Van valami. 488 00:22:48,710 --> 00:22:49,000 OK. 489 00:22:49,000 --> 00:22:49,590 Kezdjük ott. 490 00:22:49,590 --> 00:22:51,270 Tehát a függvény valamit. 491 00:22:51,270 --> 00:22:55,160 Tehát ez egy kódrészletet, ami lényegében végre másutt 492 00:22:55,160 --> 00:22:56,620 valóban csinál valamit. 493 00:22:56,620 --> 00:23:00,180 Nos, mi az érdekes a függvény az, hogy képes bemenet, 494 00:23:00,180 --> 00:23:02,710 és ez a kimenet. 495 00:23:02,710 --> 00:23:05,090 És menjünk fejeznek nézd meg ezt. 496 00:23:05,090 --> 00:23:09,030 >> Így az ember a függöny mögött szándékosan egy perce. 497 00:23:09,030 --> 00:23:10,320 Itt van egy táblázat. 498 00:23:10,320 --> 00:23:13,010 De tegyük fel, hogy ez valójában jelent egy nagy doboz. 499 00:23:13,010 --> 00:23:14,940 Tehát ez egy úgynevezett fekete doboz. 500 00:23:14,940 --> 00:23:19,800 És általában, a tervezés, a számítógépes a tudomány, a fekete doboz csak utalnak 501 00:23:19,800 --> 00:23:22,510 darab a funkcionalitás, hogy valaki hajtott végre, és nem 502 00:23:22,510 --> 00:23:26,140 feltétlenül tudja, vagy érdekel, hogyan is végre a motorháztető alatt. 503 00:23:26,140 --> 00:23:28,960 Csak érdekel, hogy ez a fekete doboz, amit akkor most indul a hívás 504 00:23:28,960 --> 00:23:30,730 funkció, csinál valamit. 505 00:23:30,730 --> 00:23:34,710 >> Tehát, például, ha ez a fekete doboz a színpadon itt jelent printf, a 506 00:23:34,710 --> 00:23:38,040 funkció, tudom, hogy a korábbi példák hogy printf tart egy vagy több 507 00:23:38,040 --> 00:23:40,910 érveket, és az első ilyen érveket kell a string, mint a 508 00:23:40,910 --> 00:23:44,780 "Hello, world". Nos, ha én vagyok az a személy írni a programot, és azt akarom, 509 00:23:44,780 --> 00:23:50,460 használja printf, én, például, talán egy darab üres papírt itt és a 510 00:23:50,460 --> 00:23:55,060 fekete marker, és írd rá - 511 00:23:55,060 --> 00:23:56,580 Én hibásan "világ" - 512 00:23:56,580 --> 00:23:59,560 H-E-L-L-O. 513 00:23:59,560 --> 00:24:04,220 >> Szóval viszem a fekete marker, és én írni, olyan nagy és jól olvasható, ahogy csak tudok a 514 00:24:04,220 --> 00:24:07,260 ez a darab papír, "hello, world" És most azt állítják, ez az én érv. 515 00:24:07,260 --> 00:24:09,740 Ez egy string ábrázolni egy darab fehér papírt. 516 00:24:09,740 --> 00:24:13,030 És a bemenet most a funkciót printf lesz ez. 517 00:24:13,030 --> 00:24:18,250 Így hívom printf, múló ezt az érvet bemenetként hozzá. 518 00:24:18,250 --> 00:24:22,110 519 00:24:22,110 --> 00:24:26,740 >> És most, én nem tudom, hogy a személy, aki írta printf csinálta évvel ezelőtt, de 520 00:24:26,740 --> 00:24:31,110 Tudom, annak dokumentációt a célja az életben, hogy nyomtatni, amit 521 00:24:31,110 --> 00:24:34,410 ad rá, mint bemenet. 522 00:24:34,410 --> 00:24:40,630 És így, bár a végrehajtás az ismeretlenül nekem 523 00:24:40,630 --> 00:24:44,170 a motorháztető alatt, most Látom, ó, ez történik. 524 00:24:44,170 --> 00:24:45,740 Ez nyomtatott valami a képernyőn. 525 00:24:45,740 --> 00:24:49,070 És most a a program, ha van voltak sornyi kódot, akkor 526 00:24:49,070 --> 00:24:51,070 most vissza hozzám. 527 00:24:51,070 --> 00:24:52,290 És az a tény, hogy Colton - 528 00:24:52,290 --> 00:24:55,370 áldja meg a szívét, itt rejtőzik alatt egy asztal előtt mindannyian - 529 00:24:55,370 --> 00:24:59,530 szándékos az, hogy nem tudom, és nem érdekel, milyen a printf 530 00:24:59,530 --> 00:25:00,100 végre. 531 00:25:00,100 --> 00:25:03,390 Én csak tudom, újra, annak dokumentáció, mit csinál, és hogyan 532 00:25:03,390 --> 00:25:05,040 én kellene használni. 533 00:25:05,040 --> 00:25:09,140 >> Nos, emlékeztetni arra, hogy printf kaphat egy kicsit bonyolultabb. 534 00:25:09,140 --> 00:25:12,220 Ismét mi csak beszélünk a megfelelője Scratch mondjuk blokk. 535 00:25:12,220 --> 00:25:14,230 De azt is tette ezt utoljára. 536 00:25:14,230 --> 00:25:17,270 Azt akartam, hogy a Hello programot a kicsit dinamikusabb és nem csak nehéz 537 00:25:17,270 --> 00:25:19,740 code valami hasonló "világ", és egyáltalán nem nehéz valami kód 538 00:25:19,740 --> 00:25:22,520 önkényes, mint a D-A-V-I-D a programba. 539 00:25:22,520 --> 00:25:27,510 Meg akartam kérdezni a felhasználót a saját nevet, majd csinál valamit 540 00:25:27,510 --> 00:25:29,720 hogy a húr, hogy biztosítani. 541 00:25:29,720 --> 00:25:32,690 >> Tehát van egy kicsit más itt. printf, egy perce 542 00:25:32,690 --> 00:25:35,860 nem, sőt, tenni valamit, de az nem adott vissza semmit nekem. 543 00:25:35,860 --> 00:25:36,020 Nem igaz? 544 00:25:36,020 --> 00:25:38,910 Colton nem adja nekem semmit vissza, nem papírra. 545 00:25:38,910 --> 00:25:40,320 Ott volt, csak egy mellékhatás. 546 00:25:40,320 --> 00:25:44,510 My amely "hello, world", mint egy érv, hogy Colton eredményezte, hogy a 547 00:25:44,510 --> 00:25:48,420 mellékhatása egy szó, néhány szót, jelennek meg a képernyőn. 548 00:25:48,420 --> 00:25:51,350 >> getstring, bár egy kicsit más. getstring is egy 549 00:25:51,350 --> 00:25:54,590 működik, de visszatér néhány érték. 550 00:25:54,590 --> 00:25:56,370 Ez nem csak egy esztétikai mellékhatás. 551 00:25:56,370 --> 00:26:00,230 Valójában ad nekem, az a személy hívás, vagy a funkció 552 00:26:00,230 --> 00:26:01,320 valamit. 553 00:26:01,320 --> 00:26:05,740 Tehát ebben az esetben, az getstring megadta getstring nyitott 554 00:26:05,740 --> 00:26:07,510 paren, közel paren. 555 00:26:07,510 --> 00:26:11,370 Vajon getstring ezért vegye olyan érveket vagy bemenet? 556 00:26:11,370 --> 00:26:12,340 Nem, úgy tűnik, nem. 557 00:26:12,340 --> 00:26:14,460 Ennek célja az életben, csak azért, hogy egy string. 558 00:26:14,460 --> 00:26:16,910 Nincs szükség részletesebb annál. 559 00:26:16,910 --> 00:26:20,430 Hadd megy előre, és úgy tenni, mintha, Ismét, ez a fekete doboz nem printf, 560 00:26:20,430 --> 00:26:25,160 de getstring, és hagyja, hogy én, az ember írom ezt a programot, hívja vagy használja 561 00:26:25,160 --> 00:26:29,720 getString által csak írásban G-E-T-S-T-R-I-N-G, paren nyitott, közeli 562 00:26:29,720 --> 00:26:32,170 paren, getstring. 563 00:26:32,170 --> 00:26:36,920 >> Most fogalmam sincs, hogy a CS50 személyzet végre getstring, de tudom, hogy 564 00:26:36,920 --> 00:26:41,240 ha elég sokáig vár, akkor nem az dolog, a motorháztető alatt, talán a 565 00:26:41,240 --> 00:26:44,940 néhány változó, talán használ valamilyen körülmények, talán használ valamilyen hurkok, 566 00:26:44,940 --> 00:26:48,170 talán ha bizonyos funkciókat, talán a - 567 00:26:48,170 --> 00:26:52,290 csak próbál istálló - talán a más programozási funkciók. 568 00:26:52,290 --> 00:26:55,350 De ha elég sokáig vár - a valóságban, a számítógép, ez történik 569 00:26:55,350 --> 00:26:56,270 szuper gyors - 570 00:26:56,270 --> 00:26:59,910 ha elég sokáig vár, ez a funkció getstring fog kapni egy húr 571 00:26:59,910 --> 00:27:04,060 a felhasználó, aki feltehetően gépelés ki a billentyűzeten, és 572 00:27:04,060 --> 00:27:08,090 akkor, ha getstring történik egyre ezeket a karaktereket a felhasználó 573 00:27:08,090 --> 00:27:14,080 és tárolja őket egy string, amely funkció getstring, megy, hogy 574 00:27:14,080 --> 00:27:17,990 készen áll egy kis kimenő általam fogja letölteni útján a 575 00:27:17,990 --> 00:27:19,470 értékadó operátor. 576 00:27:19,470 --> 00:27:25,390 >> És ha majd elmegyek, sőt, a kimeneti Itt, Obosi nagylelkűen 577 00:27:25,390 --> 00:27:29,900 részt, anélkül, hogy tudnánk ezt előre, írásban a nevét erre 578 00:27:29,900 --> 00:27:33,100 változó, amely képviseli egy string. 579 00:27:33,100 --> 00:27:35,640 Most, az értékadó operátor azt jelenti, hogy még bár ez lehet, hogy egy kicsit 580 00:27:35,640 --> 00:27:38,790 felesleges, én tényleg nem kell, hogy a saját példányát. 581 00:27:38,790 --> 00:27:40,700 Mivel a bal oldali oldal - Hoppá! - 582 00:27:40,700 --> 00:27:45,760 észre, hogy én alapvetően van szöveg nevét a bal oldalon. 583 00:27:45,760 --> 00:27:48,280 Így én is megy, hogy saját példányát. 584 00:27:48,280 --> 00:27:50,990 És ez egy kicsit egy fehér hazugság, mert majd látni egy-két héten belül a 585 00:27:50,990 --> 00:27:54,100 alkalom, hogy húrok valójában nem azok, aminek látszanak lenni. 586 00:27:54,100 --> 00:27:56,700 >> De most, itt a visszatérési érték. 587 00:27:56,700 --> 00:28:00,160 Itt van a saját példányát után az értékadó operátor. 588 00:28:00,160 --> 00:28:01,790 És most, mit akarok csinálni? 589 00:28:01,790 --> 00:28:04,080 Most már a második két sornyi kódot. 590 00:28:04,080 --> 00:28:05,640 Szóval most szeretnék hívni printf. 591 00:28:05,640 --> 00:28:08,500 Tegyük most, hogy a fekete doboz vissza, hogy, hogy 592 00:28:08,500 --> 00:28:10,210 printf és nem getstring. 593 00:28:10,210 --> 00:28:12,200 >> Printf ezúttal fog hogy hány érv? 594 00:28:12,200 --> 00:28:14,890 595 00:28:14,890 --> 00:28:16,770 Így néz, ez olyan, mint kettő. 596 00:28:16,770 --> 00:28:18,860 Van két vessző ott, de egy ilyen vessző, ez 597 00:28:18,860 --> 00:28:20,220 belsejét idézi. 598 00:28:20,220 --> 00:28:23,190 Tehát az első argumentum szó lesz ez. 599 00:28:23,190 --> 00:28:31,850 H-E-L-L-O, vessző, százalék s, backslash-n. 600 00:28:31,850 --> 00:28:36,560 És most hogy nem az érvelés, de két érv a printf. 601 00:28:36,560 --> 00:28:39,530 >> És mi printf kéne csinálni A két bemenet miután át őket 602 00:28:39,530 --> 00:28:42,050 argumentumként? 603 00:28:42,050 --> 00:28:45,360 Állítólag, hogy a második őket, ami hívtam név, így a 604 00:28:45,360 --> 00:28:48,660 második darab papírra írtam ki egy perce hívják nevét. 605 00:28:48,660 --> 00:28:53,550 Ez lesz dugó értékének belső Az, hogy változó a helyőrző, 606 00:28:53,550 --> 00:28:58,310 % S, hogy ismét csak egy pillanat idő, látni fogjuk, a mellékhatása 607 00:28:58,310 --> 00:29:04,180 elõszólítván printf, amely most lásd nem "hello, world", hanem "hello, 608 00:29:04,180 --> 00:29:04,710 Obosi. " 609 00:29:04,710 --> 00:29:08,730 >> Tehát egy nagy tapsot, hogy mind a önkénteseink, akik közül csak egynek tudott 610 00:29:08,730 --> 00:29:12,010 ez történik. 611 00:29:12,010 --> 00:29:12,990 Rendben van. 612 00:29:12,990 --> 00:29:16,480 Szóval, talán, egyszerű volt, Természetesen, ha már ismert 613 00:29:16,480 --> 00:29:20,190 ilyen, remélhetőleg soha nem fog felejtsük el, hogy bizonyos vizuális, hogyan 614 00:29:20,190 --> 00:29:21,220 funkció működik. 615 00:29:21,220 --> 00:29:23,000 >> Tehát ez több, mint getstring. 616 00:29:23,000 --> 00:29:26,020 Belül a CS50 könyvtár, van egy csomó funkciók, amelyek 617 00:29:26,020 --> 00:29:29,510 aktiválja, csak azért, hogy világossá hogy írta ezeket a funkciókat. 618 00:29:29,510 --> 00:29:33,610 Jellemzően, a C, szinte minden más funkciót fogja használni a kisbetű. 619 00:29:33,610 --> 00:29:36,190 De tudatosan használni nagybetűvel csak azért, hogy egyértelmű, hogy ezek 620 00:29:36,190 --> 00:29:39,880 olyan képzés kerekek a fajta, hogy mi lesz használni csak néhány hét, hogy az 621 00:29:39,880 --> 00:29:42,890 egyszerűsíti a folyamat kezd bemenet a felhasználó. 622 00:29:42,890 --> 00:29:46,740 >> A CS50 könyvtár nem csinál semmit hogy ti magatok eddig nem sikerült 623 00:29:46,740 --> 00:29:50,230 csak a C kód egy oldschool tankönyv. 624 00:29:50,230 --> 00:29:53,310 De megint használjuk őket a képzés kerekek a fajta csak egy pár 625 00:29:53,310 --> 00:29:57,250 hét, hogy mi lehet megszabadulni a komplexitás, hogy hamarosan érteni 626 00:29:57,250 --> 00:30:00,460 magát, hogy csinál valamit, mint viszonylag egyszerű, mint egyre 627 00:30:00,460 --> 00:30:02,080 bemenet a felhasználó. 628 00:30:02,080 --> 00:30:05,540 >> Tehát tudja, hogy lesz elérhető a getchar, GetDouble - 629 00:30:05,540 --> 00:30:06,050 megduplázódik. 630 00:30:06,050 --> 00:30:07,050 What -, majd getFloat. 631 00:30:07,050 --> 00:30:07,600 Mi az a float? 632 00:30:07,600 --> 00:30:09,382 Kezdjük ott. 633 00:30:09,382 --> 00:30:10,600 >> DIÁK: [hangtalan]. 634 00:30:10,600 --> 00:30:10,790 >> DAVID MALAN: Igen. 635 00:30:10,790 --> 00:30:12,120 Ez egy szám egy tizedes. 636 00:30:12,120 --> 00:30:15,930 Tehát mivel int egész szám, amely csak egy számot 0 és 9, 637 00:30:15,930 --> 00:30:18,940 néhány ismétlések számát annak Az úszó valami 638 00:30:18,940 --> 00:30:20,100 a tizedespont. 639 00:30:20,100 --> 00:30:26,090 És egy dupla, eközben is számot a tizedesvessző, de 640 00:30:26,090 --> 00:30:28,160 utáni számok a tizedes pont, esetleg. 641 00:30:28,160 --> 00:30:30,040 >> Hogy mi lesz vissza erre nemsokára. 642 00:30:30,040 --> 00:30:34,560 De általában, minden egyes ilyen típusú adatok, minden egyes ilyen típusú változók 643 00:30:34,560 --> 00:30:39,380 hogy a könyvtár, mint a miénk visszatérhet te, különböző számú bitek 644 00:30:39,380 --> 00:30:40,290 adatok tárolására. 645 00:30:40,290 --> 00:30:43,910 Általában a Char, ami csak annyit jelent, egy karakter, használat 8 bit. 646 00:30:43,910 --> 00:30:47,490 És ez tulajdonképpen összhangban van a byte önkéntesek, akik a múlt héten 647 00:30:47,490 --> 00:30:50,410 odajött és képviselt ASCII karakter egy időben. 648 00:30:50,410 --> 00:30:51,850 Tehát egy Char 8 bit. 649 00:30:51,850 --> 00:30:54,430 >> Az úszó történetesen 32 bit, jellemzően. 650 00:30:54,430 --> 00:30:59,230 És egy dupla, ahogy sejteni lehet, a valójában 64 bites, ami csak több, 651 00:30:59,230 --> 00:31:01,360 ami azt jelenti, hogy nagyobb számok vagy pontosabb. 652 00:31:01,360 --> 00:31:03,000 De a lényeg, inkább az, hogy egy másik időben. 653 00:31:03,000 --> 00:31:06,550 GetLongLong eközben, de ostobán elemzi, tényleg csak egy 654 00:31:06,550 --> 00:31:10,770 egész szám, amely kétszer olyan nagy, kétszer Hosszú, potenciálisan, a rendszeres 655 00:31:10,770 --> 00:31:12,940 egész, 64 bit helyett 32. 656 00:31:12,940 --> 00:31:14,560 És getString voltunk használ. 657 00:31:14,560 --> 00:31:18,870 >> De kiderült, a CS50 könyvtár amely végre, mint látni fogjuk, a 658 00:31:18,870 --> 00:31:23,560 formájában a két fájl, amelyek közül az egyik hívják cs50.h, két másik 659 00:31:23,560 --> 00:31:24,770 adattípusok benne. 660 00:31:24,770 --> 00:31:29,700 Logikai nem léteznek C. A szimulálni őket csak használ 0s és 1s 661 00:31:29,700 --> 00:31:30,850 az egész programot. 662 00:31:30,850 --> 00:31:35,500 De mi a CS50 könyvtárban létrehozott a szimbólumok "valódi" és a "hamis" 663 00:31:35,500 --> 00:31:38,580 hogy képviselje 1 és 0, így nem kell kemény kód valamit 664 00:31:38,580 --> 00:31:39,810 szó, mint a 1-es és 0-ra. 665 00:31:39,810 --> 00:31:40,980 De majd meglátjuk azokat újra. 666 00:31:40,980 --> 00:31:42,330 >> String, is, nem létezik. 667 00:31:42,330 --> 00:31:44,520 És ezért már említettem, hogy ez egy kis fehér hazugság most. 668 00:31:44,520 --> 00:31:46,660 De majd húzza vissza, hogy réteg nemsokára. 669 00:31:46,660 --> 00:31:49,540 De most, egy sor olyan karaktersorozat. 670 00:31:49,540 --> 00:31:51,790 >> Közben a C, akkor valóban különböző adattípusok. 671 00:31:51,790 --> 00:31:53,200 Figyeljük meg ezek kisbetűs. 672 00:31:53,200 --> 00:31:56,960 Tehát a funkciók láttál egy perce a funkciók írta CS50 hogy 673 00:31:56,960 --> 00:32:02,310 vissza fog térni hozzád egy értéket, hogy esik az egyik ilyen kategória. 674 00:32:02,310 --> 00:32:06,730 >> Néhány cheat lapok csak a növény a mag itt. printf nem csak 675 00:32:06,730 --> 00:32:08,600 hogy% s helyőrzőként. 676 00:32:08,600 --> 00:32:13,490 Tart% d decimális egész, vagy% i működne is. 677 00:32:13,490 --> 00:32:19,450 % F lebegőpontos értékeket. % C az a char, ha azt szeretnénk, hogy csak csatlakoztassa egy 678 00:32:19,450 --> 00:32:23,510 karakter egy előre formázott szöveg mintha már ezt, akkor a% c. 679 00:32:23,510 --> 00:32:28,490 >> Aztán kissé bosszantóan,% lld egy hosszú, hosszú decimális egész szám, 680 00:32:28,490 --> 00:32:31,050 ami csak azt jelenti, ha szüksége van egy igazán nagy száma és a 'használ valamit 681 00:32:31,050 --> 00:32:35,450 úgynevezett hosszú, hosszú, ami akkor jön vissza a Pset, akkor a% lld 682 00:32:35,450 --> 00:32:40,700 mondd printf, dugja egy igazán nagy Itt egész útján a második vagy 683 00:32:40,700 --> 00:32:41,830 más érv. 684 00:32:41,830 --> 00:32:45,700 >> És végül, azt ígértem, hogy van néhány más menekülés 685 00:32:45,700 --> 00:32:47,670 szekvenciák printf támogat. 686 00:32:47,670 --> 00:32:49,160 Láttuk backslash-n. 687 00:32:49,160 --> 00:32:50,510 Backslash-r lehet látni. 688 00:32:50,510 --> 00:32:51,780 Ez a fajta egy old-school dolog. 689 00:32:51,780 --> 00:32:55,920 Ha valaha igazi írógép év óra és meghúzta a hajtókar 690 00:32:55,920 --> 00:32:59,810 amely nem csak elforgatta a kereket, hogy mozog a felállás, akkor is költözött a 691 00:32:59,810 --> 00:33:03,730 egész dolog egészen vissza a A bal oldali, nos, backslash-r 692 00:33:03,730 --> 00:33:06,480 alapvetően mozgatja a kurzort vissza a sor elejére 693 00:33:06,480 --> 00:33:07,830 mozdulatlanul le. 694 00:33:07,830 --> 00:33:09,780 De a lényeg, inkább az, hogy a talán a jövőben. 695 00:33:09,780 --> 00:33:13,670 >> Backslash-idézet, backslash-dupla idézet, backslash-backslash a 696 00:33:13,670 --> 00:33:16,600 megoldás, hogy a apró talány Utaltam korábban. 697 00:33:16,600 --> 00:33:18,920 És backslash-0 valójában elég érdekes. 698 00:33:18,920 --> 00:33:21,470 De majd jön vissza hogy nemsokára. 699 00:33:21,470 --> 00:33:25,640 >> Hadd menjen be, most a CS50 készüléket, és hagyja, hogy a ténylegesen a 700 00:33:25,640 --> 00:33:28,930 Gyors felmelegedhetnek egyik példa tettünk már, majd lépni a 701 00:33:28,930 --> 00:33:31,160 valami egy kicsit bonyolultabb. 702 00:33:31,160 --> 00:33:34,980 Tehát, ha én nyit a programot nevű gedit - 703 00:33:34,980 --> 00:33:36,840 ez az én grafikus szerkesztő. 704 00:33:36,840 --> 00:33:38,460 És meg tudom csinálni, hogy - 705 00:33:38,460 --> 00:33:39,820 hadd zárja be azt az ablakot is - 706 00:33:39,820 --> 00:33:42,720 útján ez az ikon itt lent, gedit, a bal alsó 707 00:33:42,720 --> 00:33:44,170 sarok mellett a menübe. 708 00:33:44,170 --> 00:33:48,670 >> Én megyek előre, és előre, és menteni ezt a példát, mondjuk, John 709 00:33:48,670 --> 00:33:49,660 Harvard mappába. 710 00:33:49,660 --> 00:33:52,690 John Harvard mappa csak a hazai könyvtár, ahol az összes aktáját él 711 00:33:52,690 --> 00:33:53,340 alapértelmezés szerint. 712 00:33:53,340 --> 00:33:58,410 És fogom menteni ezt nevű fájlt hello-0.c. 713 00:33:58,410 --> 00:34:01,260 És én választottam ezt a nevet csak azért, hogy vonalban áll a minta kódot a 714 00:34:01,260 --> 00:34:04,210 Természetesen honlapján és a YouTube videók online. 715 00:34:04,210 --> 00:34:06,320 >> Szóval most fogok kezdeni írni az első program. 716 00:34:06,320 --> 00:34:08,469 Hadd nagyítani a olvashatóság. 717 00:34:08,469 --> 00:34:12,760 És én megyek előre, és azt mondják, int Fő semmibe, ami csak úgy 718 00:34:12,760 --> 00:34:14,900 sárga puzzle darab, elindít egy programot. 719 00:34:14,900 --> 00:34:18,290 Kaptam a szokás felett év megnyitása a zárójel, akkor 720 00:34:18,290 --> 00:34:22,000 is bezárja, majd megy vissza a ahol szeretnénk, hogy a kódot, csak 721 00:34:22,000 --> 00:34:24,630 mert segít megőrizni mindent kiegyensúlyozott, különösen a 722 00:34:24,630 --> 00:34:25,880 programban lesz sokáig. 723 00:34:25,880 --> 00:34:29,239 >> És most, itt, én megyek előre és azt mondják, printf, idézet idézet vége, 724 00:34:29,239 --> 00:34:34,330 hello world, backslash-n, közel idézet, Záró zárójel, pontosvessző. 725 00:34:34,330 --> 00:34:38,100 Szóval, én csak ismétlődő mindent, amit szedett biztosra eddig. 726 00:34:38,100 --> 00:34:39,270 Most megyek a kicsinyítéshez. 727 00:34:39,270 --> 00:34:43,030 >> És ez a terminál ablakot itt, mit vagyok szabad tenni ebben a fekete 728 00:34:43,030 --> 00:34:44,389 és a fehér ablak? 729 00:34:44,389 --> 00:34:46,977 Mire használhatom azt? 730 00:34:46,977 --> 00:34:49,770 Szóval, ez az, ahol futok parancsok és ahol lehet fordítani a dolgokat. 731 00:34:49,770 --> 00:34:50,620 És én fogom tartani, hogy egyszerű. 732 00:34:50,620 --> 00:34:52,780 Megyek, hogy egy program Legyen nevű, ami nem 733 00:34:52,780 --> 00:34:54,020 Technikailag a fordító. 734 00:34:54,020 --> 00:34:56,360 A fordító a nevezett csenget, de akkor jön vissza, hogy a 735 00:34:56,360 --> 00:34:57,190 két hét múlva. 736 00:34:57,190 --> 00:35:03,410 >> Egyelőre én csak úgy írja, hogy hello-0, de azok számára, akik 737 00:35:03,410 --> 00:35:07,050 összehasonlítva a fejében, amit most gépelt, hogy mit kellett volna gépelt lehet 738 00:35:07,050 --> 00:35:10,180 tudod már, hogy én nem valami nincs rendben. 739 00:35:10,180 --> 00:35:12,160 Nos, van nyilvánvalóan néhány hibát. 740 00:35:12,160 --> 00:35:16,742 Mielőtt még nézd meg, mit ők, minden gondolatait, hogy mit csináltam rosszul? 741 00:35:16,742 --> 00:35:18,590 >> DIÁKOK: [közbeiktatásával VOICES]. 742 00:35:18,590 --> 00:35:18,840 >> DAVID MALAN: Igen. 743 00:35:18,840 --> 00:35:20,640 Én hiányzik a könyvtár header file. 744 00:35:20,640 --> 00:35:24,240 Minden ilyen. H fájlokat nevezzük header fájlokat, és együttesen 745 00:35:24,240 --> 00:35:25,680 tartoznak dolgokat az úgynevezett könyvtárak. 746 00:35:25,680 --> 00:35:28,030 A könyvtárak csak darabokat kód hogy más ember írta. 747 00:35:28,030 --> 00:35:32,140 Tehát a szabvány [? i?] könyvtár egy gyűjtemény tartalmazó fájlok kód 748 00:35:32,140 --> 00:35:33,330 hogy más ember írta. 749 00:35:33,330 --> 00:35:34,820 >> Szóval hiányzik, hogy az. 750 00:35:34,820 --> 00:35:36,520 Akkor miért kapok egy hiba? 751 00:35:36,520 --> 00:35:40,840 Nos, hadd lépjünk vissza fel a terminál ablak itt. 752 00:35:40,840 --> 00:35:44,310 És sajnos, a C, mint a sok programozási nyelvek, különösen 753 00:35:44,310 --> 00:35:47,830 ha ez minden új neked, a hiba üzenetek pontosak, de ők is 754 00:35:47,830 --> 00:35:48,620 nagyon rejtélyes. 755 00:35:48,620 --> 00:35:51,720 És a hiba itt, piros, a "Burkoltan kijelentette könyvtári funkció 756 00:35:51,720 --> 00:35:57,660 printf típusú, "és akkor tekercsek a következő sorra, "int const char * 757 00:35:57,660 --> 00:36:00,220 ... "Csak lesz igazán elsöprő gyorsan. 758 00:36:00,220 --> 00:36:04,420 >> De, hogy mit kell kezdeni a teendő, ha, ismét új mindezt, csak azért, hogy 759 00:36:04,420 --> 00:36:06,010 elkezdi keresni a kulcsszavak. 760 00:36:06,010 --> 00:36:08,770 Nyilvánvaló, talán nem értem a felét a szavak látok csak még. 761 00:36:08,770 --> 00:36:10,140 Lesz azonban egy hét múlva. 762 00:36:10,140 --> 00:36:11,230 De látom printf. 763 00:36:11,230 --> 00:36:14,310 És meg kell kezdeni, mielőtt hosszú, jog a memóriát, minden rendben, printf. 764 00:36:14,310 --> 00:36:15,210 Valami baj van printf. 765 00:36:15,210 --> 00:36:16,580 Mondtam varázslat rosszul? 766 00:36:16,580 --> 00:36:18,130 Nem, ez nem úgy néz ki, mint - oh. 767 00:36:18,130 --> 00:36:21,350 Nem tudom használni, kivéve, ha tanítok a fordító, hogy létezik. 768 00:36:21,350 --> 00:36:25,220 És így, megint megy az ösztöneid, akkor is, ha valójában nem érti 769 00:36:25,220 --> 00:36:26,510 az aktuális hibaüzenetek. 770 00:36:26,510 --> 00:36:30,240 >> És valóban, a megoldás az, hogy csak közé tartozik, hogy a tetején a fájl 771 00:36:30,240 --> 00:36:34,340 mint, hogy én resaving fájl Vezérlő-S, vagy a Fájl menüben. 772 00:36:34,340 --> 00:36:36,730 És ha most vissza ide, Fogom törléséhez. 773 00:36:36,730 --> 00:36:39,150 Az ellenőrzés-L csak egy jó módja annak, hogy törölje a képernyőt. 774 00:36:39,150 --> 00:36:44,870 És akkor fogok írja "hogy helló 0 "Enter, és most még mindig látni a 775 00:36:44,870 --> 00:36:47,710 rejtélyes jelsorozat, de akkor jön vissza, hogy a. 776 00:36:47,710 --> 00:36:49,230 Ez az, amit tenni, ennek az Ön számára. 777 00:36:49,230 --> 00:36:52,590 Ez automatizálja a folyamat figyelembe meglehetősen bosszantó parancs bevonásával 778 00:36:52,590 --> 00:36:54,050 Csenget, a tényleges fordító. 779 00:36:54,050 --> 00:36:57,460 De az tény, hogy nem kapott hiba azt jelenti, hogy ez a dolog meg kell dolgozni. 780 00:36:57,460 --> 00:37:00,630 >> Úgyhogy most megyek csinálni - hadd nagyítani újra - 781 00:37:00,630 --> 00:37:07,070 ./hello-0 Enter, sőt, látom "Hello, world". Szóval Most erősítése 782 00:37:07,070 --> 00:37:12,105 ez alig észrevehetően, csak megismételni lépéseket is szánták. 783 00:37:12,105 --> 00:37:15,370 Fogom nevezni ezt Mentés másként hello1.c. 784 00:37:15,370 --> 00:37:20,300 És most megyek, hogy egy változót names, így karakterlánc nevét, 785 00:37:20,300 --> 00:37:23,420 és megyek, hogy benne a értéke quote-idézet vége 786 00:37:23,420 --> 00:37:27,030 D-A-V-I-D közeli quote pontosvessző. 787 00:37:27,030 --> 00:37:31,150 És most megyek helyett "világ" , amit helyőrző egy karakterlánc? 788 00:37:31,150 --> 00:37:32,200 % S. 789 00:37:32,200 --> 00:37:35,040 >> És most, hogy sok érvet kell printf hogy ebben az időben? 790 00:37:35,040 --> 00:37:35,700 Tehát két. 791 00:37:35,700 --> 00:37:37,090 Szóval megy kívül idézi. 792 00:37:37,090 --> 00:37:39,330 Azt írja: "name" után vessző. 793 00:37:39,330 --> 00:37:41,550 De tettem valamit más baj ebben az időben. 794 00:37:41,550 --> 00:37:43,940 De tegyük fel, hogy én nem észre, hogy még. 795 00:37:43,940 --> 00:37:44,910 Hadd menjek itt. 796 00:37:44,910 --> 00:37:48,850 >> És vegyük észre is kezdek egy kicsit unatkozik a gépelés ", hogy helló 0" a 797 00:37:48,850 --> 00:37:50,180 idő, "hogy", és ezt az egészet. 798 00:37:50,180 --> 00:37:53,270 Így kiderül, hogy Linus akkor gyakran sújtotta a Fel nyíl a 799 00:37:53,270 --> 00:37:56,850 billentyűzet, és akkor valóban görgetni az összes olyan parancsot, hogy én már 800 00:37:56,850 --> 00:37:58,830 végre az előző, hogy csak most. 801 00:37:58,830 --> 00:38:02,040 Tehát, ha megteszem, Fel, Fel, van, hogy helló 0-ra. 802 00:38:02,040 --> 00:38:02,610 Nem akarom ezt. 803 00:38:02,610 --> 00:38:05,450 Csak azt akarom, hogy változtatni kell helló 1 ezúttal az Enter billentyűt. 804 00:38:05,450 --> 00:38:07,620 Végül, hogy majd menteni egy kis időt. 805 00:38:07,620 --> 00:38:08,150 >> Rendben van. 806 00:38:08,150 --> 00:38:09,520 Sajnos, van egy hiba. 807 00:38:09,520 --> 00:38:10,980 Hadd felfelé. 808 00:38:10,980 --> 00:38:13,120 Ez úgy néz ki, mint a nagyon lemészárolták ezt a programot. 809 00:38:13,120 --> 00:38:16,530 Úgy értem, istenem, ez a két sornyi kódot, és 10 sor a hibák. 810 00:38:16,530 --> 00:38:18,800 De nézd meg a felső egyet. 811 00:38:18,800 --> 00:38:21,640 A be nem jelentett azonosító string. 812 00:38:21,640 --> 00:38:23,270 Mondtam értem Standard I n? 813 00:38:23,270 --> 00:38:23,930 Nem, nem. 814 00:38:23,930 --> 00:38:24,940 Gondoltam string. 815 00:38:24,940 --> 00:38:29,390 >> De hol van a string változó típusú kijelentette, dd mondjunk? 816 00:38:29,390 --> 00:38:30,730 Szóval ez a CS50 a könyvtárban. 817 00:38:30,730 --> 00:38:33,740 Tehát ez nem elegendő, ezek az első pár hétig, csak használni 818 00:38:33,740 --> 00:38:34,860 milyen C ad nekünk. 819 00:38:34,860 --> 00:38:38,120 Én is megyek fel itt, és én sodorhatják az alatt vagy felett, de én 820 00:38:38,120 --> 00:38:40,340 csak tartsa ábécé hogy a dolgok rendben. 821 00:38:40,340 --> 00:38:43,470 Megyek is cs50.h, amely előre telepítve 822 00:38:43,470 --> 00:38:44,900 Önt a CS50 készülék. 823 00:38:44,900 --> 00:38:47,640 És ez nyílt forráskódú, így még az emberek az interneten is használja azt a 824 00:38:47,640 --> 00:38:48,450 saját számítógép. 825 00:38:48,450 --> 00:38:50,700 De jön a CS50 készülék. 826 00:38:50,700 --> 00:38:55,320 >> Tehát most hadd menjek vissza és újrafordítani ezt, hogy helló 1. 827 00:38:55,320 --> 00:38:55,710 A fenébe is. 828 00:38:55,710 --> 00:38:57,240 Még egy hiba. 829 00:38:57,240 --> 00:38:59,370 Hadd felfelé az első, mégis. 830 00:38:59,370 --> 00:39:00,630 Ez egy kicsit bonyolult. 831 00:39:00,630 --> 00:39:03,830 Multi-karakteres karakter konstans. 832 00:39:03,830 --> 00:39:04,890 Ez nem segít nekem. 833 00:39:04,890 --> 00:39:08,220 De vegyük észre, csenget legalább egy kis bit tisztességes, ahol egy kis 834 00:39:08,220 --> 00:39:11,890 zöld kalap szimbólum, azt mondja, Itt, ahol én elcsesztem. 835 00:39:11,890 --> 00:39:16,160 Miért mutat, azzal a kis zöld nyíl, az aposztróf következő 836 00:39:16,160 --> 00:39:18,290 a nevem? 837 00:39:18,290 --> 00:39:20,880 >> Tehát ez az egyik dolog, amit csak szokni, különösen akkor, ha már 838 00:39:20,880 --> 00:39:23,980 programozás Python vagy JavaScript, vagy más nyelven, ha ezt a részletet 839 00:39:23,980 --> 00:39:24,560 nem számít. 840 00:39:24,560 --> 00:39:25,740 A C, nem mindegy. 841 00:39:25,740 --> 00:39:29,520 Ha nyilvánító string, amely sorozata 0 vagy több karakter, 842 00:39:29,520 --> 00:39:32,280 ténylegesen kell használni idézőjelek. 843 00:39:32,280 --> 00:39:36,670 Szóval tényleg kell változtatni ezt vissza megnyitni idézet, idézet zárja, és 844 00:39:36,670 --> 00:39:37,800 idézőjelek. 845 00:39:37,800 --> 00:39:41,610 Aposztrófot megvan a helye, de a csak, ha éppen használja az egyes 846 00:39:41,610 --> 00:39:44,100 karakter, de az, hogy egy másik időben. 847 00:39:44,100 --> 00:39:46,550 Most, az idézőjelek van szükség. 848 00:39:46,550 --> 00:39:50,460 >> Tehát most, hadd menjek vissza a terminál ablak, hogy helló 1. 849 00:39:50,460 --> 00:39:51,450 És ki az a magabiztos? 850 00:39:51,450 --> 00:39:53,800 Ez a program most megy összeállítása helyesen? 851 00:39:53,800 --> 00:39:58,250 852 00:39:58,250 --> 00:39:58,540 OK. 853 00:39:58,540 --> 00:39:59,780 Így hárman gondolom, hogy ez. 854 00:39:59,780 --> 00:40:00,280 Rendben van. 855 00:40:00,280 --> 00:40:01,190 Enter. 856 00:40:01,190 --> 00:40:02,440 És tényleg nem. 857 00:40:02,440 --> 00:40:05,130 Szóval nincs hiba ebben az időben, még bár ez a program ütött egy kicsit 858 00:40:05,130 --> 00:40:05,840 bonyolultabb. 859 00:40:05,840 --> 00:40:10,110 Ha most nem pont perjel szia 1, az Enter, azt fogja mondani "hello, David." 860 00:40:10,110 --> 00:40:11,750 >> De lássuk a harmadik ismétlés E, ahol a 861 00:40:11,750 --> 00:40:13,380 program valóban dinamikus. 862 00:40:13,380 --> 00:40:16,770 Hadd menjek előre, és változtassa meg a fájl név, csak a következetesség a 863 00:40:16,770 --> 00:40:20,410 kép lesz elérhető neked utána az interneten. 864 00:40:20,410 --> 00:40:21,620 Enter. 865 00:40:21,620 --> 00:40:25,510 És most megyek és nem tárolja "David" hard kódolt itt. 866 00:40:25,510 --> 00:40:28,826 Mit tehettem volna, hogy nagyon egyszerű javítja a program? 867 00:40:28,826 --> 00:40:30,520 >> Nevezhetném getstring. 868 00:40:30,520 --> 00:40:33,240 Lehet, hogy egy kicsit nem nyilvánvaló, mi a fog történni, úgyhogy megyek 869 00:40:33,240 --> 00:40:38,470 hogy valóban újabb vonal, printf, és mondd név-, vastagbél-, közel idézet, csak 870 00:40:38,470 --> 00:40:40,790 , hogy a felhasználó a prompt a képernyőn. 871 00:40:40,790 --> 00:40:42,980 És most megyek itt, és én vagyok fogja használni a billentyűkombinációt. 872 00:40:42,980 --> 00:40:47,680 Én megyek fel, fel, és a változás szia szia 1 2 Enter. 873 00:40:47,680 --> 00:40:49,260 És szerencsére, én halad. 874 00:40:49,260 --> 00:40:52,720 >> És most megyek fel a dot slash köszönni, és 875 00:40:52,720 --> 00:40:54,690 változtatni 2, Enter. 876 00:40:54,690 --> 00:40:55,650 És most az én programomat - 877 00:40:55,650 --> 00:40:57,700 Én nagyítani - egyre egy kicsit szebb. 878 00:40:57,700 --> 00:41:02,190 Név lesz, mondjuk Rob Ebben az időben, az Enter, hello, Rob. 879 00:41:02,190 --> 00:41:03,260 Meg tudjuk csinálni újra. 880 00:41:03,260 --> 00:41:05,360 Név, Lauren, Enter. 881 00:41:05,360 --> 00:41:07,820 Név, Joseph, Enter. 882 00:41:07,820 --> 00:41:11,596 Név, próbáljuk lenni nehéz, Enter. 883 00:41:11,596 --> 00:41:12,410 Eh. 884 00:41:12,410 --> 00:41:14,680 Ez nem igazán a hibát. 885 00:41:14,680 --> 00:41:16,090 Tehát ez csak egy kicsit csúnya. 886 00:41:16,090 --> 00:41:18,640 Így talán tudnánk oldani ezt a a jövőben, most nem. 887 00:41:18,640 --> 00:41:20,840 >> De hogyan ösztönösen megy a címzés 888 00:41:20,840 --> 00:41:21,990 az adott kihívás? 889 00:41:21,990 --> 00:41:23,710 Csak úgy néz ki hülye. 890 00:41:23,710 --> 00:41:27,320 Hogyan lehet elkerülni a dolgokat látszó hülye? 891 00:41:27,320 --> 00:41:29,890 Így tehetett, OK, hallottam egy pár a dolgok, ezt az állapotot, és a hurok. 892 00:41:29,890 --> 00:41:33,340 Jól jönne egy, a feltétellel, hogy ellenőrizze mi a string hossza 893 00:41:33,340 --> 00:41:34,190 a felhasználó adott nekünk? 894 00:41:34,190 --> 00:41:37,100 És ha ez 0, ez csak idézni idézet vége, csak Enter, majd 895 00:41:37,100 --> 00:41:38,930 talán kellene kiabálni rájuk és sugallják, újra. 896 00:41:38,930 --> 00:41:39,970 De hogyan a sugallják, újra? 897 00:41:39,970 --> 00:41:44,230 Nos, én is hallottam, hurok, és nem tudtam csinálni újra és újra és újra 898 00:41:44,230 --> 00:41:47,010 kéri a felhasználó ugyanazt a dolgot. 899 00:41:47,010 --> 00:41:48,880 >> Nos, nem egy másik példa ki egy másik 900 00:41:48,880 --> 00:41:50,620 funkciót a CS50 könyvtárban. 901 00:41:50,620 --> 00:41:52,330 Hadd zárjam ezt a fájlt. 902 00:41:52,330 --> 00:41:53,510 Hadd hozzon létre egy újat. 903 00:41:53,510 --> 00:41:58,510 És én hívom adder.c, csak azért, mert ez könnyen, hogy nem egyszerű számtani, 904 00:41:58,510 --> 00:42:00,890 még akkor is, ha ez lesz teljesen underwhelming, amit tehetne 905 00:42:00,890 --> 00:42:02,250 bármilyen modern számítógép. 906 00:42:02,250 --> 00:42:03,750 >> De hadd menjek előre, és most - 907 00:42:03,750 --> 00:42:10,680 Megtanultam a leckét utoljára - tartalmazza cs50.h, include stdio.h, int 908 00:42:10,680 --> 00:42:14,170 Fő semmibe, ami most, én csak vesz vak hit, de tegyük fel 909 00:42:14,170 --> 00:42:16,380 hogy megértsék, mit azt jelenti, hogy nemsokára. 910 00:42:16,380 --> 00:42:21,030 És fogok mondani valamit mint "adj egy int." 911 00:42:21,030 --> 00:42:22,140 >> És most, hogyan kap egy int? 912 00:42:22,140 --> 00:42:26,820 Azt akarom, hogy végül, hogy egy változót hívott x int típusú és 913 00:42:26,820 --> 00:42:29,240 tároljunk benne egy egész szám a felhasználó elől. 914 00:42:29,240 --> 00:42:29,970 Szóval ez egy falatot. 915 00:42:29,970 --> 00:42:35,680 De ha valaki azt akarja, hogy javasolja, hogy Kijelentem, nem egy egész nevű x? 916 00:42:35,680 --> 00:42:36,310 Int x. 917 00:42:36,310 --> 00:42:37,430 >> Tehát ez tényleg ilyen egyszerű. 918 00:42:37,430 --> 00:42:38,240 Adj egy int. 919 00:42:38,240 --> 00:42:39,070 Nevezzük x. 920 00:42:39,070 --> 00:42:40,580 Most már használhatja az értékadó operátor. 921 00:42:40,580 --> 00:42:43,400 És hogyan tárolja a hagyott értéket a felhasználó? 922 00:42:43,400 --> 00:42:47,310 Nem akarom hívni getstring, nyilván, de inkább getInt. 923 00:42:47,310 --> 00:42:49,060 Olyan érveket? 924 00:42:49,060 --> 00:42:49,350 Nem. 925 00:42:49,350 --> 00:42:51,870 Tehát nyitott paren, közel paren azonnal, majd egy 926 00:42:51,870 --> 00:42:53,440 pontosvessző befejezi a vonal. 927 00:42:53,440 --> 00:42:54,930 >> Most hadd ezt újra. 928 00:42:54,930 --> 00:42:57,070 Adj egy int. 929 00:42:57,070 --> 00:43:01,850 Ezúttal én megteszem int, menjünk hívják y, egyenlő getInt. 930 00:43:01,850 --> 00:43:05,060 És most hadd tegyek valami szuper-egyszerű mint egy matek. 931 00:43:05,060 --> 00:43:14,340 Tehát printf, az összeg% d a helyőrző egy int. 932 00:43:14,340 --> 00:43:20,030 És% d, idő, backslash-n. 933 00:43:20,030 --> 00:43:20,360 >> Rendben van. 934 00:43:20,360 --> 00:43:21,670 Tehát ez valójában nem matematika. 935 00:43:21,670 --> 00:43:25,500 De ha azt akarom mondani, az összeg a érték és ez az érték eléri a 936 00:43:25,500 --> 00:43:29,320 más érték, hány érveket teljes kéne hogy printf, 937 00:43:29,320 --> 00:43:30,520 végül? 938 00:43:30,520 --> 00:43:31,420 Tehát négy, nem? 939 00:43:31,420 --> 00:43:33,790 Ez a karakterlánc, majd a három értéket. 940 00:43:33,790 --> 00:43:37,560 Tehát x az első akarok lenni csatlakoztatva először a% d. 941 00:43:37,560 --> 00:43:39,270 y lesz a következő. 942 00:43:39,270 --> 00:43:42,030 >> És most milyen akarom mondani z, de a Z nem létezik. 943 00:43:42,030 --> 00:43:43,190 De ez nem egy nagy ügy. 944 00:43:43,190 --> 00:43:45,440 Mert mit tennél ösztönösen, különösen akkor, ha volt egy 945 00:43:45,440 --> 00:43:47,820 grafikus számológép, mit írjon? 946 00:43:47,820 --> 00:43:48,760 Mit szólnál x plus y? 947 00:43:48,760 --> 00:43:50,200 Tehát ez nem egy valódi változó. 948 00:43:50,200 --> 00:43:51,820 Ez csak az összeg két többi változó. 949 00:43:51,820 --> 00:43:53,170 És ez teljesen jogos. 950 00:43:53,170 --> 00:43:56,630 C biztosan megérti egyszerű számtani, mint ez. 951 00:43:56,630 --> 00:43:58,450 >> Pontosvessző, kivéve. 952 00:43:58,450 --> 00:44:02,080 Most hadd menjen le ide, és make vipera, Enter. 953 00:44:02,080 --> 00:44:04,100 Nem hiba, hogy ez folyamatban is. 954 00:44:04,100 --> 00:44:04,890 Írja vipera. 955 00:44:04,890 --> 00:44:07,100 És még egy billentyűkombináció, ha elkezd unatkozni 956 00:44:07,100 --> 00:44:08,760 minden parancs - 957 00:44:08,760 --> 00:44:12,650 ha elkezd beírni egy parancsot, mint a pont slash ad, és ez az, ahol a 958 00:44:12,650 --> 00:44:16,020 unalom rúgást, akkor általában hit Tab, hogy a számítógép befejezi az 959 00:44:16,020 --> 00:44:20,510 Külföld kifejezés az Ön számára, ha nem egyértelmű, mi után kell ad. 960 00:44:20,510 --> 00:44:23,950 >> Hadd gyerünk már és nyomja meg az Enter. 961 00:44:23,950 --> 00:44:27,490 Adj egy int, 1, 2, és Szerencsére, ez a 3. 962 00:44:27,490 --> 00:44:29,900 De mint mindig, vizsgálati programok nem csökkenthetik a 963 00:44:29,900 --> 00:44:30,820 Csak próbáltam egyszer. 964 00:44:30,820 --> 00:44:35,560 Hadd próbáljam meg a sarokban az esetben, mint a negatív 1, adjon nekem 1, és hogy az egyik 965 00:44:35,560 --> 00:44:36,210 ki ellenőrzi is. 966 00:44:36,210 --> 00:44:38,870 És érdemes csinálni néhány szigorú tesztelés, de nem vagyok elég 967 00:44:38,870 --> 00:44:40,630 kényelmes, ha ez az. 968 00:44:40,630 --> 00:44:43,110 >> Nos, nézzük meg egy másik program hogy ezúttal használ 969 00:44:43,110 --> 00:44:44,620 kicsit más szintaxist. 970 00:44:44,620 --> 00:44:46,100 Hadd hozzon létre egy új fájlt. 971 00:44:46,100 --> 00:44:51,050 Hívom ezt conditions0.c sorban fel néhány minta kódot online. 972 00:44:51,050 --> 00:44:55,550 És hadd menjen előre, és ezt között cs50.h tartalmazzák 973 00:44:55,550 --> 00:45:00,320 stdio.h, a fő érvénytelen - 974 00:45:00,320 --> 00:45:01,030 OK. 975 00:45:01,030 --> 00:45:01,850 Ott vagyunk. 976 00:45:01,850 --> 00:45:03,010 Megvan a standard boilerplate. 977 00:45:03,010 --> 00:45:08,170 >> És most fogok mondani printf, "Szeretnék egy int, kérjük," csak azért, hogy 978 00:45:08,170 --> 00:45:10,030 hogy a prompt egy kis sokkal barátságosabbá teszi. 979 00:45:10,030 --> 00:45:11,620 És most azt akarom, hogy egy int a felhasználó elől. 980 00:45:11,620 --> 00:45:15,010 Fogom nevezni n ebben az időben, csak mert n hangzik számát. 981 00:45:15,010 --> 00:45:18,140 getInt, és most, mit Azt akarom, hogy vele? 982 00:45:18,140 --> 00:45:21,640 Nos, ha n - és én nagyításhoz - 983 00:45:21,640 --> 00:45:25,930 ha n nagyobb, mint 0, akarom hajtsa végre a következő - 984 00:45:25,930 --> 00:45:36,060 printf "Te választottad pozitív szám." Else, megyek, hogy írja printf "Te 985 00:45:36,060 --> 00:45:37,870 felvette a negatív 986 00:45:37,870 --> 00:45:39,650 szám. "Rendben. 987 00:45:39,650 --> 00:45:44,410 Így ez a program, bár én megtettem gyors, jobbra néz szintaktikailag. 988 00:45:44,410 --> 00:45:45,010 Hadd próbáljam meg. 989 00:45:45,010 --> 00:45:46,890 Legyen állapot 0-ra. 990 00:45:46,890 --> 00:45:47,710 Úgy tűnik, hogy fut. 991 00:45:47,710 --> 00:45:49,230 Állapota 0, adja meg. 992 00:45:49,230 --> 00:45:51,910 Adjunk egy int 50. 993 00:45:51,910 --> 00:45:53,160 Felvettem egy pozitív szám. 994 00:45:53,160 --> 00:45:54,230 Próbáljuk meg újra. 995 00:45:54,230 --> 00:45:54,930 Állapota 0. 996 00:45:54,930 --> 00:45:56,260 Negatív 50. 997 00:45:56,260 --> 00:45:57,290 Felvettem egy negatív szám. 998 00:45:57,290 --> 00:46:00,350 >> De most, hadd vegye mit fogunk tartani hívja a sarokban eset, ami több 999 00:46:00,350 --> 00:46:04,702 egy érdekes eset, hogy úgy gondolja Lehet, hogy egy kis baj, 0-ra. 1000 00:46:04,702 --> 00:46:07,940 Nos, biztos vagyok benne, hogy ez az egyik azon helyzetek, amikor nulla 1001 00:46:07,940 --> 00:46:12,330 sem pozitív, sem negatív, így a programot, bár szintaktikailag 1002 00:46:12,330 --> 00:46:15,440 Helyes - lefordul, fut - logikailag nem helyes. 1003 00:46:15,440 --> 00:46:21,050 Szóval mi az egyszerű fix itt, ha azt akarom, felismerni, ha azt akarom, hogy kezelni n 1004 00:46:21,050 --> 00:46:23,840 egyenlő 0 külön-külön? 1005 00:46:23,840 --> 00:46:32,980 >> Tehát, ha n értéke 0, akkor azt akarom mondani, valami hasonló printf "Te választottad 0-ra." 1006 00:46:32,980 --> 00:46:33,990 Hadd próbáljam ezt most. 1007 00:46:33,990 --> 00:46:38,320 Hadd menjek vissza, világos az ablakon, és egy újrafordítás. 1008 00:46:38,320 --> 00:46:38,690 Hm. 1009 00:46:38,690 --> 00:46:39,770 Egy hiba generál. 1010 00:46:39,770 --> 00:46:41,630 De az ellenőrizni kívánt ha n értéke 0-ra. 1011 00:46:41,630 --> 00:46:44,230 1012 00:46:44,230 --> 00:46:47,720 >> Tehát még egyszer, egy ostoba dolog megszokni, egyenlő jel 1013 00:46:47,720 --> 00:46:48,910 az értékadó operátor. 1014 00:46:48,910 --> 00:46:52,240 Tehát ez valójában tévedés abban, technikailag, bár a fordító 1015 00:46:52,240 --> 00:46:56,450 védett meg magamtól, mi lenne technikailag másolás 0-ba n, amely 1016 00:46:56,450 --> 00:46:57,590 nem az, amit akarok. 1017 00:46:57,590 --> 00:47:00,950 Szeretném kipróbálni az egyenlőség az egyenlő egyenlő. 1018 00:47:00,950 --> 00:47:03,390 És így, hogy most lehet, a jobb megoldás. 1019 00:47:03,390 --> 00:47:07,810 >> Hadd valójában mentse ezt, mondjuk, conditions1, hogy új és jobb. 1020 00:47:07,810 --> 00:47:10,480 Tehát most, ha én ezt fordítanod, ez lenne feltételek - 1021 00:47:10,480 --> 00:47:16,960 Hoppá - hogy conditions1 dot slash conditions1, Enter, "Szeretnék egy int, 1022 00:47:16,960 --> 00:47:18,760 kérlek. "fogok menni előre, és írja be 50. 1023 00:47:18,760 --> 00:47:19,660 Még mindig jó. 1024 00:47:19,660 --> 00:47:21,200 Negatív 50, még mindig jó. 1025 00:47:21,200 --> 00:47:24,920 0, és valóban, az észlelt hogy felvettem 0-ra. 1026 00:47:24,920 --> 00:47:28,200 >> Szóval, mi több, most ezzel? 1027 00:47:28,200 --> 00:47:32,280 Nos, akkor biztosan nem nagyobb bonyolult dolgokat. 1028 00:47:32,280 --> 00:47:37,240 De azt szeretném javasolni a , hogy a végén az ezt a megjegyzést itt. 1029 00:47:37,240 --> 00:47:41,680 Ha húzza fel ezt, látni fogja, talán a kedvenc rajzfilm a tiéd 1030 00:47:41,680 --> 00:47:43,326 a mai napig talán sohasem értették. 1031 00:47:43,326 --> 00:47:46,550 1032 00:47:46,550 --> 00:47:49,520 És ez a minőség a nevetés akkor kap a CS vicceket. 1033 00:47:49,520 --> 00:47:51,060 Szóval ez a helyes. 1034 00:47:51,060 --> 00:47:54,900 >> De még feltűnően, gondoltam, nekünk egy kis teaser a hétfő. 1035 00:47:54,900 --> 00:47:56,430 Így már elkezdte használni egészek. 1036 00:47:56,430 --> 00:47:57,510 Már említett úszók. 1037 00:47:57,510 --> 00:48:00,120 Már akkor is említett páros, ami megint kapsz számokat 1038 00:48:00,120 --> 00:48:01,390 után tizedes. 1039 00:48:01,390 --> 00:48:04,230 >> De kiderül, hogy úszik, és páros, és tényleg, a számítógépek, 1040 00:48:04,230 --> 00:48:08,470 alapvetően, nem lehet kifejezni Néhány érték pontosan. 1041 00:48:08,470 --> 00:48:12,840 Tudjuk, matematikai osztályok, hogy tudod bármilyen számú számok után 1042 00:48:12,840 --> 00:48:13,510 tizedes pontossággal. 1043 00:48:13,510 --> 00:48:16,460 És akkor is tesz egy függőleges vonal mondani ezeket örökké. 1044 00:48:16,460 --> 00:48:18,810 >> Sajnos, nem igazán lehet csinálni, hogy egy számítógép. 1045 00:48:18,810 --> 00:48:20,400 És így sarok esetben merül fel. 1046 00:48:20,400 --> 00:48:23,120 Például, tegyük fel, hogy te csinál valamit pénzügyi. 1047 00:48:23,120 --> 00:48:25,700 Jól csinálod matematika A százalékos és 1048 00:48:25,700 --> 00:48:27,030 a dollár és cent. 1049 00:48:27,030 --> 00:48:29,230 És azok cent nem feltétlenül csapatán. 1050 00:48:29,230 --> 00:48:34,120 Nos, kiderült, hogy a frakciók fillérekért lehet kezdeni, hogy adjunk, amikor 1051 00:48:34,120 --> 00:48:37,250 modelleztük a számítógépes rendszer oly módon, hogy az okos 1052 00:48:37,250 --> 00:48:39,100 az emberek kihasználni. 1053 00:48:39,100 --> 00:48:42,650 >> És azok, akik még nem látták, én szeretnék adni egy 30 másodperces teaser 1054 00:48:42,650 --> 00:48:48,290 csodálatos film ismert Office Space, amely festeni egy képet a 1055 00:48:48,290 --> 00:48:51,205 probléma fogjuk kezelni az első dolog, amit hétfőn. 1056 00:48:51,205 --> 00:48:53,960 Ha tudnánk növelni a hangerőt egy kicsit, adok neked 30 1057 00:48:53,960 --> 00:48:55,495 másodperc irodák. 1058 00:48:55,495 --> 00:48:55,770 >> [VIDEÓ LEJÁTSZÁS] 1059 00:48:55,770 --> 00:48:59,000 >> -Úgy értem, te, te még nem mutat , és kapsz tartani az állását. 1060 00:48:59,000 --> 00:49:00,620 >> -Igazából, egyre inkább előtérbe kerül. 1061 00:49:00,620 --> 00:49:03,240 >> -Én is programozni egy vírus, amit rip hogy a hely nagy idő. 1062 00:49:03,240 --> 00:49:04,430 >> Nos, hogyan működik? 1063 00:49:04,430 --> 00:49:06,782 >> -Minden alkalommal, amikor van egy bank tranzakciós kamatozású számítani, és 1064 00:49:06,782 --> 00:49:10,160 Több ezer naponta, a számítógép vége ezekkel a frakciók egy cent. 1065 00:49:10,160 --> 00:49:12,030 >> -De én nem fogok semmit az illegális. 1066 00:49:12,030 --> 00:49:12,660 >> -Illegális? 1067 00:49:12,660 --> 00:49:15,075 Samir, ez Amerika. 1068 00:49:15,075 --> 00:49:16,570 >> -Meg kell Istenre esküszöm. 1069 00:49:16,570 --> 00:49:19,070 >> -Ha senki nem tud róla de minket, rendben? 1070 00:49:19,070 --> 00:49:21,920 Nem családtagok, nem barátnője, senki. 1071 00:49:21,920 --> 00:49:22,700 >> -Természetesen. 1072 00:49:22,700 --> 00:49:23,320 >> -Rendben. 1073 00:49:23,320 --> 00:49:24,280 >> -Ne aggódj, ember. 1074 00:49:24,280 --> 00:49:25,640 Nem mondom el senkinek sem. 1075 00:49:25,640 --> 00:49:26,504 >> [END VIDEÓ LEJÁTSZÁS] 1076 00:49:26,504 --> 00:49:30,030 >> DAVID MALAN: Szóval ez tehát, CS50, ez Office Space, és ez lesz az összes 1077 00:49:30,030 --> 00:49:31,465 értelme hétfőn. 1078 00:49:31,465 --> 00:49:33,940 Viszlát. 1079 00:49:33,940 --> 00:49:37,880 >> Srácok A következő CS50, Rob alkalmazkodik, hogy ki a 1080 00:49:37,880 --> 00:49:39,130 Harvard étrendjükön. 1081 00:49:39,130 --> 00:49:56,160