1 00:00:08,119 --> 00:00:11,630 [Powered by Google Translate] DAVID J. Malan: Rendben, ez CS50, és ez a 2 00:00:11,630 --> 00:00:14,790 kezdődik a hét kettő. 3 00:00:14,790 --> 00:00:16,300 Köszönöm. 4 00:00:16,300 --> 00:00:19,000 Kezdjük itt egy telefonhívást. 5 00:00:19,000 --> 00:00:30,005 Fogok tárcsázni 617-BUG-CS50. 6 00:00:30,005 --> 00:00:31,230 CS50: Ez CS50. 7 00:00:31,230 --> 00:00:33,930 A Shuttle Boy, 1-es gombot. 8 00:00:33,930 --> 00:00:36,660 Ahhoz, hogy kezdjük újra, nyomja meg a 9. 9 00:00:36,660 --> 00:00:38,180 DAVID J. Malan: Szóval azt mondta, a Shuttle Boy, nyomja meg az 1. 10 00:00:38,180 --> 00:00:41,560 Így megyünk az 1 gombot. 11 00:00:41,560 --> 00:00:43,230 CS50: Mi a származás? 12 00:00:43,230 --> 00:00:45,340 A quad, nyomja meg az 1. 13 00:00:45,340 --> 00:00:47,080 Mather, nyomja meg a 2. 14 00:00:47,080 --> 00:00:49,240 Boylston, nyomja meg a 3. 15 00:00:49,240 --> 00:00:51,280 Lamont, nyomja meg a 4. 16 00:00:51,280 --> 00:00:53,210 Mem Hall, nyomja meg az 5. 17 00:00:53,210 --> 00:00:55,660 Ahhoz, hogy kezdjük újra, nyomja meg a 0-ra. 18 00:00:55,660 --> 00:00:59,590 DAVID J. Malan: fogunk 1-es gombot a quad. 19 00:00:59,590 --> 00:01:03,610 CS50: Next gyűjtő elhagyja ezt a nagyon percenként 13:10, és 20 00:01:03,610 --> 00:01:09,820 majd 1:20, 1:30, 1:40 PM. 21 00:01:09,820 --> 00:01:12,030 Ez CS50. 22 00:01:12,030 --> 00:01:15,570 >> DAVID J. Malan: Szóval ez CS50 hangját. 23 00:01:15,570 --> 00:01:18,030 És ez egy példa a fajta végleges projektek esetében 24 00:01:18,030 --> 00:01:19,500 Például, akkor harap ki felé 25 00:01:19,500 --> 00:01:20,600 a végén a félévben. 26 00:01:20,600 --> 00:01:23,840 Például, hogy shuttleboy.cs50.net létezik - 27 00:01:23,840 --> 00:01:28,200 valójában egy projekt, amely először írtam miután CS51 28 00:01:28,200 --> 00:01:29,740 vissza, amikor én voltam az alapképzésben. 29 00:01:29,740 --> 00:01:32,250 És az inspiráció itt volt akkoriban, minden tőlük az volt 30 00:01:32,250 --> 00:01:34,320 A nyomtatott shuttle busz menetrend, és nem volt 31 00:01:34,320 --> 00:01:35,970 fogalma látszó dolgokat online. 32 00:01:35,970 --> 00:01:38,730 És így a fajta galamb az egyik hétvégén, öntötte a 33 00:01:38,730 --> 00:01:41,460 nyomtatott menetrend, és átírta a számítógépes program. 34 00:01:41,460 --> 00:01:43,790 Abban az időben, a számítógépi program történt írandó 35 00:01:43,790 --> 00:01:47,110 A C. És valóban futott begépelésével Shuttle Boy egy 36 00:01:47,110 --> 00:01:48,600 villogó azonnali mintha csináltam eddig. 37 00:01:48,600 --> 00:01:50,450 De az évek során ez alakult át egy pillanatra 38 00:01:50,450 --> 00:01:51,390 üzenetküldés bot. 39 00:01:51,390 --> 00:01:53,970 Ez alakult újabban ebbe a honlapon, egy 40 00:01:53,970 --> 00:01:57,720 SMS-alapú eszközt, valamint ebbe a hang-alapú eszköz. 41 00:01:57,720 --> 00:02:00,170 És ez az, hogy célozni a fajta dolog, amit lehet 42 00:02:00,170 --> 00:02:02,380 tenni magad félév végén. 43 00:02:02,380 --> 00:02:05,490 >> Például, ott, az SMS-változata Shuttle Boy történik 44 00:02:05,490 --> 00:02:06,510 a következőképpen működnek. 45 00:02:06,510 --> 00:02:10,880 Ha a mobiltelefonján, akkor küldjön egy szöveges üzenetet a 41411 és 46 00:02:10,880 --> 00:02:14,300 majd küldje el a speciális szimbólum sboy, a Shuttle Boy, 47 00:02:14,300 --> 00:02:18,350 majd az A és B, ahol A jelentése egy eredete és B jelentése egy 48 00:02:18,350 --> 00:02:19,070 cél - 49 00:02:19,070 --> 00:02:21,030 például Boylston Tér Quad - 50 00:02:21,030 --> 00:02:23,330 mit kell vissza néhány másodpercen belül egy szöveges 51 00:02:23,330 --> 00:02:25,820 üzenet Shuttle Boy mondom, pontosan mikor a 52 00:02:25,820 --> 00:02:28,990 következő néhány transzfer vannak, ettől a pont lesz, hogy a 53 00:02:28,990 --> 00:02:29,640 pont B. 54 00:02:29,640 --> 00:02:32,510 És ez egy sokkal általánosabb példa arra, amit ismert, mint 55 00:02:32,510 --> 00:02:33,920 segítségével API. 56 00:02:33,920 --> 00:02:36,930 >> Így például ez itt csak shuttleboy.cs50.net, a 57 00:02:36,930 --> 00:02:39,300 tényleges web-alapú megtestesülése ezt. 58 00:02:39,300 --> 00:02:42,480 De az adatok hangsúlyozza ezen és más alkalmazások, amelyek CS50 59 00:02:42,480 --> 00:02:45,560 kifejlesztette mind kitéve itt mindenki abban a formában 60 00:02:45,560 --> 00:02:49,340 Az API-k, alkalmazás programozási felületek. 61 00:02:49,340 --> 00:02:52,220 És ez csak a képzelet módja mondván, hogy az emberek szeretnek állunk 62 00:02:52,220 --> 00:02:56,010 az internet és a többiek egy ideig létrehozása 63 00:02:56,010 --> 00:02:59,970 szoftver segítségével annak érdekében, hogy megragad adat nálunk, és 64 00:02:59,970 --> 00:03:02,510 akkor készítsd el a saját alkalmazásokat tetejére 65 00:03:02,510 --> 00:03:03,840 E adathalmaz. 66 00:03:03,840 --> 00:03:06,610 Így például, a Shuttle Boy API oldalon van, ami 67 00:03:06,610 --> 00:03:09,390 történik, hogy a CS50 kézikönyv, lényegében dokumentumok 68 00:03:09,390 --> 00:03:13,080 hogyan megy a kért CS50 kiszolgálók adatokat. 69 00:03:13,080 --> 00:03:16,240 Például, ha ismeri a CSV fájlokat, vessző 70 00:03:16,240 --> 00:03:18,940 elválasztott értékek, ezek csak egyfajta gyors és piszkos 71 00:03:18,940 --> 00:03:20,310 Excel-szerű fájlokat. 72 00:03:20,310 --> 00:03:23,110 Szóval lehet kérni Shuttle Boy az összes adatot az összes 73 00:03:23,110 --> 00:03:25,090 házak és a GPS koordinátákat, és kapsz 74 00:03:25,090 --> 00:03:27,300 vissza, lényegében egy táblázatot, hogy hasonló 75 00:03:27,300 --> 00:03:30,820 akkor majd olvasni egy programot a saját, majd a 76 00:03:30,820 --> 00:03:33,250 generálja az eredményeket, mint a Shuttle Boy magát 77 00:03:33,250 --> 00:03:34,160 történik, hogy csinál. 78 00:03:34,160 --> 00:03:37,030 Azoknak, jobban ismert, több modern adat képviseletek 79 00:03:37,030 --> 00:03:39,420 közé JSON, JavaScript Object Notation. 80 00:03:39,420 --> 00:03:40,620 Valami jön vissza hozzád felé 81 00:03:40,620 --> 00:03:41,720 a végén a félévben. 82 00:03:41,720 --> 00:03:45,440 >> De ismétlem, ez csak egy a több CS50 saját API-kat. 83 00:03:45,440 --> 00:03:48,320 És izgalmas dolog most, ezekben a napokban, a Facebook és a 84 00:03:48,320 --> 00:03:51,110 Twitter és a Google, és elég sok minden népszerű weboldal ből 85 00:03:51,110 --> 00:03:54,130 ott van valamilyen API, ami azt jelenti, ha elolvassa a 86 00:03:54,130 --> 00:03:56,620 dokumentációja a honlapon, akkor regisztrálj egy 87 00:03:56,620 --> 00:03:59,980 fiókot, majd indítsa el a CD-író szoftver tetejére 88 00:03:59,980 --> 00:04:03,680 bármilyen eszköz vagy adatokat a vállalat nem rendelkezik. 89 00:04:03,680 --> 00:04:06,210 És így az egyik saját tanítási fickók egy pár évvel ezelőtt 90 00:04:06,210 --> 00:04:07,620 írt egy Mac verziót. 91 00:04:07,620 --> 00:04:10,990 Tehát a linkre Mac itt a bal felső sarokban, akkor valójában 92 00:04:10,990 --> 00:04:13,940 Töltse le a Mac OS widget, hogy fut a saját Mac, hogy nem a 93 00:04:13,940 --> 00:04:15,040 azonos típusú dolgokat. 94 00:04:15,040 --> 00:04:17,970 Szóval ez az egész épület tetején az adatsorok, mint ezek. 95 00:04:17,970 --> 00:04:21,839 De még azon a vége felé a félévben. 96 00:04:21,839 --> 00:04:25,780 >> Szóval merüljön valós gyorsan egy bug, csak, hogy milyen kap 97 00:04:25,780 --> 00:04:27,990 dolgok bemelegíteni ma, és szerintem vissza néhány 98 00:04:27,990 --> 00:04:29,660 dolgot nézett a múlt héten. 99 00:04:29,660 --> 00:04:32,840 Különösen, hadd menjen előre, és húzza fel, mondjuk, 100 00:04:32,840 --> 00:04:34,080 ez a példa van. 101 00:04:34,080 --> 00:04:37,500 Buggy1.c, ez elérhető a kurzus honlapján, ha volna 102 00:04:37,500 --> 00:04:40,250 szeretné letölteni, és piszkálni körül magad. 103 00:04:40,250 --> 00:04:43,520 De nézzük Nagyításhoz itt most ezt a meglehetősen rövid programot, és csak 104 00:04:43,520 --> 00:04:46,550 egy szuper-gyors bedugni néhány alapvető építőköveit, hogy 105 00:04:46,550 --> 00:04:48,880 tényleg megy csak elkezdi biztosra. 106 00:04:48,880 --> 00:04:51,860 >> Tehát a kék cucc, sorban 1-től 9, csak 107 00:04:51,860 --> 00:04:53,670 softball kérdés. 108 00:04:53,670 --> 00:04:54,590 Szóval ezek csak hozzászólás. 109 00:04:54,590 --> 00:04:56,230 Nekik nincs funkcionális jelentésük. 110 00:04:56,230 --> 00:04:58,460 De ők észrevételeket abban az értelemben, hogy ők megjegyzi, hogy a 111 00:04:58,460 --> 00:05:02,010 Én, az ember, arról, hogy magam annyira, hogy előadás után 112 00:05:02,010 --> 00:05:04,340 előadás, én tényleg emlékszem, mi ez a program 113 00:05:04,340 --> 00:05:07,120 tesz anélkül, hogy olvassa át sorról sorra, és 114 00:05:07,120 --> 00:05:08,990 felüdítő történet a fejemben. 115 00:05:08,990 --> 00:05:11,000 Továbbá, ha adom ezt a programot, hogy valaki másnak, mint a 116 00:05:11,000 --> 00:05:14,420 te, ez sokkal világosabb neked, mert megjegyzéseket, mint ez, 117 00:05:14,420 --> 00:05:16,680 mi a program ténylegesen csinál, vagy legalábbis, amit a 118 00:05:16,680 --> 00:05:18,210 programot kéne csinálnia. 119 00:05:18,210 --> 00:05:20,760 Függetlenül attól, hogy ez a helyes más kérdés összesen. 120 00:05:20,760 --> 00:05:25,040 Most, C, többsoros megjegyzéseket, emlékeztetnek arra, hogy on-line 121 00:05:25,040 --> 00:05:27,880 1 itt van a mágikus szimbólum / *. 122 00:05:27,880 --> 00:05:30,380 Ez azt jelenti, itt jön a kezdete egy megjegyzést. 123 00:05:30,380 --> 00:05:34,560 És semmi más nem számít, amíg el nem éri a végén terminátor, 124 00:05:34,560 --> 00:05:36,700 amely * / az ellenkezője. 125 00:05:36,700 --> 00:05:39,120 Így az a tény, hogy én 80-néhány furcsa csillagos ide 126 00:05:39,120 --> 00:05:41,550 Balról jobbra tényleg csak esztétikai részlet. 127 00:05:41,550 --> 00:05:43,370 Ennek nincs funkcionális jelentése. 128 00:05:43,370 --> 00:05:44,490 >> Most mi a helyzet line 11? 129 00:05:44,490 --> 00:05:46,940 Mit jelent ez a teendő laikus szempontból? 130 00:05:51,560 --> 00:05:52,540 Mi ez? 131 00:05:52,540 --> 00:05:54,280 KÖZÖNSÉG: Tartalmazza a standard. 132 00:05:54,280 --> 00:05:54,740 DAVID J. Malan: OK, jó. 133 00:05:54,740 --> 00:05:57,500 Tehát magában foglalja a stdio.h könyvtár. 134 00:05:57,500 --> 00:05:58,230 Szóval mit jelent ez? 135 00:05:58,230 --> 00:06:01,570 Nos, hogy a belső fájl, stdio.h, egy csomó 136 00:06:01,570 --> 00:06:03,320 funkció nyilatkozatok - 137 00:06:03,320 --> 00:06:05,290 azaz, kód, hogy valaki más írta. 138 00:06:05,290 --> 00:06:08,160 És egy tökéletes példa egy függvény, ami bejelentett 139 00:06:08,160 --> 00:06:10,250 stdio.h jelentése - 140 00:06:10,250 --> 00:06:11,980 amely a kedvenc már? 141 00:06:11,980 --> 00:06:14,300 Így printf, az egyik a leggyakoribbak használni, biztosan 142 00:06:14,300 --> 00:06:15,840 korán, az a könyvtár van. 143 00:06:15,840 --> 00:06:19,290 Ha azt zárja ki, hogy a sort, csenget fog kiabálni 144 00:06:19,290 --> 00:06:22,550 rám valamit használ illegális szimbólum. 145 00:06:22,550 --> 00:06:24,930 Valami nem jelentett talán a kulcsszó, mert a 146 00:06:24,930 --> 00:06:27,770 még nem tájékoztatták a fordító milyen printf néz 147 00:06:27,770 --> 00:06:29,230 mint ha nem tartalmazza ezt a sort. 148 00:06:29,230 --> 00:06:31,830 És még le a Földre, tényleg, hogy mit mond a vonal 149 00:06:31,830 --> 00:06:34,890 megnyitja a fájlt, stdio.h, ahol ez a szerver 150 00:06:34,890 --> 00:06:38,200 merevlemez, vagy a készülék merevlemezére, és a copy-paste is 151 00:06:38,200 --> 00:06:40,240 ott az én fájl, anélkül, hogy a 152 00:06:40,240 --> 00:06:41,730 kelljen csinálni kézzel. 153 00:06:41,730 --> 00:06:44,420 >> Most, ha egyszer jutunk ide a fő, nemsokára indulunk 154 00:06:44,420 --> 00:06:46,900 ugratás egymástól milyen int és mi void van. 155 00:06:46,900 --> 00:06:48,430 De most nézzük meg a három vonal 156 00:06:48,430 --> 00:06:50,350 belül, 15-17. 157 00:06:50,350 --> 00:06:52,250 Ez itt azt állítják, mint a hibás. 158 00:06:52,250 --> 00:06:54,900 7. sor az én megjegyzések azt mondja: "Ha nyomtatása 10 159 00:06:54,900 --> 00:06:59,410 csillag, de nem. "Miért ez nem nyomtat, sőt, 160 00:06:59,410 --> 00:07:01,097 10 ilyen csillagok? 161 00:07:01,097 --> 00:07:02,347 KÖZÖNSÉG: [hangtalan]. 162 00:07:05,210 --> 00:07:05,800 DAVID J. Malan: Pontosan. 163 00:07:05,800 --> 00:07:08,720 Tehát észre, hogy kezdünk számolni 0-tól. 164 00:07:08,720 --> 00:07:10,780 És ez valójában egy egyezmény a programozás és 165 00:07:10,780 --> 00:07:13,230 számítógép-tudomány általában, kezdve számít 166 00:07:13,230 --> 00:07:14,610 0-1 helyett. 167 00:07:14,610 --> 00:07:16,690 És ez tényleg csak abból adódik, hogy a 168 00:07:16,690 --> 00:07:18,940 Például, amikor már nyolc ember a színpadon, amikor a 169 00:07:18,940 --> 00:07:20,680 senki sem emelte a kezét, ők 170 00:07:20,680 --> 00:07:22,340 összes ténylegesen nulla. 171 00:07:22,340 --> 00:07:24,260 És ez csak egyfajta számítógép egyezmény úgy, 172 00:07:24,260 --> 00:07:26,030 tehát, hogy indítsa el számolás 0-tól. 173 00:07:26,030 --> 00:07:29,130 Ha ez a legalacsonyabb szám is képviseli bináris. 174 00:07:29,130 --> 00:07:32,270 >> Tehát itt kezdtem inicializálása i 0-ra. 175 00:07:32,270 --> 00:07:34,230 Már állítva i 0-val egyenlő. 176 00:07:34,230 --> 00:07:37,780 De aztán tette ezt a hibát itt, mondván i kisebb vagy 177 00:07:37,780 --> 00:07:38,820 egyenlő 10-ig. 178 00:07:38,820 --> 00:07:41,700 De ha úgy gondolja, hogy a, ha 0-val kezdődnek, és aztán megyek 179 00:07:41,700 --> 00:07:46,410 legfeljebb 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, én valóban lesz 180 00:07:46,410 --> 00:07:49,980 nyomtassa ki 11 csillag a képernyőre, mert már emelkedett 181 00:07:49,980 --> 00:07:52,410 A, és egyenlő a 10-ig. 182 00:07:52,410 --> 00:07:55,090 Így a könnyű megoldás itt, akkor mi? 183 00:07:55,090 --> 00:07:56,070 KÖZÖNSÉG: [hangtalan]. 184 00:07:56,070 --> 00:07:57,350 DAVID J. Malan: Csak változtatni, hogy kevesebb, mint. 185 00:07:57,350 --> 00:07:59,700 Ha szeretné, akkor ezt. 186 00:07:59,700 --> 00:08:01,370 De általában, ez elítélik. 187 00:08:01,370 --> 00:08:04,020 És így kezd számolni 0-tól csak amit kell 188 00:08:04,020 --> 00:08:05,510 általában szokni. 189 00:08:05,510 --> 00:08:07,810 Nos, mi ez az egész konstrukció önmagában? 190 00:08:07,810 --> 00:08:10,640 Ez a vonal 15 demarks egy for ciklust. 191 00:08:10,640 --> 00:08:12,510 Tehát nem egy funkció. 192 00:08:12,510 --> 00:08:13,640 Ez csak egy nyilatkozat. 193 00:08:13,640 --> 00:08:16,180 Ez egy looping konstrukció, mint láttuk Scratch. 194 00:08:16,180 --> 00:08:17,600 És ez három részből áll. 195 00:08:17,600 --> 00:08:19,740 Figyeljük meg, hogy van az első rész 196 00:08:19,740 --> 00:08:21,350 a bal oldalon a pontosvessző. 197 00:08:21,350 --> 00:08:24,200 Ott van a középső részt a két pontosvessző. 198 00:08:24,200 --> 00:08:26,250 És akkor ott van a jobb oldali részén a jobb 199 00:08:26,250 --> 00:08:27,640 a második pontosvessző. 200 00:08:27,640 --> 00:08:31,822 Most, az első ilyen mit csinál? 201 00:08:31,822 --> 00:08:33,679 KÖZÖNSÉG: [hangtalan]. 202 00:08:33,679 --> 00:08:34,270 DAVID J. Malan: Back ott? 203 00:08:34,270 --> 00:08:34,816 Igen? 204 00:08:34,816 --> 00:08:35,980 KÖZÖNSÉG: Inicializálási. 205 00:08:35,980 --> 00:08:36,850 >> DAVID J. Malan: Inicializálási. 206 00:08:36,850 --> 00:08:37,840 Szóval mit jelent ez? 207 00:08:37,840 --> 00:08:40,690 Van hirdetett nevű változó i. 208 00:08:40,690 --> 00:08:43,840 Ez a típus int, mert már meg int i. 209 00:08:43,840 --> 00:08:46,470 És én inicializálása i értékét 0-ra. 210 00:08:46,470 --> 00:08:47,730 Szóval, mi is ez valójában mondani? 211 00:08:47,730 --> 00:08:50,680 Ez gyakorlatilag azt mondja, hogy a számítógép hé, adj elég 212 00:08:50,680 --> 00:08:53,660 memória, elég RAM, hogy illeszkedjen a számot, majd helyezze a 213 00:08:53,660 --> 00:08:56,130 0 szám, hogy darabja a RAM. 214 00:08:56,130 --> 00:08:59,100 És mint egy félre, mekkora egy int általában, legalábbis belülről 215 00:08:59,100 --> 00:09:00,280 a készülék? 216 00:09:00,280 --> 00:09:01,000 KÖZÖNSÉG: 32 bit. 217 00:09:01,000 --> 00:09:01,670 DAVID J. Malan: 32 bit. 218 00:09:01,670 --> 00:09:04,890 Ez azt jelenti, hogy nekem 32 bit, más néven 4 byte, 219 00:09:04,890 --> 00:09:07,250 és helyezze a 0 érték benne, ami elég egyszerű, mert 220 00:09:07,250 --> 00:09:09,110 ez csak azt jelenti, hogy meghatározott összes bitet 0-ra. 221 00:09:09,110 --> 00:09:11,690 >> Tehát most, a második rész itt a feltételt. 222 00:09:11,690 --> 00:09:14,590 És a feltétel, ahogy a neve is sugallja, mi a vizsgálat 223 00:09:14,590 --> 00:09:18,100 újra és újra és újra, hogy vajon ez igaz-e vagy hamis. 224 00:09:18,100 --> 00:09:21,410 Szóval, ez csak azt mondom, tegye be a következő sorokat a kód - 225 00:09:21,410 --> 00:09:23,950 nevezetesen a 16 vezetéken, mert ez az egyetlen tagolt 226 00:09:23,950 --> 00:09:24,820 alatt - 227 00:09:24,820 --> 00:09:26,980 amíg én 10-nél kisebb. 228 00:09:26,980 --> 00:09:30,520 És miután minden egyes iterációs ezen keresztül hurok, végezze el a 229 00:09:30,520 --> 00:09:33,840 Növelés, amely ebben az esetben az i + +. 230 00:09:33,840 --> 00:09:35,580 Most, nem kell, hogy i + +. 231 00:09:35,580 --> 00:09:37,610 Lehet, hogy i -. 232 00:09:37,610 --> 00:09:39,860 De ha ezt tettem, mi a viselkedés megy 233 00:09:39,860 --> 00:09:41,370 -e, hogy ezzel a programmal? 234 00:09:41,370 --> 00:09:42,290 KÖZÖNSÉG: Ez lesz egy végtelen ciklus. 235 00:09:42,290 --> 00:09:44,060 DAVID J. Malan: Ez lesz valamiféle végtelen ciklus, 236 00:09:44,060 --> 00:09:47,720 hacsak szerencsénk után negatív 2000000000, vagy úgy. 237 00:09:47,720 --> 00:09:51,320 Lehet, hogy a dolgok köré, csak a természet a véges 238 00:09:51,320 --> 00:09:53,930 bitek száma, hogy már kiosztott egy int. 239 00:09:53,930 --> 00:09:56,270 De ez biztosan fog navigálhat sokkal több, mint 10, és 240 00:09:56,270 --> 00:09:58,630 bizonnyal több mint 11-szer van. 241 00:09:58,630 --> 00:10:02,240 >> És most, ahogy Mellesleg, rájönnek, hogy i + + és i - 242 00:10:02,240 --> 00:10:04,420 tényleg csak szintaktikai cukor. 243 00:10:04,420 --> 00:10:07,210 Ez csak összevont írásmód mi egy kicsit 244 00:10:07,210 --> 00:10:08,720 kifejezetten írott az alábbiak szerint: 245 00:10:08,720 --> 00:10:11,200 i = i + 1. 246 00:10:11,200 --> 00:10:13,460 , Amely azonos a i + +. 247 00:10:13,460 --> 00:10:15,860 Csak a fajta úgy néz ki, csinosabb mondani i + +. 248 00:10:15,860 --> 00:10:17,490 Ez tömörebb, könnyebben olvasható. 249 00:10:17,490 --> 00:10:19,030 És a legtöbb ember csinálni helyette. 250 00:10:19,030 --> 00:10:21,840 De ez azonos funkcionálisan 251 00:10:21,840 --> 00:10:22,900 amit most láttam. 252 00:10:22,900 --> 00:10:27,770 Tehát röviden, a gyors javítás itt csak mondani navigálhat i 253 00:10:27,770 --> 00:10:30,690 0-tól egészen a kevesebb mint 10-ig. 254 00:10:30,690 --> 00:10:32,700 És aztán valóban kap 10 csillag. 255 00:10:32,700 --> 00:10:33,430 >> Akkor próbáljuk meg. 256 00:10:33,430 --> 00:10:35,310 Hadd nyissa ki a terminál alján. 257 00:10:35,310 --> 00:10:37,420 Hadd menjek be a könyvtárba, hogy ez be 258 00:10:37,420 --> 00:10:40,030 És én fogom fordítani, hogy kézzel csenget most. 259 00:10:40,030 --> 00:10:44,880 És én fogom fordítani ezt buggy1.c, Enter. 260 00:10:44,880 --> 00:10:50,280 És most buggy1, miért nincs ilyen fájl vagy könyvtár 261 00:10:50,280 --> 00:10:52,026 hívott buggy1? 262 00:10:52,026 --> 00:10:53,850 KÖZÖNSÉG: [hangtalan]. 263 00:10:53,850 --> 00:10:54,240 DAVID J. Malan: Igen. 264 00:10:54,240 --> 00:10:55,420 Szóval ez tényleg hívják a.out. 265 00:10:55,420 --> 00:10:57,480 Szóval, visszahívása, ha csak futni csenget, ha csenget a 266 00:10:57,480 --> 00:11:00,420 fordító, és nem adja meg a kívánt nevet 267 00:11:00,420 --> 00:11:03,550 adni a program, ez lesz az alapértelmezett a a.out. 268 00:11:03,550 --> 00:11:05,030 Szóval, tényleg, ha én ls - 269 00:11:05,030 --> 00:11:05,510 hoppá. 270 00:11:05,510 --> 00:11:07,680 És én Nem mondta - a fekete-fehér kérdés egyes 271 00:11:07,680 --> 00:11:08,840 akkor szembe került. 272 00:11:08,840 --> 00:11:10,670 De hadd tegyem ezt. 273 00:11:10,670 --> 00:11:14,570 Ott van a.out a bal oldalon van. 274 00:11:14,570 --> 00:11:17,360 Tehát futtatni a.out helyett buggy1. 275 00:11:17,360 --> 00:11:19,140 >> Szóval hadd menjen előre, és ezt. 276 00:11:19,140 --> 00:11:22,840 . / A.out, Enter. 277 00:11:22,840 --> 00:11:26,160 És nyilvánvalóan nem mit csináljon? 278 00:11:26,160 --> 00:11:26,620 KÖZÖNSÉG: Mentés. 279 00:11:26,620 --> 00:11:27,390 DAVID J. Malan: Mentés a fájlt. 280 00:11:27,390 --> 00:11:31,520 Annak érdekében, hogy könnyen megoldható ütő Control S, vagy megy 281 00:11:31,520 --> 00:11:33,450 Fájl, Mentés, mint a legtöbb program. 282 00:11:33,450 --> 00:11:36,360 Hadd menjek le ide, törölje a képernyőt, futtassa újra. 283 00:11:36,360 --> 00:11:37,960 És van még egy bogarat. 284 00:11:37,960 --> 00:11:41,618 Szóval, mi folyik itt - 285 00:11:41,618 --> 00:11:42,980 KÖZÖNSÉG: Nem összeállításához. 286 00:11:42,980 --> 00:11:44,040 DAVID J. Malan: Ah, jó. 287 00:11:44,040 --> 00:11:45,010 Én nem összeállításhoz. 288 00:11:45,010 --> 00:11:47,250 Mint egy idióta, nézem a kódot, hogy mi a baj. 289 00:11:47,250 --> 00:11:51,275 Szóval csenget buggy1.c most a.out. 290 00:11:51,275 --> 00:11:52,640 És puff, mentve. 291 00:11:52,640 --> 00:11:55,090 >> Tehát úgy néz ki, egy kicsit csúnya, mert nincs új sor 292 00:11:55,090 --> 00:11:55,970 bárhol a programban. 293 00:11:55,970 --> 00:11:57,390 De ismétlem, ez csak esztétikai részlet. 294 00:11:57,390 --> 00:11:59,430 És legalább ha mi számít e ki, meg kellene 295 00:11:59,430 --> 00:12:01,160 most látok 10 ilyen csillagokat. 296 00:12:01,160 --> 00:12:03,260 Nos, mi ez a második bemelegítés példa? 297 00:12:03,260 --> 00:12:07,750 Tehát buggy2 azt állítják, hogy ez a verzió is nyomtat 298 00:12:07,750 --> 00:12:10,110 10 csillag, soronként egyet. 299 00:12:10,110 --> 00:12:12,340 Tehát ebben az időben, van egy újsor karakter, csak azért, hogy 300 00:12:12,340 --> 00:12:13,520 a dolgok egy kicsit szebb. 301 00:12:13,520 --> 00:12:15,410 De ahelyett, hogy mit kapok, ez. 302 00:12:15,410 --> 00:12:19,590 Szóval hadd csináljam csenget buggy2.c, Enter. 303 00:12:19,590 --> 00:12:21,790 Most már újra hívják a.out. 304 00:12:21,790 --> 00:12:23,130 Az Enter billentyűt. 305 00:12:23,130 --> 00:12:26,900 Én csak látni egy új sort, csak az utolsó új vonal 306 00:12:26,900 --> 00:12:29,370 költözik a prompt a következő sorra. 307 00:12:29,370 --> 00:12:32,660 És mégis egyértelműen voltam nyomtatás *, majd egy új sort, 308 00:12:32,660 --> 00:12:33,990 *, Majd egy új sort. 309 00:12:33,990 --> 00:12:35,490 De mi a hiba itt? 310 00:12:35,490 --> 00:12:35,974 Igen? 311 00:12:35,974 --> 00:12:37,224 KÖZÖNSÉG: [hangtalan]. 312 00:12:39,850 --> 00:12:40,470 >> DAVID J. Malan: Pontosan. 313 00:12:40,470 --> 00:12:44,110 Tehát ellentétben néhány nyelv, mint a Python, ahol behúzás 314 00:12:44,110 --> 00:12:46,030 valójában funkcionális jelentését, a 315 00:12:46,030 --> 00:12:47,150 nyelv, mint a C - 316 00:12:47,150 --> 00:12:49,140 mint látni fogjuk, PHP, JavaScript - 317 00:12:49,140 --> 00:12:51,940 A behúzás tényleg csak az emberek javára. 318 00:12:51,940 --> 00:12:55,690 Így az a tény, hogy már behúzott vonal 16 és 17 jól néz ki, 319 00:12:55,690 --> 00:12:57,530 de nincs funkcionális jelentéssel. 320 00:12:57,530 --> 00:13:00,700 Ha azt akarom, mindkét vonalon végrehajtani részeként a 321 00:13:00,700 --> 00:13:05,140 hurok, akkor csatolnia kell azokat kapcsos zárójelek által ezt. 322 00:13:05,140 --> 00:13:08,540 Csak vágni, hogy a sarokba, és elhagyhatjuk a kapcsos zárójelek, ha 323 00:13:08,540 --> 00:13:10,036 mi a helyzet? 324 00:13:10,036 --> 00:13:10,410 KÖZÖNSÉG: Csak egy sort. 325 00:13:10,410 --> 00:13:11,130 DAVID J. Malan: Csak egy sort. 326 00:13:11,130 --> 00:13:15,280 Szóval, ez csak egyfajta szép egyfajta szintaktikai részletességgel, hogy a 327 00:13:15,280 --> 00:13:17,900 Ön nem vesztegeti az idejét írásban három sor, melyek közül kettő 328 00:13:17,900 --> 00:13:20,040 kapcsos zárójelek, csak írni egy sort. 329 00:13:20,040 --> 00:13:21,650 De ha két vagy több vonal, mi 330 00:13:21,650 --> 00:13:22,860 Valóban szükség van erre. 331 00:13:22,860 --> 00:13:24,210 >> És most hadd mentse el ezt. 332 00:13:24,210 --> 00:13:27,140 Hadd menjek előre, és futtassa újra csenget. 333 00:13:27,140 --> 00:13:31,375 Akkor hadd futtasd a.out, és most őket, soronként egyet. 334 00:13:31,375 --> 00:13:33,670 Most a.out megint egyfajta buta név egy program. 335 00:13:33,670 --> 00:13:37,500 Honnan tudhatom, hogy valóban csenget adjon nekem egy fájlnevet 336 00:13:37,500 --> 00:13:39,820 ez még inkább felhasználóbarát, mint buggy2 magát? 337 00:13:43,200 --> 00:13:44,466 Egy kicsit pontosabban? 338 00:13:44,466 --> 00:13:45,220 KÖZÖNSÉG: [hangtalan]. 339 00:13:45,220 --> 00:13:47,810 DAVID J. Malan: OK, úgyhogy valóban megteszi a nagyon 340 00:13:47,810 --> 00:13:51,000 felhasználóbarát parancsikont, és csak annyit írj, hogy buggy2. 341 00:13:51,000 --> 00:13:53,840 Én nem adja. C ebben az esetben, és nyomja meg az Entert. 342 00:13:53,840 --> 00:13:58,530 És mit jelent az, hogy lefordul buggy2.c nekem a 343 00:13:58,530 --> 00:14:00,260 kérve csenget csinálni. 344 00:14:00,260 --> 00:14:05,100 Konkrétan arra kéri csenget, fut csenget a módon több 345 00:14:05,100 --> 00:14:08,540 parancssori kapcsolókat, vagy, mint én valójában szüksége van. 346 00:14:08,540 --> 00:14:11,270 Idővel, akkor gyere vissza, amit az összes ilyen különféle 347 00:14:11,270 --> 00:14:13,810 rejtélyes kötőjeles kifejezések jelent. 348 00:14:13,810 --> 00:14:16,910 De most, hogy ez csak megmentettél a baj 349 00:14:16,910 --> 00:14:19,600 tekintettel, hogy emlékezzen, és, hogy írja ki az összes e 350 00:14:19,600 --> 00:14:21,150 Különböző kötőjeles kifejezések. 351 00:14:21,150 --> 00:14:23,240 És a fejjel rá végső soron 352 00:14:23,240 --> 00:14:25,900 hogy most már buggy2. 353 00:14:25,900 --> 00:14:27,480 Ha azt akarom, hogy ezt manuálisan, bár én 354 00:14:27,480 --> 00:14:28,775 ehelyett ezt - 355 00:14:28,775 --> 00:14:34,110 csengés-o buggy2 majd buggy2.c. 356 00:14:34,110 --> 00:14:37,980 És ez hasonlóképpen adj egy nevű fájlt buggy2. 357 00:14:37,980 --> 00:14:39,710 >> Tehát röviden, csenget ez a fordító. 358 00:14:39,710 --> 00:14:43,080 Győződjön meg csak egy felhasználóbarát eszköz, hogy mi lesz a további 359 00:14:43,080 --> 00:14:44,420 és a több, mivel ez csak elkezd 360 00:14:44,420 --> 00:14:47,330 egyszerűsíteni a dolgokat nekünk. 361 00:14:47,330 --> 00:14:49,430 És vissza 0, végül. 362 00:14:49,430 --> 00:14:51,890 Most, csak azért, mert, de kezdünk ugratás része 363 00:14:51,890 --> 00:14:52,930 ma és szerdán. 364 00:14:52,930 --> 00:14:55,560 Van még kérdése bármelyik ez? 365 00:14:55,560 --> 00:14:56,450 Igen? 366 00:14:56,450 --> 00:14:58,234 KÖZÖNSÉG: [hangtalan] 367 00:14:58,234 --> 00:15:00,020 ls idézőjelek ott? 368 00:15:00,020 --> 00:15:01,710 DAVID J. Malan: OK. 369 00:15:01,710 --> 00:15:05,880 Mikor gépelt ls az árajánlatok, amit én csinál valami varázslat 370 00:15:05,880 --> 00:15:07,160 a színfalak mögött, hogy rögzíti a hibát. 371 00:15:07,160 --> 00:15:09,370 Elfelejtettem, mintha már mondtam sokan a 372 00:15:09,370 --> 00:15:11,600 fórumok, van - 373 00:15:11,600 --> 00:15:17,220 mi ezt most - sudo yum-y frissítés appliance50. 374 00:15:17,220 --> 00:15:19,790 Hoppá, hogy ez leírva van. 375 00:15:19,790 --> 00:15:23,240 Így a készülék, mint egy operációs rendszer. 376 00:15:23,240 --> 00:15:25,650 Ez fut ezt az operációs rendszert, a Fedora. 377 00:15:25,650 --> 00:15:27,450 És most, mert az én lassú internet-kapcsolat, Nekem 378 00:15:27,450 --> 00:15:28,260 Tényleg Elárasztott meg. 379 00:15:28,260 --> 00:15:31,620 Szóval futó sudo yum frissítés, ahogy azt mondjuk, hogy nem a 380 00:15:31,620 --> 00:15:34,080 probléma set, lényegében hasonló fut automatikus frissítések 381 00:15:34,080 --> 00:15:35,420 Mac OS vagy Windows. 382 00:15:35,420 --> 00:15:37,280 És az oka futtatása legelején a 383 00:15:37,280 --> 00:15:39,640 probléma halmaz, mert amikor létrehoztuk a készüléket, I 384 00:15:39,640 --> 00:15:42,480 elrontottam, és én véletlenül készült az összes programot néz 385 00:15:42,480 --> 00:15:45,210 fekete a fekete képernyő, ezért ön nem látta őket 386 00:15:45,210 --> 00:15:45,860 alapértelmezés szerint. 387 00:15:45,860 --> 00:15:48,020 De a legújabb verzióját a készülék rögzíti ezt. 388 00:15:48,020 --> 00:15:50,500 És Megcsinálom hogy közben szünet, ha már van internet 389 00:15:50,500 --> 00:15:51,280 kapcsolatot. 390 00:15:51,280 --> 00:15:54,630 >> Tehát az idézőjelek csak elrejti a hibát, nagyon diszkréten, 391 00:15:54,630 --> 00:15:55,730 látszólag. 392 00:15:55,730 --> 00:15:56,980 Egyéb kérdés? 393 00:15:59,750 --> 00:16:00,668 Igen? 394 00:16:00,668 --> 00:16:02,012 KÖZÖNSÉG: Ha nem teszi származik? 395 00:16:02,012 --> 00:16:03,810 [Hallhatatlan] 396 00:16:03,810 --> 00:16:04,280 DAVID J. Malan: Jó kérdés. 397 00:16:04,280 --> 00:16:05,460 Ha nem teszi származik? 398 00:16:05,460 --> 00:16:09,390 Ez egy olyan Linux-program, amely már sok éve, hosszú 399 00:16:09,390 --> 00:16:10,570 előtt CS50. 400 00:16:10,570 --> 00:16:12,930 És jön egy operációs rendszer, mint a Fedora. 401 00:16:12,930 --> 00:16:14,830 Nem származik CS50 könyvtárból. 402 00:16:14,830 --> 00:16:17,560 Valójában, az egyetlen dolog, hogy jön a CS50 könyvtárból 403 00:16:17,560 --> 00:16:20,470 eddig, hogy láttuk, a getString, getInt, minden 404 00:16:20,470 --> 00:16:25,550 e Get funkciók, és a szó string, és bizonyos 405 00:16:25,550 --> 00:16:26,575 mértékben, a szó bool. 406 00:16:26,575 --> 00:16:29,180 De mi ugratni, hogy eltekintve, amikor belevetik magukat a CS50 407 00:16:29,180 --> 00:16:30,580 készüléken. 408 00:16:30,580 --> 00:16:32,820 >> Szóval igen, még egy kérdés itt. 409 00:16:32,820 --> 00:16:36,636 KÖZÖNSÉG: Amikor azt mondta, hogy majd a buggy, hogyan működik a 410 00:16:36,636 --> 00:16:39,980 számítógép tudja [nem hallható]? 411 00:16:39,980 --> 00:16:40,520 DAVID J. Malan: Jó kérdés. 412 00:16:40,520 --> 00:16:43,830 Tehát, ha csak futtasd a make buggy1 vagy hogy buggy2, hogyan 413 00:16:43,830 --> 00:16:45,220 nem teszi tudja? 414 00:16:45,220 --> 00:16:49,900 Szóval alapértelmezés szerint, ha írja, hogy buggy1, hogy néz ki egy 415 00:16:49,900 --> 00:16:52,330 nevű fájl buggy1.c. 416 00:16:52,330 --> 00:16:55,570 És akkor végrehajtja a megfelelő csenget parancsokat, 417 00:16:55,570 --> 00:17:00,380 ezzel felülírva az alapértelmezett kimeneti fájl neve a.out. 418 00:17:00,380 --> 00:17:03,670 Valójában, ha megnézzük, hogy mit csinál, milyen - 419 00:17:03,670 --> 00:17:04,839 menjünk kilépéshez. 420 00:17:04,839 --> 00:17:09,530 Ha megnézzük, mi teszi valójában csinál, hogy buggy2, 421 00:17:09,530 --> 00:17:10,470 ez már naprakész. 422 00:17:10,470 --> 00:17:13,020 Szóval hadd vegye ki az rm parancsot, a 423 00:17:13,020 --> 00:17:14,319 programot írtam korábban. 424 00:17:14,319 --> 00:17:17,319 Beírás Y-E-S annak megerősítésére, hogy szeretnék eltávolítani. 425 00:17:17,319 --> 00:17:20,480 Ha most megcsináljuk, észreveheti, hogy ebben a nagyon hosszú sorban, 426 00:17:20,480 --> 00:17:22,980 van egy utolsó dolog, amit itt-o buggy2. 427 00:17:22,980 --> 00:17:26,959 Minden gyártmányt csinál halad ez az érv, hogy úgy mondjam, a 428 00:17:26,959 --> 00:17:29,665 Csenget, hogy nem kell beírni magam. 429 00:17:29,665 --> 00:17:32,660 >> Rendben, tehát egy gyors pár közigazgatási 430 00:17:32,660 --> 00:17:33,470 közleményei. 431 00:17:33,470 --> 00:17:36,940 Tehát a szakaszok, amelyek hivatalosan is megkezdte a jövő 432 00:17:36,940 --> 00:17:38,970 Vasárnap, akkor mindig szeretné, hogy, ha a 433 00:17:38,970 --> 00:17:40,120 van egy, egy laptop. 434 00:17:40,120 --> 00:17:42,570 Ha Ön nem rendelkezik a laptop, akkor érhetünk el nekem 435 00:17:42,570 --> 00:17:43,580 csepegtető nekem egy e-mailt. 436 00:17:43,580 --> 00:17:44,810 És mi kitaláljuk a munkafolyamatot. 437 00:17:44,810 --> 00:17:47,100 Mi általában talál szakaszban, hogy ők részt 438 00:17:47,100 --> 00:17:48,770 fogalmi, részben hands-on. 439 00:17:48,770 --> 00:17:52,190 Majd külön használni szakasza kérdések egy része 440 00:17:52,190 --> 00:17:54,110 A hét problémája készlet, séta néhány 441 00:17:54,110 --> 00:17:55,820 fogalmi anyag előadás. 442 00:17:55,820 --> 00:17:57,480 És ez mind a jelenlegi problémát set. 443 00:17:57,480 --> 00:18:00,010 És mi is belevetik magukat néhány gyakorlati tevékenységek, néha 444 00:18:00,010 --> 00:18:02,190 ebből lesz szükség, hogy be kell nyújtani, néha 445 00:18:02,190 --> 00:18:02,830 melyek nem. 446 00:18:02,830 --> 00:18:04,630 Például, az első héten, ők azt jelentette, éppen mint egy 447 00:18:04,630 --> 00:18:05,780 bemelegítő gyakorlat. 448 00:18:05,780 --> 00:18:07,800 És rájössz, hogy ezek a problémák valóban csak ezt. 449 00:18:07,800 --> 00:18:10,220 Ők azt jelentette, hogy viszonylag kicsi, de nem feltétlenül 450 00:18:10,220 --> 00:18:13,100 triviális programokat írni, amelyek nem feltétlenül 451 00:18:13,100 --> 00:18:16,230 izgalmas és maguk, hanem jó lehetőséget 452 00:18:16,230 --> 00:18:19,620 gyakorolni szintaxis, az új funkciók, a kényelmet egy 453 00:18:19,620 --> 00:18:21,900 rész, ahol van egy pár a osztálytársaival jelenthetnek 454 00:18:21,900 --> 00:18:22,870 valamint a TF. 455 00:18:22,870 --> 00:18:26,210 >> És mit fogunk csinálni időbeli nevű eszközt használjuk CS50 Spaces, 456 00:18:26,210 --> 00:18:28,940 amely ahelyett, hogy csak a CS50 Appliance, akkor 457 00:18:28,940 --> 00:18:32,450 ehelyett megy egy weboldal a böngészőben, ahol képes lesz arra, 458 00:18:32,450 --> 00:18:35,610 kódot írni egy böngészőablakban közben részben. 459 00:18:35,610 --> 00:18:38,240 És akkor, ha úgy dönt be, az oktatás többi ezután megjelenítése 460 00:18:38,240 --> 00:18:40,980 bármit is írsz a képernyőn az Ön böngészőjében 461 00:18:40,980 --> 00:18:43,930 ablak fel az osztály elé, akár névtelenül vagy 462 00:18:43,930 --> 00:18:47,250 nyilvánosan, hogy ő tud majd sétáljon végig 463 00:18:47,250 --> 00:18:50,080 az osztálytársaival, mit csináltál jól, mit nem csináltam jól. 464 00:18:50,080 --> 00:18:52,750 És ismét, megnyugodhat mindez lehet szépen anonimizálni. 465 00:18:52,750 --> 00:18:54,410 De lesz egy szép lehetőség sokkal 466 00:18:54,410 --> 00:18:56,810 interaktivitás, mint valami hasonló előadás lehetővé teszi. 467 00:18:56,810 --> 00:18:58,910 >> Addig mi lesz ezeket a dolgokat az úgynevezett super 468 00:18:58,910 --> 00:19:01,610 szakasz, amely nem kötelező, de mindenki előtt nyitva állnak a 469 00:19:01,610 --> 00:19:04,030 az osztály, hogy meg tudod csinálni ezt többet együttesen a 470 00:19:04,030 --> 00:19:05,190 probléma meghatározhatnak egy. 471 00:19:05,190 --> 00:19:06,010 Itt van a menetrend. 472 00:19:06,010 --> 00:19:08,870 Ezt is kifüggesztett a honlapon a cs50.net. 473 00:19:08,870 --> 00:19:10,850 Figyeljük meg, hogy nem lesz egy hacker-specifikus 474 00:19:10,850 --> 00:19:12,430 1 holnap délután. 475 00:19:12,430 --> 00:19:15,460 És mi lesz film egy ma, egy holnap, és írjon a 476 00:19:15,460 --> 00:19:16,720 on-line 24 órán belül. 477 00:19:16,720 --> 00:19:19,370 Szóval, ha nem tudja, hogy ezek közül bármelyik alkalommal, ne aggódj. 478 00:19:19,370 --> 00:19:22,720 És ismét, az ütemezés interneten most cs50.net. 479 00:19:22,720 --> 00:19:25,350 >> Ami a vágás is, akkor már ütött egy 480 00:19:25,350 --> 00:19:28,520 feladni arra utasítja, hogy menjen a kurzus honlapján, hogy megtalálja 481 00:19:28,520 --> 00:19:29,610 ki a szakaszt. 482 00:19:29,610 --> 00:19:32,890 Ha az élet megváltozott, és meg kell változtatni a szakasz, 483 00:19:32,890 --> 00:19:33,560 nem probléma. 484 00:19:33,560 --> 00:19:37,900 Menj vissza ugyanezen URL, cs50.net/section, egyes szám, 485 00:19:37,900 --> 00:19:40,090 és akkor töltse ki a hasonló formában, így Ön 486 00:19:40,090 --> 00:19:41,260 majd adja meg a beállításokat. 487 00:19:41,260 --> 00:19:43,360 És mi lesz nyomon a hét végére, hogy mit tudunk 488 00:19:43,360 --> 00:19:44,240 befogadására. 489 00:19:44,240 --> 00:19:49,530 Múlt héten emlékeztetni arra, hogy javaslatot tettünk a CS50 Fórum, 490 00:19:49,530 --> 00:19:51,370 során a vita eszköz, előadás. 491 00:19:51,370 --> 00:19:53,680 Így volt 40 kérdés, hogy arra kérték, és 492 00:19:53,680 --> 00:19:54,720 válaszol közben előadás. 493 00:19:54,720 --> 00:19:56,280 Szóval úgy tűnt, hogy jól működik, úgyhogy továbbra is 494 00:19:56,280 --> 00:19:57,180 próbál csinálni. 495 00:19:57,180 --> 00:19:59,600 Amennyiben menet közben előadás, nem csak jól érzik magukat a tudatosság 496 00:19:59,600 --> 00:20:00,780 a kezed, nem probléma. 497 00:20:00,780 --> 00:20:04,640 Ide cs50.net/discuss, posta van, és az egyik tanítási 498 00:20:04,640 --> 00:20:07,270 ösztöndíjasok akkor vagy válaszolni elektronikusan vagy növeljék a 499 00:20:07,270 --> 00:20:10,620 kéz az Ön nevében névtelenül kérni, attól függően, 500 00:20:10,620 --> 00:20:12,470 jellegére vonatkozó kérdés. 501 00:20:12,470 --> 00:20:15,000 , Mind a visszajelzések általában psets lesz 502 00:20:15,000 --> 00:20:16,760 vissza egy héten belül. 503 00:20:16,760 --> 00:20:19,080 Mert eltart egy kis ideig szakaszok elérése 504 00:20:19,080 --> 00:20:22,430 egyensúly, az első Pset, 0 és 1, lesz egy kicsit 505 00:20:22,430 --> 00:20:24,130 késik a dolgok megnyugszik. 506 00:20:24,130 --> 00:20:27,130 De a híradásokat az, hogy az elkövetkezendő hetek során. 507 00:20:27,130 --> 00:20:29,750 >> Rendben, hadd tegyem én súlyos 508 00:20:29,750 --> 00:20:31,040 hang egy pillanatra. 509 00:20:31,040 --> 00:20:32,690 Tehát ez valójában egy érdekes éghajlati legyen 510 00:20:32,690 --> 00:20:35,210 tekintettel ezt a beszélgetést, amit az összes többi dolog 511 00:20:35,210 --> 00:20:37,310 folyik az egyetemen az ezekhez kapcsolódó. 512 00:20:37,310 --> 00:20:40,220 De CS50 bizonyára megvoltak a maga története e különleges 513 00:20:40,220 --> 00:20:43,360 téma, minthogy minden évben, ezt az utat, többféle 514 00:20:43,360 --> 00:20:46,910 éves, Ad-Boards durván 3%-át az osztály. 515 00:20:46,910 --> 00:20:51,620 Ez a legutóbbi év, 2011, CS50 Ad-bordával 35 versenyző. 516 00:20:51,620 --> 00:20:54,120 Ez nem hiszem, mivel nem egyértelmű. 517 00:20:54,120 --> 00:20:56,760 Ismerd fel, hogy a kurzus a tananyag, van egy lapja 518 00:20:56,760 --> 00:20:59,020 bemutató nyilatkozatot, ahol a vonalak. 519 00:20:59,020 --> 00:21:01,350 Ugyanez a megállapítás ismétlődik minden az egyik 520 00:21:01,350 --> 00:21:03,070 probléma meghatározza az egyik oldalon. 521 00:21:03,070 --> 00:21:05,760 >> Szóval említem ezt ma tényleg csak azért, hogy 522 00:21:05,760 --> 00:21:07,030 emberek tudatában ennek. 523 00:21:07,030 --> 00:21:08,080 És az általunk kipróbált különböző dolog. 524 00:21:08,080 --> 00:21:10,630 És gondoltam tennénk ma csak egy pillanatra 525 00:21:10,630 --> 00:21:13,830 ténylegesen megnézünk néhány korábbi esetekben, hogy jöjjön fel. 526 00:21:13,830 --> 00:21:16,160 Ahelyett, hogy tartsa ezeket a piszkos kis titkait, ténylegesen 527 00:21:16,160 --> 00:21:19,170 rámutatni, hogy mit tettek a diákok, és hogyan általunk észlelt 528 00:21:19,170 --> 00:21:21,630 , és igazán az, amit az átfogó motiváció a 529 00:21:21,630 --> 00:21:23,950 még akkor is, hogy ilyen beszélgetést. 530 00:21:23,950 --> 00:21:27,060 Tehát azt mondta, a vonal lényegében ez - 531 00:21:27,060 --> 00:21:29,200 a per a tananyag, akkor szívesen, akkor javasoljuk, hogy 532 00:21:29,200 --> 00:21:30,210 beszélni osztálytársaival. 533 00:21:30,210 --> 00:21:31,910 Ez az egész célja miután ezek együttműködési 534 00:21:31,910 --> 00:21:34,470 hivatali óra Annenberg és ösztönzi az embereket a 535 00:21:34,470 --> 00:21:35,755 A projekt végső együtt dolgozni. 536 00:21:35,755 --> 00:21:38,590 De a vonalat húzott, amikor eljön az ideje, hogy valóban levelet 537 00:21:38,590 --> 00:21:39,790 a végső megoldás. 538 00:21:39,790 --> 00:21:42,590 Beszél angolul, teljesen rendben van, beszél pszeudo-kód, 539 00:21:42,590 --> 00:21:43,400 teljesen rendben. 540 00:21:43,400 --> 00:21:46,340 Küldje egy osztálytársa a Pset, mondják el nekik, nézd át 541 00:21:46,340 --> 00:21:48,610 a képernyőn, mint a kéz továbbra gépelés, 542 00:21:48,610 --> 00:21:50,110 át a vonalat is. 543 00:21:50,110 --> 00:21:52,250 Nem látod a tanterv az adott sorokat. 544 00:21:52,250 --> 00:21:55,850 >> De csak festeni egy képet, hogy ez sajnos a 545 00:21:55,850 --> 00:21:58,370 Valójában észre, hogy vannak olyan honlapok, hogy ott 546 00:21:58,370 --> 00:22:01,490 tekintette megoldások ebben az osztályban, és sok más osztályokba. 547 00:22:01,490 --> 00:22:04,940 Az a tény, hogy Ön vagy egy 3%-a tudja, hogy ez létezik, 548 00:22:04,940 --> 00:22:07,240 azt jelenti, hogy tudjuk, hogy ez létezik. 549 00:22:07,240 --> 00:22:09,340 Az a tény, hogy vannak olyan honlapok, mint ez, ahol 550 00:22:09,340 --> 00:22:11,540 Fizethet valaki ténylegesen a probléma szettek - ez volt 551 00:22:11,540 --> 00:22:13,450 tényleges helyzet, hogy jött az elmúlt évben. 552 00:22:13,450 --> 00:22:15,790 Ez egy website hívott odesk.com. 553 00:22:15,790 --> 00:22:20,090 És Tim volt a neve annak a személynek van, aki kiküldetés 554 00:22:20,090 --> 00:22:24,580 ezt a weboldalt, és megkért valakit, hogy az ő Pset 7- 555 00:22:24,580 --> 00:22:25,570 ebben a konkrét esetben. 556 00:22:25,570 --> 00:22:28,350 Nos, odesk.com nagyon Google-képes, és mi is az 557 00:22:28,350 --> 00:22:30,310 nagyon jó Googling. 558 00:22:30,310 --> 00:22:32,360 Itt is vannak olyan területek -, és ez az ember nem 559 00:22:32,360 --> 00:22:34,234 kegyetlen, őszintén szólva. 560 00:22:34,234 --> 00:22:38,050 [Nevetés] 561 00:22:38,050 --> 00:22:39,610 DAVID J. Malan: Az a vicces dolog ez a honlap, ha 562 00:22:39,610 --> 00:22:41,970 olvasd el a Rólunk oldalon beszélnek a vállalati 563 00:22:41,970 --> 00:22:44,390 kultúra és hogyan ügyfélszolgálat számuk-on 564 00:22:44,390 --> 00:22:46,190 prioritás, hogy győződjön meg arról, hogy a feladatokat kap 565 00:22:46,190 --> 00:22:47,890 fordult időben. 566 00:22:47,890 --> 00:22:50,580 >> De minden komolyság újra, az a tény, hogy ezek az oldalak 567 00:22:50,580 --> 00:22:52,910 létezik, észre mi is a tudatában 568 00:22:52,910 --> 00:22:53,730 ilyen jellegű oldalakon. 569 00:22:53,730 --> 00:22:55,890 És hogy ön egy értelemben, hogy mit alkot ez általában 570 00:22:55,890 --> 00:22:58,570 úgy, hogy általában nem nagy botrányok, ahol az emberek 571 00:22:58,570 --> 00:23:01,080 dolgozik együtt be bármilyen tömeges skála, hanem inkább 572 00:23:01,080 --> 00:23:04,540 hogy ezek a késő éjszakai pillanatait gyengeség, ha van olyan 573 00:23:04,540 --> 00:23:07,550 sok a tennivaló, ez 04:00, te kimerült, és 574 00:23:07,550 --> 00:23:09,770 Szerintem magának, nos, hadd vessen egy pillantást a 575 00:23:09,770 --> 00:23:11,770 szobatársam vagy a barátom kódja vagy hasonló. 576 00:23:11,770 --> 00:23:14,800 És megnyilvánulásai ennek sajnos magában Student 577 00:23:14,800 --> 00:23:17,640 A benyújtó valami ilyesmi and Student B benyújtása 578 00:23:17,640 --> 00:23:20,370 valami ilyesmi, ami természetesen a számítógépes 579 00:23:20,370 --> 00:23:23,830 tudományos osztály, rendkívül könnyű számítógépes szakemberek 580 00:23:23,830 --> 00:23:25,690 kimutatására szoftver. 581 00:23:25,690 --> 00:23:28,410 Ez a másik közös paradigma, ahol volna valami 582 00:23:28,410 --> 00:23:31,010 óta dolgozik együtt, hogy valaki, talán beszélgettek 583 00:23:31,010 --> 00:23:32,360 Angol, csak finom, pszeudokód. 584 00:23:32,360 --> 00:23:35,080 De aztán eljön az ideje, hogy ténylegesen benyújtására, valamint a psets 585 00:23:35,080 --> 00:23:37,910 csak kap kicserélt e-mailben vagy Dropbox vagy hasonló. 586 00:23:37,910 --> 00:23:41,120 De a kísérlet, hogy kevésbé nyilvánvaló, hogy ez a 587 00:23:41,120 --> 00:23:44,830 mi történt, akkor ez a mi benyújtani. 588 00:23:44,830 --> 00:23:47,880 Ez is, nem elgáncsol jól megírt darab 589 00:23:47,880 --> 00:23:50,360 szoftver, mint mi, hogy valóban kimutatására 590 00:23:50,360 --> 00:23:51,280 ilyen jellegű dolgokat. 591 00:23:51,280 --> 00:23:53,760 És valóban, mit teszünk, run program, amely összehasonlítja az összes 592 00:23:53,760 --> 00:23:55,540 Az idei állításával ellen a múlt év 593 00:23:55,540 --> 00:23:57,380 állításával szemben, mindent, amit talált a 594 00:23:57,380 --> 00:24:00,060 Internet, szemben minden munkát honlapján odakint. 595 00:24:00,060 --> 00:24:01,710 Mindez nagyon automatizált. 596 00:24:01,710 --> 00:24:05,665 És így mi ezt nagyon nagy tisztesség, hogy a 97%-uk 597 00:24:05,665 --> 00:24:07,760 valóban dolgozik a seggüket ki ezen és más 598 00:24:07,760 --> 00:24:11,530 osztályok és üzembe az összes, hogy erőfeszítés, hogy a munka 599 00:24:11,530 --> 00:24:13,030 végső soron benyújtják a saját. 600 00:24:13,030 --> 00:24:14,220 És tudok menni korosztály számára. 601 00:24:14,220 --> 00:24:16,030 >> Ez csak egy maroknyi tavalyi esetekben. 602 00:24:16,030 --> 00:24:19,350 Néhány diák be ezeket a fájlokat azonosan Pset 2, 603 00:24:19,350 --> 00:24:22,460 Pset 3, Pset 4, Pset 5, Pset 6, Pset 9. 604 00:24:22,460 --> 00:24:26,360 Ebben az esetben, ez volt kvíz 0, és egy tavaly, ahol két 605 00:24:26,360 --> 00:24:29,570 diákok benyújtott egyformán ez a mondat a sok közül 606 00:24:29,570 --> 00:24:32,210 mások, "A kérés típusú -" pont, pont, pont. 607 00:24:32,210 --> 00:24:34,530 Tehát még egy osztályban, 600 tettünk észlelése 608 00:24:34,530 --> 00:24:36,310 A benyújtott vetélkedők. 609 00:24:36,310 --> 00:24:39,080 Szóval röviden, ez - őszintén szólva, utálom, ezt a fajta 610 00:24:39,080 --> 00:24:41,300 beszélgetés - de ez tényleg egy szándékos erőfeszítést 611 00:24:41,300 --> 00:24:43,540 ebben az évben, hogy megpróbálja vezetni le ezt a számot. 612 00:24:43,540 --> 00:24:45,650 Mert annak ellenére, hogy azt mondjuk, hogy ezeket a dolgokat minden 613 00:24:45,650 --> 00:24:48,100 évben, azt hiszem, a valóságban miután éltek rajta egy pár 614 00:24:48,100 --> 00:24:50,800 másodperc, mint máskor, és valójában csak rámutatva 615 00:24:50,800 --> 00:24:53,600 hogy mi tűnhet, eh, nem olyan nagy dolog, legalábbis 616 00:24:53,600 --> 00:24:56,390 Szerintem vissza erre az adott pillanatban, mind az igazságosság 617 00:24:56,390 --> 00:25:00,100 magad és a osztálytársai itt. 618 00:25:00,100 --> 00:25:02,480 Tehát, ha valaha is bármilyen kérdése, hogy hol a vonal 619 00:25:02,480 --> 00:25:04,290 nem, kérjük, csak érhetünk el nekem személyesen. 620 00:25:04,290 --> 00:25:07,190 De a válasz mindig, teljesen hangsúlyozta a 621 00:25:07,190 --> 00:25:09,090 last minute, készpénz a nap végén. 622 00:25:09,090 --> 00:25:11,080 Vagy, ha ez a kérdés, hogy nem minden késedelmes nap, 623 00:25:11,080 --> 00:25:12,900 őszintén szólva, e-mailt nekem személyesen. 624 00:25:12,900 --> 00:25:14,110 Majd kitalálok valamit. 625 00:25:14,110 --> 00:25:17,480 Kérem, ne tegye időt itt Harvard veszélyezteti. 626 00:25:17,480 --> 00:25:18,570 >> Nos, azt hittem, meg kell világosítani a hangulat, így 627 00:25:18,570 --> 00:25:20,264 tartalmazza ezt a következő diát. 628 00:25:20,264 --> 00:25:22,770 [Nevetés] 629 00:25:22,770 --> 00:25:23,630 DAVID J. Malan: Ez az oldal nagyon jó volt. 630 00:25:23,630 --> 00:25:24,820 Igazából egy kicsit zavart. 631 00:25:24,820 --> 00:25:26,330 Van ez. 632 00:25:26,330 --> 00:25:29,590 És akkor ez csodálatos volt. 633 00:25:29,590 --> 00:25:35,190 Oké, tehát gondolni, hogy cica késő éjszaka, amikor így 634 00:25:35,190 --> 00:25:36,040 ezeket a határozatokat. 635 00:25:36,040 --> 00:25:40,110 Rendben, szóval vissza több móka és kevésbé komoly dolog, mint a 636 00:25:40,110 --> 00:25:40,780 körülmények. 637 00:25:40,780 --> 00:25:43,900 >> Rendben, szóval röviden beszéltünk ezekről. 638 00:25:43,900 --> 00:25:46,080 Ez olyan dolog, ami valószínűleg elég ismerős 639 00:25:46,080 --> 00:25:47,260 a világ Scratch. 640 00:25:47,260 --> 00:25:49,860 És a világ Scratch, már ezt az igényt néha 641 00:25:49,860 --> 00:25:51,110 csinálj villa az úton. 642 00:25:51,110 --> 00:25:54,840 Vagy ezt vagy azt, vagy ez a másik dolog itt. 643 00:25:54,840 --> 00:25:58,990 És ha azt akarjuk, hogy ezt, fel tudjuk használni, a C most ezt, ha 644 00:25:58,990 --> 00:26:00,860 mást építeni. 645 00:26:00,860 --> 00:26:06,420 És akkor itt van logikai kifejezések. 646 00:26:06,420 --> 00:26:09,260 Például, logikai kifejezések itt tudjuk OR 647 00:26:09,260 --> 00:26:12,260 össze őket, abban az értelemben, hogy van ez a feltétel, VAGY 648 00:26:12,260 --> 00:26:13,200 ezt a feltételt. 649 00:26:13,200 --> 00:26:15,100 Tudunk és őket, abban az értelemben, hogy azt akarjuk, hogy 650 00:26:15,100 --> 00:26:17,710 ellenőrizze ezt a feltételt, és hogy feltételt. 651 00:26:17,710 --> 00:26:22,440 És itt van egy switch most, ami nem annyira 652 00:26:22,440 --> 00:26:26,040 hasonló szintaktikailag az ilyen jellegű feltételeket, de 653 00:26:26,040 --> 00:26:30,160 lehetővé teszi a számunkra, hogy nem felel meg, ha else if, else if, else 654 00:26:30,160 --> 00:26:34,990 ha, és a hasonló egyszerűen felsorolásával azokat eseti 655 00:26:34,990 --> 00:26:36,670 az eseti. 656 00:26:36,670 --> 00:26:38,370 Így láttuk az utolsó alkalom. 657 00:26:38,370 --> 00:26:40,430 És akkor elkezdtük érintve dolgok, mint a hurkok. 658 00:26:40,430 --> 00:26:42,070 Láttunk egy ilyen csak egy pillanattal ezelőtt. 659 00:26:42,070 --> 00:26:44,180 De vannak az egyéb looping konstrukciókat. 660 00:26:44,180 --> 00:26:46,370 >> Például, ez itt. 661 00:26:46,370 --> 00:26:50,140 Tehát while (feltétel), ezt a dolgot újra és újra. 662 00:26:50,140 --> 00:26:53,070 Tehát alapvetően, amit úgy tűnik, hogy a különböző közötti 663 00:26:53,070 --> 00:26:55,760 a hurok, és ez a while ciklus itt? 664 00:27:00,810 --> 00:27:05,045 Ez a hurok, és ez a while ciklus. 665 00:27:05,045 --> 00:27:07,840 Igen? 666 00:27:07,840 --> 00:27:08,800 Mi ez? 667 00:27:08,800 --> 00:27:10,050 KÖZÖNSÉG: [hangtalan]. 668 00:27:14,632 --> 00:27:15,120 DAVID J. Malan: Jó. 669 00:27:15,120 --> 00:27:17,130 Tehát mivel a for ciklus feltételt, ott világosan 670 00:27:17,130 --> 00:27:17,940 tovább szintaxist. 671 00:27:17,940 --> 00:27:20,560 Van ez inicializálás, itt van ez a frissítés. 672 00:27:20,560 --> 00:27:23,820 A while ciklus, de csak ezt a feltételt. 673 00:27:23,820 --> 00:27:26,630 Tehát úgy tűnik, hogy ez egy kicsit lecsupaszítva szemben a vonatkozó 674 00:27:26,630 --> 00:27:28,770 hurok, ami azt jelenti, ha azt akarjuk, hogy a változó és azt akarjuk, 675 00:27:28,770 --> 00:27:30,800 hogy Növelés, akkor valóban meg kell 676 00:27:30,800 --> 00:27:32,500 ezt a dolgot magunkat. 677 00:27:32,500 --> 00:27:34,420 >> Szóval hadd menjen előre, és nyit gedit. 678 00:27:34,420 --> 00:27:36,320 Hadd kapcsoljon át a készüléket. 679 00:27:36,320 --> 00:27:38,110 És most csak egy gyors kis példa, hogy 680 00:27:38,110 --> 00:27:40,550 különbözteti meg az egyik ilyen a többi. 681 00:27:40,550 --> 00:27:42,490 És a hátsó fejemben van, azt kell mondanom, egy dolog. 682 00:27:42,490 --> 00:27:44,120 Én kifejezetten megemlítik a nevét Tim. 683 00:27:44,120 --> 00:27:47,740 Tim valójában valaki, hogy egy diák próbáltak tenni 684 00:27:47,740 --> 00:27:48,680 a házi feladatot nekik. 685 00:27:48,680 --> 00:27:51,280 Nem volt Tim az adott szakaszban. 686 00:27:51,280 --> 00:27:53,690 Szóval észre, nehogy nyilvánosságra egy diák, nem volt diák. 687 00:27:53,690 --> 00:27:55,720 Ez egy véletlenszerű ember az interneten dolgokat 688 00:27:55,720 --> 00:27:57,180 meghatalmazott útján tavaly. 689 00:27:57,180 --> 00:27:58,670 Tehát azt látjuk, hogy is. 690 00:27:58,670 --> 00:28:00,630 Tehát ebben az esetben is, hadd menjen előre, és 691 00:28:00,630 --> 00:28:02,810 nyit egy új fájlt. 692 00:28:02,810 --> 00:28:04,800 File, New. 693 00:28:04,800 --> 00:28:06,050 Ez ad nekem egy lap van. 694 00:28:06,050 --> 00:28:09,940 Hadd menjek előre, és mentse el loop.c. 695 00:28:09,940 --> 00:28:11,810 Hadd menjen, és kattintson a Mentés gombra. 696 00:28:11,810 --> 00:28:15,340 És akkor itt, menjünk előre, és kezdjük el beírni 697 00:28:15,340 --> 00:28:16,605 # Include . 698 00:28:19,116 --> 00:28:20,520 Hadd Nagyítás 699 00:28:20,520 --> 00:28:23,410 Most megteszem int main (void). 700 00:28:23,410 --> 00:28:30,020 Most hadd menjen előre, és nem az (int i = 0; i < 701 00:28:30,020 --> 00:28:33,480 oh, 10; i + +). 702 00:28:33,480 --> 00:28:36,620 És most megyek előre, és ne nyomtassa ki a csillag, hogy én 703 00:28:36,620 --> 00:28:37,890 tette korábban. 704 00:28:37,890 --> 00:28:39,390 És akkor a végén ez a program, mi csak megy 705 00:28:39,390 --> 00:28:41,130 nyomtat egy új sort, csak azért, hogy a gyors 706 00:28:41,130 --> 00:28:42,470 nem úgy néz ki minden rendetlen. 707 00:28:42,470 --> 00:28:45,170 vissza 0-ra. 708 00:28:45,170 --> 00:28:47,610 Úgy tűnik, szintaktikailag helyes? 709 00:28:47,610 --> 00:28:48,040 Eddig. 710 00:28:48,040 --> 00:28:48,560 Akkor lássuk. 711 00:28:48,560 --> 00:28:51,290 >> Szóval hadd kicsinyítés, menj be a terminál ablakot. 712 00:28:51,290 --> 00:28:54,570 És hadd menjen előre és fuss hurok, mert felhívtam ezt 713 00:28:54,570 --> 00:28:55,690 dolog loop.c. 714 00:28:55,690 --> 00:28:56,780 Tehát, hogy hurok. 715 00:28:56,780 --> 00:28:57,840 Úgy tűnik összeállításához OK. 716 00:28:57,840 --> 00:29:00,210 Hadd futni hurok, és most az Enter billentyűt. 717 00:29:00,210 --> 00:29:01,820 És úgy tűnik, hogy nyomtatott 10 csillag. 718 00:29:01,820 --> 00:29:03,780 Szóval, csak átalakítani, hogy ez egy while ciklus, és mi 719 00:29:03,780 --> 00:29:05,220 típusú kérdések is út vége. 720 00:29:05,220 --> 00:29:11,290 Tehát ahelyett, hogy ezt, hadd menjek be ide, és azt mondják, míg i 721 00:29:11,290 --> 00:29:12,760 kevesebb, mint 10 - 722 00:29:12,760 --> 00:29:14,910 hadd megszabadulni a for ciklus. 723 00:29:14,910 --> 00:29:17,170 OK, így van egy pár probléma már. 724 00:29:17,170 --> 00:29:21,110 Tehát az állapot ugyanaz, de én természetesen hiányzik a 725 00:29:21,110 --> 00:29:21,680 inicializálás. 726 00:29:21,680 --> 00:29:23,840 Én hiányzik a Növelés. 727 00:29:23,840 --> 00:29:28,020 Szóval mit kell a fordító valószínűleg azt mondja nekem, amikor megpróbál 728 00:29:28,020 --> 00:29:29,170 fordítani ezt a programot? 729 00:29:29,170 --> 00:29:29,666 Igen? 730 00:29:29,666 --> 00:29:31,154 KÖZÖNSÉG: [hangtalan]. 731 00:29:31,154 --> 00:29:31,650 >> DAVID J. Malan: Jó. 732 00:29:31,650 --> 00:29:34,180 Így fog mondani valamit, mint a be nem jelentett - ebben a 733 00:29:34,180 --> 00:29:35,280 esetében, változó i. 734 00:29:35,280 --> 00:29:37,980 És valóban, használja a be nem jelentett azonosító i. 735 00:29:37,980 --> 00:29:40,960 És így ez ellentétben van a nyelven, mint a PHP és 736 00:29:40,960 --> 00:29:43,120 Python és Ruby, amellyel néhányan ismerős lehet, 737 00:29:43,120 --> 00:29:44,820 ahol akkor csak egyfajta kezdete a változók 738 00:29:44,820 --> 00:29:47,420 akarva-akaratlanul, és nem kell aggódnia nyilvánító őket 739 00:29:47,420 --> 00:29:48,560 kifejezetten mindig. 740 00:29:48,560 --> 00:29:51,770 A C-ben és a nyelvek, mint a Java és a C + +, meg kell 741 00:29:51,770 --> 00:29:53,020 super explicit. 742 00:29:53,020 --> 00:29:55,760 És ha egy változót nevű i, el kell mondanod nekem 743 00:29:55,760 --> 00:29:57,360 milyen változó van. 744 00:29:57,360 --> 00:29:59,360 Szóval kell majd rögzíteni ezt az alábbiak szerint. 745 00:29:59,360 --> 00:30:05,510 Megyek is, hogy menjen fel ide, és írja int i, ezért 746 00:30:05,510 --> 00:30:07,860 Én úgy nyilatkoztak, változó nevű i. 747 00:30:07,860 --> 00:30:09,180 Nos, én is kihagyott egy lépést. 748 00:30:09,180 --> 00:30:11,340 Én nyilvánvalóan nem inicializált, de lássuk, hogy 749 00:30:11,340 --> 00:30:13,650 Legalább gyártmányú csenget megálló panaszkodnak. 750 00:30:13,650 --> 00:30:15,770 Szóval hadd remake ezt a programot. 751 00:30:15,770 --> 00:30:16,770 >> Rendben, most már csak a panaszos 752 00:30:16,770 --> 00:30:17,870 más okból. 753 00:30:17,870 --> 00:30:21,130 "Változó 'i' inicializálatlan használata esetén itt." Rendben, tehát 754 00:30:21,130 --> 00:30:22,340 ez elég egyértelmű. 755 00:30:22,340 --> 00:30:25,510 Inicializált csak annyit jelent, hogy egyenlő értéket. 756 00:30:25,510 --> 00:30:30,820 És még nem történt meg, hogy hadd próbálja értéke 0. 757 00:30:30,820 --> 00:30:35,030 Most próbáljuk meg újra, és újra futni csenget. 758 00:30:35,030 --> 00:30:36,140 Szerkesztette: ebben az időben. 759 00:30:36,140 --> 00:30:37,210 És nem vagyok arról, hogy futtatni. 760 00:30:37,210 --> 00:30:43,120 De a nagy, öreg végtelen ciklus, mert tettem a 761 00:30:43,120 --> 00:30:45,530 inicializálás tettem az állapot, de én soha nem csináltam 762 00:30:45,530 --> 00:30:47,030 bármilyen Növelés. 763 00:30:47,030 --> 00:30:48,780 Szóval, hogyan tudom csinálni a Növelés? 764 00:30:48,780 --> 00:30:51,170 Nos, egy darabig hurok, úgy érzi, mintha megyek, hogy 765 00:30:51,170 --> 00:30:54,180 csinálni belül a hurok, mert ugyanúgy, mint az első 766 00:30:54,180 --> 00:30:56,570 A hét példák csinál looping konstrukciók, mint például a 767 00:30:56,570 --> 00:30:59,040 a zokni és a self-számlálás, tennünk kellett 768 00:30:59,040 --> 00:31:01,550 amit a legvégén, szeretnék visszamenni a következő sorra. 769 00:31:01,550 --> 00:31:05,040 Mi van, ha én megyek előre, és ezt i + + itt? 770 00:31:05,040 --> 00:31:06,030 Nézzük még lefordításával. 771 00:31:06,030 --> 00:31:06,890 Catch me már. 772 00:31:06,890 --> 00:31:09,704 Mi a baj itt? 773 00:31:09,704 --> 00:31:10,690 KÖZÖNSÉG: [hangtalan]. 774 00:31:10,690 --> 00:31:11,770 >> DAVID J. Malan: Szóval ez biztosan nem int. 775 00:31:11,770 --> 00:31:13,080 Ez i. 776 00:31:13,080 --> 00:31:15,110 És a kapcsos zárójelek, mint korábban, 777 00:31:15,110 --> 00:31:16,800 behúzás nem elég. 778 00:31:16,800 --> 00:31:18,410 Szóval most már ezt a konstrukciót. 779 00:31:18,410 --> 00:31:21,780 Szóval, míg én 10-nél kevesebb, nyomtasson ki egy csillag, 780 00:31:21,780 --> 00:31:23,220 akkor növelni i. 781 00:31:23,220 --> 00:31:25,680 És ahogy a while ciklus működik, hogy amint bejön a 782 00:31:25,680 --> 00:31:29,630 alján a hurok, amely ebben az esetben úgy néz ki, mint a 10. sorban, 783 00:31:29,630 --> 00:31:32,880 ez fog visszamenni 6. sor, amikor is a 784 00:31:32,880 --> 00:31:34,400 feltételt kell újból ellenőrizni. 785 00:31:34,400 --> 00:31:37,500 És ha én még mindig kisebb, mint 10, akkor megteszem tételek 8 és 786 00:31:37,500 --> 00:31:41,250 aztán 9, aztán elérte a 10, és térjen vissza a 6, ismét 787 00:31:41,250 --> 00:31:45,580 újra és újra és újra, amíg én 10-nél kisebb. 788 00:31:45,580 --> 00:31:47,860 Szóval újra futtassuk le a make itt. 789 00:31:47,860 --> 00:31:48,940 >> Oké, most már összeállított rendben. 790 00:31:48,940 --> 00:31:50,300 Hadd újra futni hurok. 791 00:31:50,300 --> 00:31:52,620 És most már tényleg úgy tűnik, hogy működik. 792 00:31:52,620 --> 00:31:55,100 Szóval pluses és minuses itt? 793 00:31:55,100 --> 00:31:58,910 Nos, eddig van valójában nem egy egész PLO - 794 00:31:58,910 --> 00:31:59,420 annyira aranyos. 795 00:31:59,420 --> 00:32:01,870 Rendben, ez volt - ah, hogy baleset volt. 796 00:32:01,870 --> 00:32:05,200 Rendben, menjünk vissza a for ciklus. 797 00:32:05,200 --> 00:32:07,530 Tehát hurkok szép, mert ők szuper explicit. 798 00:32:07,530 --> 00:32:09,720 És annak ellenére, hogy egy kicsit nehézkes írni, ez 799 00:32:09,720 --> 00:32:11,500 nagyon erős, és lehetővé teszi, hogy nem 800 00:32:11,500 --> 00:32:12,980 több dolgot egyszerre. 801 00:32:12,980 --> 00:32:16,240 Míg a hurkok nem úgy tűnik, hogy egy hatalmas érték, csak 802 00:32:16,240 --> 00:32:18,500 mégis, mert úgy érzi, már csak több munkát. 803 00:32:18,500 --> 00:32:20,670 Meg kell tenni az inicializálási ide, a 804 00:32:20,670 --> 00:32:23,480 naprakésszé ide, és meg kell emlékezni, hogy mindent megtesz, hogy. 805 00:32:23,480 --> 00:32:26,260 Szóval majd meglátjuk, az időben, hogy míg a hurkok ténylegesen kölcsön 806 00:32:26,260 --> 00:32:29,380 magukat, hogy csak a különböző kontextusokban, más adatok 807 00:32:29,380 --> 00:32:33,900 struktúrákat, mint a listák és hash táblák, a dolgok akkor kap 808 00:32:33,900 --> 00:32:34,970 félévközi. 809 00:32:34,970 --> 00:32:37,900 De most, tudom, hogy van ez a harmadik fajta ismert, mint a do- 810 00:32:37,900 --> 00:32:38,480 míg a hurok. 811 00:32:38,480 --> 00:32:39,540 És láttuk ezt röviden. 812 00:32:39,540 --> 00:32:41,830 És ez lehet szuper segítőkészek Pset 1. 813 00:32:41,830 --> 00:32:45,570 Minden alkalommal, amikor akarsz valamit, majd ellenőrizze, hogy 814 00:32:45,570 --> 00:32:48,940 A felhasználó működött együtt, és ha nem, újra meg újra, a do- 815 00:32:48,940 --> 00:32:51,460 while ciklus alkalmas arra, hogy ez a fajta logika. 816 00:32:51,460 --> 00:32:55,640 Mivel a rendelés fentről lefelé itt is sugallja, 817 00:32:55,640 --> 00:32:57,750 nem szó szerint azt jelenti ezt. 818 00:32:57,750 --> 00:32:59,830 És ezt újra és újra, mi lenne az? 819 00:32:59,830 --> 00:33:03,000 Lehet, hogy ez azt jelenti, hívja getInt vagy getString majd 820 00:33:03,000 --> 00:33:05,830 ellenőrzése során az getInt vagy getString majd kiabál 821 00:33:05,830 --> 00:33:08,260 a felhasználó, ha nem működött együtt kérve őket, 822 00:33:08,260 --> 00:33:10,100 újra és újra és újra. 823 00:33:10,100 --> 00:33:11,730 Ha akarsz valamit egyszer, 824 00:33:11,730 --> 00:33:13,210 majd ellenőrizze néhány feltételt. 825 00:33:13,210 --> 00:33:14,110 >> Akkor próbáljuk meg. 826 00:33:14,110 --> 00:33:17,130 Hadd ténylegesen megváltoztatni ezt most, hogy a do-while ciklus. 827 00:33:17,130 --> 00:33:18,830 És én megyek előre, és tegye a következőket. 828 00:33:18,830 --> 00:33:21,830 Szóval tegye a következőket. 829 00:33:21,830 --> 00:33:26,870 Csináljuk int i = getInt (), de nézzük először megmondja a felhasználónak 830 00:33:26,870 --> 00:33:27,410 mi a teendő. 831 00:33:27,410 --> 00:33:29,050 Szóval egy kicsit más ebben az időben. 832 00:33:29,050 --> 00:33:31,270 "Adj egy int." 833 00:33:31,270 --> 00:33:32,910 Akkor fogom használni printf erre. 834 00:33:32,910 --> 00:33:35,740 És most megyek, hogy menjen le itt, és én fogom ezt 835 00:33:35,740 --> 00:33:41,520 míg én nem, mondjuk, nagyobb, mint - 836 00:33:41,520 --> 00:33:47,540 lássuk, i, mondjuk, kisebb, mint 0, vagy i 837 00:33:47,540 --> 00:33:48,730 nagyobb, mint 10. 838 00:33:48,730 --> 00:33:51,810 Más szóval, szeretnék egy szám 1-től 9-csak 839 00:33:51,810 --> 00:33:52,720 önkényesen. 840 00:33:52,720 --> 00:33:55,290 Szóval egy egyesített logikai kifejezést itt 841 00:33:55,290 --> 00:33:59,930 arról, hogy i kevesebb, mint 0, vagy nagyobb, mint 10, amely 842 00:33:59,930 --> 00:34:02,530 esetben fogom ezt hurok újra itt. 843 00:34:02,530 --> 00:34:04,400 Szóval megint ezt - 844 00:34:04,400 --> 00:34:08,480 míg i kisebb mint 0, vagy nagyobb, mint i 10. 845 00:34:08,480 --> 00:34:11,440 >> Tehát most menjünk előre, és ezt egyszer tettünk ezt. 846 00:34:11,440 --> 00:34:13,270 Nézzük csak egy gyors józanság csekket. 847 00:34:13,270 --> 00:34:18,929 printf ("Köszönöm, i% d", i.) 848 00:34:18,929 --> 00:34:21,350 Szóval ez az egyszerű program kéri a felhasználót egy int, 849 00:34:21,350 --> 00:34:24,000 gondoskodik arról, hogy ez a bizonyos tartományban, 1 és 9 közötti, 850 00:34:24,000 --> 00:34:26,280 majd köszönetet mond a felhasználó által emlékeztetve őket, amit ők csak 851 00:34:26,280 --> 00:34:27,940 beírt, ahogy egy kis józanság csekket. 852 00:34:27,940 --> 00:34:30,659 De lássuk, ha ez működik, mint tervezték. 853 00:34:30,659 --> 00:34:34,533 Hadd menjek fejjel lefelé van, és újra futtasd a make hurok. 854 00:34:34,533 --> 00:34:35,350 Hmm. 855 00:34:35,350 --> 00:34:38,600 "A be nem jelentett azonosító" i ". Ez furcsa. 856 00:34:38,600 --> 00:34:41,509 Azt hittem, úgy határozott, hogy. 857 00:34:45,489 --> 00:34:47,560 Ugyanaz a tünet, de különböző kódot. 858 00:34:47,560 --> 00:34:47,899 Igen? 859 00:34:47,899 --> 00:34:50,191 KÖZÖNSÉG: [hangtalan] belül a két, meg kell 860 00:34:50,191 --> 00:34:52,639 [Hallhatatlan]. 861 00:34:52,639 --> 00:34:53,260 >> DAVID J. Malan: Pontosan. 862 00:34:53,260 --> 00:34:55,989 Tehát ez valóban elvezet egy témára nevei hatályát. 863 00:34:55,989 --> 00:34:59,350 Kiderült, hogy a C, ismét igazán viszi szó. 864 00:34:59,350 --> 00:35:02,970 És ha valamit csinálni, mint ez, ahol állapítsa int 865 00:35:02,970 --> 00:35:06,120 majd rendelje hozzá valamilyen érték, de te, hogy belsejében a 866 00:35:06,120 --> 00:35:09,840 pár kapcsos zárójelek, ami C csinál, azt feltételezi, hogy 867 00:35:09,840 --> 00:35:14,800 csak szeretnénk a 32 bit nevei i léteznek az 868 00:35:14,800 --> 00:35:18,200 keretében a kapcsos zárójelek keretein belül a vonalak 869 00:35:18,200 --> 00:35:22,420 6 és 9 között. Tehát én nyilvánították, és hozzá van rendelve a 870 00:35:22,420 --> 00:35:26,530 érték 8 vezetéken, de amint kapsz kívül 871 00:35:26,530 --> 00:35:30,270 9-es vonal alatti kapcsos zárójel, i már nem 872 00:35:30,270 --> 00:35:31,910 körét, hogy úgy mondjam. 873 00:35:31,910 --> 00:35:35,030 S-C-O-P-E. Ez már nem a megfelelő kontextusban. 874 00:35:35,030 --> 00:35:37,940 Tehát most nem én, tehát ez, mintha mi sem volt 875 00:35:37,940 --> 00:35:38,770 kijelentette, hogy egyáltalán. 876 00:35:38,770 --> 00:35:41,520 >> Szóval, mi a javítást, akkor valami ilyesmit, ha a 877 00:35:41,520 --> 00:35:44,300 Ennek oka, hogy én nyilvánították a kapcsos zárójelek, amelyek 878 00:35:44,300 --> 00:35:45,120 látszólag rossz? 879 00:35:45,120 --> 00:35:45,410 Itt? 880 00:35:45,410 --> 00:35:46,820 KÖZÖNSÉG: [hangtalan]. 881 00:35:46,820 --> 00:35:47,150 DAVID J. Malan: Igen. 882 00:35:47,150 --> 00:35:48,710 Így tudjuk inicializálni kívülre. 883 00:35:48,710 --> 00:35:53,530 Szóval hadd menjen előre, és törölje a nyilatkozatot, amellyel alkatrészek 884 00:35:53,530 --> 00:35:55,820 Én meg a típusát, és hadd tegye fel ide. 885 00:35:55,820 --> 00:36:00,220 Így az 5. sorban, most azt mondja: "Adj nekem egy int." Nevezzük i. 886 00:36:00,220 --> 00:36:03,400 Hirdetmény sorban 9, én nem akarom ezt, mert 887 00:36:03,400 --> 00:36:04,830 már a 32 bit. 888 00:36:04,830 --> 00:36:06,140 Nem akarom kérni a számítógépére, 889 00:36:06,140 --> 00:36:07,630 különböző 32 bit. 890 00:36:07,630 --> 00:36:09,850 Azt akarom, hogy ugyanezen 32 bit. 891 00:36:09,850 --> 00:36:13,190 És most, mert én bejelentett 5. sorban, még mindig legális 892 00:36:13,190 --> 00:36:16,550 használni sorban 11 és 12-es vonal. 893 00:36:16,550 --> 00:36:19,310 >> Akkor hadd próbáljam meg újrafordítani ezt, és látni 894 00:36:19,310 --> 00:36:20,490 ha csenget leáll kiabál. 895 00:36:20,490 --> 00:36:22,380 hogy a hurok. 896 00:36:22,380 --> 00:36:25,470 Így most ez "implicit nyilatkozatot funkció 897 00:36:25,470 --> 00:36:29,880 "GetInt" érvénytelen C99. "Mi ez? 898 00:36:29,880 --> 00:36:30,400 Igen? 899 00:36:30,400 --> 00:36:32,330 KÖZÖNSÉG: [hangtalan]. 900 00:36:32,330 --> 00:36:32,690 DAVID J. Malan: Igen. 901 00:36:32,690 --> 00:36:35,520 Tehát most, hogy én vagyok ténylegesen használt getInt, ez nem valami 902 00:36:35,520 --> 00:36:38,190 hogy csak jön a C. Ezt származik CS50. 903 00:36:38,190 --> 00:36:39,890 Így kell ezt itt. 904 00:36:39,890 --> 00:36:41,450 És hadd menjen vissza a prompt le 905 00:36:41,450 --> 00:36:43,500 itt, és futtassa újra tenni. 906 00:36:43,500 --> 00:36:44,160 Oké, végre. 907 00:36:44,160 --> 00:36:46,270 Most már úgy határozott, hogy a másik hibát. 908 00:36:46,270 --> 00:36:48,930 Hadd futni hurkot, és meglátjuk, mi történik. 909 00:36:48,930 --> 00:36:51,740 "Adj egy int." Fogom adni 11. 910 00:36:51,740 --> 00:36:53,100 Fogom adni -1. 911 00:36:53,100 --> 00:36:54,470 Fogom adni foo. 912 00:36:54,470 --> 00:36:56,080 Adok neki 5. 913 00:36:56,080 --> 00:36:57,450 És most tényleg működik. 914 00:36:57,450 --> 00:36:59,410 De a prompt megváltozott oka van. 915 00:36:59,410 --> 00:37:02,800 Miért mondott újra az egyik ilyen alkalommal, de nekem egy 916 00:37:02,800 --> 00:37:03,920 int a másik három alkalommal? 917 00:37:03,920 --> 00:37:05,500 Miért van az, hogy a magatartás más? 918 00:37:05,500 --> 00:37:06,980 KÖZÖNSÉG: adott neki egy string. 919 00:37:06,980 --> 00:37:07,830 DAVID J. Malan: Tessék? 920 00:37:07,830 --> 00:37:08,570 KÖZÖNSÉG: Ön adott neki egy string. 921 00:37:08,570 --> 00:37:08,990 DAVID J. Malan: Igen. 922 00:37:08,990 --> 00:37:11,450 Tehát adott neki egy string ebben a harmadik kísérlet, 923 00:37:11,450 --> 00:37:12,490 amikor gépelt foo. 924 00:37:12,490 --> 00:37:13,200 Foo egy string. 925 00:37:13,200 --> 00:37:14,340 Ez nyilvánvalóan nem int. 926 00:37:14,340 --> 00:37:17,500 És az is, hogy CS50 hajtott végre getInt, hogy mi 927 00:37:17,500 --> 00:37:20,330 ne ellenőrizze, hogy valami kisebb, mint 0, vagy nagyobb, mint 10 928 00:37:20,330 --> 00:37:22,260 az Ön számára, mert honnan tudjuk előre, hogy milyen 929 00:37:22,260 --> 00:37:23,130 int akarsz? 930 00:37:23,130 --> 00:37:25,880 De mi minimálisan ellenőrizni az Ön számára, nem a felhasználó legalább 931 00:37:25,880 --> 00:37:26,730 írjon egy egész? 932 00:37:26,730 --> 00:37:30,500 És ha nem, akkor kiabálni a felhasználó beírja "újra" a 933 00:37:30,500 --> 00:37:31,440 a képernyőn. 934 00:37:31,440 --> 00:37:34,210 >> Tehát most van egy program, ami hurok. Oké. 935 00:37:34,210 --> 00:37:37,070 Nos, melyik van valami a jobb konstrukció? 936 00:37:37,070 --> 00:37:39,060 Szóval, ez az, ahol a dolgok kezdenek egy kicsit rendetlen, a 937 00:37:39,060 --> 00:37:42,360 tény, hogy meg kell emlékezni, hogy állapítsa meg a változót ide 938 00:37:42,360 --> 00:37:44,630 ha szeretné használni belsejében valamilyen 939 00:37:44,630 --> 00:37:46,460 kapcsos zárójeleket és kívül. 940 00:37:46,460 --> 00:37:48,490 De még ha ez úgy néz ki, egy kicsit rejtélyes az első 941 00:37:48,490 --> 00:37:50,750 Dióhéjban, csak újra emlékezni az egyszerű logika. 942 00:37:50,750 --> 00:37:54,630 Annak érdekében, hogy bármit C, hogy ez a funkció vagy 943 00:37:54,630 --> 00:37:57,680 ez egy változó, van, hogy szerepeljen, ha ez a funkció 944 00:37:57,680 --> 00:37:59,770 néhány könyvtárban, vagy meg kell bejelenteni. 945 00:37:59,770 --> 00:38:02,405 De most meg kell, hogy külön szem előtt tartva azt a tényt, hogy a 946 00:38:02,405 --> 00:38:04,940 Ön kijelenti, hogy a jobb hatályát. 947 00:38:04,940 --> 00:38:08,150 Te nem hozataláért túl szorosan belül zárójelben. 948 00:38:08,150 --> 00:38:09,410 >> Szóval hadd ténylegesen visszaállíthatja. 949 00:38:09,410 --> 00:38:12,660 Ha visszamegyünk a mi, például a korábbi, és megyek 950 00:38:12,660 --> 00:38:19,245 vissza a int, int i = 0; i <10; i + +, és én 951 00:38:19,245 --> 00:38:26,370 do printf csillagok, mint ez, és zárja paren, és most 952 00:38:26,370 --> 00:38:30,410 printf i most - 953 00:38:30,410 --> 00:38:33,500 szerint ugyanazt a logikát, mi fog történni, amikor megpróbálom 954 00:38:33,500 --> 00:38:35,500 fordítani ezt a programot? 955 00:38:35,500 --> 00:38:36,790 KÖZÖNSÉG: Érvénytelen azonosító. 956 00:38:36,790 --> 00:38:38,560 DAVID J. Malan: Tehát ez egy érvénytelen azonosító, 957 00:38:38,560 --> 00:38:39,470 be nem jelentett azonosító. 958 00:38:39,470 --> 00:38:41,810 Nos, az ok, ez egy kicsit más. 959 00:38:41,810 --> 00:38:44,370 Itt nyilvánvalóan nem kapcsos zárójelek itt, hanem az azonos 960 00:38:44,370 --> 00:38:46,790 ötlet, ugyanaz a történet a hatály alkalmazandó. 961 00:38:46,790 --> 00:38:50,340 Ha már bejelentett egy változó, mint én belül a 962 00:38:50,340 --> 00:38:53,960 a hurok, akkor is, ha kifejezetten nem írt a göndör 963 00:38:53,960 --> 00:38:56,980 nadrágtartó, gondolok rájuk mentálisan még mindig ott van, ahol 964 00:38:56,980 --> 00:39:00,310 i eset csak akkor érvényes, belsejében a hurok. 965 00:39:00,310 --> 00:39:03,080 Ez nem érvényes, ha egyszer kap a következő sorra, amely 966 00:39:03,080 --> 00:39:05,090 Ebben az esetben a most 10. 967 00:39:05,090 --> 00:39:09,060 Szóval csak néhány kérdések körét és a hasonlók. 968 00:39:09,060 --> 00:39:12,620 Rendben, bármilyen kérdése? 969 00:39:12,620 --> 00:39:15,310 >> Rendben, így ez a fajta egy triviális kis program, 970 00:39:15,310 --> 00:39:17,450 nyomtatás csak kis csillag. 971 00:39:17,450 --> 00:39:20,400 De lássuk, ha eszébe jut ez a dal itt. 972 00:39:20,400 --> 00:39:22,530 Ez egy hihetetlenül idegesítő dalt a gyerekek is énekelni 973 00:39:22,530 --> 00:39:23,550 az iskolabusz és hasonlók. 974 00:39:23,550 --> 00:39:25,990 De mi a jó benne, hogy van ez a ciklikusság, 975 00:39:25,990 --> 00:39:27,910 ahol ez "99 üveg sör a falon, 976 00:39:27,910 --> 00:39:28,520 99 üveg sör. 977 00:39:28,520 --> 00:39:31,030 Vegyünk egy lefelé, add körül, 98 üveg sör 978 00:39:31,030 --> 00:39:34,330 fal. "És akkor a dalt megismétli a 97, majd 96, majd 979 00:39:34,330 --> 00:39:38,040 95, majd 94, egészen a 0-ra, ha valóban van, hogy 980 00:39:38,040 --> 00:39:38,920 amennyiben a buszon. 981 00:39:38,920 --> 00:39:41,960 Szóval ez egy jó program egyfajta munkagép, mert a 982 00:39:41,960 --> 00:39:43,650 Istenem, ha tudna csak végrehajtja-e ezt egy pár 983 00:39:43,650 --> 00:39:46,660 sornyi kódot, akkor kiköp a teljes szöveg az e 984 00:39:46,660 --> 00:39:48,240 dal elég gyorsan. 985 00:39:48,240 --> 00:39:50,420 De az út mentén, akkor lehet kezdeni, hogy most kötekedik eltekintve néhány 986 00:39:50,420 --> 00:39:52,460 ezen alapvető looping konstrukciók, és most is 987 00:39:52,460 --> 00:39:55,830 bevezetése funkciók írunk magunkat, visszatérési értékek 988 00:39:55,830 --> 00:39:57,020 hogy átadjuk körül. 989 00:39:57,020 --> 00:39:58,910 De először is, miért nem megyünk előre, és hogy a mi öt perc 990 00:39:58,910 --> 00:39:59,320 szünet itt? 991 00:39:59,320 --> 00:40:01,480 És mikor kapjuk vissza, fogjuk énekelni ezt a dalt. 992 00:40:05,680 --> 00:40:08,760 >> Rendben, szóval mi vissza. 993 00:40:08,760 --> 00:40:11,850 És amikor azt mondom, hogy most énekelni ezt a dalt, úgy értem 994 00:40:11,850 --> 00:40:13,250 programból, nem verbálisan. 995 00:40:13,250 --> 00:40:19,370 Tehát itt van beer1.c, amely egyike végrehajtásának 996 00:40:19,370 --> 00:40:20,580 különös dal. 997 00:40:20,580 --> 00:40:23,110 És csak hogy tisztázzuk, azok nem ismerik a mi 998 00:40:23,110 --> 00:40:24,460 ez a dolog úgy néz ki, mint, hadd menjek előre 999 00:40:24,460 --> 00:40:27,070 , és beer1, Enter. 1000 00:40:27,070 --> 00:40:30,400 Most hadd futni beer1, és mit fogunk látni -, hogy hány üveg 1001 00:40:30,400 --> 00:40:31,140 sör lesz-e? 1002 00:40:31,140 --> 00:40:33,240 Majd írja be a 99, mint a dal mondja. 1003 00:40:33,240 --> 00:40:34,040 Az Enter billentyűt. 1004 00:40:34,040 --> 00:40:35,650 És most, ha mi lapozáshoz - 1005 00:40:35,650 --> 00:40:38,280 Hoppá - ha lapozhat mindezt, akkor látjuk, hogy 1006 00:40:38,280 --> 00:40:41,350 ez valóban énekelni az egész dalt. 1007 00:40:44,050 --> 00:40:44,540 Várj egy percet. 1008 00:40:44,540 --> 00:40:46,240 Erre görgetősávot kicsit elrontotta. 1009 00:40:46,240 --> 00:40:47,940 Vegyünk a nagyobb ablakban. 1010 00:40:47,940 --> 00:40:53,500 Szóval beer1, 99, ott is vagyunk. 1011 00:40:53,500 --> 00:40:56,420 Tehát itt van az egész dalt, énekelt sokkal gyorsabb a 1012 00:40:56,420 --> 00:40:58,450 számítógép, mint amilyen lehetett volna minket. 1013 00:40:58,450 --> 00:41:00,340 Szóval észre, bár a ciklikus itt. 1014 00:41:00,340 --> 00:41:03,380 Azt mondja, 99, majd 99, majd az "egyet le, add 1015 00:41:03,380 --> 00:41:04,740 körül ", majd 98. 1016 00:41:04,740 --> 00:41:06,640 És most ismétlődik újra és újra. 1017 00:41:06,640 --> 00:41:08,840 >> Tehát ez valójában egy tökéletes lehetőség valamiféle 1018 00:41:08,840 --> 00:41:10,400 hurok konstrukció. 1019 00:41:10,400 --> 00:41:12,950 Figyeljük meg, hogy én vagyok a fajta vágás a sarokban van. 1020 00:41:12,950 --> 00:41:15,960 Figyeljük meg, hogy azt mondom, "98 üveg sör a falon, 1021 00:41:15,960 --> 00:41:19,010 97 üveg sör a falon ", és hogy csak annyira 1022 00:41:19,010 --> 00:41:21,640 hogy amikor kap egy üveg sört, nekem nincs 1023 00:41:21,640 --> 00:41:23,300 aggódni az angol nyelvtan. 1024 00:41:23,300 --> 00:41:25,790 De mi is erősít ez egy kicsit olyan, ha 1025 00:41:25,790 --> 00:41:26,910 állapotban, talán. 1026 00:41:26,910 --> 00:41:30,110 Ha ez a szám páratlan, megy előre, és azt mondja: "üveg", 1027 00:41:30,110 --> 00:41:31,840 egyébként ha ez többes számban, hogy "üveg". 1028 00:41:31,840 --> 00:41:34,150 De most én vagyok teljesen vágás a sarokban. 1029 00:41:34,150 --> 00:41:35,520 Akkor lássuk, mi van itt. 1030 00:41:35,520 --> 00:41:37,150 Tehát van néhány megjegyzést a tetején. 1031 00:41:37,150 --> 00:41:39,450 Én többek között a két könyvtárak, 1032 00:41:39,450 --> 00:41:41,140 voltunk közösen volt. 1033 00:41:41,140 --> 00:41:43,610 És most hadd görgesse le az első 1034 00:41:43,610 --> 00:41:44,990 tényleges sornyi kódot. 1035 00:41:44,990 --> 00:41:47,020 17. sor indul fő. 1036 00:41:47,020 --> 00:41:50,610 Vonal 21 és 20 van, hány üveg sör lesz-e? 1037 00:41:50,610 --> 00:41:52,060 És akkor hívom getInt. 1038 00:41:52,060 --> 00:41:53,800 És most van egy kis józanság csekket. 1039 00:41:53,800 --> 00:41:57,030 >> Szóval ez egy egyezmény, hogy akkor most kezd elfogadásáról a 1040 00:41:57,030 --> 00:41:59,620 szigorúbban ellenőrizze a felhasználói bemenetet. 1041 00:41:59,620 --> 00:42:01,710 Néha egyszerűen csak nem akarom, hogy jelezzen őket újra 1042 00:42:01,710 --> 00:42:02,630 és újra és újra. 1043 00:42:02,630 --> 00:42:05,620 Ha a felhasználó csavarokat, és nem működik együtt, rendben. 1044 00:42:05,620 --> 00:42:07,430 Lépjen ki, és egyszerűen nem foglalkoznak velük. 1045 00:42:07,430 --> 00:42:08,990 És ez az, amit csinálok itt. 1046 00:42:08,990 --> 00:42:12,520 Ha n kisebb, mint 1, én csak fog kiabálni a felhasználó, 1047 00:42:12,520 --> 00:42:14,330 "Sajnálom, hogy nincs értelme." És akkor fogok 1048 00:42:14,330 --> 00:42:16,650 önkényesen return 1. 1049 00:42:16,650 --> 00:42:18,550 Tehát újra, ez csak egy konvenció megszokni. 1050 00:42:18,550 --> 00:42:19,850 Most, hogy azt a hitet. 1051 00:42:19,850 --> 00:42:22,700 De eddig, mi mindig is visszatérő 0, mert 1052 00:42:22,700 --> 00:42:25,204 mi már azt mondta, visszatér 0 jelentése mi? 1053 00:42:25,204 --> 00:42:26,000 KÖZÖNSÉG: siker. 1054 00:42:26,000 --> 00:42:27,320 DAVID J. Malan: Siker, ez minden. 1055 00:42:27,320 --> 00:42:29,740 Tehát most, hogy mi végre kezd gondolkodni 1056 00:42:29,740 --> 00:42:31,330 non-sikerek - 1057 00:42:31,330 --> 00:42:33,760 más szóval, sarok esetekben hibaállapotokat - 1058 00:42:33,760 --> 00:42:37,520 most már végtelen mennyiségben, vagy legalábbis 4000000000 1059 00:42:37,520 --> 00:42:39,790 lehetséges dolog mehet rosszul a programokat. 1060 00:42:39,790 --> 00:42:42,300 És én kezdhetik bízzák azokat az egyéni számokat. 1061 00:42:42,300 --> 00:42:44,340 Nos, általában elegendő csak vissza 1062 00:42:44,340 --> 00:42:45,730 valami más, mint 0-ra. 1063 00:42:45,730 --> 00:42:48,040 Szóval megyünk egyszerűen return 1 most. 1064 00:42:48,040 --> 00:42:51,440 De az oka a visszatérő 1 olyan, hogy amint visszatér 1065 00:42:51,440 --> 00:42:55,110 1, találd ki, mi történik a többi program? 1066 00:42:55,110 --> 00:42:55,720 Megáll. 1067 00:42:55,720 --> 00:42:56,560 Ennyi. 1068 00:42:56,560 --> 00:42:59,150 Így az a tény, hogy én vagyok vissza az 1-hatékony 1069 00:42:59,150 --> 00:43:02,950 rövidre ezt a program végrehajtását, hogy a 1070 00:43:02,950 --> 00:43:06,780 semmi vonal alatt 27 folytatódni fog végrehajtó. 1071 00:43:06,780 --> 00:43:09,210 Amint fő visszatér, ez az. 1072 00:43:09,210 --> 00:43:13,160 >> Rendben, így ha a felhasználó nem együttműködnek, és elérjük a 30 vezetéken 1073 00:43:13,160 --> 00:43:15,680 mert írt egy legitim száma, itt az én 1074 00:43:15,680 --> 00:43:16,990 végrehajtása ezt a dalt. 1075 00:43:16,990 --> 00:43:19,050 Tehát először ki kell nyomtatni egy újsor karakter, csak 1076 00:43:19,050 --> 00:43:19,880 esztétika. 1077 00:43:19,880 --> 00:43:21,500 Én most már a hurok. 1078 00:43:21,500 --> 00:43:22,930 És észre csinálok dolgokat egy kicsit 1079 00:43:22,930 --> 00:43:23,880 egy másik irányba. 1080 00:43:23,880 --> 00:43:26,210 Nem kell tennie kevesebb, nem kell csinálni + +. 1081 00:43:26,210 --> 00:43:30,660 Én inkább azt inicializálni i változó, állítsa egyenlő 1082 00:43:30,660 --> 00:43:35,080 n, a szám a felhasználó beírt, akkor tegye a következőket, így a 1083 00:43:35,080 --> 00:43:39,590 Amíg én nagyobb, mint 0, akkor i - 1084 00:43:39,590 --> 00:43:42,070 ha egyszer már elkészült 1 iterációs e hurok. 1085 00:43:42,070 --> 00:43:44,310 Tehát visszaszámol egy for ciklus is. 1086 00:43:44,310 --> 00:43:47,520 Nos, ez elég sok héten egy dolgot most, printf. 1087 00:43:47,520 --> 00:43:51,770 Szóval print "% d üveg sör a falon." Print "% d 1088 00:43:51,770 --> 00:43:54,990 üveg sört. "" Vegyen egy lefelé, add körbe. "Print 1089 00:43:54,990 --> 00:43:58,880 "% D üveg sör a falon." Szóval ez még% d, de a 1090 00:43:58,880 --> 00:44:02,770 észre, hogy az az érv, hogy printf változik. 1091 00:44:02,770 --> 00:44:05,840 Miután a vessző, én tettem, mert azt akarom mondani 99. 1092 00:44:05,840 --> 00:44:08,590 Ezek után vessző, van i, mert azt akarom mondani 99. 1093 00:44:08,590 --> 00:44:14,030 Ezek után vessző, van i - 1, mert azt akarom mondani 98-at 1094 00:44:14,030 --> 00:44:16,260 ez az első iteráció, és így tovább. 1095 00:44:16,260 --> 00:44:18,520 És most ide, csak van néhány hülye kis megjegyzés. 1096 00:44:18,520 --> 00:44:22,270 És akkor 42 vonal, én vissza 0-egyezményt, jelezve, hogy 1097 00:44:22,270 --> 00:44:23,650 minden rendben van. 1098 00:44:23,650 --> 00:44:24,490 >> Szóval, mi lenne, ha ezt elrontottam? 1099 00:44:24,490 --> 00:44:26,350 Mi lehet a közös hiba itt lenni? 1100 00:44:26,350 --> 00:44:29,200 Nos, mi van, ha véletlenül mondtam is, akarom számolni 1101 00:44:29,200 --> 00:44:31,640 lefelé 0-ra, azt akarom, 0 üveg sör a falon? 1102 00:44:31,640 --> 00:44:34,620 Tehát azt mondom, i nagyobb vagy egyenlő, mint 0-ra. 1103 00:44:34,620 --> 00:44:38,920 Mi lesz a tünet, hogy most hátha újrafordítani 1104 00:44:38,920 --> 00:44:41,173 beer1 és futtatni? 1105 00:44:41,173 --> 00:44:42,120 KÖZÖNSÉG: Negatív. 1106 00:44:42,120 --> 00:44:43,590 DAVID J. Malan: Igen, ez fog menni negatív. 1107 00:44:43,590 --> 00:44:45,950 Ez egy off-by-one hiba, egy hihetetlenül 1108 00:44:45,950 --> 00:44:47,270 Gyakori hiba, hogy a. 1109 00:44:47,270 --> 00:44:48,960 Menjünk ténylegesen menj vissza a terminál ablakot és csináld 1110 00:44:48,960 --> 00:44:50,620 Itt, így többet láthatunk egy időben. 1111 00:44:50,620 --> 00:44:53,280 Adja meg, 99 üveg sör. 1112 00:44:53,280 --> 00:44:56,580 Bezár, de jártunk már így kicsit túl messzire. 1113 00:44:56,580 --> 00:45:00,500 Mi énekelte a dalt túlságosan le, oly módon, hogy most megüt a 1114 00:45:00,500 --> 00:45:01,510 negatív szám. 1115 00:45:01,510 --> 00:45:03,680 Tehát ez nem igazán működik. 1116 00:45:03,680 --> 00:45:06,450 >> Rendben, így könnyen rögzíteni, hogy menjen vissza a 1117 00:45:06,450 --> 00:45:07,650 úgy, ahogy egykor volt. 1118 00:45:07,650 --> 00:45:10,360 De mi van néhány lehetőség most 1119 00:45:10,360 --> 00:45:11,190 javulás? 1120 00:45:11,190 --> 00:45:17,200 Nos, hadd nyissuk beer2.c és görgessen le ide, és megteszi a 1121 00:45:17,200 --> 00:45:19,310 nézd meg ezt a verziót. 1122 00:45:19,310 --> 00:45:21,370 Mi az első dolog, hogy kiugrik rád a különböző 1123 00:45:21,370 --> 00:45:23,715 ez a verzió itt? 1124 00:45:23,715 --> 00:45:24,190 KÖZÖNSÉG: [hangtalan]. 1125 00:45:24,190 --> 00:45:26,510 DAVID J. Malan: Igen, így nincs több i, mert előfordult, hogy 1126 00:45:26,510 --> 00:45:29,350 me tudod mit, én kérek a felhasználótól n, és akkor én vagyok 1127 00:45:29,350 --> 00:45:33,580 beállítás I egyenlő n, majd én változó i, de én soha nem 1128 00:45:33,580 --> 00:45:34,590 megható n újra. 1129 00:45:34,590 --> 00:45:37,390 Szóval mi a fene volt az a pont tőled elosztásának további 32 1130 00:45:37,390 --> 00:45:45,210 bit hívott én csak így tudok eltérő változó? 1131 00:45:45,210 --> 00:45:47,960 Tehát ebben az esetben, azt a fajta elismerte, hogy a felesleges 1132 00:45:47,960 --> 00:45:49,190 tervezési jellemzője. 1133 00:45:49,190 --> 00:45:52,730 És én most akartam mondani, miközben n nagyobb, mint 0, menj 1134 00:45:52,730 --> 00:45:56,180 előre, és nyomtassa ki ugyanazt a dalt, átadva egy n printf mint a 1135 00:45:56,180 --> 00:46:00,210 második érv, és n - 1, mint a második érvet idelent. 1136 00:46:00,210 --> 00:46:02,930 És akkor minden egyes iterációs e hurok megy előre, és csak a 1137 00:46:02,930 --> 00:46:05,080 csökkentse n is. 1138 00:46:05,080 --> 00:46:06,960 Most, funkcionálisan, ez a program 1139 00:46:06,960 --> 00:46:08,010 lesz azonos. 1140 00:46:08,010 --> 00:46:10,730 Ha azt írja be a 99-n kezdődik 99. 1141 00:46:10,730 --> 00:46:12,890 Én csökkentő, csökkentő, csökkentő, csökkentő. 1142 00:46:12,890 --> 00:46:15,875 Megyek, hogy egészen az "Egy üveg sör 1143 00:46:15,875 --> 00:46:16,740 a falat, egy üveg sört. 1144 00:46:16,740 --> 00:46:18,020 Vegyünk egy lefelé, add körbe. 1145 00:46:18,020 --> 00:46:21,480 0 üveg sör a falon. "A vége, mert én tettem 1146 00:46:21,480 --> 00:46:23,200 kap a feltétel helyes. 1147 00:46:23,200 --> 00:46:24,280 Ez nagyobb mint 0. 1148 00:46:24,280 --> 00:46:26,220 Én nem ezt a hibát. 1149 00:46:26,220 --> 00:46:28,470 >> Szóval melyik a jobb, version 1 vagy 2 verzió? 1150 00:46:31,380 --> 00:46:33,480 Szóval hallottam egy csomó zúgolódástokat két. 1151 00:46:33,480 --> 00:46:34,730 Miért kettő? 1152 00:46:37,210 --> 00:46:38,225 Mi ez? 1153 00:46:38,225 --> 00:46:39,215 KÖZÖNSÉG: [hangtalan]. 1154 00:46:39,215 --> 00:46:40,070 DAVID J. Malan: Ó, oké. 1155 00:46:40,070 --> 00:46:42,870 Így nem fog 0-nál kisebb, de ne feledjük, a változata egy, a 1156 00:46:42,870 --> 00:46:45,870 eredeti helyes változatát nem megy 0 alá sem. 1157 00:46:45,870 --> 00:46:48,340 Úgy emlékszem, hogy ez a helyes verziót. 1158 00:46:48,340 --> 00:46:51,630 Szóval legalább összehasonlítani a két helyes változat. 1159 00:46:51,630 --> 00:46:53,300 Mi az az érv változat 1160 00:46:53,300 --> 00:46:55,146 kettő, mmm, jobb? 1161 00:46:55,146 --> 00:46:55,642 Igen? 1162 00:46:55,642 --> 00:46:57,630 KÖZÖNSÉG: Ez kevesebb helyet. 1163 00:46:57,630 --> 00:46:59,530 DAVID J. Malan: Oké, így kevesebb helyet, igaz? 1164 00:46:59,530 --> 00:47:02,900 Mivel a változat egy használt 32 bit n, majd egy másik 1165 00:47:02,900 --> 00:47:07,680 32 bit i. 1166 00:47:07,680 --> 00:47:10,060 Version 2 csak akkor használja 32 bit n, hogy 1167 00:47:10,060 --> 00:47:11,700 úgy tűnik, hogy egy plusz. 1168 00:47:11,700 --> 00:47:12,950 Egyéb gondolatok? 1169 00:47:18,070 --> 00:47:21,520 Akar valaki mellett érvelni egy? 1170 00:47:21,520 --> 00:47:22,070 Igen? 1171 00:47:22,070 --> 00:47:25,240 KÖZÖNSÉG: Ki kell használni extra sor kód n -. 1172 00:47:25,240 --> 00:47:26,090 >> DAVID J. Malan: Oké, persze. 1173 00:47:26,090 --> 00:47:26,960 Szóval ez fair. 1174 00:47:26,960 --> 00:47:29,040 Tehát ez csak, legalábbis számomra - 1175 00:47:29,040 --> 00:47:31,940 Úgy értem, ez tényleg úgy érzi, egy kicsit Messier a tény, hogy 1176 00:47:31,940 --> 00:47:35,120 Nem egyfajta magukba minden az én logika egy 1177 00:47:35,120 --> 00:47:38,030 szép sorban, a for ciklus, mivel az a hurok. 1178 00:47:38,030 --> 00:47:40,240 Itt valahogy kell tack e n - 1179 00:47:40,240 --> 00:47:41,120 végén a hurok, mert 1180 00:47:41,120 --> 00:47:42,550 ez logikusan szükséges. 1181 00:47:42,550 --> 00:47:45,190 De ez a fajta súrolja nekem a rossz úton, csak azért, mert 1182 00:47:45,190 --> 00:47:48,260 úgy tűnik, elkülönül a logikája ide, még akkor is, 1183 00:47:48,260 --> 00:47:49,430 Ismét, ez szükséges. 1184 00:47:49,430 --> 00:47:50,990 Egyéb gondolatok? 1185 00:47:50,990 --> 00:47:51,490 Igen? 1186 00:47:51,490 --> 00:47:52,740 KÖZÖNSÉG: [hangtalan]. 1187 00:47:57,990 --> 00:47:58,350 >> DAVID J. Malan: Igen. 1188 00:47:58,350 --> 00:48:00,730 Szóval, mi van, ha ehelyett a végén a dal, meg akarta 1189 00:48:00,730 --> 00:48:02,950 nyomtassa ki újra a nevét, a dal? 1190 00:48:02,950 --> 00:48:05,660 Like "Köszönjük, hogy játszani 99 üveg sört", vagy valami 1191 00:48:05,660 --> 00:48:06,690 buta, mint ez? 1192 00:48:06,690 --> 00:48:09,750 De a lényeg az, amit akart elérni az eredeti értékre. 1193 00:48:09,750 --> 00:48:13,180 Az a tény, hogy már mutáns vagy megváltozott n minden 1194 00:48:13,180 --> 00:48:16,330 iteráció és ezért elpusztították az eredeti értékre 1195 00:48:16,330 --> 00:48:18,650 azt jelenti, hogy nem tudod megtenni, hogy a végén. 1196 00:48:18,650 --> 00:48:20,660 Most, vitathatatlanul, egyértelműen nem akarok 1197 00:48:20,660 --> 00:48:21,450 hogy ebben a programban. 1198 00:48:21,450 --> 00:48:22,350 Szóval, kit érdekel? 1199 00:48:22,350 --> 00:48:23,630 De ez egy nagyon érvényes pontot. 1200 00:48:23,630 --> 00:48:25,520 És hogy őszinte legyek, nem igazán senki 1201 00:48:25,520 --> 00:48:26,630 helyes válasz van. 1202 00:48:26,630 --> 00:48:28,740 Mindketten egyformán helyes. 1203 00:48:28,740 --> 00:48:30,210 Tudtam meggyőzni mindkét irányban. 1204 00:48:30,210 --> 00:48:33,310 Azt fogják mondani, hogy általában, ez egy jó elv, ha 1205 00:48:33,310 --> 00:48:36,030 kérte a felhasználó bizonyos értéket, és tárolja egy változóban 1206 00:48:36,030 --> 00:48:38,730 mint n, csak egyfajta elvi, ez talán jó 1207 00:48:38,730 --> 00:48:40,160 tartani, hogy a kb. 1208 00:48:40,160 --> 00:48:43,400 És minden kívánt adatokat változékonysága újra és újra, csak 1209 00:48:43,400 --> 00:48:46,030 adj magadnak egy másolatot a változó, csak úgy, hogy 1210 00:48:46,030 --> 00:48:47,830 férhetnek hozzá az eredeti. 1211 00:48:47,830 --> 00:48:51,040 Ön költenek még 32 bit, de a valóságban ez 1212 00:48:51,040 --> 00:48:53,490 számítógép, mint, két gigabájt RAM-mal ezekben a napokban, 1213 00:48:53,490 --> 00:48:55,310 és mi quibbling több mint 32 bit? 1214 00:48:55,310 --> 00:48:56,320 Tényleg nem olyan nagy ügy. 1215 00:48:56,320 --> 00:48:58,550 És még ezen az eszközön itt, egy fél vagy egy koncert 1216 00:48:58,550 --> 00:49:01,700 gigabájt RAM, 32 bit vs 64 bit, 1217 00:49:01,700 --> 00:49:02,920 nem olyan nagy ügy. 1218 00:49:02,920 --> 00:49:05,890 Természetesen ma is lesz mód túlterheltek a méret 1219 00:49:05,890 --> 00:49:08,400 magának a programnak, ami lesz több száz 1220 00:49:08,400 --> 00:49:10,890 kilobyte, ha nem egy pár megabájt, ezekben a napokban. 1221 00:49:10,890 --> 00:49:13,550 >> Így ésszerű aggályokat, senki helyes válasz. 1222 00:49:13,550 --> 00:49:15,490 De legalább ezek a gondolatok, hogy meg kell kezdeni a 1223 00:49:15,490 --> 00:49:16,790 megy keresztül a fejedben? 1224 00:49:16,790 --> 00:49:19,600 Mert Pset 0, bár igazán csak a várható 1225 00:49:19,600 --> 00:49:22,340 helyességét, vagy legalábbis lemondanak különböző hibák 1226 00:49:22,340 --> 00:49:25,440 lehet, hogy tapasztalt, ahogy haladunk előre a design 1227 00:49:25,440 --> 00:49:27,910 lesz egy másik kulcsfontosságú eleme, mind a kód írása 1228 00:49:27,910 --> 00:49:29,770 és az is a mi értékelő kódot. 1229 00:49:29,770 --> 00:49:32,310 És így legalább ad gondoltam, hogy a dolgok, mint ez. 1230 00:49:32,310 --> 00:49:35,590 És csak azért, mert valami működik, nem jelenti azt, hogy jó, 1231 00:49:35,590 --> 00:49:37,130 nem jelenti azt, hogy a jól megtervezett. 1232 00:49:37,130 --> 00:49:38,820 És ez az egyik dolog, a tanítás és az ösztöndíjasok 1233 00:49:38,820 --> 00:49:41,990 probléma készletek segít kötekedik része az idő múlásával. 1234 00:49:41,990 --> 00:49:45,020 >> Nos, mi a helyzet, mondjuk, ez a verzió itt? 1235 00:49:45,020 --> 00:49:49,090 Hadd tegyek egy kicsit szexi itt egy pillanatra. 1236 00:49:49,090 --> 00:49:50,740 Először is hadd hogy eltűnjön ez. 1237 00:49:50,740 --> 00:49:54,120 És most hadd oldja meg a nyelvtani kérdés. 1238 00:49:54,120 --> 00:49:58,780 Tehát ez a verzió, azt akarom, hogy rögzítse a nyelvtan oly módon, hogy 1239 00:49:58,780 --> 00:50:02,460 ahelyett, hogy csak mondjuk zárójeles s, mint a "üveg" 1240 00:50:02,460 --> 00:50:03,360 vagy a "palackok" - 1241 00:50:03,360 --> 00:50:04,900 Nem akarom vágni, hogy a sarok - 1242 00:50:04,900 --> 00:50:08,350 Azt is szeretném, hogy dinamikusan kinyomtatni a "palackok" 1243 00:50:08,350 --> 00:50:12,820 vagy az "üveg", és ezáltal ezekkel% s helyőrzők ma. 1244 00:50:12,820 --> 00:50:16,550 Szóval kell, hogy feltételesen ellenőrizze, milyen értéke van a i. 1245 00:50:16,550 --> 00:50:19,590 És ha ez 1, azt akarom mondani, hogy "üveg", és ha ez valami 1246 00:50:19,590 --> 00:50:23,115 mást, azt akarom mondani, hogy "üveg". Akkor próbáljuk meg ezt. 1247 00:50:23,115 --> 00:50:31,340 Szóval, ha én == 1, akkor hadd menjen előre, és állapítsa meg - 1248 00:50:31,340 --> 00:50:34,080 Szükségem van egy string, ezért hadd tegye húr s1, mert ez a 1249 00:50:34,080 --> 00:50:36,070 először a fonalat törődöm most. 1250 00:50:36,070 --> 00:50:40,980 Fogom mondani, hogy "üveg". És akkor lássuk, húr 1251 00:50:40,980 --> 00:50:43,110 s2 - és elmagyarázom hova megyek egy pillanat alatt - 1252 00:50:43,110 --> 00:50:47,650 "Palackok". Szóval emlékeztetnek arra, hogy ez a dal, akkor képesnek kell lennie 1253 00:50:47,650 --> 00:50:50,580 nyomtatni a dolgokat, két különböző szót potenciálisan. 1254 00:50:50,580 --> 00:50:53,590 Tehát, ha megnézzük ide vissza, észre, hogy ha eljutunk 1255 00:50:53,590 --> 00:50:56,440 Ebben a példában itt "két üveg sört a falon, 1256 00:50:56,440 --> 00:50:59,490 két üveg sört, egyet le, add körül ", azt akarom, 1257 00:50:59,490 --> 00:51:02,380 ez a negyedik sorban most mondani, hogy "egy üveg sör 1258 00:51:02,380 --> 00:51:04,900 fal ". Szóval kell dönteni, akarom mondani, hogy" palack "vagy 1259 00:51:04,900 --> 00:51:07,780 "Üveg"? Szóval megyek önkényesen mondani, rendben, 1260 00:51:07,780 --> 00:51:10,530 Megyek most, hogy egy változót nevű s1, string 1261 00:51:10,530 --> 00:51:13,830 egy, hogy fog kapni dugva ide, és itt is, 1262 00:51:13,830 --> 00:51:16,070 mert ezek a szavak mindig azonosak, csak azért, mert a 1263 00:51:16,070 --> 00:51:17,290 jellegét a dalt. 1264 00:51:17,290 --> 00:51:20,100 És én fogom hívni s2 amit szó akarok 1265 00:51:20,100 --> 00:51:21,560 végül jelennek meg itt lent. 1266 00:51:21,560 --> 00:51:25,530 Nos, a szó szoros értelmében, 99-szer 100-ból, ez lesz a 1267 00:51:25,530 --> 00:51:28,820 ugyanaz mindkét ezekben az esetekben, mivel a 3. többes, a 2 1268 00:51:28,820 --> 00:51:30,200 többes szám, 4 többes számban. 1269 00:51:30,200 --> 00:51:34,640 De ebben az esetben sarokban, ahol kap 2, majd 1, vagy 1270 00:51:34,640 --> 00:51:37,250 akár 1, majd 0, I kell ezt a logikát. 1271 00:51:37,250 --> 00:51:41,020 Szóval kell tölteni egy kis időt a kód egyre ezt a jogot. 1272 00:51:41,020 --> 00:51:47,530 Szóval, ha ezt csinálom, ha én == 1, majd állítsa s1 egyenlő "üveg" 1273 00:51:47,530 --> 00:51:52,010 és s2 megegyezik a "palackok", mert ez lesz az 1 1274 00:51:52,010 --> 00:51:56,340 üveget, és ez lesz a 0-palackok. 1275 00:51:56,340 --> 00:51:58,250 És ez itt, ez mit jelent? 1276 00:51:58,250 --> 00:51:59,780 Csak hogy világos legyen. 1277 00:51:59,780 --> 00:52:00,620 Ez csak egy megjegyzés. 1278 00:52:00,620 --> 00:52:03,730 Így az a tény, hogy lehet egysoros megjegyzés azt jelenti, hogy 1279 00:52:03,730 --> 00:52:06,110 szólhatnak hozzá a kódot, mint ez, hanem egy másik közös 1280 00:52:06,110 --> 00:52:09,050 paradigma is, hogy ha van egy szuper-rövid mondat, amely 1281 00:52:09,050 --> 00:52:11,410 szeretne tenni magad, és ez csak olvashatóbbá tenni 1282 00:52:11,410 --> 00:52:13,270 ez jobb a végén a sort, akkor 1283 00:52:13,270 --> 00:52:15,230 egyáltalán ilyet. 1284 00:52:15,230 --> 00:52:20,150 >> Szóval most mi van, ha tudom ezt megtenni? Különben, ha én nem egyenlő 1-re. 1285 00:52:20,150 --> 00:52:21,620 Szóval bumm egyenlő - 1286 00:52:21,620 --> 00:52:23,150 felkiáltójel az úgynevezett "bang". 1287 00:52:23,150 --> 00:52:25,080 Szóval bumm = 1. 1288 00:52:25,080 --> 00:52:28,530 Tehát, ha én nem egyenlő 1, mit inkább szeretnél csinálni? 1289 00:52:28,530 --> 00:52:31,700 Nos, az első szó, azt akarom, hogy mi? 1290 00:52:34,620 --> 00:52:40,030 Szóval karakterlánc 1 legyen "palackok" a többes palackok, 1291 00:52:40,030 --> 00:52:42,440 és akkor ez lesz többes "palackok" is, most. 1292 00:52:42,440 --> 00:52:43,800 És majd meglátjuk, ha ez valóban lesz számunkra, hogy 1293 00:52:43,800 --> 00:52:44,870 hová akarunk menni. 1294 00:52:44,870 --> 00:52:47,680 Tehát most, ha én görgessen itt észre, hogy én vagyok csatlakoztatása 1295 00:52:47,680 --> 00:52:50,170 Nem csak én, hanem s1. 1296 00:52:50,170 --> 00:52:51,860 Én csatlakoztatása i és s1. 1297 00:52:51,860 --> 00:52:54,440 És akkor itt lent vagyok, mínusz 1, amely ugyanaz, mint a 1298 00:52:54,440 --> 00:52:55,920 előtt, de s2. 1299 00:52:55,920 --> 00:52:58,730 Más szóval, azt akarom, az angol alapuló változások 1300 00:52:58,730 --> 00:52:59,930 Ezen logika. 1301 00:52:59,930 --> 00:53:03,310 Nos, van már némi problémát ezen a kódot. 1302 00:53:03,310 --> 00:53:08,460 Mi már tört ki a kapu itt? 1303 00:53:08,460 --> 00:53:10,796 Igen? 1304 00:53:10,796 --> 00:53:13,210 KÖZÖNSÉG: [hangtalan]. 1305 00:53:13,210 --> 00:53:13,800 >> DAVID J. Malan: Pontosan. 1306 00:53:13,800 --> 00:53:16,030 Szóval már megsértette a leckét a hatályát. 1307 00:53:16,030 --> 00:53:19,610 Szóval bejelentett S1 és S2, de én megcsináltam belsejében 1308 00:53:19,610 --> 00:53:22,980 kapcsos zárójelek, ami azt jelenti, igen, ez a kód működni fog, akár 1309 00:53:22,980 --> 00:53:27,430 amíg a 42 vonal, de amint megütöttem vonal 43, találd ki, mi nem 1310 00:53:27,430 --> 00:53:28,900 már nem létezik? 1311 00:53:28,900 --> 00:53:32,600 Nos, azt hiszem, mi már nem hatály - nem s1 vagy s2. 1312 00:53:32,600 --> 00:53:33,780 Tehát-hoz erősít ez. 1313 00:53:33,780 --> 00:53:36,180 Szóval hadd törölje a nyilatkozatokat. 1314 00:53:36,180 --> 00:53:39,320 És én hagyom a változók neveit, és törölje ezt itt 1315 00:53:39,320 --> 00:53:40,120 és törölje ezt itt. 1316 00:53:40,120 --> 00:53:43,557 És mit sorok igazán Kijelentem ezeket a dolgokat? 1317 00:53:43,557 --> 00:53:44,960 KÖZÖNSÉG: [hangtalan]. 1318 00:53:44,960 --> 00:53:45,410 DAVID J. Malan: Igen, így valószínűleg 1319 00:53:45,410 --> 00:53:46,850 egészen ide, 33-ish. 1320 00:53:46,850 --> 00:53:50,670 Szóval karakterlánc s1 majd húr s2. 1321 00:53:50,670 --> 00:53:51,950 És kiderül, meg tudom csinálni. 1322 00:53:51,950 --> 00:53:54,260 Ha kimondja a két változó azonos típusú, 1323 00:53:54,260 --> 00:53:57,420 akkor valójában csak használd a vesszőt, és nem, hogy a C. All 1324 00:53:57,420 --> 00:53:58,970 Rendben, így most van két változó - 1325 00:53:58,970 --> 00:53:59,860 S1 és S2. 1326 00:53:59,860 --> 00:54:02,000 Én bízzák azokat az értékeket ezen 1327 00:54:02,000 --> 00:54:04,210 feltételek itt, vagy itt. 1328 00:54:04,210 --> 00:54:06,690 És akkor én vagyok a őket az alábbiakban. 1329 00:54:06,690 --> 00:54:10,960 Milyen jól van ez most működni fog? 1330 00:54:10,960 --> 00:54:12,740 >> Nos, ez még mindig egy kicsit bugos, de most legalább látni 1331 00:54:12,740 --> 00:54:13,730 milyen messzire ütött. 1332 00:54:13,730 --> 00:54:16,500 Szóval hadd menjen előre, és beer3. 1333 00:54:16,500 --> 00:54:17,695 Ez beer3? 1334 00:54:17,695 --> 00:54:19,410 Igen, ez beer3. 1335 00:54:19,410 --> 00:54:21,510 És most hadd menjen előre és fuss beer3. 1336 00:54:21,510 --> 00:54:23,820 399 99. 1337 00:54:23,820 --> 00:54:25,840 Mi lehet Valószínűleg kihagyja a legtöbbjük. 1338 00:54:25,840 --> 00:54:29,100 És itt lent, ezt nézd meg. 1339 00:54:29,100 --> 00:54:31,110 "Egy üveg sör a falon, egy üveg sör, vegye 1340 00:54:31,110 --> 00:54:34,306 egy lefelé, add körbe, 0 üveg sör a falon. " 1341 00:54:34,306 --> 00:54:37,570 De én felhívja a figyelmet, hogy csak a fele a megoldás. 1342 00:54:37,570 --> 00:54:39,620 Fajta elcseszte itt. 1343 00:54:39,620 --> 00:54:43,030 Tehát úgy tűnik, hogy a sarok esetekben merül fel, amikor i értéke, amit 1344 00:54:43,030 --> 00:54:44,030 két érték? 1345 00:54:44,030 --> 00:54:45,020 KÖZÖNSÉG: 2, 1. 1346 00:54:45,020 --> 00:54:46,190 DAVID J. Malan: 2 és 1. 1347 00:54:46,190 --> 00:54:48,180 Ez nem 1 és nem 1. 1348 00:54:48,180 --> 00:54:51,890 Ez tényleg csak az utolsó két versszak ezt a dalt. 1349 00:54:51,890 --> 00:54:53,890 Szóval mit tegyek helyette szeretnél csinálni? 1350 00:54:53,890 --> 00:54:58,890 Szóval úgy tűnik, hogy fogott az esetben, ha, ha i == 1, 1351 00:54:58,890 --> 00:55:02,240 akkor az első szó a "üveg", de a második szó 1352 00:55:02,240 --> 00:55:07,230 a "palackok". De itt, meg akarom változtatni, hogy ez == 2. 1353 00:55:07,230 --> 00:55:08,570 És ha ez a helyzet, mit akarok a 1354 00:55:08,570 --> 00:55:09,620 első szó legyen? 1355 00:55:09,620 --> 00:55:10,430 KÖZÖNSÉG: "palackok". 1356 00:55:10,430 --> 00:55:12,890 DAVID J. Malan: "palackok", így a két üveg. 1357 00:55:12,890 --> 00:55:14,690 És akkor ezt a szót itt kell lennie - 1358 00:55:14,690 --> 00:55:15,340 KÖZÖNSÉG: "Bottle". 1359 00:55:15,340 --> 00:55:17,316 DAVID J. Malan: "Bottle", furcsa. 1360 00:55:20,430 --> 00:55:25,160 >> Rendben, a kicsinyítés, menjen vissza ide, újra futtassuk le a make, 1361 00:55:25,160 --> 00:55:28,590 re-run beer3 típusú 99 újra. 1362 00:55:28,590 --> 00:55:30,710 Oké, "Segmentation fault (core dump)." 1363 00:55:30,710 --> 00:55:32,780 Mit tettem rosszul? 1364 00:55:36,050 --> 00:55:38,722 KÖZÖNSÉG: Ön nincs érték [hallhatatlan]. 1365 00:55:38,722 --> 00:55:40,480 DAVID J. Malan: Ah, excellent pont. 1366 00:55:40,480 --> 00:55:43,310 Rendben, mi a baj itt? 1367 00:55:43,310 --> 00:55:45,450 Szóval szegmentációs hiba, és mi tényleg fog látni 1368 00:55:45,450 --> 00:55:49,020 ezt jó néhány alkalommal a jövőben, szándékosan. 1369 00:55:49,020 --> 00:55:51,030 De most, mit jelent ez valójában? 1370 00:55:51,030 --> 00:55:53,620 A szegmentációs hiba szinte mindig azt jelenti, hogy 1371 00:55:53,620 --> 00:55:56,760 valahogy megpróbált hozzáférni memória, RAM a számítógép, 1372 00:55:56,760 --> 00:56:00,600 , hogy ne a saját, hogy már valójában nem kérte a 1373 00:56:00,600 --> 00:56:02,050 operációs rendszert. 1374 00:56:02,050 --> 00:56:04,440 Tehát ebben az esetben, észre mit tettem, ami 1375 00:56:04,440 --> 00:56:05,870 hibás az én logika. 1376 00:56:05,870 --> 00:56:09,500 Én célhoz S1 és S2 értéke, ha i értéke 1. 1377 00:56:09,500 --> 00:56:11,590 Én is megtettem, ha i = 2. 1378 00:56:11,590 --> 00:56:13,710 De én nem csináltam azt a végtelen számú egyéb 1379 00:56:13,710 --> 00:56:14,690 lehetőségek - 1380 00:56:14,690 --> 00:56:17,940 különösen a 3 vagy 4 vagy pont, pont, pont, 99. 1381 00:56:17,940 --> 00:56:20,100 Tehát az egyik fix erre lehet, hogy csak nézzük 1382 00:56:20,100 --> 00:56:22,190 van más feltételt. 1383 00:56:22,190 --> 00:56:26,780 És hadd menjen ide és mondd s1 megegyezik - 1384 00:56:26,780 --> 00:56:28,180 milyen legyen itt? 1385 00:56:28,180 --> 00:56:28,750 KÖZÖNSÉG: [hangtalan]. 1386 00:56:28,750 --> 00:56:30,460 >> DAVID J. Malan: "palackok", mert a közös ügy, 1387 00:56:30,460 --> 00:56:32,020 ez csak ugyanaz a dolog. 1388 00:56:32,020 --> 00:56:35,580 Tehát egyenlő idézet, idézőjel bezárva, "üveg". Tehát a többes szám 1389 00:56:35,580 --> 00:56:41,010 palackok, majd ide, a többes szám palackok. 1390 00:56:41,010 --> 00:56:44,580 Oké, most hadd menjek vissza a terminál ablak, 1391 00:56:44,580 --> 00:56:47,200 újrafordítás, újra futtatni. 1392 00:56:47,200 --> 00:56:48,440 99. 1393 00:56:48,440 --> 00:56:49,150 Hú. 1394 00:56:49,150 --> 00:56:50,610 És nézzünk egy gyors józanság csekket. 1395 00:56:50,610 --> 00:56:52,400 Technikailag, mi lenne érdemes elolvasni az összes ilyen, hogy győződjön meg arról, 1396 00:56:52,400 --> 00:56:53,370 ők igaz, de nézzük meg 1397 00:56:53,370 --> 00:56:54,640 legalább az ismert bűnösöket. 1398 00:56:54,640 --> 00:56:57,370 3 db, 2 üveg, 2 üveg, 1 1399 00:56:57,370 --> 00:57:00,380 üveg, 1 üveg, 0 palackok. 1400 00:57:00,380 --> 00:57:03,080 Úgy tűnik, legalább fix, hogy most. 1401 00:57:03,080 --> 00:57:06,010 De a fogást az, hogy milyen egy isten szörnyű rendetlenség ez 1402 00:57:06,010 --> 00:57:07,470 csak azért, hogy megoldja a hülye 1403 00:57:07,470 --> 00:57:09,540 egykarakteres nyelvtani részlet. 1404 00:57:09,540 --> 00:57:11,150 Tehát van egyfajta oka annak, hogy ez a vágott sarok 1405 00:57:11,150 --> 00:57:14,090 korábban, mert ez csak teljesen bosszantó, hogy meg kell 1406 00:57:14,090 --> 00:57:15,020 írni ezt a sok kódot. 1407 00:57:15,020 --> 00:57:17,530 De kiderült, hogy ott valamivel több elegáns módja 1408 00:57:17,530 --> 00:57:20,110 kifejező pontosan ugyanaz a dolog. 1409 00:57:20,110 --> 00:57:22,040 És mi is ezt az alábbiak szerint. 1410 00:57:22,040 --> 00:57:23,890 >> Hadd hagyja a képernyőn egy pillanatra, és 1411 00:57:23,890 --> 00:57:27,320 bevezetni valami ismert háromkomponensű üzemeltető. 1412 00:57:27,320 --> 00:57:29,600 Ez a fajta egy vonalhajózási ez csak azt jelentette, hogy a mi 1413 00:57:29,600 --> 00:57:31,880 él egy kicsit szexisebb, mint ígérte. 1414 00:57:31,880 --> 00:57:33,130 És én fogom ezt az alábbiak szerint. 1415 00:57:33,130 --> 00:57:35,810 Adj egy string nevű s1, hadd 1416 00:57:35,810 --> 00:57:37,200 hozzárendelheti az alábbiak szerint. 1417 00:57:37,200 --> 00:57:39,900 (I == 1)? 1418 00:57:39,900 --> 00:57:47,820 "Üveg", egyébként "palackok". Karakterlánc s2 kap (i == 2)? 1419 00:57:47,820 --> 00:57:52,670 "Üveg", egyébként "palackok". 1420 00:57:52,670 --> 00:57:57,050 Szóval akkor mi a különbség itt? 1421 00:57:57,050 --> 00:57:59,370 Ez a két sornyi kódot, amellett érvelek, lehet 1422 00:57:59,370 --> 00:58:02,200 helyettesíteni ezt az egész felfordulást. 1423 00:58:02,200 --> 00:58:04,280 Szóval ez egy rendetlenség, csak azért, mert ez a fajta súrolja nekem a 1424 00:58:04,280 --> 00:58:05,940 rossz irányba, hogy ez sok sornyi kódot. 1425 00:58:05,940 --> 00:58:06,650 Nem rossz. 1426 00:58:06,650 --> 00:58:07,700 Ez nem rossz design. 1427 00:58:07,700 --> 00:58:10,140 Mármint, ez teljesen korrekt és tökéletesen megfelel. 1428 00:58:10,140 --> 00:58:12,970 De a kódolás lesz unalmas, ha van kifejezni magát, így 1429 00:58:12,970 --> 00:58:15,530 fenébe kifejezetten újra és újra és újra egy egyszerű 1430 00:58:15,530 --> 00:58:16,620 forgatókönyv, mint ez. 1431 00:58:16,620 --> 00:58:19,470 Tehát a C egyes billentyűparancsok, mint ez. 1432 00:58:19,470 --> 00:58:24,270 Tehát ez lényegében azt mondja nyilvánítja egy string nevű s1 és 1433 00:58:24,270 --> 00:58:32,610 rendelje hozzá sem ezt az értéket, vagy ez az érték, ha i == - 1434 00:58:32,610 --> 00:58:35,290 Sajnálom, azt kell mondanom, ez pontosabban. 1435 00:58:35,290 --> 00:58:41,680 Állapítsa meg a változó s1, rendeljen hozzá ezt az értéket, ha ez igaz. 1436 00:58:41,680 --> 00:58:44,280 Ellenkező esetben rendelje hozzá ezt az értéket. 1437 00:58:44,280 --> 00:58:47,220 Más szóval, ez a fajta egy egysoros módja 1438 00:58:47,220 --> 00:58:51,490 mondván, ha mást csinál átruházását az út mentén. 1439 00:58:51,490 --> 00:58:55,540 Tehát, ha i 1, akkor megy előre, és ezt "üveg". És 1440 00:58:55,540 --> 00:58:59,830 akkor ez más, nevezzük "palackok". Eközben, s2, a 1441 00:58:59,830 --> 00:59:04,060 második szó, hogy meg kell határozni, ha az i értéke 2, akkor 1442 00:59:04,060 --> 00:59:08,350 beállítása s2 az "üveg". Ellenkező esetben állítsa "palackok". És mi 1443 00:59:08,350 --> 00:59:11,460 ez azt jelenti, most mehetek át ezt, és törli az összes 1444 00:59:11,460 --> 00:59:12,860 e sornyi kódot. 1445 00:59:12,860 --> 00:59:17,220 És amikor azt mondom, kissé nevetségesen, hogy ez most 1446 00:59:17,220 --> 00:59:20,060 szexisebb, ez szexisebb a fajta stiláris értelemben. 1447 00:59:20,060 --> 00:59:22,660 Az a tény, hogy funkcionálisan ez a kód valójában megy 1448 00:59:22,660 --> 00:59:24,610 nem pontosan ugyanaz a dolog. 1449 00:59:24,610 --> 00:59:26,890 És bár lehet, hogy néz ki egy kicsit rejtélyes az első 1450 00:59:26,890 --> 00:59:29,250 pillantásra, mert nem láttam ezt a konstrukciót, mielőtt, azt 1451 00:59:29,250 --> 00:59:31,850 azzal érvelnek, hogy ez végső soron lesz sokkal 1452 00:59:31,850 --> 00:59:34,820 olvasható, és így sokkal könnyebb mi emberek, hogy egyfajta 1453 00:59:34,820 --> 00:59:36,830 megérteni, mert most már csak olvasd el a 1454 00:59:36,830 --> 00:59:38,830 kód minden egy sorban. 1455 00:59:38,830 --> 00:59:41,550 Még mindig hasonló szellemben egy ha akkor, amikor ez a 1456 00:59:41,550 --> 00:59:44,920 állapot és akkor ez mi van belül, és ha ez a 1457 00:59:44,920 --> 00:59:46,480 az, ami belül más. 1458 00:59:46,480 --> 00:59:49,450 De meg tudjuk csinálni, csak sokkal elegánsan. 1459 00:59:49,450 --> 00:59:52,650 >> És ha most megy vissza a terminál, miután törölte az összes 1460 00:59:52,650 --> 00:59:55,530 E vonalak és helyettük csak a két, 1461 00:59:55,530 --> 01:00:00,150 újrafordítás, re-run üveg sör 99, figyelje meg, hogy az én 1462 01:00:00,150 --> 01:00:03,350 nyelvtan valójában, még mindig helyes. 1463 01:00:03,350 --> 01:00:06,160 Szóval megint valamit kezdeni. 1464 01:00:06,160 --> 01:00:08,840 2 üveg sör, 1 üveg sör. 1465 01:00:08,840 --> 01:00:09,370 Úgy néz ki, rendben. 1466 01:00:09,370 --> 01:00:10,100 Igen. 1467 01:00:10,100 --> 01:00:13,900 Tehát ott van egy sokkal tömörebb megoldás. 1468 01:00:13,900 --> 01:00:16,020 Szóval ez is, ahogy minél több elégedett C, nem 1469 01:00:16,020 --> 01:00:18,630 szükségképpen az első Pset vagy akár második, de 1470 01:00:18,630 --> 01:00:21,170 észre, hogy ezek a konstrukciók lehetővé teszi számunkra, hogy a dolgok valaha is 1471 01:00:21,170 --> 01:00:22,810 elegánsabban. 1472 01:00:22,810 --> 01:00:25,200 Most tegye egy másik dolog itt. 1473 01:00:25,200 --> 01:00:31,460 Hadd menjek előre, és nyissa ki return1.c. 1474 01:00:31,460 --> 01:00:34,340 Kezdjük megoldására egy másik problémát oly módon, hogy 1475 01:00:34,340 --> 01:00:37,140 lehetővé teszi számunkra, hogy írjon kifinomultabb kódot. 1476 01:00:37,140 --> 01:00:39,960 >> Tehát itt van egy egyszerű kis program, amelynek célja az élet 1477 01:00:39,960 --> 01:00:41,870 hogy növelni értékeket. 1478 01:00:41,870 --> 01:00:43,100 És valóban, vessünk egy lépést hátra. 1479 01:00:43,100 --> 01:00:44,400 Hadd ezt kézzel. 1480 01:00:44,400 --> 01:00:52,200 Hadd csináljam tartalmazza és int main (void). 1481 01:00:52,200 --> 01:00:53,450 És hadd hívjuk ezt increment.c. 1482 01:00:57,150 --> 01:00:58,570 És mit szeretnél csinálni? 1483 01:00:58,570 --> 01:01:02,240 Én megyek előre, és mond valamit, mint - 1484 01:01:02,240 --> 01:01:04,280 fogjuk hívni a számokat az azonos - 1485 01:01:04,280 --> 01:01:04,980 int x. 1486 01:01:04,980 --> 01:01:13,670 Így int x kap 2; printf x% d, új vonal, x. 1487 01:01:13,670 --> 01:01:16,780 Szóval gépelés gyors, de valami ismerős dolog most. 1488 01:01:16,780 --> 01:01:18,830 Akkor fogok csinálni x + +. 1489 01:01:18,830 --> 01:01:21,710 Akkor fogom nyomtatni, hogy ugyanabban a mondatban újra. 1490 01:01:21,710 --> 01:01:24,550 Aztán megyek vissza 0, csak úgy kilépni a programból. 1491 01:01:24,550 --> 01:01:25,960 Rendben, ez egy olyan program, amely 1492 01:01:25,960 --> 01:01:26,960 lépésekben egy számot. 1493 01:01:26,960 --> 01:01:29,830 Az első fog initialize valami, 2, és akkor ez 1494 01:01:29,830 --> 01:01:33,470 fogja növelni, és nyomtassa ki újra. 1495 01:01:33,470 --> 01:01:36,930 >> Szóval Fussunk növedék, hihetetlenül egyszerű program. 1496 01:01:36,930 --> 01:01:40,940 De tegyük fel, most, hogy akarom kocka az érték, így nem 1497 01:01:40,940 --> 01:01:42,490 valami kissé önkényes. 1498 01:01:42,490 --> 01:01:45,140 És én tényleg akarom x megkapja a kocka is. 1499 01:01:45,140 --> 01:01:47,570 Így tudtam használni az úgynevezett a pow funkciót, de én nem 1500 01:01:47,570 --> 01:01:48,650 igazán tudom, hol van még. 1501 01:01:48,650 --> 01:01:50,580 Szóval fogom ezt a régi vágású módon. 1502 01:01:50,580 --> 01:01:54,550 x-szer ez megfelel x-szer x-szer x. 1503 01:01:54,550 --> 01:01:56,880 Szóval kocka az érték, megszorozva önmagában újra 1504 01:01:56,880 --> 01:02:00,440 és újra és újra, azért, hogy így a hatalom 1505 01:02:00,440 --> 01:02:02,050 3 ebben az esetben. 1506 01:02:02,050 --> 01:02:06,000 Így most a számokat kéne nyomtatni kell lennie, mint látni fogjuk 1507 01:02:06,000 --> 01:02:08,450 itt - teszi increment, így valójában nem igazán növelni 1508 01:02:08,450 --> 01:02:10,260 már, de hagyom a neve önmagában - 1509 01:02:10,260 --> 01:02:11,590 2, majd 8. 1510 01:02:11,590 --> 01:02:17,670 Most már a kezdetektől a lehetőséget finomítás 1511 01:02:17,670 --> 01:02:21,570 Itt, ahol ez a kocka dolog szorozni a szám 1512 01:02:21,570 --> 01:02:24,680 Önmagában önmagában magától úgy, mint ez, hogy csak 1513 01:02:24,680 --> 01:02:27,920 Hasznos, ha egy funkciót, ugyanúgy, mint valaki úgy döntött, 1514 01:02:27,920 --> 01:02:30,430 évvel ezelőtt - tudod, milyen hasznos, ha egyikünk leül 1515 01:02:30,430 --> 01:02:33,120 és írja printf úgy, hogy a világ többi része is használhatják, 1516 01:02:33,120 --> 01:02:36,160 miért nem ülünk le és írjon egy függvényt nevű kocka 1517 01:02:36,160 --> 01:02:39,250 hogy működik ez kocka nekünk így nem kell kézzel 1518 01:02:39,250 --> 01:02:41,500 végrehajtása fogalma kocka értékek itt? 1519 01:02:41,500 --> 01:02:44,040 >> Tehát egy egyszerű példa, de menjünk előre, és használja ezt, mint egy 1520 01:02:44,040 --> 01:02:46,280 lehetőséget, hogy írjon a saját funkciója. 1521 01:02:46,280 --> 01:02:49,110 Szóval eddig, most már csak a felhasznált fő, és mi már használt más 1522 01:02:49,110 --> 01:02:51,780 emberek funkcióit, de még nem írt a miénk. 1523 01:02:51,780 --> 01:02:52,650 Szóval itt vagyunk. 1524 01:02:52,650 --> 01:02:56,330 Én megyek előre, és levelet nevezett funkció kocka. 1525 01:02:56,330 --> 01:02:58,490 És megyek, hogy azt tegyen a bemenet. 1526 01:02:58,490 --> 01:03:02,070 Tehát a bemeneti lesz egész. 1527 01:03:02,070 --> 01:03:03,570 És mit fog ez csinálni? 1528 01:03:03,570 --> 01:03:08,500 Ez lesz állapítsa int output = bemenet idők bemenet 1529 01:03:08,500 --> 01:03:09,880 alkalommal bemenet. 1530 01:03:09,880 --> 01:03:12,190 És akkor fog visszatérni, hogy a kibocsátás. 1531 01:03:12,190 --> 01:03:14,500 És akkor kell külön most. 1532 01:03:14,500 --> 01:03:16,820 Ez a funkció megy vissza egy int. 1533 01:03:16,820 --> 01:03:19,130 Tehát itt akkor, hogyan akarsz írni saját funkciókat. 1534 01:03:19,130 --> 01:03:20,850 Először dönti el, mi a neve a 1535 01:03:20,850 --> 01:03:21,720 függvény lesz. 1536 01:03:21,720 --> 01:03:23,964 És általában valami magyarázó jó, úgyhogy 1537 01:03:23,964 --> 01:03:25,060 hívják kocka. 1538 01:03:25,060 --> 01:03:27,180 Ezután meg kell határozni, mit fog visszatérni, mi 1539 01:03:27,180 --> 01:03:28,240 kimenete lesz. 1540 01:03:28,240 --> 01:03:29,595 És nem kell, hogy sok lehetőség még. 1541 01:03:29,595 --> 01:03:32,260 Int, char, float, bool, string. 1542 01:03:32,260 --> 01:03:34,260 Most, fogok ragaszkodni egy int, mert azt akarom, hogy 1543 01:03:34,260 --> 01:03:35,880 vissza az egész. 1544 01:03:35,880 --> 01:03:38,770 Ezután meg kell adnia, amit a bemenet, ha van. 1545 01:03:38,770 --> 01:03:41,570 És ha kocka vesz egy érv, úgy valami között 1546 01:03:41,570 --> 01:03:44,970 zárójelben meg kell adni, hogy az érv egy nevet, hogy a 1547 01:03:44,970 --> 01:03:47,860 tudod nevezni valamit, amit végrehajtási vagy írás 1548 01:03:47,860 --> 01:03:50,550 ezt a funkciót, és meg kell, hogy ez a típus, amely ebben az 1549 01:03:50,550 --> 01:03:51,810 ügy lesz int. 1550 01:03:51,810 --> 01:03:54,690 Így rövid, kocka egy függvény, amely vesz egy egész 1551 01:03:54,690 --> 01:03:57,560 A bemeneti és visszatér értéke a kibocsátás. 1552 01:03:57,560 --> 01:03:59,240 >> Szóval mit kezdeni, hogy a bemeneti? 1553 01:03:59,240 --> 01:04:03,710 Nos, sorban 14, kijelentem változó nevű kimenet, és én 1554 01:04:03,710 --> 01:04:07,410 rendelni azt az értéket, input-szer bemenet alkalommal bemenet. 1555 01:04:07,410 --> 01:04:11,490 És aztán vissza kimenet. 1556 01:04:11,490 --> 01:04:14,890 Szóval hogyan tudom használni ezt akkor? 1557 01:04:14,890 --> 01:04:19,210 Mit változtatni ezeket a kiemelt karaktereket on-line 1558 01:04:19,210 --> 01:04:21,006 7-től lehet, mit gondolsz? 1559 01:04:21,006 --> 01:04:21,800 KÖZÖNSÉG: [hangtalan]. 1560 01:04:21,800 --> 01:04:25,570 DAVID J. Malan: Igen, kocka x. 1561 01:04:25,570 --> 01:04:28,290 Tehát x egy változó, ami azt jelenti, hogy rendelkezik valamilyen értéket. 1562 01:04:28,290 --> 01:04:30,190 Szerencsére, ez a típus egész. 1563 01:04:30,190 --> 01:04:34,280 És mert x egy int, hogy azt jelenti, jusson be kocka. 1564 01:04:34,280 --> 01:04:39,500 És bár én nyomós értékét x értékkel 1565 01:04:39,500 --> 01:04:42,780 A kocka x, mint volt a helyzet eddig bármikor 1566 01:04:42,780 --> 01:04:46,150 egyenlő jele és egy sor kódot, a cucc a jobb oldalon 1567 01:04:46,150 --> 01:04:49,090 kerül végrehajtásra, majd lesz rendelve a 1568 01:04:49,090 --> 01:04:50,150 érték a bal oldalon. 1569 01:04:50,150 --> 01:04:52,950 Így a műveletek sorrendjére olyan reméljük. 1570 01:04:52,950 --> 01:04:56,620 Így működik ez? 1571 01:04:56,620 --> 01:04:58,410 Nos, hadd menjen le ide. 1572 01:04:58,410 --> 01:04:59,970 Hadd nyissa fel a terminál ablakot. 1573 01:04:59,970 --> 01:05:03,610 Hadd ne hogy növekmény, az Enter billentyűt. 1574 01:05:03,610 --> 01:05:07,140 "Implicit nyilatkozatot funkció" kocka "érvénytelen 1575 01:05:07,140 --> 01:05:13,700 C99. "Mint félre, C99 utal, hogy a nyelv a C, mint volt 1576 01:05:13,700 --> 01:05:16,790 meghatározott 1999-ben, ami egy frissítést az verzió 1577 01:05:16,790 --> 01:05:19,360 1989, ami egy frissítés felett az eredeti. 1578 01:05:19,360 --> 01:05:21,740 Szóval ez minden eszközzel. 1579 01:05:21,740 --> 01:05:24,250 >> Szóval, mit jelent az, hogy "implicit nyilatkozat 1580 01:05:24,250 --> 01:05:26,790 funkció "kocka" helytelen? "Ez itt. 1581 01:05:26,790 --> 01:05:28,430 Ott van a 12-es vonal. 1582 01:05:28,430 --> 01:05:30,460 KÖZÖNSÉG: [hangtalan]. 1583 01:05:30,460 --> 01:05:30,730 DAVID J. Malan: Mi ez? 1584 01:05:30,730 --> 01:05:32,470 KÖZÖNSÉG: Ez nem korábban. 1585 01:05:32,470 --> 01:05:33,540 DAVID J. Malan: Ez nem korábban. 1586 01:05:33,540 --> 01:05:34,740 Szóval ez a dolog. 1587 01:05:34,740 --> 01:05:38,190 C a fajta ostoba, vagy C fordítók a fajta hülye. 1588 01:05:38,190 --> 01:05:41,060 Tényleg csak azt, amit mond nekik. 1589 01:05:41,060 --> 01:05:44,770 És különösen, csak olvasni a kódot tetejétől az aljáig, 1590 01:05:44,770 --> 01:05:45,620 balról jobbra. 1591 01:05:45,620 --> 01:05:49,140 Tehát, ha a fordító, csenget, olvas a kódot, line 1, 1592 01:05:49,140 --> 01:05:50,120 kitalálja, hogyan kell ezt csinálni. 1593 01:05:50,120 --> 01:05:50,940 Ó, itt jön a legfontosabb. 1594 01:05:50,940 --> 01:05:53,000 Oké, hadd menjen előre, és állapítsa meg a változó x. 1595 01:05:53,000 --> 01:05:54,160 Hadd nyomtatni valamit. 1596 01:05:54,160 --> 01:05:55,890 7. sor, mi a fene az a kocka? 1597 01:05:55,890 --> 01:05:58,230 Ez nem bejelentett stdio.h. 1598 01:05:58,230 --> 01:06:00,950 Nem jön a C fogalmam sincs, mit tegyek. 1599 01:06:00,950 --> 01:06:03,960 És így csengés csak Bails és kilép az említett hibaüzenet. 1600 01:06:03,960 --> 01:06:05,850 Így tudjuk kijavítani ezt egy pár módon. 1601 01:06:05,850 --> 01:06:10,530 Mi lehet tanítani csenget mi kocka mellett csak mozog, ahol a 1602 01:06:10,530 --> 01:06:11,820 nyilatkozatot. 1603 01:06:11,820 --> 01:06:14,640 Szóval vágott és beillesztett azt tetején fő. 1604 01:06:14,640 --> 01:06:17,770 Most, rájönnek, hogy csak azért, mert elsődleges már nem először, hogy ez 1605 01:06:17,770 --> 01:06:19,150 még végre alapértelmezés szerint. 1606 01:06:19,150 --> 01:06:20,060 Main fő. 1607 01:06:20,060 --> 01:06:21,022 Ez az alapértelmezett függvény neve. 1608 01:06:21,022 --> 01:06:22,930 Nem számít, hogy hol van a fájl. 1609 01:06:22,930 --> 01:06:26,910 De legalább most már csenget látott kockát, mielőtt használni. 1610 01:06:26,910 --> 01:06:28,500 Szóval lássuk csenget is boldogabb most. 1611 01:06:28,500 --> 01:06:31,410 Győződjön növekmény, ez volt fordítani ebben az időben. 1612 01:06:31,410 --> 01:06:33,060 >> Hadd futni növekmény. 1613 01:06:33,060 --> 01:06:34,810 És valóban, úgy tűnik, hogy működik. 1614 01:06:34,810 --> 01:06:36,810 Most, akkor jön ki forgatókönyveket végül, ha 1615 01:06:36,810 --> 01:06:38,650 ez nem megvalósítható, hogy tegye minden funkció 1616 01:06:38,650 --> 01:06:39,740 felett minden egyéb funkciót. 1617 01:06:39,740 --> 01:06:42,140 Majd elakad e végtelen ciklusba a valóságban, 1618 01:06:42,140 --> 01:06:43,480 amennyiben ez a fickó azt akarja, hogy itt lehetek, de ez 1619 01:06:43,480 --> 01:06:44,390 srác kell ott lenni. 1620 01:06:44,390 --> 01:06:45,830 Annak érdekében, hogy nem mindig működik. 1621 01:06:45,830 --> 01:06:49,020 Szóval szerencsére, C egy elegánsabb megoldás. 1622 01:06:49,020 --> 01:06:50,790 Fogom, hogy ezt vissza, ahol volt, csak azért, mert 1623 01:06:50,790 --> 01:06:53,390 inkább, mint a főszabály, hogy a legfontosabb mindig 1624 01:06:53,390 --> 01:06:55,550 a tetején, mert ez csak jó, hogy mi ezt a programot 1625 01:06:55,550 --> 01:06:56,920 nem alapértelmezés szerint. 1626 01:06:56,920 --> 01:06:58,950 És mit fogok csinálni akár itt nyilvánítja az úgynevezett 1627 01:06:58,950 --> 01:07:00,250 egy prototípust. 1628 01:07:00,250 --> 01:07:05,730 Megyek, hogy újra állapítsa my cube funkciót szó 1629 01:07:05,730 --> 01:07:07,180 másolás és beillesztés. 1630 01:07:07,180 --> 01:07:08,290 Igazából, ez nem szó szerint. 1631 01:07:08,290 --> 01:07:13,060 Tehát szó másolás és beillesztés vonal 15 1632 01:07:13,060 --> 01:07:15,160 fölé vonal 6. 1633 01:07:15,160 --> 01:07:17,010 Nem számít, milyen sor ez véget ér fel. 1634 01:07:17,010 --> 01:07:18,380 Előfordul, hogy a 4-es vonal. 1635 01:07:18,380 --> 01:07:19,950 De ez nem kell, mielőtt fő. 1636 01:07:19,950 --> 01:07:21,150 De észre a különbséget. 1637 01:07:21,150 --> 01:07:24,100 4. sor végén pontosvesszővel, ami azt jelenti, hé, 1638 01:07:24,100 --> 01:07:27,510 Csenget, veszem a szót, arról, hogy létezik egy függvény 1639 01:07:27,510 --> 01:07:31,350 úgynevezett kocka, hogy vesz egy int, és visszatér egy int. 1640 01:07:31,350 --> 01:07:33,020 De nem fogom elmondani, mi még. 1641 01:07:33,020 --> 01:07:35,180 Csak tudom, hogy én megígérem, hogy elmondjam végül. 1642 01:07:35,180 --> 01:07:38,490 És valóban, most már rendben van, hogy ez meg az alábbiakban. 1643 01:07:38,490 --> 01:07:41,275 >> Így ez általában jobb, mert akkor a tetején a 1644 01:07:41,275 --> 01:07:44,240 a fájlt, akkor csak elhadar, gyorstüzelő, egy sor 1645 01:07:44,240 --> 01:07:46,470 Minden, mi a neve a funkciók, milyen 1646 01:07:46,470 --> 01:07:49,120 bemenetek, milyen kimenetek. 1647 01:07:49,120 --> 01:07:52,210 És, hogy több egyértelmű, input általában azt jelenti, érvet vagy 1648 01:07:52,210 --> 01:07:54,110 paraméter szinonimája. 1649 01:07:54,110 --> 01:07:56,890 Output: a visszatérési érték, mit is 1650 01:07:56,890 --> 01:07:58,700 kézzel vissza. 1651 01:07:58,700 --> 01:08:03,420 Tehát ebben az esetben is, kocka nyilvánították a tetején, de a 1652 01:08:03,420 --> 01:08:06,940 meghatározott, más néven végrehajtott, az alján. 1653 01:08:06,940 --> 01:08:09,620 És most térjünk vissza ide, és futtassa újra ezt. 1654 01:08:09,620 --> 01:08:13,430 És most hadd menjek előre, és újra futtasd a make, futtassa újra növekmény. 1655 01:08:13,430 --> 01:08:16,500 És most úgy tűnik, hogy működik, csak finom. 1656 01:08:16,500 --> 01:08:19,450 Akkor most mi is megy előre, és vennünk valamit, mint a 1657 01:08:19,450 --> 01:08:23,720 sör például ebbe a negyedik változata. 1658 01:08:23,720 --> 01:08:25,590 Szóval hadd lapozzunk lefelé ide. 1659 01:08:25,590 --> 01:08:28,149 És észre, hogy én ilyen volt ez a lecke a szív most. 1660 01:08:28,149 --> 01:08:31,140 Az a tény, hogy én énekeltem ugyanazt a versszak ismét 1661 01:08:31,140 --> 01:08:34,130 újra és újra ugyanazt a kórus sort a dalt, úgy érezte, 1662 01:08:34,130 --> 01:08:36,439 Szeretek miért nem tudok tényező, hogy ki a funkciót? 1663 01:08:36,439 --> 01:08:38,470 És valóban, ez az egyik motivációk. 1664 01:08:38,470 --> 01:08:40,960 Amellett, hogy valaki a világban érdemes 1665 01:08:40,960 --> 01:08:42,390 hogy egy kocka funkció - 1666 01:08:42,390 --> 01:08:44,560 ez egy jó ok arra, hogy vennünk valamit, és írjuk meg a 1667 01:08:44,560 --> 01:08:45,720 egyéni funkció - 1668 01:08:45,720 --> 01:08:48,720 ha van egy darab kódot a program, csak teszi 1669 01:08:48,720 --> 01:08:51,370 konceptuális értelemben, hogy te ilyen akarjuk, hogy ez a 1670 01:08:51,370 --> 01:08:53,740 név - mint ebben az esetben, kórus - 1671 01:08:53,740 --> 01:08:57,380 akkor hasonló levelet, hogy külön funkciót. 1672 01:08:57,380 --> 01:08:59,560 Nem kell írni mindent, ami fontosabb, ha csak a 1673 01:08:59,560 --> 01:09:02,609 úgy érzi, tisztább, hogy elkülönüljön, és adja meg a nevet. 1674 01:09:02,609 --> 01:09:05,529 >> Tehát ebben az esetben is, észre, hogy van egy megjegyzés tetején 1675 01:09:05,529 --> 01:09:06,859 ezt a funkciót, hogy csak énekel, ami a 1676 01:09:06,859 --> 01:09:08,630 meghatározott számú palackok. 1677 01:09:08,630 --> 01:09:10,609 Figyeljük meg, hogy itt nem kell hívni ezeket 1678 01:09:10,609 --> 01:09:12,520 dolgok, bemeneti és kimeneti. 1679 01:09:12,520 --> 01:09:16,090 Tény, hogy ez idő szerint csak felhívtam a b input for üveget. 1680 01:09:16,090 --> 01:09:19,960 És észre itt void javasolja, mi? 1681 01:09:19,960 --> 01:09:21,309 Ez a kórus - 1682 01:09:21,309 --> 01:09:22,660 KÖZÖNSÉG: Nem vissza. 1683 01:09:22,660 --> 01:09:23,870 DAVID J. Malan: Nem ad vissza értéket. 1684 01:09:23,870 --> 01:09:26,800 És valóban, funkciók nem kell vissza értéket. 1685 01:09:26,800 --> 01:09:28,060 Ők is csak csináljon valamit. 1686 01:09:28,060 --> 01:09:30,270 Ezek lehetnek úgynevezett mellékhatások, melyeket ebben 1687 01:09:30,270 --> 01:09:33,109 Amennyiben csak egy csomó nyomtatás a képernyőn. 1688 01:09:33,109 --> 01:09:36,580 Tehát észre, hogy ez a kód itt, a szó szoros értelmében csak lopott 1689 01:09:36,580 --> 01:09:37,680 az előző példában. 1690 01:09:37,680 --> 01:09:39,930 Az egyetlen különbség az, ahelyett, hogy a i az én 1691 01:09:39,930 --> 01:09:42,890 változó, én most már b, mint az én változó. 1692 01:09:42,890 --> 01:09:45,880 Szóval b idelent, van b idelent, van b 1693 01:09:45,880 --> 01:09:47,109 mínusz 1 ide. 1694 01:09:47,109 --> 01:09:49,279 De a kód pontosan ugyanaz. 1695 01:09:49,279 --> 01:09:52,529 De csak, hogy mutassa meg most, hogyan tudjuk ezt, hadd menjen 1696 01:09:52,529 --> 01:09:56,780 előre, és valóban változtatni, hogy ez a for ciklus. 1697 01:09:56,780 --> 01:10:03,850 for (int i = n; i> n, i -). 1698 01:10:03,850 --> 01:10:06,230 >> Szóval, hogy ellopták a mi előző példában. 1699 01:10:06,230 --> 01:10:08,970 Korábban ez a 37. sor, hogy én megkezdődött 1700 01:10:08,970 --> 01:10:10,640 énekelni ezt a bosszantó dalt. 1701 01:10:10,640 --> 01:10:15,810 De ahelyett, én csak megy most hívja kórusa i. 1702 01:10:15,810 --> 01:10:16,870 Kész. 1703 01:10:16,870 --> 01:10:20,260 Tehát most minden iterációs e hurok hívom ezt a másik 1704 01:10:20,260 --> 01:10:22,220 funkció, kórus, hogy én történt írni. 1705 01:10:22,220 --> 01:10:24,110 Nem volt írta valaki évvel ezelőtt. 1706 01:10:24,110 --> 01:10:27,930 De a kórus, eközben használja printf nyomtatni 1707 01:10:27,930 --> 01:10:29,840 ezeket a négy sort. 1708 01:10:29,840 --> 01:10:32,720 De az a tény, hogy én hívom kórus újra és újra a 1709 01:10:32,720 --> 01:10:35,900 ciklus azt jelenti, hogy fogok kapni, a legvégén, a 1710 01:10:35,900 --> 01:10:39,310 pontosan ugyanazt a dalt, mint én eddig. 1711 01:10:39,310 --> 01:10:42,130 Tehát röviden, most, ha nézek vissza a kód, bár 1712 01:10:42,130 --> 01:10:44,240 funkcionálisan ez egyenértékű azzal, észreveheti, hogy ez 1713 01:10:44,240 --> 01:10:46,020 kezd még olvasható. 1714 01:10:46,020 --> 01:10:48,410 Én nem igazán tudom, hogyan getInt 1715 01:10:48,410 --> 01:10:49,250 megvalósítják. 1716 01:10:49,250 --> 01:10:52,050 Őszintén szólva, nem tudom, hogyan kórus megvalósítják. 1717 01:10:52,050 --> 01:10:52,970 De ez nem számít nekem. 1718 01:10:52,970 --> 01:10:55,620 Engem nem érdekel, mert most én egyfajta, mint egy ember, olvassa 1719 01:10:55,620 --> 01:10:57,050 ezt fentről lefelé. 1720 01:10:57,050 --> 01:10:59,950 És mivel a funkciókat neve szerint, amit 1721 01:10:59,950 --> 01:11:02,910 igen, a kód egyre olvasható. 1722 01:11:02,910 --> 01:11:05,190 És ahogy a mi programok sokkal bonyolultabb - 1723 01:11:05,190 --> 01:11:07,220 A félév végén, akkor meg kell írni száz sornyi 1724 01:11:07,220 --> 01:11:10,970 A kódot a nyelvek, mint a PHP és a JavaScript és hasonlók - 1725 01:11:10,970 --> 01:11:13,550 rájössz, hogy ez sokkal könnyebb, mint a nyomon követése 1726 01:11:13,550 --> 01:11:14,080 mit tettél. 1727 01:11:14,080 --> 01:11:15,810 És amikor elkezd együttműködik a barátokkal, vagy 1728 01:11:15,810 --> 01:11:19,010 partnerek és kollégák, akkor képes lesz arra, hogy írjon sokkal 1729 01:11:19,010 --> 01:11:22,910 masszív programok kezdenek gyakorolni ezeket az alapvető 1730 01:11:22,910 --> 01:11:23,990 építőelemeit. 1731 01:11:23,990 --> 01:11:25,550 >> Tehát azt mondta, miért nem hívjuk meg egy nap? 1732 01:11:25,550 --> 01:11:27,190 És mi találkozunk szerdán. 1733 01:11:27,190 --> 01:11:33,611 [Taps]