1 00:00:08,119 --> 00:00:11,630 [Powered by Google Translate] David J. Malan V redu, to je CS50, in to je 2 00:00:11,630 --> 00:00:14,790 začetek tedna 2. 3 00:00:14,790 --> 00:00:16,300 Hvala. 4 00:00:16,300 --> 00:00:19,000 Začnimo tukaj s telefonskim klicem. 5 00:00:19,000 --> 00:00:30,005 Jaz sem na tem, da pokličete 617-BUG-CS50. 6 00:00:30,005 --> 00:00:31,230 CS50: To je CS50. 7 00:00:31,230 --> 00:00:33,930 Za Boy Shuttle, pritisnite 1. 8 00:00:33,930 --> 00:00:36,660 Če želite začeti znova, pritisnite 9. 9 00:00:36,660 --> 00:00:38,180 David J. Malan: Tako je dejal za Boy Shuttle, pritisnite 1. 10 00:00:38,180 --> 00:00:41,560 Torej bomo pritisnite 1. 11 00:00:41,560 --> 00:00:43,230 CS50: Kakšen je vaš izvor? 12 00:00:43,230 --> 00:00:45,340 Za quad, pritisnite 1. 13 00:00:45,340 --> 00:00:47,080 Mather, pritisnite 2. 14 00:00:47,080 --> 00:00:49,240 Boylston, pritisnite 3. 15 00:00:49,240 --> 00:00:51,280 Lamont, pritisnite 4. 16 00:00:51,280 --> 00:00:53,210 Mem Hall, pritisnite 5. 17 00:00:53,210 --> 00:00:55,660 Če želite začeti znova, pritisnite 0. 18 00:00:55,660 --> 00:00:59,590 David J. Malan: Bomo pritisnite 1 za quad. 19 00:00:59,590 --> 00:01:03,610 CS50: Naslednji avtobus zapusti to zelo minut po uri 01:10 in 20 00:01:03,610 --> 00:01:09,820 nato pa na 1:20, 1:30, 1:40. 21 00:01:09,820 --> 00:01:12,030 To je CS50. 22 00:01:12,030 --> 00:01:15,570 >> David J. Malan: Torej, to je glas CS50 je. 23 00:01:15,570 --> 00:01:18,030 In to je primer, kakšne vrste končnih projektov za 24 00:01:18,030 --> 00:01:19,500 Na primer, lahko odgrizne proti 25 00:01:19,500 --> 00:01:20,600 konec semestra. 26 00:01:20,600 --> 00:01:23,840 Na primer, da obstaja shuttleboy.cs50.net - 27 00:01:23,840 --> 00:01:28,200 pravzaprav projekt, ki sem prvič pisal ob prevzemu CS51 28 00:01:28,200 --> 00:01:29,740 nazaj, ko sem bil dodiplomski. 29 00:01:29,740 --> 00:01:32,250 In tu je bila navdih takrat, vse kar so imeli je bil 30 00:01:32,250 --> 00:01:34,320 natisnjeni redi avtobusov shuttle, in ni bilo 31 00:01:34,320 --> 00:01:35,970 Pojem videti stvari na spletu. 32 00:01:35,970 --> 00:01:38,730 In tako sem nekako golob v enem vikendu, zlivati ​​preko 33 00:01:38,730 --> 00:01:41,460 tiskani urnik, in ga prenesti v računalniški program. 34 00:01:41,460 --> 00:01:43,790 V času, ko je računalniški program se je zgodilo, da se pisni 35 00:01:43,790 --> 00:01:47,110 v C. In dejansko je trajalo, ki jih vnašate Shuttle Boy na 36 00:01:47,110 --> 00:01:48,600 utripa uren, kot smo počeli doslej. 37 00:01:48,600 --> 00:01:50,450 Toda v zadnjih letih, se je razvijal v trenutku 38 00:01:50,450 --> 00:01:51,390 sporočil bot. 39 00:01:51,390 --> 00:01:53,970 To je razvila v zadnjem času v tej spletni strani, v 40 00:01:53,970 --> 00:01:57,720 SMS-orodje, kot tudi v tem glasu, ki temelji orodje. 41 00:01:57,720 --> 00:02:00,170 In to je, da namigujejo na vrste stvari, ki jih lahko 42 00:02:00,170 --> 00:02:02,380 storite sami do konca semester. 43 00:02:02,380 --> 00:02:05,490 >> Na primer, tam, različica SMS z Boy Shuttle zgodi 44 00:02:05,490 --> 00:02:06,510 delovati kot sledi. 45 00:02:06,510 --> 00:02:10,880 Če na vašem mobilnem telefonu, pošljete SMS na 41.411 in 46 00:02:10,880 --> 00:02:14,300 nato pošlje posebno sboy simbol za Boy Shuttle, 47 00:02:14,300 --> 00:02:18,350 sledi A in B, kjer je izvor in B je 48 00:02:18,350 --> 00:02:19,070 destinacija - 49 00:02:19,070 --> 00:02:21,030 na primer, Boylston prostor Quad - 50 00:02:21,030 --> 00:02:23,330 kaj bi dobili nazaj v nekaj sekundah, je besedilo 51 00:02:23,330 --> 00:02:25,820 sporočilo Boy Shuttle vam pove točno, ko je 52 00:02:25,820 --> 00:02:28,990 Naslednjih nekaj avtobusi so od te točke, da bo 53 00:02:28,990 --> 00:02:29,640 točka B. 54 00:02:29,640 --> 00:02:32,510 In to je bolj splošen primer tega, kar je znano kot 55 00:02:32,510 --> 00:02:33,920 uporabo API. 56 00:02:33,920 --> 00:02:36,930 >> Tako na primer, tole tu je samo shuttleboy.cs50.net, 57 00:02:36,930 --> 00:02:39,300 Dejansko spletno utelešenje tega. 58 00:02:39,300 --> 00:02:42,480 Vendar podatki, ki jih izpostavlja ta in druge aplikacije, ki CS50 59 00:02:42,480 --> 00:02:45,560 razvili so vsi izpostavljeni vsi tukaj, v obliki 60 00:02:45,560 --> 00:02:49,340 učinkovin, vmesniki za programiranje aplikacij. 61 00:02:49,340 --> 00:02:52,220 In to je samo fancy način rekel, da ljudje radi na 62 00:02:52,220 --> 00:02:56,010 Internet in drugi so nekaj časa preživel ustvarjanje 63 00:02:56,010 --> 00:02:59,970 programska oprema, ki jo lahko uporabite za zgrabite podatkov od nas 64 00:02:59,970 --> 00:03:02,510 nato pa graditi lastne aplikacije na vrh 65 00:03:02,510 --> 00:03:03,840 navedenega nabora podatkov. 66 00:03:03,840 --> 00:03:06,610 Torej, na primer, je to usluga Boy API stran tukaj, ki 67 00:03:06,610 --> 00:03:09,390 zgodi, da se v CS50 navodila, še zlasti dokumenti 68 00:03:09,390 --> 00:03:13,080 kako lahko greste o prosi CS50 strežnikov za podatke. 69 00:03:13,080 --> 00:03:16,240 Na primer, če ste seznanjeni s CSV datotek, vejica 70 00:03:16,240 --> 00:03:18,940 ločeni vrednosti, to so nekako hitro in umazano 71 00:03:18,940 --> 00:03:20,310 Excel podobnih slik. 72 00:03:20,310 --> 00:03:23,110 Torej, lahko prosite Shuttle Boy za vse podatke o vseh 73 00:03:23,110 --> 00:03:25,090 hiše in njihovi GPS koordinate, in boste dobili 74 00:03:25,090 --> 00:03:27,300 nazaj, v bistvu preglednico tako, da 75 00:03:27,300 --> 00:03:30,820 Nato lahko preberete v program svoje in potem 76 00:03:30,820 --> 00:03:33,250 pridobivanje rezultatov, kot Boy Shuttle sam 77 00:03:33,250 --> 00:03:34,160 se zgodi, da se delaš. 78 00:03:34,160 --> 00:03:37,030 Za tiste bolj znane, bolj sodobnih podatkovnih predstavništev 79 00:03:37,030 --> 00:03:39,420 vključujejo JSON, JavaScript Object Notation. 80 00:03:39,420 --> 00:03:40,620 Nekaj ​​se bo vrnila k tebi proti 81 00:03:40,620 --> 00:03:41,720 konec semestra. 82 00:03:41,720 --> 00:03:45,440 >> Ampak spet, to je samo ena od mnogih lastne API CS50 je. 83 00:03:45,440 --> 00:03:48,320 In zanimivo je, zdaj, v teh dneh, Facebook in 84 00:03:48,320 --> 00:03:51,110 Twitter in Google in precej vsak priljubljena spletna stran od 85 00:03:51,110 --> 00:03:54,130 da ima neke vrste API, kar pomeni, če ste prebrali 86 00:03:54,130 --> 00:03:56,620 Dokumentacija na svoji spletni strani, se prijavite za 87 00:03:56,620 --> 00:03:59,980 račun, lahko pričnete pisanje programske opreme na vrh 88 00:03:59,980 --> 00:04:03,680 koli orodja ali podatki, ki določa, da družba. 89 00:04:03,680 --> 00:04:06,210 In tako eden od naših sodelavcev učnih par let nazaj 90 00:04:06,210 --> 00:04:07,620 napisal različico Mac za to. 91 00:04:07,620 --> 00:04:10,990 Torej v povezavi z naslovom Mac tukaj v zgornjem levem kotu, lahko dejansko 92 00:04:10,990 --> 00:04:13,940 prenos Mac OS pripomoček, ki deluje na vašem Mac opraviti 93 00:04:13,940 --> 00:04:15,040 iste vrste stvari. 94 00:04:15,040 --> 00:04:17,970 Torej, to je vse o gradnji na vrhu zbirk podatkov, kot ti. 95 00:04:17,970 --> 00:04:21,839 Ampak več o tem proti koncu semestra. 96 00:04:21,839 --> 00:04:25,780 >> Torej se potopite v realnem hitro hrošča, samo da nekako dobiti 97 00:04:25,780 --> 00:04:27,990 stvari ogreti danes, in mislim nazaj na nekatere 98 00:04:27,990 --> 00:04:29,660 Stvari, ki jih pogledal prejšnji teden. 99 00:04:29,660 --> 00:04:32,840 Zlasti naj gredo naprej in potegnite navzgor, recimo, 100 00:04:32,840 --> 00:04:34,080 ta primer tukaj. 101 00:04:34,080 --> 00:04:37,500 Buggy1.c, to je na voljo na spletni strani seveda, če si boš 102 00:04:37,500 --> 00:04:40,250 želite prenesti in suniti okrog sebe. 103 00:04:40,250 --> 00:04:43,520 Ampak kaj je povečati tukaj na tem dokaj kratkem programu, in tako 104 00:04:43,520 --> 00:04:46,550 izjemno hitro Rekapitulacija nekaterih osnovnih gradnikov, ki 105 00:04:46,550 --> 00:04:48,880 res se bomo šele začeli jemati za samoumevno. 106 00:04:48,880 --> 00:04:51,860 >> Torej modro stvari, v vrsticah od 1 do 9, so le 107 00:04:51,860 --> 00:04:53,670 softball vprašanja. 108 00:04:53,670 --> 00:04:54,590 Torej, to so le besedila. 109 00:04:54,590 --> 00:04:56,230 Nimajo funkcionalnega pomena. 110 00:04:56,230 --> 00:04:58,460 Ampak oni so komentarji v smislu, da oni ugotavlja, da 111 00:04:58,460 --> 00:05:02,010 Jaz, človek, ki v sebi, tako da je v predavanju in po 112 00:05:02,010 --> 00:05:04,340 Predavanje morem se spomniti, kaj pravzaprav je ta program 113 00:05:04,340 --> 00:05:07,120 ne, ne da bi prebral skozi to vrstico za vrstico in 114 00:05:07,120 --> 00:05:08,990 vnovično zgodovino v mojih mislih. 115 00:05:08,990 --> 00:05:11,000 Poleg tega, če sem roko ta program za nekoga drugega, kot 116 00:05:11,000 --> 00:05:14,420 ti, da je veliko bolj jasno, za vas, saj pripomb, kot je ta, 117 00:05:14,420 --> 00:05:16,680 kaj program je dejansko delal, ali vsaj kaj 118 00:05:16,680 --> 00:05:18,210 Program se naj bi počel. 119 00:05:18,210 --> 00:05:20,760 Ali ni to je pravilna, je drugo vprašanje v celoti. 120 00:05:20,760 --> 00:05:25,040 Zdaj, v C, z multi-line pripomb, opozarjajo, da na spletu 121 00:05:25,040 --> 00:05:27,880 1 Tukaj je magija simbol / *. 122 00:05:27,880 --> 00:05:30,380 To pomeni, da prihaja začetek komentarja. 123 00:05:30,380 --> 00:05:34,560 In nič drugega zadevah, dokler ne pridete do končne terminator, 124 00:05:34,560 --> 00:05:36,700 ki je * /, ravno nasprotno. 125 00:05:36,700 --> 00:05:39,120 Zato je dejstvo, da imam 80-ak nekaj zvezd sem iz 126 00:05:39,120 --> 00:05:41,550 od leve proti desni je res samo estetski detajl. 127 00:05:41,550 --> 00:05:43,370 To nima nobenega funkcionalnega pomena. 128 00:05:43,370 --> 00:05:44,490 >> Zdaj, kako naj z linijo 11? 129 00:05:44,490 --> 00:05:46,940 Kaj to storiti v enostavnih izrazov? 130 00:05:51,560 --> 00:05:52,540 Kaj je to? 131 00:05:52,540 --> 00:05:54,280 OBČINSTVO: Vključuje standard. 132 00:05:54,280 --> 00:05:54,740 David J. Malan: OK, dobro. 133 00:05:54,740 --> 00:05:57,500 Torej to vključuje stdio.h knjižnico. 134 00:05:57,500 --> 00:05:58,230 Torej, kaj to pomeni? 135 00:05:58,230 --> 00:06:01,570 No, znotraj te datoteke stdio.h, so cel kup 136 00:06:01,570 --> 00:06:03,320 Funkcija izjave - 137 00:06:03,320 --> 00:06:05,290 to je koda, ki je nekdo drug napisal. 138 00:06:05,290 --> 00:06:08,160 In odličen primer funkcije, ki je bila prijavljena na 139 00:06:08,160 --> 00:06:10,250 stdio.h je - 140 00:06:10,250 --> 00:06:11,980 ki najljubša do zdaj? 141 00:06:11,980 --> 00:06:14,300 Torej printf, eden od najpogostejših uporabiti, vsekakor 142 00:06:14,300 --> 00:06:15,840 zgodaj iz te knjižnice je tam. 143 00:06:15,840 --> 00:06:19,290 Če sem izključite to vrstico kode, Jek bo kričati 144 00:06:19,290 --> 00:06:22,550 me je nekaj o uporabljate črno simbol. 145 00:06:22,550 --> 00:06:24,930 Nekaj ​​črno je verjetno ključna beseda, ker 146 00:06:24,930 --> 00:06:27,770 nismo obvestili prevajalnik, kar izgleda printf 147 00:06:27,770 --> 00:06:29,230 všeč, če štejemo, da je črto. 148 00:06:29,230 --> 00:06:31,830 In bolj na Zemljo, res, kaj je to linija je rekel je 149 00:06:31,830 --> 00:06:34,890 odpreti to datoteko, stdio.h, kjer je na strežnik je 150 00:06:34,890 --> 00:06:38,200 trdi disk, ali aparat na trdi disk, in copy-paste je 151 00:06:38,200 --> 00:06:40,240 tam v datoteki, ne moj 152 00:06:40,240 --> 00:06:41,730 da bi morali storiti, da ročno. 153 00:06:41,730 --> 00:06:44,420 >> Zdaj, ko pridemo sem, da glavni, kmalu pa bomo začeli 154 00:06:44,420 --> 00:06:46,900 dražila narazen, kar int in kaj je nična. 155 00:06:46,900 --> 00:06:48,430 Ampak za zdaj, si oglejmo tri vrstice 156 00:06:48,430 --> 00:06:50,350 v 15 do 17. 157 00:06:50,350 --> 00:06:52,250 To sem jaz, kot trdijo vozičku. 158 00:06:52,250 --> 00:06:54,900 Linija 7 v svojih pripombah pravi: "Če tiskate 10 159 00:06:54,900 --> 00:06:59,410 zvezdice, ne. "Zakaj se to ne natisne, v resnici, 160 00:06:59,410 --> 00:07:01,097 10 te zvezdice? 161 00:07:01,097 --> 00:07:02,347 OBČINSTVO: [neslišno]. 162 00:07:05,210 --> 00:07:05,800 David J. Malan: Točno tako. 163 00:07:05,800 --> 00:07:08,720 Torej opazili, da smo začeli šteti od 0. 164 00:07:08,720 --> 00:07:10,780 In to je pravzaprav konvencijo načrtovanja in 165 00:07:10,780 --> 00:07:13,230 računalništvo na splošno, ki se začne štetje 166 00:07:13,230 --> 00:07:14,610 od 0 namesto 1. 167 00:07:14,610 --> 00:07:16,690 In to res samo izhaja iz dejstva, da je za 168 00:07:16,690 --> 00:07:18,940 Na primer, ko smo imeli osem ljudi na oder, ko 169 00:07:18,940 --> 00:07:20,680 nihče ni bil dvig svoje roke, so bili 170 00:07:20,680 --> 00:07:22,340 Vse učinkovito ničle. 171 00:07:22,340 --> 00:07:24,260 In tako se je le nekako računalniškega konvencije tako, 172 00:07:24,260 --> 00:07:26,030 torej začetek štetja od 0. 173 00:07:26,030 --> 00:07:29,130 Če je to najnižja številka lahko zastopa v binarno. 174 00:07:29,130 --> 00:07:32,270 >> Torej, tukaj smo začeli i inicializaciji na 0. 175 00:07:32,270 --> 00:07:34,230 Mi smo iz i enak 0. 176 00:07:34,230 --> 00:07:37,780 Potem pa sem naredil to napako tukaj, rekel sem, manjša ali 177 00:07:37,780 --> 00:07:38,820 enaka 10. 178 00:07:38,820 --> 00:07:41,700 Toda, če menite, da skozi, če začnem pri 0 in potem sem šel 179 00:07:41,700 --> 00:07:46,410 do 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, sem dejansko dogaja, da 180 00:07:46,410 --> 00:07:49,980 natisnejo 11 zvezd na zaslon, ker sem šel gor 181 00:07:49,980 --> 00:07:52,410 da, in je enaka 10. 182 00:07:52,410 --> 00:07:55,090 Tako enostavno popraviti tukaj je potem kaj? 183 00:07:55,090 --> 00:07:56,070 OBČINSTVO: [neslišno]. 184 00:07:56,070 --> 00:07:57,350 David J. Malan: Samo spremenite v manj kot. 185 00:07:57,350 --> 00:07:59,700 Če res želite, lahko to storite. 186 00:07:59,700 --> 00:08:01,370 Ampak na splošno, da se je namrščil. 187 00:08:01,370 --> 00:08:04,020 In tako se začne štetje od 0, je le nekaj, kar je treba 188 00:08:04,020 --> 00:08:05,510 običajno navaditi. 189 00:08:05,510 --> 00:08:07,810 Torej, kaj je s tem celotnega konstrukta v sam po sebi? 190 00:08:07,810 --> 00:08:10,640 Ta linija 15 demarks za zanke. 191 00:08:10,640 --> 00:08:12,510 Torej, ni v funkciji. 192 00:08:12,510 --> 00:08:13,640 To je samo izjavo. 193 00:08:13,640 --> 00:08:16,180 To je zanka konstrukt, kot smo videli v Scratch. 194 00:08:16,180 --> 00:08:17,600 In to ima tri dele. 195 00:08:17,600 --> 00:08:19,740 Obvestilo, da je prvi del do 196 00:08:19,740 --> 00:08:21,350 levo od podpičjem. 197 00:08:21,350 --> 00:08:24,200 Tam je srednji del med dvema podpičji. 198 00:08:24,200 --> 00:08:26,250 In potem je tukaj še desni del na desni 199 00:08:26,250 --> 00:08:27,640 drugega podpičjem. 200 00:08:27,640 --> 00:08:31,822 Torej, prva od njih pa kaj? 201 00:08:31,822 --> 00:08:33,679 OBČINSTVO: [neslišno]. 202 00:08:33,679 --> 00:08:34,270 David J. Malan: Nazaj tam? 203 00:08:34,270 --> 00:08:34,816 Ja? 204 00:08:34,816 --> 00:08:35,980 OBČINSTVO: Inicializacija. 205 00:08:35,980 --> 00:08:36,850 >> David J. Malan: Inicializacija. 206 00:08:36,850 --> 00:08:37,840 Torej, kaj to pomeni? 207 00:08:37,840 --> 00:08:40,690 Imamo prijavljeni spremenljivko sem klical. 208 00:08:40,690 --> 00:08:43,840 To je tipa int, ker sem določene int i. 209 00:08:43,840 --> 00:08:46,470 In jaz sem inicializacijo na vrednost 0. 210 00:08:46,470 --> 00:08:47,730 Torej, kaj je to res pravi? 211 00:08:47,730 --> 00:08:50,680 To je dejansko rekel, da računalnik hej, daj mi dovolj 212 00:08:50,680 --> 00:08:53,660 pomnilnik, dovolj RAM-a, da se prilega številko, nato pa se 213 00:08:53,660 --> 00:08:56,130 številka 0 v tem bloku RAM-a. 214 00:08:56,130 --> 00:08:59,100 In kot prahi, kako velik je ponavadi int, vsaj znotraj 215 00:08:59,100 --> 00:09:00,280 stroja? 216 00:09:00,280 --> 00:09:01,000 OBČINSTVO: 32 bit. 217 00:09:01,000 --> 00:09:01,670 David J. Malan: 32 bitov. 218 00:09:01,670 --> 00:09:04,890 Torej to pomeni, da mi 32 bitov, sicer znan kot 4 bajte, 219 00:09:04,890 --> 00:09:07,250 in dal vrednost 0 v njem, ki je zelo enostaven, saj 220 00:09:07,250 --> 00:09:09,110 to pomeni, preprosto nastavite vse bitov na 0. 221 00:09:09,110 --> 00:09:11,690 >> Torej, zdaj, drugi del tukaj je pogoj. 222 00:09:11,690 --> 00:09:14,590 In stanje, kot že ime pove, je to, kar se preverja 223 00:09:14,590 --> 00:09:18,100 spet in spet in spet, ali je to res ali ne. 224 00:09:18,100 --> 00:09:21,410 Torej, to je samo rekel, naredite naslednje vrstice kode - 225 00:09:21,410 --> 00:09:23,950 in sicer linija 16, ker je to edini zamaknjen 1 226 00:09:23,950 --> 00:09:24,820 pod - 227 00:09:24,820 --> 00:09:26,980 tako dolgo, dokler je i manjši od 10. 228 00:09:26,980 --> 00:09:30,520 In po vsaki ponovitvi skozi to zanko, naredite 229 00:09:30,520 --> 00:09:33,840 incrementation, ki v tem primeru je i + +. 230 00:09:33,840 --> 00:09:35,580 Zdaj, to ni nujno, da je i + +. 231 00:09:35,580 --> 00:09:37,610 Lahko bi i -. 232 00:09:37,610 --> 00:09:39,860 Ampak, če sem to storil, kaj se dogaja na obnašanje 233 00:09:39,860 --> 00:09:41,370 da so ta program? 234 00:09:41,370 --> 00:09:42,290 OBČINSTVO: To se dogaja, da je neskončno zanko. 235 00:09:42,290 --> 00:09:44,060 David J. Malan: To bo neke vrste neskončno zanko, 236 00:09:44,060 --> 00:09:47,720 če bomo imeli srečo po negativnem 2000000000 ali tako. 237 00:09:47,720 --> 00:09:51,320 Mogoče bodo stvari ovijte okoli, samo po naravi končnih 238 00:09:51,320 --> 00:09:53,930 število bitov, ki smo dodeljenih za notr. 239 00:09:53,930 --> 00:09:56,270 Ampak to se bo zagotovo Ponovil veliko več kot 10 in 240 00:09:56,270 --> 00:09:58,630 zagotovo več kot 11-krat tukaj. 241 00:09:58,630 --> 00:10:02,240 >> In zdaj, prav tako razveljaviti, spoznali, da sem jaz + + in - 242 00:10:02,240 --> 00:10:04,420 so res samo skladenjsko sladkor. 243 00:10:04,420 --> 00:10:07,210 To je samo okrajšava za zapis kar je nekoliko več 244 00:10:07,210 --> 00:10:08,720 izrecno pisno na naslednji način: 245 00:10:08,720 --> 00:10:11,200 i = i + 1. 246 00:10:11,200 --> 00:10:13,460 To je enako i + +. 247 00:10:13,460 --> 00:10:15,860 Kar nekako izgleda lepše reči, i + +. 248 00:10:15,860 --> 00:10:17,490 To je bolj jedrnat, je bolj berljiva. 249 00:10:17,490 --> 00:10:19,030 In tako večina ljudi, ki namesto tega. 250 00:10:19,030 --> 00:10:21,840 Ampak to je enako funkcionalno 251 00:10:21,840 --> 00:10:22,900 kar smo pravkar videli. 252 00:10:22,900 --> 00:10:27,770 Torej, na kratko, hitro popraviti, tukaj je samo povedati, da sem Ponovil 253 00:10:27,770 --> 00:10:30,690 od 0 pa vse do manj kot 10. 254 00:10:30,690 --> 00:10:32,700 In potem bomo res dobili 10 zvezd. 255 00:10:32,700 --> 00:10:33,430 >> Torej, kaj je poskusiti. 256 00:10:33,430 --> 00:10:35,310 Naj odprli terminal na dnu. 257 00:10:35,310 --> 00:10:37,420 Naj gredo v imenik, da je to noter 258 00:10:37,420 --> 00:10:40,030 In jaz jo bom sestaviti ročno z Jek za zdaj. 259 00:10:40,030 --> 00:10:44,880 In jaz bom pripraviti, da je to buggy1.c, Enter. 260 00:10:44,880 --> 00:10:50,280 In zdaj buggy1, zakaj ni nobene take datoteke ali imenika 261 00:10:50,280 --> 00:10:52,026 pozval buggy1? 262 00:10:52,026 --> 00:10:53,850 OBČINSTVO: [neslišno]. 263 00:10:53,850 --> 00:10:54,240 David J. Malan: Ja. 264 00:10:54,240 --> 00:10:55,420 Torej je pravzaprav imenuje a.out. 265 00:10:55,420 --> 00:10:57,480 Torej, če ste le opozoriti teči Jek, kjer je Jek 266 00:10:57,480 --> 00:11:00,420 prevajalnik, in ne podate ime, ki ga želite 267 00:11:00,420 --> 00:11:03,550 dal svojega programa, da se bo po privzetku a.out. 268 00:11:03,550 --> 00:11:05,030 Torej, res, če naredim ls - 269 00:11:05,030 --> 00:11:05,510 ojej. 270 00:11:05,510 --> 00:11:07,680 In jaz Nisi - V črno-beli obtok približno od 271 00:11:07,680 --> 00:11:08,840 se soočajo bila določena. 272 00:11:08,840 --> 00:11:10,670 Ampak, dovolite mi, da to storijo. 273 00:11:10,670 --> 00:11:14,570 Tukaj imamo a.out na levi strani tam. 274 00:11:14,570 --> 00:11:17,360 Zato moramo teči a.out namesto buggy1. 275 00:11:17,360 --> 00:11:19,140 >> Torej, naj gredo naprej in to je to. 276 00:11:19,140 --> 00:11:22,840 . / A.out, Enter. 277 00:11:22,840 --> 00:11:26,160 In jaz očitno nisem naredil kaj? 278 00:11:26,160 --> 00:11:26,620 OBČINSTVO: Shrani. 279 00:11:26,620 --> 00:11:27,390 David J. Malan: Shranite svoje datoteke. 280 00:11:27,390 --> 00:11:31,520 Tako da enostavno rešiti s pritiskom Control S, ali bo 281 00:11:31,520 --> 00:11:33,450 Datoteka, Shrani kot v večini programov. 282 00:11:33,450 --> 00:11:36,360 Pusti me tukaj, da počistite zaslon, ga ponovno zaženete. 283 00:11:36,360 --> 00:11:37,960 In tam je še vedno napaka. 284 00:11:37,960 --> 00:11:41,618 Torej, kaj se dogaja - 285 00:11:41,618 --> 00:11:42,980 OBČINSTVO: Nisi prevesti. 286 00:11:42,980 --> 00:11:44,040 David J. Malan: Ah, dobro. 287 00:11:44,040 --> 00:11:45,010 Nisem ga pripravijo. 288 00:11:45,010 --> 00:11:47,250 Kot idiot, gledam kodo, da vidim, kaj je narobe. 289 00:11:47,250 --> 00:11:51,275 Torej Jek buggy1.c, zdaj a.out. 290 00:11:51,275 --> 00:11:52,640 In Uf, rešil. 291 00:11:52,640 --> 00:11:55,090 >> Tako se zdi malo grdo, ker ni nova linija 292 00:11:55,090 --> 00:11:55,970 kjerkoli v programu. 293 00:11:55,970 --> 00:11:57,390 Ampak spet, to je samo estetski detajl. 294 00:11:57,390 --> 00:11:59,430 In vsaj če štejemo tiste, ki, bi morali 295 00:11:59,430 --> 00:12:01,160 Zdaj vidim 10 takih zvezd. 296 00:12:01,160 --> 00:12:03,260 No, kaj pa ta drugi ogreje na primer? 297 00:12:03,260 --> 00:12:07,750 Torej, v buggy2, trdim, da je ta različica bo tudi natisnete 298 00:12:07,750 --> 00:12:10,110 10 zvezd, po eno vrstico. 299 00:12:10,110 --> 00:12:12,340 Torej ta čas sem imel znak za novo vrstico, samo, da bi 300 00:12:12,340 --> 00:12:13,520 stvari malo lepši. 301 00:12:13,520 --> 00:12:15,410 Toda namesto, da tisto, kar sem dobil je to. 302 00:12:15,410 --> 00:12:19,590 Torej mi ne Jek buggy2.c, Enter. 303 00:12:19,590 --> 00:12:21,790 Zdaj je znova pozval a.out. 304 00:12:21,790 --> 00:12:23,130 Enter. 305 00:12:23,130 --> 00:12:26,900 Jaz vidim samo eno novo linijo samo zadnja novo linijo, ki 306 00:12:26,900 --> 00:12:29,370 premakne moj poziv za naslednjo vrstico. 307 00:12:29,370 --> 00:12:32,660 In vendar očitno sem bil tiskanje *, nato pa novo vrstico, 308 00:12:32,660 --> 00:12:33,990 *, Potem nova vrstica. 309 00:12:33,990 --> 00:12:35,490 Toda kaj je napaka tukaj? 310 00:12:35,490 --> 00:12:35,974 Ja? 311 00:12:35,974 --> 00:12:37,224 OBČINSTVO: [neslišno]. 312 00:12:39,850 --> 00:12:40,470 >> David J. Malan: Točno tako. 313 00:12:40,470 --> 00:12:44,110 Torej, za razliko od nekaterih jezikov, kot so Python, kjer zatoka 314 00:12:44,110 --> 00:12:46,030 dejansko ima funkcionalnega pomena, v 315 00:12:46,030 --> 00:12:47,150 jezik kot C - 316 00:12:47,150 --> 00:12:49,140 kot bomo videli, PHP, Javascript - 317 00:12:49,140 --> 00:12:51,940 stisnila je res samo za korist ljudi ". 318 00:12:51,940 --> 00:12:55,690 Zato je dejstvo, da sem zamaknjen linijo 16 in 17 izgleda super, 319 00:12:55,690 --> 00:12:57,530 vendar nima funkcionalnega pomena tukaj. 320 00:12:57,530 --> 00:13:00,700 Če želim obe vrstici izvesti kot del za 321 00:13:00,700 --> 00:13:05,140 zanke, moram jih postavite v zavite oklepaje s tem. 322 00:13:05,140 --> 00:13:08,540 Lahko samo nehaj s tem kotu in izpustite zavitih oklepajih, če 323 00:13:08,540 --> 00:13:10,036 Kaj je tako? 324 00:13:10,036 --> 00:13:10,410 OBČINSTVO: Samo ena vrstica. 325 00:13:10,410 --> 00:13:11,130 David J. Malan: Samo ena vrstica. 326 00:13:11,130 --> 00:13:15,280 Torej, to je nekako lepo uredi podrobnosti, tako da se skladenjski 327 00:13:15,280 --> 00:13:17,900 da ne zapravljajo časa pisanja tri vrstice, od katerih sta dva 328 00:13:17,900 --> 00:13:20,040 Zaviti oklepaji, samo napisati eno vrstico kode. 329 00:13:20,040 --> 00:13:21,650 Ampak, če imate dva ali več črt, smo 330 00:13:21,650 --> 00:13:22,860 dejansko potrebno storiti. 331 00:13:22,860 --> 00:13:24,210 >> Torej, zdaj pa mi rešiti to. 332 00:13:24,210 --> 00:13:27,140 Naj gredo naprej in ponovno zagnati Jek. 333 00:13:27,140 --> 00:13:31,375 Potem pa mi ponovitev a.out, in zdaj sem dobil eno za vsako vrstico. 334 00:13:31,375 --> 00:13:33,670 Zdaj pa spet a.out je nekako neumno ime za program. 335 00:13:33,670 --> 00:13:37,500 Kako naj vem, da dejansko Jek mi ime datoteke 336 00:13:37,500 --> 00:13:39,820 ki je bolj prijazen do uporabnika, kot buggy2 sam? 337 00:13:43,200 --> 00:13:44,466 Malo bolj jasno? 338 00:13:44,466 --> 00:13:45,220 OBČINSTVO: [neslišno]. 339 00:13:45,220 --> 00:13:47,810 David J. Malan: V redu, tako da sem lahko dejansko traja zelo 340 00:13:47,810 --> 00:13:51,000 uporabniku prijazen bližnjico in samo napisati, da buggy2. 341 00:13:51,000 --> 00:13:53,840 Jaz ne določajo, c v tej zadevi. In pritisnite tipko Enter. 342 00:13:53,840 --> 00:13:58,530 In kaj ti pa je, da pripravlja buggy2.c mi ga 343 00:13:58,530 --> 00:14:00,260 sprašuje Jek, da to storite. 344 00:14:00,260 --> 00:14:05,100 Zlasti pa poziva Jek, teče Jek z veliko več 345 00:14:05,100 --> 00:14:08,540 ukazni vrstici argumenti ali stikala, kot sem dejansko potrebujejo. 346 00:14:08,540 --> 00:14:11,270 V času, bomo prišli nazaj na to, kar vse te različne 347 00:14:11,270 --> 00:14:13,810 Cryptic sklopljene izrazi pomenijo. 348 00:14:13,810 --> 00:14:16,910 Ampak za zdaj, to je samo varčevanje mi težave z 349 00:14:16,910 --> 00:14:19,600 bi si morali zapomniti in da bi tip od vseh tistih 350 00:14:19,600 --> 00:14:21,150 Različne sklopljene izrazov. 351 00:14:21,150 --> 00:14:23,240 In narobe z njim je navsezadnje 352 00:14:23,240 --> 00:14:25,900 da zdaj imam buggy2. 353 00:14:25,900 --> 00:14:27,480 Če želim, da to storijo sami, čeprav sem 354 00:14:27,480 --> 00:14:28,775 lahko namesto to - 355 00:14:28,775 --> 00:14:34,110 Jek-o buggy2 in nato buggy2.c. 356 00:14:34,110 --> 00:14:37,980 In to bo prav tako dal datoteko z imenom buggy2. 357 00:14:37,980 --> 00:14:39,710 >> Torej na kratko, Jek je prevajalnik. 358 00:14:39,710 --> 00:14:43,080 Poskrbite le uporabniku prijazno orodje, da bomo uporabljali več 359 00:14:43,080 --> 00:14:44,420 in še več, saj je šele začne 360 00:14:44,420 --> 00:14:47,330 poenostavili stvari za nas. 361 00:14:47,330 --> 00:14:49,430 In bomo vrnili 0, končno. 362 00:14:49,430 --> 00:14:51,890 Za zdaj, samo zato, ker, vendar bomo začeli dražiti, da je del 363 00:14:51,890 --> 00:14:52,930 danes in v sredo. 364 00:14:52,930 --> 00:14:55,560 Vsa vprašanja o tem? 365 00:14:55,560 --> 00:14:56,450 Ja? 366 00:14:56,450 --> 00:14:58,234 OBČINSTVO: [neslišno] 367 00:14:58,234 --> 00:15:00,020 Je v narekovajih tam? 368 00:15:00,020 --> 00:15:01,710 David J. Malan: OK. 369 00:15:01,710 --> 00:15:05,880 Ko sem tipkal Je v narekovajih, ki me je početje nekaj magije 370 00:15:05,880 --> 00:15:07,160 V zakulisju popraviti napako. 371 00:15:07,160 --> 00:15:09,370 Pozabil sem, tako kot smo bili povedali mnogi izmed vas na 372 00:15:09,370 --> 00:15:11,600 table za razprave, za početi - 373 00:15:11,600 --> 00:15:17,220 bomo to zdaj - sudo yum-y update appliance50. 374 00:15:17,220 --> 00:15:19,790 Ops, to, da je prav napisano. 375 00:15:19,790 --> 00:15:23,240 Torej aparat je kot operacijski sistem. 376 00:15:23,240 --> 00:15:25,650 To teče ta operacijski sistem, imenovan Fedora. 377 00:15:25,650 --> 00:15:27,450 In zdaj zaradi moje počasno internetno povezavo, imam 378 00:15:27,450 --> 00:15:28,260 res hosed. 379 00:15:28,260 --> 00:15:31,620 Torej teče sudo yum update, kot smo vam povem, da storiti 380 00:15:31,620 --> 00:15:34,080 Problem set, v bistvu rad teče samodejne posodobitve 381 00:15:34,080 --> 00:15:35,420 V operacijskem sistemu Mac OS ali Windows. 382 00:15:35,420 --> 00:15:37,280 In razlog za to tekmovanje v teku na samem začetku 383 00:15:37,280 --> 00:15:39,640 Problem je, ker množica, ko smo ustvarili aparat, sem 384 00:15:39,640 --> 00:15:42,480 zamočil, in sem po nesreči naredil vse svoje programe pogled 385 00:15:42,480 --> 00:15:45,210 črno na črnem zaslonu, kar je razlog, zakaj si jih ne vidim 386 00:15:45,210 --> 00:15:45,860 privzeto. 387 00:15:45,860 --> 00:15:48,020 Vendar pa je najnovejša različica aparata določa to. 388 00:15:48,020 --> 00:15:50,500 In jaz se določi, da med odmorom, ko imam internet 389 00:15:50,500 --> 00:15:51,280 povezljivost. 390 00:15:51,280 --> 00:15:54,630 >> Torej, citati samo skrije svojo zmoto, zelo diskretno, 391 00:15:54,630 --> 00:15:55,730 očitno. 392 00:15:55,730 --> 00:15:56,980 Druga vprašanja? 393 00:15:59,750 --> 00:16:00,668 Ja? 394 00:16:00,668 --> 00:16:02,012 OBČINSTVO: Če ne bi prišel? 395 00:16:02,012 --> 00:16:03,810 [Neslišno] 396 00:16:03,810 --> 00:16:04,280 David J. Malan: Dobro vprašanje. 397 00:16:04,280 --> 00:16:05,460 Če ne bi prišel? 398 00:16:05,460 --> 00:16:09,390 To je program za Linux, ki obstaja že več let, dokler 399 00:16:09,390 --> 00:16:10,570 Pred CS50. 400 00:16:10,570 --> 00:16:12,930 In to prihaja z operacijskim sistemom, kot so Fedora. 401 00:16:12,930 --> 00:16:14,830 To ne prihaja iz CS50 knjižnice. 402 00:16:14,830 --> 00:16:17,560 V bistvu, samo stvari, ki prihajajo iz CS50 knjižnice 403 00:16:17,560 --> 00:16:20,470 tako daleč, da smo videli, so GetString, GetInt, vse 404 00:16:20,470 --> 00:16:25,550 Get tiste funkcije, in beseda niz, za nekatere 405 00:16:25,550 --> 00:16:26,575 obsegu, beseda int. 406 00:16:26,575 --> 00:16:29,180 Ampak bomo draži, da je poleg, ko se potopite v CS50 407 00:16:29,180 --> 00:16:30,580 sam aparat. 408 00:16:30,580 --> 00:16:32,820 >> Torej, ja, še eno vprašanje tukaj. 409 00:16:32,820 --> 00:16:36,636 OBČINSTVO: Ko si rekel, da Otroški voziček in potem, kako deluje 410 00:16:36,636 --> 00:16:39,980 Računalnik vem [neslišno]? 411 00:16:39,980 --> 00:16:40,520 David J. Malan: Dobro vprašanje. 412 00:16:40,520 --> 00:16:43,830 Torej, ko zaženete, le da buggy1 ali pa buggy2, kako 413 00:16:43,830 --> 00:16:45,220 ne bi vedel? 414 00:16:45,220 --> 00:16:49,900 Torej jih ni, če vnesete da buggy1, da poišče 415 00:16:49,900 --> 00:16:52,330 datoteka z imenom buggy1.c. 416 00:16:52,330 --> 00:16:55,570 In potem ga izvede ustrezne Jek ukaze, 417 00:16:55,570 --> 00:17:00,380 tako nujni privzeto datoteko izhodno imenom a.out. 418 00:17:00,380 --> 00:17:03,670 V bistvu, če pogledamo, kaj narediti, kaj - 419 00:17:03,670 --> 00:17:04,839 dajmo končati to. 420 00:17:04,839 --> 00:17:09,530 Če pogledamo, kaj bi dejansko delal, da buggy2, 421 00:17:09,530 --> 00:17:10,470 to je že do datuma. 422 00:17:10,470 --> 00:17:13,020 Torej, kaj mi odstranili rm ukaz, 423 00:17:13,020 --> 00:17:14,319 Program sem napisal prej. 424 00:17:14,319 --> 00:17:17,319 Tipkanje Y-E-S potrditev, da želim, da ga odstranite. 425 00:17:17,319 --> 00:17:20,480 Če bom naredil, da, opazili, da v tem zelo dolgi vrsti, 426 00:17:20,480 --> 00:17:22,980 da je to zadnja stvar, ki tu-o buggy2. 427 00:17:22,980 --> 00:17:26,959 Vse znamko počne mineva ta argument, če se tako izrazim, da 428 00:17:26,959 --> 00:17:29,665 Jek, tako da mi ni treba vnesti tudi sam. 429 00:17:29,665 --> 00:17:32,660 >> V redu, tako hitro nekaj upravnih 430 00:17:32,660 --> 00:17:33,470 Sporočila. 431 00:17:33,470 --> 00:17:36,940 Torej za dele, ki se je uradno začela v prihajajočem 432 00:17:36,940 --> 00:17:38,970 Nedelja, boste vedno želeli, da bi, če 433 00:17:38,970 --> 00:17:40,120 ga imate, laptop. 434 00:17:40,120 --> 00:17:42,570 Če nimate laptop, pa doseči, da mi ga 435 00:17:42,570 --> 00:17:43,580 spustite me email. 436 00:17:43,580 --> 00:17:44,810 In bomo ugotovili potek dela. 437 00:17:44,810 --> 00:17:47,100 Kaj na splošno boste našli v razdelku je, da si del 438 00:17:47,100 --> 00:17:48,770 konceptualni del hands-on. 439 00:17:48,770 --> 00:17:52,190 Bomo posebej uporabiti del vprašanj, ki je del 440 00:17:52,190 --> 00:17:54,110 tega tedna je problem niz, na sprehod skozi nekatere 441 00:17:54,110 --> 00:17:55,820 konceptualno gradivo iz predavanja. 442 00:17:55,820 --> 00:17:57,480 In to je vse v trenutni nabor problem. 443 00:17:57,480 --> 00:18:00,010 In bomo tudi potopite v nekaterih praktičnih aktivnosti, včasih 444 00:18:00,010 --> 00:18:02,190 ki bodo morali predložiti, včasih 445 00:18:02,190 --> 00:18:02,830 ki ne bo. 446 00:18:02,830 --> 00:18:04,630 Na primer, ta prvi teden, oni so mislili enako 447 00:18:04,630 --> 00:18:05,780 warm-up vaja. 448 00:18:05,780 --> 00:18:07,800 In boste ugotovili, da so ti problemi v resnici prav to. 449 00:18:07,800 --> 00:18:10,220 Oni naj bi bili dokaj majhen, vendar ni nujno, da 450 00:18:10,220 --> 00:18:13,100 nepomembnih programov za pisanje, ki niso nujno 451 00:18:13,100 --> 00:18:16,230 zanimive same po sebi, ampak so dobre priložnosti za 452 00:18:16,230 --> 00:18:19,620 vaditi s sintakso, z novimi funkcijami, v udobju 453 00:18:19,620 --> 00:18:21,900 oddelek, kjer imate nekaj sošolci predstavljajo kot 454 00:18:21,900 --> 00:18:22,870 tudi vaše TF. 455 00:18:22,870 --> 00:18:26,210 >> In kaj bomo naredili s časom uporabljajo orodje, imenovano CS50 prostori, 456 00:18:26,210 --> 00:18:28,940 pri čemer namesto da samo z uporabo CS50 aparata, boste 457 00:18:28,940 --> 00:18:32,450 Namesto pojdite na spletno stran v brskalniku, kjer boste lahko 458 00:18:32,450 --> 00:18:35,610 pisati kodo v oknu brskalnika v oddelku. 459 00:18:35,610 --> 00:18:38,240 In potem, če se odločite, lahko vaš sodelavec nato pa kažejo, poučevanje 460 00:18:38,240 --> 00:18:40,980 karkoli že je, ali ste vnesli na zaslonu v vašem brskalniku 461 00:18:40,980 --> 00:18:43,930 okno gor na pred razredom, ali anonimno ali 462 00:18:43,930 --> 00:18:47,250 javno, tako da je on ali ona lahko potem sprehod skozi s 463 00:18:47,250 --> 00:18:50,080 vaši sošolci, kaj si naredil dobro, kaj nisi naredil dobro. 464 00:18:50,080 --> 00:18:52,750 In spet, ste lahko prepričani, vse to se lahko lepo anonimni. 465 00:18:52,750 --> 00:18:54,410 Vendar pa bo to odlična priložnost za veliko več 466 00:18:54,410 --> 00:18:56,810 Interaktivnost kot nekaj podobnega predavanju nam. 467 00:18:56,810 --> 00:18:58,910 >> V tem času bomo imeli te stvari imenovane super 468 00:18:58,910 --> 00:19:01,610 odseki, ki so obvezna, vendar so odprta za vse v 469 00:19:01,610 --> 00:19:04,030 razred, tako da lahko to storite še za kolektivno 470 00:19:04,030 --> 00:19:05,190 Problem nastavite eno. 471 00:19:05,190 --> 00:19:06,010 Tukaj je razpored. 472 00:19:06,010 --> 00:19:08,870 To je prav tako objavljen na spletni strani na cs50.net. 473 00:19:08,870 --> 00:19:10,850 Obvestilo, da bom tam heker specifična 474 00:19:10,850 --> 00:19:12,430 1 jutri popoldne. 475 00:19:12,430 --> 00:19:15,460 In bomo posneli enega danes in jutri 1 in po tistih 476 00:19:15,460 --> 00:19:16,720 dosegljiv v 24 urah. 477 00:19:16,720 --> 00:19:19,370 Torej, če ne morete narediti kakšno izmed teh časih, ne skrbi. 478 00:19:19,370 --> 00:19:22,720 In spet, razpored je na spletu zdaj na cs50.net. 479 00:19:22,720 --> 00:19:25,350 >> Kar zadeva sam razdelkov, morate gotten 480 00:19:25,350 --> 00:19:28,520 pošlji navodilo, da greš na domačo stran seveda, da je bil 481 00:19:28,520 --> 00:19:29,610 iz vašega oddelka. 482 00:19:29,610 --> 00:19:32,890 Če je življenje spremenilo, in boste morali spremeniti svoj oddelek, 483 00:19:32,890 --> 00:19:33,560 ni problem. 484 00:19:33,560 --> 00:19:37,900 Pojdi nazaj na istem spletnem naslovu cs50.net/section, ednina, 485 00:19:37,900 --> 00:19:40,090 in boste izpolnite obrazec, podoben, tako da lahko 486 00:19:40,090 --> 00:19:41,260 potem nam vaše želje. 487 00:19:41,260 --> 00:19:43,360 In bomo spremljala do konca tedna, kaj bomo lahko 488 00:19:43,360 --> 00:19:44,240 ustreči. 489 00:19:44,240 --> 00:19:49,530 Prejšnji teden je spomnil, da smo predlagali uporabo CS50 razpravljali, 490 00:19:49,530 --> 00:19:51,370 teku razprava je orodje, v predavanju. 491 00:19:51,370 --> 00:19:53,680 Tako smo imeli 40 vprašanj, ki so zastavljena in 492 00:19:53,680 --> 00:19:54,720 odgovoriti v predavanju. 493 00:19:54,720 --> 00:19:56,280 Zato se je zdelo, da dobro deluje, zato bomo še naprej 494 00:19:56,280 --> 00:19:57,180 poskuša to storiti. 495 00:19:57,180 --> 00:19:59,600 Če je v predavanju, ki jih ne počutim udobno dvig 496 00:19:59,600 --> 00:20:00,780 roko, ni problem. 497 00:20:00,780 --> 00:20:04,640 Pojdi na cs50.net/discuss, objavite tam, in eden od naših poučevanja 498 00:20:04,640 --> 00:20:07,270 Fantje bodo bodisi odgovoriti v elektronski obliki ali povečati svoje 499 00:20:07,270 --> 00:20:10,620 strani v vašem imenu anonimno vprašati, odvisno 500 00:20:10,620 --> 00:20:12,470 na naravo vprašanja. 501 00:20:12,470 --> 00:20:15,000 In glede na odzive, bo na splošno treba psets 502 00:20:15,000 --> 00:20:16,760 vrne v enem tednu. 503 00:20:16,760 --> 00:20:19,080 Saj traja nekaj časa za doseganje oddelki 504 00:20:19,080 --> 00:20:22,430 ravnotežje, bo prvi pset, 0 in 1, je malo 505 00:20:22,430 --> 00:20:24,130 z zamudo, saj se stvari umirijo. 506 00:20:24,130 --> 00:20:27,130 Ampak ostanite z nami za to v prihodnjih tednih. 507 00:20:27,130 --> 00:20:29,750 >> V redu, dovolite mi, da na moj resen 508 00:20:29,750 --> 00:20:31,040 Glas za trenutek. 509 00:20:31,040 --> 00:20:32,690 Torej, to je pravzaprav zanimivo, da so podnebne 510 00:20:32,690 --> 00:20:35,210 ob tej razpravi, kaj z vsemi drugimi stvarmi 511 00:20:35,210 --> 00:20:37,310 dogaja na kampusu zvezi s tem. 512 00:20:37,310 --> 00:20:40,220 Ampak CS50 je zagotovo imela zgodovino ta posebna 513 00:20:40,220 --> 00:20:43,360 tema, v kolikor vsako leto za ta postopek, je za mnoge 514 00:20:43,360 --> 00:20:46,910 let, Ad-plošče približno 3% v razredu. 515 00:20:46,910 --> 00:20:51,620 To zadnje leto, 2011, CS50 Ad-vkrcala na 35 študentov. 516 00:20:51,620 --> 00:20:54,120 To ni, mislim, zaradi pomanjkanja jasnosti. 517 00:20:54,120 --> 00:20:56,760 Zavedaj se, da je v učnem načrtu teku je, da je stran 518 00:20:56,760 --> 00:20:59,020 Izjava pojasnil, kje so linije. 519 00:20:59,020 --> 00:21:01,350 Istega izjava se ponovi na vsakega izmed 520 00:21:01,350 --> 00:21:03,070 Problem postavlja na stran 1. 521 00:21:03,070 --> 00:21:05,760 >> Zato sem omenil to danes res samo zato, da bi 522 00:21:05,760 --> 00:21:07,030 Ljudje se zavedajo tega. 523 00:21:07,030 --> 00:21:08,080 In smo poskušali različne stvari. 524 00:21:08,080 --> 00:21:10,630 In tisto, kar sem mislil, da bi naredil danes vzemite trenutek, da 525 00:21:10,630 --> 00:21:13,830 dejansko pogled na nekatere od preteklih primerov, ki so prišli gor. 526 00:21:13,830 --> 00:21:16,160 Namesto da te je umazano malo skrivnost, dejansko 527 00:21:16,160 --> 00:21:19,170 poudariti, kaj študentje naredili in kako smo zaznali 528 00:21:19,170 --> 00:21:21,630 in res je, kar je najpomembnejši motiv za 529 00:21:21,630 --> 00:21:23,950 celo pogovarjala o tem. 530 00:21:23,950 --> 00:21:27,060 Torej s tem je dejal, je linija v bistvu je to - 531 00:21:27,060 --> 00:21:29,200 po predmetniku, ste dobrodošli, vam svetujemo, da 532 00:21:29,200 --> 00:21:30,210 pogovor s sošolci. 533 00:21:30,210 --> 00:21:31,910 To je celoten namen imajo te sodelovanje 534 00:21:31,910 --> 00:21:34,470 Uradne ure v Annenberg in spodbujanje ljudi za 535 00:21:34,470 --> 00:21:35,755 končni projekt za sodelovanje. 536 00:21:35,755 --> 00:21:38,590 Vendar pa je črta, ko pride čas, da dejansko napisati 537 00:21:38,590 --> 00:21:39,790 vaša končna izbira. 538 00:21:39,790 --> 00:21:42,590 Ko že govorimo v angleščini, popolnoma v redu, gledano v psevdo kodi, 539 00:21:42,590 --> 00:21:43,400 Čisto v redu. 540 00:21:43,400 --> 00:21:46,340 Emailing sošolec vaš pset, dajanje v najem jih gledajo čez 541 00:21:46,340 --> 00:21:48,610 Zaslon je v rokah še naprej tipkanje, 542 00:21:48,610 --> 00:21:50,110 Sprehodite se po spletu kot tudi. 543 00:21:50,110 --> 00:21:52,250 Ali poglej v učni načrt za posamezne linije. 544 00:21:52,250 --> 00:21:55,850 >> Ampak samo za barve sliko o tem, kako je to na žalost 545 00:21:55,850 --> 00:21:58,370 realnost, zavedati, da obstajajo spletne strani, tam, da 546 00:21:58,370 --> 00:22:01,490 je rešitev iz tega razreda, in mnoge druge razrede. 547 00:22:01,490 --> 00:22:04,940 Dejstvo, da ste vi ali približno 3% od vas ve, da to obstaja 548 00:22:04,940 --> 00:22:07,240 pomeni, da se zavedamo, da le-ta obstaja. 549 00:22:07,240 --> 00:22:09,340 Dejstvo, da obstajajo spletne strani, kot je ta, kjer ste 550 00:22:09,340 --> 00:22:11,540 lahko plača nekoga, da dejansko ne tvoj problem sklopov - to je 551 00:22:11,540 --> 00:22:13,450 Dejansko drži, da je prišel lani. 552 00:22:13,450 --> 00:22:15,790 To je spletna stran imenuje odesk.com. 553 00:22:15,790 --> 00:22:20,090 In Tim je bilo ime osebe, ki je bila tukaj objavljate na 554 00:22:20,090 --> 00:22:24,580 Ta spletna stran in prosil nekoga, da opravi svoje pset 7 v 555 00:22:24,580 --> 00:22:25,570 ta primer. 556 00:22:25,570 --> 00:22:28,350 No, odesk.com je zelo Googlu lahko, in smo tudi mi 557 00:22:28,350 --> 00:22:30,310 Zelo dobro Googling. 558 00:22:30,310 --> 00:22:32,360 Tudi tu so mesta - in to je precej 559 00:22:32,360 --> 00:22:34,234 krute, odkrito povedano. 560 00:22:34,234 --> 00:22:38,050 [Smeh] 561 00:22:38,050 --> 00:22:39,610 David J. Malan: smešna stvar pri tej strani, če 562 00:22:39,610 --> 00:22:41,970 preberete O strani, se pogovarjajo o svojih podjetij 563 00:22:41,970 --> 00:22:44,390 kultura in kako je njihova pomoč uporabnikom številka ena 564 00:22:44,390 --> 00:22:46,190 prednostna naloga, da poskrbite, da vaše naloge dobili 565 00:22:46,190 --> 00:22:47,890 obrnil na čas. 566 00:22:47,890 --> 00:22:50,580 >> Toda v vseh resnost, še enkrat, dejstvo, da ta območja 567 00:22:50,580 --> 00:22:52,910 obstajajo, se zavedamo tudi, sta zaveda 568 00:22:52,910 --> 00:22:53,730 Te vrste spletnih strani. 569 00:22:53,730 --> 00:22:55,890 In da vam občutek, kaj predstavlja to na splošno 570 00:22:55,890 --> 00:22:58,570 meni, da na splošno nimajo velikih škandalov, kjer so ljudje 571 00:22:58,570 --> 00:23:01,080 Sodelujemo na kateri koli velikem obsegu, ampak 572 00:23:01,080 --> 00:23:04,540 je to pozno v noč trenutki šibkosti, ko imate tako 573 00:23:04,540 --> 00:23:07,550 veliko storiti, je 4:00, ste izčrpani in si 574 00:23:07,550 --> 00:23:09,770 misliš da si, dobro, dovolite mi, da pogled na moje 575 00:23:09,770 --> 00:23:11,770 cimer je moj prijatelj ali šifro ali podobno. 576 00:23:11,770 --> 00:23:14,800 In manifestacije tega žal vključujejo Študent 577 00:23:14,800 --> 00:23:17,640 Predložitev kaj takega in oddajo Študentski B 578 00:23:17,640 --> 00:23:20,370 kaj takega, kar je vsekakor v računalnik 579 00:23:20,370 --> 00:23:23,830 znanost razred, je izredno enostaven za znanstvenike s področja računalništva 580 00:23:23,830 --> 00:23:25,690 odkrije s programsko opremo. 581 00:23:25,690 --> 00:23:28,410 To je še en skupni vzorec, kjer ste nekako 582 00:23:28,410 --> 00:23:31,010 delal skupaj z nekom, mogoče govoriti v 583 00:23:31,010 --> 00:23:32,360 Angleščina, čisto v redu, psevdokod. 584 00:23:32,360 --> 00:23:35,080 Potem pa pride čas, da dejansko predložiti, in psets 585 00:23:35,080 --> 00:23:37,910 Samo se izmenjujejo preko elektronske pošte ali Dropbox ali podobnega. 586 00:23:37,910 --> 00:23:41,120 Toda v poskusu, da bi bilo manj očitno, da je to 587 00:23:41,120 --> 00:23:44,830 kaj se je zgodilo, potem je to tisto, kar se vpisali. 588 00:23:44,830 --> 00:23:47,880 Tudi to ni pot do dobro napisana kosov 589 00:23:47,880 --> 00:23:50,360 programske opreme, kot smo dejansko odkrivanje 590 00:23:50,360 --> 00:23:51,280 Te vrste stvari. 591 00:23:51,280 --> 00:23:53,760 In res, kaj moramo storiti, je teči programsko opremo, ki primerja vse 592 00:23:53,760 --> 00:23:55,540 stališča letošnje proti vsem preteklem letu je 593 00:23:55,540 --> 00:23:57,380 stališča, proti vsemu, smo ugotovili na 594 00:23:57,380 --> 00:24:00,060 Internet pred vsakim delovnih spletni tam. 595 00:24:00,060 --> 00:24:01,710 To je vse zelo avtomatizirano. 596 00:24:01,710 --> 00:24:05,665 In tako mi je to res v veliki poštenosti do 97%, ki 597 00:24:05,665 --> 00:24:07,760 so v resnici delali svoje riti na tem in na drugih 598 00:24:07,760 --> 00:24:11,530 razredi in postavljanje v vseh prizadevanju, da bi delo 599 00:24:11,530 --> 00:24:13,030 v končni fazi je predložijo svoje. 600 00:24:13,030 --> 00:24:14,220 In sem šel na za starosti. 601 00:24:14,220 --> 00:24:16,030 >> To je le nekaj primerov lanskih. 602 00:24:16,030 --> 00:24:19,350 Nekaj ​​študentov vpisali te datoteke enako za pset 2, 603 00:24:19,350 --> 00:24:22,460 pset 3, pset 4, 5 pset, pset 6, 9 pset. 604 00:24:22,460 --> 00:24:26,360 V tem primeru je to kviz 0 in v zadnjem letu, če dve 605 00:24:26,360 --> 00:24:29,570 študenti vpisali enako ta stavek med mnogimi 606 00:24:29,570 --> 00:24:32,210 drugi, "Zahteva tipa -" pika, pika, pika. 607 00:24:32,210 --> 00:24:34,530 Torej, tudi v razredu 600 pa smo odkriti to 608 00:24:34,530 --> 00:24:36,310 na vpisali kvizov. 609 00:24:36,310 --> 00:24:39,080 Torej na kratko, to - odkrito povedano, sovražim imajo tovrstne 610 00:24:39,080 --> 00:24:41,300 pogovor - ampak to je res namerno prizadevanje 611 00:24:41,300 --> 00:24:43,540 Letos se vozite navzdol to številko. 612 00:24:43,540 --> 00:24:45,650 Ker čeprav smo rekli te vrste stvari vsakih 613 00:24:45,650 --> 00:24:48,100 leto, mislim, da je realnost, ki so prebivali na njej nekaj 614 00:24:48,100 --> 00:24:50,800 več sekund kot običajno in dejansko samo poudariti, 615 00:24:50,800 --> 00:24:53,600 da bi tisto, kar se zdi, kot, eh, ni tako pomembno, vsaj 616 00:24:53,600 --> 00:24:56,390 mislim nazaj v tem trenutku, tako da pravičnosti 617 00:24:56,390 --> 00:25:00,100 sami in sošolci tukaj. 618 00:25:00,100 --> 00:25:02,480 Torej, če ste kdaj imeli kakršnakoli vprašanja, kje vrstica 619 00:25:02,480 --> 00:25:04,290 je, prosim stik z mano osebno. 620 00:25:04,290 --> 00:25:07,190 Toda odgovor je vedno popolnoma poudarjeno na 621 00:25:07,190 --> 00:25:09,090 last minute, gotovina v pozni dan. 622 00:25:09,090 --> 00:25:11,080 Ali pa, če je to stvar, ki nima poznih dni, 623 00:25:11,080 --> 00:25:12,900 po pravici povedano, mi pišite osebno. 624 00:25:12,900 --> 00:25:14,110 Bova nekaj ven. 625 00:25:14,110 --> 00:25:17,480 Prosim, ne daj čas tukaj na Harvardu ogrožena. 626 00:25:17,480 --> 00:25:18,570 >> No, sem mislil, da bi morali razbremeniti razpoloženje, zato sem 627 00:25:18,570 --> 00:25:20,264 vključena je to na naslednjo stran. 628 00:25:20,264 --> 00:25:22,770 [Smeh] 629 00:25:22,770 --> 00:25:23,630 David J. Malan: Ta spletna stran je super. 630 00:25:23,630 --> 00:25:24,820 Pravzaprav sem malo zmeden. 631 00:25:24,820 --> 00:25:26,330 Tam je to ena. 632 00:25:26,330 --> 00:25:29,590 In potem je to ena je bila neverjetna. 633 00:25:29,590 --> 00:25:35,190 Ok, tako da tega mucka pozno ponoči, ko bodo 634 00:25:35,190 --> 00:25:36,040 te odločitve. 635 00:25:36,040 --> 00:25:40,110 V redu, nazaj na bolj zabavno in manj resne zadeve, kot 636 00:25:40,110 --> 00:25:40,780 pogoji. 637 00:25:40,780 --> 00:25:43,900 >> V redu, smo se pogovarjali na kratko o teh. 638 00:25:43,900 --> 00:25:46,080 To je nekaj, kar je verjetno precej seznanjeni z 639 00:25:46,080 --> 00:25:47,260 svet Scratch. 640 00:25:47,260 --> 00:25:49,860 In v svetu Scratch, imamo to potrebo, včasih 641 00:25:49,860 --> 00:25:51,110 iti, da vilice v cestnem prometu. 642 00:25:51,110 --> 00:25:54,840 Ali to ali to ali pa to druga stvar. 643 00:25:54,840 --> 00:25:58,990 In če hočemo to narediti, lahko uporabimo v C Zdaj, če je to 644 00:25:58,990 --> 00:26:00,860 drug konstrukt. 645 00:26:00,860 --> 00:26:06,420 In tukaj imamo logičnih izrazov. 646 00:26:06,420 --> 00:26:09,260 Na primer, logični izrazi Tukaj lahko ALI 647 00:26:09,260 --> 00:26:12,260 jih skupaj, v smislu, da imamo tega pogoja ALI 648 00:26:12,260 --> 00:26:13,200 ta pogoj. 649 00:26:13,200 --> 00:26:15,100 Mi lahko in jih skupaj, v smislu, da želimo 650 00:26:15,100 --> 00:26:17,710 preverjanje tega pogoja in da stanje. 651 00:26:17,710 --> 00:26:22,440 In tukaj imamo sedaj stikalo izjavo, ki ni tako 652 00:26:22,440 --> 00:26:26,040 Podobno sintaktično za tiste vrste pogojev, vendar je 653 00:26:26,040 --> 00:26:30,160 nam omogoča, da to enakovredno, če, če, je še ostalo, če še 654 00:26:30,160 --> 00:26:34,990 če in kot ga preprosto naštevanjem jim od primera do primera 655 00:26:34,990 --> 00:26:36,670 ga primera do primera. 656 00:26:36,670 --> 00:26:38,370 Tako smo videli tiste zadnjič. 657 00:26:38,370 --> 00:26:40,430 In potem smo začeli dotika stvari, kot so zanke. 658 00:26:40,430 --> 00:26:42,070 Videli smo eno od teh le trenutek nazaj. 659 00:26:42,070 --> 00:26:44,180 Vendar pa so ti drugi looping konstrukt. 660 00:26:44,180 --> 00:26:46,370 >> Na primer, tole tukaj. 661 00:26:46,370 --> 00:26:50,140 Torej, medtem ko (pogoj), to stvar znova in znova. 662 00:26:50,140 --> 00:26:53,070 Torej, bistveno pa je, kar se zdi, da je drugačen od tega 663 00:26:53,070 --> 00:26:55,760 zanka in to zanko, medtem ko tukaj? 664 00:27:00,810 --> 00:27:05,045 Ta zanka in to medtem ko zanke. 665 00:27:05,045 --> 00:27:07,840 Ja? 666 00:27:07,840 --> 00:27:08,800 Kaj je to? 667 00:27:08,800 --> 00:27:10,050 OBČINSTVO: [neslišno]. 668 00:27:14,632 --> 00:27:15,120 David J. Malan: Dobro. 669 00:27:15,120 --> 00:27:17,130 Torej, ker je za pogoj zanke, obstaja jasno 670 00:27:17,130 --> 00:27:17,940 več sintakso. 671 00:27:17,940 --> 00:27:20,560 Tam je to inicializacijo, da je to sprememba. 672 00:27:20,560 --> 00:27:23,820 V while zanko, obstaja samo ta pogoj. 673 00:27:23,820 --> 00:27:26,630 Tako se zdi, da je to malo v primerjavi omejimo na 674 00:27:26,630 --> 00:27:28,770 zanke, kar pomeni, če želimo, da imajo spremenljivke in želimo 675 00:27:28,770 --> 00:27:30,800 da incrementation, smo dejansko morali 676 00:27:30,800 --> 00:27:32,500 to storil sebe. 677 00:27:32,500 --> 00:27:34,420 >> Torej, naj gredo naprej in odprla gedit. 678 00:27:34,420 --> 00:27:36,320 Naj preklopite na napravo. 679 00:27:36,320 --> 00:27:38,110 In kaj je samo to hitro malo primer, da 680 00:27:38,110 --> 00:27:40,550 razlikuje za enega od njih od drugih. 681 00:27:40,550 --> 00:27:42,490 In v ozadju mojih mislih, naj povem eno stvar. 682 00:27:42,490 --> 00:27:44,120 Jaz posebej navedena z imenom Tim. 683 00:27:44,120 --> 00:27:47,740 Tim je bil nekdo, ki dejansko študent poskušal najti storiti 684 00:27:47,740 --> 00:27:48,680 njihova domača naloga za njih. 685 00:27:48,680 --> 00:27:51,280 Nismo imeli Tima v tem posebnem poglavju. 686 00:27:51,280 --> 00:27:53,690 Torej se zavedaš, da ne bom razkrila študenta, ni bila študentka. 687 00:27:53,690 --> 00:27:55,720 To je naključno osebo na internetu počne stvari 688 00:27:55,720 --> 00:27:57,180 po pooblaščencu lani. 689 00:27:57,180 --> 00:27:58,670 Tako smo ugotovili, da je preveč. 690 00:27:58,670 --> 00:28:00,630 Torej, v tem primeru sem, naj gredo naprej in 691 00:28:00,630 --> 00:28:02,810 odpreti novo datoteko. 692 00:28:02,810 --> 00:28:04,800 Datoteka, Novo. 693 00:28:04,800 --> 00:28:06,050 To mi daje jeziček tukaj. 694 00:28:06,050 --> 00:28:09,940 Naj gredo naprej in jo shranite kot loop.c. 695 00:28:09,940 --> 00:28:11,810 Spusti me in kliknite Shrani. 696 00:28:11,810 --> 00:28:15,340 In potem sem dol, gremo naprej in začnite pisati 697 00:28:15,340 --> 00:28:16,605 # Vključujejo . 698 00:28:19,116 --> 00:28:20,520 Naj povečate palca 699 00:28:20,520 --> 00:28:23,410 Zdaj bomo naredili int main (void). 700 00:28:23,410 --> 00:28:30,020 Zdaj pa mi gredo naprej in to za (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 In zdaj bom, da gredo naprej in ga natisnete zvezdo, ki sem 703 00:28:36,620 --> 00:28:37,890 naredil prej. 704 00:28:37,890 --> 00:28:39,390 In potem na koncu tega programa, smo le, da bo 705 00:28:39,390 --> 00:28:41,130 tiskanje novo vrstico, samo zato, da sem hitro 706 00:28:41,130 --> 00:28:42,470 Ne izgleda celi umazani. 707 00:28:42,470 --> 00:28:45,170 0 vrne. 708 00:28:45,170 --> 00:28:47,610 Zdi sintaktično pravilna? 709 00:28:47,610 --> 00:28:48,040 Do sedaj. 710 00:28:48,040 --> 00:28:48,560 Torej, da vidimo. 711 00:28:48,560 --> 00:28:51,290 >> Torej, kaj mi pomanjšati, pojdi v svojo terminalsko okno. 712 00:28:51,290 --> 00:28:54,570 In naj gredo naprej in zagon zanko, ker sem to imenoval 713 00:28:54,570 --> 00:28:55,690 stvar loop.c. 714 00:28:55,690 --> 00:28:56,780 Torej, da zanko. 715 00:28:56,780 --> 00:28:57,840 Zdi se, da pripravijo OK. 716 00:28:57,840 --> 00:29:00,210 Naj teči zanke, zdaj Enter. 717 00:29:00,210 --> 00:29:01,820 In zdi se, da natisnejo 10 zvezd. 718 00:29:01,820 --> 00:29:03,780 Vzemiva pretvorili v while zanko in videli, kaj 719 00:29:03,780 --> 00:29:05,220 vrste vprašanj smo se spotaknil. 720 00:29:05,220 --> 00:29:11,290 Torej, namesto tega, spustite me noter in reči, medtem ko je i 721 00:29:11,290 --> 00:29:12,760 manj kot 10 - 722 00:29:12,760 --> 00:29:14,910 Naj znebiti za zanko. 723 00:29:14,910 --> 00:29:17,170 OK, tako da imamo nekaj težav že. 724 00:29:17,170 --> 00:29:21,110 Tako stanje je isto, ampak jaz sem očitno manjka 725 00:29:21,110 --> 00:29:21,680 inicializacija. 726 00:29:21,680 --> 00:29:23,840 Jaz sem zamudila incrementation. 727 00:29:23,840 --> 00:29:28,020 Torej, kaj naj bi prevajalnik mi povej, ko sem poskušal 728 00:29:28,020 --> 00:29:29,170 sestavi tega programa? 729 00:29:29,170 --> 00:29:29,666 Ja? 730 00:29:29,666 --> 00:29:31,154 OBČINSTVO: [neslišno]. 731 00:29:31,154 --> 00:29:31,650 >> David J. Malan: Dobro. 732 00:29:31,650 --> 00:29:34,180 Torej, to bo rekel kaj takega črno - v tem 733 00:29:34,180 --> 00:29:35,280 primeru, sem spremenljivki. 734 00:29:35,280 --> 00:29:37,980 In res, uporabite črno identifikatorja i. 735 00:29:37,980 --> 00:29:40,960 In tako je to v nasprotju z jeziki, kot so PHP in 736 00:29:40,960 --> 00:29:43,120 Python in Ruby, s katero bi se nekateri od vas ne poznajo, 737 00:29:43,120 --> 00:29:44,820 kjer si lahko samo nekako začeti uporabljati spremenljivk 738 00:29:44,820 --> 00:29:47,420 hočeš nočeš, in ni treba skrbeti za njihovo razglasitev 739 00:29:47,420 --> 00:29:48,560 izrecno vedno. 740 00:29:48,560 --> 00:29:51,770 V C in v jezikih, kot so Java in C + +, morate biti 741 00:29:51,770 --> 00:29:53,020 super jasna. 742 00:29:53,020 --> 00:29:55,760 In če hočeš spremenljivko sem klical, mi morate povedati 743 00:29:55,760 --> 00:29:57,360 kakšne spremenljivke je. 744 00:29:57,360 --> 00:29:59,360 Torej bomo morali to popraviti, kot sledi. 745 00:29:59,360 --> 00:30:05,510 Bom moral iti gor in tip int i, zato 746 00:30:05,510 --> 00:30:07,860 Imam razglasiti spremenljivko sem klical. 747 00:30:07,860 --> 00:30:09,180 Zdaj pa sem preskočil en korak. 748 00:30:09,180 --> 00:30:11,340 Sem seveda ne zaceto, toda poglejmo, če je ta v 749 00:30:11,340 --> 00:30:13,650 vsaj naredi Jek stop pritožujejo. 750 00:30:13,650 --> 00:30:15,770 Torej, kaj mi remake tega programa. 751 00:30:15,770 --> 00:30:16,770 >> V redu, zdaj pa je samo pritožuje 752 00:30:16,770 --> 00:30:17,870 zaradi drugega razloga. 753 00:30:17,870 --> 00:30:21,130 "Spremenljivka je" i "nezaceto pri uporabi tukaj." V redu, 754 00:30:21,130 --> 00:30:22,340 To je precej jasna. 755 00:30:22,340 --> 00:30:25,510 Inicializiramo tako, da pomeni vzpostavitev enake vrednosti. 756 00:30:25,510 --> 00:30:30,820 In nikoli ne bomo storili, da naj poskusim enaka 0. 757 00:30:30,820 --> 00:30:35,030 Zdaj pa poskusimo še enkrat in ponovno zagnati Jek. 758 00:30:35,030 --> 00:30:36,140 Zbrani tokrat. 759 00:30:36,140 --> 00:30:37,210 In jaz sem na tem, da bi sistem deloval. 760 00:30:37,210 --> 00:30:43,120 Toda velika stara neskončna zanka, saj sem naredil 761 00:30:43,120 --> 00:30:45,530 inicializacijo, ki sem jih naredil stanje, vendar še nikoli nisem naredil 762 00:30:45,530 --> 00:30:47,030 vse vrste incrementation. 763 00:30:47,030 --> 00:30:48,780 Torej, kako lahko naredim incrementation? 764 00:30:48,780 --> 00:30:51,170 No, v while zanko, se zdi, kot da sem bom moral 765 00:30:51,170 --> 00:30:54,180 to storiti v notranjosti zanke, saj podobno kot 1. 766 00:30:54,180 --> 00:30:56,570 Primeri tedna za tem zanka konstrukti, kot s 767 00:30:56,570 --> 00:30:59,040 nogavice in z lastno štetja, smo morali narediti 768 00:30:59,040 --> 00:31:01,550 Nekaj ​​čisto na koncu, želel vrniti v naslednji vrstici. 769 00:31:01,550 --> 00:31:05,040 Kaj pa, če grem naprej in to je to i + + tukaj? 770 00:31:05,040 --> 00:31:06,030 Ne smemo tudi prevedete tole. 771 00:31:06,030 --> 00:31:06,890 Ujemi me že. 772 00:31:06,890 --> 00:31:09,704 Kaj je narobe tukaj? 773 00:31:09,704 --> 00:31:10,690 OBČINSTVO: [neslišno]. 774 00:31:10,690 --> 00:31:11,770 >> David J. Malan: Torej, to je definitivno ne int. 775 00:31:11,770 --> 00:31:13,080 To je i. 776 00:31:13,080 --> 00:31:15,110 In zavite oklepaje, kot prej, 777 00:31:15,110 --> 00:31:16,800 zamik ni dovolj. 778 00:31:16,800 --> 00:31:18,410 Torej, zdaj sem to konstrukt. 779 00:31:18,410 --> 00:31:21,780 Torej, medtem ko i je manj kot 10, tiskanje zvezdo, 780 00:31:21,780 --> 00:31:23,220 Potem sem prirastek. 781 00:31:23,220 --> 00:31:25,680 In tako, medtem ko zanke dela je, da takoj, ko ste zadeti 782 00:31:25,680 --> 00:31:29,630 Spodnji del zanke, ki v tem primeru izgleda linije 10, 783 00:31:29,630 --> 00:31:32,880 da se bo vrnil na liniji 6, na kateri točki 784 00:31:32,880 --> 00:31:34,400 Stanje se bo ponovno pregledati. 785 00:31:34,400 --> 00:31:37,500 In če sem še vedno manj od 10, bomo naredili linij in 8 786 00:31:37,500 --> 00:31:41,250 potem 9, potem bomo zadeli 10, in pojdite nazaj na 6, spet in 787 00:31:41,250 --> 00:31:45,580 spet in spet in spet, dokler je i manjši od 10. 788 00:31:45,580 --> 00:31:47,860 Torej ponovno zagnati, da tukaj. 789 00:31:47,860 --> 00:31:48,940 >> Ok, smo zbrali v redu. 790 00:31:48,940 --> 00:31:50,300 Naj ponovno teči zanka. 791 00:31:50,300 --> 00:31:52,620 In zdaj se dejansko zdi, da dela. 792 00:31:52,620 --> 00:31:55,100 Torej pluse in minuse tu? 793 00:31:55,100 --> 00:31:58,910 No, do sedaj tam dejansko ni celoten PLO - 794 00:31:58,910 --> 00:31:59,420 srčkan. 795 00:31:59,420 --> 00:32:01,870 V redu, to je - ah, to je bila nesreča. 796 00:32:01,870 --> 00:32:05,200 V redu, pojdimo nazaj v zanko. 797 00:32:05,200 --> 00:32:07,530 Torej za zank lepo, ker oni so zelo jasna. 798 00:32:07,530 --> 00:32:09,720 In čeprav si ti malo clunky pisati, to je 799 00:32:09,720 --> 00:32:11,500 zelo močan in vam omogoča, da naredite 800 00:32:11,500 --> 00:32:12,980 več stvari hkrati. 801 00:32:12,980 --> 00:32:16,240 Medtem ko zanke ne zdi, da imajo ogromno vrednost samo 802 00:32:16,240 --> 00:32:18,500 še, ker se zdi, kot da smo morali narediti več. 803 00:32:18,500 --> 00:32:20,670 Moramo dati inicializacijo tu gor, 804 00:32:20,670 --> 00:32:23,480 posodobiti tukaj, in ne smemo pozabiti, da stori vse. 805 00:32:23,480 --> 00:32:26,260 Torej bomo videli v času, medtem ko zanke dejansko posojajo 806 00:32:26,260 --> 00:32:29,380 sami, da samo različnih kontekstih, različnih podatkov 807 00:32:29,380 --> 00:32:33,900 strukture, kot so seznami in hash tabele, boste stvari bomo prišli do 808 00:32:33,900 --> 00:32:34,970 Sredi semester. 809 00:32:34,970 --> 00:32:37,900 Ampak za zdaj, vem, da je to tretja vrsta znana kot do- 810 00:32:37,900 --> 00:32:38,480 while zanko. 811 00:32:38,480 --> 00:32:39,540 In smo videli ta kratko. 812 00:32:39,540 --> 00:32:41,830 In to je lahko zelo koristno, s pset 1. 813 00:32:41,830 --> 00:32:45,570 Vsak čas hočeš nekaj storiti in preverite, če 814 00:32:45,570 --> 00:32:48,940 uporabnik sodeloval, in če ni, še enkrat, ne- 815 00:32:48,940 --> 00:32:51,460 while zanko, primeren za to vrsto logike. 816 00:32:51,460 --> 00:32:55,640 Ker je naročanje od vrha do dna tu predlaga, 817 00:32:55,640 --> 00:32:57,750 Ne dobesedno pomeni to. 818 00:32:57,750 --> 00:32:59,830 In to znova in znova, kaj bi to lahko bilo? 819 00:32:59,830 --> 00:33:03,000 Morda to pomeni, da kliče GetInt ali GetString in nato 820 00:33:03,000 --> 00:33:05,830 preverjanje vrednosti GetInt ali GetString in potem kričati 821 00:33:05,830 --> 00:33:08,260 na uporabnika, če niso sodelovali in od njih zahteva 822 00:33:08,260 --> 00:33:10,100 spet in spet in spet. 823 00:33:10,100 --> 00:33:11,730 Če želite narediti nekaj enkrat, 824 00:33:11,730 --> 00:33:13,210 Nato preverite nekaj pogojev. 825 00:33:13,210 --> 00:33:14,110 >> Torej, kaj je poskusiti. 826 00:33:14,110 --> 00:33:17,130 Naj dejansko spremeniti to zdaj za do-while zanko. 827 00:33:17,130 --> 00:33:18,830 In jaz bom, da gredo naprej in ne za naslednje. 828 00:33:18,830 --> 00:33:21,830 Torej, naredite naslednje. 829 00:33:21,830 --> 00:33:26,870 Naredimo int i = GetInt (), ampak dajmo 1. povedati uporabnika 830 00:33:26,870 --> 00:33:27,410 kaj naj naredim. 831 00:33:27,410 --> 00:33:29,050 Tako malo tokrat drugače. 832 00:33:29,050 --> 00:33:31,270 "Dajte mi int". 833 00:33:31,270 --> 00:33:32,910 Zato bom uporabljal printf za to. 834 00:33:32,910 --> 00:33:35,740 In zdaj bom šel dol in bom za to 835 00:33:35,740 --> 00:33:41,520 medtem ko je i, recimo, je večja - 836 00:33:41,520 --> 00:33:47,540 Poglejmo, i, recimo, manj kot 0, ali je i 837 00:33:47,540 --> 00:33:48,730 več kot 10. 838 00:33:48,730 --> 00:33:51,810 Z drugimi besedami, želim številke od 1 do 9, tako 839 00:33:51,810 --> 00:33:52,720 samovoljno. 840 00:33:52,720 --> 00:33:55,290 Torej, jaz sem z uporabo kombinirane logični izraz tukaj za 841 00:33:55,290 --> 00:33:59,930 poskrbite, da i je manj kot 0 ali večje od 10, pri čemer 842 00:33:59,930 --> 00:34:02,530 primeru bom naredil to zanko tu. 843 00:34:02,530 --> 00:34:04,400 Torej, še enkrat, to - 844 00:34:04,400 --> 00:34:08,480 ko i je manj kot 0 ali i je večja od 10. 845 00:34:08,480 --> 00:34:11,440 >> Torej, zdaj gremo naprej in to je to, ko smo to storili. 846 00:34:11,440 --> 00:34:13,270 Pojdiva narediti hitro duševnega zdravja pregled. 847 00:34:13,270 --> 00:34:18,929 printf ("Hvala, i je% d", i). 848 00:34:18,929 --> 00:34:21,350 Torej, ta preprost program vpraša uporabnika za int, 849 00:34:21,350 --> 00:34:24,000 poskrbi, da je v nekaterih razponu od 1 do 9, vključno 850 00:34:24,000 --> 00:34:26,280 in potem se zahvaljuje si jih spomnil, kaj so pravkar 851 00:34:26,280 --> 00:34:27,940 vnesli v, prav tako kot malo preverjanje zdrave pameti. 852 00:34:27,940 --> 00:34:30,659 Toda poglejmo, če to deluje, kot je bilo predvideno. 853 00:34:30,659 --> 00:34:34,533 Naj gredo glavo dol in ponovno zagnati, da zanko. 854 00:34:34,533 --> 00:34:35,350 Hmm. 855 00:34:35,350 --> 00:34:38,600 "Uporaba neprijavljeno identifikator 'i'." To je čudno. 856 00:34:38,600 --> 00:34:41,509 Mislil sem, da smo rešili to. 857 00:34:45,489 --> 00:34:47,560 Enako simptom, a drugačna oznaka. 858 00:34:47,560 --> 00:34:47,899 Ja? 859 00:34:47,899 --> 00:34:50,191 OBČINSTVO: [neslišno] v dveh, moramo 860 00:34:50,191 --> 00:34:52,639 [Neslišno]. 861 00:34:52,639 --> 00:34:53,260 >> David J. Malan: Točno tako. 862 00:34:53,260 --> 00:34:55,989 Torej, to je dejansko nas pripelje na temo, imenovano področje. 863 00:34:55,989 --> 00:34:59,350 Izkazalo se je, da je C, še enkrat, res vas popelje dobesedno. 864 00:34:59,350 --> 00:35:02,970 In če bi storil kaj takega, kjer ugotovi, int 865 00:35:02,970 --> 00:35:06,120 in potem mu dodelite določeno vrednost, vendar pa morate, da je notranjost 866 00:35:06,120 --> 00:35:09,840 par zavitih oklepajih, kaj počne C je predvideno, da 867 00:35:09,840 --> 00:35:14,800 Samo želim te 32 bitov, znane kot jaz, da obstajajo znotraj 868 00:35:14,800 --> 00:35:18,200 V okviru teh zavitih oklepajih, v okviru linij 869 00:35:18,200 --> 00:35:22,420 6 do 9. Torej sem prijavljena in je dodeljena 870 00:35:22,420 --> 00:35:26,530 vrednost v vrstici 8, ampak takoj, ko prideš izven 871 00:35:26,530 --> 00:35:30,270 9. vrstica pod oklepaja kodrasti, i ni več 872 00:35:30,270 --> 00:35:31,910 področje, tako rekoč. 873 00:35:31,910 --> 00:35:35,030 S-C-O-P-E. To ni več v pravem kontekstu. 874 00:35:35,030 --> 00:35:37,940 Torej, zdaj ni i, tako da je, kot da bi imeli niti 875 00:35:37,940 --> 00:35:38,770 je prijavil na vse. 876 00:35:38,770 --> 00:35:41,520 >> Torej, kaj je potem popravek za kaj takega, če je 877 00:35:41,520 --> 00:35:44,300 Razlog za to je, da sem uvrščen v zavitih oklepajih, ki 878 00:35:44,300 --> 00:35:45,120 je očitno slabo? 879 00:35:45,120 --> 00:35:45,410 Tukaj? 880 00:35:45,410 --> 00:35:46,820 OBČINSTVO: [neslišno]. 881 00:35:46,820 --> 00:35:47,150 David J. Malan: Ja. 882 00:35:47,150 --> 00:35:48,710 Tako bomo lahko inicializacijo zunaj. 883 00:35:48,710 --> 00:35:53,530 Torej, naj gredo naprej in izbrisati iz deklaracije dele, s katerim 884 00:35:53,530 --> 00:35:55,820 Jaz določiti vrsto in jaz bom naredil tukaj. 885 00:35:55,820 --> 00:36:00,220 Torej, v vrstici 5 je zdaj pravi: "Daj mi int." Razpis je i. 886 00:36:00,220 --> 00:36:03,400 Obvestilo v skladu 9, ne želim, da to storijo, saj sem 887 00:36:03,400 --> 00:36:04,830 že imajo 32 bitov. 888 00:36:04,830 --> 00:36:06,140 Ne želim vprašati računalnik za 889 00:36:06,140 --> 00:36:07,630 Različni 32 bitov. 890 00:36:07,630 --> 00:36:09,850 Želim uporabljati te iste 32 bitov. 891 00:36:09,850 --> 00:36:13,190 In zdaj, ker sem prijavljena v vrstici 5 je še vedno zakonit 892 00:36:13,190 --> 00:36:16,550 da ga uporabljate v vrstico 11 in linijo 12. 893 00:36:16,550 --> 00:36:19,310 >> Torej, kaj mi poskušali prevesti to in si oglejte 894 00:36:19,310 --> 00:36:20,490 če Jek ustavi kričati. 895 00:36:20,490 --> 00:36:22,380 da zanko. 896 00:36:22,380 --> 00:36:25,470 Torej, zdaj je "implicitno izjavo o delovanju 897 00:36:25,470 --> 00:36:29,880 "GetInt" je ničen v C99. "Kaj je to? 898 00:36:29,880 --> 00:36:30,400 Ja? 899 00:36:30,400 --> 00:36:32,330 OBČINSTVO: [neslišno]. 900 00:36:32,330 --> 00:36:32,690 David J. Malan: Ja. 901 00:36:32,690 --> 00:36:35,520 Torej sedaj, da sem dejansko uporabo GetInt, to ni nekaj, 902 00:36:35,520 --> 00:36:38,190 Samo, da prihaja z C. To izhaja iz CS50. 903 00:36:38,190 --> 00:36:39,890 Zato moramo tukaj. 904 00:36:39,890 --> 00:36:41,450 In naj se vrnem k takojšnji navzdol 905 00:36:41,450 --> 00:36:43,500 tu in ponovno zagnati narediti. 906 00:36:43,500 --> 00:36:44,160 Ok, končno. 907 00:36:44,160 --> 00:36:46,270 Zdaj, ko smo razrešili to in druge napake. 908 00:36:46,270 --> 00:36:48,930 Naj sedaj vodi zanke in videli, kaj se bo zgodilo. 909 00:36:48,930 --> 00:36:51,740 "Dajte mi int." Dam mu 11. 910 00:36:51,740 --> 00:36:53,100 Dam mu -1. 911 00:36:53,100 --> 00:36:54,470 Dam mu foo. 912 00:36:54,470 --> 00:36:56,080 Dam ji 5. 913 00:36:56,080 --> 00:36:57,450 In zdaj je res deluje. 914 00:36:57,450 --> 00:36:59,410 Toda hitro spremenilo z razlogom tukaj. 915 00:36:59,410 --> 00:37:02,800 Zakaj je torej ponoviti eno izmed teh časih, ampak mi 916 00:37:02,800 --> 00:37:03,920 int druge trikrat? 917 00:37:03,920 --> 00:37:05,500 Zakaj je to obnašanje drugačen? 918 00:37:05,500 --> 00:37:06,980 OBČINSTVO: Dal ji niz. 919 00:37:06,980 --> 00:37:07,830 David J. Malan: Prosim? 920 00:37:07,830 --> 00:37:08,570 OBČINSTVO: Ste ji dali niz. 921 00:37:08,570 --> 00:37:08,990 David J. Malan: Ja. 922 00:37:08,990 --> 00:37:11,450 Zato smo mu dali niz v tem tretjem poskusu, 923 00:37:11,450 --> 00:37:12,490 ko sem tipkal foo. 924 00:37:12,490 --> 00:37:13,200 Foo je niz. 925 00:37:13,200 --> 00:37:14,340 To seveda ne int. 926 00:37:14,340 --> 00:37:17,500 In tako, da se je izvajala CS50 GetInt je, da smo 927 00:37:17,500 --> 00:37:20,330 ne preverjaj, če se kaj je manj kot 0 ali večje od 10 928 00:37:20,330 --> 00:37:22,260 za vas, saj vemo, kako vnaprej, kaj vrste 929 00:37:22,260 --> 00:37:23,130 int želiš? 930 00:37:23,130 --> 00:37:25,880 Lahko pa preverite minimalno za vas, pa si vsaj 931 00:37:25,880 --> 00:37:26,730 vnesite celo število? 932 00:37:26,730 --> 00:37:30,500 In če ni, smo kričati na uporabnika z vpisom "retry" na 933 00:37:30,500 --> 00:37:31,440 zaslon. 934 00:37:31,440 --> 00:37:34,210 >> Torej, zdaj imamo program, ki je zanka. Ok. 935 00:37:34,210 --> 00:37:37,070 Torej, katera od teh je nekako boljši konstrukt? 936 00:37:37,070 --> 00:37:39,060 Torej, to je, če se stvari začnejo dobili malo grdo, 937 00:37:39,060 --> 00:37:42,360 Dejstvo, da moraš vedeti, da razglasi spremenljivka tukaj 938 00:37:42,360 --> 00:37:44,630 če želite, da ga uporabljate znotraj nekaterih 939 00:37:44,630 --> 00:37:46,460 Zaviti oklepaji in zunaj nje. 940 00:37:46,460 --> 00:37:48,490 A tudi če se to zdi nekoliko skrivnosten na prvi 941 00:37:48,490 --> 00:37:50,750 pogled, samo enkrat, ne pozabite, da preprosto logiko. 942 00:37:50,750 --> 00:37:54,630 Da bi lahko uporabljali kaj v C, ali je to funkcijo ali 943 00:37:54,630 --> 00:37:57,680 to je spremenljivka, ga morate vključiti, če je funkcija 944 00:37:57,680 --> 00:37:59,770 v nekaterih knjižnici, ali morate prijaviti. 945 00:37:59,770 --> 00:38:02,405 Ampak zdaj morate biti še posebej pozorni na to, da 946 00:38:02,405 --> 00:38:04,940 veste, da ga razglasi v pravo področje. 947 00:38:04,940 --> 00:38:08,150 Saj ne, da jih razporedijo premočno znotraj oklepajev. 948 00:38:08,150 --> 00:38:09,410 >> Torej, kaj mi pravzaprav povrne. 949 00:38:09,410 --> 00:38:12,660 Če se vrnemo k naši primer od prej, in sem šel 950 00:38:12,660 --> 00:38:19,245 nazaj na int, int i = 0; i <10; i + +, in jaz 951 00:38:19,245 --> 00:38:26,370 ne printf zvezde, kot je ta, in nato zaprite paren, sedaj 952 00:38:26,370 --> 00:38:30,410 printf i je zdaj - 953 00:38:30,410 --> 00:38:33,500 po isti logiki, kaj se bo zgodilo, ko sem poskušal 954 00:38:33,500 --> 00:38:35,500 sestavi tega programa? 955 00:38:35,500 --> 00:38:36,790 OBČINSTVO: Neveljaven identifikator. 956 00:38:36,790 --> 00:38:38,560 David J. Malan: Torej je še en neveljaven identifikator, 957 00:38:38,560 --> 00:38:39,470 neprijavljeno identifikator. 958 00:38:39,470 --> 00:38:41,810 No, razlog je malo drugačna. 959 00:38:41,810 --> 00:38:44,370 Tam je očitno brez zavitih oklepajih tukaj, vendar enako 960 00:38:44,370 --> 00:38:46,790 Ideja, ista zgodba področja velja. 961 00:38:46,790 --> 00:38:50,340 Če ste prijavljeni spremenljivke, kot da sem v notranjosti 962 00:38:50,340 --> 00:38:53,960 zanka, tudi če ni izrecno pisno kodrasti 963 00:38:53,960 --> 00:38:56,980 oporniki, da jih psihično kot vedno so tam, kjer 964 00:38:56,980 --> 00:39:00,310 Primer i velja samo znotraj zanke for. 965 00:39:00,310 --> 00:39:03,080 To ne velja, ko prideš v naslednjo vrstico, ki je v 966 00:39:03,080 --> 00:39:05,090 V tem primeru je sedaj 10. 967 00:39:05,090 --> 00:39:09,060 Torej je le nekaj vprašanj glede obsega in podobnega. 968 00:39:09,060 --> 00:39:12,620 V redu, kakšno vprašanje? 969 00:39:12,620 --> 00:39:15,310 >> V redu, to je nekako trivialno majhen program, 970 00:39:15,310 --> 00:39:17,450 tiskanje le malo zvezd. 971 00:39:17,450 --> 00:39:20,400 Toda poglejmo, če se spomnite te pesmi tukaj. 972 00:39:20,400 --> 00:39:22,530 To je neverjetno nadležno pesem, otroci pela na 973 00:39:22,530 --> 00:39:23,550 šolski avtobus in podobno. 974 00:39:23,550 --> 00:39:25,990 Toda kaj je lepo pa je, da ima to cikličnost, 975 00:39:25,990 --> 00:39:27,910 pri čemer je "99 steklenic piva na zidu, 976 00:39:27,910 --> 00:39:28,520 99 steklenic piva. 977 00:39:28,520 --> 00:39:31,030 1 dol, dajati okrog, 98 steklenic piva na 978 00:39:31,030 --> 00:39:34,330 zid. "In potem pesem ponavlja 97, nato 96, nato 979 00:39:34,330 --> 00:39:38,040 95, nato 94, vse tja do 0, če ste dejansko dobili, da 980 00:39:38,040 --> 00:39:38,920 če na avtobusu. 981 00:39:38,920 --> 00:39:41,960 Torej, to je lepo program za neke vrste stroju, ker mi 982 00:39:41,960 --> 00:39:43,650 Bog, če bi si to izvedli z nekaj 983 00:39:43,650 --> 00:39:46,660 vrstic kode, lahko izpljunila celotno lyrics to 984 00:39:46,660 --> 00:39:48,240 Pesem precej hitro. 985 00:39:48,240 --> 00:39:50,420 Toda na poti, lahko začnemo zdaj draži razen nekaterih 986 00:39:50,420 --> 00:39:52,460 od teh osnovnih looping konstruktov in zdaj tudi 987 00:39:52,460 --> 00:39:55,830 uvedbo funkcije, ki smo si jih napisal, vrne vrednosti 988 00:39:55,830 --> 00:39:57,020 da se peljemo okoli. 989 00:39:57,020 --> 00:39:58,910 Ampak najprej, zakaj ne gremo naprej in da smo pet minut 990 00:39:58,910 --> 00:39:59,320 odmor tukaj? 991 00:39:59,320 --> 00:40:01,480 In ko se vrnemo, bomo peli to pesem. 992 00:40:05,680 --> 00:40:08,760 >> V redu, tako da smo nazaj. 993 00:40:08,760 --> 00:40:11,850 In ko rečem, da bomo zdaj poje to pesem, mislim, 994 00:40:11,850 --> 00:40:13,250 Programsko, ne pa verbalno. 995 00:40:13,250 --> 00:40:19,370 Torej, tukaj imamo beer1.c, ki je eden izvajanje tega 996 00:40:19,370 --> 00:40:20,580 Zlasti pesem. 997 00:40:20,580 --> 00:40:23,110 In tako mora biti jasno, za tiste, ki ne poznajo, kaj 998 00:40:23,110 --> 00:40:24,460 ta stvar izgleda, naj grem naprej 999 00:40:24,460 --> 00:40:27,070 in da beer1, Enter. 1000 00:40:27,070 --> 00:40:30,400 Zdaj pa mi deluje beer1 in kaj bomo videli - koliko steklenic 1001 00:40:30,400 --> 00:40:31,140 piva ne bo? 1002 00:40:31,140 --> 00:40:33,240 Jaz bom vnesite v 99, kot pravi pesem. 1003 00:40:33,240 --> 00:40:34,040 Enter. 1004 00:40:34,040 --> 00:40:35,650 In zdaj, če bomo pomikate - 1005 00:40:35,650 --> 00:40:38,280 ojej - če se pomaknete skozi vse to, bomo videli, da 1006 00:40:38,280 --> 00:40:41,350 To je dejansko poje celo pesem. 1007 00:40:44,050 --> 00:40:44,540 Čakaj malo. 1008 00:40:44,540 --> 00:40:46,240 Moj drsnik je malo zamočil. 1009 00:40:46,240 --> 00:40:47,940 Naj uporabi večje okno. 1010 00:40:47,940 --> 00:40:53,500 Torej beer1, 99 pa gremo. 1011 00:40:53,500 --> 00:40:56,420 Torej, tukaj imamo celo pesem, poje veliko hitreje z 1012 00:40:56,420 --> 00:40:58,450 računalnik, kot bi lahko bilo z nami. 1013 00:40:58,450 --> 00:41:00,340 Torej opazil, čeprav na ciklično naravo tukaj. 1014 00:41:00,340 --> 00:41:03,380 Pravi 99, nato 99, nato pa "vzemi dol, ga posredovati 1015 00:41:03,380 --> 00:41:04,740 okrog ", nato 98. 1016 00:41:04,740 --> 00:41:06,640 In zdaj ponavlja spet in spet. 1017 00:41:06,640 --> 00:41:08,840 >> Torej, to je pravzaprav odlična priložnost za neke vrste 1018 00:41:08,840 --> 00:41:10,400 zanka konstrukt. 1019 00:41:10,400 --> 00:41:12,950 Obvestilo, da sem nekako rezanje kotiček tukaj. 1020 00:41:12,950 --> 00:41:15,960 Obvestilo, da sem rekel "98 steklenic piva na zidu, 1021 00:41:15,960 --> 00:41:19,010 97 steklenic piva na zidu "in da je bilo samo zato, 1022 00:41:19,010 --> 00:41:21,640 da ko pridemo na eno steklenic piva, nimam 1023 00:41:21,640 --> 00:41:23,300 skrbeti za angleške slovnice. 1024 00:41:23,300 --> 00:41:25,790 Lahko pa tudi to popraviti z malo, če 1025 00:41:25,790 --> 00:41:26,910 stanje, morda. 1026 00:41:26,910 --> 00:41:30,110 Če je ta številka ednini, pojdi naprej in reči "steklenice", 1027 00:41:30,110 --> 00:41:31,840 drugače, če je množina, torej "steklenice". 1028 00:41:31,840 --> 00:41:34,150 Ampak za zdaj, sem popolnoma rezanje tega kota. 1029 00:41:34,150 --> 00:41:35,520 Torej, poglejmo, kaj imamo tukaj. 1030 00:41:35,520 --> 00:41:37,150 Torej imamo nekaj pripomb na vrhu. 1031 00:41:37,150 --> 00:41:39,450 Jaz sem tudi ta dva knjižnice, kot je 1032 00:41:39,450 --> 00:41:41,140 smo bili pogosto. 1033 00:41:41,140 --> 00:41:43,610 In zdaj naj se pomaknite navzdol na prvo 1034 00:41:43,610 --> 00:41:44,990 dejanska vrstic kode. 1035 00:41:44,990 --> 00:41:47,020 Vrstica 17 se začenja glavni. 1036 00:41:47,020 --> 00:41:50,610 Linija 21 in 20 je, koliko steklenic piva ne bo? 1037 00:41:50,610 --> 00:41:52,060 In potem sem poklical GetInt. 1038 00:41:52,060 --> 00:41:53,800 In zdaj imam malo zdrave pameti pregleda. 1039 00:41:53,800 --> 00:41:57,030 >> Torej, to je dogovor, da bomo danes začela sprejemati to 1040 00:41:57,030 --> 00:41:59,620 strožje preverjanje uporabnika prispevek. 1041 00:41:59,620 --> 00:42:01,710 Včasih si ne želite, da jih pozove, znova 1042 00:42:01,710 --> 00:42:02,630 in spet in spet. 1043 00:42:02,630 --> 00:42:05,620 Če uporabnik polomi in ne sodeluje v redu. 1044 00:42:05,620 --> 00:42:07,430 Zaprite in samo ne ukvarjajo z njimi. 1045 00:42:07,430 --> 00:42:08,990 In da je to, kar delam tukaj. 1046 00:42:08,990 --> 00:42:12,520 Če je n manjši od 1, grem kričati na uporabnika, 1047 00:42:12,520 --> 00:42:14,330 "Žal mi je, da nima smisla." In potem bom 1048 00:42:14,330 --> 00:42:16,650 samovoljno vrnil 1. 1049 00:42:16,650 --> 00:42:18,550 Torej, še enkrat, to je samo dogovor, da se privadite. 1050 00:42:18,550 --> 00:42:19,850 Za zdaj, ga vzemite v veri. 1051 00:42:19,850 --> 00:42:22,700 Ampak do sedaj, smo vseskozi vrača 0, saj 1052 00:42:22,700 --> 00:42:25,204 sva rekla vračanje 0 pomeni kaj? 1053 00:42:25,204 --> 00:42:26,000 OBČINSTVO: Uspeh. 1054 00:42:26,000 --> 00:42:27,320 David J. Malan: Uspeh, to je vse. 1055 00:42:27,320 --> 00:42:29,740 Torej, zdaj, da smo končno začeli razmišljati o 1056 00:42:29,740 --> 00:42:31,330 ne-uspeh - 1057 00:42:31,330 --> 00:42:33,760 z drugimi besedami, kotiček primerih, napaka pogoji - 1058 00:42:33,760 --> 00:42:37,520 Zdaj imam neskončno dobavo ali vsaj 4000000000 1059 00:42:37,520 --> 00:42:39,790 možne stvari, ki lahko gredo narobe v mojih programov. 1060 00:42:39,790 --> 00:42:42,300 In lahko začnem dodeljevanje jih posamezne številke. 1061 00:42:42,300 --> 00:42:44,340 No, na splošno zadošča samo vrnitev 1062 00:42:44,340 --> 00:42:45,730 nekaj drugega kot 0. 1063 00:42:45,730 --> 00:42:48,040 Torej bomo samo vrniti 1 za zdaj. 1064 00:42:48,040 --> 00:42:51,440 A razlog za vrnitev 1 je, da takoj, ko se vrnete 1065 00:42:51,440 --> 00:42:55,110 1, ugani kaj se zgodi s preostalim programom? 1066 00:42:55,110 --> 00:42:55,720 To ustavi. 1067 00:42:55,720 --> 00:42:56,560 To je to. 1068 00:42:56,560 --> 00:42:59,150 Zato je dejstvo, da sem vrnil 1 dejansko 1069 00:42:59,150 --> 00:43:02,950 kratki stik Ta program je izvajanje tako, da 1070 00:43:02,950 --> 00:43:06,780 nič pod pragom 27 se bo nadaljevalo izvajanje. 1071 00:43:06,780 --> 00:43:09,210 Takoj, ko je glavni napovedi, to je to. 1072 00:43:09,210 --> 00:43:13,160 >> V redu, če uporabnik ne sodeluje in pridemo linijo 30 1073 00:43:13,160 --> 00:43:15,680 ker so vnesli v zakoniti več, tukaj je moj 1074 00:43:15,680 --> 00:43:16,990 Izvajanje te pesmi. 1075 00:43:16,990 --> 00:43:19,050 Torej, najprej natisnite znak za novo vrstico, samo za 1076 00:43:19,050 --> 00:43:19,880 estetika. 1077 00:43:19,880 --> 00:43:21,500 Sedaj imam za zanko. 1078 00:43:21,500 --> 00:43:22,930 In opazil, da delam stvari malo 1079 00:43:22,930 --> 00:43:23,880 za drugo smer. 1080 00:43:23,880 --> 00:43:26,210 Nimam narediti manj, kot mi ni treba narediti + +. 1081 00:43:26,210 --> 00:43:30,660 Ne morem reči, namesto da bi inicializacijo spremenljivke i, nastavite enak 1082 00:43:30,660 --> 00:43:35,080 n je število uporabnik vnesli, naredite naslednje, da 1083 00:43:35,080 --> 00:43:39,590 Dokler je i večji od 0, i - 1084 00:43:39,590 --> 00:43:42,070 Ko končate ena ponovitev te zanke. 1085 00:43:42,070 --> 00:43:44,310 Tako bomo lahko odšteva z uporabo zanke for, kot dobro. 1086 00:43:44,310 --> 00:43:47,520 No, to je precej teden 1 stvari zdaj, z printf. 1087 00:43:47,520 --> 00:43:51,770 Torej print "% d steklenic piva na zidu." Print "% d 1088 00:43:51,770 --> 00:43:54,990 steklenice piva. "" Vzemi dol, ga prenesti okoli. "Print 1089 00:43:54,990 --> 00:43:58,880 "% D steklenic piva na zidu." Torej je še% d, vendar 1090 00:43:58,880 --> 00:44:02,770 opazili, da argument, da printf se spreminja. 1091 00:44:02,770 --> 00:44:05,840 Vejico, jaz imam, ker želim povedati 99. 1092 00:44:05,840 --> 00:44:08,590 Po tem vejico, jaz imam, ker želim povedati 99. 1093 00:44:08,590 --> 00:44:14,030 Po tem vejico, ki sem jih jaz - 1, ker želim povedati v 98 1094 00:44:14,030 --> 00:44:16,260 to prvo ponovitev, in tako naprej. 1095 00:44:16,260 --> 00:44:18,520 In zdaj tukaj, sem nekaj neumnega malo pripombo. 1096 00:44:18,520 --> 00:44:22,270 In potem linija 42, se vrnem po dogovoru 0, kar pomeni, da 1097 00:44:22,270 --> 00:44:23,650 vse je v redu. 1098 00:44:23,650 --> 00:44:24,490 >> Pa kaj, če sem usekal mimo? 1099 00:44:24,490 --> 00:44:26,350 Kaj lahko pogosta napaka tukaj? 1100 00:44:26,350 --> 00:44:29,200 Pa kaj, če sem slučajno rekel, dobro, želim, da računajo 1101 00:44:29,200 --> 00:44:31,640 do 0, hočem 0 steklenic piva na zidu? 1102 00:44:31,640 --> 00:44:34,620 Zato sem rekel, sem večji ali enak 0. 1103 00:44:34,620 --> 00:44:38,920 Kaj se dogaja, da je znak, da sem zdaj vidim, če sem prevedem 1104 00:44:38,920 --> 00:44:41,173 beer1 in ga zaženem? 1105 00:44:41,173 --> 00:44:42,120 OBČINSTVO: Ne. 1106 00:44:42,120 --> 00:44:43,590 David J. Malan: Ja, vse bo šel negativen. 1107 00:44:43,590 --> 00:44:45,950 To je off-by-ena napaka, neverjetno 1108 00:44:45,950 --> 00:44:47,270 pogosta napaka, da bi. 1109 00:44:47,270 --> 00:44:48,960 Pojdimo dejansko šel nazaj v terminalsko okno in to 1110 00:44:48,960 --> 00:44:50,620 tukaj, tako da bomo videli več hkrati. 1111 00:44:50,620 --> 00:44:53,280 Vpišite, 99 steklenic piva. 1112 00:44:53,280 --> 00:44:56,580 Blizu, vendar smo se vedno tako malo predaleč. 1113 00:44:56,580 --> 00:45:00,500 Smo zapeli pesem predaleč navzdol, tako da je zdaj hit 1114 00:45:00,500 --> 00:45:01,510 negativno število. 1115 00:45:01,510 --> 00:45:03,680 Torej ni čisto delo. 1116 00:45:03,680 --> 00:45:06,450 >> V redu, tako da bomo lahko določi, da se vrnemo nazaj na 1117 00:45:06,450 --> 00:45:07,650 Tako je nekoč bil. 1118 00:45:07,650 --> 00:45:10,360 Ampak kaj so nekatere možnosti za zdaj 1119 00:45:10,360 --> 00:45:11,190 izboljšanje? 1120 00:45:11,190 --> 00:45:17,200 No, naj odpre beer2.c in se pomaknite navzdol in se tukaj 1121 00:45:17,200 --> 00:45:19,310 poglej to različico. 1122 00:45:19,310 --> 00:45:21,370 Kaj je prva stvar, ki skoči ven na vas kot drugačni 1123 00:45:21,370 --> 00:45:23,715 v tej različici tukaj? 1124 00:45:23,715 --> 00:45:24,190 OBČINSTVO: [neslišno]. 1125 00:45:24,190 --> 00:45:26,510 David J. Malan: Ja, nič več jaz, saj je prišlo do 1126 00:45:26,510 --> 00:45:29,350 jaz veš kaj, jaz vprašam si za n, potem pa sem 1127 00:45:29,350 --> 00:45:33,580 o določitvi i enaka n, potem pa sem spreminjajo, toda nikoli nisem 1128 00:45:33,580 --> 00:45:34,590 dotika n znova. 1129 00:45:34,590 --> 00:45:37,390 Torej, kaj za vraga je bilo bistvo vas dodeljevanja še 32 1130 00:45:37,390 --> 00:45:45,210 bitov se imenuje i samo zato, da sem lahko imajo različne spremenljivke? 1131 00:45:45,210 --> 00:45:47,960 Torej v tem primeru, sem nekako priznala, da ni potrebno 1132 00:45:47,960 --> 00:45:49,190 oblikovna. 1133 00:45:49,190 --> 00:45:52,730 In jaz sem zdaj reči, medtem ko je n večji od 0, pojdite 1134 00:45:52,730 --> 00:45:56,180 naprej in natisniti isto pesem, ki poteka tudi na n printf kot 1135 00:45:56,180 --> 00:46:00,210 Drugi argument, n - 1, kot drugi argument tukaj. 1136 00:46:00,210 --> 00:46:02,930 In potem na vsaki ponovitvi te zanke, pojdi naprej in preprosto 1137 00:46:02,930 --> 00:46:05,080 padanje n sama. 1138 00:46:05,080 --> 00:46:06,960 Zdaj, funkcionalno, je ta program 1139 00:46:06,960 --> 00:46:08,010 bo enaka. 1140 00:46:08,010 --> 00:46:10,730 Če sem tipa na 99, n se začne ob 99. 1141 00:46:10,730 --> 00:46:12,890 Jaz padanje, padanje, padanje, zmanjšaj. 1142 00:46:12,890 --> 00:46:15,875 Jaz bom dobil vso pot navzdol do "eno steklenico piva na 1143 00:46:15,875 --> 00:46:16,740 zid, ena steklenica piva. 1144 00:46:16,740 --> 00:46:18,020 1 Bodite navzdol in ga prenesti okoli. 1145 00:46:18,020 --> 00:46:21,480 0 steklenic piva na zidu. "Na koncu, ker sem 1146 00:46:21,480 --> 00:46:23,200 se pogoj pravilna. 1147 00:46:23,200 --> 00:46:24,280 To je večje od 0.. 1148 00:46:24,280 --> 00:46:26,220 Nisem naredila to napako. 1149 00:46:26,220 --> 00:46:28,470 >> Torej, kateri je boljši, različica 1 ali 2 verzijo? 1150 00:46:31,380 --> 00:46:33,480 Slišala sem, da kup mrmljanje za dva. 1151 00:46:33,480 --> 00:46:34,730 Zakaj dve? 1152 00:46:37,210 --> 00:46:38,225 Kaj je to? 1153 00:46:38,225 --> 00:46:39,215 OBČINSTVO: [neslišno]. 1154 00:46:39,215 --> 00:46:40,070 David J. Malan: Oh, v redu. 1155 00:46:40,070 --> 00:46:42,870 Torej, da ne bo šel pod 0, vendar ne pozabite, v različici 1, 1156 00:46:42,870 --> 00:46:45,870 prvotna pravilna različica ni šel pod 0 obeh. 1157 00:46:45,870 --> 00:46:48,340 Torej, ne pozabite, da je to pravilna različica. 1158 00:46:48,340 --> 00:46:51,630 Torej je vsaj primerjamo obe pravilni različice. 1159 00:46:51,630 --> 00:46:53,300 Kaj je argument v prid različici 1160 00:46:53,300 --> 00:46:55,146 2 počutje, mmm, bolje? 1161 00:46:55,146 --> 00:46:55,642 Ja? 1162 00:46:55,642 --> 00:46:57,630 OBČINSTVO: To porabi manj prostora. 1163 00:46:57,630 --> 00:46:59,530 David J. Malan: Ok, tako da porabi manj prostora, kajne? 1164 00:46:59,530 --> 00:47:02,900 Ker različica 1 se uporablja 32 bitov za n, nato pa še 1165 00:47:02,900 --> 00:47:07,680 32 bitov, i. 1166 00:47:07,680 --> 00:47:10,060 Različica 2 uporablja le 32 bitov za n, tako da 1167 00:47:10,060 --> 00:47:11,700 Zdi se, da plus. 1168 00:47:11,700 --> 00:47:12,950 Druge misli? 1169 00:47:18,070 --> 00:47:21,520 Ali kdo rad govori v prid enega? 1170 00:47:21,520 --> 00:47:22,070 Ja? 1171 00:47:22,070 --> 00:47:25,240 OBČINSTVO: Moraš uporabiti dodatne kode za n -. 1172 00:47:25,240 --> 00:47:26,090 >> David J. Malan: Ok, seveda. 1173 00:47:26,090 --> 00:47:26,960 Torej, da je pošteno. 1174 00:47:26,960 --> 00:47:29,040 Torej je to samo, vsaj zame - 1175 00:47:29,040 --> 00:47:31,940 Mislim, to je dejansko počuti malo Orlova, dejstvo, da 1176 00:47:31,940 --> 00:47:35,120 Ne morem nekako zajame vse moje logike v enem 1177 00:47:35,120 --> 00:47:38,030 lepa črta, za zanke, saj je za zanko lahko. 1178 00:47:38,030 --> 00:47:40,240 Tukaj sem nekako moral prečenje o tem n - 1179 00:47:40,240 --> 00:47:41,120 konec zanke, saj 1180 00:47:41,120 --> 00:47:42,550 to je logično potrebno. 1181 00:47:42,550 --> 00:47:45,190 Ampak nekako drgne me narobe, samo zato, ker 1182 00:47:45,190 --> 00:47:48,260 Zdi se, ločen od logike tukaj, čeprav 1183 00:47:48,260 --> 00:47:49,430 spet je to potrebno. 1184 00:47:49,430 --> 00:47:50,990 Druge misli? 1185 00:47:50,990 --> 00:47:51,490 Ja? 1186 00:47:51,490 --> 00:47:52,740 OBČINSTVO: [neslišno]. 1187 00:47:57,990 --> 00:47:58,350 >> David J. Malan: Ja. 1188 00:47:58,350 --> 00:48:00,730 Pa kaj, če boste namesto tega na koncu pesmi, je želel 1189 00:48:00,730 --> 00:48:02,950 natisniti znova ime pesmi? 1190 00:48:02,950 --> 00:48:05,660 Kot "Hvala za igranje 99 steklenic piva", ali kaj 1191 00:48:05,660 --> 00:48:06,690 neumno takega? 1192 00:48:06,690 --> 00:48:09,750 Ampak bistvo je, da si je želel imeti dostop do prvotne vrednosti. 1193 00:48:09,750 --> 00:48:13,180 Dejstvo, da ste mutiral ali spreminjati n na vsaki 1194 00:48:13,180 --> 00:48:16,330 ponovitev, zato so uničili njeno izvirno vrednost 1195 00:48:16,330 --> 00:48:18,650 pomeni, da si ne morem narediti konec. 1196 00:48:18,650 --> 00:48:20,660 Zdaj, verjetno, da očitno ne želijo narediti 1197 00:48:20,660 --> 00:48:21,450 da je v tem programu. 1198 00:48:21,450 --> 00:48:22,350 Torej, koga briga? 1199 00:48:22,350 --> 00:48:23,630 Ampak to je zelo veljavno točko. 1200 00:48:23,630 --> 00:48:25,520 In če sem iskren, zares nihče 1201 00:48:25,520 --> 00:48:26,630 Pravica odgovor tukaj. 1202 00:48:26,630 --> 00:48:28,740 Oba sta enako pravilne. 1203 00:48:28,740 --> 00:48:30,210 Jaz bi se lahko prepričan v obe smeri. 1204 00:48:30,210 --> 00:48:33,310 Bom rekel, da na splošno, je dobro načelo, če 1205 00:48:33,310 --> 00:48:36,030 prosil si za neko vrednost in jo shrani v spremenljivko 1206 00:48:36,030 --> 00:48:38,730 kot n, nekako na načelu, da je verjetno dobra 1207 00:48:38,730 --> 00:48:40,160 obdržati, da je okoli. 1208 00:48:40,160 --> 00:48:43,400 In vsi podatki, ki jih želite mutirajo znova in znova, samo 1209 00:48:43,400 --> 00:48:46,030 daste kopijo te spremenljivke, tako da boste 1210 00:48:46,030 --> 00:48:47,830 dostop do originala. 1211 00:48:47,830 --> 00:48:51,040 Vi ste porabili 32 več bitov, ampak v resnici je to 1212 00:48:51,040 --> 00:48:53,490 Računalnik je kot, 2 GB RAM-a, v teh dneh, 1213 00:48:53,490 --> 00:48:55,310 in smo quibbling nad 32 bitov? 1214 00:48:55,310 --> 00:48:56,320 Res ni tako velik posel. 1215 00:48:56,320 --> 00:48:58,550 In tudi na tej napravi tukaj, s pol gig ali 1216 00:48:58,550 --> 00:49:01,700 GB RAM-a, v primerjavi z 32 bitov 64 bitov, 1217 00:49:01,700 --> 00:49:02,920 ni tako velik posel. 1218 00:49:02,920 --> 00:49:05,890 Seveda danes pa se dogaja, da se tako preobremenjeni z velikostjo 1219 00:49:05,890 --> 00:49:08,400 iz samega programa, ki se bo več sto 1220 00:49:08,400 --> 00:49:10,890 kilobajtov, če ne nekaj megabajtov, te dni. 1221 00:49:10,890 --> 00:49:13,550 >> Torej, utemeljeni pomisleki, nihče ni pravi odgovor. 1222 00:49:13,550 --> 00:49:15,490 Ampak vsaj to so misli, ki bi se morala začeti 1223 00:49:15,490 --> 00:49:16,790 gredo po glavi? 1224 00:49:16,790 --> 00:49:19,600 Ker v pset 0, čeprav smo res samo pričakovati 1225 00:49:19,600 --> 00:49:22,340 pravilnost ali vsaj zavrača različne žuželke, da 1226 00:49:22,340 --> 00:49:25,440 boste morda srečujejo, kot smo korak naprej, dizajn 1227 00:49:25,440 --> 00:49:27,910 bo še en ključni vidik, in sicer za pisanje kode 1228 00:49:27,910 --> 00:49:29,770 in tudi naši oceni kodo. 1229 00:49:29,770 --> 00:49:32,310 In tako vsaj mislili, da bi stvari, kot je ta. 1230 00:49:32,310 --> 00:49:35,590 In samo zato, ker nekaj dela, še ne pomeni, da je dobro, 1231 00:49:35,590 --> 00:49:37,130 ne pomeni, da je dobro zasnovan. 1232 00:49:37,130 --> 00:49:38,820 In to je ena od stvari, učne in tovariši 1233 00:49:38,820 --> 00:49:41,990 Problem določa bomo lahko draži del v daljšem časovnem obdobju. 1234 00:49:41,990 --> 00:49:45,020 >> No, kaj pa, recimo, to različico tukaj? 1235 00:49:45,020 --> 00:49:49,090 Naj naredi nekaj malo seksi tu v trenutku. 1236 00:49:49,090 --> 00:49:50,740 Najprej naj se znebite tega. 1237 00:49:50,740 --> 00:49:54,120 In zdaj pa spravimo to slovnično vprašanje. 1238 00:49:54,120 --> 00:49:58,780 Torej, v tej različici, želim popraviti slovnico, tako da 1239 00:49:58,780 --> 00:50:02,460 ne samo, da parenthetical je, kot je "steklenice" 1240 00:50:02,460 --> 00:50:03,360 ali "steklenice" - 1241 00:50:03,360 --> 00:50:04,900 Ne želim, da nehaj s tem kotiček - 1242 00:50:04,900 --> 00:50:08,350 Prav tako bi rad dinamično natisniti besedo "steklenice" 1243 00:50:08,350 --> 00:50:12,820 ali "steklenice", pri čemer uporaba teh% s ograde danes. 1244 00:50:12,820 --> 00:50:16,550 Torej moram pogojno preverite, kaj je vrednost i. 1245 00:50:16,550 --> 00:50:19,590 In če je 1, hočem reči "steklenice", in če je kaj 1246 00:50:19,590 --> 00:50:23,115 drugega, bi rad povedal, "steklenice". Torej poskusimo to storiti. 1247 00:50:23,115 --> 00:50:31,340 Torej, če sem == 1, potem pa naj gredo naprej in ugotovi - 1248 00:50:31,340 --> 00:50:34,080 Rabim niz, tako da mi ne String s1, ker je 1249 00:50:34,080 --> 00:50:36,070 Prvi niz me skrbi sedaj. 1250 00:50:36,070 --> 00:50:40,980 Jaz bom rekel "steklenico". In potem, da vidimo, niz 1251 00:50:40,980 --> 00:50:43,110 s2 - in bom razložiti, kam grem v trenutku - 1252 00:50:43,110 --> 00:50:47,650 "Steklenice". Tako opozarjajo, da v tej pesmi, moramo biti sposobni 1253 00:50:47,650 --> 00:50:50,580 tiskanje stvari, dva različna besed lahko. 1254 00:50:50,580 --> 00:50:53,590 Torej, če pogledamo nazaj, ko je opazil, da smo prišli do 1255 00:50:53,590 --> 00:50:56,440 ta primer tukaj, "dve steklenici piva na zidu, 1256 00:50:56,440 --> 00:50:59,490 2 steklenici piva, eno dol, ga prenesti okoli "Rad 1257 00:50:59,490 --> 00:51:02,380 Ta četrta vrstica za zdaj rekel "eno steklenico piva na 1258 00:51:02,380 --> 00:51:04,900 stena ". Torej moram odločiti, kaj želim povedati," steklenice "ali 1259 00:51:04,900 --> 00:51:07,780 "Steklenice"? Tako bom rekel samovoljno, vse v redu, 1260 00:51:07,780 --> 00:51:10,530 Grem zdaj razglaša za spremenljivko z imenom, s1 niz 1261 00:51:10,530 --> 00:51:13,830 1, da se dogaja, da se vklopiti v tukaj in tudi tukaj, 1262 00:51:13,830 --> 00:51:16,070 ker te besede so vedno enaki, samo zaradi 1263 00:51:16,070 --> 00:51:17,290 Narava pesem. 1264 00:51:17,290 --> 00:51:20,100 In jaz bom poklical s2, kar beseda želim 1265 00:51:20,100 --> 00:51:21,560 sčasoma pojavijo tukaj. 1266 00:51:21,560 --> 00:51:25,530 Zdaj, dobesedno, 99 primerih od 100, to se dogaja, da se 1267 00:51:25,530 --> 00:51:28,820 enako v obeh primerih, saj je množini 3, 2 je 1268 00:51:28,820 --> 00:51:30,200 množini, 4 je množina. 1269 00:51:30,200 --> 00:51:34,640 Toda v tem primeru kotiček, kjer pridemo do 2, nato 1, ali 1270 00:51:34,640 --> 00:51:37,250 1 in nato še 0, moram to logiko. 1271 00:51:37,250 --> 00:51:41,020 Torej moram preživeti nekaj časa v mojem kodo dobili to pravico. 1272 00:51:41,020 --> 00:51:47,530 Torej, če naredim to, če je i == 1, potem iz s1 enaka "steklenice" 1273 00:51:47,530 --> 00:51:52,010 in s2 enaka "steklenice", saj bo to za 1 1274 00:51:52,010 --> 00:51:56,340 steklenice, in to bo za 0 steklenic. 1275 00:51:56,340 --> 00:51:58,250 In to, kaj to pomeni? 1276 00:51:58,250 --> 00:51:59,780 Samo, da je jasno. 1277 00:51:59,780 --> 00:52:00,620 To je samo komentar. 1278 00:52:00,620 --> 00:52:03,730 Zato je dejstvo, da lahko imajo eno linijo komentarjev vam pomeni 1279 00:52:03,730 --> 00:52:06,110 lahko komentira svojo kodo, kot je ta, vendar je še en skupni 1280 00:52:06,110 --> 00:52:09,050 paradigma tudi, da če imate super kratek stavek, ki 1281 00:52:09,050 --> 00:52:11,410 hočeš, da si dal in to je samo bolj berljivo, naj 1282 00:52:11,410 --> 00:52:13,270 prav na koncu vrstico kode, lahko 1283 00:52:13,270 --> 00:52:15,230 absolutno naredil kaj takega. 1284 00:52:15,230 --> 00:52:20,150 >> Torej, kaj zdaj, če to storim? If i ni enak 1. 1285 00:52:20,150 --> 00:52:21,620 Torej bang enaka - 1286 00:52:21,620 --> 00:52:23,150 Klicaj je znano kot "pok". 1287 00:52:23,150 --> 00:52:25,080 Torej bang = 1. 1288 00:52:25,080 --> 00:52:28,530 Torej, če jaz ni enaka 1, kar naj namesto tega želiš? 1289 00:52:28,530 --> 00:52:31,700 No, prva beseda želim biti, kaj? 1290 00:52:34,620 --> 00:52:40,030 Torej bi morala biti niz 1 "steklenice" za pluralnih steklenice, 1291 00:52:40,030 --> 00:52:42,440 in potem bo to pluralnih "steklenice", kot tudi, za zdaj. 1292 00:52:42,440 --> 00:52:43,800 In bomo videli, če je to dejansko pride do nas 1293 00:52:43,800 --> 00:52:44,870 če želimo iti. 1294 00:52:44,870 --> 00:52:47,680 Torej, zdaj, če sem se pomaknite dol, da vidite, da sem priklopom 1295 00:52:47,680 --> 00:52:50,170 ne samo jaz, ampak s1. 1296 00:52:50,170 --> 00:52:51,860 Jaz sem priklopom na i in S1. 1297 00:52:51,860 --> 00:52:54,440 In potem sem, da sem minus 1, kar je enako kot 1298 00:52:54,440 --> 00:52:55,920 prej, vendar s2. 1299 00:52:55,920 --> 00:52:58,730 Z drugimi besedami, želim angleško besedo za spremembo na 1300 00:52:58,730 --> 00:52:59,930 po tej logiki. 1301 00:52:59,930 --> 00:53:03,310 Sedaj pa je že nekaj težav v tem zakoniku. 1302 00:53:03,310 --> 00:53:08,460 Kaj je že pobegnil iz vrata tukaj? 1303 00:53:08,460 --> 00:53:10,796 Ja? 1304 00:53:10,796 --> 00:53:13,210 OBČINSTVO: [neslišno]. 1305 00:53:13,210 --> 00:53:13,800 >> David J. Malan: Točno tako. 1306 00:53:13,800 --> 00:53:16,030 Tako sem že prekršil nauk uporabe. 1307 00:53:16,030 --> 00:53:19,610 Tako sem s1 in s2 prijavljeni, vendar sem to storil znotraj 1308 00:53:19,610 --> 00:53:22,980 Zaviti oklepaji, kar pomeni, ja, se bo ta številka do dela 1309 00:53:22,980 --> 00:53:27,430 do linije 42, ampak takoj, ko sem udaril črto 43, ugani kaj ne 1310 00:53:27,430 --> 00:53:28,900 ne obstaja več? 1311 00:53:28,900 --> 00:53:32,600 No, veš kaj ni več v področje uporabe - ne s1 ali s2. 1312 00:53:32,600 --> 00:53:33,780 Zato moramo to popraviti. 1313 00:53:33,780 --> 00:53:36,180 Torej mi zbrisati izjave. 1314 00:53:36,180 --> 00:53:39,320 In jaz bom zapustiti imena spremenljivk in to izbrisati tukaj 1315 00:53:39,320 --> 00:53:40,120 in to izbrisati tukaj. 1316 00:53:40,120 --> 00:53:43,557 In kaj linije bi res izjavi te stvari? 1317 00:53:43,557 --> 00:53:44,960 OBČINSTVO: [neslišno]. 1318 00:53:44,960 --> 00:53:45,410 David J. Malan: Ja, verjetno 1319 00:53:45,410 --> 00:53:46,850 desno gor, 33-ish. 1320 00:53:46,850 --> 00:53:50,670 Torej String s1 in s2, nato niz. 1321 00:53:50,670 --> 00:53:51,950 In izkazalo se je, ne morem narediti tega. 1322 00:53:51,950 --> 00:53:54,260 Če ste razglasitvi dveh spremenljivk istega tipa, 1323 00:53:54,260 --> 00:53:57,420 lahko dejansko samo uporabo vejice in to, da je v vseh C. 1324 00:53:57,420 --> 00:53:58,970 V redu, sedaj imam dve spremenljivki - 1325 00:53:58,970 --> 00:53:59,860 s1 in s2. 1326 00:53:59,860 --> 00:54:02,000 Jaz sem jim dodelite vrednosti v teh 1327 00:54:02,000 --> 00:54:04,210 Pogoji tukaj ali tukaj. 1328 00:54:04,210 --> 00:54:06,690 In potem sem jih uporabljajo spodaj. 1329 00:54:06,690 --> 00:54:10,960 Kako dobro je to zdaj greš v službo? 1330 00:54:10,960 --> 00:54:12,740 >> No, to je še vedno malo Otroški voziček, ampak dajmo vsaj glej 1331 00:54:12,740 --> 00:54:13,730 kako daleč smo gotten. 1332 00:54:13,730 --> 00:54:16,500 Torej, naj gredo naprej in da beer3. 1333 00:54:16,500 --> 00:54:17,695 Je to beer3? 1334 00:54:17,695 --> 00:54:19,410 Ja, to je beer3. 1335 00:54:19,410 --> 00:54:21,510 In zdaj mi gredo naprej in zagon beer3. 1336 00:54:21,510 --> 00:54:23,820 399 99. 1337 00:54:23,820 --> 00:54:25,840 Mi lahko preskočite verjetno večina od njih. 1338 00:54:25,840 --> 00:54:29,100 In tukaj, poglej si to. 1339 00:54:29,100 --> 00:54:31,110 "Ena steklenica piva na steni, ena steklenica piva, da 1340 00:54:31,110 --> 00:54:34,306 1 določa, dajati okrog, 0 steklenic piva na zidu. " 1341 00:54:34,306 --> 00:54:37,570 Ampak jaz sem risanje vašo pozornost na samo polovico raztopine. 1342 00:54:37,570 --> 00:54:39,620 Nekako sem zamočil. 1343 00:54:39,620 --> 00:54:43,030 Tako se zdi, da so kotne primeri, ko sem znaša kar 1344 00:54:43,030 --> 00:54:44,030 2 vrednote? 1345 00:54:44,030 --> 00:54:45,020 OBČINSTVO: 2, 1. 1346 00:54:45,020 --> 00:54:46,190 David J. Malan: 2 in 1. 1347 00:54:46,190 --> 00:54:48,180 To ni 1 in ne 1. 1348 00:54:48,180 --> 00:54:51,890 To je res le zadnji dve kitice te pesmi. 1349 00:54:51,890 --> 00:54:53,890 Torej, kaj sem namesto želite narediti? 1350 00:54:53,890 --> 00:54:58,890 Zato sem se zdi, da so ujeli primer, ko, če je i == do 1, 1351 00:54:58,890 --> 00:55:02,240 potem prva beseda je "steklenice", ampak druga beseda 1352 00:55:02,240 --> 00:55:07,230 je "steklenice". Ampak tukaj, želim, da se to spremeni, da == 2. 1353 00:55:07,230 --> 00:55:08,570 In če je temu tako, kaj hočem 1354 00:55:08,570 --> 00:55:09,620 Prva beseda je? 1355 00:55:09,620 --> 00:55:10,430 OBČINSTVO: "Stekleničke". 1356 00:55:10,430 --> 00:55:12,890 David J. Malan: "Stekleničke", tako da za dve steklenici. 1357 00:55:12,890 --> 00:55:14,690 In potem bi ta beseda tukaj - 1358 00:55:14,690 --> 00:55:15,340 OBČINSTVO: "Bottle". 1359 00:55:15,340 --> 00:55:17,316 David J. Malan: "Bottle", ednina. 1360 00:55:20,430 --> 00:55:25,160 >> V redu, dajmo pomanjšanje nazaj sem ponovno zagnati, da, 1361 00:55:25,160 --> 00:55:28,590 re-run beer3, tip 99 še enkrat. 1362 00:55:28,590 --> 00:55:30,710 V redu, "Segmentacija napaka (jedro dampinških)." 1363 00:55:30,710 --> 00:55:32,780 Kaj sem naredil narobe? 1364 00:55:36,050 --> 00:55:38,722 OBČINSTVO: Vi nimate vrednost [neslišno]. 1365 00:55:38,722 --> 00:55:40,480 David J. Malan: Ah, odlično točka. 1366 00:55:40,480 --> 00:55:43,310 V redu, torej kaj je tukaj narobe? 1367 00:55:43,310 --> 00:55:45,450 Torej napake segmentacije, in smo dejansko dogaja za prikaz 1368 00:55:45,450 --> 00:55:49,020 to kar nekajkrat v prihodnosti, namerno. 1369 00:55:49,020 --> 00:55:51,030 Ampak za zdaj, kaj to dejansko pomeni? 1370 00:55:51,030 --> 00:55:53,620 Segmentacija napaka skoraj vedno pomeni, da imate 1371 00:55:53,620 --> 00:55:56,760 nekako poskušali dostopati do pomnilnika RAM v računalniku, 1372 00:55:56,760 --> 00:56:00,600 ki ni v vaši lasti, ki ste jih dejansko ni vprašal 1373 00:56:00,600 --> 00:56:02,050 operacijski sistem za. 1374 00:56:02,050 --> 00:56:04,440 Torej, v tem primeru opazili, kaj sem naredil, kar je 1375 00:56:04,440 --> 00:56:05,870 pomanjkljiv v moji logiki. 1376 00:56:05,870 --> 00:56:09,500 Imam namenski S1 in S2 vrednost, če i je enak 1. 1377 00:56:09,500 --> 00:56:11,590 Jaz sem tudi naredil, če i je enak 2. 1378 00:56:11,590 --> 00:56:13,710 Ampak nisem naredil v neskončnem številu drugih 1379 00:56:13,710 --> 00:56:14,690 možnosti - 1380 00:56:14,690 --> 00:56:17,940 še zlasti, 3 ali 4 ali pika, pika, pika, 99. 1381 00:56:17,940 --> 00:56:20,100 Tako bi se lahko določi za ta bodi lets ' 1382 00:56:20,100 --> 00:56:22,190 imeti drugega pogoja. 1383 00:56:22,190 --> 00:56:26,780 In pusti me noter in rekel s1 enak - 1384 00:56:26,780 --> 00:56:28,180 Kaj naj bi bilo tukaj? 1385 00:56:28,180 --> 00:56:28,750 OBČINSTVO: [neslišno]. 1386 00:56:28,750 --> 00:56:30,460 >> David J. Malan: "Stekleničke", saj so v skupnem primeru, 1387 00:56:30,460 --> 00:56:32,020 to je samo eno in isto. 1388 00:56:32,020 --> 00:56:35,580 Tako znaša citiram, konec citata, "steklenice". Torej za množini 1389 00:56:35,580 --> 00:56:41,010 steklenice, nato pa sem, pluralnih za steklenice. 1390 00:56:41,010 --> 00:56:44,580 Ok, zdaj pa grem nazaj v svojo terminalsko okno, 1391 00:56:44,580 --> 00:56:47,200 prevedem, ga ponovno zagnati. 1392 00:56:47,200 --> 00:56:48,440 99. 1393 00:56:48,440 --> 00:56:49,150 Vav. 1394 00:56:49,150 --> 00:56:50,610 In kaj je naredil hiter pregled razumnosti. 1395 00:56:50,610 --> 00:56:52,400 Tehnično, bi želeli prebrati vse to se prepričajte 1396 00:56:52,400 --> 00:56:53,370 oni so res, vendar pa si poglejmo 1397 00:56:53,370 --> 00:56:54,640 vsaj znanih krivci. 1398 00:56:54,640 --> 00:56:57,370 3 steklenice, plastenke, 2 2 steklenice, 1 1399 00:56:57,370 --> 00:57:00,380 steklenice, 1 steklenica, 0 steklenice. 1400 00:57:00,380 --> 00:57:03,080 Zdi se, da se je vsaj za zdaj določen. 1401 00:57:03,080 --> 00:57:06,010 Ampak ulov tukaj je, da tisto, kar Bog grozna zmešnjava je to 1402 00:57:06,010 --> 00:57:07,470 Samo za reševanje neumna 1403 00:57:07,470 --> 00:57:09,540 1-mestna slovnično podrobnost. 1404 00:57:09,540 --> 00:57:11,150 Torej je neke vrste razlog, da sem to zmanjšanje kotiček 1405 00:57:11,150 --> 00:57:14,090 prej, saj je samo popolnoma siten, da so za 1406 00:57:14,090 --> 00:57:15,020 napisati to veliko kode. 1407 00:57:15,020 --> 00:57:17,530 Vendar se je izkazalo, da je nekoliko bolj elegantne načine 1408 00:57:17,530 --> 00:57:20,110 izraža točno isto stvar. 1409 00:57:20,110 --> 00:57:22,040 In to lahko naredimo na naslednji način. 1410 00:57:22,040 --> 00:57:23,890 >> Naj pustim na zaslonu za trenutek in 1411 00:57:23,890 --> 00:57:27,320 uvesti nekaj znan kot trikomponentne operaterja. 1412 00:57:27,320 --> 00:57:29,600 To je nekako vse na enem podlage, ki je samo mišljeno, da bi naše 1413 00:57:29,600 --> 00:57:31,880 živi malo bolj seksi, kot je obljubil. 1414 00:57:31,880 --> 00:57:33,130 In jaz bom naredil takole. 1415 00:57:33,130 --> 00:57:35,810 Daj mi niz imenovano s1 in me pusti 1416 00:57:35,810 --> 00:57:37,200 dodeli, kot sledi. 1417 00:57:37,200 --> 00:57:39,900 (I == 1)? 1418 00:57:39,900 --> 00:57:47,820 "Steklenice", sicer pa "steklenice". String niz2 dobi (i == 2)? 1419 00:57:47,820 --> 00:57:52,670 "Steklenice", sicer pa "steklenice". 1420 00:57:52,670 --> 00:57:57,050 Torej, kaj je potem razlika tu? 1421 00:57:57,050 --> 00:57:59,370 Ti dve vrstic kode, zagovarjam, lahko 1422 00:57:59,370 --> 00:58:02,200 zamenjati vso to zmešnjavo. 1423 00:58:02,200 --> 00:58:04,280 Zato pravim, da nered, samo zato, ker mi nekako drgne 1424 00:58:04,280 --> 00:58:05,940 narobe, da je tako veliko vrstic kode. 1425 00:58:05,940 --> 00:58:06,650 Ni narobe. 1426 00:58:06,650 --> 00:58:07,700 Ni slabo načrtovanje. 1427 00:58:07,700 --> 00:58:10,140 Všeč mi je, to je popolnoma pravilen in popolnoma v redu. 1428 00:58:10,140 --> 00:58:12,970 Ampak kodiranje postane dolgočasno, če imate, da izrazi sebe, tako 1429 00:58:12,970 --> 00:58:15,530 Prekleto posebej znova in znova in znova z lahkoto 1430 00:58:15,530 --> 00:58:16,620 scenarij, kot je ta. 1431 00:58:16,620 --> 00:58:19,470 Torej C ima nekaj bližnjic, kot je ta. 1432 00:58:19,470 --> 00:58:24,270 Torej je to v bistvu pravi, razglasi niz imenovano s1 in 1433 00:58:24,270 --> 00:58:32,610 dodelite bodisi to vrednost ali je ta vrednost, če je i == - 1434 00:58:32,610 --> 00:58:35,290 Žal moram povedati bolj jasno. 1435 00:58:35,290 --> 00:58:41,680 Ugotovi spremenljivka, s1, mu dodelite to vrednost, če je to res. 1436 00:58:41,680 --> 00:58:44,280 Sicer pa mu dodelite to vrednost. 1437 00:58:44,280 --> 00:58:47,220 Torej, z drugimi besedami, to je neke vrste enovrstični način 1438 00:58:47,220 --> 00:58:51,490 pravim, če pa delaš, ampak nalogo na poti. 1439 00:58:51,490 --> 00:58:55,540 Torej, če je i 1, potem pojdi naprej in rekli "steklenice". In 1440 00:58:55,540 --> 00:58:59,830 potem je to drugega, imenujemo "steklenice". Medtem, s2, 1441 00:58:59,830 --> 00:59:04,060 2. Beseda, ki jo moramo opredeliti, če i je enak 2, bomo 1442 00:59:04,060 --> 00:59:08,350 nastavite na "s2 steklenici". V nasprotnem primeru jo nastavite na "steklenice". In kaj 1443 00:59:08,350 --> 00:59:11,460 to pomeni, da je zdaj morem iti skozi to in izbrisati vse 1444 00:59:11,460 --> 00:59:12,860 te vrstice kode. 1445 00:59:12,860 --> 00:59:17,220 In ko rečem, nekoliko smešno, da je to zdaj 1446 00:59:17,220 --> 00:59:20,060 seksi, to je bolj seksi na vrsto slogovne smislu. 1447 00:59:20,060 --> 00:59:22,660 Dejstvo, da je funkcionalno ta oznaka se dejansko dogaja, da 1448 00:59:22,660 --> 00:59:24,610 narediti točno isto stvar. 1449 00:59:24,610 --> 00:59:26,890 In čeprav je morda videti nekoliko skrivnosten na prvi 1450 00:59:26,890 --> 00:59:29,250 pogled, saj smo videli ta konstrukt, ne prej, sem 1451 00:59:29,250 --> 00:59:31,850 trdijo, da je na koncu bo toliko bolj 1452 00:59:31,850 --> 00:59:34,820 čitljivo in tako veliko lažje za ljudi, da smo nekako 1453 00:59:34,820 --> 00:59:36,830 razumeti, ker zdaj lahko samo prebrati 1454 00:59:36,830 --> 00:59:38,830 Koda vse v eno vrstico. 1455 00:59:38,830 --> 00:59:41,550 To je še vedno pisane v duhu, da če je, kjer je to 1456 00:59:41,550 --> 00:59:44,920 stanje in potem je to tisto, kar je notri, če in to 1457 00:59:44,920 --> 00:59:46,480 je tisto, kar je znotraj drugega. 1458 00:59:46,480 --> 00:59:49,450 Vendar pa lahko to storimo samo veliko bolj elegantno. 1459 00:59:49,450 --> 00:59:52,650 >> In če bom šel nazaj v mojo terminal, potem ko izbriše vse 1460 00:59:52,650 --> 00:59:55,530 teh vrstic in jih nadomestili s samo teh dveh, 1461 00:59:55,530 --> 01:00:00,150 prevedem, ponovno zaženite steklenice piva s 99, obvestilo, da je moja 1462 01:00:00,150 --> 01:00:03,350 slovnica je v resnici še vedno pravilen. 1463 01:00:03,350 --> 01:00:06,160 Torej, še enkrat, nekaj za začetek. 1464 01:00:06,160 --> 01:00:08,840 2 steklenici piva, 1 steklenica piva. 1465 01:00:08,840 --> 01:00:09,370 Zgleda v redu. 1466 01:00:09,370 --> 01:00:10,100 Ja. 1467 01:00:10,100 --> 01:00:13,900 Torej imamo veliko več zgoščen rešitev. 1468 01:00:13,900 --> 01:00:16,020 Torej tudi to, kot ste dobili bolj udobno s C, ne 1469 01:00:16,020 --> 01:00:18,630 nujno s prvim pset ali celo drugi, vendar 1470 01:00:18,630 --> 01:00:21,170 zavedajo, da lahko ti konstrukti nam omogočajo, da stvari nikoli 1471 01:00:21,170 --> 01:00:22,810 bolj elegantno. 1472 01:00:22,810 --> 01:00:25,200 Zdaj pa naredimo še eno stvar. 1473 01:00:25,200 --> 01:00:31,460 Naj gredo naprej in odprla return1.c. 1474 01:00:31,460 --> 01:00:34,340 Zdaj pa začnimo rešiti še en problem na način, ki 1475 01:00:34,340 --> 01:00:37,140 nam omogoča, da napišete bolj sofisticiran kodo. 1476 01:00:37,140 --> 01:00:39,960 >> Torej, tukaj je preprost majhen program, katerega cilj v življenju 1477 01:00:39,960 --> 01:00:41,870 je prirastek vrednosti. 1478 01:00:41,870 --> 01:00:43,100 In dejansko, naredimo korak nazaj. 1479 01:00:43,100 --> 01:00:44,400 Naj to storijo sami. 1480 01:00:44,400 --> 01:00:52,200 Naj ne vključi in int main (void). 1481 01:00:52,200 --> 01:00:53,450 In mi pravimo increment.c. 1482 01:00:57,150 --> 01:00:58,570 In kaj bi rad naredil? 1483 01:00:58,570 --> 01:01:02,240 Grem, da gredo naprej in rekel nekaj podobnega - 1484 01:01:02,240 --> 01:01:04,280 bomo klic številke, enaki - 1485 01:01:04,280 --> 01:01:04,980 int x. 1486 01:01:04,980 --> 01:01:13,670 Torej, int x dobi 2; printf x je% d, nova, x. 1487 01:01:13,670 --> 01:01:16,780 Torej sem tipkanje hitro, ampak nekako znane stvari zdaj. 1488 01:01:16,780 --> 01:01:18,830 Potem bom naredil x + +. 1489 01:01:18,830 --> 01:01:21,710 Potem bom izpisal isti stavek znova. 1490 01:01:21,710 --> 01:01:24,550 In potem se bom vrnil 0, samo da zaprete program. 1491 01:01:24,550 --> 01:01:25,960 V redu, to je program, ki 1492 01:01:25,960 --> 01:01:26,960 povečevanja števila. 1493 01:01:26,960 --> 01:01:29,830 To se dogaja 1. inicializirati nekaj 2, nato pa je 1494 01:01:29,830 --> 01:01:33,470 bo to prirastek in jo znova natisnite. 1495 01:01:33,470 --> 01:01:36,930 >> Torej, kaj je teči prirastek, neverjetno preprost program. 1496 01:01:36,930 --> 01:01:40,940 Recimo zdaj, ko želim kocka vrednost, to 1497 01:01:40,940 --> 01:01:42,490 Nekaj ​​od naključja. 1498 01:01:42,490 --> 01:01:45,140 In dejansko sem hotel narediti x dobi kocko za to. 1499 01:01:45,140 --> 01:01:47,570 Tako sem lahko uporabite tisto, kar se imenuje funkcijo pow, jaz pa ne 1500 01:01:47,570 --> 01:01:48,650 vem, kje je še. 1501 01:01:48,650 --> 01:01:50,580 Torej bom to na staromoden način. 1502 01:01:50,580 --> 01:01:54,550 x-krat ki je enak x-krat x-krat x. 1503 01:01:54,550 --> 01:01:56,880 Torej sem cubing vrednost, da se pomnoži s sebi znova 1504 01:01:56,880 --> 01:02:00,440 in spet in spet, tako da smo dobili moč 1505 01:02:00,440 --> 01:02:02,050 z dne 3. v tej zadevi. 1506 01:02:02,050 --> 01:02:06,000 Torej, zdaj je treba številke, bi moral biti natisnejo, kot bomo videli 1507 01:02:06,000 --> 01:02:08,450 tukaj - da prirastek, tako da je dejansko ni res prirastek 1508 01:02:08,450 --> 01:02:10,260 več, vendar bomo zapustili ime samo - 1509 01:02:10,260 --> 01:02:11,590 2 in nato 8. 1510 01:02:11,590 --> 01:02:17,670 Zdaj imamo začetke priložnost za izpopolnitev 1511 01:02:17,670 --> 01:02:21,570 Tukaj, v kateri se ta cubing stvar pomnoži število 1512 01:02:21,570 --> 01:02:24,680 sama po sebi sama počuti, kot je to lahko samo 1513 01:02:24,680 --> 01:02:27,920 Koristno bi bilo, kot funkcijo, podobno kot je nekdo odločil, 1514 01:02:27,920 --> 01:02:30,430 leti - saj veste, nekako koristno, če bi kdo od nas usede 1515 01:02:30,430 --> 01:02:33,120 printf in piše, da bi lahko ostali svet uporabljati, 1516 01:02:33,120 --> 01:02:36,160 Zakaj ne bi sedli in napisali funkcijo imenovano kocka 1517 01:02:36,160 --> 01:02:39,250 da pa to cubing za nas, da nam ni treba ročno 1518 01:02:39,250 --> 01:02:41,500 izvajati pojem cubing vrednosti tukaj? 1519 01:02:41,500 --> 01:02:44,040 >> Torej preprost primer, ampak gremo naprej in uporabljati to pa je tudi 1520 01:02:44,040 --> 01:02:46,280 priložnost, da napišete svoje funkcije. 1521 01:02:46,280 --> 01:02:49,110 Do sedaj smo le, glavni, mi pa smo se uporabljajo za druge 1522 01:02:49,110 --> 01:02:51,780 ljudi funkcije, vendar nismo napisal svoje. 1523 01:02:51,780 --> 01:02:52,650 Torej, gremo. 1524 01:02:52,650 --> 01:02:56,330 Grem, da gredo naprej in napišite funkcijo imenovano kocka. 1525 01:02:56,330 --> 01:02:58,490 In jaz bom moral to vzeti vložek. 1526 01:02:58,490 --> 01:03:02,070 Torej vložek se bo število. 1527 01:03:02,070 --> 01:03:03,570 In kaj je naredil? 1528 01:03:03,570 --> 01:03:08,500 To se dogaja, da ugotovi, int izhod = vhod vhod krat 1529 01:03:08,500 --> 01:03:09,880 Časovni vhod. 1530 01:03:09,880 --> 01:03:12,190 In potem se dogaja, da se vrnete, da je izhod. 1531 01:03:12,190 --> 01:03:14,500 In potem moram biti posebno zdaj. 1532 01:03:14,500 --> 01:03:16,820 Ta funkcija vrača int. 1533 01:03:16,820 --> 01:03:19,130 Torej, tukaj pa je, kako bi lahko napišete svoje funkcije. 1534 01:03:19,130 --> 01:03:20,850 Morate najprej odločiti, kaj je ime vašega 1535 01:03:20,850 --> 01:03:21,720 Funkcija bo. 1536 01:03:21,720 --> 01:03:23,964 In na splošno, kaj je dobro obrazložitev, zato bom 1537 01:03:23,964 --> 01:03:25,060 call it kocka. 1538 01:03:25,060 --> 01:03:27,180 Potem morate navesti, kaj se dogaja, da se vrnete, kaj je 1539 01:03:27,180 --> 01:03:28,240 njena proizvodnja bo. 1540 01:03:28,240 --> 01:03:29,595 In nimamo veliko možnosti, da še ni. 1541 01:03:29,595 --> 01:03:32,260 Int, char, float, int, string. 1542 01:03:32,260 --> 01:03:34,260 Za zdaj bom s palico notr, ker hočem 1543 01:03:34,260 --> 01:03:35,880 vrne celo število. 1544 01:03:35,880 --> 01:03:38,770 Potem morate navesti, kaj njegovi vhodi, če sploh, so. 1545 01:03:38,770 --> 01:03:41,570 In če se kocka argument, traja nekaj med 1546 01:03:41,570 --> 01:03:44,970 oklepaje, boste morali dati ta argument ime, tako da 1547 01:03:44,970 --> 01:03:47,860 lahko imenujemo tudi nekaj, kot ste izvedbenih ali pisanje 1548 01:03:47,860 --> 01:03:50,550 to funkcijo, in imate, da ga tip, ki je v tem 1549 01:03:50,550 --> 01:03:51,810 Zadeva se bo int. 1550 01:03:51,810 --> 01:03:54,690 Torej na kratko, kocka je funkcija, ki traja celo število 1551 01:03:54,690 --> 01:03:57,560 na vhodu in vrne celo kot proizvodnja. 1552 01:03:57,560 --> 01:03:59,240 >> Torej, kaj je naredil s tem vhodu? 1553 01:03:59,240 --> 01:04:03,710 No, v vrstici 14 pa izjavljam spremenljivko z imenom proizvodnje, in jaz 1554 01:04:03,710 --> 01:04:07,410 mu dodelite vrednost, vhod krat vložek krat vhod. 1555 01:04:07,410 --> 01:04:11,490 In potem se bom vrnil proizvodnjo. 1556 01:04:11,490 --> 01:04:14,890 Torej, kako se uporablja to potem? 1557 01:04:14,890 --> 01:04:19,210 Kaj moram spremeniti te poudarjene znake na spletu 1558 01:04:19,210 --> 01:04:21,006 7, ki se, pa ti misliš? 1559 01:04:21,006 --> 01:04:21,800 OBČINSTVO: [neslišno]. 1560 01:04:21,800 --> 01:04:25,570 David J. Malan: Ja, kocka x. 1561 01:04:25,570 --> 01:04:28,290 Torej je x spremenljivka, kar pomeni, da ima neko vrednost. 1562 01:04:28,290 --> 01:04:30,190 Na srečo, to je za celo vrsto. 1563 01:04:30,190 --> 01:04:34,280 In ker je x int, to pomeni, da bom lahko preide v kocke. 1564 01:04:34,280 --> 01:04:39,500 In čeprav sem nujnimi vrednosti x z vrednostjo 1565 01:04:39,500 --> 01:04:42,780 kocke x, tako kot v primeru doslej, kadarkoli 1566 01:04:42,780 --> 01:04:46,150 imajo enak znak in kode, vsebine na desni 1567 01:04:46,150 --> 01:04:49,090 gets izvajajo in potem se dodelijo 1568 01:04:49,090 --> 01:04:50,150 Vrednost na levi strani. 1569 01:04:50,150 --> 01:04:52,950 Torej, da bi dejavnosti, ki je, kot bi si upamo. 1570 01:04:52,950 --> 01:04:56,620 Tako to deluje? 1571 01:04:56,620 --> 01:04:58,410 No, pusti me tukaj. 1572 01:04:58,410 --> 01:04:59,970 Naj odpre svojo terminalsko okno. 1573 01:04:59,970 --> 01:05:03,610 Naj ne bo prirastek, Enter. 1574 01:05:03,610 --> 01:05:07,140 "Implicitne izjava" kocko "funkcija je neveljaven 1575 01:05:07,140 --> 01:05:13,700 C99. "Kot prahi, C99 nanaša na jeziku C, kot je bilo 1576 01:05:13,700 --> 01:05:16,790 opredeljene leta 1999, ki je bila sprememba v različici iz 1577 01:05:16,790 --> 01:05:19,360 1989, ki je sprememba v izvirniku. 1578 01:05:19,360 --> 01:05:21,740 Tako, da je vse to pomeni. 1579 01:05:21,740 --> 01:05:24,250 >> Torej, kaj to pomeni, da je "implicitno izjavo 1580 01:05:24,250 --> 01:05:26,790 funkcija 'kocka «je neveljavna?" To je tukaj. 1581 01:05:26,790 --> 01:05:28,430 Prav je, da v vrstico 12. 1582 01:05:28,430 --> 01:05:30,460 OBČINSTVO: [neslišno]. 1583 01:05:30,460 --> 01:05:30,730 David J. Malan: Kaj je to? 1584 01:05:30,730 --> 01:05:32,470 OBČINSTVO: To ne prej. 1585 01:05:32,470 --> 01:05:33,540 David J. Malan: To ne prej. 1586 01:05:33,540 --> 01:05:34,740 Torej, to je stvar. 1587 01:05:34,740 --> 01:05:38,190 C je malo butast, ali C prevajalniki so malo butast. 1588 01:05:38,190 --> 01:05:41,060 So res samo to, kar si povedal, da storijo. 1589 01:05:41,060 --> 01:05:44,770 In predvsem, samo brati svojo kodo vrha do dna, 1590 01:05:44,770 --> 01:05:45,620 od leve proti desni. 1591 01:05:45,620 --> 01:05:49,140 Torej, če prevajalnik, Jek, bere svojo kodo, vrstica 1, je 1592 01:05:49,140 --> 01:05:50,120 Številke, kako to storiti. 1593 01:05:50,120 --> 01:05:50,940 Oh, prihaja glavni. 1594 01:05:50,940 --> 01:05:53,000 Ok, naj gredo naprej in razglasi, da je spremenljivka x. 1595 01:05:53,000 --> 01:05:54,160 Naj natisniti nekaj. 1596 01:05:54,160 --> 01:05:55,890 Line 7, kaj za vraga je kocka? 1597 01:05:55,890 --> 01:05:58,230 Ni prijavljeni v stdio.h. 1598 01:05:58,230 --> 01:06:00,950 To ne pride v C. nimam pojma, kaj naj naredim. 1599 01:06:00,950 --> 01:06:03,960 In tako Jek samo bails in zapre s tem sporočilom o napaki. 1600 01:06:03,960 --> 01:06:05,850 Tako bomo lahko to popravimo na več načinov. 1601 01:06:05,850 --> 01:06:10,530 Mi lahko naučili kar Jek kocka je le za premikanje po 1602 01:06:10,530 --> 01:06:11,820 deklaracija. 1603 01:06:11,820 --> 01:06:14,640 Zato sem izreži in prilepi na vrhu je glavni. 1604 01:06:14,640 --> 01:06:17,770 Zdaj zavedaš, da samo zato, ker ni več glavna prvič, da je 1605 01:06:17,770 --> 01:06:19,150 še vedno izvaja privzeto. 1606 01:06:19,150 --> 01:06:20,060 Glavni je glavni. 1607 01:06:20,060 --> 01:06:21,022 To je privzeta funkcija ime. 1608 01:06:21,022 --> 01:06:22,930 Ni važno, če je v datoteki. 1609 01:06:22,930 --> 01:06:26,910 Ampak zdaj vsaj Jek je videl kocke, preden jo uporabite. 1610 01:06:26,910 --> 01:06:28,500 Torej, poglejmo, če Jek je srečnejši zdaj. 1611 01:06:28,500 --> 01:06:31,410 Naredite korak, pa si sestavi tokrat. 1612 01:06:31,410 --> 01:06:33,060 >> Naj teče prirastek. 1613 01:06:33,060 --> 01:06:34,810 In res se zdi, da se dela. 1614 01:06:34,810 --> 01:06:36,810 Sedaj lahko prišli do scenarijev, kjer na koncu 1615 01:06:36,810 --> 01:06:38,650 to ni izvedljivo, da bi dal vse funkcije 1616 01:06:38,650 --> 01:06:39,740 nad vse druge funkcije. 1617 01:06:39,740 --> 01:06:42,140 Boste dobili zaljubljen v to neskončno zanko, v resnici, 1618 01:06:42,140 --> 01:06:43,480 če ta tip hoče biti tu, vendar je to 1619 01:06:43,480 --> 01:06:44,390 človek mora biti tam. 1620 01:06:44,390 --> 01:06:45,830 Tako, da ne deluje vedno. 1621 01:06:45,830 --> 01:06:49,020 Torej, na srečo, C je bolj elegantno rešitev. 1622 01:06:49,020 --> 01:06:50,790 Bom dal to nazaj, kjer je bil, ker sem 1623 01:06:50,790 --> 01:06:53,390 Raje, kot Načeloma da je glavna vedno 1624 01:06:53,390 --> 01:06:55,550 Na vrhu, saj je samo lepo videti, kaj ta program 1625 01:06:55,550 --> 01:06:56,920 pa privzeto. 1626 01:06:56,920 --> 01:06:58,950 In kaj bom naredil tukaj se ugotovi, kako se imenuje 1627 01:06:58,950 --> 01:07:00,250 prototip. 1628 01:07:00,250 --> 01:07:05,730 Bom ponovno razglasila svojo funkcijo kocke, ki jih dobesedno 1629 01:07:05,730 --> 01:07:07,180 kopiranje in lepljenje. 1630 01:07:07,180 --> 01:07:08,290 Pravzaprav, to ni dobesedno. 1631 01:07:08,290 --> 01:07:13,060 Tako dobesedno kopiranje in lepljenje linijo 15 1632 01:07:13,060 --> 01:07:15,160 tam zgoraj vrstici 6. 1633 01:07:15,160 --> 01:07:17,010 Ni važno, kaj je ta postavka konča na. 1634 01:07:17,010 --> 01:07:18,380 To se zgodi, da je na vrsti 4. 1635 01:07:18,380 --> 01:07:19,950 Ampak to mora biti pred glavno. 1636 01:07:19,950 --> 01:07:21,150 Toda opazili razliko. 1637 01:07:21,150 --> 01:07:24,100 Line 4 konča s podpičjem, kar pomeni, hej, 1638 01:07:24,100 --> 01:07:27,510 Jek, sprejme mojo besedo za to, da obstaja funkcija 1639 01:07:27,510 --> 01:07:31,350 pozval kocko, ki bo int in vrne int. 1640 01:07:31,350 --> 01:07:33,020 Ampak ne bom povedal, kaj je še. 1641 01:07:33,020 --> 01:07:35,180 Samo vem, da obljubim, da vam povem na koncu. 1642 01:07:35,180 --> 01:07:38,490 In res, zdaj je v redu, da je to tam spodaj. 1643 01:07:38,490 --> 01:07:41,275 >> Torej, to je na splošno bolje, ker potem na vrhu 1644 01:07:41,275 --> 01:07:44,240 datoteka, si lahko samo Klepetanje off, hitro ognja, eno vrstico 1645 01:07:44,240 --> 01:07:46,470 vsak, kaj imena svojih funkcij so, kakšne so njihove 1646 01:07:46,470 --> 01:07:49,120 Vložki so, kakšni so njihovi rezultati so. 1647 01:07:49,120 --> 01:07:52,210 In da bi bilo bolj jasno, vhod na splošno pomeni navedbe ali 1648 01:07:52,210 --> 01:07:54,110 parameter, sinonima. 1649 01:07:54,110 --> 01:07:56,890 Izhodna pomeni vrnjeno vrednost, kaj počne 1650 01:07:56,890 --> 01:07:58,700 roko nazaj k meni. 1651 01:07:58,700 --> 01:08:03,420 Torej, v tem primeru v tej zadevi, je bila razglašena za kocko na vrhu, vendar 1652 01:08:03,420 --> 01:08:06,940 opredeljene, znane kot se izvajajo na dnu. 1653 01:08:06,940 --> 01:08:09,620 Torej, zdaj gremo nazaj in ponovno zagnati to. 1654 01:08:09,620 --> 01:08:13,430 Torej, zdaj pa grem naprej in ponovno zagnati, da, ponovno zaženite prirastek. 1655 01:08:13,430 --> 01:08:16,500 In zdaj se zdi, da se dela v redu. 1656 01:08:16,500 --> 01:08:19,450 Sedaj lahko gremo naprej in upoštevani ven nekaj podobnega 1657 01:08:19,450 --> 01:08:23,720 Pivo primer v tej četrti različici. 1658 01:08:23,720 --> 01:08:25,590 Torej, naj se pomaknite dol. 1659 01:08:25,590 --> 01:08:28,149 In opazil, da sem nekako vzel k srcu to lekcijo šele zdaj. 1660 01:08:28,149 --> 01:08:31,140 Dejstvo, da sem pel isto kitico in spet 1661 01:08:31,140 --> 01:08:34,130 Znova in znova isti refren vrstica v pesmi, čutil 1662 01:08:34,130 --> 01:08:36,439 Rad zakaj nisem dejavnik, ki v funkciji? 1663 01:08:36,439 --> 01:08:38,470 In res, bi to morala biti ena izmed motivov. 1664 01:08:38,470 --> 01:08:40,960 Poleg dejstva, da bi lahko kdo drug na svetu želijo 1665 01:08:40,960 --> 01:08:42,390 Za uporabo funkcije kocke - 1666 01:08:42,390 --> 01:08:44,560 to je dober razlog za faktor nekaj ven in napišite 1667 01:08:44,560 --> 01:08:45,720 lastni meri funkcija - 1668 01:08:45,720 --> 01:08:48,720 če je kos kode v svojem programu, ki omogoča preprosto 1669 01:08:48,720 --> 01:08:51,370 konceptualne občutek, da nekako želim, da ga 1670 01:08:51,370 --> 01:08:53,740 ime - tako kot v tem primeru, refren - 1671 01:08:53,740 --> 01:08:57,380 potem lahko podobno zapisal, da kot samostojne funkcije. 1672 01:08:57,380 --> 01:08:59,560 Če ne bi bilo treba napisati vse v glavnem, če je le 1673 01:08:59,560 --> 01:09:02,609 meni čistejše, da ga izločiti in ji dati ime. 1674 01:09:02,609 --> 01:09:05,529 >> Torej v tem primeru je, da vidite, da imam pripombo na vrhu 1675 01:09:05,529 --> 01:09:06,859 Ta funkcija, ki samo poje o 1676 01:09:06,859 --> 01:09:08,630 navedene številke steklenic. 1677 01:09:08,630 --> 01:09:10,609 Obvestilo sem, da mi ni treba klicati teh 1678 01:09:10,609 --> 01:09:12,520 stvari, vhod in izhod. 1679 01:09:12,520 --> 01:09:16,090 V bistvu je to čas, sem poklical moj vstopni b za steklenico. 1680 01:09:16,090 --> 01:09:19,960 In opazil sem, nična predlaga, kaj? 1681 01:09:19,960 --> 01:09:21,309 Ta zbor - 1682 01:09:21,309 --> 01:09:22,660 OBČINSTVO: ne vrne. 1683 01:09:22,660 --> 01:09:23,870 David J. Malan: Ne vrne vrednost. 1684 01:09:23,870 --> 01:09:26,800 In res, funkcije ne bi bilo treba vračati vrednosti. 1685 01:09:26,800 --> 01:09:28,060 Pravkar lahko nekaj naredimo. 1686 01:09:28,060 --> 01:09:30,270 Lahko imajo tako imenovane neželene učinke, ki so v ta 1687 01:09:30,270 --> 01:09:33,109 Primer je samo cel kup tiskanja na zaslonu. 1688 01:09:33,109 --> 01:09:36,580 Torej, opazil, da je ta oznaka tukaj, sem dobesedno le ukradla 1689 01:09:36,580 --> 01:09:37,680 Prejšnji primer. 1690 01:09:37,680 --> 01:09:39,930 Edina razlika je, namesto i uporabljajo kot moji 1691 01:09:39,930 --> 01:09:42,890 spremenljivka, jaz sem zdaj using b kot moj spremenljivko. 1692 01:09:42,890 --> 01:09:45,880 Torej imam b tukaj, imam b tukaj, imam b 1693 01:09:45,880 --> 01:09:47,109 minus 1 tukaj. 1694 01:09:47,109 --> 01:09:49,279 Toda koda je popolnoma enak. 1695 01:09:49,279 --> 01:09:52,529 Ampak samo da ti pokažem, kako se sedaj lahko to izkoristimo, pusti me 1696 01:09:52,529 --> 01:09:56,780 naprej in dejansko spremenili, da je to za zanke. 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 >> Tako sem ukraden, da iz naše prejšnjem primeru. 1699 01:10:06,230 --> 01:10:08,970 Prej, da je v skladu 37, da bi jaz začel 1700 01:10:08,970 --> 01:10:10,640 poje pesem to siten. 1701 01:10:10,640 --> 01:10:15,810 Toda namesto, grem zdaj poklical zboru i. 1702 01:10:15,810 --> 01:10:16,870 Done. 1703 01:10:16,870 --> 01:10:20,260 Torej, zdaj v vsakem ponovitvi te zanke, kličem te druge 1704 01:10:20,260 --> 01:10:22,220 funkcija, zbor, ki sem se je zgodilo, da napišete. 1705 01:10:22,220 --> 01:10:24,110 To ni napisal nekdo drug leti. 1706 01:10:24,110 --> 01:10:27,930 Toda zbor, medtem, uporablja printf za tiskanje 1707 01:10:27,930 --> 01:10:29,840 od teh štirih vrsticah. 1708 01:10:29,840 --> 01:10:32,720 Toda dejstvo, da kličem refren vedno znova 1709 01:10:32,720 --> 01:10:35,900 zanka pomeni, da bom dobil na koncu, 1710 01:10:35,900 --> 01:10:39,310 Točno ista pesem, kot sem doslej. 1711 01:10:39,310 --> 01:10:42,130 Torej na kratko, zdaj, če se ozrem na mojo kodo, čeprav 1712 01:10:42,130 --> 01:10:44,240 funkcionalno je to enako, ugotovimo, da je 1713 01:10:44,240 --> 01:10:46,020 že kaj bolj berljiv. 1714 01:10:46,020 --> 01:10:48,410 Ne vem, kako točno GetInt 1715 01:10:48,410 --> 01:10:49,250 se izvaja. 1716 01:10:49,250 --> 01:10:52,050 Odkrito povedano, ne vem, kako se izvaja zbor. 1717 01:10:52,050 --> 01:10:52,970 Ampak to sploh ni važno, da me. 1718 01:10:52,970 --> 01:10:55,620 Me ne zanima, ker se zdaj lahko nekako, kot človek, preberite 1719 01:10:55,620 --> 01:10:57,050 to od vrha do dna. 1720 01:10:57,050 --> 01:10:59,950 In ker se funkcije, imenovan v skladu s tem, kar so 1721 01:10:59,950 --> 01:11:02,910 storiti, moja koda je bolj berljiva. 1722 01:11:02,910 --> 01:11:05,190 In kot naši programi dobili veliko bolj zapleten - 1723 01:11:05,190 --> 01:11:07,220 do konca semestra, boste pisal na stotine vrstic 1724 01:11:07,220 --> 01:11:10,970 kode v jezikih, kot so PHP in JavaScript in podobno - 1725 01:11:10,970 --> 01:11:13,550 boste ugotovili, da je tako veliko lažje, kot da bi spremljali 1726 01:11:13,550 --> 01:11:14,080 kaj si naredil. 1727 01:11:14,080 --> 01:11:15,810 In ko začneš sodelovanje s prijatelji ali 1728 01:11:15,810 --> 01:11:19,010 partnerji ali sodelavci, boste lahko napisali še veliko več 1729 01:11:19,010 --> 01:11:22,910 Masivni programov je pričela uveljavljati te osnovne 1730 01:11:22,910 --> 01:11:23,990 gradniki. 1731 01:11:23,990 --> 01:11:25,550 >> Torej s tem je dejal, zakaj ne bi rekli, da je dan? 1732 01:11:25,550 --> 01:11:27,190 In se vidimo v sredo. 1733 01:11:27,190 --> 01:11:33,611 [APLAVZ]