1 00:00:08,119 --> 00:00:11,630 [Powered by Google Translate] DAVID J. Malan: Dobre, to je CS50, a to je 2 00:00:11,630 --> 00:00:14,790 Začiatok týždňa dva. 3 00:00:14,790 --> 00:00:16,300 Ďakujem. 4 00:00:16,300 --> 00:00:19,000 Začnime tu s telefónny hovor. 5 00:00:19,000 --> 00:00:30,005 Chystám sa vytočiť 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 Pre raketoplánu Boy, stlačte 1. 8 00:00:33,930 --> 00:00:36,660 Ak chcete začať znovu, stlačte tlačidlo 9. 9 00:00:36,660 --> 00:00:38,180 DAVID J. Malan: Tak povedal pre Shuttle Boy, stlačte 1. 10 00:00:38,180 --> 00:00:41,560 Takže budeme stlačte 1. 11 00:00:41,560 --> 00:00:43,230 CS50: Aký je váš pôvod? 12 00:00:43,230 --> 00:00:45,340 Pre quad, stlačte tlačidlo 1. 13 00:00:45,340 --> 00:00:47,080 Mather, stlačte tlačidlo 2. 14 00:00:47,080 --> 00:00:49,240 Boylston, stlačte tlačidlo 3. 15 00:00:49,240 --> 00:00:51,280 Lamont, stlačte 4. 16 00:00:51,280 --> 00:00:53,210 Mem Hall, stlačte tlačidlo 5. 17 00:00:53,210 --> 00:00:55,660 Ak chcete začať znovu, stlačte tlačidlo 0. 18 00:00:55,660 --> 00:00:59,590 DAVID J. Malan: Budeme stlačte 1 pre štvorkolky. 19 00:00:59,590 --> 00:01:03,610 CS50: Ďalšie shuttle listy tejto chvíli na popoludnie 01:10, a 20 00:01:03,610 --> 00:01:09,820 potom na 13:20, 13:30, 13: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: Tak to je CS50 hlas. 23 00:01:15,570 --> 00:01:18,030 A to je príklad druhov záverečných prác, pre 24 00:01:18,030 --> 00:01:19,500 inštancie, môžete odhryznúť smerom 25 00:01:19,500 --> 00:01:20,600 koniec semestra. 26 00:01:20,600 --> 00:01:23,840 Napríklad, že existuje shuttleboy.cs50.net - 27 00:01:23,840 --> 00:01:28,200 vlastne projekt, ktorý som prvýkrát písal po užití CS51 28 00:01:28,200 --> 00:01:29,740 späť, keď som bol vysokoškolák. 29 00:01:29,740 --> 00:01:32,250 A inšpirácia tu bolo vtedy, všetko, čo mal, bol 30 00:01:32,250 --> 00:01:34,320 vytlačené plány shuttle bus, a tam nebol žiadny 31 00:01:34,320 --> 00:01:35,970 Pojem hľadá veci on-line. 32 00:01:35,970 --> 00:01:38,730 A tak nejako som holubica v jednom víkende, preleje cez 33 00:01:38,730 --> 00:01:41,460 vytlačiť plán, a preniesť ju do počítačového programu. 34 00:01:41,460 --> 00:01:43,790 V tej dobe, počítačový program náhodou napísané 35 00:01:43,790 --> 00:01:47,110 v C. A skutočne bežal ho zadaním Shuttle Boy na 36 00:01:47,110 --> 00:01:48,600 bliká výzvu, ako sme to robili doteraz. 37 00:01:48,600 --> 00:01:50,450 Ale v priebehu rokov, je to vyvinulo do okamihu 38 00:01:50,450 --> 00:01:51,390 Správy topánok. 39 00:01:51,390 --> 00:01:53,970 Je to vyvinulo v poslednej dobe do tejto stránky, do 40 00:01:53,970 --> 00:01:57,720 SMS-nástroj, rovnako ako v tomto hlasové nástroj. 41 00:01:57,720 --> 00:02:00,170 A to je sa zmieniť o druhoch vecí, ktoré môžete 42 00:02:00,170 --> 00:02:02,380 urobiť pre seba tým, že semester konca. 43 00:02:02,380 --> 00:02:05,490 >> Napríklad, tam, verzia SMS kyvadlovej Boy deje 44 00:02:05,490 --> 00:02:06,510 fungovať takto. 45 00:02:06,510 --> 00:02:10,880 Ak sa na vašom mobilnom telefóne, odošlite textovú správu na 41411 a 46 00:02:10,880 --> 00:02:14,300 potom poslať zvláštne symbol sboy, pre Shuttle Boy, 47 00:02:14,300 --> 00:02:18,350 nasleduje A a B, kde A je pôvod a B je 48 00:02:18,350 --> 00:02:19,070 cieľ - 49 00:02:19,070 --> 00:02:21,030 Napríklad, Boylston Space Quad - 50 00:02:21,030 --> 00:02:23,330 čo by ste mali vrátiť v priebehu niekoľkých sekúnd je textový 51 00:02:23,330 --> 00:02:25,820 Správa z raketoplánu Boy povedať presne, kedy 52 00:02:25,820 --> 00:02:28,990 Nasledujúcich niekoľko raketoplány sú od tohto okamihu bude, že 53 00:02:28,990 --> 00:02:29,640 bod B. 54 00:02:29,640 --> 00:02:32,510 A to je všeobecnejší príklad toho, čo je známe ako 55 00:02:32,510 --> 00:02:33,920 pomocou API. 56 00:02:33,920 --> 00:02:36,930 >> Tak napríklad, to je tu práve shuttleboy.cs50.net, 57 00:02:36,930 --> 00:02:39,300 Skutočný web-based inkarnácií tohto. 58 00:02:39,300 --> 00:02:42,480 Ale údaje, ktoré podčiarkuje a ďalšie aplikácie, ktoré CS50 59 00:02:42,480 --> 00:02:45,560 vyvinula sú vystavené všetkým tu vo forme 60 00:02:45,560 --> 00:02:49,340 rozhrania API, rozhranie pre programovanie aplikácií. 61 00:02:49,340 --> 00:02:52,220 A to je len fantázia spôsob, ako povedať, že ľudia ako my na 62 00:02:52,220 --> 00:02:56,010 Internet a ďalšie strávili nejaký čas vytvorenia 63 00:02:56,010 --> 00:02:59,970 softvér, ktorý môžete použiť, aby sa chytiť dáta z nás a 64 00:02:59,970 --> 00:03:02,510 potom stavať svoje vlastné aplikácie na vrchole 65 00:03:02,510 --> 00:03:03,840 tohto dátového súboru. 66 00:03:03,840 --> 00:03:06,610 Tak napríklad, to Kyvadlový Boy API strana, ktorá sem 67 00:03:06,610 --> 00:03:09,390 sa stane, že v CS50 manuálu, v podstate dokumenty 68 00:03:09,390 --> 00:03:13,080 ako môžete ísť o žiadať CS50 servery pre dáta. 69 00:03:13,080 --> 00:03:16,240 Napríklad, ak ste oboznámení s CSV súbory, čiarka 70 00:03:16,240 --> 00:03:18,940 oddelené hodnoty, to sú len akési rýchle a špinavé 71 00:03:18,940 --> 00:03:20,310 Excel-ako súbory. 72 00:03:20,310 --> 00:03:23,110 Takže sa môžete opýtať Kyvadlová Boy všetkých dát na všetky 73 00:03:23,110 --> 00:03:25,090 domov a ich GPS súradnice, a budete mať 74 00:03:25,090 --> 00:03:27,300 späť, v podstate, spreadsheet, ako že 75 00:03:27,300 --> 00:03:30,820 potom môžete prečítať v programe vlastné a potom 76 00:03:30,820 --> 00:03:33,250 generovať výsledky, rovnako ako kyvadlová Boy sám 77 00:03:33,250 --> 00:03:34,160 sa stane, že robí. 78 00:03:34,160 --> 00:03:37,030 Pre tých známejšia, viac moderných dátových reprezentáciou 79 00:03:37,030 --> 00:03:39,420 patrí JSON, JavaScript Object notácie. 80 00:03:39,420 --> 00:03:40,620 Niečo sa vráti k vám k 81 00:03:40,620 --> 00:03:41,720 koniec semestra. 82 00:03:41,720 --> 00:03:45,440 >> Ale znova, to je len jeden z niekoľkých vlastného API CS50 je. 83 00:03:45,440 --> 00:03:48,320 A zaujímavá vec je teraz, v týchto dňoch, Facebook a 84 00:03:48,320 --> 00:03:51,110 Twitter a Google a skoro každý populárne webové stránky z 85 00:03:51,110 --> 00:03:54,130 tam má nejaký API, čo znamená, že ak budete čítať 86 00:03:54,130 --> 00:03:56,620 dokumentácie na svojich internetových stránkach, sa prihlásiť k 87 00:03:56,620 --> 00:03:59,980 účet, potom môžete začať písať softvér na vrchole 88 00:03:59,980 --> 00:04:03,680 bez ohľadu na nástroje, alebo údaje, ktoré spoločnosť poskytuje tam. 89 00:04:03,680 --> 00:04:06,210 A tak jeden z našich vlastných výučbových kolegami o pár rokov späť 90 00:04:06,210 --> 00:04:07,620 napísal verzii Mac tohto. 91 00:04:07,620 --> 00:04:10,990 Takže na odkaz s názvom Mac tu vľavo hore, môžete skutočne 92 00:04:10,990 --> 00:04:13,940 stiahnuť Mac OS widget, ktorý beží na vašom vlastnom počítači Mac, aby urobili 93 00:04:13,940 --> 00:04:15,040 rovnaké druhy vecí. 94 00:04:15,040 --> 00:04:17,970 Takže je to všetko o budovanie na vrchole dát, ako sú tieto. 95 00:04:17,970 --> 00:04:21,839 Ale o tom ku koncu semestra. 96 00:04:21,839 --> 00:04:25,780 >> Takže poďme ponoriť do naozaj rýchlo k chybe, len trochu dostať 97 00:04:25,780 --> 00:04:27,990 veci zahreje dnes, a spomeniem na niektoré 98 00:04:27,990 --> 00:04:29,660 veci, ktoré sme sa na posledný týždeň. 99 00:04:29,660 --> 00:04:32,840 Najmä, nechajte ma ísť napred a vytiahnuť, povedzme, 100 00:04:32,840 --> 00:04:34,080 tento príklad tu. 101 00:04:34,080 --> 00:04:37,500 Buggy1.c, to je k dispozícii na internetových stránkach kurzu keby ste 102 00:04:37,500 --> 00:04:40,250 Páči ho stiahnuť a hrabať okolo seba. 103 00:04:40,250 --> 00:04:43,520 Ale poďme priblížiť tu na tomto pomerne krátkom programe, a len 104 00:04:43,520 --> 00:04:46,550 super-rýchle rekapitulácia niektorých zo základných stavebných blokov, ktoré 105 00:04:46,550 --> 00:04:48,880 naozaj sa chystáte len začať užívať za samozrejmosť. 106 00:04:48,880 --> 00:04:51,860 >> Takže modré veci, v riadkoch 1 až 9, sú len 107 00:04:51,860 --> 00:04:53,670 softball otázky. 108 00:04:53,670 --> 00:04:54,590 Tak to sú len komentáre. 109 00:04:54,590 --> 00:04:56,230 Nemajú funkčný význam. 110 00:04:56,230 --> 00:04:58,460 Ale oni sú komentáre v tom zmysle, že to berie na vedomie, že 111 00:04:58,460 --> 00:05:02,010 Ja, človek, sa na seba tak, že v prednáške a po 112 00:05:02,010 --> 00:05:04,340 prednáška, môžem vlastne spomenúť, čo tento program 113 00:05:04,340 --> 00:05:07,120 robí, bez toho aby ste museli čítať cez to riadok po riadku a 114 00:05:07,120 --> 00:05:08,990 obnovovať históriu v mojej mysli. 115 00:05:08,990 --> 00:05:11,000 Navyše, keď som odovzdať tento program niekomu inému, ako je 116 00:05:11,000 --> 00:05:14,420 si, že je to oveľa jasnejšie pre vás, pretože pripomienok, ako je táto, 117 00:05:14,420 --> 00:05:16,680 čo program je skutočne robí, alebo aspoň to, čo 118 00:05:16,680 --> 00:05:18,210 Program to má robiť. 119 00:05:18,210 --> 00:05:20,760 Či je alebo nie je, že je to správne, je iná vec úplne. 120 00:05:20,760 --> 00:05:25,040 Teraz, v C, s multi-line pripomienky, pripomínajú, že on-line 121 00:05:25,040 --> 00:05:27,880 jeden tu je magický symbol, / *. 122 00:05:27,880 --> 00:05:30,380 To znamená, že tu je začiatok komentáre. 123 00:05:30,380 --> 00:05:34,560 A na ničom inom nezáleží, kým sa nedostanete na koniec zakončenie, 124 00:05:34,560 --> 00:05:36,700 ktorý je * /, naopak. 125 00:05:36,700 --> 00:05:39,120 Takže skutočnosť, že mám 80-nejaké podivné hviezdy tu od 126 00:05:39,120 --> 00:05:41,550 zľava doprava, je naozaj len estetický detail. 127 00:05:41,550 --> 00:05:43,370 To nemá funkčný význam. 128 00:05:43,370 --> 00:05:44,490 >> Teraz, ako o súlade 11? 129 00:05:44,490 --> 00:05:46,940 Čo to robiť v Laicky povedané? 130 00:05:51,560 --> 00:05:52,540 Čo je to? 131 00:05:52,540 --> 00:05:54,280 PUBLIKUM: Zahŕňa štandard. 132 00:05:54,280 --> 00:05:54,740 DAVID J. Malan: OK, dobre. 133 00:05:54,740 --> 00:05:57,500 Takže to zahŕňa stdio.h knižnicu. 134 00:05:57,500 --> 00:05:58,230 Takže čo to znamená? 135 00:05:58,230 --> 00:06:01,570 No, v tomto súbore, stdio.h, sú celá partia 136 00:06:01,570 --> 00:06:03,320 funkcia vyhlásenie - 137 00:06:03,320 --> 00:06:05,290 to znamená, že kód, ktorý niekto napísal. 138 00:06:05,290 --> 00:06:08,160 A dokonalý príklad funkcie, ktorá je deklarovaná v 139 00:06:08,160 --> 00:06:10,250 stdio.h je - 140 00:06:10,250 --> 00:06:11,980 ktoré obľúbenú teraz? 141 00:06:11,980 --> 00:06:14,300 Takže printf, jeden z najčastejších z nich použiť, určite 142 00:06:14,300 --> 00:06:15,840 čoskoro, od tej knižnice je tam. 143 00:06:15,840 --> 00:06:19,290 Keby som vylúčiť, že riadok kódu, zvonenie bude jačať 144 00:06:19,290 --> 00:06:22,550 na mňa niečo o použití nepriznanú symbol. 145 00:06:22,550 --> 00:06:24,930 Niečo nelegálnej je pravdepodobne kľúčové slovo, pretože 146 00:06:24,930 --> 00:06:27,770 sme neinformovali kompilátor, čo printf vyzerá 147 00:06:27,770 --> 00:06:29,230 Páči ak zahrnieme tento riadok. 148 00:06:29,230 --> 00:06:31,830 A ešte na Zemi, naozaj, čo to linka hovorí, je 149 00:06:31,830 --> 00:06:34,890 otvoriť tento súbor, stdio.h, všade tam, kde je to na výkon servera 150 00:06:34,890 --> 00:06:38,200 pevný disk, alebo spotrebič na pevný disk, a copy-paste je 151 00:06:38,200 --> 00:06:40,240 tu do môjho súboru, bez toho aby som 152 00:06:40,240 --> 00:06:41,730 museli urobiť ručne. 153 00:06:41,730 --> 00:06:44,420 >> Teraz, keď sme sa sem na hlavnej, onedlho začneme 154 00:06:44,420 --> 00:06:46,900 podpichovať seba, čo int a čo void je. 155 00:06:46,900 --> 00:06:48,430 Ale teraz, poďme sa pozrieť na tri riadky 156 00:06:48,430 --> 00:06:50,350 v rámci 15 až 17. 157 00:06:50,350 --> 00:06:52,250 Tu som tvrdiť, as buggy. 158 00:06:52,250 --> 00:06:54,900 Linka 7 vo svojich pripomienkach hovorí: "Ak tlač 10 159 00:06:54,900 --> 00:06:59,410 hviezdičky, ale nie je. "Prečo to netlačí, v skutočnosti, 160 00:06:59,410 --> 00:07:01,097 10 také hviezdy? 161 00:07:01,097 --> 00:07:02,347 PUBLIKUM: [nepočuteľnú]. 162 00:07:05,210 --> 00:07:05,800 DAVID J. Malan: Presne tak. 163 00:07:05,800 --> 00:07:08,720 Takže si, že začíname počítať od 0. 164 00:07:08,720 --> 00:07:10,780 A to je vlastne konvencie v programovaní a 165 00:07:10,780 --> 00:07:13,230 počítačovej vedy všeobecne, začína počítať 166 00:07:13,230 --> 00:07:14,610 od 0 miesto 1. 167 00:07:14,610 --> 00:07:16,690 A to naozaj len vychádza zo skutočnosti, že, pre 168 00:07:16,690 --> 00:07:18,940 inštancie, keď sme mali osem ľudí na javisku, kedy 169 00:07:18,940 --> 00:07:20,680 nikto zdvihnutím ruky, boli 170 00:07:20,680 --> 00:07:22,340 všetky efektívne nuly. 171 00:07:22,340 --> 00:07:24,260 A tak je to len trochu počítačovej dohovoru tak, 172 00:07:24,260 --> 00:07:26,030 preto, aby začnite počítať od 0. 173 00:07:26,030 --> 00:07:29,130 Ak je to najnižšie číslo, môžete reprezentovať v binárnom formáte. 174 00:07:29,130 --> 00:07:32,270 >> Tak tu sme začali inicializácia aj na 0. 175 00:07:32,270 --> 00:07:34,230 Sme nastavili aj rovná 0. 176 00:07:34,230 --> 00:07:37,780 Ale potom som urobil túto chybu tu, hovorí i je menšie ako alebo 177 00:07:37,780 --> 00:07:38,820 rovná 10. 178 00:07:38,820 --> 00:07:41,700 Ale ak si myslíte, že napriek keby som začal na 0 a potom idem 179 00:07:41,700 --> 00:07:46,410 až 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ja som vlastne bude 180 00:07:46,410 --> 00:07:49,980 vytlačiť 11 hviezd na obrazovke, pretože som išla hore 181 00:07:49,980 --> 00:07:52,410 na a rovná 10. 182 00:07:52,410 --> 00:07:55,090 Tak ľahko opraviť tu potom je to, čo? 183 00:07:55,090 --> 00:07:56,070 PUBLIKUM: [nepočuteľnú]. 184 00:07:56,070 --> 00:07:57,350 DAVID J. Malan: Stačí zmeniť to na menej než. 185 00:07:57,350 --> 00:07:59,700 Ak naozaj chcete, si to mohol urobiť. 186 00:07:59,700 --> 00:08:01,370 Ale všeobecne, je, že odsudzoval. 187 00:08:01,370 --> 00:08:04,020 A tak začína počítať od 0, je proste niečo, čo by ste mali 188 00:08:04,020 --> 00:08:05,510 zvyčajne zvyknúť. 189 00:08:05,510 --> 00:08:07,810 A teraz, čo o celej konštrukcie vo sama o sebe? 190 00:08:07,810 --> 00:08:10,640 Tento riadok 15 demarks cyklu for. 191 00:08:10,640 --> 00:08:12,510 Takže, nie je funkcia. 192 00:08:12,510 --> 00:08:13,640 Je to len konštatovanie. 193 00:08:13,640 --> 00:08:16,180 Je to opakovanie konštrukt, ako sme videli v Scratch. 194 00:08:16,180 --> 00:08:17,600 A to má tri časti. 195 00:08:17,600 --> 00:08:19,740 Všimnite si, že tam je prvá časť na 196 00:08:19,740 --> 00:08:21,350 v ľavej časti bodkočiarkou. 197 00:08:21,350 --> 00:08:24,200 Tam je stredná časť medzi dvoma bodkočiarkami. 198 00:08:24,200 --> 00:08:26,250 A potom je tu pravá časť vpravo 199 00:08:26,250 --> 00:08:27,640 druhej bodkočiarkou. 200 00:08:27,640 --> 00:08:31,822 Teraz, prvý z nich má čo? 201 00:08:31,822 --> 00:08:33,679 PUBLIKUM: [nepočuteľnú]. 202 00:08:33,679 --> 00:08:34,270 DAVID J. Malan: Späť tam? 203 00:08:34,270 --> 00:08:34,816 Jo? 204 00:08:34,816 --> 00:08:35,980 Divákov: Inicializácia. 205 00:08:35,980 --> 00:08:36,850 >> DAVID J. Malan: Inicializácia. 206 00:08:36,850 --> 00:08:37,840 Takže čo to znamená? 207 00:08:37,840 --> 00:08:40,690 Sme deklarovali premennú s názvom i 208 00:08:40,690 --> 00:08:43,840 Je typu int, pretože som zadaný int i 209 00:08:43,840 --> 00:08:46,470 A ja inicializácii aj na hodnotu 0. 210 00:08:46,470 --> 00:08:47,730 Tak čo to vlastne hovorí? 211 00:08:47,730 --> 00:08:50,680 Je to skutočne hovorí k počítaču hej, daj mi dosť 212 00:08:50,680 --> 00:08:53,660 pamäte, dostatok pamäte RAM, aby sa zmestili číslo, a potom dal 213 00:08:53,660 --> 00:08:56,130 číslo 0 v tomto bloku pamäte RAM. 214 00:08:56,130 --> 00:08:59,100 A ako stranou, aká veľká je int typicky aspoň vnútri 215 00:08:59,100 --> 00:09:00,280 spotrebiče? 216 00:09:00,280 --> 00:09:01,000 Divákov: 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 Takže to znamená, že mi 32 bitov, inak známy ako 4 bajty, 219 00:09:04,890 --> 00:09:07,250 a dal hodnotu 0 v ňom, čo je celkom jednoduché, pretože 220 00:09:07,250 --> 00:09:09,110 Znamená to len, nastaviť všetky bity na 0. 221 00:09:09,110 --> 00:09:11,690 >> Takže teraz, druhá časť je tu podmienka. 222 00:09:11,690 --> 00:09:14,590 A podmienka je, ako už názov napovedá, je to, čo je kontrolovaná 223 00:09:14,590 --> 00:09:18,100 znova a znova a znova o tom, či je to pravda, alebo nie. 224 00:09:18,100 --> 00:09:21,410 Takže je to len hovorí vykonajte nasledujúce riadky kódu - 225 00:09:21,410 --> 00:09:23,950 konkrétne linka 16, pretože to je jediný členité jeden 226 00:09:23,950 --> 00:09:24,820 pod - 227 00:09:24,820 --> 00:09:26,980 tak dlho, ako som ich menší ako 10. 228 00:09:26,980 --> 00:09:30,520 A po každej iterácii prostredníctvom tohto vedenia, vykonajte 229 00:09:30,520 --> 00:09:33,840 inkrementace, ktorý je v tomto prípade aj + +. 230 00:09:33,840 --> 00:09:35,580 Teraz, nemá byť i + +. 231 00:09:35,580 --> 00:09:37,610 Mohlo by to byť aj -. 232 00:09:37,610 --> 00:09:39,860 Ale keď som to urobil, čo sa správanie deje 233 00:09:39,860 --> 00:09:41,370 byť z tohto programu? 234 00:09:41,370 --> 00:09:42,290 PUBLIKUM: to bude nekonečná slučka. 235 00:09:42,290 --> 00:09:44,060 DAVID J. Malan: to bude nejaký nekonečnej slučke, 236 00:09:44,060 --> 00:09:47,720 ak budeme mať šťastie po negatívnom 2000000000 alebo tak. 237 00:09:47,720 --> 00:09:51,320 Možno, že veci sa zalomia okolo, len podľa povahy konečnom 238 00:09:51,320 --> 00:09:53,930 počet bitov, ktoré sme boli pridelené pre int. 239 00:09:53,930 --> 00:09:56,270 Ale je to určite bude prechádzať ďaleko viac než 10 a 240 00:09:56,270 --> 00:09:58,630 určite viac ako 11 krát tu. 241 00:09:58,630 --> 00:10:02,240 >> A teraz, rovnako ako stranou, si uvedomiť, že aj + + a aj - 242 00:10:02,240 --> 00:10:04,420 sú naozaj len syntaktickú cukor. 243 00:10:04,420 --> 00:10:07,210 Je to len skrátený zápis pre to, čo je trochu viac 244 00:10:07,210 --> 00:10:08,720 výslovne napísané takto: 245 00:10:08,720 --> 00:10:11,200 i = i + 1. 246 00:10:11,200 --> 00:10:13,460 , Ktorá je identická so i + +. 247 00:10:13,460 --> 00:10:15,860 Je to proste vyzerá krajšie povedať i + +. 248 00:10:15,860 --> 00:10:17,490 Je to stručnejší, zrozumiteľnejšie. 249 00:10:17,490 --> 00:10:19,030 A tak väčšina ľudí, že miesto. 250 00:10:19,030 --> 00:10:21,840 To je však totožný funkčne na 251 00:10:21,840 --> 00:10:22,900 to, čo sme práve videli. 252 00:10:22,900 --> 00:10:27,770 Takže v skratke, rýchla oprava je tu len povedať iterácii aj 253 00:10:27,770 --> 00:10:30,690 od 0 po celú cestu až na menej ako 10. 254 00:10:30,690 --> 00:10:32,700 A potom budeme skutočne dostať 10 hviezd. 255 00:10:32,700 --> 00:10:33,430 >> Tak poďme to skúsiť. 256 00:10:33,430 --> 00:10:35,310 Dovoľte mi, aby som otvoriť terminál v dolnej časti. 257 00:10:35,310 --> 00:10:37,420 Nechaj ma ísť do adresára, ktorý je in 258 00:10:37,420 --> 00:10:40,030 A budem kompilovať ručne pomocou Clang pre teraz. 259 00:10:40,030 --> 00:10:44,880 A ja idem zostaviť to ako buggy1.c, Enter. 260 00:10:44,880 --> 00:10:50,280 A teraz buggy1, prečo je tam žiadny takýto súbor alebo adresár 261 00:10:50,280 --> 00:10:52,026 volal buggy1? 262 00:10:52,026 --> 00:10:53,850 PUBLIKUM: [nepočuteľnú]. 263 00:10:53,850 --> 00:10:54,240 DAVID J. Malan: Jo. 264 00:10:54,240 --> 00:10:55,420 Takže je to vlastne hovorí a.out. 265 00:10:55,420 --> 00:10:57,480 Takže spomínam Ak stačí spustiť rinčať, kde zvonenie je 266 00:10:57,480 --> 00:11:00,420 kompilátor, a nemusíte zadať názov, ktorý chcete 267 00:11:00,420 --> 00:11:03,550 dať do svojho programu, to bude predvolený a.out. 268 00:11:03,550 --> 00:11:05,030 Takže naozaj, keď to ls - 269 00:11:05,030 --> 00:11:05,510 oops. 270 00:11:05,510 --> 00:11:07,680 A ja didn'ti - na čierne a biele problém niektoré 271 00:11:07,680 --> 00:11:08,840 ste museli čeliť bola stanovená. 272 00:11:08,840 --> 00:11:10,670 Ale dovoľte mi, aby som to. 273 00:11:10,670 --> 00:11:14,570 Tam máme a.out na ľavej strane tam. 274 00:11:14,570 --> 00:11:17,360 Takže musíme bežať a.out miesto buggy1. 275 00:11:17,360 --> 00:11:19,140 >> Tak nechaj ma ísť ďalej a robiť to. 276 00:11:19,140 --> 00:11:22,840 . / A.out, Enter. 277 00:11:22,840 --> 00:11:26,160 A ja som zrejme nemal robiť čo? 278 00:11:26,160 --> 00:11:26,620 Divákov: Uložiť. 279 00:11:26,620 --> 00:11:27,390 DAVID J. Malan: Zachráňte môjho súbor. 280 00:11:27,390 --> 00:11:31,520 Tak, že je ľahko vyriešiť tým, že udrie Control S, alebo ísť do 281 00:11:31,520 --> 00:11:33,450 Súbor, Uložiť, rovnako ako vo väčšine programov. 282 00:11:33,450 --> 00:11:36,360 Nechaj ma ísť sem dole, je vymazať obrazovku, spustite ho znova. 283 00:11:36,360 --> 00:11:37,960 A je tu ešte chyba. 284 00:11:37,960 --> 00:11:41,618 Takže to, čo sa deje - 285 00:11:41,618 --> 00:11:42,980 PUBLIKUM: Ty si skompilovať. 286 00:11:42,980 --> 00:11:44,040 DAVID J. Malan: Ah, dobre. 287 00:11:44,040 --> 00:11:45,010 Nechcel som skompilovať. 288 00:11:45,010 --> 00:11:47,250 Rovnako ako idiot, pozerám sa na kód aby videli, čo sa deje. 289 00:11:47,250 --> 00:11:51,275 Takže zvonenie buggy1.c, teraz a.out. 290 00:11:51,275 --> 00:11:52,640 A uf, zachránil. 291 00:11:52,640 --> 00:11:55,090 >> Takže to vyzerá trochu škaredá, pretože neexistuje žiadny nový riadok 292 00:11:55,090 --> 00:11:55,970 kdekoľvek v programe. 293 00:11:55,970 --> 00:11:57,390 Ale zase, že je to len estetický detail. 294 00:11:57,390 --> 00:11:59,430 A aspoň pokiaľ budeme počítať tie, mali by sme 295 00:11:59,430 --> 00:12:01,160 teraz vidí 10 také hviezdy. 296 00:12:01,160 --> 00:12:03,260 No, čo tento druhý warm-up napríklad? 297 00:12:03,260 --> 00:12:07,750 Takže v buggy2, tvrdím, že táto verzia tiež budú vytlačené 298 00:12:07,750 --> 00:12:10,110 10 hviezd, jeden na riadok. 299 00:12:10,110 --> 00:12:12,340 Takže tentoraz, mám znak nového riadku, len aby sa 300 00:12:12,340 --> 00:12:13,520 veci trochu krajší. 301 00:12:13,520 --> 00:12:15,410 Ale namiesto toho, čo som si to. 302 00:12:15,410 --> 00:12:19,590 Tak ma nechaj robiť rinčať buggy2.c, Enter. 303 00:12:19,590 --> 00:12:21,790 Teraz je to zase len a.out. 304 00:12:21,790 --> 00:12:23,130 Enter. 305 00:12:23,130 --> 00:12:26,900 Vidím len jednu novú linku, len posledný nový riadok 306 00:12:26,900 --> 00:12:29,370 pohybuje moja výzva na ďalší riadok. 307 00:12:29,370 --> 00:12:32,660 A napriek tomu jasne som tlač *, potom nový riadok, 308 00:12:32,660 --> 00:12:33,990 *, Potom nový riadok. 309 00:12:33,990 --> 00:12:35,490 Ale čo je to bug tu? 310 00:12:35,490 --> 00:12:35,974 Jo? 311 00:12:35,974 --> 00:12:37,224 PUBLIKUM: [nepočuteľnú]. 312 00:12:39,850 --> 00:12:40,470 >> DAVID J. Malan: Presne tak. 313 00:12:40,470 --> 00:12:44,110 Takže na rozdiel od niektorých jazykoch, ako je Python, kde odsadenie 314 00:12:44,110 --> 00:12:46,030 skutočnosti má funkčný význam, v 315 00:12:46,030 --> 00:12:47,150 jazyk C - 316 00:12:47,150 --> 00:12:49,140 ako uvidíme, PHP, JavaScript - 317 00:12:49,140 --> 00:12:51,940 odsadenie je naozaj len pre prospech ľudskému. 318 00:12:51,940 --> 00:12:55,690 Takže skutočnosť, že som odsadený riadok 16 a 17 vyzerá skvele, 319 00:12:55,690 --> 00:12:57,530 ale nemá funkčné význam tu. 320 00:12:57,530 --> 00:13:00,700 Ak chcem oba riadky spustiť ako súčasť pre 321 00:13:00,700 --> 00:13:05,140 slučka, potom musím uviesť ich do zložených zátvoriek tým, že robí to. 322 00:13:05,140 --> 00:13:08,540 Môžete znížiť tento roh a vynechať zložené zátvorky ak to 323 00:13:08,540 --> 00:13:10,036 Čo je prípad? 324 00:13:10,036 --> 00:13:10,410 PUBLIKUM: Len jeden riadok. 325 00:13:10,410 --> 00:13:11,130 DAVID J. Malan: Len jeden riadok. 326 00:13:11,130 --> 00:13:15,280 Takže to je tak nejako pekné syntax detailu tak, aby 327 00:13:15,280 --> 00:13:17,900 nemusíte strácať čas písať tri riadky, z ktorých dva sú 328 00:13:17,900 --> 00:13:20,040 Zložené zátvorky, stačí napísať jediný riadok kódu. 329 00:13:20,040 --> 00:13:21,650 Ale ak máte dva alebo viac riadkov, sme 330 00:13:21,650 --> 00:13:22,860 naozaj potrebné urobiť. 331 00:13:22,860 --> 00:13:24,210 >> Tak teraz sa mi zachrániť to. 332 00:13:24,210 --> 00:13:27,140 Nechaj ma ísť dopredu a znovu spustiť zvonenie. 333 00:13:27,140 --> 00:13:31,375 Potom mi dovoľte spustite a.out, a teraz som si im jedno na riadok. 334 00:13:31,375 --> 00:13:33,670 Teraz, a.out je opäť trochu hlúpe meno pre program. 335 00:13:33,670 --> 00:13:37,500 Ako spoznám, zvonenie skutočne mi názov súboru 336 00:13:37,500 --> 00:13:39,820 to je viac užívateľsky prívetivé, ako buggy2 sám? 337 00:13:43,200 --> 00:13:44,466 Trochu jasnejšie? 338 00:13:44,466 --> 00:13:45,220 PUBLIKUM: [nepočuteľnú]. 339 00:13:45,220 --> 00:13:47,810 DAVID J. Malan: OK, tak som sa mohol skutočne čerpať veľmi 340 00:13:47,810 --> 00:13:51,000 užívateľsky príjemný skratka a len písať, aby buggy2. 341 00:13:51,000 --> 00:13:53,840 Nechcem špecifikovať. C v tomto prípade, a stlačte klávesu Enter. 342 00:13:53,840 --> 00:13:58,530 A čo si robí, je to prekladá buggy2.c pre mňa 343 00:13:58,530 --> 00:14:00,260 žiada rinčať to urobiť. 344 00:14:00,260 --> 00:14:05,100 Konkrétne, volá rinčať, beží rinčať pomocou oveľa viac 345 00:14:05,100 --> 00:14:08,540 argumenty príkazového riadku alebo prepínače, než som skutočne potrebujú. 346 00:14:08,540 --> 00:14:11,270 V dobe, budeme vracať k tomu, čo všetci týchto rôznych 347 00:14:11,270 --> 00:14:13,810 mystické dvojdomými výrazy rozumie. 348 00:14:13,810 --> 00:14:16,910 Ale teraz, to je len uloženie mi problémy s 349 00:14:16,910 --> 00:14:19,600 nutnosti pamätať si a museli písať si všetky tie 350 00:14:19,600 --> 00:14:21,150 rôzne dvojdomými výrazy. 351 00:14:21,150 --> 00:14:23,240 A naopak to nakoniec je 352 00:14:23,240 --> 00:14:25,900 že teraz mám buggy2. 353 00:14:25,900 --> 00:14:27,480 Ak chcem urobiť ručne, keď som 354 00:14:27,480 --> 00:14:28,775 Namiesto toho môžete urobiť - 355 00:14:28,775 --> 00:14:34,110 rinčanie-o buggy2 a potom buggy2.c. 356 00:14:34,110 --> 00:14:37,980 A to bude podobne mi súbor s názvom buggy2. 357 00:14:37,980 --> 00:14:39,710 >> Takže v skratke, zvonenie je kompilátor. 358 00:14:39,710 --> 00:14:43,080 Urobte je len užívateľsky príjemný nástroj, ktorý budeme používať viac 359 00:14:43,080 --> 00:14:44,420 a viac, pretože to jednoducho začína 360 00:14:44,420 --> 00:14:47,330 zjednodušiť veci pre nás. 361 00:14:47,330 --> 00:14:49,430 A vraciame 0, konečne. 362 00:14:49,430 --> 00:14:51,890 Pre túto chvíľu, len preto, že, ale začneme srandu, že časť 363 00:14:51,890 --> 00:14:52,930 dnes a v stredu. 364 00:14:52,930 --> 00:14:55,560 Akékoľvek otázky týkajúce sa niečo z toho? 365 00:14:55,560 --> 00:14:56,450 Jo? 366 00:14:56,450 --> 00:14:58,234 PUBLIKUM: [Nepočuteľné] 367 00:14:58,234 --> 00:15:00,020 ls v úvodzovkách tam? 368 00:15:00,020 --> 00:15:01,710 DAVID J. Malan: OK. 369 00:15:01,710 --> 00:15:05,880 Keď som napísal ls v úvodzovkách, ktorý bol mi robia nejaké kúzlo 370 00:15:05,880 --> 00:15:07,160 v zákulisí opraviť chybu. 371 00:15:07,160 --> 00:15:09,370 Zabudol som, ako sme hovoril mnohí z vás na 372 00:15:09,370 --> 00:15:11,600 diskusné fóra, zaujímavosti - 373 00:15:11,600 --> 00:15:17,220 urobíme to teraz - sudo yum-y aktualizácia appliance50. 374 00:15:17,220 --> 00:15:19,790 Jejda, že to je napísaná správne. 375 00:15:19,790 --> 00:15:23,240 Takže prístroj je ako operačný systém. 376 00:15:23,240 --> 00:15:25,650 Je to beh tohto operačného systému s názvom Fedora. 377 00:15:25,650 --> 00:15:27,450 A teraz, pretože moje pomalé pripojenie k internetu, mám 378 00:15:27,450 --> 00:15:28,260 Naozaj hosed to. 379 00:15:28,260 --> 00:15:31,620 Takže beží sudo yum aktualizácie, ako sme ti robiť v 380 00:15:31,620 --> 00:15:34,080 Problém set, je v podstate rád beží automatických aktualizácií 381 00:15:34,080 --> 00:15:35,420 v Mac OS alebo Windows. 382 00:15:35,420 --> 00:15:37,280 A dôvod pre spustenie to na samom začiatku 383 00:15:37,280 --> 00:15:39,640 Problém set preto, že keď sme vytvorili prístroj, I 384 00:15:39,640 --> 00:15:42,480 zpackal, a náhodou som robil všetky programy vyzerajú 385 00:15:42,480 --> 00:15:45,210 čierna na čiernej obrazovke, čo je dôvod, prečo nie ste vidieť je 386 00:15:45,210 --> 00:15:45,860 V predvolenom nastavení. 387 00:15:45,860 --> 00:15:48,020 Ale najnovšie verzie spotrebiče rieši to. 388 00:15:48,020 --> 00:15:50,500 A ja zariadim, že počas prestávky raz som internet 389 00:15:50,500 --> 00:15:51,280 pripojenie. 390 00:15:51,280 --> 00:15:54,630 >> Takže citácie len skrýva svoju chybu, veľmi diskrétne, 391 00:15:54,630 --> 00:15:55,730 zrejme. 392 00:15:55,730 --> 00:15:56,980 Ďalšie otázky? 393 00:15:59,750 --> 00:16:00,668 Áno? 394 00:16:00,668 --> 00:16:02,012 PUBLIKUM: Kde sa, aby prišiel z? 395 00:16:02,012 --> 00:16:03,810 [Nepočuteľné] 396 00:16:03,810 --> 00:16:04,280 DAVID J. Malan: Dobrá otázka. 397 00:16:04,280 --> 00:16:05,460 Ak predsa robí pochádza? 398 00:16:05,460 --> 00:16:09,390 Je Linux program, ktorý je už mnoho rokov, kým 399 00:16:09,390 --> 00:16:10,570 pred CS50. 400 00:16:10,570 --> 00:16:12,930 A je dodávaný s operačným systémom, ako je Fedora. 401 00:16:12,930 --> 00:16:14,830 Nepochádza z CS50 knižnice. 402 00:16:14,830 --> 00:16:17,560 V skutočnosti, len veci, ktoré prichádzajú z CS50 knižnice 403 00:16:17,560 --> 00:16:20,470 tak ďaleko, že sme videli, sú GetString, GetInt, všetci 404 00:16:20,470 --> 00:16:25,550 ty si funkcie, a slovo reťazec, a na niektoré 405 00:16:25,550 --> 00:16:26,575 rozsahu, slovo bool. 406 00:16:26,575 --> 00:16:29,180 Ale budeme dráždiť, že od seba, keď sme do toho ponoriť do CS50 407 00:16:29,180 --> 00:16:30,580 Prístroj sám o sebe. 408 00:16:30,580 --> 00:16:32,820 >> Takže áno, ešte jedna otázka tu. 409 00:16:32,820 --> 00:16:36,636 PUBLIKUM: Keď si povedal, make a potom buggy, ako robí 410 00:16:36,636 --> 00:16:39,980 Počítač vedieť [nepočuteľné]? 411 00:16:39,980 --> 00:16:40,520 DAVID J. Malan: Dobrá otázka. 412 00:16:40,520 --> 00:16:43,830 Takže keď stačí spustiť, aby buggy1 alebo sa buggy2, ako 413 00:16:43,830 --> 00:16:45,220 to, aby vedieť? 414 00:16:45,220 --> 00:16:49,900 Takže v predvolenom nastavení, ak zadáte, aby buggy1, aby vzhľad pre 415 00:16:49,900 --> 00:16:52,330 súbor s názvom buggy1.c. 416 00:16:52,330 --> 00:16:55,570 A potom to vykoná príslušné rinčať príkazy, 417 00:16:55,570 --> 00:17:00,380 čím prepíše predvolený výstupný súbor s názvom a.out. 418 00:17:00,380 --> 00:17:03,670 V skutočnosti, keď sa pozrieme na to, čo robiť, čo - 419 00:17:03,670 --> 00:17:04,839 poďme ukončenie tohto. 420 00:17:04,839 --> 00:17:09,530 Ak sa pozrieme na to, čo robiť so skutočne robí, aby buggy2, 421 00:17:09,530 --> 00:17:10,470 je to už aktuálne. 422 00:17:10,470 --> 00:17:13,020 Dovoľte mi teda odstrániť rm príkazu, 423 00:17:13,020 --> 00:17:14,319 Program som písal predtým. 424 00:17:14,319 --> 00:17:17,319 Písanie Y-E-S potvrdiť, že chcem odstrániť. 425 00:17:17,319 --> 00:17:20,480 Keby som teraz urobiť, aby si všimnite, že v tejto veľmi dlhej rade, 426 00:17:20,480 --> 00:17:22,980 tam je to posledná vec, ktorú tu,-o buggy2. 427 00:17:22,980 --> 00:17:26,959 Všetky značka robí sa okolo tohto argumentu, tak hovoriť, 428 00:17:26,959 --> 00:17:29,665 Rinčať, takže nemám písať sám. 429 00:17:29,665 --> 00:17:32,660 >> Dobre, tak rýchlo pár administratívnych 430 00:17:32,660 --> 00:17:33,470 oznámenia. 431 00:17:33,470 --> 00:17:36,940 Takže pre oblasti, ktoré oficiálne začalo tento rok 432 00:17:36,940 --> 00:17:38,970 Nedeľa, budete vždy chcieť, aby, ak 433 00:17:38,970 --> 00:17:40,120 máte jednu, notebook. 434 00:17:40,120 --> 00:17:42,570 Ak nemáte notebook, sa dostať von mi 435 00:17:42,570 --> 00:17:43,580 klesá mi e-mail. 436 00:17:43,580 --> 00:17:44,810 A budeme vymyslieť postup. 437 00:17:44,810 --> 00:17:47,100 Čo všeobecne nájdete v sekcii je, že sú súčasťou 438 00:17:47,100 --> 00:17:48,770 koncepčné, časť hands-on. 439 00:17:48,770 --> 00:17:52,190 Budeme konkrétne využiť časť otázok, časť 440 00:17:52,190 --> 00:17:54,110 Tento týždeň je problém set, prejsť niektoré z 441 00:17:54,110 --> 00:17:55,820 koncepčný materiál z prednášky. 442 00:17:55,820 --> 00:17:57,480 A to je všetko v aktuálnom probléme sady. 443 00:17:57,480 --> 00:18:00,010 A budeme tiež ponoriť sa do niektorých hands-o činnosti, niekedy 444 00:18:00,010 --> 00:18:02,190 ktoré budú musieť byť predložené, niekedy 445 00:18:02,190 --> 00:18:02,830 ktorá nebude. 446 00:18:02,830 --> 00:18:04,630 Napríklad, tento prvý týždeň, že to znamenalo, rovnako ako 447 00:18:04,630 --> 00:18:05,780 warm-up cvičenie. 448 00:18:05,780 --> 00:18:07,800 A zistíte, že tieto problémy sú naozaj len to. 449 00:18:07,800 --> 00:18:10,220 Sú znamenalo veľmi malý, ale nie nevyhnutne 450 00:18:10,220 --> 00:18:13,100 triviálne programy napísať, ktoré nie sú nevyhnutne 451 00:18:13,100 --> 00:18:16,230 vzrušujúce samy o sebe, ale sú tu dobré možnosti pre 452 00:18:16,230 --> 00:18:19,620 cvičiť so syntaxou, s novými funkciami, v pohodlí 453 00:18:19,620 --> 00:18:21,900 sekcie, kde budete mať niekoľko svojich spolužiakov prezentovať ako 454 00:18:21,900 --> 00:18:22,870 rovnako ako vaše TF. 455 00:18:22,870 --> 00:18:26,210 >> A čo budeme robiť v priebehu času, je použiť nástroj nazvaný CS50 priestory, 456 00:18:26,210 --> 00:18:28,940 , Kedy miesto len pomocou CS50 Appliance, budete si musieť vybrať 457 00:18:28,940 --> 00:18:32,450 namiesto toho ísť na webovú stránku v prehliadači, kde si budete môcť 458 00:18:32,450 --> 00:18:35,610 písať kód v okne prehliadača pri sekcii. 459 00:18:35,610 --> 00:18:38,240 A potom, keď sa prihlásite, môžete vaše vyučovanie kolega potom zobrazí 460 00:18:38,240 --> 00:18:40,980 čo to je píšete na obrazovke vo vašom prehliadači 461 00:18:40,980 --> 00:18:43,930 Okno sa na prednej časti triedy, či už anonymne alebo 462 00:18:43,930 --> 00:18:47,250 verejne, tak, že on alebo ona môže potom prejsť s 463 00:18:47,250 --> 00:18:50,080 tvoji spolužiaci, čo si urobil dobre, čo si neurobil dobre. 464 00:18:50,080 --> 00:18:52,750 A opäť, buďte si istý, to všetko môže byť pekne anonymný. 465 00:18:52,750 --> 00:18:54,410 Ale to bude pekná príležitosť pre oveľa viac 466 00:18:54,410 --> 00:18:56,810 interaktivita, než niečo ako prednášky umožňuje. 467 00:18:56,810 --> 00:18:58,910 >> Medzitým, budeme mať tieto veci nazvaný výborný 468 00:18:58,910 --> 00:19:01,610 profily, ktoré sú voliteľné, ale sú otvorené pre každého v 469 00:19:01,610 --> 00:19:04,030 trieda, takže si môžete urobiť viac kolektívne pre 470 00:19:04,030 --> 00:19:05,190 Problém nastaviť jednu. 471 00:19:05,190 --> 00:19:06,010 Tu je plán. 472 00:19:06,010 --> 00:19:08,870 To je tiež zverejnený na domovskej stránke cs50.net. 473 00:19:08,870 --> 00:19:10,850 Všimnite si, že tam bude hacker špecifické 474 00:19:10,850 --> 00:19:12,430 jeden zajtra popoludní. 475 00:19:12,430 --> 00:19:15,460 A budeme točiť jeden dnes a jeden zajtra a post tie 476 00:19:15,460 --> 00:19:16,720 on-line do 24 hodín. 477 00:19:16,720 --> 00:19:19,370 Takže ak nemôžete vykonávať žiadne z týchto časov, nie sa báť. 478 00:19:19,370 --> 00:19:22,720 A opäť, plán je teraz online na cs50.net. 479 00:19:22,720 --> 00:19:25,350 >> Pokiaľ ide o krájanie sám, mali by ste sa dostali 480 00:19:25,350 --> 00:19:28,520 email pokyn, aby ste išli do kurzu domovskú stránku nájsť 481 00:19:28,520 --> 00:19:29,610 z vášho oddielu. 482 00:19:29,610 --> 00:19:32,890 Ak je život sa zmenil a je potrebné zmeniť bod, 483 00:19:32,890 --> 00:19:33,560 nie je problém. 484 00:19:33,560 --> 00:19:37,900 Vráťte sa na túto rovnakú adresu URL, cs50.net/section, singulární, 485 00:19:37,900 --> 00:19:40,090 a budete vyplniť podobný formulár, takže môžete 486 00:19:40,090 --> 00:19:41,260 potom nám svoje preferencie. 487 00:19:41,260 --> 00:19:43,360 A budeme sledovať do konca týždňa, ako na to, čo môžeme 488 00:19:43,360 --> 00:19:44,240 ubytovať. 489 00:19:44,240 --> 00:19:49,530 Minulý týždeň, pripomenúť, že sme navrhli pomocou CS50 diskutovať, 490 00:19:49,530 --> 00:19:51,370 Predmet je diskusia nástrojom, v prednáške. 491 00:19:51,370 --> 00:19:53,680 Takže sme mali 40 otázok, ktoré boli položené a 492 00:19:53,680 --> 00:19:54,720 zodpovedaná počas prednášky. 493 00:19:54,720 --> 00:19:56,280 Takže to vyzeralo, že funguje dobre, takže budeme pokračovať 494 00:19:56,280 --> 00:19:57,180 sa snaží urobiť to. 495 00:19:57,180 --> 00:19:59,600 Ak sa počas prednášky, to nie je len pocit, pohodlné zvyšovanie 496 00:19:59,600 --> 00:20:00,780 tvoja ruka, nie je problém. 497 00:20:00,780 --> 00:20:04,640 Prejsť na cs50.net/discuss, písať tam, a jeden z našich výučby 498 00:20:04,640 --> 00:20:07,270 chlapi budú buď prijať elektronicky alebo zvýšiť ich 499 00:20:07,270 --> 00:20:10,620 Použité vaším menom anonymne sa opýtať, v závislosti 500 00:20:10,620 --> 00:20:12,470 na povahe otázky. 501 00:20:12,470 --> 00:20:15,000 A, pokiaľ ide o spätné väzby, bude všeobecne psets byť 502 00:20:15,000 --> 00:20:16,760 vrátil do týždňa. 503 00:20:16,760 --> 00:20:19,080 Vzhľadom k tomu, že trvá chvíľu pre oddiely pre dosiahnutie 504 00:20:19,080 --> 00:20:22,430 rovnováha, prvý Pset, 0 a 1, sa trochu 505 00:20:22,430 --> 00:20:24,130 oneskorenie, pretože sa veci upokoja. 506 00:20:24,130 --> 00:20:27,130 Ale zostaňte naladení na to v najbližších týždňoch. 507 00:20:27,130 --> 00:20:29,750 >> Dobre, tak mi dovoľte dať na môj vážny 508 00:20:29,750 --> 00:20:31,040 hlas na chvíľu. 509 00:20:31,040 --> 00:20:32,690 Takže je to vlastne zaujímavé klímy sa 510 00:20:32,690 --> 00:20:35,210 s túto diskusiu, čo sa všetky iné 511 00:20:35,210 --> 00:20:37,310 deje na akademickej pôde s ním súvisiace. 512 00:20:37,310 --> 00:20:40,220 Ale CS50 má iste svoje histórii tejto konkrétnej 513 00:20:40,220 --> 00:20:43,360 tému, v ako veľa ako každý rok, tento kurz, pre mnohých 514 00:20:43,360 --> 00:20:46,910 rokov, Ad-dosky približne 3% triedy. 515 00:20:46,910 --> 00:20:51,620 Tento posledný rok, 2011, CS50 Ad-Boarded 35 študentov. 516 00:20:51,620 --> 00:20:54,120 To nie je, myslím, že vzhľadom na nedostatok jasnosti. 517 00:20:54,120 --> 00:20:56,760 Si uvedomiť, že sa v priebehu jeho osnovy, tam je strana 518 00:20:56,760 --> 00:20:59,020 Vyhlásenie o vysvetlenie, kde linky sú. 519 00:20:59,020 --> 00:21:01,350 Ten istý vyhlásenie sa opakuje na každom z 520 00:21:01,350 --> 00:21:03,070 Problém nastaví na strane jednej. 521 00:21:03,070 --> 00:21:05,760 >> Tak som spomenul to dnes naozaj len, aby sa 522 00:21:05,760 --> 00:21:07,030 ľudia majúci na pamäti to. 523 00:21:07,030 --> 00:21:08,080 A my sme sa snažili rôzne veci. 524 00:21:08,080 --> 00:21:10,630 A to, čo som si myslel, budeme robiť dnes je len chvíľku na 525 00:21:10,630 --> 00:21:13,830 vlastne sa pozrieť na niektoré z posledných prípadov, ktoré majú prísť. 526 00:21:13,830 --> 00:21:16,160 Skôr než udržiavať tieto ako malé špinavé tajomstvo, v skutočnosti 527 00:21:16,160 --> 00:21:19,170 poukázať na to, čo študenti urobili a ako sme objavili 528 00:21:19,170 --> 00:21:21,630 to a to, čo naozaj zastrešujúcim motivácia je pre 529 00:21:21,630 --> 00:21:23,950 aj tento rozhovor. 530 00:21:23,950 --> 00:21:27,060 Takže s tým povedal, že linka je v podstate to - 531 00:21:27,060 --> 00:21:29,200 podľa osnov, ste vítaní, odporúčame, aby 532 00:21:29,200 --> 00:21:30,210 hovoriť so spolužiakmi. 533 00:21:30,210 --> 00:21:31,910 To je celý zmysel má táto spolupráca 534 00:21:31,910 --> 00:21:34,470 úradné hodiny v Annenberg a povzbudzovanie ľudí k 535 00:21:34,470 --> 00:21:35,755 Záverečný projekt spolupracovať. 536 00:21:35,755 --> 00:21:38,590 Ale čiara, keď príde čas, aby skutočne písať 537 00:21:38,590 --> 00:21:39,790 vaše konečné riešenie. 538 00:21:39,790 --> 00:21:42,590 Hovorenie v angličtine, v pohode, hovoriť v pseudokódu, 539 00:21:42,590 --> 00:21:43,400 úplne v pohode. 540 00:21:43,400 --> 00:21:46,340 Emaily spolužiak si PSet, nechať ich prehliadnuť 541 00:21:46,340 --> 00:21:48,610 na obrazovke ako hands pokračovať v písaní, 542 00:21:48,610 --> 00:21:50,110 cez čiaru rovnako. 543 00:21:50,110 --> 00:21:52,250 Páči sa pozrieť do učebných osnov pre jednotlivé linky. 544 00:21:52,250 --> 00:21:55,850 >> Ale len dokresľuje obraz o tom, ako je to bohužiaľ 545 00:21:55,850 --> 00:21:58,370 reality, si uvedomiť, že existujú webové stránky tam, že 546 00:21:58,370 --> 00:22:01,490 majú riešenie z tejto triedy a mnohých ďalších tried. 547 00:22:01,490 --> 00:22:04,940 Skutočnosť, že ste vy alebo približne 3% z vás vie, že toto existuje 548 00:22:04,940 --> 00:22:07,240 Znamená to, že vieme, že to existuje. 549 00:22:07,240 --> 00:22:09,340 Skutočnosť, že existujú stránky ako to, kde sa 550 00:22:09,340 --> 00:22:11,540 môže zaplatiť niekoho, kto skutočne urobiť váš problém sady - to bolo 551 00:22:11,540 --> 00:22:13,450 skutočný prípad, ktorý prišiel vlani. 552 00:22:13,450 --> 00:22:15,790 To je webové stránky s názvom odesk.com. 553 00:22:15,790 --> 00:22:20,090 A Tim bolo meno osoby, ktorá bola tu vysielania na 554 00:22:20,090 --> 00:22:24,580 tento web a požiadal niekoho, kto by jeho PSet 7 v 555 00:22:24,580 --> 00:22:25,570 tento konkrétny prípad. 556 00:22:25,570 --> 00:22:28,350 No, odesk.com je veľmi Google-moci, a my sa 557 00:22:28,350 --> 00:22:30,310 veľmi dobrý Googling. 558 00:22:30,310 --> 00:22:32,360 Tiež tu existujú miesta - a toto je skôr 559 00:22:32,360 --> 00:22:34,234 otrasné, úprimne povedané. 560 00:22:34,234 --> 00:22:38,050 [Smiech] 561 00:22:38,050 --> 00:22:39,610 DAVID J. Malan: legrační vec, o tomto webe, ak je 562 00:22:39,610 --> 00:22:41,970 čítate stránku O, hovorí o ich firemnej 563 00:22:41,970 --> 00:22:44,390 kultúra a ako zákaznícky servis je ich číslo jedna 564 00:22:44,390 --> 00:22:46,190 prioritou, aby sa ubezpečil, že vaše úlohy sa 565 00:22:46,190 --> 00:22:47,890 obrátil na čase. 566 00:22:47,890 --> 00:22:50,580 >> Ale vo všetkej vážnosti, opäť, skutočnosť, že tieto stránky 567 00:22:50,580 --> 00:22:52,910 existujú, si uvedomiť, my taky, sú vedomí 568 00:22:52,910 --> 00:22:53,730 Tieto druhy miest. 569 00:22:53,730 --> 00:22:55,890 A aby vám pocit, čo tvorí túto všeobecne 570 00:22:55,890 --> 00:22:58,570 trvá, sme zvyčajne nemajú veľké aféry, kde sa ľudia 571 00:22:58,570 --> 00:23:01,080 spolupracujú na akékoľvek masovom meradle, ale skôr 572 00:23:01,080 --> 00:23:04,540 je táto neskoro nočné chvíle slabosti, kde máte tak 573 00:23:04,540 --> 00:23:07,550 čo robiť, je to 04:00, ste vyčerpaná, a 574 00:23:07,550 --> 00:23:09,770 myslieť na seba, dobre, nechaj ma stačí sa pozrieť na moje 575 00:23:09,770 --> 00:23:11,770 spolubývajúci je alebo môjho priateľa kód alebo podobné. 576 00:23:11,770 --> 00:23:14,800 A prejavy to bohužiaľ zahŕňajú Student 577 00:23:14,800 --> 00:23:17,640 Predložením niečo také a Student B predkladanie 578 00:23:17,640 --> 00:23:20,370 niečo také, čo iste v počítači 579 00:23:20,370 --> 00:23:23,830 veda triedy, je pozoruhodne jednoduché pre počítačové vedcov 580 00:23:23,830 --> 00:23:25,690 k detekcii so softvérom. 581 00:23:25,690 --> 00:23:28,410 To je ďalší obyčajný paradigma, kde ste druh 582 00:23:28,410 --> 00:23:31,010 pracuje po boku niekoho, možno hovorí v 583 00:23:31,010 --> 00:23:32,360 Anglicky, dobre, pseudokód. 584 00:23:32,360 --> 00:23:35,080 Ale potom príde čas na skutočne predložiť, a psets 585 00:23:35,080 --> 00:23:37,910 Len si vymenili prostredníctvom e-mailu alebo Dropbox alebo podobne. 586 00:23:37,910 --> 00:23:41,120 Ale v pokuse, aby to menej zrejmé, že toto je 587 00:23:41,120 --> 00:23:44,830 čo sa stalo, potom je to to, čo sa nám. 588 00:23:44,830 --> 00:23:47,880 To taky, nevypne sa dobre písané kusy 589 00:23:47,880 --> 00:23:50,360 softvér, ako by sme mali skutočne odhaliť 590 00:23:50,360 --> 00:23:51,280 tieto druhy vecí. 591 00:23:51,280 --> 00:23:53,760 A skutočne to, čo robíme, je beh softvér, ktorý porovnáva všetky 592 00:23:53,760 --> 00:23:55,540 tohtoročné podanie proti všetkým minulý rok je 593 00:23:55,540 --> 00:23:57,380 podanie, proti všetkému, čo sme našli na 594 00:23:57,380 --> 00:24:00,060 Internet, proti každej pracovnej stránkach vonku. 595 00:24:00,060 --> 00:24:01,710 Je to všetko veľmi automatizovaný. 596 00:24:01,710 --> 00:24:05,665 A tak sme to naozaj vo veľkom spravodlivosti na 97%, ktorí 597 00:24:05,665 --> 00:24:07,760 sú naozaj funguje svoje prdele v tomto av ďalších 598 00:24:07,760 --> 00:24:11,530 triedy a uvedenie do všetkých tohto úsilia tak, že práca 599 00:24:11,530 --> 00:24:13,030 oni nakoniec predloží je ich vlastné. 600 00:24:13,030 --> 00:24:14,220 A môžem ísť na veky. 601 00:24:14,220 --> 00:24:16,030 >> To je len niekoľko z vlaňajších prípadoch. 602 00:24:16,030 --> 00:24:19,350 Niekoľko študentov nám tieto súbory zhodne pre PSet 2, 603 00:24:19,350 --> 00:24:22,460 Pset 3, Pset 4, Pset 5, Pset 6, Pset 9. 604 00:24:22,460 --> 00:24:26,360 V tomto prípade, je to kvíz 0 a v poslednom roku, keď dvaja 605 00:24:26,360 --> 00:24:29,570 Študenti nám zhodne túto vetu z mnohých 606 00:24:29,570 --> 00:24:32,210 iní, "Žiadosť typu -" bodka, bodka, bodka. 607 00:24:32,210 --> 00:24:34,530 Takže aj v triede 600 sme to zistí 608 00:24:34,530 --> 00:24:36,310 na predložené kvízy. 609 00:24:36,310 --> 00:24:39,080 Takže v skratke, tento - úprimne povedané, neznášam mať tento druh 610 00:24:39,080 --> 00:24:41,300 konverzácie - ale to je naozaj úmyselné úsilie 611 00:24:41,300 --> 00:24:43,540 v tomto roku, aby sa pokúsili znížiť toto číslo. 612 00:24:43,540 --> 00:24:45,650 Pretože aj keď sme hovoria, že tieto druhy vecí každej 613 00:24:45,650 --> 00:24:48,100 rok, myslím, že realitu že zdržiaval na ňom niekoľko 614 00:24:48,100 --> 00:24:50,800 viac sekúnd, než je obvyklé, a vlastne len poukazuje na 615 00:24:50,800 --> 00:24:53,600 že to, čo sa môže zdať ako, eh, nie tak veľký problém, aspoň 616 00:24:53,600 --> 00:24:56,390 si spomeniem na tomto konkrétnom okamihu, a to ako v spravodlivo priznať 617 00:24:56,390 --> 00:25:00,100 sami a na svojich spolužiakov tu. 618 00:25:00,100 --> 00:25:02,480 Takže ak budete mať akékoľvek otázky ohľadom kde je hranica 619 00:25:02,480 --> 00:25:04,290 je, prosím, len natiahnuť ruku ku mne osobne. 620 00:25:04,290 --> 00:25:07,190 Ale odpoveď je vždy úplne zdôraznil Na 621 00:25:07,190 --> 00:25:09,090 last minute, hotovosti v neskorej deň. 622 00:25:09,090 --> 00:25:11,080 Alebo či je to vec, že ​​nemá žiadne neskoré dni, 623 00:25:11,080 --> 00:25:12,900 úprimne, napíšte mi osobne. 624 00:25:12,900 --> 00:25:14,110 Budeme niečo vymyslieť. 625 00:25:14,110 --> 00:25:17,480 Prosím, nedávajte svoj čas tu na Harvarde v ohrození. 626 00:25:17,480 --> 00:25:18,570 >> Teraz som si myslel, že by sme mali náladu, a tak som 627 00:25:18,570 --> 00:25:20,264 zahrnul ako ďalšiu snímku. 628 00:25:20,264 --> 00:25:22,770 [Smiech] 629 00:25:22,770 --> 00:25:23,630 DAVID J. Malan: Táto webová stránka bola skvelá. 630 00:25:23,630 --> 00:25:24,820 Vlastne som trochu roztržitý. 631 00:25:24,820 --> 00:25:26,330 Tam je to jeden. 632 00:25:26,330 --> 00:25:29,590 A potom tento bol úžasný. 633 00:25:29,590 --> 00:25:35,190 Dobre, tak si tohto mačiatka neskoro v noci pri 634 00:25:35,190 --> 00:25:36,040 tieto rozhodnutia. 635 00:25:36,040 --> 00:25:40,110 Dobre, tak späť do viac zábavy a menej závažné veci, ako je 636 00:25:40,110 --> 00:25:40,780 conditions. 637 00:25:40,780 --> 00:25:43,900 >> Dobre, tak sme sa rozprávali krátko o nich. 638 00:25:43,900 --> 00:25:46,080 To je niečo, čo je asi dosť známe z 639 00:25:46,080 --> 00:25:47,260 svet Scratch. 640 00:25:47,260 --> 00:25:49,860 A vo svete Scratch, máme túto potrebu niekedy 641 00:25:49,860 --> 00:25:51,110 ísť robiť vidličky na ceste. 642 00:25:51,110 --> 00:25:54,840 Buď to, alebo to, alebo tú druhú vec tu. 643 00:25:54,840 --> 00:25:58,990 A keď chceme urobiť, môžeme použiť v C teraz, túto možnosť, ak 644 00:25:58,990 --> 00:26:00,860 else. 645 00:26:00,860 --> 00:26:06,420 A potom tu máme booleovských výrazov. 646 00:26:06,420 --> 00:26:09,260 Napríklad, Booleovské výrazy tu, môžeme OR 647 00:26:09,260 --> 00:26:12,260 dohromady, v tom zmysle, že sa majú túto podmienku OR 648 00:26:12,260 --> 00:26:13,200 táto podmienka. 649 00:26:13,200 --> 00:26:15,100 Môžeme A dohromady, v tom zmysle, že chceme, aby 650 00:26:15,100 --> 00:26:17,710 skontrolovať tento stav, pričom táto podmienka. 651 00:26:17,710 --> 00:26:22,440 A tu máme switch teraz, čo nie je tak 652 00:26:22,440 --> 00:26:26,040 podobne syntakticky na tie druhy podmienok, ale 653 00:26:26,040 --> 00:26:30,160 nám umožňuje robiť ekvivalent if, else if, else if, else 654 00:26:30,160 --> 00:26:34,990 v prípade, a ako jednoducho výpočet im prípad od prípadu 655 00:26:34,990 --> 00:26:36,670 by prípad od prípadu. 656 00:26:36,670 --> 00:26:38,370 Takže sme videli tie minule. 657 00:26:38,370 --> 00:26:40,430 A potom sme začali sa dotýka vecí, ako slučky. 658 00:26:40,430 --> 00:26:42,070 Videli sme jednu z nich pred chvíľou. 659 00:26:42,070 --> 00:26:44,180 Ale sú tieto ďalšie smyčkování konštrukcie. 660 00:26:44,180 --> 00:26:46,370 >> Napríklad, tento tu. 661 00:26:46,370 --> 00:26:50,140 Takže zatiaľ čo (podmienka), robiť túto vec znova a znova. 662 00:26:50,140 --> 00:26:53,070 Takže v podstate, čo sa zdá byť odlišný od tohto 663 00:26:53,070 --> 00:26:55,760 pre sláčiky a tento kým slučka tu? 664 00:27:00,810 --> 00:27:05,045 To pre sláčiky a tento slučke while. 665 00:27:05,045 --> 00:27:07,840 Jo? 666 00:27:07,840 --> 00:27:08,800 Čo je to? 667 00:27:08,800 --> 00:27:10,050 PUBLIKUM: [nepočuteľnú]. 668 00:27:14,632 --> 00:27:15,120 DAVID J. Malan: Dobré. 669 00:27:15,120 --> 00:27:17,130 Takže kým v cykle for podmienkou, že je jasne 670 00:27:17,130 --> 00:27:17,940 viac syntaxe. 671 00:27:17,940 --> 00:27:20,560 Tam je to inicializácia, je tu táto aktualizácia. 672 00:27:20,560 --> 00:27:23,820 V cykle while, je to proste tento stav. 673 00:27:23,820 --> 00:27:26,630 Takže sa zdá, že je to trochu zredukované proti pre 674 00:27:26,630 --> 00:27:28,770 slučka, čo znamená, že ak chceme mať premenné a chceme 675 00:27:28,770 --> 00:27:30,800 mať inkrementace, skutočnosti máme k 676 00:27:30,800 --> 00:27:32,500 urobiť túto vec sami. 677 00:27:32,500 --> 00:27:34,420 >> Tak nechaj ma ísť napred a otvoriť gedit. 678 00:27:34,420 --> 00:27:36,320 Dovoľte mi, aby som na ňu prepnete zariadenie. 679 00:27:36,320 --> 00:27:38,110 A povedzme, urobiť rýchly malý príklad, že 680 00:27:38,110 --> 00:27:40,550 rozlišuje jeden z nich z druhej. 681 00:27:40,550 --> 00:27:42,490 A v zadnej časti mojej mysli tu, mal by som povedať jednu vec. 682 00:27:42,490 --> 00:27:44,120 Aj výslovne uvedené meno Tim. 683 00:27:44,120 --> 00:27:47,740 Tim bol vlastne niekto, že študent sa snažil nájsť robiť 684 00:27:47,740 --> 00:27:48,680 ich domácu úlohu pre ne. 685 00:27:48,680 --> 00:27:51,280 Nemali sme žiadne Tim v tomto konkrétnom bode. 686 00:27:51,280 --> 00:27:53,690 Takže si uvedomiť, aby som zverejnené študenta, to nie je študentom. 687 00:27:53,690 --> 00:27:55,720 Bola to náhodná osoba na internete robiť veci 688 00:27:55,720 --> 00:27:57,180 o serveri proxy v minulom roku. 689 00:27:57,180 --> 00:27:58,670 Tak sme zistili, že taky. 690 00:27:58,670 --> 00:28:00,630 Takže v tomto prípade tu, nechajte ma ísť napred a 691 00:28:00,630 --> 00:28:02,810 otvoriť nový súbor. 692 00:28:02,810 --> 00:28:04,800 Súbor, Nový. 693 00:28:04,800 --> 00:28:06,050 To mi dáva kartu tu. 694 00:28:06,050 --> 00:28:09,940 Nechaj ma ísť dopredu a uložiť ho ako loop.c. 695 00:28:09,940 --> 00:28:11,810 Nechaj ma ísť a kliknite na tlačidlo Uložiť. 696 00:28:11,810 --> 00:28:15,340 A potom tu dole, poďme do toho a začnite písať 697 00:28:15,340 --> 00:28:16,605 # Include . 698 00:28:19,116 --> 00:28:20,520 Dovoľte mi, aby som Zoom 699 00:28:20,520 --> 00:28:23,410 Teraz urobíme int main (void). 700 00:28:23,410 --> 00:28:30,020 Teraz ma nechaj ísť ďalej a robiť for (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 A teraz budem pokračovať a to vytlačiť hviezdu, ktorá mi 703 00:28:36,620 --> 00:28:37,890 robili predtým. 704 00:28:37,890 --> 00:28:39,390 A potom na konci tohto programu, sme len tak 705 00:28:39,390 --> 00:28:41,130 vytlačiť nový riadok, len preto, že moja výzva 706 00:28:41,130 --> 00:28:42,470 nevyzerá všade chaotický. 707 00:28:42,470 --> 00:28:45,170 návrat 0. 708 00:28:45,170 --> 00:28:47,610 Zdá sa syntakticky korektné? 709 00:28:47,610 --> 00:28:48,040 Tak ďaleko. 710 00:28:48,040 --> 00:28:48,560 Tak uvidíme. 711 00:28:48,560 --> 00:28:51,290 >> Dovoľte mi teda vzdialite, ísť do môjho terminálovom okne. 712 00:28:51,290 --> 00:28:54,570 A nechaj ma ísť napred a spustiť slučku, pretože som volal toto 713 00:28:54,570 --> 00:28:55,690 vec loop.c. 714 00:28:55,690 --> 00:28:56,780 Takže si slučku. 715 00:28:56,780 --> 00:28:57,840 Zdá sa, že zostavenie OK. 716 00:28:57,840 --> 00:29:00,210 Dovoľte mi, aby som bežať slučku, a teraz Enter. 717 00:29:00,210 --> 00:29:01,820 A zdá sa, že vytlačiť 10 hviezd. 718 00:29:01,820 --> 00:29:03,780 Takže povedzme, previesť túto slučky while a vidieť, čo 719 00:29:03,780 --> 00:29:05,220 druhy otázok sme zakopnúť. 720 00:29:05,220 --> 00:29:11,290 Takže namiesto toho, nechajte ma ísť sem a povedať, keď som ich 721 00:29:11,290 --> 00:29:12,760 menej ako 10 - 722 00:29:12,760 --> 00:29:14,910 dovoľte mi, aby som sa zbaviť slučky for. 723 00:29:14,910 --> 00:29:17,170 OK, takže máme pár problémov, ktoré v 724 00:29:17,170 --> 00:29:21,110 Takže stav je rovnaký, ale ja som samozrejme chýbajú 725 00:29:21,110 --> 00:29:21,680 inicializácia. 726 00:29:21,680 --> 00:29:23,840 Som chýba inkrementace. 727 00:29:23,840 --> 00:29:28,020 Takže to, čo by mal kompilátor pravdepodobne povedz mi, keď sa snažím 728 00:29:28,020 --> 00:29:29,170 zostaviť tento program? 729 00:29:29,170 --> 00:29:29,666 Jo? 730 00:29:29,666 --> 00:29:31,154 PUBLIKUM: [nepočuteľnú]. 731 00:29:31,154 --> 00:29:31,650 >> DAVID J. Malan: Dobré. 732 00:29:31,650 --> 00:29:34,180 Takže to bude hovoriť niečo ako neoficiálny - v tomto 733 00:29:34,180 --> 00:29:35,280 prípade, že premenná i 734 00:29:35,280 --> 00:29:37,980 A skutočne, použite nelegálnej identifikátor i 735 00:29:37,980 --> 00:29:40,960 A tak to je v rozpore s jazykoch ako PHP a 736 00:29:40,960 --> 00:29:43,120 Python a Ruby, s ktorou niektorí z vás by mohol byť oboznámení, 737 00:29:43,120 --> 00:29:44,820 kde môžete to jednoducho začať používať premenné 738 00:29:44,820 --> 00:29:47,420 chtiac-nechtiac, a nemusíte sa starať o vyhlásení im 739 00:29:47,420 --> 00:29:48,560 explicitne vždy. 740 00:29:48,560 --> 00:29:51,770 V C a v jazykoch, ako je Java a C + +, musíte byť 741 00:29:51,770 --> 00:29:53,020 Super explicitné. 742 00:29:53,020 --> 00:29:55,760 A ak chcete premennú s názvom i, musíš mi povedať, 743 00:29:55,760 --> 00:29:57,360 aké premenné je. 744 00:29:57,360 --> 00:29:59,360 Takže budeme musieť opraviť takto. 745 00:29:59,360 --> 00:30:05,510 Budem musieť ísť sem a zadajte int i; preto, 746 00:30:05,510 --> 00:30:07,860 Som deklaroval premennú s názvom i 747 00:30:07,860 --> 00:30:09,180 Teraz som preskočil jeden krok. 748 00:30:09,180 --> 00:30:11,340 Ja som samozrejme nie je inicializovaná, ale uvidíme, či to na 749 00:30:11,340 --> 00:30:13,650 Aspoň značiek zvonenie prestaň sa sťažovať. 750 00:30:13,650 --> 00:30:15,770 Takže dovoľte mi, aby som prerobil tento program. 751 00:30:15,770 --> 00:30:16,770 >> Dobre, teraz je to len sťažovať 752 00:30:16,770 --> 00:30:17,870 z iného dôvodu. 753 00:30:17,870 --> 00:30:21,130 "Premenná" i "je inicializovaná pri použití tu." Dobre, tak 754 00:30:21,130 --> 00:30:22,340 to je docela jasné. 755 00:30:22,340 --> 00:30:25,510 Inicializovaný len znamená nastavenie je rovná hodnote. 756 00:30:25,510 --> 00:30:30,820 A my sme neurobili, takže skúsim rovná 0. 757 00:30:30,820 --> 00:30:35,030 Teraz sa poďme skúsiť to znova a znova spustiť zvonenie. 758 00:30:35,030 --> 00:30:36,140 Spracovala tentoraz. 759 00:30:36,140 --> 00:30:37,210 A ja som o tom ho spustiť. 760 00:30:37,210 --> 00:30:43,120 Ale veľký starý nekonečná slučka, pretože som to urobil 761 00:30:43,120 --> 00:30:45,530 inicializácia, urobil som podmienku, ale ja som nikdy nerobil 762 00:30:45,530 --> 00:30:47,030 akýkoľvek druh inkrementace. 763 00:30:47,030 --> 00:30:48,780 Tak ako to mám urobiť v inkrementace? 764 00:30:48,780 --> 00:30:51,170 No, v cykle while, to vyzerá, budem mať 765 00:30:51,170 --> 00:30:54,180 na to vnútri slučky, pretože podobne ako prvý 766 00:30:54,180 --> 00:30:56,570 týždeň príklady robiť slučky konštrukcie, ako s 767 00:30:56,570 --> 00:30:59,040 ponožky a self-počítanie, čo sme museli urobiť 768 00:30:59,040 --> 00:31:01,550 niečo na samom konci, rád sa vrátiť na ďalší riadok. 769 00:31:01,550 --> 00:31:05,040 Čo keď pôjdem do toho a to aj + + tu? 770 00:31:05,040 --> 00:31:06,030 Poďme ani skompilovať to. 771 00:31:06,030 --> 00:31:06,890 Chyť ma už. 772 00:31:06,890 --> 00:31:09,704 Čo je tu zle? 773 00:31:09,704 --> 00:31:10,690 PUBLIKUM: [nepočuteľnú]. 774 00:31:10,690 --> 00:31:11,770 >> DAVID J. Malan: Tak to rozhodne nie je int. 775 00:31:11,770 --> 00:31:13,080 Je to i 776 00:31:13,080 --> 00:31:15,110 A zložené zátvorky, ako predtým, 777 00:31:15,110 --> 00:31:16,800 odsadenie nestačí. 778 00:31:16,800 --> 00:31:18,410 Takže teraz som sa to postaviť. 779 00:31:18,410 --> 00:31:21,780 Takže keď som je menšia ako 10, vytlačiť hviezdu, 780 00:31:21,780 --> 00:31:23,220 potom zvyšovať i 781 00:31:23,220 --> 00:31:25,680 A spôsob, akým pri slučka funguje tak, že akonáhle hit 782 00:31:25,680 --> 00:31:29,630 Spodná časť slučky, ktorá je v tomto prípade vyzerá riadku 10, 783 00:31:29,630 --> 00:31:32,880 to ísť späť do radu 6, na ktorom mieste 784 00:31:32,880 --> 00:31:34,400 podmienka bude znovu. 785 00:31:34,400 --> 00:31:37,500 A ak je aj naďalej nižší ako 10, urobíme linky 8 a 786 00:31:37,500 --> 00:31:41,250 potom 9, potom budeme hit 10, a vrátiť sa do 6, znovu a 787 00:31:41,250 --> 00:31:45,580 znova a znova a znova, tak dlho, ako som ich menší ako 10. 788 00:31:45,580 --> 00:31:47,860 Takže poďme znova spustiť, aby tu. 789 00:31:47,860 --> 00:31:48,940 >> Dobre, sme zostavili v poriadku. 790 00:31:48,940 --> 00:31:50,300 Dovoľte mi, aby som znovu-run slučky. 791 00:31:50,300 --> 00:31:52,620 A teraz to vlastne vyzerá, že pracuje. 792 00:31:52,620 --> 00:31:55,100 Takže plusy a mínusy tu? 793 00:31:55,100 --> 00:31:58,910 No, zatiaľ je to vlastne nie je celý PLO - 794 00:31:58,910 --> 00:31:59,420 tak roztomilý. 795 00:31:59,420 --> 00:32:01,870 Dobre, že je - ach, to bola nehoda. 796 00:32:01,870 --> 00:32:05,200 Dobre, tak poďme späť k cyklu for. 797 00:32:05,200 --> 00:32:07,530 Takže pre slučiek sú pekné, pretože ste super explicitné. 798 00:32:07,530 --> 00:32:09,720 A aj keď sú trochu neohrabaný písať, že je to 799 00:32:09,720 --> 00:32:11,500 veľmi silný a to vám umožní urobiť 800 00:32:11,500 --> 00:32:12,980 viac vecí naraz. 801 00:32:12,980 --> 00:32:16,240 While sa nezdá, že obrovské množstvo hodnoty len 802 00:32:16,240 --> 00:32:18,500 Zatiaľ, pretože to vyzerá, budeme musieť urobiť viac práce. 803 00:32:18,500 --> 00:32:20,670 Musíme dať inicializácia sem sa 804 00:32:20,670 --> 00:32:23,480 aktualizovať tu dole, a musíme mať na pamäti, aby to všetko. 805 00:32:23,480 --> 00:32:26,260 Tak uvidíme, v čase, ktorý while skutočne požičať 806 00:32:26,260 --> 00:32:29,380 samy do niekoľkých rôznych kontextoch, rôzne údaje 807 00:32:29,380 --> 00:32:33,900 štruktúry, ako zoznamy a hašovacia tabuliek, čo sa dostaneme 808 00:32:33,900 --> 00:32:34,970 mid-semester. 809 00:32:34,970 --> 00:32:37,900 Ale teraz, viem, že tam je to tretí typ známy ako do- 810 00:32:37,900 --> 00:32:38,480 while. 811 00:32:38,480 --> 00:32:39,540 A my sme videli túto krátko. 812 00:32:39,540 --> 00:32:41,830 A to by mohlo byť super užitočné s PSet 1. 813 00:32:41,830 --> 00:32:45,570 Kedykoľvek budete chcieť niečo urobiť, a potom skontrolujte, či 814 00:32:45,570 --> 00:32:48,940 užívateľ spolupracoval, a ak nie, urobte to znova, do- 815 00:32:48,940 --> 00:32:51,460 kým slučka požičiava seba k tomuto druhu logiky. 816 00:32:51,460 --> 00:32:55,640 Vzhľadom k tomu, ako objednávať od zhora nadol tu naznačuje, 817 00:32:55,640 --> 00:32:57,750 to doslovne znamená to. 818 00:32:57,750 --> 00:32:59,830 A to znova a znova, možno to, čo to malo byť? 819 00:32:59,830 --> 00:33:03,000 Možno to znamená volaní GetInt alebo GetString a potom 820 00:33:03,000 --> 00:33:05,830 kontrolou hodnoty GetInt alebo GetString a potom kričí 821 00:33:05,830 --> 00:33:08,260 na užívateľa, ak to nie je spolupracovali a požiadal ich, 822 00:33:08,260 --> 00:33:10,100 znovu a znovu a znovu. 823 00:33:10,100 --> 00:33:11,730 Kam chcete urobiť niečo raz, 824 00:33:11,730 --> 00:33:13,210 potom skontrolovať nejakú podmienku. 825 00:33:13,210 --> 00:33:14,110 >> Tak poďme to skúsiť. 826 00:33:14,110 --> 00:33:17,130 Dovoľte mi, aby som skutočne zmeniť to teraz na do-while. 827 00:33:17,130 --> 00:33:18,830 A ja idem ďalej a vykonajte nasledujúce. 828 00:33:18,830 --> 00:33:21,830 Takže postupujte nasledovne. 829 00:33:21,830 --> 00:33:26,870 Poďme urobiť int i = GetInt (), ale poďme sa najprv oznámiť užívateľovi 830 00:33:26,870 --> 00:33:27,410 čo robiť. 831 00:33:27,410 --> 00:33:29,050 Tak trochu iný tentoraz. 832 00:33:29,050 --> 00:33:31,270 "Dajte mi int". 833 00:33:31,270 --> 00:33:32,910 Takže budem používať printf za to. 834 00:33:32,910 --> 00:33:35,740 A teraz idem tu dole, a ja urobím to 835 00:33:35,740 --> 00:33:41,520 keď som ich, povedzme, väčšie ako - 836 00:33:41,520 --> 00:33:47,540 uvidíme, aj je, povedzme, menej než 0, alebo aj je 837 00:33:47,540 --> 00:33:48,730 väčší ako 10. 838 00:33:48,730 --> 00:33:51,810 Inými slovami, chcem číslo 1-9, len 839 00:33:51,810 --> 00:33:52,720 ľubovoľne. 840 00:33:52,720 --> 00:33:55,290 Takže som pomocou kombinovaného logický výraz tu 841 00:33:55,290 --> 00:33:59,930 uistiť, že aj je menší než 0 alebo väčší ako 10, v ktorom 842 00:33:59,930 --> 00:34:02,530 prípad, že by som sa to urobiť slučku opäť tu. 843 00:34:02,530 --> 00:34:04,400 Takže znovu, to - 844 00:34:04,400 --> 00:34:08,480 zatiaľ čo aj je menší než 0 alebo aj je väčší ako 10. 845 00:34:08,480 --> 00:34:11,440 >> Takže teraz poďme ďalej a urobiť to raz urobili sme to. 846 00:34:11,440 --> 00:34:13,270 Poďme urobiť rýchlu kontrolu zdravý rozum. 847 00:34:13,270 --> 00:34:18,929 printf ("Vďaka, aj je% d", i). 848 00:34:18,929 --> 00:34:21,350 Takže tento jednoduchý program požiada užívateľa o int, 849 00:34:21,350 --> 00:34:24,000 je si istý, že je to v nejakom rozsahu, 1-9 vrátane, 850 00:34:24,000 --> 00:34:26,280 a potom ďakuje užívateľa pripomeňte im, čo práve 851 00:34:26,280 --> 00:34:27,940 napísal v, rovnako ako malý predsa nie sú kontroly. 852 00:34:27,940 --> 00:34:30,659 Ale uvidíme, či to funguje, ako bolo zamýšľané. 853 00:34:30,659 --> 00:34:34,533 Nechaj ma ísť hlavou sem a znovu spustiť, aby slučku. 854 00:34:34,533 --> 00:34:35,350 Hmm. 855 00:34:35,350 --> 00:34:38,600 "Použitie nelegálnej identifikátor" i "". To je divné. 856 00:34:38,600 --> 00:34:41,509 Myslel som, že sme sa rozhodli, že. 857 00:34:45,489 --> 00:34:47,560 Rovnaký jav sa ale iný kód. 858 00:34:47,560 --> 00:34:47,899 Jo? 859 00:34:47,899 --> 00:34:50,191 PUBLIKUM: [Nepočuteľné] vnútri dva, musíme 860 00:34:50,191 --> 00:34:52,639 [Nepočuteľné]. 861 00:34:52,639 --> 00:34:53,260 >> DAVID J. Malan: Presne tak. 862 00:34:53,260 --> 00:34:55,989 Takže to vlastne vedie nás k téme známej ako rozsah. 863 00:34:55,989 --> 00:34:59,350 Ukazuje sa, že C, opäť, je to naozaj vás doslova. 864 00:34:59,350 --> 00:35:02,970 A ak sa vám niečo také, kde si deklarovať int 865 00:35:02,970 --> 00:35:06,120 a potom priradiť mu nejakú hodnotu, ale vy, že vo vnútri 866 00:35:06,120 --> 00:35:09,840 pár zložených zátvoriek, čo robí, je, že C sa predpokladá, že 867 00:35:09,840 --> 00:35:14,800 chcú len tie 32 bitov známe ako aj existovať v rámci 868 00:35:14,800 --> 00:35:18,200 súvislosti s týmito zloženými zátvorkami, v súvislosti s líniou 869 00:35:18,200 --> 00:35:22,420 6 až 9. Tak som ich deklarovaný, a to je priradený 870 00:35:22,420 --> 00:35:26,530 hodnota v riadku 8, ale akonáhle sa dostanete mimo 871 00:35:26,530 --> 00:35:30,270 linka 9 pod ortézy kučeravé, aj už nie je v 872 00:35:30,270 --> 00:35:31,910 rozsah, aby som tak povedal. 873 00:35:31,910 --> 00:35:35,030 S-C-O-P-E. Je to už v správnom kontexte. 874 00:35:35,030 --> 00:35:37,940 Takže teraz nie je aj tak, je to, ako by sme nemali ani 875 00:35:37,940 --> 00:35:38,770 vyhlásil to vôbec. 876 00:35:38,770 --> 00:35:41,520 >> Takže to, čo je oprava a potom na niečo také, ak 877 00:35:41,520 --> 00:35:44,300 Dôvodom je to, že aj je deklarovaná v rámci zložených zátvoriek, ktoré 878 00:35:44,300 --> 00:35:45,120 je zrejme zlé? 879 00:35:45,120 --> 00:35:45,410 Tu? 880 00:35:45,410 --> 00:35:46,820 PUBLIKUM: [nepočuteľnú]. 881 00:35:46,820 --> 00:35:47,150 DAVID J. Malan: Jo. 882 00:35:47,150 --> 00:35:48,710 Takže môžeme inicializovať to vonku. 883 00:35:48,710 --> 00:35:53,530 Tak nechaj ma ísť dopredu a odstráňte z vyhlásenia časti ktorý spočíva 884 00:35:53,530 --> 00:35:55,820 Aj špecifikovať typ, a dovoľte mi, aby som to tu. 885 00:35:55,820 --> 00:36:00,220 Takže v riadku 5, teraz hovorí, že "Dajte mi int." Nazvime to i 886 00:36:00,220 --> 00:36:03,400 Všimnite si, v riadku 9, nechcem to urobiť, pretože som 887 00:36:03,400 --> 00:36:04,830 už majú 32 bitov. 888 00:36:04,830 --> 00:36:06,140 Nechcem sa opýtať počítač pre 889 00:36:06,140 --> 00:36:07,630 rôzne 32 bitov. 890 00:36:07,630 --> 00:36:09,850 Chcem používať tie isté 32 bitov. 891 00:36:09,850 --> 00:36:13,190 A teraz, pretože som ich deklarovaná v súlade 5, je to stále legit 892 00:36:13,190 --> 00:36:16,550 použiť v súlade 11 a riadok 12. 893 00:36:16,550 --> 00:36:19,310 >> Tak skúsim prekompilovať to a vidieť 894 00:36:19,310 --> 00:36:20,490 ak zvonenie prestane revať. 895 00:36:20,490 --> 00:36:22,380 aby slučku. 896 00:36:22,380 --> 00:36:25,470 Takže teraz je to "implicitná deklarácia funkcie 897 00:36:25,470 --> 00:36:29,880 "GetInt" je neplatný v C99. "Čo je to? 898 00:36:29,880 --> 00:36:30,400 Jo? 899 00:36:30,400 --> 00:36:32,330 PUBLIKUM: [nepočuteľnú]. 900 00:36:32,330 --> 00:36:32,690 DAVID J. Malan: Jo. 901 00:36:32,690 --> 00:36:35,520 Takže teraz, že som vlastne pomocou GetInt, to nie je niečo, 902 00:36:35,520 --> 00:36:38,190 že práve prichádza s C. To pochádza z CS50. 903 00:36:38,190 --> 00:36:39,890 Takže potrebujeme tu. 904 00:36:39,890 --> 00:36:41,450 A nechaj ma ísť späť do riadku dole 905 00:36:41,450 --> 00:36:43,500 tu a znova spustite make. 906 00:36:43,500 --> 00:36:44,160 Dobre, konečne. 907 00:36:44,160 --> 00:36:46,270 Teraz sme sa rozhodol, že aj na inú chybu. 908 00:36:46,270 --> 00:36:48,930 Dovoľte mi, aby som teraz spustiť slučku a uvidíme, čo sa stane. 909 00:36:48,930 --> 00:36:51,740 "Dajte mi int." Dám to 11. 910 00:36:51,740 --> 00:36:53,100 Dám to -1. 911 00:36:53,100 --> 00:36:54,470 Dám to foo. 912 00:36:54,470 --> 00:36:56,080 Dám to 5. 913 00:36:56,080 --> 00:36:57,450 A teraz to naozaj funguje. 914 00:36:57,450 --> 00:36:59,410 Ale riadku zmeniť z nejakého dôvodu tu. 915 00:36:59,410 --> 00:37:02,800 Prečo sa to povedať, opakovanie jednej z týchto čias, ale dajte mi 916 00:37:02,800 --> 00:37:03,920 int ďalšie trikrát? 917 00:37:03,920 --> 00:37:05,500 Prečo je to, že správanie líši? 918 00:37:05,500 --> 00:37:06,980 PUBLIKUM: Dal jej reťazec. 919 00:37:06,980 --> 00:37:07,830 DAVID J. Malan: Je nám ľúto,? 920 00:37:07,830 --> 00:37:08,570 PUBLIKUM: Dal si jej reťazec. 921 00:37:08,570 --> 00:37:08,990 DAVID J. Malan: Jo. 922 00:37:08,990 --> 00:37:11,450 Tak sme to reťazec v tejto tretí pokus, 923 00:37:11,450 --> 00:37:12,490 keď som napísal foo. 924 00:37:12,490 --> 00:37:13,200 Foo je reťazec. 925 00:37:13,200 --> 00:37:14,340 Je to samozrejme nie je int. 926 00:37:14,340 --> 00:37:17,500 A spôsob, akým CS50 vykonalo GetInt je, že sme 927 00:37:17,500 --> 00:37:20,330 nekontrolovať, ak niečo je menej ako 0 alebo väčšia ako 10 928 00:37:20,330 --> 00:37:22,260 pre vás, pretože ako vieme, vopred, aké 929 00:37:22,260 --> 00:37:23,130 int chcete? 930 00:37:23,130 --> 00:37:25,880 Ale môžeme minimálne skontrolovať pre vás, to si užívateľský najmenej 931 00:37:25,880 --> 00:37:26,730 zadajte celé číslo? 932 00:37:26,730 --> 00:37:30,500 A keby nie, sme kričať na užívateľa zadaním "opakovanie" na 933 00:37:30,500 --> 00:37:31,440 obrazovke. 934 00:37:31,440 --> 00:37:34,210 >> Takže teraz máme program, ktorý je smyčkovací. Dobre. 935 00:37:34,210 --> 00:37:37,070 Teraz, ktorý z nich je niečo ako lepší konštrukcia? 936 00:37:37,070 --> 00:37:39,060 Takže toto je miesto, kde sa veci začnú sa dostať trochu chaotický, 937 00:37:39,060 --> 00:37:42,360 Skutočnosť, že musíte mať na pamäti, ako deklarovať premennú sem 938 00:37:42,360 --> 00:37:44,630 Ak chcete používať vnútri niektorých 939 00:37:44,630 --> 00:37:46,460 Zložené zátvorky a mimo. 940 00:37:46,460 --> 00:37:48,490 Ale aj keby to vyzerá trochu záhadný na prvý 941 00:37:48,490 --> 00:37:50,750 pohľad, len znovu spomenúť na jednoduchú logiku. 942 00:37:50,750 --> 00:37:54,630 Aby bolo možné použiť čokoľvek v jazyku C, či už je to funkcia alebo 943 00:37:54,630 --> 00:37:57,680 je to premenná, musíte zahrnúť, ak je to funkcia 944 00:37:57,680 --> 00:37:59,770 v niektorých knižnice, alebo budete musieť vyhlásiť ju. 945 00:37:59,770 --> 00:38:02,405 Ale teraz musíte byť extra dbať na skutočnosť, že 946 00:38:02,405 --> 00:38:04,940 ste vyhlásením v pravom rozsahu. 947 00:38:04,940 --> 00:38:08,150 Nie ste uvedenie príliš tesne vnútri zátvoriek. 948 00:38:08,150 --> 00:38:09,410 >> Dovoľte mi teda skutočne vrátiť. 949 00:38:09,410 --> 00:38:12,660 Ak sa vrátime k nášmu napríklad z minulosti, a ja idem 950 00:38:12,660 --> 00:38:19,245 späť na pre int, int i = 0; i <10; i + +, a ja 951 00:38:19,245 --> 00:38:26,370 to printf hviezdy, ako je tento, a potom zatvorte párenie, a teraz 952 00:38:26,370 --> 00:38:30,410 printf aj teraz - 953 00:38:30,410 --> 00:38:33,500 Podľa rovnakej logiky, čo sa stane, keď sa snažím 954 00:38:33,500 --> 00:38:35,500 zostaviť tento program? 955 00:38:35,500 --> 00:38:36,790 Divákov: Neplatný identifikátor. 956 00:38:36,790 --> 00:38:38,560 DAVID J. Malan: Takže je to ďalší neplatný identifikátor, 957 00:38:38,560 --> 00:38:39,470 nedeklarovaný identifikátor. 958 00:38:39,470 --> 00:38:41,810 Teraz, dôvodom je trochu iný. 959 00:38:41,810 --> 00:38:44,370 Je tu samozrejme žiadne zložené zátvorky tu, ale rovnaké 960 00:38:44,370 --> 00:38:46,790 idea, rovnaký príbeh rozsah platí. 961 00:38:46,790 --> 00:38:50,340 Ak ste deklarovali premennú ako aj vo vnútri 962 00:38:50,340 --> 00:38:53,960 pre sláčiky, aj keď ste výslovne napísal kučeravé 963 00:38:53,960 --> 00:38:56,980 traky, myslím, že z nich psychicky ešte, že tam, kde 964 00:38:56,980 --> 00:39:00,310 prípad aj je platná iba vnútri slučky for. 965 00:39:00,310 --> 00:39:03,080 To nie je platné, akonáhle sa dostať na ďalší riadok, ktorý v 966 00:39:03,080 --> 00:39:05,090 V tomto prípade je teraz 10. 967 00:39:05,090 --> 00:39:09,060 Takže len niekoľko otázok, z rozsahu a podobne. 968 00:39:09,060 --> 00:39:12,620 Dobre, nejaké otázky? 969 00:39:12,620 --> 00:39:15,310 >> Dobre, takže toto je triviálne malého programu, 970 00:39:15,310 --> 00:39:17,450 tlač len malé hviezdy. 971 00:39:17,450 --> 00:39:20,400 Ale uvidíme, či si pamätáte túto pieseň tu. 972 00:39:20,400 --> 00:39:22,530 To je neuveriteľne otravné pieseň deti spievali na 973 00:39:22,530 --> 00:39:23,550 školský autobus a podobne. 974 00:39:23,550 --> 00:39:25,990 Ale čo je pekné na tom je, že to má tento cyklickosti, 975 00:39:25,990 --> 00:39:27,910 pričom je to "99 fliaš piva na stene, 976 00:39:27,910 --> 00:39:28,520 99 fliaš piva. 977 00:39:28,520 --> 00:39:31,030 Vezmite jeden dole, prejsť okolo, 98 fliaš piva na 978 00:39:31,030 --> 00:39:34,330 múr. "A potom pieseň opakuje 97, potom 96, potom 979 00:39:34,330 --> 00:39:38,040 95, potom 94, celú cestu až na 0, ak ste skutočne dostali, že 980 00:39:38,040 --> 00:39:38,920 Ak na zbernicu. 981 00:39:38,920 --> 00:39:41,960 Tak to je pekný program sa trochu náradie, pretože my 982 00:39:41,960 --> 00:39:43,650 Bože, či by ste mohol len implementovať to s niekoľkými 983 00:39:43,650 --> 00:39:46,660 riadkov kódu, môžete vypľuť celý text k tejto 984 00:39:46,660 --> 00:39:48,240 song celkom rýchlo. 985 00:39:48,240 --> 00:39:50,420 Ale na ceste, môžeme začať hneď šprýmař oddelene niektoré 986 00:39:50,420 --> 00:39:52,460 z týchto základných smyčkování konštrukty a teraz tiež 987 00:39:52,460 --> 00:39:55,830 zaviesť funkcie, ktoré budeme písať sami, návrat hodnôt 988 00:39:55,830 --> 00:39:57,020 že sme sa prejsť okolo. 989 00:39:57,020 --> 00:39:58,910 Ale najprv, prečo nejdeme dopredu a vziať naše päť minút 990 00:39:58,910 --> 00:39:59,320 rozbiť tú? 991 00:39:59,320 --> 00:40:01,480 A keď sa vrátime, budeme spievať túto pieseň. 992 00:40:05,680 --> 00:40:08,760 >> Dobre, tak sme sa vrátili. 993 00:40:08,760 --> 00:40:11,850 A keď hovorím, že teraz budeme spievať túto pieseň, myslím 994 00:40:11,850 --> 00:40:13,250 programovo, nie slovne. 995 00:40:13,250 --> 00:40:19,370 Takže tu máme beer1.c, čo je jedna implementácia tejto 996 00:40:19,370 --> 00:40:20,580 osobitnú pieseň. 997 00:40:20,580 --> 00:40:23,110 A len preto, aby bolo jasno, pre tých, ktorí nepoznajú, čo 998 00:40:23,110 --> 00:40:24,460 tá vec vyzerá, nechaj ma ísť napred 999 00:40:24,460 --> 00:40:27,070 a aby beer1, Enter. 1000 00:40:27,070 --> 00:40:30,400 Teraz mi dovoľte bežať beer1, a to, čo uvidíme - koľko fliaš 1001 00:40:30,400 --> 00:40:31,140 piva bude? 1002 00:40:31,140 --> 00:40:33,240 Budem písať 99, rovnako ako pieseň hovorí. 1003 00:40:33,240 --> 00:40:34,040 Enter. 1004 00:40:34,040 --> 00:40:35,650 A teraz, keď sme sa prechádzať - 1005 00:40:35,650 --> 00:40:38,280 oops - ak by sme prechádzať cez to všetko, uvidíme, že 1006 00:40:38,280 --> 00:40:41,350 Tento skutočne spievať celú pesničku. 1007 00:40:44,050 --> 00:40:44,540 Počkajte chvíľku. 1008 00:40:44,540 --> 00:40:46,240 Môj scroll bar je trochu spackal. 1009 00:40:46,240 --> 00:40:47,940 Poďme používať väčšie okná. 1010 00:40:47,940 --> 00:40:53,500 Takže beer1, 99, tam ideme. 1011 00:40:53,500 --> 00:40:56,420 Takže tu máme celú skladbu, spievaný oveľa rýchlejšie 1012 00:40:56,420 --> 00:40:58,450 počítač, ako by to mohlo byť u nás. 1013 00:40:58,450 --> 00:41:00,340 Takže upozornenie, keď ide o cyklickú povahu tu. 1014 00:41:00,340 --> 00:41:03,380 Hovorí 99, potom 99, potom "vziať jednu dole, odovzdať ju 1015 00:41:03,380 --> 00:41:04,740 okolo, "potom 98. 1016 00:41:04,740 --> 00:41:06,640 A teraz sa opakuje znova a znova. 1017 00:41:06,640 --> 00:41:08,840 >> Takže je to vlastne ideálna príležitosť pre akési 1018 00:41:08,840 --> 00:41:10,400 konštrukcie cyklu. 1019 00:41:10,400 --> 00:41:12,950 Všimnite si, že som trochu rezanie roh tu. 1020 00:41:12,950 --> 00:41:15,960 Všimnite si, že hovorím "98 fliaš piva na stene, 1021 00:41:15,960 --> 00:41:19,010 97 fliaš piva na stene, "a že je to tak 1022 00:41:19,010 --> 00:41:21,640 že keď sa dostaneme k jednému fliaš piva, nemám 1023 00:41:21,640 --> 00:41:23,300 sa starať o anglickej gramatiky. 1024 00:41:23,300 --> 00:41:25,790 Ale môžeme tiež opraviť s trochou ak 1025 00:41:25,790 --> 00:41:26,910 stav, možno. 1026 00:41:26,910 --> 00:41:30,110 Ak je toto číslo je singulární, choďte do toho a povedať "fľašu", 1027 00:41:30,110 --> 00:41:31,840 inak, ak je to množné číslo, povedzme "fľaše". 1028 00:41:31,840 --> 00:41:34,150 Ale teraz, som úplne rezanie, ktorá roh. 1029 00:41:34,150 --> 00:41:35,520 Tak sa pozrieme, čo tu máme. 1030 00:41:35,520 --> 00:41:37,150 Takže máme niekoľko poznámok na vrchole. 1031 00:41:37,150 --> 00:41:39,450 Som vrátane týchto dvoch knižníc, as 1032 00:41:39,450 --> 00:41:41,140 sme obyčajne boli. 1033 00:41:41,140 --> 00:41:43,610 A teraz mi dovoľte prejdite nadol na prvý 1034 00:41:43,610 --> 00:41:44,990 skutočné riadky kódu. 1035 00:41:44,990 --> 00:41:47,020 Riadok 17 začína hlavné. 1036 00:41:47,020 --> 00:41:50,610 Linka 21 a 20 má koľko fliaš piva bude? 1037 00:41:50,610 --> 00:41:52,060 A potom som zavolať GetInt. 1038 00:41:52,060 --> 00:41:53,800 A teraz mám trochu zdravý rozum kontroly. 1039 00:41:53,800 --> 00:41:57,030 >> Tak to je konvencie, že budeme teraz začať prijímať na 1040 00:41:57,030 --> 00:41:59,620 prísnejšie kontrolovať vstup užívateľa. 1041 00:41:59,620 --> 00:42:01,710 Niekedy si jednoducho nechcú, aby prinútili ich znovu 1042 00:42:01,710 --> 00:42:02,630 a znova a znova. 1043 00:42:02,630 --> 00:42:05,620 Pokiaľ užívateľ skrutky a nespolupracuje, v poriadku. 1044 00:42:05,620 --> 00:42:07,430 Ukončite a jednoducho sa s nimi vysporiadať. 1045 00:42:07,430 --> 00:42:08,990 A tak to je to, čo tu robím. 1046 00:42:08,990 --> 00:42:12,520 Ak je n menšie ako 1, ja len tak kričať na užívateľa, 1047 00:42:12,520 --> 00:42:14,330 "Prepáč, to nedáva zmysel." A potom budem 1048 00:42:14,330 --> 00:42:16,650 ľubovoľne vrátiť 1. 1049 00:42:16,650 --> 00:42:18,550 Takže znova, je to len konvencie zvyknúť. 1050 00:42:18,550 --> 00:42:19,850 Pre túto chvíľu, si to o viere. 1051 00:42:19,850 --> 00:42:22,700 Ale až do teraz, sme vždy vracia 0, pretože 1052 00:42:22,700 --> 00:42:25,204 sme povedali vracia 0 označuje, čo? 1053 00:42:25,204 --> 00:42:26,000 Divákov: Úspech. 1054 00:42:26,000 --> 00:42:27,320 DAVID J. Malan: Úspech, to je všetko. 1055 00:42:27,320 --> 00:42:29,740 Takže teraz, že sme konečne začínajú premýšľať o tom, 1056 00:42:29,740 --> 00:42:31,330 non-úspechy - 1057 00:42:31,330 --> 00:42:33,760 inými slovami, rohové prípady, chybové podmienky - 1058 00:42:33,760 --> 00:42:37,520 teraz mám nekonečnú ponuku, alebo aspoň štyri miliardy 1059 00:42:37,520 --> 00:42:39,790 možné veci, ktoré sa môžu pokaziť v mojich programoch. 1060 00:42:39,790 --> 00:42:42,300 A môžem začať priradiť im jednotlivé číslice. 1061 00:42:42,300 --> 00:42:44,340 Teraz, všeobecne stačí len návrat 1062 00:42:44,340 --> 00:42:45,730 niečo iné ako 0. 1063 00:42:45,730 --> 00:42:48,040 Takže budeme jednoducho vrátiť 1 pre teraz. 1064 00:42:48,040 --> 00:42:51,440 Ale dôvodom pre vrátenie 1 je, že akonáhle sa vrátite 1065 00:42:51,440 --> 00:42:55,110 1, odhadnúť, čo sa stane so zvyškom programu? 1066 00:42:55,110 --> 00:42:55,720 To zastaví. 1067 00:42:55,720 --> 00:42:56,560 To je všetko. 1068 00:42:56,560 --> 00:42:59,150 Takže skutočnosť, že sa vraciam 1 je účinne 1069 00:42:59,150 --> 00:43:02,950 skratovaniu tohto programu popravu, aby 1070 00:43:02,950 --> 00:43:06,780 nič pod líniu 27 bude pokračovať v realizácii. 1071 00:43:06,780 --> 00:43:09,210 Akonáhle hlavné vráti, že je to. 1072 00:43:09,210 --> 00:43:13,160 >> Dobre, takže ak užívateľ nemá spolupracovať a dôjdeme riadok 30 1073 00:43:13,160 --> 00:43:15,680 pretože napísal v legitímnym číslo, tu je moja 1074 00:43:15,680 --> 00:43:16,990 vykonávanie tejto piesne. 1075 00:43:16,990 --> 00:43:19,050 Tak som prvýkrát vytlačiť znak nového riadku, len pre 1076 00:43:19,050 --> 00:43:19,880 estetika. 1077 00:43:19,880 --> 00:43:21,500 Teraz mám pre sláčiky. 1078 00:43:21,500 --> 00:43:22,930 A všimnite si, že robím veci trochu 1079 00:43:22,930 --> 00:43:23,880 iného smeru. 1080 00:43:23,880 --> 00:43:26,210 Nemám robiť menej, než, nemám k tomu + +. 1081 00:43:26,210 --> 00:43:30,660 Môžem povedať, miesto inicializovať premennú i, nastavte ju rovno 1082 00:43:30,660 --> 00:43:35,080 n, číslo užívateľa zadané v, potom to nasledujúce, tak 1083 00:43:35,080 --> 00:43:39,590 ak aj je väčšia ako 0, potom aj - 1084 00:43:39,590 --> 00:43:42,070 akonáhle ste dokončil jeden iterácii tohto cyklu. 1085 00:43:42,070 --> 00:43:44,310 Takže môžeme odpočítavať pomocou slučky for rovnako. 1086 00:43:44,310 --> 00:43:47,520 Teraz, to je docela hodně týždeň jedna vec teraz, s printf. 1087 00:43:47,520 --> 00:43:51,770 Takže tlače "fľaše% d piva na stene." Print "% d 1088 00:43:51,770 --> 00:43:54,990 fľaše piva. "" Vezmi si jeden dole, prejsť okolo. "Tlač 1089 00:43:54,990 --> 00:43:58,880 "% D fliaš piva na stene." Takže je to stále% d, ale 1090 00:43:58,880 --> 00:44:02,770 Všimnite si, že argument funkcie printf sa mení. 1091 00:44:02,770 --> 00:44:05,840 Po čiarkou, ja som, pretože chcem povedať 99. 1092 00:44:05,840 --> 00:44:08,590 Po tomto čiarkou, ja som, pretože chcem povedať 99. 1093 00:44:08,590 --> 00:44:14,030 Po tomto čiarkou, mám i - 1, pretože chcem povedať 98 v 1094 00:44:14,030 --> 00:44:16,260 Tento prvý iterácii, a tak ďalej. 1095 00:44:16,260 --> 00:44:18,520 A teraz tu dole, budem musieť nejakú blbú malú poznámku. 1096 00:44:18,520 --> 00:44:22,270 A potom riadok 42, vraciam 0 konvencií, znamenať, že 1097 00:44:22,270 --> 00:44:23,650 všetko je v poriadku. 1098 00:44:23,650 --> 00:44:24,490 >> A čo keď som podelal? 1099 00:44:24,490 --> 00:44:26,350 Čo by mohlo bežnou chybou tu byť? 1100 00:44:26,350 --> 00:44:29,200 No, čo keby som náhodou povedal dobre, ja chcem počítať 1101 00:44:29,200 --> 00:44:31,640 až 0, chcem 0 fliaš piva na stene? 1102 00:44:31,640 --> 00:44:34,620 Tak som povedal, aj je väčší alebo rovné 0. 1103 00:44:34,620 --> 00:44:38,920 Čo to bude príznak, ktorý teraz vidím, či som prekompilovať 1104 00:44:38,920 --> 00:44:41,173 beer1 a spustiť? 1105 00:44:41,173 --> 00:44:42,120 Divákov: Negatívne. 1106 00:44:42,120 --> 00:44:43,590 DAVID J. Malan: Jo, bude to ísť negatívne. 1107 00:44:43,590 --> 00:44:45,950 To je off-by-one chyba, neuveriteľne 1108 00:44:45,950 --> 00:44:47,270 Bežnou chybou robiť. 1109 00:44:47,270 --> 00:44:48,960 Poďme skutočne ísť späť do okna terminálu a to 1110 00:44:48,960 --> 00:44:50,620 tu, tak môžeme vidieť viac naraz. 1111 00:44:50,620 --> 00:44:53,280 Zadajte, 99 fliaš piva. 1112 00:44:53,280 --> 00:44:56,580 Zavrieť, ale išli sme niekedy tak trochu príliš ďaleko. 1113 00:44:56,580 --> 00:45:00,500 Spievali sme pieseň príliš ďaleko, tak, že teraz hit 1114 00:45:00,500 --> 00:45:01,510 záporné číslo. 1115 00:45:01,510 --> 00:45:03,680 Takže to nie je úplne fungovať. 1116 00:45:03,680 --> 00:45:06,450 >> Dobre, takže môžeme ľahko opraviť, že sa vracia do 1117 00:45:06,450 --> 00:45:07,650 spôsob, ako to kedysi bolo. 1118 00:45:07,650 --> 00:45:10,360 Ale čo sú niektoré možnosti teraz 1119 00:45:10,360 --> 00:45:11,190 zlepšenie? 1120 00:45:11,190 --> 00:45:17,200 No, dovoľte mi otvoriť beer2.c a prejdite sem a zobrať 1121 00:45:17,200 --> 00:45:19,310 pozri sa na túto verziu. 1122 00:45:19,310 --> 00:45:21,370 Čo je prvá vec, ktorá vyskočí na vás, ako rôzne 1123 00:45:21,370 --> 00:45:23,715 v tejto verzii tu? 1124 00:45:23,715 --> 00:45:24,190 PUBLIKUM: [nepočuteľnú]. 1125 00:45:24,190 --> 00:45:26,510 DAVID J. Malan: Jo, takže nič viac som, pretože došlo k 1126 00:45:26,510 --> 00:45:29,350 mi viete čo, ja sa pýtam užívateľa pre n, a potom som 1127 00:45:29,350 --> 00:45:33,580 nastavenie aj sa rovnať k n, a potom mením aj, ale ja som nikdy 1128 00:45:33,580 --> 00:45:34,590 dotýka n znovu. 1129 00:45:34,590 --> 00:45:37,390 Tak čo to sakra bol bod z vás prideľovanie ďalšie 32 1130 00:45:37,390 --> 00:45:45,210 bitov tzv i len preto, že môžem mať inú premennú? 1131 00:45:45,210 --> 00:45:47,960 Takže v tomto prípade, tak nejako som uznal, že zbytočné 1132 00:45:47,960 --> 00:45:49,190 charakteristika. 1133 00:45:49,190 --> 00:45:52,730 A ja som teraz chcel povedať, keď n je väčšie ako 0, prejdite 1134 00:45:52,730 --> 00:45:56,180 dopredu a vytlačiť rovnakú pesničku, odovzdaním n k printf ako 1135 00:45:56,180 --> 00:46:00,210 Druhý argument, a n - 1 ako druhý argument tu. 1136 00:46:00,210 --> 00:46:02,930 A potom na každej iterácii tohto cyklu, choďte do toho a len 1137 00:46:02,930 --> 00:46:05,080 decrement n sám. 1138 00:46:05,080 --> 00:46:06,960 Teraz, funkčne, tento program 1139 00:46:06,960 --> 00:46:08,010 bude totožné. 1140 00:46:08,010 --> 00:46:10,730 Keby som zadajte 99, n začína v 99. 1141 00:46:10,730 --> 00:46:12,890 Aj dekrement, dekrement, dekrement, útlm. 1142 00:46:12,890 --> 00:46:15,875 Idem si celú cestu až k "jednej fľaše piva na 1143 00:46:15,875 --> 00:46:16,740 stena, jedna fľaša piva. 1144 00:46:16,740 --> 00:46:18,020 Vezmite jeden dole, prejsť okolo. 1145 00:46:18,020 --> 00:46:21,480 0 fliaš piva na stene. "Koniec, pretože som 1146 00:46:21,480 --> 00:46:23,200 sa podmienka správne. 1147 00:46:23,200 --> 00:46:24,280 Je to väčšie ako 0. 1148 00:46:24,280 --> 00:46:26,220 Nechcel som, aby túto chybu. 1149 00:46:26,220 --> 00:46:28,470 >> Tak ktorý je lepší, verzia jeden alebo verziu dva? 1150 00:46:31,380 --> 00:46:33,480 Počul som veľa reptania pre dvoch. 1151 00:46:33,480 --> 00:46:34,730 Prečo dva? 1152 00:46:37,210 --> 00:46:38,225 Čo je to? 1153 00:46:38,225 --> 00:46:39,215 PUBLIKUM: [nepočuteľnú]. 1154 00:46:39,215 --> 00:46:40,070 DAVID J. Malan: Oh, dobre. 1155 00:46:40,070 --> 00:46:42,870 Takže to nepôjde pod 0, ale pamätajte, vo verzii jedna, 1156 00:46:42,870 --> 00:46:45,870 Originálne správnu verziu nešiel pod 0 oboch. 1157 00:46:45,870 --> 00:46:48,340 Takže pamätajte, že je to správna verzia. 1158 00:46:48,340 --> 00:46:51,630 Tak nech je to aspoň tieto dve správne verzie. 1159 00:46:51,630 --> 00:46:53,300 Čo je argumentom v prospech verzia 1160 00:46:53,300 --> 00:46:55,146 dva byť, mmm, lepšie? 1161 00:46:55,146 --> 00:46:55,642 Jo? 1162 00:46:55,642 --> 00:46:57,630 PUBLIKUM: To zaberá menej miesta. 1163 00:46:57,630 --> 00:46:59,530 DAVID J. Malan: Dobre, tak to zaberá menej miesta, nie? 1164 00:46:59,530 --> 00:47:02,900 Vzhľadom k tomu, ktorý sa používa verzia 32 bitov pre n, a potom ďalšie 1165 00:47:02,900 --> 00:47:07,680 32 bitov pre i 1166 00:47:07,680 --> 00:47:10,060 Verzia dve používa iba 32 bitov pre n, tak, aby 1167 00:47:10,060 --> 00:47:11,700 Zdá sa, že plus. 1168 00:47:11,700 --> 00:47:12,950 Ostatné myšlienky? 1169 00:47:18,070 --> 00:47:21,520 Má niekto chcel argumentovať v prospech jedného? 1170 00:47:21,520 --> 00:47:22,070 Jo? 1171 00:47:22,070 --> 00:47:25,240 PUBLIKUM: Musíte použiť ďalší riadok kódu pre n -. 1172 00:47:25,240 --> 00:47:26,090 >> DAVID J. Malan: Dobre, určite. 1173 00:47:26,090 --> 00:47:26,960 Takže to je fér. 1174 00:47:26,960 --> 00:47:29,040 Takže to len, aspoň pre mňa - 1175 00:47:29,040 --> 00:47:31,940 Chcem povedať, toto skutočne cíti trochu Messier, skutočnosť, že 1176 00:47:31,940 --> 00:47:35,120 Nemôžem nejako zapouzdřit všetky moje logiky v jednom 1177 00:47:35,120 --> 00:47:38,030 prekrásna line, pre slučky, ako pre sláčiky môže. 1178 00:47:38,030 --> 00:47:40,240 Tu, som tak trochu sa k obratu na tejto n - 1179 00:47:40,240 --> 00:47:41,120 Na konci slučky, pretože 1180 00:47:41,120 --> 00:47:42,550 je to logicky nutné. 1181 00:47:42,550 --> 00:47:45,190 Ale celkom to leští mi zle, len preto, že 1182 00:47:45,190 --> 00:47:48,260 Zdá sa oddelene od logiky sa tu, aj keď, 1183 00:47:48,260 --> 00:47:49,430 znova, je to nutné. 1184 00:47:49,430 --> 00:47:50,990 Ostatné myšlienky? 1185 00:47:50,990 --> 00:47:51,490 Jo? 1186 00:47:51,490 --> 00:47:52,740 PUBLIKUM: [nepočuteľnú]. 1187 00:47:57,990 --> 00:47:58,350 >> DAVID J. Malan: Jo. 1188 00:47:58,350 --> 00:48:00,730 Takže čo keď miesto toho, na konci skladby, chcel 1189 00:48:00,730 --> 00:48:02,950 vytlačiť znovu názov piesne? 1190 00:48:02,950 --> 00:48:05,660 Ako "Vďaka za hranie 99 fliaš piva", alebo niečo 1191 00:48:05,660 --> 00:48:06,690 hlúpe takto? 1192 00:48:06,690 --> 00:48:09,750 Ale ide o to, čo ste chceli prístup k pôvodnej hodnoty. 1193 00:48:09,750 --> 00:48:13,180 Skutočnosť, že ste mutované alebo zmeniť n na každom 1194 00:48:13,180 --> 00:48:16,330 iterácie, a preto sa zničil jeho pôvodnú hodnotu 1195 00:48:16,330 --> 00:48:18,650 znamená, že jednoducho nemôže robiť, že na konci. 1196 00:48:18,650 --> 00:48:20,660 Teraz, pravdepodobne sme jasne nechceme robiť 1197 00:48:20,660 --> 00:48:21,450 , Že v tomto programe. 1198 00:48:21,450 --> 00:48:22,350 Takže koho to zaujíma? 1199 00:48:22,350 --> 00:48:23,630 Ale to je veľmi platný bod. 1200 00:48:23,630 --> 00:48:25,520 A aby som bol úprimný, je to naozaj nikto 1201 00:48:25,520 --> 00:48:26,630 správna odpoveď tu. 1202 00:48:26,630 --> 00:48:28,740 Sú obaja rovnako správne. 1203 00:48:28,740 --> 00:48:30,210 Mohol by som byť presvedčený o tom, v oboch smeroch. 1204 00:48:30,210 --> 00:48:33,310 Nebudem hovoriť, že, všeobecne, je to dobrá zásada, ak 1205 00:48:33,310 --> 00:48:36,030 požiadal užívateľa o nejakej hodnoty a je uložený v premennej 1206 00:48:36,030 --> 00:48:38,730 ako n, len trochu na princípe, že je to asi dobre 1207 00:48:38,730 --> 00:48:40,160 aby, že okolo. 1208 00:48:40,160 --> 00:48:43,400 A akékoľvek dáta, ktoré chcete mutovať znova a znova, len 1209 00:48:43,400 --> 00:48:46,030 dať si kópiu tejto premennej, len preto, že ste 1210 00:48:46,030 --> 00:48:47,830 majú prístup k originálu. 1211 00:48:47,830 --> 00:48:51,040 Nachádzate sa trávia 32 viac bitov, ale realita je to 1212 00:48:51,040 --> 00:48:53,490 počítač, softvér, dva gigabajty pamäte RAM v týchto dňoch, 1213 00:48:53,490 --> 00:48:55,310 a my sme hašterenie cez 32 bitov? 1214 00:48:55,310 --> 00:48:56,320 Naozaj nie je tak veľký problém. 1215 00:48:56,320 --> 00:48:58,550 A aj na tomto zariadení tu, s polovicou koncertu alebo 1216 00:48:58,550 --> 00:49:01,700 gigabyte RAM, 32 bitov oproti 64 bitov, 1217 00:49:01,700 --> 00:49:02,920 nie je tak veľký problém. 1218 00:49:02,920 --> 00:49:05,890 Iste dnes, to bude tak ohromený podľa veľkosti 1219 00:49:05,890 --> 00:49:08,400 samotnom programe, ktorý bude mať niekoľko stoviek 1220 00:49:08,400 --> 00:49:10,890 kB, ak nie niekoľko megabajtov, v týchto dňoch. 1221 00:49:10,890 --> 00:49:13,550 >> Takže rozumné obavy, nie jediná správna odpoveď. 1222 00:49:13,550 --> 00:49:15,490 Ale aspoň to sú myšlienky, ktoré by mali začať na 1223 00:49:15,490 --> 00:49:16,790 prejsť vašej mysle? 1224 00:49:16,790 --> 00:49:19,600 Pretože v PSet 0, aj keď naozaj len čakal, 1225 00:49:19,600 --> 00:49:22,340 správnosť, alebo aspoň popretie rôzne chyby, že 1226 00:49:22,340 --> 00:49:25,440 môžete sa stretli, ako sme vpred, dizajn 1227 00:49:25,440 --> 00:49:27,910 bude ďalším kľúčovým aspektom, a to ako z písania kódu 1228 00:49:27,910 --> 00:49:29,770 a tiež naše hodnotenie kód. 1229 00:49:29,770 --> 00:49:32,310 A tak aspoň dať si na veci, ako je tento. 1230 00:49:32,310 --> 00:49:35,590 A len preto, že niečo funguje neznamená že je to dobré, 1231 00:49:35,590 --> 00:49:37,130 neznamená, že je to dobre navrhnutý. 1232 00:49:37,130 --> 00:49:38,820 A to je jedna z vecí, ktoré výučby lektorov a 1233 00:49:38,820 --> 00:49:41,990 problém sady nám pomôže podpichovať časť v priebehu času. 1234 00:49:41,990 --> 00:49:45,020 >> No, čo asi, povedzme, túto verziu tu? 1235 00:49:45,020 --> 00:49:49,090 Dovoľte mi, aby som niečo trochu sexy tu za chvíľu. 1236 00:49:49,090 --> 00:49:50,740 Najprv mi dovoľte sa zbaviť toho. 1237 00:49:50,740 --> 00:49:54,120 A teraz poďme vyriešiť tento gramatický problém. 1238 00:49:54,120 --> 00:49:58,780 Takže v tejto verzii, chcem opraviť gramatiku tak, aby 1239 00:49:58,780 --> 00:50:02,460 skôr než len povedať vsunutie s, rovnako ako "fľašu" 1240 00:50:02,460 --> 00:50:03,360 alebo "fľaše" - 1241 00:50:03,360 --> 00:50:04,900 Nechcem znižovať, aby roh - 1242 00:50:04,900 --> 00:50:08,350 Chcem tiež dynamicky vytlačiť slovo "fľaše" 1243 00:50:08,350 --> 00:50:12,820 alebo "fľašu", čím sa pomocou týchto% s zástupné symboly dnes. 1244 00:50:12,820 --> 00:50:16,550 Tak som potrebné podmienečne zistiť, aká je hodnota i 1245 00:50:16,550 --> 00:50:19,590 A či je to 1, chcem povedať, "fľašu", a ak je to niečo 1246 00:50:19,590 --> 00:50:23,115 iného, ​​chcem povedať, "fliaš". Tak skúsme to. 1247 00:50:23,115 --> 00:50:31,340 Takže ak aj == 1, potom nechajte ma ísť dopredu a vyhlásiť - 1248 00:50:31,340 --> 00:50:34,080 Potrebujem reťazec, tak nech mi to reťazec s1, pretože je to 1249 00:50:34,080 --> 00:50:36,070 Prvý reťazec ja sa starám o práve teraz. 1250 00:50:36,070 --> 00:50:40,980 Ja poviem "fľašu". A potom, uvidíme, string 1251 00:50:40,980 --> 00:50:43,110 s2 - a ja ti to vysvetlím, kam idem za chvíľu - 1252 00:50:43,110 --> 00:50:47,650 "Fľaše". Takže pripomenúť, že v tejto piesni, musíme byť schopní 1253 00:50:47,650 --> 00:50:50,580 tlačiť veci, dve rôzne slová potenciálne. 1254 00:50:50,580 --> 00:50:53,590 Takže keď sa pozrieme späť, zistíte, že keď sa dostaneme do 1255 00:50:53,590 --> 00:50:56,440 tento príklad tu, "dve fľaše piva na stene, 1256 00:50:56,440 --> 00:50:59,490 dve fľaše piva, vziať jednu dole, prejsť okolo ", chcem 1257 00:50:59,490 --> 00:51:02,380 Tento štvrtý riadok sa dnes hovorí, "jednu fľašu piva na 1258 00:51:02,380 --> 00:51:04,900 múr ". Tak som potrebné rozhodnúť, chcem povedať," fliaš "alebo 1259 00:51:04,900 --> 00:51:07,780 "Bottle"? Takže budem ľubovoľne povedať, dobre, 1260 00:51:07,780 --> 00:51:10,530 Idem teraz deklaruje premennú s názvom S1, reťazec 1261 00:51:10,530 --> 00:51:13,830 jeden, ktorý ich dostane zapojený sem aj tu, 1262 00:51:13,830 --> 00:51:16,070 pretože tieto slová sú vždy zhodné, len preto, že z 1263 00:51:16,070 --> 00:51:17,290 povaha piesne. 1264 00:51:17,290 --> 00:51:20,100 A ja idem volať s2, čo slovo chcem 1265 00:51:20,100 --> 00:51:21,560 nakoniec sa objaví tu. 1266 00:51:21,560 --> 00:51:25,530 Teraz, doslova, 99 krát z 100, to bude 1267 00:51:25,530 --> 00:51:28,820 rovnaký v oboch týchto prípadoch, pretože 3 je množné číslo, 2 je 1268 00:51:28,820 --> 00:51:30,200 množné číslo, 4 je množné. 1269 00:51:30,200 --> 00:51:34,640 Ale v tomto rohu prípade, kedy sa dostaneme do 2 a potom 1, alebo 1270 00:51:34,640 --> 00:51:37,250 dokonca 1 a potom 0, musím túto logiku. 1271 00:51:37,250 --> 00:51:41,020 Tak som sa stráviť nejaký čas v mojom kóde dostať toto právo. 1272 00:51:41,020 --> 00:51:47,530 Takže ak som to, keď som == 1, potom nastaviť s1 rovná "fľašu" 1273 00:51:47,530 --> 00:51:52,010 a s2 presne "fliaš", pretože to bude pre 1 1274 00:51:52,010 --> 00:51:56,340 Fľaša, a to bude pre 0 fliaš. 1275 00:51:56,340 --> 00:51:58,250 A toto, čo to predstavuje? 1276 00:51:58,250 --> 00:51:59,780 Len aby bolo jasno. 1277 00:51:59,780 --> 00:52:00,620 To je len poznámka. 1278 00:52:00,620 --> 00:52:03,730 Takže skutočnosť, že môžete mať jednoriadkové komentáre sa rozumie vás 1279 00:52:03,730 --> 00:52:06,110 môže vyjadriť svoj kód, ako je tento, ale ďalšie spoločné 1280 00:52:06,110 --> 00:52:09,050 paradigma, tiež je, že ak máte super krátku frázu, ktorá 1281 00:52:09,050 --> 00:52:11,410 Chcete sa vžiť a je to len čitateľnejší, aby 1282 00:52:11,410 --> 00:52:13,270 to priamo na konci riadku kódu, môžete 1283 00:52:13,270 --> 00:52:15,230 úplne niečo takého. 1284 00:52:15,230 --> 00:52:20,150 >> Takže čo teraz, ak to urobiť? Else ak je aj nie je rovné 1. 1285 00:52:20,150 --> 00:52:21,620 Takže bang rovná - 1286 00:52:21,620 --> 00:52:23,150 Výkričník je známy ako "bang". 1287 00:52:23,150 --> 00:52:25,080 Takže bang = 1. 1288 00:52:25,080 --> 00:52:28,530 Takže ak je aj nie je rovné 1, čo mám namiesto toho chcete robiť? 1289 00:52:28,530 --> 00:52:31,700 No, prvé slovo, ktoré som chcem byť čo? 1290 00:52:34,620 --> 00:52:40,030 Takže reťazec 1 by mala byť "fľaše" pre pluralitných fliaš, 1291 00:52:40,030 --> 00:52:42,440 a potom to bude množné "fľaše" dobre, pretože teraz. 1292 00:52:42,440 --> 00:52:43,800 A uvidíme, či to tak skutočne dostane k nám na 1293 00:52:43,800 --> 00:52:44,870 kde chceme ísť. 1294 00:52:44,870 --> 00:52:47,680 Takže teraz, keď som sa posunúť dole tu, všimnite si, že som pripojením 1295 00:52:47,680 --> 00:52:50,170 nielen ja, ale s1. 1296 00:52:50,170 --> 00:52:51,860 Som zapojíte i a S1. 1297 00:52:51,860 --> 00:52:54,440 A potom sa tu, že som mínus 1, ktorý je rovnaký ako 1298 00:52:54,440 --> 00:52:55,920 pred, ale s2. 1299 00:52:55,920 --> 00:52:58,730 Inými slovami, chcem anglické slovo zmeniť na základe 1300 00:52:58,730 --> 00:52:59,930 Na základe tejto logiky. 1301 00:52:59,930 --> 00:53:03,310 Teraz je tu už niektoré problémy v tomto kóde. 1302 00:53:03,310 --> 00:53:08,460 Čo je rozbité už z brány tu? 1303 00:53:08,460 --> 00:53:10,796 Jo? 1304 00:53:10,796 --> 00:53:13,210 PUBLIKUM: [nepočuteľnú]. 1305 00:53:13,210 --> 00:53:13,800 >> DAVID J. Malan: Presne tak. 1306 00:53:13,800 --> 00:53:16,030 Takže som už porušil lekciu rozsahu. 1307 00:53:16,030 --> 00:53:19,610 Tak som vyhlásil s1 a s2, ale urobil som to vnútri 1308 00:53:19,610 --> 00:53:22,980 Zložené zátvorky, čo znamená, jo, bude tento kód fungovať až 1309 00:53:22,980 --> 00:53:27,430 do riadku 42, ale akonáhle som narazila riadok 43, hádajte čo nie 1310 00:53:27,430 --> 00:53:28,900 už existuje? 1311 00:53:28,900 --> 00:53:32,600 No, vieš čo je už v rozsahu - ani s1 alebo s2. 1312 00:53:32,600 --> 00:53:33,780 Takže musíme to opraviť. 1313 00:53:33,780 --> 00:53:36,180 Dovoľte mi teda odstrániť vyhlásenie. 1314 00:53:36,180 --> 00:53:39,320 A nechám názvy premenných a odstrániť to tu 1315 00:53:39,320 --> 00:53:40,120 a odstrániť to tu. 1316 00:53:40,120 --> 00:53:43,557 A v tom, čo riadky by mali naozaj vyhlásiť tieto veci? 1317 00:53:43,557 --> 00:53:44,960 PUBLIKUM: [nepočuteľnú]. 1318 00:53:44,960 --> 00:53:45,410 DAVID J. Malan: Jo, tak asi 1319 00:53:45,410 --> 00:53:46,850 priamo tu, 33-ish. 1320 00:53:46,850 --> 00:53:50,670 Takže reťazca s1 a potom reťazec s2. 1321 00:53:50,670 --> 00:53:51,950 A ukázalo sa, ja to zvládnem. 1322 00:53:51,950 --> 00:53:54,260 Ak ste prehlasuje dve premenné rovnakého typu, 1323 00:53:54,260 --> 00:53:57,420 môžete skutočne stačí použiť čiarku a to, že v C. Všetky 1324 00:53:57,420 --> 00:53:58,970 Dobre, takže teraz mám dve premenné - 1325 00:53:58,970 --> 00:53:59,860 s1 a s2. 1326 00:53:59,860 --> 00:54:02,000 Ja priradiť im hodnoty v týchto 1327 00:54:02,000 --> 00:54:04,210 podmienky tu, alebo tu. 1328 00:54:04,210 --> 00:54:06,690 A potom som pomocou je dole. 1329 00:54:06,690 --> 00:54:10,960 Ako dobre sa to teraz bude fungovať? 1330 00:54:10,960 --> 00:54:12,740 >> No, je to stále trochu buggy, ale poďme aspoň vidieť 1331 00:54:12,740 --> 00:54:13,730 ako ďaleko sme sa dostali. 1332 00:54:13,730 --> 00:54:16,500 Tak nechaj ma ísť dopredu a robiť beer3. 1333 00:54:16,500 --> 00:54:17,695 Je to beer3? 1334 00:54:17,695 --> 00:54:19,410 Jo, to je beer3. 1335 00:54:19,410 --> 00:54:21,510 A teraz mi dovoľte pokračovať a spustiť beer3. 1336 00:54:21,510 --> 00:54:23,820 399 99. 1337 00:54:23,820 --> 00:54:25,840 Pravdepodobne môžeme preskočiť väčšinu z nich. 1338 00:54:25,840 --> 00:54:29,100 A tu dole, pozri sa na to. 1339 00:54:29,100 --> 00:54:31,110 "Jedna fľaša piva na stene, jedna fľaša piva, sa 1340 00:54:31,110 --> 00:54:34,306 jeden dole, prejsť okolo, 0 fliaš piva na stene. " 1341 00:54:34,306 --> 00:54:37,570 Ale ja som kreslenie pozornosť iba polovicu roztoku. 1342 00:54:37,570 --> 00:54:39,620 Druh podelal tu. 1343 00:54:39,620 --> 00:54:43,030 Takže sa zdá, že rohové prípady nastávajú, ak aj rovnajú tomu, čo 1344 00:54:43,030 --> 00:54:44,030 dve hodnoty? 1345 00:54:44,030 --> 00:54:45,020 PUBLIKUM: 2, 1. 1346 00:54:45,020 --> 00:54:46,190 DAVID J. Malan: 2 a 1. 1347 00:54:46,190 --> 00:54:48,180 Nie je to 1 a nie 1. 1348 00:54:48,180 --> 00:54:51,890 Je to naozaj len tieto dve posledné slohy tejto piesne. 1349 00:54:51,890 --> 00:54:53,890 Takže to, čo mám namiesto toho chcete robiť? 1350 00:54:53,890 --> 00:54:58,890 Tak sa mi zdá, že chytil na prípad, kedy ak je i == až 1, 1351 00:54:58,890 --> 00:55:02,240 potom prvé slovo je "fľašu", ale druhé slovo 1352 00:55:02,240 --> 00:55:07,230 je "fľaše". Ale tu, chcem to zmeniť, aby bolo == 2. 1353 00:55:07,230 --> 00:55:08,570 A ak to tak je, čo ja chcem 1354 00:55:08,570 --> 00:55:09,620 prvé slovo má byť? 1355 00:55:09,620 --> 00:55:10,430 PUBLIKUM: "Fľaše". 1356 00:55:10,430 --> 00:55:12,890 DAVID J. Malan: "Fľaše", tak za dve fľaše. 1357 00:55:12,890 --> 00:55:14,690 A potom je tu slovo by malo byť - 1358 00:55:14,690 --> 00:55:15,340 PUBLIKUM: "Bottle". 1359 00:55:15,340 --> 00:55:17,316 DAVID J. Malan: "Bottle", singulární. 1360 00:55:20,430 --> 00:55:25,160 >> Dobre, poďme vzdialite, vrátiť sa sem, re-spustite make, 1361 00:55:25,160 --> 00:55:28,590 re-run beer3, typ 99 znovu. 1362 00:55:28,590 --> 00:55:30,710 Dobre, "Segmentation fault (core dumpingové)." 1363 00:55:30,710 --> 00:55:32,780 Čo som urobil zle? 1364 00:55:36,050 --> 00:55:38,722 PUBLIKUM: Nemáte hodnotu [nepočuteľnú]. 1365 00:55:38,722 --> 00:55:40,480 DAVID J. Malan: Ah, vynikajúci bod. 1366 00:55:40,480 --> 00:55:43,310 Dobre, tak čo je zle? 1367 00:55:43,310 --> 00:55:45,450 Takže Segmentation fault, a my vlastne bude vidieť 1368 00:55:45,450 --> 00:55:49,020 tento docela niekoľkokrát v budúcnosti, zámerne. 1369 00:55:49,020 --> 00:55:51,030 Ale teraz, čo to vlastne znamená? 1370 00:55:51,030 --> 00:55:53,620 Segmentation fault takmer vždy znamená, že máte 1371 00:55:53,620 --> 00:55:56,760 nejako sa pokúsil o prístup pamäte, RAM v počítači, 1372 00:55:56,760 --> 00:56:00,600 že nevlastníte, že ste v skutočnosti požiadal 1373 00:56:00,600 --> 00:56:02,050 operačný systém pre. 1374 00:56:02,050 --> 00:56:04,440 Takže v tomto prípade, upozornenia, čo som urobil, čo je 1375 00:56:04,440 --> 00:56:05,870 chybný v mojom logike. 1376 00:56:05,870 --> 00:56:09,500 Som previedol S1 a S2 hodnotu, ak aj rovná 1. 1377 00:56:09,500 --> 00:56:11,590 Tiež som urobil, že keď som sa rovná 2. 1378 00:56:11,590 --> 00:56:13,710 Ale ja som to neurobil v nekonečnej rade ďalších 1379 00:56:13,710 --> 00:56:14,690 možnosti - 1380 00:56:14,690 --> 00:56:17,940 najmä, 3 alebo 4, alebo bodka, bodka, bodka, 99. 1381 00:56:17,940 --> 00:56:20,100 Takže jedna oprava by to mohlo byť len poďme 1382 00:56:20,100 --> 00:56:22,190 majú iného stavu. 1383 00:56:22,190 --> 00:56:26,780 A nechaj ma ísť sem a povedať s1 rovná - 1384 00:56:26,780 --> 00:56:28,180 čo by malo byť? 1385 00:56:28,180 --> 00:56:28,750 PUBLIKUM: [nepočuteľnú]. 1386 00:56:28,750 --> 00:56:30,460 >> DAVID J. Malan: "Fľaše", pretože v bežnom prípade, 1387 00:56:30,460 --> 00:56:32,020 je to len samé. 1388 00:56:32,020 --> 00:56:35,580 Takže sa rovná quote, koniec citátu, "fľaše." Takže pre množné 1389 00:56:35,580 --> 00:56:41,010 fľaše, a potom tu, plurálovej fliaš. 1390 00:56:41,010 --> 00:56:44,580 Dobre, takže teraz mi dovoľte vrátiť sa k môjmu terminálovom okne, 1391 00:56:44,580 --> 00:56:47,200 rekompilovat, re-spustiť. 1392 00:56:47,200 --> 00:56:48,440 99. 1393 00:56:48,440 --> 00:56:49,150 Uff. 1394 00:56:49,150 --> 00:56:50,610 A poďme urobiť rýchly zdravý rozum kontrolu. 1395 00:56:50,610 --> 00:56:52,400 Technicky, že chceme, aby si všetky tieto, aby sa ubezpečil 1396 00:56:52,400 --> 00:56:53,370 sú správne, ale poďme sa pozrieť na 1397 00:56:53,370 --> 00:56:54,640 najmenej známe vinníkov. 1398 00:56:54,640 --> 00:56:57,370 3 fľaše, 2 fľaše, 2 fľaše, 1 1399 00:56:57,370 --> 00:57:00,380 fľaša, 1 fľaša, 0 fľaše. 1400 00:57:00,380 --> 00:57:03,080 Zdá sa, že sa aspoň stanoviť je pre teraz. 1401 00:57:03,080 --> 00:57:06,010 Ale úlovok je, že to, čo boh hrozné bordel je to 1402 00:57:06,010 --> 00:57:07,470 len vyriešiť hlúpy 1403 00:57:07,470 --> 00:57:09,540 jeden znak gramatické detail. 1404 00:57:09,540 --> 00:57:11,150 Takže tam je trochu toho dôvodu, že som rez tohto kúta 1405 00:57:11,150 --> 00:57:14,090 skôr, pretože je to len celkom nepríjemné musieť 1406 00:57:14,090 --> 00:57:15,020 napísať toľko kód. 1407 00:57:15,020 --> 00:57:17,530 Ale ukazuje sa, že je tu niečo viac elegantné spôsoby 1408 00:57:17,530 --> 00:57:20,110 vyjadrujúce presne to isté. 1409 00:57:20,110 --> 00:57:22,040 A môžeme to takto. 1410 00:57:22,040 --> 00:57:23,890 >> Dovoľte mi, aby som ponechať na obrazovke na chvíľu a 1411 00:57:23,890 --> 00:57:27,320 predstaviť niečo známy ako ternárny operátor. 1412 00:57:27,320 --> 00:57:29,600 To je tak trochu one-vložky, ktorá je len chcel, aby sa naše 1413 00:57:29,600 --> 00:57:31,880 žije trochu zvodnejšie, ako sľúbil. 1414 00:57:31,880 --> 00:57:33,130 A ja budem robiť to takto. 1415 00:57:33,130 --> 00:57:35,810 Daj mi reťazec s názvom s1, a dovoľte mi, aby som 1416 00:57:35,810 --> 00:57:37,200 priradiť to nasledujúcim spôsobom. 1417 00:57:37,200 --> 00:57:39,900 (I == 1)? 1418 00:57:39,900 --> 00:57:47,820 "Fľaša", inak "fľaše". String s2 dostane (i == 2)? 1419 00:57:47,820 --> 00:57:52,670 "Fľaša", inak "fľaše". 1420 00:57:52,670 --> 00:57:57,050 Takže to, čo je teda rozdiel? 1421 00:57:57,050 --> 00:57:59,370 Tieto dva riadky kódu, tvrdím, môže 1422 00:57:59,370 --> 00:58:02,200 nahradiť celú neporiadok. 1423 00:58:02,200 --> 00:58:04,280 Tak hovorím, že neporiadok, len preto, že druh trie mi 1424 00:58:04,280 --> 00:58:05,940 zle, že je to tak veľa riadkov kódu. 1425 00:58:05,940 --> 00:58:06,650 Nie je zlé. 1426 00:58:06,650 --> 00:58:07,700 Nie je to zlý dizajn. 1427 00:58:07,700 --> 00:58:10,140 Rovnako ako, to je úplne správne a úplne v poriadku. 1428 00:58:10,140 --> 00:58:12,970 Ale kódovanie dostane únavné, ak budete mať možnosť vyjadriť sa tak 1429 00:58:12,970 --> 00:58:15,530 zatraceně konkrétne znovu a znovu a znovu s jednoduchou 1430 00:58:15,530 --> 00:58:16,620 scenár takhle. 1431 00:58:16,620 --> 00:58:19,470 Takže C má niektoré klávesové skratky, ako je tento. 1432 00:58:19,470 --> 00:58:24,270 Takže to v podstate hovorí, deklarovať reťazec s názvom s1 a 1433 00:58:24,270 --> 00:58:32,610 priradiť buď táto hodnota, alebo je táto hodnota ak je i == - 1434 00:58:32,610 --> 00:58:35,290 ľúto, mal to povedať jasnejšie. 1435 00:58:35,290 --> 00:58:41,680 Deklarovať premennú s1, priradiť jej túto hodnotu, ak je to pravda. 1436 00:58:41,680 --> 00:58:44,280 V opačnom prípade, priraďte túto hodnotu. 1437 00:58:44,280 --> 00:58:47,220 Takže inými slovami, to je druh jednoriadkové spôsobu 1438 00:58:47,220 --> 00:58:51,490 hovorí Ak iný, ale robí úlohu na ceste. 1439 00:58:51,490 --> 00:58:55,540 Takže ak i = 1, potom choďte do toho a hovoria "fľašu". A 1440 00:58:55,540 --> 00:58:59,830 potom to ostatné, nazývať to "fľaše". Medzitým, s2, 1441 00:58:59,830 --> 00:59:04,060 Druhé slovo, ktoré je potrebné definovať, či aj rovná 2, zídeme sa 1442 00:59:04,060 --> 00:59:08,350 nastaviť s2 na "fľašu". V opačnom prípade, nastavte ju na "fliaš". A čo 1443 00:59:08,350 --> 00:59:11,460 to znamená, teraz ich môžem prejsť a odstrániť všetky 1444 00:59:11,460 --> 00:59:12,860 tie riadky kódu. 1445 00:59:12,860 --> 00:59:17,220 A keď hovorím, trochu smiešne, že je to teraz 1446 00:59:17,220 --> 00:59:20,060 zvodnejšie, je to sexy v druhu štylistické zmysle. 1447 00:59:20,060 --> 00:59:22,660 Skutočnosť, že funkčne, tento kód bude skutočne 1448 00:59:22,660 --> 00:59:24,610 urobiť presne to isté. 1449 00:59:24,610 --> 00:59:26,890 A aj keď to môže vyzerať trochu záhadný na prvý 1450 00:59:26,890 --> 00:59:29,250 pohľad, pretože sme to videli túto konštrukciu pred, tak by som 1451 00:59:29,250 --> 00:59:31,850 tvrdí, že to nakoniec bude oveľa viac 1452 00:59:31,850 --> 00:59:34,820 čitateľné a tak oveľa jednoduchšie pre my ľudia sa trochu 1453 00:59:34,820 --> 00:59:36,830 pochopiť, pretože teraz môžete len čítať 1454 00:59:36,830 --> 00:59:38,830 Kód na jednom riadku. 1455 00:59:38,830 --> 00:59:41,550 Je to stále podobné ducha vtedy, ak je to 1456 00:59:41,550 --> 00:59:44,920 stav a potom je to to, čo je vo vnútri, ak, a to 1457 00:59:44,920 --> 00:59:46,480 je to, čo je vo vnútri iného. 1458 00:59:46,480 --> 00:59:49,450 Ale môžeme urobiť len oveľa viac elegantne. 1459 00:59:49,450 --> 00:59:52,650 >> A keď som teraz späť k môjmu terminálu, čo budú všetky 1460 00:59:52,650 --> 00:59:55,530 z týchto liniek a nahradil ich len tých dvoch, 1461 00:59:55,530 --> 01:00:00,150 rekompilovat, re-run fliaš piva s 99, všimnite si, že moja 1462 01:00:00,150 --> 01:00:03,350 gramatika je, v skutočnosti, stále správna. 1463 01:00:03,350 --> 01:00:06,160 Takže znova, niečo začať. 1464 01:00:06,160 --> 01:00:08,840 2 fľaše piva, 1 fľašu piva. 1465 01:00:08,840 --> 01:00:09,370 Vyzerá dobre. 1466 01:00:09,370 --> 01:00:10,100 Jo. 1467 01:00:10,100 --> 01:00:13,900 Tak tu to máme oveľa stručnejší riešenie. 1468 01:00:13,900 --> 01:00:16,020 Tak toto taky, ako si získať viac vyhovuje C, nie 1469 01:00:16,020 --> 01:00:18,630 nutne s prvým PSet alebo aj druhé, ale 1470 01:00:18,630 --> 01:00:21,170 si uvedomiť, že tieto pojmy nám umožní robiť veci stále 1471 01:00:21,170 --> 01:00:22,810 viac elegantne. 1472 01:00:22,810 --> 01:00:25,200 Teraz sa poďme urobiť jednu vec tu. 1473 01:00:25,200 --> 01:00:31,460 Nechaj ma ísť napred a otvoriť return1.c. 1474 01:00:31,460 --> 01:00:34,340 Teraz poďme začať riešiť ďalší problém spôsobom, ktorý 1475 01:00:34,340 --> 01:00:37,140 nám umožňuje písať sofistikovanejšie kód. 1476 01:00:37,140 --> 01:00:39,960 >> Tak tu je to jednoduchý malý program, ktorého zmysel života 1477 01:00:39,960 --> 01:00:41,870 je zvýšiť hodnoty. 1478 01:00:41,870 --> 01:00:43,100 A skutočne, poďme o krok späť. 1479 01:00:43,100 --> 01:00:44,400 Nechaj ma to urobiť ručne. 1480 01:00:44,400 --> 01:00:52,200 Dovoľte mi, aby som to patrí a int main (void). 1481 01:00:52,200 --> 01:00:53,450 A dovoľte mi, aby som volanie tejto increment.c. 1482 01:00:57,150 --> 01:00:58,570 A čo chcem robiť? 1483 01:00:58,570 --> 01:01:02,240 Chystám sa ísť dopredu a povedať niečo ako - 1484 01:01:02,240 --> 01:01:04,280 budeme volať čísla rovnaká - 1485 01:01:04,280 --> 01:01:04,980 int x. 1486 01:01:04,980 --> 01:01:13,670 Takže int x dostane 2; printf x je% d, nový riadok, x. 1487 01:01:13,670 --> 01:01:16,780 Takže píšem rýchlo, ale nejako známe veci teraz. 1488 01:01:16,780 --> 01:01:18,830 Potom budem robiť x + +. 1489 01:01:18,830 --> 01:01:21,710 Potom budem tlačiť rovnakú vetu znovu. 1490 01:01:21,710 --> 01:01:24,550 A potom budem vracať 0 len ukončite program. 1491 01:01:24,550 --> 01:01:25,960 Dobre, tak to je program, ktorý 1492 01:01:25,960 --> 01:01:26,960 zvýši číslo. 1493 01:01:26,960 --> 01:01:29,830 Je to prvá bude inicializovať niečo 2, a potom je to 1494 01:01:29,830 --> 01:01:33,470 bude zvyšovať, a vytlačiť znovu. 1495 01:01:33,470 --> 01:01:36,930 >> Takže poďme spustiť prírastok, neuveriteľne jednoduchý program. 1496 01:01:36,930 --> 01:01:40,940 Predpokladajme však, že teraz, že chcem, aby kocka hodnotu, tak sa 1497 01:01:40,940 --> 01:01:42,490 niečo trochu subjektívne. 1498 01:01:42,490 --> 01:01:45,140 A ja vlastne chcem robiť x dostane kocku neho. 1499 01:01:45,140 --> 01:01:47,570 Takže by som mohol použiť to, čo sa nazýva funkcia pow, ale ja nie 1500 01:01:47,570 --> 01:01:48,650 Naozaj viete, kde to je ešte. 1501 01:01:48,650 --> 01:01:50,580 Takže budem robiť to staromódnym spôsobom. 1502 01:01:50,580 --> 01:01:54,550 x krát ktorý sa rovná x krát x krát x. 1503 01:01:54,550 --> 01:01:56,880 Takže som Cubing hodnotu, že sa vynásobí sám znovu 1504 01:01:56,880 --> 01:02:00,440 a znova, tak, že sa sa výkon 1505 01:02:00,440 --> 01:02:02,050 z 3 v tomto prípade. 1506 01:02:02,050 --> 01:02:06,000 Takže teraz čísla by som tlačiť by mala byť, ako uvidíme 1507 01:02:06,000 --> 01:02:08,450 tu - aby prírastok, takže je to vlastne nie je naozaj zvýšiť 1508 01:02:08,450 --> 01:02:10,260 už, ale necháme meno sám - 1509 01:02:10,260 --> 01:02:11,590 2 a potom 8. 1510 01:02:11,590 --> 01:02:17,670 Teraz máme začiatky príležitosť pre zdokonaľovanie 1511 01:02:17,670 --> 01:02:21,570 tu, pričom táto cubing vec násobenie čísla 1512 01:02:21,570 --> 01:02:24,680 sama o sebe sama o sebe sama o sebe sa cíti ako by to mohlo byť len 1513 01:02:24,680 --> 01:02:27,920 vhodné mať ako funkcia, podobne ako niekto rozhodol 1514 01:02:27,920 --> 01:02:30,430 rokmi - viete, trochu užitočná, ak jeden z nás sa posadí 1515 01:02:30,430 --> 01:02:33,120 a píše printf tak, že zvyšok sveta sa môžu použiť, 1516 01:02:33,120 --> 01:02:36,160 prečo by sme si sadnúť a napísať funkciu nazvanú kocky 1517 01:02:36,160 --> 01:02:39,250 , Ktorý toto Cubing pre nás, takže sme sa nemuseli ručne 1518 01:02:39,250 --> 01:02:41,500 vykonávať pojem Cubing hodnoty tu? 1519 01:02:41,500 --> 01:02:44,040 >> Tak jednoduchý príklad, ale poďme ďalej a použiť ich ako 1520 01:02:44,040 --> 01:02:46,280 možnosť napísať vlastnú funkciu. 1521 01:02:46,280 --> 01:02:49,110 Tak zatiaľ, sme používa iba hlavné, a sme použili iné 1522 01:02:49,110 --> 01:02:51,780 Funkcia ľudí, ale my sme nenapísal naše vlastné. 1523 01:02:51,780 --> 01:02:52,650 Tak ideme na to. 1524 01:02:52,650 --> 01:02:56,330 Chystám sa ísť dopredu a napísať funkciu nazvanú kocky. 1525 01:02:56,330 --> 01:02:58,490 A ja budem mať to trvať vstup. 1526 01:02:58,490 --> 01:03:02,070 Takže jeho vstupné bude celé číslo. 1527 01:03:02,070 --> 01:03:03,570 A čo to bude robiť? 1528 01:03:03,570 --> 01:03:08,500 Bude to vyhlásiť int výstup = vstup krát vstup 1529 01:03:08,500 --> 01:03:09,880 krát vstup. 1530 01:03:09,880 --> 01:03:12,190 A potom to bude vrátiť tento výstup. 1531 01:03:12,190 --> 01:03:14,500 A potom som musel byť konkrétne teraz. 1532 01:03:14,500 --> 01:03:16,820 Táto funkcia bude vracať hodnotu typu int. 1533 01:03:16,820 --> 01:03:19,130 Takže tu je potom, ako by ste písať svoje vlastné funkcie. 1534 01:03:19,130 --> 01:03:20,850 Si najprv ujasniť, čo je meno vášho 1535 01:03:20,850 --> 01:03:21,720 Funkcia bude. 1536 01:03:21,720 --> 01:03:23,964 A všeobecne, niečo vysvetľovacie je dobré, tak budem 1537 01:03:23,964 --> 01:03:25,060 hovoria kocky. 1538 01:03:25,060 --> 01:03:27,180 Potom budete musieť určiť, čo to bude vrátiť, čo je 1539 01:03:27,180 --> 01:03:28,240 jeho výstup bude. 1540 01:03:28,240 --> 01:03:29,595 A nemáme, že veľa možností ešte. 1541 01:03:29,595 --> 01:03:32,260 Int, char, float, bool, string. 1542 01:03:32,260 --> 01:03:34,260 Pre túto chvíľu, budem držať s int, pretože chcem to 1543 01:03:34,260 --> 01:03:35,880 vráti celočíselnú hodnotu. 1544 01:03:35,880 --> 01:03:38,770 Potom budete musieť určiť, čo jeho vstupy, ak existujú, sú. 1545 01:03:38,770 --> 01:03:41,570 A ak kocka argument, trvá niečo medzi 1546 01:03:41,570 --> 01:03:44,970 zátvorky, musíte dať tento argument názov tak, aby 1547 01:03:44,970 --> 01:03:47,860 môžete volať to niečo, čo sa ti, ktorým sa vykonáva, alebo písomne 1548 01:03:47,860 --> 01:03:50,550 táto funkcia, a budete musieť dať typ, ktorý v tejto 1549 01:03:50,550 --> 01:03:51,810 Prípad bude int. 1550 01:03:51,810 --> 01:03:54,690 Takže v skratke, kocka je funkcia, ktorá zoberie celé číslo 1551 01:03:54,690 --> 01:03:57,560 ako vstup a vráti celočíselnú ako výstup. 1552 01:03:57,560 --> 01:03:59,240 >> Takže to, čo to robí s tou vstup? 1553 01:03:59,240 --> 01:04:03,710 No, v riadku 14, vyhlasujem premennú zvanú výstup, a ja 1554 01:04:03,710 --> 01:04:07,410 priradiť jej hodnotu, vstupné krát vstup časy vstupné. 1555 01:04:07,410 --> 01:04:11,490 A potom som sa vrátiť výstup. 1556 01:04:11,490 --> 01:04:14,890 Tak ako ich môžem použiť toto? 1557 01:04:14,890 --> 01:04:19,210 Čo mám zmeniť tieto zvýraznené znaky na riadku 1558 01:04:19,210 --> 01:04:21,006 7 k, myslíš? 1559 01:04:21,006 --> 01:04:21,800 PUBLIKUM: [nepočuteľnú]. 1560 01:04:21,800 --> 01:04:25,570 DAVID J. Malan: Jo, tak kocka x. 1561 01:04:25,570 --> 01:04:28,290 Takže x je premenná, čo znamená, že má určitú hodnotu. 1562 01:04:28,290 --> 01:04:30,190 Našťastie, to je typu integer. 1563 01:04:30,190 --> 01:04:34,280 A pretože x je int, to znamená, že môžem odovzdať ju do kocky. 1564 01:04:34,280 --> 01:04:39,500 A to aj napriek tomu som prepísanie hodnotu x s ​​hodnotou 1565 01:04:39,500 --> 01:04:42,780 z kocky x, ako tomu bolo doteraz, kedykoľvek budete 1566 01:04:42,780 --> 01:04:46,150 majú znamienko rovná sa a riadok kódu na stiahnutie na pravej 1567 01:04:46,150 --> 01:04:49,090 sa vykoná, a potom dostane priradený 1568 01:04:49,090 --> 01:04:50,150 hodnota na ľavej strane. 1569 01:04:50,150 --> 01:04:52,950 Takže poradie operácií je, ako by sme dúfať. 1570 01:04:52,950 --> 01:04:56,620 Takže to funguje? 1571 01:04:56,620 --> 01:04:58,410 No, nechajte ma ísť sem dole. 1572 01:04:58,410 --> 01:04:59,970 Dovoľte mi, aby som otvoria svoje okno terminálu. 1573 01:04:59,970 --> 01:05:03,610 Dovoľte mi, aby som sa, aby prírastok, Enter. 1574 01:05:03,610 --> 01:05:07,140 "Implicitná vyhlásenie o funkcie" kocky ", je neplatný v 1575 01:05:07,140 --> 01:05:13,700 C99. "Ako stranou, C99 odkazuje na jazyku C, ako to bolo 1576 01:05:13,700 --> 01:05:16,790 definované v roku 1999, ktorý bol update cez verzii z 1577 01:05:16,790 --> 01:05:19,360 1989, čo je zmena v priebehu pôvodnej. 1578 01:05:19,360 --> 01:05:21,740 Tak to je všetko, čo znamená. 1579 01:05:21,740 --> 01:05:24,250 >> Takže čo to znamená, že "implicitné vyhlásenie 1580 01:05:24,250 --> 01:05:26,790 funkcia "kocka" je neplatná? "Je to priamo tu. 1581 01:05:26,790 --> 01:05:28,430 Je to priamo tu v súlade 12. 1582 01:05:28,430 --> 01:05:30,460 PUBLIKUM: [nepočuteľnú]. 1583 01:05:30,460 --> 01:05:30,730 DAVID J. Malan: Čo je to? 1584 01:05:30,730 --> 01:05:32,470 PUBLIKUM: To nie skôr. 1585 01:05:32,470 --> 01:05:33,540 DAVID J. Malan: To nie je pred. 1586 01:05:33,540 --> 01:05:34,740 Tak toto je vec. 1587 01:05:34,740 --> 01:05:38,190 C je druh hlúpy, alebo C kompilátory sú trochu hlúpe. 1588 01:05:38,190 --> 01:05:41,060 Sú naozaj len to, čo poviete, aby robili. 1589 01:05:41,060 --> 01:05:44,770 A oni, najmä, len si prečítať kód top dole, 1590 01:05:44,770 --> 01:05:45,620 zľava doprava. 1591 01:05:45,620 --> 01:05:49,140 Takže ak kompilátor, zvonenie, číta kód, riadok 1, je 1592 01:05:49,140 --> 01:05:50,120 zistí, ako to urobiť. 1593 01:05:50,120 --> 01:05:50,940 Oh, tu je hlavné. 1594 01:05:50,940 --> 01:05:53,000 Dobre, nechaj ma ísť napred a deklarovať premennú x. 1595 01:05:53,000 --> 01:05:54,160 Dovoľte mi, aby som niečo tlačíte. 1596 01:05:54,160 --> 01:05:55,890 Linka 7, čo to sakra je kocka? 1597 01:05:55,890 --> 01:05:58,230 Nie je to vyhlásil v stdio.h. 1598 01:05:58,230 --> 01:06:00,950 To neprichádza s C. Nemám tušenie, čo robiť. 1599 01:06:00,950 --> 01:06:03,960 A tak zvonenie len kaucií a ukončený s týmto chybovým hlásením. 1600 01:06:03,960 --> 01:06:05,850 Takže môžeme opraviť v niekoľkými spôsobmi. 1601 01:06:05,850 --> 01:06:10,530 Naučíme klap, čo kocka je len o pohybe, ak 1602 01:06:10,530 --> 01:06:11,820 vyhlásenie. 1603 01:06:11,820 --> 01:06:14,640 Tak som vybrať a vložiť ho na vrchole hlavnej. 1604 01:06:14,640 --> 01:06:17,770 Teraz si uvedomiť, že len preto, že hlavná nie je prvý, je to 1605 01:06:17,770 --> 01:06:19,150 ešte vykonané v predvolenom nastavení. 1606 01:06:19,150 --> 01:06:20,060 Hlavné je hlavné. 1607 01:06:20,060 --> 01:06:21,022 Je to predvolený názov funkcie. 1608 01:06:21,022 --> 01:06:22,930 Nezáleží na tom, ak je v súbore. 1609 01:06:22,930 --> 01:06:26,910 Ale aspoň teraz zvonenie videl kocku, než som ju používať. 1610 01:06:26,910 --> 01:06:28,500 Tak uvidíme, či zvonenie je šťastnejší. 1611 01:06:28,500 --> 01:06:31,410 Urobte prírastok, to skompilovať tento čas. 1612 01:06:31,410 --> 01:06:33,060 >> Dovoľte mi, aby som bežať prírastok. 1613 01:06:33,060 --> 01:06:34,810 A skutočne, zdá sa, že funguje. 1614 01:06:34,810 --> 01:06:36,810 Teraz, môžete prísť so scenármi nakoniec, kde 1615 01:06:36,810 --> 01:06:38,650 to nie je možné, aby všetky funkcie 1616 01:06:38,650 --> 01:06:39,740 nad všetky ostatné funkcie. 1617 01:06:39,740 --> 01:06:42,140 Budete uviaznu v tejto nekonečnej slučke v skutočnosti, 1618 01:06:42,140 --> 01:06:43,480 ak ten chlap chce byť, ale to 1619 01:06:43,480 --> 01:06:44,390 chlap musí byť tam. 1620 01:06:44,390 --> 01:06:45,830 Takže nemusí vždy fungovať. 1621 01:06:45,830 --> 01:06:49,020 Takže našťastie, C má viac elegantné riešenie. 1622 01:06:49,020 --> 01:06:50,790 Chystám sa dať to späť, kde to bolo, len preto, že som 1623 01:06:50,790 --> 01:06:53,390 preferujú, ako v zásade, že hlavná vždy 1624 01:06:53,390 --> 01:06:55,550 na vrchole, pretože je to len pekné vidieť, čo tento program 1625 01:06:55,550 --> 01:06:56,920 sa v predvolenom nastavení. 1626 01:06:56,920 --> 01:06:58,950 A čo budem robiť, až tu sa vyhlásiť to, čo sa nazýva 1627 01:06:58,950 --> 01:07:00,250 prototyp. 1628 01:07:00,250 --> 01:07:05,730 Chystám sa znovu prehlasujem, že kocka funkciu doslova 1629 01:07:05,730 --> 01:07:07,180 kopírovanie a vkladanie. 1630 01:07:07,180 --> 01:07:08,290 Vlastne, to nie je doslova. 1631 01:07:08,290 --> 01:07:13,060 Takže doslova kopírovanie a vkladanie riadku 15 1632 01:07:13,060 --> 01:07:15,160 hore súlade 6. 1633 01:07:15,160 --> 01:07:17,010 Nezáleží na tom, aký postoj to skončí na. 1634 01:07:17,010 --> 01:07:18,380 Stáva sa, že je na linke 4. 1635 01:07:18,380 --> 01:07:19,950 Ale to musí byť pred hlavnou. 1636 01:07:19,950 --> 01:07:21,150 Ale všimnite si rozdiel. 1637 01:07:21,150 --> 01:07:24,100 Linka 4 konca bodkočiarkou, čo znamená, hej, 1638 01:07:24,100 --> 01:07:27,510 Rinčať, verte mi za to, že existuje funkcia 1639 01:07:27,510 --> 01:07:31,350 tzv kocku, ktorá vezme int a vracia int. 1640 01:07:31,350 --> 01:07:33,020 Ale ja nie som ti to povedať, čo to je. 1641 01:07:33,020 --> 01:07:35,180 Len viem, že som sľúbiť, že ti nakoniec. 1642 01:07:35,180 --> 01:07:38,490 A skutočne, teraz je to v poriadku, že je to dole. 1643 01:07:38,490 --> 01:07:41,275 >> Takže je to všeobecne lepšie, pretože potom v hornej časti 1644 01:07:41,275 --> 01:07:44,240 váš súbor, stačí odriekať, rapid-fire, jeden riadok 1645 01:07:44,240 --> 01:07:46,470 Každý, aké názvy vašich funkcií, aké sú ich 1646 01:07:46,470 --> 01:07:49,120 vstupy sú, aké sú ich výstupy sú. 1647 01:07:49,120 --> 01:07:52,210 A byť jasnejšie, vstupné všeobecne znamená argument alebo 1648 01:07:52,210 --> 01:07:54,110 parameter, synonymom. 1649 01:07:54,110 --> 01:07:56,890 Výstup sa rozumie návratovú hodnotu, čo to 1650 01:07:56,890 --> 01:07:58,700 ruka sa ku mne. 1651 01:07:58,700 --> 01:08:03,420 Takže v tomto prípade tu, že kocka vyhlásená v hornej časti, ale 1652 01:08:03,420 --> 01:08:06,940 definovaný, inak známa ako realizovaný, v dolnej časti. 1653 01:08:06,940 --> 01:08:09,620 Takže teraz sa vráťme sem a znova spustiť tento. 1654 01:08:09,620 --> 01:08:13,430 Takže teraz ma nechaj ísť dopredu a znovu spustiť, aby, znovu spustiť prírastok. 1655 01:08:13,430 --> 01:08:16,500 A teraz sa zdá, že funguje v pohode. 1656 01:08:16,500 --> 01:08:19,450 Takže teraz môžeme ísť dopredu a vytknúť niečo ako 1657 01:08:19,450 --> 01:08:23,720 Pivo príklad do tejto štvrtej verzie. 1658 01:08:23,720 --> 01:08:25,590 Dovoľte mi teda prejdite sem. 1659 01:08:25,590 --> 01:08:28,149 A zistíte, že som tak trochu vzal túto lekciu k srdcu práve teraz. 1660 01:08:28,149 --> 01:08:31,140 Skutočnosť, že som spieval rovnakú slohu znova a 1661 01:08:31,140 --> 01:08:34,130 znovu a znovu, rovnako Chorus Line v piesni, cítil 1662 01:08:34,130 --> 01:08:36,439 Rád prečo nie ja faktorom, ktorý sa do funkcie? 1663 01:08:36,439 --> 01:08:38,470 A skutočne, malo by to byť jedna z motivácií. 1664 01:08:38,470 --> 01:08:40,960 Okrem toho, že niekto iný na svete mohol chcieť 1665 01:08:40,960 --> 01:08:42,390 použiť kocky funkciu - 1666 01:08:42,390 --> 01:08:44,560 to je dobrý dôvod na faktor niečo a napísať svoj 1667 01:08:44,560 --> 01:08:45,720 vlastné vlastné funkcie - 1668 01:08:45,720 --> 01:08:48,720 v prípade, že je kus kódu vo vašom programe, ktorý práve robí 1669 01:08:48,720 --> 01:08:51,370 koncepčné pocit, že tak nejako chceš, aby to 1670 01:08:51,370 --> 01:08:53,740 Názov - ako v tomto prípade, zbor - 1671 01:08:53,740 --> 01:08:57,380 potom môže podobne napísať, že ako samostatná funkcia. 1672 01:08:57,380 --> 01:08:59,560 Nemusíte písať všetko v hlavnom pokiaľ to len 1673 01:08:59,560 --> 01:09:02,609 cíti čistejšie oddeliť ju a dať mu meno. 1674 01:09:02,609 --> 01:09:05,529 >> Takže v tomto prípade tu si všimnite, že mám komentár na vrchole 1675 01:09:05,529 --> 01:09:06,859 Táto funkcia, ktorá práve spieva o tom, 1676 01:09:06,859 --> 01:09:08,630 uvedené počty fliaš. 1677 01:09:08,630 --> 01:09:10,609 Všimnite si, že nemám potrebu volať tieto 1678 01:09:10,609 --> 01:09:12,520 veci vstupné a výstupné. 1679 01:09:12,520 --> 01:09:16,090 V skutočnosti, tentoraz som volal môj vstup B pre fľašu. 1680 01:09:16,090 --> 01:09:19,960 A všimnite si, tu, void naznačuje, čo? 1681 01:09:19,960 --> 01:09:21,309 To chorus - 1682 01:09:21,309 --> 01:09:22,660 PUBLIKUM: Má ho nemohla vrátiť. 1683 01:09:22,660 --> 01:09:23,870 DAVID J. Malan: nevracia hodnotu. 1684 01:09:23,870 --> 01:09:26,800 A skutočne, funkcie nemajú vracať hodnoty. 1685 01:09:26,800 --> 01:09:28,060 Môžu len niečo. 1686 01:09:28,060 --> 01:09:30,270 Môžu mať čo sa nazýva vedľajšie účinky, ktoré v tejto 1687 01:09:30,270 --> 01:09:33,109 prípad je len celá partia tlače na obrazovke. 1688 01:09:33,109 --> 01:09:36,580 Tak zistíte, že tento kód tu, som doslova ukradol 1689 01:09:36,580 --> 01:09:37,680 predchádzajúci príklad. 1690 01:09:37,680 --> 01:09:39,930 Jediný rozdiel je, namiesto použitia aj ako môj 1691 01:09:39,930 --> 01:09:42,890 premenná, som teraz používa b ako môj premenné. 1692 01:09:42,890 --> 01:09:45,880 Tak som si b tu dole, mám b tu dole, mám b 1693 01:09:45,880 --> 01:09:47,109 mínus 1 tu. 1694 01:09:47,109 --> 01:09:49,279 Ale kód je presne rovnaký. 1695 01:09:49,279 --> 01:09:52,529 Ale len tí ukáže hneď, ako môžeme použiť, nechajte ma ísť 1696 01:09:52,529 --> 01:09:56,780 dopredu a skutočne zmeniť to byť pre sláčiky. 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 >> Tak som ukradol, že z nášho predchádzajúceho príkladu. 1699 01:10:06,230 --> 01:10:08,970 Predtým, to je v súlade 37 vyplýva, že by som začal 1700 01:10:08,970 --> 01:10:10,640 spievať tento nepríjemný pieseň. 1701 01:10:10,640 --> 01:10:15,810 Ale namiesto toho, ja len tak teraz volajú zbor i 1702 01:10:15,810 --> 01:10:16,870 Hotovo. 1703 01:10:16,870 --> 01:10:20,260 Takže teraz v každej iterácii tohto cyklu, hovorím to iné 1704 01:10:20,260 --> 01:10:22,220 funkcie, chorus, že som sa náhodou písať. 1705 01:10:22,220 --> 01:10:24,110 To nebola napísaná niekým iným rokmi. 1706 01:10:24,110 --> 01:10:27,930 Ale chorus, medzitým, používa printf pre tlač 1707 01:10:27,930 --> 01:10:29,840 z týchto štyroch liniek. 1708 01:10:29,840 --> 01:10:32,720 Ale fakt, že volám refrén znovu a znovu v roku 1709 01:10:32,720 --> 01:10:35,900 loop znamená, že budem sa dostať, na samom konci, 1710 01:10:35,900 --> 01:10:39,310 presne rovnaký song, ako som sa tak ďaleko. 1711 01:10:39,310 --> 01:10:42,130 Takže v skratke, teraz, keď sa pozriem späť na môj kód, aj keď 1712 01:10:42,130 --> 01:10:44,240 funkčne je to rovnaké, zistíte, že je to 1713 01:10:44,240 --> 01:10:46,020 začína byť ešte viac čitateľné. 1714 01:10:46,020 --> 01:10:48,410 Ja presne neviem, ako GetInt 1715 01:10:48,410 --> 01:10:49,250 je realizovaný. 1716 01:10:49,250 --> 01:10:52,050 Úprimne povedané, neviem, ako je implementovaná chorus. 1717 01:10:52,050 --> 01:10:52,970 Ale to nezáleží na mne. 1718 01:10:52,970 --> 01:10:55,620 Nezaujíma ma, pretože teraz môžem nejako, ako človek, prečítajte si 1719 01:10:55,620 --> 01:10:57,050 to z vrcholu k dolnej časti. 1720 01:10:57,050 --> 01:10:59,950 A pretože funkcie sú pomenované podľa toho, čo 1721 01:10:59,950 --> 01:11:02,910 robiť, môj kód je stále čitateľný. 1722 01:11:02,910 --> 01:11:05,190 A ako naše programy dostať oveľa zložitejšie - 1723 01:11:05,190 --> 01:11:07,220 podľa semestra je koniec, budete písať stovky riadkov 1724 01:11:07,220 --> 01:11:10,970 kódu v jazykoch ako PHP a JavaScriptu a ako - 1725 01:11:10,970 --> 01:11:13,550 zistíte, že je to tak oveľa jednoduchšie, ako si udržať prehľad o 1726 01:11:13,550 --> 01:11:14,080 čo si urobil. 1727 01:11:14,080 --> 01:11:15,810 A keď začnete spolupracovať s priateľmi alebo 1728 01:11:15,810 --> 01:11:19,010 partnermi alebo kolegami, budete môcť písať oveľa viac 1729 01:11:19,010 --> 01:11:22,910 masívne programy od spustenia vykonávať tieto základné 1730 01:11:22,910 --> 01:11:23,990 stavebné kamene. 1731 01:11:23,990 --> 01:11:25,550 >> Takže s tým povedal, prečo nie my hovoríme deň? 1732 01:11:25,550 --> 01:11:27,190 A my sa uvidíme v stredu. 1733 01:11:27,190 --> 01:11:33,611 [APPLAUSE]